%!PS-Adobe-2.0 %%Creator: dvips(k) 5.96.1 Copyright 2007 Radical Eye Software %%Title: libidn.dvi %%CreationDate: Mon Jun 8 12:41:10 2009 %%Pages: 101 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: CMBX12 CMR10 CMSY10 CMMI12 CMMI10 CMTT10 CMSS10 CMSL10 %%+ CMSLTT10 CMB10 CMTT12 CMTT8 CMR7 CMR9 CMCSC10 CMTT9 CMTI10 CMMI9 %%DocumentPaperSizes: a4 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -o libidn.ps libidn.dvi %DVIPSParameters: dpi=600 %DVIPSSource: TeX output 2009.06.08:1241 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S /BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: texps.pro 0 0 %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type /nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def end %%EndProcSet %%BeginProcSet: special.pro 0 0 %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def @MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N} N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N /setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{ pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B /rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet %%BeginFont: CMMI9 %!PS-AdobeFont-1.1: CMMI9 1.100 %%CreationDate: 1996 Jul 23 07:53:55 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 58 /period put readonly def /FontBBox{-29 -250 1075 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E394A533A081C36D6F5CA5FED4F9AC9ADE41E04F9FC52E758C9F45A92BED935 86F9CFDB57732045913A6422AD4206418610C81D882EE493DE9523CC1BFE1505 DD1390B19BC1947A01B93BC668BE9B2A0E69A968554239B88C00AF9FBDF09CCD 67D3B2094C11A04762FE8CC1E91D020A28B3C122D24BEAACF82313F4604F2FEF 6E176D730A879BE45DD0D4996EF0247AEB1CA0AB08FF374D99F06D47B36F9554 FAD9A2D3CE451B7791C3709D8A1DDDEFBD840C1B42AB824D5A0DFF0E0F15B0B7 22AEEB877FF489581DA6FA8DA64944555101EB16F7AB0B717E148B7B98D8DBFD 730C52937E226545CF8DC3E07C5BA30739BAFCD0F2B44275A6D503F582C0FB4F 449963D0AD2FAFDE33BA3D77BCA9D1DF878DDAFCA2E22CC4BACD542B282164C7 97C2BDE318AF9D501CA21F6E662E7AAB75A5F24D2C182E598D175D44E88AB19A E7CD59584F95B389183EE21B525BF52A3F23C0FE5383A5565A19361D716F508C AAB78411CA5A4D27552CC1C435760D5A89D535B71C593E755C616661363308DA A683F54ED0C23FB2C225A008392B0B719F66F11A946A090B7C00B662A3C69599 B4ECB0CC70C85C4BBBF207E0026F6C7A19F2ACFB7A60804FC98A4BFFD7BFFF2B 9529E6D9D4238002BBC255BC62959D6F3381FE06E0621B879D5FE5B541D45A1E 759A6E7DC32B1D1632368D09A97039DF255B6492B1B2B7E2C1434E8306ECA7D3 5A79B6D614B4979F10988BC76ED53A5F45315CD7DA216221F842FD0F3E050DD2 BAC23C984D506D8F7D614BCB6B244F5F41321549BB0BD041FBF3053307168680 3435E9C9445A59A7C666418C4F2512C32058B1CE1EA46C7839C6E372F6CC60AE 2CF46DD2F130B532DE8ECD42D9204500E413799E298CF6426F28D23BB7216BEA 1A618B3ECC61B44DDEF0BB22D640B47C09AC0DF378CE68FC9CD88BDAE9ED89CB 431A5CF9C3E9528FEE7A9936C2B1CF7B38DD2B95773F0EA0051607BE1B0B3588 A8B907A5EF011B4622C5093A7B107DD1EED6FEE9536DECF1CC96E65373D0F433 30AE3C094654ABF4698C07F8C74E71D023DFD242EE83B1306786124DD8C6BFA7 801E66CB944BE7EBCB3FE803EC97067AF7AFC8A4E9AC9D11 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI10 %!PS-AdobeFont-1.1: CMTI10 1.00B %%CreationDate: 1992 Feb 19 19:56:16 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 76 /L put dup 101 /e put dup 115 /s put readonly def /FontBBox{-163 -250 1146 969}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F 21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6 06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF 55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5 B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86 0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9 1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961 7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A 7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402 356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B 19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2 C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F 244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95 592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15 98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496 2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1 CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD F78C2BED60AF8B7CDA6B5746055940D7754D9893E0E5644496F96B6A10D7ACE2 9D848CC0EFE167A3916FB1E339DBA774DB743B61136CB1F947D8AF1AC91CB491 216DF44F09E32F9CEADCD17F8D5139327E33DCAAE2ED1AADC19C8389E15174AD B3176693A20ED0F5687159B92E079B68C3E13BC6D53A683407C92B9AF351FCFF CBD0080F83AA7AF2129D3425BD7A56932D411F47DDFE71CC93F515EE4E0250B1 289867C2325A170786AF541F6BC298844D1AE396D195746502D050C33E38A75C D5E76D6CED80B925FBA7BA64266C3DC9205FBCAD67DE0846E57C32067D454B6D 75AC24E2F5DD5A32CEDBFB6D8FFD2FBD76A9E0804DCCBE0B74DE7DF2DFA900F2 7B8FAC7C9FA87C0D0A10B4DE447483CB62DF69D545BFEF3AFA61A2C4E15D6417 11F626DCF70C075E33C88BE90B738213A4019BECED3E9CB1567AC5FEE6F6E97C 1711C5B0A571BA0D06C314F99CDD675D0DE74D5CE343F1F0A4CD704EE02972AD D8618B23B18CC9E838DFDC7BA23C901EC380108DABF5DCFE2DAAC1A42CD0F813 76218D374594DDF79CD25BB6F390144348D565B48135F69DCA7B1C7990F1D425 21D28FF5AD9CF4D06DC3010A8237318BA8F736C23CC6CBA40FEFCBACCAF9C401 8AF0F3C2FFEC4CEB34DCC6A5AA9562F0D416BD94E4A6B9DB9C9024CBAACBDF86 2A11DF29CA392BC64B66B510C0F4A45E1DF3264F7DCF7505AAFA2B53A1116A4F 67F3D23805CBE59A8FC493D770D4DE96B25CC6DB30FAC5BE9B8A08687F112AC6 5D6385A8E40961D4C182C194788F0D7FE4FD2EF589A2471F6074DFACB4A33DF5 5A3855D12D1E6A84CCC783F2E3D68161E411C2D6E90825DA4EA289554ABE18DC A57AFA8544E48B84B57BE2600D2301F7159E58EA5B942742F85674 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSLTT10 %!PS-AdobeFont-1.1: CMSLTT10 1.0 %%CreationDate: 1991 Aug 20 16:41:43 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSLTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -9.46 def /isFixedPitch true def end readonly def /FontName /CMSLTT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 39 /quoteright put dup 46 /period put dup 52 /four put dup 67 /C put dup 84 /T put dup 95 /underscore put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put readonly def /FontBBox{-20 -233 617 696}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0528A405DF15F03DB1C3DA8B850431F8 0E5F73DAC973450D1ED0530313057E971FC7E7CA88E61DA6DB9A5CD61F0F76CB 4DE9105D0627B8DDF51A655098229920CF429CDAFC3F7788C95E7AB30E84F840 8CED52E98DB4CFF161D2E62B0D28CB8B0AC82E7A8D2C007953BAFB3056D66079 8064956E257D31C13509FB81A250D9E875C77A4E91CC49E9FB3C0718B2F691D4 B4A64F351F4DD68133DED7629B0D96E5124584A16FD2AC7A3EB244A934FF059F ED7297B0505F3C2994AD66A3CA5D2728B034DE94B64A8AFAF341601BD4DB5858 C9950A8BB9C598B8960609F48116ABA8C007190AF0ED335EB5BF61BA6871FA5F EAB5A26AEB5C7C352EB80799CEB983F19EEFA801093F62086AADD0B80BB6580F 2CF61B1390FA56DFA1A0B61C58DEF96BA767A8A37EA44730783C600706606C60 4EE74EA99B7C0F8E2525C8847F3D31907C3C483EFA98F6C416B6B2C343DE6370 52FAE423008D086A76A1FFB327CC7FD84B1C66B203A4F41582F4599A82F8362D 38108452EACCC937FFC4F3ABBFE3628DF51367DA6BA3F6826FC6522D6AC5E8EA 00BAD300FFB6DEDAB93237704202BACD030AA824B1E97C0AFE17FCE8C75F4FA0 B8A74329A6CF1788C7EB34DA7307411E9AD7ED8D6582884456E06E033B4FFE7D CD4DD8B06AD01340CCCFBC382C18CA451E4C886B01D082FF8CC5793F4727C3DF B52B4F1A242F31D1EB79D1E39A1D4FD13D6C5E2A42AD4B4D1CC4EE7BA0E5F80F 802E5AB57EA15F4DE44D82AC408AA86D4BF58EF967FBC6497BBC7F017C0598AE 32CF865DFFF0FC7FF9E6DCE9B5F2F4C7491AC674F46E8E7660452CE0A77C1EE8 00DE382ABED85350033F8ECB97398E4E0A75D4877A107F6A909D0C76D14F9A96 8A6CFDE3FD9D79B6FD82693A9F354BD2ECF30C6D99F7AC522F8D6C93EA214F7B 3D0ED77F042ACDE9414264C0698E86398562E2C640DEBBA0734AB4C3ACE3907D CC79E6B2C6C3C3F9B01526E8CD98237D4A9B403FF8CE3132222FA60C196A19BC A2393AE6935C0F8B67FC1D1A12A38FFE95A66EB02C0FC15DF80611EC5F766065 C2F919D30115E4B9B2DF8E06119C2D412BE014B3250E6C19EFCA872A584AA020 8F164DA7F2EB28C7482E30355FD7F4D748370A8E0765BC18D8B02C593422CC9E 2BB241D1D6B25BC33ACF6DF52252D220C56729205B93A091B50B6950802C4AE1 A40FEC3B01F1893EE9AEC02D7D238C5F777B09A64ED97C40F65B0BDC0FD86071 85CFD0535AD50DF7CB998CD57531016A50C6FE0491B8AF86FA06911D4D41CA44 E66D39C6D922D1CAE808DCCC8465E5F4535A20223227982AAC9AFEF0B93F1949 51210B3E1C00DC3162385E641B2B39C78111CF5A22E6DDA34C544E3DBE69B2E8 01E1D210DE6109AB63B82C4423DBD65DDD6267421B0098FEE41043721B061866 3B94FBC877D92124C1B1946A67B163CE0926D80A8FB1168804DD07A58E9B88C8 7F95FF44BA0A7D765BDCA0B7D78A82D9BA76D916E24BCFC5F99E874423C3D0FC F25254071271415A51425372B990CB341CCF507C4184EE044E2977D504B72D66 82D98EF7A8F6B228DEDEC6E580EA66F131010CDB0F410009AD324C5746F0687A 53F252F9C5816D8F7DC2531ECBBCCE77100F1B45420D3D5D17EF23EA3FB5B28E 17485AAFB0A84B9E2A8409FCFCDBC14F6023D3CDC5F6050B26D0A4C2F8A348FA B242D018A7109B1E7E74BF83D9DD31F8C0ADB922EA778A5F22269B83AA935F06 96ED8AE63F3A38097E9742F6F86AC3AC02E0C52FE5B3187CCF376D75C160CF24 323E6AC504389C86AD376B5F7C8EDF8ABF062CBF42F26B337AADDAA6BC8BF6F2 88E12EA2D2D72FAAB44A7EB77B1BEB805FA0F17463200436554F24ACCADB73A4 F128E851A5895CA243E0B7E9698CE2B8B7EFAFEEC803760F1E195ABE25B94505 BBDDBF646C5D0DF0848DD7DDBADDA7517D72B5F08341B62D40CF66A8DD4BA371 A06C5A69BF65DDACD42ADE4B8AFCEAEA54F96160BAD5F265BECF5F7C0161BCE2 CBAA9401A15454D5677F4BD1082FD70709121F94EEC9D20E7203EF5B677B0DC1 5F322302E6A1337419864B0FF4590858BD2D48448449A0C56628D58EE84CDD9C 9F53E26A5B5C81DB56DA354F211BB58CF3CA6743325EABD507DC120D4B3D3634 97C37CF7B4F08E4DAC750DAEE488F315A8CB075978E8515C2998B0BF0F88870E 99FB7CBA579B359EB10C559A5B82B805B71A784C519D59E4181428337E2320F7 47A1A962FCECBBB7A20A73BC49CEDC8C2CB18BA8356CBF473A20170CDA6043D9 0D827D7A2F84B9DFE100C51B1E074DA6DD4CFF111BEB5092085F5F4E9D5F27F4 225617089AA74BD761047374CDCC50BFD1ABFAA1833C8C595824B8DDCDA89AD7 A09BED961FCF3AA7D2214A5F7E6BE8D5245E2DA5B4156AEEEA9DBCCB982FCF67 FCF11E687878F4E631F22CB7C5D2FF47883FAFD90F3AE940B9E06B783A9A62ED FB3376A975019AE256AAF6FB720F9248A196449569B9E2FB0FDAAC7E41A3E63D CBDFB04F7B86EA896A8B15B4A1AC5C006CE20E8B8FC2CB07F279B7A3C10457CB 37DB0C136F48E0FADC1BB30C0D6EE275B2E6C622DD03221484255A246E3FDF7C CDCC4420629446257B69BA6AF63563F20C8BC01EDB150C1E4C647E6D4B839BFC 0069B108979FC6C4130A993A311771D12AED3D3BBE038C1408F4F0EDB4ADB0B9 F2B15CD05AC89FC1258DBFAB025D3307D6511A022B62C55C243C986D6733C137 6A9D1D962A0410142638104AA163448A75EA08C4B8A888AFD59A1259E998EC4C B6082A1A551321553D60ED640964A7A6A90B9F69D2AB50C87B605D1E5C8C5645 CD1DAAC077020E3F728FA64BED2CDCBCBEE120183EC7E91F520D5CE4C0F56CD6 607C74BCEDFC98328E7E40F3C068F077F8F0751C1521D970E933904BBA328A5A CF258BC044CB98EBFC5F8A769153D604AA2C2CBB194C87745340FD1B9ABF5E51 910813F51E093515CD87CE3D35670374B8CAA043422E1DC5952DFFBBAF7E39C3 58266C99E53AA6F13C9E4ED914668AD6EBBAEBD23B174544A8C5E8194130C9DD 487BA1ED33DEDCFB1DA3094ED90B2EDC7322B06B806981249EFED81BBED50A3C 1F61B7956AAAE19876EDFB712D864993C8FF3E1652EA1E49F185ED30DEB08191 3576ED39E736A040398574CAECB8EC40E3B94DC20668FFB7FE41DE9D03AE283F 6EF225CB0A8986E99E37F1552ED063250D99318D39D6FD5FE6674053A4C6DF44 DEA34EF42FDE894D55AABBEC2554C46CFB70E681F0C403B086748387C83D6F71 C96B1E8056FBEB245B3DEFB1B607E74B51E21DFB9A8FD94C9795F45EB8B91F6A 4B63CC3FDA0A76244B1BC29F2822F987EDC5C4B2DC92FF8743733B93D089C9AE ACD96240588AC68429787239019FAC3FF62DCBBF1E4EE1256351B599C591ADBE FA03E538BC26C6DFD6BC23A0B474B4029E7D12F29130E56C4A45F6A629F5487E 69FCDFA96DE4673E16FF2BA01C8B6AF4070DCF169FD53BC58692FF1EC6459254 60CF317C9B1AC883182CA39E2BFAAA044B221694934B4B09AC186C87DC03C225 6EBE47DECCCE9B3A8BFC16632044070FD12EFC2282260C926645E483AEA01E61 7531B7D24DB48EE833EA767325D39A7515693321745DECFC04392492D82D37F9 A94CEC8BB222FC63C9E5181BBD3E5E415E665D9A8EF90A1E36EFB51C4F38B398 F2AB969203BFD8FD30B3EF5B0B21FD85521A03C886AB0A0B88254A3C9BF03B9A 677BCF2C5EDAA35A020F92C9794A77428916B2CBE75F27F97FA6AC0B155132D7 0D29CDF8E12708736C8CC18D90A63F859082A819CD6D577C9F1314970D9BAF7A 6DF5826870E018AA9FF5BDFA067828B38FE84D5D5BCFF6A53777C4190B768511 A126A5DF1E5C5D1A16692FC02CB80E6BD3451A637D1821AC7BDCDA808D72C5BB C64D94BD5FB1F06CB2BC6081D7328051BAE08CDAC321A48D7E3C02BE1D3D1377 61C9535B8E2100B817DD1F07693F0270E40041234C2D8846AB0518060EAFBF8B A59BE72D2BAEC6EC59BFCD400C32F48D8D35339989BC95C2B317B666F414EC12 253ECFBB8AF78C513F4A747A5A79C0544AAB7F7A9F3413F5D91CF99F51EF8341 BBF3A84C3019FFB3F28AA48F1D87871D026369E6A0BFA296262EE2A65E4ACA09 1AFCD0C1F3043C333C6BB31B7257CA3DB4746A80865E4255CF40FD1E029E644F BF345B2210BCF532A37C28BE20DF6F2BB81E919175FAB36A626256CEFD870710 E1550F2847337BC8395666BA10D61B09A6AF4968C60C772471F956F9C03DB7C5 AB15DAB8FDC5F72975358B8804F0FEA01F6D4B9128D8DA6B2DD541F58285C5EF 35C214839F2A5ECB14251A6C2FC3859F7509AE779F4878F452B12FE4F78CFB72 F098CBC4E6B0DD672DD615A757F2679F5D8D3A4B6E1526887B28D83D5358850F 4E28D691E7631A9049AEF3F3767BF027E841902694643B9BB27D3953C4456FB4 9ADE84261546F1D93F33D5FE8160DCEBEEE0EFE5EF366934EF19245A18EC451A 9C5254E4C0BED9948ECC53E60BFA1C2D376616F6BCF85008CC31165C854FB96F 857CF6242330FB483001001184512AC019AA8905DF23F06D0B7828791461A36F 1E08C0E36F059B6DBC443AE32018BD181C2277AD9D7F374D613170C86416334D D1BFC6AF96E1AC36C836EB7CCD159EE970C7922FF5F58643B9501502AC6B54E8 515CE45E621F8140E5DCB0CCB7F00F38DA2E1AAF4164C66B9961C9363027FF19 05F762E796B93E3689EB2A97C37DB969C07E1E39F53CB4128101EA083631EE5D F8363B28077E2085842CAC9EA549B2072167FD6EDB80B8BE1B6D61481F25B9EA A584D5A477DE0596D47E8ED89FC7DB85544D5A840BF6441EC9AC68AE495E8F47 A120979C0CD25FFB7F4ADAB4D131992EBACEA1DD5DE834F6BEA84D13BD539E20 70199505E2BB089C617D25F54CB7F73252547156A4E575BBBDD6F75149B4E5B8 E85FCCA0FA5EA8C241B6C1504FD9134C7B22DA8180BCC558A72208F1209519E3 5E4C6E32F83D5F876699A48FCF0DCCF44FC06859E517B2C25BA00A8B85F0E301 D2A17E9D59F9CFD15C0F0E66375B1F6BDC500E02175EA8E50266A1C3B8BD23BF 12E79DEEE2AC1D4CA48C8D62AEE598E79C8A522C66A4FF1A1DF757C48E4E525F ED6817933D4E872722CFDC18D3CF57442CBCFE57C59BA41265E0719D7677E26C 25E4611AF1D70FB3C5EA88380840116D561C8BBA7D1388FD9E183C82AD7776C2 59D0620F597AA45A9A345D8426D02C81D56F9740FCC8EF5EA6354D526D44A019 E9B1739BB02CC3495717DFC46C6E71EB0AE07E6715E1ECDBF7E1F5BE597B6CAD E2EEAD219DEF40051D26326B93D8AA7E3724D7998A1B0745893CC9A0C02332CF 8C09C7293E2F23395F8B7922F766080AA7B0B0772861974D3F347B8DCC6FF52E B3A1CF1E78F1867E80A93722A42BDAB4EB759CE89389080339644098F0321C17 8D3D3F7DFCBBD6CED71E05FAE86646FDC421D265ED7437927A2EFBE0CF11AD4D FD4135631614A4307ECE4AA7BE08B089FFE2DBA93BF5ED7457698B7ACE22AA55 30AB9EB53BCBF034B1D22B8DED5FFAE9C7B8B484007C614A13C35260D81CDF80 E0501C2498C2ACAEEF03DAD15211E4287354D0BD7C57C6571AC023B708260AEF 86EA021722DC6113833C25790FABCD5C20822CDABFA4E5240B9B972F843C5FBD 4BF144920464967F50213B582DCDB5815A8D5E334A3DB9D59231B72BD6BAE237 D9030017A33A6EB979ADE115EE6A215B6AB11B9B310BF94C0F88C766C52B07D7 911DB37A54F9370509F88B43436A762755FA06A4E9BFCDEA7F6C22EC678ABDC7 0BFFC7BF150E980DF0260037EEC518686143659E3C3266E02C122B69B56D58F8 8593FCF82E1DFFB6DD26F11AE382C59A10FF02F4AF78FA0CE4A2283C46B32B57 A1499738C3F96168EE551B6CAFBB1C827AAF2FB9661FF1596891C5E195ACB9B2 94B4C1A430B23A4B30F4745D583BA753F3BF148D16741279A815082B7B31545C 63201DAD0F57C343DC98CA69130D9C25F0C71B7F6E95DC1DEFBD4010B9D70AAE 4237546BAE5525B4E229E54D4DD463DA111899D4F85C7E727998B36730D17AB1 117DEF21C2CD57C096C1720E10B8D59FA10D9F19FC4277F4DA8B48B9FABEDD58 09BDFF73AD60D0E5BB306E304F166751A8F48467E010637F884217DF3A6FD188 AC947911F550C212869ACBEEBC5746C1DAF22A125C43DD29CD02774DA9365E3F A4BF77A5CDC291373935D632E8B07082120DCC312E158D355C0E8AAD26363B56 BC45360DE5846AC61F7625A2609DB34CD3485B602CD134008D0074F207294CF5 7519987EE1C5A7B26340A4392DE0FC79FE7A6A8F4265DC842D7BDAC7CA209148 53E63A45E6FE13B0BB8E4BCCE822D2D0918118CAC34A175A5DCA7FC1C6DF7422 9FD94C3C79A0F10A818E8AC15CEDD5AF3CCA4A3274C677B6C0FFC22C1F04E85E 87E8649DD07A943E939DB2B0C9379DCDFB61B3CEAF7CE841FF71E0B0A089B287 8A942EC8D603BED18EA74B684CEC2C0CBD447AE5970E7033458A9332F5AC1264 B72523C5C9C4CA5F69007A23E7A6BD045BAEA55875003F7366127204D4BA1B10 0E07F991B48DCC6961101502C12D3B555DD82BBD605B18A281244FB00A28131E 0245489EA450325408D60BC088B70AE5BEABD53899808503BA7D5464F37CE9AF E66AB929236AE3C40A4B0123982FE7F32642B0CF4CD97725D1052C2E041ABB35 884E89D4B41159841B96C5C0CC702A657D998CFB41E53EEF9A030ED13AF70800 BEC30FC4E5E6B0E4C0A67A4EB98EDB480C4B8C925CE008AB99B4D4A0B43A3D8E EDCAFEAF1533C1C2D8EEB4695D4DE181B4FCDB893DF84FAE558E6CFC33F9D2A1 E0D432E05A2CDD6FD8306C4C4B4EFD255B421B9DB727B36A649A93AA1EF8D635 E3DCF6750BF91B65BE42767D0668C4EEA2039AC4D07CBF04FC96E4063F8824DD 7ED6F09F13E086CCD73CFE70F2D002A3C37ED5251DA1F21D7EFF7DA4CBCFECCA 7B7CE736E75217028B76DB0E56FAA99B80A6C9B7C1B2D1C7B6CD1BFA6F0FF63A AAE9E2160496F933124C60A739FDD86868C8024C1CA1473049F47CE59F3B118F DFAE18F483E8D27C74C616B6068065703E39D544D32D3A1E126E4EE718E696FF 244F7BFE220205DD7FF6B875B854E9035F01B34F6245043414DD96D26FF92FA9 CA9C269D0747BD67CCE3F4FE25A73520A1312B52BB7C9CEF958E915E49CC6E12 E4D88202CDBF3C55165BF926AB8C48C65252435B4D558815CCE2A380A86E8966 835CDCB1BB91440E107B24778D2AD2E64AD6AA2FBAAC3C287DE368C9720AABB2 833CB80DDE605F3CFDD2AA3EC99E4BA5403ECE1A237910AA 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT9 %!PS-AdobeFont-1.1: CMTT9 1.0 %%CreationDate: 1991 Aug 20 16:46:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 89 /Y put dup 95 /underscore put dup 96 /quoteleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-6 -233 542 698}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D1E 2931CE5F5D18C658602059F07BE66E6EFC9239D7AB2FB8A4CBD41675B8ECF279 650C29E53B14AC0E392A664848C1844B1CECBB2D5CFB72D0916B675C9A9A1E35 F12696A6F628473C604A95376468E06E295AD6F76CEB939D94113532050B9D5A D2F41A9EFB9424D986612313B89EFE9C8A71313340B248F6853B1EDBF02B7F9E F447220FE131D7D54CFB8AA1281DBAEA73E665BACB1F164552CC0CEDB63BD4B1 4A9AE8AC6FA02242DBE8DA46B64B6BFC11762F0784F216FC8B9120D688D1705A 438B14F5E5DEAF2A98408B3B64620DE3732A4DAE6D08D5D97E34C75DAE19EABD BA0796165C1151BCBFB1DF8D29A63A8300DBDB9E3323CB82D0337598B83F4F2B A97CF5196D4D1CEC1EDB8966E548C0D9C194C932319610FB43EA1B86322FE641 AB48770FF13BD475A7267E142388563D1A400419C585B22A9886074687BEDF74 D905BE8EE440BA2ABF28EAB673399B7F129B9729DD5564C681954621903B84BB CAF89AC5ADB2932472DF29ADA2BDBDB4D05F65F28F5F4C529613D61858E0074A 082A852710A62A147C966F2B85B51B0BE85F11D2057C66FDD61F6C5755367980 9F4DE680601D4DA41B46F8D2148450000413C27AA39B586B74B977B25F0FD3C0 4BA1EBFAFDBEC531EA1210365091671CE3C86A6D4BC591C37DCC02570042575A 9D24252D6E01A8603753934D7EA5CAC1BE4E5AD2BA047DE8F3983B23A8A1511F B08D373B69E5076CE4300137B8805EBCC0AAB89BBB312A77835795E3C069322D 42C893A30AD739E2BDD299679B158F7493764F2321E3965141B5ED1C6F4765ED F46D391A646B30C90002B1C461AEE79E5F094CACCA656CEA3DB921CC5205F328 A2C69F817061D6C60B121EEE844CA5008F23DF098A804D202A649831727E89B2 5F8179E82F6E0BBD6D741E8E75BB167D18F2DDE43CD8F43C3BD0FD1E6F34E4A2 DAB0650F8A4A3DFDF9C4E92837335517A977460886B40A2399C1225F3C6CEEC9 26B415FF077511DF5F1DE65324915807FE55DE096F044172778C70EEC820D9D2 CA2393E85913E87579482C9F12576FCAC1E64FE646FEA73063DCE44707DEC332 CDC716EF7B4FD82D42A696A9745C140B67B9F54813135A1CE25BAD1BE9D5A231 692D233B201DDCE06718A7BE019AA752606AB1BB75DACF8DCFDF69A1894BD4E9 D4DF07A02931E7A3BDEC89C2D17945885C4D937BA2E1846D76A7B8E754796F45 C12E9229B33F9A489464D6C5EAF00C5749D578F2A0A34B0A8FE98AF92CDECD08 7AAB2D5B0C7FB609170C5CA186D8E2C1E2EAE9C57F6F17F46486E9C6250A5F4F 592A9A8F19809BDE8BEF788B51A2756F65D85B2EB851C77F7D9B11E0C217C620 6B0EF9796E51BA47801479CD6E3D5E68C7899DB3E5491495624A6F27DA4F83D2 22ECD4284E12BC1EFA7E13CA82A852A329EDBF490F68CCA1CA74C692B36868EB 2101B758CF94969214EE760FAFAB4C5E74E9F14A2425888B38E38ECF797F3C06 3D480D61AEB7BD90B16ADF37616D2C3C5D4F46D5F8992A6F1A9E86F84392EEBB C057112FAAF0C65CDBD99500DA825A5B67C4CE68EA62E7E2FBEEF00CCE040D14 590868155482B9EDA4283D933D8EE98933BDD9FEF488F4D3D5C4FE48F2AB5B74 1EDE79A74D40BD46874F4AE52576350F72724F57EF9FF6D1F344EAE7E269B2A1 A97295F0DDC8CD2052C88CF23C70743A08B1E6476FF258462842BFC8B49821CB EF81B20AFAE8F5F7275CE3B456A6AF756F335E037B80C9D9704221742FD0B246 C39138EF42430E692E959878110D15C17C7531DB2A780E80AC7B832CAA7EA31E C634F6A786C4110D9004A8B9B5E5157D96A29449B265B614E8A830BE0E09B043 11BE7E6127F07D5CE73D752D2135FD38727C085743EBCDE9A0C055393FC1FF46 B7ADA8569D6E29904FEE75425166EDBBB9490193F1C4C584452A2DA28C7ECD76 3014C6C98E6C8E217B289F63F474067BEF274A7BD21DC01E68517145D3D137CA 0BA1B591468F10C50D5E5F3B94141377FEC079C3F6A2C028C0A410F6149B2193 8254146DD149270D58CF871E8B2F897631A09E9DC5BB25C3227DB9EFEC94B890 DD793EF3D5BBF7C229D8AF154D1C2CFC464A1EC7D17FF866E39D843AAC441F1E CDE78A638BF27A7A578AF0A2CFEDE5E05416F7D4BF521DE2F48F13E61FAFF06D C9A060B5774F41308040C9A45392A2824A3B6FD4869C7CAD87DF92F9E537BDBC A963521E2B2B8477C6DCF37CE806B59A29D9677612F9A190CB733EB3179B8B36 D753C41E0F0A24FC3F58A236DDE642982E6CF599A1C37A14CCD521C4F64251CA AA825E8808C5FAFB9050FFDFA358DB1D8ACB16FE127640E241AB9313DC418A05 1487A3D4DE759F176E41C95F9D32A1277B19B940CBDF9F9D4929D680C882E6EF 4B836EB33FA47F6949ABD4503B5981B365A635157485830D1FCEBCD106C5E4F2 AA22A2B75B10CC8D0061D3ACF79FA9314E3C81C26D4340085B893560169E2303 F0DB607ABF4DD14778D1469D1AE3B78E760F2B48FEE646D26995F7C27658B122 C1E83A08C0A387305F0B2022E2D02D9D91E8891CF266E3EBDB3EF405BD9DA68C C5DCE5A5AA45CBDEC0FB828266AA280DBA16BA863194CBFB77B71EA6B17D7E0F DECE627BCD3DD7F8D114EC8DDD4F0A786CA2AF10E8860CE63F4C0EA178E98608 CDE6C1E78DCA56F90662AE49132B8EF40D7B3F87073952D1DF7AE500349D0FF1 C5A1B6D6E0A4CBC8F19026179F61D3664872514538F9E3F28B626CDF46DC5808 FE23A48D774982C682BB817177A9F21BD6BAF0F4E22873609ED5C9A0EE74D621 0B8449613D2CE9784861C5603CA194A07F5CB030FFDE97C511A9A077F78356D7 7A75C2A3DBA26CCDB073FCA8DA90AC284EA64B02C4DADBE6C100A5948635CC59 55B3A9FD01A53C3C967989691EEB077D1925C649593782C132F246C09A69B7BA F97C9C7DC81F5B404D1ABE791EC7F9EA354F66CD3AA4E8371BB3A9905F1C87C7 74FC4236D93CD69718812E90F273FFEF6B4BA8283D557C6604B0207EA0657B55 8465F4BC4AB61A3CB7DB826681C66BCA84A95DF63CB289B8905550A023203FBA E61556E5B0CAD5A83A05C36843453AB83D72A96FAB8A11C7203E6B235253EAD8 5505BBA8239333DBF9730527AF330832976D7A31F2A2F8E5E883C4E90B3F37DF 2C3E6D01FED71FE2E212F37CD2FC027EE9DE51A19263035D530C77F2B323D309 2A48DCF2C8D4E9EB17A0A33D1B403314D70ABE9AD3825260A7DDDFE20A71BF9F 85D73933EF437B377F21A60CED0515E1B705FF94FE53C27DD32D2C73E8D2E28B 6F1E78C9A3686FF5EF5E9870E8D2802106AE28657E7F8EACABD6682A8D7F5C0D AC65B1E292CE3C7F52597019E77B8517A661D75DE3ABEDDFAC189A39FAB75220 95D9225FF4BCEF1F9F2F1C84F3E2CF2A004173A5FC00389E0E0EF10744227641 EB461B9BB090008DF3EFC4CEF299888C1B3FCEB54B1BEB0FCC26E8F5FF8C90DC B599647483495B0D941B87F2FE8462544C7258A56C036CDD55516F5FC09CC66F 907C005175065205BC8C83DFA626C84C2416DBA2943310349D0291A778C7C02A 93FBEBDA671459D87591BDE2F91159E34A9CEA92FEDF48B27E4BC10FF54BE8DA 89E4723D4C79EDD2AFC9A7E17486EAAC169D65382099C1F1FD18FBCC553C9417 501CF5DBA50ECE41016733C5B9A7E8143F63BEEACA90494BD9BDD91D0E2E3ACD 3A6259F1802D3C438BE4BD21CFA6C7D455469161E6B3DC046C634B8C886050CE 0DA516BB7829826E73EEA5E4F19F1D40E954286B6314330382C07AAE26F8AC72 CDE0C8AB3B05CCD194ECF99828ECA850A1F824A3DE501066B0BEC68CAF5292BF 794CF459DF48C2975256979473AA3D7EF2908AEAE79980C8BF90D8D8A8A41231 AF22074FB85E7456A552B2731BACC4071944FD926DB3C3BE30C2CF894A27AFB5 EE773F60E5C495A93EAF02FBB41984389B8A4B937B4FC144015017E5413A7829 3D2BCD17BE704133D38FC8E746667C3A0F0759A6EB1907B7CAC5B92746E84332 AE204C4039FFD97A50F225459A38FFA4C7134F3229561BA198CFBEA21A26574F 08999B6C2458F51A99322BC242A59E4BBF2E1C2FB5834A196249FE1EE52E80D4 7B99D1706589F733C2411C52DA478705AA0702C3A43821015905C7086E84C349 3419AD94A3EDF1DFF4002B91F0646E13983644C9F6EF430C10632CDC03B54291 2E602F33812A6561CF9D86656C1A82401CCDFB886271A5CA203BD22125E13D3B FA2E4564875C4702484BB56D7D70579B4777407C0204D9B970902AA0E51E3335 B6605AA730328CDE247DB1CF494745541223A6FF09226DEB8E3BECC07D5A9ACD E3D64DE4DD329B49D97369EFE959351B2DF49B3B31174C8D7D961D77DBBCBE3A 9E73C6BC2CE624598CB031A1261C32A540C45FBC089A6C9DEEBA069E2E4BB8F3 E90683AAC23CD5465005FAE0746E20CE38B4EC9FBF44DC6228C0C9AD50FE8BB2 58DD5A4DB2328F4D4285A0C4BCFA1704A1D203974B3639723E7D417E3A1F94E3 ECC4F799271B7AC61394F51F98C42D2AA476B6A0C57EB37B906A93186C092A09 F72EE2706D36B9DFAE84C08F86A261376172AD4F037F89A12EDBCB63E9E1D8C6 3326C0C76D1E3445BE6B600202F6AD8E8B139DA6FE7708DF47D3A8A041B9EB63 C8FB41834AA4E84CC4E1AB699A045201EA59EB753C12543B598602531C40A6B4 B06A17AB608636DCE7E927A6D2928B62D23601A6C6C0C85A6BDB3C799DFF560B 8D4BB430644952FA9CD29890AB55F276BA42F62D759408ACE8297E640B4F1380 1C4B71A95598C06E05F9CC27C18D7E801F4004DFA3C70EFBFCC4E5CDD6870738 5B38208E0843549FEC55E5D694A28B656343EA92A747DC91B3458054347B4EFB 51E7552276606BF404BF9FF90987EB578B57AE6CA26D3474B94191EF664FF1CF DDC40EC35B48B7B1777749BC9E4DBF97939F6B9C2F70BEEF9A5715F720B4A687 5D81AAA165002875F12543F433A3C303C54A3AEC20822068F7FA827C68BD8E3A C2A30F0CD08616741CE9152F526D86C3C3B9466C27A26C41A5FC9029B1C11FDA 3AA772910DF31E74B569B9EA1F44446F8ABD8B63ED85E904488C23A4645CB433 A2FFA3E16421E86F48A8EE1A6785BCA89EE587D37E18AAC159DD059B3A518EC5 D58F26D30FB5D6CE2710B47B9D5C486F061A755D030A8A699047093A728CEAE8 9207F387BF2F4822CAF41B1E32B3CF79BEFCDB0BBB9FC78A6AEB2030872D3F2A AB23AEC857FAD9A757E33FC031BC4920A0328158497A51A70ACD4AA3A980DA49 F4C6A39873E5C2290697B1D4AC9F7A58C99DF276BBFAC7A2C543E7F1E879BD6F BF64A0513BF3E0671E094120DD08FFFA8C3C4B6D2330101D8DEC830CA9C5D641 87B958EA2BBDADFAAD55DA8CC7B638EA9C509BA76616A6A32D24ACBA8C208F42 16C25B3EA130C26C944BC749EE78A24C0E8774F56A1837D8CB3AB251BEEE444A 40B3B901D2A8925719D9E51B4E9B6C7EAF09FE00B39DD2F33CB2C24E6801656E DCB77457A5EC5EEBAE443A11BD0406A015BAB31685D418A85F01E31F88A21253 3BCD08C78917A5AC6EF8569E02FB4A3AE46B658D507A7FBC749A23315871A9D8 C1C906B0826A4EDA1C6C6EFAD0CE1213C1D94BAA9B0461DC285BE0AB633A8F8A 750E3A70FFA3FF5FD2E78E8BE5681E144CBD53DBDDC7DC5BDAFD26EFE0A1CF8D D190C42B2D28B611FF04FAD27DB0E7C3C273E6EE2BC495189F229D9FB3924207 EC6CEFB99821198829EC3C15346E28FF963D4773777D33FFF4E534EAAFAD0D48 3021DCB24CA98D802983E212269FB971F7E80E55BCF97A212B2DE1AF2721C4E6 A4466FA003B81513463A0319B14CAF5859307E950D6B92D9CFA91AF4519BB63C C3FEC8D7511CE974691D911C73D4E4304D78D6C34DA0F90A719A2E94C993DD13 A60F404FE777611552A15C7CF27578C7BE1E185A428BF6D25C06FAA323D0AA6B 2D450032B23D8F7FF3E9654F916924977E57DD792D191279D5ADEE4EB75EA645 145BF0BB844AA68A2893A8A7EC2FE60F17516F19947DABA9976C2889189D6A53 1D2857D1AA3F2C5DF63403370A884DCCEB54032FB1F79A7339B934183D6C852B 45FDB74251533DA40E6F7A90DB03EEF36D86BD690C025CD7BA8ECAAF269B8BC6 731DF3C2BB1502C47F27E267D02E9072501BA17018F5F4B2AB6E35B70F03951A 72610C597E35580BEA3FE6CA5D937E649FE4585481AD8AB3B4E3257559D97116 A015B5E45024055FF05167FE7F881C71F1BCAAD27A36E10ECD878AF1AFFFB1A5 17BF50513F6F35AA0C40F5F7CE59687C2D65B58FF9CFA36662D1A04294D932BE 0B729C3829F1FE85261FBD8E5A9B3AB35A9324203E58BF969936156580EAB14D D1842F71B7B6DE7EDCF5DE8C54D95116DC940FBE3E5C96DEED5EB7FDC9A9B495 92067D334F1E23AE042C9D39ADFE188F313CAD7561091B1758BABA413F8405E0 B22FDC715FA860B1599FC0801EEB4BB36FAEFF94C6E19BF5DFEF5839533E98AB 9864EA5834CEBAF028FF0B15D40C61049CE789BF24118893607DCC0C72671159 3F7FDE0FBF721031BA49DF8EFB6DDEB8B208ED72C6123462E461D09F2206B045 373D36A16CD58E9688FE78994517F5FAFD4A40BC7D74251ABF8572E7E067D6CD 1BC02839681F508D70458CB5D2750D13B5405073B086C61E8481C59BE4F20525 4A697A16B7DE1540469A2AD9F19D76FC41C2EC5C0588B8D567C30AB706EE5EB9 66393B19F7D93F9A19D22A3EB740B0BA52ECC8CA7B232BB8317AF9C2F1105BA7 0F71B461FFAF34C3F695B7F73FC7CFA2140AB2D62C3DECFC62918D4FB74459BD E0B2AA8B43A8727CB65D7D6157601AAA0B98947040D1B120072511821A61DD8D E67C2FE28144B71B3052F7F45ACDB7E7DC4DB473E15885361BDB8DBD4424618B CB3CE71869AFB06F4BBCAA8EE9C916F0027981751186FF84EB51FD7CA05A8353 B226848556193C1767A6C96CC1C59F0C153D3397ED0364A1C19B295F1715191C F471C0B3004B1EEE106DB2750D8B127D2FBD6E3A5AB32CD7E15332A64DC3AE35 CB49263C6AC5741999328FF3C0F497D0E81C4A325605F8A0B3F57AF37CA785BA 2152EF6059DE501217F850AAA15CAC696C91469EA728B7D4A9EF658E4658698F B3E5D034233A4687BDA4FD86105D91316B297E938830CE22285B25F271BEE72E 69D10C8AA433BBDB903C134EF2242BF70CC04AE6846919238CEE59913726343D ACF16790D5BF8DC73A4E9F969A14C432ACA2943BA786E4E55146A0F1C1C11321 177E389EB97FFA3502BDA2CA00D9F42D0E2148189A075970D649153CE8A16D49 D9BC9A4221070D00B65BCD6DFE956B6EEE9D0B3E5FD5FDE15414DB11C4242BC9 E075F0905B716000A7FB5CAA551C95640C88363C7AE1BE77470C2FFC10EED3EE 43EFEF9B542A1DE5600DE9077F1FA3E18F3D2273598783DCD54A8512994C0711 1052650249E83A446290098F11A0C84F4E5A7AD7FDE05C52AA0CC71DA2DA0825 543336D3232195FEAE977223101E75155AFFAEFADF865E19CA5F243D18F3F437 32066AF3A945F4ACE9223D68907A65E9EC6E5782B7E4E3F1047DFD8B06D85305 9B469D85F759FB220D79295A9EB1FB47F07DAE3AE901A5C3E2043F2FA01DAE98 6BE9CF92073CAFE0C07E9F4F98D8E01CF6AE22CFFF89BF133E7F99797F46B4F3 36AD21D0559858CDECA5710CD7B111EF0507E86A3A18E0C2D347F37E78179D65 3587BD6067D6657292353CC073D7DD4BF2775B0E7FC70848FD84C1F323A60202 D3558DC3681C9DB9A75830A48873E680E377C5201F6C47FA95075AAD23BBB13C A178B5BABCCCBA96E4BF9DFFF29E8A9AA4714B4E728A67AF0173D06E5549ADFD 2220C2D7B4ABA903C6BEBF09203BA2937278DD674E6EE760ECAF6BE24C6EEE31 F01ACF80BB16E04C979A09C4E4A092910E3F5DA121FD710BB18216E9E1BF3062 677A332EDD2769B817910AAB61657DC94670D56D6B6D9091253681F4024ADB37 F15E30DBC1E959E6526498876B57073C6ED0E98CCF9901E1A198FB13789B97F5 85C330D6FF458A0BFEDFEA84A5D10942BD0F5BE238538B7CBDB9D27876258F71 A0161CD549C4C487E6511B345F6D648204A0F71160DBB1CA392D3B17AD92A36B 8137CE1445620E8822F77C22C70156C226CDBAE8F371AB42A7A7DD13C56B95C7 8F281F53501B7BCC8736EFEC5BB91C556EF927ADD8CA96E817DE5CC696CBDC33 2C4A7C12FA2ABC18D902ED6A91A39BB7A8630DF7D8A2265206558B55C8F0382F FB04CEA4F8C0C9E77B54011E84ADB5C07D715BD47CD25ED157BE4A2CBD0BA74E 8D4BC16906A21B711D8917B96904FF810E629B4885EFE909BC545E1F7327C82C 5CE0F93DB0A03D339C882C4BD02428E97304776DDA22375FB49512DF95587A8D 8F0DBFAECB3B23131F964CB845DAC2DEAB78A12EF8DBC37ADD6A002C2534DC33 188FFB4C5972A3218594FB86A945BCE64240A47C513C16AFF4612C70409F1FA8 634B54012DFA344D86A43BF00D8C80E67D16AA6CA5B52709A2E313B16809A3C8 228CF5EEE29F90B6C082AF69DFC3E76C2979C867C8CF8D72DEA12B904B4CD7BF C3A85121D7DA6261BFD78AC9E649D0F4E44C4983F3C1B466D31009CA5D04142F 71933AE710D645E7B35D05A62FD7003D13064529686F25A3A3541C9F74166E4C 3716CFA8D0A54F920437DE8358CA9F73C4E333977FDB5AED7A4F0DE613C5CB6D BE3654D3C4D5C386463EF12F2238CE517909A0D54F154B6F6154E84696F267F8 EE588EA8C21A7A061DBC7F376589A18ACFDFC1DC17DCAA2B7FFDC062FA28FAB9 A2971EF4B59EA569FDCE3C5C27B96E26E1C0F50A5C897EFE97E989C9AC94EA62 84B8176F626762C23423AE63CC3494ED614F3D05C89B8ABD6A8FCD38ADCC3820 3A0D50E597AC2954C0DC03BCD9608944C49120C5C0BD99748D0ABBFEB2141C9F A596082083B7D53A54DBFB784EB116BBB8D205CA475B63214D6B8A68EE48E97F E77C2D527DD9D33B8BD158DB9EC1E4D0BD49C9C2106F8F5A8D7B17186C894917 C5E054B53E20A3837E05C5B31F030BA65E3EB65F4660A5BAB5DE8BBC777112BA C4DD53A4C2EC5E65A70E1F39286FDA64CC063C674F34FAA610FA705EBECB1145 94651C76855C71893B5C618E35D2C1E62D3DCF6B0C3F693FC25E9CC684067CCA B2E94AD819AE08745E60D9E947ED4562CA1942BFAE082D3B2227A18D04FE045E BFA16AEF5F3C2080801CC0AC5B2ECAE125643F7892061EE9FFAC02F8956B0388 06A5F42BB942E387BF76F6FFFD65159C44BD01EEC5AFED0080760B7EE519418A 15AF69068B9EF860B800433C5F319A4D8B1847103AC4EC96E5A92BA74459C0CF 1AE5F7B453AE0F56F18785F9FE0CA8182C9325FD75A5F8F16A16C7C91A22C33F F716CF4FAB7AF7433BC495C3F1D9D51B924BEE1006F7EAE654287B725E58F82A 31A998D78B74D8AAC07CF24E97C74E6360830B2E80F70F3EB0DD009051F5E318 E8D984E17891B74996A444C9B3F2F495D3C5C8A15B6BF744A99A5B24939D0E67 9E51ACEF55FFD307F9F62064239ECA7CB34A6308340C43F2F838428E9BFA6F87 F8853469B6D9692800600388ED0119E9F0A17E972F08ED8C46A82AF93F17BC10 DA59A7EE56608E1322F47484F4D555B595CB0C96405D517D6FB5F00B3F30353F EEAC18B721F4DC73E47CAFD40269C38CF1C16CB833C93D6B2248A78860EE9A86 CB5A93213075E44F117389104674362E7FA8BEE8F81013F1AEDDE1FAED6737CA 7A01A0A4E21B4FF043292BC393D6839D04222CB1C4A9BEB0F7A3F6F01DF15F04 6D818FDF54100FB6668ABBFF7D6AEF73A9DED3FDB5DFF3ADF8330167FB73E3B3 0A0731A8C5D3782A7A5FA1FE3A60B67050498350A9B8A8F1AF5B8C48B79CB391 987A15DD82A3AF09C4ECEEEBB647387B7A57438434FDD10B799FE58CC14EBDDB 3C74A77D6E083C6E27C6EAE004503F59781B23EF42F4789D7884465F34782E36 360762983DD10F3F6D408B87C19FFC65CEB9C5AB28F82954C81FBB1A3DE010B6 072CBD60B190C8F63FC850F8F09E8F0A04AD8338B27161575294BA01AA7B8FCA 03E3EB644731F299E03197A4F29C6E920C4116D7365B89DDE872311ED9E9DAA0 D14564C64E2879F074472CFA3480D436B764771AEED75DED0E7E416DA73C7265 A413F7556848004E4388CE6A78B783993406A2C1F7883547CDAEDF8757B4EDB1 9121B1EDE0B694E836CC4BD6805CC09028F30A6099995B6B39FCE5CFBD29690A E3C799490362448D0A3B1B29193569023AFF063EB85A7C1F44A800F9C030EE4C DDDCEDBD031E6C714787D342C298A343525495568A167C1D0DC1A8B8F6DD8BD0 9B1BC4790FE506F0A161BDC3D93B910C9CAF1AB7872C593DECDAD7A02348910A 6E38E1D2E30E16776E243DBB4C455C42D9CBD7563996013CC56125CA8F759999 8682342933FC67040AA7236039BB13478A4F60E2A35B18CF3CA1F3AE2C9A36B4 B13BA58C9419FE3A04FE576ED3BF1E1AC5D242220426F64F03542B976F6FCC8D 426C47C8BF80DD4D483303A57796B540D65738DFC9B042776CF36029FF79347A BDFD44FDCE6266063440450080D75CF4F58D518E03C919EEBBEEB31FDF6FE7E7 F175874E2382ADEC5B2044D74E487DCD68A0A862C459BF1B47BE8F2FEF16E9B7 005EFDD1D4E3FD2208174E4EFAB81D43547FCCAD34344D6DBB9610B3AB1BA5D2 555496386C93671ED0F3FA55DF330E53984444AA3C6A775036291D219B759453 D5540F81AFEC830D4711CB741435BB1246A9046663BCBC819BADF6CA5421952B 5CE28D7871D877F6E4DABB5FABB667AEAF7AFF0C7D70951619F9898211DA4501 2A0240D93AA06235489DC9C4BE4BADABEFB8372C8F9E1E79480937CDD1B18FE7 A1F10965E2916DFF744DB5B2AD6B86CFAC15C2E9D677532959A3D0C792F1CEA7 1E823DF82BF43CE7B5BFD6D0BB09619F6921673FEBCA117670A9B2A26F1C8CE8 CEDC915B586E929346B4C553E032AE38A16E5D523E3FBAB5D3DC0CBCF94E82AC E3B49E88365EF5C0F2EC2AFCBC3AE7324C41D533185E8BB4ABC019A3E23D8EE9 0D099A778ED742D7383790DE0DD3CC41357B04E3EF69A45BBEEB52CFCA7424DD F904594DFBDB165CB0617900DF8F8A2F5449B79B18C37B91B3A29A81A012FAA4 3460699662AE6832D2265AE6827A0EE29711DD118DB31A20B87FF876B3921131 2310DE93FD6AE2E2F2B2DC5F8AD1E9CF967EAC8A1129BEB01D48F59015531E1E 8637D4587D24ED735503C005D8A246B4173992799C8D20426CF9C510F92B8181 9D8FAFFC069FF63A91DD5FDF4033D1506C8D31D44118A8D4B138BBAC9FDA926B 3C8141627A5314C1BB586BC957AA92020251B325B5FC201A3C8210A1EBAC7231 BAC905BC7C4AE833347A0B98F0EEF976781BB7C9332FD0E65A31CDFC43070AD8 3B49644D2DC760B8D0A24A280AB501B56626751E83AF67AE7970F15A3A451757 77EDCB731EF90986082A8C5F21342FC5D15A8D0EA3083FB9DE0172E52AFF460A F16C3382F27BB145AF10EA64D388E2F35D6BFFD70534251FDF84CB58F0E4FF65 1D866D278F04F896386EED1A02925E3F0CCC2019A017591C26CFD7430AC7C697 CFE586E3CAD128E455C4D7A3D2E128A66215CA4B0B0779AA1E7807449DB6AD68 5A05C186FC7419AAA97576A8E41D4AE55E60BE96A8F7EF2A93F63DEAB153451D F5D0554806F1718046B1A69D8F9E52C4966D1064DB7C6022B66103573A0A0D75 87465C4E2E9F38EC5D2A3F02EF9D775D3895075940EBE643B0B135CF9A426B7A CC3828BFB3B17C46495585FDF20FC3A73CA0AFB8CB8C4EFFB3F5AF1893CA47BB CD2EAC786B8282A2F915E95F178E18C67C926F176130B0F4A7BF6E4711F30BCF 30819BFA8B6420A6797C0E5525F8D187BE6EDD1690BEE2B68B660A43DD1286A0 F503CD1E337DD42598BF589FB789FC23D0FB249C5794677D2DFEEF27375E8C29 175BCA45902801D469C8E9FF76E77B3A6D4457CD6F391C65243E693ACB263A44 CA2E1E7A9F0D0A9634FBB485DC4C172AF9DA72BC785F5A48A397F08E6E53C662 6D1CB33AA51501FFB3673CAC548865648AD274C168239AF68F5A52E9687F3C83 97D8D53B9091754F005BFC4D388E271E624411D239B00F62FA2D3179A0D56FB1 6C15935F4DE766207C0FA4C112658079C33080375BAB96BFFA97F867B54EF656 B04477EB12305CE3D1BF171BFA7DFD983B72C937762E518E67F989BA168C8558 9D85DF89609E4B23694E4C5012D687B8A73FB85A2F8D08512D55F07934FD7FC1 1416E9A09A19DBC6826FF54B74C5F148042E05BC8D6E083E48F2D7CB7A14D18E C67765E99F670580C1E73C098963E2C99B5A65F2D65F9A900CFB7636156C9D92 9048AF7B4EE5E38A2206CFCC26E1B00950C72DD74A3BF416757226DD259056D2 D7E5B4D351F2CDA6F3B4B567BD15A333574375FDA65FCB6BAE0C2389EFDC4309 3A955E74A4C113E12ACB6FC131449722E62D3A11CCBA313232D89E7E9F0E6A8B 43CEE7EBDBBCFF9950741F1B1397F4154FDB4EA020F38F44176811439880847D F844B100EDCE25797BD233D726F5585928E944931EE47BDFDF90EEBDEE67BE52 87314BCB5C301EDA11AAB7F37C9587EC364977635636605BC8524486BFBC1F52 D6F67A1544C6CCB787A86C16F5BD9006F90F5D677091393771AC1BD14320E8C8 FB40417EA7EF5638188C4F898002350A086E450D051840DEAE4E684BDA6EAC0A 3C4E38EE80B9A455D4A2828BBAF6B0534993D6DC0BE157983E4387A941C05477 EA6B361F5D7D2EC752CE40F623481CB12DB6F2C6723285421CBC616B570878E2 B1B0E8F5FEEB178F6C9BD97BD6FE1DFB0A9D0966198B49C46C3058D6B53BB31C CB81C9A3533BC04C5237FAD7138EFA7CE4A25781DA9E8258A1E60D14766E9E48 8124B160A694852B2C2C1981BDF4713BE5B38B60BB14C32ADB4BB71BDB0DD3F0 7BCB71FFF47B23D50325235C6E7C4E1D8AEC3CB717BA0DEB0075F44939BA1FBA 8E1A87FBB2242E2DE5967014DC127F8BACE8506A09F9F911B896EAEB18F6796E 13978D1858984446E3B4B86E923B15567229D9A8254CF57D54386CCCAB51D7A5 236303F2A2D34663E3A8578BCF32681D6AA33A1C73C1D6A802A2C2B40AEC9CA3 DE358C77DF89C399E7CA310DB5404C774D9FB4ADCC3DDA025D5C5F7C874927C4 3C088DA823AB1DF533F01062C5CB0A249D5AD6340C8F3D5C80716C075BBC6EA4 650254F80C6F164BD52861521A117A8530473A7F896EB7880DE92C2E2524D485 AE76B41493CCF04ECF190F8F770C48F5767533A3573B5D2B1BE4AF98BDA1A9C2 CB38344481422DAB6029B032EA8E65D229AE20476434DD140EEE4F6EFF51B3A8 B0C577AD02D87B4D6DBA8AF5D6AEF68CC1CC59FC926A9F7E4BAD2D2A929C7FE9 6C7E5C9BB1B47754F5E1136A03C9E8FCAAF59F1B125E9C5D3ECA0FACBEF4E620 F2E87CD22FB39F35B0ED05C5C48741F0CF7AC235F52125A06F1AD8C76B9B799D 0AF9A17D173202E6ADC7407339EE56A80BF9C14A2A45694E823BBFE84D08D2F0 76F0443306780F20C5855407062DF83C953F1B83520E1281C6B33DB6B604E017 820B9D19EE481EF4FA68572470CEF5D5D9510C24A3465BD7568A8CBD2A8D4E41 E5A3CE779DB6161C6E889DF510A2800041A334AC98975A7FAF9D29E326DC065C 9331BF6441093A5F07009243961D8FE68580C93BC7426CFD71820189114E28AB 3337346B6BB3A1037096270C8FF66794D8C4926CC9E5DD379E05BE591C4AAA7F 5304B6038C69D8E2AD3479419564AFC9E725DD05AA52D6F48FA32685 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMCSC10 %!PS-AdobeFont-1.1: CMCSC10 1.0 %%CreationDate: 1991 Aug 18 17:46:49 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMCSC10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMCSC10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 97 /a put dup 99 /c put dup 105 /i put dup 115 /s put readonly def /FontBBox{14 -250 1077 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337 900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA 87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98 076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518 9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9 CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30 40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B 7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5 FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC 81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D 5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90 CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6877C1B3D2 24030F377820DA58F4B95CFE645109F3F1B80DB5FACFD7D05AE2909EEFCF95AD 9CB286C8B6C075CA2267C101B736139863186C193E31085E7C9FD88EF8BBECE3 933542C85309013325B4BBFE9A5B606780C8580ABDA2F5D0064EBFC23939B307 08568C3B7F5F053BF367DEBA349FABB9F760C44D100BDEEFBB01F27BFC61F886 A05B2870FE72E963C4A8189809A2B2CD9FAA7F16449612753E497511227DC378 14FF12E39E88C5918082D372E253B61C7538BB00D130E9AD5E26A039A33D0694 91AA4D2571A3565782107291BE4D4B9AAB3DB1EDF984D5B64217EAA28D8B2F19 A645B4FA969DFFE2F64F1E2F0ACF92E01DC32E02769E040D6F59F707E2441238 C7973B0E5752A0F3B7C7E328F5AEA0BDFAACEB66018CC5D7CAB286824D7F2364 AFAE8FDF6961641A5790B923DBFE0F908E38FF0695FEA7BFE993EE6B8D0CA848 B7062133BBF02A6B1750F1E4B8C4175BDA65A6FEE6CC47E0BE9A2EE144103A08 F8903F8F494D6604A0BD7C2A298C06F30C4D90DEF3D2364C85667CB0DF8B6C2A 956CBE240FDE42B27B08C8787D9D3BC807FE4E4E9C0733CABDF626577589671E 64116BD5A69FCD6500B63EC97C57B9E0DF00BE29664C4C17F899339AEC17685D FD335BD8FCD875C7101451A5FF3DA0AA8D7619188EAD019351F412D77BF4CB86 7FA1BEE9FD546AE66D3B7BF35E10DB852592D917720577FB917238FDC282CA2A C139DADF9F3423E419C530BC6B8FBA73733BDFD5535C20EC95418A5C303F328B 401E5EC69CFFB2B8A28510E5F4A9435361E9AF3CCB067801B766A143D489B355 F541FF1E1F32C5E17BBD9A6131150955B35B63FDAA564E70413A7308B1ABAF2E 6D87D9A549DE51A62204343CBC7D7A38ECC5D154A01A4A7054CB6937BD77D357 05DAD31FD5B8B38450075277ED6614EC89564EAC1AD2F586D062F21EA6D52BAF 133C280E1DD6C3754C31BB3CEE7E6DF43DE7E15E0223AEA7A016B09200463C1C 9A361B95AA360DF3B174BFCED0BC1C6EE261D64AB20D2479A92702C00B7A5DEB C9E262B1447CBD53DADB8C11C6C68D1A3CFB6902F3D37E85F4F05588E6F88D64 0E53CC634BAD0BA1EE0F16E7466317DDE2E6521F5B4B9AA68094FA7E62688890 46FE6BFD6F0F733BCBCD75BB8B7605A2BA832278988F068A879872395797DCC3 91C47345BA010403760752E140D5281B766ECE69A1D3774B21A3594057C1492F DFA0BC409A1F6CB9258E4B61FEDC26CFDA03E0C6A827886B52E9EC7B6A99F200 115678FDB267140368ADF66F503FAA7057 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR9 %!PS-AdobeFont-1.1: CMR9 1.0 %%CreationDate: 1991 Aug 20 16:39:59 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 39 /quoteright put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 87 /W put dup 88 /X put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-39 -250 1036 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835 3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203 046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2 A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D 731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B 09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1 49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B 5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B 54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F 11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AC46268691C741B2D4 48A840F1128D9B2F9CF07D0709FE796B23A836417BF7B5B12D67F74453C82F5F 25F7B30701D6F6D4F4DC623C0C27D6A6FBECC7312A3CD10932FC7C10851C3C52 24B75DEA8A648B7F34F5711DB0E843C914E25663C510185BC37BDB7593C1C259 21D8DDAD33982C336BF272BAB2F48E68217403FE9F54877B243614A87E64784D 2796EE4179FBF96123D1BEE3EF89D682B427BA4F12A1318A57F18BE5DD903815 2617BB7392BC53E3083A6D26B81E4E9973CDEC5B0BD15124A5B404A4031C7101 C5A86A74B053F123C60C9F42613E19F6FA9F26C30059C103444FBD4F3CDE3A9A 93FE31B79F5C786BABB27C298F3633F1A6FEB44A520A8DCAFEFDA50F81B1A5F2 2BB04E99602CD8E636B6F5512760BE75E43F4114D57959749E5792A9843D594F AD1FF6B8007458D566CC5B213B86BC5B484E1F9074375E6D1C022AA4CCEB00E1 E77FFA2BAFCFEF5F146BC20989B2421A1B9AC14C5569116F2274BAB465EE239F B503BB298527DE89F133F263C9C34002A736426C07220A9B7A528D358529A2B2 1565077D352A93C6BCD530A84578C14C5B0D11CABAE5BBD61951F4855E854877 A4830823618D7320477515034DDAF779BF1BBBEE6E90546D45EDA07BE44A2D1C 7F6D704A5B8D114295A04C8F4B1DC8707C143E8F0D708861F2136E5776F68095 A8118A87546F68B92BA4050ED94A37DBA6D7A412AF2DFAF50578FA29D7B9C4A2 F5895355204187F33E1FBA8A4B56429C3DE2A409D6F34A35761146852B6F3614 4E53AB8B906694A58CED48FFF1167FE58676B6632A99E4C948C924E736E24ED0 92D7127F4108C13F6C13FBA180E2D485E86464143D65F18F7C2BE7674C927DD8 D39FE17E04E2C92FE5BC8F344B3D1B698C6297C0224697D32221C15F0B488A50 634CF2F7A23EE47E02CBD8B2958D3986CB0F8B429FEDA921AA846A77C66929A8 08DECD5381235609D4E48C86348D74C94719E80F76F2FD63DD4BE4D05FEDE835 FCD28D5A7B3D16EDC816413C473A8E735D58759E36EBA2F378AF2FB74E1BFC73 EB715901E131FF5770611CD5DA96ECDD1D09370A707B87C91055AD6DF2FC557E B383BE1652EC800381AA475BE5CD966BF4897D58C84D06190203737748DF49FA 1D8A82B5A6328FF6E1448B1FEA221ED9B3890228F3DA57EF9F3D53DBD427AC16 F5304F40B10FA4311114A2298560E74EE0CF45DE63EE763D0688B3A4CCFF2421 5F8C22FBD806658AF38912EA127B897091F30F7916A699F3D840B60B82F3DE88 B56B14B0CAAF5A5567EBA4E748625F832F77D08FE5456BB3516A125BE68A579C 02A0ABB6B551944A94053822D982F4BBDB86CAC4BBD2CA7BA9F4208542C51405 4990B498A20F5829C48C5854B373E4F1FFDE81AE89C920AB8121EE93191EB679 31DF0832A075274CA6405CEA6FDA723ADB4E032746FF1C75A897A1DF46D6281F 0206D7F6FBFB5F4785C8AB5F4AC587C262D69BE3BB7E90B19E1586A6655C1EB4 CF1338C480B334C56098099EE7FED6B421E7AA57FF24D98F65E542DC792622DC A5F9E748F6C9A6FC12A8189F2EB04C2231D3C404E163E20D97D0571AADFCA8CD 48808287A633ED839692F052B4B56A5EF88F3D9C98A897F6E8D10DC7AEB25242 925DC07B1043257502DB86F7E261FE8DA1F1BFB37945521871750980AD5EB888 5A8C1C44BA3ED6B4524745E8484F0D23CB576CEBE7E26A7E6A63890412B580B9 5FDC8CC91A985818AAD59B2D5A625AAA885AEC6E4B19A3F8159B55312C9988BB 0714FDA6BD652CFDB5EBB888D0F69E4EEDAC6DB15B176329BF80A89CA0FD05F0 FF9BC55311C49A00F0E1FC81C1A41B3D8B706D961C6E74A98B3130A845A7A7B1 0DBB96452AB8EF5E4E98E9A83E6E14AFA9F3325497AD5418D2A48185F3F35F30 8450314BD45D531CAD53F67C451BC1AF214C94E9B9F99FEB1256762C8CB08366 ACC8CBF019FA2B3BBEFA71FA2977C952C54E15DCF7B457BC338CBD24374BFF16 D258A8F785ED33790328455686A3445C97C0694B335B1E9F9035FC4A44A47953 F45E876C3585EDF3E97C1AA0176B78F2C9E03436FE29B946A62EA1EA5809EC9E 743EE7CF478CD7712D285882A9693D9A73576B80E67B5872F00F5BBDEDAB091B E8428B4AA21B38B2C449FE0CD5058E83D123CFFFDF2AD79B05FFB0B1F7E203FD 2750D93F2F72D4697E6B3F816E4DADC32914F8CD8536538880FE73BC1BD6EFEF 9B61710AAD6ACB492530297AB6F8926F2270A972681094E7AF268151939E9554 5F3AE7BF894526F14621133C1F31F0FA29A4DA880146344B69C7006BDCAA353F F6C1FEF5A864065BB8E3EC2B0D7DFE4A5213AB7ECC9B063CEDF84BB544098B6E 2F1D862C235F2F870CB49D0A3F39E4A5B7B46B3E1A13D894FF2211B3C6F6AE4C B7F5A70AB1C9D62BA38DC2131AD4B33AB9AD17E8B68A8A116E7A85ABB8982152 A4CE796EE02D6BA7FE8B84D86674F4788D4DC6A3D3AE8F781EB618640CE65F75 75AD1A78C1243D06DD452D6F11295060B48398B65933361080E033923F8F2425 C3AE2C74B21C8F12C24CB147E64CC28167FA2A77E7C6723BF66544055B33F46E 6CA8CFC869930194A0948EB002B27002C1DB362EB43E8B8ED50DD1A8EE9C99C3 870C2ABA0B79352553B57E004E03803D09B9EE2776E0670819A5A3E5446B31AF 545390EF8190D97344BA17748FD291FEF54EAFD856524EF79883FA2898173542 24EE10627FCBD6B15B186E448AD0A1DB235138189ED6CB676ADE745ABB8E8094 41FF1569D45AFDD2C5F330AEC4F1BBE8690A72C34BE5EAE98323B5D5F5FA3BA9 6D6CA267235E7A3364FF99B156ABC4E80F907CBA4191B5C923212A90433D8A98 FE4ABE72C5581B64126C3E3FD1463AAF7E8BB1E649248970A2A985A00F703FBA E3F0E7C8E606F42E0E1BDC0F7E7F3277FA28AE997EDADC4475B9CCA23D7B0E82 4AE6FB7BD1570A62864768ECB5D15B086F0C675F8D4F947A5D3EDF6FF8325AF3 21DE3224B8C24CCC1A205F8A944B9F0ED873E7BB6426D33AD31018B2971E4FFA B06B2E1E19D862DFD715945389ECD93BBB34F4C98BBF7C2F02959CBDE931A563 60B4AF21F544DC68F15E8F2FB20A7827271D253981456C11D4FE8978CD00291D CCF7C11924D1CC66A51DC9CB399DFEC173362400977B3C1F8F4072567C20B90C 683216B2A1AE31A4E269CAB4062E940D358F0BB5A0933A61239030CC82AAA06F 98817593279B49CC21ECF68BF4FE822D838CA5A68C63386E7E1DD996E8ABC119 39B326A20AE20A8EB4637DF9799BBE213E27988523FE5B4DD0730DA8E10FC8C9 41AA60AF990C30DA1A0ED5CB1DE01F54AEE53A20794383B7B9526C526B3A5F3D 9D30ABB2A38C86ADF7A275C0FA2251D5CBAD519514BB946A6295D47D5530A94B 96A175D1E55E9DFBABACEEDC6AF1C1B1EC08F2EE90B70853ED6CA4DB84C0A069 F6F96FFE3E4A9F256B26E30A8A8031DFE638EE15183E4400470DD744D0CBCA53 3F9E205FA7EA6B662AB40E80F7E83BF3E0924EFF0740F0A94AC5F04D3E652253 75CD014A8C5AC1C0E8EF721CC5D6FE68ED3F020A7EC962644C922C3EB2E2919A 934DB5B62E9BCFE44340BA9A6C5C99BFAC2A6390071BB0A04FA4CD9DBFDFA8F6 99B162E6A4D82F3ED43E1C5FB097F421AC99EEDB99DA08F6B3A33E545DE52167 ABF41C7D06E0673E72827FAAEC745A3F2F985B63D88D8D5710A9AC335AF1F216 4490B5C2FF6C1758BCB893798CDA889FE19CBAEBB0976A20DCCB67B4DBD3FC15 EA3CEDCB6630CFD84B7E81EAA2266BC4D3DD0FF50E7FBDD24C33529A2122FE95 9005C9FD59F3DD01FF9E4CFC448D83BE0FE5903C7381D8220C21CB6FDFFA9864 24B8C1EF9051D95EBD56D2514C9D8888EEF628AB5BC8A2DD047FDD8075DA36E2 90009D75D46F29737A170593F4E8A392053E0027DD2A2D6D6D9DA6A41E3DE6FE C76A9215E206EEC232E888E659DFBE5A3F73E35721E5DD65EE29AD7919059538 EFFB4E1BF3072B4EB814A83680DE7DBCF22D717E80F7450A559F741F2ADFC8F6 409D5272C475F1DD164B3B4C530DB38566118F73C38115A8367696669BADB2A2 BEBD6A647A964D5ACDEB3ED949C1D39876E3EE4BCC63086AA81819A537D0B7F8 E5AAEA15071DD71BA41C52B511CF3D69A47009BB9EB4C2D4CECF604490AAD19B AD75E069FD680ABE98AFAD64A6D0DEC190FB8BF9D405C84A88A8DD138C28E3CE 928E56A59EE2444D8393ED3320968E12A9998C876D805BC7858AA40842F21B31 2432520C13D1FA9715BD44B2B9AE23444AEB3CDA3ECCB1114BD1B0FF983E39AA CCD6F5762867198A98B54B9319EE1AEBE1D13D90BE771A2D4B8D69F24E22EF2D 50FEA14D8F20C34B2C6964A7FEA6D3BF9E8D4911A109117BE557782CA74CE283 A423FF0A8C6BD9A951E2CEB5F14013ED8CE7DA992D1F92E13FDF86520FB7D04E 880AD275A76713CA250CC47E59D4071FB84A58479562A6C7228C9926670A28C3 780099DD09142F1C4FB497BF24D14211553F3C7B648EB3459FEC6A25710275E5 B5EB9DC1D53F0FA82CDAF66BD77D22DB60B6D7D27383A9B366E520A3EC7F8D8C 771F55B6DA2BB061B2056A70E950DF86B7FF0C0B35CF1665E1E22571EFC7054F EA784AD83E5A4DFEAC8E19656F15DBCBA0E50E6A56A839AD796A9EBDFC3ADB58 1CAA6B88CFA3BFA809862A94404264B0C4BD46817C6F8958ABA1E2EB0819A674 1527DB2435A5700D279C56EF8F310C32089B6066F1D8A974875ABCAD86E0C4DF 0D96E4140E95612F8566801A255CF3B38E80F096F85A9416F73298C8B72E6D70 78110877E30B187C033E0CB83D8B8923451139CA4268C03D610A4EEB92BDC8E7 50980B5CEFCCCA7CC6834FA86C4040D9D2982BB8050F4EEAA0002C345715F922 5A80D2743DAC2CE4D5A7EEB4AC868DC9DB242601B376EEAE8A21DB04254A03B8 EE7E053592F015F7330D7DB46AFBE015A90F539DBDA68977A5B9C86F558A67DB 2B7DB8D1B34006CE10B1874641D30F1F2AA24591EDA2CBAAB4D8E35DED3C1DD6 5EDDC56509BF8DB85E85893EA6E13019606580B815BB7384D1D2C09FC328E53A 0CF89C389201B0807755A494FDF0AD37DC3BBEC35C8F9734E5DE86293F494C17 D090C05B5ED442FC61ABBF5D3BFE750D012A062D9A8FB91A616C6024305BB92C 246157A7DC2DA670A9893B974EDD6468F99B5CD0FEBB9ADCB23E87F67095D7A0 72A0E5D92903E8A133B16C9014825B131931DA721E3D31544C559F1A2EC051F5 EBD6022998E85B6BCC4F62CD8732C6F8317C829D70A08179CFEEFC4DB358F872 97D54E8C3022C15B91C581CCEB74037E40AF15E808CB70EE27AEFE86CF413651 7572E70AF71FC8DCFBD8E50AC50B9B6FDBD2B69BA2EB290B0789A89F17009B9C 9FD4C8C3864EA22FFB65B6C679A4263AE1EBBC9BEAEADBA259FE7050C77439BB FC5715C7D4C5AA50E27B8F22E7642C959C21BBBEB590D663E1D19D52B683087A 0C92D362D44126EBEBD5951DF7809BD462ABFD7694892F145A5B28CCD4C0D23C 2E1194B6F71563E9C6EC35AFA7C43513DBC6C37CBC2F5E2917AB63949A69E772 48A1EE85ABFE9FC88BD8355245E4F93C77FB8BAC3669ACE72455FD29AA42E7C7 10B306F1123CEA48B2F62D7C8923B4A72F49648DB2B96ABE733127303764B840 399DBA7C925759A5BA232650A6F0175E3B1BBCCE8A42F5677912633703F584CF 91E1BA76344D76129A369F343F2089F1F75E71597B4BF52E30A2FB76EE331F5A 0406441CFCE7BA928C48485BCE6B049475F934EC4FF0375E0C8E341C986C0BFF DDD38238431CE2C6C347E4FB320515BF2976FA0F9EC2D7B71128574A9982DDB8 B0B7B1F30CDCB5938528CF8EC4095F327D92852E8199EBE75354134EFE1E5406 949D64EF5BDDFC72A86DB8D3CD50D1185B17D56960FBCF2236C6823D2D55017B 6A11229CE4065B452D67502BA3CDB5D70AB64DD9FDC7C52FE6249583122C4C2C E96227FF85114BE428041FA2C86914A5D17D4E85A1A50AE73E74FBB293C7F7FC 0935E09C4A1296DA6DBFC1B8A0CC025192548F8C406D8AFAFFA8ACD4B6468AA9 23EFD2CEBE8A868E60DAC1E5F48544AFE09DBFCAB4FA476CC21A31712C4E5467 82E9C238E9F316FB059B674E4543898675A3CFE6A99BA6EF5509334623E53A26 0956A5D26F188A0F874AA5215B6FC33F5944BFEC555BAC70FF75A4EED089F33B 99C6BCEDCD639A04C4B8AC92687E21510FAF79EDBFE55C0440A2967C345CA0E2 70C472F2B5E71ED8720A81D3990A38096B0934DC6223155E8647218E655578C7 ADCDD13AB4239978D44351C26C84E57632C3C6DA90E43C8B6905F6F858E85342 141A7B9FCB5D8F0DC728323A45CBDFAFDEF1C1F374F49C917C18455A9F67ED46 C0FEAB128665BC17C8356A309CE2CC92FCDCBEA57AEAB2ABFCA14006F367207E 3837675CDB0717FB007F032A6059AEC815B7E059F6D9D54A2FA2F8F1DA9F6190 684AC5A85E9572867F96EAE194E2C2470A6895F268B8495E0A2A25F659D7F336 BCF2F3FF232EF6291201D7579D67E3EEDAE9377CD1DF4A7985403C0B06C481CD 0AC5DFA6D8060D30753A401777AB4842E4B72D69FD912FFEE599035F4BD6899D 52926142474523C31FB8F2E1AA531B88297E0819FFBAB4263BC7338DEA6398D0 61525249682F1712E15B635CEEB6B5D47CA17A86F96E5167E81B92C215D79A46 28B3089933364D371C8F7D3F8438A2BD5D49F7BBBC95CDEBD62C6CE4D2D8C8C2 CA14CAB451F12EE3A5C607427D555202514DC3DE14B02736BFE9D41F55C710E4 5C8144598F71991958E6B38C00430C385A6C696883BBB40B2302EF08CC44FD10 34ED8BDFB37205BD522FF132C28DFA72BAA88B147B04F011C9CD1CFD5C993417 EA649438D2129A62B131D5D8BB5933B8D3509ED80515174A00C5DFF80B16090D 9396483310D0420D3A27899FEAD91504BB4E47F0AE22F617EE617A395CD1E042 513E71328664C6D48426B9F227B005257BF5482598BECD43B4EA56B9CD526246 D1F04EF94C13362029F567A5A4A7BD523EBCA135A5B632488C1514A1166FEDAE A144B66F60C5D0C074D8FEF55B7A06EB5B6F798F6EE2C0CF31361E7C87BBAB7C 019EABAAE51412CB31C2D2AC62229E9D8750E9EDBB38901A849D03B46B6413B5 3927FAD29B4A2ED55CF0CAFC43925EBFDDB2D28BED2D4DAB642E501E28E74EC5 2E05049825F3D5B507DEBEB3FB7C4EE48849B4F957D6DF8312250A1E27F3B254 09780C724E1BEE6CE16CFFBFFEA9431D484ECFCD968E4E9180509413756844C0 9E4FE065C6DEAD311740716545C09BA9DCCFEBA6230749BA622099FBD86CAE22 2CFC8914594ADA7DB5CD9100C69DF355C1F0366D65AD5B7C5F29FF77AC2BB8DB E3CA4249505DF9F2B1900913567C8B81B4F57DCB0A9F6E71CB0204E1C49D4A78 DFA9C982769F19F864B91948BA17C9FC23512C911805DE99FEE6F4CB8BE02CD1 5C99E7573D357861E7DA8411054DD146B0BFDDCBA7C21B61A705AF11FB67D91E DFD051B253F7C94008FC6D9CA4E5212A7915236856412504E19EDC145FF53C7F A2BDE21BDCD750459124D3B37473952086C45E732619EE4AB5FE901FD7DC179E B842094F6FD065F0130EA42C2308A6DAA0C09FDFA81D5A1219D97F6769310536 1CA1F9E4028034ECE5B235A1A9746CE317523AF8519C9EBEE19CA302ED3608F0 A27CD487343D4671E9AEACA83F243AD005817D0BF28F9EED6637D16D442E5A8C 8DC79E2180534A27364679B4CF3B18845C66D8DF6664244BD1144EC7CC1FAAFC C0FA4111AF7340A42A9687561549C4C2DF9711358E2D7A18BBF27AD8733703FF A333C48A6D0E8B0E5AA8B95A118A9682A1C5D3222664174A9A7B3A7830D0D719 B16E7C48939049955798DE36B3CF99BF30BA5122C600E534FD817819592BC15B E1B8C995D0130978BCE27C4D155B1022B166AE2E728DFB484BCCAA65F459B546 7E1C5B49F7B08981B3B2565A60BCA3BCAFC7F44BA8F1B4CFFC19F6E9FA464478 781CE54AA05AFD90B0059321C83C420388EF2E1EBEEF6064FDEF091CDE5B40FE 135C50F6E8BFD7663E3F4C7059EAA999C06714FB226063812F18C105038735E4 EF910F204C63EBEECC1AE1D7BC788ED9220768B2151977288E8BA42E0639F294 E487FBCA7E3108B15EFE58FBFC2E38BF3E8A098B52DE7CDCD4FB563E1D65ABFC 9A4F8CAC455C6002BE8DA60725CDB3131B81EC3C5D1559FBE6BFEAF2CFC08310 6BADEDABF228F35D3AAB4C429BC3B9772BAD33AB4AC1BD70E0B257E96B4C3C28 53439C4131EF3B68DF0B30826E29FDCEF3869A8BBE3ADEB7200DE8D9CA4837D8 D5381D755F1B68C6BD5066F3B287C7789666140107E74C1BB57B8DFFCFAD3786 E84F93404F2082FA90A467D3DA781D4873B072C9258B8E1978B498BA2D0EE45E FB1825112ABD00D80B17613D70C2800DA533305AC3DE581E5E6A06E23722C95D 7457A5855AE4C9702CDACE6E7424E8E7739628B66A6A585298DE1B3F66F0DC9D 18476623EB504B3BCC9EEF22F2F81D62161A6502FEAFEEB65FA310895A834918 6020A62DA7A19BD56D1FCBCD2C3689E8B585ED029CC383F33B171AF26941D417 FA69C043BA91230BFE1F584635BB797E3687E1B3DFDE74C313A77453154BC2FD C0D4F92F2BE9B9884F4462D62CE852BFF528527B12C31AFCD4D56BAA9832C25A E3EE5858DF03F89D2C9B468A1792DBC92FD5F4FC5C73E830F44740D0EDCAECB5 B814D117462B37880E9CA4F443732ADA720368061BAD2DC5EBBF3F23AF2F5FA9 84389EA2D619F9DE0BBFCE588EECDA8F074086CD0097306B0286BA6C3A7B1E1B 1788E069AA80029517D39A1C34A172882E4DF72F9EB47D1CFF6096F9F63FB633 94D01495325F0EC22EE4B393C3AA1007E0BDC36CD2C835B6EFAFE88B54FAEAE6 52143E0F077F1042340DED2C469B0932E84C33CFB2648347128142BC66253AB4 07AE5688E22DC244365E136BD1AAFE4AD7E444C76A7E9B0A88CAA4CDB6905883 9D6F4B5F642437940E24B3563408F975E4A78B9049B9D24825017AFCD88DAC9C 81F9084847B55B6184A91CCB9F14D07B30302A44215FF3FDCA416881452E2218 313A1E7E10D63BDBDE3AF80A36B2C2BE571253BA5E29E2445DF3DE0BDE61D674 BA01E976328E80DB2B7EADF67C4C563DB4F0FCB7FC3FD0F6502EB03A45123716 EAAAEAE665DDB70C6C9277BAEDBC35B549D9D5BF99F5AFD15C1CA7D048B7EA06 00AF405C441375292CE9CCD2ECB22655563B8F54A4775A4714DC8A9691149F33 5ACE63540CBD5D949E2BDB2D5CAF79B76AB20BF2CD47BB60A4D60F039410CB61 2CA03DFBDE4B3B90CAC3C6951FFF1735B0C3A423A17C1D855BCD3EFF9C4E1F96 28D0796CE3DB55FFA12B6BE2457402B33FBD4E11501217A9A8EBA1B468A67620 38CB3EF774C7BC11AFDC2AD41B6C25737D586E58ABC5427E4A8CD89ECF2CE47F E88D3447580CF09B9349C06D9300E37429E8FA01E23F8E9A7EB54935022E7CD6 1D55AA07C66C484659217668173ED4B9A124C1ABA72C3C7999D67266E9789DAD A77EEA892496F350A013B3EC5F29BE10E710F5262E9BCC49ED04674C5AD270EB B6DD13A1884D6A06DFFD99619F1DAA570E80D889BF2DE4EDE13E94EC3D039F56 31F6533178F1B3665BD650420A339A143CC238F58A0CEFD811F07D4F47B732E0 E0AB6E4CE1939333E101826EA4EF8BD1B2A91046468D982746D880F511D7618F 4B3A8F15006C88C42F0E5A9E66A1C588AF8D152AF024D2EA6701666FB87937F7 55C45E22CC7B16B7875F2A3A7F215C50E5C14252718CAD44C84866FC3A2A94A5 8416D344DFDE3199DDE726C19E6B7C3954EEB35801C14FFD7FEF644C5B1B707F 3579DE344ED3724FDBF1ACE9F47097778E4C3D6E729778865B560D629DC33A98 43E3C6468E9F9934943B542B9FE913E45F3551806E6BA0091C4860183540C706 1C56E5F23ECC20A3BD09884DB4CB5E713B5FCE9F8E8F5EE3A2011B1B9A3C5D90 CAAE71841F71A2E4D7E5860FD41628398EB27A6AB225027014DB734BFEBD8B07 5017B427AD8510143BFD00978EB79D22078B39A424AEC36416B8C8161D4E5565 83ADDAF869C8037B7C8D108E85DC28C67CC0CD7D5B852445C17F7B37E7136615 F25D25D241344DA10D24555BD4A08CA1C1C57CED7E1474AED07B3CBFF7C5FA39 9D1044850DA1958719BF9B09DFF66341FC8978878DBAF865DB2C269EA90D2590 74C4F7A85F307B956E6ABF59BE3B3DCA6879C58A69609FE799E2FA8B72CC3ADA D9847746C0200ABD07180FEC6028490786EF5D95A7F428C22A4127098D981AB7 0319A07E15151A61AEB44C21841FD2073D858C6BC3CB138293E3DB530B16870B 1F269DC7ECE923462ACD4696A0AC9D5D871508C65DDFAF99EA280D295D248991 7F54BA5F81417BCBAAA8048A8A285BF071D6FB6181868E1E8595F355D470427F CF06571A9B8D02813368D7859E00C1796C8E9EE6E9F8B1F8459130032FA2E2C9 43C806D9D474C05E84E1934659781105DAC31549B3871EBF0343EC1A0BE3AA91 D59666EC36C13AFC5B4AAA385C1AC6D1225B6FAC8A1D8CECF878F28936BB31DC 8A32BC985031EEEFB5E5A2C1243665BF5EC263FE981662F5E44058510FDB49FC 19C1691854EC4BAED03315C9006BB19A3ED8D16660C7B758E7CE44EA3B64922C F1726154AA4FE7FE5C80118205B038485247D883720008DFCAD72B8BDCAFD73F 3BE7002DCFDBF32C77C4FD22989C1B6990DA2B5720A883A2B7893FF46BBCDC13 C86423775F421ADC51B5586CCB6540517E807BCC7331551955B1F6D9070D8B34 8A2DE1EA25BEBA4CEEE4E86ECAE2A826C38BCA32150C4DA9B834858CD44708B5 9C047F2364863AD7986326BECFBA910BBE858EB33E7871350A655020FCC9A89D 85AAD4C7AC3A5A1D6D3ABE4A1A072E0885A0FCFD9C76F97645F2D4E6C9819CA3 C97AE5B423D6FC336DC1BF6B4A7B6EDF4E6CDB2468E7CC572DD1CF25A24E4D86 4188FD5D820ED6DC9E7FF28B3FF0E81768F835767D1AD4BEAE2A7AC7D2A21443 0DC0BB6BC3342C0380741E0DB8E00A93B5B180441C0B0A984A77875074C9D581 77E6EBDF58298E73D8E4F7D0E9A90EDFE71E2913F22D4AF4C349C6819F4F82FE 088A053D9F3643E519BCE6A4479C99EDD780436D050354DCAC6BD9FF446D73D0 E326B7A769A0185F65F60B9AAF38B1FEF392664F26CB4E9E30B344C057E8B271 1E80182B3E2E6CD579EFF55630C9276AA9C98A5E8084E5E6D48D11589E675BEB 32D8CAADB0DD356231DF5EFF557563ADB88E5668EEE2929756C74C600D23302D FA053182E78B2632F16140D30D98E5186863C987B5CEB244C5D343785A662638 F67B5F899237A601554A774A30A261606779B43C448916214123EF4AA304C102 09B960B5FCE004EB87CB8C5ED612FC273783C1ACB6867ECADD4EC80F4AB4E52F 9DEE3E5B8BB8FD884B544ECF4B035D2A8849FCE4077589F228E5B18BAF182618 04E7F92B23636A1D77721E8F938AC82651F9C1DB87D6EF82B80F046C3D5CE87F D49DCED31D341CC923ADD205B5E29FBBA7D8404BAE05CB1CA944B92C10849098 9BACCEEA6BD4BB6F1A85E298C83C12516BE77C78605A4612906C0BD4CF18BAF6 7F6B843E3401CDCAB031132169D524DA6A771C5C9AB13E97EEFEE7F1F557388D 1733C212F85189293D38F5C807AFEE54775BD21E30697F07017DF147B08363BC 93D355FBE2758E5D7E2FD803C698ED5733EAF3C133C983F7EE52163667C70A5C C774A3380AE9CEB7668B296B0272B087631A046310BFE6B0C462F4E9372C53AE EFBE48D95271B2EB3C1E8B504D4F3D56F8C0ADF8FE6A5CC9504E53CBDD435532 5BD279CA878149B57B9B9B14E59071CA023FC285B40566DC570C74DEB3320FB3 4D9B679DA760BD7E35D91AB29B9FFFBF4F9F1EA059EE96261D868E3C26F4923D 3B26E33A8C98E05F17AEB05C52260D5942FA881582F97F710737839442BAAD02 32305ECB5DC933E3602CC902DFE60A1B8540671A0B8EE9954F8F58AA83634FE2 E658BE0CF42F54F10AA55662B423A8F631D2459706D84DD5C6667F0FDE86B982 34BB685D3EC6AC173A3E60235868C4D1913AD360FD48E0A34E64E66FFA27494E 6C28C16F11D200604824ED9D4469C65AE5ED653FF47FBAC7676E8BCCC84CC42A 1634A6AEF74B8D1E513737D76A1A83987F04EF2F8DB5E359A2445222911374A7 EDD2DD82A9D350B1D241BF74184FC1AA5EC4E5018CB63866AD20E417D69138CE 18ECEF9537D18E673321DB10E5DC84BDB50AA96DFA4932FF57DA489F6CD3AE06 B739C1B3164214EB6702DE282F85BB8991C8ADBD5633CA158D6D16AD45E211AC D2D6411C900C37CA4C1C88BEC4CE887BFD45E588CE96438E7C100C4A82BF19FD 67526521024467BB615FF11666EF8DF79D0989AF0E708901E3DABAD804E9D35F 82AD091FEDEA2FD0645DF99F5F4A8BFA4E95126851BBE51D92DDB8B4E3A63A45 2522B42D723B2DA6D3EB1B309139EE74F8303947626AC4E55438FB6A68CB6875 AE03D79201F27F95A90F1C64726E8BC5538ECC87921A9AF91616158BEB31D67F 646AE3703B68E7BDBD01E644618BD2048C83A50CB1C2A63054CBDD451DCABBB5 3B12D5C5DB3D42C3B9FC91AA63D6009B38C1EB1C6AE2383562B6B15B6912C889 C42A20D606CA0591737F3AD52769FCB3299E6E09C045E6F11E6E3ED6D1779BEA 0E6A361CF5E761C8843962384F55356732DE0153246B3A0BA1831E2F0D532604 F66FC31FE550F761078026504FF4FE754DF2348ABC36E47C71FA7E44FC000CE1 A6B4792D3CE52E7BDAD933BAA8EE620E48246044BC19F14C05FCC0D912024F03 2A6076F4E30FF3956C38C910117721423C4DEF88831DA8A55F337CE2D60C126A EB038436BA68231700452FA4860898F4179089319CBE73D3902DC703CEF9B6CF C63CBE242974258F6F700607721ADB43E8238E47485CEDD4625F34750BBCDE31 48FDA025B4DA88F077C53C8C720A8E94E297155B5CB020B3EBB697C4E021CE45 E25C99DCC70150131074E86A9431DAFFFDF6727B0DD06045CAC3B4E1C32E11A6 7E83BFA598AD9A812EFC7976333D75420721701A13EE25A22E245944716C873A ED3BAEDEA3D51D38A9F5B9615E93F21C0B67F920EBA8C3D188149E4F6B63A489 319842591134C5F20B2C4284C531AB375DD5C1A14F8321FBB20101846BBD1D87 0C6E5281BB5E33D3A7BC3523A9D825110590721E984FF2F594C8D3DB06633924 408FB6E916294F6BC537B734558877E3C46278F6543D86723D33511745B365EC 37A9AB31E309BB27D008EC0F179663D7DA80A93ED2ABF09416E6212F811CC3B3 E820B5060F7A20E586AB216308471F04A3E699BD4CA40B0D40F933B9143B60A4 23A0FBE43F7C03F9ECB120084AC47A8F711B252ADF822D51952AB0BF30643B13 0A761232F443C38E7C8FD1D2CAC069C2B979057505B48CEA22C06F427B591B4A 25BF9CC9BC26665D82AD06EC449F0E808820B581E46C2661A2BFDA975D214DE4 7B1A5E4938F2F0C8953B0D6DB23EA51E2CBEABF961444C41CBACCAF17B833E12 FEA13D328511EB5CE0A700C1182DA143BE521076DC56FDE705D1B428A884FC2D 24EA025943C9BA9722FBD41EDD4467AE41C205B0BC82EBDAA91DA455E1FD4674 0A861090134E602CFAE94061DAC71B37D5304E8941C62DF255F54ABA16D2D9C2 07227711019A0413B8A46223710E91097D666213F95172303DB81C6191ED2A5D 1C6A5CAB24741AC9F82F5F3E985658E3153AAA42081E7D46A3670EB7A8E03CD3 D9D942E88B48EAB7CBD0032E35402E0C61180205E16304F8FB53 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR7 %!PS-AdobeFont-1.1: CMR7 1.0 %%CreationDate: 1991 Aug 20 16:39:21 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 49 /one put readonly def /FontBBox{-27 -250 1122 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8 47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C 8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4 78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486 1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E 01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0 F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30 8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7 455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2 9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105 EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B 52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97 563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F 0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB 7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1 0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4 1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4DE3E3F6222F 7A252B780C86447859579C68E52691E144F836C1C62F19A12EFB710343D33262 1F7955FE5C37074CE5F9C7ABF1A241078519A4D7913A0AD861E0E357B50FB730 E757C0D26390E6028FAC61EB0E9414716AC8406A6E35DC70A7C1AA524804FC8E 985CC3604A2BE0A8235CC895B2B33CB7EE85FE4F2CD817BAC3D27ADD295D0A0E BC0E8D849952BCA7325DC261A785CD2305BC377AC61AC5E5B2CD3164CFF033CB 5436B8000673A4D763ED26273130702447C75A774C7799FB8C3E54A2E34D1710 CF7883A9B05285C7DF30F314455A4428A5369D92C0348D45BF4AEC5E16611D16 1E5EF015900F4DF63A58DC233BEE88417B204DBD110AACD1DE3D750F9C 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT8 %!PS-AdobeFont-1.1: CMTT8 1.0 %%CreationDate: 1991 Aug 20 16:46:05 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 97 /a put readonly def /FontBBox{-5 -232 545 699}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F0187316F83DDE3E2D27FCDF6C5CE4F95B6EE 3317BD91B7921F3039DD35FEA387D5CFB6C6E9DC84C178F3432994FC7FAC6E5A ED41A1E2EBA350178FBFEB45944511731BA827167DDAC238FC69A5486B995477 C469E2E27493B0B711DF8E267D3D5613B450011921685147114106C9472580BD F531022F6DF5432B2A4EBC51A8032C7F9689B6FA942D849B29709631613DA68D 4DF7B6F059A19304F40A3C3580CE3B51D79D42984194D4F178801720892FB6E7 61FF43C63F9256B5E9F4227B1378222BAAD4D52C77462DF01892220E11129C16 6C9E45BB9F01ED7C1AD5D8B4D72BE0E12969AFEA90FEF170603CDB91CB243173 B19A56084D10293B80A35275F41BF78A054DDC98F4A1FFF592463D944960FB31 6BE5F03960F9B1F213CBCC7FD448657FE388F10104D42B0715FC9571CC60CF23 C72560CBB8835A0CA208FE06676B3B48B093CB7FB2C0C53AF17EC5B372A9771B BFD52FFB7062B4FE0106A01A2A1A1DD4EF5C8C7623EC9324A2CB3B402FCC1FCE 52BFC8662F8A39D5F1B41C97E7CE34E16AC28A1E94007AEA7D4C519399F1B7A9 48FA7DDB671067244F09C29F95DD60668223F45BBDA8B1C452E930A9F3F341C5 351D59EA87462FFB30277D3B24E2104D4AAB873BB2B16DA5B23BEE25BE2C8128 C4CF2F4F438A4E520CD932BAC455BF8775C27AEA6C73EED3EB2F8DB5E356AE27 41B35C8AEFE73C4CD6A591AAE4F45762EBD6D3636C03F08C552BBFD0A13D11D5 491F8369B4BAB8ED9D6F1DE7DB7AFD383986C4338D3AA71C9AF2B8A0955CFD86 0345F16D9798B25156DDF826A7CB6A0CC4CB43078BEBD3E499DA95562A08EED9 7CA27B7A0CE3FA7EBDAA87A601B7CFD9F935916FED5048313D1B3A9C69223314 19C61BD2DB628C4E0DB5300B61C5282A4B81A78F7CA59895DA00F3AE9CB57C4F D9A1484BEA0A9EC07E95A5092633295C1F84AED8C6385AC4F1FB14658964BBF1 7E971BA26F87A51CA5C602BDA3E6C78B27A51954460E2D77F524470946E822AC 564E1CF430C883E4CEBAD6E1917D0342007216C06F310B87F6806E3066690694 08D9218C6D2D54FF56E4C315D3F55E1B1AFB671BF963AA7AC0A03400B2F8F860 A03642464D1AEE2256228C156984FE524B4007DCC1ACD8EA90CEC168BB95A249 70D7CCAD7C06F230544279CD0F003857D5143BC3C2AB7F98DFCCB16E595F2213 E30BF107390D67C478CB27B9FC1ADC13FCECC7A772797EFA0377DFE106503DEC ADA04FFF9CDD4772707FC10F0162E7F0E071EFE3A7E30CC474E59FE150B50E6D DE6A60E021E23240DACB1F 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMB10 %!PS-AdobeFont-1.1: CMB10 1.0 %%CreationDate: 1991 Aug 20 16:34:36 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMB10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMB10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 50 /two put dup 57 /nine put dup 58 /colon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 91 /bracketleft put dup 93 /bracketright put dup 97 /a put dup 101 /e put dup 108 /l put dup 110 /n put dup 114 /r put dup 116 /t put dup 117 /u put dup 118 /v put readonly def /FontBBox{-62 -250 1011 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82 7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378 77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18 2DB0E39996C010F3024A5A3C69C8485664A4E3AA81348AE21A30280D0E3B6542 A770F048F31907891EAB8B57DC70FF775574D6CD26B8AC9C3E64C3631325BF0A 99AB413BDADAA3B51A3E168B03A856EC7D346A38BBB0A2700A23B2CA91120B9D 2AA5BE5A359C60CD78F055253785CC9701F5D670ABE4967D74838C3B267C6563 C9651AC41D8684AD5E913A5C9C547CA225A74782D1AC62020FC38E29C356950A 00E8F2B0752CDBF81EE4ACD59BDEBBB9523AE4764B995855F3A401EB4B04EE56 B10758196CB661448A3617B83CA88C41756EF131CFCE0C968B94B6C69AEC1E9F BF8B21837BC422D766B5089D81CF35A807394A026FE3160580695B1213968D90 8ECD1611E719A871E15C6085A17906F77B5B2DFA6AE670976758E67F8A4FC362 FC7299D85ECC3C0BBAD4649B9DAB4A2FB248D6481CF0CCF274634D37A5AA4DDC 31F3138AAF10998FD66F3817B77060E71C6D8F17205F9C098D81D952E0FE3831 2264C55D73215176470D8D75E7BE6E44514984B9D20208DB3ADD4767CAC09D41 9C8DAB6EDF4FA1AA2CB285CA28E30972B3BFA4F8600DB9216487655F91CD091A DEAA34823397C3D1CAF14A0F016A4EB2A2238881A285C0A4D2850F1D942637B2 A6BD6CF81D1A3A8B0E9ECE37710AE059A3DD5D5236726BF6EFF89C97B4E1C735 DBCA03EAE44BFB56C90EC7472FA83DD86D63E9FF50ABBFE1FC07FAE9ED061B73 6B15923CAB0A8F3DCB7C607594FAA48BC5D060259663B000B14B012FBB1407D2 626F8CAF1E097ED3B0D6C7D927ACF3383909B4E85803546AD4388E63D83DF79C 0C8ACD827D22A39B8E93BC17909BCC7F6684F7AFBB6561C95BCABD7CBBF0CDBB 02C93EBC8CDC004674B88AD2DF1544043B9DCF51FD29A231D000205EA2D062C5 117DCFA64C49ED7B297C41DCE94DD83B8BD28C640850479DC7D87F5BC5BAB130 4A2A3707CD8A08D86A5A482F58A40B944CABB6692C489AB9A0FCD3225D134A52 FB1C1B80C42A64F42AA0A780EF316A27F461DEBFFB5A33B9E83402C1177A0066 9971FE6BFBB0E4A1D32739BC69ED830C63BE1C8DF78FAB37D82A34CA9C98715E C9EF417F7407A74B920CD71B37691A6DE7947B8035068C9D741C87D691A91097 423B9AF5111851E0F5F7EF5EB6500F716F675B2742F2EA6D8BD044EBB1652792 A5D763717EBFAB5B524EC2DC159E57ED0A3C18D7CC204D30B501A8E2443C451B D32376EF7964C5841425EE1BB5453F2915857F6C6F969AC2CFF51EB350F6A567 2833D980AE73160B4DF681ACD32F15C64D2AD896CFBC876C4D08E99C2C44E132 830B7DDD3AEA94344C90FAAFE4EA1A907343F08DB10F5257FEEDEC9A52D9F0BE B96317024F1EF27DAE0FDF09038ABB642A191E5D3A1ADE30948CF6B2AF833B04 C141449022FC87792B47D8FA8476D9334CEAA98FDAA6D386CF2C329D94008863 546D6870DF9DED5805C4580784171E5382B8FD3A6A04DBCD038C6CBE4E014AF8 A9BF9531267B3BDFFE4C1D5280FAE6EC1D8BE45AAA1A6B900D9E5D25AD8DC6D5 62DB0A223C909E2549B90B6E565CBF3CCB7DB2C4643FB506B43AB1FE090B09DC 194006E6A7F742008CA8C6B01F8F382F5E5D44A5EE43CE11655A844D59A4E12B B2D2645ABC3209A73C9D6643CE6C2517CA5E032A202E50EE591D967A90BD20D0 0186B595F9ED7F3737A55791A390CFB1A0B2D55C19FE04E24C584CC17204DFAB 5A1EF4CE19B751DC7A867222A1A1B6024C37B8CB2EADB32B4CD4541AD8A789FE CEF1987B972042402C340F87D71B1425C4F243F48483F6C6BDDCF40C95DB0C0D BD28FB223279B4B2198222E535CCADD67FB7BDC49DAC65F113C28A4E5E4AAB24 F31F5D5ABB9ED9F9C43590EB9AE572757A105A08E3C92CB5963A7C394678A072 51CC8F317E8999B87951B0861C11AF617165CDCC6B085FCEE3D30386FB150704 921F596935BEB40185C46E0BF6988C45EA04E5FD4498AF6D61BAEC15E51FD8D0 3E7D76109BFE11393AE4F0A258A14DD17E19A61BBC9FFB955264A4CB9BB79C62 54F6138B2B84595444AD38300F8FE57DE807F46BD7466B322F17AACC9DBDBD3D D41AA0394E5BBBF6E5C1AAC13B05810EDF8557CE10493645B6428D00C4E3C1AD E192C93C7477A280D33E8F0E0D44F967C414DDDC55B27711614AF630EA7A0ABA 813E55313185CBEED9B09712CB10533692B95EC02E62F1AE522320D1990092C0 32ED313F4CCEBA412F4C4363BCC5B05B6A22EC53D6DC9625E6A1B5F9718E0091 557FEDE52D760F323E4EB6A770926C437BC8CD83A668477B3F330273DDCFF83D 2EF231C7290C43A8D092DA2D47E0DB51CEDE14CF12C6C6B6F1F0B713465719DE E779705B06A4EB43F871A992F9B5DCF314C34C2785B967D4DC46654711E44823 5E0EB645261AA411DD2CBCE6168CA437B780D2BAAE6CC670837830122F28C4A4 93C3BA1E996FEB5613A0A92D97C7466FE9EB5405BA6D100B2E079B8856B845E7 C8E06F9DB80DED33DF5DA02DCD8DB11D5DBAEFE7E9A45F83E570E8E1FA115DDA C1F7FB44C944710E77E669A65F6F0405792F4D9D0173864CDC589C6570328987 E0D7C73A9D9AC181D54C9A98969A3014C073AE433B60D6CD0D17CB6DE11AB4B7 52DB0735076E292480C39B3CC197C042AFE54E002DC4534785847750636D43AD 78CD0A0FCB785E325DEF1164844638B9895BC2D85FC6469B27C975F7D56864B2 9E97C82B980EDF08DA87593CA677764D465C109C897388DB6B94C5FC1192C048 292E9B21A0277D7F03653C5B8BA4E1E38DBE96024D4BF4D2FAF8166F51723A35 C40B3486C61C198D8A80B019DD02AECABE1FD5B2501C52D6EF48CD123A4A915E 1BDB1C5F38652AF26C087AC40BAA9F88BD344DFBB54E33698169A158D4E185C7 EA075083FBDA2F389FB174C653656B0F0F6969382E17A47F35E4BCEFDBFE79A0 09730206320F0E35024FA3DCFDC27FCFCCA3C7235A655F35BE66F543C0E83435 831AD26FF7533FC90534D5F87C4A8EC0BE9734C0F9CFEE094E4C0A525F17B9D4 8EDCD1A74D9A477FA50B950D815E6D5D19DD3B5DCF15860DBD71958CE0FC1E3F 485F58748DD5DDA7E0D1B4E843A5B3F33E3DA21772F13CE20DCF842877EF214A E5789A872B5EDD19FE55BE80B95CCAE7B8808BFE4076AC5FB0DDDA18F9736905 08B9981C76822F26B7B99F9E16A2818D14AA73F646FA6C5C36F659E5D4C3FD28 162EA957F4B325832CE190C51088DE0E960C6C4C572FA288F5B17E271FDF949C 048402C9447FE6AAA64CB3659BFD1D7E6C4103905E9E9D7940D7363A8FF01F32 90CC92BFD59CD8C4DCFEA85D9AA7C484F68DDE7E2191198A1B8E8A27C0F8D1B4 57225243E747F6DBD26FE342038A24C5E1E64DB6A7CE71A5F0EE238CC6A4A4C8 BFE0E82CA3C232EE8D2384DDD546807A7041970777A5361C4B81999410372B60 69D97522962CBB2A07811D0382B3BC5C62C6E827C3BBD0D29F6F68FA4F3EEFFD 642431FB624E652E7CFF5BC98D903D61F5CF8649FB553EF90E37887CC7E55A04 D681C3CC9D7E4538B031E32E553DB782FC843EBFF7D002F3CCF3E07AD61896BD 7F8CA47DFA46AF166C78F2B94F387F160B1B9F70A0FF6E6822FD676897F211B7 873DAF36C8B181065E3D76BD6FF367E484E1B8234AE840DED0C342B70D979DB4 9CBE5D67FD476D9E691294E449272159B80D668F1F736C43D28CAF46BA0E1CA6 DF94BBFC9097306E15F7CDD9E19FEF9D270051DA1C9FC0DD781E561D11771B06 3D10FE112B53A6DD12DA2AD1447DCAB78C2C5A9448A854418729422AC297536C FF69E81BFBC23C9039570FC9FDFD10C762FFB18A593C7D135375749EFCCEB23A 54256277DC4A1E0452C1EDA586A80F66D75CB5E015771AF66D500161AA32719B 5DB08207F7E69D9686C0B9087E250817F3F39A2750DC6DD773DBFA27872CF87E 9A1D4B8BF11CECF270B09A32B3A6EC54CD461C564ECC48B790356192B0AC08BA EB1FB2F07AF56F3F08B0C23AFD65DA2AFF4A622434C19D1E662B496727F4AA8A 00E46EBC49467B84577A78ED782BA27B7ED1DF4A02AF0E76B4F21F2B0986F549 FE5F8149240B4224EBAF882BA76E128F3780D7B772D4CD5EB83690E95299A320 9260A51EA5F9E85F25D251840AC7FAD5CC901D38F9EE55C75FC98018058B7709 1CF96465578CEED5AFF75725BA8BDA5185647EF8D22CA3AD5BE1B04AF0D7AEDD E5EB04B2E84E48AF881DE23C6592355F62AAD449055ECF3F7E2EA8EB08C64DEE 9999CCDCEE5284D22BD83B448DF2CF10F78B545D881F9AF3F81E2C392818D959 70135E0E376572AFC72B94E5357510D0019FD3446F239F05F8B40D7ABE1627EF F5D222EF4AFA00C46C2749301A8E3DC60D448D6A78932878CFFF976D732FDA14 E6C9A4FE37E4DF7D778221335F22E5A0A78E51673D44346E8ACDEACC2ABE3023 2E1D4E80A3DC1A2207E92016E94EA4C7D835C89A287022CD8FE6CA1FCBEF23C8 805836B635575855D38349D9FE662F96FEF86FF93B3207C4B6B3D029482D46CC 7A0C37151F29E8D74F999E7AB60090768EB3938C9BB16C1C18984C83F8CD9A69 C20CBF5F7B99264ECABC93DBFAE2DC3D99474967131D920D9314E7CFB3F096E1 9188691A00872D663CC355760A9D39904B5575D067A7D4C9C2FE76DD4A028A31 C2C59C8175A3D9001077D15A810D535481731B58ED474CAC7E3EC76087325BB4 0E6871F90B0ADE99AD4C7BD3E74C92550627EE1993BC5E5FCB05AFF3F280EEA2 4EFA1A06C64401AB2194CA242E47111B1D66278F6946034061FDC730A012CEB6 0FFD54F3CBA7DE6303312F5551FF0D9EC381AA1E9A4EBFE4D7C132CF8CCF91B6 10BC6D96BABBB29300F000C530CC48440D7E3D89CF9C13636C0679099F016324 7CBF982042408A97871B9145BE29DC299F23259910A8C8BEE4450033C0E64B2A B420B3CF55AEA545F290AEC72FFA4C0404AAE427C261776A8CA416D38E934799 0B9EEA2D0B76F48AE9590C87225AABD5E5B20520808BF371FD52013663A82C47 850FDF4CAA3DB92BA04AEF661CD6B81D5181FBB682118E9FA5E1164AC86D3FDA 5D89726A9CE83E0234801BA777746EAC0AF60FE3B30CB527478889ABDCC8526E 5A6B116595F9ABE3E4911C17B6C1A49A9918D9B34FE984CF9DDF06EB4D00D97D C04191844E3D2DCCF972BF30D2D73A3EA410840FDB3BB42E5F56DFF122150C7E 82E9A880C4FE746D5A69C0653B2D0A627A7F40A2766B6B0278FF6C7C29C084AC 09D821EB1ABCE3E5128CC08C2B271FDF715A268DAB6098ABB4348104084B83CB 62D49F4C84B9A18491E0C6A7BCB9319D58E3439DDDB1D9EBF5BB9A00A8E8FBC0 EBAE7EEDB0884FE457383A41BD6890F1D89B2E097AEF5BE6E9D5FC0145C8CC77 8A91587C6E69241021E712FD064A9717D5050872784F69BF65491159B60CF21E 8428249D16FB8936217BAF22C858509CE9C9BD76885F9857076D06A05B80F3C7 A98359601504BFCAF2D2F0AFB06495CFCAAB0F54645B00944F25D9B884FA23B1 0709974B40B72A112B346632B13190FF3EB6AED7D83620C47452125ECB9D269D F9339EBB4C44EDD72E1C371C667CAEC4EE2DDD226A0BB14962713B535473B295 AB1ABA8DA68F06427CCE44519E38460B719CF3020219D48D1375DF327BE9A71B 756E06EE448ADF351A5F5BBBBE1ADB3334F9A8654C3F82CEB371A0D78B529CD4 A5138C1712CD5019325F395D69338662BE8BB257665847753E24E579C7FDF836 0BE78D092C6D6E955C07757B74D6E8E9FB004B20A2DB756FF6097610A1023E98 611C846ACE1700F1C03EB8A6E710EC904CCB111CF2CB3B09F3F4B4E9998E12ED EA7A61706259C7FEAA2D90242C64D5CF97D27530C55DD688FD53F22A04F1D062 2F7C936D9B93956BEDBEB95C14C676F29932994C56A0B97394AF9D4E21A53745 C7D1693911306B054109094E5A113DABE7A2FB5F08A1C8573684517B0FC690FA 2B43EEF9346F5E98DB82B45AE7857610B647E5086C4BAFA5C4FC32FB0FEE11CA AD5BA013CD988E5A5574074A0CC43FDBAC0435EF30328CFF19B726999ABB4CC8 A0086C0EE2D64AF26DD727639D4390382B51BAF4508738F21B3DBB53911FA062 F165E668633A2510E18362BE915583831ADEEBC25A75FE6C9945474CD4B16C98 63F12E468A9DEA27CE8D795B32A5955EBC5AF5F4848C3489BD4050FA1CFFAB22 8E177FA778BB388BFE05A7D85036F5E2DF6E4FB6041D9F82D98511F6950D049E 2CC740A41D7233652255B19098D6F78A610227EFB5748098FDD2F9832BCAC375 FFD5159860DDCA3E859D4A4274C0E21A0BC5EDD73EA5F638F649FB532584B461 FDB97482DBE3D0FB1C6F0B223D9B388AA252FC85E24B775C24732D53062C3F87 2BEF8AF1E65FF8B84E64E91EB57680E062DF4D95B7EB69DF49C5969EF4D401B1 BFA9F0E3E05AC76BDEC93A2FCA2AF2E73ABBFDC3177A5108D423E527041E8CD4 16784B4081DB354A4DF6CB23D231E402F545C000F1CFA977C5AEE4FEE287E263 6E5F15EC9B4FFEFA59F8DF76E22BE6FD799CDFF99B9DE7CC5059566116714547 8516F7F53FDFA4A030B01A0E9CBF4D41F118157506F8B19C8B35564AB4C0E669 265AAEF7437D4B6CF5E6D88D65D66129E5A78F172DA51F447C80E3FFDF8AAAA3 A548A15938C146562A110638BB100E6B39DC4588D14E936475A262AFF2962F50 75750B6EB2B77C4FEFC8000129AA22B773ECADDB6F40C8E6EECDDEA8563EB616 C897B52C81EAECB308BCF1AFB670FA567882EC577BA242B8C092B43C17D8F5B5 C82AFA9AFAE3ACF378644C4BB28CD51958C87EAFD708E3558B00A7D624BBC5ED F88FDA5A6629E82B55F0B05032186A5672863D344D002BFC86C6E4E83F305E14 829A8A6F19BAE34E3526DC3B0011049559F156BD08BEF383BD23B4AE1F160917 5903A87A9054B3C4934C20A2A12B3EAA52682217A9B6E4B4279BC168E72B54A5 40905DF94E30C3058EDF5CBD612CEBA426CEFBCBF76C364E8B42EB5D3128A76C 30A6875B31208567170B50B1BB860ED4E84436946AF3E4E2CC594D28887F0DD6 29E358E20B6D2BE494CDB18B408C3DE35675FA7E774FF08BC178CEBBA5CA1D76 EB9423F28878EB308717C5B8973A1260DDDF73E01694C6D3D5812D0E9326B24B A5105D8A923730FE95123B949B3C235A59D919CDFE841EE97F62317B219EE4E9 C20B861F99E62F18F8F48B875D9BC3FB30290D42FCBC716F77EF9D1564E7E186 066FF691C92E429AB26C3F96BE1BC68127E9A746197A635B216D9B4F7DD660A2 CA571A908587CA1BDB53A0B29FBAA2A97EF52C5DB34FF6073496EF7BC7E1A585 F18DF5D1B2B92AD1679F9187774F5EA7A92770EE9902AFF1A210B288232E92C2 FF38BC7D6DDA8E75917B48D448BBEE5F15E2FD512CB6A96956E110CEFBCA33FD C3F363595C34C30CDB6966014787E926DD2690D6AE6B0F0B945BE2C4419E6423 B35AC87A168D515530FDE16F87FDE438A579E1C24E5746F3BC69DBBA6CE65343 AD54198A9E74D5EC6009AE3DCE24D3CC9672E5FD0930D7D622CC0F093B5D9488 B36086A5E563FD3ACEBB5573C2A07590FB12C50EB09F3413F968EAB2140FBB87 43197132F839629909E73B8CF3DE13282022DFE7AA073E8764D92BD3F08CC22F 8D3F55320CAA5904EAF87356D0AD6A0E23A662DAC8758CE7F2F4B791A9ED93E2 50760BE1F270C5108570A5A0836BC3969DE378A7C6F82142C1F2A04DB7AB7268 0E587B969B48E16A7EB4028D6F71AA8FDD8C0AB4189CA38EB4A321CA087B2B8F 99785B86F0C49F5687ED9CF37C0DD01650C423992291A0FE8617D4A84042829A 3F7E3155B330708ACF52B2C9FE86B4902743927E5D672852F3B333A05F4AC103 F85B8A9974E1A3570FC3FF9258DEC0EE127737E1B88D5EC850ABC41E10CEBF5E DF83EC4F48B0D250FF65C228FE594A53A3F5FFA223B6829C0AE37F4AC5D4C015 EF33A79677D24ED59BD19C952C5F6D223A12D59198B12EC7BCBEF553AFB697CE DBADBD1C6BDA46737D6F0789997A04E480A48076C30D942011FE8735D6669FAB A5220545F94234CEA4190A908964778F4B19C6C7E7856A7C20F57818A55301DD FC7F746BED448C81ECE1163CF687BF5C2ABAFE9EA027606FE41D844FAA205D32 D461F99B8B9447C027D347255193003379199FC9D62DD7566552311A03F0BCE7 93F86EA46E2B111F682425DEB1E34F227E410306725B89EE10A10996D0AAE0D7 65896F910F97363B9464914C1627D6336BB8F09187F280096696F0E83F7067AC 2BB763046B58C206B664D37CA9AFE9925055A00C997A12A28CABCE6E96D97F78 2E030CCB2C728053ABC09F42 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT12 %!PS-AdobeFont-1.1: CMTT12 1.0 %%CreationDate: 1991 Aug 20 16:45:46 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 45 /hyphen put dup 46 /period put dup 50 /two put dup 57 /nine put dup 97 /a put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 121 /y put readonly def /FontBBox{-1 -234 524 695}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F0364CD5660FE13FF01BC20148F9C480BCD0E C81D5BFC66F04993DD73F0BE0AB13F53B1BA79FE5F618A4F672B16C06BE3251E 3BCB599BFA0E6041FBD558475370D693A959259A2699BA6E97CF40435B8E8A4B 426343E145DF14E59028D4E0941AB537E34024E6CDE0EA9AF8038A3260A0358D D5B1DB53582F0DAB7ADE29CF8DBA0992D5A94672DFF91573F38D9BFD1A57E161 E52DA1B41433C82261E47F79997DF603935D2A187A95F7A25D148FB3C2B6AA32 6B982C32C6B25867871ED7B38E150031A3DE568C8D3731A779EAAF09AC5CE6C5 A129C4147E56882B8068DF37C97C761694F1316AF93E33FF7E0B2F1F252735CE 0D9F7BCE136B06EE967ABE0C8DF24DCBBF99874702ED252B677F407CB39678CC 85DDFC2F45C552BA967E4158165ED16FECC4E32AC4D3B3EB8046DCDD37C92FDF F1F3710BB8EF5CA358ABACA33C7E5ACAD6BF5DC58BDFC3CF09BA2A38291D45A4 C15FF1916FE2EC47FDC80911EB9C61F5D355BEDFC9DB17588547763AC5F0B1CC 12D2FFB32E0803D37E3281DA9CE36C5433655526ACFB3A301C56FAB09DF07B5D 048B47687348DEB96F3F9C53CE56DDD312B93D3918CD92AF53FB9461864D11B8 0138918D0B1270C54873C4012CDE6F886DB11BCEA04B023EBB43E0D0A06BE725 741D08B9DB688731A6C9886C15A83C28DADCC81385EA239E045E8F3670CE03DB 9EE77ED067036595C9F3B1854343BE3A12E486B6E5A2F8AC44FA5378D28DCCEE 306B0E283AA444423F9A4FF38E2B56DCF67A39CEB2C643DAE86865517D5D0371 CB8797208ADEC637330A3A57902C9A88EDB75A7C16FA9850075D9F19578EC666 1353CC1FC512D59DFF847ACCD04A1C36D8C678E99A0CAF0B7AA7DE226F220BA1 8145EC4F43D390DE65A99750CCB976DF6CF79A1ED03B3956CCDD036FAD8C4020 94448A1969529E625126AA23205D65829F9C640419EAF13C08981E729EA1E006 2D2261D21A5106397E0B252A1D5D4DC72D7686C6E5BD72EBCF3B88060429C02E 9237474EF4021545C8B1473292C8B4F5A86ECF68495A50C9A33C60D49713451A B1B95CCA5B66E2092DB8C0AC8C92CEA275D9F50670D3DACBF601C53C2F737885 BE986233D033729ED21CCB7B0E329AA1DEDF73E7BA502C1AF2A48DB1ACF054BD 109AF4402BD380183CA9EF3C2CEBC041764A017D56C9C49492B58A34F80CC409 A336E14BE6A5589582F1D68A72D55B2C16844A9B242A50D6BCAA864B700333DB DD3AA9667630F07EE742D2986D6C2C178B8C969AEB01FD69B65EBFF5EF8E1FD3 9CE443DA33161F7ED5E48FB03F33E4C10F1D0FEC65D5D36BFA719E1B8DC734E8 8E89F7D8E1BD3253CF3428854F178E4AEBF916D17E4668EDC79C472B92E447AE 91D17352FBFC8DCCCDE0D49D3B5ACAA24D2B16AB81919CEDBFAD9B73CFE9F5BC E34D67E3676AD5186B21053CB5E467C46BBE1BEEBC0E628DB616678CC6D0EF60 03A6E9CBB6B392BEB7FB8E8ACA451BBB2A0BD796CBEC995CDB5EA09508E3061F 2419C06082708B23EAC1927ECA3D07B8B505DDEE7BEB40B54B1FDFF16FF266A4 C0ECCED523450690021E5274A0483CA89DE0B328BF401FBF787CB92DAE99359E DD9139BC23E443CDAE380F9F4E0616D24A101791F0F856A0E02E25B15BAFF333 4E7861E3092AE03C275D15169FD927CC6E86758846E22CE6F36EB1DE2D55619B 83A8F89C58321AC26E1D35F306F38035100B104E782D2BB8F2A750847FE1A617 1360BABFDAC4B0A1F9A9FD9700FC9F371BAD46E8D3A7DF7874C0B1FE2D565115 E56E0302A9A0EF84BB3E9F35953BA85A215358BD85A8D72F47AE8752753D8B53 164864475F2A54989762E03D16130040B091C55EEDE24821549C1F766545A987 832D44CF9557AF60685C108D356C4EC4943379C4CBC0A0063D55513C4ADA97CA 96A041ACFE92EAB64B8D91C686836C0E70F4F353B7C550B57D933C7BA7D2E874 DE91390D49B49375D634768F955E9C37011895214079B0550D1A7B797CE74AAC FF11E00C50556E87E09E3D0C18F3C590CF8B6CE518CDC10C2CC674140095A3B7 65E8768878E6B741C8F3C457DE96AD99EFCACD22E3ABB2377A63CF9B0F8C4D81 3CA3187D0EA3FB76F9DB6209E6BD462CC8167E7EC0636D3BF45E7B0F7EC4AF9E 65666B9D3D9ECF70EC8437B70F2E6DBCC68A96E10223B55C0E6C112F3CE81368 4EE8AFAE613F6BFCA104FDF696FBAB3A2A2081E348A1681270C5D76BCE3B4034 0292FDAA134C525A0EA3541BA1E2EDAAA35DBCAB607A80A7D022C1D239B334D2 588EC7CD9C24026FC59F5A5001F839DD189D719BB982E7B77F59D5C49456E42E 220009928AFB49F0F3B7AD46630B8E81A8E540F25EFA5B11847D508BCF47F03F EAE135ECF9A10ECB931E5AB3005FE675CB936FDBAC5143FCA1577CE12968CE0A 72A8E09569130A10F74BC2834665B35810645E0F830625BD979B32BD75676F98 AC1CB6E754BA9A133D603138617E374366160D94812AA0ECCF2F828FA8B2006C 6BFF184E718A6D7BE45EE0B8C843468C6EDA5A3B1342C028B54D97862CDE4A9E E8EEF934AFD84F38924460D99E8445657EE19F573F8DBD247FB47A4E42A86C2F 953E9192C2696619D0EAF84AEAAF001CC04AA3CEB12B7CF96608C4BDCAD93804 22B74AF4A40DA3EA630EF90B8E3D9D4F87BE54BA13B5FD4711D27886DDADA67A 71AFE803ECBE23C5D8BF8EE533751209119552772E69FA2B83BC44E8727E57F2 013FC888C864ACC9F79F5DD28F8E9B5D943215918B092643BAC49D564CD5FCA5 0F7DCF8C9F279CD792BCD323C7EB44AA0EF21AD0C3EA63188D07CDD69B34D44B 8F607B7A4B4295FED3694B2BE859BF329435143B68BC052E67FF5852AC1ACE2B 4015684091641CCFF6F6C7238833C8EC4C50F45E91D3A789D472CC4C3EB0AF0A A7AE19988473DA6944ABF286025D0B128F41900B839595203AB0B86F7BE2A9B7 3142824A7608938BB6687EEE9489323586C1CCB9D39F6FCE4100EDFAEA894264 D13197A4A79B5D148254628556D534490939D0969496EC1F27FBBCED177B650F FBF0B0351C20A112604860B9F89C6CFF8B5DCBD1513EBD4AA5EB688843DF5F94 E2BD9EC54AA89286AD268EB121079494BBFE2226F3FF539852A093582A09AFD7 8B0F4D956A73DCCB1FFEB9003E5A69C6A1637C19F0E6EC538DA5FFF5F13DC7D3 9066C0543F524E73D48CDA40CC1BD8BA154113AB041AC525DD2E6F7BF6039409 D969A9494879E92B80DA5523121286842DB13052C4B853DD724B9B6855825DB3 DFF113FBAED2182C0FBEB6CF5C9BB0AF58793D2E005717D6CBB30710E24A620C ED2A2A5784D4281FAC189328F47B5B302429D2445E4EB15D3D6C32284CCF7547 37398701611A81628EB7937BC14CD1F17221C81FB95AB7D1E7B0D140482635AB 480DA51C8B63ED4E3F40E8CB4106D31766135420E4FBE859A0668FD9FD1DE7A6 B922563A4CBC2FCFA0D688B5BFB47C179E3C98691A3F0ED762364AAE0A64CBF0 13AA295EBC07B3D0DE1416A629AD7C1AF3098C4C1D6B89606905CCDD9FCE1CB0 B7E72671FE36D3F74D68D409AA9EBF9B94EE8A8447EFA34F5068A424B643A842 994DDBD21FA88295C0A1EA4C587A14C1AF270BFF70BB2BBD6629C760D9CCFA89 571302ED016B36B4856D28BA7E8012025CC7F00137C6C17EA65C281AF321524F CCEB8FF657B973BDF7B74E8633D104862B94F69CC2908DD5EE46597433F64017 81D360BF71255A11A33743AC639DC0A161FEAE40E28E72945AF4212B2599C711 78D5F1E8AB9171F64BC0EE18CA4C2CFF1BDD126B580539D84920C05AD85F4E79 EF3B47B81E0328E0731154E62EBAACB0B4B78966D003D8BC0E95A5E1500D8A65 46C87619AB596C3A9B1E4049F2A53B4D613C1B0F7CCD43EAD5BDEFEEF0467AC3 34205476FDC67B53755B44388033B315C0E0BCB7AEA007C11155B20D22AA2572 EB7521E661549F53DA826FDB1C5F23EC646EF2B68EED20C0BCA23CD27E3A6A78 56F4484F3E045C4BF77F9D6687CAA070EC0FEFE052EADBD6B27DBE5FA734529C D9FB9B9A9A880DD696588FD7E0301A606FE9E21580924E24FA589D738FB1B532 12C3FEDBD58FB1C11C02B80DCBAB5EABA4CF22A152CB0D9E6911AB7318C7A8F9 2BFFA6DE576CCCC886885610E32A693A23BD0FE5179C89FD0CBD09712866F45E C1D793D766AE275A3BBC2EABAA7F824D766F0D4035CE7CA8E968DA47189AE4A6 05BE6390D5EDB1FA5EF23A1CEFCD8FE1D5B7465253500C08A00965345E1DD654 C1B9A46CE494BE85F5BFB7ABF40FD9A85F429704C83DE82272E1834EEB3A5E55 1BBA74D660EDCB87D5C2C182AB1EC98C1BBD8B45717475F5E04FA5E5E0DC77DD 8A94D6456DB3D5F32AD8259BA4EB3CC51AFF89158FFDD895ADBDACB42CD19277 15F370F82F4C188B2B974A3B381EFBBBDB58A711B70A15274C5B22F6DD7F00B4 3D9E1130091858262966E389AA213044A056F1C4FCA042EF1FF065872F2EC57C B4F67CD982B9257D3F792CC4E185F7CF81A2BDC01742E530A1E9E96EFA1BD539 F1623E9E73D5EEC5D2C8445D27956F4D307002EFAF3C9C83FD8C7684A1FA71C5 D4113B6E048A18486CC3C1A05C56B37B1C688867A306193F55EEB01C845C92BC 8821F5C3D66E1A3DF8753E30B8CA706172190948F7B42E9C3CAB6E62494972D0 6B52332A1ADED17965484EF3454D1A44205C61183DACDFF072894CF4227669C5 4CD15981875AF120A9F383154900459966A8F2D7FD7A43C16DA178621C0D384F 243C883C7AD4356D6D1F94A77B032239003556406E7CD0F35567CAB62FF557E6 8895E951F17283D7F75A8C88380B2163CA57D157F281F0A4BF1784C7A53BCD2A 6AB1735861E1C038FC7405630D4FDF518ECCEB3611BB936E44DDE904C6FD5965 3097626626B4C5D46463644EB0706177DC6D4ABB8FE9BE62D8C87911DD671BEB D09F1B5D9954A8C7F184AA2F1766726B237B558C9252A79A494A6CB46AFDE6F7 2830052B5AAD88EBD52822E3B3C2C996AD188368D81D09B6AD7E87EB7D66D1B9 141367065E5922A25E0DF08E9E3478C881F9277496703F813D6F1B1A1DE98790 AC5E008CBE312AC9BCF7859B1E90DA2A28D77B55A331AEFC90350E937C16AC2C C44CE5D98668B3AEE7250051FAD989A05D4069534E49495AA8C72624EBE2BF83 EA16061C0399096ABFB7BF1AE2429569D7BEB42A7792B97A5F21D372C62B9481 430286E68890A8339A0A71CC827F3369CC9E30954375106ED9209B9E5143A2E7 05DC5D4EF73D51C3095374EE8BD86B9B 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR10 %!PS-AdobeFont-1.1: CMR10 1.00B %%CreationDate: 1992 Feb 19 19:54:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 12 /fi put dup 13 /fl put dup 14 /ffi put dup 33 /exclam put dup 34 /quotedblright put dup 35 /numbersign put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 61 /equal put dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 90 /Z put dup 91 /bracketleft put dup 92 /quotedblleft put dup 93 /bracketright put dup 96 /quoteleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /endash put dup 124 /emdash put readonly def /FontBBox{-251 -250 1009 969}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C 295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C 4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF 2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E 0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B 43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC 96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5 20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4 0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20 3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122 A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379 5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA1566B96E221864A 45A24ADAEC63F61C9FD18376D3984449A1F998C318A8FE36D0D5020E18A49625 0F3BB603BA1F3E66FF412F6A32433FF8BD2968D79CE4273AD0E0CDDA5153C2BF F8A46A2244F9394A49D339F763F5A7411A3C29336B21CCB01723705AF589B078 3763035411FE36AB5D744E81379106890688CB5BC41184548B7FEBA08DE7288E E6570FEA20C51FACE8E8F824BB61A4A038AB817C47B87391611B77928B2565A9 3B27A573C05D36ED01D8F27CB2C793370FA9B90021B5696280A55F2CB6117B64 293EAE0EA5A243F56FD007773CA35DF71B3D28643C25210CCE25F37A5095D6E5 9CAFD99DD1DB0D7EAD454C13464DF6FF5DD42339797AE5AE467084550FC00139 6EE818C6365007B2FD6E26285B832CFE6EA7E99665A224C9813C036CED262639 3FB39C1F05FF8F31D2DEF37BB9B883334F51EA124581B786A3D5FE6424B19872 AE7CB657C8D9528934B990B94FA4A6D61BC9D2CA9B4E95A22CBAA066043F44D1 AF32F545B9E123536914A7FD7FE96F12039EC25128C810BFF546AABC609DF57F E19D511F324E32956177C4376D191C691B9F0B21FA84BAF3DCBBA536CD710A80 1DCD4C83C02E69A140E1A4CFFA3B012398F21DDD96ED8060DB98EE133F430022 41BA1DA473F1C99F0D6CDBD35188DAF712AC83E0EDE08EFC3CA2B4A21EE55692 CF22799274A5CFAE84C89C937AEECF9CC71A328015B63C1730FA68A18871E174 D035568A73346EBE4EBCAE410A4F2505370A0ECB487FB40FD823065AC56CE66A 9D8440C5B3F74B855EDAECE69835137D4D76FC0FEBA53998F57EEF25C7E3D9A9 21BFDBD66C84D8AF7D8A3B79FAA9DA2963FD47689E519FBB2B7793CE6DE04A5C 203539BF94A5A700E65B5A5DD37B051EA4348BDC4CA39909ABDF8C4102A58FD6 661206115F7EF6C29E12408BADB83AD40071F53B501C15601338467BED90B659 2708D01CD77E109ABA63C19FE12606511639C5D9D5522C80692D1CA874E17B9C 753AEEF13718DD36A008B2D39D618F4F766174423AE972CB619634766A5DA025 F9682D9E2A3C752D0F6F18B0D58319FCA606BD6DBC4F83D19DCAC84A6165B460 AC1A0057B12E2023F175E6A51FC12A4852043F6F2F2625ECFF6E866293531437 1C060C9383278C81B8DF68BEED88C49F86B7617C5B938457D19FA336C616D2AB 0A430B489EAE7998EAB74FC8C037550E12EF9AC540FD37473DB1A44B1747A4C7 4687624D806FAC32A53BD65A333DA3732ADA2774D6621BB59BDAECA5637F1F41 CD2AAEA8DB9774C2730DBDE3A2F9499C719A0E9D59FF37C4F4E6E54D5EC402C8 6599488AE21DD119CA2BF54EDB306B26351D0CC4C82040835580087C60327110 9F8A1277DDBBD25823AD30F0E960604BFF9CE454C5C841119F73535F3093FBD6 8E47B1357BA56E3D906EC70D68E85465479539187B56EC67A64DE38FC444950E A82B014254689B676BD02A3068ED7ED5D4C9CA1839ACD730A1796A6FEE8905DC 73D95625C5F6B4364B1507A313B56BDB2A1DBEBD436AD80F31439C84BD00248C F900452374CBDC6ECBC496178471EDA30464C1C4BF38936EC7E7767FF4637CD0 34D3C202285C0B3ACA5515977C253F00DEDD878F6AD84BA9A1041553A3626EE9 A5B4C881E77FF893293253F9507A3B8F955BF288562B67E2A99DF65D86D14B48 DC7587B628505B75A6DFA4CC8DB2CFCAC62ECA302FF5FCAB51FCE19FD7BB7675 D747A66872C49954B0C1547A8759E42FD7219E7D9C87F62451C47B13B46D9619 D0CBCBF138ED5CB03C8793626FBF6B4ADEEC391FC7AB65269CD899FAFEC8A9D9 DD838E4AC1249C33E3CD4539F09989D0407AD5A9A3C99BA7A24F62D428406A61 862D66DAA7EDCF0D8EE84B4399BB7FD1E117F90046F53CB268327B3333C0D82E 6BCBD0A6BBF76130D08527593DCADDF3B1D76A9154C5919562D5BA8767A899D4 DF546740D7EE9908EAFD91CE8F707A74696ED0DE86F6BE6C1E7DF1534E1A645F D2315D77E06A87CF2093119D5CC415783F73F3561E7D336E3774570D50569DDB F5DC496B875A91F2A2074DB8A7E44F86698BE3701727D63F644FF0DF38ED505E ACB70239F0287885F27B6D1487A9CDF5817F92866613ACD932B6347F5857B242 95C3C47EE9AA298763F9BA372E0215161696CCA5C5EC4CA9088AF24D18AE43BA 1D0F9C25C23645D97AA5E9C05C59FD2E7B5CF123048FEF61080F6E16AB0D852A 0A0F0DC41D08B6DF137200563D61539C3B5DFB979889AC756B8A42A81D422DA1 9DB2215B060FDEDE2AD01D4AF60ECB81C94B66E1B8036B71CDDC8721E3D270FD CD92252E2F73EB2CFA581A0AB5B196EEF05E926E3A8C45936FB43F7E726350B6 FF5C9D68CC477F4C4541E37210CC0DC917B9458699100283BBED7DE5634B08E1 E8A1275815A358B4C0D3787313C850999DF7330A5165A70BB5B5104415A5F973 3160B501075FC60DAF1C8C6DA3A674331DDE8854DE916DDD0491906F4EBB7F6A C56C4A9D6132320E2E021CFEA843F7C56203E943D3A9B12D8321EAABAE3580BD 58D81B6C551BB86D2FB83A3E6B4924EE0D07E961E5235E7D473647322CC62C69 EB8DDEA11AAED833A80339E58330BD4AC7BC67B692ABA6A34D4D2D7A1A279A45 91974DF964E64592E3856B6D72B26D6E16241437159F3A09A5F30A4360083530 C76CD71780CC61C31DDE51A144E6E656F62A579D808F5FA729F1A66382EABA98 B6E376765D96FF4015BF46B3314B72C007A8DAE08A2E29F3461FA56B4BA6DBAF 6AC06F4C94FE3F2D692913E13F99B6AFABF801C0119625C51F8015E35BA453E5 8AD266F5BE4EA6E839C605AFCA7F11B673E51FF62A17D6BC824119A89599F86E 04D3DF374382132A2F1FB1F9E307DB10AB21E627C4356DBEB97C0A6205AADC11 22176F33DEA813908601A242263A845256234C6A3C9242AA2811F9E43BAB934A 024BDEDA3CB1E7DBE07BD210EA3341582B6D2A1577185C01E6F38CBE50E63DC5 0C27D22533C60F2FA74E15A9098F5B0AB07B31A098A88C9629F2BFE3E51379F4 43E54F4AC11B6134C39EA3F16B0AD01160792AEE382FA08C171DE8FE8D78B8BF AF4B630DCC09B8C548ABF9AC0ECE250D4F18F481EFD5AF1F00B23DF090B57BC5 7825A72FB1E529CAC192DC16ACD2D77E8FC158921B4E9073108E69D69E191B7E 8E1840F83F758C840A0DA59252EA309DF1828E5C01FB9528AF8EED2A5DBCE0B9 8CFAEED4BE7BB81293E49C382F8662548F7CB5579C809007E665A50BBDD51B2C E1756BA9E84AB65F970FE5E4282417D5006EF7786C02D0817D3841DF95E00C87 CA35863F66C06860C9117A4E7E5008D45B70584AE3154BFDCA49006E9548C978 D25EB10052885AEDD07F8A050E5A64C5BE3270EA594D79CCECC92996C2FFB2E5 FA947080F1EF2335799A8DD8BFA215877BE32C2B5A633153F1F8EA8C93B8362B A3C7452B8D0AB8E6EDB16FEEBE51B64FCD0601F8F9FA99EF4241CEB58F829128 F21AAD148D8D681F84E51F5A53F6C13E5CAFEABB18CCF22180C0B911A37624E2 5FB908863CC80ED9C93B93AA72997D13FE0C71F0F38F274B638D461A44142142 53CF8EA0F89FF54F775FBAF2540C02E895D0BD75B6F03DBB65124BB41F8743FB B67D53D6DF9A7D134CC7858F32872969147FCF1912C54FF72B609E1A10AE4F61 7068CADBBC35946AAC508AD9F33FBFCAF695F68C279933D9CCA93229CD03282F 5E5343EE96D7133C43AB880C39443F3AF6E04C4DA3CE7D929D128D1215700E45 F297B6517A367B9ECBB65C342E19A3767946B9DD60876E832524575E0289C388 FD13E3132A1D3DF3F36C77B642D24B0ED5D1565675D126D851A443ECF57B1806 FB9F35F99CBEB2FB577BB977377D7A0078A6882D81E44E9EB7C3CD28D1F24090 744B6CE1F5118F08F3E7F8F87D783C0FDB032942D78219CBC36C704AB9D62B8E D908D6D5490544EFA10B481C6DFC44650EE3B24C467C67587BB53B2F0BEC46A6 CFE5F4DAE1BA4F2F53E8E99C10DD03F1A6B8D6D7345FCF2ADD777055BC911BD6 78331DAC5E9D58A574BA42EB444E2E6D9E3971F8A0995E552D38BB18DBE605A6 05598018EC62C0911BAFAA8BEF2AA3026B574A05C06C5B09EA81EA2D44E526B0 AF905F7344DB4C8E665DE157572835EFBDCE23C08182BD6C88E754D33DFAFAB1 D598596BF72D234C9B3CB4F863EB0C0D82C0CEE9BE01B07BAE14867B52B3EB88 D13930435D24F524FC4DC2306980CCAA8EE2E162CF5244F02DF6F2AA2936C03A 86394C9A41AA3B7FB94D21A8859FE976738E93D43DC70323E5601FA2B4493F41 0A1C509CD367B5DB76E015B34B1F72F560405453276665A5BDACCE7A0692A0DE CC922A68F2D93E90AE381C4D1AF81E9B89875919FB8793BAC481F0CCF4E3C5E9 1029CDA7061B66473784FBE92A10DE8CA6C84BD94D1E3A13D192C830EC5F9028 E48426D99124CD83A8227580ABD894E9D77978311A635A827E12A72ECE2F32AD 947DEA382F773C28E06DA5097CB8029B5B72F7288B42D1C916558ABBE10CDF74 56C51DAAB215852BE0ED396764575A3AB5B4A89F702C444F6674DA9D73376AEA EC3198028161BA0390B6B2939E9875833ADA7A21ADF4E6D72D1C8DB3D26444EF 543CF25E128835C6014E72268E92DFE53B8738257FC352007C17878F42AB21D7 0A72AA2461CF6EEF556B006FF1804E883918881AA448BA38A4BD8555F5A67B19 0FD667D74090CD79F1AEADF3B08E61747435090CFB7FEC2536E3DA126ABAE2C6 35697ABA2F3D7934D1C933B9F125091F6BEE1A1EF576FB3EE511F739DD4697A1 EE2218F6901623F9789B62E6189B86DDCC11CB4E8AEEB13707F4B20B6544C76D 23ABA706ECEFFEFE9A66C39FA17B9716C7B87507AA5A4BF61A0A9E9784ECAC33 77012994981273788B497760BE6287D590D5D0ADBB3BDAF1C5162243CA9090C3 F64C2196D935515A4261EDE262CD9DD5B4AB530A2A513B96FAF5E2240C7328C8 D60B475DE444CA05F9DF021B970A8FE30C6B4DD16087BBC61833CD4542E73672 188CF60488746694A23EA1FE198FAE888EC3CA3C409FECABBF89436F560460A7 D7FD3A803F77CAB7BAA903D7A3DA3390F757E8EDAEE43CAD1E46377EDF0C552C C47B240107E39EDB0945BBEC2F1660254F053EEED312DA47D844631826C3B56B 42A18F68482E2012B460C152F413F9106B392BB0D255173E8E37EE818993A03D 8CE853111C89C3E2F9125FCA3DC4C999656DA1C33991F57DEC5AD6926F45EF87 E624B63EFC18893870E05250AC4C3091656874AECF48D4587E51BFBDB09B4126 F9CF451C2F87FEB303E7BFCFB0610C332B05150E1FD9E4D73DB8F911190984F3 C660D00B0710647439053139B8CCBA7507212CBDFDB6D5473410DFEFC59785EB 4B81C585763401F95F364379D19CF541711332C1D3CA5EDDC643A9CD7434DF80 3702AD35647D3A794BE2E25323EF239F56699CE11B08DA20AFC4410D06DBF8A6 CB6174424312CF91448FFB95A718388CB9DE6EFF3176AE7412D8D760780B171E B928C6168089E79C54BFFEEC2EF6115D724B091FECB5C1A47132DC1EBA407839 B644B4746C2DEDC0507DFB64D57AC07DB6F48E8592B126106825E7A791FB5EDD 1C6A51E8F27ADF467BE79A4F20B0FF87C997A9BF6FA2DF429171210FCE2B232C EF4FDBE0EFA00ED1CF27FF4A812AA00C47321FC0D172C06CBD3A4BF81C45DDD7 6D90F7662A5C561660CCBA192A28C49027AFFFFC8ECE256B10D6D6FA290600A2 DD8E6117DBF228D7727BB76F6E40AE7C315AF30AA387FED52B29BD0625C94356 6A3061FD454A3C20CCEB8D06F3B2D0A5145721472C42B8AB7D575EABB053F9B2 44F31F10A2834C4C596836A9734EAF172FE123392687A3C966906795AE51B6CF DE5291637EC6CAA764978E6CED9504788B7127B1E064AF5F3A056C1801265374 2D488C6483D21198BACB12FA032D053B3CA74FAB9AE98D47BA037E205D1B0D86 BA0ADCB5E8CEE192F95DCEFCE8953A295408781171CEEA76762E668B3409C726 56439A91DBAA042AD2983B7A42C823423860DE9139C89762FFDEA2A7B183CC91 D1FC75B26823D7F770ED65D7E4BF5C5F110E4FA08028087779986CDC2D1CB8CE C9B6AC5C76FE7156B887CCD19D0D996ADC957F415B7A42A9D7F28CCC6ADD2CFC 1A3279C4F5F38546E4A07E1DE7C3AC9F7E1F0A089A218866ACEB50FE58BF051D E5E9473B5B1DA2116AA4DB3B3C57F707881AAB3DA1B5A917FE2D08D7EECB213B 571E8936FF4FBAFA5021000806E3D989E7D22EDC24738DED49ED93F99046DDA0 A94FEB8C45D8EDB85F22BF00F229DBF3C5C095B85EFE6F536E1A5B53725BB0D9 9BB1E4DD3C9C1F9CFCA20A9D6B03A1C6FB9B5AB40082A76604860F9C8B5BC0AC 87CE2F6D3544DE509827CAAF913627CA366F811CE1E81328343E58E054F2A5AC 05A87873FB2A82570E095A98C5595CA0D5D2B7E43572CDFF033A5BD16C888479 DBB6727D400321F6ECF236F96B8F16700BEA3E5773D581C38847041ED7984A62 520087C62EAD37D9D440A0785E17EC0B0A2F55F634CED006CD53F06E17F01ED9 70170544C3C110A1CB4B6224D0F43CF6710336050AC67707C43D7551C2C084AA C4D944BCB7AF4E559484D1908213AD47F999AF24C23753942989D9EEDC9186FE 817EB6664ED84E61A218A1CB7A9B16774DDEDB389F4712CD7A5BBDC50417F86C 96BC5B09F9BBB26648BC514D3B69D44B7CD3335C57FA656991B7D3FD7F552A7C 1423569715CEA9F4C32A296EA243E2B4E52430E7719FB737AF26696B2432F692 A4139C642A6AC8ECCB04C51CCA80F22C69F38B4CF2C4F5FD76A3AF5921073D20 0AC49A469997A2619CF3669D3709E47C665783D2F770CF9EDD8CF60F3F75BF2A C201879C490940785D0B3ABFD50D751A16E8944590DFA5080D2E910C257BF866 D8A35C1C6F64F937FEAE266AE8276FA4E3B054CD3FB6E5A4C1AE9666D744560F AF055293BD19A92FFF045DD9000D6FBA24031C5641B91229AB1309FECCF11ABC 21665145A6B0B0B8B7493DA3D46FEC8E8124F2A21C016AB3310E0B4CAE136BE9 9E345A3A61753FFD19DF4B67CABFC2C504F6D387B5437F4A51A782895585458D EB2A933D34F076953DFD6A38BB06D42F7ED26F674833250B429B4A5FFB5D2D67 AEF74107C3D05B94DD2E2193DF025E789F380CC7B93D7DA329F5CB7F23B2D6E7 1D9A5E1C1B827EBDD7A2E5C93C06554FDAD091B20BEE28EC67BEF4B8210394C4 BA691E15BE2B98116637DF1630E6B9246F35EB13F8674775EB2DF40754D5784C 475EA36E2B31877F2EC16F3C5F002910D49B76CEFFEF175630109B50D14B0B63 97E2AEB3155C0272D6C90F8C9D5A2A2C91A728F4FC123AA6199E84DE2F247C9F FAC1B10571E48EF12D85FD57B906BC17F6250A441F3A05BF6EAD8CF0F440578C CC049EB1A253625DDA18F20E2A237EFD90A660BE1A7BACAE8B84D2A041F2914D 1F1B486E4D7638141C4961787D30A40C943486DE20E41F8113F9F76299776E0F CDAD2F0564AD6651B100F696C2ECCF0A564D8FF247619C37012AC1F2C7FC9C1C 16077FA7A707FD58F018556C0F0C20CF73C382DEB386DB189DEB12E7EF5C92ED BF9210B526E9B5A487919077091900E2C7D931E89077CA0C878DE20E3DD498A7 0D15FEC9DFC851B4B86B133A9F2EF63D7543C91803C30A885A2A54F4493572FD 626FF72F25ED90E0066ACB6D15A1EEDCBBD560B45F94E3DCA516B4042BD427FD 09FB77F5745FE41C040C2B8E30BC99865F7E67743C1187A359A6B4A1CD902D93 CDB759DFC4D526915EB5AED75A645A4520C1F76B3B30811FB6B42FBAACEFF7C8 6058E70F81CE6246AABABF42CB88B489088460EC57B2EB400C47A80E1B37B8AB 8015C6A058E5FEF761DECB1C26D19495912A27B61C6FE53FA1FEFD9A19310C6B 079FA431591EF5AE9A23CDC08ACFD982DA7E3D65061DE21DF9DD51C35D207848 A2529226630A319F25CA99227A36FF3FDA9BF9ADD505B39DBA5BF3CFD99462DA EE8D74566BF11309B6CB94AE4EA8C86DB37702A279359BD4DF2A247440B9FC70 D985CE292515DE8F6CFB7D60030B44CB66F811397C68D7A587EDE2EE6AD712D3 6E9B5096A8772E8C512E79A4E71EFB70551AB481D59388272E250720EE93CAC5 38D4DCB0B50942D1DF0699EEF8305C509B56808F9B9F60775B85C4A17B9FA504 2E7B22DD6801FD372752212C04BBE54458E2CAD1D417F159E7E2ECAC0AD76242 2EC63437804E2FBB466F6C6C6F8562343BF7A1848E44EBE4A24CC98937D435EE 34196BF6ABA7B0A202CE761F5CE6A6114F0EF8EAB268760C9C2DFE8B22C34AA9 6BCCA903500F29877A6822A9ED4EF80BD896ECFD6D449F8F833337B3D986E515 547090365DAD1E1841D672F7A4604DE3E6C96F057AD96BED34A041258BC0B530 0E49B36D287E756D4E68C92EF8C98F4ECE38521BAE9D2CA68EEBEDA3F24A14F7 C0F1A88547FD9B18CFF354CA4F963FA737515319D285EB43B632D4545DCD6665 A246C3251F52C8FB8074D97B05777D7B5A6E3E12F5C0445A81886D3C3FE28306 A678308326F8B26BDA47440CF9521D69AA533AA0EA4A4CB8FCB11E1A07D85912 07C4F16D93514FC8F14DC401BDC2B827025564331E3BBF00A6B2C22477C4A89A 5E74C5BB2FC0751271A297021360C49117E6DE0F0A386CE0F0F52909F9767F84 8B3863DA00C9B99A2E3855335938EFEDCE6DA54E0EA6690D68B9C30476E686E3 FAC7145C09E48D09940F3F435A75B69142572F4FB69A5A2AA38E00C6B2203429 5306635A47DDC99324617D06EDCF5B1ED25085537210088970EC7A59306489AB F8D5FF84817C18C972337A564693BDF1B95A06EEF8EAEBBC7D00ED0B23351C22 D84337C757597A52C2EE483BD135ACFE2242F27F0127AE9076A225FF6007D841 DD71C3940C8247DAC21393C47294627C871A94EAAAEAAC82CDC813463D6E4800 D12058FD859C3AC8E48AEF7A13CE4504F11A483D115D86B812E971961020FD11 3E3D376386675A5FE01A608E1C3C7AAAE82F7F95787FB4C3EEC4B6C709E768C7 7192B67DA962CB11D99AD45512A44E1A5282BE71FC048FBEC68A664A1CDDEA66 5495C294925AF22ADAA5800D32036D69EBE07FC80E778B75C866C465D6233EA5 E9DA48D7A0A6F962C49922EC96CBE4FBCFD519C12AE511A42F94C7CEDED3C793 56C27AE1EE810E30B06E12974ACC7C7E6419AEDA99430B6ED8001EA3AF4AFC0E F6113DBEF54436CF5D5DE58C13998305F9FC0D519A268BCFD05DBF5ABA0BCC5A EDB441A82B0D52CA511D2B350690386157F77B44876644800E764A5486D19081 6F3B2496F5EDD8F91541EC0D1E2B88EA6FD42D8639AFED7256F75DDC53DC91D8 F9FAD34D7ADF226E2FC2C8B95499201CD8F74406580E7A02355D67DC6701E2CC 6B11C94DAFC8E59A80CE95EBC0648108A6F8C807618E13F2BE4943535727E538 35477D1F39C82E97C3AF66F5921F4B9827078FF5897FDF9BE4B5AC0622FA2391 206F7152718C70F409273176D9566E0DCD77E4A4CC12B7A6DF324A6A757B35E5 8ACF36F2446D23ED8C53F1A1FCA5FC298EF15E70D77AF75D50B79453F1554F1D C282BBE6B58DC045280A86BF5E80426EF50BFF0A1BDB0C8ED186765C9E3C0E8C BECDE2AA1CAB89C06C724910407CE3B700C593E41C37AD707DEFCE1512CBED72 E482DC57A09DA91756217BFDB572D7F324EE1F508BC340336BFE31584F2A82DE 14398FE0200EDB3A4297364E061E6649D4EFFBE4640B0AE6122D25B7990F5D9C 483154312B2A326BCCC3070109FEB658A684EC173E88EFA5117306889D5565CD 9E5273D94D6B49A1E35671E27D01A2CB6DAE52790D9399811107E8CD7C3648AD 820A74A1B3F6680FB2A1F7C6DE142E497D400304E18990EBFBC567F850C3F1EC 1D716D6A24B2FC7CB3FA94492F4E7685C932D259F59834D66093E033A7124DC1 F5ED963EA72AA19726B07472E07AF3AC25327926192D27662C360E5C7B00E4C6 D913E89C8622172C4A14DF036488705C246F67156C3816C98CB62F3C1D86D099 5CB6914BFACD5203B876F33741C033A24220A3DCDF12690ADDC72D31DBE945B2 BB4C0B3F0A2C3B0F6B69684ECCE1EBBE3037CC70059DD6E3777DEEB2B83B8599 1FFF8B1C0EC734912F2820F3A24C6DDA965B7F8A363B501F71F6EAFC84618FE8 46BC589A416CB026E71BE97EF649FBA66C54482E3FA15F9B4E5ABD2F6B461029 211B2428EB1873E373C9DEB3311EED7C0EB7A2338DDD4F4699AB8346CBA3CDEC EFFC028220E333F80BBE687052C035C1C0A568BF76F186DC0EC21E38B0583E09 96C385F5C1492769E3C9A344F7329B0272E2F4B2FFFAD9B61DE95E4DDCF778FA 66A8BF212AF3252D4147F8BC3F19D798176C47F7CA8C9A3E94D417298F505E29 4D43171922FA7F8412E12879F41161E3D4A751680CC3354BF6153A4DD5717EC7 FE9820B2111C877BEF12C7DC0E8038AEA629AA6C1DC2567EF272417CCF48FB93 0A2022ACC4A9E98602C2C10F628C06352A434D63D456399A39E48A3DAE77184E 65B813E48F9FC2ED1CBFC8E1E838BE189D6607D9FC6963080E7517D17419D018 449E252154AD17377AACDB252FCC355F00BC387DF5B665988BCD6770767A1740 9B1AD5C0A84A9C660691E2A5ADD222C55A2682C2CFDB39FC696202246ED7AF77 585D76C6C1B3DEF521ED4B41B125F30A6C95C260379BE84CB7D7357F7F18086A B8076AAEC9F68AFC2668695A3604A9D96C294AE3137C27501941FF5B23F46519 65BAA0787514C0C42BDDBEBCA583383B3377D3B620FE6F37F9338A06C2635A08 B7CC7A8E3BEC5E77740DE66367FCB2BA68990F51066A7D4A2706DAC419F8CEEC C9E11089D23B2E65799697AD11F023D386257DEA0D29758319CD3DA33980BCB1 9510514CEE074AB9829A889A9E2DC246A02D4E9B433B0EC9980877BB97FC4E93 1E322BA201501E4993227D31BC1C5BE85B8316DA22B9BD45D3CE2FE9AA14CC47 0B26FA0A901EC93F2957E2CE9F10DD6F9EF845016328E8AAC1F4EAC73E1A4484 04E37068F4115E607361729AA474675C119F64EE21A38CBCA5966A6B5E5EB044 8F8CBF8D2213B5953EBBA629AEC8E061DCDDE3B9D15581C759DBFC62C62CFC60 62140F6B21E4311DACD25283B1BA8B0D9ECD0A097CD2FCB97084134B67E7E539 EC0380B332B9E031FBBFDFBEFD95F5A47DE16F25D8DE7EA159AC00ED456F2C07 5BD391B5A5E89ADC16E3802AA778A8075A346C2FD51EF4AD681F1B2EAA9324E1 DE1D679E42D11BDC272B3312258E3A82DB42F8E4419A38A7361CF038786470F9 BC1170A748535450217AF5C71D83241282531B845ACC3F7B2E6FD636A234B2B0 CABBB780C740A9D743984DA3E591076BED22D92CF8AF04483DA96D215E7AC6DA 8F813D1ABA3017F8C07E8F9D214D9C6235200E29E3E9C0C139D3E52F5536D521 82ACF921BB489F721FB6F817FB20019804A2B9FD5276F51256040400D4C027E0 45C5733BD21C79BBF5D10DDCF69B627C4C7C0426B624BCE0C20533900A419CFB 23413EFDB1F538D46F9AAD15D274418774B1ED955CB2559FBFC6DCDF50D4C537 5449E4098B069FB8FE21FDE02631D7BF0EF04DF7294D065BC00DB1E4ADBB4AD9 7AFC5FEC13AEAE111A089F4081B167386B68A9E3074E433A66C1868F5D3EFA1E 23BDE9ABFAF4E2E960B7F9C56F06093B76E67B53738E46020AFBC3E40F014F12 327BB41136150B24D6962D56ED3E59CFE74F80FEF284378D59AB8CE97AB052DD 017D9FF24EC7A8436E7CEE11FDEC9557CC21920645E8446C3F2908DE1E0662CF 3F224DCC5F97A5F30CDABDA80DC3577DFF16A39CBD7AE72174528031B8EE393D 261922CC6A540E7DE1F194FF0875066622D517C17DE1DD910B51B4E03B2D5271 59CE99A289A31F1840A32D1572A5A60AA5A86784C94B35D031A9F7FD49F697AE B480746D738B70CEAD909B279445A5F20FD29FA9075BC0116B33BAFFAE518FFC 749377B143879F46BB48FB564D51DFB7F5DBA6F3D112EEBE001C4A5A4E605097 BE6EA585854CBF30F2842D69A8CFBA29154473BAB1980664649313E454AC5C58 3547D619DBA2604A5FA0238772A33EC5CCBE2F069116D8B382FAE00F552921B4 531314FA666CADF586AC294D40E7E681589B73BD1116EAD917FACF5713942C03 7C69B88A086E1AD91D164DFF0C08BC7139491D36C0CC782DC150A6342D5A1CEA 80C76D63B6C37CEA9961B871A7D270B66D0B05D0DB07DC6A6FAB46ABB3665CF1 32BA793BC11B7F73E1EA8E1D26B1D6070544B687E704F1999FBAABA9326BBB88 2D91322196BFF44298774529009DA9A33B9D14E712C607F0994B3AFBD9011415 A723F061934EF2EE77CFC6396A9DA6BF18A0D298C7A6C68727EA2553CA39E13E 98813DA1A114CEB833FE98491CCC354989981CAA876F9E78D6C750B02BF2BC1F 4536CF7428C7FD5BE56D02AE49029BD2B8A96D7A0C6BF3B05610C28455360976 9C8B306B9ECBE42B4808BB3A9D36E345F097596EB97DA5E22E51DBB5E910F9F7 17A6E28FEF9B12E0D02A1E13C1FF687B0CE5622C815F35B2213A8E288A566823 B90C23370988F78420AA4043E1864629FED224E8B58457CE0A49F58931D9FAEE 713A8CE4C7852A0580FE62BEBDB20D12C704B503263E8D6EBD8F93C77D491FE1 428D27671F1D72DDFCDD1A0837A765B1766530F94AFEE9B5C9DE46BDC6C9173F 7E7B479C4220CD777559B35BCAF212459B68F4770825617AF932D714F28D113C B7D44904732A67C2D50EEFDB9EB329F43A0113BEEBCCE178E6E717DAC159D5CB BC96B4C50AE6D4DBA3D55158229F6D97A20AB1E45AAD87360072C18EB3F43244 AFBEEB087F7A4987E5BC015AA048CFD2D83DB96AB6B5746DEFE533CE8481A8A8 A19580300B2DFCBFC5E12CBA1E3BA649EB66FA725CFD02DF87B8EA185B6F4D6C 205694C15CC26A6D11F318E0186D89FFF17932E5BC951C0458F80871919073F6 4679128370AA852F9002026F494095F069D5000850910D8513A0B4E2713E9A49 2DD5E7539E7FC1AB9D5B572E2BE096F90D8285E533B98EEB25A67642988EE3AF C8024AFFDEA924C390952BA44A84A94B36F37BACE8CA3719C4584D509CC0BAEA F438F87C639953E72DB2033522EDDA21D2B42C6BF884BA9EAC67246A4B8A73B9 CF7F43BEFFEECDC7ADA4974F958026DE1AF7AA232D816424C1AACADEC195DCA3 E7AE83E61A52175CE6858CDF6EFB880A7D224F0C13A21390825403A4681A074B 04AE6AB5FB0C4A146951CEF5478B1B32E1D84640D11AF5D139101547E253AFD7 B7B9DEB57D631C9C0E972B592277BB2FF5D95A136A7B0E0ED108A8FCD64F18CE 630496FD8CB69AD6D80DF902FFC227A5BFDAE88B7C358FC4B3DC8098D5A61F6F CE4E594AAD556A396B7BB5209DA21553318B7B911F5F7BDAA4DE068C2CAA4B65 6AB82C9F4397B0677766EFAB0BE5C749D78B8A6438AD7563052189FB60C7E8A0 3335FF01CFC124FF7D73A9B0AA469D3A728D73001208ABF90D950271894F3D5D 5ABB72BCC65D90459F59F72B67312ECA5B94337E884413C813C3E1081D6F4495 EB8447C4CDD0568134FD4043DD9ABD8E2318192F9DA8BB39AC22F5DB70A0BDAE F60B85431F4935B728E16E1E331C0041E118C20A7627CDF2543732DB38E47369 187FE077A35C8B94333588CEBABFF0E8E51492AF29454D6A6701339AB87784D5 2F0FFDA934984AEBC73ECD964156794614D87E8CA8B13DB155273E792A2833B8 17046BFD0F820F8B0DC1BBAC8301F7ECB07B8E9ED94921AE04C2DA26E6CFD353 3AC372A77EBB312DCA7FC9B03860A21D3C8177A868AD3ADDBFE13B7343FE445D 6E2D241BDF5B176B961722DC335F5BE9964ECD43FAF947D91AC4CB7262E8BFFA 55F9579B5CD6919AFFD8C11F8204F38626C9CCF541DB9D8DA16149B911FC1234 AAEC14F7D9153A22F8B2C844D3E8EA389E3338ABE56DCABB344A7B5C121E1E80 BE38DE6F5EA457DB0558BE5C94238FB3C2150DA3825ECCF3A0F1E0D215323EE9 429B2481A931CFFA96A383EE1B20CA02C4BD7CD2ED574E69F7D6CF1D408A171F AFFBBF57835635D1187C48D07FF5E1B25BB9BCAB7A3316B789655122629FF5A0 560DB78C89D82C0772D8919B3E7748D4CD562B9EB6660C24A79982F0B03D78CD 9B13C20175AAC320489D70CC4604694D39853D53402A79AD8951626C4B30F4D5 C3D46486C72283698B1633FA187FB01659B9A0F368DEA848299A8C33DB0239AA F6A7472CBEDAED327E2D809C5F596A355A6E7F6D93AB7C3BC6E15C3578D99043 956890A23B46A7DE5BE56CED401BBCBADBAF297652114CF00839F3FA7ABF2C9F CF02F28639ED6BF424CA843B40693E3ADB057826C6559F9D335E1FFD591170BB 7E5B885C03F6FD05E0131DC6F1579F6FF27B8CE2A84ABAB2BB7AFBE6B6014997 8B134A6D47FE953BCED1091822C7E35A132863547F07EDD1A60B4790655B7FB2 C0C6D36EA3C8847EC0AC732E2C860784623D8BD2DA07D8882CDD68650D08F8F6 E4908EB944E7DD2F120D894DC449A6453A8BCB960EDA326C577EE33CB0BBADA0 3C3987F804745C1C1FA648B3ADA27E202F8FF522DD1C87BD05E5982731DA36DC CF10D8D5DD6BF090689B8C5F36E48A5AC2454EE187C691761AE58CB8CD264F74 50776165C58DFFC960CFB68F0A50D39360FC7C2FC6DC1AB43B1CE79A04FA0B32 FE09C04EED4B52E240C5D28314D6D049EC3FC10574740B4C1222E2F40DFE80EE 96753C3552DC7877DC4AAE96D35838D3F0BB530EC99A3493780E6B824089E728 311772C2526A6CE83DC95B10F38D7107C084E0EE38CB2755669F4A784EB2943E 4785275DC68B2A4F21862510AF7BDEE0FB056B0448702C5E781C8D595B2C3215 C7AAE06DBB6C779DCC0EF8A645D6B2BFB15BAA45B12813451B17ED0048AAD4F7 396D61B47241E7E1E10B5204E612C114033557476E31B5B0BBC39A5303CAFF82 8702B694820DD374CD9AEB875B4E2CE3761EF7C19FE108770F0071C99573137F 1A19E167A2C0410D4CE779E3874487257D8572FCCD455214C4E20194D8C1411F E0A856901AF5E122EAA82D5B03626A1A3D9F25C3BC229A893B25067965187AB0 1138B0897ED3B234E8AB8A1A3E03EAC6FD7E0096E0BB5F12F217454B728C4E2D 029A441DA211A85CA97A1817253283F936979A2246E3DF44FD2B9FE2AAAEBC73 C7EFECD7FB32ED53C9A25C1B8AC3DE43BAC81856783C502C95D8E25C4E550397 0FCDBEB5CD911428C2D1386EB5E3665A024F2F7D331CAACA8A554F6D5C91F2EF 69559615527E7CF74D8BB692D0CF814695F6156BB070D6A6694C42A829A95D19 D4723C4222EEE0266BB0122F610EB6E375F3A762EC5B8D75FF9865B8863D7158 A448FC70ABA1350AE45692F20EDB6CBBDA98AB3F586B02C52AAAA0E3926E79DC C752813C53BFA759D6103355F079D8EB278F2CB78A5AF17C14DC43203C72DD0A 401A9F277E279174DC8DE113C5C57769AC0B4E899FDE66FF261885703073EA05 6A96630CE170D13FFAAB84D8DF5B72F96D2690489671D66CA3D3F640846DF5B5 08A340465805EAA2CB5CCBBBEC404450FD884F1079DD2B518046FF355D11BA67 ECBC6DBC77F2B34645F8C72B56779B34FA15681E0A8B193E8B8EE5CEA8591C03 6B1A2A9471B8265ECFFA8EA0039087E8D6EDCB96FCD8F428C81C7605BDD45DE4 2EAF422807F36D656F8EE90810C990151DFDA77BE22224A2DF2A2BB555FD9133 C66FCEDE73FD33330CB8FF978B8FFED25FCC5FAF9EA60E139F1740B5191E457E 15CB57B84BB8913874E39BC9E56791AE6D34920FEEEC4F0ECBF3CF3B7CBDF443 FCB2DB6D80DDF2497A62E26EA64BDDC148D8DDC9ED8537F749A2000EB4E62457 22AABA75C3B7F6604482132950B73A8744A1FA31624F6E3CD08EDA651C0DF6FD 74105F4BE188574FD4140B98932D0969DCD41855826290107F3E6C36D64A6B12 4CD04EEF21D234D799C28CEFE03F1EB0C75C43F8C7C22477D0242A172E7EC2F1 A02993D45852841B395F367EC77A24D592C20B4DE8986D9F92AD3B59DAA7FF87 E991835823F2EA7A3D638C46A423BDEE7584DDB6B04098186FE196A65E330B34 C6FB5F5F6D61DEE4A47D8E1A51957AE6C3F09F80A3E2B72F667E1E76D689A21D 4FBEFC07751D50A639020F11019F467B067370B5EC9E60A289B5F364320A5923 C234D2269F60EDC9809FA5D5869D30744EE1A35391DBCB3D9AA856F0F107AFA2 DEC10C44043D812B2AC72EFE3EF1A88C8D2826176B857CADF5C11C5D81C7A46F BEB4CED58C954771E4C9C7B4E49CCA9EA94EEA1292812BDB0909B2B52C5A1449 9B6A23F7DF81A565187AB4429E6FE38D5BF910304B2B6FA02E0D08BEFC6B9BE8 A75A9E6F739FB3F64254138559A5A14CAC5495E3CAAA1DD81DB91317B66BD3D6 A7A1833B39AFC931BD7563E2857E51203DA55E7626DEDE895B47E259C6EC964F 11B396F78E065A02C3D3768FC7FAA74A715C18D38A63B8BD64D928DF273B280D CA06722DECE0BF58A69100C903478C2815A9EFF6CA2293332982D5DF18C14C2E 912571C2442D965616B81F7ADAC4A0643D73B806D11703E0017B9C8D4490607A 29B23D9F3F8ABE3D9276F0DD73D7B9356C1535E147EEA224207476879CFB99CF 07DE8F6019AD6C35AE5C1154D573D491956BB3C3151B057BDF788B5907AF2A3B 5E90CBBC343077224FE12DFF4D64520F253761CC08EA51F57C6D933CBD39B6B6 038EA7600BA094B46470C07CCE4ACE79FC07974872AD65C8C2908775FDE40A0C FEDD45931D0A7FE3DE0722D8BB679F1A3F1E6612812C3FB0360575F38C9A603B 6CCEA66783C1AEDFC4898196466FF0D01005906CDC28FB170C308306D023657A 81B1EDE75B8343C0C5CF82811C44998ECF6CA249C3CCD2067B0BBF83D820E3EC A047A7451F6D9C5A63CE5426CADF329055FA71ACA99790903381472E4D54FC39 4F150EC9C5F19C7D9924F90DB504605E6AD0123F65CE47CB0B2FB8683291017F 337337EFFDE5A510E90421990AE3FBE02F47FB8DDB3FB3EAA9F062C801209A6B 73AF3D0E6C3207D302081508DFE9635160873AB9DFD3CDE4CC1D2EF221E43BAA E1BB64E175BD5609CCAA1AE89EBD7332F4E4DA5BCEB34720D7CE8B3619917883 0FFFECD917C74A6FC604F6CFF0D5BD609A444B16C1622677ED437DF68B1915D7 B46AB9E6E35968D966E3361BA90B6694C8182CA81900D028C7825E4BCF1CBCBE 362A6E6E404D0CD9AFDB6AF9408B816DC713E682EBD906D19165CBC58EFCD0EA C75A430384DF868BBF99C85AAF497D20C1C4C44BCA5F1F0189822C0E0DB22286 C4DCFEFE23A2B4939DFBEA0D96E6B6E575147635FA1F31C44DDB74A482F69352 C4B666FDB94BB8453DF3472BE66C31216ECC3F682DF022C4072C29BFE203384C 8861F1B9C37715B1F63E6669915E657E645A15EACF749B4A20AF60A9A3DC6E68 C6C24AE640EE24B53BD2958DC4CDFFEEBD555FA1FFF64DB57036F73C78E9CDCF 4A7DA2F7EC0FBD5A9D2F3FDA22DD3A536106D5790399C255240BFFFF51685673 9FCFDC620BDD2616E96362C10CEEBCD628A8A3A5EC32B50F6CF5BCC85EC2A2E2 77BE93049403C5E01E15AF4BA546D85D2A501E3D37EBFA3BD91A50E4DDF68F06 8133EF263F27C1C22F05AE00FFE199020E92865217CE8AC524775022071015B8 D898989BA6624585813A21C3DD0DFC855DAA95B574E6A590CDF3953A5E64DF12 887B09E24144AF02CA48C7DFEF5DD008C7BBBC91F3CC6950462722D7049A5CCE E2BFA459DD67244275C9599DD78E3CD11CAEAC3422D6216DDA27A94C563D5CC1 834F9610B28A0041656B0FEC8983D72D5ED0C91FDA32D778F545FD996BE51FDF A548708D46A908CC0AA2809B45D8F84D50B3F7F7E6332E694B4162E9622D1937 7E413BD3F00977D38B3A81CC172EB29BC830763D48A4DB5A4EB3FB79453B7512 268ABA5FB487D6E426B86C1A9B49487F389D28A7FAC85FF65372CA0464559E44 CC8E8EED91DFB425FBEF17B0626EC215A21F2B89BF644A661C3BAACF2990E97A 9867179CD5FA82CA52F06DE8C62AF286C3C8374982F1B6E4576A5EB1FFAF7567 81E4633E3CFC62FA2C043397F6899B1FF0083982526A4C1CBE3A2B52E44B368E 640292F3119AED62E747808FB96A36F4660BF04C46BEDA931AE73A97C0AA247F 05669132DD83E5E531D5B5854957D89C6C6EDF615F0A942F5EEFFA27A26B4DFC F305D32BD15726C85D2C95622172BF8FA12A4AEA7BBDAF4C381D2A656D6883EB 0CC5BEFE088E28562EDD4C6DB3DCA58D1FE445BCFF25418C6C7B1C208C13B22F 77170A385D5AB647DBFB569C261019845F6E96A024AC1BA9951C5F61964B3ACF 66D2CB795C426288EB73B67FE1A1DA7DB94FA128FCCBB41E7B7DE16EC96BABE3 FA63F1F3EB37258EF26378C38EF0054ACD3CA0AF85F29AABA37947A3A9A0DF05 E9A35602687DD9F65740A36FD7434C9710E606F1E52DEF3D159F2348705CFA38 A806322FE998CC0938DF33948027490BC1640604AC6B33D50D7246136DC1ADCA 7C21338F2BCDC6700B7BA93E9AB565BD324A39872728DF7F2D2388BE9969E26D D3D06C2D0914976E63C40B87E2EE66F757B6D7E9038F77F70B3DE9160CC66AB6 7EA6C9BED2B744699663597619C75F2725DBA99BD23C453831350FEEA2CE697E 24CABAA4783B87AD4DA8CC4E7D8CE49AA3EC4C0D947BAC3FB7A29AFFA7D7E21F F76C48F4293A3EC09E90B95E79863AC6913BF9B8FFA3B64BE7450241892CED7F 8408CE8B37EF182B9709B70DCC1C56D60FAECAC1823DECAB7834F25EF6F92FF8 A88024018B012055673E1E1AE96856846424BE977D5E2391E681CF421F9E8C59 426613FC9B11A1E74CA3307FB4E2C9F8A8FBA1365767FF8213F65AE16B1FA538 E20131DFBEAD359A9B66E8E0580057D10DAAE6FAE824F062BC8A5B2E92E4F9EF 7A66EC864B3E9035CFFABC5DC951B0A0EC28A17DF908DBEF74A4CAAB716CA651 A3CC954BE3734BB41A5926F0AE2FA13B2301EFED79AD14B41B69A2266698C431 A26D4D9061578487BAFAAC24EC62FA64E98DE73161D6598BF390FC861096FF22 81EDC90EAE8F81DE832E4FD7E42A01F4E44D5AF8BF62593E7DD7DEFFC25D37C2 F25CDC47F6D0A2368BC0F6A3AC86C7D011BD62C95CADEF30C5CCC0149BA380F7 4714770E246601B2804240A8699DCE88BFBFB8173E9CAA917A2E883978F5EDC1 144AFFBD1817AF97121DC66DF0F4A690620EF80E3ECDA7CA4F21E3A669AAC0AB 84ED83EFB39CDEFC01C82A75ADF732487FAA5252308245A4CED3FB029BE8D629 674C52201D8A7A6CCE4204D234EB11DFF592A0EFF39A1175F8946018D9A7B4E6 AFE1310C534B419E1E22C40A015EEB1FA0F75672AB5D870DFC246939757548B5 43C4DDE217C436C617EFFA273319E420A28697BDCF988CAFA5A7D1CB18AC74E9 B3FC568DB49F97A341610377D6585C0444BD272D73C6D72CEEB601DC8F39458A 03B98A948E89CE15E6596DED91329BC248D1B1DC5389DA9FA12F457A5AFDD389 CFFB5B5E4F4102AA66601DEE2991DB182629921E8C32683BCD6AF216A2B14054 F4F31CA989592B429A94662B37A969560CADD0BA02E63BE7C73BD813997C79E8 684DE5F9BB7C18EC19EF5F3EFC11ADCCD56D454FFD2AFB914D89849ACC7A94BD E2B475B7BBE434E66F99F720D2C27118DC12C841509590A0963AEF4E38E57527 313AABF75C7F557D14175EE0B4FC047F4897FD0406C3683FFA365EAEA8DDB6C4 EC77C47B57D2A4C15F93C265899157DEEA790761F7EEAB88784D22DB7C2838E8 8E3F1234E8676A524E74A1B84869FBA97038F6AF4A27D5526E74468050D8151B E46D6FAA8C04C4886AEFCAE0538A59C85A50952953F798E1ACBF036A32347856 4A2995DF127236C87E0280F9B72C3468A5476D773E50AE89B531EFE8AC7B571C 18CCEB07E49E705FC805B15752D12E2473FD582A8D06A23E1C8F1B87423ABEE8 390FB806037CBAC52D7704CC7E386700C6CB5C9A1D46840AF2A628DEFA34CC7F 7434B93444177D4929BBAC35B12EE4D01FB9981D821156822B47B7615BA83333 611B1F6147EE47CFFE8D7F5FF04CBDEA17CA70B928D812B37828B78E72E69439 A0308FAA9A4615B5641D9425011899FBC40DA6B5C84F03A253468F90BB926348 FCB7CACA43499DCDE02DEB32F52E3AFDCBF49DEC1099C67DA32C8AD16D1DE524 D6332E8F31BEC975A47E79AFA253994D0DF5B36EEE927BAFF88A4FA9996A7943 576748159A0C4175331034AE8E44E5462B454A4F55D8B8735D3EE2EB3705D3D3 0A287026BEE241994BDD413E35ABE8283A9E419233E316F8504FE5D531E12484 94BA7F9D85749BF297FA174DB67DF9DD1128DBD9867F8AAF8E52B9CD2D3E4B41 5E92C10191448BD281046223DCC1E91CB59A4204B3BEFBD60DA3C3888DFD11E0 F99F6313F7EA4422190B5A0F516874DFF10CA5EDBC7EBF23A2DED06F9F16C7EB 8148D6BE942AA2C1EFFB13C75C069390A683059C0D6ADBA9E27AE476B43BB341 00EC4ACCD3006BE0B12C1EEBB4FA66646122A3D2552D8CBA8B0A96D090800CED 22DCB22763B3256EEBCCF4BDAD836782710AB630002FE24E1DFC483068103EE7 94F225EAD78DC3C445552581F877CDCB11AA8F380F6B31D7D465FFF7CF17547D 98D495BBF383D8AE7C44ACE65CB15A09C94ED54D94093C194AA500C9433EA048 157C21E34267C1676EF18B22F5BD4ED51DEBD2908CBA51F6D9DB4F0B6F86BABF 131F1D2EE44A966FDA10CDA2C3AB36EA89B329E7D974C1CDD5BC0F413F1C22BC BF33ECA3A2B2D8A5353C68577729329FEBCC31E8E4DE19BEB9D8E0D16272C925 F2E4F3B798A07F0C5599C8CAEED260743C0C7767FA57B505584B30C751A0A423 5C68B353A6C8055E4E3D0DFE631F2D5CDDD1B6D3C122F361A093B08CB0667D99 8CB6B76DB11087A64B1F4329DF39F599965C6F827E53DC5697CA9C852C97116B 626AC8F5CEF457733D6EC4D3876ACEB1CFAF747DD866855CB12F8D2B6F70392D 55DE07C6D07CC22114 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSL10 %!PS-AdobeFont-1.1: CMSL10 1.0 %%CreationDate: 1991 Aug 20 16:40:20 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSL10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -9.46 def /isFixedPitch false def end readonly def /FontName /CMSL10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 13 /fl put dup 42 /asterisk put dup 44 /comma put dup 45 /hyphen put dup 50 /two put dup 51 /three put dup 52 /four put dup 57 /nine put dup 65 /A put dup 67 /C put dup 69 /E put dup 72 /H put dup 73 /I put dup 76 /L put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-62 -250 1123 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9429B9D40924DC059325D9D4CC0344F3F997A99E6CC0676735EBCD685AAC9142 08DAFEC78BB41AFC2F1C219910BDF41D6279284EF600B69776CA15BC8A34347C 30783C52AFA60FBE3E353E2AE354CF87B558776A22C776C7A0B5AB5CE1F941EF C2D9CAC37294BF407A671F10E4743BF842143F4F7DFEE643BA3BBD8BB9E3F24A BCCF7F0ADF8BA500620C81033EAE8C4EF2C1DEF13AC575F1B3BBB66F093D3B78 5412B82B67FFA087AF57182B2230F9F2137180CA58A7D9B2C822FF04BE6CD01D 43B2CA7058C7B953F6D9B5D6E91ECBAA5CDE1159B0E59C83DBAD96D6C8C8BAB1 374EF652D10C0F3EE7104472C98DD3572AAF2D45A70BF7061447E21EE3C3BF23 DF39C2D1B35B42CD5297BEBE6BC94F7C9DC6E61EC67E4F677256FED9064BD3E4 B51A71B1D27CA4E5AA9E1D8080E6DAB5310711EEF87C40859FA935B19524AE83 63B163FA8397BDFF443227FEDF7DB27DC35D89FB1C5E435DA0619A5C88AFC73B 89A2DF5E767C5B536BC7167A840A0C32BD57A14DE69A7D0D819AC36FF32F908A 5070F32983BB007437E3500799DF5E0AD3710A4C0000F0098D5BE99F2EB9C1C2 C444FD9552D0DCA098A94B3BF176F511CEE13DB7EFFAED7C47B5ADCF8D4700F5 7A5FD1B49560969BF5C44F3749370663A04776F749DDD7B50674D93254426C4B EFE264BEE7810EC93784B7C01A7F29EFD92547E13A2C7851A2E709FBD5B87850 4A44F08F56A542DBE072D2FBC58D9E6468E1AB858DC35240E30D31C7AC13D6C5 7D2BB634BEE96FA0E10F842B11A789F72A333DD6DDCB1BC23227EBC406E50B40 30AF0C48E6359AB0C46898CDAF1118E46BFF8B00F54EACBC2AC262AB898C42B9 2E080C10DE923C18A9F0E954B2CDD2A47766760B18BA76463A1B03BA5974D6C6 B0B2A85803651BA403FDEC112BF35604F783099829C4D22A73654C00F407D36C 0C61487BA5E72FDD8D41F6CBFBC4D3B4AE631D6E4328AADE2536692822D2D91B D5AA15530AB49F00D62A6FF719C22144227BB63A19D88D648CF92C5D40C3C8F6 BE67CF57CE549C05C79488F8C49692F8AD8F2B4E0CB5E6EF25BBD6F6EB99DD62 581FAD2AB1324A5998C5F510F9B94E625574153B1973219495C75C5AD324489D 25B8BDD66182F7A2408446393A21B1700CEE16214E0800D9FDC7A49CD5491798 EFC6DFAC756E3F4623B9EFE0C58CFE01CBCB54A212C39E84EFC05CF3419F6117 F136A26001586493B441B825C0CDB1F264A55CBA443BCDAF8BD24C65C41BA504 E8FF070C502998068714908443B79F864A5B18D5C3B97E0D7F3E9762FA2952F3 6FE89E81AE05666444FEA875BC79194552C79A7E76777A385BC7CA1227854AF1 189E05BA92036059F1DEEDCFD372F83F104252766EB583AA79C127254F190871 79E42714428063ABF47575C79E74C7F6A8BE3EA25ECBF8762B380576FA012162 15EE389236850B67235024FA77E0684B49C857E40A04F15B6E38334FFDBCB85D E58E2BF343ADC3DE9F93B2366CA9C6F6C6BAE8A895A9FDD3B28B39865B223182 D14266AD9687F8C53A5DE67449A7467A30E28FE327CF8BB29E6E49844D55AFC7 59E4D510CBB3036A54666CA55F59AF1ABA280C3B3718E756F1CCBD5DB5B4D29E CF666A95DD63DDDB4674825A1B1E0621929AFFA4A1C5E80E89B60C8ACF2233A7 393EA28344EE66F6F1265945DAB95531D7743F951636DABA81D096A65B3479BF 26E64F5B54CFB1D2A9C649482C997677E603B82659E8393F46CB71C30FDD5A01 B12A9A18FAEEE68928FE51AD5401CA760ADC4349657E102C114ABAC0E396D9C8 7EA1764B3C7DDAD73B4EEC0AB315517DF4CDD3593E2B4B69F371FD7AC5654C01 382D06680FE0BA9663EEB766B229E25F9F23B367ED5432F8895EF03830942D88 02F6B1F7CB27BEF68A56C444A4450E6CC210D921EB7FB070C8FE07B4FAD0E3E6 11E3D69F98F63F701E21B612424671AC79C7B8E423BCACC61778A5829E2F9D5C 4EF8E3D2EE3D98F3C284F01CD541C48F2496E144C73882378732F19EC4E02632 9E043CEB548A1377A28FC609A6B55CFC81C7B5F5F6A3EA1A174C5A50D5BAC0B8 EC8BA2D234D15E4310AB267A1856FA97F90CAADAD12C125ED65C9DA079132C70 188BC79058C8A36653035A48E140B8B1AA35DD004CA12A72D02120FBB5CC9C01 942B607049F9950EAD2F7445CA50A2A1D145E30FC73E86AEA55FB80B73BE75B9 FB413AE5859BB5275075BDD2882FDC1E4D85058C574648392D6CD13449C2913F B0C8726A898D840AE68F7B444941A0727DACA168669A1826A566C8AB8A4E561E 80A434F3003C627B64E75609B5F8CC05049571573FFF298767F035C7580143CB 69C8DE4F52F6D6610588B27AFF794D50AFC6CBA0EE7928DB01FF2DAFDFBE0AF5 BE068E92A8D29FDA8D2D0383D215292F567C6F4BA7E9BA0E7BE3469186770B02 0B360986BBE0726A0BE8C121E92200B8C01CEDC24B6080913F17ACC0DDA342BB 183F59487E45102DC42FCF492774595E1F2FB6A5AF2E71AE0976BFB1D558CD6A 86AAC975962543E2CD977AB00F9AC742E8A70AA886B3511EA99BA61DBC15CDA7 4F1E85F26FF72107766A18621FA01DF36A7706302AC43677D59520B607234784 EA249126AB9CEA68B5F2EB82218047F783B49BB82EF2DE182C29CEA33AE841EA 0A9826D206E65E00A98451325113C8563C24E7003225460C37018FBAF8253F16 B7E5962DB5D31BD7AA758D9C0B74BEFD740FE04D12397B8C83DB55CC88D9DFDC 4827B6492D4AE67FA402C5BCC7AD5F60C8C37E038092CB79EB5C7C195ED57B0E 1788039EADFFD0FBBB3DC5BC4257F0056723700E47B40E818A4EB954A8C24DC7 57B2255437B89F3B0BC34C2E0096C3A660FE483D332F2FDD78AE51B3562C731C D9B0AE2E0589C20E9071CB9DA9052A13F493E5D2FC7B3DA4F25E80DE9D917C59 67DD803E72EDBA97BCB5360DAF0BE68D31FB4F5B70B621D3E07E00A95B813D7F 5F39888738079370FB7EB5DF7DFAC38DD019997E368B83634D4B32F9C7DD6131 E70FCB84A361977066A87C2F0FEEDBF8AFE021C2EDDCD7102E21062BCF4303D2 E0858B762805DA107979EE84781B5D2EB9AE67E599431C2EDB1C834B397CD26D 6365A249D3CA70929B443DE027DAB5BBD9E9DC6B073D8E8225F5C3BEE7B189DF 14150F3B26324AB8D2487C6DC0A3B707B401DF7CB026DC95CEF9C2FC4B9B5ED3 D72D98F1A49EBB5848D485B469306F31AB582CD9B2806399A4440A87D1EAD458 24BB96332F6B01F8CED714EE8DE6FB0C36C0BE8C881AD9215B773F552ED344A4 553384F842B0D796AB2FA18C80611271136731B98D35736FBEF23D6B109B9C9F 19F0DA222B013365EE56D3018ABE530665BF403E76B94C1E514FEA27AE8B5A44 55CA0BDCDB2838B9C7938A14F733B2000AA4C0C2E7CAFD86F2EC23F991549127 BF197F900A0FA7A691E18F0CCB064C8E2B1258B48592896873A71E3F77430A59 C077EAFCB47B2847F980EDF4BE7D42F7485DEF63DF43F1D8276CAC0DFD400BC5 124DA4E28443DF89DA8E743222FFA045555705A2C9E8D0BC65BFC2AC49EC5D09 5A5BF031F227D4C448A9945795513C2D69F83364C544C26111123950ECDAF20B 981BEEADF7E43170A1977AFE3950163B0872723D1D3460027D2C847C3D6D629E E3274F212345918038E3118B5FF097DB6CDD30544BDC0A11C059BF15C3B712E7 9E831FA7690FF4C10D2496BA6D3F217EAF61F4B7298867550C266DF821F5491B 4CBBC911390447BEE7C30EAE8FD8EDAD09DB7977B62E3955F04D00848647E877 EF771A4757C09DD2115F041CE322310AAD0C1F5FBEC8ABBCA81018531BFF7E3A A19995CFE9FEC5220A9F486143F77D1FC340687F69E2760479712E4FFDFFDC6C C7A9305272A81B9269533115648EF5B583A142F5C578CADDAD311ABD410FB75E 72757BB937BC92BD09BB1D5E256B71BFC3D3E47FFC4767C0E66EDC934D9F01E9 94F68B5DD56EE3A3D698C6D6C596ACBCDF8088F706DEF0A7648783D8D44EBE9F FCFDA50A3087D2CF00C4635C648751B7688A2578E5946E72181D92BB1565DD85 CA7D809C32985B9BB591933E57BAC7C889EF6642108B1FFA550761E77E35A8A9 4E2016980200048564D5A4CA17F7603C3AFBDA7CC5DA042AC047281DAC2118F5 A5244F499C8EE13FEB0087D1F37B478388EF8E43AFC33CD06D66DEDBA387F298 29B3239DD4AE2230D9FE4C2A36DB7E56B0FB33ECE4BA44579E254D39331CCE1D 10004E96142DCA8A5651268193DE533B8BB98EB072C99B174885914E8C0D0AC3 FA3F5206BDE0A45D52FBE1B20C95D055647B8F0ECA4709185B870D059468355D F7151D75A0B99C7EB7A2E663F56F92C74402B02372BDB58FDA1417F57311A33B 65A5D7E7A98397698C612E99C62DA43FC5A3DDD3BD8732B1B7509605511FC965 BB7FB9ABAB8196A595C7B9CA643C588BC5887C45C9316360410044A7CEB44025 7A3119E38E97CE78809F0164ED1CA315A424C7F634CF0C5693DD0E392E69FDE5 4B9E4CDC0C9F081108526A81AB3127B6E5919AA4F6756CA248E221BA3EC18A74 D84BA73E076B69F32B39F09ADEAD334BB2C66BBF2752DB34656CE9092D94707A ABA67E48153776BBAF86FA2E9AC671EE9E1AA0873B0B25C5CE737EBC36872909 12C57D83BF26A445E8B5699FBB2F0EB8E898CCAC414F3AB41BE96C964CDCF422 051512D974D8BFD0774312A3009356DC7A36CDF7A4E785C398991AE5A6CC0F8A 4AFAD63CA90202B4254C3E79FB7558BF2CA032C3094103AEE0B69118B05D9F7A C8642804A2A41F059C6D8AB6611E313B684939A37608A285FD8C23F9B450300D 5CC9B500B37261CF16F23AA761A65C5925AF88521CB805A3BD5EF454024DCBAC 64BD704EA0F455D49D5206746D1DD4662E46083CF3200842323F5683D7168942 E65BA2D4DA0C082D5B04693E166B353D55EE55B7524E2D6C6D2A038788DF2E97 2C279B04B25FBAE6AB0E1614ECD0EFD391AE5CACF709BFF7B54171A7BAC9C086 8E92FC76789D55F60630E735079E20991B2D601C5BF7DA054AED37522C6C1395 F9B2E37F15EEE0321A2A5278969712E76A944F539CB708F006926B582D7F682D 30E21521BEC47724DC5A9AABDA94AE66B79A05B017DBA87F8F50F764CEFA37B7 B5F113204E7495C3B59B3CAB0C3FE1165261F78391A4E4C7F30096095FFB6DEC 352A1E75F834E6F18672666FD8BAA66C3D6088136E26B3D22C557568D14A4976 37444BA1AA0143A9AF2C80E04C852999157289FD31B02B307B615F551A9A9FA4 828860E130345CB35ECE3029ECE50CC9BF98AE2365DF70AA5C760A296039ABED D59ADB94C0F71038887C5C23B5BD9E6EC494E0F54647451D2F1E67ADEE9CE39E D28A5EF8488F94E9D3D13C788E8CFEE8221E1607B25B6C426ACE110A9471A158 72352506183032EE559F33288F22E9D85BE1E8815ABB8FF33018597CB727AEB2 995871A2717D0922A7FE8EF55E4F82A541794E3245ED7E4E9398697680F9DED8 0B3AFF78885637FB309884E6693374E76543C9831CF968AD44319B9B96D1D88F 54D910A68A3EF3A353D0CC1C3583A724115C3BE4774F66FF7C6F1C52205FD5BF 4EF3F8670C28E1208D336131D313DA816BCA3CEC3DC52D672E6BF42748B2C20F 071766EDD1569261465C1176813D3EA9220A8A4E41D2F3170DA7FEB9B60156A8 CAD278B9FDCA1E8D91742BF591340F1610563BE5678A8C024F4290D4BE13B11D 55FFC8B9623404845209E97F24A62EF1412CB517031AEF1B90D18B305A337C97 D6FAB04012883D1B8D38CB3A407E451C301451930BA6A8D79414E58FA626C9DD 14B9AE31D99AA5591A31F08CCDD34C3013F544A3FAB7E6B0EC2A8A420A436651 33837EBDF638E5FCCF2BD47D27A8E75AC0BBA67913794F8856861933D605207A C613CA03ABF1894FB01C97BC88F4ACFFC93E832A9C1DC6496203C5B965EB0422 C04955DEA7A6689821AAF0A489924EA07F80D2A511884B6A9F070BAA3F56DC4A 733DBEF4796C0053B4A3D9ECD45EA1BC941D9E1C16E3D0854481083A26FEFBD5 BB0DC639C03039ACC86A7345256ADAF7854F9EE4B9C0AAA5CF92897A9E3DF029 92F379B7B73156BE37A246970883CDEED03E350ABCD91E5919FB6B317D65D3DD 4D6B963C8DC138FE22EAAF18B88C5AE497342F40BBD6BB9CB8F3C88446ACB926 1AD8E1FCB7BF4A492AE55B7FF9B784EAE8A822F794DE4039220ADECC5A058A0A 2892E2933B25CF434BA39289DDD25B03F38923AE9C832DB2C690F1F055FE4BE9 08E66AEEE8E9C13735BC28DDA341CD71B615C3ECA4960B92D478F8B351850713 432695987E12B201599B70DE7E59C44451A0B693B0A4CBB63AE6FE42C8ECAEA3 9F60D60EF5DD8CF6B158370EE35487F5CFB54639094689CCFA806233D837FFEB D9AA22F59FC5D11752BC8F933559AF0B87E5031A43B217A789963110428900BE 674614D1BC07BE56B8278397B8ACAB495567D168FC3F6F3CB0E0D0620137FAF4 71E2F836C4B7B4A57764E96752D432D76964FEFD9F7C2B987CCD0A4439C5DDB3 F41772E63F283F5648909B1CFD74D59D6C79FBDBBA86A1CD40AAE0519E3EB48D 1E873DFA91AC38C8E7AEFC6ECEE9E725C66F0E0191BC63C5B8F990297082DE04 96F2A6462DAB2D37F93722025EFD41FA7F7E8C1BD348A4E75B39B4A8416E3BEE 8C4D7A7E0A7590392B40C9DB1CF368C8B21122EA67F61EA311ACF68F229465F3 599189F597A47AE5E9BD71EED32CB197B8E55C01B68840E365B9E27C9D37686B 4EBAFF8C6EC48EAD141A43DF74FFF1E84EB3516AE564F6C4B7096A3934040E81 A464BE8EA9EBED5DAF152DE842DB0FE60DBBDEFB08BDC91481E1D1528F2409FA 08AB7494FBA23EB323B205C66F7D5E2B80AB17461414A0764AD31BB6B1450310 48628486E8365215826CBD1394BDBB9FBAFBDBD829FE453569120736A0D1F42C 90495591A800C8134589941A28ADCD06C9E5E081D2B0655F9B03ACBA305019CD E37401E8EAB0328A56CA37735549A0329F50B2D19506CD596182BC8BCEC4693A 284FF66D68034C62514C6E9956E1980D65DD60D7E036BBD9629B3DE5A477F253 EFF41297DE0D21785ACEEDA56FDB62214B974D974998246E6A52B069E21F1411 690B6F1308815CD13A433ED8F063B6A7E9E2FBE556AF63EBA32657E769B09B98 3153EACA3773C63A340F1810A976D0946F05088FA7B785FE7BEE0ACDFEC82F59 A5123527C7CDA4468BDB2D5E26642EA897F59E3C849F07DDF9A81679DFC1EC51 64EB34519DF9910D256F65917A1322E026F2383C794097A440E54C94DC71F1B9 7DB369512B5F38E4C00E6067CE36B58797489B0E397D141C0C687C3A7B7AA622 80896D39BD755BD8F3102777DA6170F07B8902174DA4C8C1BF1ABEC509B96BAF 91F3C8AD8961DB8404907D602C515CFEA9E727291FF8AEA1FB8A5804D5E1EBDE 68C29BABF382A5AC17608CFAF4E4481421A88BE423027EADCE6C6029B63D07D3 8EC2815D88A5296A8416F6D92352104C44284377D3F26F2E5DAB747C017AAE15 9E704EE80FE27568264D6C8F6FE713ED5599D60AF9E2E2390054CF9EF2F20CAE 7AD35EE403E518A695A75EBB1EEC258CD01B7BA8DE747FAFDB0207D2C5E654B0 028FAFE787C8AA137267508AA292C15FF1AFA7E902E1C27A3BA82D0AEEAE20CF 02EB1B32517745B604DB88FB49948C50CCA6300AC22814C05629AFF55CE34C6B A2F8E13E4CF2BD90D97CE5C0E9C78931353205B23A41C7E73FA740F66D1C9D20 C722160C7BED8C7EE8754AC8629182E0C76AF70073E2614A9E0B3302F11D7D19 5A795A4A318BD6C0A762B004F2AED4850663471C10DD756902C53904DF0E2794 2D329A8E8744E96F9D78071305A6A13A912187A7C7A8DA75888CE455880C2D0E F565AF10B59B9489D7665512CDA7E717FA4F820BC48066DC566284059F38B560 9C94FD00197540B82667C5E8D86A82275A4B1D11CB28E0530B1347BEC54706E8 977B58FB00A8840D909E0E9D2FA7B92ED690B78AC4974C543CDE65BDDE37165F E8AC9CC950070C1DD65453CCA27A292FFDAFAEB081A443A74CC8CB5395176CCA 65CC0033CE7A628D33B5766AF50FC5A9DCF1DA43A0B9BD8A123A0F596FA212A1 6DD44B29E203B03D6FC040579B7C7B68DC4B12B8488CDA75133F12CA9D095784 1541AD9DBE080EA86B939B452F179E149B9B7BE9984F0AEA78E1DD0A4F7D4D51 74B6372579196A4261823A4E62ACABB3056D216AA0C10B546F511C1BAD1D298D 417617DFBD5C6AD164F72B6E199BD9AC7DA5FA002902738F32CA4DF7D6825EDA 9B4698B5271D77AC0B7E03DBF20036E31DBBB3B239AF908C6233927A81E8F429 5737C31D7203660E68D9962424D7F0DF4811C66809382CD133FF045CCCC0BAB1 96EE7519EC91582F5B8B6817FD510918724F01084BB2DBAE94ED64718DE50A28 62497B88E0F15A9EE44CF924235C37B72CBE9A346E3D8A83F6B22CC432F116C7 D0E822254119B31FDFBC15BEC4B3F4407C4EC9A76978EFF2A6C454AE10A62A01 DF14C05476E4107674ED1F35743E46E53166F2DBEB4A4A6EECE8FC21B1908D03 1896C088135F68E34D2C3FE7B21290F53C31C038B605916E0F64E25718C56813 590D3A0D1FB4C666DA273AE0C58C594C0B3E62C8A65EE92E5BE6BC3B65DDE1EB 621496702FE78A22E66B58356B1B148F4EC4C7058BBE3F08D566D9CE7D0A053A E62D3E3A00CC5E195F60A13552DD51C7E8792D18F6F34E8C06EA06684D2281B9 EDE27A504951A19D09F748F1EE97B632E80B735E41BDE266912A4FB59F14745E EB30B2C480A183AED6450F3F94CE6865568C9C5D8CDB92669AD943A93684F1F2 C98F7C7A8FC0D6268EDE430E4A110D9319F89FE4A6776CF46D17A976BB9E3B4C 4A9348F189BC6653C10A45582AC99AADAAB9EFC72722BAEB79026E4EEEF14373 14DB7FE7A5ABBF3934D6DA4936D9CC3EB196C4AB43534EAE3FBA4EAD0BBDB95A 02EEE47E9E97394AA7F1C0D2D262D6305A3BE50AF503B3DBFA5AF3346B584479 1D8C57ACE0D91000A43B682195455F7F630553DA1302B4818A994E8F061E3735 2155C42B836174C4F81A8CF82C58A8BBEA5007FB7F524DFE4CBCA3A826426C96 136F1D8481834B10608B9F95BE0FE9A013175569255BA45C987B55EFFCE99DAA F255A1D5B60CE1C5550BC3FF80B77AEEA238BB071EF7E688B94A23F05164DEF3 ED44410D9AE40F1A6722B59D9F5DFAFDB3DC7E5193197054F15FB77ABB62EF4C 5783F3090C0030D632285F81299735949703735CD0E1F535750D316CFEF6996D 0957EB49C5182D07CAF72C8D8D7B8C3FDE9256FD36BD2DB3FA25C5BDA4441C76 11FB28447222C2F47AB0E3DCB3DAD6071CC213696BBDC96BECD64157062E741D 1284C13E40D1D3AB214A28915A90CFD1DB7FD02AE3B63126FA815C9D54595821 FA9622D072CA354FC61A525487579910FE4A836753BAA76B95DD0F7FF0892D8A 3F6973AAB33A7ECA3B68A99DDDB80B8A4A11BFC372F80CBACC367E99C67EDC74 639C54ED6CA1E3487C213D5F9CD719744446A4426FEECE5BFECD2D131AB766F8 7035E91A1134CD00C935F21051220733C14604DD882A960346E7751948E5680B 1FA8C33D7376CB898D0D39E24319EE83C6A298AA9129BD9DD1EF1C8BD30A8C1E 5D5592B757FEA47D2F1FAEA523650C4B568BAA0A60A87560599F81A0F1C2FE28 CDD87F0135E23E68332BF544F04D74193540261B67ED1E30B370DC5B02A017F4 FCD8BEA2A685291286D4BB28D4755DE2D3CD949C4ADC0088D8EDC8F23CE0E7F9 507DEAB1B78AE36399266EE3AE8E1F17FF718D43FDA571204E8C4DC1257A3AA2 A07CB07B91BD864E6F48A86B48EF96C57F255671108F4A7591682DE6A0CD7E1D 284C960D5A59B982C2F4F47C76C15E21CE0BD909C690AE462F8A57FA67F03C5F 79CD9E918114367C95C645148A8C5FB642D90717730B019F2B4C89F1D09F701D A0EEFA0F509E22E10EC5588066CD19C9E3C4440B1624FA368B51F0BB18A11329 933748C5A46F78BA27CFC4744DC3E481D31300381027A25C2D066A799A84071B EFEE68673FE7EC418633D506741AB3F192F749F162C11BAE1EADA7DDE810E14B 7130E17CC7E13173D283F9B00B5BD4BCEB253C39B25D5B5E61E130E1BCF510B6 031429BC917BD9E6AB4E0291BF22B6DFB97409C95985CDF2CC035E33305446D9 440C7276F9921E2040E6FDC97D3D8391E191FB6397BF029875715955ACACFF8C CDCD28DFBE2C76469E8FC53B7C21761284FA59B4EFF23448846BD5D76551FB44 3E52711F0BE0D1D5A0649BEEC9CE79FBE1379F18679AF18C6A39E3155383367F B9500CFBDEBB0DFBD789E69891AA9A17071C3891D5F37FA0D208C042F5222089 6C1E7FA7C652E56CEA9F520023249D0A9417DDEE0CCCF9589B1459C09AE7DBE7 BCFA6841FD60D53BABB0DAC7A0D34F703481CC6B21812230BEEA4CF6BE379E5F A2E7472A97407E340B4CD0A933936222EDF3F239E53542BB0450B7442657436E F9B6EA424AE5CC6608AECC864F1A4CB8A53BBCBDED146B2379F2C7D190FF4BF3 F00D21CBE040EFF75C35B4D871E68D29FB6B35E9CD7A720B17B0D89AFE5922F3 86D865E4BC48BB8C630034CA106B66ED45EF6C8D973501428494AC3E4241B2DE 462C7EB9148CC4DF778A58A58A4534FC63D0DD1964873DF86DD854DC17B086B3 1287F8CFFFD80657463D7C06A3D6BCDF249C0EDFC70E048BD243068300DB8AAC 3C57A503BD4C263F6ED8661D67040A3A91782D9A1FB9FC4A1ACBD1E33EA87A68 2578D68C3CE4CFEF906E122D3B76B72285CB3D0DE5C60ACC1FA3D90A94C44AB7 D5140DFBCC0C6BFD572EEA526E90C885170AF9E0EBAB38368F0EF682BB277BF8 6B38EFC0C2FB669B4AFE65881D5148450E40B5F69884FFB2F4EBBE46520D1B50 E97AD4E7822F1BAE161AB5F23C25541F6AC883FE62CC7E82A67F09783CBA1DE7 FB5015C5362A81402697A0B05443437E45AE4BCEB1FDFE52FAB8BB054B7E5F35 5BD29857B7191B1DDC0C61EA92781B1E72E5AA14A8572B5B9C0B269F373187F2 E617206395E7F1B2C5BB934E34E8ACA4A9BD00829E92C85EB9BCACF290FEE863 E4AE35BDEB7BA67734904D29C6A7036551CA13E36FD66F53AC8C4AFEE3B8365B E33353933CF395624FD152F9C89753CF9B229AF6F54439FDB93CBC198A80C0FA 4E14F6E8891F21C39C0CA650039B9694B1B706AC4D415D16040C7DEDBDE92062 D96A1799FBC52B9A260E2F50940B62ABE66782EFA2B52BABD46B535F0E51B3C5 344F39A0E5C3EEC57EF8D309C6151C49E40A4865F8042CA1F3B151768FA0858C 05747665EAA42DA2E0D32FE90570C12D3694ADC1E6D616CE643AC674D64B9829 7AC75473CDAE83B8ADAE03B5644E502F6A30F6EEC83E4E7C7CD0CF274458407E AA19CB2992A9AD1C740DC91C64D734A05F83C78E07F34651136A0C59146F8679 EFF939254634CE5B524055EF6E512511AA524990463FCE80F92B339063A55BE9 D723BE0DFF0E3F1E2A3F8A2C1D45FFCCA590CC429E9076DBB12C49BA3E15FFCB 7685D536BB45834660410D6812CF2D98B7EA4DA2AFD43C8AFD11AD836CABBB61 4206227E056E147D984B2F5BD3C64EF03D766F7B8D54B20ADC7268F772997A6A D9BB3385AC0C76BB47E1D844B386B3F4B5CA9184AA923093F0B35EA208F8227C 91C432A2CB158E9DF3F700DA93891CB62F9DDFE34F03902C29695B055BDB88AF E8673BB1A6E5850E74FEEB69F0AC300D592EC10917DCB2459718F785F08D87AF 3B518B4804375E005F6018198A04B7A1DF452E79190931EA844ADAA6C5EB28B4 2D4E2CDD026C2660B4E8330293EED88AD05B7C43408B37FA67C1DCE55EB5026C 9829D61BDA7762723D2F12E04648141904D524365838ED42C6BF470F4A84F7CF A9EDBEDA76E83D9111EAEF1AEADF3D6B4BC0656ECF83B1912AF4F50BAAB4855A 922E1941BB5C1F55608EB6F980315626D6BB1AEB601344587E9F89EC01D42A66 4D145749727E5557B8219DE14D067974BA9C101AB59D96CB935E3D3535FFA96E 4712574DE4AE9D62F2A89EB608DF3471CA8AEF6BA326A5143E55192C076AA66D 36C2C3DC3E6759AC52D1DFFF8C390F234221CBFA52EA5E8AC076616E70A3563F 2AD444D7E5A63D9E8F141DFB6EE320D36F5AAC599D442CD972AA3902C9E44938 285497AB7F387735386396DCD2DDB0C24285A5F13BFB0E822FD541AE3C2E9194 8ED8DA31D539A8134E21D467A2577F096A6851C4C101C43F52CDFB085E62739B 93261DD01216B48B0A3CA43FCD5EF298AFE02900503C9519AD656435B1654A1D 46EEF1FB48B129811C8443CEAB01AF95B96B2317E5D2814B6EC158FB8B66D8F1 63C074BCB0BC32479379C8EDF6D263910777C4FAEAE2 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSS10 %!PS-AdobeFont-1.1: CMSS10 1.0 %%CreationDate: 1991 Aug 20 17:33:34 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSS10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMSS10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 40 /parenleft put dup 41 /parenright put readonly def /FontBBox{-61 -250 999 759}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF7158F1163BDCEEA888D07B439DBD4E8B4C9 D198C03874B5E6F8FBF4922065A92BC3E66D05DE53971CB1424510E892442858 D69CE1F76E4DA76C87C763A4B2FE36321E54B1328C9155B8ED6361855A151723 3386AEA3D042B8D89C8C0E9A33E5DF3B466F7BB8C2C8A4ED4CDAFF55FC6D3EE6 0AF2CEBFC1AC3A6E6692F8BB81F82D86BAE85016AD62FCB05467082C2E5AD348 44D1439C2B59F65590E57CA0DE481A7A34E79931B1513C4C30156170409A4BB8 46D412D1DAF88AD30722F12DBCA1CCC6B4BCC28D06B0D29149DDEC520C8FBA13 6B82E2E1790F00B216282FF122EF0D47B70A1B29514DDF7C0435ED238C14BDF5 6DA243117FBEF7398F97EB95597707ED63C6797EBA1B46EA19ABB1DABDA171B3 16CD500F5D64CBFBE4F9CBC3E66A34427D3C4D0C432710289381F9BFD91B4FF4 1E3A896C3EEA2F3105C218877D6C0C6B763760FA364D00065E1CAE9DCB5676ED 286A9ED0D1C946DCA6A2A670EE0936FB4706CC62E234CFEED34AA615C48D2872 A087F30990C85E64BA68F3D5C117123467DB411C9F2D6F6858CC70C1E352C477 713097321B4C4FD4C5CDE305415F998E7245908EEDE6E056A736EA77BD8C639C 3A79FFD0B74B3D28F0494A115F2841CF8A8827AB5608F96FD8998A5F40FB3DFE 3AA0C7696DE4E1D18DC0D6E84B943175FC38FFC42A9C0CBB13A908978C98BFE5 034F88480F32B9DEB2FD228FF6CB0B89B045AB02020C82E3F5716DC640613185 9F597CE262729BC52132F43922B9E28BB71A30AC8709634561B22D13C4FAFE0A 12C4451969226B220038AD8DDA990A4E2CAD53DBEAB698898BBD3046234EB4EA 901287E71CB41296C431383AB85F18882F65BE36923F6C0FD6FADAC5B42FDB68 64C06E047434FA7A659EF7F3D1AA8E547939FBF9C2ED7AC829F03CA59AFFBFA5 A7AD2E0FC7BBE619961AE1785D09444B333993199FFED007382B54DDAEBE21E0 1E75E0AB6D309DBE53BC7BB9F95D342F51798574D70B95021FA40163A86BE6C9 342536A5730837C522D5314B1289D9B7E4EDD108BE7F35A20AB2A16608F6F007 6DDD702A5A9BA1325CE2C1CD020DF677872135CF04F4E4F1E9AA6B494E2BC22F 107C331A7E80718B030A1103804D144802E3B03EF7CB083BCCDEAC7B43F1B4F5 C1BF6016741B741CF7E12B4BF95221A72CC9F4657264771AA69C73DA1DA29102 65D01A0E61F3024E672AFCCBE13CD0B7F54AE1418B72E357A0BABB4D03073B1D F4EB54F899AD4A41A9F94DC200880A0DB99D67235A2451B25F710C29A882865B A922E56E9FC16756014FA5CBDB1C32750BD6835A70EB715CEA19A8872041905E 8C660BACDCA26C8247D6B3C10FA5DC240E433E479AC6AFCF57CF96697FF46BE6 44748E 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT10 %!PS-AdobeFont-1.1: CMTT10 1.00B %%CreationDate: 1992 Apr 26 10:42:42 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 23 /ring put dup 25 /germandbls put dup 26 /ae put dup 28 /oslash put dup 33 /exclam put dup 34 /quotedbl put dup 35 /numbersign put dup 36 /dollar put dup 37 /percent put dup 38 /ampersand put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 60 /less put dup 61 /equal put dup 62 /greater put dup 63 /question put dup 64 /at put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 90 /Z put dup 91 /bracketleft put dup 92 /backslash put dup 93 /bracketright put dup 94 /asciicircum put dup 95 /underscore put dup 96 /quoteleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /braceleft put dup 124 /bar put dup 125 /braceright put dup 126 /asciitilde put dup 127 /dieresis put readonly def /FontBBox{-4 -235 731 800}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19 38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204 EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727 A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593 F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714 4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA 6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F 1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438 452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF 8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369 5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9 BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19 741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79 E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712 E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7 D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE5056B58A9D6BB1DF8 769A7F75476761E687A8C04FFC7C023F4A610B105CB4E2144C82181C70A2A97C 96E46DDB637486F5A5AE16B8B27E8909626114A5A14782944D1C0CAF1B916827 18E0762E3B88C957946E58BF74F9EB39B3EE15BBE771CC058A5CAE1327243C3D 00DA2631E3E83586547677F96327E8F49B3AD578C0D9FB003045884C89A31725 65C32B1D1632368D09A1FC23FE4C1AD48F8140573BFEA443EDECEA28FDF10B96 EE1FB793597F4E2CC092E2DF9B35F469A8B51ED4C842FFB59319762915DAD84F 33F73A5A139DBA47B733D58786C3F6CBF1A6FFA490B18E3D314D0F81829CF252 3414D6FD6F3D5BF5D3A4E30F8CB52414FF143F96C38F225495EA262713DA7EC6 AE644B331C25AA451691FD4FC6453F990B95A3B7EC5F4CC17A1C2FE905D2F36E 9A954D8AFDBAC7A28A8E6FAAB4F5F8A48ABC1E34F3EF0A58F330AE36366F37E5 48C6DE0FFDAFF0F4C3DA957C130A3936C4504264CD1D9AA781169DC6ECAF6EDF 4E2E45E5E8E54EF7FA1C42AF3E670E0FEF9C85E3365633ED40BE32D1492269FE EAC9B2EBB288AB51CE23DED80B13306AB96360FEBF829410D65C4406EB08F5F6 670457E00E1DB0091BFD9EEC400EBA065CC7E904BC8BAE1E39432CCD10B22C17 391E8D53D5D294B48A4CC84E1471F7A62DE9A66C31B9C89E4E39EFBC4A51E35F 493DA12600759173358D8661650BAD0959D2F95FA6D2DE2B2343FEA2BD752B10 43BB9F869A604A2C1267EEE7235A1B584732DAF21371D4E2B8C3DC0072C46553 8EE9BEAB540BBE0ABF89A902EF916FB1477C796F575593472B8E25DB85D5D7E0 19DD2DEB414DFD0EC0884A884E0FE0BB79CE6C646E44A917BC1498D39F6D2ACF 89225E8DF1ACF4EA1F71550220B035B6AF47EE962104493CDF9DDDFFE6FEFCDC 0E7D527A023A317C122A6F4FC597D325BAF4404BDDCEADEFAE714A0A6FDBB0B2 3808EA4BAC252A603B4B98D6969C3E5A27CF3F037DFD723460B816789074F2D6 23721D38E3F5C55055A36CC105BCAE93B82CCA448EEE9EBC7129676CFFD08955 45E908778DBD3D4A764EF76A128CDB6043B9E685058910F2EFA60EEA24CAFCCF B5D27894D0FAF70427018E44444432DA217576D9871ECC3D6004C0EC5F43B32C 9F1F08C2A9D21EA336CDB7BB4A5A437D2230E8B709068CE066960AC2C49A0F46 46788F984A5F6458A44EF166FF986A7D063C27C6A2A2ED9156A7EE4B34B024B2 778D7FE70460423FDD889886319E84BD5203D8DCE42B54DDBE7CA207B2B331CD 0C7DA5B2D0462B9C428DEC4DA9AC80F21ABF25BA97A93D3F2BC428BB4708AD27 81926594A4119F4E482790F67E37A2305CD35D821BA8DED6E76756AB42F41E53 30E7D96E58A9C8CD0413201E14AFC50EF52F87A36D22C4590FB6EEA9DE03A06B B3B9CE2F312121C6D5DC0653C96FDA7F93F8C88CA69F468FBF029299CEDD6FAC 5938D32C45F216BA707C93024DFF0C0C54EA753C09F79C46043E8A6D8B6A2558 1BB3D38D9CBBB7633E7513532C7A8B2DD6BB6933E1F7B5F88485309F88582B8D 0FE83BF9C846786636B00A4C6DC92FF6FFD3382E230A033D4C8A3CFCDDCC725F 40632A66CA5A0EE73FABC80EB23BE44CC4496B6D4600013A767C89EBAAC29C4C 469CBE1ED529DBA8032E8BEEAD379133F4C1A4DB34AD0602FC4278BE9DD1B4BF 4FD05E0DB2AB659A953192CFFDE0C61980AE4C9CAD97CA33D9329DA73C748AB2 DF59081ABC4F41358EB3C78AA2679617B223CFC0E0208D2C0DCCCA5FFFEE7C05 CCDF79F43CBCC4D0DA203C2AF51B5407D07316C8FB7AA49CE57283AA76206461 7107C54AAEE825B3DD4AA96EF621A2D8D74369862CD3BD09C8B2F15976E6CB77 637DFC15B13FD3C5DE0E365067492E44D24B98A58A14DC6FCB9D81C861AF1761 F175304B25B1EAF3E1BAC49C2C8E5BB08F47CB9AE447952A6E467987EEB21EA8 05D336BE0F60ADD3FA1422152456A4DBCB82F76D67DF167EB24F53B0362371C0 4FA2254BC05924B1974A9C35C687214A9A8C9F0631F889212B10BE3EF9E6626D A6F9433520CAF11AF8A92A72B0DDB3235928635FDD84C966016EF1DBB48E5128 4609F90B563AD6A4F0A4C90064AF3B79A02C597C8A714C318E3DAAAA188DC210 D10C6B973A7C9E6995C530694CD30676D6D49A5585B59B780163E1205BB67696 8BE110CB0598CDDC51CF1CD99A4A64FB15F904D43F883E720BF0A3100A91487A 5457549018BD7DB4EBC8E53C543866144BB7E4F4D9403445DF7B9783B17F05E6 22795D137FA3FD749E97256A555BEB391675E5D07AB4EDCD46DFFC6ED4FB8D6D DD8AAEBAFD2A8F66FD487CC39B85EC446FC82B634515F89E231B8810C1ED00F1 3F81AC5CE6B36917AF46FAC2F7C6183C48EC3F1A5253DE5A3B091B8FCF03F2E9 8461E6206AE3A809EC8B34715C9D2D15C83D54BFC7837E443BFE5B85FAA9365B 0FA0B2629656369B226EAF89FA7612A97A3D3BB48B4045CC7FA5FEB1B97A1D1C 0F3E4A3A6F63F0FA3B7A55B525D5FB480D92081283C33E802F87C639AC4DD469 94F86AC8B01EA3B8437C3A66DE31E2EFC930967F3AFB983B4CBB12672FBC41F3 C04020F66D7847339FD10685B859F5FC0A317ABA2B9D2A322D6C7AC3B44DB449 E37CC18605F7D8E7A47EEED5E43283958CF3987C22F29F49925CF324E9FEE21E FFF783DD57C0CC0ADCBA34B16D9D640D2D8CFDE98178247922446262006CFB91 72425329E91B3194D5C364AEE73C071FA73AE79E097E2F36EE42EBDC894C82DB 99DA0F4D38F9ABF56EFA06A574E75F49DCAF478F5095C34725B577AC936A99EC E8586B46FBDB118E4E8EA6EC427120E34F31BDA887A7A9BE84A42B5071E89C00 1CF7DACB95EA4B12BF3E4E74C6B8632A5B05271588C04AC716D7D53A3F22176A 89C780167D1E395FEDB7FA3F320F3C725309DD96B8AC453827627A3BCA36F550 AF12EF426F696F7EAAB7441EF576F3EECA5065CE54585B1F928C4366FCFB39B0 8A26BF570D90950DE77D62951B5FA635EA4C474C96A3E02F2FC6A82334FC5E5E E0E8CE5A7FD855A83045D53F63598EDBE8FB12BF2B4756F926AF21A69F9742CA 2A4D31C5C82AD742CC6E84B7894E96DDDCFCE252C4CF01ABBC4961239AE69E6B 9CFB2C66A1C336A5E6E99626ACBF0092831CA748254ED1BAC31883ACF7794F16 860EA61BB3E7CFBDC68CB0CC21C1D23189EF251CDF2EF3900376F45BA7EA815F ED8235EB2ECA7F60BC35DD4C54153DB987C0A00BDE993E56D2474D06F998D431 E92FEEAB1848D8E12C7AE197ECC9DECC89E0F5B29455A59C3C2BB67EC207E6A4 19EE67307C710308665E56369ADFD9D28F858AB1356C82C1D85BA24C70FFF139 146F93DFC545FF204A77CE7C15513F786B5F0819FFECBDABE103DA156675B27C 48EBA9BD3D60F6B7F86DD2FD6BF32BCD75932D40379D75E0D4DEFB33D96A2607 DFE57DF2F8B187685CD003F242C97DBA3026222D8D1101FB198A6EB5CBA03B16 72F308201CED928A4CE46909B73D0BA7103A2C40A00D2A958575F953FE66D6E8 F93832B922EBA8B26798B23932CA67D264FDD54E16A853F5F5643E9E82618C24 4AD08B7B7D0C2B38990AC228FCC12890D20628BA24B44BA974BF584C865C6062 C8E89BDC224D0D4ACDD3D68C9AB628A8AD1EBD43A7472D9243597185D4914A1B 875032A0C828AD874F2F5D9795F31C98DD44A9DA68CFA2EF9E69363F0C5ECE8B C15480228CC416E4DD4AC40C2333B2F2E468CF04D58AE511ADA9F46222A2B68A 37BCA2348586094A66EE4440B6B3301CA9C46563DB03F5FE36F0954FC81E2238 67D2379EB97A1189A435B2D0E8823BB05C627D8142CF90E0ECD8D8E026BBE8ED 1DC380E81225EF44C2483308B0E19640B72D5096A42680A6A0E550D095677F76 1A09CB173307DDA591CA84D65CCA9397FA7FF74760BC20651EB35FE90813B2DB 37D75A15AC56DF67750E7BB7BAC493266B6C2932E86BA407BE86D0731D66BB86 630779CFC2E021ABFC6B2A101CF419849CBAD036151E5223F164244B2E7F78E0 ABFB0107C2CD5A7BEBC1E06E74836A8C1461725DAB9383E508559235FD7D081D 879E29E0296F4A2C4ED061D360E53DE27C78CC142578AF4F45BDBA5A15912ED6 B6B26E522791BF36E9A9B91E0C8205FDFF62210228396DA50E6B1273D167FCE6 D750B61D532EF6A59BE698B92CCC3229F0B9215B4300AB8AD95CC0ACFEACCAF1 D4F9FC8F90D6E8D9FA2B8A8C2BAE7BEE1C93A4F160D397F4129CECD96331F3D5 68F691DCB840B45B118E420C1A378FFF14198703C021C9A3DA10E1FEEBD74B49 6FA10A7324325A4DD7564C9A63DEEA0EE1A7A64432D89AE8E36CE0694076A733 FBCF849A3924EF174AB63623369E4FE53C7846EF2300E38173F3D7A8C42E7B33 54D280A916BFDFE94896AE6DB4B05DF783613B9924635DDD3937196D0EDA7D30 06E007CA14CCA4701DE89F30A3637C3C296762C814257D0043E82BF196AEC92E 87B2BC45E4AFF73689B5B4CDE887B6DA6B38C385110379895FEA4547A7C6FDFB 88950F547EF5CF638145CCF88514461110C87A1955912167630591BEE8321F27 188D1B35E246CB05C11F366CAF668E071ACE72D3ADB42572882518FC20A80AE6 C8DA60BD614F1841030968281F2FEFED639729D1D10C60CF6FC66241C6418B31 0FF5666D6B89F5165C4B575DE6FE6615ACD9942C6F126AC0C179C2D7363C7D39 8BF85824A7DA149B6F7467EE6C7C99432A11DFF7315D9963E3AD202B604BB93A B955ADE7FA1C4E709EEBFD25CF2205ED3D45C56B843E83FA7A1C44E73AE6933E 048EBC341E3D9007163E99F0078E15851FB63F87AB9CB083CE2BC9DA4610802A 077CDE49D801F017095BBBC52C5C829C63E6E96E73CD6D74AC21116BFA1CD9D6 8E971EF0139B30AE4E70B622CE9FF7E886BFD8FCD5DF5C6B8D539FDC5F055E18 167FE0BC00CBEE23D559E1CC0C36FE7BAB0318A665D5E0A2393D2BC9235FB29D 588AFE3A3174CA20CA2B78A9E5A6F37703A5F7FC3E0AC6E70205020C6ED53DA4 DC7FAC5176CA4E2304D27D25472877940F4EEEA3376D4FEF76F4C8A16B8F23FF 4146C736470C6EF10E905D8EB2E3735B05E7760EDF96AF9DB4516238EF129758 9693A70AF9DAFB479E9B76490FCC0EB5DCAE4B9BD2627E5C9EEE2D27F7513274 8387FCA829FB443E410B8522A03D4CD1907787D3F3D28430DB3CF6073269E336 404909C7DBEDDEA4E36BE1B5EE3FCB545E0567F34D6B9FA4A5F44B94F89DA1FE E64E3012F6BB81D88F6960D96F1C4D732CA4FC6AFED77A79EFC2A62363316F0F EB94106ADC51BB332B1B287F9FD8DA71F86D36AC03DA8B572AD6A519DF050AC5 7F8B07A5498CD8907713A7DED63BCE3ED4A1433B0EB4F1514C44EACB2D84C6C7 F2F7DBDEDAE6AA114CD7BFA6C678469168D320B1A5E5F12AC4020A5B7715CE80 F557C4D88B5BD36AE164D9AF9DB2B2D9670470ABDB7CA15FF735249BE4121ECB 921D17D784559C9177248E31BC87A3C48B4CAF1FB1C6B4FDF288E221DF36C2C0 7F5A2470697722ACD33751A73E49915BE3A21708D0CBC1A250DA06BE44052F0E 6862771B42D1404C5A9CCFE638C028B211282264CEC3A4C9F539C201139E9E21 32F2F3ABF2374B3D7949C97D1B57748E3742CA077B926A84404B5B0C39ED838E BB361385694E0B7BF97FA50E7246E4D7E6570C69B7E6099B6B06E56B2311EF97 A99103CCD087478FC429B3114A39F937676125786DDC42E54810E35651709F46 0A97749A09DBED1EFE6638B9224AB103A67FE53046DB40E78005F84787D9AD2E B6CAB5BC5C84D370AF41D7B3A1B06C8C9B154E2E3ED1D5E929A052EE75F21C4A EC904ABC0EA93F87DEC10BF057BAD2E565B02B560CDC55F89E2C3ACFF474BE85 2FAD5EB9F288C7F44408633D08DBC7496836BCC79DE77D297E917A41ABC351A0 71A44FA46E06F2CE8B9E8F9DB9682958617524E93DCDC89E406F83EA47A94E8F E52FCAAD6E3729D2FBD94CFEB2C8ADACBC8688DD8F049C541006BEC2EE408F48 0F4062760B7022EB7CE3AF667DC16BA2260BE04B5C7CDD3C69299DDC3F2BC853 56788E5637ED9540647DE4748E6D61FC54BE197809209DD6A3F472AA3271F91D C09D8C64EE42B72BC1845145657E9D3C41A3C06B03F5C5D094274AD688990871 9DEC6555169250C15A0690D461D35F7E962E44CC6BB88F29766FEA1B0C2DF59A 7E793F38FA14BECA1DEB33C917006D2112D13A6D9E7BFD7A059CB5960680DD25 3919BAB349A5DB979B9E58A6527676A08E654C2DEF87CD44803D8F7CFB89BBBD E4DF715D9C0AD589515A4955789E2F9E0F0B741510B272138AC0E88FC8A26AAD F622D37B2B3C1B9AD4FCE9DC1FCAE999C8B3FE78DC0663AD8D0B7357917E6E58 3BDB824FCCC09A3A870D13CE823CE3D9D701C903EE00B9E29BBB90F7E521D7E4 E9D56698EFB7787FE47AD5F7C7FAA107C042D46C11411710B59A3D63AD0A3911 6C3B99857F55C2BBFC0C5888000CF19C58E6B5A93E0E39FE9B4FC9F80BADD8FC 6494209F8CB56A9A5E23C201BAF91A045A6196E58D3257FC9281F96970B1D7B7 9D2E181E408353BD2395513AB5A43464D9E687E7B755267B5ADD5D8F1274AA8A 8A2C050F1251365241EC5A4537C497742A6D740218ACB6BCEEB65D9F800AA19F 0CAD86CF2BC586F5CF07BB3686E5B4575F96ABD47DED0C084510894F7C24781A 1957029AD2AD97519B7ACAE24895B95F76EE922239E0316F988A5996E3B4FF76 BF60D81781B18894FF93A11EBD10D1373D41BC92004A1B9900A37CAFDD4DF543 93EF87313FF2429BB4C7872E589AD856C45B0164C07D0CA89794F964A3A11FB9 56034CCA30AE6984C8AA2D5F582C56BB290709223BD193D77E2F58D7D2C77553 08D36EC1B358E0BAED507686EE355C375C2059AA89FE1DE788BE916DE4F6DCBF 87DFAE4FE7670A48438163E4036CA82D90BC5ED55B9F6352B1F825670B331324 1CC94F4D2E804BF30F6B53C2F9668C797B677281EFB31751C6CD24D2FF35B6E4 5A63C4929499EA9C438C89EC8A69760D173A2AC63464A9C96EC9FC5C1A908A34 F60ECF28E37DAB9D1EFC7F04B362BF1261754B8E8964303B101F2B3D2516F2F3 677A83F9335243CDF091E681B6F9332C33CC1575D1B6DF0E5164E123915406F3 C5C198EAB46CB19135FB350D9BFC913CECB646B607CCEA5F6705A2F3518E5177 4A0DE296791A918338373432A23CE30558B3531674D6C80E1CD3E91F22BADAF3 9E607FEFF9A62962FD7820110C2F9B57847BE7D5423DFF6E4EB491540E843664 B6D26F3F5C86E4ECA2709B496889EE9CA84F08D9D58736E290094EBE0AD1D1EE 1AB15586A241918AF634C7BBA4E69086BC523F3ABD00347CC37FD61DDDB94263 89CC3E3D5E0A92C50B633C30FD446BF824B71A1C5F1287AECCEDB4A76E19A12B A4703BEC33CA0F0FAF543131AAE5EE5DFC62F043DBAB28AF6B560052D12E59F9 6DA5A7FD570CC5C03249BEAC3F38A16B5F8BD31A3588E9C4E90F751B8F5FCF86 54351B3E883E2C4230F00A68141563564E3A93ED8512D1BF8AA250C453379704 709069A73E10DE42FD6B4863567027B4B3B0A531D593F070046F307636F6ABD8 1EE2CB549BF9DCDA801D67302110C70151343D5ECBF27956BE844937FD2165FD 91B2B47937230C39B054DBA086B9217B132D3C155AF2B31AEF8014F8D70E4034 3FA97DE401F7A651D78DE51ED0BD29FD79AFBBF73827D9AACC4E9591BC4AF5F3 F38B32923D9288B6247FF2D40329B623856F540BE99C0FB26F983239393B0523 FA2738DCE926BDE82F3F0656036F51D45B1490BA5F599EB432FEAE04691BA326 74558B998480293F26845717B284365B1AA2B895EDA9C46F238F1A621F061282 931EC77693E03AD9DF7D8EFD123488665796F8594F0359ABEF5F6A042C430787 1A2AA87486B1837C44C561A971BCB136C316C2FCD28D5A7B22DC8BC91A101798 1F5ABC1562B2BFE962CCA50D275742F4B1E1EC2789DF21948C9B7AD567361814 89659F8330AA7DDD30166353EB30A5F90AFD0F57A6FE6DBD3FD29C227DDDDEFB 242AB7E5FE0E6B18A0A1C5BDF34B132C61F357785BE5A0F3BBB6988143A3CB89 3540E0DB51CEB3068E098352102617C17A7AE9E72641B23860D5CB6C65D85B83 E4A4C6BC47B509F7562DAEC8D4172345B24CE356502C213957753D9A3EDB2B77 84E39FA189A90E9A65BB9131FC22C185DEBEAAC6A87A754927C28C6C2C3C78AD 4E8AA7F95A1AF810C7C64CF5DCF59B27C02D206437812FB55063D40BF4FA3CCD 013561BE542CD70E3E8D8D56FEA3AD43C0DE02E99CDEE4FA5087CF3ADEA6DB80 33315076948F9D28286EF1C2E41DB835A0E494111540AD56564D0EDFB1A4DC0B 3BD15D4A6107F8B039D37777CE6012030FF496A39BA401243A9590CEDEA200F9 4A88339DE3E3FFEBD0130A895AB76E10B2A41FF99375272D7D576C666B054E65 11882D5D4FF66C72274E32AD21AD7746027A232C277141C1BB076C05A289FB68 0ADD33A4344C63AE90B0DE698795DC941DAB787276BF19416D12B24339A216AB DFADF1D4BB64128BC40394E142A812F40AC5F073556DE7EE199ACFE2DB53205E D64154BAC4CB401CA1A1C589146A6EDC4337390DADBABBCD3A8790AB9DA3B339 BA89054C0C52EA86899210FABF873F5B6F10808237354C271FC612AF5BB39066 AD9B5C0866D9D50379DF4A260D882A56862E5984CD2FFCA2953A84538EDECF54 348B0DB9EEFA8F9548F487631174AD5866D7B2AB4622C372616733FE7346AF9F E557F895C798ED59B700EE0C65D1996760D331ED3DDBAF0F53B9E10F63D0BE41 517C0FFA58C20FE5B10C4BA9D1BC082CDD991CF13B6C6D0ABC5AD4CA3F55C966 E4B14F176DB97F28A6EE72B72167FBFAB631B4E3DF34AEDBDC48DCC9173B0702 DE877053893792F6CAB43648292AAD3C5FE2785E7AFC1FA1CAC89D9AA26A3F06 37CADE97826F8BA63C3C390A94AA6AE5D0BF4E52D8384A290D64C552A4011981 8CF2B50C604BF2B780AE28A8AA5851F29FF44D124A1D64A7B5BD7A4C603A80DF 8EC03EBE26083353064F6B2BEF9477FDA6343FCD29FB9E8070760CB84BE5142F 3E8BBFBDF0268DD4B3037126CB8D5176C38B588D31B63094389650FA866D57D4 49CE8193727BC70DD253CB19EB65348DE5BC33304898946301ABB1F96177ED57 5C2447456BB7DC2F5B8BBDB830DBB44886C795E484F76853D91E3920B8D3E9E9 027F12E6322B0E41EE72E3F728AD90E2B9E41098002EC62B6095EE8AA8BDFC57 995E603A2E67786D752CD9F302FE342F8A02CA462DF39D585C3D73CC7CBAD1B3 C286822D265524D62D58E311FB845166460C83B656CD4B4E31743983DB6FFE38 5A07AA89685B20FCCAAE86255D44EB8B1B3D3E922A1FB574B5C8BDDCE5CDDEB2 D8BBE0C7EAC54540A40F254C2A90A507BF8B59725F5E36FC40261DF34D29243C 3BC9C65CE7E6D50E19E3C3421D2B5D84BE2D7CB1864843941528145A3A6E1F67 94ABB555D73CA6C45EE6C891AE96BF224D9FB3C9B0B47B21A699DC2A1B8DF8CB DC7252FDA006C8FDD6F641948BA5B2D5F6FA454F2C4ECDEF1660ED33D1488797 6B2B8400928777E6B795E40CC17DCDD90220A507E72DCA1D893090916211D3F9 57B15C66E0DA69845BDE295346413C30CB1222EE4C1C6536C14040BD426788B2 D0B8F366BBBCD119D8736E26C11B9280122F6A1A06A33B133FD78A35186D10C9 7D3C2A18853AF7237690410448393FC1993915FA421C57BEF15422EAE58C84B9 4A03DCE4CB05208B0025879304F98B2E645036EA0E2A50703750503C414FD481 59ED89612409F61EE3E8794BF6120D19F66B876A7FF4ECFAE639ADBE17B2F1D4 5C4DA9258D707555836375F170B01A451EEAD81B9434041BC67D84673AD592F6 10740E221C48DE4166F13DE74F98E7F0A9825985AEC57C51BB8A58ABBD1DD2D8 2D31D9BC4EC992950E15C4F6909D58F8128DFC279E971FF27E07F4E7EED809E7 58C8253E4BDFA87F1086739D57A8D57DEC9ADC72C1FDCC1C5ADCA391C6AA1551 39EE932FD41A775C6BC80C5B47B9642446CE137A7D8E85492C229217AA90FE15 4F1CF1DB8894711BE82AC278EAC0E970C624C3EFE0F974E5203651C4487D0953 B7ED764FC803CE2220EED53A54769B046ED35DCB0A3BA31EA49FB26B67C606BA 912E7CFE29DF3A9E63DB2CAC989AE8BF9E24F61F09408D6C0EC279C3E502575B 34885F4182B1E48587A0F28BD9C37200B29EA57E0B2EF81D1703815867087127 244340E2C0AC28E1377247EE3424FDDBE111010A2084D243F5A6DDA37A983D29 3B6798690DFED6AE09ECC39D9C0EAAD55B1DECE5554D510E52B01271DB4E1421 BC767765C125A9CAE24418945C52D60D9C7AF61C3E2AED45798D4618351E3E4A E0291C63829D55A28828B99444D49F70953B19535C069816076B29468C1719C8 FDAE1D38710D0EB2D2E965F75DE15431563FC843DB9FC5462367B1C15DB0A27A 79CF8D863F42496C03D7014725A3C14233BC2D800776A46858A5E3A026DFB90F 2EC843F94E1FD3FFAC8642E800ECC8C5866FF777EE010A4DA9EA2FDDF00DD0A3 D323FEBFD7FD089716FD44A66B5A7C92837D3C6963699F0007792999B361B007 73CD354739BA61FF60307CCCD2D20829C545E1C46336BDF2E321621BBDA8CC6C 4DA1B6359039D0B367172C2D6F03A09E4A0C6CB22D876882AD800B8F2EB42A80 FF637E0BA29B3DE49EBDFFE6B4B20E2FD0AB55042ACFCE5BFC7EEE08693FEA17 B161F226DB515948EFB62327F3D3319276790754B87945A92D1C6ECE7426CDD5 98F5182A9221373C64EBA95A09783A1E6986817F7C1B2A450A49F6C83C74721F EF428DC7FFFEDFF46DE550FE5D5F224F04C39B22C5EBD956F3DA47C07E206270 5804F42211C513B100118A81A9B69D709B7F23173640B4E0002C7A37783ABC5F 8DF3CEAB740CF1F46C0751435CB6478CF952AA66DAD3A89FB2C20CD382A9621F 7FAA723891A1C7BDE39DEB1AF05D49D85B730B0CD9A8EA73AE53D0CFC48638E2 C58E11633573A602399031779688887D418403E8813CF28006C655488B58E51E 3FE78702416106FA78F8F4510CA2EDD76678D0738B4B90087AE541EE0F9D9B92 E0246483A64CB9E98555505F8154CE165CC5C1C5C53DBD4167A41B4E8BEF64D6 C02E8EA6F04BF247B7A4DDD7F15753A20955307A2A0DF8EF9F7259FB17BA4072 9BEBAA3B17300F127401FCB79A9EBF5745ECE0D928A77B6C981A4A679060B0BE F2D2A6905CA4A90C37B7A91B8D24A052967B334CE50BA0A2217BFC64831E6EAD EEDB56CDB42D87A3DB4282DCA71AF6AE97E05E60AEE094792ACA1B36B92170D0 D109086F0A022749590A98392761F56D14A2FE06D1C3F24A9971EA5E965C6E4F 8736880AD9EFF0F62B6A90D8D531D1EFD0524D273EAC1EF5EFB640BB3D985968 D22B870106950796612D485EFC2501703997480E5E4CB7FD4A10790B67CCEB22 F662C109923CC09B078CF5AB0EBC60C3F546CDC799D95516FFFDD9C1DF6EDB03 7C04D72C9050C7AAF14A86A10E839D7B2AE7BFEABBFD387858CBAC05FC72188A 805BDB5AFE3568EC326DA47083F41870F2EB62A934DCE65CEABDAF3D56F606AA 562E9953C3EC0E8D507A5045AE33743AF01007A5E4FC1B8E75181B5F35043BBC F5EE392857E54D02910A8A6696A7E69B296498212232CDDBF408DE302986E937 FBE4A0BCEC1B45C50A5F5954A42F03A06EFEBB8950990154B7A12BCDAE5A7E79 815163E57E40775EF8C5070283906D6AA694740965D14784E3C6191C38A6790F E506F098DF89D3E5BA88DBD521AA030D63CB714F63BC22BD8939253033BCB71E 67F5ED3B8489F7674AC747CB8751456C5DBCC90A62A541A2C64E423EB8F9874D D1ADC64E79246DAC95CF4F4AC54B1520E56746F304F7237CF548564B9F19AF21 2575849200F71BDECF8458F1B704DA3022AEE342E1B58F5AC762583771E50603 02951198C2F13CBD9D5C9D712B65892B904F21AB2D12817F37A1EA094BD5228E 433A8B834FCB549A4AC827E3A354FBA436A8F9CD5C549308CD6C8511A4874069 C24250400DA5B4AF622585B192E215B522C24CBCC903BB5C6AF81823CBD021FC D77A63DF63272264C0881A9CDF5C06863659E153B9B32C661C8E2C5518A1F0DB F6703929E7A3F5F59489502D4A684BE823C3CD4C248E8FFAE9EB39709D0EF868 4EFC680E48EC87D258FD1BACD98049F7E2785AA8C632EB8529AEDB213CA3AEB8 F440E53A51D19D13FC0780F57A958F858EC97B3EB29119007C82137C429735A3 AD3C87C1F957B557AB80E2FC0B55F744B333FC1E49DD5B69DA98BF4118C8CF84 A4FA4EF636F797CA1258DB55C60864A09AA75E90C5672944E282552A3800AD7A 12A2990CEA5E60255C4D57F469F6C79FF6C7D902935AC62D9E078A2F786A926A 2063FACE68DAC7E39503C708E42097D1556B4B3F9C07CB81D2FA93D498E307C5 E83BEEE06B38A344CC332338E4E566C0BAE2A271E628ABDF8F0DFE2E4F2B3295 D13933C0DD6D045E9757FE536020F5D529D1A018D34561BCE245D9BF37B249D9 1455C7CDCB757EC8BD8B422D1E72A30CC2C3ABDF933E42B8B5C8608B4B66E45C 5F697CC7B6A540B83D74B5A3E2DB05F1696B2BFFEFB1C9DED89FF7B23B423D4E BAF347483B1DB41E73B91665C5F236DC6D723C52E685CDDB87A89153EB875BA9 3013CCA734D0F953BB286F15CD350F0806E6693175024D6ED4716D7530D2CC61 4F18A7C8316BA9CEA2FA4370829DAD71ED13A7C64FD1D3EB614CAB3BCF49034C 54A748AB40CCC5F9C8EF1E7C674BB8D16C2CD98541621E921FAED15AFDF61844 8A4DE6F69E2E5A829B0B0E4652EDE1B39D5666700A6089131DBDAFBDC0216308 AE9477B3387EBA373A1D6922DCED787E9B387205990C0AD14F8987FF7F943E88 717046574563B81FDEC527D71E27A6930D9C7A80A731E87F625BF2FDEB3DC8C2 E4DABB309894441E2A9042F5BD0F873F110A2C4C3B6B656E4E32B4B50DEE998F 6A483A284FE3CE1E9568B3BFB5C594DAE1F6D8388DD57F7B997EC0283500634B D8AB357DCA4BEF3EE15F90B5ECF129671C248ECE8AD54F0925D01B91BF2A6BE9 4DAA29A24FED710E98DB260E960347F4655118DEAF07444B6B357487FF4B1128 390DB70513704DA8AEB05270F8ADE1AF7864D3AD3CC5A6B998F8FE342D96C385 635E4D9D603B6CCEEED9B4564A96C34AFDCAABA0C5B89AD2A97E7576EB895DA5 E3E2C11B376C8A938D9F4C8D4B417CFD93F33467E9A0D8D5C9645A985A75FFBC 99F55E7F918D4F9EBC0D86DD42DC3ACDC785C4345DB9D41B04DDBDD99251EF9C 1B5EFECE31F81AEC5479E7CDA0CE66F6849EBDE2D5020B6724EF1F4E86A34328 A099BC8D3AC972A7227816D67847520572A897BE0F8C40A8E1BE23248A938BA6 E7E693062D0E3B08207C73D0DDF0B1D80D7D1B023375E68FD7DB8C430CE24643 589D7437AC26D90D302E327A352CB3700F360DC788720BE66BA728774242B8F2 5D09C3FA31BF50B20AACD292A73A00E71466BAAFC5D62A3308656BC000F63539 69D8716585B3B53044C9AFDC867BD2A84CF27C1CAEFC22E9DBCF85646D31D133 53A2E024E9B476FF1517BC724706F13656BFF89D8E2FEC269F8AC0E861FAA906 16D346483CC734D5A60FC0908AEFCA959AD94B0D95578214C363ECC752A88855 CC4122C827F07C9AF43E8D3767C744A5FE425D83029CD3A1F9692B9DBEE359C0 76AD3E9BEFEFBABB48C8E28FCF3005113F33CF35B47DBC7529AC0F1C6DE49D09 6CCB2E31B50345EEA24555F6B3DD8E0C8FBB4089DE5B922406EC4511820DFE06 85200EE1E4171461844FC866C9E8CE869F99D1647179A4C0E2F930DB66DAFB25 5868DBE7B7D4A8DC6000100B1D51787524BE58438D5EFBA81C21A189EB2D512B 601196068714204EEACF95D1059B88B1275B8584BC28A462DF8BCC41AEF514C0 41309C9485B15F5BB34057A5963F0C4F3CEAA7B9AB4B254C81439D3AF79123E0 F43126E76C8A547E751432ABF428D6E9649E5D2BD08DD18F75FBACFBE4CA3679 4FC557345493EA705E3AD9158820801AF324EF0F5F31AEA85086978595BD7DED 00074686999C025380634D66DA0AD60CB71A7535F065E8D60B1B266BCC303966 1898A1232BA1F41C5FA6F12C82DB90C01059EBA861F5DA515019D8F39589D20E C6D20B1E018AE32C0A05A7C3F2210BD1FDA9E235B6C8BF690DB53624824B7787 593610563CB1BE4005DDAF12BBC662F0ED166456BB68C541B8725B3D24A1BE4D A4241215771CC5175204B3E246558713A8BE62C8E9DED5D0EF82330FCA43B07D 38E5265389B47EEBBC4A54EF3578E8B27C61604D6D23E32C061D586C230D5543 BBD863585E6B7EDF6AD9204D7BACCA0FDDC35B8F7315C9FBF3B72E764E9A5DE6 DB7D999AB273C37BC6E3AFFB126C6D0B72DE2439D224879AA4B94D61A43DDFA8 76A9164BF74FFB8CCAF7BC1AAB2742F8C88E03E46135C0E743904B30E2666F4C 33E5201D39BFABF299BC1714FD5F019FDC26C87B4C36D6082183D510E41F9DF5 A85151153D2C08AA6B2A07FB04AF1DF373B543F33C37D04A522BA6CC3918C9D2 D794DC60366D622700C73712A3D18C9BEAC3DBFAB04039CC3F7FFF3AA33C63D4 B97686F209782809B8B691107EFDAC1A50ECBA2DC0C57C5EE625A0FFFC6E587D B8D83AEB8910266DBD4F8AD6AFB3A79BB2DE6EE8026992F2BA4E1FAB49409E13 59C074095706474855803781875F6DF1BFECCCED1AAB006DC49BB307616AF322 6039748F8E9183078AD912154DDE6B6656AAE47A6E667EF2043F200779AE3B43 8CA13FCD07E34929647B421503AF311DE50D29E3B419C90E2B7EB4533B592C51 F029F3E02304FF4AC70B6798586BC422D49C6BACA5A1BB979B89B8985D83214A 2914EEA06C6DEC0F3B8875F6075403028199979A7501626708263453A8377E4E 8EC049FBD087E375E3034A2D224D507D1AF80D88B57DBCF3E172CD420C6B5F08 BDB576F29BD7619FD83618E4CF7A8EF06DD99C2653DF7883D308BEF9FFD29114 7FE92E461B5EE7B198B1CCC23A18407DCA12B2EF2D9A77C7548F59F8E8B4EB89 6BA07BF76AEBAC8A10D4C7EEE5C41B1E431D6CBCF186EDAF170F26ED80F06C56 9889AB624E9FD5D9FD8EEEE73FD5654FFC0BDD9A0056191ACC0C6768638E569A C555019CE11C670EA6815679235EDD06510B9EC6B64C8CA4471ACF893AA895F3 812C0D7EE3817F0AE3865C7394F534881BC67664319EBF4CE1CAC61CCBB065EE 84FBC8D2962FDB6E4EC96BF4893C6441F87C0E7DF11A16DE9682CE21220951B3 56D3CCF5EFEAB2CA605879323C49D3FEF5CCF78192EA321AA8F6B9A4C6372083 3433944F5C45D7D81B74BFBBC715CF4B88D92FCD27341F88348FB6124B472F31 D4A29E3A45ED4F95F86CBCF36FAB540040EC6E1E43FFC406C09DDA8105ED5F0A A09778F7371B591C386C3B3B366C404B8F06AF75FEC0A1788B2A87EF4C4F97D8 9F18F9F813329832E849A77CE449CA5822712E6A8E6BE012FA6022C65106643E 3A9453CE70344AA71AAC485AEF6363F55DB6B0F84BD8B8C1A322A5240B604E5D 63F850AD5E9E4E34C9B403C3F37C6C725BA23D0B84829288BFDC8C237079C009 E8B4965B30A14E381C4413C38DCAEB433E4267BDCD435A8150B4C6F02578DCC0 09538046A1E22CCE81ED17FA7692D2D801735638B9A45ACFC00E097B7A25323F CCA89361DEEBABB082E01685212EBA99B0EA448F04E2AB80DE3E2AF93340EAD2 F01B12095AA1A27B6104ECC6F37AD8A7BBBF107C29D66ED684CEF63174DE287A DDE42E48BC75F75CB60E42C07C100309B5E175A668B968F4F610E7B1A1303EE2 422E3A07D1CE7E6F6B178C9637384267F5E2036C5E931823F03E893E67CD6841 5930E0A3C95068FB600B00A24B7795CB87458CF9A3273F4D9F109A7ED6E8E7EB F96062A5B917C07FAAE3F23C1C959F58CF0DE0A13DEA29BFC7C90A9CCDE3D863 E1F33AB6D2B0E4F0542F998BBA6CA65017A501557E3490635C6047991BEB7FAB 0BB7B21708DF55D4D72C6297534B5233DD995F4C139FE32BEA7B35FAA4C58EFD 6D0E5AB5B63406AED8B0DBC45EB3319FD0FF48BEA8AEDAF6AC9B2040B11DFE46 B8E2020BFA7DAAAA3E88219A5D708FA2E468E58BDDE1D5C34A86B3207C8797B9 22F3BBCE7A04AD47A5818E9D0E5D4208B69B399A2FC46D530D1F0B6E5A02D369 58AA32F3EB78BD731BFBFC629E1C66780F5BDE5A7AA9B3A0E8B8B4D9903049A7 3086701B5B8CC30C5FECDC10EE651649AFD6EA38352FD24A86BE537D3EEA4F78 DF1D7418152EE6BE44773B1E8D40722DBAE967018FBAC0D0924B978F5F0EF78B 0667351921F6B5C69E95ED3024AD6F7EA51456C0B0C6A507D5283A0C658E7794 115F4790CCE777B12C342A8D9FD424733AB87F6CD508EDCCEE7315FB2E35EB79 F5EFAC06821ACC757075B8F35DDE83B67DE3829FDC8D85EC7EBBCB40C919CF14 34841482FFAE2152EC762F03B85D2CBC989338248866FBDDA72520A4A290C73B F325FDEA401E11AD0D6FF97B3C43FC734DCEBB822EDC7FB3FEFDC1DF266C2808 D59319BE47F906CFC42B0195425BEF65523A67AFEBE1023105379600358DF8EB 167B4D18985D7693A4A9D65362EA87AA15952E1A07C6EDF801540F51DB9ED625 9BAF06F1C86D3501B02FDFE58182648A606E117AB9B3A76F9172D35E49955634 61F39042A5C7833149728EDF03DEAFA96A0EF488A50326EC3B3D66EAE9AC7B40 1DE6E4D22B1FC2B2A1221AC31C4B7AC5E5DF5F4B08125F6833DBDAE183402A06 808EB11C4163EFFDEF76E60120FC6258A43FCC7AEF261F1D5D3716062643DE36 1C6B9059AA254C0B371E02B0D682DD0930195322873A4FF8451283B694B90F6B 5CB0C285DB88C29ED5ABB798F8ACD99F31C4DC38EC1A915BFBAF302FF8D0B9E9 4CA98E78F6418E5082CF09115B0670E8907031AE9D56D3626D1D851731D32216 35656561E3FA730A8FDEA875055D68131C036071694F237EA99B8D0BFED1F740 903C9A87FAB501B475A1513761E50B92E1858577EDE8FDCB519B2C25A5CD8EA1 B9A7BDCDB100235EA911B4B611422DA4F5F546099B0CA06349AF74C497908053 C0E16A196AD451DBE3BFA1C00408288BAB7F90A07D91E70D619647FE91534F40 89DD83A126878281E9C0735B86AC49C2B998D2CCD6C1538BA72EE028195B5768 4C3FB0378BF7277FA2E5F8320D5F125D1DED74BDB940E87E6626A207D368894D D4F9CA9C5999C671670175D2FBEB3AF02A052FE64C56BE8AF131E77A9BE4CCD4 95DA08DC7382AB34654A5B8D4BC0CC795B17A15E8338EF32E073692CE7B8EE8C 4B99E8C071BCC02AE52E77F929A8A3ACF7DB34871AFB4F5415400FE3B70239E0 37B13043C93B94C566B13845D601B04D3715FB78FFBA8A37A7FE55BB6156CB93 246BBEE8CE5827F441BAC607618FF9EDA6E33A8A3BE2C212941B637712144242 8EDD10ADA0CDAE27B7184F4146A81B71D33228A74EABF6F50DF87652D3B3DAF5 1E56C7203A4FED366321CC356BE9762C24D89320F3F505876C61F6DAD664B387 BC33221F235BE6A85958B4DFDA82240C20D5A63331C3C0FB7749E14E9100D516 CF2CFF63C3D18D2FB522EF3FD51BECECCD678A22E71ECC8C543D01B2A6B4F526 254EF9E6ED575100C8882A19D3600C7B9CA3997509102159D06E4968A6C586F7 C9FFE27A5157EF0B5A8B53F5BD0731AFCF46744D919B303E46C0090E55D2010B 91424E9B5E691734773FC5158DC5E67D09B2E1C9F702730F6C94CF06D7E97834 1E5905CE5A61255B9F6886E5EBE4D4C0B213A22364440B2613AC4E9E35D6BD7E BD96FEE8E15C45A650E9327BD3540DC329E841133F081438674E04E1B4FB06CF F8A654960A1C4836F7C9C72988637230F0CCC6029E84CE6A76C7247ABDB0C735 963D94977C209B9DE09C1E9EED4B64579FF0AF2DC57C4146F25E93AC906F06A0 C0A3B0063F4A5B5B96181E3CFEFD724018F25FB3ECEBC73DEB61DB15236C229F 9527E48E136CEEADA2822C02030BA795A466351E5E45AF71956673F7D5D35D27 5AF7EF45352A3D0BA52E5599C30C54D5232BD9985FC581DC99FA6D6EA33116BF 12388D3A5271F165825B08B8575ECA7AB3332FC8150697EB7F389D3021B36E69 A37AE45229B600A6F1D0CA04D0FC950D5884E2ACB39332B24111D0F4B9D11DCA C043645EF6CA812282608E991D4BEBDAAF63B85C046CFD0F2636D7EC2F56E429 774E01E08D5B5A1002E75200B12A72D39B592CD5738DC47165F2B920FC2C6886 BCD87569A396C864AE173A5BBF2726F7F4C6D506B23B8F20DC20314F40F1DF6C 4704765C8EA0BC21898E0CA8D908D0913EDEDBA892FAFF7A40A1B4A25DF02D1F 707DC35B2B46B7985D49891C41634F86153FD3ADA0758F627712BA940568191D A64EE0F93BBD4DA10F6EC71E44BE92D46B31B937AF71FA3B50E644B30C25F9DC C11EC4D286F0977A15E615BF2E72BEE4EECB76529BAD81FD420A4A0278A6142F CC8FC27BBCF3726A41E13EC9F64A67B21390489B4834BEE73E77EA35BEDB069A C1D791CD9476D8484F10DCCA690045F1577F8859EDD19A7B5FC5A2B2E78F47A0 86F292FDA42D783D10467A4DEA7767A351BBCFA5792555A4557030757B695D36 EED918EEC3772F132EAD28D998DDC99A7FCAC8854AD90A38B7A25A9270BF0EB8 70E452CB4026CC7C163A6DA5B5AAECD950C4593748542FD80FCB3E5A6253D0E0 18F692617E694539A25FDA688BF874EE4FB708054902567019A1F5C4DECFC561 10753B00A81004164A0DA0D124C58ECC52367BE5995082431B80AB76D2ED130D 04704AA8C25E92DBBA9552466ADC3B2DB8CA68B9C88EF017B09D48ED8DC37F52 A9C14C40EFDDFC0F725EF574B575E75D260A7926EABD120D8FC69512186BC598 13720A3D4502BAE525DA499582D59A67485573432B179E595381C13DDC012A39 AC702B68AA3A0C10BC3EC93B8598246BEEB279FAD0DED97341EF3C4563539B19 FD9C37DDDC01466C97DEB627783E12F82878579AB6ED8CD1E019633A07D9736F 41B43A22EB3FEFC329BA87316AC8722CD1BBBB32DB2A1C6A579B2DF85208F67A 41BFD2E0ED61336B1045EFC237E22DD1B6921537254A0A364681322D5AC4CABA 4E353AE59FFB06CC5C0F91DDD5CE97CA192647C93311486F986A8BB8C75AF6BE 4C2490EC3B518FC3D903E18637C71A5075D535D81C59A8CCC6FBAB9692E64470 AA868734B5EAF12C1399AAE7E48399516CE20D9CA2BCF3FE9BA0C99C6EADDAB6 06FB7C4164E1F801C22A350CE187171E9C62C55A50A11FB48FDA15BB68D98261 3D849E7D288CA8B341FF9DEF3F581221E998AD58FE7923DCADAAB6C9C26983B4 D6D833011B19C32B0C53735CF223D13ECC2F8BE42EFC6621918728B868D0C854 3BAD843A701FE1E791CF3A44DC467A08263CBD04F26A07BB3F508AE0423C46E0 12D19C569038C49B2DEE45F486EC52493824728C14B39918EEBD47C5397CB821 D634E4F4338F33B0F04BE30B2E221D1063D2256023297257FA1CDDC103F9FEB6 E8905C0FCDA28F0C6EF10C107C3B84607706F5945ACFCE13BAE0BE17279D41E2 AB4CD65C880C8A15F6A0E431E6F104A90E091A4265DDC746929E7871642786C4 690233D7B26B40E9A39D4369A9331B8812C3414B155312BCF45831E47BFA8F6E B90AAB07B11CE98E6FEFB004D85A7718974E920946E51A10BDD246CF79C83A2D 44FFECFB76C1351951B80F6FC8D2A106BF0D8A12FC27E81D51444B95E40541A3 88CF04B9905851C5FD2598640CB0E8D8E9CE4EC244D788517F6E62D39231E3F3 2DBB2137788AB2AE9F97E56981708E61F49C561F679CD5DB030DB3CA2C042907 E18CCE15FBB0029FC98B122EAD5751C8C71F0D63B05F2111BC5755EEDC61B44F 14556F5E5486AE348886126EA7D666F4F5B1639BB00B6FB4B5D1AE78A8BE8976 C551AADB26C734DAFD7B93D69936FAF0D0C504D34B62F618F7250749F7780CA8 ABE7178066509E26112076B813D49F77320D3E0CB7174231BE6D0B8BEF004F62 D1ED971C9596B263640CF03530FB6AB8F47DC04A588DE1064D7C1179168BC8AA A5E4FCAA0ED0AE38DD0A1CA92A522BC97066B7A64A40C69A6DB09F840D10AEEF 4ECE16253C85F258058E03962F9B61A3E3C9F59350734A2DC1B4DAF3AD1C34F9 C42818E94BFCB228FB6B41B92F1F9E52B36DE3F7272AB1559A18C937CB76F650 5ED72AC284008BFEBF601BFFBB2D1689CAAB81F98403ABC04B4A6FD3B5956C9B 15BF02E470D9C7BFCBE04DC00E75DF902314350EB8BE7BC6F21F0B6B2811EDB5 76E409CFC70412EE0C1F16611A82F89F6882921057C3D6764300C96DC0A0EAED A1DB30C6E7439BC705A346EA1CA3B52459F4775AF3EE9A00CCD580ED27C1E2A1 4BF77C036D466F48F5F40EA39FBBB548354DBBD4D059D3C3CF2B1E9FAD1113F2 5255C3AC319C87E770332C0428B8ED1A10D00D5F5D1CD110C2765867F610BBE3 382AE901CFCC3F907D31D6594F50B6AE926F4064D4DEC6B0791EF0266B99E881 1F3C7056850A97893D2A00DD677EDF9BA3E12F977A1239E44FE5FACDEE92BEDD A495DE8041554B6391A2808E9CB2FECB553FE7BF35CB659BBBE6B37918C862EC 446BA6A5F7A9B01F7554BA12B050C86B9220DFBB9008012AAFB56CDEB172E27C 6D5CF3C835E45D9B1B8C3C044090310880ADC36B2C056447B034C1D8AEF332AF 64B348C56A9A820AA3CB4D78AD5F423EC7E9F2844D7914FFEEDDF38F790E9518 9D1704CEFF9CDF736457D64FCCC8E0F7F9E1A4A321F36A554F3AC749CE6EE742 6D209C6CF009131C868C9887550F52115D0756DCA26E21B2399AE37F4FB20ECC A35388ABC07CA8B6B60E3CAEB64E7FC1E054AE495CA80DBA6E97C999B3BDCEF8 282AC2433C5800B44799F055732ADD4BB6E5869BAFB3194217DD5DBCC864EBBE 3915FA3D4058BDDFA143F880671E3B5A9E9E3C0035686E6FC05250F08D2E26C6 91C95F62C3DE637A34A50A483F52FCF0BC54DC4400EB29721C337DFECB9085B4 354499A740AD101F63C6B129644D9328CA80295654983797F3EE6F5439679EA9 B320D777819CC341A2B24CEF879730413E13B6D067D5B0D3098032508ABDDAD5 20D39762408DCEACCD2C0E01628E3F8EEEE05A02D46D34F5FEBB18076DDAD189 DBDA369ED83F26DC39323E72D091DF89868137B668F7C04E3929F892C134E6EC A1DD4B4F02CDDE4BEC28158D8AFE6D7BB80FC3926375CB6FF2F91B4B2ED211D1 165F57F05945B09C3A1DF23709BF809328B73C523416941F4DE20FC7B729193A 9774952BF00685E8E3264A9E6AECB785EDBD595900F4DC79FEDDDBA09E62B326 21242DB9201FA07FB6243FC522B67A44342CF64520206F3499D3C6516FD3A7C4 002160C36860A55F023D68618861A071E3EB7DEC409583A2E935DF2CA41D29B1 B99C395AFBF964627351D9D0B1F6D7441D2E95C5A2DFCE5194C3143CF55BB96F 4B25A30DD9322494D4CCB796F57811E956F515FC373846842DC50313D5A89FA3 58F69DFAEDDFBBF71D0A990ACDEED7580478DBAF4B3413C9 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX12 %!PS-AdobeFont-1.1: CMBX12 1.0 %%CreationDate: 1991 Aug 20 16:34:54 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 35 /numbersign put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 89 /Y put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-53 -251 1139 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712 B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99 AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26 7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF 20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390 B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D 68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809 D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E 26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26 77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299 BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8 30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5 148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23 337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598 0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6 472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26 30F5D8CADBB3C1E3238EB07CFA0721C8370278CF356E3C0928DCB2FF192C55FD 32A12B22535E518EED14BD541187436BE7A4BBA4B7AE83DFD043D5E332B6230D 7ED3C4DFA4ADEF53E2EDB4E7A81933F3D283B228572E03197E402CC609FBD0C5 35D0847A11866EE335A4DE822D635ECD9A93F570E44B0C1A7095B55948645CDC 60223365F28F6722FF4286711B9B82030D3E8D27197C4EA8A9AEE96A85C810E2 285943B16D382014423567AAFFEC1352BD2528BA782A91B3507FC1C2FF4D1427 1991C3BA380CFEAB225AC64319056726CFCB9F5B9A2CB301A54E83D60B73CFDD DE5C3E6C953FD7BFC588A7EB1A697F97968059303478994EDD1E8FB4BC9E611D AD154557B4F64BB315051F72AC52C9C9C874098E609F8E21CDB7A53F9C0250B6 A52D91F430821F2640AD52475CC03356BA0DC8AB33317F57805A8A3060D0BF1D 00FB88E5AC560B97DE6543EB4209DDF713770B96DCB421677D80C18F26FB2F3F AF8214688B0837A2D75FC30215F146A7705F19644F503254C063BD2C6B8011AD CC5EC760FDB4DE49D7977136C5C52C39607C99DEA36483EC81B84AC43FA741CE 1588B84D618B3B8A85A9A181BD376504BF97DA22F85AF3712BA4DAF9AE888383 0AFD785AD5FF362FDFB7E4634F90F05888C09BF22096E2E6BAD82DFEAFFEDA69 FD410B0547607664027309271703BC5AC1C2AE0CF81D12D51260D71791DB2ACF 7953F524DC1D8FE6400AB0A202F27BF4DAD70FB45221AA1BA1B75E65DB57C6C4 8294345620E935F65E674D96A9E03215E2F8C3EA3C613DECBDB03E7933985D4D 2C3A1FD2849CAD2759C5BA12448427A3B5379607E092C2D1408FA85B50F2C17D CA4AE57ACED1BFD7CA0BEFA739DD287060B0C465306E7823EC1DCC4458E95F88 0F5C234D7D6AC3834705EFB6A97391D05519BC6DD793C5F505EAB387A2EBDC70 7AD4608D8CBAF92641F02DEC095E13EAC05609EB292BDA6181063A4BA0470F28 7EE7DD13BE6204DDB71439142B2650A9C25CC59F6E9047B320A623E69D38D3D2 D8525E5A7EB256C8C56731EB17C819151118FA4DD309BDC2A23DA03F3CF3DF2F EA7E5263EB4E9F1CCDBC3859CAEDC8F8AA3DCF8C9771C5B3D1A972F2CFADE48F 400BDC235FFFD1BE0AC7B70A8BB534653BC0BF620A5F076CA49D58AB295D8ADB 61F9A9539002ADB454497A0425FEB21C85376C79CEC495E784B5D33E6D1929FD 8C18EBA31803656CAF7EF3510139345B775074B736461EF106BA5E7061BE46EB 0E0138FFBC26018B4C8987600661367C95D7F4308068885D46E808B67FA874B4 C6565F725A9FDFBB6F6EAFFDED566B0037C4718C87226813EDF9BFC5D52DA7E6 784839ECE642AA483DE318C3E62EAA6486A7B1F3C6FA6E1941B7B8728496FD6E 713C2101A5BA74EEF2A87058247BDBB8118F6BC90191565907A67B4015D3CE69 2D5CAAEF03D97DFD18E4244D8E64B757334F57545A636398DDA3ACEA39DDE44B BE7197F61BE2BA63034A58F1C7A1276A007A5B0E3C2FFFE04F3AFA221D337273 2CAA055FBB377F02B99D4C9B8671A2EF80402C2B35CDC63E106525463738D5E3 6E03AE050CE5615F01E984A32A43C5DF31A065D10C3AAABBEDD89C37409E1A21 8E454817CF35263E3DAB0A962E9B5523C73D6DB4FA87DD75B5F9B2355E868CE6 E2C0D67F78C1B20EA9D94D29DD1D0E9E86BDFBADD6861D5FF59FA8C2FE48E326 C1DB24BAEFE3A07D3160D94F43CA7CF102FC547323D02FCEB03E811EB0E6740C 9E1C5CB845E98379FB0FE22275D004D4DA7D3BEBCB65DD3798F55C6ADACDFE74 BA80489E2B7B72203C0C60E67C9E4641C35940FBDB8293FEB74F2FE3F7E9B0B4 B262523A231C02056E79351CFB588FE853239FECC939FBFB048C076A94ABBA89 804EABCA9DA1CA335512E7FDDF79DFB83B46B6B58778E02437F461802F6C1149 65CD5074EEFBCD2A47E32C918A0A69AB06E7298ADF1FBE8350AB7E4EC9C99FC4 82997D968420480D461CD953E32B087466AA41250E216D4E7E050C406E687ADE 30D671E0C9C1BAE8677CD9EE726795BEE70C52C1CB3495AA8B6BC9BDA1A93D78 24DD0CFBF2597E6D4A7FBBF8148B6E3C8A287949294AD6A4CC18AC476469434B A33710A602EE386472CEEC6DDE115E72C06C2BCA6D39608FEE873EBE25F3267C 6BC5E893DD1BD942384EB6BF33201CA202A28C3FCE4893153D77305F118EA9A3 EA7E5B68DED09D320CF809A13E07EAD2DC01EE2A94875C7BAC7804B57379F98D AB6218FF571D149E39BCD685D708B117FBAEE4C3AB49A0D6B2E1DA5949D8CF59 D5F95739345DCF026F694E331439CE61C787C285A7E0C5A34918F2B6969E4B52 08AD9A27CB5AB6985EE5DE82A811B3D7553A707052342FCE58BE426C726A4075 EA6D663A442F871FE32248E4D4F9E06E89420DC6C6C1D063FD3758739FFB46D9 22C2DFA68F679A7132CD835CD38AD25300E83B981A9AB8BAD0E2C4A1960C7A46 56708C9EFADF3731708C13F2C9056A3BCB2118872349F06F25ACD2A3DC889598 2077FEB3A06A06800C8ED000F56A82BD073347E434D517B0F87FCFFE1361430C DEDBA293C660527F0813DF894B7661B5345A1AA27AC95B4DF6C8CABBC1724764 CA6DDF1547EFB8CF84F349681FED8D666E120520C4B7D6DE50A5D20630821CDD D821D9AEBFC38DA2989E7AEA822FE0929D6DF06787D280516A97671FB4C968C7 D6E78D0FCA042D3AADF6AEA0B26A0EE20CB5B4073360BD6FE1F913E43F65D309 A4794732FB47C1B11E8E40FBF73121219FD2CBF4666BEA01941F395EA768192B 2DDB9126550D6313B16C3D681B19D80F5A1B79E16AEE4594623BD1CDBD56F933 A7B756D8358D6A19E06440D9ABF9BE3C8D8178E720E9251812754E30018F4DA4 413ECBB17B76F5BF57A1AAC9F4232115F7A17FAA390C7241AC16E2681249DC67 B56F992477849BB16672958752AE26F17B691D99AA07DCB5ED924339038B5400 3A9E59CBA4CC8D7851E130EB0E6598EF1AA02DF71564299DDA622A4E61F15267 83E9E36A165A57FF8FB3D61299CB56F318104E4C77C743E82829D432ADC11C90 F2F4D8B45241DC95F8C46F320A5A8AF01430D6669EA99BEFBB97C75E06850112 7E88350FB6B616E4CB2AB584DFDA7E86FA9BDFB8FE3C938DCB3169A488DBA29B 58136DF8D6B8F1B7EAD48BC3944F0757D37CB8A0CAD66D035FA355BE2631F7A5 FACB13DB97C560CE15CDF49856524D5BACF9E5445A2B24AF3ABB2ED577B700AB 48814397FBC7D9DDE35AAE8FBF9E494725C90F5E73879B19A112A901674A14F5 AA43EBC61C9C83CED10D18F3B187B7F7A8D3E13C4AD12C530E761A6786E08ABB 46545676C97C2692DB1BBE86F84FA593931A1A82FE98CFAC886EBE154DED7B75 737B03A95660C97D7AE54D19696BF4C10150B0BF65CB58975EB0C9A6EF5F0114 1263F02F5D5D644048F8B2E9EA7DA27261077C2782E8F3E8614215A455381F04 EEF4F5AE6E8BC684154BF9B8A76504BA2B6B3276C817ACCCEC919429A89D1F27 4C575821F5969465255EB21B64B965F904DDF602CB4501BC79F2C329F7866505 B446470591C295122F2C39496736E4FC889D91C031BE95D12857B5BDEC836AD1 FA7EB8436DCB5E873BADFF8B6B8C0146E60D0CA830057B9D731FB27BF31B0398 1BD0895896963013C7FFD633D0C3B425FBE4D9510848E3747AD5A0804321005F FA5C2A72F4932040280C22E7FBE15A11A6AC2EBA8D4B38DEE581FA912A9E5F9D 2C041DD13B6E8B9A8411B01D3E8C8884600239E16AD35991D36C0144A0480391 FF3A9E10CF1DC56A9B3AFB48BE5FBFB4D136B339C9F6BB5408291913019C2838 380B7313EE325F034DD074A7F74E3F21DB10C7C059B5367B4CD199BB69C1BB2D F33258E544EEC09EE43241D7F4BD8DD4A2D68C919A23C4D4A8C783F7E9903C2E 0BE5D4BA64BE0621ABED53238423433FE096BAD4DABEAEC068653FA72B1840A9 20928C50DC9D7E41E47B804D0146BD91A2FF56E2FD5856D0FC6F6899FD493C6A 49C80DB7EDDC1489D59B1B41D7E597A747DF141CE8392B1D7B1BF4601B5991AD 67E068CAF2DB187A339F6BC3ADBF27024A09FDF25D5CCDADD7B05DCD801ED00B 044669D6DD3EE80700386344D96275CCD621EA3A39031F1CD78AF3B32A175A0E 7D9D83AA8AF8373A66D7B4F8E06E86C1C669FC9ECF2F6D45C5B72DEF384657DE 6E82EA09A2AD998588F94681D4CA62108D42FF708BF814059C5C5EBB4615FAC4 4AB718AB6A528E752F25574829333974B08869602B5DF61F704E3F6BF1540997 C515134EF7A5F39B5566B6BEADCFC0C8A0DD70EE0AAEAF59D6D9DAD8CA683505 8ED1655A005634447AE9459912A2217BC042CF8380C74D2EDD52AB2630D63C4C 0E5961BC7806F9588E9EF22F0C32F48F68D401C686D21B8986C6EA9D886B955E 643D0C107A6E5940E79F4AE63563B33CFF51C46B936A874006143646874E7E7C 9FB57424751F03D09DE8B73EE44EE35A1AB96FEC93632E095898FB057553EEA8 AA79106C5C0D6682A4CDC2B182529EDAFD1F4A64B97956026BA6D9C4ACFC230C 8B36B47FC9A78318B1CE370B75E3150F774B20827251CC2E2E748EBCF2D481CB A7247B41E8BD742B36BA7D3A2D1FCEF620F7781E712D05900B7A841B63F0D992 75E10A8A6D686D9AB28A49D39726F262D81963C47C65D1E1AE23D1951E1BEF0B 51E1EAFF5C67D7208FCAF18978D5E24E91F123FCE1A7C2E5770CB4BA7E90EF12 4C41BFB572862C590F63B223EFA9CDE450ECE1075188AA4C582C021D8F3B42FD 1CBE679304CBFB9F154411B4B7B5F061652FFE09040DD5DEAE12B45DCF4AF830 1D516D6DD177CA467BC83239324B84F84CC52A574F30C3EFC4BAA573C8C15845 68DFEDE6D1A1072DE055BD480DEDBC6B7B11771BB530B1FA0C669C268FB72124 D54B0CA70812F5282EABBF4CC5783483589A25729C46D5D944216B1B4800B141 3A8C860106DB3440C7242075415A61DCC65AA816E00428AB6FA9681A61A590AF 995E3D5B4C1F6E12B79C8EDAE42A7C12CDB1400AAACCA84302D54ED14DAB0512 09A4E89C635D2348907020C1CBC33FFA0053CC5907E9B417D972B98B7C6CB425 C4B6A59ACB6B3CCF163049A78BA173E6B8AD1BB9FE92A5969D2A6F476FA16671 5B102819182F0311F1BA5E70C72A2F026EE920AD2763DD383692FB904E1BED76 B6E7A9D66BE62A9368821125DFC62E47A1672EC938E039CCFA8E33E18C15C6B8 8E17E2AA173EBD213516EE495878B258C56877F8EBF87A569A24DD7EA033C5B0 DFD27A970DA5449B65119A80077A96E5299B9CA1BFC5613AEA27E3BAFAF186A2 BB60AA9E327B58F156E9CA4597D24B08F6C0F507EF11EA40CDB94D3D4AF9F43B A071C6F8ADBE8FD8A3AE6B1671933DE62A3F5E6BF231151A81EF18AC97DE96C4 8E32CB9E9306EC46349A2CB4831E6C73F92D5DED37C11F8071A455E62BE5F3C7 83A50AB50CE8E059646D6D2AD7A19CEC068EAE426C54155F2BD4CD4F7A64F98C 507B110D9F70F91F3965E8F34118CC80CB69814E1ECB04D9860AF1A802FFCDE3 FD774106CD23708CD0C66FC6270F8A6DBC030DF56950403742A357BBBAA330E4 D1AFFE86977994FF2C4DBAAB525125AF97A8FEFBF7B7F1C797DBCDE9CB6502E0 7CDC72D9DB78D365A73B84E525D886E2D496A686F59E4B3D92AF2B05A595AF5D BE0BE6DF2B309AF4F74EB1545404877CACC9C4982F88C35933C706DD48B1A5F1 3E757F47189AFD3C782BAEC4B388C88F713DB2190C4D10898D5795CAADD8434F 4835223DA5A77E486588087EAE585A4B811F06B8839052A9549F28D164DDC2B5 868C1FDDC7CF489D294E4AE8CFB092CED0D17CAB1A91874958654D5D105BF4CC 4DC04518496C0E5DEBC0A73DBC432D4C24CA6621335480912184DE2FB932C6BE 2DF98EC1B2A4B80550C20D8DDA2943C7919AB0DE71E90AAB108CD07F8663B877 84702161543D5F22C595E35AC00BE643AF3B8CDFE8B7AE4F61DECBD1E350A6A1 4CDE583C9671E5AC09FD6ABDDB158FFA8BA2D26C522ED13161324D64996F8E05 E5ABF5794F8ADDB9D710BB43621D6AA507D1E3A0D5C8B3F85E1BD02CB90CDB79 552B54755CED2D6737A8A49429ACD3BE85D9A02DEDB3112996220A40C6183B9E CECC5BE181C5BC92247ED0C2EECCCF2EE9BF326F790C0C24B6B8BF6DDE01E74D D339246B0FB9AEA975A09D30F3C10B868B7C268AA1AE6303160D7C478E9CADCA E0561E87B19D47C07DEA9F0C46CDEDC5675BA9CDA1110CDE63B79FECB8B46FCB E28D8AE5E8278220918EE3396A64B24A1BA57391B1C5E297BF9B114685EE4A2C 5EDF289B04C3E2255F57AAFE2422711F7543637C23017033158BE209D239C3F9 45D37E7518F4D7D5AF7734C9693029984C538B6FE7762EB9F2EFA4F86FFC70CF E907E35BC9A4140802C463EB88043CB4E30FFEFE92C1FC4AFC8D84334619817B F27DC4CAE5EF3AA1C9585058788175C5D6410E77A8E36FCC92C259AFA68FDD04 D8F72A01A388BBC304BE72D488515E1C6E733569582D34DCF1DD714F8DB0766F 52F0D4993D0819920B055907A83CF459EE40207150627D9EEF13B122F26E9E5B 4381734E120FC76B9FDCC1FC23A838EFD494A63EDE318CF30CE54ECED88EE055 B7812B748AC2A718D2F096B77370245720B55C38F8BBC8125F77E2FD1A3FDD5C 52E4B8BECB993CFBA028701516C1A5B8513EEF17F28E9B2AC49496C08E26709F C4A3823C725A12DC5278AAA680072C170BB5947844A57666072A3C5B29812FC3 5964C6C6906FE1C421A19188B2FA9D631EF6A2BD53A7BC512FCF35E045378169 50D375FD79176C4A7F73C0E1F8CC7E0BF389023836624798BCD3DBCBAF6DCE9E 0C694ABE170731C2A980E75E24E7F12F48C7C35CEB28646C396801F9413930BF 92342047F4570106FD3A7A7E6232C28AFBE05658835CD6FAD412E460E5257131 A32534458BEE8FCDCE3F13A2D88CC68E5EF08F16AFB3190E55C094110EBA1832 8CDE8F57C0F7DD3A4BD2E604F237F41B33835CDF1F35199C06C40445D07B585D 9949FD9C0BFE8E05ECA9D7E3954AFD7D1E3640A636BF29282FFE88B28AF3EEEE 63A25AFC1F57504F945F6159781DE9CD20247AD2EADF73846F6BF2AB2B46F6EE 454E0D6DBC3F9410AD9437F699F7D5B542AC47AC37871521DE6F4A2E1C23A0BF 419446E5A42B7A185C0CF6D8A0316D8E8468ACC131F7B39EDDB47E8B30C4C84E 14BE78A42961A19E15048F6764BD49220640DF03E264861F6101E2EBCBA58189 82084DE37D4776DA1C21192A5D18C0755606A20EDE6C58B825777BAAB2C5A28B 6ECCCE725D5DB80EE72E5B6F6CF81DD2AF0757AE1FEBF6240B4BE4041A11D584 829146716931376E9A6BAD97AA8151D1FAC010513A3D80DF8FBFA67885B3B0B5 935D7789491F2E7735C1F94B3C8C6FB97282C8E5814C7AEA16F3C1859B833891 9C8EE08432606D8A7E59466A40AEE0D51DC7830B53ECC1F714ACD06619BA5D61 728216ED9DF6F2FF027607153CC93AC046DD826DBD2D8AB87DB903CD88D3D588 4CEF8C31A18B0A07F936F15E325DC6966EFA7E82C7E261C8DC29F1EF84CD54AB 8E0960DAF6CDDE5108D845E0D8BE87BD1E86E7C88A698DF5A4B76FD5F97CAF7A DC437B332525A0C3C4E4B14C3EAC8271C3195096C1293D23156B5C8C70CC3301 70A745B4FB5905A3AFBA8933036180489D4A7FF1B31E8CC2EFC691CA017EC3E3 26AB3269777D1C0319FB1CB5B89DBE1D4653B686A93356B1DB4C6206112507D0 9B2F405DC5E09E000F8813E97B801480C8714965E56BFE531DC65BBD27B25BE8 0AA315029709CCE49EDA5C46AB3FAC982219912F22FE027B653D905EB6091059 7582371D7800864FDD082ADE5F7E4C90EF1C3E029D684F193F5D88D57AE3DE9F 2D6D900211404B677B200793D45837239644F1C18E0C8F622E167E89DCBE6E97 E9696A6B6598E2B1A053974D47797A02E8E6E434CF5850BDD47BD92BF3BA0EE9 5EE0049E635F0C25E9926E19013D6D40537D3C65FEDF835F398A4E3BB903C7D2 8F19039FA4AF056F6ED9B3FFF727C4EBB3231C1A6393C3E10433BC1EB42E9B94 701B114560A12C174A8E94CA9A1570D13A3DDE76979D93EA7FCA518719B9186C AA01FA2ED051349B7227A8CFE07493C45E9888643638D873739A443925F8E09D E6E10DABD9405ECD216773B4036DBE6A15A0514EC278FBF483D03CCEAB345212 135516E3AA29AD67A99BEB67312108AA94A4C42FA7B1C7DA1B9739EE1659B7F5 807E13120280EA2DCBB2983DAB7E794EA2ADF9F12161F5B7D13DF8D0CD3130DE C0B4AE2B750A45C26CEEDDA08EA59AA2C6905199EEDAB740A0A712F5C15061C4 DF84EB8639028A7F7AD29F1FAA73A1D8249876FC48C8145A3FAF43091F2C8C79 C9C5B78F11684124DF972906DEF550C2898FD2055A1CBB7822639D45CBE0CBDF 04268378B72349EB8B2BB59E7D842C84F6FF3C9E519110BA0FCE56DE8E256EDC D8C2EE962EB5232149E0D67C03C04C2EC74C8F58411057F71F94A28E9A17714B 12569BB0F72CF6AA91D794FC16FED49144EA2F4F461502421A9FA311C3349C99 6D7A5AD20741C0B6754BC3AAFB381F1C43AF786F514FB39782A61F081E58C000 18858015A19B754082B4923019CD7DC276B42CA4F18C66ED314E14264347380C 60FEC1E035C517CD4AE94C185CA5950901D88FEBF728C3ACCAF12C0D48B62E53 F5A6E903C535BE5F42A6457F56701B299DC490A7C5AAC46217E9F21E94AF79D4 236EBE819318653E11786B2CA223F2B701A3A8B84DD5015F9A86543DC417429A 4649213CF234507B6904769221DC7FFE5835FA7583B39AEF6FE4296199BC7AFF CD323E2853A95AD604882E57462A3E44CD67915351A5C56E0B81A345847C23AA 73CB4CA41417C4643095C9796A71A69D777EA3222245CE4F697CCFCD711DA328 175778396FD7500F16EB5372ABA3833C3B758179E7C95ABE86903C75FC379CE6 78AA73FF5C5BB9DB90BC4D24FF7EF2B27725EA8523AE7470BD2CD4E6B41A5ED2 E38935EDDF72C1A18955660282DEB92C297BE051469A22CF1D93385CA458ED5A 551FF29D4F9F44FDBA400A6C89B98901284F2B9DF463D0D3D297F5FB75D2B556 E6FA1A4B631CE4156824C2709C392B3ED1DC303DD46BBA55EA6F882921F7029E 1BDE958AB61AA78645A18500C6144C687E7DE100081B1BDF9BA371CC1A330E1D 56C3F3B825993BD4B7FAF3B302F469F5794BC244BB2AC8D4EE9B715496434220 9E42BB0DB2A2BA940EA6F894DBDD2DF28D54C0CE02DEE9B8839212091D27A5C5 9E72EB34E3A33C4B2E34FB469738FD8371CC0055BAA748ABF623E04D99CE9239 5BDB1834CEE82C9859C13DFEF876DA84710B20AF397694B3BF7FC161F02CDA29 08E8DB5FC6A5BC6C70A7062AF48C2590FB14ECAF7F70C523769D62F9D81548A5 C2F65F09E73ABC354F1FBA32EDB7FF8514B27DF59FE758EAFC2BAB094E6E0249 0B7F277ABB661D380A1E2B2FD1E0B239071F37EE54C836BFE9E07074A64966B8 EAE97C982C93614FFB953787635D4A30AB336F73F5B9DB09779A04D8AB330270 5A635CAB68C53AEDA5A234E29F700851F1FA5C5CE946D36ECBA75B6AB49D29DE 11C0672A02771AE60C2C6BC7A2DDF899395DB89507377FCC2E4F72E41C4A9C6C C60E4EF330C0AE9B4C10077D2011056F17CD94C8D2F9BFEC24B186789FAFDCDF F074C6B4F8AF22669B968081FED386B9E52BCE6651568525AD13C78CE834F2F2 45905F65E985FF7BE01139BD55FF49929337D63833C3C9F21C846395FB5B397A 48539905FEBC25C30203A57E16EE06E18174D22BE0D1F7E58C11DF5B5363FF36 FE654E44198B0375809A3818494F1252F54D510376D149C9E35656CCF79C6B6B 99B3F22B085BAF7C008EB7581F25E5C7ACD1250CEAB36FF2B1B90EF8D71AD2EF 09596D22127C6A575495C80A5A9FB45F3F3D874F5018C596C94E37B86FB1B88D 3CB8A405C4CD74AD8A19B8B341C27D070A8800B2E363DC7F51315832D0A2FE11 A2AB4046ED00A83848189B608D7E94F6B374EADA2754C197F7F3391C9FBB219C 868512E8D2B06AFAFB25EF306C508A99CA35884D232C658E0B26CF2A19C9606D 10C4C23E5C77E309ED4579322F9AAC4B787E29B8C6061EF8D4754D0A6107C75E 015B304F934F424E6900DF382A2F6161A0528D4358A9034242C05BFC22DAAC10 3D67CD84EECE70724B15B02BD29D5884E327E536BD2D091F1B6E20056FE65993 54DFCC6AB35930EF4B42C46F6BDEC863B9685F6A65F6369171271EE9DC86FA97 573AC8566DA2F94FA08CC3482B1663EF1D105E293A25EEC72D5ABC2E9E48EB5F F485C3A41BB22EA09F9619079F2FC3DB05CB063A910FC7BBA9D92203549272A5 C4B68D94BD0F6BA05FE9006787EC267AFF0FA38B509328425D958F264CB735D6 C50FC7129586359B6298A48FB539223A01D4BCC1D16BBE98D98104549D5E143D BEE5CD7F054019A6C4E65A3236FB59E14C5B05FC339D37DB2063BE2C474E8D6B 7C0B591FA635D85BE8D28E924500478D29CC987311FC67C33D05AA6A69F51982 2F519A92E04B0CB593522A5F9BC18CCEE2EFE65137C78F457CD7AA1E60795A7C 80FD85399563F7774C152DDBCD340EE41E69C19605CD6DD80E3323D0DDDC5CE3 B868D56448E0D7139CE407DA2F90F69F3370F59BA80FD6E5291CCCF4102A89FA FB0E7CD9C3A3D7A29390C38F724C61E71FB9CF70894EC5C021F7653EE67B01F0 52F20B1283D9BE9207FEA9551281C85C5AF196B9F16ADFE6C37AC05538F22960 48778EE4E62D33DD26FA472157CE2D19F518E19C6424CC01F71EC1DEED767046 1EDB51BED5D563647C3662DAD109B77799B36DFDB3FBD2D6DE00A6D5698DBD7C C6E70FADABCB3EFD3E08A2429CED1D72B8D8174F90EACF64141676F2CF791CA1 06EA7000A3069A213EAA9892675FF1F9478D40CE3E9E4E90852EA7E269808F8F 8BEBF97C2BBF00274E90F925C76C272396D83DED508A877B8C235471A70502C9 DEFFA11C1B69B489271FA81CA0D3475BFE44620F24CF41D3B5A35AE457A40744 FCDC3FDD2BFFB6AC6CD320B23DC4DC232EEBB7BA24A8473191C9897D4CDF91FA 11FAAEBA89A40BE93E14FF3C6741BEC15D6C414DB145EA733BBCE90927758658 F09C277CE1B6541526403764D8B34577F01646E2F41CCA59EA79E65DB9DF1D61 C19F1B724778731374CE9994BD4A167D2BC4B39ACEBADE88C0D749DAC57C6751 3092B7F3580A96641569964F7E6F805580F48289DDB96E5FE17CE6506273F469 61A34EE1182C39C8E657C6EFA9E0E635A9363D1A476AFDD81FAEB4C9DF9F2BFE E58CC036B87ECFA54519A4BFF7B9436CFE2AA946C2BCFE96534B88D7F3DB5635 155C700BC7B26F605C0958F2748A63774C115B6D88620FA4C4C1FB873BA1DA1F BEADF682C3AAFE90F8A93B7E67DC8C5F014E3F4EEF9CE51D28B541EF4C9ADC31 59190746E58C20AC4662528933C03C4D74B9BD053478C77A7A9E00972164FD65 BDE2788D5FB3B1783D4725C4FC835294B685ABE17EAB07EDE07BD72DC17BBE75 4736CDFE2C4C7217E425696BBBC1F981DE682149E894D76F46287ED26F637858 297C86F9805ABB612E4E1BACBF8FAC2155AB9D24696DD799D54721B486F94172 0CF10C2540B7F62214A69B9D4FC87D25531E44E829EC14862AAC83B1CBC2B6AA 3E0059416D9F017DBED79855A15536E019A37C4D4DA7112E17E64DE362924B28 92B911D3E0E19B3DADF8185C840CFB6701C066B9B800638AA002E380F00A5FFB DC567D412E86BEE99B1EFA5B41D2B2BBB4FD655A9BD873AF512BABD722E02221 0FA7296988647CC4BE09DBD06CD4434A2E92CDBC89C048A12E9E0B1E945A0C32 5DF4DC7CCB12FDF6367D626C64C4A511BB0DD3943094B56CF9F47EEC6974AC85 CCEA5E4EDB5E5C805737A11C0F6593E8A82543DD779494727553D4A2BD49FF41 A94D9B8EED83DEDB50235B9A717534B8B151FCEE2A71CBB718F3E95E1DBEFC44 A791F55221EC78C000DCDEE10E37AF91741B845137B952689FAD1E5E867C2449 6F6937D2AFA85063938E04F5D6C25FEE69526B168839074F3E5625239B02B8D6 3628A0C882889C89BA1288B877F8B7A509285B49B5390E7C2E1CE144BE8E1564 BC16C320C3E4DA32D0035180C0DCD8A7428624A4C9952B5F49EC7AFCFF015BAB 3A49D6C1D30590E3B08AF7F53D195DBAE33022C1BADC8D12DBFE3EDD316E151B C1DDD7A96E2A79BD62417F1D0B20188A806454367E20E85BCB5D7D641645276E 0DB085F151F1D4C5D3E3FBBC4E1810806017FB7F04E365F301B106B1BC44F64D 3022FFD51677D7FDE025B5B16471A913300FAE9A4E961EFEF460CB153F69B8FA 4ED7A3D907CF8D711B347F8C9C7D19268A334CAEE220685176D6C121C1283971 EBEF748D5B8C193F72B540B1D7E3BA420080E6F3F4016FFC14A06D73DFFEEC3D 5E5D67A45311F19574C7937A028423FA5E8C931BF4B35E3041FF84900539832A 1DC94AA48DBB268BDA06B8FEB1808006E0AD6D223DE59B20D5722877DA78D156 AF5053FBE4879C86FAEEEAF18436A45AAF5B0CCD74A2300B219A04C9413B01F6 2ABE6C1651AD7AB3C94A8EA6EDD19147C6AEF2341E83CAB2390B0F43362FBFE7 DE0E4A650246F2195932C45DE176DC5EDEF03C63ED7F16B22B3526A64EE58515 55D7AEF2C645E9746FDC7EF2E2E85462F3788B1586BB656577C622C769D0B84F A90E91713ACFF32765CBB1BB833CBB8A29FDB93A55490596A450B8A04CE59C2C 6559A047406CDBEB1E57C5950E21348D35CF65C0CB79A95016CA9DAFDB4C7AA8 5209E14EF42F2C048939AED3A68842E5FF5FFE1917A3533F5434F4E12B7CB2A7 8A904CDA6C1C5FE22E13063ED50C4387ACA9414E235F3D705A5C12DFFCA70247 61E37782DACC3FB50B9CB25732F76676060C3F905D198D603271D87522AF91E8 DD6B66D2D91708DE4DD729C198D17A1CB9678EBB602BBFE7410EE33881D3D1D6 66395D5D0F7D45EC43D0AD906AD1A95C6310017CE2A2FBB557C3370B1455A6A8 78C44991AF4957EF1477DF5DB47D8A1A077BBC09E19D7ACCBDD87B15DBA90CEE 10711E5D277384F41EB186AEC1E67286275544EF6E34E1635837B2FD94935FC2 24D53ABDD0E5F0D43D14DB3C930F441202006C1EC62B785E693790C204DF5C8A 65ABE605D4977D2C3DC4188C41DBE3C95D5296DAD084296F45B7F62A556C987B 4D105743165B165BD4FF325D361B1CF4438E6D365D5C8E89D8F1C230C53289FD 238BEBA0CB9FC63E4C7210D6E1D2D1D1F2070DB3D0C28F5A69471D03A3F20B15 F58F38BDDBF7E8C2BB9E2C3318610A9B11753A77F567AC96C8D0D596FF7CFD4C 7476F5ACDA8E5708B557A6864A19C2BA00F23D2B8D53517623332BF11F507F19 48CFFA1232E61E86ACB0D094DB28883CCCB984C5FC163661C50F0AE71501DED3 8939BF491302A37A99AA88EA39445650E06D366EC09EFB4CA806CFC6A4339DA7 D4484D757DFFEFA0F22995BC8BCFF0DA1C7ED7DB21190DBFF2209F2F 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI10 %!PS-AdobeFont-1.1: CMMI10 1.100 %%CreationDate: 1996 Jul 23 07:53:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 58 /period put readonly def /FontBBox{-32 -250 1048 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E 6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF 8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE 03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 9560176676ABB71BBD0EE56B4CC492C0652750227CEC6CBEEE374709231B00CD 0DE83AFDE295B314F6C8B1FFD32251C1925D96A64D739FF1DA4926460B28B3DE E949AA0BA3DDB16534FBA30C32092D5F712B5E8C8D5142F35AF2906E6C219D2C 7FD9A368C193E0EB9C7E25FF03C546B6ED993F964CEDB1B8537C617170787F37 88D6F2AD02384B01067FE3F98257BAB958BB3BCD1001090A4502DA0638080EC6 DB784CC8AC37CDC01B29BC481D6A05ADC6188785262358C1BF1D694BBF31C1F1 AF117C1ACED44AAC6EB4B9A2511A6762DDE8FCCBA5 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI12 %!PS-AdobeFont-1.1: CMMI12 1.100 %%CreationDate: 1996 Jul 27 08:57:55 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 58 /period put readonly def /FontBBox{-30 -250 1026 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC 4391C9DF440285B8FC159D0E98D4258FC57892DCC57F7903449E07914FBE9E67 3C15C2153C061EB541F66C11E7EE77D5D77C0B11E1AC55101DA976CCACAB6993 EED1406FBB7FF30EAC9E90B90B2AF4EC7C273CA32F11A5C1426FF641B4A2FB2F 4E68635C93DB835737567FAF8471CBC05078DCD4E40E25A2F4E5AF46C234CF59 2A1CE8F39E1BA1B2A594355637E474167EAD4D97D51AF0A899B44387E1FD933A 323AFDA6BA740534A510B4705C0A15647AFBF3E53A82BF320DD96753639BE49C 2F79A1988863EF977B800C9DB5B42039C23EB86953713F730E03EA22FF7BB2C1 D97D33FD77B1BDCC2A60B12CF7805CFC90C5B914C0F30A673DF9587F93E47CEA 5932DD1930560C4F0D97547BCD805D6D854455B13A4D7382A22F562D7C55041F 0FD294BDAA1834820F894265A667E5C97D95FF152531EF97258F56374502865D A1E7C0C5FB7C6FB7D3C43FEB3431095A59FBF6F61CEC6D6DEE09F4EB0FD70D77 2A8B0A4984C6120293F6B947944BE23259F6EB64303D627353163B6505FC8A60 00681F7A3968B6CBB49E0420A691258F5E7B07B417157803FCBE9B9FB1F80FD8 CA0DA1186446DD565542BCCC7D339A1EB34C7F49246E8D72E987EB477C6DB757 99AF86CEBCD7605C487A00CD2CD093098182DC57B20D78ECE0BECF3A0BF88EBA C866DB19F34BBBED6634AFC0F08D2AFB2A92578A6F8B4ADCD6594737FF6EED7D 5B536DA9E3E2CADB40DB7C600EA4D100D33C3B92B1CF857E012C4EB370BA8295 55B50047CC8911C98FE1A7BA6CDEA82D34476286E710776823690AD333DD3A49 335002F4680DBE1C21174BF016B0DF799B01EB9D6988479A8334BBA2F8DC7146 BC0DAE9DE3A6453B181808E68A89E0C02DAC6264D002B422EBC1CF14F65D9888 15EE6D514D3457F7F3C6A3D17EE1DA076F73ECC392D349174DA9E4680F29CE10 0157E42CA35F5DBFF56BFC3AA07E61A78DBE882C5AB388220C19750D3643E7C8 23D6673027CE568A4ACCE1D12B1D9E5A43507F4AF9BC873237F65A6B95078DD2 378007CF0F0DE7CCEF760E19D6D1D7B412EC5D4972 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.1: CMSY10 1.0 %%CreationDate: 1991 Aug 15 07:20:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 13 /circlecopyrt put dup 15 /bullet put dup 104 /angbracketleft put dup 105 /angbracketright put readonly def /FontBBox{-29 -960 1116 775}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A 27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF 5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A 71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C 515DB70A8D4F6146FE068DC1E5DE8BC57030ACE57A0A31C99BEDB251A0ECAD78 253AB320C099669BFED2878A6C4038A5BCEB5B4C28040BB8B4AC2C167BB2C999 ED93E2F4AE3E4B44B7B6B469C36A24080D4BEDB5523D202E920D8898DEBD5EB0 CAC3C5D5F01A87F7B15BD1C197B344F7D94E965CBFE73E8A65A2AA6A6F93B878 03E30E60F1390C2FB671C8D36E7D6E516A20079B48CA9BE632F5A8D1250F01EE 6809D6C5B51AE3D1B4C244195E4AB5E68F2AF1D7556B9D03035E08B962A33B44 426A3B5BEF3BA86E4BFE8C823D42816B59DAE9EBD42C115A1E75B0E6427720BF 773EA85158709B4DF306511D5CC19D7395BEE5940DF97513CC36EDF468B80C01 476B0B89D1198F039E4A32FECF58E56F6B0A1D27E9E5FE6393AF613D11EE6185 26EDAB5CD87D6B6C9838DC76423000F9E0D094046832BDDDE6AFB7549561F742 F0B1AE278DB3355F8867D2CCF8BCC03AB7A7A8F9E51C4B2BD121F9D3B2477803 1A24BBD88C9C54A8E31B9CF66295B665495BE7ACC72E1A1F05413DFCB56D0749 49539F8F4706361CCBBEB69D135FF4B63C35408A38382C739EE8AF9F378CF061 C9754E8C7CEDD29E63D79C8AD5518244E4BFCB827E05F4EFCF03BB47CE67F43E F29192EC2FA1026ACFAF2CB156124C88D860864BEBE81CBBDD60DB5C7DA2B6A7 B64E3DA907988FE60AF047DCEDF2D52D2D43E6C01FA7F84B598386FE03765B15 EE11E9DB0BA83469FC7FC5CECCA2E4D84F87D43811978975C96D9CB66BB87B02 579D63949B512A59123F039A1DAE2EFB897FFE82E8C6B0A30C570015B77B8318 9BB684151679A432E2E167F4E27B7E878A46C19969230B9604ADE2E6487203D0 DF06DF8F5E 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 39158280 55380996 1000 600 600 (libidn.dvi) @start /Fa 197[21 58[{}1 74.7198 /CMMI9 rf /Fb 140[37 13[42 24[57 76[{}3 90.9091 /CMTI10 rf /Fc 134[39 1[39 39 39 39 39 39 1[39 39 39 39 39 2[39 39 39 39 39 39 1[39 39 12[39 16[39 20[39 6[39 39[{}24 74.7198 /CMSLTT10 rf /Fd 133[39 39 39 39 39 39 39 39 39 1[39 39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 39 5[39 1[39 39 39 39 39 39 1[39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 5[39 39 39 39 2[39 39 39 39 39 39 39 39 39 39 2[39 39 39 39[{}65 74.7198 /CMTT9 rf /Fe 140[42 9[27 5[54 1[56 97[{}4 90.9091 /CMCSC10 rf /Ff 133[34 41 41 55 41 43 30 30 30 1[43 38 43 64 21 41 1[21 43 38 23 34 43 34 43 38 8[58 79 1[58 55 43 57 1[52 60 58 70 48 2[28 58 60 50 52 59 55 54 58 7[38 38 38 38 38 38 38 38 38 38 1[21 26 21 4[21 26[43 12[{}59 74.7198 /CMR9 rf /Fg 206[33 49[{}1 58.1154 /CMR7 rf /Fh 158[35 97[{}1 66.4176 /CMTT8 rf /Fi 162[28 1[28 91[{}2 99.6264 /CMB10 rf /Fj 134[62 3[62 62 62 62 1[62 62 62 1[62 2[62 62 62 62 62 62 62 1[62 39[62 6[62 3[62 62 45[{}21 119.552 /CMTT12 rf /Fk 167[62 2[62 60 46 2[57 1[62 76 52 1[43 1[62 65 54 1[63 60 67[{}14 83.022 /CMR10 rf /Fl 137[48 51 35 1[39 3[51 1[25 6[42 3[44 7[69 69 94 69 70 63 51 69 1[62 68 71 86 55 71 1[36 71 71 57 60 70 66 65 69 6[25 45 6[45 50[{}34 90.9091 /CMB10 rf /Fm 135[52 52 52 52 52 52 52 52 52 52 52 52 52 2[52 52 52 52 52 52 52 52 52 1[52 42[52 52[{}24 99.6264 /CMSLTT10 rf /Fn 133[40 48 48 66 48 51 35 36 36 48 51 45 51 76 25 2[25 51 45 28 40 51 40 51 45 12[66 51 67 1[62 3[57 2[33 68 2[62 1[66 1[68 7[45 4[45 45 45 4[30 25 1[45 28[51 51 12[{}43 90.9091 /CMSL10 rf /Fo 214[35 35 40[{}2 90.9091 /CMSS10 rf /Fp 133[52 52 52 1[52 52 52 52 52 1[52 52 52 52 52 52 1[52 52 52 52 52 52 52 52 52 1[52 6[52 52 1[52 52 52 52 1[52 52 52 1[52 52 1[52 1[52 52 52 52 52 52 52 7[52 52 3[52 52 52 4[52 2[52 6[52 35[{}51 99.6264 /CMTT10 rf /Fq 133[55 65 1[89 65 68 48 48 50 1[68 61 68 102 34 65 1[34 68 61 37 56 68 55 68 60 7[93 1[127 1[94 85 68 92 1[84 92 96 116 74 96 1[46 96 96 77 81 94 89 87 93 7[61 61 61 1[61 61 61 61 61 2[34 1[34 31[68 12[{}55 109.091 /CMBX12 rf /Fr 128[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 4[48 1[48 48 1[48 23[{}99 90.9091 /CMTT10 rf /Fs 197[25 58[{}1 90.9091 /CMMI10 rf /Ft 197[33 58[{}1 119.552 /CMMI12 rf /Fu 134[85 85 117 85 90 63 64 66 1[90 81 90 134 45 85 1[45 1[81 49 74 90 72 90 78 10[122 124 112 90 120 1[110 121 126 1[97 1[83 60 126 1[101 106 124 117 115 122 7[81 81 81 81 81 81 81 81 81 81 12[134 35[{}51 143.462 /CMBX12 rf /Fv 150[35 35 88[45 1[91 13[{}4 90.9091 /CMSY10 rf /Fw 133[60 71 71 97 71 75 52 53 55 1[75 67 75 112 37 71 1[37 75 67 41 61 75 60 75 65 7[102 1[139 102 103 94 75 100 1[92 101 105 128 81 1[69 50 105 106 85 88 103 97 96 102 6[37 67 67 67 67 67 67 67 67 67 67 1[37 45 9[112 22[75 12[{}61 119.552 /CMBX12 rf /Fx 131[91 45 40 48 48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51 45 28 40 51 40 51 45 25 2[25 45 25 56 68 68 93 68 68 66 51 67 71 62 71 68 83 57 71 47 33 68 71 59 62 69 66 64 68 1[43 1[71 1[25 25 45 45 45 45 45 45 45 45 45 45 45 25 30 25 1[45 35 35 25 3[76 45 25 18[76 51 51 53 11[{}87 90.9091 /CMR10 rf /Fy 145[108 4[54 4[108 1[108 12[149 6[151 1[116 4[152 71[{}8 172.154 /CMBX12 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%BeginPaperSize: a4 /setpagedevice where { pop << /PageSize [595 842] >> setpagedevice } { /a4 where { pop a4 } if } ifelse %%EndPaperSize end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 150 1318 a Fy(GNU)65 b(Libidn)p 150 1385 3600 34 v 1546 1481 a Fx(In)m(ternationalized)33 b(string)d(pro)s(cessing)g(for)g(the)h(GNU)g(system)2577 1589 y(for)f(v)m(ersion)h(1.15,)h(28)g(Ma)m(y)f(2009)150 5091 y Fw(Simon)45 b(Josefsson)p 150 5141 3600 17 v eop end %%Page: 2 2 TeXDict begin 2 1 bop 150 4633 a Fx(This)30 b(man)m(ual)g(is)h(last)g (up)s(dated)e(28)i(Ma)m(y)h(2009)g(for)e(v)m(ersion)h(1.15)h(of)e(GNU)h (Libidn.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767 y Fv(\015)f Fx(2002,)j(2003,)f(2004,)g(2005,)h(2006,)f(2007,)g (2008,)h(2009)f(Simon)e(Josefsson.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s (dify)e(this)i(do)s(cumen)m(t)f(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8 b(ree)27 b(Do)s(cumen)m(tation)g (License,)g(V)-8 b(ersion)26 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion) 390 5121 y(published)43 b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8 b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 b(arian)m(t)46 b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er) 31 b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390 5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end %%Page: -1 3 TeXDict begin -1 2 bop 3725 -116 a Fx(i)150 299 y Fu(T)-13 b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Fw(1)135 b(In)l(tro)t (duction)13 b Ft(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)h(:)57 b Fw(1)275 778 y Fx(1.1)92 b(Getting)32 b(Started)21 b Fs(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)51 b Fx(1)275 888 y(1.2)92 b(F)-8 b(eatures)26 b Fs(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)56 b Fx(2)275 997 y(1.3)92 b(Library)29 b(Ov)m(erview)d Fs(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)56 b Fx(2)275 1107 y(1.4)92 b(Supp)s(orted)28 b(Platforms)20 b Fs(:)c(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)51 b Fx(3)275 1216 y(1.5)92 b(Getting)32 b(help)23 b Fs(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)54 b Fx(5)275 1326 y(1.6)92 b(Commercial)31 b(Supp)s(ort)23 b Fs(:)13 b(:)i(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)53 b Fx(5)275 1435 y(1.7)92 b(Do)m(wnloading)31 b(and)f(Installing)9 b Fs(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)39 b Fx(6)399 1545 y(1.7.1)93 b(Installing)31 b(under)e(Windo)m(ws)f Fs(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)58 b Fx(6)275 1655 y(1.8)92 b(Bug)30 b(Rep)s(orts)22 b Fs(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)53 b Fx(7)275 1764 y(1.9)92 b(Con)m(tributing)18 b Fs(:)c(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)48 b Fx(7)150 2007 y Fw(2)135 b(Preparation)34 b Ft(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) h(:)77 b Fw(9)275 2144 y Fx(2.1)92 b(Header)13 b Fs(:)i(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)43 b Fx(9)275 2253 y(2.2)92 b(Initialization)18 b Fs(:)f(:)f(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)47 b Fx(10)275 2363 y(2.3)92 b(V)-8 b(ersion)31 b(Chec)m(k)8 b Fs(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Fx(10)275 2472 y(2.4)92 b(Building)30 b(the)h(source)c Fs(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)56 b Fx(11)275 2582 y(2.5)92 b(Auto)s(conf)30 b(tests)22 b Fs(:)17 b(:)e(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)52 b Fx(11)275 2692 y(2.6)92 b(Memory)30 b(handling)g(under)f(Windo)m(ws)18 b Fs(:)e(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)h(:)f(:)48 b Fx(12)275 2801 y(2.7)92 b(Header)30 b(\014le)h Fr(idn-free.h)24 b Fs(:)15 b(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)56 b Fx(12)275 2911 y(2.8)92 b(Memory)30 b(de-allo)s(cation)j(function)24 b Fs(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)54 b Fx(12)150 3153 y Fw(3)135 b(Utilit)l(y)47 b(F)-11 b(unctions)32 b Ft(:)20 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)78 b Fw(14)275 3290 y Fx(3.1)92 b(Header)30 b(\014le)h Fr(stringprep.h)19 b Fs(:)12 b(:)k(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)49 b Fx(14)275 3400 y(3.2)92 b(Unico)s(de)30 b(Enco)s(ding)g(T)-8 b(ransformation)12 b Fs(:)j(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)41 b Fx(14)275 3509 y(3.3)92 b(Unico)s(de)30 b(Normalization)15 b Fs(:)j(:)d(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)45 b Fx(15)275 3619 y(3.4)92 b(Character)30 b(Set)h(Con)m(v)m(ersion)25 b Fs(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)54 b Fx(16)150 3861 y Fw(4)135 b(Stringprep)45 b(F)-11 b(unctions)18 b Ft(:)g(:)i(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)63 b Fw(17)275 3998 y Fx(4.1)92 b(Header)30 b(\014le)h Fr(stringprep.h)19 b Fs(:)12 b(:)k(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)49 b Fx(17)275 4108 y(4.2)92 b(De\014ning)30 b(A)g(Stringprep)f(Pro\014le)10 b Fs(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)39 b Fx(17)275 4218 y(4.3)92 b(Con)m(trol)31 b(Flags)20 b Fs(:)d(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)50 b Fx(17)275 4327 y(4.4)92 b(Core)30 b(F)-8 b(unctions)10 b Fs(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)40 b Fx(17)275 4437 y(4.5)92 b(Error)29 b(Handling)9 b Fs(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39 b Fx(19)275 4546 y(4.6)92 b(Stringprep)29 b(Pro\014le)h(Macros)21 b Fs(:)c(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)51 b Fx(20)150 4789 y Fw(5)135 b(Pun)l(yco)t(de)44 b(F)-11 b(unctions)18 b Ft(:)g(:)i(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)63 b Fw(22)275 4926 y Fx(5.1)92 b(Header)30 b(\014le)h Fr(punycode.h)24 b Fs(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)56 b Fx(22)275 5035 y(5.2)92 b(Unico)s(de)30 b(Co)s(de)g(P)m(oin)m(t)i(Data)g(T)m(yp)s(e)23 b Fs(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)54 b Fx(22)275 5145 y(5.3)92 b(Core)30 b(F)-8 b(unctions)10 b Fs(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)40 b Fx(22)275 5254 y(5.4)92 b(Error)29 b(Handling)9 b Fs(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39 b Fx(24)p eop end %%Page: -2 4 TeXDict begin -2 3 bop 3699 -116 a Fx(ii)150 83 y Fw(6)135 b(IDNA)44 b(F)-11 b(unctions)21 b Ft(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)h(:)65 b Fw(25)275 220 y Fx(6.1)92 b(Header)30 b(\014le)h Fr(idna.h)21 b Fs(:)14 b(:)h(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)50 b Fx(25)275 330 y(6.2)92 b(Con)m(trol)31 b(Flags)20 b Fs(:)d(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)50 b Fx(25)275 439 y(6.3)92 b(Pre\014x)29 b(String)17 b Fs(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fx(25)275 549 y(6.4)92 b(Core)30 b(F)-8 b(unctions)10 b Fs(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)40 b Fx(25)275 658 y(6.5)92 b(Simpli\014ed)29 b(T)-8 b(oASCI)s(I)29 b(In)m(terface)16 b Fs(:)h(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)46 b Fx(27)275 768 y(6.6)92 b(Simpli\014ed)29 b(T)-8 b(oUnico)s(de)31 b(In)m(terface)21 b Fs(:)c(:)e(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)51 b Fx(28)275 878 y(6.7)92 b(Error)29 b(Handling)9 b Fs(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)39 b Fx(29)150 1120 y Fw(7)135 b(TLD)44 b(F)-11 b(unctions)35 b Ft(:)19 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)h(:)80 b Fw(31)275 1257 y Fx(7.1)92 b(Header)30 b(\014le)h Fr(tld.h)23 b Fs(:)15 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)54 b Fx(31)275 1367 y(7.2)92 b(Core)30 b(F)-8 b(unctions)10 b Fs(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)40 b Fx(31)275 1476 y(7.3)92 b(Utilit)m(y)32 b(F)-8 b(unctions)14 b Fs(:)i(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)44 b Fx(32)275 1586 y(7.4)92 b(High-Lev)m(el)32 b(W)-8 b(rapp)s(er)30 b(F)-8 b(unctions)25 b Fs(:)15 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)54 b Fx(33)275 1695 y(7.5)92 b(Error)29 b(Handling)9 b Fs(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) 39 b Fx(35)150 1938 y Fw(8)135 b(PR29)45 b(F)-11 b(unctions)11 b Ft(:)19 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)56 b Fw(36)275 2075 y Fx(8.1)92 b(Header)30 b(\014le)h Fr(pr29.h)21 b Fs(:)14 b(:)h(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)50 b Fx(36)275 2184 y(8.2)92 b(Core)30 b(F)-8 b(unctions)10 b Fs(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)40 b Fx(36)275 2294 y(8.3)92 b(Utilit)m(y)32 b(F)-8 b(unctions)14 b Fs(:)i(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)44 b Fx(37)275 2403 y(8.4)92 b(Error)29 b(Handling)9 b Fs(:)16 b(:)f(:)g(:)h(:)f(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)39 b Fx(37)150 2646 y Fw(9)135 b(Examples)15 b Ft(:)21 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)60 b Fw(38)275 2783 y Fx(9.1)92 b(Example)30 b(1)20 b Fs(:)c(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)49 b Fx(38)275 2892 y(9.2)92 b(Example)30 b(2)20 b Fs(:)c(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)49 b Fx(40)275 3002 y(9.3)92 b(Example)30 b(3)20 b Fs(:)c(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)49 b Fx(45)275 3112 y(9.4)92 b(Example)30 b(4)20 b Fs(:)c(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) 49 b Fx(46)275 3221 y(9.5)92 b(Example)30 b(5)20 b Fs(:)c(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)49 b Fx(48)150 3464 y Fw(10)135 b(In)l(v)l(oking)46 b(idn)26 b Ft(:)19 b(:)g(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) 70 b Fw(52)275 3601 y Fx(10.1)92 b(Name)13 b Fs(:)j(:)f(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)42 b Fx(52)275 3710 y(10.2)92 b(Description)22 b Fs(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)51 b Fx(52)275 3820 y(10.3)92 b(Options)11 b Fs(:)k(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)41 b Fx(52)275 3929 y(10.4)92 b(En)m(vironmen)m(t)31 b(V)-8 b(ariables)17 b Fs(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 b Fx(53)275 4039 y(10.5)92 b(Examples)17 b Fs(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)46 b Fx(53)275 4149 y(10.6)92 b(T)-8 b(roublesho)s (oting)8 b Fs(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Fx(54)150 4391 y Fw(11)135 b(Emacs)45 b(API)35 b Ft(:)19 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)79 b Fw(56)275 4528 y Fx(11.1)92 b(Pun)m(yco)s(de)30 b(Emacs)h(API)16 b Fs(:)e(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)45 b Fx(56)275 4638 y(11.2)92 b(IDNA)31 b(Emacs)g(API)9 b Fs(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39 b Fx(56)p eop end %%Page: -3 5 TeXDict begin -3 4 bop 3674 -116 a Fx(iii)150 83 y Fw(12)135 b(Ja)l(v)-7 b(a)46 b(API)15 b Ft(:)k(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)60 b Fw(58)275 220 y Fx(12.1)92 b(Ov)m(erview)23 b Fs(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)52 b Fx(58)275 330 y(12.2)92 b(Miscellaneous)32 b(Programs)14 b Fs(:)h(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)43 b Fx(58)399 439 y(12.2.1)93 b(GenerateRF)m(C3454)8 b Fs(:)19 b(:)d(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)38 b Fx(58)399 549 y(12.2.2)93 b(GenerateNFK)m(C)23 b Fs(:)17 b(:)e(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)52 b Fx(58)399 658 y(12.2.3)93 b(T)-8 b(estIDNA)29 b Fs(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)57 b Fx(59)399 768 y(12.2.4)93 b(T)-8 b(estNFK)m(C)16 b Fs(:)h(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)46 b Fx(59)275 878 y(12.3)92 b(P)m(ossible)31 b(Problems)11 b Fs(:)k(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)40 b Fx(59)275 987 y(12.4)92 b(A)31 b(Note)g(on)g(Ja)m (v)-5 b(a)31 b(and)f(Unico)s(de)16 b Fs(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b Fx(59)150 1230 y Fw(13)135 b(C#)45 b(API)14 b Ft(:)19 b(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)59 b Fw(61)150 1499 y(14)135 b(Ac)l(kno)l(wledgemen)l(ts)20 b Ft(:)h(:)f(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)65 b Fw(62)150 1769 y(15)135 b(History)16 b Ft(:)21 b(:)e(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)61 b Fw(63)150 2039 y(App)t(endix)44 b(A)160 b(PR29)45 b(discussion)30 b Ft(:)19 b(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)74 b Fw(64)150 2309 y(App)t(endix)44 b(B)166 b(On)44 b(Lab)t(el)i(Separators)33 b Ft(:)20 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)77 b Fw(67)275 2446 y Fx(B.1)92 b(Recommended)30 b(W)-8 b(ork)j(around)17 b Fs(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)47 b Fx(67)150 2688 y Fw(App)t(endix)d(C)165 b(Cop)l(ying)45 b(Information)25 b Ft(:)c(:)f(:)f(:)g(:)h(:)f(:)h(:)f (:)h(:)f(:)h(:)f(:)70 b Fw(68)275 2825 y Fx(C.1)91 b(GNU)31 b(F)-8 b(ree)31 b(Do)s(cumen)m(tation)h(License)23 b Fs(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fx(68)275 2935 y(C.2)91 b(GNU)31 b(Lesser)f(General)h(Public)f(License)13 b Fs(:)j(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)43 b Fx(75)275 3044 y(C.3)91 b(GNU)31 b(General)g(Public)f(License)9 b Fs(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) 39 b Fx(83)150 3287 y Fw(F)-11 b(unction)44 b(and)h(V)-11 b(ariable)45 b(Index)29 b Ft(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)73 b Fw(95)150 3557 y(Concept)45 b(Index)18 b Ft(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)63 b Fw(96)p eop end %%Page: 1 6 TeXDict begin 1 5 bop 150 -116 a Fx(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(1)150 299 y Fu(1)80 b(In)l(tro)t(duction) 150 553 y Fx(GNU)29 b(Libidn)d(is)i(a)g(fully)g(do)s(cumen)m(ted)g (implemen)m(tation)h(of)f(the)g(Stringprep,)g(Pun)m(yco)s(de)f(and)g (IDNA)150 663 y(sp)s(eci\014cations.)53 b(Libidn's)33 b(purp)s(ose)g(is)h(to)h(enco)s(de)g(and)f(deco)s(de)g(in)m (ternationalized)j(domain)d(names.)150 772 y(The)h(nativ)m(e)h(C,)f(C#) g(and)f(Ja)m(v)-5 b(a)36 b(libraries)f(are)h(a)m(v)-5 b(ailable)37 b(under)d(the)h(GNU)h(Lesser)f(General)h(Public)150 882 y(License)31 b(v)m(ersion)g(2.1)g(or)g(later)g(\(see)g(Section)g (C.2)g([GNU)g(LGPL],)g(page)g(75\).)275 1023 y(The)23 b(library)g(con)m(tains)j(a)e(generic)h(Stringprep)d(implemen)m (tation.)40 b(Pro\014les)24 b(for)g(Nameprep,)h(iSCSI,)150 1132 y(SASL,)31 b(XMPP)g(and)g(Kerb)s(eros)g(V5)h(are)f(included.)44 b(Pun)m(yco)s(de)31 b(and)g(ASCI)s(I)f(Compatible)i(Enco)s(ding)150 1242 y(\(A)m(CE\))e(via)g(IDNA)g(are)g(supp)s(orted.)39 b(A)29 b(mec)m(hanism)h(to)g(de\014ne)f(T)-8 b(op-Lev)m(el)31 b(Domain)f(\(TLD\))g(sp)s(eci\014c)150 1352 y(v)-5 b(alidation)36 b(tables,)g(and)d(to)i(compare)g(strings)f(against)i(those)f(tables,)h (is)e(included.)52 b(Default)35 b(tables)150 1461 y(for)30 b(some)h(TLDs)f(are)h(also)g(included.)275 1602 y(The)37 b(Stringprep)f(API)h(consists)h(of)g(t)m(w)m(o)h(main)e(functions,)i (one)f(for)f(con)m(v)m(erting)i(data)g(from)e(the)150 1712 y(system's)42 b(nativ)m(e)i(represen)m(tation)f(in)m(to)g(UTF-8,)j (and)41 b(one)h(function)g(to)h(p)s(erform)d(the)i(Stringprep)150 1822 y(pro)s(cessing.)d(Adding)25 b(a)g(new)g(Stringprep)f(pro\014le)h (for)g(y)m(our)h(application)g(within)f(the)h(API)f(is)g(straigh)m(t-) 150 1931 y(forw)m(ard.)43 b(The)31 b(Pun)m(yco)s(de)g(API)g(consists)h (of)g(one)g(enco)s(ding)f(function)g(and)g(one)h(deco)s(ding)f (function.)150 2041 y(The)f(IDNA)i(API)e(consists)i(of)e(the)h(T)-8 b(oASCI)s(I)30 b(and)g(T)-8 b(oUnico)s(de)32 b(functions,)f(as)g(w)m (ell)g(as)h(an)e(high-lev)m(el)150 2150 y(in)m(terface)d(for)e(con)m(v) m(erting)i(en)m(tire)f(domain)f(names)g(to)g(and)g(from)g(the)g(A)m(CE) g(enco)s(ded)g(form.)38 b(The)25 b(TLD)150 2260 y(API)36 b(consists)g(of)g(one)g(set)g(of)g(functions)f(to)i(extract)g(the)f (TLD)g(name)f(from)h(a)g(domain)f(string,)j(one)150 2369 y(set)c(of)g(functions)f(to)i(lo)s(cate)g(the)f(prop)s(er)e(TLD)i (table)g(to)h(use)e(based)g(on)h(the)g(TLD)f(name,)i(and)e(core)150 2479 y(functions)h(to)i(v)-5 b(alidate)36 b(a)f(string)g(against)h(a)g (TLD)e(table,)j(and)e(some)g(utilit)m(y)h(wrapp)s(ers)d(to)i(p)s (erform)150 2589 y(all)c(the)g(steps)f(in)g(one)h(call.)275 2730 y(The)24 b(library)g(is)h(used)f(b)m(y)-8 b(,)27 b(e.g.,)g(GNU)f(SASL)e(and)g(Shishi)f(to)j(pro)s(cess)e(user)h(names)f (and)h(passw)m(ords.)150 2839 y(Libidn)32 b(can)h(b)s(e)g(built)g(in)m (to)h(GNU)f(Lib)s(c)g(to)h(enable)f(a)h(new)f(system-wide)g (getaddrinfo)g(\015ag)h(for)f(IDN)150 2949 y(pro)s(cessing.)275 3090 y(Libidn)38 b(is)i(dev)m(elop)s(ed)h(for)f(the)g(GNU/Lin)m(ux)g (system,)j(but)d(runs)e(on)i(o)m(v)m(er)h(20)g(Unix)f(platforms)150 3200 y(\(including)33 b(Solaris,)i(IRIX,)e(AIX,)g(and)g(T)-8 b(ru64\))33 b(and)g(Windo)m(ws.)49 b(The)33 b(library)f(is)i(written)f (in)g(C)g(and)150 3309 y(\(parts)k(of)7 b(\))39 b(the)e(API)g(is)h (also)g(accessible)h(from)e(C)p Fr(++)p Fx(,)i(Emacs)f(Lisp,)g(Python)f (and)g(Ja)m(v)-5 b(a.)63 b(A)38 b(nativ)m(e)150 3419 y(Ja)m(v)-5 b(a)31 b(and)f(C#)g(p)s(ort)g(is)g(included.)275 3560 y(Also)37 b(included)f(is)h(a)g(command)f(line)h(to)s(ol,)j(sev)m (eral)e(self)f(tests,)i(co)s(de)e(examples,)i(and)d(more,)j(all)150 3670 y(licensed)30 b(under)e(the)h(GNU)h(General)h(Public)e(License)h (v)m(ersion)g(3.0)g(or)f(later)i(\(see)f(Section)g(C.3)g([GNU)150 3779 y(GPL],)h(page)g(83\).)150 4022 y Fw(1.1)68 b(Getting)46 b(Started)150 4181 y Fx(This)34 b(man)m(ual)i(do)s(cumen)m(ts)f(the)h (library)e(programming)h(in)m(terface.)57 b(All)36 b(functions)f(and)g (data)h(t)m(yp)s(es)150 4291 y(pro)m(vided)c(b)m(y)g(the)g(library)g (are)g(explained.)46 b(Included)31 b(are)h(also)h(examples,)h(and)d(do) s(cumen)m(tation)i(for)150 4400 y(the)e(command)g(line)g(to)s(ol)h(`)p Fr(idn)p Fx(')e(that)h(pro)m(vide)g(a)h(quic)m(k)f(in)m(terface)h(to)g (the)f(library)-8 b(.)42 b(The)30 b(Emacs)i(Lisp)150 4510 y(bindings)d(for)h(the)h(library)f(is)g(also)i(discussed.)275 4651 y(The)23 b(reader)h(is)h(assumed)e(to)i(p)s(ossess)e(basic)i (familiarit)m(y)h(with)e(in)m(ternationalization)k(concepts)d(and)150 4760 y(net)m(w)m(ork)31 b(programming)f(in)g(C)g(or)h(C)p Fr(++)p Fx(.)275 4902 y(This)c(man)m(ual)h(can)g(b)s(e)f(used)g(in)h (sev)m(eral)h(w)m(a)m(ys.)41 b(If)27 b(read)h(from)f(the)h(b)s (eginning)g(to)g(the)g(end,)g(it)h(giv)m(es)150 5011 y(a)38 b(go)s(o)s(d)g(in)m(tro)s(duction)f(in)m(to)i(the)f(library)f (and)g(ho)m(w)h(it)g(can)g(b)s(e)f(used)g(in)h(an)f(application.)64 b(F)-8 b(orw)m(ard)150 5121 y(references)35 b(are)f(included)g(where)g (necessary)-8 b(.)53 b(Later)35 b(on,)g(the)g(man)m(ual)f(can)h(b)s(e)f (used)f(as)i(a)f(reference)150 5230 y(man)m(ual)40 b(to)g(get)h(just)e (the)h(information)g(needed)f(ab)s(out)h(an)m(y)g(particular)g(in)m (terface)h(of)f(the)g(library)-8 b(.)150 5340 y(Exp)s(erienced)35 b(programmers)g(migh)m(t)h(w)m(an)m(t)h(to)f(start)g(lo)s(oking)h(at)f (the)g(examples)g(at)g(the)g(end)f(of)h(the)p eop end %%Page: 2 7 TeXDict begin 2 6 bop 150 -116 a Fx(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(2)150 299 y(man)m(ual)41 b(\(see)i(Chapter)d(9)i([Examples],)i(page)e(38\),)j(and)c(then)g(only) g(read)g(up)f(those)i(parts)e(of)i(the)150 408 y(in)m(terface)32 b(whic)m(h)e(are)h(unclear.)150 816 y Fw(1.2)68 b(F)-11 b(eatures)150 975 y Fx(This)30 b(library)g(migh)m(t)h(ha)m(v)m(e)g(a)g (couple)g(of)f(adv)-5 b(an)m(tages)33 b(o)m(v)m(er)e(other)g(libraries) f(doing)h(a)g(similar)f(job.)150 1310 y(It's)h(F)-8 b(ree)31 b(Soft)m(w)m(are)630 1420 y(An)m(yb)s(o)s(dy)42 b(can)h(use,)j(mo)s (dify)-8 b(,)47 b(and)42 b(redistribute)h(it)h(under)d(the)j(terms)f (of)g(the)g(GNU)630 1529 y(Lesser)21 b(General)i(Public)e(License)h(v)m (ersion)g(2.1)h(or)f(later)g(\(see)h(Section)f(C.2)g([GNU)h(LGPL],)630 1639 y(page)31 b(75\).)150 1915 y(It's)g(thread-safe)630 2025 y(No)g(global)h(state)f(is)g(k)m(ept)g(in)f(the)g(library)-8 b(.)41 b(All)31 b(functions)f(are)h(reen)m(tran)m(t.)150 2301 y(It's)g(p)s(ortable)630 2410 y(The)k(co)s(de)g(is)g(in)m(tended)h (to)g(b)s(e)e(written)h(in)g(pure)g(ANSI)f(C89.)56 b(It)36 b(has)e(b)s(een)h(tested)h(on)630 2520 y(man)m(y)30 b(Unix)h(lik)m(e)g (op)s(erating)g(systems,)g(and)f(Windo)m(ws.)150 2796 y(It's)h(mo)s(dularized)630 2906 y(The)i(library)g(is)g(comp)s(osed)g (of)h(sev)m(eral)h(mo)s(dules,)e(and)g(the)g(only)h(in)m(teraction)h(b) s(et)m(w)m(een)630 3015 y(mo)s(dules)j(is)h(through)f(eac)m(h)i(mo)s (dules')e(public)g(API.)h(If)f(y)m(ou)i(only)e(need)h(one)g(piece)h(of) 630 3125 y(functionalit)m(y)-8 b(,)31 b(it)d(is)g(p)s(ossible)f(to)i (tak)m(e)h(the)e(\014les)g(y)m(ou)g(need)f(and)h(incorp)s(orate)g(them) g(in)m(to)630 3234 y(y)m(our)i(o)m(wn)h(pro)5 b(ject.)150 3511 y(It's)31 b(not)f(bloated)630 3620 y(The)g(design)g(of)g(the)h (library)f(is)g(based)g(on)g(the)g(smallest)i(API)e(necessary)g(to)h (implemen)m(t)630 3730 y(the)h(basic)g(functionalit)m(y)-8 b(.)47 b(It)32 b(has)f(b)s(een)g(carefully)i(extended)e(with)h(a)g (small)g(n)m(um)m(b)s(er)f(of)630 3839 y(high-lev)m(el)f(wrapp)s(ers)c (to)j(mak)m(e)g(it)g(comfortable)g(to)g(use)f(the)h(library)-8 b(.)40 b(Ho)m(w)m(ev)m(er,)31 b(it)d(do)s(es)630 3949 y(not)j(implemen)m(t)g(additional)g(functionalit)m(y)h(just)e(for)g (the)g(sak)m(e)i(of)e(completeness.)150 4225 y(It's)h(do)s(cumen)m(ted) 630 4335 y(Sadly)-8 b(,)31 b(not)f(all)i(soft)m(w)m(are)f(comes)h(with) e(do)s(cumen)m(tation)h(these)g(da)m(ys.)41 b(This)29 b(one)i(do)s(es.)150 4742 y Fw(1.3)68 b(Library)45 b(Ov)l(erview)150 4902 y Fx(The)23 b(follo)m(wing)i(illustration)g(sho)m(w)f(the)g(comp)s (onen)m(ts)g(that)g(mak)m(e)h(up)d(Libidn,)i(and)f(ho)m(w)h(y)m(our)g (applica-)150 5011 y(tion)29 b(relates)h(to)g(the)e(library)-8 b(.)41 b(In)27 b(the)i(illustration,)i(v)-5 b(arious)28 b(comp)s(onen)m(ts)h(are)g(sho)m(wn)f(as)h(b)s(o)m(xes.)40 b(Y)-8 b(ou)150 5121 y(see)28 b(the)f(generic)h(StringPrep)e(comp)s (onen)m(t,)i(the)g(v)-5 b(arious)27 b(StringPrep)f(pro\014les)g (including)h(Nameprep,)150 5230 y(the)39 b(Pun)m(yco)s(de)g(comp)s (onen)m(t,)i(the)f(IDNA)f(comp)s(onen)m(t,)j(and)c(the)i(TLD)e(comp)s (onen)m(t.)67 b(The)39 b(arro)m(ws)150 5340 y(indicate)k(aggregation,) 48 b(e.g.,)f(IDNA)c(uses)e(Pun)m(yco)s(de)h(and)g(Nameprep,)j(and)c(in) h(turn)f(Nameprep)p eop end %%Page: 3 8 TeXDict begin 3 7 bop 150 -116 a Fx(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(3)150 299 y(uses)38 b(the)h(generic)g (StringPrep)e(in)m(terface.)67 b(The)38 b(in)m(terfaces)i(to)f(all)g (comp)s(onen)m(ts)g(are)f(a)m(v)-5 b(ailable)41 b(for)150 408 y(applications,)32 b(no)e(comp)s(onen)m(t)h(within)f(the)g(library) g(is)g(hidden)f(from)h(the)h(application.)150 3487 y @beginspecial 0 @llx 0 @lly 382 @urx 350 @ury 3820 @rwi @setspecial %%BeginDocument: libidn-components.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: components.fig %%Creator: fig2dev Version 3.2 Patchlevel 5a %%CreationDate: Mon Jun 8 12:40:03 2009 %%BoundingBox: 0 0 382 350 %Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { save newpath 0 350 moveto 0 0 lineto 382 0 lineto 382 350 lineto closepath clip newpath -47.4 405.1 translate 1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06299 0.06299 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 50 % Polyline 0 slj 0 slc 7.500 slw n 3355 1845 m 3295 1845 3295 2235 60 arcto 4 {pop} repeat 3295 2295 4609 2295 60 arcto 4 {pop} repeat 4669 2295 4669 1905 60 arcto 4 {pop} repeat 4669 1845 3355 1845 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 2663 1845 m 2618 1845 2618 2250 45 arcto 4 {pop} repeat 2618 2295 3141 2295 45 arcto 4 {pop} repeat 3186 2295 3186 1890 45 arcto 4 {pop} repeat 3186 1845 2663 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 1988 1845 m 1943 1845 1943 2250 45 arcto 4 {pop} repeat 1943 2295 2467 2295 45 arcto 4 {pop} repeat 2512 2295 2512 1890 45 arcto 4 {pop} repeat 2512 1845 1988 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 1313 1845 m 1268 1845 1268 2250 45 arcto 4 {pop} repeat 1268 2295 1792 2295 45 arcto 4 {pop} repeat 1837 2295 1837 1890 45 arcto 4 {pop} repeat 1837 1845 1313 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 870 4560 m 810 4560 810 5099 60 arcto 4 {pop} repeat 810 5159 6735 5159 60 arcto 4 {pop} repeat 6795 5159 6795 4620 60 arcto 4 {pop} repeat 6795 4560 870 4560 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 4065 2837 m 4005 2837 4005 3448 60 arcto 4 {pop} repeat 4005 3508 5790 3508 60 arcto 4 {pop} repeat 5850 3508 5850 2897 60 arcto 4 {pop} repeat 5850 2837 4065 2837 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 4110 900 m 4050 900 4050 1338 60 arcto 4 {pop} repeat 4050 1398 5520 1398 60 arcto 4 {pop} repeat 5580 1398 5580 960 60 arcto 4 {pop} repeat 5580 900 4110 900 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 2864 1768 m 2864 1863 l 2895 1863 l 2895 1768 l 2895 1768 l 2880 1832 l 2864 1768 l cp eoclip n 2880 1398 m 2880 1848 l gs col0 s gr gr % arrowhead n 2864 1768 m 2880 1832 l 2895 1768 l 2864 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3674 1768 m 3674 1863 l 3705 1863 l 3705 1768 l 3705 1768 l 3690 1832 l 3674 1768 l cp eoclip n 3690 1395 m 3690 1848 l gs col0 s gr gr % arrowhead n 3674 1768 m 3690 1832 l 3705 1768 l 3674 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2864 4493 m 2864 4588 l 2895 4588 l 2895 4493 l 2895 4493 l 2880 4557 l 2864 4493 l cp eoclip n 2880 2298 m 2880 4573 l gs col0 s gr gr % arrowhead n 2864 4493 m 2880 4557 l 2895 4493 l 2864 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2144 4493 m 2144 4588 l 2175 4588 l 2175 4493 l 2175 4493 l 2160 4557 l 2144 4493 l cp eoclip n 2160 2298 m 2160 4573 l gs col0 s gr gr % arrowhead n 2144 4493 m 2160 4557 l 2175 4493 l 2144 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1514 4493 m 1514 4588 l 1545 4588 l 1545 4493 l 1545 4493 l 1530 4557 l 1514 4493 l cp eoclip n 1530 2298 m 1530 4573 l gs col0 s gr gr % arrowhead n 1514 4493 m 1530 4557 l 1545 4493 l 1514 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1019 4493 m 1019 4588 l 1050 4588 l 1050 4493 l 1050 4493 l 1035 4557 l 1019 4493 l cp eoclip n 1035 1398 m 1035 4573 l gs col0 s gr gr % arrowhead n 1019 4493 m 1035 4557 l 1050 4493 l 1019 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1514 1768 m 1514 1863 l 1545 1863 l 1545 1768 l 1545 1768 l 1530 1832 l 1514 1768 l cp eoclip n 1530 1398 m 1530 1848 l gs col0 s gr gr % arrowhead n 1514 1768 m 1530 1832 l 1545 1768 l 1514 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2189 1768 m 2189 1863 l 2220 1863 l 2220 1768 l 2220 1768 l 2205 1832 l 2189 1768 l cp eoclip n 2205 1398 m 2205 1848 l gs col0 s gr gr % arrowhead n 2189 1768 m 2205 1832 l 2220 1768 l 2189 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3539 4493 m 3539 4588 l 3570 4588 l 3570 4493 l 3570 4493 l 3555 4557 l 3539 4493 l cp eoclip n 3555 2298 m 3555 4573 l gs col0 s gr gr % arrowhead n 3539 4493 m 3555 4557 l 3570 4493 l 3539 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4889 4493 m 4889 4588 l 4920 4588 l 4920 4493 l 4920 4493 l 4905 4557 l 4889 4493 l cp eoclip n 4905 3506 m 4905 4573 l gs col0 s gr gr % arrowhead n 4889 4493 m 4905 4557 l 4920 4493 l 4889 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline [15 45] 45 sd n 870 5820 m 810 5820 810 6359 60 arcto 4 {pop} repeat 810 6419 6735 6419 60 arcto 4 {pop} repeat 6795 6419 6795 5880 60 arcto 4 {pop} repeat 6795 5820 870 5820 60 arcto 4 {pop} repeat cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd gs clippath 3705 5669 m 3705 5820 l 3765 5820 l 3765 5669 l 3765 5669 l 3735 5789 l 3705 5669 l cp 3765 5311 m 3765 5160 l 3705 5160 l 3705 5311 l 3705 5311 l 3735 5191 l 3765 5311 l cp eoclip n 3735 5175 m 3735 5805 l gs col0 s gr gr [] 0 sd % arrowhead n 3765 5311 m 3735 5191 l 3705 5311 l 3765 5311 l cp gs col7 1.00 shd ef gr col0 s % arrowhead n 3705 5669 m 3735 5789 l 3765 5669 l 3705 5669 l cp gs col7 1.00 shd ef gr col0 s % Polyline n 840 900 m 765 900 765 1323 75 arcto 4 {pop} repeat 765 1398 3841 1398 75 arcto 4 {pop} repeat 3916 1398 3916 975 75 arcto 4 {pop} repeat 3916 900 840 900 75 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 4349 2755 m 4349 2850 l 4380 2850 l 4380 2755 l 4380 2755 l 4365 2819 l 4349 2755 l cp eoclip n 4365 2277 m 4365 2835 l gs col0 s gr gr % arrowhead n 4349 2755 m 4365 2819 l 4380 2755 l 4349 2755 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4844 2783 m 4844 2878 l 4875 2878 l 4875 2783 l 4875 2783 l 4860 2847 l 4844 2783 l cp eoclip n 4860 1395 m 4860 2863 l gs col0 s gr gr % arrowhead n 4844 2783 m 4860 2847 l 4875 2783 l 4844 2783 l cp gs 0.00 setgray ef gr col0 s % Polyline n 5715 900 m 5670 900 5670 1350 45 arcto 4 {pop} repeat 5670 1395 6750 1395 45 arcto 4 {pop} repeat 6795 1395 6795 945 45 arcto 4 {pop} repeat 6795 900 5715 900 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 6149 4493 m 6149 4588 l 6180 4588 l 6180 4493 l 6180 4493 l 6165 4557 l 6149 4493 l cp eoclip n 6165 1398 m 6165 4573 l gs col0 s gr gr % arrowhead n 6149 4493 m 6165 4557 l 6180 4493 l 6149 4493 l cp gs 0.00 setgray ef gr col0 s /Helvetica ff 165.00 scf sf 3600 2107 m gs 1 -1 sc (Nameprep) col0 sh gr /Helvetica ff 165.00 scf sf 2700 2130 m gs 1 -1 sc (iSCSI) col0 sh gr /Helvetica ff 165.00 scf sf 2025 2130 m gs 1 -1 sc (SASL) col0 sh gr /Helvetica ff 165.00 scf sf 1327 2130 m gs 1 -1 sc (XMPP) col0 sh gr /Helvetica-Bold ff 165.00 scf sf 3150 4905 m gs 1 -1 sc (GNU IDN Library) col0 sh gr /Helvetica ff 150.00 scf sf 4751 3227 m gs 1 -1 sc (IDNA) col0 sh gr /Helvetica ff 165.00 scf sf 4455 1215 m gs 1 -1 sc (Punycode) col0 sh gr /Helvetica ff 165.00 scf sf 3345 6157 m gs 1 -1 sc (Application) col0 sh gr /Helvetica ff 165.00 scf sf 1935 1215 m gs 1 -1 sc (StringPrep) col0 sh gr /Helvetica ff 165.00 scf sf 6075 1170 m gs 1 -1 sc (TLD) col0 sh gr % here ends figure; pagefooter showpage %%Trailer %EOF %%EndDocument @endspecial 250 x Fw(1.4)68 b(Supp)t(orted)44 b(Platforms)150 3896 y Fx(Libidn)88 b(has)h(at)h(some)g(p)s(oin)m(t)f(in)g(time)h(b)s (een)f(tested)h(on)f(the)h(follo)m(wing)h(platforms.)150 4006 y(Online)i(build)f(rep)s(orts)g(for)h(eac)m(h)i(platforms)e(and)g (Libidn)f(v)m(ersion)h(is)h(a)m(v)-5 b(ailable)95 b(at)150 4115 y Fr(http://autobuild.josefss)o(on.o)o(rg/l)o(ibi)o(dn/)p Fx(.)199 4261 y(1.)61 b(Debian)31 b(GNU/Lin)m(ux)g(3.0)g(\(W)-8 b(o)s(o)s(dy\))330 4402 y(GCC)39 b(2.95.4)j(and)c(GNU)i(Mak)m(e.)69 b(This)39 b(is)g(the)h(main)f(dev)m(elopmen)m(t)i(platform.)68 b Fr(alphaev67-)330 4511 y(unknown-linux-gnu)p Fx(,)140 b Fr(alphaev6-unknown-linux-gnu)o Fx(,)f Fr(arm-unknown-linux-gnu)p Fx(,)330 4621 y Fr(armv4l-unknown-linux-gnu)o Fx(,)81 b Fr(hppa-unknown-linux-gnu)p Fx(,)f Fr(hppa64-unknown-linux-)330 4731 y(gnu)p Fx(,)88 b Fr(i686-pc-linux-gnu)p Fx(,)83 b Fr(ia64-unknown-linux-gnu)p Fx(,)g Fr(m68k-unknown-linux-gnu)p Fx(,)330 4840 y Fr(mips-unknown-linux-gnu)p Fx(,)56 b Fr(mipsel-unknown-linux-gnu)p Fx(,)g Fr(powerpc-unknown-linux-)330 4950 y(gnu)p Fx(,)64 b Fr(s390-ibm-linux-gnu)p Fx(,)c Fr(sparc-unknown-linux-gnu)p Fx(,)f Fr(sparc64-unknown-linux-)330 5059 y(gnu)p Fx(.)199 5200 y(2.)i(Debian)31 b(GNU/Lin)m(ux)g(2.1)330 5340 y(GCC)f(2.95.1)j(and)c(GNU)i(Mak)m(e.)43 b Fr (armv4l-unknown-linux-gn)o(u)p Fx(.)p eop end %%Page: 4 9 TeXDict begin 4 8 bop 150 -116 a Fx(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(4)199 299 y(3.)61 b(T)-8 b(ru64)30 b(UNIX)330 438 y(T)-8 b(ru64)32 b(UNIX)h(C)f(compiler)h(and)f (T)-8 b(ru64)33 b(Mak)m(e.)48 b Fr(alphaev67-dec-osf5.1)p Fx(,)28 b Fr(alphaev68-dec-)330 548 y(osf5.1)p Fx(.)199 687 y(4.)61 b(SuSE)29 b(Lin)m(ux)h(7.1)330 827 y(GCC)47 b(2.96)j(and)d(GNU)i(Mak)m(e.)95 b Fr(alphaev6-unknown-linux-)o(gnu)o Fx(,)47 b Fr(alphaev67-unknown-)330 936 y(linux-gnu)p Fx(.)199 1076 y(5.)61 b(SuSE)29 b(Lin)m(ux)h(7.2a)330 1215 y(GCC)g(3.0)h(and)f(GNU)h(Mak)m(e.)42 b Fr(ia64-unknown-linux-gnu) p Fx(.)199 1355 y(6.)61 b(SuSE)29 b(Lin)m(ux)330 1494 y(GCC)74 b(3.2.2)h(and)f(GNU)h(Mak)m(e.)173 b Fr (x86_64-unknown-linux-gnu)67 b Fx(\(AMD64)76 b(Opteron)330 1604 y(\\Melo)s(dy"\).)199 1743 y(7.)61 b(SuSE)29 b(En)m(terprise)h (Serv)m(er)g(9)h(on)f(IBM)h(Op)s(enP)m(o)m(w)m(er)f(720)330 1883 y(GCC)g(3.3.3)i(and)e(GNU)h(Mak)m(e.)42 b Fr (powerpc64-unknown-linux-g)o(nu)p Fx(.)199 2022 y(8.)61 b(RedHat)31 b(Lin)m(ux)f(7.2)330 2162 y(GCC)47 b(2.96)j(and)d(GNU)i (Mak)m(e.)95 b Fr(alphaev6-unknown-linux-)o(gnu)o Fx(,)47 b Fr(alphaev67-unknown-)330 2271 y(linux-gnu)p Fx(,)28 b Fr(ia64-unknown-linux-gnu)p Fx(.)199 2411 y(9.)61 b(RedHat)31 b(Lin)m(ux)f(8.0)330 2550 y(GCC)g(3.2)h(and)f(GNU)h(Mak)m(e.)42 b Fr(i686-pc-linux-gnu)p Fx(.)154 2690 y(10.)61 b(RedHat)31 b(Adv)-5 b(anced)30 b(Serv)m(er)h(2.1)330 2829 y(GCC)f(2.96)i(and)e (GNU)h(Mak)m(e.)42 b Fr(i686-pc-linux-gnu)p Fx(.)154 2969 y(11.)61 b(Slac)m(kw)m(are)32 b(Lin)m(ux)e(8.0.01)330 3108 y(GCC)g(2.95.3)j(and)c(GNU)i(Mak)m(e.)43 b Fr(i686-pc-linux-gnu)p Fx(.)154 3248 y(12.)61 b(Mandrak)m(e)31 b(Lin)m(ux)f(9.0)330 3387 y(GCC)g(3.2)h(and)f(GNU)h(Mak)m(e.)42 b Fr(i686-pc-linux-gnu)p Fx(.)154 3527 y(13.)61 b(IRIX)30 b(6.5)330 3666 y(MIPS)g(C)g(compiler,) h(IRIX)f(Mak)m(e.)42 b Fr(mips-sgi-irix6.5)p Fx(.)154 3806 y(14.)61 b(AIX)30 b(4.3.2)330 3945 y(IBM)h(C)f(for)g(AIX)g (compiler,)i(AIX)e(Mak)m(e.)42 b Fr(rs6000-ibm-aix4.3.2.0)p Fx(.)154 4085 y(15.)61 b(Microsoft)32 b(Windo)m(ws)e(2000)i(\(Cygwin\)) 330 4224 y(GCC)e(3.2,)i(GNU)f(mak)m(e.)41 b Fr(i686-pc-cygwin)p Fx(.)154 4364 y(16.)61 b(HP-UX)31 b(11)330 4503 y(HP-UX)g(C)f(compiler) h(and)f(HP)g(Mak)m(e.)42 b Fr(ia64-hp-hpux11.22)p Fx(,)26 b Fr(hppa2.0w-hp-hpux11.11)p Fx(.)154 4643 y(17.)61 b(SUN)30 b(Solaris)h(2.7)330 4782 y(GCC)f(3.0.4)i(and)e(GNU)h(Mak)m(e.)42 b Fr(sparc-sun-solaris2.7)p Fx(.)154 4922 y(18.)61 b(SUN)30 b(Solaris)h(2.8)330 5061 y(Sun)e(W)-8 b(orkShop)30 b(Compiler)g(C)g (6.0)i(and)d(SUN)i(Mak)m(e.)42 b Fr(sparc-sun-solaris2.8)p Fx(.)154 5200 y(19.)61 b(SUN)30 b(Solaris)h(2.9)330 5340 y(Sun)e(F)-8 b(orte)32 b(Dev)m(elop)s(er)f(7)g(C)f(compiler)h(and)f (GNU)h(Mak)m(e.)42 b Fr(sparc-sun-solaris2.9)p Fx(.)p eop end %%Page: 5 10 TeXDict begin 5 9 bop 150 -116 a Fx(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(5)154 299 y(20.)61 b(NetBSD)32 b(1.6)330 435 y(GCC)85 b(2.95.3)j(and)d(GNU)h(Mak)m(e.)208 b Fr(alpha-unknown-netbsd1.6)p Fx(,)94 b Fr(i386-unknown-)330 544 y(netbsdelf1.6)p Fx(.)154 680 y(21.)61 b(Op)s(enBSD)29 b(3.1)j(and)e(3.2)330 816 y(GCC)79 b(2.95.3)j(and)e(GNU)g(Mak)m(e.)191 b Fr(alpha-unknown-openbsd3.)o(1)p Fx(,)87 b Fr(i386-unknown-)330 925 y(openbsd3.1)p Fx(.)154 1061 y(22.)61 b(F)-8 b(reeBSD)32 b(4.7)f(and)f(4.8)330 1197 y(GCC)74 b(2.95.4)i(and)d(GNU)i(Mak)m(e.)173 b Fr(alpha-unknown-freebsd4.7)p Fx(,)79 b Fr(alpha-unknown-)330 1306 y(freebsd4.8)p Fx(,)28 b Fr(i386-unknown-freebsd4.7)p Fx(,)c Fr(i386-unknown-freebsd4.8)p Fx(.)154 1442 y(23.)61 b(MacOS)31 b(X)f(10.2)i(Serv)m(er)e(Edition)330 1578 y(GCC)g(3.1)h(and)f(GNU)h(Mak)m(e.)42 b Fr(powerpc-apple-darwin6.5)p Fx(.)154 1714 y(24.)61 b(MacOS)31 b(X)f(10.4)i(\\Tiger")g(with)e(Xco)s (de)h(2.0)330 1850 y(GCC)f(4.0)h(and)f(GNU)h(Mak)m(e.)42 b Fr(powerpc-apple-darwin8.0)p Fx(.)154 1985 y(25.)61 b(Cross)30 b(compiled)h(to)g(uClin)m(ux/uClib)s(c)e(on)h(Motorola)j (Cold\014re)330 2121 y(GCC)d(3.4)h(and)f(GNU)h(Mak)m(e)h Fr(m68k-uclinux-elf)p Fx(.)154 2257 y(26.)61 b(Cross)30 b(compiled)h(to)g(ARM)f(using)g(Glib)s(c)330 2393 y(GCC)g(2.95)i(and)e (GNU)h(Mak)m(e)h Fr(arm-linux)p Fx(.)154 2528 y(27.)61 b(Cross)30 b(compiled)h(to)g(Mingw32.)330 2664 y(GCC)f(3.4.4)i(and)e (GNU)h(Mak)m(e)h Fr(i586-mingw32msvc)p Fx(.)275 2827 y(If)d(y)m(ou)i(use)f(Libidn)f(on,)i(or)f(p)s(ort)g(Libidn)f(to,)j(a)e (new)g(platform)h(please)g(rep)s(ort)f(it)g(to)i(the)e(author.)150 3064 y Fw(1.5)68 b(Getting)46 b(help)150 3223 y Fx(A)e(mailing)g(list)g (where)f(users)g(of)h(Libidn)e(ma)m(y)i(help)f(eac)m(h)i(other)f (exists,)j(and)c(y)m(ou)h(can)g(reac)m(h)g(it)150 3333 y(b)m(y)49 b(sending)g(e-mail)i(to)f Fr(help-libidn@gnu.org)p Fx(.)92 b(Arc)m(hiv)m(es)50 b(of)g(the)f(mailing)h(list)g(discussions,) 150 3442 y(and)41 b(an)g(in)m(terface)i(to)f(manage)g(subscriptions,)h (is)f(a)m(v)-5 b(ailable)43 b(through)e(the)g(W)-8 b(orld)42 b(Wide)g(W)-8 b(eb)42 b(at)150 3552 y Fr(http://lists.gnu.org/mai)o (lman)o(/lis)o(tin)o(fo/h)o(elp-)o(lib)o(idn)p Fx(.)150 3788 y Fw(1.6)68 b(Commercial)47 b(Supp)t(ort)150 3947 y Fx(Commercial)29 b(supp)s(ort)e(is)h(a)m(v)-5 b(ailable)31 b(for)d(users)f(of)i(GNU)g(Libidn.)39 b(The)27 b(kind)h(of)g(supp)s (ort)f(that)i(can)g(b)s(e)150 4057 y(purc)m(hased)h(ma)m(y)g(include:) 225 4194 y Fv(\017)60 b Fx(Implemen)m(t)26 b(new)g(features.)40 b(Suc)m(h)26 b(as)g(coun)m(try)h(co)s(de)f(sp)s(eci\014c)g(pro\014ling) g(to)h(supp)s(ort)e(a)h(restricted)330 4304 y(subset)k(of)g(Unico)s (de.)225 4439 y Fv(\017)60 b Fx(P)m(ort)44 b(Libidn)d(to)j(new)e (platforms.)78 b(This)42 b(could)h(include)g(p)s(orting)f(Libidn)g(to)h (an)g(em)m(b)s(edded)330 4549 y(platforms)30 b(that)h(ma)m(y)g(need)f (memory)h(or)f(size)h(optimization.)225 4685 y Fv(\017)60 b Fx(In)m(tegrating)32 b(IDN)f(supp)s(ort)d(in)i(y)m(our)h(existing)g (pro)5 b(ject.)225 4821 y Fv(\017)60 b Fx(System)30 b(design)g(of)h (comp)s(onen)m(ts)f(related)i(to)f(IDN.)275 4984 y(If)e(y)m(ou)i(are)g (in)m(terested,)h(please)f(write)f(to:)150 5121 y Fr(Simon)46 b(Josefsson)g(Datakonsult)150 5230 y(Hagagatan)f(24)150 5340 y(113)i(47)g(Stockholm)p eop end %%Page: 6 11 TeXDict begin 6 10 bop 150 -116 a Fx(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(6)150 299 y Fr(Sweden)150 518 y(E-mail:)46 b(simon@josefsson.org)275 657 y Fx(If)25 b(y)m(our)h(compan)m(y)g(pro)m(vide)g(supp)s(ort)e(related)j(to)f(GNU)h (Libidn)e(and)g(w)m(ould)g(lik)m(e)j(to)e(b)s(e)f(men)m(tioned)150 767 y(here,)30 b(con)m(tact)j(the)e(author)f(\(see)h(Section)g(1.8)h ([Bug)f(Rep)s(orts],)f(page)h(7\).)150 1006 y Fw(1.7)68 b(Do)l(wnloading)46 b(and)f(Installing)150 1165 y Fx(The)30 b(pac)m(k)-5 b(age)32 b(can)f(b)s(e)f(do)m(wnloaded)g(from)g(sev)m (eral)i(places,)f(including:)275 1304 y Fr(ftp://alpha.gnu.org/pub)o (/gn)o(u/li)o(bidn)o(/)275 1443 y Fx(The)d(latest)j(v)m(ersion)f(is)f (stored)g(in)g(a)h(\014le,)g(e.g.,)h(`)p Fr(libidn-1.15.tar.gz)p Fx(')25 b(where)j(the)i(`)p Fr(1.15)p Fx(')e(v)-5 b(alue)150 1553 y(is)30 b(the)h(highest)g(v)m(ersion)f(n)m(um)m(b)s(er)g(in)g(the) g(directory)-8 b(.)275 1692 y(The)33 b(pac)m(k)-5 b(age)35 b(is)f(then)f(extracted,)j(con\014gured)c(and)h(built)h(lik)m(e)g(man)m (y)g(other)g(pac)m(k)-5 b(ages)35 b(that)f(use)150 1801 y(Auto)s(conf.)54 b(F)-8 b(or)36 b(detailed)g(information)f(on)g (con\014guring)f(and)g(building)g(it,)j(refer)e(to)g(the)g(`)p Fr(INSTALL)p Fx(')150 1911 y(\014le)30 b(that)h(is)g(part)f(of)h(the)f (distribution)g(arc)m(hiv)m(e.)275 2050 y(Here)44 b(is)g(an)g(example)h (terminal)g(session)f(that)h(do)m(wnload,)j(con\014gure,)f(build)c(and) h(install)h(the)150 2159 y(pac)m(k)-5 b(age.)43 b(Y)-8 b(ou)31 b(will)f(need)g(a)h(few)f(basic)h(to)s(ols,)h(suc)m(h)e(as)g(`) p Fr(sh)p Fx(',)h(`)p Fr(make)p Fx(')e(and)h(`)p Fr(cc)p Fx('.)390 2298 y Fr($)47 b(wget)g(-q)g(ftp://alpha.gnu.org/pub/g)o (nu/l)o(ibid)o(n/l)o(ibid)o(n-1.)o(15.)o(tar.)o(gz)390 2408 y($)g(tar)g(xfz)g(libidn-1.15.tar.gz)390 2517 y($)g(cd)h (libidn-1.15/)390 2627 y($)f(./configure)390 2737 y(...)390 2846 y($)g(make)390 2956 y(...)390 3065 y($)g(make)g(install)390 3175 y(...)275 3314 y Fx(After)30 b(that)h(Libidn)e(should)h(b)s(e)f (prop)s(erly)h(installed)h(and)e(ready)i(for)f(use.)275 3453 y(A)g(few)g Fr(configure)e Fx(options)j(ma)m(y)g(b)s(e)e(relev)-5 b(an)m(t,)32 b(summarized)e(in)g(the)h(table.)150 3619 y Fr(--enable-java)630 3728 y Fx(Build)f(the)h(Ja)m(v)-5 b(a)32 b(p)s(ort)e(in)m(to)h(a)g(*.JAR)g(\014le.)41 b(See)31 b(Chapter)f(12)i([Ja)m(v)-5 b(a)31 b(API],)g(page)g(58,)h(for)630 3838 y(more)f(information.)150 4002 y Fr(--disable-tld)630 4111 y Fx(Disable)24 b(the)f(TLD)f(mo)s(dule.)38 b(This)21 b(w)m(ould)i(t)m(ypically)h(only)f(b)s(e)f(useful)g(if)h(y)m(ou)g(are)g (building)630 4221 y(on)37 b(a)g(memory)g(restricted)g(platforms.)60 b(See)37 b(Chapter)g(7)g([TLD)g(F)-8 b(unctions],)39 b(page)f(31,)630 4331 y(for)30 b(more)h(information.)150 4494 y Fr(--enable-csharp[=IMPL])630 4604 y Fx(Build)38 b(the)h Fr(C#)e Fx(p)s(ort)h(in)m(to)h(a)g Fr(*.DLL)e Fx(\014le.)64 b(See)39 b(Chapter)e(13)i([C#)f(API],)h(page)g(61,)i(for) 630 4714 y(more)34 b(information.)51 b(Here,)35 b Fr(IMPL)e Fx(is)h Fr(pnet)e Fx(or)i Fr(mono)p Fx(,)g(indicating)g(whether)f(the)h (PNET)630 4823 y Fr(cscc)29 b Fx(compiler)i(or)g(the)f(Mono)h Fr(mcs)f Fx(compiler)h(should)e(b)s(e)h(used,)g(resp)s(ectiv)m(ely)-8 b(.)275 4989 y(F)g(or)31 b(the)f(complete)i(list,)f(refer)f(to)i(the)e (output)g(from)g Fr(configure)e(--help)p Fx(.)150 5193 y Fq(1.7.1)63 b(Installing)41 b(under)h(Windo)m(ws)150 5340 y Fx(There)30 b(are)h(t)m(w)m(o)g(w)m(a)m(ys)h(to)f(build)e (Libidn)g(on)h(Windo)m(ws:)41 b(via)31 b(MinGW)g(or)g(via)g(Visual)g (Studio.)p eop end %%Page: 7 12 TeXDict begin 7 11 bop 150 -116 a Fx(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(7)275 299 y(With)36 b(MinGW,)h(y)m(ou)f (can)g(build)f(a)h(Libidn)e(DLL)i(and)f(use)h(it)g(from)f(other)i (applications.)58 b(After)150 408 y(installing)42 b(MinGW)h(\()p Fr(http://mingw.org/)p Fx(\))37 b(follo)m(w)43 b(the)e(generic)i (installation)g(instructions)e(\(see)150 518 y(Section)31 b(1.7)h([Do)m(wnloading)g(and)d(Installing],)j(page)f(6\).)41 b(The)30 b(DLL)h(is)f(installed)h(b)m(y)g(default.)275 651 y(F)-8 b(or)106 b(information)g(on)g(ho)m(w)g(to)h(use)e(the)h(DLL) g(in)g(other)g(applications,)126 b(see:)150 760 y Fr (http://www.mingw.org/min)o(gwfa)o(q.sh)o(tml)o(#faq)o(-msv)o(cdl)o(l)p Fx(.)275 893 y(Y)-8 b(ou)35 b(can)f(build)g(Libidn)f(as)i(a)g(nativ)m (e)h(Visual)f(Studio)f(C)p Fr(++)f Fx(pro)5 b(ject.)54 b(This)34 b(allo)m(ws)i(y)m(ou)f(to)g(build)150 1002 y(the)c(co)s(de)g(for)g(other)g(platforms)g(that)h(VS)e(supp)s(orts,)g (suc)m(h)g(as)i(Windo)m(ws)f(Mobile.)43 b(Y)-8 b(ou)32 b(need)e(Visual)150 1112 y(Studio)g(2005)i(or)e(later.)275 1244 y(First)i(do)m(wnload)h(and)f(unpac)m(k)g(the)h(arc)m(hiv)m(e)h (as)f(describ)s(ed)e(in)i(the)f(generic)i(installation)g(instruc-)150 1354 y(tions)f(\(see)h(Section)g(1.7)g([Do)m(wnloading)h(and)d (Installing],)j(page)f(6\).)49 b(Don't)34 b(run)e Fr(./configure)p Fx(.)45 b(In-)150 1463 y(stead,)33 b(start)g(Visual)g(Studio)e(and)h (op)s(en)f(the)i(pro)5 b(ject)32 b(\014le)h(`)p Fr(win32/libidn.sln)p Fx(')28 b(inside)k(the)g(Libidn)150 1573 y(directory)-8 b(.)42 b(Y)-8 b(ou)31 b(should)e(b)s(e)h(able)h(to)g(build)e(the)i(pro) 5 b(ject)30 b(using)g(Build)h(Pro)5 b(ject.)275 1705 y(Output)38 b(libraries)h(will)h(b)s(e)f(written)g(in)m(to)i(the)f Fr(win32/lib)c Fx(\(or)k Fr(win32/lib/debug)35 b Fx(for)40 b(Debug)150 1815 y(v)m(ersions\))31 b(folder.)275 1948 y(When)h(w)m(orking)i(with)e(Windo)m(ws)i(y)m(ou)f(ma)m(y)h(w)m(an)m(t) f(to)h(lo)s(ok)g(in)m(to)g(the)f(sp)s(ecial)h(memory)f(handling)150 2057 y(functions)23 b(that)i(ma)m(y)f(b)s(e)f(needed)h(\(see)h(Section) f(2.6)h([Memory)g(handling)e(under)f(Windo)m(ws],)k(page)e(12\).)150 2286 y Fw(1.8)68 b(Bug)45 b(Rep)t(orts)150 2445 y Fx(If)30 b(y)m(ou)h(think)f(y)m(ou)g(ha)m(v)m(e)i(found)d(a)i(bug)e(in)h (Libidn,)g(please)h(in)m(v)m(estigate)j(it)c(and)g(rep)s(ort)g(it.)225 2577 y Fv(\017)60 b Fx(Please)40 b(mak)m(e)g(sure)d(that)j(the)f(bug)f (is)g(really)i(in)e(Libidn,)i(and)e(preferably)g(also)i(c)m(hec)m(k)g (that)f(it)330 2687 y(hasn't)30 b(already)h(b)s(een)f(\014xed)g(in)g (the)g(latest)i(v)m(ersion.)225 2819 y Fv(\017)60 b Fx(Y)-8 b(ou)31 b(ha)m(v)m(e)g(to)h(send)d(us)h(a)h(test)g(case)g(that)g(mak)m (es)g(it)g(p)s(ossible)f(for)g(us)g(to)h(repro)s(duce)e(the)i(bug.)225 2952 y Fv(\017)60 b Fx(Y)-8 b(ou)29 b(also)h(ha)m(v)m(e)g(to)g(explain) f(what)g(is)g(wrong;)g(if)g(y)m(ou)g(get)h(a)f(crash,)h(or)f(if)f(the)h (results)g(prin)m(ted)g(are)330 3061 y(not)36 b(go)s(o)s(d)g(and)g(in)g (that)g(case,)j(in)d(what)g(w)m(a)m(y)-8 b(.)59 b(Mak)m(e)38 b(sure)d(that)i(the)f(bug)g(rep)s(ort)f(includes)h(all)330 3171 y(information)31 b(y)m(ou)f(w)m(ould)h(need)f(to)h(\014x)f(this)g (kind)f(of)i(bug)f(for)g(someone)h(else.)275 3326 y(Please)36 b(mak)m(e)f(an)g(e\013ort)h(to)f(pro)s(duce)f(a)h(self-con)m(tained)i (rep)s(ort,)f(with)e(something)i(de\014nite)e(that)150 3436 y(can)29 b(b)s(e)g(tested)g(or)g(debugged.)40 b(V)-8 b(ague)31 b(queries)e(or)g(piecemeal)h(messages)g(are)g(di\016cult)f (to)h(act)g(on)f(and)150 3546 y(don't)h(help)g(the)h(dev)m(elopmen)m(t) h(e\013ort.)275 3678 y(If)e(y)m(our)g(bug)g(rep)s(ort)g(is)g(go)s(o)s (d,)h(w)m(e)g(will)g(do)f(our)g(b)s(est)g(to)i(help)e(y)m(ou)g(to)i (get)f(a)g(corrected)h(v)m(ersion)f(of)150 3788 y(the)j(soft)m(w)m (are;)j(if)d(the)g(bug)f(rep)s(ort)g(is)h(p)s(o)s(or,)g(w)m(e)g(w)m (on't)g(do)g(an)m(ything)g(ab)s(out)g(it)g(\(apart)g(from)f(asking)150 3897 y(y)m(ou)e(to)g(send)e(b)s(etter)i(bug)f(rep)s(orts\).)275 4030 y(If)19 b(y)m(ou)i(think)f(something)h(in)f(this)g(man)m(ual)h(is) f(unclear,)j(or)d(do)m(wnrigh)m(t)h(incorrect,)i(or)e(if)f(the)h (language)150 4139 y(needs)30 b(to)h(b)s(e)f(impro)m(v)m(ed,)h(please)g (also)g(send)f(a)h(note.)275 4272 y(Send)e(y)m(our)h(bug)g(rep)s(ort)g (to:)1495 4381 y(`)p Fr(bug-libidn@gnu.org)p Fx(')150 4610 y Fw(1.9)68 b(Con)l(tributing)150 4769 y Fx(If)25 b(y)m(ou)h(w)m(an)m(t)g(to)g(submit)f(a)h(patc)m(h)g(for)f(inclusion)h ({)f(from)h(solv)m(e)g(a)g(t)m(yp)s(o)g(y)m(ou)g(disco)m(v)m(ered,)i (up)c(to)i(adding)150 4879 y(supp)s(ort)38 b(for)h(a)h(new)e(feature)i ({)g(y)m(ou)g(should)e(submit)h(it)h(as)f(a)h(bug)f(rep)s(ort)f(\(see)j (Section)f(1.8)g([Bug)150 4988 y(Rep)s(orts],)32 b(page)g(7\).)44 b(There)30 b(are)i(some)g(things)f(that)h(y)m(ou)f(can)h(do)f(to)h (increase)g(the)f(c)m(hances)h(for)f(it)h(to)150 5098 y(b)s(e)e(included)f(in)h(the)h(o\016cial)h(pac)m(k)-5 b(age.)275 5230 y(Unless)41 b(y)m(our)g(patc)m(h)h(is)f(v)m(ery)h (small)g(\(sa)m(y)-8 b(,)46 b(under)40 b(10)i(lines\))g(w)m(e)f (require)g(that)h(y)m(ou)g(assign)g(the)150 5340 y(cop)m(yrigh)m(t)d (of)f(y)m(our)f(w)m(ork)h(to)g(the)g(F)-8 b(ree)39 b(Soft)m(w)m(are)f (F)-8 b(oundation.)63 b(This)37 b(is)g(to)i(protect)f(the)g(freedom)p eop end %%Page: 8 13 TeXDict begin 8 12 bop 150 -116 a Fx(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(8)150 299 y(of)44 b(the)g(pro)5 b(ject.)81 b(If)43 b(y)m(ou)h(ha)m(v)m(e)h(not)f(already)h(signed)e (pap)s(ers,)j(w)m(e)f(will)f(send)f(y)m(ou)h(the)g(necessary)150 408 y(information)31 b(when)e(y)m(ou)i(submit)e(y)m(our)i(con)m (tribution.)275 543 y(F)-8 b(or)33 b(con)m(tributions)h(that)f(do)s (esn't)g(consist)g(of)g(actual)i(programming)d(co)s(de,)i(the)g(only)f (guidelines)150 653 y(are)e(common)f(sense.)41 b(Use)31 b(it.)275 787 y(F)-8 b(or)31 b(co)s(de)f(con)m(tributions,)h(a)g(n)m (um)m(b)s(er)e(of)i(st)m(yle)g(guides)g(will)f(help)g(y)m(ou:)225 922 y Fv(\017)60 b Fx(Co)s(ding)32 b(St)m(yle.)48 b(F)-8 b(ollo)m(w)34 b(the)f(GNU)g(Standards)e(do)s(cumen)m(t)i(\(see)g Fv(h)p Fx(unde\014ned)p Fv(i)e Fx([top],)j(page)f Fv(h)p Fx(un-)330 1031 y(de\014ned)p Fv(i)p Fx(\).)330 1166 y(If)42 b(y)m(ou)h(normally)f(co)s(de)h(using)f(another)g(co)s(ding)h (standard,)i(there)d(is)h(no)f(problem,)j(but)d(y)m(ou)330 1275 y(should)h(use)g(`)p Fr(indent)p Fx(')g(to)i(reformat)f(the)g(co)s (de)g(\(see)h Fv(h)p Fx(unde\014ned)p Fv(i)d Fx([top],)48 b(page)d Fv(h)p Fx(unde\014ned)p Fv(i)p Fx(\))330 1385 y(b)s(efore)30 b(submitting)g(y)m(our)g(w)m(ork.)225 1519 y Fv(\017)60 b Fx(Use)31 b(the)f(uni\014ed)f(di\013)h(format)h(`)p Fr(diff)f(-u)p Fx('.)225 1654 y Fv(\017)60 b Fx(Return)32 b(errors.)47 b(No)33 b(reason)g(whatso)s(ev)m(er)g(should)f(ab)s(ort)h (the)g(execution)g(of)g(the)g(library)-8 b(.)48 b(Ev)m(en)330 1763 y(memory)27 b(allo)s(cation)i(errors,)f(e.g.)41 b(when)26 b(mallo)s(c)i(return)e(NULL,)h(should)f(w)m(ork)h(although)h (result)330 1873 y(in)i(an)g(error)g(co)s(de.)225 2007 y Fv(\017)60 b Fx(Design)31 b(with)f(thread)g(safet)m(y)i(in)e(mind.)40 b(Don't)31 b(use)f(global)i(v)-5 b(ariables)31 b(and)f(the)g(lik)m(e.) 225 2142 y Fv(\017)60 b Fx(Av)m(oid)38 b(using)f(the)g(C)g(math)g (library)-8 b(.)61 b(It)37 b(causes)h(problems)e(for)h(em)m(b)s(edded)f (implemen)m(tations,)330 2252 y(and)30 b(in)g(most)h(situations)g(it)g (is)f(v)m(ery)h(easy)g(to)g(a)m(v)m(oid)h(using)e(it.)225 2386 y Fv(\017)60 b Fx(Do)s(cumen)m(t)23 b(y)m(our)f(functions.)37 b(Use)23 b(commen)m(ts)g(b)s(efore)f(eac)m(h)h(function)f(headers,)h (that,)i(if)d(prop)s(erly)330 2496 y(formatted,)j(are)d(extracted)i(in) m(to)f(GTK-DOC)e(w)m(eb)i(pages.)38 b(Don't)23 b(forget)g(to)g(up)s (date)e(the)i(T)-8 b(exinfo)330 2605 y(man)m(ual)31 b(as)f(w)m(ell.)225 2740 y Fv(\017)60 b Fx(Supply)29 b(a)h(ChangeLog)h(and)f(NEWS)g(en)m (tries,)i(where)e(appropriate.)p eop end %%Page: 9 14 TeXDict begin 9 13 bop 150 -116 a Fx(Chapter)30 b(2:)41 b(Preparation)2619 b(9)150 299 y Fu(2)80 b(Preparation)150 497 y Fx(T)-8 b(o)34 b(use)f(`Libidn',)h(y)m(ou)g(ha)m(v)m(e)h(to)f(p)s (erform)e(some)i(c)m(hanges)h(to)f(y)m(our)g(sources)f(and)g(the)h (build)f(system.)150 607 y(The)39 b(necessary)h(c)m(hanges)h(are)f (small)g(and)f(explained)g(in)h(the)f(follo)m(wing)i(sections.)70 b(A)m(t)40 b(the)g(end)f(of)150 716 y(this)31 b(c)m(hapter,)i(it)f(is)f (describ)s(ed)f(ho)m(w)i(the)f(library)g(is)h(initialized,)h(and)e(ho)m (w)g(the)h(requiremen)m(ts)f(of)h(the)150 826 y(library)e(are)h(v)m (eri\014ed.)275 953 y(A)f(faster)i(w)m(a)m(y)f(to)h(\014nd)d(out)i(ho)m (w)g(to)h(adapt)f(y)m(our)g(application)h(for)e(use)h(with)f(`Libidn')h (ma)m(y)g(b)s(e)f(to)150 1063 y(lo)s(ok)h(at)g(the)g(examples)g(at)g (the)f(end)g(of)g(this)h(man)m(ual)f(\(see)i(Chapter)e(9)g([Examples],) h(page)h(38\).)150 1281 y Fw(2.1)68 b(Header)150 1440 y Fx(The)38 b(library)g(con)m(tains)i(a)e(few)h(indep)s(enden)m(t)e (parts,)j(and)e(eac)m(h)i(part)e(exp)s(ort)g(the)h(in)m(terfaces)h (\(data)150 1550 y(t)m(yp)s(es)33 b(and)g(functions\))g(in)g(a)h (header)f(\014le.)49 b(Y)-8 b(ou)34 b(m)m(ust)f(include)g(the)h (appropriate)f(header)g(\014les)g(in)g(all)150 1659 y(programs)d(using) g(the)g(library)-8 b(,)31 b(either)g(directly)g(or)f(through)g(some)h (other)f(header)h(\014le,)f(lik)m(e)i(this:)390 1787 y Fr(#include)46 b()275 1914 y Fx(The)29 b(header)i(\014les)f(and)g(the)g(functions)g(they)h(de\014ne)e(are)i (categorized)i(as)e(follo)m(ws:)150 2059 y(stringprep.h)630 2169 y(The)d(lo)m(w-lev)m(el)j(stringprep)c(API)h(en)m(try)h(p)s(oin)m (t.)40 b(F)-8 b(or)29 b(IDN)g(applications,)h(this)e(is)g(usually)630 2278 y(in)m(v)m(ok)m(ed)33 b(via)e(IDNA.)h(Some)f(applications,)i(sp)s (eci\014cally)f(non-IDN)f(ones,)h(ma)m(y)f(w)m(an)m(t)h(to)630 2388 y(prepare)e(strings)g(directly)h(though,)f(and)g(should)g(include) g(this)g(header)g(\014le.)630 2515 y(The)k(name)h(space)g(of)g(the)f (stringprep)g(part)h(of)f(Libidn)g(is)g Fr(stringprep*)e Fx(for)i(function)630 2625 y(names,)i Fr(Stringprep*)31 b Fx(for)k(data)g(t)m(yp)s(es)g(and)f Fr(STRINGPREP_*)d Fx(for)k(other)g(sym)m(b)s(ols.)53 b(In)630 2734 y(addition,)36 b Fr(_stringprep*)31 b Fx(is)k(reserv)m(ed)f(for)g(in)m(ternal)i(use)e (and)g(should)f(nev)m(er)i(b)s(e)f(used)630 2844 y(b)m(y)c (applications.)150 2989 y(pun)m(yco)s(de.h)630 3098 y(The)23 b(en)m(try)h(p)s(oin)m(t)f(to)i(Pun)m(yco)s(de)e(enco)s(ding)g(and)g (deco)s(ding)g(functions.)38 b(Normally)25 b(pun)m(y-)630 3208 y(co)s(de)g(is)f(used)g(via)h(the)g(idna.h)f(in)m(terface,)k(but)c (some)h(application)g(ma)m(y)h(w)m(an)m(t)f(to)g(p)s(erform)630 3318 y(ra)m(w)30 b(pun)m(yco)s(de)g(op)s(erations.)630 3445 y(The)40 b(name)i(space)f(of)g(the)g(pun)m(yco)s(de)g(part)f(of)i (Libidn)d(is)i Fr(punycode_*)d Fx(for)j(function)630 3554 y(names,)e Fr(Punycode*)34 b Fx(for)j(data)g(t)m(yp)s(es)g(and)g Fr(PUNYCODE_*)d Fx(for)i(other)i(sym)m(b)s(ols.)60 b(In)36 b(ad-)630 3664 y(dition,)42 b Fr(_punycode*)37 b Fx(is)i(reserv)m(ed)h (for)f(in)m(ternal)h(use)g(and)e(should)h(nev)m(er)h(b)s(e)e(used)h(b)m (y)630 3774 y(applications.)150 3919 y(idna.h)630 4046 y(The)h(en)m(try)g(p)s(oin)m(t)g(to)h(the)f(IDNA)h(functions.)70 b(This)39 b(is)h(the)h(normal)f(en)m(try)g(p)s(oin)m(t)g(for)630 4156 y(applications)32 b(that)f(need)f(IDN)g(functionalit)m(y)-8 b(.)630 4283 y(The)42 b(name)g(space)g(of)h(the)f(IDNA)h(part)f(of)g (Libidn)f(is)h Fr(idna_*)e Fx(for)i(function)g(names,)630 4392 y Fr(Idna*)d Fx(for)g(data)i(t)m(yp)s(es)f(and)f Fr(IDNA_*)g Fx(for)g(other)h(sym)m(b)s(ols.)70 b(In)39 b(addition,)k Fr(_idna*)38 b Fx(is)630 4502 y(reserv)m(ed)31 b(for)f(in)m(ternal)h(use)f(and)g(should)f(nev)m(er)i(b)s(e)e(used)h(b) m(y)g(applications.)150 4647 y(tld.h)630 4774 y(The)k(en)m(try)g(p)s (oin)m(t)g(to)h(the)f(TLD)g(functions.)51 b(Normal)35 b(applications)g(are)f(not)h(exp)s(ected)630 4884 y(to)k(need)f(this)h (functionalit)m(y)-8 b(,)42 b(but)c(it)h(is)f(presen)m(t)h(for)f (applications)i(that)f(are)f(used)g(b)m(y)630 4993 y(TLDs)30 b(to)h(v)-5 b(alidate)32 b(customer)f(input.)630 5121 y(The)d(name)h(space)g(of)g(the)g(TLD)g(part)g(of)f(Libidn)g(is)h Fr(tld_*)e Fx(for)i(function)f(names,)h Fr(Tld_*)630 5230 y Fx(for)i(data)g(t)m(yp)s(es)g(and)f Fr(TLD_*)g Fx(for)g(other)h(sym)m(b)s(ols.)42 b(In)30 b(addition,)i Fr(_tld*)d Fx(is)i(reserv)m(ed)g(for)630 5340 y(in)m(ternal)g(use)f (and)g(should)f(nev)m(er)i(b)s(e)f(used)f(b)m(y)i(applications.)p eop end %%Page: 10 15 TeXDict begin 10 14 bop 150 -116 a Fx(Chapter)30 b(2:)41 b(Preparation)2573 b(10)150 299 y(pr29.h)630 441 y(The)40 b(en)m(try)h(p)s(oin)m(t)g(to)g(the)g(PR29)h(functions.)71 b(These)41 b(functions)f(are)h(used)f(to)i(detect)630 550 y(\\problem)26 b(sequences")h(\(see)f(Chapter)g(8)g([PR29)h(F)-8 b(unctions],)28 b(page)f(36\),)h(mostly)e(for)g(use)630 660 y(in)k(securit)m(y)h(critical)h(applications.)630 802 y(The)23 b(name)g(space)h(of)f(the)h(PR29)g(part)f(of)g(Libidn)g (is)g Fr(pr29_*)e Fx(for)j(function)e(names,)j Fr(Pr29_)630 912 y(*)j Fx(for)g(data)h(t)m(yp)s(es)f(and)f Fr(PR29_*)g Fx(for)h(other)g(sym)m(b)s(ols.)40 b(In)27 b(addition,)i Fr(_pr29*)e Fx(is)h(reserv)m(ed)630 1021 y(for)i(in)m(ternal)h(use)f (and)g(should)f(nev)m(er)i(b)s(e)f(used)f(b)m(y)i(applications.)150 1196 y(idn-free.h)630 1338 y(The)24 b(en)m(try)h(p)s(oin)m(t)f(to)h (the)g(Windo)m(ws)f(memory)g(de-allo)s(cation)j(function)d(\(see)i (Section)f(2.6)630 1447 y([Memory)40 b(handling)f(under)e(Windo)m(ws],) 42 b(page)e(12\).)69 b(It)39 b(con)m(tains)h(only)g(one)f(function)630 1557 y Fr(idn_free)p Fx(.)275 1739 y(All)31 b(header)f(\014les)g (de\014ned)f(and)h(use)g(the)h(sym)m(b)s(ol)f Fr(IDNAPI)e Fx(to)j(decorate)h(the)f(API)f(functions.)150 1994 y Fw(2.2)68 b(Initialization)150 2153 y Fx(Libidn)29 b(is)i(stateless)h (and)d(do)s(es)h(not)h(need)f(an)m(y)h(initialization.)150 2408 y Fw(2.3)68 b(V)-11 b(ersion)45 b(Chec)l(k)150 2567 y Fx(It)35 b(is)g(often)g(desirable)g(to)h(c)m(hec)m(k)h(that)e(the)g (v)m(ersion)h(of)f(`Libidn')f(used)g(is)h(indeed)g(one)g(whic)m(h)f (\014ts)h(all)150 2677 y(requiremen)m(ts.)42 b(Ev)m(en)31 b(with)g(binary)f(compatibilit)m(y)j(new)d(features)h(ma)m(y)g(ha)m(v)m (e)h(b)s(een)e(in)m(tro)s(duced)h(but)150 2787 y(due)g(to)i(problem)e (with)h(the)g(dynamic)f(link)m(er)i(an)e(old)h(v)m(ersion)h(is)f (actually)h(used.)45 b(So)31 b(y)m(ou)i(ma)m(y)f(w)m(an)m(t)150 2896 y(to)f(c)m(hec)m(k)h(that)f(the)g(v)m(ersion)f(is)h(ok)-5 b(a)m(y)31 b(righ)m(t)g(after)g(program)f(startup.)150 3110 y Fq(stringprep)p 710 3110 37 5 v 55 w(c)m(hec)m(k)p 1058 3110 V 53 w(v)m(ersion)3350 3322 y Fx([F)-8 b(unction])-3599 b Fp(const)54 b(char)f(*)g(stringprep_check_versi)q(on)f Fo(\()p Fn(const)31 b(c)m(har)g(*)565 3432 y Fm(req_version)12 b Fo(\))390 3541 y Fn(req)p 520 3541 28 4 v 40 w(v)m(ersion)p Fx(:)41 b(Required)30 b(v)m(ersion)h(n)m(um)m(b)s(er,)e(or)i(NULL.)390 3691 y(Chec)m(k)c(that)h(the)f(v)m(ersion)g(of)g(the)g(library)g(is)g (at)g(minim)m(um)g(the)g(requested)f(one)i(and)e(return)g(the)390 3800 y(v)m(ersion)32 b(string;)h(return)e(NULL)g(if)h(the)g(condition)g (is)g(not)g(satis\014ed.)45 b(If)31 b(a)h(NULL)g(is)g(passed)f(to)390 3910 y(this)f(function,)h(no)f(c)m(hec)m(k)i(is)e(done,)h(but)e(the)i (v)m(ersion)g(string)f(is)g(simply)g(returned.)390 4060 y(See)h Fr(STRINGPREP_VERSION)25 b Fx(for)30 b(a)h(suitable)g Fr(req_version)c Fx(string.)390 4209 y Fl(Return)d(v)-5 b(alue:)38 b Fx(V)-8 b(ersion)24 b(string)g(of)g(run-time)g(library)-8 b(,)26 b(or)e(NULL)g(if)g(the)g(run-time)g(library)f(do)s(es)390 4319 y(not)31 b(meet)g(the)f(required)g(v)m(ersion)h(n)m(um)m(b)s(er.) 275 4533 y(The)e(normal)h(w)m(a)m(y)i(to)f(use)e(the)i(function)f(is)g (to)h(put)e(something)i(similar)g(to)g(the)f(follo)m(wing)i(\014rst)d (in)150 4643 y(y)m(our)h Fr(main)p Fx(:)485 4792 y Fr(if)48 b(\(!stringprep_check_vers)o(ion)41 b(\(STRINGPREP_VERSION\)\))581 4902 y({)676 5011 y(printf)46 b(\("stringprep_check_version)o(\(\))c (failed:\\n")1058 5121 y("Header)k(file)h(incompatible)d(with)j(shared) f(library.\\n"\);)676 5230 y(exit\(1\);)581 5340 y(})p eop end %%Page: 11 16 TeXDict begin 11 15 bop 150 -116 a Fx(Chapter)30 b(2:)41 b(Preparation)2573 b(11)150 299 y Fw(2.4)68 b(Building)45 b(the)g(source)150 458 y Fx(If)32 b(y)m(ou)i(w)m(an)m(t)f(to)h(compile) g(a)f(source)g(\014le)g(including)f(e.g.)50 b(the)33 b(`idna.h')f(header)h(\014le,)h(y)m(ou)f(m)m(ust)g(mak)m(e)150 568 y(sure)24 b(that)i(the)f(compiler)g(can)h(\014nd)d(it)j(in)e(the)h (directory)h(hierarc)m(h)m(y)-8 b(.)40 b(This)24 b(is)h(accomplished)g (b)m(y)g(adding)150 677 y(the)37 b(path)g(to)h(the)f(directory)g(in)g (whic)m(h)g(the)g(header)g(\014le)g(is)g(lo)s(cated)h(to)g(the)f (compilers)g(include)g(\014le)150 787 y(searc)m(h)31 b(path)f(\(via)h(the)g(`)p Fr(-I)p Fx(')f(option\).)275 923 y(Ho)m(w)m(ev)m(er,)h(the)f(path)f(to)h(the)g(include)f(\014le)h (is)f(determined)g(at)h(the)g(time)g(the)f(source)h(is)f(con\014gured.) 150 1033 y(T)-8 b(o)30 b(solv)m(e)h(this)f(problem,)g(`Libidn')f(uses)g (the)h(external)h(pac)m(k)-5 b(age)31 b Fr(pkg-config)c Fx(that)k(kno)m(ws)e(the)h(path)150 1142 y(to)k(the)g(include)g(\014le) f(and)g(other)h(con\014guration)g(options.)51 b(The)33 b(options)h(that)g(need)g(to)g(b)s(e)f(added)g(to)150 1252 y(the)24 b(compiler)h(in)m(v)m(o)s(cation)h(at)f(compile)f(time)h (are)g(output)e(b)m(y)h(the)g(`)p Fr(--cflags)p Fx(')f(option)h(to)h Fr(pkg-config)150 1362 y(libidn)p Fx(.)39 b(The)30 b(follo)m(wing)i (example)f(sho)m(ws)f(ho)m(w)g(it)h(can)g(b)s(e)f(used)f(at)i(the)g (command)f(line:)390 1498 y Fr(gcc)47 b(-c)g(foo.c)f(`pkg-config)f (libidn)h(--cflags`)275 1634 y Fx(Adding)38 b(the)i(output)f(of)h(`)p Fr(pkg-config)27 b(libidn)i(--cflags)p Fx(')38 b(to)i(the)f(compilers)h (command)g(line)150 1744 y(will)31 b(ensure)e(that)i(the)g(compiler)g (can)f(\014nd)f(e.g.)42 b(the)31 b(idna.h)e(header)i(\014le.)275 1880 y(A)23 b(similar)g(problem)g(o)s(ccurs)g(when)f(linking)h(the)g (program)g(with)g(the)g(library)-8 b(.)38 b(Again,)26 b(the)d(compiler)150 1990 y(has)j(to)g(\014nd)f(the)h(library)f (\014les.)40 b(F)-8 b(or)26 b(this)g(to)h(w)m(ork,)g(the)f(path)g(to)h (the)f(library)f(\014les)h(has)g(to)h(b)s(e)e(added)g(to)150 2099 y(the)32 b(library)g(searc)m(h)h(path)f(\(via)h(the)f(`)p Fr(-L)p Fx(')g(option\).)47 b(F)-8 b(or)32 b(this,)h(the)f(option)h(`)p Fr(--libs)p Fx(')e(to)i Fr(pkg-config)150 2209 y(libidn)h Fx(can)i(b)s(e)f(used.)56 b(F)-8 b(or)37 b(con)m(v)m(enience,)i(this)d (option)g(also)g(outputs)g(all)g(other)g(options)g(that)h(are)150 2318 y(required)h(to)i(link)f(the)g(program)g(with)f(the)i(`libidn')e (libarary)-8 b(.)67 b(The)39 b(example)h(sho)m(ws)e(ho)m(w)h(to)h(link) 150 2428 y(`)p Fr(foo.o)p Fx(')29 b(with)i(the)f(`libidn')g(library)g (to)h(a)g(program)f Fr(foo)p Fx(.)390 2564 y Fr(gcc)47 b(-o)g(foo)g(foo.o)f(`pkg-config)f(libidn)h(--libs`)275 2700 y Fx(Of)29 b(course)i(y)m(ou)f(can)h(also)g(com)m(bine)g(b)s(oth)e (examples)i(to)g(a)g(single)f(command)g(b)m(y)h(sp)s(ecifying)f(b)s (oth)150 2810 y(options)h(to)g Fr(pkg-config)p Fx(:)390 2946 y Fr(gcc)47 b(-o)g(foo)g(foo.c)f(`pkg-config)f(libidn)h(--cflags)g (--libs`)150 3181 y Fw(2.5)68 b(Auto)t(conf)44 b(tests)150 3341 y Fx(If)25 b(y)m(our)g(pro)5 b(ject)26 b(uses)f(Auto)s(conf)g (\(see)i Fv(h)p Fx(unde\014ned)p Fv(i)c Fx([top],)28 b(page)e Fv(h)p Fx(unde\014ned)p Fv(i)p Fx(\))e(to)i(c)m(hec)m(k)h(for) e(installed)150 3450 y(libraries,)38 b(y)m(ou)e(migh)m(t)h(\014nd)d (the)i(follo)m(wing)i(snipp)s(et)c(illustrativ)m(e.)60 b(It)36 b(add)f(a)h(new)g(`)p Fr(configure)p Fx(')e(pa-)150 3560 y(rameter)d Fr(--with-libidn)p Fx(,)d(and)i(c)m(hec)m(k)j(for)d(`) p Fr(idna.h)p Fx(')g(and)g(`)p Fr(-lidn)p Fx(')g(\(p)s(ossibly)g(b)s (elo)m(w)h(the)g(directory)150 3669 y(sp)s(eci\014ed)d(as)i(the)f (optional)i(argumen)m(t)e(to)h Fr(--with-libidn)p Fx(\),)c(and)j (de\014ne)f(the)i Fk(CPP)e Fx(sym)m(b)s(ol)h Fr(LIBIDN)150 3779 y Fx(if)37 b(the)f(library)h(is)f(found.)58 b(The)36 b(default)h(b)s(eha)m(viour)f(is)h(to)g(searc)m(h)g(for)g(the)g (library)f(and)g(enable)h(the)150 3889 y(functionalit)m(y)28 b(\(that)g(is,)g(de\014ne)e(the)h(sym)m(b)s(ol\))f(when)g(the)h (library)f(is)h(found,)g(but)f(if)g(y)m(ou)h(wish)f(to)i(mak)m(e)150 3998 y(the)k(default)g(b)s(eha)m(viour)g(of)g(y)m(our)g(pac)m(k)-5 b(age)34 b(b)s(e)e(that)g(Libidn)f(is)h(not)g(used)g(\(ev)m(en)h(if)f (it)g(is)g(installed)h(on)150 4108 y(the)e(system\),)g(c)m(hange)g(`)p Fr(libidn=yes)p Fx(')d(to)j(`)p Fr(libidn=no)p Fx(')e(on)h(the)h(third) e(line.)390 4244 y Fr(AC_ARG_WITH\(libidn,)43 b (AC_HELP_STRING\([--with-)o(lib)o(idn=)o([DIR)o(]],)1917 4354 y([Support)j(IDN)h(\(needs)f(GNU)h(Libidn\)]\),)485 4463 y(libidn=$withval,)d(libidn=yes\))390 4573 y(if)j(test)g ("$libidn")e(!=)i("no";)g(then)485 4682 y(if)h(test)e("$libidn")g(!=)h ("yes";)f(then)581 4792 y(LDFLAGS="${LDFLAGS})c(-L$libidn/lib")581 4902 y(CPPFLAGS="${CPPFLAGS})g(-I$libidn/include")485 5011 y(fi)485 5121 y(AC_CHECK_HEADER\(idna.h,)581 5230 y(AC_CHECK_LIB\(idn,)h(stringprep_check_version)o(,)676 5340 y([libidn=yes)i(LIBS="${LIBS})f(-lidn"],)i(libidn=no\),)p eop end %%Page: 12 17 TeXDict begin 12 16 bop 150 -116 a Fx(Chapter)30 b(2:)41 b(Preparation)2573 b(12)581 299 y Fr(libidn=no\))390 408 y(fi)390 518 y(if)47 b(test)g("$libidn")e(!=)i("no")g(;)g(then)485 628 y(AC_DEFINE\(LIBIDN,)d(1,)j([Define)f(to)h(1)g(if)g(you)g(want)g (IDN)g(support.]\))390 737 y(else)485 847 y(AC_MSG_WARN\([Libidn)c(not) k(found]\))390 956 y(fi)390 1066 y(AC_MSG_CHECKING\([if)c(Libidn)j (should)g(be)h(used]\))390 1176 y(AC_MSG_RESULT\($libidn\))275 1345 y Fx(If)36 b(y)m(ou)i(require)f(that)g(y)m(our)g(users)g(ha)m(v)m (e)h(installed)g Fr(pkg-config)c Fx(\(whic)m(h)k(I)e(cannot)i (recommend)150 1454 y(generally\),)32 b(the)f(ab)s(o)m(v)m(e)g(can)g(b) s(e)f(done)g(more)g(easily)i(as)f(follo)m(ws.)390 1624 y Fr(AC_ARG_WITH\(libidn,)43 b(AC_HELP_STRING\([--with-)o(lib)o(idn=)o ([DIR)o(]],)1917 1733 y([Support)j(IDN)h(\(needs)f(GNU)h(Libidn\)]\),) 485 1843 y(libidn=$withval,)d(libidn=yes\))390 1952 y(if)j(test)g ("$libidn")e(!=)i("no")g(;)g(then)485 2062 y (PKG_CHECK_MODULES\(LIBIDN,)41 b(libidn)46 b(>=)i(0.0.0,)e ([libidn=yes],)e([libidn=no]\))485 2172 y(if)k(test)e("$libidn")g(!=)h ("yes")f(;)i(then)581 2281 y(libidn=no)581 2391 y(AC_MSG_WARN\([Libidn) 42 b(not)47 b(found]\))485 2500 y(else)581 2610 y(libidn=yes)581 2720 y(AC_DEFINE\(LIBIDN,)c(1,)k([Define)f(to)h(1)h(if)f(you)g(want)f (Libidn.]\))485 2829 y(fi)390 2939 y(fi)390 3048 y (AC_MSG_CHECKING\([if)d(Libidn)j(should)g(be)h(used]\))390 3158 y(AC_MSG_RESULT\($libidn\))150 3443 y Fw(2.6)68 b(Memory)45 b(handling)g(under)f(Windo)l(ws)150 3602 y Fx(Sev)m(eral)i(functions)f(in)g(the)g(library)g(allo)s(cates)i (memory)-8 b(.)85 b(The)45 b(memory)g(is)g(exp)s(ected)g(to)h(b)s(e)f (de-)150 3712 y(allo)s(cated)28 b(using)d(the)h Fr(free)e Fx(function.)39 b(Under)25 b(Windo)m(ws,)i(it)f(is)g(sometimes)h (necessary)f(to)g(de-allo)s(cate)150 3821 y(memory)32 b(in)g(the)h(same)g(mo)s(dule)e(that)i(allo)s(cated)i(a)d(memory)g (region.)48 b(The)32 b(reason)g(is)h(that)f(di\013eren)m(t)150 3931 y(mo)s(dules)26 b(use)h(separate)h(heap)f(memory)g(regions.)40 b(T)-8 b(o)28 b(solv)m(e)g(this)f(problem)g(w)m(e)h(pro)m(vide)f(a)g (function)g(to)150 4040 y(de-allo)s(cate)33 b(memory)d(inside)g(the)h (library)-8 b(.)275 4210 y(Note)32 b(that)g(w)m(e)g(do)g(not)f (recommend)h(using)f(this)g(in)m(terface)i(generally)g(if)e(y)m(ou)h (do)f(not)h(care)g(ab)s(out)150 4319 y(Windo)m(ws)e(p)s(ortabilit)m(y) -8 b(.)150 4604 y Fw(2.7)68 b(Header)46 b(\014le)f Fj(idn-free.h)150 4763 y Fx(T)-8 b(o)39 b(use)f(the)h(function)f(explained)h(in)f(this)h (c)m(hapter,)i(y)m(ou)e(need)f(to)i(include)e(the)h(\014le)f(`)p Fr(idn-free.h)p Fx(')150 4873 y(using:)390 5042 y Fr(#include)46 b()150 5327 y Fw(2.8)68 b(Memory)45 b(de-allo)t(cation)i (function)p eop end %%Page: 13 18 TeXDict begin 13 17 bop 150 -116 a Fx(Chapter)30 b(2:)41 b(Preparation)2573 b(13)150 299 y Fq(idn)p 329 299 37 5 v 54 w(free)3350 496 y Fx([F)-8 b(unction])-3599 b Fp(void)54 b(idn_free)47 b Fo(\()p Fn(v)m(oid)32 b(*)e Fm(ptr)12 b Fo(\))390 605 y Fn(ptr)7 b Fx(:)40 b(memory)30 b(region)h(to)g(deallo)s(cate,)i(or)d Fr(NULL)p Fx(.)390 740 y(Deallo)s(cates)42 b(memory)d(region)g(b)m(y)g(calling)h Fr(free\(\))p Fx(.)65 b(If)38 b Fr(ptr)g Fx(is)h Fr(NULL)f Fx(no)g(op)s(eration)i(is)f(p)s(er-)390 849 y(formed.)390 984 y(Normally)i(applications)g(de-allo)s(cate)i(strings)d(allo)s (cated)i(b)m(y)e(libidn)f(b)m(y)h(calling)i Fr(free\(\))c Fx(di-)390 1093 y(rectly)-8 b(.)76 b(Under)41 b(Windo)m(ws,)k (di\013eren)m(t)d(parts)f(of)h(the)g(same)g(application)h(ma)m(y)f(use) f(di\013eren)m(t)390 1203 y(heap)d(memory)-8 b(,)40 b(and)e(then)f(it)i (is)f(imp)s(ortan)m(t)g(to)h(deallo)s(cate)h(memory)e(allo)s(cated)i (within)e(the)390 1313 y(same)31 b(mo)s(dule)e(that)i(allo)s(cated)i (it.)41 b(This)30 b(function)g(mak)m(es)h(that)g(p)s(ossible.)p eop end %%Page: 14 19 TeXDict begin 14 18 bop 150 -116 a Fx(Chapter)30 b(3:)41 b(Utilit)m(y)32 b(F)-8 b(unctions)2369 b(14)150 299 y Fu(3)80 b(Utilit)l(y)53 b(F)-13 b(unctions)150 540 y Fx(The)37 b(rest)g(of)h(this)f(library)g(mak)m(es)h(extensiv)m(e)g(use) f(of)h(Unico)s(de)f(c)m(haracters.)63 b(In)37 b(order)f(to)i(in)m (terface)150 649 y(this)g(library)g(with)g(the)h(outside)f(w)m(orld,)i (y)m(our)f(application)g(ma)m(y)g(need)f(to)h(mak)m(e)g(v)-5 b(arious)39 b(Unico)s(de)150 759 y(transformations.)150 994 y Fw(3.1)68 b(Header)46 b(\014le)f Fj(stringprep.h)150 1154 y Fx(T)-8 b(o)30 b(use)f(the)g(functions)g(explained)h(in)f(this)g (c)m(hapter,)h(y)m(ou)g(need)f(to)h(include)f(the)g(\014le)h(`)p Fr(stringprep.h)p Fx(')150 1263 y(using:)390 1400 y Fr(#include)46 b()150 1636 y Fw(3.2)68 b(Unico)t(de)45 b(Enco)t(ding)g(T)-11 b(ransformation)150 1860 y Fq(stringprep)p 710 1860 37 5 v 55 w(unic)m(har)p 1165 1860 V 54 w(to)p 1328 1860 V 54 w(utf8)3350 2059 y Fx([F)j(unction])-3599 b Fp(int)53 b(stringprep_unichar_to)q(_utf)q(8)f Fo(\()p Fn(uin)m(t32)p 2055 2059 28 4 v 41 w(t)31 b Fm(c)12 b Fn(,)30 b(c)m(har)h(*)f Fm(outbuf)12 b Fo(\))390 2169 y Fn(c)6 b Fx(:)41 b(a)30 b(ISO10646)i(c)m(haracter)g(co)s(de)390 2305 y Fn(outbuf)17 b Fx(:)47 b(output)34 b(bu\013er,)g(m)m(ust)g(ha)m (v)m(e)h(at)g(least)g(6)f(b)m(ytes)h(of)f(space.)52 b(If)33 b Fr(NULL)p Fx(,)h(the)g(length)h(will)390 2415 y(b)s(e)30 b(computed)g(and)g(returned)f(and)h(nothing)g(will)h(b)s(e)e(written)i (to)g Fr(outbuf)p Fx(.)390 2551 y(Con)m(v)m(erts)g(a)g(single)g(c)m (haracter)h(to)f(UTF-8.)390 2688 y Fl(Return)f(v)-5 b(alue:)41 b Fx(n)m(um)m(b)s(er)29 b(of)i(b)m(ytes)g(written.)150 2890 y Fq(stringprep)p 710 2890 37 5 v 55 w(utf8)p 979 2890 V 55 w(to)p 1143 2890 V 54 w(unic)m(har)3350 3089 y Fx([F)-8 b(unction])-3599 b Fp(uint32_t)55 b(stringprep_utf8_to_unic) q(har)d Fo(\()p Fn(const)31 b(c)m(har)g(*)g Fm(p)12 b Fo(\))390 3198 y Fn(p)s Fx(:)40 b(a)31 b(p)s(oin)m(ter)f(to)h(Unico)s (de)g(c)m(haracter)h(enco)s(ded)e(as)g(UTF-8)390 3335 y(Con)m(v)m(erts)d(a)g(sequence)g(of)g(b)m(ytes)g(enco)s(ded)f(as)g (UTF-8)i(to)f(a)g(Unico)s(de)f(c)m(haracter.)41 b(If)26 b Fr(p)h Fx(do)s(es)f(not)390 3444 y(p)s(oin)m(t)k(to)h(a)g(v)-5 b(alid)31 b(UTF-8)g(enco)s(ded)f(c)m(haracter,)i(results)f(are)f (unde\014ned.)390 3581 y Fl(Return)g(v)-5 b(alue:)41 b Fx(the)31 b(resulting)f(c)m(haracter.)150 3782 y Fq(stringprep)p 710 3782 V 55 w(ucs4)p 997 3782 V 55 w(to)p 1161 3782 V 54 w(utf8)3350 3981 y Fx([F)-8 b(unction])-3599 b Fp(char)54 b(*)e(stringprep_ucs4_to_utf)q(8)g Fo(\()p Fn(const)31 b(uin)m(t32)p 2293 3981 28 4 v 41 w(t)f(*)h Fm(str)12 b Fn(,)31 b(ssize)p 2876 3981 V 41 w(t)g Fm(len)12 b Fn(,)565 4091 y(size)p 712 4091 V 41 w(t)31 b(*)f Fm(items_read)12 b Fn(,)34 b(size)p 1626 4091 V 40 w(t)d(*)g Fm(items_written)12 b Fo(\))390 4201 y Fn(str)7 b Fx(:)40 b(a)31 b(UCS-4)f(enco)s(ded)g (string)390 4337 y Fn(len)p Fx(:)39 b(the)27 b(maxim)m(um)f(length)h (of)g Fr(str)f Fx(to)h(use.)39 b(If)26 b Fr(len)g(<)g Fx(0,)i(then)e(the)h(string)g(is)f(terminated)h(with)390 4447 y(a)k(0)g(c)m(haracter.)390 4584 y Fn(items)p 608 4584 V 41 w(read)t Fx(:)40 b(lo)s(cation)32 b(to)f(store)g(n)m(um)m(b)s (er)e(of)h(c)m(haracters)i(read)f(read,)f(or)g Fr(NULL)p Fx(.)390 4720 y Fn(items)p 608 4720 V 41 w(written)p Fx(:)57 b(lo)s(cation)41 b(to)e(store)g(n)m(um)m(b)s(er)f(of)h(b)m (ytes)g(written)g(or)g Fr(NULL)p Fx(.)65 b(The)38 b(v)-5 b(alue)39 b(here)390 4830 y(stored)30 b(do)s(es)h(not)f(include)g(the)h (trailing)g(0)g(b)m(yte.)390 4966 y(Con)m(v)m(ert)h(a)g(string)f(from)g (a)g(32-bit)i(\014xed)d(width)h(represen)m(tation)h(as)g(UCS-4.)43 b(to)32 b(UTF-8.)44 b(The)390 5076 y(result)30 b(will)h(b)s(e)f (terminated)h(with)f(a)g(0)h(b)m(yte.)390 5213 y Fl(Return)42 b(v)-5 b(alue:)66 b Fx(a)43 b(p)s(oin)m(ter)f(to)i(a)f(newly)f(allo)s (cated)i(UTF-8)g(string.)77 b(This)42 b(v)-5 b(alue)43 b(m)m(ust)g(b)s(e)390 5322 y(deallo)s(cated)32 b(b)m(y)f(the)f(caller.) 42 b(If)30 b(an)g(error)g(o)s(ccurs,)h Fr(NULL)e Fx(will)i(b)s(e)e (returned)g(and)h Fr(error)f Fx(set.)p eop end %%Page: 15 20 TeXDict begin 15 19 bop 150 -116 a Fx(Chapter)30 b(3:)41 b(Utilit)m(y)32 b(F)-8 b(unctions)2369 b(15)150 299 y Fq(stringprep)p 710 299 37 5 v 55 w(utf8)p 979 299 V 55 w(to)p 1143 299 V 54 w(ucs4)3350 522 y Fx([F)-8 b(unction])-3599 b Fp(uint32_t)55 b(*)d(stringprep_utf8_to_uc)q(s4)g Fo(\()p Fn(const)31 b(c)m(har)g(*)g Fm(str)12 b Fn(,)31 b(ssize)p 2930 522 28 4 v 40 w(t)565 632 y Fm(len)12 b Fn(,)31 b(size)p 936 632 V 41 w(t)g(*)f Fm(items_written)12 b Fo(\))390 741 y Fn(str)7 b Fx(:)40 b(a)31 b(UTF-8)g(enco)s(ded)f (string)390 902 y Fn(len)p Fx(:)40 b(the)28 b(maxim)m(um)g(length)h(of) f Fr(str)g Fx(to)g(use.)40 b(If)28 b Fr(len)f(<)h Fx(0,)h(then)f(the)h (string)f(is)g(n)m(ul-terminated.)390 1063 y Fn(items)p 608 1063 V 41 w(written)p Fx(:)40 b(lo)s(cation)32 b(to)f(store)g(the)g (n)m(um)m(b)s(er)e(of)i(c)m(haracters)g(in)g(the)f(result,)h(or)f Fr(NULL)p Fx(.)390 1224 y(Con)m(v)m(ert)d(a)f(string)g(from)f(UTF-8)i (to)g(a)f(32-bit)i(\014xed)d(width)g(represen)m(tation)i(as)f(UCS-4,)h (assum-)390 1333 y(ing)k(v)-5 b(alid)30 b(UTF-8)h(input.)40 b(This)30 b(function)g(do)s(es)g(no)g(error)g(c)m(hec)m(king)i(on)f (the)f(input.)390 1494 y Fl(Return)43 b(v)-5 b(alue:)66 b Fx(a)44 b(p)s(oin)m(ter)f(to)h(a)f(newly)g(allo)s(cated)i(UCS-4)f (string.)79 b(This)42 b(v)-5 b(alue)44 b(m)m(ust)f(b)s(e)390 1604 y(deallo)s(cated)32 b(b)m(y)f(the)f(caller.)150 1876 y Fw(3.3)68 b(Unico)t(de)45 b(Normalization)150 2100 y Fq(stringprep)p 710 2100 37 5 v 55 w(ucs4)p 997 2100 V 55 w(nfk)m(c)p 1274 2100 V 53 w(normalize)3350 2323 y Fx([F)-8 b(unction])-3599 b Fp(uint32_t)55 b(*)d (stringprep_ucs4_nfkc_)q(nor)q(mal)q(ize)g Fo(\()p Fn(uin)m(t32)p 2630 2323 28 4 v 41 w(t)31 b(*)g Fm(str)12 b Fn(,)565 2433 y(ssize)p 748 2433 V 41 w(t)31 b Fm(len)12 b Fo(\))390 2542 y Fn(str)7 b Fx(:)40 b(a)31 b(Unico)s(de)f(string.)390 2703 y Fn(len)p Fx(:)41 b(length)31 b(of)f Fr(str)g Fx(arra)m(y)-8 b(,)31 b(or)g(-1)g(if)f Fr(str)f Fx(is)i(n)m(ul-terminated.)390 2864 y(Con)m(v)m(erts)g(UCS4)f(string)h(in)m(to)g(UTF-8)g(and)f(runs)f Fr(stringprep_utf8_nfkc_no)o(rmal)o(ize)o(\(\))p Fx(.)390 3025 y Fl(Return)j(v)-5 b(alue:)45 b Fx(a)33 b(newly)f(allo)s(cated)i (Unico)s(de)f(string,)g(that)g(is)f(the)h(NFK)m(C)g(normalized)f(form) 390 3134 y(of)f Fr(str)p Fx(.)150 3360 y Fq(stringprep)p 710 3360 37 5 v 55 w(utf8)p 979 3360 V 55 w(nfk)m(c)p 1256 3360 V 54 w(normalize)3350 3583 y Fx([F)-8 b(unction])-3599 b Fp(char)54 b(*)e(stringprep_utf8_nfkc_n)q(orm)q(ali)q(ze)g Fo(\()p Fn(const)31 b(c)m(har)g(*)f Fm(str)12 b Fn(,)31 b(ssize)p 3086 3583 28 4 v 41 w(t)565 3693 y Fm(len)12 b Fo(\))390 3802 y Fn(str)7 b Fx(:)40 b(a)31 b(UTF-8)g(enco)s(ded)f (string.)390 3963 y Fn(len)p Fx(:)41 b(length)31 b(of)f Fr(str)p Fx(,)g(in)g(b)m(ytes,)h(or)f(-1)h(if)g Fr(str)e Fx(is)i(n)m(ul-terminated.)390 4124 y(Con)m(v)m(erts)22 b(a)g(string)f(in)m(to)h(canonical)h(form,)g(standardizing)e(suc)m(h)g (issues)g(as)g(whether)g(a)g(c)m(haracter)390 4233 y(with)28 b(an)g(accen)m(t)j(is)d(represen)m(ted)g(as)h(a)f(base)h(c)m(haracter)h (and)e(com)m(bining)g(accen)m(t)j(or)d(as)h(a)f(single)390 4343 y(precomp)s(osed)i(c)m(haracter.)390 4504 y(The)24 b(normalization)h(mo)s(de)f(is)g(NFK)m(C)g(\(ALL)g(COMPOSE\).)g(It)g (standardizes)g(di\013erences)g(that)390 4614 y(do)38 b(not)h(a\013ect)h(the)e(text)i(con)m(ten)m(t,)i(suc)m(h)d(as)f(the)h (ab)s(o)m(v)m(e-men)m(tioned)h(accen)m(t)h(represen)m(tation.)390 4723 y(It)35 b(standardizes)h(the)f Fr(")p Fx(compatibilit)m(y)p Fr(")i Fx(c)m(haracters)g(in)e(Unico)s(de,)i(suc)m(h)e(as)g (SUPERSCRIPT)390 4833 y(THREE)24 b(to)i(the)f(standard)f(forms)g(\(in)h (this)g(case)h(DIGIT)f(THREE\).)g(F)-8 b(ormatting)27 b(information)390 4942 y(ma)m(y)38 b(b)s(e)e(lost)i(but)e(for)g(most)i (text)g(op)s(erations)f(suc)m(h)f(c)m(haracters)j(should)d(b)s(e)g (considered)h(the)390 5052 y(same.)k(It)30 b(returns)f(a)i(result)f (with)f(comp)s(osed)h(forms)g(rather)g(than)g(a)g(maximally)h(decomp)s (osed)390 5161 y(form.)390 5322 y Fl(Return)f(v)-5 b(alue:)41 b Fx(a)31 b(newly)f(allo)s(cated)i(string,)f(that)g(is)f(the)h(NFK)m(C) g(normalized)f(form)g(of)h Fr(str)p Fx(.)p eop end %%Page: 16 21 TeXDict begin 16 20 bop 150 -116 a Fx(Chapter)30 b(3:)41 b(Utilit)m(y)32 b(F)-8 b(unctions)2369 b(16)150 299 y Fw(3.4)68 b(Character)46 b(Set)f(Con)l(v)l(ersion)150 521 y Fq(stringprep)p 710 521 37 5 v 55 w(lo)s(cale)p 1068 521 V 55 w(c)m(harset)3350 715 y Fx([F)-8 b(unction])-3599 b Fp(const)54 b(char)f(*)g(stringprep_locale_char)q(set)f Fo(\()31 b Fm(void)12 b Fo(\))390 824 y Fx(Find)37 b(out)g(curren)m(t)h (lo)s(cale)h(c)m(harset.)62 b(The)37 b(function)g(resp)s(ect)h(the)f (CHARSET)f(en)m(vironmen)m(t)390 934 y(v)-5 b(ariable,)29 b(but)d(t)m(ypically)j(uses)e(nl)p 1557 934 28 4 v 40 w(langinfo\(CODESET\))g(when)f(it)i(is)f(supp)s(orted.)38 b(It)27 b(fall)h(bac)m(k)390 1044 y(on)23 b Fr(")p Fx(ASCI)s(I)p Fr(")f Fx(if)h(CHARSET)g(isn't)h(set)g(and)f(nl)p 2011 1044 V 40 w(langinfo)h(isn't)f(supp)s(orted)f(or)i(return)e(an)m (ything.)390 1176 y(Note)28 b(that)g(this)f(function)g(return)f(the)h (application's)i(lo)s(cale's)g(preferred)d(c)m(harset)i(\(or)f (thread's)390 1286 y(lo)s(cale's)32 b(pre\013ered)e(c)m(harset,)i(if)e (y)m(our)h(system)f(supp)s(ort)f(thread-sp)s(eci\014c)h(lo)s(cales\).) 43 b(It)31 b(do)s(es)f(not)390 1396 y(return)24 b(what)i(the)g(system)f (ma)m(y)h(b)s(e)f(using.)39 b(Th)m(us,)26 b(if)f(y)m(ou)h(receiv)m(e)h (data)f(from)f(external)i(sources)390 1505 y(y)m(ou)35 b(cannot)g(in)g(general)g(use)g(this)f(function)h(to)g(guess)g(what)f (c)m(harset)i(it)f(is)g(enco)s(ded)f(in.)54 b(Use)390 1615 y(stringprep)p 802 1615 V 39 w(con)m(v)m(ert)30 b(from)e(the)h(external)h(represen)m(tation)f(in)m(to)h(the)f(c)m (harset)g(returned)f(b)m(y)g(this)390 1724 y(function,)i(to)h(ha)m(v)m (e)h(data)f(in)f(the)h(lo)s(cale)h(enco)s(ding.)390 1857 y Fl(Return)23 b(v)-5 b(alue:)37 b Fx(Return)23 b(the)g(c)m(haracter)i (set)f(used)f(b)m(y)g(the)g(curren)m(t)g(lo)s(cale.)40 b(It)24 b(will)f(nev)m(er)h(return)390 1967 y(NULL,)31 b(but)e(use)h Fr(")p Fx(ASCI)s(I)p Fr(")f Fx(as)h(a)h(fallbac)m(k.)150 2163 y Fq(stringprep)p 710 2163 37 5 v 55 w(con)m(v)m(ert)3350 2356 y Fx([F)-8 b(unction])-3599 b Fp(char)54 b(*)e(stringprep_convert) f Fo(\()p Fn(const)31 b(c)m(har)g(*)g Fm(str)12 b Fn(,)31 b(const)g(c)m(har)f(*)565 2466 y Fm(to_codeset)12 b Fn(,)33 b(const)e(c)m(har)g(*)g Fm(from_codeset)12 b Fo(\))390 2575 y Fn(str)7 b Fx(:)40 b(input)29 b(zero-terminated)j(string.)390 2708 y Fn(to)p 476 2708 28 4 v 41 w(co)s(deset)r Fx(:)41 b(name)31 b(of)f(destination)i(c)m(haracter)f(set.)390 2841 y Fn(from)p 581 2841 V 40 w(co)s(deset)r Fx(:)41 b(name)31 b(of)f(origin)h(c)m(haracter)h(set,)f(as)g(used)e(b)m(y)i Fr(str)p Fx(.)390 2974 y(Con)m(v)m(ert)43 b(the)g(string)f(from)g(one)g (c)m(haracter)i(set)f(to)g(another)f(using)g(the)g(system's)h Fr(iconv\(\))390 3083 y Fx(function.)390 3216 y Fl(Return)20 b(v)-5 b(alue:)36 b Fx(Returns)20 b(newly)g(allo)s(cated)j (zero-terminated)f(string)f(whic)m(h)f(is)h Fr(str)e Fx(transco)s(ded)390 3326 y(in)m(to)31 b(to)p 660 3326 V 41 w(co)s(deset.)150 3522 y Fq(stringprep)p 710 3522 37 5 v 55 w(lo)s(cale)p 1068 3522 V 55 w(to)p 1232 3522 V 54 w(utf8)3350 3715 y Fx([F)-8 b(unction])-3599 b Fp(char)54 b(*)e(stringprep_locale_to_u)q(tf8)g Fo(\()p Fn(const)31 b(c)m(har)g(*)g Fm(str)12 b Fo(\))390 3825 y Fn(str)7 b Fx(:)40 b(input)29 b(zero)j(terminated)e(string.)390 3958 y(Con)m(v)m(ert)24 b(string)f(enco)s(ded)g(in)g(the)g(lo)s(cale's) i(c)m(haracter)g(set)f(in)m(to)g(UTF-8)g(b)m(y)f(using)g Fr(stringprep_)390 4067 y(convert\(\))p Fx(.)390 4200 y Fl(Return)d(v)-5 b(alue:)36 b Fx(Returns)20 b(newly)g(allo)s(cated)j (zero-terminated)f(string)f(whic)m(h)f(is)h Fr(str)e Fx(transco)s(ded)390 4310 y(in)m(to)31 b(UTF-8.)150 4506 y Fq(stringprep)p 710 4506 V 55 w(utf8)p 979 4506 V 55 w(to)p 1143 4506 V 54 w(lo)s(cale)3350 4699 y Fx([F)-8 b(unction])-3599 b Fp(char)54 b(*)e(stringprep_utf8_to_loc)q(ale)g Fo(\()p Fn(const)31 b(c)m(har)g(*)g Fm(str)12 b Fo(\))390 4809 y Fn(str)7 b Fx(:)40 b(input)29 b(zero)j(terminated)e(string.)390 4941 y(Con)m(v)m(ert)24 b(string)f(enco)s(ded)g(in)g(UTF-8)h(in)m(to)g (the)g(lo)s(cale's)h(c)m(haracter)f(set)g(b)m(y)f(using)g Fr(stringprep_)390 5051 y(convert\(\))p Fx(.)390 5184 y Fl(Return)d(v)-5 b(alue:)36 b Fx(Returns)20 b(newly)g(allo)s(cated)j (zero-terminated)f(string)f(whic)m(h)f(is)h Fr(str)e Fx(transco)s(ded)390 5293 y(in)m(to)31 b(the)g(lo)s(cale's)h(c)m (haracter)g(set.)p eop end %%Page: 17 22 TeXDict begin 17 21 bop 150 -116 a Fx(Chapter)30 b(4:)41 b(Stringprep)29 b(F)-8 b(unctions)2209 b(17)150 299 y Fu(4)80 b(Stringprep)52 b(F)-13 b(unctions)150 537 y Fx(Stringprep)23 b(describ)s(es)i(a)g(framew)m(ork)g(for)f(preparing)g (Unico)s(de)h(text)h(strings)f(in)f(order)h(to)g(increase)h(the)150 646 y(lik)m(eliho)s(o)s(d)i(that)f(string)g(input)e(and)i(string)f (comparison)h(w)m(ork)g(in)f(w)m(a)m(ys)i(that)f(mak)m(e)h(sense)f(for) f(t)m(ypical)150 756 y(users)i(throughout)g(the)h(w)m(orld.)40 b(The)28 b(stringprep)g(proto)s(col)i(is)e(useful)g(for)h(proto)s(col)g (iden)m(ti\014er)g(v)-5 b(alues,)150 865 y(compan)m(y)31 b(and)f(p)s(ersonal)f(names,)i(in)m(ternationalized)i(domain)d(names,)g (and)g(other)h(text)g(strings.)150 1100 y Fw(4.1)68 b(Header)46 b(\014le)f Fj(stringprep.h)150 1259 y Fx(T)-8 b(o)30 b(use)f(the)g(functions)g(explained)h(in)f(this)g(c)m(hapter,)h(y)m(ou) g(need)f(to)h(include)f(the)g(\014le)h(`)p Fr(stringprep.h)p Fx(')150 1369 y(using:)390 1504 y Fr(#include)46 b()150 1739 y Fw(4.2)68 b(De\014ning)45 b(A)g(Stringprep)f(Pro\014le)150 1898 y Fx(F)-8 b(urther)38 b(t)m(yp)s(es)h(and)g(structures)f(are)h (de\014ned)e(for)i(applications)h(that)f(w)m(an)m(t)h(to)g(sp)s(ecify)e (their)h(o)m(wn)150 2008 y(stringprep)e(pro\014le.)63 b(As)38 b(these)g(are)h(fairly)f(obscure,)i(and)d(b)m(y)h(necessit)m(y) h(tied)g(to)f(the)h(implemen)m(ta-)150 2117 y(tion,)f(w)m(e)e(do)g(not) g(do)s(cumen)m(t)g(them)g(here.)57 b(Lo)s(ok)36 b(in)m(to)h(the)f(`)p Fr(stringprep.h)p Fx(')d(header)j(\014le,)h(and)f(the)150 2227 y(`)p Fr(profiles.c)p Fx(')28 b(source)j(co)s(de)f(for)g(the)h (details.)150 2461 y Fw(4.3)68 b(Con)l(trol)46 b(Flags)3072 2671 y Fx([Stringprep)29 b(\015ags])-3599 b Fp(Stringprep_profile_fla)q (gs)59 b(STRINGPREP_NO_NFKC)390 2781 y Fx(Disable)42 b(the)g(NFK)m(C)g(normalization,)k(as)41 b(w)m(ell)i(as)e(selecting)i (the)f(non-NFK)m(C)f(case)i(folding)390 2891 y(tables.)d(Usually)25 b(the)h(pro\014le)f(sp)s(eci\014es)g(BIDI)g(and)g(NFK)m(C)g(settings,)j (and)d(applications)h(should)390 3000 y(not)31 b(o)m(v)m(erride)g(it)g (unless)f(in)g(sp)s(ecial)h(situations.)3072 3187 y([Stringprep)e (\015ags])-3599 b Fp(Stringprep_profile_fla)q(gs)59 b (STRINGPREP_NO_BIDI)390 3297 y Fx(Disable)39 b(the)f(BIDI)g(step.)62 b(Usually)38 b(the)g(pro\014le)f(sp)s(eci\014es)h(BIDI)g(and)f(NFK)m(C) h(settings,)j(and)390 3406 y(applications)32 b(should)d(not)i(o)m(v)m (erride)g(it)g(unless)f(in)g(sp)s(ecial)h(situations.)3072 3593 y([Stringprep)e(\015ags])-3599 b Fp(Stringprep_profile_fla)q(gs)59 b(STRINGPREP_NO_UNASSIGNE)q(D)390 3702 y Fx(Mak)m(e)28 b(the)e(library)g(return)e(with)i(an)g(error)g(if)g(string)g(con)m (tains)h(unassigned)e(c)m(haracters)j(accord-)390 3812 y(ing)j(to)g(pro\014le.)150 4046 y Fw(4.4)68 b(Core)46 b(F)-11 b(unctions)150 4270 y Fq(stringprep)p 710 4270 37 5 v 55 w(4i)3350 4468 y Fx([F)j(unction])-3599 b Fp(int)53 b(stringprep_4i)d Fo(\()p Fn(uin)m(t32)p 1375 4468 28 4 v 41 w(t)31 b(*)f Fm(ucs4)12 b Fn(,)32 b(size)p 1975 4468 V 41 w(t)e(*)h Fm(len)12 b Fn(,)31 b(size)p 2522 4468 V 41 w(t)g Fm(maxucs4len)12 b Fn(,)565 4578 y(Stringprep)p 992 4578 V 39 w(pro\014le)p 1279 4578 V 40 w(\015ags)30 b Fm(flags)12 b Fn(,)32 b(const)f(Stringprep)p 2514 4578 V 38 w(pro\014le)f(*)h Fm(profile)12 b Fo(\))390 4688 y Fn(ucs4)7 b Fx(:)41 b(input/output)30 b(arra)m(y)h(with)f(string)g (to)h(prepare.)390 4823 y Fn(len)p Fx(:)63 b(on)41 b(input,)i(length)f (of)f(input)g(arra)m(y)h(with)f(Unico)s(de)g(co)s(de)h(p)s(oin)m(ts,)i (on)d(exit,)k(length)d(of)390 4933 y(output)30 b(arra)m(y)h(with)f (Unico)s(de)g(co)s(de)h(p)s(oin)m(ts.)390 5069 y Fn(maxucs4len)p Fx(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e(arra)m(y)-8 b(.)390 5204 y Fn(\015ags)t Fx(:)41 b(a)30 b Fr (Stringprep_profile_flags)24 b Fx(v)-5 b(alue,)31 b(or)g(0.)390 5340 y Fn(pro\014le)5 b Fx(:)40 b(p)s(oin)m(ter)31 b(to)g Fr(Stringprep_profile)25 b Fx(to)31 b(use.)p eop end %%Page: 18 23 TeXDict begin 18 22 bop 150 -116 a Fx(Chapter)30 b(4:)41 b(Stringprep)29 b(F)-8 b(unctions)2209 b(18)390 299 y(Prepare)35 b(the)h(input)f(UCS-4)h(string)g(according)g(to)h(the)f(stringprep)e (pro\014le,)j(and)e(write)h(bac)m(k)390 408 y(the)31 b(result)f(to)h(the)g(input)e(string.)390 548 y(The)36 b(input)g(is)h(not)h(required)e(to)h(b)s(e)g(zero)h(terminated)f(\()p Fr(ucs4)p Fx([)p Fr(len)p Fx(])f(=)g(0\).)62 b(The)36 b(output)h(will)390 657 y(not)28 b(b)s(e)g(zero)h(terminated)f(unless)g Fr(ucs4)p Fx([)p Fr(len)p Fx(])e(=)i(0.)40 b(Instead,)29 b(see)f Fr(stringprep_4zi\(\))c Fx(if)k(y)m(our)390 767 y(input)h(is)i(zero)g(terminated)g(or)f(if)h(y)m(ou)f(w)m(an)m(t)i(the) e(output)g(to)h(b)s(e.)390 906 y(Since)c(the)h(stringprep)f(op)s (eration)h(can)f(expand)g(the)h(string,)g Fr(maxucs4len)d Fx(indicate)j(ho)m(w)g(large)390 1016 y(the)35 b(bu\013er)e(holding)i (the)g(string)f(is.)53 b(This)34 b(function)g(will)h(not)g(read)g(or)f (write)h(to)g(co)s(de)g(p)s(oin)m(ts)390 1125 y(outside)c(that)g(size.) 390 1265 y(The)f Fr(flags)f Fx(are)i(one)f(of)h Fr (Stringprep_profile_flag)o(s)25 b Fx(v)-5 b(alues,)30 b(or)h(0.)390 1404 y(The)f Fr(profile)f Fx(con)m(tain)k(the)e Fr(Stringprep_profile)26 b Fx(instructions)k(to)i(p)s(erform.)41 b(Y)-8 b(our)31 b(appli-)390 1513 y(cation)41 b(can)g(de\014ne)e(new)g (pro\014les,)k(p)s(ossibly)c(re-using)g(the)i(generic)g(stringprep)e (tables)h(that)390 1623 y(alw)m(a)m(ys)32 b(will)f(b)s(e)e(part)i(of)f (the)h(library)-8 b(,)30 b(or)h(use)f(one)g(of)h(the)g(curren)m(tly)f (supp)s(orted)e(pro\014les.)390 1762 y Fl(Return)21 b(v)-5 b(alue:)36 b Fx(Returns)20 b Fr(STRINGPREP_OK)e Fx(i\013)j(successful,) i(or)e(an)f Fr(Stringprep_rc)e Fx(error)i(co)s(de.)150 1966 y Fq(stringprep)p 710 1966 37 5 v 55 w(4zi)3350 2168 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(stringprep_4zi)d Fo(\()p Fn(uin)m(t32)p 1427 2168 28 4 v 41 w(t)31 b(*)g Fm(ucs4)12 b Fn(,)31 b(size)p 2027 2168 V 41 w(t)g Fm(maxucs4len)12 b Fn(,)565 2277 y(Stringprep)p 992 2277 V 39 w(pro\014le)p 1279 2277 V 40 w(\015ags)30 b Fm(flags)12 b Fn(,)32 b(const)f (Stringprep)p 2514 2277 V 38 w(pro\014le)f(*)h Fm(profile)12 b Fo(\))390 2387 y Fn(ucs4)7 b Fx(:)41 b(input/output)30 b(arra)m(y)h(with)f(zero)h(terminated)g(string)f(to)h(prepare.)390 2526 y Fn(maxucs4len)p Fx(:)41 b(maxim)m(um)30 b(length)h(of)g (input/output)e(arra)m(y)-8 b(.)390 2665 y Fn(\015ags)t Fx(:)41 b(a)30 b Fr(Stringprep_profile_flags)24 b Fx(v)-5 b(alue,)31 b(or)g(0.)390 2805 y Fn(pro\014le)5 b Fx(:)40 b(p)s(oin)m(ter)31 b(to)g Fr(Stringprep_profile)25 b Fx(to)31 b(use.)390 2944 y(Prepare)i(the)g(input)f(zero)i(terminated)g (UCS-4)f(string)g(according)h(to)g(the)f(stringprep)f(pro\014le,)390 3053 y(and)e(write)g(bac)m(k)h(the)g(result)f(to)h(the)g(input)e (string.)390 3193 y(Since)e(the)h(stringprep)f(op)s(eration)h(can)f (expand)g(the)h(string,)g Fr(maxucs4len)d Fx(indicate)j(ho)m(w)g(large) 390 3302 y(the)35 b(bu\013er)e(holding)i(the)g(string)f(is.)53 b(This)34 b(function)g(will)h(not)g(read)g(or)f(write)h(to)g(co)s(de)g (p)s(oin)m(ts)390 3412 y(outside)c(that)g(size.)390 3551 y(The)f Fr(flags)f Fx(are)i(one)f(of)h Fr(Stringprep_profile_flag)o(s) 25 b Fx(v)-5 b(alues,)30 b(or)h(0.)390 3690 y(The)f Fr(profile)f Fx(con)m(tain)k(the)e Fr(Stringprep_profile)26 b Fx(instructions)k(to)i (p)s(erform.)41 b(Y)-8 b(our)31 b(appli-)390 3800 y(cation)41 b(can)g(de\014ne)e(new)g(pro\014les,)k(p)s(ossibly)c(re-using)g(the)i (generic)g(stringprep)e(tables)h(that)390 3910 y(alw)m(a)m(ys)32 b(will)f(b)s(e)e(part)i(of)f(the)h(library)-8 b(,)30 b(or)h(use)f(one)g(of)h(the)g(curren)m(tly)f(supp)s(orted)e (pro\014les.)390 4049 y Fl(Return)21 b(v)-5 b(alue:)36 b Fx(Returns)20 b Fr(STRINGPREP_OK)e Fx(i\013)j(successful,)i(or)e(an)f Fr(Stringprep_rc)e Fx(error)i(co)s(de.)150 4253 y Fq(stringprep)3350 4454 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(stringprep)c Fo(\()p Fn(c)m(har)31 b(*)g Fm(in)12 b Fn(,)30 b(size)p 1557 4454 V 41 w(t)h Fm(maxlen)12 b Fn(,)32 b(Stringprep)p 2466 4454 V 38 w(pro\014le)p 2752 4454 V 40 w(\015ags)565 4564 y Fm(flags)12 b Fn(,)32 b(const)f(Stringprep)p 1559 4564 V 38 w(pro\014le)f(*)h Fm(profile)12 b Fo(\))390 4673 y Fn(in)p Fx(:)40 b(input/ouput)30 b(arra)m(y)g(with)h(string)f (to)h(prepare.)390 4813 y Fn(maxlen)p Fx(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e(arra)m(y)-8 b(.)390 4952 y Fn(\015ags)t Fx(:)41 b(a)30 b Fr(Stringprep_profile_flags)24 b Fx(v)-5 b(alue,)31 b(or)g(0.)390 5091 y Fn(pro\014le)5 b Fx(:)40 b(p)s(oin)m(ter)31 b(to)g Fr(Stringprep_profile)25 b Fx(to)31 b(use.)390 5230 y(Prepare)h(the)h(input)e(zero)i(terminated) g(UTF-8)g(string)f(according)h(to)g(the)g(stringprep)e(pro\014le,)390 5340 y(and)f(write)g(bac)m(k)h(the)g(result)f(to)h(the)g(input)e (string.)p eop end %%Page: 19 24 TeXDict begin 19 23 bop 150 -116 a Fx(Chapter)30 b(4:)41 b(Stringprep)29 b(F)-8 b(unctions)2209 b(19)390 299 y(Note)34 b(that)f(y)m(ou)g(m)m(ust)g(con)m(v)m(ert)h(strings)e(en)m(tered)h(in)g (the)f(systems)h(lo)s(cale)h(in)m(to)g(UTF-8)f(b)s(efore)390 408 y(using)d(this)g(function,)g(see)h Fr(stringprep_locale_to_utf8\()o (\))p Fx(.)390 541 y(Since)g(the)f(stringprep)g(op)s(eration)h(can)g (expand)f(the)h(string,)g Fr(maxlen)e Fx(indicate)i(ho)m(w)g(large)h (the)390 651 y(bu\013er)27 b(holding)g(the)h(string)g(is.)40 b(This)27 b(function)g(will)h(not)g(read)f(or)h(write)g(to)h(c)m (haracters)g(outside)390 760 y(that)i(size.)390 893 y(The)f Fr(flags)f Fx(are)i(one)f(of)h Fr(Stringprep_profile_flag)o(s)25 b Fx(v)-5 b(alues,)30 b(or)h(0.)390 1026 y(The)f Fr(profile)f Fx(con)m(tain)k(the)e Fr(Stringprep_profile)26 b Fx(instructions)k(to)i (p)s(erform.)41 b(Y)-8 b(our)31 b(appli-)390 1135 y(cation)41 b(can)g(de\014ne)e(new)g(pro\014les,)k(p)s(ossibly)c(re-using)g(the)i (generic)g(stringprep)e(tables)h(that)390 1245 y(alw)m(a)m(ys)32 b(will)f(b)s(e)e(part)i(of)f(the)h(library)-8 b(,)30 b(or)h(use)f(one)g(of)h(the)g(curren)m(tly)f(supp)s(orted)e (pro\014les.)390 1377 y Fl(Return)i(v)-5 b(alue:)41 b Fx(Returns)30 b Fr(STRINGPREP_OK)c Fx(i\013)31 b(successful,)f(or)h(an) f(error)g(co)s(de.)150 1573 y Fq(stringprep)p 710 1573 37 5 v 55 w(pro\014le)3350 1766 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(stringprep_profile)e Fo(\()p Fn(const)31 b(c)m(har)g(*)g Fm(in)12 b Fn(,)31 b(c)m(har)f(**)i Fm(out)12 b Fn(,)31 b(const)f(c)m(har)h(*)565 1876 y Fm(profile)12 b Fn(,)32 b(Stringprep)p 1425 1876 28 4 v 39 w(pro\014le)p 1712 1876 V 40 w(\015ags)e Fm(flags)12 b Fo(\))390 1985 y Fn(in)p Fx(:)40 b(input)30 b(arra)m(y)h(with)f(UTF-8)h(string)f(to)h (prepare.)390 2118 y Fn(out)r Fx(:)41 b(output)30 b(v)-5 b(ariable)31 b(with)f(p)s(oin)m(ter)h(to)g(newly)f(allo)s(cate)j (string.)390 2250 y Fn(pro\014le)5 b Fx(:)40 b(name)31 b(of)f(stringprep)g(pro\014le)g(to)h(use.)390 2383 y Fn(\015ags)t Fx(:)41 b(a)30 b Fr(Stringprep_profile_flags)24 b Fx(v)-5 b(alue,)31 b(or)g(0.)390 2516 y(Prepare)h(the)h(input)e(zero) i(terminated)g(UTF-8)g(string)f(according)h(to)g(the)g(stringprep)e (pro\014le,)390 2625 y(and)f(return)f(the)i(result)f(in)g(a)h(newly)f (allo)s(cated)i(v)-5 b(ariable.)390 2758 y(Note)34 b(that)f(y)m(ou)g(m) m(ust)g(con)m(v)m(ert)h(strings)e(en)m(tered)h(in)g(the)f(systems)h(lo) s(cale)h(in)m(to)g(UTF-8)f(b)s(efore)390 2868 y(using)d(this)g (function,)g(see)h Fr(stringprep_locale_to_utf8\()o(\))p Fx(.)390 3000 y(The)f(output)g Fr(out)f Fx(v)-5 b(ariable)31 b(m)m(ust)g(b)s(e)e(deallo)s(cated)k(b)m(y)d(the)h(caller.)390 3133 y(The)f Fr(flags)f Fx(are)i(one)f(of)h Fr(Stringprep_profile_flag) o(s)25 b Fx(v)-5 b(alues,)30 b(or)h(0.)390 3266 y(The)k Fr(profile)f Fx(sp)s(eci\014es)i(the)g(name)g(of)g(the)g(stringprep)f (pro\014le)g(to)i(use.)57 b(It)36 b(m)m(ust)f(b)s(e)h(one)g(of)390 3375 y(the)31 b(in)m(ternally)g(supp)s(orted)d(stringprep)i (pro\014les.)390 3508 y Fl(Return)g(v)-5 b(alue:)41 b Fx(Returns)30 b Fr(STRINGPREP_OK)c Fx(i\013)31 b(successful,)f(or)h(an) f(error)g(co)s(de.)150 3737 y Fw(4.5)68 b(Error)45 b(Handling)150 3959 y Fq(stringprep)p 710 3959 37 5 v 55 w(strerror)3350 4152 y Fx([F)-8 b(unction])-3599 b Fp(const)54 b(char)f(*)g (stringprep_strerror)e Fo(\()p Fn(Stringprep)p 2331 4152 28 4 v 39 w(rc)31 b Fm(rc)12 b Fo(\))390 4261 y Fn(rc)6 b Fx(:)40 b(a)31 b Fr(Stringprep_rc)c Fx(return)i(co)s(de.)390 4394 y(Con)m(v)m(ert)35 b(a)f(return)e(co)s(de)i(in)m(teger)i(to)e(a)g (text)h(string.)51 b(This)33 b(string)h(can)g(b)s(e)f(used)g(to)h (output)g(a)390 4504 y(diagnostic)e(message)f(to)g(the)g(user.)390 4636 y Fl(STRINGPREP)p 1010 4636 28 5 v 40 w(OK:)23 b Fx(Successful)f(op)s(eration.)39 b(This)22 b(v)-5 b(alue)23 b(is)f(guaran)m(teed)i(to)f(alw)m(a)m(ys)h(b)s(e)e(zero,)390 4746 y(the)h(remaining)f(ones)h(are)g(only)g(guaran)m(teed)g(to)g(hold) g(non-zero)g(v)-5 b(alues,)24 b(for)f(logical)i(comparison)390 4856 y(purp)s(oses.)390 4988 y Fl(STRINGPREP)p 1010 4988 V 40 w(CONT)-8 b(AINS)p 1537 4988 V 41 w(UNASSIGNED:)61 b Fx(String)g(con)m(tain)j(unassigned)d(Unico)s(de)390 5098 y(co)s(de)31 b(p)s(oin)m(ts,)f(whic)m(h)g(is)h(forbidden)d(b)m(y)j (the)f(pro\014le.)390 5230 y Fl(STRINGPREP)p 1010 5230 V 40 w(CONT)-8 b(AINS)p 1537 5230 V 41 w(PR)m(OHIBITED:)38 b Fx(String)g(con)m(tain)i(co)s(de)e(p)s(oin)m(ts)h(prohibited)390 5340 y(b)m(y)30 b(the)h(pro\014le.)p eop end %%Page: 20 25 TeXDict begin 20 24 bop 150 -116 a Fx(Chapter)30 b(4:)41 b(Stringprep)29 b(F)-8 b(unctions)2209 b(20)390 299 y Fl(STRINGPREP)p 1010 299 28 5 v 40 w(BIDI)p 1257 299 V 40 w(BOTH)p 1564 299 V 40 w(L)p 1659 299 V 40 w(AND)p 1909 299 V 39 w(RAL:)23 b Fx(String)g(con)m(tain)i(co)s(de)e(p)s(oin)m (ts)h(with)f(con\015ict-)390 408 y(ing)31 b(bidirection)f(category)-8 b(.)390 559 y Fl(STRINGPREP)p 1010 559 V 40 w(BIDI)p 1257 559 V 40 w(LEADTRAIL)p 1843 559 V 38 w(NOT)p 2083 559 V 41 w(RAL:)44 b Fx(Leading)h(and)f(trailing)i(c)m(haracter)g(in) 390 669 y(string)30 b(not)h(of)f(prop)s(er)f(bidirectional)j(category) -8 b(.)390 820 y Fl(STRINGPREP)p 1010 820 V 40 w(BIDI)p 1257 820 V 40 w(CONT)g(AINS)p 1784 820 V 40 w(PR)m(OHIBITED:)32 b Fx(Con)m(tains)g(prohibited)f(co)s(de)h(p)s(oin)m(ts)390 929 y(detected)g(b)m(y)e(bidirectional)h(co)s(de.)390 1080 y Fl(STRINGPREP)p 1010 1080 V 40 w(TOO)p 1249 1080 V 41 w(SMALL)p 1606 1080 V 39 w(BUFFER:)37 b Fx(Bu\013er)h(handed)e(to) j(function)e(w)m(as)i(to)s(o)f(small.)390 1190 y(This)30 b(usually)g(indicate)h(a)g(problem)f(in)g(the)g(calling)i(application.) 390 1340 y Fl(STRINGPREP)p 1010 1340 V 40 w(PR)m(OFILE)p 1454 1340 V 41 w(ERR)m(OR:)41 b Fx(The)g(stringprep)g(pro\014le)f(w)m (as)i(inconsisten)m(t.)75 b(This)390 1450 y(usually)30 b(indicate)i(an)e(in)m(ternal)h(error)f(in)g(the)h(library)-8 b(.)390 1601 y Fl(STRINGPREP)p 1010 1601 V 40 w(FLA)m(G)p 1299 1601 V 41 w(ERR)m(OR:)31 b Fx(The)g(supplied)f(\015ag)h (con\015icted)h(with)e(pro\014le.)43 b(This)30 b(usu-)390 1710 y(ally)h(indicate)h(a)e(problem)g(in)g(the)h(calling)h (application.)390 1861 y Fl(STRINGPREP)p 1010 1861 V 40 w(UNKNO)m(WN)p 1563 1861 V 42 w(PR)m(OFILE:)j Fx(The)f(supplied)g (pro\014le)g(name)h(w)m(as)g(not)g(kno)m(wn)390 1971 y(to)c(the)g(library)-8 b(.)390 2122 y Fl(STRINGPREP)p 1010 2122 V 40 w(NFK)m(C)p 1312 2122 V 41 w(F)e(AILED:)30 b Fx(The)g(Unico)s(de)h(NFK)m(C)g(op)s(eration)g(failed.)43 b(This)30 b(usually)390 2231 y(indicate)h(an)g(in)m(ternal)g(error)f (in)g(the)g(library)-8 b(.)390 2382 y Fl(STRINGPREP)p 1010 2382 V 40 w(MALLOC)p 1449 2382 V 39 w(ERR)m(OR:)31 b Fx(The)e Fr(malloc\(\))f Fx(w)m(as)i(out)g(of)g(memory)-8 b(.)41 b(This)29 b(is)h(usu-)390 2492 y(ally)h(a)g(fatal)h(error.)390 2642 y Fl(Return)d(v)-5 b(alue:)40 b Fx(Returns)29 b(a)g(p)s(oin)m(ter) h(to)g(a)f(statically)j(allo)s(cated)f(string)f(con)m(taining)h(a)e (descrip-)390 2752 y(tion)i(of)f(the)h(error)f(with)g(the)h(return)e (co)s(de)h Fr(rc)p Fx(.)150 3009 y Fw(4.6)68 b(Stringprep)45 b(Pro\014le)g(Macros)3350 3234 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(stringprep_nameprep_n)q(o_un)q(ass)q(ign)q(ed)f Fo(\()p Fn(c)m(har)31 b(*)g Fm(in)12 b Fn(,)30 b(in)m(t)h Fm(maxlen)12 b Fo(\))390 3344 y Fn(in)p Fx(:)40 b(input/ouput)30 b(arra)m(y)g(with)h(string)f(to)h(prepare.)390 3495 y Fn(maxlen)p Fx(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e (arra)m(y)-8 b(.)390 3645 y(Prepare)31 b(the)g(input)f(UTF-8)i(string)f (according)h(to)g(the)f(nameprep)f(pro\014le.)43 b(The)30 b(Allo)m(wUnas-)390 3755 y(signed)j(\015ag)g(is)g(false,)h(use)f Fr(stringprep_nameprep)28 b Fx(for)k(true)h(Allo)m(wUnassigned.)50 b(Returns)32 b(0)390 3865 y(i\013)f(successful,)f(or)g(an)h(error)f(co) s(de.)3350 4082 y([F)-8 b(unction])-3599 b Fp(int)53 b(stringprep_iscsi)e Fo(\()p Fn(c)m(har)31 b(*)f Fm(in)12 b Fn(,)31 b(in)m(t)g Fm(maxlen)12 b Fo(\))390 4191 y Fn(in)p Fx(:)40 b(input/ouput)30 b(arra)m(y)g(with)h(string)f(to)h (prepare.)390 4342 y Fn(maxlen)p Fx(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e(arra)m(y)-8 b(.)390 4493 y(Prepare)32 b(the)g(input)e(UTF-8)j(string)f(according)h(to)f(the)g (draft)f(iSCSI)g(stringprep)g(pro\014le.)44 b(Re-)390 4602 y(turns)29 b(0)i(i\013)f(successful,)h(or)f(an)g(error)g(co)s(de.) 3350 4819 y([F)-8 b(unction])-3599 b Fp(int)53 b(stringprep_plain)e Fo(\()p Fn(c)m(har)31 b(*)f Fm(in)12 b Fn(,)31 b(in)m(t)g Fm(maxlen)12 b Fo(\))390 4929 y Fn(in)p Fx(:)40 b(input/ouput)30 b(arra)m(y)g(with)h(string)f(to)h(prepare.)390 5080 y Fn(maxlen)p Fx(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e (arra)m(y)-8 b(.)390 5230 y(Prepare)29 b(the)g(input)f(UTF-8)i(string)f (according)h(to)g(the)f(draft)g(SASL)f(ANONYMOUS)h(pro\014le.)390 5340 y(Returns)g(0)i(i\013)g(successful,)f(or)h(an)f(error)g(co)s(de.)p eop end %%Page: 21 26 TeXDict begin 21 25 bop 150 -116 a Fx(Chapter)30 b(4:)41 b(Stringprep)29 b(F)-8 b(unctions)2209 b(21)3350 299 y([F)-8 b(unction])-3599 b Fp(int)53 b(stringprep_xmpp_nodep)q(rep)f Fo(\()p Fn(c)m(har)31 b(*)g Fm(in)12 b Fn(,)31 b(in)m(t)f Fm(maxlen)12 b Fo(\))390 408 y Fn(in)p Fx(:)40 b(input/ouput)30 b(arra)m(y)g(with)h(string)f(to)h(prepare.)390 543 y Fn(maxlen)p Fx(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e (arra)m(y)-8 b(.)390 677 y(Prepare)29 b(the)g(input)f(UTF-8)h(string)g (according)h(to)f(the)g(draft)g(XMPP)g(no)s(de)f(iden)m(ti\014er)h (pro\014le.)390 787 y(Returns)g(0)i(i\013)g(successful,)f(or)h(an)f (error)g(co)s(de.)3350 971 y([F)-8 b(unction])-3599 b Fp(int)53 b(stringprep_xmpp_resou)q(rcep)q(rep)f Fo(\()p Fn(c)m(har)31 b(*)g Fm(in)12 b Fn(,)31 b(in)m(t)g Fm(maxlen)12 b Fo(\))390 1081 y Fn(in)p Fx(:)40 b(input/ouput)30 b(arra)m(y)g(with)h (string)f(to)h(prepare.)390 1215 y Fn(maxlen)p Fx(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e(arra)m(y)-8 b(.)390 1350 y(Prepare)44 b(the)g(input)f(UTF-8)i(string)f(according)h (to)g(the)f(draft)f(XMPP)i(resource)f(iden)m(ti\014er)390 1460 y(pro\014le.)c(Returns)30 b(0)h(i\013)f(successful,)h(or)f(an)g (error)g(co)s(de.)p eop end %%Page: 22 27 TeXDict begin 22 26 bop 150 -116 a Fx(Chapter)30 b(5:)41 b(Pun)m(yco)s(de)30 b(F)-8 b(unctions)2241 b(22)150 299 y Fu(5)80 b(Pun)l(yco)t(de)53 b(F)-13 b(unctions)150 531 y Fx(Pun)m(yco)s(de)31 b(is)h(a)g(simple)g(and)f(e\016cien)m(t)j (transfer)d(enco)s(ding)h(syn)m(tax)g(designed)g(for)g(use)f(with)h(In) m(terna-)150 641 y(tionalized)d(Domain)f(Names)g(in)f(Applications.)41 b(It)27 b(uniquely)g(and)g(rev)m(ersibly)g(transforms)g(a)h(Unico)s(de) 150 750 y(string)33 b(in)m(to)h(an)e(ASCI)s(I)g(string.)48 b(ASCI)s(I)31 b(c)m(haracters)j(in)f(the)g(Unico)s(de)g(string)g(are)g (represen)m(ted)g(liter-)150 860 y(ally)-8 b(,)27 b(and)c(non-ASCI)s(I) f(c)m(haracters)j(are)g(represen)m(ted)e(b)m(y)h(ASCI)s(I)f(c)m (haracters)i(that)f(are)h(allo)m(w)m(ed)g(in)f(host)150 970 y(name)33 b(lab)s(els)g(\(letters,)i(digits,)g(and)d(h)m(yphens\).) 47 b(A)33 b(general)h(algorithm)g(called)g(Bo)s(otstring)g(allo)m(ws)h (a)150 1079 y(string)i(of)h(basic)f(co)s(de)h(p)s(oin)m(ts)f(to)h (uniquely)e(represen)m(t)i(an)m(y)f(string)g(of)h(co)s(de)f(p)s(oin)m (ts)g(dra)m(wn)g(from)g(a)150 1189 y(larger)i(set.)65 b(Pun)m(yco)s(de)38 b(is)g(an)g(instance)h(of)f(Bo)s(otstring)i(that)e (uses)g(particular)h(parameter)f(v)-5 b(alues,)150 1298 y(appropriate)30 b(for)h(IDNA.)150 1530 y Fw(5.1)68 b(Header)46 b(\014le)f Fj(punycode.h)150 1690 y Fx(T)-8 b(o)36 b(use)g(the)g (functions)g(explained)g(in)g(this)g(c)m(hapter,)i(y)m(ou)f(need)e(to)i (include)f(the)g(\014le)g(`)p Fr(punycode.h)p Fx(')150 1799 y(using:)390 1933 y Fr(#include)46 b()150 2165 y Fw(5.2)68 b(Unico)t(de)45 b(Co)t(de)g(P)l(oin)l(t)h(Data)g(T)l (yp)t(e)150 2325 y Fx(The)28 b(pun)m(yco)s(de)g(function)h(uses)f(a)h (sp)s(ecial)g(t)m(yp)s(e)g(to)h(denote)f(Unico)s(de)g(co)s(de)g(p)s (oin)m(ts.)40 b(It)29 b(is)g(guaran)m(teed)150 2434 y(to)i(alw)m(a)m (ys)h(b)s(e)e(a)h(32)g(bit)f(unsigned)f(in)m(teger.)2511 2617 y([Pun)m(yco)s(de)i(Unico)s(de)f(co)s(de)h(p)s(oin)m(t])-3600 b Fp(uint32_t)55 b(punycode_uint)390 2727 y Fx(A)30 b(unsigned)g(in)m (teger)i(that)f(hold)f(Unico)s(de)g(co)s(de)h(p)s(oin)m(ts.)150 2959 y Fw(5.3)68 b(Core)46 b(F)-11 b(unctions)150 3118 y Fx(Note)45 b(that)g(the)f(curren)m(t)f(implemen)m(tation)j(will)e (fail)g(if)g(the)g Fr(input_length)d Fx(exceed)j(4294967295)150 3228 y(\(the)37 b(size)g(of)f Fr(punycode_uint)p Fx(\).)55 b(This)35 b(restriction)j(ma)m(y)e(b)s(e)g(remo)m(v)m(ed)h(in)f(the)g (future.)58 b(Mean)m(while)150 3337 y(applications)39 b(are)f(encouraged)g(to)h(not)f(dep)s(end)e(on)h(this)h(problem,)h(and) e(use)g Fr(sizeof)f Fx(to)j(initialize)150 3447 y Fr(input_length)27 b Fx(and)j Fr(output_length)p Fx(.)275 3581 y(The)f(functions)h(pro)m (vided)g(are)h(the)g(follo)m(wing)g(t)m(w)m(o)h(en)m(try)f(p)s(oin)m (ts:)150 3780 y Fq(pun)m(yco)s(de)p 668 3780 37 5 v 54 w(enco)s(de)3350 3976 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(punycode_encode)d Fo(\()p Fn(size)p 1371 3976 28 4 v 41 w(t)31 b Fm(input_length)12 b Fn(,)34 b(const)d(pun)m(yco)s(de)p 2788 3976 V 39 w(uin)m(t)f Fi([])565 4085 y Fm(input)12 b Fn(,)32 b(const)f(unsigned)e(c)m(har)i Fi([])f Fm(case_flags)12 b Fn(,)33 b(size)p 2534 4085 V 41 w(t)d(*)h Fm(output_length)12 b Fn(,)34 b(c)m(har)d Fi([])565 4195 y Fm(output)12 b Fo(\))390 4305 y Fn(input)p 609 4305 V 39 w(length)p Fx(:)40 b(The)28 b(n)m(um)m(b)s(er)g(of)g(co)s(de)h(p)s(oin)m(ts)g(in)f (the)h Fr(input)e Fx(arra)m(y)i(and)f(the)h(n)m(um)m(b)s(er)e(of)i (\015ags)390 4414 y(in)h(the)h Fr(case_flags)c Fx(arra)m(y)-8 b(.)390 4548 y Fn(input)r Fx(:)66 b(An)43 b(arra)m(y)h(of)f(co)s(de)h (p)s(oin)m(ts.)80 b(They)43 b(are)h(presumed)e(to)i(b)s(e)f(Unico)s(de) g(co)s(de)h(p)s(oin)m(ts,)390 4658 y(but)29 b(that)i(is)f(not)g (strictly)h(REQUIRED.)f(The)f(arra)m(y)i(con)m(tains)g(co)s(de)f(p)s (oin)m(ts,)g(not)g(co)s(de)g(units.)390 4767 y(UTF-16)g(uses)e(co)s(de) h(units)g(D800)h(through)e(DFFF)i(to)g(refer)f(to)g(co)s(de)g(p)s(oin)m (ts)g(10000..10FFFF.)390 4877 y(The)37 b(co)s(de)h(p)s(oin)m(ts)g (D800..DFFF)k(do)37 b(not)i(o)s(ccur)e(in)h(an)m(y)g(v)-5 b(alid)38 b(Unico)s(de)g(string.)63 b(The)38 b(co)s(de)390 4987 y(p)s(oin)m(ts)26 b(that)h(can)f(o)s(ccur)g(in)g(Unico)s(de)g (strings)g(\(0..D7FF)i(and)e(E000..10FFFF\))k(are)d(also)g(called)390 5096 y(Unico)s(de)k(scalar)g(v)-5 b(alues.)390 5230 y Fn(case)p 557 5230 V 41 w(\015ags)t Fx(:)41 b(A)31 b Fr(NULL)f Fx(p)s(oin)m(ter)g(or)h(an)g(arra)m(y)g(of)g(b)s(o)s(olean)f (v)-5 b(alues)31 b(parallel)h(to)g(the)f Fr(input)e Fx(arra)m(y)-8 b(.)390 5340 y(Nonzero)31 b(\(true,)g(\015agged\))h(suggests)f(that)g (the)f(corresp)s(onding)g(Unico)s(de)g(c)m(haracter)i(b)s(e)e(forced)p eop end %%Page: 23 28 TeXDict begin 23 27 bop 150 -116 a Fx(Chapter)30 b(5:)41 b(Pun)m(yco)s(de)30 b(F)-8 b(unctions)2241 b(23)390 299 y(to)39 b(upp)s(ercase)e(after)i(b)s(eing)f(deco)s(ded)g(\(if)g(p)s (ossible\),)j(and)c(zero)i(\(false,)j(un\015agged\))c(suggests)390 408 y(that)f(it)h(b)s(e)e(forced)h(to)g(lo)m(w)m(ercase)i(\(if)e(p)s (ossible\).)60 b(ASCI)s(I)35 b(co)s(de)i(p)s(oin)m(ts)g(\(0..7F\))i (are)e(enco)s(ded)390 518 y(literally)-8 b(,)33 b(except)f(that)g(ASCI) s(I)d(letters)j(are)f(forced)g(to)g(upp)s(ercase)f(or)h(lo)m(w)m (ercase)i(according)f(to)390 628 y(the)e(corresp)s(onding)f(case)i (\015ags.)41 b(If)29 b Fr(case_flags)e Fx(is)j(a)g Fr(NULL)f Fx(p)s(oin)m(ter)h(then)f(ASCI)s(I)g(letters)i(are)390 737 y(left)g(as)g(they)f(are,)h(and)f(other)h(co)s(de)f(p)s(oin)m(ts)g (are)h(treated)h(as)e(un\015agged.)390 864 y Fn(output)p 664 864 28 4 v 40 w(length)p Fx(:)40 b(The)28 b(caller)i(passes)f(in)f (the)h(maxim)m(um)g(n)m(um)m(b)s(er)f(of)g(ASCI)s(I)g(co)s(de)h(p)s (oin)m(ts)f(that)390 973 y(it)k(can)g(receiv)m(e.)45 b(On)31 b(successful)g(return)f(it)i(will)g(con)m(tain)g(the)g(n)m(um)m (b)s(er)e(of)i(ASCI)s(I)d(co)s(de)j(p)s(oin)m(ts)390 1083 y(actually)g(output.)390 1209 y Fn(output)r Fx(:)49 b(An)34 b(arra)m(y)h(of)f(ASCI)s(I)f(co)s(de)i(p)s(oin)m(ts.)53 b(It)35 b(is)f(*not*)i(n)m(ull-terminated;)i(it)d(will)g(con)m(tain)390 1319 y(zeros)29 b(if)f(and)g(only)g(if)g(the)g Fr(input)f Fx(con)m(tains)i(zeros.)41 b(\(Of)28 b(course)g(the)h(caller)g(can)g (lea)m(v)m(e)h(ro)s(om)e(for)390 1428 y(a)j(terminator)g(and)f(add)f (one)i(if)f(needed.\))390 1554 y(Con)m(v)m(erts)k(a)g(sequence)f(of)h (co)s(de)f(p)s(oin)m(ts)g(\(presumed)f(to)i(b)s(e)f(Unico)s(de)g(co)s (de)h(p)s(oin)m(ts\))f(to)h(Pun)m(y-)390 1664 y(co)s(de.)390 1790 y Fl(Return)g(v)-5 b(alue:)49 b Fx(The)33 b(return)g(v)-5 b(alue)35 b(can)g(b)s(e)e(an)m(y)i(of)f(the)h Fr(Punycode_status)30 b Fx(v)-5 b(alues)34 b(de\014ned)390 1900 y(ab)s(o)m(v)m(e)41 b(except)g Fr(PUNYCODE_BAD_INPUT)p Fx(.)65 b(If)39 b(not)h Fr(PUNYCODE_SUCCESS)p Fx(,)e(then)i Fr(output_size)390 2010 y Fx(and)30 b Fr(output)e Fx(migh)m(t)k(con)m(tain)f(garbage.)150 2192 y Fq(pun)m(yco)s(de)p 668 2192 37 5 v 54 w(deco)s(de)3350 2373 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(punycode_decode)d Fo(\()p Fn(size)p 1371 2373 28 4 v 41 w(t)31 b Fm(input_length)12 b Fn(,)34 b(const)d(c)m(har)g Fi([])f Fm(input)12 b Fn(,)565 2482 y(size)p 712 2482 V 41 w(t)31 b(*)f Fm(output_length)12 b Fn(,)34 b(pun)m(yco)s(de)p 2018 2482 V 40 w(uin)m(t)c Fi([])g Fm(output)12 b Fn(,)32 b(unsigned)d(c)m(har)i Fi([])565 2592 y Fm(case_flags)12 b Fo(\))390 2702 y Fn(input)p 609 2702 V 39 w(length)p Fx(:)41 b(The)30 b(n)m(um)m(b)s(er)f(of)i(ASCI)s(I)e(co)s(de)h(p)s(oin)m(ts)g(in)g(the)h Fr(input)e Fx(arra)m(y)-8 b(.)390 2828 y Fn(input)r Fx(:)40 b(An)30 b(arra)m(y)h(of)f(ASCI)s(I)f(co)s(de)i(p)s(oin)m(ts)f (\(0..7F\).)390 2954 y Fn(output)p 664 2954 V 40 w(length)p Fx(:)42 b(The)30 b(caller)i(passes)f(in)g(the)g(maxim)m(um)f(n)m(um)m (b)s(er)g(of)h(co)s(de)g(p)s(oin)m(ts)g(that)g(it)h(can)390 3064 y(receiv)m(e)41 b(in)m(to)e(the)g Fr(output)e Fx(arra)m(y)i (\(whic)m(h)g(is)g(also)g(the)g(maxim)m(um)g(n)m(um)m(b)s(er)e(of)i (\015ags)g(that)g(it)390 3173 y(can)h(receiv)m(e)i(in)m(to)f(the)f Fr(case_flags)d Fx(arra)m(y)-8 b(,)43 b(if)d Fr(case_flags)d Fx(is)j(not)g(a)g Fr(NULL)f Fx(p)s(oin)m(ter\).)70 b(On)390 3283 y(successful)39 b(return)e(it)j(will)f(con)m(tain)h(the)f(n)m(um)m (b)s(er)f(of)h(co)s(de)g(p)s(oin)m(ts)g(actually)h(output)f(\(whic)m(h) 390 3392 y(is)c(also)h(the)f(n)m(um)m(b)s(er)e(of)i(\015ags)g(actually) i(output,)e(if)g(case)p 2423 3392 V 41 w(\015ags)g(is)g(not)g(a)g(n)m (ull)g(p)s(oin)m(ter\).)54 b(The)390 3502 y(deco)s(der)31 b(will)h(nev)m(er)f(need)g(to)h(output)f(more)h(co)s(de)f(p)s(oin)m(ts) g(than)g(the)h(n)m(um)m(b)s(er)e(of)h(ASCI)s(I)f(co)s(de)390 3612 y(p)s(oin)m(ts)g(in)g(the)g(input,)g(b)s(ecause)g(of)g(the)h(w)m (a)m(y)g(the)f(enco)s(ding)g(is)g(de\014ned.)40 b(The)30 b(n)m(um)m(b)s(er)e(of)j(co)s(de)390 3721 y(p)s(oin)m(ts)d(output)g (cannot)g(exceed)h(the)g(maxim)m(um)e(p)s(ossible)h(v)-5 b(alue)29 b(of)f(a)g(pun)m(yco)s(de)p 3246 3721 V 39 w(uin)m(t,)h(ev)m(en)g(if)390 3831 y(the)i(supplied)e Fr(output_length)d Fx(is)31 b(greater)g(than)g(that.)390 3957 y Fn(output)r Fx(:)40 b(An)28 b(arra)m(y)h(of)g(co)s(de)g(p)s(oin) m(ts)g(lik)m(e)h(the)f(input)f(argumen)m(t)h(of)g Fr (punycode_encode\(\))24 b Fx(\(see)390 4067 y(ab)s(o)m(v)m(e\).)390 4193 y Fn(case)p 557 4193 V 41 w(\015ags)t Fx(:)49 b(A)35 b Fr(NULL)e Fx(p)s(oin)m(ter)h(\(if)h(the)g(\015ags)f(are)h(not)g (needed)f(b)m(y)g(the)h(caller\))h(or)e(an)h(arra)m(y)g(of)390 4303 y(b)s(o)s(olean)26 b(v)-5 b(alues)25 b(parallel)i(to)g(the)e Fr(output)f Fx(arra)m(y)-8 b(.)40 b(Nonzero)27 b(\(true,)g(\015agged\)) f(suggests)h(that)f(the)390 4412 y(corresp)s(onding)37 b(Unico)s(de)h(c)m(haracter)h(b)s(e)e(forced)h(to)g(upp)s(ercase)f(b)m (y)h(the)g(caller)h(\(if)f(p)s(ossible\),)390 4522 y(and)26 b(zero)h(\(false,)h(un\015agged\))e(suggests)h(that)g(it)f(b)s(e)g (forced)g(to)h(lo)m(w)m(ercase)i(\(if)d(p)s(ossible\).)39 b(ASCI)s(I)390 4631 y(co)s(de)33 b(p)s(oin)m(ts)f(\(0..7F\))j(are)e (output)g(already)g(in)f(the)h(prop)s(er)e(case,)k(but)d(their)h (\015ags)f(will)h(b)s(e)f(set)390 4741 y(appropriately)f(so)f(that)h (applying)f(the)h(\015ags)g(w)m(ould)f(b)s(e)f(harmless.)390 4867 y(Con)m(v)m(erts)47 b(Pun)m(yco)s(de)g(to)g(a)h(sequence)f(of)g (co)s(de)g(p)s(oin)m(ts)f(\(presumed)g(to)i(b)s(e)e(Unico)s(de)h(co)s (de)390 4977 y(p)s(oin)m(ts\).)390 5103 y Fl(Return)34 b(v)-5 b(alue:)49 b Fx(The)33 b(return)g(v)-5 b(alue)35 b(can)g(b)s(e)e(an)m(y)i(of)f(the)h Fr(Punycode_status)30 b Fx(v)-5 b(alues)34 b(de\014ned)390 5213 y(ab)s(o)m(v)m(e.)74 b(If)41 b(not)h Fr(PUNYCODE_SUCCESS)p Fx(,)d(then)i Fr(output_length)p Fx(,)g Fr(output)p Fx(,)h(and)f Fr(case_flags)390 5322 y Fx(migh)m(t)31 b(con)m(tain)h(garbage.)p eop end %%Page: 24 29 TeXDict begin 24 28 bop 150 -116 a Fx(Chapter)30 b(5:)41 b(Pun)m(yco)s(de)30 b(F)-8 b(unctions)2241 b(24)150 299 y Fw(5.4)68 b(Error)45 b(Handling)150 523 y Fq(pun)m(yco)s(de)p 668 523 37 5 v 54 w(strerror)3350 720 y Fx([F)-8 b(unction])-3599 b Fp(const)54 b(char)f(*)g(punycode_strerror)e Fo(\()p Fn(Pun)m(yco)s(de)p 2194 720 28 4 v 40 w(status)30 b Fm(rc)12 b Fo(\))390 829 y Fn(rc)6 b Fx(:)40 b(an)30 b Fr(Punycode_status)d Fx(return)i(co)s(de.)390 964 y(Con)m(v)m(ert)35 b(a)f(return)e(co)s(de)i(in)m(teger)i(to)e(a)g(text)h(string.)51 b(This)33 b(string)h(can)g(b)s(e)f(used)g(to)h(output)g(a)390 1073 y(diagnostic)e(message)f(to)g(the)g(user.)390 1208 y Fl(PUNYCODE)p 932 1208 28 5 v 39 w(SUCCESS:)k Fx(Successful)j(op)s (eration.)63 b(This)37 b(v)-5 b(alue)38 b(is)g(guaran)m(teed)h(to)f (alw)m(a)m(ys)390 1318 y(b)s(e)33 b(zero,)j(the)e(remaining)g(ones)g (are)g(only)g(guaran)m(teed)h(to)g(hold)e(non-zero)i(v)-5 b(alues,)35 b(for)e(logical)390 1427 y(comparison)e(purp)s(oses.)390 1562 y Fl(PUNYCODE)p 932 1562 V 39 w(BAD)p 1175 1562 V 39 w(INPUT:)g Fx(Input)e(is)i(in)m(v)-5 b(alid.)390 1696 y Fl(PUNYCODE)p 932 1696 V 39 w(BIG)p 1143 1696 V 40 w(OUTPUT:)31 b Fx(Output)f(w)m(ould)g(exceed)h(the)g(space)g(pro)m (vided.)390 1831 y Fl(PUNYCODE)p 932 1831 V 39 w(O)m(VERFLO)m(W:)g Fx(Input)e(needs)h(wider)g(in)m(tegers)h(to)g(pro)s(cess.)390 1965 y Fl(Return)e(v)-5 b(alue:)40 b Fx(Returns)29 b(a)g(p)s(oin)m(ter) h(to)g(a)f(statically)j(allo)s(cated)f(string)f(con)m(taining)h(a)e (descrip-)390 2075 y(tion)i(of)f(the)h(error)f(with)g(the)h(return)e (co)s(de)h Fr(rc)p Fx(.)p eop end %%Page: 25 30 TeXDict begin 25 29 bop 150 -116 a Fx(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(25)150 299 y Fu(6)80 b(IDNA)54 b(F)-13 b(unctions)150 580 y Fx(Un)m(til)30 b(no)m(w,)g(there)f(has)g(b)s(een)f(no)h(standard)f(metho)s(d)h(for)g (domain)g(names)g(to)g(use)g(c)m(haracters)i(outside)150 690 y(the)26 b(ASCI)s(I)f(rep)s(ertoire.)39 b(The)26 b(IDNA)h(do)s(cumen)m(t)f(de\014nes)f(in)m(ternationalized)k(domain)d (names)g(\(IDNs\))150 799 y(and)d(a)g(mec)m(hanism)h(called)g(IDNA)g (for)f(handling)f(them)h(in)g(a)h(standard)e(fashion.)38 b(IDNs)24 b(use)e(c)m(haracters)150 909 y(dra)m(wn)28 b(from)h(a)h(large)g(rep)s(ertoire)f(\(Unico)s(de\),)i(but)d(IDNA)i (allo)m(ws)g(the)g(non-ASCI)s(I)d(c)m(haracters)k(to)f(b)s(e)150 1018 y(represen)m(ted)e(using)f(only)h(the)g(ASCI)s(I)e(c)m(haracters)k (already)e(allo)m(w)m(ed)i(in)d(so-called)j(host)e(names)g(to)s(da)m(y) -8 b(.)150 1128 y(This)26 b(bac)m(kw)m(ard-compatible)i(represen)m (tation)f(is)g(required)e(in)h(existing)h(proto)s(cols)h(lik)m(e)f (DNS,)g(so)f(that)150 1238 y(IDNs)f(can)h(b)s(e)e(in)m(tro)s(duced)h (with)g(no)g(c)m(hanges)h(to)g(the)f(existing)h(infrastructure.)38 b(IDNA)26 b(is)f(only)g(mean)m(t)150 1347 y(for)30 b(pro)s(cessing)g (domain)h(names,)f(not)h(free)f(text.)150 1603 y Fw(6.1)68 b(Header)46 b(\014le)f Fj(idna.h)150 1763 y Fx(T)-8 b(o)31 b(use)f(the)g(functions)g(explained)h(in)f(this)g(c)m(hapter,)i(y)m(ou) e(need)g(to)i(include)e(the)g(\014le)h(`)p Fr(idna.h)p Fx(')e(using:)390 1913 y Fr(#include)46 b()150 2169 y Fw(6.2)68 b(Con)l(trol)46 b(Flags)150 2328 y Fx(The)32 b(IDNA)h Fr(flags)e Fx(parameter)j(can)f(tak)m(e)h(on)e(the)h(follo)m (wing)h(v)-5 b(alues,)34 b(or)f(a)g(bit-wise)g(inclusiv)m(e)g(or)g(of) 150 2438 y(an)m(y)e(subset)f(of)g(the)h(parameters:)3211 2653 y([Return)e(co)s(de])-3599 b Fp(Idna_flags)55 b (IDNA_ALLOW_UNASSIGNED)390 2763 y Fx(Allo)m(w)32 b(unassigned)d(Unico)s (de)i(co)s(de)f(p)s(oin)m(ts.)3211 2979 y([Return)f(co)s(de])-3599 b Fp(Idna_flags)55 b(IDNA_USE_STD3_ASCII_R)q(ULE)q(S)390 3088 y Fx(Chec)m(k)31 b(output)f(to)h(mak)m(e)g(sure)f(it)h(is)f(a)h (STD3)f(conforming)h(host)f(name.)150 3344 y Fw(6.3)68 b(Pre\014x)45 b(String)3449 3569 y Fx([Macro])-3598 b Fp(#define)54 b(IDNA_ACE_PREFIX)390 3679 y Fx(String)30 b(with)g(the)h(o\016cial)g(IDNA)g(pre\014x,)f Fr(xn--)p Fx(.)150 3935 y Fw(6.4)68 b(Core)46 b(F)-11 b(unctions)150 4094 y Fx(The)22 b(idea)g(b)s(ehind)f(the)h(IDNA)h(function)f(names)g (are)g(as)h(follo)m(ws:)38 b(the)22 b Fr(idna_to_ascii_4i)c Fx(and)j Fr(idna_)150 4204 y(to_unicode_44i)26 b Fx(functions)j(are)h (the)g(core)g(IDNA)h(primitiv)m(es.)41 b(The)29 b Fr(4)g Fx(indicate)i(that)f(the)g(function)150 4313 y(tak)m(es)e(UCS-4)f (strings)g(\(i.e.,)i(Unico)s(de)e(co)s(de)g(p)s(oin)m(ts)f(enco)s(ded)h (in)f(a)i(32-bit)g(unsigned)d(in)m(teger)j(t)m(yp)s(e\))g(of)150 4423 y(the)k(sp)s(eci\014ed)g(length.)46 b(The)32 b Fr(i)f Fx(indicate)i(that)g(the)f(data)h(is)f(written)g(\\inline")i(in)m(to)f (the)f(bu\013er.)45 b(This)150 4532 y(means)35 b(the)h(caller)g(is)g (resp)s(onsible)e(for)h(allo)s(cating)j(\(and)d(deallo)s(cating\))j (the)d(string,)i(and)e(pro)m(viding)150 4642 y(the)40 b(library)f(with)h(the)g(allo)s(cated)i(length)e(of)g(the)g(string.)69 b(The)40 b(output)f(length)h(is)g(written)g(in)g(the)150 4751 y(output)33 b(length)h(v)-5 b(ariable.)51 b(The)33 b(remaining)h(functions)f(all)i(con)m(tain)f(the)g Fr(z)f Fx(indicator,)j(whic)m(h)d(means)150 4861 y(the)h(strings)g(are)g(zero) h(terminated.)52 b(All)34 b(output)g(strings)g(are)g(allo)s(cated)i(b)m (y)e(the)g(library)-8 b(,)35 b(and)e(m)m(ust)150 4971 y(b)s(e)k(deallo)s(cated)i(b)m(y)f(the)f(caller.)64 b(The)37 b Fr(4)g Fx(indicator)h(again)h(means)e(that)h(the)g(string)g(is)f (UCS-4,)j(the)150 5080 y Fr(8)35 b Fx(means)h(the)f(strings)h(are)g (UTF-8)g(and)f(the)h Fr(l)f Fx(indicator)h(means)f(the)h(strings)f(are) h(enco)s(ded)g(in)f(the)150 5190 y(enco)s(ding)30 b(used)g(b)m(y)g(the) h(curren)m(t)f(lo)s(cale.)275 5340 y(The)f(functions)h(pro)m(vided)g (are)h(the)g(follo)m(wing)g(en)m(try)g(p)s(oin)m(ts:)p eop end %%Page: 26 31 TeXDict begin 26 30 bop 150 -116 a Fx(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(26)150 299 y Fq(idna)p 389 299 37 5 v 54 w(to)p 552 299 V 54 w(ascii)p 837 299 V 54 w(4i)3350 487 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(idna_to_ascii_4i)e Fo(\()p Fn(const)31 b(uin)m(t32)p 1770 487 28 4 v 41 w(t)f(*)h Fm(in)12 b Fn(,)31 b(size)p 2265 487 V 41 w(t)f Fm(inlen)12 b Fn(,)32 b(c)m(har)f(*)g Fm(out)12 b Fn(,)565 597 y(in)m(t)31 b Fm(flags)12 b Fo(\))390 706 y Fn(in)p Fx(:)40 b(input)30 b(arra)m(y)h(with)f(unico)s (de)g(co)s(de)g(p)s(oin)m(ts.)390 837 y Fn(inlen)p Fx(:)41 b(length)30 b(of)h(input)e(arra)m(y)i(with)f(unico)s(de)g(co)s(de)h(p)s (oin)m(ts.)390 967 y Fn(out)r Fx(:)54 b(output)37 b(zero)h(terminated)g (string)f(that)g(m)m(ust)g(ha)m(v)m(e)i(ro)s(om)d(for)h(at)h(least)h (63)e(c)m(haracters)390 1076 y(plus)29 b(the)i(terminating)g(zero.)390 1207 y Fn(\015ags)t Fx(:)91 b(an)56 b Fr(Idna_flags)d Fx(v)-5 b(alue,)63 b(e.g.,)g Fr(IDNA_ALLOW_UNASSIGNED)50 b Fx(or)56 b Fr(IDNA_USE_STD3_)390 1316 y(ASCII_RULES)p Fx(.)390 1446 y(The)34 b(T)-8 b(oASCI)s(I)33 b(op)s(eration)i(tak)m(es) h(a)f(sequence)g(of)f(Unico)s(de)h(co)s(de)g(p)s(oin)m(ts)f(that)h(mak) m(e)g(up)f(one)390 1556 y(domain)k(lab)s(el)h(and)e(transforms)h(it)g (in)m(to)i(a)e(sequence)h(of)f(co)s(de)h(p)s(oin)m(ts)f(in)g(the)g (ASCI)s(I)f(range)390 1666 y(\(0..7F\).)42 b(If)c(T)-8 b(oASCI)s(I)38 b(succeeds,)k(the)d(original)i(sequence)e(and)g(the)g (resulting)g(sequence)h(are)390 1775 y(equiv)-5 b(alen)m(t)32 b(lab)s(els.)390 1905 y(It)26 b(is)f(imp)s(ortan)m(t)h(to)g(note)h (that)f(the)g(T)-8 b(oASCI)s(I)24 b(op)s(eration)i(can)g(fail.)40 b(T)-8 b(oASCI)s(I)24 b(fails)i(if)g(an)m(y)g(step)390 2015 y(of)j(it)h(fails.)41 b(If)29 b(an)m(y)h(step)f(of)g(the)h(T)-8 b(oASCI)s(I)28 b(op)s(eration)i(fails)g(on)f(an)m(y)g(lab)s(el)h(in)f (a)g(domain)h(name,)390 2125 y(that)k(domain)f(name)h(MUST)f(NOT)g(b)s (e)g(used)f(as)i(an)f(in)m(ternationalized)j(domain)d(name.)50 b(The)390 2234 y(metho)s(d)30 b(for)g(deadling)h(with)f(this)g(failure) g(is)h(application-sp)s(eci\014c.)390 2364 y(The)d(inputs)f(to)j(T)-8 b(oASCI)s(I)27 b(are)i(a)g(sequence)g(of)f(co)s(de)h(p)s(oin)m(ts,)g (the)f(Allo)m(wUnassigned)i(\015ag,)g(and)390 2474 y(the)f(UseSTD3ASCI) s(IRules)f(\015ag.)41 b(The)29 b(output)g(of)g(T)-8 b(oASCI)s(I)28 b(is)h(either)h(a)g(sequence)f(of)g(ASCI)s(I)390 2584 y(co)s(de)i(p)s(oin)m(ts)f(or)g(a)h(failure)g(condition.)390 2714 y(T)-8 b(oASCI)s(I)36 b(nev)m(er)h(alters)g(a)g(sequence)g(of)g (co)s(de)g(p)s(oin)m(ts)g(that)g(are)g(all)h(in)e(the)h(ASCI)s(I)e (range)i(to)390 2823 y(b)s(egin)32 b(with)g(\(although)h(it)f(could)g (fail\).)48 b(Applying)31 b(the)i(T)-8 b(oASCI)s(I)31 b(op)s(eration)i(m)m(ultiple)f(times)390 2933 y(has)e(exactly)i(the)f (same)g(e\013ect)g(as)g(applying)f(it)h(just)f(once.)390 3063 y Fl(Return)g(v)-5 b(alue:)41 b Fx(Returns)30 b(0)g(on)h(success,) f(or)h(an)f Fr(Idna_rc)e Fx(error)i(co)s(de.)150 3254 y Fq(idna)p 389 3254 37 5 v 54 w(to)p 552 3254 V 54 w(unico)s(de)p 1019 3254 V 55 w(44i)3350 3442 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(idna_to_unicode_44i)e Fo(\()p Fn(const)32 b(uin)m(t32)p 1927 3442 28 4 v 41 w(t)e(*)h Fm(in)12 b Fn(,)31 b(size)p 2422 3442 V 41 w(t)f Fm(inlen)12 b Fn(,)32 b(uin)m(t32)p 3106 3442 V 41 w(t)565 3552 y(*)f Fm(out)12 b Fn(,)31 b(size)p 1012 3552 V 41 w(t)f(*)h Fm(outlen)12 b Fn(,)32 b(in)m(t)f Fm(flags)12 b Fo(\))390 3661 y Fn(in)p Fx(:)40 b(input)30 b(arra)m(y)h(with)f(unico)s(de)g(co)s (de)g(p)s(oin)m(ts.)390 3791 y Fn(inlen)p Fx(:)41 b(length)30 b(of)h(input)e(arra)m(y)i(with)f(unico)s(de)g(co)s(de)h(p)s(oin)m(ts.) 390 3922 y Fn(out)r Fx(:)41 b(output)30 b(arra)m(y)h(with)f(unico)s(de) g(co)s(de)g(p)s(oin)m(ts.)390 4052 y Fn(outlen)p Fx(:)50 b(on)35 b(input,)g(maxim)m(um)g(size)h(of)f(output)f(arra)m(y)i(with)e (unico)s(de)h(co)s(de)g(p)s(oin)m(ts,)h(on)f(exit,)390 4162 y(actual)d(size)f(of)f(output)g(arra)m(y)h(with)f(unico)s(de)g(co) s(de)h(p)s(oin)m(ts.)390 4292 y Fn(\015ags)t Fx(:)91 b(an)56 b Fr(Idna_flags)d Fx(v)-5 b(alue,)63 b(e.g.,)g Fr(IDNA_ALLOW_UNASSIGNED)50 b Fx(or)56 b Fr(IDNA_USE_STD3_)390 4401 y(ASCII_RULES)p Fx(.)390 4532 y(The)28 b(T)-8 b(oUnico)s(de)30 b(op)s(eration)g(tak)m(es)g(a)f(sequence)h(of)f(Unico)s(de)g(co)s(de)g (p)s(oin)m(ts)g(that)h(mak)m(e)g(up)e(one)390 4641 y(domain)g(lab)s(el) h(and)e(returns)g(a)i(sequence)f(of)g(Unico)s(de)h(co)s(de)f(p)s(oin)m (ts.)40 b(If)28 b(the)g(input)f(sequence)i(is)390 4751 y(a)35 b(lab)s(el)f(in)g(A)m(CE)h(form,)g(then)f(the)g(result)g(is)h (an)f(equiv)-5 b(alen)m(t)36 b(in)m(ternationalized)g(lab)s(el)f(that)g (is)390 4860 y(not)c(in)f(A)m(CE)g(form,)g(otherwise)h(the)g(original)g (sequence)g(is)f(returned)g(unaltered.)390 4991 y(T)-8 b(oUnico)s(de)33 b(nev)m(er)f(fails.)46 b(If)31 b(an)m(y)h(step)g (fails,)h(then)f(the)g(original)h(input)e(sequence)h(is)g(returned)390 5100 y(immediately)g(in)e(that)h(step.)390 5230 y(The)51 b(Pun)m(yco)s(de)g(deco)s(der)g(can)h(nev)m(er)g(output)f(more)g(co)s (de)h(p)s(oin)m(ts)f(than)h(it)g(inputs,)k(but)390 5340 y(Nameprep)27 b(can,)i(and)e(therefore)g(T)-8 b(oUnico)s(de)28 b(can.)41 b(Note)28 b(that)g(the)g(n)m(um)m(b)s(er)e(of)i(o)s(ctets)g (needed)p eop end %%Page: 27 32 TeXDict begin 27 31 bop 150 -116 a Fx(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(27)390 299 y(to)32 b(represen)m(t)g(a)g(sequence)g(of)g(co)s(de)g(p)s(oin)m(ts)f(dep)s (ends)f(on)i(the)g(particular)g(c)m(haracter)h(enco)s(ding)390 408 y(used.)390 543 y(The)k(inputs)f(to)h(T)-8 b(oUnico)s(de)38 b(are)g(a)f(sequence)g(of)h(co)s(de)f(p)s(oin)m(ts,)i(the)e(Allo)m (wUnassigned)h(\015ag,)390 653 y(and)29 b(the)g(UseSTD3ASCI)s(IRules)g (\015ag.)40 b(The)29 b(output)g(of)h(T)-8 b(oUnico)s(de)30 b(is)f(alw)m(a)m(ys)i(a)f(sequence)g(of)390 763 y(Unico)s(de)h(co)s(de) f(p)s(oin)m(ts.)390 898 y Fl(Return)g(v)-5 b(alue:)40 b Fx(Returns)29 b Fr(Idna_rc)f Fx(error)i(condition,)h(but)e(it)h(m)m (ust)g(only)g(b)s(e)g(used)f(for)g(debug-)390 1007 y(ging)37 b(purp)s(oses.)58 b(The)36 b(output)g(bu\013er)f(is)i(alw)m(a)m(ys)h (guaran)m(teed)g(to)f(con)m(tain)h(the)f(correct)g(data)390 1117 y(according)28 b(to)g(the)f(sp)s(eci\014cation)g(\(sans)g(mallo)s (c)h(induced)e(errors\).)39 b(NB!)28 b(This)e(means)h(that)h(y)m(ou)390 1226 y(normally)e(ignore)h(the)f(return)f(co)s(de)h(from)f(this)h (function,)h(as)f(c)m(hec)m(king)h(it)g(means)f(breaking)g(the)390 1336 y(standard.)150 1569 y Fw(6.5)68 b(Simpli\014ed)45 b(T)-11 b(oASCI)t(I)44 b(In)l(terface)150 1793 y Fq(idna)p 389 1793 37 5 v 54 w(to)p 552 1793 V 54 w(ascii)p 837 1793 V 54 w(4z)3350 1991 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(idna_to_ascii_4z)e Fo(\()p Fn(const)31 b(uin)m(t32)p 1770 1991 28 4 v 41 w(t)f(*)h Fm(input)12 b Fn(,)32 b(c)m(har)f(**)g Fm(output)12 b Fn(,)32 b(in)m(t)565 2100 y Fm(flags)12 b Fo(\))390 2210 y Fn(input)r Fx(:)40 b(zero)31 b(terminated)g(input)e(Unico)s(de)i(string.)390 2345 y Fn(output)r Fx(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s (cated)i(output)e(string.)390 2480 y Fn(\015ags)t Fx(:)91 b(an)56 b Fr(Idna_flags)d Fx(v)-5 b(alue,)63 b(e.g.,)g Fr(IDNA_ALLOW_UNASSIGNED)50 b Fx(or)56 b Fr(IDNA_USE_STD3_)390 2589 y(ASCII_RULES)p Fx(.)390 2724 y(Con)m(v)m(ert)25 b(UCS-4)g(domain)f(name)g(to)h(ASCI)s(I)e(string.)39 b(The)23 b(domain)i(name)f(ma)m(y)h(con)m(tain)h(sev)m(eral)390 2834 y(lab)s(els,)31 b(separated)g(b)m(y)f(dots.)41 b(The)30 b(output)g(bu\013er)f(m)m(ust)h(b)s(e)g(deallo)s(cated)i(b)m(y)e(the)h (caller.)390 2969 y Fl(Return)f(v)-5 b(alue:)41 b Fx(Returns)30 b Fr(IDNA_SUCCESS)d Fx(on)j(success,)h(or)f(error)g(co)s(de.)150 3169 y Fq(idna)p 389 3169 37 5 v 54 w(to)p 552 3169 V 54 w(ascii)p 837 3169 V 54 w(8z)3350 3366 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(idna_to_ascii_8z)e Fo(\()p Fn(const)31 b(c)m(har)g(*)f Fm(input)12 b Fn(,)32 b(c)m(har)f(**)g Fm(output)12 b Fn(,)32 b(in)m(t)565 3476 y Fm(flags)12 b Fo(\))390 3585 y Fn(input)r Fx(:)40 b(zero)31 b(terminated)g(input)e (UTF-8)i(string.)390 3720 y Fn(output)r Fx(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s(cated)i(output)e(string.)390 3855 y Fn(\015ags)t Fx(:)91 b(an)56 b Fr(Idna_flags)d Fx(v)-5 b(alue,)63 b(e.g.,)g Fr(IDNA_ALLOW_UNASSIGNED)50 b Fx(or)56 b Fr(IDNA_USE_STD3_)390 3965 y(ASCII_RULES)p Fx(.)390 4100 y(Con)m(v)m(ert)24 b(UTF-8)h(domain)e(name)h(to)g(ASCI)s(I)e (string.)38 b(The)24 b(domain)f(name)h(ma)m(y)g(con)m(tain)h(sev)m (eral)390 4209 y(lab)s(els,)31 b(separated)g(b)m(y)f(dots.)41 b(The)30 b(output)g(bu\013er)f(m)m(ust)h(b)s(e)g(deallo)s(cated)i(b)m (y)e(the)h(caller.)390 4344 y Fl(Return)f(v)-5 b(alue:)41 b Fx(Returns)30 b Fr(IDNA_SUCCESS)d Fx(on)j(success,)h(or)f(error)g(co) s(de.)150 4544 y Fq(idna)p 389 4544 V 54 w(to)p 552 4544 V 54 w(ascii)p 837 4544 V 54 w(lz)3350 4741 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(idna_to_ascii_lz)e Fo(\()p Fn(const)31 b(c)m(har)g(*)f Fm(input)12 b Fn(,)32 b(c)m(har)f(**)g Fm(output)12 b Fn(,)32 b(in)m(t)565 4851 y Fm(flags)12 b Fo(\))390 4960 y Fn(input)r Fx(:)40 b(zero)31 b(terminated)g(input)e (string)i(enco)s(ded)f(in)g(the)g(curren)m(t)g(lo)s(cale's)j(c)m (haracter)f(set.)390 5095 y Fn(output)r Fx(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s(cated)i(output)e(string.)390 5230 y Fn(\015ags)t Fx(:)91 b(an)56 b Fr(Idna_flags)d Fx(v)-5 b(alue,)63 b(e.g.,)g Fr(IDNA_ALLOW_UNASSIGNED)50 b Fx(or)56 b Fr(IDNA_USE_STD3_)390 5340 y(ASCII_RULES)p Fx(.)p eop end %%Page: 28 33 TeXDict begin 28 32 bop 150 -116 a Fx(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(28)390 299 y(Con)m(v)m(ert)37 b(domain)f(name)g(in)f(the)h(lo)s(cale's)i(enco)s(ding)e(to)h(ASCI)s(I) d(string.)58 b(The)35 b(domain)h(name)390 408 y(ma)m(y)27 b(con)m(tain)g(sev)m(eral)h(lab)s(els,)f(separated)g(b)m(y)f(dots.)39 b(The)26 b(output)f(bu\013er)h(m)m(ust)g(b)s(e)f(deallo)s(cated)390 518 y(b)m(y)30 b(the)h(caller.)390 651 y Fl(Return)f(v)-5 b(alue:)41 b Fx(Returns)30 b Fr(IDNA_SUCCESS)d Fx(on)j(success,)h(or)f (error)g(co)s(de.)150 881 y Fw(6.6)68 b(Simpli\014ed)45 b(T)-11 b(oUnico)t(de)45 b(In)l(terface)150 1104 y Fq(idna)p 389 1104 37 5 v 54 w(to)p 552 1104 V 54 w(unico)s(de)p 1019 1104 V 55 w(4z4z)3350 1298 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(idna_to_unicode_4z4z)f Fo(\()p Fn(const)31 b(uin)m(t32)p 1979 1298 28 4 v 41 w(t)g(*)f Fm(input)12 b Fn(,)32 b(uin)m(t32)p 2739 1298 V 41 w(t)f(**)565 1408 y Fm(output)12 b Fn(,)32 b(in)m(t)f Fm(flags)12 b Fo(\))390 1517 y Fn(input)r Fx(:)40 b(zero-terminated)32 b(Unico)s(de)e(string.) 390 1651 y Fn(output)r Fx(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s (cated)i(output)e(Unico)s(de)h(string.)390 1784 y Fn(\015ags)t Fx(:)91 b(an)56 b Fr(Idna_flags)d Fx(v)-5 b(alue,)63 b(e.g.,)g Fr(IDNA_ALLOW_UNASSIGNED)50 b Fx(or)56 b Fr(IDNA_USE_STD3_) 390 1893 y(ASCII_RULES)p Fx(.)390 2027 y(Con)m(v)m(ert)34 b(p)s(ossibly)d(A)m(CE)i(enco)s(ded)g(domain)f(name)h(in)f(UCS-4)h (format)g(in)m(to)h(a)f(UCS-4)g(string.)390 2136 y(The)f(domain)g(name) g(ma)m(y)h(con)m(tain)g(sev)m(eral)h(lab)s(els,)f(separated)g(b)m(y)f (dots.)46 b(The)32 b(output)g(bu\013er)390 2246 y(m)m(ust)e(b)s(e)g (deallo)s(cated)i(b)m(y)f(the)f(caller.)390 2379 y Fl(Return)g(v)-5 b(alue:)41 b Fx(Returns)30 b Fr(IDNA_SUCCESS)d Fx(on)j(success,)h(or)f (error)g(co)s(de.)150 2576 y Fq(idna)p 389 2576 37 5 v 54 w(to)p 552 2576 V 54 w(unico)s(de)p 1019 2576 V 55 w(8z4z)3350 2770 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(idna_to_unicode_8z4z)f Fo(\()p Fn(const)31 b(c)m(har)g(*)f Fm(input)12 b Fn(,)32 b(uin)m(t32)p 2583 2770 28 4 v 41 w(t)f(**)g Fm(output)12 b Fn(,)565 2879 y(in)m(t)31 b Fm(flags)12 b Fo(\))390 2989 y Fn(input)r Fx(:)40 b(zero-terminated) 32 b(UTF-8)f(string.)390 3122 y Fn(output)r Fx(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s(cated)i(output)e(Unico)s(de)h(string.)390 3255 y Fn(\015ags)t Fx(:)91 b(an)56 b Fr(Idna_flags)d Fx(v)-5 b(alue,)63 b(e.g.,)g Fr(IDNA_ALLOW_UNASSIGNED)50 b Fx(or)56 b Fr(IDNA_USE_STD3_)390 3365 y(ASCII_RULES)p Fx(.)390 3498 y(Con)m(v)m(ert)33 b(p)s(ossibly)e(A)m(CE)h(enco)s(ded)g (domain)f(name)i(in)e(UTF-8)i(format)f(in)m(to)h(a)g(UCS-4)f(string.) 390 3608 y(The)g(domain)g(name)g(ma)m(y)h(con)m(tain)g(sev)m(eral)h (lab)s(els,)f(separated)g(b)m(y)f(dots.)46 b(The)32 b(output)g (bu\013er)390 3717 y(m)m(ust)e(b)s(e)g(deallo)s(cated)i(b)m(y)f(the)f (caller.)390 3851 y Fl(Return)g(v)-5 b(alue:)41 b Fx(Returns)30 b Fr(IDNA_SUCCESS)d Fx(on)j(success,)h(or)f(error)g(co)s(de.)150 4047 y Fq(idna)p 389 4047 37 5 v 54 w(to)p 552 4047 V 54 w(unico)s(de)p 1019 4047 V 55 w(8z8z)3350 4242 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(idna_to_unicode_8z8z)f Fo(\()p Fn(const)31 b(c)m(har)g(*)f Fm(input)12 b Fn(,)32 b(c)m(har)f(**)g Fm(output)12 b Fn(,)32 b(in)m(t)565 4351 y Fm(flags)12 b Fo(\))390 4461 y Fn(input)r Fx(:)40 b(zero-terminated)32 b(UTF-8)f(string.)390 4594 y Fn(output)r Fx(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s(cated)i(output)e (UTF-8)h(string.)390 4727 y Fn(\015ags)t Fx(:)91 b(an)56 b Fr(Idna_flags)d Fx(v)-5 b(alue,)63 b(e.g.,)g Fr (IDNA_ALLOW_UNASSIGNED)50 b Fx(or)56 b Fr(IDNA_USE_STD3_)390 4837 y(ASCII_RULES)p Fx(.)390 4970 y(Con)m(v)m(ert)32 b(p)s(ossibly)e(A)m(CE)i(enco)s(ded)f(domain)g(name)g(in)g(UTF-8)h (format)g(in)m(to)g(a)g(UTF-8)g(string.)390 5080 y(The)g(domain)g(name) g(ma)m(y)h(con)m(tain)g(sev)m(eral)h(lab)s(els,)f(separated)g(b)m(y)f (dots.)46 b(The)32 b(output)g(bu\013er)390 5189 y(m)m(ust)e(b)s(e)g (deallo)s(cated)i(b)m(y)f(the)f(caller.)390 5322 y Fl(Return)g(v)-5 b(alue:)41 b Fx(Returns)30 b Fr(IDNA_SUCCESS)d Fx(on)j(success,)h(or)f (error)g(co)s(de.)p eop end %%Page: 29 34 TeXDict begin 29 33 bop 150 -116 a Fx(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(29)150 299 y Fq(idna)p 389 299 37 5 v 54 w(to)p 552 299 V 54 w(unico)s(de)p 1019 299 V 55 w(8zlz)3350 491 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(idna_to_unicode_8zlz)f Fo(\()p Fn(const)31 b(c)m(har)g(*)f Fm(input)12 b Fn(,)32 b(c)m(har)f(**)g Fm(output)12 b Fn(,)32 b(in)m(t)565 600 y Fm(flags)12 b Fo(\))390 710 y Fn(input)r Fx(:)40 b(zero-terminated)32 b(UTF-8)f(string.)390 842 y Fn(output)r Fx(:)71 b(p)s(oin)m(ter)45 b(to)h(newly)g(allo)s(cated)h(output)e(string)h(enco)s(ded)f(in)g(the)h (curren)m(t)f(lo)s(cale's)390 952 y(c)m(haracter)32 b(set.)390 1084 y Fn(\015ags)t Fx(:)91 b(an)56 b Fr(Idna_flags)d Fx(v)-5 b(alue,)63 b(e.g.,)g Fr(IDNA_ALLOW_UNASSIGNED)50 b Fx(or)56 b Fr(IDNA_USE_STD3_)390 1193 y(ASCII_RULES)p Fx(.)390 1325 y(Con)m(v)m(ert)30 b(p)s(ossibly)e(A)m(CE)h(enco)s(ded)g (domain)g(name)g(in)g(UTF-8)g(format)h(in)m(to)g(a)f(string)g(enco)s (ded)390 1435 y(in)35 b(the)h(curren)m(t)f(lo)s(cale's)i(c)m(haracter)g (set.)57 b(The)35 b(domain)g(name)h(ma)m(y)g(con)m(tain)h(sev)m(eral)f (lab)s(els,)390 1545 y(separated)31 b(b)m(y)f(dots.)41 b(The)30 b(output)g(bu\013er)f(m)m(ust)h(b)s(e)g(deallo)s(cated)i(b)m (y)f(the)f(caller.)390 1677 y Fl(Return)g(v)-5 b(alue:)41 b Fx(Returns)30 b Fr(IDNA_SUCCESS)d Fx(on)j(success,)h(or)f(error)g(co) s(de.)150 1871 y Fq(idna)p 389 1871 V 54 w(to)p 552 1871 V 54 w(unico)s(de)p 1019 1871 V 55 w(lzlz)3350 2063 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(idna_to_unicode_lzlz)f Fo(\()p Fn(const)31 b(c)m(har)g(*)f Fm(input)12 b Fn(,)32 b(c)m(har)f(**)g Fm(output)12 b Fn(,)32 b(in)m(t)565 2173 y Fm(flags)12 b Fo(\))390 2282 y Fn(input)r Fx(:)40 b(zero-terminated)32 b(string)e(enco)s(ded)g(in)g(the)h(curren)m(t)f (lo)s(cale's)i(c)m(haracter)g(set.)390 2414 y Fn(output)r Fx(:)71 b(p)s(oin)m(ter)45 b(to)h(newly)g(allo)s(cated)h(output)e (string)h(enco)s(ded)f(in)g(the)h(curren)m(t)f(lo)s(cale's)390 2524 y(c)m(haracter)32 b(set.)390 2656 y Fn(\015ags)t Fx(:)91 b(an)56 b Fr(Idna_flags)d Fx(v)-5 b(alue,)63 b(e.g.,)g Fr(IDNA_ALLOW_UNASSIGNED)50 b Fx(or)56 b Fr(IDNA_USE_STD3_) 390 2765 y(ASCII_RULES)p Fx(.)390 2898 y(Con)m(v)m(ert)25 b(p)s(ossibly)e(A)m(CE)h(enco)s(ded)g(domain)g(name)g(in)g(the)g(lo)s (cale's)i(c)m(haracter)g(set)e(in)m(to)h(a)g(string)390 3007 y(enco)s(ded)30 b(in)g(the)h(curren)m(t)f(lo)s(cale's)i(c)m (haracter)g(set.)42 b(The)30 b(domain)g(name)h(ma)m(y)g(con)m(tain)h (sev)m(eral)390 3117 y(lab)s(els,)f(separated)g(b)m(y)f(dots.)41 b(The)30 b(output)g(bu\013er)f(m)m(ust)h(b)s(e)g(deallo)s(cated)i(b)m (y)e(the)h(caller.)390 3249 y Fl(Return)f(v)-5 b(alue:)41 b Fx(Returns)30 b Fr(IDNA_SUCCESS)d Fx(on)j(success,)h(or)f(error)g(co) s(de.)150 3476 y Fw(6.7)68 b(Error)45 b(Handling)150 3698 y Fq(idna)p 389 3698 V 54 w(strerror)3350 3890 y Fx([F)-8 b(unction])-3599 b Fp(const)54 b(char)f(*)g(idna_strerror)c Fo(\()p Fn(Idna)p 1776 3890 28 4 v 40 w(rc)30 b Fm(rc)12 b Fo(\))390 4000 y Fn(rc)6 b Fx(:)40 b(an)30 b Fr(Idna_rc)f Fx(return)g(co)s(de.)390 4132 y(Con)m(v)m(ert)35 b(a)f(return)e(co)s (de)i(in)m(teger)i(to)e(a)g(text)h(string.)51 b(This)33 b(string)h(can)g(b)s(e)f(used)g(to)h(output)g(a)390 4241 y(diagnostic)e(message)f(to)g(the)g(user.)390 4373 y Fl(IDNA)p 642 4373 28 5 v 40 w(SUCCESS:)e Fx(Successful)j(op)s (eration.)47 b(This)31 b(v)-5 b(alue)33 b(is)f(guaran)m(teed)i(to)f (alw)m(a)m(ys)g(b)s(e)f(zero,)390 4483 y(the)23 b(remaining)f(ones)h (are)g(only)g(guaran)m(teed)g(to)g(hold)g(non-zero)g(v)-5 b(alues,)24 b(for)f(logical)i(comparison)390 4593 y(purp)s(oses.)390 4725 y Fl(IDNA)p 642 4725 V 40 w(STRINGPREP)p 1296 4725 V 40 w(ERR)m(OR:)31 b Fx(Error)f(during)f(string)h(preparation.)390 4857 y Fl(IDNA)p 642 4857 V 40 w(PUNYCODE)p 1218 4857 V 39 w(ERR)m(OR:)h Fx(Error)e(during)g(pun)m(yco)s(de)h(op)s(eration.) 390 4989 y Fl(IDNA)p 642 4989 V 40 w(CONT)-8 b(AINS)p 1169 4989 V 40 w(NON)p 1419 4989 V 40 w(LDH:)80 b Fx(F)-8 b(or)81 b(IDNA)p 2211 4989 28 4 v 41 w(USE)p 2433 4989 V 39 w(STD3)p 2703 4989 V 40 w(ASCI)s(I)p 2997 4989 V 39 w(R)m(ULES,)f(indicate)390 5098 y(that)31 b(the)g(string)f(con)m (tains)h(non-LDH)g(ASCI)s(I)e(c)m(haracters.)390 5230 y Fl(IDNA)p 642 5230 28 5 v 40 w(CONT)-8 b(AINS)p 1169 5230 V 40 w(MINUS:)52 b Fx(F)-8 b(or)52 b(IDNA)p 2022 5230 28 4 v 40 w(USE)p 2243 5230 V 40 w(STD3)p 2514 5230 V 40 w(ASCI)s(I)p 2808 5230 V 39 w(R)m(ULES,)f(indicate)h(that)390 5340 y(the)31 b(string)f(con)m(tains)h(a)g(leading)g(or)g(trailing)g(h) m(yphen-min)m(us)e(\(U)p Fr(+)p Fx(002D\).)p eop end %%Page: 30 35 TeXDict begin 30 34 bop 150 -116 a Fx(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(30)390 299 y Fl(IDNA)p 642 299 28 5 v 40 w(INV)-10 b(ALID)p 1078 299 V 39 w(LENGTH:)47 b Fx(The)f(\014nal)g(output)g(string)g(is)h(not)g(within)f(the)g (\(inclusiv)m(e\))390 408 y(range)31 b(1)f(to)i(63)f(c)m(haracters.)390 543 y Fl(IDNA)p 642 543 V 40 w(NO)p 821 543 V 40 w(A)m(CE)p 1053 543 V 40 w(PREFIX:)i Fx(The)h(string)f(do)s(es)h(not)g(con)m(tain) h(the)f(A)m(CE)g(pre\014x)f(\(for)h(T)-8 b(oUni-)390 653 y(co)s(de\).)390 787 y Fl(IDNA)p 642 787 V 40 w(R)m(OUNDTRIP)p 1257 787 V 41 w(VERIFY)p 1658 787 V 39 w(ERR)m(OR:)37 b Fx(The)g(T)-8 b(oASCI)s(I)36 b(op)s(eration)h(on)g(output)f(string) 390 897 y(do)s(es)30 b(not)h(equal)g(the)f(input.)390 1031 y Fl(IDNA)p 642 1031 V 40 w(CONT)-8 b(AINS)p 1169 1031 V 40 w(A)m(CE)p 1401 1031 V 39 w(PREFIX:)79 b Fx(The)g(input)f (con)m(tains)j(the)e(A)m(CE)h(pre\014x)e(\(for)390 1141 y(T)-8 b(oASCI)s(I\).)390 1275 y Fl(IDNA)p 642 1275 V 40 w(ICONV)p 992 1275 V 40 w(ERR)m(OR:)31 b Fx(Could)e(not)i(con)m(v)m (ert)h(string)e(in)g(lo)s(cale)i(enco)s(ding.)390 1410 y Fl(IDNA)p 642 1410 V 40 w(MALLOC)p 1081 1410 V 39 w(ERR)m(OR:)f Fx(Could)e(not)i(allo)s(cate)i(bu\013er)c(\(this)i(is)f(t)m(ypically)i (a)f(fatal)h(error\).)390 1544 y Fl(IDNA)p 642 1544 V 40 w(DLOPEN)p 1068 1544 V 39 w(ERR)m(OR:)j Fx(Could)f(not)h(dlop)s(en)e (the)i(lib)s(cidn)e(DSO)h(\(only)h(used)f(in)m(ternally)390 1654 y(in)c(lib)s(c\).)390 1788 y Fl(Return)f(v)-5 b(alue:)40 b Fx(Returns)29 b(a)g(p)s(oin)m(ter)h(to)g(a)f(statically)j(allo)s (cated)f(string)f(con)m(taining)h(a)e(descrip-)390 1898 y(tion)i(of)f(the)h(error)f(with)g(the)h(return)e(co)s(de)h Fr(rc)p Fx(.)p eop end %%Page: 31 36 TeXDict begin 31 35 bop 150 -116 a Fx(Chapter)30 b(7:)41 b(TLD)30 b(F)-8 b(unctions)2437 b(31)150 299 y Fu(7)80 b(TLD)54 b(F)-13 b(unctions)150 531 y Fx(Organizations)40 b(that)f(manage)g(some)g(T)-8 b(op)38 b(Lev)m(el)i(Domains)f(\()p Fk(TLD)p Fx(s\))g(ha)m(v)m(e)g(published)e(tables)i(with)150 640 y(c)m(haracters)d(they)f(accept)h(within)e(the)g(domain.)54 b(The)34 b(reason)g(ma)m(y)i(b)s(e)d(to)j(reduce)e(complexit)m(y)i (that)150 750 y(come)30 b(from)f(using)f(the)h(full)g(Unico)s(de)g (range,)h(and)f(to)g(protect)h(themselv)m(es)h(from)d(future)g(\(bac)m (kw)m(ards)150 859 y(incompatible\))36 b(c)m(hanges)g(in)e(the)h(IDN)g (or)g(Unico)s(de)g(sp)s(eci\014cations.)55 b(Libidn)33 b(implemen)m(t)j(an)e(infras-)150 969 y(tructure)29 b(for)g(de\014ning) f(and)g(c)m(hec)m(king)j(strings)e(against)i(suc)m(h)d(tables.)42 b(Libidn)27 b(also)j(ship)f(some)g(tables)150 1079 y(from)d Fk(TLD)p Fx(s)g(that)h(w)m(e)f(ha)m(v)m(e)i(managed)e(to)h(get)g(p)s (ermission)e(to)i(use)f(them)g(from.)39 b(Because)28 b(these)e(tables)150 1188 y(are)i(ev)m(en)g(less)g(static)h(than)e (Unico)s(de)h(or)f(StringPrep)f(tables,)k(it)e(is)f(lik)m(ely)i(that)f (they)g(will)f(b)s(e)g(up)s(dated)150 1298 y(from)33 b(time)h(to)g(time)g(\(ev)m(en)h(in)e(bac)m(kw)m(ards)h(incompatib)s(e) g(w)m(a)m(ys\).)51 b(The)33 b(Libidn)f(in)m(terface)j(pro)m(vide)f(a) 150 1407 y(\\v)m(ersion")39 b(\014eld)d(for)h(eac)m(h)i Fk(TLD)e Fx(table,)j(whic)m(h)d(can)h(b)s(e)e(compared)h(for)g(equalit) m(y)i(to)f(guaran)m(tee)h(the)150 1517 y(same)31 b(op)s(eration)g(o)m (v)m(er)g(time.)275 1651 y(F)-8 b(rom)25 b(a)g(design)f(p)s(oin)m(t)h (of)g(view,)h(y)m(ou)f(can)g(regard)f(the)h Fk(TLD)g Fx(tables)g(for)f(IDN)h(as)g(the)g(\\lo)s(calization")150 1760 y(step)30 b(that)h(come)h(after)f(the)f(\\in)m (ternationalization")35 b(step)30 b(pro)m(vided)g(b)m(y)h(the)f(IETF)g (standards.)275 1894 y(The)35 b(TLD)i(functionalit)m(y)h(rely)e(on)h (up-to-date)g(tables.)60 b(The)36 b(latest)i(v)m(ersion)f(of)f(Libidn)f (aim)i(to)150 2004 y(pro)m(vide)28 b(these,)h(but)d(tables)j(with)e (unclear)h(cop)m(ying)g(conditions,)h(or)f(generally)h(exp)s(erimen)m (tal)f(tables,)150 2114 y(are)j(not)f(included.)40 b(Some)31 b(suc)m(h)f(tables)h(can)g(b)s(e)e(found)g(at)j Fr (http://tldchk.berlios.d)o(e)p Fx(.)150 2345 y Fw(7.1)68 b(Header)46 b(\014le)f Fj(tld.h)150 2505 y Fx(T)-8 b(o)31 b(use)f(the)g(functions)g(explained)h(in)f(this)g(c)m(hapter,)i(y)m(ou) e(need)g(to)i(include)e(the)g(\014le)h(`)p Fr(tld.h)p Fx(')e(using:)390 2639 y Fr(#include)46 b()150 2870 y Fw(7.2)68 b(Core)46 b(F)-11 b(unctions)150 3094 y Fq(tld)p 309 3094 37 5 v 54 w(c)m(hec)m(k)p 656 3094 V 52 w(4t)3350 3290 y Fx([F)j(unction])-3599 b Fp(int)53 b(tld_check_4t)c Fo(\()p Fn(const)32 b(uin)m(t32)p 1561 3290 28 4 v 41 w(t)e(*)h Fm(in)12 b Fn(,)31 b(size)p 2056 3290 V 41 w(t)f Fm(inlen)12 b Fn(,)32 b(size)p 2632 3290 V 41 w(t)e(*)h Fm(errpos)12 b Fn(,)565 3399 y(const)31 b(Tld)p 951 3399 V 39 w(table)h(*)e Fm(tld)12 b Fo(\))390 3509 y Fn(in)p Fx(:)40 b(Arra)m(y)31 b(of)g(unico)s(de)e(co)s(de)i(p)s (oin)m(ts)f(to)h(pro)s(cess.)41 b(Do)s(es)31 b(not)f(need)g(to)h(b)s(e) f(zero)h(terminated.)390 3643 y Fn(inlen)p Fx(:)41 b(Num)m(b)s(er)29 b(of)h(unico)s(de)g(co)s(de)h(p)s(oin)m(ts.)390 3777 y Fn(errp)s(os)t Fx(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m (haracter)i(is)e(returned)g(here.)390 3911 y Fn(tld)t Fx(:)60 b(A)40 b Fr(Tld_table)d Fx(data)k(structure)e(represen)m(ting)h (the)h(restrictions)f(for)g(whic)m(h)g(the)g(input)390 4020 y(should)29 b(b)s(e)h(tested.)390 4154 y(T)-8 b(est)36 b(eac)m(h)g(of)f(the)h(co)s(de)f(p)s(oin)m(ts)g(in)g Fr(in)f Fx(for)h(whether)g(or)g(not)g(they)g(are)h(allo)m(w)m(ed)h(b)m (y)e(the)g(data)390 4264 y(structure)g(in)h Fr(tld)p Fx(,)g(return)f(the)h(p)s(osition)g(of)g(the)g(\014rst)f(c)m(haracter)j (for)d(whic)m(h)h(this)g(is)g(not)g(the)390 4374 y(case)31 b(in)f Fr(errpos)p Fx(.)390 4508 y Fl(Return)h(v)-5 b(alue:)44 b Fx(Returns)31 b(the)h Fr(Tld_rc)e Fx(v)-5 b(alue)32 b Fr(TLD_SUCCESS)c Fx(if)k(all)g(co)s(de)g(p)s(oin)m(ts)g(are)g(v)-5 b(alid)32 b(or)390 4617 y(when)27 b Fr(tld)f Fx(is)i(n)m(ull,)g Fr(TLD_INVALID)d Fx(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k (or)c(additional)i(error)e(co)s(des)390 4727 y(on)j(general)i(failure)e (conditions.)150 4925 y Fq(tld)p 309 4925 37 5 v 54 w(c)m(hec)m(k)p 656 4925 V 52 w(4tz)3350 5121 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(tld_check_4tz)d Fo(\()p Fn(const)31 b(uin)m(t32)p 1613 5121 28 4 v 41 w(t)g(*)f Fm(in)12 b Fn(,)31 b(size)p 2108 5121 V 41 w(t)g(*)f Fm(errpos)12 b Fn(,)32 b(const)565 5230 y(Tld)p 713 5230 V 40 w(table)f(*)g Fm(tld)12 b Fo(\))390 5340 y Fn(in)p Fx(:)40 b(Zero)31 b(terminated)g(arra)m(y)g (of)f(unico)s(de)g(co)s(de)h(p)s(oin)m(ts)f(to)h(pro)s(cess.)p eop end %%Page: 32 37 TeXDict begin 32 36 bop 150 -116 a Fx(Chapter)30 b(7:)41 b(TLD)30 b(F)-8 b(unctions)2437 b(32)390 299 y Fn(errp)s(os)t Fx(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m(haracter)i(is)e (returned)g(here.)390 461 y Fn(tld)t Fx(:)60 b(A)40 b Fr(Tld_table)d Fx(data)k(structure)e(represen)m(ting)h(the)h (restrictions)f(for)g(whic)m(h)g(the)g(input)390 570 y(should)29 b(b)s(e)h(tested.)390 732 y(T)-8 b(est)36 b(eac)m(h)g(of)f(the)h(co)s(de)f(p)s(oin)m(ts)g(in)g Fr(in)f Fx(for)h(whether)g(or)g(not)g(they)g(are)h(allo)m(w)m(ed)h(b)m (y)e(the)g(data)390 842 y(structure)g(in)h Fr(tld)p Fx(,)g(return)f (the)h(p)s(osition)g(of)g(the)g(\014rst)f(c)m(haracter)j(for)d(whic)m (h)h(this)g(is)g(not)g(the)390 951 y(case)31 b(in)f Fr(errpos)p Fx(.)390 1113 y Fl(Return)h(v)-5 b(alue:)44 b Fx(Returns)31 b(the)h Fr(Tld_rc)e Fx(v)-5 b(alue)32 b Fr(TLD_SUCCESS)c Fx(if)k(all)g(co)s(de)g(p)s(oin)m(ts)g(are)g(v)-5 b(alid)32 b(or)390 1223 y(when)27 b Fr(tld)f Fx(is)i(n)m(ull,)g Fr(TLD_INVALID)d Fx(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k (or)c(additional)i(error)e(co)s(des)390 1332 y(on)j(general)i(failure)e (conditions.)150 1606 y Fw(7.3)68 b(Utilit)l(y)47 b(F)-11 b(unctions)150 1830 y Fq(tld)p 309 1830 37 5 v 54 w(get)p 528 1830 V 54 w(4)3350 2054 y Fx([F)j(unction])-3599 b Fp(int)53 b(tld_get_4)48 b Fo(\()p Fn(const)32 b(uin)m(t32)p 1404 2054 28 4 v 41 w(t)e(*)h Fm(in)12 b Fn(,)31 b(size)p 1899 2054 V 41 w(t)f Fm(inlen)12 b Fn(,)32 b(c)m(har)f(**)g Fm(out)12 b Fo(\))390 2163 y Fn(in)p Fx(:)40 b(Arra)m(y)31 b(of)g(unico)s(de)e(co)s(de)i(p)s(oin)m(ts)f(to)h(pro)s(cess.)41 b(Do)s(es)31 b(not)f(need)g(to)h(b)s(e)f(zero)h(terminated.)390 2325 y Fn(inlen)p Fx(:)41 b(Num)m(b)s(er)29 b(of)h(unico)s(de)g(co)s (de)h(p)s(oin)m(ts.)390 2487 y Fn(out)r Fx(:)41 b(Zero)30 b(terminated)h(ascii)h(result)e(string)g(p)s(oin)m(ter.)390 2649 y(Isolate)i(the)e(top-lev)m(el)j(domain)d(of)h Fr(in)f Fx(and)f(return)h(it)h(as)f(an)h(ASCI)s(I)d(string)j(in)f Fr(out)p Fx(.)390 2811 y Fl(Return)38 b(v)-5 b(alue:)56 b Fx(Return)37 b Fr(TLD_SUCCESS)d Fx(on)k(success,)i(or)e(the)g (corresp)s(onding)f Fr(Tld_rc)f Fx(error)390 2920 y(co)s(de)31 b(otherwise.)150 3147 y Fq(tld)p 309 3147 37 5 v 54 w(get)p 528 3147 V 54 w(4z)3350 3371 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(tld_get_4z)c Fo(\()p Fn(const)31 b(uin)m(t32)p 1456 3371 28 4 v 41 w(t)g(*)f Fm(in)12 b Fn(,)31 b(c)m(har)g(**)g Fm(out)12 b Fo(\))390 3480 y Fn(in)p Fx(:)40 b(Zero)31 b(terminated)g(arra)m(y)g(of)f(unico)s(de)g(co)s(de)h(p)s(oin)m(ts)f (to)h(pro)s(cess.)390 3642 y Fn(out)r Fx(:)41 b(Zero)30 b(terminated)h(ascii)h(result)e(string)g(p)s(oin)m(ter.)390 3804 y(Isolate)i(the)e(top-lev)m(el)j(domain)d(of)h Fr(in)f Fx(and)f(return)h(it)h(as)f(an)h(ASCI)s(I)d(string)j(in)f Fr(out)p Fx(.)390 3966 y Fl(Return)38 b(v)-5 b(alue:)56 b Fx(Return)37 b Fr(TLD_SUCCESS)d Fx(on)k(success,)i(or)e(the)g (corresp)s(onding)f Fr(Tld_rc)f Fx(error)390 4075 y(co)s(de)31 b(otherwise.)150 4302 y Fq(tld)p 309 4302 37 5 v 54 w(get)p 528 4302 V 54 w(z)3350 4526 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(tld_get_z)48 b Fo(\()p Fn(const)32 b(c)m(har)e(*)h Fm(in)12 b Fn(,)31 b(c)m(har)g(**)g Fm(out)12 b Fo(\))390 4635 y Fn(in)p Fx(:)40 b(Zero)31 b(terminated)g(c)m(haracter)h(arra)m (y)e(to)i(pro)s(cess.)390 4797 y Fn(out)r Fx(:)41 b(Zero)30 b(terminated)h(ascii)h(result)e(string)g(p)s(oin)m(ter.)390 4959 y(Isolate)f(the)e(top-lev)m(el)j(domain)d(of)g Fr(in)g Fx(and)g(return)f(it)i(as)f(an)g(ASCI)s(I)f(string)h(in)g Fr(out)p Fx(.)39 b(The)27 b(input)390 5069 y(string)j Fr(in)g Fx(ma)m(y)h(b)s(e)f(UTF-8,)h(ISO-8859-1)i(or)d(an)m(y)h(ASCI)s (I)d(compatible)k(c)m(haracter)g(enco)s(ding.)390 5230 y Fl(Return)38 b(v)-5 b(alue:)56 b Fx(Return)37 b Fr(TLD_SUCCESS)d Fx(on)k(success,)i(or)e(the)g(corresp)s(onding)f Fr(Tld_rc)f Fx(error)390 5340 y(co)s(de)31 b(otherwise.)p eop end %%Page: 33 38 TeXDict begin 33 37 bop 150 -116 a Fx(Chapter)30 b(7:)41 b(TLD)30 b(F)-8 b(unctions)2437 b(33)150 299 y Fq(tld)p 309 299 37 5 v 54 w(get)p 528 299 V 54 w(table)3350 515 y Fx([F)-8 b(unction])-3599 b Fp(const)54 b(Tld_table)h(*)d (tld_get_table)e Fo(\()p Fn(const)30 b(c)m(har)g(*)f Fm(tld)12 b Fn(,)30 b(const)g(Tld)p 2970 515 28 4 v 39 w(table)565 625 y(**)h Fm(tables)12 b Fo(\))390 735 y Fn(tld)t Fx(:)40 b(TLD)31 b(name)f(\(e.g.)42 b Fr(")p Fx(com)p Fr(")p Fx(\))31 b(as)f(zero)i(terminated)f(ASCI)s(I)d(b)m(yte) j(string.)390 889 y Fn(tables)t Fx(:)41 b(Zero)31 b(terminated)f(arra)m (y)h(of)g Fr(Tld_table)d Fx(info-structures)i(for)g(TLDs.)390 1043 y(Get)25 b(the)g(TLD)f(table)i(for)e(a)h(named)f(TLD)g(b)m(y)g (searc)m(hing)h(through)f(the)h(giv)m(en)g(TLD)f(table)i(arra)m(y)-8 b(.)390 1197 y Fl(Return)29 b(v)-5 b(alue:)40 b Fx(Return)29 b(structure)g(corresp)s(onding)f(to)i(TLD)f Fr(tld)f Fx(b)m(y)h(going)i(thru)d Fr(tables)p Fx(,)g(or)390 1307 y(return)h Fr(NULL)g Fx(if)i(no)f(suc)m(h)g(structure)g(is)g(found.)150 1526 y Fq(tld)p 309 1526 37 5 v 54 w(default)p 734 1526 V 54 w(table)3350 1742 y Fx([F)-8 b(unction])-3599 b Fp(const)54 b(Tld_table)h(*)d(tld_default_table)f Fo(\()p Fn(const)31 b(c)m(har)g(*)g Fm(tld)12 b Fn(,)31 b(const)565 1852 y(Tld)p 713 1852 28 4 v 40 w(table)g(**)g Fm(overrides)12 b Fo(\))390 1961 y Fn(tld)t Fx(:)40 b(TLD)31 b(name)f(\(e.g.)42 b Fr(")p Fx(com)p Fr(")p Fx(\))31 b(as)f(zero)i(terminated)f(ASCI)s(I)d (b)m(yte)j(string.)390 2116 y Fn(o)m(v)m(errides)t Fx(:)48 b(Additional)34 b(zero)g(terminated)g(arra)m(y)g(of)g Fr(Tld_table)d Fx(info-structures)i(for)g(TLDs,)390 2225 y(or)d Fr(NULL)g Fx(to)h(only)f(use)g(library)g(deault)h(tables.)390 2379 y(Get)h(the)f(TLD)g(table)h(for)f(a)g(named)f(TLD,)i(using)e(the)h (in)m(ternal)h(defaults,)f(p)s(ossibly)f(o)m(v)m(errided)390 2489 y(b)m(y)g(the)h(\(optional\))h(supplied)d(tables.)390 2643 y Fl(Return)24 b(v)-5 b(alue:)38 b Fx(Return)24 b(structure)g(corresp)s(onding)g(to)h(TLD)f Fr(tld_str)p Fx(,)g(\014rst)g(lo)s(oking)i(through)390 2753 y Fr(overrides)i Fx(then)i(thru)f(built-in)h(list,)i(or)e Fr(NULL)f Fx(if)i(no)f(suc)m (h)g(structure)g(found.)150 3015 y Fw(7.4)68 b(High-Lev)l(el)46 b(W)-11 b(rapp)t(er)45 b(F)-11 b(unctions)150 3239 y Fq(tld)p 309 3239 37 5 v 54 w(c)m(hec)m(k)p 656 3239 V 52 w(4)3350 3455 y Fx([F)j(unction])-3599 b Fp(int)53 b(tld_check_4)c Fo(\()p Fn(const)31 b(uin)m(t32)p 1508 3455 28 4 v 41 w(t)g(*)g Fm(in)12 b Fn(,)30 b(size)p 2003 3455 V 41 w(t)h Fm(inlen)12 b Fn(,)32 b(size)p 2580 3455 V 40 w(t)f(*)g Fm(errpos)12 b Fn(,)565 3565 y(const)31 b(Tld)p 951 3565 V 39 w(table)h(**)f Fm(overrides)12 b Fo(\))390 3675 y Fn(in)p Fx(:)40 b(Arra)m(y)31 b(of)g(unico)s(de)e (co)s(de)i(p)s(oin)m(ts)f(to)h(pro)s(cess.)41 b(Do)s(es)31 b(not)f(need)g(to)h(b)s(e)f(zero)h(terminated.)390 3829 y Fn(inlen)p Fx(:)41 b(Num)m(b)s(er)29 b(of)h(unico)s(de)g(co)s(de)h(p) s(oin)m(ts.)390 3983 y Fn(errp)s(os)t Fx(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m(haracter)i(is)e(returned)g(here.)390 4137 y Fn(o)m(v)m(errides)t Fx(:)48 b(A)34 b Fr(Tld_table)d Fx(arra)m(y)j(of)g(additional)h(domain)e(restriction)i(structures)e (that)h(com-)390 4247 y(plemen)m(t)d(and)f(sup)s(ersede)f(the)h (built-in)g(information.)390 4401 y(T)-8 b(est)26 b(eac)m(h)h(of)f(the) g(co)s(de)g(p)s(oin)m(ts)g(in)f Fr(in)g Fx(for)h(whether)f(or)h(not)g (they)g(are)g(allo)m(w)m(ed)h(b)m(y)f(the)g(informa-)390 4511 y(tion)32 b(in)g Fr(overrides)d Fx(or)j(b)m(y)g(the)g(built-in)g (TLD)g(restriction)g(data.)46 b(When)32 b(data)h(for)e(the)i(same)390 4620 y(TLD)39 b(is)g(a)m(v)-5 b(ailable)41 b(b)s(oth)d(in)m(ternally)i (and)e(in)h Fr(overrides)p Fx(,)g(the)g(information)g(in)f Fr(overrides)390 4730 y Fx(tak)m(es)29 b(precedence.)40 b(If)27 b(sev)m(eral)i(en)m(tries)g(for)e(a)h(sp)s(eci\014c)g(TLD)f (are)h(found,)f(the)h(\014rst)f(one)h(is)f(used.)390 4839 y(If)k Fr(overrides)e Fx(is)i Fr(NULL)p Fx(,)f(only)i(the)f (built-in)g(information)h(is)f(used.)43 b(The)30 b(p)s(osition)i(of)f (the)h(\014rst)390 4949 y(o\013ending)e(c)m(haracter)i(is)f(returned)e (in)h Fr(errpos)p Fx(.)390 5103 y Fl(Return)h(v)-5 b(alue:)44 b Fx(Returns)31 b(the)h Fr(Tld_rc)e Fx(v)-5 b(alue)32 b Fr(TLD_SUCCESS)c Fx(if)k(all)g(co)s(de)g(p)s(oin)m(ts)g(are)g(v)-5 b(alid)32 b(or)390 5213 y(when)27 b Fr(tld)f Fx(is)i(n)m(ull,)g Fr(TLD_INVALID)d Fx(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k (or)c(additional)i(error)e(co)s(des)390 5322 y(on)j(general)i(failure)e (conditions.)p eop end %%Page: 34 39 TeXDict begin 34 38 bop 150 -116 a Fx(Chapter)30 b(7:)41 b(TLD)30 b(F)-8 b(unctions)2437 b(34)150 299 y Fq(tld)p 309 299 37 5 v 54 w(c)m(hec)m(k)p 656 299 V 52 w(4z)3350 501 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(tld_check_4z)c Fo(\()p Fn(const)32 b(uin)m(t32)p 1561 501 28 4 v 41 w(t)e(*)h Fm(in)12 b Fn(,)31 b(size)p 2056 501 V 41 w(t)f(*)h Fm(errpos)12 b Fn(,)32 b(const)565 610 y(Tld)p 713 610 V 40 w(table)f(**)g Fm(overrides)12 b Fo(\))390 720 y Fn(in)p Fx(:)40 b(Zero-terminated)32 b(arra)m(y)f(of)f(unico)s(de)g(co) s(de)h(p)s(oin)m(ts)f(to)h(pro)s(cess.)390 860 y Fn(errp)s(os)t Fx(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m(haracter)i(is)e (returned)g(here.)390 999 y Fn(o)m(v)m(errides)t Fx(:)48 b(A)34 b Fr(Tld_table)d Fx(arra)m(y)j(of)g(additional)h(domain)e (restriction)i(structures)e(that)h(com-)390 1109 y(plemen)m(t)d(and)f (sup)s(ersede)f(the)h(built-in)g(information.)390 1248 y(T)-8 b(est)26 b(eac)m(h)h(of)f(the)g(co)s(de)g(p)s(oin)m(ts)g(in)f Fr(in)g Fx(for)h(whether)f(or)h(not)g(they)g(are)g(allo)m(w)m(ed)h(b)m (y)f(the)g(informa-)390 1358 y(tion)32 b(in)g Fr(overrides)d Fx(or)j(b)m(y)g(the)g(built-in)g(TLD)g(restriction)g(data.)46 b(When)32 b(data)h(for)e(the)i(same)390 1468 y(TLD)39 b(is)g(a)m(v)-5 b(ailable)41 b(b)s(oth)d(in)m(ternally)i(and)e(in)h Fr(overrides)p Fx(,)g(the)g(information)g(in)f Fr(overrides)390 1577 y Fx(tak)m(es)29 b(precedence.)40 b(If)27 b(sev)m(eral)i(en)m (tries)g(for)e(a)h(sp)s(eci\014c)g(TLD)f(are)h(found,)f(the)h(\014rst)f (one)h(is)f(used.)390 1687 y(If)k Fr(overrides)e Fx(is)i Fr(NULL)p Fx(,)f(only)i(the)f(built-in)g(information)h(is)f(used.)43 b(The)30 b(p)s(osition)i(of)f(the)h(\014rst)390 1796 y(o\013ending)e(c)m(haracter)i(is)f(returned)e(in)h Fr(errpos)p Fx(.)390 1936 y Fl(Return)h(v)-5 b(alue:)44 b Fx(Returns)31 b(the)h Fr(Tld_rc)e Fx(v)-5 b(alue)32 b Fr(TLD_SUCCESS)c Fx(if)k(all)g(co)s(de)g(p)s(oin)m(ts)g(are)g(v)-5 b(alid)32 b(or)390 2046 y(when)27 b Fr(tld)f Fx(is)i(n)m(ull,)g Fr(TLD_INVALID)d Fx(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k (or)c(additional)i(error)e(co)s(des)390 2155 y(on)j(general)i(failure)e (conditions.)150 2360 y Fq(tld)p 309 2360 37 5 v 54 w(c)m(hec)m(k)p 656 2360 V 52 w(8z)3350 2562 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(tld_check_8z)c Fo(\()p Fn(const)32 b(c)m(har)e(*)h Fm(in)12 b Fn(,)31 b(size)p 1900 2562 28 4 v 41 w(t)f(*)h Fm(errpos)12 b Fn(,)32 b(const)f(Tld)p 2843 2562 V 39 w(table)h(**)565 2671 y Fm(overrides)12 b Fo(\))390 2781 y Fn(in)p Fx(:)40 b(Zero-terminated)32 b(UTF8)f(string)f(to)h(pro)s (cess.)390 2920 y Fn(errp)s(os)t Fx(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m(haracter)i(is)e(returned)g(here.)390 3060 y Fn(o)m(v)m(errides)t Fx(:)48 b(A)34 b Fr(Tld_table)d Fx(arra)m(y)j(of)g(additional)h(domain)e(restriction)i(structures)e (that)h(com-)390 3170 y(plemen)m(t)d(and)f(sup)s(ersede)f(the)h (built-in)g(information.)390 3309 y(T)-8 b(est)21 b(eac)m(h)h(of)f(the) g(c)m(haracters)h(in)e Fr(in)h Fx(for)f(whether)g(or)h(not)g(they)g (are)g(allo)m(w)m(ed)h(b)m(y)f(the)g(information)390 3419 y(in)29 b Fr(overrides)e Fx(or)j(b)m(y)f(the)h(built-in)f(TLD)h (restriction)g(data.)41 b(When)30 b(data)g(for)f(the)h(same)g(TLD)390 3528 y(is)38 b(a)m(v)-5 b(ailable)40 b(b)s(oth)e(in)m(ternally)g(and)g (in)f Fr(overrides)p Fx(,)h(the)g(information)g(in)g Fr(overrides)d Fx(tak)m(es)390 3638 y(precedence.)56 b(If)34 b(sev)m(eral)j(en)m(tries)f(for)f(a)g(sp)s(eci\014c)g(TLD)h (are)f(found,)g(the)h(\014rst)e(one)i(is)f(used.)54 b(If)390 3748 y Fr(overrides)35 b Fx(is)i Fr(NULL)p Fx(,)h(only)g(the)f (built-in)g(information)h(is)f(used.)61 b(The)36 b(p)s(osition)i(of)f (the)h(\014rst)390 3857 y(o\013ending)32 b(c)m(haracter)i(is)e (returned)f(in)h Fr(errpos)p Fx(.)44 b(Note)34 b(that)f(the)f(error)g (p)s(osition)g(refers)g(to)h(the)390 3967 y(deco)s(ded)d(c)m(haracter)i (o\013set)f(rather)g(than)f(the)g(b)m(yte)h(p)s(osition)g(in)f(the)g (string.)390 4106 y Fl(Return)35 b(v)-5 b(alue:)52 b Fx(Returns)35 b(the)g Fr(Tld_rc)f Fx(v)-5 b(alue)36 b Fr(TLD_SUCCESS)d Fx(if)i(all)i(c)m(haracters)g(are)f(v)-5 b(alid)36 b(or)390 4216 y(when)27 b Fr(tld)f Fx(is)i(n)m(ull,)g Fr(TLD_INVALID)d Fx(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k (or)c(additional)i(error)e(co)s(des)390 4326 y(on)j(general)i(failure)e (conditions.)150 4530 y Fq(tld)p 309 4530 37 5 v 54 w(c)m(hec)m(k)p 656 4530 V 52 w(lz)3350 4732 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(tld_check_lz)c Fo(\()p Fn(const)32 b(c)m(har)e(*)h Fm(in)12 b Fn(,)31 b(size)p 1900 4732 28 4 v 41 w(t)f(*)h Fm(errpos)12 b Fn(,)32 b(const)f(Tld)p 2843 4732 V 39 w(table)h(**)565 4842 y Fm(overrides)12 b Fo(\))390 4951 y Fn(in)p Fx(:)40 b(Zero-terminated)32 b(string)e(in)g(the)h(curren)m (t)f(lo)s(cales)i(enco)s(ding)e(to)h(pro)s(cess.)390 5091 y Fn(errp)s(os)t Fx(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m (haracter)i(is)e(returned)g(here.)390 5230 y Fn(o)m(v)m(errides)t Fx(:)48 b(A)34 b Fr(Tld_table)d Fx(arra)m(y)j(of)g(additional)h(domain) e(restriction)i(structures)e(that)h(com-)390 5340 y(plemen)m(t)d(and)f (sup)s(ersede)f(the)h(built-in)g(information.)p eop end %%Page: 35 40 TeXDict begin 35 39 bop 150 -116 a Fx(Chapter)30 b(7:)41 b(TLD)30 b(F)-8 b(unctions)2437 b(35)390 299 y(T)-8 b(est)21 b(eac)m(h)h(of)f(the)g(c)m(haracters)h(in)e Fr(in)h Fx(for)f(whether)g (or)h(not)g(they)g(are)g(allo)m(w)m(ed)h(b)m(y)f(the)g(information)390 408 y(in)29 b Fr(overrides)e Fx(or)j(b)m(y)f(the)h(built-in)f(TLD)h (restriction)g(data.)41 b(When)30 b(data)g(for)f(the)h(same)g(TLD)390 518 y(is)38 b(a)m(v)-5 b(ailable)40 b(b)s(oth)e(in)m(ternally)g(and)g (in)f Fr(overrides)p Fx(,)h(the)g(information)g(in)g Fr(overrides)d Fx(tak)m(es)390 628 y(precedence.)56 b(If)34 b(sev)m(eral)j(en)m(tries)f(for)f(a)g(sp)s(eci\014c)g(TLD)h(are)f (found,)g(the)h(\014rst)e(one)i(is)f(used.)54 b(If)390 737 y Fr(overrides)35 b Fx(is)i Fr(NULL)p Fx(,)h(only)g(the)f(built-in) g(information)h(is)f(used.)61 b(The)36 b(p)s(osition)i(of)f(the)h (\014rst)390 847 y(o\013ending)32 b(c)m(haracter)i(is)e(returned)f(in)h Fr(errpos)p Fx(.)44 b(Note)34 b(that)f(the)f(error)g(p)s(osition)g (refers)g(to)h(the)390 956 y(deco)s(ded)d(c)m(haracter)i(o\013set)f (rather)g(than)f(the)g(b)m(yte)h(p)s(osition)g(in)f(the)g(string.)390 1091 y Fl(Return)35 b(v)-5 b(alue:)52 b Fx(Returns)35 b(the)g Fr(Tld_rc)f Fx(v)-5 b(alue)36 b Fr(TLD_SUCCESS)d Fx(if)i(all)i(c)m(haracters)g(are)f(v)-5 b(alid)36 b(or)390 1200 y(when)27 b Fr(tld)f Fx(is)i(n)m(ull,)g Fr(TLD_INVALID)d Fx(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k(or)c(additional) i(error)e(co)s(des)390 1310 y(on)j(general)i(failure)e(conditions.)150 1543 y Fw(7.5)68 b(Error)45 b(Handling)150 1767 y Fq(tld)p 309 1767 37 5 v 54 w(strerror)3350 1963 y Fx([F)-8 b(unction])-3599 b Fp(const)54 b(char)f(*)g(tld_strerror)c Fo(\()p Fn(Tld)p 1686 1963 28 4 v 40 w(rc)30 b Fm(rc)12 b Fo(\))390 2073 y Fn(rc)6 b Fx(:)40 b(tld)31 b(return)e(co)s(de)390 2208 y(Con)m(v)m(ert)35 b(a)f(return)e(co)s(de)i(in)m(teger)i(to)e(a)g(text) h(string.)51 b(This)33 b(string)h(can)g(b)s(e)f(used)g(to)h(output)g(a) 390 2317 y(diagnostic)e(message)f(to)g(the)g(user.)390 2452 y Fl(TLD)p 584 2452 28 5 v 39 w(SUCCESS:)21 b Fx(Successful)h(op)s (eration.)39 b(This)22 b(v)-5 b(alue)23 b(is)g(guaran)m(teed)h(to)g (alw)m(a)m(ys)g(b)s(e)e(zero,)k(the)390 2561 y(remaining)36 b(ones)g(are)h(only)f(guaran)m(teed)h(to)g(hold)f(non-zero)g(v)-5 b(alues,)38 b(for)e(logical)j(comparison)390 2671 y(purp)s(oses.)390 2805 y Fl(TLD)p 584 2805 V 39 w(INV)-10 b(ALID:)30 b Fx(In)m(v)-5 b(alid)30 b(c)m(haracter)i(found.)390 2940 y Fl(TLD)p 584 2940 V 39 w(NOD)m(A)-8 b(T)g(A:)32 b Fx(No)f(input)e (data)i(w)m(as)g(pro)m(vided.)390 3074 y Fl(TLD)p 584 3074 V 39 w(MALLOC)p 1022 3074 V 39 w(ERR)m(OR:)g Fx(Error)f(during)f (memory)h(allo)s(cation.)390 3209 y Fl(TLD)p 584 3209 V 39 w(ICONV)p 933 3209 V 40 w(ERR)m(OR:)h Fx(Error)f(during)f(icon)m (v)i(string)g(con)m(v)m(ersion.)390 3343 y Fl(TLD)p 584 3343 V 39 w(NO)p 762 3343 V 41 w(TLD:)f Fx(No)h(top-lev)m(el)h(domain)f (found)e(in)h(domain)g(string.)390 3478 y Fl(Return)f(v)-5 b(alue:)40 b Fx(Returns)29 b(a)g(p)s(oin)m(ter)h(to)g(a)f(statically)j (allo)s(cated)f(string)f(con)m(taining)h(a)e(descrip-)390 3587 y(tion)i(of)f(the)h(error)f(with)g(the)h(return)e(co)s(de)h Fr(rc)p Fx(.)p eop end %%Page: 36 41 TeXDict begin 36 40 bop 150 -116 a Fx(Chapter)30 b(8:)41 b(PR29)31 b(F)-8 b(unctions)2409 b(36)150 299 y Fu(8)80 b(PR29)54 b(F)-13 b(unctions)150 561 y Fx(A)42 b(de\014ciency)f(in)g (the)h(sp)s(eci\014cation)g(of)g(Unico)s(de)f(Normalization)j(F)-8 b(orms)42 b(has)f(b)s(een)g(found.)72 b(The)150 671 y(consequence)36 b(is)g(that)g(some)g(strings)f(can)h(b)s(e)f(normalized)h(in)m(to)h (di\013eren)m(t)f(strings)f(b)m(y)h(di\013eren)m(t)g(im-)150 781 y(plemen)m(tations.)49 b(In)31 b(other)i(w)m(ords,)g(t)m(w)m(o)h (di\013eren)m(t)f(implemen)m(tations)h(ma)m(y)f(return)e(di\013eren)m (t)i(output)150 890 y(for)e(the)g(same)g(input)g(\(b)s(ecause)g(the)g (in)m(terpretation)i(of)e(the)g(sp)s(eci\014cation)h(is)f(am)m (biguous\).)43 b(F)-8 b(urther,)150 1000 y(an)35 b(implemen)m(tation)i (in)m(v)m(ok)m(ed)g(again)g(on)e(the)g(one)h(of)g(the)f(output)g (strings)g(ma)m(y)h(return)f(a)g(di\013eren)m(t)150 1109 y(string)26 b(\(b)s(ecause)g(one)g(of)g(the)g(in)m(terpretation)i(of)e (the)g(am)m(biguous)g(sp)s(eci\014cation)g(mak)m(e)h(normalization)150 1219 y(non-idemp)s(oten)m(t\).)58 b(F)-8 b(ortunately)g(,)40 b(only)c(a)g(select)i(few)d(c)m(haracter)j(sequence)e(exhibit)g(this)g (problem,)150 1329 y(and)h(none)h(of)h(them)f(are)g(exp)s(ected)h(to)g (o)s(ccur)e(in)h(natural)g(languages)i(\(due)e(to)g(di\013eren)m(t)h (linguistic)150 1438 y(uses)30 b(of)g(the)h(in)m(v)m(olv)m(ed)h(c)m (haracters\).)275 1582 y(A)e(full)g(discussion)g(of)g(the)h(problem)f (ma)m(y)h(b)s(e)e(found)h(at:)275 1726 y Fr(http://www.unicode.org/)o (rev)o(iew/)o(pr-2)o(9.h)o(tml)275 1870 y Fx(The)35 b(PR29)h(functions) f(b)s(elo)m(w)h(allo)m(w)h(y)m(ou)f(to)g(detect)h(the)f(problem)e (sequence.)57 b(So)36 b(when)e(w)m(ould)150 1980 y(y)m(ou)40 b(w)m(an)m(t)h(to)f(use)g(these)g(functions?)69 b(F)-8 b(or)40 b(most)g(applications,)k(suc)m(h)39 b(as)i(those)f(using)f (Nameprep)150 2089 y(for)33 b(IDN,)g(this)g(is)g(lik)m(ely)h(only)f(to) h(b)s(e)e(an)h(in)m(terop)s(erabilit)m(y)h(problem.)48 b(Th)m(us,)33 b(y)m(ou)g(ma)m(y)g(not)g(w)m(an)m(t)h(to)150 2199 y(care)j(ab)s(out)e(it,)j(as)e(the)g(c)m(haracter)h(sequences)f (will)g(rarely)g(o)s(ccur)g(naturally)-8 b(.)57 b(Ho)m(w)m(ev)m(er,)40 b(if)35 b(y)m(ou)i(are)150 2309 y(using)31 b(a)h(pro\014le,)h(suc)m(h)e (as)h(SASLPrep,)f(to)h(pro)s(cess)g(authen)m(tication)i(tok)m(ens;)f (authorization)h(tok)m(ens;)150 2418 y(or)c(passw)m(ords,)f(there)h(is) f(a)h(real)g(danger)g(that)g(attac)m(k)m(ers)i(ma)m(y)f(try)e(to)i(use) e(the)h(p)s(eculiarities)g(in)f(these)150 2528 y(strings)f(to)h(attac)m (k)i(parts)d(of)h(y)m(our)f(system.)40 b(As)29 b(only)f(a)h(small)g(n)m (um)m(b)s(er)e(of)i(strings,)g(and)e(no)i(naturally)150 2637 y(o)s(ccurring)e(strings,)i(exhibit)e(this)h(problem,)g(the)g (conserv)-5 b(ativ)m(e)29 b(approac)m(h)f(of)g(rejecting)h(the)e (strings)h(is)150 2747 y(recommended.)40 b(If)28 b(this)h(approac)m(h)g (is)g(not)h(used,)e(y)m(ou)h(should)f(instead)i(v)m(erify)f(that)g(all) h(parts)f(of)g(y)m(our)150 2856 y(system,)i(that)g(pro)s(cess)f(the)h (tok)m(ens)h(and)e(passw)m(ords,)g(use)g(a)h(NFK)m(C)g(implemen)m (tation)h(that)f(pro)s(duce)150 2966 y(the)g(same)f(output)g(for)g(the) h(same)g(input.)275 3110 y(T)-8 b(ec)m(hnically)32 b(inclined)f (readers)g(ma)m(y)h(b)s(e)e(in)m(terested)i(in)f(kno)m(wing)g(more)g (ab)s(out)f(the)i(implemen)m(ta-)150 3220 y(tion)f(asp)s(ects)g(of)f (the)h(PR29)g(\015a)m(w.)40 b(See)31 b(App)s(endix)e(A)h([PR29)h (discussion],)g(page)g(64.)150 3466 y Fw(8.1)68 b(Header)46 b(\014le)f Fj(pr29.h)150 3626 y Fx(T)-8 b(o)31 b(use)f(the)g(functions) g(explained)h(in)f(this)g(c)m(hapter,)i(y)m(ou)e(need)g(to)i(include)e (the)g(\014le)h(`)p Fr(pr29.h)p Fx(')e(using:)390 3770 y Fr(#include)46 b()150 4016 y Fw(8.2)68 b(Core)46 b(F)-11 b(unctions)150 4241 y Fq(pr29)p 399 4241 37 5 v 55 w(4)3350 4447 y Fx([F)j(unction])-3599 b Fp(int)53 b(pr29_4)47 b Fo(\()p Fn(const)32 b(uin)m(t32)p 1247 4447 28 4 v 41 w(t)e(*)h Fm(in)12 b Fn(,)31 b(size)p 1742 4447 V 41 w(t)f Fm(len)12 b Fo(\))390 4556 y Fn(in)p Fx(:)40 b(input)30 b(arra)m(y)h(with)f(unico)s(de)g(co)s(de)g(p)s(oin)m (ts.)390 4700 y Fn(len)p Fx(:)41 b(length)31 b(of)f(input)g(arra)m(y)g (with)h(unico)s(de)e(co)s(de)i(p)s(oin)m(ts.)390 4844 y(Chec)m(k)23 b(the)g(input)f(to)i(see)f(if)g(it)g(ma)m(y)g(b)s(e)g (normalized)g(in)m(to)h(di\013eren)m(t)f(strings)g(b)m(y)f(di\013eren)m (t)i(NFK)m(C)390 4954 y(implemen)m(tations,)32 b(due)e(to)h(an)f (anomaly)h(in)f(the)h(NFK)m(C)g(sp)s(eci\014cations.)390 5098 y Fl(Return)47 b(v)-5 b(alue:)75 b Fx(Returns)47 b(the)g Fr(Pr29_rc)e Fx(v)-5 b(alue)48 b Fr(PR29_SUCCESS)c Fx(on)k(success,)k(and)46 b Fr(PR29_)390 5208 y(PROBLEM)28 b Fx(if)i(the)g(input)g(sequence)g(is)g(a)h Fr(")p Fx(problem)e (sequence)p Fr(")h Fx(\(i.e.,)i(ma)m(y)f(b)s(e)e(normalized)i(in)m(to) 390 5317 y(di\013eren)m(t)g(strings)f(b)m(y)g(di\013eren)m(t)h (implemen)m(tations\).)p eop end %%Page: 37 42 TeXDict begin 37 41 bop 150 -116 a Fx(Chapter)30 b(8:)41 b(PR29)31 b(F)-8 b(unctions)2409 b(37)150 299 y Fw(8.3)68 b(Utilit)l(y)47 b(F)-11 b(unctions)150 523 y Fq(pr29)p 399 523 37 5 v 55 w(4z)3350 720 y Fx([F)j(unction])-3599 b Fp(int)53 b(pr29_4z)48 b Fo(\()p Fn(const)31 b(uin)m(t32)p 1299 720 28 4 v 41 w(t)g(*)f Fm(in)12 b Fo(\))390 829 y Fn(in)p Fx(:)40 b(zero)32 b(terminated)e(arra)m(y)h(of)g(Unico)s(de)f (co)s(de)h(p)s(oin)m(ts.)390 964 y(Chec)m(k)23 b(the)g(input)f(to)i (see)f(if)g(it)g(ma)m(y)g(b)s(e)g(normalized)g(in)m(to)h(di\013eren)m (t)f(strings)g(b)m(y)f(di\013eren)m(t)i(NFK)m(C)390 1073 y(implemen)m(tations,)32 b(due)e(to)h(an)f(anomaly)h(in)f(the)h(NFK)m (C)g(sp)s(eci\014cations.)390 1208 y Fl(Return)47 b(v)-5 b(alue:)75 b Fx(Returns)47 b(the)g Fr(Pr29_rc)e Fx(v)-5 b(alue)48 b Fr(PR29_SUCCESS)c Fx(on)k(success,)k(and)46 b Fr(PR29_)390 1318 y(PROBLEM)28 b Fx(if)i(the)g(input)g(sequence)g(is) g(a)h Fr(")p Fx(problem)e(sequence)p Fr(")h Fx(\(i.e.,)i(ma)m(y)f(b)s (e)e(normalized)i(in)m(to)390 1427 y(di\013eren)m(t)g(strings)f(b)m(y)g (di\013eren)m(t)h(implemen)m(tations\).)150 1626 y Fq(pr29)p 399 1626 37 5 v 55 w(8z)3350 1823 y Fx([F)-8 b(unction])-3599 b Fp(int)53 b(pr29_8z)48 b Fo(\()p Fn(const)31 b(c)m(har)g(*)g Fm(in)12 b Fo(\))390 1933 y Fn(in)p Fx(:)40 b(zero)32 b(terminated)e(input)g(UTF-8)h(string.)390 2067 y(Chec)m(k)23 b(the)g(input)f(to)i(see)f(if)g(it)g(ma)m(y)g(b)s(e)g(normalized)g(in)m (to)h(di\013eren)m(t)f(strings)g(b)m(y)f(di\013eren)m(t)i(NFK)m(C)390 2177 y(implemen)m(tations,)32 b(due)e(to)h(an)f(anomaly)h(in)f(the)h (NFK)m(C)g(sp)s(eci\014cations.)390 2311 y Fl(Return)47 b(v)-5 b(alue:)75 b Fx(Returns)47 b(the)g Fr(Pr29_rc)e Fx(v)-5 b(alue)48 b Fr(PR29_SUCCESS)c Fx(on)k(success,)k(and)46 b Fr(PR29_)390 2421 y(PROBLEM)28 b Fx(if)i(the)g(input)g(sequence)g(is) g(a)h Fr(")p Fx(problem)e(sequence)p Fr(")h Fx(\(i.e.,)i(ma)m(y)f(b)s (e)e(normalized)i(in)m(to)390 2531 y(di\013eren)m(t)37 b(strings)e(b)m(y)h(di\013eren)m(t)h(implemen)m(tations\),)i(or)d Fr(PR29_STRINGPREP_ERROR)31 b Fx(if)36 b(there)390 2640 y(w)m(as)31 b(a)g(problem)e(con)m(v)m(erting)j(the)f(string)f(from)g (UTF-8)i(to)f(UCS-4.)150 2873 y Fw(8.4)68 b(Error)45 b(Handling)150 3097 y Fq(pr29)p 399 3097 V 55 w(strerror)3350 3293 y Fx([F)-8 b(unction])-3599 b Fp(const)54 b(char)f(*)g (pr29_strerror)c Fo(\()p Fn(Pr29)p 1784 3293 28 4 v 41 w(rc)30 b Fm(rc)12 b Fo(\))390 3403 y Fn(rc)6 b Fx(:)40 b(an)30 b Fr(Pr29_rc)f Fx(return)g(co)s(de.)390 3538 y(Con)m(v)m(ert)35 b(a)f(return)e(co)s(de)i(in)m(teger)i(to)e(a)g(text) h(string.)51 b(This)33 b(string)h(can)g(b)s(e)f(used)g(to)h(output)g(a) 390 3647 y(diagnostic)e(message)f(to)g(the)g(user.)390 3782 y Fl(PR29)p 617 3782 28 5 v 41 w(SUCCESS:)h Fx(Successful)h(op)s (eration.)53 b(This)33 b(v)-5 b(alue)35 b(is)f(guaran)m(teed)i(to)f (alw)m(a)m(ys)g(b)s(e)f(zero,)390 3891 y(the)23 b(remaining)f(ones)h (are)g(only)g(guaran)m(teed)g(to)g(hold)g(non-zero)g(v)-5 b(alues,)24 b(for)f(logical)i(comparison)390 4001 y(purp)s(oses.)390 4135 y Fl(PR29)p 617 4135 V 41 w(PR)m(OBLEM:)31 b Fx(A)f(problem)g (sequence)h(w)m(as)f(encoun)m(tered.)390 4270 y Fl(PR29)p 617 4270 V 41 w(STRINGPREP)p 1272 4270 V 40 w(ERR)m(OR:)35 b Fx(The)f(c)m(haracter)h(set)g(con)m(v)m(ersion)g(failed)g(\(only)g (for)e Fr(pr29_)390 4379 y(8\(\))c Fx(and)h Fr(pr29_8z\(\))p Fx(\).)390 4514 y Fl(Return)f(v)-5 b(alue:)40 b Fx(Returns)29 b(a)g(p)s(oin)m(ter)h(to)g(a)f(statically)j(allo)s(cated)f(string)f (con)m(taining)h(a)e(descrip-)390 4623 y(tion)i(of)f(the)h(error)f (with)g(the)h(return)e(co)s(de)h Fr(rc)p Fx(.)p eop end %%Page: 38 43 TeXDict begin 38 42 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(38)150 299 y Fu(9)80 b(Examples)150 537 y Fx(This)26 b(c)m(hapter)h(con)m(tains)h(example)f(co)s(de)g(whic) m(h)g(illustrate)h(ho)m(w)e(`Libidn')g(can)h(b)s(e)f(used)g(when)g (writing)150 646 y(y)m(our)k(o)m(wn)h(application.)150 880 y Fw(9.1)68 b(Example)46 b(1)150 1040 y Fx(This)30 b(example)h(demonstrates)f(ho)m(w)h(the)f(stringprep)g(functions)g(are) g(used.)150 1176 y Fr(/*)47 b(example.c)e(---)i(Example)f(code)h (showing)f(how)h(to)g(use)g(stringprep\(\).)198 1285 y(*)g(Copyright)e(\(C\))i(2002,)g(2003,)f(2004,)g(2005,)h(2006,)f (2007,)h(2008,)f(2009)h(Simon)f(Josefsson)198 1395 y(*)198 1504 y(*)h(This)g(file)f(is)i(part)e(of)h(GNU)g(Libidn.)198 1614 y(*)198 1724 y(*)g(This)g(program)f(is)h(free)f(software:)93 b(you)47 b(can)g(redistribute)e(it)i(and/or)f(modify)198 1833 y(*)h(it)g(under)g(the)g(terms)f(of)h(the)g(GNU)g(General)f (Public)g(License)g(as)h(published)e(by)198 1943 y(*)i(the)g(Free)g (Software)e(Foundation,)g(either)h(version)g(3)h(of)h(the)e(License,)g (or)198 2052 y(*)h(\(at)g(your)g(option\))f(any)g(later)h(version.)198 2162 y(*)198 2271 y(*)g(This)g(program)f(is)h(distributed)e(in)i(the)g (hope)f(that)h(it)g(will)g(be)g(useful,)198 2381 y(*)g(but)g(WITHOUT)f (ANY)h(WARRANTY;)e(without)h(even)h(the)f(implied)g(warranty)g(of)198 2491 y(*)h(MERCHANTABILITY)d(or)j(FITNESS)f(FOR)h(A)g(PARTICULAR)e (PURPOSE.)93 b(See)47 b(the)198 2600 y(*)g(GNU)g(General)f(Public)g (License)g(for)h(more)f(details.)198 2710 y(*)198 2819 y(*)h(You)g(should)f(have)h(received)e(a)j(copy)e(of)i(the)f(GNU)f (General)g(Public)g(License)198 2929 y(*)h(along)g(with)f(this)h (program.)189 b(If)47 b(not,)f(see)h(.)198 3039 y(*)198 3148 y(*/)150 3367 y(#include)f()150 3477 y(#include)g()150 3587 y(#include)g()150 3696 y(#include)g()617 b(/*)47 b(setlocale\(\))e(*/)150 3806 y(#include)h()150 4025 y(/*)198 4134 y(*)h(Compiling)e(using)i(libtool)f(and)h(pkg-config)e(is)i (recommended:)198 4244 y(*)198 4354 y(*)g($)h(libtool)d(cc)j(-o)f (example)f(example.c)f(`pkg-config)g(--cflags)g(--libs)h(libidn`)198 4463 y(*)h($)h(./example)198 4573 y(*)f(Input)g(string)f(encoded)f(as)j (`ISO-8859-1':)92 b(a)198 4682 y(*)47 b(Before)f(locale2utf8)f (\(length)h(2\):)94 b(aa)48 b(0a)198 4792 y(*)f(Before)f(stringprep)f (\(length)h(3\):)95 b(c2)47 b(aa)g(0a)198 4902 y(*)g(After)g (stringprep)e(\(length)g(2\):)95 b(61)47 b(0a)198 5011 y(*)g($)198 5121 y(*)198 5230 y(*/)p eop end %%Page: 39 44 TeXDict begin 39 43 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(39)150 299 y Fr(int)150 408 y(main)47 b(\(void\))150 518 y({)245 628 y(char)g(buf[BUFSIZ];)245 737 y(char)g(*p;)245 847 y(int)g(rc;)245 956 y(size_t)g(i;)245 1176 y(setlocale)f(\(LC_ALL,)f(""\);)245 1395 y(printf)i(\("Input)e (string)h(encoded)g(as)h(`\045s':)95 b(",)47 b(stringprep_locale_chars) o(et)42 b(\(\)\);)245 1504 y(fflush)47 b(\(stdout\);)245 1614 y(fgets)g(\(buf,)f(BUFSIZ,)g(stdin\);)245 1833 y(printf)h (\("Before)e(locale2utf8)g(\(length)h(\045d\):)94 b(",)47 b(strlen)f(\(buf\)\);)245 1943 y(for)h(\(i)h(=)f(0;)g(i)h(<)f(strlen)f (\(buf\);)g(i++\))341 2052 y(printf)g(\("\04502x)g(",)h(buf[i])f(&)i (0xFF\);)245 2162 y(printf)f(\("\\n"\);)245 2381 y(p)h(=)f (stringprep_locale_to_utf8)41 b(\(buf\);)245 2491 y(if)48 b(\(p\))341 2600 y({)436 2710 y(strcpy)e(\(buf,)h(p\);)436 2819 y(free)g(\(p\);)341 2929 y(})245 3039 y(else)341 3148 y(printf)f(\("Could)g(not)h(convert)f(string)g(to)h(UTF-8,)f (continuing)f(anyway...\\n"\);)245 3367 y(printf)i(\("Before)e (stringprep)g(\(length)h(\045d\):)94 b(",)47 b(strlen)g(\(buf\)\);)245 3477 y(for)g(\(i)h(=)f(0;)g(i)h(<)f(strlen)f(\(buf\);)g(i++\))341 3587 y(printf)g(\("\04502x)g(",)h(buf[i])f(&)i(0xFF\);)245 3696 y(printf)f(\("\\n"\);)245 3915 y(rc)h(=)f(stringprep)e(\(buf,)h (BUFSIZ,)g(0,)h(stringprep_nameprep\);)245 4025 y(if)h(\(rc)f(!=)g (STRINGPREP_OK\))341 4134 y(printf)f(\("Stringprep)e(failed)j (\(\045d\):)94 b(\045s\\n",)46 b(rc,)h(stringprep_strerror)42 b(\(rc\)\);)245 4244 y(else)341 4354 y({)436 4463 y(printf)k(\("After)g (stringprep)f(\(length)h(\045d\):)94 b(",)48 b(strlen)e(\(buf\)\);)436 4573 y(for)h(\(i)g(=)h(0;)f(i)h(<)f(strlen)f(\(buf\);)g(i++\))532 4682 y(printf)g(\("\04502x)g(",)h(buf[i])f(&)i(0xFF\);)436 4792 y(printf)e(\("\\n"\);)341 4902 y(})245 5121 y(return)h(0;)150 5230 y(})p eop end %%Page: 40 45 TeXDict begin 40 44 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(40)150 299 y Fw(9.2)68 b(Example)46 b(2)150 458 y Fx(This)30 b(example)h(demonstrates)f(ho)m(w)h(the)f(pun) m(yco)s(de)g(functions)g(are)h(used.)150 628 y Fr(/*)47 b(example2.c)e(---)i(Example)f(code)h(showing)e(how)i(to)g(use)g (punycode.)198 737 y(*)g(Copyright)e(\(C\))i(2002,)g(2003,)f(2004,)g (2005,)h(2006,)f(2007,)h(2008,)f(2009)h(Simon)f(Josefsson)198 847 y(*)h(Copyright)e(\(C\))i(2002)95 b(Adam)46 b(M.)i(Costello)198 956 y(*)198 1066 y(*)f(This)g(file)f(is)i(part)e(of)h(GNU)g(Libidn.)198 1176 y(*)198 1285 y(*)g(This)g(program)f(is)h(free)f(software:)93 b(you)47 b(can)g(redistribute)e(it)i(and/or)f(modify)198 1395 y(*)h(it)g(under)g(the)g(terms)f(of)h(the)g(GNU)g(General)f (Public)g(License)g(as)h(published)e(by)198 1504 y(*)i(the)g(Free)g (Software)e(Foundation,)g(either)h(version)g(3)h(of)h(the)e(License,)g (or)198 1614 y(*)h(\(at)g(your)g(option\))f(any)g(later)h(version.)198 1724 y(*)198 1833 y(*)g(This)g(program)f(is)h(distributed)e(in)i(the)g (hope)f(that)h(it)g(will)g(be)g(useful,)198 1943 y(*)g(but)g(WITHOUT)f (ANY)h(WARRANTY;)e(without)h(even)h(the)f(implied)g(warranty)g(of)198 2052 y(*)h(MERCHANTABILITY)d(or)j(FITNESS)f(FOR)h(A)g(PARTICULAR)e (PURPOSE.)93 b(See)47 b(the)198 2162 y(*)g(GNU)g(General)f(Public)g (License)g(for)h(more)f(details.)198 2271 y(*)198 2381 y(*)h(You)g(should)f(have)h(received)e(a)j(copy)e(of)i(the)f(GNU)f (General)g(Public)g(License)198 2491 y(*)h(along)g(with)f(this)h (program.)189 b(If)47 b(not,)f(see)h(.)198 2600 y(*)198 2710 y(*/)150 2929 y(#include)f()617 b(/*)47 b(setlocale\(\))e(*/)150 3148 y(/*)198 3258 y(*)i(This)g(file)f (is)i(derived)d(from)i(RFC)g(3492)g(written)e(by)j(Adam)e(M.)h (Costello.)198 3367 y(*)198 3477 y(*)g(Disclaimer)e(and)i(license:)93 b(Regarding)46 b(this)g(entire)g(document)g(or)h(any)198 3587 y(*)g(portion)f(of)h(it)g(\(including)e(the)i(pseudocode)e(and)i (C)h(code\),)e(the)h(author)198 3696 y(*)g(makes)g(no)g(guarantees)e (and)i(is)g(not)g(responsible)d(for)j(any)g(damage)f(resulting)198 3806 y(*)h(from)g(its)g(use.)190 b(The)46 b(author)h(grants)f (irrevocable)e(permission)h(to)j(anyone)198 3915 y(*)f(to)g(use,)g (modify,)f(and)h(distribute)e(it)i(in)g(any)g(way)g(that)g(does)f(not)h (diminish)198 4025 y(*)g(the)g(rights)f(of)h(anyone)f(else)h(to)g(use,) g(modify,)f(and)h(distribute)e(it,)198 4134 y(*)i(provided)f(that)g (redistributed)f(derivative)g(works)h(do)h(not)g(contain)198 4244 y(*)g(misleading)e(author)h(or)h(version)f(information.)188 b(Derivative)45 b(works)h(need)198 4354 y(*)h(not)g(be)g(licensed)f (under)g(similar)g(terms.)198 4463 y(*)198 4573 y(*/)150 4792 y(#include)g()150 4902 y(#include)g()150 5011 y(#include)g()150 5121 y(#include)g()150 5340 y(#include)g()p eop end %%Page: 41 46 TeXDict begin 41 45 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(41)150 408 y Fr(/*)47 b(For)g(testing,)f(we'll)g (just)h(set)g(some)f(compile-time)f(limits)h(rather)g(than)g(*/)150 518 y(/*)h(use)g(malloc\(\),)e(and)i(set)g(a)h(compile-time)c(option)i (rather)g(than)h(using)f(a)95 b(*/)150 628 y(/*)47 b(command-line)e (option.)4293 b(*/)150 847 y(enum)150 956 y({)245 1066 y(unicode_max_length)43 b(=)48 b(256,)245 1176 y(ace_max_length)c(=)k (256)150 1285 y(};)150 1504 y(static)e(void)150 1614 y(usage)g(\(char)h(**argv\))150 1724 y({)245 1833 y(fprintf)f (\(stderr,)675 1943 y("\\n")675 2052 y("\045s)h(-e)g(reads)f(code)h (points)f(and)h(writes)f(a)i(Punycode)d(string.\\n")675 2162 y("\045s)i(-d)g(reads)f(a)i(Punycode)d(string)i(and)f(writes)h (code)f(points.\\n")675 2271 y("\\n")675 2381 y("Input)g(and)h(output)f (are)h(plain)f(text)h(in)g(the)g(native)f(character)f(set.\\n")675 2491 y("Code)h(points)g(are)h(in)h(the)e(form)h(u+hex)f(separated)g(by) h(whitespace.\\n")675 2600 y("Although)e(the)i(specification)d(allows)i (Punycode)g(strings)g(to)h(contain\\n")675 2710 y("any)g(characters)e (from)h(the)h(ASCII)g(repertoire,)d(this)j(test)g(code\\n")675 2819 y("supports)e(only)i(the)g(printable)e(characters,)g(and)i(needs)f (the)h(Punycode\\n")675 2929 y("string)f(to)h(be)g(followed)f(by)h(a)g (newline.\\n")675 3039 y("The)g(case)f(of)h(the)g(u)h(in)f(u+hex)f(is)i (the)e(force-to-uppercase)d(flag.\\n",)675 3148 y(argv[0],)j (argv[0]\);)245 3258 y(exit)h(\(EXIT_FAILURE\);)150 3367 y(})150 3587 y(static)f(void)150 3696 y(fail)h(\(const)f(char)g(*msg\)) 150 3806 y({)245 3915 y(fputs)h(\(msg,)f(stderr\);)245 4025 y(exit)h(\(EXIT_FAILURE\);)150 4134 y(})150 4354 y(static)f(const)g(char)h(too_big[])e(=)245 4463 y("input)i(or)g (output)f(is)h(too)g(large,)f(recompile)f(with)i(larger)f(limits\\n";) 150 4573 y(static)g(const)g(char)h(invalid_input[])d(=)j("invalid)f (input\\n";)150 4682 y(static)g(const)g(char)h(overflow[])e(=)j ("arithmetic)c(overflow\\n";)150 4792 y(static)i(const)g(char)h (io_error[])e(=)j("I/O)e(error\\n";)150 5011 y(/*)h(The)g(following)e (string)h(is)i(used)e(to)h(convert)f(printable)g(*/)150 5121 y(/*)h(characters)e(between)h(ASCII)g(and)h(the)g(native)f (charset:)189 b(*/)150 5340 y(static)46 b(const)g(char)h(print_ascii[]) d(=)k("\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n)o(\\n\\n)o(\\n\\n)o(\\n")41 b("\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n)o(\\n\\)o(n\\n\\)o(n")h(")47 b(!\\"#$\045&'\(\)*+,-./")c("0123456789:;<=>?")g("\\0x40")93 b(/*)48 b(at)f(sign)f(*/)p eop end %%Page: 42 47 TeXDict begin 42 46 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(42)245 299 y Fr("ABCDEFGHIJKLMNO")245 408 y("PQRSTUVWXYZ[\\\\]^_")43 b("`abcdefghijklmno")g ("pqrstuvwxyz{|}~\\n";)150 628 y(int)150 737 y(main)k(\(int)f(argc,)h (char)f(**argv\))150 847 y({)245 956 y(enum)h(punycode_status)d (status;)245 1066 y(int)j(r;)245 1176 y(size_t)g(input_length,)d (output_length,)g(j;)245 1285 y(unsigned)i(char)h (case_flags[unicode_max_)o(leng)o(th])o(;)245 1504 y(setlocale)f (\(LC_ALL,)f(""\);)245 1724 y(if)j(\(argc)e(!=)h(2\))341 1833 y(usage)f(\(argv\);)245 1943 y(if)i(\(argv[1][0])c(!=)k('-'\))341 2052 y(usage)e(\(argv\);)245 2162 y(if)i(\(argv[1][2])c(!=)k(0\))341 2271 y(usage)e(\(argv\);)245 2491 y(if)i(\(argv[1][1])c(==)k('e'\))341 2600 y({)436 2710 y(uint32_t)e(input[unicode_max_length)o(];)436 2819 y(unsigned)g(long)h(codept;)436 2929 y(char)g (output[ace_max_length)42 b(+)47 b(1],)g(uplus[3];)436 3039 y(int)g(c;)436 3258 y(/*)h(Read)e(the)h(input)f(code)h(points:)94 b(*/)436 3477 y(input_length)45 b(=)i(0;)436 3696 y(for)g(\(;;\))532 3806 y({)627 3915 y(r)h(=)f(scanf)g(\("\0452s\045lx",)e(uplus,)h (&codept\);)627 4025 y(if)h(\(ferror)f(\(stdin\)\))723 4134 y(fail)g(\(io_error\);)627 4244 y(if)h(\(r)h(==)f(EOF)g(||)g(r)g (==)h(0\))723 4354 y(break;)627 4573 y(if)f(\(r)h(!=)f(2)g(||)g (uplus[1])f(!=)h('+')g(||)g(codept)f(>)i(\(uint32_t\))d(-)i(1\))723 4682 y({)818 4792 y(fail)g(\(invalid_input\);)723 4902 y(})627 5121 y(if)g(\(input_length)e(==)i(unicode_max_length\))723 5230 y(fail)f(\(too_big\);)p eop end %%Page: 43 48 TeXDict begin 43 47 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(43)627 299 y Fr(if)47 b(\(uplus[0])f(==)h('u'\))723 408 y(case_flags[input_length)o(])42 b(=)47 b(0;)627 518 y(else)g(if)g(\(uplus[0])e(==)j('U'\))723 628 y (case_flags[input_length)o(])42 b(=)47 b(1;)627 737 y(else)723 847 y(fail)f(\(invalid_input\);)627 1066 y(input[input_length++])c(=)48 b(codept;)532 1176 y(})436 1395 y(/*)g(Encode:)93 b(*/)436 1614 y(output_length)45 b(=)i(ace_max_length;)436 1724 y(status)f(=)i(punycode_encode)c(\(input_length,)f(input,)k (case_flags,)1677 1833 y(&output_length,)d(output\);)436 1943 y(if)k(\(status)d(==)j(punycode_bad_input\))532 2052 y(fail)e(\(invalid_input\);)436 2162 y(if)i(\(status)d(==)j (punycode_big_output\))532 2271 y(fail)e(\(too_big\);)436 2381 y(if)i(\(status)d(==)j(punycode_overflow\))532 2491 y(fail)e(\(overflow\);)436 2600 y(assert)g(\(status)g(==)h (punycode_success\);)436 2819 y(/*)h(Convert)d(to)j(native)e(charset)f (and)i(output:)94 b(*/)436 3039 y(for)47 b(\(j)g(=)h(0;)f(j)h(<)f (output_length;)d(++j\))532 3148 y({)627 3258 y(c)k(=)f(output[j];)627 3367 y(assert)f(\(c)i(>=)f(0)g(&&)g(c)h(<=)f(127\);)627 3477 y(if)g(\(print_ascii[c])d(==)j(0\))723 3587 y(fail)f (\(invalid_input\);)627 3696 y(output[j])g(=)h(print_ascii[c];)532 3806 y(})436 4025 y(output[j])f(=)h(0;)436 4134 y(r)h(=)f(puts)g (\(output\);)436 4244 y(if)h(\(r)f(==)g(EOF\))532 4354 y(fail)f(\(io_error\);)436 4463 y(return)g(EXIT_SUCCESS;)341 4573 y(})245 4792 y(if)i(\(argv[1][1])c(==)k('d'\))341 4902 y({)436 5011 y(char)f(input[ace_max_length)42 b(+)48 b(2],)f(*p,)g(*pp;)436 5121 y(uint32_t)f(output[unicode_max_lengt)o (h];)436 5340 y(/*)i(Read)e(the)h(Punycode)f(input)g(string)g(and)h (convert)f(to)h(ASCII:)f(*/)p eop end %%Page: 44 49 TeXDict begin 44 48 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(44)436 408 y Fr(fgets)47 b(\(input,)f(ace_max_length) d(+)48 b(2,)f(stdin\);)436 518 y(if)h(\(ferror)d(\(stdin\)\))532 628 y(fail)h(\(io_error\);)436 737 y(if)i(\(feof)e(\(stdin\)\))532 847 y(fail)g(\(invalid_input\);)436 956 y(input_length)f(=)i(strlen)f (\(input\))g(-)i(1;)436 1066 y(if)g(\(input[input_length])42 b(!=)47 b('\\n'\))532 1176 y(fail)f(\(too_big\);)436 1285 y(input[input_length])d(=)k(0;)436 1504 y(for)g(\(p)g(=)h(input;)e (*p)h(!=)g(0;)h(++p\))532 1614 y({)627 1724 y(pp)f(=)h(strchr)e (\(print_ascii,)e(*p\);)627 1833 y(if)j(\(pp)g(==)h(0\))723 1943 y(fail)e(\(invalid_input\);)627 2052 y(*p)h(=)h(pp)f(-)h (print_ascii;)532 2162 y(})436 2381 y(/*)g(Decode:)93 b(*/)436 2600 y(output_length)45 b(=)i(unicode_max_length;)436 2710 y(status)f(=)i(punycode_decode)c(\(input_length,)f(input,)k (&output_length,)1677 2819 y(output,)f(case_flags\);)436 2929 y(if)i(\(status)d(==)j(punycode_bad_input\))532 3039 y(fail)e(\(invalid_input\);)436 3148 y(if)i(\(status)d(==)j (punycode_big_output\))532 3258 y(fail)e(\(too_big\);)436 3367 y(if)i(\(status)d(==)j(punycode_overflow\))532 3477 y(fail)e(\(overflow\);)436 3587 y(assert)g(\(status)g(==)h (punycode_success\);)436 3806 y(/*)h(Output)e(the)h(result:)93 b(*/)436 4025 y(for)47 b(\(j)g(=)h(0;)f(j)h(<)f(output_length;)d(++j\)) 532 4134 y({)627 4244 y(r)k(=)f(printf)f(\("\045s+\04504lX\\n",)1200 4354 y(case_flags[j])e(?)95 b("U")47 b(:)95 b("u",)47 b(\(unsigned)e(long\))i(output[j]\);)627 4463 y(if)g(\(r)h(<)f(0\))723 4573 y(fail)f(\(io_error\);)532 4682 y(})436 4902 y(return)g (EXIT_SUCCESS;)341 5011 y(})245 5230 y(usage)h(\(argv\);)245 5340 y(return)g(EXIT_SUCCESS;)473 b(/*)47 b(not)g(reached,)f(but)h (quiets)f(compiler)f(warning)h(*/)p eop end %%Page: 45 50 TeXDict begin 45 49 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(45)150 299 y Fr(})150 544 y Fw(9.3)68 b(Example)46 b(3)150 704 y Fx(This)40 b(example)i(demonstrates)g(ho)m (w)f(the)g(library)g(is)g(used)g(to)h(con)m(v)m(ert)h(in)m (ternationalized)g(domain)150 813 y(names)30 b(in)m(to)i(ASCI)s(I)c (compatible)k(names.)150 956 y Fr(/*)47 b(example3.c)e(---)i(Example)f (ToASCII\(\))f(code)i(showing)f(how)h(to)g(use)g(Libidn.)198 1066 y(*)g(Copyright)e(\(C\))i(2002,)g(2003,)f(2004,)g(2005,)h(2006,)f (2007,)h(2008,)f(2009)h(Simon)f(Josefsson)198 1176 y(*)198 1285 y(*)h(This)g(file)f(is)i(part)e(of)h(GNU)g(Libidn.)198 1395 y(*)198 1504 y(*)g(This)g(program)f(is)h(free)f(software:)93 b(you)47 b(can)g(redistribute)e(it)i(and/or)f(modify)198 1614 y(*)h(it)g(under)g(the)g(terms)f(of)h(the)g(GNU)g(General)f (Public)g(License)g(as)h(published)e(by)198 1724 y(*)i(the)g(Free)g (Software)e(Foundation,)g(either)h(version)g(3)h(of)h(the)e(License,)g (or)198 1833 y(*)h(\(at)g(your)g(option\))f(any)g(later)h(version.)198 1943 y(*)198 2052 y(*)g(This)g(program)f(is)h(distributed)e(in)i(the)g (hope)f(that)h(it)g(will)g(be)g(useful,)198 2162 y(*)g(but)g(WITHOUT)f (ANY)h(WARRANTY;)e(without)h(even)h(the)f(implied)g(warranty)g(of)198 2271 y(*)h(MERCHANTABILITY)d(or)j(FITNESS)f(FOR)h(A)g(PARTICULAR)e (PURPOSE.)93 b(See)47 b(the)198 2381 y(*)g(GNU)g(General)f(Public)g (License)g(for)h(more)f(details.)198 2491 y(*)198 2600 y(*)h(You)g(should)f(have)h(received)e(a)j(copy)e(of)i(the)f(GNU)f (General)g(Public)g(License)198 2710 y(*)h(along)g(with)f(this)h (program.)189 b(If)47 b(not,)f(see)h(.)198 2819 y(*)198 2929 y(*/)150 3148 y(#include)f()150 3258 y(#include)g()150 3367 y(#include)g()150 3477 y(#include)g()617 b(/*)47 b(setlocale\(\))e(*/)150 3587 y(#include)h()425 b(/*)47 b (stringprep_locale_charset\()o(\))42 b(*/)150 3696 y(#include)k ()713 b(/*)47 b(idna_to_ascii_lz\(\))c(*/)150 3915 y(/*)198 4025 y(*)k(Compiling)e(using)i(libtool)f(and)h (pkg-config)e(is)i(recommended:)198 4134 y(*)198 4244 y(*)g($)h(libtool)d(cc)j(-o)f(example3)e(example3.c)g(`pkg-config)g (--cflags)h(--libs)g(libidn`)198 4354 y(*)h($)h(./example3)198 4463 y(*)f(Input)g(domain)f(encoded)f(as)j(`ISO-8859-1':)92 b(www.raksmorgaasa.exampl)o(e)198 4573 y(*)47 b(Read)g(string)f (\(length)g(23\):)94 b(77)47 b(77)g(77)h(2e)f(72)g(e4)g(6b)g(73)h(6d)f (f6)g(72)g(67)g(e5)g(73)h(aa)f(2e)g(65)g(78)g(61)h(6d)f(70)g(6c)g(65) 198 4682 y(*)g(ACE)g(label)f(\(length)g(33\):)95 b ('www.xn--rksmrgsa-0zap8)o(p.ex)o(amp)o(le')198 4792 y(*)47 b(77)g(77)h(77)f(2e)g(78)g(6e)g(2d)g(2d)h(72)f(6b)g(73)g(6d)g (72)h(67)f(73)g(61)g(2d)g(30)g(7a)h(61)f(70)g(38)g(70)g(2e)h(65)f(78)g (61)g(6d)g(70)g(6c)h(65)198 4902 y(*)f($)198 5011 y(*)198 5121 y(*/)150 5340 y(int)p eop end %%Page: 46 51 TeXDict begin 46 50 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(46)150 299 y Fr(main)47 b(\(void\))150 408 y({)245 518 y(char)g(buf[BUFSIZ];)245 628 y(char)g(*p;)245 737 y(int)g(rc;)245 847 y(size_t)g(i;)245 1066 y(setlocale)f(\(LC_ALL,) f(""\);)245 1285 y(printf)i(\("Input)e(domain)h(encoded)g(as)h (`\045s':)95 b(",)47 b(stringprep_locale_chars)o(et)42 b(\(\)\);)245 1395 y(fflush)47 b(\(stdout\);)245 1504 y(fgets)g(\(buf,)f(BUFSIZ,)g(stdin\);)245 1614 y(buf[strlen)f(\(buf\))i (-)g(1])g(=)h('\\0';)245 1833 y(printf)f(\("Read)f(string)g(\(length)g (\045d\):)94 b(",)47 b(strlen)f(\(buf\)\);)245 1943 y(for)h(\(i)h(=)f (0;)g(i)h(<)f(strlen)f(\(buf\);)g(i++\))341 2052 y(printf)g(\("\04502x) g(",)h(buf[i])f(&)i(0xFF\);)245 2162 y(printf)f(\("\\n"\);)245 2381 y(rc)h(=)f(idna_to_ascii_lz)c(\(buf,)k(&p,)g(0\);)245 2491 y(if)h(\(rc)f(!=)g(IDNA_SUCCESS\))341 2600 y({)436 2710 y(printf)f(\("ToASCII\(\))f(failed)h(\(\045d\):)94 b(\045s\\n",)46 b(rc,)h(idna_strerror)e(\(rc\)\);)436 2819 y(exit)i(\(1\);)341 2929 y(})245 3148 y(printf)g(\("ACE)f(label)g (\(length)g(\045d\):)94 b('\045s'\\n",)46 b(strlen)g(\(p\),)h(p\);)245 3258 y(for)g(\(i)h(=)f(0;)g(i)h(<)f(strlen)f(\(p\);)h(i++\))341 3367 y(printf)f(\("\04502x)g(",)h(p[i])g(&)g(0xFF\);)245 3477 y(printf)g(\("\\n"\);)245 3696 y(free)g(\(p\);)245 3915 y(return)g(0;)150 4025 y(})150 4270 y Fw(9.4)68 b(Example)46 b(4)150 4430 y Fx(This)30 b(example)h(demonstrates)f(ho)m (w)h(the)f(library)g(is)h(used)e(to)i(con)m(v)m(ert)h(ASCI)s(I)d (compatible)j(names)e(to)150 4539 y(in)m(ternationalized)j(domain)d (names.)150 4682 y Fr(/*)47 b(example4.c)e(---)i(Example)f (ToUnicode\(\))f(code)h(showing)g(how)h(to)g(use)g(Libidn.)198 4792 y(*)g(Copyright)e(\(C\))i(2002,)g(2003,)f(2004,)g(2005,)h(2006,)f (2007,)h(2008,)f(2009)h(Simon)f(Josefsson)198 4902 y(*)198 5011 y(*)h(This)g(file)f(is)i(part)e(of)h(GNU)g(Libidn.)198 5121 y(*)198 5230 y(*)g(This)g(program)f(is)h(free)f(software:)93 b(you)47 b(can)g(redistribute)e(it)i(and/or)f(modify)198 5340 y(*)h(it)g(under)g(the)g(terms)f(of)h(the)g(GNU)g(General)f (Public)g(License)g(as)h(published)e(by)p eop end %%Page: 47 52 TeXDict begin 47 51 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(47)198 299 y Fr(*)47 b(the)g(Free)g(Software)e (Foundation,)g(either)h(version)g(3)h(of)h(the)e(License,)g(or)198 408 y(*)h(\(at)g(your)g(option\))f(any)g(later)h(version.)198 518 y(*)198 628 y(*)g(This)g(program)f(is)h(distributed)e(in)i(the)g (hope)f(that)h(it)g(will)g(be)g(useful,)198 737 y(*)g(but)g(WITHOUT)f (ANY)h(WARRANTY;)e(without)h(even)h(the)f(implied)g(warranty)g(of)198 847 y(*)h(MERCHANTABILITY)d(or)j(FITNESS)f(FOR)h(A)g(PARTICULAR)e (PURPOSE.)93 b(See)47 b(the)198 956 y(*)g(GNU)g(General)f(Public)g (License)g(for)h(more)f(details.)198 1066 y(*)198 1176 y(*)h(You)g(should)f(have)h(received)e(a)j(copy)e(of)i(the)f(GNU)f (General)g(Public)g(License)198 1285 y(*)h(along)g(with)f(this)h (program.)189 b(If)47 b(not,)f(see)h(.)198 1395 y(*)198 1504 y(*/)150 1724 y(#include)f()150 1833 y(#include)g()150 1943 y(#include)g()150 2052 y(#include)g()617 b(/*)47 b(setlocale\(\))e(*/)150 2162 y(#include)h()425 b(/*)47 b (stringprep_locale_charset\()o(\))42 b(*/)150 2271 y(#include)k ()713 b(/*)47 b(idna_to_unicode_lzlz\(\))42 b(*/)150 2491 y(/*)198 2600 y(*)47 b(Compiling)e(using)i(libtool)f(and)h (pkg-config)e(is)i(recommended:)198 2710 y(*)198 2819 y(*)g($)h(libtool)d(cc)j(-o)f(example4)e(example4.c)g(`pkg-config)g (--cflags)h(--libs)g(libidn`)198 2929 y(*)h($)h(./example4)198 3039 y(*)f(Input)g(domain)f(encoded)f(as)j(`ISO-8859-1':)92 b(www.xn--rksmrgsa-0zap8p)o(.ex)o(ampl)o(e)198 3148 y(*)47 b(Read)g(string)f(\(length)g(33\):)94 b(77)47 b(77)g(77)h(2e)f(78)g(6e) g(2d)g(2d)h(72)f(6b)g(73)g(6d)g(72)g(67)h(73)f(61)g(2d)g(30)g(7a)h(61)f (70)g(38)g(70)g(2e)g(65)h(78)f(61)g(6d)g(70)g(6c)g(65)198 3258 y(*)g(ACE)g(label)f(\(length)g(23\):)95 b('www.raksmorgaasa.examp) o(le')198 3367 y(*)47 b(77)g(77)h(77)f(2e)g(72)g(e4)g(6b)g(73)h(6d)f (f6)g(72)g(67)g(e5)h(73)f(61)g(2e)g(65)g(78)g(61)h(6d)f(70)g(6c)g(65) 198 3477 y(*)g($)198 3587 y(*)198 3696 y(*/)150 3915 y(int)150 4025 y(main)g(\(void\))150 4134 y({)245 4244 y(char)g(buf[BUFSIZ];)245 4354 y(char)g(*p;)245 4463 y(int)g(rc;)245 4573 y(size_t)g(i;)245 4792 y(setlocale)f(\(LC_ALL,)f (""\);)245 5011 y(printf)i(\("Input)e(domain)h(encoded)g(as)h(`\045s':) 95 b(",)47 b(stringprep_locale_chars)o(et)42 b(\(\)\);)245 5121 y(fflush)47 b(\(stdout\);)245 5230 y(fgets)g(\(buf,)f(BUFSIZ,)g (stdin\);)245 5340 y(buf[strlen)f(\(buf\))i(-)g(1])g(=)h('\\0';)p eop end %%Page: 48 53 TeXDict begin 48 52 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(48)245 408 y Fr(printf)47 b(\("Read)f(string)g (\(length)g(\045d\):)94 b(",)47 b(strlen)f(\(buf\)\);)245 518 y(for)h(\(i)h(=)f(0;)g(i)h(<)f(strlen)f(\(buf\);)g(i++\))341 628 y(printf)g(\("\04502x)g(",)h(buf[i])f(&)i(0xFF\);)245 737 y(printf)f(\("\\n"\);)245 956 y(rc)h(=)f(idna_to_unicode_lzlz)42 b(\(buf,)47 b(&p,)g(0\);)245 1066 y(if)h(\(rc)f(!=)g(IDNA_SUCCESS\))341 1176 y({)436 1285 y(printf)f(\("ToUnicode\(\))f(failed)h(\(\045d\):)94 b(\045s\\n",)46 b(rc,)h(idna_strerror)d(\(rc\)\);)436 1395 y(exit)j(\(1\);)341 1504 y(})245 1724 y(printf)g(\("ACE)f(label)g (\(length)g(\045d\):)94 b('\045s'\\n",)46 b(strlen)g(\(p\),)h(p\);)245 1833 y(for)g(\(i)h(=)f(0;)g(i)h(<)f(strlen)f(\(p\);)h(i++\))341 1943 y(printf)f(\("\04502x)g(",)h(p[i])g(&)g(0xFF\);)245 2052 y(printf)g(\("\\n"\);)245 2271 y(free)g(\(p\);)245 2491 y(return)g(0;)150 2600 y(})150 2846 y Fw(9.5)68 b(Example)46 b(5)150 3005 y Fx(This)31 b(example)h(demonstrates)f(ho)m (w)h(the)f(library)g(is)h(used)e(to)i(c)m(hec)m(k)h(a)f(string)f(for)h (in)m(v)-5 b(alid)31 b(c)m(haracters)150 3115 y(within)f(a)h(sp)s (eci\014c)f(TLD.)150 3258 y Fr(/*)47 b(example5.c)e(---)i(Example)f (TLD)h(checking.)198 3367 y(*)g(Copyright)e(\(C\))i(2004,)g(2005,)f (2006,)g(2007,)h(2008,)f(2009)h(Simon)f(Josefsson)198 3477 y(*)198 3587 y(*)h(This)g(file)f(is)i(part)e(of)h(GNU)g(Libidn.) 198 3696 y(*)198 3806 y(*)g(This)g(program)f(is)h(free)f(software:)93 b(you)47 b(can)g(redistribute)e(it)i(and/or)f(modify)198 3915 y(*)h(it)g(under)g(the)g(terms)f(of)h(the)g(GNU)g(General)f (Public)g(License)g(as)h(published)e(by)198 4025 y(*)i(the)g(Free)g (Software)e(Foundation,)g(either)h(version)g(3)h(of)h(the)e(License,)g (or)198 4134 y(*)h(\(at)g(your)g(option\))f(any)g(later)h(version.)198 4244 y(*)198 4354 y(*)g(This)g(program)f(is)h(distributed)e(in)i(the)g (hope)f(that)h(it)g(will)g(be)g(useful,)198 4463 y(*)g(but)g(WITHOUT)f (ANY)h(WARRANTY;)e(without)h(even)h(the)f(implied)g(warranty)g(of)198 4573 y(*)h(MERCHANTABILITY)d(or)j(FITNESS)f(FOR)h(A)g(PARTICULAR)e (PURPOSE.)93 b(See)47 b(the)198 4682 y(*)g(GNU)g(General)f(Public)g (License)g(for)h(more)f(details.)198 4792 y(*)198 4902 y(*)h(You)g(should)f(have)h(received)e(a)j(copy)e(of)i(the)f(GNU)f (General)g(Public)g(License)198 5011 y(*)h(along)g(with)f(this)h (program.)189 b(If)47 b(not,)f(see)h(.)198 5121 y(*)198 5230 y(*/)p eop end %%Page: 49 54 TeXDict begin 49 53 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(49)150 299 y Fr(#include)46 b()150 408 y(#include)g()150 518 y(#include)g()150 737 y(/*)h(Get)g(stringprep_locale_charset)o(,)42 b(etc.)94 b(*/)150 847 y(#include)46 b()150 1066 y(/*)h(Get)g(idna_to_ascii_8z,)c(etc.)95 b(*/)150 1176 y(#include)46 b()150 1395 y(/*)h(Get)g(tld_check_4z.)92 b(*/)150 1504 y(#include)46 b()150 1724 y(/*)198 1833 y(*)h(Compiling)e(using)i(libtool)f(and)h(pkg-config)e(is)i (recommended:)198 1943 y(*)198 2052 y(*)g($)h(libtool)d(cc)j(-o)f (example5)e(example5.c)g(`pkg-config)g(--cflags)h(--libs)g(libidn`)198 2162 y(*)h($)h(./example5)198 2271 y(*)f(Input)g(domain)f(encoded)f(as) j(`UTF-8':)93 b(fooss.no)198 2381 y(*)47 b(Read)g(string)f(\(length)g (8\):)94 b(66)48 b(6f)f(6f)g(c3)g(9f)g(2e)g(6e)h(6f)198 2491 y(*)f(ToASCII)f(string)g(\(length)g(8\):)95 b(fooss.no)198 2600 y(*)47 b(ToUnicode)e(string:)94 b(U+0066)46 b(U+006f)g(U+006f)g (U+0073)g(U+0073)g(U+002e)h(U+006e)f(U+006f)198 2710 y(*)h(Domain)f(accepted)g(by)h(TLD)g(check)198 2819 y(*)198 2929 y(*)g($)h(./example5)198 3039 y(*)f(Input)g(domain)f(encoded)f(as) j(`UTF-8':)93 b(greuroeuron.no)198 3148 y(*)47 b(Read)g(string)f (\(length)g(12\):)94 b(67)47 b(72)g(e2)h(82)f(ac)g(e2)g(82)g(ac)h(6e)f (2e)g(6e)g(6f)198 3258 y(*)g(ToASCII)f(string)g(\(length)g(16\):)94 b(xn--grn-l50aa.no)198 3367 y(*)47 b(ToUnicode)e(string:)94 b(U+0067)46 b(U+0072)g(U+20ac)g(U+20ac)g(U+006e)g(U+002e)h(U+006e)f (U+006f)198 3477 y(*)h(Domain)f(rejected)g(by)h(TLD)g(check,)f(Unicode) g(position)f(2)198 3587 y(*)198 3696 y(*/)150 3915 y(int)150 4025 y(main)i(\(void\))150 4134 y({)245 4244 y(char)g(buf[BUFSIZ];)245 4354 y(char)g(*p;)245 4463 y(uint32_t)f(*r;)245 4573 y(int)h(rc;)245 4682 y(size_t)g(errpos,)e(i;)245 4902 y(printf)i(\("Input)e(domain)h(encoded)g(as)h(`\045s':)95 b(",)47 b(stringprep_locale_chars)o(et)42 b(\(\)\);)245 5011 y(fflush)47 b(\(stdout\);)245 5121 y(fgets)g(\(buf,)f(BUFSIZ,)g (stdin\);)245 5230 y(buf[strlen)f(\(buf\))i(-)g(1])g(=)h('\\0';)p eop end %%Page: 50 55 TeXDict begin 50 54 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(50)245 299 y Fr(printf)47 b(\("Read)f(string)g (\(length)g(\045d\):)94 b(",)47 b(strlen)f(\(buf\)\);)245 408 y(for)h(\(i)h(=)f(0;)g(i)h(<)f(strlen)f(\(buf\);)g(i++\))341 518 y(printf)g(\("\04502x)g(",)h(buf[i])f(&)i(0xFF\);)245 628 y(printf)f(\("\\n"\);)245 847 y(p)h(=)f(stringprep_locale_to_utf8) 41 b(\(buf\);)245 956 y(if)48 b(\(p\))341 1066 y({)436 1176 y(strcpy)e(\(buf,)h(p\);)436 1285 y(free)g(\(p\);)341 1395 y(})245 1504 y(else)341 1614 y(printf)f(\("Could)g(not)h(convert)f (string)g(to)h(UTF-8,)f(continuing)f(anyway...\\n"\);)245 1833 y(rc)j(=)f(idna_to_ascii_8z)c(\(buf,)k(&p,)g(0\);)245 1943 y(if)h(\(rc)f(!=)g(IDNA_SUCCESS\))341 2052 y({)436 2162 y(printf)f(\("idna_to_ascii_8z)d(failed)j(\(\045d\):)94 b(\045s\\n",)47 b(rc,)f(idna_strerror)f(\(rc\)\);)436 2271 y(return)h(2;)341 2381 y(})245 2600 y(printf)h(\("ToASCII)e (string)h(\(length)g(\045d\):)94 b(\045s\\n",)46 b(strlen)g(\(p\),)h (p\);)245 2819 y(rc)h(=)f(idna_to_unicode_8z4z)42 b(\(p,)47 b(&r,)g(0\);)245 2929 y(free)g(\(p\);)245 3039 y(if)h(\(rc)f(!=)g (IDNA_SUCCESS\))341 3148 y({)436 3258 y(printf)f (\("idna_to_unicode_8z4z)c(failed)k(\(\045d\):)94 b(\045s\\n",)818 3367 y(rc,)47 b(idna_strerror)d(\(rc\)\);)436 3477 y(return)i(2;)341 3587 y(})245 3806 y(printf)h(\("ToUnicode)d(string:)94 b("\);)245 3915 y(for)47 b(\(i)h(=)f(0;)g(r[i];)g(i++\))341 4025 y(printf)f(\("U+\04504x)g(",)h(r[i]\);)245 4134 y(printf)g(\("\\n"\);)245 4354 y(rc)h(=)f(tld_check_4z)e(\(r,)h (&errpos,)g(NULL\);)245 4463 y(free)h(\(r\);)245 4573 y(if)h(\(rc)f(==)g(TLD_INVALID\))341 4682 y({)436 4792 y(printf)f(\("Domain)g(rejected)g(by)h(TLD)g(check,)f(Unicode)g (position)f(\045d\\n",)h(errpos\);)436 4902 y(return)g(1;)341 5011 y(})245 5121 y(else)h(if)g(\(rc)g(!=)g(TLD_SUCCESS\))341 5230 y({)436 5340 y(printf)f(\("tld_check_4z\(\))e(failed)i(\(\045d\):) 94 b(\045s\\n",)46 b(rc,)h(tld_strerror)d(\(rc\)\);)p eop end %%Page: 51 56 TeXDict begin 51 55 bop 150 -116 a Fx(Chapter)30 b(9:)41 b(Examples)2661 b(51)436 299 y Fr(return)46 b(2;)341 408 y(})245 628 y(printf)h(\("Domain)e(accepted)h(by)h(TLD)g (check\\n"\);)245 847 y(return)g(0;)150 956 y(})p eop end %%Page: 52 57 TeXDict begin 52 56 bop 150 -116 a Fx(Chapter)30 b(10:)41 b(In)m(v)m(oking)32 b(idn)2500 b(52)150 299 y Fu(10)80 b(In)l(v)l(oking)52 b(idn)150 648 y Fw(10.1)68 b(Name)150 807 y Fx(GNU)31 b(Libidn)e(\(idn\))h({)h(In)m(ternationalized)h(Domain) g(Names)f(command)f(line)g(to)s(ol)150 1047 y Fw(10.2)68 b(Description)150 1206 y Fr(idn)34 b Fx(allo)m(ws)j(in)m (ternationalized)h(string)d(preparation)g(\(`)p Fr(stringprep)p Fx('\),)h(enco)s(ding)f(and)g(deco)s(ding)g(of)150 1316 y(pun)m(yco)s(de)h(data,)j(and)d(IDNA)h(T)-8 b(oASCI)s(I/T)g(oUnico)s (de)37 b(op)s(erations)g(to)g(b)s(e)f(p)s(erformed)f(on)h(the)h(com-) 150 1425 y(mand)30 b(line.)275 1564 y(If)i(strings)h(are)g(sp)s (eci\014ed)f(on)h(the)g(command)f(line,)i(they)g(are)f(used)f(as)h (input)f(and)g(the)h(computed)150 1674 y(output)h(is)g(prin)m(ted)f(to) i(standard)e(output)h Fr(stdout)p Fx(.)49 b(If)34 b(no)g(strings)g(are) g(sp)s(eci\014ed)f(on)h(the)g(command)150 1784 y(line,)42 b(the)d(program)g(read)f(data,)k(line)e(b)m(y)f(line,)i(from)e(the)g (standard)f(input)g Fr(stdin)p Fx(,)i(and)e(prin)m(t)h(the)150 1893 y(computed)g(output)g(to)h(standard)f(output.)67 b(What)40 b(pro)s(cessing)f(is)h(p)s(erformed)e(\(e.g.,)43 b(T)-8 b(oASCI)s(I,)39 b(or)150 2003 y(Pun)m(yco)s(de)32 b(enco)s(de\))i(is)f(indicated)g(b)m(y)g(options.)48 b(If)33 b(an)m(y)g(errors)f(are)h(encoun)m(tered,)i(the)e(execution)h (of)150 2112 y(the)d(applications)g(is)g(ab)s(orted.)275 2252 y(All)e(strings)g(are)g(exp)s(ected)g(to)h(b)s(e)e(enco)s(ded)h (in)f(the)h(preferred)f(c)m(harset)i(used)e(b)m(y)h(y)m(our)g(lo)s (cale.)42 b(Use)150 2361 y Fr(--debug)c Fx(to)j(\014nd)e(out)i(what)f (this)g(c)m(harset)h(is.)71 b(Y)-8 b(ou)40 b(can)h(o)m(v)m(erride)g (the)g(c)m(harset)g(used)f(b)m(y)g(setting)150 2471 y(en)m(vironmen)m (t)31 b(v)-5 b(ariable)31 b Fr(CHARSET)p Fx(.)275 2610 y(T)-8 b(o)38 b(pro)s(cess)g(a)g(string)g(that)h(starts)f(with)g Fr(-)p Fx(,)i(for)e(example)g Fr(-foo)p Fx(,)h(use)f Fr(--)g Fx(to)g(signal)h(the)f(end)g(of)150 2720 y(parameters,)31 b(as)g(in)f Fr(idn)f(--quiet)g(-a)g(--)h(-foo)p Fx(.)150 2959 y Fw(10.3)68 b(Options)150 3119 y Fr(idn)29 b Fx(recognizes)k (these)d(commands:)245 3258 y Fr(-h,)47 b(--help)715 b(Print)46 b(help)h(and)g(exit)245 3477 y(-V,)g(--version)571 b(Print)46 b(version)g(and)h(exit)245 3696 y(-s,)g(--stringprep)427 b(Prepare)45 b(string)i(according)e(to)i(nameprep)f(profile)245 3915 y(-d,)h(--punycode-decode)187 b(Decode)46 b(Punycode)245 4134 y(-e,)h(--punycode-encode)187 b(Encode)46 b(Punycode)245 4354 y(-a,)h(--idna-to-ascii)283 b(Convert)45 b(to)j(ACE)f(according)e (to)i(IDNA)g(\(default)e(mode\))245 4573 y(-u,)i(--idna-to-unicode)187 b(Convert)45 b(from)i(ACE)g(according)e(to)i(IDNA)436 4792 y(--allow-unassigned)139 b(Toggle)46 b(IDNA)g(AllowUnassigned)e (flag)j(\(default)e(off\))436 5011 y(--usestd3asciirules)91 b(Toggle)46 b(IDNA)g(UseSTD3ASCIIRules)d(flag)k(\(default)f(off\))436 5230 y(--no-tld)619 b(Don't)46 b(check)g(string)g(for)h(TLD)g(specific) f(rules)1534 5340 y(Only)h(for)g(--idna-to-ascii)c(and)k (--idna-to-unicode)p eop end %%Page: 53 58 TeXDict begin 53 57 bop 150 -116 a Fx(Chapter)30 b(10:)41 b(In)m(v)m(oking)32 b(idn)2500 b(53)245 408 y Fr(-n,)47 b(--nfkc)715 b(Normalize)45 b(string)h(according)f(to)i(Unicode)f(v3.2) h(NFKC)245 628 y(-p,)g(--profile=STRING)235 b(Use)47 b(specified)e(stringprep)g(profile)h(instead)1534 737 y(Valid)g(stringprep)f(profiles:)h(`Nameprep',)1534 847 y(`iSCSI',)g(`Nodeprep',)e(`Resourceprep',)1534 956 y(`trace',)i (`SASLprep')436 1176 y(--debug)667 b(Print)46 b(debugging)f (information)436 1395 y(--quiet)667 b(Silent)46 b(operation)150 1673 y Fw(10.4)68 b(En)l(vironmen)l(t)46 b(V)-11 b(ariables)150 1832 y Fx(The)25 b Fn(CHARSET)31 b Fx(en)m(vironmen)m(t)26 b(v)-5 b(ariable)26 b(can)g(b)s(e)f(used)f(to)j(o)m(v)m(erride)f(what)g (c)m(haracter)h(set)f(to)g(b)s(e)f(used)150 1942 y(for)35 b(deco)s(ding)f(incoming)i(data)f(\(i.e.,)j(on)c(the)h(command)g(line)g (or)g(on)f(the)h(standard)f(input)g(stream\),)150 2051 y(and)27 b(to)i(enco)s(de)f(data)h(to)g(the)f(standard)f(output.)40 b(If)27 b(y)m(our)h(system)g(is)h(set)f(up)f(correctly)-8 b(,)31 b(ho)m(w)m(ev)m(er,)f(the)150 2161 y(application)i(will)e(guess) h(whic)m(h)f(c)m(haracter)i(set)f(is)f(used)g(automatically)-8 b(.)44 b(Example)30 b(usage:)390 2326 y Fr($)47 b(CHARSET=ISO-8859-1)c (idn)k(--punycode-encode)390 2435 y(...)150 2713 y Fw(10.5)68 b(Examples)150 2872 y Fx(Standard)29 b(usage,)i(reading)g(input)e(from) h(standard)g(input:)390 3037 y Fr(jas@latte:~$)44 b(idn)390 3147 y(libidn)i(0.3.5)390 3256 y(Copyright)f(2002,)i(2003)f(Simon)h (Josefsson.)390 3366 y(GNU)g(Libidn)f(comes)g(with)h(NO)g(WARRANTY,)e (to)j(the)f(extent)f(permitted)f(by)i(law.)390 3475 y(You)g(may)g (redistribute)d(copies)i(of)i(GNU)e(Libidn)h(under)f(the)h(terms)f(of) 390 3585 y(the)h(GNU)g(Lesser)f(General)g(Public)g(License.)93 b(For)47 b(more)g(information)390 3695 y(about)f(these)h(matters,)e (see)i(the)g(file)g(named)f(COPYING.LIB.)390 3804 y(Type)h(each)f (input)h(string)f(on)h(a)g(line)g(by)g(itself,)f(terminated)f(by)i(a)h (newline)d(character.)390 3914 y(r\177)-48 b(aksm\177)g(org\027)g (as.se)390 4023 y(xn--rksmrgs-5wao1o.se)390 4133 y(jas@latte:~$)275 4298 y Fx(Reading)30 b(input)g(from)g(command)g(line,)h(and)f (disabling)g(cop)m(yrigh)m(t)i(and)d(license)j(information:)390 4463 y Fr(jas@latte:~$)44 b(idn)j(--quiet)f(r\177)-48 b(aksm\177)g(org\027)g(as.se)44 b(bl\027)-48 b(ab\032rgr\034d.no)390 4572 y(xn--rksmrgs-5wao1o.se)390 4682 y(xn--blbrgrd-fxak7p.no)390 4791 y(jas@latte:~$)275 4956 y Fx(Accessing)31 b(a)g(sp)s(eci\014c)f (StringPrep)f(pro\014le)h(directly:)390 5121 y Fr(jas@latte:~$)44 b(idn)j(--quiet)f(--profile=SASLprep)d(--stringprep)h(te\031t)3302 5082 y Fh(a)p 3302 5095 36 4 v 390 5230 a Fr(te\031ta)390 5340 y(jas@latte:~$)p eop end %%Page: 54 59 TeXDict begin 54 58 bop 150 -116 a Fx(Chapter)30 b(10:)41 b(In)m(v)m(oking)32 b(idn)2500 b(54)150 299 y Fw(10.6)68 b(T)-11 b(roublesho)t(oting)150 458 y Fx(Getting)32 b(c)m(haracter)g (data)f(enco)s(ded)g(righ)m(t,)g(and)f(making)h(sure)f(Libidn)f(use)h (the)h(same)g(enco)s(ding,)g(can)150 568 y(b)s(e)i(di\016cult.)50 b(The)33 b(reason)g(for)h(this)f(is)g(that)h(most)g(systems)g(enco)s (de)f(c)m(haracter)i(data)f(in)g(more)f(than)150 677 y(one)e(c)m(haracter)g(enco)s(ding,)g(i.e.,)g(using)f Fr(UTF-8)f Fx(together)j(with)d Fr(ISO-8859-1)f Fx(or)i Fr(ISO-2022-JP)p Fx(.)38 b(This)150 787 y(problem)g(is)h(lik)m(ely)h (to)f(con)m(tin)m(ue)h(to)f(exist)h(un)m(til)e(only)h(one)g(c)m (haracter)h(enco)s(ding)f(come)g(out)g(as)g(the)150 897 y(ev)m(olutionary)32 b(winner,)d(or)i(\(more)g(lik)m(ely)-8 b(,)32 b(at)f(least)h(to)f(some)g(exten)m(ts\))h(forev)m(er.)275 1027 y(The)d(\014rst)h(step)g(to)h(troublesho)s(oting)f(c)m(haracter)i (enco)s(ding)e(problems)g(with)g(Libidn)f(is)h(to)h(use)f(the)150 1137 y(`)p Fr(--debug)p Fx(')24 b(parameter)j(to)f(\014nd)e(out)i(whic) m(h)g(c)m(haracter)h(set)g(enco)s(ding)f(`)p Fr(idn)p Fx(')f(b)s(eliev)m(e)i(y)m(our)f(lo)s(cale)h(uses.)390 1268 y Fr(jas@latte:~$)44 b(idn)j(--debug)f(--quiet)g("")390 1377 y(system)g(locale)g(uses)h(charset)f(`UTF-8'.)390 1597 y(jas@latte:~$)275 1727 y Fx(If)27 b(it)i(prin)m(ts)f Fr(ANSI_X3.4-1968)c Fx(\(i.e.,)30 b Fr(US-ASCII)p Fx(\),)d(this)h (indicate)h(y)m(ou)g(ha)m(v)m(e)g(not)g(con\014gured)e(y)m(our)150 1837 y(lo)s(cale)40 b(prop)s(erly)-8 b(.)66 b(T)-8 b(o)39 b(con\014gure)f(the)h(lo)s(cale,)k(y)m(ou)c(can,)j(for)c(example,)k (use)c(`)p Fr(LANG=sv_SE.UTF-8;)150 1946 y(export)29 b(LANG)p Fx(')g(at)i(a)g Fr(/bin/sh)d Fx(prompt,)i(to)g(set)h(up)e(y)m (our)i(lo)s(cale)h(for)e(a)g(Sw)m(edish)g(en)m(vironmen)m(t)g(using)150 2056 y Fr(UTF-8)f Fx(as)i(the)f(enco)s(ding.)275 2187 y(Sometimes)36 b(`)p Fr(idn)p Fx(')g(app)s(ear)g(to)h(b)s(e)e(unable)h (to)h(translate)g(from)f(y)m(our)g(system)g(lo)s(cale)i(in)m(to)f Fr(UTF-8)150 2296 y Fx(\(whic)m(h)30 b(is)h(used)e(in)m(ternally\),)j (and)e(y)m(ou)h(get)g(an)g(error)f(lik)m(e)h(the)g(follo)m(wing:)390 2427 y Fr(jas@latte:~$)44 b(idn)j(--quiet)f(foo)390 2537 y(idn:)h(could)f(not)h(convert)f(from)g(ISO-8859-1)f(to)j(UTF-8.)390 2646 y(jas@latte:~$)275 2777 y Fx(The)95 b(simplest)h(explanation)h(is) e(that)i(y)m(ou)f(ha)m(v)m(en't)h(installed)g(the)e(`)p Fr(iconv)p Fx(')g(con-)150 2887 y(v)m(ersion)88 b(to)s(ols.)214 b(Y)-8 b(ou)89 b(can)f(\014nd)e(it)j(as)f(a)g(standalone)h(library)e (in)h Fk(GNU)g Fx(Libicon)m(v)150 2996 y(\()p Fr (http://www.gnu.org/softwar)o(e/l)o(ibic)o(onv/)o Fx(\).)271 b(On)109 b(man)m(y)g Fk(GNU)p Fx(/Lin)m(ux)h(systems,)150 3106 y(this)38 b(library)g(is)h(part)f(of)g(the)h(system,)h(but)e(y)m (ou)h(ma)m(y)g(ha)m(v)m(e)g(to)g(install)h(additional)f(pac)m(k)-5 b(ages)40 b(\(e.g.,)150 3215 y(`)p Fr(glibc-locale)p Fx(')28 b(for)i(Debian\))h(to)g(b)s(e)f(able)h(to)g(use)f(it.)275 3346 y(Another)i(explanation)i(is)f(that)g(the)g(error)g(is)g(correct)h (and)e(y)m(ou)h(are)g(feeding)g(`)p Fr(idn)p Fx(')g(in)m(v)-5 b(alid)33 b(data.)150 3456 y(This)e(can)i(happ)s(en)d(inadv)m(erten)m (tly)k(if)e(y)m(ou)g(are)h(not)f(careful)g(with)g(the)g(c)m(haracter)i (set)f(enco)s(dings)f(y)m(ou)150 3565 y(use.)65 b(F)-8 b(or)40 b(example,)i(if)c(y)m(our)h(shell)g(run)e(in)i(a)g Fr(ISO-8859-1)d Fx(en)m(vironmen)m(t,)41 b(and)e(y)m(ou)g(in)m(v)m(ok)m (e)h(`)p Fr(idn)p Fx(')150 3675 y(with)29 b(the)h(`)p Fr(CHARSET)p Fx(')e(en)m(vironmen)m(t)h(v)-5 b(ariable)31 b(as)e(follo)m(ws,)i(y)m(ou)f(will)g(feed)f(it)h Fr(ISO-8859-1)c Fx(c)m(haracters)150 3785 y(but)42 b(force)h(it)g(to)g(b)s(eliev)m(e)g (they)g(are)g Fr(UTF-8)p Fx(.)75 b(Naturally)43 b(this)g(will)f(lead)h (to)g(an)g(error,)i(unless)d(the)150 3894 y(b)m(yte)33 b(sequences)g(happ)s(en)e(to)j(b)s(e)e(parsable)h(as)g Fr(UTF-8)p Fx(.)46 b(Note)34 b(that)g(ev)m(en)f(if)g(y)m(ou)g(don't)g (get)g(an)g(error,)150 4004 y(the)f(output)g(ma)m(y)h(b)s(e)e (incorrect)i(in)f(this)g(situation,)i(b)s(ecause)e Fr(ISO-8859-1)e Fx(and)h Fr(UTF-8)g Fx(do)s(es)h(not)g(in)150 4113 y(general)f(enco)s (de)g(the)f(same)h(c)m(haracters)h(as)f(the)f(same)h(b)m(yte)g (sequences.)390 4244 y Fr(jas@latte:~$)44 b(idn)j(--quiet)f(--debug)g ("")390 4354 y(system)g(locale)g(uses)h(charset)f(`ISO-8859-1'.)390 4573 y(jas@latte:~$)e(CHARSET=UTF-8)h(idn)i(--quiet)e(--debug)h(r\177) -48 b(aksm\177)g(org\027)g(as)390 4682 y(system)46 b(locale)g(uses)h (charset)f(`UTF-8'.)390 4792 y(input[0])g(=)h(U+0072)390 4902 y(input[1])f(=)h(U+4af3)390 5011 y(input[2])f(=)h(U+006d)390 5121 y(input[3])f(=)h(U+1b29e5)390 5230 y(input[4])f(=)h(U+0073)390 5340 y(output[0])e(=)j(U+0078)p eop end %%Page: 55 60 TeXDict begin 55 59 bop 150 -116 a Fx(Chapter)30 b(10:)41 b(In)m(v)m(oking)32 b(idn)2500 b(55)390 299 y Fr(output[1])45 b(=)j(U+006e)390 408 y(output[2])d(=)j(U+002d)390 518 y(output[3])d(=)j(U+002d)390 628 y(output[4])d(=)j(U+0072)390 737 y(output[5])d(=)j(U+006d)390 847 y(output[6])d(=)j(U+0073)390 956 y(output[7])d(=)j(U+002d)390 1066 y(output[8])d(=)j(U+0068)390 1176 y(output[9])d(=)j(U+0069)390 1285 y(output[10])d(=)i(U+0036)390 1395 y(output[11])e(=)i(U+0064)390 1504 y(output[12])e(=)i(U+0035)390 1614 y(output[13])e(=)i(U+0039)390 1724 y(output[14])e(=)i(U+0037)390 1833 y(output[15])e(=)i(U+0035)390 1943 y(output[16])e(=)i(U+0035)390 2052 y(output[17])e(=)i(U+0032)390 2162 y(output[18])e(=)i(U+0061)390 2271 y(xn--rms-hi6d597552a)390 2381 y(jas@latte:~$)275 2516 y Fx(The)35 b(sense)g(moral)i(here)e(is)h(to)g(forget)h(ab)s(out)e (`)p Fr(CHARSET)p Fx(')g(\(con\014gure)h(y)m(our)f(lo)s(cales)i(prop)s (erly)e(in-)150 2625 y(stead\))c(unless)f(y)m(ou)g(kno)m(w)h(what)f(y)m (ou)h(are)f(doing,)h(and)f(if)g(y)m(ou)h(w)m(an)m(t)g(to)g(use)f(it,)h (do)f(it)h(carefully)-8 b(,)31 b(after)150 2735 y(v)m(erifying)g(with)f (`)p Fr(--debug)p Fx(')f(that)i(y)m(ou)g(get)g(the)g(desired)f (results.)p eop end %%Page: 56 61 TeXDict begin 56 60 bop 150 -116 a Fx(Chapter)30 b(11:)41 b(Emacs)31 b(API)2546 b(56)150 299 y Fu(11)80 b(Emacs)54 b(API)150 563 y Fx(Included)32 b(in)h(Libidn)g(are)g(`)p Fr(punycode.el)p Fx(')e(and)i(`)p Fr(idna.el)p Fx(')f(that)i(pro)m (vides)f(an)h(Emacs)f(Lisp)g(API)g(to)150 673 y(\(a)28 b(limited)g(set)g(of)7 b(\))27 b(the)h(Libidn)e(API.)h(This)f(section)j (describ)s(es)d(the)h(API.)h(Curren)m(tly)e(the)h(IDNA)h(API)150 783 y(alw)m(a)m(ys)k(set)f(the)g Fr(UseSTD3ASCIIRules)25 b Fx(\015ag)31 b(and)f(clear)h(the)g Fr(AllowUnassigned)26 b Fx(\015ag,)31 b(in)f(the)h(future)150 892 y(there)g(ma)m(y)g(b)s(e)e (functionalit)m(y)j(to)f(sp)s(ecify)f(these)h(\015ags)g(via)g(the)f (API.)150 1140 y Fw(11.1)68 b(Pun)l(yco)t(de)45 b(Emacs)g(API)3371 1359 y Fx([V)-8 b(ariable])-3598 b Fp(punycode-program)390 1469 y Fx(Name)34 b(of)g(the)g(GNU)g(Libidn)f(`)p Fr(idn)p Fx(')g(application.)52 b(The)33 b(default)h(is)f(`)p Fr(idn)p Fx('.)50 b(This)33 b(v)-5 b(ariable)35 b(can)390 1578 y(b)s(e)30 b(customized.)3371 1783 y([V)-8 b(ariable])-3598 b Fp(punycode-environment)390 1892 y Fx(List)34 b(of)g(en)m(vironmen)m (t)h(v)-5 b(ariable)35 b(de\014nitions)e(prep)s(ended)f(to)j(`)p Fr(process-environment)p Fx('.)46 b(The)390 2002 y(default)31 b(is)f(`)p Fr(\("CHARSET=UTF-8"\))p Fx('.)36 b(This)30 b(v)-5 b(ariable)31 b(can)g(b)s(e)f(customized.)3371 2206 y([V)-8 b(ariable])-3598 b Fp(punycode-encode-parame)q(ter)q(s)390 2316 y Fx(List)62 b(of)g(parameters)g(passed)f(to)i Fn(pun)m(yco)s (de-program)e Fx(to)h(in)m(v)m(ok)m(e)i(pun)m(yco)s(de)d(enco)s(ding) 390 2426 y(mo)s(de.)67 b(The)39 b(default)h(is)g(`)p Fr(\("--quiet")27 b("--punycode-encode"\))p Fx('.)63 b(This)39 b(v)-5 b(ariable)40 b(can)g(b)s(e)390 2535 y(customized.)3371 2740 y([V)-8 b(ariable])-3598 b Fp (punycode-decode-parame)q(ter)q(s)390 2849 y Fx(P)m(arameters)40 b(passed)e(to)i Fn(pun)m(yco)s(de-program)e Fx(to)i(in)m(v)m(ok)m(e)h (pun)m(yco)s(de)d(deco)s(ding)h(mo)s(de.)65 b(The)390 2959 y(default)31 b(is)f(`)p Fr(\("--quiet")e("--punycode-decode"\))p Fx('.)35 b(This)30 b(v)-5 b(ariable)31 b(can)g(b)s(e)e(customized.)3350 3164 y([F)-8 b(unction])-3599 b Fp(punycode-encode)50 b Fn(string)390 3273 y Fx(Returns)29 b(a)i(Pun)m(yco)s(de)f(enco)s (ding)g(of)h(the)g Fn(string)8 b Fx(,)30 b(after)h(con)m(v)m(erting)h (the)f(input)e(in)m(to)i(UTF-8.)3350 3478 y([F)-8 b(unction])-3599 b Fp(punycode-decode)50 b Fn(string)390 3587 y Fx(Returns)37 b(a)h(p)s(ossibly)g(m)m(ultib)m(yte)h(string)f(whic)m(h)g(is)g(the)g (deco)s(ding)g(of)g(the)g Fn(string)46 b Fx(whic)m(h)38 b(is)g(a)390 3697 y(pun)m(yco)s(de)30 b(enco)s(ded)g(string.)150 3944 y Fw(11.2)68 b(IDNA)45 b(Emacs)g(API)3371 4164 y Fx([V)-8 b(ariable])-3598 b Fp(idna-program)390 4273 y Fx(Name)34 b(of)g(the)g(GNU)g(Libidn)f(`)p Fr(idn)p Fx(')g(application.)52 b(The)33 b(default)h(is)f(`)p Fr(idn)p Fx('.)50 b(This)33 b(v)-5 b(ariable)35 b(can)390 4383 y(b)s(e)30 b(customized.)3371 4587 y([V)-8 b(ariable])-3598 b Fp(idna-environment)390 4697 y Fx(List)34 b(of)g(en)m(vironmen)m(t)h (v)-5 b(ariable)35 b(de\014nitions)e(prep)s(ended)f(to)j(`)p Fr(process-environment)p Fx('.)46 b(The)390 4807 y(default)31 b(is)f(`)p Fr(\("CHARSET=UTF-8"\))p Fx('.)36 b(This)30 b(v)-5 b(ariable)31 b(can)g(b)s(e)f(customized.)3371 5011 y([V)-8 b(ariable])-3598 b Fp(idna-to-ascii-paramete)q(rs)390 5121 y Fx(List)31 b(of)f(parameters)h(passed)f(to)h Fn(idna-program)f Fx(to)i(in)m(v)m(ok)m(e)g(IDNA)f(T)-8 b(oASCI)s(I)29 b(mo)s(de.)41 b(The)30 b(de-)390 5230 y(fault)k(is)g(`)p Fr(\("--quiet")28 b("--idna-to-ascii")d("--usestd3asciirules"\))p Fx('.)45 b(This)33 b(v)-5 b(ariable)390 5340 y(can)31 b(b)s(e)e(customized.)p eop end %%Page: 57 62 TeXDict begin 57 61 bop 150 -116 a Fx(Chapter)30 b(11:)41 b(Emacs)31 b(API)2546 b(57)3371 299 y([V)-8 b(ariable])-3598 b Fp(idna-to-unicode-parame)q(ter)q(s)390 408 y Fx(P)m(arameters)38 b(passed)e Fn(idna-program)g Fx(to)h(in)m(v)m(ok)m(e)i(IDNA)e(T)-8 b(oUnico)s(de)37 b(mo)s(de.)59 b(The)36 b(default)h(is)390 518 y(`)p Fr(\("--quiet")28 b("--idna-to-unicode")d ("--usestd3asciirules"\))p Fx('.)73 b(This)43 b(v)-5 b(ariable)44 b(can)390 628 y(b)s(e)30 b(customized.)3350 812 y([F)-8 b(unction])-3599 b Fp(idna-to-ascii)49 b Fn(string)390 922 y Fx(Returns)26 b(an)h(ASCI)s(I)e(Compatible)j(Enco)s (ding)e(\(A)m(CE\))i(of)f(the)h(string)e(computed)h(b)m(y)g(the)g(IDNA) 390 1031 y(T)-8 b(oASCI)s(I)29 b(op)s(eration)i(on)f(the)h(input)e Fn(string)8 b Fx(,)31 b(after)g(con)m(v)m(erting)h(the)e(input)g(to)h (UTF-8.)3350 1215 y([F)-8 b(unction])-3599 b Fp(idna-to-unicode)50 b Fn(string)390 1325 y Fx(Returns)43 b(a)g(p)s(ossibly)g(m)m(ultib)m (yte)i(string)e(whic)m(h)g(is)h(the)g(output)f(of)g(the)h(IDNA)g(T)-8 b(oUnico)s(de)390 1435 y(op)s(eration)31 b(computed)f(on)g(the)h(input) e Fn(string)8 b Fx(.)p eop end %%Page: 58 63 TeXDict begin 58 62 bop 150 -116 a Fx(Chapter)30 b(12:)41 b(Ja)m(v)-5 b(a)32 b(API)2627 b(58)150 299 y Fu(12)80 b(Ja)l(v)-9 b(a)55 b(API)150 559 y Fx(Libidn)31 b(has)h(b)s(een)g(p)s (orted)g(to)h(the)f(Ja)m(v)-5 b(a)34 b(programming)e(language,)j(and)c (as)i(a)g(consequence)g(most)g(of)150 669 y(the)27 b(API)f(is)g(a)m(v) -5 b(ailable)29 b(to)e(nativ)m(e)h(Ja)m(v)-5 b(a)27 b(applications.)41 b(This)26 b(section)h(con)m(tain)h(notes)f(on)f(this)g(supp)s(ort,)150 778 y(complete)32 b(do)s(cumen)m(tation)f(is)f(p)s(ending.)275 921 y(The)c(Ja)m(v)-5 b(a)28 b(library)-8 b(,)27 b(if)g(Libidn)f(has)g (b)s(een)g(built)h(with)f(Ja)m(v)-5 b(a)28 b(supp)s(ort)d(\(see)j (Section)f(1.7)h([Do)m(wnload-)150 1031 y(ing)h(and)f(Installing],)i (page)f(6\),)h(will)f(b)s(e)f(placed)i(in)e(`)p Fr (java/libidn-1.15.jar)p Fx('.)35 b(The)28 b(source)h(co)s(de)g(is)150 1141 y(lo)s(cated)j(in)e(`)p Fr(java/gnu/inet/encoding/)p Fx('.)150 1386 y Fw(12.1)68 b(Ov)l(erview)150 1546 y Fx(This)37 b(pac)m(k)-5 b(age)40 b(pro)m(vides)f(a)f(Ja)m(v)-5 b(a)39 b(implemen)m(tation)h(of)e(the)h(In)m(ternationalized)h(Domain)f (Names)f(in)150 1655 y(Applications)43 b(\(IDNA\))g(standard.)75 b(It)42 b(is)g(written)g(en)m(tirely)i(in)d(Ja)m(v)-5 b(a)43 b(and)f(do)s(es)g(not)g(require)g(an)m(y)150 1765 y(additional)31 b(libraries)g(to)g(b)s(e)f(set)h(up.)275 1908 y(The)i(gn)m(u.inet.enco)s(ding.IDNA)k(class)e(o\013ers)g(t)m(w)m (o)g(public)f(functions,)h(toASCI)s(I)f(and)g(toUnico)s(de)150 2017 y(whic)m(h)c(can)h(b)s(e)f(used)f(as)i(follo)m(ws:)390 2161 y Fr(gnu.inet.encoding.IDNA.t)o(oASC)o(II\(")o(bl\177)-49 b(ods.z)o(\177)h(ug"\))o(;)390 2270 y(gnu.inet.encoding.IDNA.t)o(oUni)o (code)o(\("x)o(n--b)o(lds-)o(6qa)o(.xn-)o(-zg-)o(xka)o("\);)150 2516 y Fw(12.2)68 b(Miscellaneous)47 b(Programs)150 2675 y Fx(The)31 b(`)p Fr(misc/)p Fx(')f(directory)i(con)m(tains)h(sev)m (eral)g(programs)e(that)h(are)g(related)g(to)g(the)g(Ja)m(v)-5 b(a)32 b(part)g(of)f(GNU)150 2785 y(Libidn,)e(but)h(that)h(don't)f (need)h(to)g(b)s(e)e(included)h(in)g(the)h(main)f(source)g(tree.)150 2993 y Fq(12.2.1)63 b(GenerateRF)m(C3454)150 3140 y Fx(This)43 b(program)h(parses)g(RF)m(C3454)i(and)e(creates)h(the)f(RF)m(C3454.ja)m (v)-5 b(a)48 b(program)c(that)h(is)f(required)150 3249 y(during)29 b(the)i(StringPrep)e(phase.)275 3392 y(The)19 b(RF)m(C)i(can)f(b)s(e)g(found)f(at)i(v)-5 b(arious)20 b(lo)s(cations,)k(for)c(example)h(at)g Fr(http://www.ietf.org/rfc/r)o (fc34)o(54.t)o(xt)p Fx(.)275 3536 y(In)m(v)m(ok)m(e)31 b(the)g(program)f(as)h(follo)m(ws:)390 3679 y Fr($)47 b(java)g(GenerateRFC3454)390 3788 y(Creating)f(RFC3454.java...)d(Ok.) 150 3996 y Fq(12.2.2)63 b(GenerateNFK)m(C)150 4143 y Fx(The)44 b(GenerateNFK)m(C)j(program)e(parses)f(the)h(Unico)s(de)g(c)m (haracter)i(database)e(\014le)g(and)g(generates)150 4253 y(all)f(the)g(tables)g(required)e(for)h(NFK)m(C.)h(This)e(program)h (requires)g(the)g(t)m(w)m(o)i(\014les)e(Unico)s(deData.txt)150 4362 y(and)e(Comp)s(ositionExclusions.txt)i(of)f(v)m(ersion)g(3.2)h(of) f(the)g(Unico)s(de)g(\014les.)75 b(Note)43 b(that)g(RF)m(C3454)150 4472 y(\(Stringprep\))30 b(de\014nes)f(that)i(Unico)s(de)g(v)m(ersion)g (3.2)g(is)f(to)i(b)s(e)d(used,)h(not)h(the)f(latest)i(v)m(ersion.)275 4615 y(The)d(Unico)s(de)i(data)g(\014les)f(can)h(b)s(e)f(found)f(at)i Fr(http://www.unicode.org/P)o(ubli)o(c/)p Fx(.)275 4758 y(In)m(v)m(ok)m(e)g(the)g(program)f(as)h(follo)m(ws:)390 4902 y Fr($)47 b(java)g(GenerateNFKC)390 5011 y(Creating)f (CombiningClass.java...)41 b(Ok.)390 5121 y(Creating)46 b(DecompositionKeys.java.)o(..)41 b(Ok.)390 5230 y(Creating)46 b(DecompositionMappings.j)o(ava)o(...)41 b(Ok.)390 5340 y(Creating)46 b(Composition.java...)c(Ok.)p eop end %%Page: 59 64 TeXDict begin 59 63 bop 150 -116 a Fx(Chapter)30 b(12:)41 b(Ja)m(v)-5 b(a)32 b(API)2627 b(59)150 299 y Fq(12.2.3)63 b(T)-10 b(estIDNA)150 446 y Fx(The)22 b(T)-8 b(estIDNA)25 b(program)d(allo)m(ws)i(to)g(test)g(the)f(IDNA)g(implemen)m(tation)i (man)m(ually)e(or)g(against)i(Simon)150 555 y(Josefsson's)30 b(test)i(v)m(ectors.)275 689 y(The)19 b(test)i(v)m(ectors)h(can)f(b)s (e)e(found)g(at)i(the)g(Libidn)e(homepage,)k Fr (http://www.gnu.org/softwa)o(re/l)o(ibid)o(n/)p Fx(.)275 822 y(T)-8 b(o)30 b(test)i(the)e(tranformation)h(man)m(ually)-8 b(,)32 b(use:)390 956 y Fr($)47 b(java)g(-cp)g(.:../libidn.jar)d (TestIDNA)h(-a)i()390 1066 y(Input:)f()390 1175 y(Output:)f()390 1285 y($)f(java)g(-cp)g(.:../libidn.jar)d(TestIDNA)h(-u)i ()390 1394 y(Input:)f()390 1504 y(Output:)f()275 1637 y Fx(T)-8 b(o)30 b(test)i(against)f(draft-josefsson-idn-test-v)m (ectors.h)m(tml,)j(use:)390 1771 y Fr($)47 b(java)g(-cp)g (.:../libidn.jar)d(TestIDNA)h(-t)390 1881 y(No)i(errors)f(detected!)150 2078 y Fq(12.2.4)63 b(T)-10 b(estNFK)m(C)150 2225 y Fx(The)29 b(T)-8 b(estNFK)m(C)30 b(program)f(allo)m(ws)h(to)g(test)h(the)e(NFK)m (C)g(implemen)m(tation)i(man)m(ually)f(or)f(against)i(the)150 2334 y(NormalizationT)-8 b(est.txt)34 b(\014le)d(from)f(the)g(Unico)s (de)h(data)g(\014les.)275 2468 y(T)-8 b(o)30 b(test)i(the)e (normalization)i(man)m(ually)-8 b(,)32 b(use:)390 2601 y Fr($)47 b(java)g(-cp)g(.:../libidn.jar)d(TestNFKC)h()390 2711 y(Input:)f()390 2821 y(Output:)f()275 2954 y Fx(T)-8 b(o)30 b(test)i(against)f(NormalizationT)-8 b(est.txt:)390 3088 y Fr($)47 b(java)g(-cp)g(.:../libidn.jar)d (TestNFKC)390 3197 y(No)j(errors)f(detected!)150 3428 y Fw(12.3)68 b(P)l(ossible)46 b(Problems)150 3587 y Fx(Bew)m(are)28 b(of)f(Bugs:)39 b(This)26 b(Ja)m(v)-5 b(a)27 b(API)g(needs)f(a)h(lot)h (more)e(testing,)j(esp)s(ecially)f(with)e Fr(")p Fx(exotic)p Fr(")i Fx(c)m(haracter)150 3697 y(sets.)41 b(While)31 b(it)g(w)m(orks)g(for)f(me,)g(it)h(ma)m(y)g(not)g(w)m(ork)f(for)g(y)m (ou.)275 3830 y(Enco)s(ding)21 b(of)h(y)m(our)h(Ja)m(v)-5 b(a)23 b(sources:)36 b(If)22 b(y)m(ou)g(are)h(using)f(non-ASCI)s(I)e(c) m(haracters)k(in)e(y)m(our)g(Ja)m(v)-5 b(a)23 b(source)150 3940 y(co)s(de,)g(mak)m(e)f(sure)d(ja)m(v)-5 b(ac)22 b(compiles)g(y)m(our)e(programs)g(with)g(the)h(correct)h(enco)s(ding.) 37 b(If)20 b(necessary)h(sp)s(ecify)150 4049 y(the)31 b(enco)s(ding)f(using)g(the)g(-enco)s(ding)h(parameter.)275 4183 y(Ja)m(v)-5 b(a)24 b(Unico)s(de)g(handling:)37 b(Ja)m(v)-5 b(a)25 b(1.4)f(only)g(handles)f(16-bit)i(Unico)s(de)f(co)s(de)g(p)s (oin)m(ts)g(\(i.e.)39 b(c)m(haracters)150 4293 y(in)28 b(the)h(Basic)h(Multilingual)g(Plane\),)g(this)f(implemen)m(tation)h (therefore)f(ignores)g(all)h(references)f(to)g(so-)150 4402 y(called)36 b(Supplemen)m(tary)f(Characters)g(\(U)p Fr(+)p Fx(10000)j(to)e(U)p Fr(+)p Fx(10FFFF\).)h(Starting)f(from)f(Ja)m (v)-5 b(a)36 b(1.5,)h(these)150 4512 y(c)m(haracters)32 b(will)f(also)g(b)s(e)f(supp)s(orted)e(b)m(y)j(Ja)m(v)-5 b(a,)31 b(but)f(this)g(will)h(require)f(c)m(hanges)h(to)h(this)e (library)-8 b(.)41 b(See)150 4621 y(also)31 b(the)g(next)f(section.)150 4852 y Fw(12.4)68 b(A)45 b(Note)h(on)e(Ja)l(v)-7 b(a)46 b(and)f(Unico)t(de)150 5011 y Fx(This)25 b(library)f(uses)h(Ja)m(v)-5 b(a's)27 b(builtin)e('c)m(har')h(datat)m(yp)s(e.)40 b(Up)25 b(to)h(Ja)m(v)-5 b(a)26 b(1.4,)i(this)d(datat)m(yp)s(e)h(only)g(supp)s (orts)150 5121 y(16-bit)46 b(Unico)s(de)g(co)s(de)f(p)s(oin)m(ts,)k (also)e(called)f(the)f(Basic)i(Multilingual)g(Plane.)85 b(F)-8 b(or)46 b(this)f(reason,)150 5230 y(this)35 b(library)h(do)s (esn't)f(w)m(ork)h(for)f(Supplemen)m(tary)g(Characters)h(\(i.e.)57 b(c)m(haracters)37 b(from)e(U)p Fr(+)p Fx(10000)j(to)150 5340 y(U)p Fr(+)p Fx(10FFFF\).)33 b(All)e(references)g(to)g(suc)m(h)f (c)m(haracters)i(are)f(silen)m(tly)g(ignored.)p eop end %%Page: 60 65 TeXDict begin 60 64 bop 150 -116 a Fx(Chapter)30 b(12:)41 b(Ja)m(v)-5 b(a)32 b(API)2627 b(60)275 299 y(Starting)26 b(from)g(Ja)m(v)-5 b(a)28 b(1.5,)g(also)f(Supplemen)m(tary)f (Characters)h(will)f(b)s(e)g(supp)s(orted.)38 b(Ho)m(w)m(ev)m(er,)29 b(this)150 408 y(will)24 b(require)g(c)m(hanges)h(in)f(the)h(presen)m (t)f(v)m(ersion)g(of)h(the)f(library)-8 b(.)39 b(Ja)m(v)-5 b(a)25 b(1.5)g(is)f(curren)m(tly)g(in)g(b)s(eta)g(status.)275 543 y(F)-8 b(or)24 b(more)g(information)g(refer)g(to)g(the)g(do)s (cumen)m(tation)h(of)f(ja)m(v)-5 b(a.lang.Character)26 b(in)d(the)h(JDK)g(API.)p eop end %%Page: 61 66 TeXDict begin 61 65 bop 150 -116 a Fx(Chapter)30 b(13:)41 b(C#)30 b(API)2664 b(61)150 299 y Fu(13)80 b(C#)54 b(API)150 533 y Fx(The)33 b(Libidn)g(library)h(has)f(b)s(een)h(p)s(orted)f(to)i (the)f(C#)f(language.)53 b(The)34 b(p)s(ort)f(reside)h(in)f(the)i (top-lev)m(el)150 643 y(`)p Fr(csharp/)p Fx(')27 b(directory)-8 b(.)41 b(Curren)m(tly)-8 b(,)29 b(no)f(further)f(do)s(cumen)m(tation)i (ab)s(out)f(the)g(implemen)m(tation)i(or)f(the)150 752 y(API)e(is)f(a)m(v)-5 b(ailable.)42 b(Ho)m(w)m(ev)m(er,)30 b(the)d(C#)f(p)s(ort)g(w)m(as)h(based)g(on)f(the)h(Ja)m(v)-5 b(a)28 b(p)s(ort,)f(and)f(the)h(API)f(is)h(exactly)150 862 y(the)k(same)f(as)h(in)f(the)h(Ja)m(v)-5 b(a)31 b(v)m(ersion.)41 b(The)30 b(help)g(\014les)g(for)g(the)h(Ja)m(v)-5 b(a)31 b(API)f(ma)m(y)h(th)m(us)f(b)s(e)g(useful.)p eop end %%Page: 62 67 TeXDict begin 62 66 bop 150 -116 a Fx(Chapter)30 b(14:)41 b(Ac)m(kno)m(wledgemen)m(ts)2251 b(62)150 299 y Fu(14)80 b(Ac)l(kno)l(wledgemen)l(ts)150 533 y Fx(The)35 b(pun)m(yco)s(de)f (implemen)m(tation)j(w)m(as)f(tak)m(en)g(from)f(the)h(IETF)f(IDN)h(Pun) m(yco)s(de)e(sp)s(eci\014cation,)k(b)m(y)150 643 y(Adam)f(M.)g (Costello.)63 b(The)36 b(TLD)h(co)s(de)g(w)m(as)h(con)m(tributed)f(b)m (y)g(Thomas)g(Jacob.)61 b(The)37 b(Ja)m(v)-5 b(a)38 b(imple-)150 752 y(men)m(tation)i(w)m(as)f(con)m(tributed)g(b)m(y)f(Oliv)m(er)h (Hitz.)66 b(The)38 b(C#)g(implemen)m(tation)i(w)m(as)f(con)m(tributed)g (b)m(y)150 862 y(Alexander)28 b(Gnauc)m(k.)40 b(The)27 b(Unico)s(de)h(tables)g(w)m(ere)h(pro)m(vided)e(b)m(y)g(Unico)s(de,)i (Inc.)39 b(Some)28 b(functions)f(for)150 971 y(dealing)i(with)f(Unico)s (de)g(\(see)h(nfk)m(c.c)g(and)e(toutf8.c\))j(w)m(ere)e(b)s(orro)m(w)m (ed)g(from)g(GLib,)g(do)m(wnloaded)g(from)150 1081 y Fr(http://www.gtk.org/)p Fx(.)35 b(The)30 b(man)m(ual)h(b)s(orro)m(w)m (ed)f(text)h(from)f(Libgcrypt)g(b)m(y)h(W)-8 b(erner)30 b(Ko)s(c)m(h.)275 1215 y(Inspiration)g(for)g(man)m(y)h(things)g(that,)g (consciously)h(or)e(not,)i(ha)m(v)m(e)f(gone)h(in)m(to)g(this)e(pac)m (k)-5 b(age)33 b(is)e(due)150 1325 y(to)40 b(a)f(n)m(um)m(b)s(er)f(of)h (free)g(soft)m(w)m(are)h(pac)m(k)-5 b(age)41 b(that)e(the)h(author)e (has)h(b)s(een)f(exp)s(osed)h(to.)67 b(The)38 b(author)150 1435 y(wishes)f(to)h(ac)m(kno)m(wledge)h(the)e(free)h(soft)m(w)m(are)g (comm)m(unit)m(y)g(in)f(general,)j(for)d(giving)h(an)f(example)h(on)150 1544 y(what)30 b(role)h(soft)m(w)m(are)h(dev)m(elopmen)m(t)g(can)f(pla) m(y)g(in)f(the)g(mo)s(dern)f(so)s(ciet)m(y)-8 b(.)275 1679 y(Sev)m(eral)49 b(p)s(eople)f(rep)s(orted)g(bugs,)53 b(sen)m(t)c(patc)m(hes)g(or)f(suggested)i(impro)m(v)m(emen)m(ts,)k(see) 49 b(the)g(\014le)150 1788 y(THANKS)30 b(in)g(the)g(top-lev)m(el)j (directory)e(of)f(the)h(source)g(co)s(de.)p eop end %%Page: 63 68 TeXDict begin 63 67 bop 150 -116 a Fx(Chapter)30 b(15:)41 b(History)2706 b(63)150 299 y Fu(15)80 b(History)150 533 y Fx(The)41 b(complete)h(history)g(of)f(user)g(visible)g(c)m (hanges)h(is)g(stored)f(in)g(the)g(\014le)h(`)p Fr(NEWS)p Fx(')e(in)h(the)h(top-lev)m(el)150 643 y(directory)g(of)h(the)f(source) g(co)s(de)g(tree.)76 b(The)42 b(complete)h(history)f(of)g(mo)s (di\014cations)g(to)h(eac)m(h)g(\014le)f(is)150 752 y(stored)h(in)g (the)g(\014le)g(`)p Fr(ChangeLog)p Fx(')e(in)i(the)g(same)h(directory) -8 b(.)79 b(This)42 b(section)j(con)m(tain)f(a)f(condensed)150 862 y(v)m(ersion)31 b(of)f(that)h(information,)g(in)f(the)h(form)f(of)g (\\milestones")j(for)d(the)g(pro)5 b(ject.)150 1021 y(Stringprep)29 b(implemen)m(tation.)630 1131 y(V)-8 b(ersion)31 b(0.0.0)h(released)f (on)g(2002-11-05.)150 1290 y(IDNA)g(and)f(Pun)m(yco)s(de)g(implemen)m (tations,)i(part)e(of)g(the)h(GNU)g(pro)5 b(ject.)630 1400 y(V)-8 b(ersion)31 b(0.1.0)h(released)f(on)g(2003-01-05.)150 1559 y(Uses)g(o\016cial)g(IDNA)g(A)m(CE)g(pre\014x)e Fr(xn--)p Fx(.)630 1669 y(V)-8 b(ersion)31 b(0.1.7)h(released)f(on)g (2003-02-12.)150 1828 y(Command)e(line)i(in)m(terface.)630 1938 y(V)-8 b(ersion)31 b(0.1.11)i(released)e(on)f(2003-02-26.)150 2097 y(GNU)h(Lib)s(c)f(add-on)g(prop)s(osed.)630 2207 y(V)-8 b(ersion)31 b(0.1.12)i(released)e(on)f(2003-03-06.)150 2366 y(In)m(terop)s(erabilit)m(y)h(testing)h(during)d(IDNConnect.)630 2476 y(V)-8 b(ersion)31 b(0.3.1)h(released)f(on)g(2003-10-02.)150 2635 y(TLD)f(restriction)i(testing.)630 2745 y(V)-8 b(ersion)31 b(0.4.0)h(released)f(on)g(2004-02-28.)150 2904 y(GNU)g(Lib)s(c)f (add-on)g(in)m(tegrated.)630 3014 y(V)-8 b(ersion)31 b(0.4.1)h(released)f(on)g(2004-03-08.)150 3173 y(Nativ)m(e)h(Ja)m(v)-5 b(a)32 b(implemen)m(tation.)630 3283 y(V)-8 b(ersion)31 b(0.4.2-0.4.9)j(released)e(b)s(et)m(w)m(een)f(2004-03-20)j(and)c (2004-06-11.)150 3442 y(PR-29)h(functions)f(for)g(\\problem)h (sequences".)630 3552 y(V)-8 b(ersion)31 b(0.5.0)h(released)f(on)g (2004-06-26.)150 3711 y(Man)m(y)g(small)g(p)s(ortabilit)m(y)g(\014xes)f (and)g(wider)g(use.)630 3821 y(V)-8 b(ersion)31 b(0.5.1)h(through)e (0.5.20,)j(released)e(b)s(et)m(w)m(een)g(2004-07-09)j(and)c (2005-10-23.)150 3980 y(Nativ)m(e)i(C#)e(implemen)m(tation.)630 4090 y(V)-8 b(ersion)31 b(0.6.0)h(released)f(on)g(2005-12-03.)150 4249 y(Windo)m(ws)f(supp)s(ort)f(through)h(cross-compilation.)630 4359 y(V)-8 b(ersion)31 b(0.6.1)h(released)f(on)g(2006-01-20.)150 4518 y(Library)f(declared)g(stable)h(b)m(y)g(releasing)g(v1.0.)630 4628 y(V)-8 b(ersion)31 b(1.0)g(released)h(on)e(2007-07-31.)p eop end %%Page: 64 69 TeXDict begin 64 68 bop 150 -116 a Fx(App)s(endix)29 b(A:)h(PR29)h(discussion)2323 b(64)150 299 y Fu(App)t(endix)52 b(A)81 b(PR29)54 b(discussion)150 500 y Fx(If)26 b(y)m(ou)h(wish)f(to)h (exp)s(erimen)m(t)g(with)f(a)h(mo)s(di\014ed)f(Unico)s(de)h(NFK)m(C)g (implemen)m(tation)h(according)f(to)h(the)150 609 y(PR29)j(prop)s (osal,)g(y)m(ou)g(ma)m(y)g(\014nd)e(the)i(follo)m(wing)h(bug)e(rep)s (ort)g(useful.)41 b(Ho)m(w)m(ev)m(er,)33 b(I)d(ha)m(v)m(e)i(not)f(v)m (eri\014ed)150 719 y(that)k(the)g(suggested)g(mo)s(di\014cations)g(are) g(correct.)54 b(F)-8 b(or)35 b(reference,)i(I'm)d(including)g(m)m(y)h (resp)s(onse)e(to)150 829 y(the)e(rep)s(ort)e(as)i(w)m(ell.)150 956 y Fr(From:)46 b(Rick)h(McGowan)f()150 1066 y(Subject:)g(Possible)f(bug)i(and)g(status)f(of)h(PR)g(29)h (change\(s\))150 1176 y(To:)f(bug-libidn@gnu.org)150 1285 y(Date:)f(Wed,)h(27)g(Oct)g(2004)g(14:49:17)e(-0700)150 1504 y(Hello.)h(On)h(behalf)f(of)i(the)e(Unicode)g(Consortium)f (editorial)h(committee,)f(I)i(would)150 1614 y(like)g(to)g(find)f(out)h (more)g(information)e(about)h(the)h(PR)g(29)g(fixes,)f(if)i(any,)e(and) 150 1724 y(functions)f(in)i(Libidn.)f(Your)h(implementation)d(was)j (listed)f(in)h(the)g(text)g(of)g(PR29)f(as)150 1833 y(needing)g (investigation,)e(so)j(I)g(am)h(following)d(up)i(on)g(several)f (implementations.)150 2052 y(The)h(UTC)g(has)g(accepted)e(the)i (proposed)f(fix)h(to)g(D2)g(as)g(outlined)f(in)h(PR29,)f(and)h(a)h(new) 150 2162 y(draft)e(of)i(UAX)e(#15)h(has)g(been)g(issued.)150 2381 y(I)g(have)g(looked)f(at)h(Libidn)f(0.5.8)h(\(today\),)e(and)i (there)g(may)g(still)f(be)h(a)h(possible)150 2491 y(bug)f(in)g (NFKC.java)e(and)i(nfkc.c.)150 2710 y(------------------------)o(----)o (----)o(---)o(----)o(----)o(---)o(----)o(----)150 2929 y(1.)g(In)g(NFKC.java,)e(this)i(line)g(in)g(canonicalOrdering\(\):)436 3148 y(if)h(\(i)f(>)g(0)h(&&)f(\(last_cc)e(==)j(0)f(||)g(last_cc)f(!=)h (cc\)\))g({)150 3367 y(should)f(perhaps)g(be)h(changed)f(to:)436 3587 y(if)i(\(i)f(>)g(0)h(&&)f(\(last_cc)e(==)j(0)f(||)g(last_cc)f(<)h (cc\)\))g({)150 3806 y(but)g(I'm)g(not)g(sure)f(of)i(the)e(sense)h(of)g (this)g(comparison.)150 4025 y(------------------------)o(----)o(----)o (---)o(----)o(----)o(---)o(----)o(----)150 4244 y(2.)g(In)g(nfkc.c,)f (function)g(_g_utf8_normalize_wc\(\))41 b(has)47 b(this)g(code:)627 4463 y(if)g(\(i)h(>)f(0)h(&&)818 4573 y(\(last_cc)e(==)h(0)g(||)h (last_cc)d(!=)j(cc\))e(&&)818 4682 y(combine)g (\(wc_buffer[last_start],)41 b(wc_buffer[i],)1248 4792 y(&wc_buffer[last_start]\))o(\))723 4902 y({)150 5121 y(This)47 b(appears)e(to)j(have)e(the)h(same)g(bug)g(as)g(the)g (current)f(Python)g(implementation)e(\(in)150 5230 y(Python)i(2.3.4\).) g(The)h(code)f(should)h(be)g(checking,)e(as)i(per)g(new)g(rule)g(D2)g (UAX)g(#15)150 5340 y(update,)f(that)g(the)h(next)g(combining)e (character)h(is)h(the)g(same)f(or)h(HIGHER)g(than)f(the)p eop end %%Page: 65 70 TeXDict begin 65 69 bop 150 -116 a Fx(App)s(endix)29 b(A:)h(PR29)h(discussion)2323 b(65)150 299 y Fr(current)46 b(one.)g(It)i(now)f(checks)f(to)h(see)g(if)g(it's)g(non-zero)e(and)i (not)g(equal.)150 518 y(The)g(above)f(line\(s\))g(should)g(perhaps)g (be)h(changed)f(to:)627 737 y(if)h(\(i)h(>)f(0)h(&&)818 847 y(\(last_cc)e(==)h(0)g(||)h(last_cc)d(<)j(cc\))f(&&)818 956 y(combine)f(\(wc_buffer[last_start],)41 b(wc_buffer[i],)1248 1066 y(&wc_buffer[last_start]\))o(\))723 1176 y({)150 1395 y(but)47 b(I'm)g(not)g(sure)f(of)i(the)e(sense)h(of)g(the)g (comparison)e(\(<)i(or)g(>)h(or)f(<=?\))g(here.)150 1614 y(In)g(the)g(text)g(of)g(PR29,)f(I)i(will)e(be)i(marking)d(Libidn)h(as) i("needs)e(change")g(and)g(adding)150 1724 y(the)h(version)f(number)g (that)g(I)i(checked.)d(If)j(any)f(further)e(change)h(is)i(made,)e (please)150 1833 y(let)h(me)g(know)g(the)g(release)e(version,)h(and)h (I'll)g(update)f(again.)150 2052 y(Regards,)532 2162 y(Rick)g(McGowan)150 2381 y(From:)g(Simon)h(Josefsson)e ()150 2491 y(Subject:)h(Re:)g(Possible)g(bug)h(and)g (status)f(of)h(PR)g(29)g(change\(s\))150 2600 y(To:)g(Rick)g(McGowan)e ()150 2710 y(Cc:)i(bug-libidn@gnu.org)150 2819 y(Date:)f(Thu,)h(28)g(Oct)g(2004)g(09:47:47)e(+0200)150 3039 y(Rick)i(McGowan)e()e(writes:)150 3258 y(>)k(Hello.)g(On)g(behalf)f(of)h(the)g(Unicode)f(Consortium)f (editorial)g(committee,)g(I)i(would)150 3367 y(>)g(like)g(to)g(find)g (out)g(more)f(information)f(about)i(the)f(PR)i(29)f(fixes,)f(if)h(any,) g(and)150 3477 y(>)g(functions)f(in)h(Libidn.)f(Your)g(implementation)e (was)j(listed)f(in)h(the)g(text)g(of)g(PR29)g(as)150 3587 y(>)g(needing)f(investigation,)e(so)j(I)h(am)f(following)e(up)i (on)h(several)d(implementations.)150 3696 y(>)150 3806 y(>)i(The)g(UTC)g(has)g(accepted)f(the)h(proposed)e(fix)i(to)g(D2)g(as) h(outlined)d(in)i(PR29,)g(and)g(a)g(new)150 3915 y(>)g(draft)g(of)g (UAX)g(#15)g(has)g(been)f(issued.)150 4025 y(>)150 4134 y(>)h(I)h(have)f(looked)f(at)h(Libidn)f(0.5.8)g(\(today\),)g(and)h (there)f(may)h(still)f(be)i(a)f(possible)150 4244 y(>)g(bug)g(in)h (NFKC.java)d(and)i(nfkc.c.)150 4463 y(Hello)f(Rick.)150 4682 y(I)h(believe)f(the)h(current)f(behavior)g(is)h(intentional.)92 b(Libidn)46 b(do)h(not)g(aim)g(to)150 4792 y(implement)e (latest-and-greatest)e(NFKC,)j(it)h(aim)g(to)g(implement)f(the)h(NFKC) 150 4902 y(functionality)d(required)i(for)h(StringPrep)e(and)i(IDN.)94 b(As)47 b(you)g(may)g(know,)150 5011 y(StringPrep/IDN)d(reference)h (Unicode)h(3.2.0,)g(and)h(explicitly)e(says)i(any)g(later)150 5121 y(changes)f(\(which)g(I)h(consider)f(PR29)h(as\))f(do)i(not)f (apply.)150 5340 y(In)g(fact,)g(I)g(believe)f(that)g(would)h(I)g (incorporate)e(the)i(changes)f(suggested)f(in)p eop end %%Page: 66 71 TeXDict begin 66 70 bop 150 -116 a Fx(App)s(endix)29 b(A:)h(PR29)h(discussion)2323 b(66)150 299 y Fr(PR29,)46 b(I)i(would)e(in)h(fact)g(be)g(violating)e(the)i(IDN)g(specifications.) 150 518 y(Thanks)f(for)h(looking)f(into)g(the)h(code)g(and)g(finding)f (the)h(place)f(where)g(the)150 628 y(change)g(could)g(be)i(made.)94 b(I'll)46 b(see)h(if)g(I)h(can)f(mention)f(this)g(in)h(the)g(manual)150 737 y(somewhere,)e(for)i(technically)e(interested)g(readers.)150 956 y(Regards,)150 1066 y(Simon)p eop end %%Page: 67 72 TeXDict begin 67 71 bop 150 -116 a Fx(App)s(endix)29 b(B:)i(On)e(Lab)s(el)h(Separators)2150 b(67)150 299 y Fu(App)t(endix)52 b(B)81 b(On)54 b(Lab)t(el)f(Separators)150 533 y Fx(Some)43 b(strings)h(con)m(tains)g(c)m(haracters)h(whose)e(NFK) m(C)h(normalized)g(form)f(con)m(tain)h(the)g(ASCI)s(I)e(dot)150 643 y(\(0x2E,)30 b(\\."\).)42 b(Examples)28 b(of)h(these)g(c)m (haracters)h(are)f(U)p Fr(+)p Fx(2024)i(\(ONE)e(DOT)f(LEADER\))h(and)f (U)p Fr(+)p Fx(248C)150 752 y(\(DIGIT)37 b(FIVE)g(FULL)g(STOP\).)g(The) f(strings)h(ha)m(v)m(e)h(the)f(in)m(teresting)i(prop)s(ert)m(y)d(that)h (their)g(IDNA)150 862 y(T)-8 b(oASCI)s(I)29 b(output)h(will)h(con)m (tain)h(em)m(b)s(edded)d(dots.)41 b(F)-8 b(or)31 b(example:)390 996 y Fr(ToASCII)46 b(\(hi)h(U+248C)f(com\))g(=)i(hi5.com)390 1106 y(ToASCII)e(\(r\177)-48 b(aksm\177)g(org\027)g(as)45 b(U+2024)h(com\))g(=)i(xn--rksmrgs.com-l8as9u)275 1240 y Fx(This)36 b(demonstrate)i(the)g(t)m(w)m(o)h(general)g(cases:)56 b(The)37 b(\014rst)g(where)g(the)g(ASCI)s(I)f(dot)i(is)g(part)f(of)h (an)150 1350 y(output)c(that)h(do)g(not)g(b)s(egin)f(with)g(the)h(IDN)g (pre\014x)f Fr(xn--)p Fx(.)52 b(The)34 b(second)h(example)g(illustrate) h(when)150 1460 y(the)31 b(dot)f(is)h(part)f(of)g(IDN)h(pre\014xed)e (with)h Fr(xn--)p Fx(.)275 1594 y(The)e(input)h(strings)g(are,)h(from)f (the)g(DNS)h(p)s(oin)m(t)f(of)h(view,)g(a)f(single)h(lab)s(el.)41 b(The)29 b(IDNA)h(algorithm)150 1704 y(translate)39 b(one)e(lab)s(el)h (at)g(a)g(time.)63 b(Th)m(us,)38 b(the)g(output)f(is)h(exp)s(ected)g (to)g(b)s(e)f(only)g(one)h(lab)s(el.)62 b(What)150 1813 y(is)36 b(imp)s(ortan)m(t)g(here)f(is)h(to)g(mak)m(e)h(sure)e(the)h (DNS)f(resolv)m(er)i(receiv)m(es)h(the)d(correct)i(query)-8 b(.)57 b(The)35 b(DNS)150 1923 y(proto)s(col)43 b(do)s(es)f(not)h(use)f (the)g(dot)h(to)g(delimit)g(lab)s(els)g(on)f(the)g(wire,)k(rather)c(it) h(uses)f(length-v)-5 b(alue)150 2032 y(pairs.)38 b(Th)m(us)24 b(the)h(correct)g(query)f(w)m(ould)g(b)s(e)g(for)h Fr({7}hi5.com)c Fx(and)j Fr({22}xn--rksmrgs.com-l8as9)o(u)150 2142 y Fx(resp)s(ectiv)m(ely)-8 b(.)275 2276 y(Some)29 b(implemen)m(tations) 1169 2243 y Fg(1)1237 2276 y Fx(ha)m(v)m(e)i(decided)e(that)h(these)g (inputs)e(strings)h(are)h(p)s(oten)m(tially)h(confusing)150 2386 y(for)25 b(the)f(user.)39 b(The)24 b(string)h Fr(hi)k(U+248C)g (com)24 b Fx(lo)s(oks)h(lik)m(e)h Fr(hi5.com)d Fx(on)i(systems)f(that)i (supp)s(ort)d(Unico)s(de)150 2496 y(prop)s(erly)-8 b(.)40 b(These)30 b(implemen)m(tations)i(do)e(not)h(follo)m(w)g(RF)m(C)g (3490.)43 b(They)29 b(yield:)390 2630 y Fr(ToASCII)46 b(\(hi)h(U+248C)f(com\))g(=)i(hi5.com)390 2740 y(ToASCII)e(\(r\177)-48 b(aksm\177)g(org\027)g(as)45 b(U+2024)h(com\))g(=)i (xn--rksmrgs-5wao1o.com)275 2874 y Fx(The)30 b(DNS)g(query)g(they)h(p)s (erform)e(are)i Fr({3}hi5{3}com)c Fx(and)j Fr({18}xn--rksmrgs-5wao1o{)o (3}co)o(m)150 2984 y Fx(resp)s(ectiv)m(ely)-8 b(.)45 b(Arguably)-8 b(,)31 b(this)g(leads)h(to)g(a)f(b)s(etter)g(user)f(exp)s (erience,)i(and)f(suggests)g(that)h(the)f(IDNA)150 3093 y(sp)s(eci\014cation)g(is)g(sub-optimal)f(in)g(this)g(area.)150 3326 y Fw(B.1)67 b(Recommended)46 b(W)-11 b(ork)k(around)150 3485 y Fx(It)29 b(has)g(b)s(een)g(suggested)h(to)g(normalize)g(the)g (en)m(tire)g(input)e(string)h(using)g(NFK)m(C)g(b)s(efore)g(passing)g (it)h(to)150 3595 y(IDNA)37 b(T)-8 b(oASCI)s(I.)35 b(Y)-8 b(ou)37 b(ma)m(y)g(use)f Fr(stringprep_utf8_nfkc_norm)o(ali)o(ze)30 b Fx(or)36 b Fr(stringprep_ucs4_)150 3704 y(nfkc_normalize)p Fx(.)61 b(This)37 b(app)s(ears)h(to)h(lead)g(to)g(similar)g(b)s(eha)m (viour)f(as)g(IE/Firefo)m(x,)k(whic)m(h)c(w)m(ould)150 3814 y(a)m(v)m(oid)32 b(the)e(problem,)h(but)e(this)h(needs)g(to)i(b)s (e)d(con\014rmed.)40 b(F)-8 b(eel)32 b(free)f(to)g(discuss)e(the)i (issue)f(with)g(us.)275 3949 y(Alternativ)m(e)f(w)m(ork)-5 b(arounds)26 b(are)h(b)s(eing)f(considered.)40 b(Ev)m(en)m(tually)28 b(Libidn)e(ma)m(y)i(implemen)m(t)f(a)g(new)150 4058 y(\015ag)42 b(to)g(the)g Fr(idna_*)e Fx(functions)i(that)g(implemen)m(ts)g(a)g (recommended)f(w)m(a)m(y)i(to)g(w)m(ork)e(around)g(this)150 4168 y(problem.)p 150 5241 1200 4 v 199 5308 a Fg(1)275 5340 y Ff(Notably)25 b(Microsoft's)j(In)n(ternet)d(Explorer)h(and)f (Mozilla's)k(Firefo)n(x,)e(but)e(not)g(Apple's)h(Safari.)p eop end %%Page: 68 73 TeXDict begin 68 72 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(68)150 299 y Fu(App)t(endix)52 b(C)81 b(Cop)l(ying)51 b(Information)150 617 y Fw(C.1)68 b(GNU)45 b(F)-11 b(ree)45 b(Do)t(cumen)l(tation)h(License)1359 754 y Fx(V)-8 b(ersion)31 b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390 886 y(Cop)m(yrigh)m(t)842 883 y(c)817 886 y Fv(\015)e Fx(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 995 y Fr(http://fsf.org/)390 1214 y Fx(Ev)m(ery)m(one)g(is)g(p)s(ermitted)f (to)h(cop)m(y)g(and)f(distribute)g(v)m(erbatim)h(copies)390 1324 y(of)g(this)f(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f (is)f(not)h(allo)m(w)m(ed.)199 1456 y(0.)61 b(PREAMBLE)330 1588 y(The)37 b(purp)s(ose)e(of)i(this)g(License)h(is)f(to)h(mak)m(e)g (a)g(man)m(ual,)h(textb)s(o)s(ok,)h(or)d(other)g(functional)h(and)330 1698 y(useful)29 b(do)s(cumen)m(t)h Fn(free)36 b Fx(in)29 b(the)i(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j (the)e(e\013ectiv)m(e)j(freedom)330 1808 y(to)f(cop)m(y)g(and)f (redistribute)g(it,)h(with)g(or)f(without)g(mo)s(difying)g(it,)i (either)f(commercially)h(or)e(non-)330 1917 y(commercially)-8 b(.)56 b(Secondarily)-8 b(,)36 b(this)f(License)g(preserv)m(es)g(for)f (the)h(author)f(and)g(publisher)f(a)i(w)m(a)m(y)330 2027 y(to)i(get)g(credit)g(for)f(their)g(w)m(ork,)i(while)e(not)g(b)s(eing)g (considered)g(resp)s(onsible)f(for)h(mo)s(di\014cations)330 2136 y(made)30 b(b)m(y)h(others.)330 2268 y(This)22 b(License)i(is)f(a) h(kind)e(of)i(\\cop)m(yleft",)j(whic)m(h)c(means)g(that)h(deriv)-5 b(ativ)m(e)24 b(w)m(orks)f(of)h(the)f(do)s(cumen)m(t)330 2378 y(m)m(ust)34 b(themselv)m(es)h(b)s(e)e(free)h(in)g(the)g(same)g (sense.)51 b(It)34 b(complemen)m(ts)h(the)f(GNU)g(General)h(Public)330 2488 y(License,)c(whic)m(h)f(is)h(a)f(cop)m(yleft)i(license)g(designed) e(for)g(free)h(soft)m(w)m(are.)330 2620 y(W)-8 b(e)31 b(ha)m(v)m(e)f(designed)g(this)f(License)h(in)f(order)g(to)i(use)e(it)h (for)f(man)m(uals)h(for)f(free)h(soft)m(w)m(are,)h(b)s(ecause)330 2729 y(free)42 b(soft)m(w)m(are)i(needs)e(free)g(do)s(cumen)m(tation:) 65 b(a)42 b(free)h(program)f(should)f(come)i(with)f(man)m(uals)330 2839 y(pro)m(viding)29 b(the)g(same)g(freedoms)f(that)i(the)f(soft)m(w) m(are)h(do)s(es.)40 b(But)29 b(this)f(License)i(is)f(not)g(limited)g (to)330 2948 y(soft)m(w)m(are)j(man)m(uals;)f(it)g(can)g(b)s(e)f(used)g (for)g(an)m(y)h(textual)h(w)m(ork,)f(regardless)g(of)g(sub)5 b(ject)30 b(matter)i(or)330 3058 y(whether)f(it)h(is)f(published)f(as)i (a)f(prin)m(ted)g(b)s(o)s(ok.)44 b(W)-8 b(e)32 b(recommend)f(this)h (License)g(principally)f(for)330 3168 y(w)m(orks)f(whose)h(purp)s(ose)d (is)j(instruction)f(or)g(reference.)199 3300 y(1.)61 b(APPLICABILITY)29 b(AND)j(DEFINITIONS)330 3432 y(This)39 b(License)i(applies)f(to)g(an)m(y)h(man)m(ual)f(or)g(other)g(w)m(ork,)i (in)e(an)m(y)g(medium,)i(that)e(con)m(tains)i(a)330 3541 y(notice)h(placed)f(b)m(y)f(the)h(cop)m(yrigh)m(t)h(holder)e(sa)m(ying) h(it)g(can)g(b)s(e)f(distributed)f(under)g(the)i(terms)330 3651 y(of)c(this)f(License.)62 b(Suc)m(h)37 b(a)h(notice)h(gran)m(ts)f (a)g(w)m(orld-wide,)h(ro)m(y)m(alt)m(y-free)i(license,)f(unlimited)d (in)330 3761 y(duration,)49 b(to)d(use)f(that)g(w)m(ork)h(under)d(the)j (conditions)f(stated)h(herein.)85 b(The)45 b(\\Do)s(cumen)m(t",)330 3870 y(b)s(elo)m(w,)29 b(refers)f(to)h(an)m(y)g(suc)m(h)f(man)m(ual)h (or)f(w)m(ork.)40 b(An)m(y)29 b(mem)m(b)s(er)e(of)i(the)f(public)g(is)g (a)h(licensee,)i(and)330 3980 y(is)25 b(addressed)f(as)h(\\y)m(ou".)40 b(Y)-8 b(ou)26 b(accept)g(the)f(license)h(if)f(y)m(ou)h(cop)m(y)-8 b(,)27 b(mo)s(dify)d(or)h(distribute)g(the)g(w)m(ork)330 4089 y(in)30 b(a)h(w)m(a)m(y)g(requiring)f(p)s(ermission)f(under)g(cop) m(yrigh)m(t)j(la)m(w.)330 4222 y(A)i(\\Mo)s(di\014ed)f(V)-8 b(ersion")35 b(of)f(the)g(Do)s(cumen)m(t)g(means)g(an)m(y)g(w)m(ork)f (con)m(taining)j(the)e(Do)s(cumen)m(t)g(or)330 4331 y(a)k(p)s(ortion)f (of)h(it,)i(either)e(copied)g(v)m(erbatim,)i(or)d(with)h(mo)s (di\014cations)f(and/or)h(translated)g(in)m(to)330 4441 y(another)31 b(language.)330 4573 y(A)26 b(\\Secondary)g(Section")h(is) f(a)h(named)e(app)s(endix)f(or)i(a)h(fron)m(t-matter)g(section)g(of)f (the)g(Do)s(cumen)m(t)330 4682 y(that)c(deals)g(exclusiv)m(ely)h(with)e (the)g(relationship)h(of)f(the)h(publishers)d(or)i(authors)g(of)h(the)f (Do)s(cumen)m(t)330 4792 y(to)38 b(the)f(Do)s(cumen)m(t's)i(o)m(v)m (erall)g(sub)5 b(ject)37 b(\(or)h(to)g(related)g(matters\))g(and)f(con) m(tains)h(nothing)f(that)330 4902 y(could)j(fall)h(directly)g(within)f (that)h(o)m(v)m(erall)i(sub)5 b(ject.)70 b(\(Th)m(us,)42 b(if)e(the)h(Do)s(cumen)m(t)g(is)f(in)g(part)h(a)330 5011 y(textb)s(o)s(ok)24 b(of)g(mathematics,)j(a)d(Secondary)f(Section) h(ma)m(y)g(not)g(explain)g(an)m(y)g(mathematics.\))40 b(The)330 5121 y(relationship)28 b(could)f(b)s(e)g(a)g(matter)i(of)e (historical)i(connection)f(with)f(the)h(sub)5 b(ject)27 b(or)g(with)g(related)330 5230 y(matters,)38 b(or)d(of)h(legal,)i (commercial,)h(philosophical,)f(ethical)f(or)e(p)s(olitical)i(p)s (osition)f(regarding)330 5340 y(them.)p eop end %%Page: 69 74 TeXDict begin 69 73 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(69)330 299 y(The)25 b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g (Sections)g(whose)f(titles)i(are)f(designated,)i(as)330 408 y(b)s(eing)e(those)h(of)g(In)m(v)-5 b(arian)m(t)27 b(Sections,)i(in)d(the)h(notice)h(that)f(sa)m(ys)g(that)g(the)g(Do)s (cumen)m(t)g(is)g(released)330 518 y(under)f(this)i(License.)40 b(If)27 b(a)h(section)h(do)s(es)f(not)f(\014t)h(the)g(ab)s(o)m(v)m(e)h (de\014nition)e(of)h(Secondary)f(then)h(it)g(is)330 628 y(not)k(allo)m(w)m(ed)i(to)e(b)s(e)g(designated)g(as)g(In)m(v)-5 b(arian)m(t.)46 b(The)31 b(Do)s(cumen)m(t)i(ma)m(y)f(con)m(tain)i(zero) e(In)m(v)-5 b(arian)m(t)330 737 y(Sections.)39 b(If)25 b(the)f(Do)s(cumen)m(t)i(do)s(es)e(not)h(iden)m(tify)g(an)m(y)g(In)m(v) -5 b(arian)m(t)25 b(Sections)h(then)e(there)h(are)g(none.)330 878 y(The)36 b(\\Co)m(v)m(er)i(T)-8 b(exts")38 b(are)f(certain)g(short) g(passages)g(of)g(text)g(that)h(are)f(listed,)i(as)d(F)-8 b(ron)m(t-Co)m(v)m(er)330 988 y(T)g(exts)26 b(or)f(Bac)m(k-Co)m(v)m(er) j(T)-8 b(exts,)27 b(in)d(the)h(notice)i(that)e(sa)m(ys)h(that)g(the)f (Do)s(cumen)m(t)h(is)f(released)g(under)330 1097 y(this)h(License.)40 b(A)25 b(F)-8 b(ron)m(t-Co)m(v)m(er)29 b(T)-8 b(ext)26 b(ma)m(y)h(b)s(e)e(at)i(most)f(5)g(w)m(ords,)g(and)g(a)g(Bac)m(k-Co)m (v)m(er)j(T)-8 b(ext)26 b(ma)m(y)330 1207 y(b)s(e)k(at)h(most)g(25)g(w) m(ords.)330 1348 y(A)36 b(\\T)-8 b(ransparen)m(t")36 b(cop)m(y)g(of)g(the)f(Do)s(cumen)m(t)h(means)g(a)g(mac)m (hine-readable)h(cop)m(y)-8 b(,)38 b(represen)m(ted)330 1457 y(in)d(a)h(format)g(whose)g(sp)s(eci\014cation)g(is)g(a)m(v)-5 b(ailable)38 b(to)f(the)f(general)g(public,)h(that)f(is)g(suitable)g (for)330 1567 y(revising)c(the)g(do)s(cumen)m(t)f(straigh)m(tforw)m (ardly)i(with)e(generic)i(text)g(editors)f(or)f(\(for)h(images)h(com-) 330 1677 y(p)s(osed)23 b(of)h(pixels\))g(generic)h(pain)m(t)f(programs) g(or)f(\(for)h(dra)m(wings\))g(some)g(widely)g(a)m(v)-5 b(ailable)26 b(dra)m(wing)330 1786 y(editor,)k(and)f(that)g(is)g (suitable)h(for)f(input)f(to)i(text)g(formatters)f(or)g(for)g (automatic)i(translation)f(to)330 1896 y(a)d(v)-5 b(ariet)m(y)28 b(of)f(formats)g(suitable)h(for)e(input)g(to)i(text)g(formatters.)40 b(A)27 b(cop)m(y)g(made)g(in)g(an)g(otherwise)330 2005 y(T)-8 b(ransparen)m(t)37 b(\014le)h(format)g(whose)f(markup,)i(or)e (absence)h(of)g(markup,)g(has)g(b)s(een)f(arranged)g(to)330 2115 y(th)m(w)m(art)27 b(or)g(discourage)g(subsequen)m(t)f(mo)s (di\014cation)h(b)m(y)g(readers)f(is)g(not)h(T)-8 b(ransparen)m(t.)39 b(An)27 b(image)330 2225 y(format)35 b(is)f(not)h(T)-8 b(ransparen)m(t)34 b(if)g(used)g(for)g(an)m(y)g(substan)m(tial)h(amoun) m(t)g(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g(is)330 2334 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)f(called)i(\\Opaque".)330 2475 y(Examples)53 b(of)g(suitable)h(formats)f(for)g(T)-8 b(ransparen)m(t)53 b(copies)h(include)f(plain)g Fe(asci)r(i)g Fx(without)330 2585 y(markup,)37 b(T)-8 b(exinfo)36 b(input)f(format,)j (LaT)1759 2604 y(E)1810 2585 y(X)e(input)f(format,)j Fk(SGML)f Fx(or)f Fk(XML)g Fx(using)g(a)g(publicly)330 2694 y(a)m(v)-5 b(ailable)42 b Fk(DTD)p Fx(,)g(and)d (standard-conforming)h(simple)g Fk(HTML)p Fx(,)g(P)m(ostScript)h(or)f Fk(PDF)g Fx(designed)330 2804 y(for)e(h)m(uman)g(mo)s(di\014cation.)65 b(Examples)38 b(of)h(transparen)m(t)f(image)i(formats)e(include)g Fk(PNG)p Fx(,)h Fk(X)n(CF)330 2913 y Fx(and)h Fk(JPG)p Fx(.)g(Opaque)h(formats)g(include)f(proprietary)g(formats)h(that)h(can) f(b)s(e)f(read)g(and)h(edited)330 3023 y(only)54 b(b)m(y)f(proprietary) h(w)m(ord)f(pro)s(cessors,)59 b Fk(SGML)54 b Fx(or)f Fk(XML)h Fx(for)g(whic)m(h)f(the)h Fk(DTD)g Fx(and/or)330 3133 y(pro)s(cessing)61 b(to)s(ols)h(are)f(not)g(generally)i(a)m(v)-5 b(ailable,)71 b(and)60 b(the)h(mac)m(hine-generated)j Fk(HTML)p Fx(,)330 3242 y(P)m(ostScript)31 b(or)f Fk(PDF)h Fx(pro)s(duced)d(b)m(y)j(some)f(w)m(ord)g(pro)s(cessors)g(for)g(output) g(purp)s(oses)f(only)-8 b(.)330 3383 y(The)34 b(\\Title)h(P)m(age")i (means,)e(for)f(a)h(prin)m(ted)f(b)s(o)s(ok,)h(the)f(title)i(page)f (itself,)h(plus)e(suc)m(h)f(follo)m(wing)330 3493 y(pages)28 b(as)g(are)g(needed)g(to)g(hold,)g(legibly)-8 b(,)30 b(the)e(material)h(this)e(License)i(requires)e(to)h(app)s(ear)f(in)h (the)330 3602 y(title)g(page.)40 b(F)-8 b(or)28 b(w)m(orks)e(in)g (formats)h(whic)m(h)g(do)f(not)h(ha)m(v)m(e)h(an)m(y)e(title)j(page)e (as)g(suc)m(h,)g(\\Title)h(P)m(age")330 3712 y(means)j(the)f(text)i (near)e(the)h(most)g(prominen)m(t)g(app)s(earance)f(of)h(the)g(w)m (ork's)g(title,)h(preceding)f(the)330 3821 y(b)s(eginning)f(of)g(the)h (b)s(o)s(dy)e(of)h(the)h(text.)330 3962 y(The)j(\\publisher")g(means)h (an)m(y)f(p)s(erson)g(or)h(en)m(tit)m(y)h(that)f(distributes)f(copies)i (of)e(the)h(Do)s(cumen)m(t)330 4072 y(to)c(the)g(public.)330 4213 y(A)f(section)h(\\En)m(titled)g(XYZ")f(means)f(a)h(named)g (subunit)e(of)h(the)h(Do)s(cumen)m(t)h(whose)e(title)i(either)330 4322 y(is)d(precisely)g(XYZ)g(or)f(con)m(tains)i(XYZ)f(in)f(paren)m (theses)i(follo)m(wing)g(text)g(that)f(translates)h(XYZ)e(in)330 4432 y(another)e(language.)40 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g (sp)s(eci\014c)g(section)h(name)f(men)m(tioned)h(b)s(elo)m(w,)g(suc)m (h)330 4542 y(as)i(\\Ac)m(kno)m(wledgemen)m(ts",)33 b(\\Dedications",)e (\\Endorsemen)m(ts",)e(or)f(\\History".\))42 b(T)-8 b(o)29 b(\\Preserv)m(e)330 4651 y(the)34 b(Title")h(of)e(suc)m(h)h(a)g (section)g(when)f(y)m(ou)h(mo)s(dify)e(the)i(Do)s(cumen)m(t)h(means)e (that)h(it)g(remains)g(a)330 4761 y(section)e(\\En)m(titled)f(XYZ")g (according)g(to)g(this)g(de\014nition.)330 4902 y(The)c(Do)s(cumen)m(t) i(ma)m(y)f(include)f(W)-8 b(arran)m(t)m(y)30 b(Disclaimers)f(next)f(to) g(the)g(notice)h(whic)m(h)e(states)i(that)330 5011 y(this)34 b(License)g(applies)g(to)h(the)f(Do)s(cumen)m(t.)52 b(These)33 b(W)-8 b(arran)m(t)m(y)36 b(Disclaimers)f(are)g(considered)e(to)330 5121 y(b)s(e)k(included)g(b)m(y)g(reference)h(in)g(this)f(License,)j (but)d(only)h(as)g(regards)f(disclaiming)i(w)m(arran)m(ties:)330 5230 y(an)m(y)e(other)g(implication)i(that)e(these)g(W)-8 b(arran)m(t)m(y)39 b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g (and)f(has)h(no)330 5340 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h (this)f(License.)p eop end %%Page: 70 75 TeXDict begin 70 74 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(70)199 299 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)330 445 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h(the)g(Do)s(cumen)m(t)h(in)f(an) m(y)g(medium,)h(either)g(commercially)h(or)330 555 y(noncommercially)-8 b(,)48 b(pro)m(vided)42 b(that)h(this)f(License,)47 b(the)42 b(cop)m(yrigh)m(t)i(notices,)j(and)42 b(the)h(license)330 664 y(notice)37 b(sa)m(ying)g(this)e(License)i(applies)e(to)i(the)f(Do) s(cumen)m(t)g(are)g(repro)s(duced)e(in)i(all)g(copies,)j(and)330 774 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)h(whatso)s(ev)m (er)h(to)f(those)g(of)g(this)f(License.)40 b(Y)-8 b(ou)27 b(ma)m(y)g(not)g(use)330 883 y(tec)m(hnical)35 b(measures)d(to)i (obstruct)f(or)g(con)m(trol)h(the)f(reading)g(or)g(further)e(cop)m (ying)j(of)f(the)g(copies)330 993 y(y)m(ou)25 b(mak)m(e)g(or)g (distribute.)38 b(Ho)m(w)m(ev)m(er,)28 b(y)m(ou)d(ma)m(y)g(accept)h (comp)s(ensation)f(in)f(exc)m(hange)j(for)d(copies.)330 1103 y(If)32 b(y)m(ou)g(distribute)g(a)h(large)g(enough)f(n)m(um)m(b)s (er)f(of)h(copies)h(y)m(ou)f(m)m(ust)h(also)g(follo)m(w)g(the)f (conditions)330 1212 y(in)e(section)i(3.)330 1358 y(Y)-8 b(ou)21 b(ma)m(y)h(also)f(lend)g(copies,)i(under)d(the)h(same)g (conditions)g(stated)h(ab)s(o)m(v)m(e,)i(and)c(y)m(ou)h(ma)m(y)g (publicly)330 1468 y(displa)m(y)31 b(copies.)199 1614 y(3.)61 b(COPYING)30 b(IN)g(QUANTITY)330 1760 y(If)25 b(y)m(ou)g(publish)f(prin)m(ted)g(copies)i(\(or)g(copies)g(in)f(media)g (that)h(commonly)g(ha)m(v)m(e)g(prin)m(ted)f(co)m(v)m(ers\))i(of)330 1870 y(the)32 b(Do)s(cumen)m(t,)h(n)m(um)m(b)s(ering)e(more)h(than)f (100,)j(and)d(the)h(Do)s(cumen)m(t's)h(license)f(notice)h(requires)330 1979 y(Co)m(v)m(er)i(T)-8 b(exts,)36 b(y)m(ou)f(m)m(ust)f(enclose)i (the)e(copies)h(in)f(co)m(v)m(ers)i(that)f(carry)-8 b(,)36 b(clearly)f(and)f(legibly)-8 b(,)37 b(all)330 2089 y(these)j(Co)m(v)m (er)g(T)-8 b(exts:)59 b(F)-8 b(ron)m(t-Co)m(v)m(er)41 b(T)-8 b(exts)40 b(on)f(the)g(fron)m(t)g(co)m(v)m(er,)44 b(and)38 b(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts)40 b(on)330 2198 y(the)29 b(bac)m(k)h(co)m(v)m(er.)42 b(Both)30 b(co)m(v)m(ers)h(m) m(ust)e(also)h(clearly)g(and)f(legibly)h(iden)m(tify)f(y)m(ou)h(as)f (the)h(publisher)330 2308 y(of)k(these)h(copies.)53 b(The)34 b(fron)m(t)h(co)m(v)m(er)h(m)m(ust)e(presen)m(t)g(the)h(full)f(title)i (with)d(all)j(w)m(ords)d(of)i(the)f(title)330 2418 y(equally)e (prominen)m(t)e(and)g(visible.)43 b(Y)-8 b(ou)31 b(ma)m(y)g(add)g (other)g(material)h(on)f(the)g(co)m(v)m(ers)h(in)e(addition.)330 2527 y(Cop)m(ying)36 b(with)g(c)m(hanges)h(limited)g(to)g(the)g(co)m(v) m(ers,)i(as)d(long)h(as)g(they)f(preserv)m(e)g(the)h(title)g(of)g(the) 330 2637 y(Do)s(cumen)m(t)h(and)e(satisfy)i(these)f(conditions,)j(can)d (b)s(e)g(treated)h(as)f(v)m(erbatim)h(cop)m(ying)g(in)f(other)330 2746 y(resp)s(ects.)330 2892 y(If)32 b(the)h(required)f(texts)i(for)e (either)h(co)m(v)m(er)i(are)e(to)s(o)g(v)m(oluminous)g(to)g(\014t)g (legibly)-8 b(,)35 b(y)m(ou)e(should)f(put)330 3002 y(the)h(\014rst)f (ones)h(listed)g(\(as)h(man)m(y)f(as)g(\014t)g(reasonably\))g(on)g(the) g(actual)h(co)m(v)m(er,)h(and)e(con)m(tin)m(ue)h(the)330 3112 y(rest)d(on)m(to)g(adjacen)m(t)h(pages.)330 3258 y(If)27 b(y)m(ou)g(publish)e(or)i(distribute)g(Opaque)f(copies)i(of)f (the)h(Do)s(cumen)m(t)f(n)m(um)m(b)s(ering)f(more)i(than)e(100,)330 3367 y(y)m(ou)i(m)m(ust)g(either)h(include)e(a)i(mac)m(hine-readable)g (T)-8 b(ransparen)m(t)28 b(cop)m(y)h(along)g(with)e(eac)m(h)i(Opaque) 330 3477 y(cop)m(y)-8 b(,)38 b(or)d(state)h(in)f(or)g(with)g(eac)m(h)h (Opaque)e(cop)m(y)i(a)g(computer-net)m(w)m(ork)g(lo)s(cation)h(from)d (whic)m(h)330 3587 y(the)24 b(general)i(net)m(w)m(ork-using)f(public)e (has)h(access)i(to)f(do)m(wnload)f(using)g(public-standard)f(net)m(w)m (ork)330 3696 y(proto)s(cols)40 b(a)f(complete)h(T)-8 b(ransparen)m(t)39 b(cop)m(y)g(of)g(the)h(Do)s(cumen)m(t,)i(free)d(of)g (added)f(material.)67 b(If)330 3806 y(y)m(ou)39 b(use)g(the)g(latter)h (option,)h(y)m(ou)f(m)m(ust)e(tak)m(e)j(reasonably)e(pruden)m(t)e (steps,)k(when)d(y)m(ou)h(b)s(egin)330 3915 y(distribution)f(of)g (Opaque)g(copies)h(in)e(quan)m(tit)m(y)-8 b(,)43 b(to)38 b(ensure)g(that)h(this)f(T)-8 b(ransparen)m(t)38 b(cop)m(y)h(will)330 4025 y(remain)30 b(th)m(us)g(accessible)i(at)f(the)f(stated)h(lo)s (cation)h(un)m(til)e(at)h(least)h(one)e(y)m(ear)h(after)g(the)f(last)h (time)330 4134 y(y)m(ou)37 b(distribute)f(an)h(Opaque)f(cop)m(y)i (\(directly)g(or)e(through)g(y)m(our)h(agen)m(ts)h(or)f(retailers\))h (of)f(that)330 4244 y(edition)31 b(to)g(the)g(public.)330 4390 y(It)k(is)f(requested,)i(but)e(not)h(required,)g(that)g(y)m(ou)g (con)m(tact)h(the)f(authors)f(of)h(the)g(Do)s(cumen)m(t)g(w)m(ell)330 4500 y(b)s(efore)28 b(redistributing)g(an)m(y)h(large)h(n)m(um)m(b)s (er)d(of)i(copies,)h(to)f(giv)m(e)h(them)f(a)g(c)m(hance)h(to)f(pro)m (vide)g(y)m(ou)330 4609 y(with)h(an)g(up)s(dated)f(v)m(ersion)i(of)g (the)f(Do)s(cumen)m(t.)199 4756 y(4.)61 b(MODIFICA)-8 b(TIONS)330 4902 y(Y)g(ou)26 b(ma)m(y)g(cop)m(y)g(and)f(distribute)g(a) h(Mo)s(di\014ed)f(V)-8 b(ersion)26 b(of)g(the)g(Do)s(cumen)m(t)g(under) e(the)h(conditions)330 5011 y(of)c(sections)h(2)g(and)e(3)h(ab)s(o)m(v) m(e,)k(pro)m(vided)20 b(that)i(y)m(ou)f(release)i(the)e(Mo)s(di\014ed)f (V)-8 b(ersion)22 b(under)d(precisely)330 5121 y(this)29 b(License,)h(with)f(the)g(Mo)s(di\014ed)f(V)-8 b(ersion)30 b(\014lling)f(the)g(role)h(of)f(the)g(Do)s(cumen)m(t,)h(th)m(us)f (licensing)330 5230 y(distribution)k(and)h(mo)s(di\014cation)g(of)h (the)f(Mo)s(di\014ed)f(V)-8 b(ersion)35 b(to)g(who)s(ev)m(er)f(p)s (ossesses)f(a)i(cop)m(y)g(of)330 5340 y(it.)41 b(In)30 b(addition,)h(y)m(ou)f(m)m(ust)h(do)f(these)h(things)f(in)g(the)h(Mo)s (di\014ed)e(V)-8 b(ersion:)p eop end %%Page: 71 76 TeXDict begin 71 75 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(71)357 299 y(A.)60 b(Use)33 b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m (ers,)i(if)e(an)m(y\))g(a)g(title)h(distinct)f(from)g(that)g(of)g(the) 510 408 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m (ersions)h(\(whic)m(h)g(should,)g(if)g(there)g(w)m(ere)g(an)m(y)-8 b(,)510 518 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g (the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 b(ma)m(y)g(use)f(the)g(same) h(title)h(as)510 628 y(a)e(previous)f(v)m(ersion)g(if)h(the)f(original) i(publisher)d(of)h(that)h(v)m(ersion)g(giv)m(es)h(p)s(ermission.)360 758 y(B.)61 b(List)31 b(on)f(the)h(Title)g(P)m(age,)i(as)d(authors,)h (one)g(or)f(more)h(p)s(ersons)e(or)h(en)m(tities)j(resp)s(onsible)c (for)510 867 y(authorship)c(of)h(the)h(mo)s(di\014cations)f(in)g(the)g (Mo)s(di\014ed)f(V)-8 b(ersion,)28 b(together)g(with)d(at)i(least)h (\014v)m(e)510 977 y(of)c(the)g(principal)g(authors)f(of)i(the)f(Do)s (cumen)m(t)g(\(all)h(of)g(its)f(principal)g(authors,)h(if)f(it)g(has)g (few)m(er)510 1087 y(than)30 b(\014v)m(e\),)h(unless)f(they)h(release)g (y)m(ou)g(from)f(this)g(requiremen)m(t.)359 1217 y(C.)60 b(State)32 b(on)e(the)h(Title)h(page)f(the)g(name)g(of)g(the)g (publisher)e(of)i(the)g(Mo)s(di\014ed)f(V)-8 b(ersion,)32 b(as)f(the)510 1326 y(publisher.)355 1456 y(D.)61 b(Preserv)m(e)31 b(all)g(the)g(cop)m(yrigh)m(t)h(notices)f(of)g(the)f(Do)s(cumen)m(t.) 363 1587 y(E.)60 b(Add)30 b(an)i(appropriate)f(cop)m(yrigh)m(t)i (notice)f(for)g(y)m(our)f(mo)s(di\014cations)g(adjacen)m(t)i(to)f(the)g (other)510 1696 y(cop)m(yrigh)m(t)g(notices.)365 1826 y(F.)61 b(Include,)28 b(immediately)h(after)f(the)h(cop)m(yrigh)m(t)g (notices,)h(a)e(license)h(notice)g(giving)g(the)f(public)510 1936 y(p)s(ermission)23 b(to)j(use)e(the)g(Mo)s(di\014ed)g(V)-8 b(ersion)25 b(under)e(the)i(terms)f(of)h(this)f(License,)j(in)d(the)g (form)510 2045 y(sho)m(wn)30 b(in)g(the)g(Addendum)f(b)s(elo)m(w.)353 2176 y(G.)61 b(Preserv)m(e)23 b(in)g(that)g(license)h(notice)g(the)f (full)g(lists)g(of)g(In)m(v)-5 b(arian)m(t)23 b(Sections)h(and)e (required)g(Co)m(v)m(er)510 2285 y(T)-8 b(exts)31 b(giv)m(en)g(in)f (the)h(Do)s(cumen)m(t's)g(license)h(notice.)357 2415 y(H.)60 b(Include)30 b(an)g(unaltered)g(cop)m(y)h(of)g(this)f(License.) 392 2545 y(I.)60 b(Preserv)m(e)33 b(the)f(section)h(En)m(titled)g (\\History",)h(Preserv)m(e)f(its)f(Title,)i(and)d(add)h(to)h(it)f(an)g (item)510 2655 y(stating)d(at)g(least)g(the)g(title,)h(y)m(ear,)g(new)d (authors,)i(and)e(publisher)f(of)j(the)f(Mo)s(di\014ed)f(V)-8 b(ersion)510 2765 y(as)32 b(giv)m(en)g(on)f(the)h(Title)g(P)m(age.)45 b(If)31 b(there)h(is)f(no)g(section)i(En)m(titled)f(\\History")h(in)e (the)g(Do)s(cu-)510 2874 y(men)m(t,)37 b(create)f(one)f(stating)h(the)f (title,)i(y)m(ear,)g(authors,)f(and)e(publisher)f(of)i(the)g(Do)s (cumen)m(t)510 2984 y(as)h(giv)m(en)h(on)f(its)h(Title)g(P)m(age,)i (then)d(add)g(an)g(item)g(describing)g(the)g(Mo)s(di\014ed)g(V)-8 b(ersion)37 b(as)510 3093 y(stated)31 b(in)f(the)h(previous)f(sen)m (tence.)378 3224 y(J.)60 b(Preserv)m(e)33 b(the)g(net)m(w)m(ork)g(lo)s (cation,)i(if)d(an)m(y)-8 b(,)34 b(giv)m(en)f(in)g(the)f(Do)s(cumen)m (t)h(for)g(public)e(access)j(to)510 3333 y(a)e(T)-8 b(ransparen)m(t)30 b(cop)m(y)i(of)g(the)f(Do)s(cumen)m(t,)h(and)f(lik)m(ewise)h(the)g(net) m(w)m(ork)g(lo)s(cations)g(giv)m(en)g(in)510 3443 y(the)g(Do)s(cumen)m (t)g(for)g(previous)f(v)m(ersions)h(it)g(w)m(as)g(based)f(on.)45 b(These)31 b(ma)m(y)h(b)s(e)f(placed)h(in)g(the)510 3552 y(\\History")27 b(section.)40 b(Y)-8 b(ou)25 b(ma)m(y)h(omit)g(a)f(net) m(w)m(ork)h(lo)s(cation)g(for)f(a)h(w)m(ork)f(that)g(w)m(as)h (published)510 3662 y(at)36 b(least)h(four)e(y)m(ears)i(b)s(efore)e (the)h(Do)s(cumen)m(t)h(itself,)h(or)d(if)h(the)g(original)h(publisher) d(of)i(the)510 3771 y(v)m(ersion)31 b(it)g(refers)f(to)h(giv)m(es)h(p)s (ermission.)354 3902 y(K.)60 b(F)-8 b(or)24 b(an)m(y)h(section)f(En)m (titled)h(\\Ac)m(kno)m(wledgemen)m(ts")i(or)d(\\Dedications",)k (Preserv)m(e)c(the)g(Title)510 4011 y(of)j(the)f(section,)j(and)d (preserv)m(e)h(in)f(the)h(section)g(all)h(the)e(substance)h(and)f(tone) h(of)f(eac)m(h)i(of)f(the)510 4121 y(con)m(tributor)k(ac)m(kno)m (wledgemen)m(ts)i(and/or)d(dedications)h(giv)m(en)h(therein.)368 4251 y(L.)60 b(Preserv)m(e)36 b(all)g(the)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(of)f(the)h(Do)s(cumen)m(t,)h(unaltered)f (in)f(their)g(text)i(and)510 4361 y(in)f(their)g(titles.)58 b(Section)37 b(n)m(um)m(b)s(ers)d(or)i(the)g(equiv)-5 b(alen)m(t)38 b(are)e(not)g(considered)g(part)g(of)g(the)510 4470 y(section)c(titles.)341 4600 y(M.)61 b(Delete)33 b(an)m(y)e(section)h(En)m(titled)f(\\Endorsemen)m(ts".)42 b(Suc)m(h)30 b(a)i(section)f(ma)m(y)h(not)f(b)s(e)f(included)510 4710 y(in)g(the)h(Mo)s(di\014ed)e(V)-8 b(ersion.)357 4840 y(N.)60 b(Do)29 b(not)g(retitle)h(an)m(y)e(existing)i(section)f (to)g(b)s(e)f(En)m(titled)h(\\Endorsemen)m(ts")g(or)f(to)h(con\015ict)g (in)510 4950 y(title)j(with)e(an)m(y)h(In)m(v)-5 b(arian)m(t)31 b(Section.)354 5080 y(O.)60 b(Preserv)m(e)31 b(an)m(y)g(W)-8 b(arran)m(t)m(y)32 b(Disclaimers.)330 5230 y(If)h(the)g(Mo)s(di\014ed)g (V)-8 b(ersion)34 b(includes)f(new)g(fron)m(t-matter)i(sections)f(or)f (app)s(endices)g(that)h(qualify)330 5340 y(as)28 b(Secondary)g (Sections)g(and)f(con)m(tain)j(no)d(material)j(copied)e(from)f(the)h (Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)p eop end %%Page: 72 77 TeXDict begin 72 76 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(72)330 299 y(y)m(our)32 b(option)h(designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e (in)m(v)-5 b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)330 408 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8 b(ersion's)36 b(license)g(notice.)57 b(These)330 518 y(titles)32 b(m)m(ust)e(b)s(e)g (distinct)h(from)e(an)m(y)i(other)g(section)g(titles.)330 650 y(Y)-8 b(ou)43 b(ma)m(y)g(add)f(a)g(section)i(En)m(titled)f (\\Endorsemen)m(ts",)j(pro)m(vided)c(it)h(con)m(tains)g(nothing)g(but) 330 759 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s(di\014ed)g(V)-8 b(ersion)31 b(b)m(y)e(v)-5 b(arious)30 b(parties|for)g(example,)g (statemen)m(ts)i(of)330 869 y(p)s(eer)27 b(review)g(or)g(that)h(the)f (text)i(has)d(b)s(een)h(appro)m(v)m(ed)g(b)m(y)g(an)h(organization)h (as)e(the)h(authoritativ)m(e)330 978 y(de\014nition)i(of)h(a)f (standard.)330 1110 y(Y)-8 b(ou)29 b(ma)m(y)g(add)e(a)i(passage)g(of)g (up)e(to)i(\014v)m(e)g(w)m(ords)e(as)i(a)g(F)-8 b(ron)m(t-Co)m(v)m(er) 30 b(T)-8 b(ext,)30 b(and)e(a)g(passage)i(of)e(up)330 1219 y(to)g(25)g(w)m(ords)e(as)i(a)f(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext,)29 b(to)f(the)f(end)f(of)i(the)f(list)h(of)f(Co)m(v)m(er)h(T)-8 b(exts)27 b(in)g(the)h(Mo)s(di\014ed)330 1329 y(V)-8 b(ersion.)58 b(Only)35 b(one)h(passage)h(of)f(F)-8 b(ron)m(t-Co)m(v)m (er)38 b(T)-8 b(ext)36 b(and)g(one)g(of)g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)36 b(ma)m(y)h(b)s(e)330 1439 y(added)27 b(b)m(y)g(\(or)h(through) f(arrangemen)m(ts)h(made)g(b)m(y\))g(an)m(y)g(one)f(en)m(tit)m(y)-8 b(.)42 b(If)27 b(the)h(Do)s(cumen)m(t)g(already)330 1548 y(includes)34 b(a)g(co)m(v)m(er)h(text)g(for)f(the)g(same)h(co)m(v)m (er,)h(previously)e(added)f(b)m(y)h(y)m(ou)g(or)g(b)m(y)g(arrangemen)m (t)330 1658 y(made)h(b)m(y)g(the)h(same)f(en)m(tit)m(y)i(y)m(ou)f(are)f (acting)i(on)e(b)s(ehalf)f(of,)j(y)m(ou)f(ma)m(y)g(not)f(add)g (another;)j(but)330 1767 y(y)m(ou)c(ma)m(y)h(replace)g(the)f(old)g (one,)i(on)e(explicit)h(p)s(ermission)e(from)g(the)i(previous)e (publisher)f(that)330 1877 y(added)e(the)g(old)h(one.)330 2008 y(The)25 b(author\(s\))h(and)f(publisher\(s\))f(of)i(the)f(Do)s (cumen)m(t)h(do)g(not)f(b)m(y)h(this)f(License)h(giv)m(e)h(p)s (ermission)330 2118 y(to)k(use)f(their)g(names)h(for)f(publicit)m(y)g (for)h(or)f(to)h(assert)g(or)f(imply)g(endorsemen)m(t)g(of)h(an)m(y)g (Mo)s(di\014ed)330 2228 y(V)-8 b(ersion.)199 2359 y(5.)61 b(COMBINING)31 b(DOCUMENTS)330 2491 y(Y)-8 b(ou)39 b(ma)m(y)g(com)m (bine)h(the)f(Do)s(cumen)m(t)g(with)g(other)f(do)s(cumen)m(ts)h (released)g(under)f(this)g(License,)330 2600 y(under)f(the)h(terms)g (de\014ned)f(in)h(section)h(4)g(ab)s(o)m(v)m(e)g(for)f(mo)s(di\014ed)f (v)m(ersions,)k(pro)m(vided)d(that)h(y)m(ou)330 2710 y(include)25 b(in)g(the)g(com)m(bination)i(all)f(of)g(the)f(In)m(v)-5 b(arian)m(t)26 b(Sections)g(of)g(all)g(of)f(the)h(original)g(do)s (cumen)m(ts,)330 2819 y(unmo)s(di\014ed,)g(and)g(list)h(them)g(all)g (as)g(In)m(v)-5 b(arian)m(t)28 b(Sections)f(of)g(y)m(our)g(com)m(bined) g(w)m(ork)f(in)h(its)g(license)330 2929 y(notice,)32 b(and)e(that)h(y)m(ou)f(preserv)m(e)h(all)g(their)g(W)-8 b(arran)m(t)m(y)32 b(Disclaimers.)330 3061 y(The)e(com)m(bined)g(w)m (ork)h(need)e(only)i(con)m(tain)g(one)g(cop)m(y)g(of)f(this)g(License,) i(and)d(m)m(ultiple)i(iden)m(tical)330 3170 y(In)m(v)-5 b(arian)m(t)33 b(Sections)g(ma)m(y)g(b)s(e)f(replaced)h(with)f(a)h (single)g(cop)m(y)-8 b(.)48 b(If)32 b(there)h(are)g(m)m(ultiple)g(In)m (v)-5 b(arian)m(t)330 3280 y(Sections)27 b(with)g(the)g(same)g(name)g (but)f(di\013eren)m(t)h(con)m(ten)m(ts,)i(mak)m(e)f(the)f(title)h(of)f (eac)m(h)h(suc)m(h)f(section)330 3389 y(unique)33 b(b)m(y)h(adding)f (at)i(the)f(end)g(of)g(it,)h(in)f(paren)m(theses,)i(the)e(name)g(of)g (the)g(original)h(author)f(or)330 3499 y(publisher)23 b(of)i(that)h(section)g(if)f(kno)m(wn,)h(or)f(else)h(a)f(unique)f(n)m (um)m(b)s(er.)38 b(Mak)m(e)26 b(the)g(same)f(adjustmen)m(t)330 3608 y(to)g(the)g(section)g(titles)h(in)e(the)h(list)g(of)f(In)m(v)-5 b(arian)m(t)26 b(Sections)f(in)f(the)g(license)i(notice)g(of)e(the)h (com)m(bined)330 3718 y(w)m(ork.)330 3850 y(In)41 b(the)g(com)m (bination,)46 b(y)m(ou)41 b(m)m(ust)g(com)m(bine)h(an)m(y)g(sections)g (En)m(titled)g(\\History")h(in)e(the)g(v)-5 b(ari-)330 3959 y(ous)32 b(original)h(do)s(cumen)m(ts,)g(forming)f(one)g(section)h (En)m(titled)g(\\History";)i(lik)m(ewise)f(com)m(bine)f(an)m(y)330 4069 y(sections)g(En)m(titled)f(\\Ac)m(kno)m(wledgemen)m(ts",)k(and)31 b(an)m(y)h(sections)h(En)m(titled)g(\\Dedications".)47 b(Y)-8 b(ou)330 4178 y(m)m(ust)30 b(delete)i(all)f(sections)h(En)m (titled)f(\\Endorsemen)m(ts.")199 4310 y(6.)61 b(COLLECTIONS)28 b(OF)i(DOCUMENTS)330 4441 y(Y)-8 b(ou)32 b(ma)m(y)h(mak)m(e)g(a)f (collection)i(consisting)f(of)f(the)g(Do)s(cumen)m(t)g(and)g(other)g (do)s(cumen)m(ts)f(released)330 4551 y(under)41 b(this)h(License,)k (and)c(replace)h(the)g(individual)f(copies)h(of)f(this)g(License)h(in)f (the)h(v)-5 b(arious)330 4661 y(do)s(cumen)m(ts)42 b(with)g(a)h(single) g(cop)m(y)h(that)f(is)f(included)g(in)g(the)h(collection,)48 b(pro)m(vided)42 b(that)i(y)m(ou)330 4770 y(follo)m(w)38 b(the)g(rules)e(of)h(this)g(License)h(for)f(v)m(erbatim)h(cop)m(ying)g (of)f(eac)m(h)h(of)f(the)h(do)s(cumen)m(ts)e(in)h(all)330 4880 y(other)31 b(resp)s(ects.)330 5011 y(Y)-8 b(ou)32 b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h (collection,)i(and)d(distribute)g(it)h(individu-)330 5121 y(ally)k(under)d(this)i(License,)i(pro)m(vided)e(y)m(ou)g(insert)g (a)g(cop)m(y)h(of)f(this)g(License)g(in)m(to)h(the)g(extracted)330 5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g (other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330 5340 y(that)d(do)s(cumen)m(t.)p eop end %%Page: 73 78 TeXDict begin 73 77 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(73)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)330 441 y(A)d(compilation)i(of)e(the)g(Do)s(cumen)m(t)h(or)f(its)g(deriv)-5 b(ativ)m(es)30 b(with)d(other)i(separate)g(and)e(indep)s(enden)m(t)330 551 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h(on)f(a)g(v)m (olume)h(of)g(a)f(storage)i(or)e(distribution)g(medium,)g(is)h(called) 330 661 y(an)c(\\aggregate")k(if)c(the)g(cop)m(yrigh)m(t)i(resulting)e (from)f(the)i(compilation)g(is)f(not)h(used)e(to)i(limit)g(the)330 770 y(legal)d(righ)m(ts)f(of)g(the)g(compilation's)h(users)e(b)s(ey)m (ond)g(what)g(the)h(individual)f(w)m(orks)g(p)s(ermit.)39 b(When)330 880 y(the)g(Do)s(cumen)m(t)g(is)f(included)g(in)g(an)g (aggregate,)44 b(this)38 b(License)h(do)s(es)f(not)h(apply)f(to)h(the)g (other)330 989 y(w)m(orks)30 b(in)g(the)h(aggregate)i(whic)m(h)d(are)h (not)g(themselv)m(es)g(deriv)-5 b(ativ)m(e)32 b(w)m(orks)f(of)f(the)h (Do)s(cumen)m(t.)330 1132 y(If)22 b(the)h(Co)m(v)m(er)h(T)-8 b(ext)23 b(requiremen)m(t)g(of)g(section)h(3)f(is)g(applicable)h(to)f (these)h(copies)f(of)g(the)g(Do)s(cumen)m(t,)330 1241 y(then)f(if)g(the)h(Do)s(cumen)m(t)g(is)g(less)f(than)g(one)h(half)f (of)h(the)g(en)m(tire)g(aggregate,)k(the)c(Do)s(cumen)m(t's)g(Co)m(v)m (er)330 1351 y(T)-8 b(exts)27 b(ma)m(y)g(b)s(e)f(placed)h(on)g(co)m(v)m (ers)h(that)f(brac)m(k)m(et)h(the)f(Do)s(cumen)m(t)g(within)f(the)h (aggregate,)j(or)d(the)330 1461 y(electronic)37 b(equiv)-5 b(alen)m(t)36 b(of)g(co)m(v)m(ers)g(if)f(the)g(Do)s(cumen)m(t)h(is)f (in)g(electronic)i(form.)54 b(Otherwise)35 b(they)330 1570 y(m)m(ust)30 b(app)s(ear)g(on)g(prin)m(ted)g(co)m(v)m(ers)i(that)f (brac)m(k)m(et)h(the)f(whole)f(aggregate.)199 1713 y(8.)61 b(TRANSLA)-8 b(TION)330 1855 y(T)g(ranslation)41 b(is)f(considered)f(a) i(kind)e(of)h(mo)s(di\014cation,)j(so)d(y)m(ou)g(ma)m(y)h(distribute)e (translations)330 1965 y(of)45 b(the)f(Do)s(cumen)m(t)h(under)e(the)h (terms)h(of)f(section)i(4.)83 b(Replacing)45 b(In)m(v)-5 b(arian)m(t)45 b(Sections)g(with)330 2074 y(translations)h(requires)f (sp)s(ecial)h(p)s(ermission)f(from)g(their)g(cop)m(yrigh)m(t)i (holders,)i(but)c(y)m(ou)g(ma)m(y)330 2184 y(include)24 b(translations)i(of)e(some)h(or)g(all)g(In)m(v)-5 b(arian)m(t)25 b(Sections)g(in)f(addition)h(to)g(the)g(original)h(v)m(ersions)330 2293 y(of)32 b(these)f(In)m(v)-5 b(arian)m(t)33 b(Sections.)44 b(Y)-8 b(ou)32 b(ma)m(y)g(include)f(a)h(translation)g(of)g(this)f (License,)i(and)d(all)j(the)330 2403 y(license)42 b(notices)g(in)f(the) h(Do)s(cumen)m(t,)j(and)40 b(an)m(y)i(W)-8 b(arran)m(t)m(y)42 b(Disclaimers,)k(pro)m(vided)41 b(that)h(y)m(ou)330 2513 y(also)f(include)f(the)g(original)h(English)f(v)m(ersion)g(of)g(this)g (License)h(and)e(the)h(original)h(v)m(ersions)g(of)330 2622 y(those)35 b(notices)g(and)e(disclaimers.)53 b(In)33 b(case)i(of)g(a)f(disagreemen)m(t)h(b)s(et)m(w)m(een)g(the)f (translation)i(and)330 2732 y(the)f(original)i(v)m(ersion)e(of)h(this)f (License)h(or)f(a)g(notice)i(or)e(disclaimer,)i(the)f(original)g(v)m (ersion)g(will)330 2841 y(prev)-5 b(ail.)330 2984 y(If)28 b(a)h(section)h(in)e(the)h(Do)s(cumen)m(t)h(is)e(En)m(titled)i(\\Ac)m (kno)m(wledgemen)m(ts",)i(\\Dedications",)g(or)d(\\His-)330 3093 y(tory",)f(the)f(requiremen)m(t)f(\(section)i(4\))f(to)g(Preserv)m (e)g(its)f(Title)i(\(section)f(1\))g(will)g(t)m(ypically)h(require)330 3203 y(c)m(hanging)j(the)g(actual)h(title.)199 3345 y(9.)61 b(TERMINA)-8 b(TION)330 3488 y(Y)g(ou)30 b(ma)m(y)h(not)f(cop)m(y)-8 b(,)31 b(mo)s(dify)-8 b(,)30 b(sublicense,)g(or)g(distribute)f(the)h (Do)s(cumen)m(t)g(except)h(as)f(expressly)330 3598 y(pro)m(vided)38 b(under)f(this)i(License.)65 b(An)m(y)39 b(attempt)h(otherwise)f(to)g (cop)m(y)-8 b(,)42 b(mo)s(dify)-8 b(,)40 b(sublicense,)h(or)330 3707 y(distribute)30 b(it)h(is)f(v)m(oid,)h(and)f(will)h(automatically) i(terminate)f(y)m(our)e(righ)m(ts)h(under)e(this)h(License.)330 3850 y(Ho)m(w)m(ev)m(er,)35 b(if)e(y)m(ou)f(cease)i(all)f(violation)i (of)d(this)g(License,)i(then)e(y)m(our)h(license)g(from)f(a)h (particular)330 3959 y(cop)m(yrigh)m(t)k(holder)e(is)h(reinstated)h (\(a\))f(pro)m(visionally)-8 b(,)39 b(unless)c(and)g(un)m(til)h(the)g (cop)m(yrigh)m(t)h(holder)330 4069 y(explicitly)42 b(and)e(\014nally)h (terminates)g(y)m(our)g(license,)j(and)c(\(b\))h(p)s(ermanen)m(tly)-8 b(,)43 b(if)e(the)g(cop)m(yrigh)m(t)330 4178 y(holder)34 b(fails)h(to)g(notify)g(y)m(ou)g(of)f(the)h(violation)h(b)m(y)e(some)h (reasonable)g(means)g(prior)e(to)i(60)h(da)m(ys)330 4288 y(after)31 b(the)f(cessation.)330 4430 y(Moreo)m(v)m(er,)k(y)m(our)d (license)i(from)e(a)h(particular)f(cop)m(yrigh)m(t)i(holder)e(is)h (reinstated)g(p)s(ermanen)m(tly)f(if)330 4540 y(the)d(cop)m(yrigh)m(t)h (holder)f(noti\014es)g(y)m(ou)g(of)g(the)g(violation)h(b)m(y)f(some)g (reasonable)h(means,)f(this)g(is)g(the)330 4650 y(\014rst)f(time)i(y)m (ou)f(ha)m(v)m(e)h(receiv)m(ed)g(notice)g(of)f(violation)i(of)e(this)f (License)i(\(for)f(an)m(y)g(w)m(ork\))g(from)f(that)330 4759 y(cop)m(yrigh)m(t)33 b(holder,)g(and)e(y)m(ou)h(cure)g(the)g (violation)i(prior)d(to)i(30)f(da)m(ys)h(after)f(y)m(our)g(receipt)h (of)f(the)330 4869 y(notice.)330 5011 y(T)-8 b(ermination)28 b(of)g(y)m(our)f(righ)m(ts)h(under)e(this)i(section)g(do)s(es)f(not)h (terminate)h(the)e(licenses)i(of)f(parties)330 5121 y(who)38 b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g (under)f(this)h(License.)64 b(If)38 b(y)m(our)g(righ)m(ts)h(ha)m(v)m(e) 330 5230 y(b)s(een)25 b(terminated)i(and)e(not)h(p)s(ermanen)m(tly)g (reinstated,)i(receipt)f(of)f(a)g(cop)m(y)h(of)f(some)h(or)f(all)h(of)f (the)330 5340 y(same)31 b(material)h(do)s(es)e(not)g(giv)m(e)i(y)m(ou)f (an)m(y)g(righ)m(ts)f(to)i(use)e(it.)p eop end %%Page: 74 79 TeXDict begin 74 78 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(74)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)330 433 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8 b(oundation)43 b(ma)m(y)f(publish)e(new,)k(revised)d(v)m(ersions)h(of)g(the)g(GNU)g(F) -8 b(ree)330 543 y(Do)s(cumen)m(tation)34 b(License)e(from)g(time)h(to) g(time.)46 b(Suc)m(h)31 b(new)h(v)m(ersions)g(will)h(b)s(e)e(similar)h (in)g(spirit)330 653 y(to)j(the)g(presen)m(t)f(v)m(ersion,)i(but)e(ma)m (y)h(di\013er)f(in)g(detail)h(to)g(address)f(new)g(problems)f(or)i (concerns.)330 762 y(See)c Fr(http://www.gnu.org/copy)o(left)o(/)p Fx(.)330 897 y(Eac)m(h)f(v)m(ersion)g(of)g(the)f(License)h(is)g(giv)m (en)g(a)g(distinguishing)f(v)m(ersion)h(n)m(um)m(b)s(er.)39 b(If)29 b(the)g(Do)s(cumen)m(t)330 1006 y(sp)s(eci\014es)45 b(that)h(a)g(particular)f(n)m(um)m(b)s(ered)f(v)m(ersion)i(of)f(this)g (License)h(\\or)g(an)m(y)g(later)g(v)m(ersion")330 1116 y(applies)33 b(to)g(it,)h(y)m(ou)e(ha)m(v)m(e)i(the)f(option)g(of)f (follo)m(wing)i(the)f(terms)f(and)g(conditions)h(either)g(of)f(that)330 1225 y(sp)s(eci\014ed)37 b(v)m(ersion)i(or)e(of)h(an)m(y)h(later)g(v)m (ersion)f(that)g(has)g(b)s(een)f(published)f(\(not)j(as)f(a)g(draft\))g (b)m(y)330 1335 y(the)33 b(F)-8 b(ree)34 b(Soft)m(w)m(are)f(F)-8 b(oundation.)49 b(If)32 b(the)h(Do)s(cumen)m(t)g(do)s(es)g(not)g(sp)s (ecify)f(a)h(v)m(ersion)g(n)m(um)m(b)s(er)f(of)330 1445 y(this)i(License,)j(y)m(ou)d(ma)m(y)i(c)m(ho)s(ose)f(an)m(y)g(v)m (ersion)g(ev)m(er)g(published)e(\(not)i(as)g(a)f(draft\))h(b)m(y)f(the) h(F)-8 b(ree)330 1554 y(Soft)m(w)m(are)33 b(F)-8 b(oundation.)46 b(If)32 b(the)g(Do)s(cumen)m(t)g(sp)s(eci\014es)g(that)g(a)h(pro)m(xy)f (can)g(decide)g(whic)m(h)g(future)330 1664 y(v)m(ersions)h(of)g(this)f (License)h(can)g(b)s(e)f(used,)g(that)i(pro)m(xy's)e(public)g(statemen) m(t)i(of)f(acceptance)i(of)e(a)330 1773 y(v)m(ersion)e(p)s(ermanen)m (tly)f(authorizes)h(y)m(ou)g(to)g(c)m(ho)s(ose)g(that)g(v)m(ersion)g (for)f(the)h(Do)s(cumen)m(t.)154 1908 y(11.)61 b(RELICENSING)330 2042 y(\\Massiv)m(e)39 b(Multiauthor)f(Collab)s(oration)g(Site")h(\(or) e(\\MMC)h(Site"\))h(means)e(an)m(y)h(W)-8 b(orld)37 b(Wide)330 2152 y(W)-8 b(eb)36 b(serv)m(er)g(that)h(publishes)d(cop)m(yrigh)m (table)k(w)m(orks)e(and)f(also)i(pro)m(vides)e(prominen)m(t)h (facilities)330 2262 y(for)27 b(an)m(yb)s(o)s(dy)g(to)h(edit)g(those)g (w)m(orks.)39 b(A)28 b(public)f(wiki)h(that)g(an)m(yb)s(o)s(dy)e(can)i (edit)g(is)f(an)h(example)g(of)330 2371 y(suc)m(h)33 b(a)h(serv)m(er.)51 b(A)34 b(\\Massiv)m(e)i(Multiauthor)e(Collab)s (oration")h(\(or)f(\\MMC"\))h(con)m(tained)g(in)f(the)330 2481 y(site)d(means)f(an)m(y)h(set)g(of)g(cop)m(yrigh)m(table)h(w)m (orks)e(th)m(us)g(published)f(on)h(the)h(MMC)f(site.)330 2615 y(\\CC-BY-SA")36 b(means)f(the)g(Creativ)m(e)i(Commons)e(A)m (ttribution-Share)g(Alik)m(e)i(3.0)f(license)g(pub-)330 2725 y(lished)27 b(b)m(y)f(Creativ)m(e)j(Commons)d(Corp)s(oration,)h(a) g(not-for-pro\014t)g(corp)s(oration)h(with)e(a)h(principal)330 2834 y(place)g(of)f(business)e(in)i(San)f(F)-8 b(rancisco,)29 b(California,)f(as)e(w)m(ell)h(as)f(future)f(cop)m(yleft)i(v)m(ersions) f(of)g(that)330 2944 y(license)31 b(published)e(b)m(y)h(that)h(same)g (organization.)330 3078 y(\\Incorp)s(orate")h(means)e(to)h(publish)e (or)i(republish)e(a)i(Do)s(cumen)m(t,)g(in)g(whole)g(or)f(in)g(part,)h (as)g(part)330 3188 y(of)g(another)f(Do)s(cumen)m(t.)330 3323 y(An)c(MMC)g(is)h(\\eligible)h(for)e(relicensing")h(if)g(it)f(is)h (licensed)f(under)f(this)h(License,)i(and)e(if)g(all)h(w)m(orks)330 3432 y(that)43 b(w)m(ere)f(\014rst)f(published)f(under)h(this)h (License)g(somewhere)g(other)g(than)g(this)g(MMC,)h(and)330 3542 y(subsequen)m(tly)34 b(incorp)s(orated)h(in)f(whole)h(or)g(in)f (part)h(in)m(to)h(the)f(MMC,)g(\(1\))h(had)e(no)h(co)m(v)m(er)h(texts) 330 3651 y(or)30 b(in)m(v)-5 b(arian)m(t)32 b(sections,)g(and)d(\(2\))j (w)m(ere)f(th)m(us)f(incorp)s(orated)g(prior)g(to)h(No)m(v)m(em)m(b)s (er)g(1,)g(2008.)330 3786 y(The)40 b(op)s(erator)h(of)g(an)f(MMC)h (Site)g(ma)m(y)g(republish)e(an)h(MMC)h(con)m(tained)h(in)e(the)h(site) g(under)330 3895 y(CC-BY-SA)30 b(on)g(the)h(same)f(site)h(at)g(an)m(y)g (time)g(b)s(efore)e(August)h(1,)h(2009,)h(pro)m(vided)e(the)g(MMC)h(is) 330 4005 y(eligible)h(for)e(relicensing.)p eop end %%Page: 75 80 TeXDict begin 75 79 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(75)150 299 y Fw(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f(for)g(y)l(our)g(do)t(cumen)l(ts) 150 458 y Fx(T)-8 b(o)35 b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m (t)g(y)m(ou)f(ha)m(v)m(e)i(written,)g(include)f(a)f(cop)m(y)i(of)f(the) f(License)h(in)g(the)150 568 y(do)s(cumen)m(t)30 b(and)g(put)g(the)g (follo)m(wing)i(cop)m(yrigh)m(t)g(and)e(license)h(notices)g(just)f (after)h(the)g(title)h(page:)468 673 y Fd(Copyright)42 b(\(C\))79 b Fc(year)88 b(your)40 b(name)9 b Fd(.)468 760 y(Permission)42 b(is)e(granted)g(to)g(copy,)h(distribute)g(and/or)g (modify)f(this)g(document)468 847 y(under)h(the)f(terms)g(of)g(the)g (GNU)g(Free)g(Documentation)i(License,)f(Version)g(1.3)468 934 y(or)f(any)g(later)g(version)h(published)h(by)d(the)h(Free)g (Software)h(Foundation;)468 1021 y(with)g(no)e(Invariant)j(Sections,)f (no)f(Front-Cover)h(Texts,)g(and)f(no)f(Back-Cover)468 1108 y(Texts.)80 b(A)40 b(copy)g(of)g(the)f(license)i(is)f(included)h (in)f(the)g(section)g(entitled)h(``GNU)468 1196 y(Free)g(Documentation) h(License''.)275 1323 y Fx(If)d(y)m(ou)h(ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)41 b(Sections,)i(F)-8 b(ron)m(t-Co)m(v)m(er)42 b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts,)43 b(replace)e(the)150 1432 y(\\with)6 b(.)22 b(.)g(.)12 b(T)-8 b(exts.")41 b(line)31 b(with)f(this:)547 1537 y Fd(with)40 b(the)g(Invariant)h(Sections)g(being)g Fc(list)f(their)g (titles)9 b Fd(,)41 b(with)547 1624 y(the)f(Front-Cover)i(Texts)e (being)g Fc(list)9 b Fd(,)40 b(and)g(with)g(the)g(Back-Cover)i(Texts) 547 1712 y(being)e Fc(list)9 b Fd(.)275 1839 y Fx(If)34 b(y)m(ou)i(ha)m(v)m(e)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(without)f (Co)m(v)m(er)h(T)-8 b(exts,)38 b(or)d(some)g(other)h(com)m(bination)g (of)g(the)150 1948 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g (alternativ)m(es)i(to)e(suit)f(the)h(situation.)275 2075 y(If)23 b(y)m(our)h(do)s(cumen)m(t)f(con)m(tains)i(non)m(trivial)g (examples)g(of)f(program)f(co)s(de,)j(w)m(e)e(recommend)g(releasing)150 2185 y(these)44 b(examples)f(in)g(parallel)h(under)e(y)m(our)h(c)m (hoice)i(of)e(free)g(soft)m(w)m(are)h(license,)k(suc)m(h)43 b(as)g(the)g(GNU)150 2295 y(General)31 b(Public)f(License,)i(to)f(p)s (ermit)e(their)i(use)f(in)g(free)g(soft)m(w)m(are.)150 2512 y Fw(C.2)68 b(GNU)45 b(Lesser)g(General)h(Public)f(License)1417 2654 y Fx(V)-8 b(ersion)31 b(2.1,)h(F)-8 b(ebruary)30 b(1999)390 2781 y(Cop)m(yrigh)m(t)842 2778 y(c)817 2781 y Fv(\015)g Fx(1991,)j(1999)f(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 2891 y(51)g(F)-8 b(ranklin)31 b(Street,)g(Fifth)g(Flo)s(or,)g(Boston,)g(MA)g(02110-1301,)k(USA)390 3110 y(Ev)m(ery)m(one)c(is)g(p)s(ermitted)f(to)h(cop)m(y)g(and)f (distribute)g(v)m(erbatim)h(copies)390 3220 y(of)g(this)f(license)h(do) s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f(is)f(not)h(allo)m(w)m(ed.)390 3439 y([This)f(is)g(the)h(\014rst)e(released)j(v)m(ersion)e(of)h(the)g (Lesser)f(GPL.)61 b(It)30 b(also)i(coun)m(ts)390 3549 y(as)f(the)f(successor)h(of)f(the)h(GNU)g(Library)e(Public)i(License,)g (v)m(ersion)g(2,)g(hence)f(the)390 3658 y(v)m(ersion)h(n)m(um)m(b)s(er) e(2.1.])150 3843 y Fq(Pream)m(ble)150 3990 y Fx(The)e(licenses)i(for)f (most)g(soft)m(w)m(are)i(are)e(designed)g(to)h(tak)m(e)g(a)m(w)m(a)m(y) h(y)m(our)e(freedom)g(to)h(share)e(and)h(c)m(hange)150 4099 y(it.)42 b(By)32 b(con)m(trast,)g(the)f(GNU)g(General)h(Public)f (Licenses)g(are)g(in)m(tended)g(to)g(guaran)m(tee)h(y)m(our)f(freedom) 150 4209 y(to)g(share)f(and)g(c)m(hange)i(free)e(soft)m(w)m(are|to)j (mak)m(e)e(sure)f(the)g(soft)m(w)m(are)i(is)e(free)h(for)f(all)h(its)g (users.)275 4336 y(This)40 b(license,)45 b(the)c(Lesser)g(General)h (Public)f(License,)j(applies)d(to)h(some)f(sp)s(ecially)h(designated) 150 4446 y(soft)m(w)m(are|t)m(ypically)24 b(libraries|of)e(the)f(F)-8 b(ree)22 b(Soft)m(w)m(are)g(F)-8 b(oundation)22 b(and)f(other)g (authors)g(who)g(decide)150 4555 y(to)35 b(use)f(it.)53 b(Y)-8 b(ou)35 b(can)g(use)f(it)g(to)s(o,)j(but)c(w)m(e)i(suggest)g(y)m (ou)g(\014rst)f(think)f(carefully)i(ab)s(out)f(whether)g(this)150 4665 y(license)27 b(or)e(the)h(ordinary)f(General)h(Public)g(License)g (is)f(the)h(b)s(etter)g(strategy)h(to)f(use)f(in)h(an)m(y)g(particular) 150 4774 y(case,)32 b(based)e(on)g(the)h(explanations)g(b)s(elo)m(w.) 275 4902 y(When)41 b(w)m(e)g(sp)s(eak)g(of)h(free)f(soft)m(w)m(are,)46 b(w)m(e)c(are)f(referring)g(to)h(freedom)g(of)f(use,)j(not)e(price.)73 b(Our)150 5011 y(General)30 b(Public)f(Licenses)g(are)h(designed)f(to)g (mak)m(e)i(sure)d(that)i(y)m(ou)f(ha)m(v)m(e)h(the)g(freedom)f(to)g (distribute)150 5121 y(copies)e(of)g(free)f(soft)m(w)m(are)i(\(and)f(c) m(harge)g(for)f(this)h(service)g(if)g(y)m(ou)f(wish\);)i(that)f(y)m(ou) g(receiv)m(e)h(source)f(co)s(de)150 5230 y(or)34 b(can)h(get)h(it)f(if) f(y)m(ou)h(w)m(an)m(t)g(it;)i(that)e(y)m(ou)g(can)g(c)m(hange)g(the)g (soft)m(w)m(are)h(and)e(use)g(pieces)h(of)f(it)h(in)f(new)150 5340 y(free)c(programs;)h(and)f(that)g(y)m(ou)h(are)g(informed)f(that)h (y)m(ou)f(can)h(do)f(these)h(things.)p eop end %%Page: 76 81 TeXDict begin 76 80 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(76)275 299 y(T)-8 b(o)27 b(protect)h(y)m(our)e(righ)m(ts,)j(w)m(e)e(need)f(to)i(mak)m(e)g (restrictions)f(that)h(forbid)e(distributors)f(to)j(den)m(y)f(y)m(ou) 150 408 y(these)32 b(righ)m(ts)g(or)g(to)g(ask)g(y)m(ou)g(to)g (surrender)d(these)j(righ)m(ts.)45 b(These)32 b(restrictions)g (translate)h(to)f(certain)150 518 y(resp)s(onsibilities)e(for)h(y)m(ou) f(if)h(y)m(ou)f(distribute)g(copies)h(of)g(the)f(library)g(or)h(if)f(y) m(ou)h(mo)s(dify)e(it.)275 664 y(F)-8 b(or)28 b(example,)h(if)f(y)m(ou) g(distribute)f(copies)i(of)f(the)g(library)-8 b(,)29 b(whether)e(gratis)h(or)g(for)g(a)g(fee,)h(y)m(ou)f(m)m(ust)150 774 y(giv)m(e)40 b(the)f(recipien)m(ts)h(all)g(the)e(righ)m(ts)i(that)f (w)m(e)g(ga)m(v)m(e)i(y)m(ou.)66 b(Y)-8 b(ou)40 b(m)m(ust)e(mak)m(e)i (sure)e(that)h(they)-8 b(,)42 b(to)s(o,)150 883 y(receiv)m(e)28 b(or)f(can)f(get)i(the)e(source)h(co)s(de.)40 b(If)25 b(y)m(ou)i(link)f(other)h(co)s(de)g(with)f(the)g(library)-8 b(,)28 b(y)m(ou)f(m)m(ust)f(pro)m(vide)150 993 y(complete)35 b(ob)5 b(ject)34 b(\014les)g(to)g(the)f(recipien)m(ts,)j(so)d(that)i (they)e(can)h(relink)f(them)h(with)f(the)g(library)g(after)150 1103 y(making)28 b(c)m(hanges)h(to)g(the)f(library)f(and)h(recompiling) g(it.)41 b(And)27 b(y)m(ou)h(m)m(ust)g(sho)m(w)g(them)g(these)g(terms)g (so)150 1212 y(they)j(kno)m(w)f(their)g(righ)m(ts.)275 1358 y(W)-8 b(e)28 b(protect)g(y)m(our)e(righ)m(ts)i(with)e(a)i(t)m(w)m (o-step)g(metho)s(d:)39 b(\(1\))28 b(w)m(e)f(cop)m(yrigh)m(t)h(the)f (library)-8 b(,)28 b(and)e(\(2\))i(w)m(e)150 1468 y(o\013er)37 b(y)m(ou)f(this)g(license,)j(whic)m(h)d(giv)m(es)h(y)m(ou)g(legal)h(p)s (ermission)d(to)i(cop)m(y)-8 b(,)39 b(distribute)d(and/or)g(mo)s(dify) 150 1577 y(the)31 b(library)-8 b(.)275 1724 y(T)g(o)30 b(protect)g(eac)m(h)h(distributor,)f(w)m(e)g(w)m(an)m(t)g(to)h(mak)m(e) g(it)f(v)m(ery)g(clear)h(that)f(there)g(is)g(no)f(w)m(arran)m(t)m(y)i (for)150 1833 y(the)24 b(free)g(library)-8 b(.)39 b(Also,)26 b(if)e(the)g(library)f(is)h(mo)s(di\014ed)f(b)m(y)h(someone)g(else)h (and)e(passed)h(on,)h(the)f(recipien)m(ts)150 1943 y(should)32 b(kno)m(w)i(that)g(what)f(they)h(ha)m(v)m(e)g(is)g(not)f(the)h (original)g(v)m(ersion,)h(so)f(that)g(the)f(original)i(author's)150 2052 y(reputation)c(will)f(not)h(b)s(e)f(a\013ected)i(b)m(y)e(problems) g(that)h(migh)m(t)g(b)s(e)e(in)m(tro)s(duced)h(b)m(y)g(others.)275 2198 y(Finally)-8 b(,)40 b(soft)m(w)m(are)e(paten)m(ts)g(p)s(ose)e(a)i (constan)m(t)g(threat)f(to)h(the)f(existence)i(of)e(an)m(y)g(free)g (program.)150 2308 y(W)-8 b(e)27 b(wish)e(to)i(mak)m(e)g(sure)e(that)i (a)f(compan)m(y)g(cannot)h(e\013ectiv)m(ely)i(restrict)d(the)h(users)e (of)h(a)g(free)g(program)150 2418 y(b)m(y)h(obtaining)h(a)f(restrictiv) m(e)i(license)g(from)d(a)i(paten)m(t)g(holder.)39 b(Therefore,)28 b(w)m(e)g(insist)f(that)g(an)m(y)h(paten)m(t)150 2527 y(license)j(obtained)f(for)f(a)h(v)m(ersion)g(of)g(the)f(library)g(m)m (ust)h(b)s(e)f(consisten)m(t)i(with)e(the)h(full)f(freedom)h(of)f(use) 150 2637 y(sp)s(eci\014ed)h(in)g(this)g(license.)275 2783 y(Most)i(GNU)g(soft)m(w)m(are,)i(including)d(some)h(libraries,)g (is)g(co)m(v)m(ered)h(b)m(y)e(the)h(ordinary)f(GNU)h(General)150 2892 y(Public)38 b(License.)65 b(This)37 b(license,)k(the)e(GNU)g (Lesser)f(General)h(Public)f(License,)j(applies)d(to)h(certain)150 3002 y(designated)d(libraries,)i(and)d(is)g(quite)h(di\013eren)m(t)h (from)e(the)h(ordinary)f(General)h(Public)g(License.)57 b(W)-8 b(e)150 3112 y(use)33 b(this)g(license)i(for)e(certain)h (libraries)f(in)g(order)g(to)h(p)s(ermit)f(linking)g(those)h(libraries) g(in)m(to)g(non-free)150 3221 y(programs.)275 3367 y(When)h(a)h (program)g(is)g(link)m(ed)g(with)f(a)h(library)-8 b(,)38 b(whether)d(statically)j(or)e(using)f(a)i(shared)e(library)-8 b(,)150 3477 y(the)28 b(com)m(bination)h(of)f(the)g(t)m(w)m(o)h(is)f (legally)i(sp)s(eaking)d(a)i(com)m(bined)f(w)m(ork,)g(a)g(deriv)-5 b(ativ)m(e)30 b(of)e(the)g(original)150 3587 y(library)-8 b(.)73 b(The)41 b(ordinary)f(General)i(Public)f(License)h(therefore)g (p)s(ermits)e(suc)m(h)h(linking)g(only)h(if)f(the)150 3696 y(en)m(tire)34 b(com)m(bination)h(\014ts)e(its)h(criteria)h(of)e (freedom.)50 b(The)33 b(Lesser)g(General)i(Public)e(License)h(p)s (ermits)150 3806 y(more)d(lax)g(criteria)g(for)f(linking)h(other)f(co)s (de)h(with)f(the)h(library)-8 b(.)275 3952 y(W)g(e)25 b(call)i(this)d(license)i(the)f Fn(Lesser)31 b Fx(General)26 b(Public)e(License)h(b)s(ecause)g(it)g(do)s(es)g Fb(L)-5 b(ess)33 b Fx(to)25 b(protect)h(the)150 4061 y(user's)c(freedom)h(than) g(the)g(ordinary)f(General)h(Public)g(License.)39 b(It)23 b(also)h(pro)m(vides)e(other)i(free)e(soft)m(w)m(are)150 4171 y(dev)m(elop)s(ers)36 b(Less)g(of)g(an)g(adv)-5 b(an)m(tage)38 b(o)m(v)m(er)f(comp)s(eting)f(non-free)g(programs.)57 b(These)36 b(disadv)-5 b(an)m(tages)150 4281 y(are)28 b(the)f(reason)h(w)m(e)g(use)f(the)h(ordinary)e(General)j(Public)e (License)h(for)f(man)m(y)h(libraries.)39 b(Ho)m(w)m(ev)m(er,)31 b(the)150 4390 y(Lesser)f(license)i(pro)m(vides)e(adv)-5 b(an)m(tages)32 b(in)e(certain)h(sp)s(ecial)g(circumstances.)275 4536 y(F)-8 b(or)38 b(example,)j(on)d(rare)h(o)s(ccasions,)i(there)d (ma)m(y)h(b)s(e)e(a)i(sp)s(ecial)g(need)f(to)g(encourage)i(the)e (widest)150 4646 y(p)s(ossible)d(use)g(of)g(a)h(certain)g(library)-8 b(,)37 b(so)f(that)g(it)f(b)s(ecomes)h(a)g(de-facto)h(standard.)54 b(T)-8 b(o)36 b(ac)m(hiev)m(e)i(this,)150 4756 y(non-free)33 b(programs)f(m)m(ust)h(b)s(e)f(allo)m(w)m(ed)j(to)f(use)e(the)h (library)-8 b(.)48 b(A)33 b(more)g(frequen)m(t)g(case)h(is)f(that)h(a)f (free)150 4865 y(library)i(do)s(es)g(the)g(same)h(job)f(as)g(widely)h (used)e(non-free)h(libraries.)56 b(In)34 b(this)i(case,)h(there)f(is)f (little)i(to)150 4975 y(gain)32 b(b)m(y)g(limiting)h(the)f(free)g (library)g(to)g(free)g(soft)m(w)m(are)i(only)-8 b(,)33 b(so)f(w)m(e)g(use)g(the)g(Lesser)f(General)i(Public)150 5084 y(License.)275 5230 y(In)39 b(other)i(cases,)k(p)s(ermission)39 b(to)j(use)e(a)h(particular)g(library)f(in)h(non-free)f(programs)h (enables)g(a)150 5340 y(greater)33 b(n)m(um)m(b)s(er)e(of)h(p)s(eople)g (to)g(use)g(a)g(large)h(b)s(o)s(dy)e(of)h(free)g(soft)m(w)m(are.)46 b(F)-8 b(or)33 b(example,)g(p)s(ermission)e(to)p eop end %%Page: 77 82 TeXDict begin 77 81 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(77)150 299 y(use)33 b(the)g(GNU)g(C)f(Library)g(in)h(non-free)f(programs)h(enables)g(man)m (y)g(more)g(p)s(eople)g(to)g(use)g(the)g(whole)150 408 y(GNU)e(op)s(erating)g(system,)g(as)f(w)m(ell)i(as)e(its)h(v)-5 b(arian)m(t,)32 b(the)e(GNU/Lin)m(ux)h(op)s(erating)g(system.)275 542 y(Although)i(the)g(Lesser)g(General)i(Public)d(License)i(is)g(Less) f(protectiv)m(e)i(of)e(the)h(users')e(freedom,)i(it)150 651 y(do)s(es)28 b(ensure)f(that)i(the)f(user)g(of)g(a)h(program)f (that)h(is)f(link)m(ed)g(with)g(the)h(Library)e(has)h(the)g(freedom)h (and)150 761 y(the)i(wherewithal)f(to)h(run)e(that)i(program)f(using)g (a)h(mo)s(di\014ed)e(v)m(ersion)i(of)f(the)h(Library)-8 b(.)275 894 y(The)28 b(precise)h(terms)g(and)f(conditions)h(for)g(cop)m (ying,)h(distribution)e(and)g(mo)s(di\014cation)h(follo)m(w.)42 b(P)m(a)m(y)150 1003 y(close)35 b(atten)m(tion)i(to)e(the)f (di\013erence)h(b)s(et)m(w)m(een)g(a)f(\\w)m(ork)h(based)f(on)g(the)g (library")g(and)g(a)h(\\w)m(ork)f(that)150 1113 y(uses)j(the)h (library".)62 b(The)37 b(former)g(con)m(tains)h(co)s(de)g(deriv)m(ed)g (from)e(the)i(library)-8 b(,)40 b(whereas)d(the)h(latter)150 1223 y(m)m(ust)30 b(b)s(e)g(com)m(bined)h(with)f(the)g(library)g(in)g (order)g(to)h(run.)150 1397 y Fq(TERMS)41 b(AND)g(CONDITIONS)f(F)m(OR)h (COPYING,)f(DISTRIBUTION)150 1522 y(AND)h(MODIFICA)-10 b(TION)199 1669 y Fx(0.)61 b(This)21 b(License)h(Agreemen)m(t)h (applies)f(to)g(an)m(y)g(soft)m(w)m(are)h(library)e(or)g(other)h (program)f(whic)m(h)h(con)m(tains)330 1778 y(a)40 b(notice)h(placed)f (b)m(y)g(the)g(cop)m(yrigh)m(t)h(holder)e(or)h(other)g(authorized)g (part)m(y)g(sa)m(ying)g(it)g(ma)m(y)h(b)s(e)330 1888 y(distributed)e(under)g(the)i(terms)f(of)h(this)f(Lesser)g(General)h (Public)f(License)h(\(also)h(called)g(\\this)330 1998 y(License"\).)g(Eac)m(h)31 b(licensee)h(is)e(addressed)g(as)g(\\y)m (ou".)330 2131 y(A)h(\\library")g(means)g(a)g(collection)j(of)d(soft)m (w)m(are)h(functions)f(and/or)f(data)i(prepared)e(so)h(as)g(to)h(b)s(e) 330 2240 y(con)m(v)m(enien)m(tly)g(link)m(ed)e(with)f(application)j (programs)d(\(whic)m(h)h(use)f(some)h(of)g(those)g(functions)g(and)330 2350 y(data\))h(to)h(form)d(executables.)330 2483 y(The)43 b(\\Library",)k(b)s(elo)m(w,)h(refers)43 b(to)i(an)m(y)f(suc)m(h)f (soft)m(w)m(are)i(library)e(or)h(w)m(ork)g(whic)m(h)f(has)h(b)s(een)330 2592 y(distributed)22 b(under)g(these)h(terms.)38 b(A)24 b(\\w)m(ork)f(based)g(on)g(the)g(Library")g(means)g(either)g(the)h (Library)330 2702 y(or)43 b(an)m(y)h(deriv)-5 b(ativ)m(e)45 b(w)m(ork)e(under)f(cop)m(yrigh)m(t)j(la)m(w:)67 b(that)44 b(is)g(to)g(sa)m(y)-8 b(,)48 b(a)43 b(w)m(ork)h(con)m(taining)h(the)330 2812 y(Library)c(or)h(a)h(p)s(ortion)e(of)h(it,)k(either)d(v)m(erbatim) f(or)g(with)g(mo)s(di\014cations)g(and/or)g(translated)330 2921 y(straigh)m(tforw)m(ardly)33 b(in)m(to)g(another)f(language.)46 b(\(Hereinafter,)34 b(translation)f(is)f(included)f(without)330 3031 y(limitation)h(in)e(the)h(term)f(\\mo)s(di\014cation".\))330 3164 y(\\Source)22 b(co)s(de")h(for)e(a)i(w)m(ork)f(means)f(the)i (preferred)d(form)i(of)g(the)g(w)m(ork)g(for)f(making)i(mo)s (di\014cations)330 3273 y(to)33 b(it.)45 b(F)-8 b(or)33 b(a)f(library)-8 b(,)32 b(complete)i(source)e(co)s(de)g(means)f(all)i (the)f(source)g(co)s(de)g(for)g(all)g(mo)s(dules)f(it)330 3383 y(con)m(tains,)k(plus)c(an)m(y)i(asso)s(ciated)h(in)m(terface)h (de\014nition)d(\014les,)h(plus)f(the)h(scripts)f(used)g(to)h(con)m (trol)330 3493 y(compilation)f(and)e(installation)i(of)f(the)f(library) -8 b(.)330 3626 y(Activities)41 b(other)e(than)f(cop)m(ying,)43 b(distribution)38 b(and)g(mo)s(di\014cation)h(are)g(not)g(co)m(v)m (ered)h(b)m(y)f(this)330 3735 y(License;)31 b(they)f(are)g(outside)h (its)f(scop)s(e.)40 b(The)30 b(act)h(of)f(running)e(a)j(program)e (using)h(the)g(Library)f(is)330 3845 y(not)24 b(restricted,)j(and)c (output)h(from)f(suc)m(h)h(a)g(program)g(is)g(co)m(v)m(ered)i(only)e (if)g(its)h(con)m(ten)m(ts)h(constitute)330 3954 y(a)g(w)m(ork)f(based) g(on)g(the)h(Library)f(\(indep)s(enden)m(t)f(of)i(the)f(use)g(of)h(the) f(Library)g(in)g(a)g(to)s(ol)i(for)e(writing)330 4064 y(it\).)63 b(Whether)37 b(that)h(is)g(true)f(dep)s(ends)f(on)h(what)g (the)h(Library)e(do)s(es)h(and)g(what)h(the)f(program)330 4174 y(that)31 b(uses)f(the)g(Library)g(do)s(es.)199 4307 y(1.)61 b(Y)-8 b(ou)38 b(ma)m(y)h(cop)m(y)f(and)g(distribute)f(v)m (erbatim)i(copies)f(of)g(the)g(Library's)f(complete)j(source)e(co)s(de) 330 4416 y(as)c(y)m(ou)g(receiv)m(e)i(it,)g(in)d(an)m(y)h(medium,)g (pro)m(vided)g(that)g(y)m(ou)h(conspicuously)e(and)h(appropriately)330 4526 y(publish)27 b(on)h(eac)m(h)h(cop)m(y)g(an)f(appropriate)h(cop)m (yrigh)m(t)g(notice)h(and)e(disclaimer)h(of)f(w)m(arran)m(t)m(y;)i(k)m (eep)330 4635 y(in)m(tact)f(all)f(the)f(notices)h(that)g(refer)f(to)h (this)f(License)g(and)g(to)h(the)f(absence)g(of)h(an)m(y)f(w)m(arran)m (t)m(y;)j(and)330 4745 y(distribute)g(a)h(cop)m(y)g(of)f(this)h (License)g(along)g(with)f(the)h(Library)-8 b(.)330 4878 y(Y)g(ou)31 b(ma)m(y)g(c)m(harge)h(a)f(fee)g(for)f(the)h(ph)m(ysical)g (act)h(of)f(transferring)f(a)h(cop)m(y)-8 b(,)32 b(and)e(y)m(ou)h(ma)m (y)g(at)g(y)m(our)330 4988 y(option)g(o\013er)g(w)m(arran)m(t)m(y)g (protection)h(in)e(exc)m(hange)i(for)e(a)g(fee.)199 5121 y(2.)61 b(Y)-8 b(ou)27 b(ma)m(y)h(mo)s(dify)d(y)m(our)i(cop)m(y)h(or)e (copies)i(of)f(the)g(Library)f(or)g(an)m(y)h(p)s(ortion)g(of)f(it,)j (th)m(us)d(forming)h(a)330 5230 y(w)m(ork)k(based)g(on)g(the)h(Library) -8 b(,)31 b(and)f(cop)m(y)i(and)f(distribute)g(suc)m(h)g(mo)s (di\014cations)g(or)g(w)m(ork)g(under)330 5340 y(the)g(terms)f(of)g (Section)i(1)e(ab)s(o)m(v)m(e,)i(pro)m(vided)e(that)h(y)m(ou)g(also)g (meet)g(all)h(of)e(these)h(conditions:)p eop end %%Page: 78 83 TeXDict begin 78 82 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(78)379 299 y(a.)61 b(The)30 b(mo)s(di\014ed)f(w)m(ork)i(m)m(ust)f(itself)h(b)s(e)f(a)h (soft)m(w)m(are)g(library)-8 b(.)374 436 y(b.)60 b(Y)-8 b(ou)43 b(m)m(ust)f(cause)i(the)e(\014les)h(mo)s(di\014ed)e(to)i(carry) g(prominen)m(t)f(notices)i(stating)f(that)h(y)m(ou)510 545 y(c)m(hanged)31 b(the)g(\014les)f(and)g(the)g(date)h(of)g(an)m(y)g (c)m(hange.)384 682 y(c.)61 b(Y)-8 b(ou)41 b(m)m(ust)f(cause)g(the)h (whole)f(of)h(the)f(w)m(ork)g(to)h(b)s(e)f(licensed)g(at)h(no)f(c)m (harge)i(to)f(all)g(third)510 792 y(parties)31 b(under)e(the)h(terms)g (of)h(this)f(License.)374 929 y(d.)60 b(If)43 b(a)i(facilit)m(y)h(in)d (the)i(mo)s(di\014ed)d(Library)h(refers)h(to)h(a)f(function)f(or)h(a)h (table)f(of)h(data)f(to)510 1039 y(b)s(e)d(supplied)f(b)m(y)i(an)f (application)i(program)f(that)g(uses)f(the)h(facilit)m(y)-8 b(,)47 b(other)42 b(than)f(as)h(an)510 1148 y(argumen)m(t)37 b(passed)f(when)f(the)h(facilit)m(y)j(is)d(in)m(v)m(ok)m(ed,)k(then)c (y)m(ou)g(m)m(ust)g(mak)m(e)i(a)e(go)s(o)s(d)h(faith)510 1258 y(e\013ort)30 b(to)g(ensure)f(that,)h(in)f(the)g(ev)m(en)m(t)i(an) e(application)i(do)s(es)e(not)g(supply)f(suc)m(h)h(function)g(or)510 1367 y(table,)f(the)d(facilit)m(y)j(still)e(op)s(erates,)h(and)e(p)s (erforms)f(whatev)m(er)i(part)f(of)h(its)f(purp)s(ose)f(remains)510 1477 y(meaningful.)510 1614 y(\(F)-8 b(or)32 b(example,)g(a)f(function) g(in)g(a)g(library)f(to)i(compute)f(square)g(ro)s(ots)g(has)g(a)g(purp) s(ose)e(that)510 1724 y(is)35 b(en)m(tirely)i(w)m(ell-de\014ned)e (indep)s(enden)m(t)f(of)h(the)g(application.)57 b(Therefore,)36 b(Subsection)f(2d)510 1833 y(requires)25 b(that)h(an)m(y)f (application-supplied)h(function)f(or)g(table)h(used)f(b)m(y)g(this)g (function)g(m)m(ust)510 1943 y(b)s(e)34 b(optional:)49 b(if)35 b(the)f(application)i(do)s(es)e(not)g(supply)f(it,)j(the)e (square)g(ro)s(ot)h(function)f(m)m(ust)510 2052 y(still)d(compute)g (square)f(ro)s(ots.\))330 2217 y(These)k(requiremen)m(ts)g(apply)f(to)i (the)f(mo)s(di\014ed)f(w)m(ork)h(as)g(a)g(whole.)52 b(If)33 b(iden)m(ti\014able)i(sections)g(of)330 2326 y(that)27 b(w)m(ork)f(are)h(not)f(deriv)m(ed)g(from)g(the)g(Library)-8 b(,)27 b(and)f(can)g(b)s(e)g(reasonably)g(considered)g(indep)s(en-)330 2436 y(den)m(t)32 b(and)e(separate)j(w)m(orks)e(in)g(themselv)m(es,)i (then)e(this)h(License,)g(and)f(its)h(terms,)f(do)h(not)f(apply)330 2545 y(to)26 b(those)g(sections)g(when)e(y)m(ou)i(distribute)e(them)i (as)f(separate)h(w)m(orks.)39 b(But)26 b(when)e(y)m(ou)h(distribute)330 2655 y(the)32 b(same)g(sections)h(as)f(part)g(of)g(a)g(whole)g(whic)m (h)g(is)f(a)i(w)m(ork)f(based)f(on)h(the)g(Library)-8 b(,)32 b(the)g(distri-)330 2765 y(bution)e(of)g(the)h(whole)f(m)m(ust)h (b)s(e)e(on)i(the)f(terms)g(of)h(this)f(License,)h(whose)f(p)s (ermissions)g(for)g(other)330 2874 y(licensees)f(extend)f(to)g(the)g (en)m(tire)h(whole,)g(and)e(th)m(us)g(to)i(eac)m(h)g(and)e(ev)m(ery)i (part)e(regardless)h(of)g(who)330 2984 y(wrote)j(it.)330 3121 y(Th)m(us,)48 b(it)e(is)f(not)h(the)f(in)m(ten)m(t)h(of)g(this)f (section)h(to)g(claim)h(righ)m(ts)e(or)g(con)m(test)i(y)m(our)f(righ)m (ts)f(to)330 3230 y(w)m(ork)34 b(written)f(en)m(tirely)i(b)m(y)f(y)m (ou;)h(rather,)g(the)f(in)m(ten)m(t)h(is)e(to)i(exercise)f(the)g(righ)m (t)g(to)h(con)m(trol)g(the)330 3340 y(distribution)30 b(of)g(deriv)-5 b(ativ)m(e)32 b(or)f(collectiv)m(e)i(w)m(orks)e(based)f (on)g(the)h(Library)-8 b(.)330 3477 y(In)44 b(addition,)49 b(mere)c(aggregation)j(of)d(another)g(w)m(ork)g(not)g(based)f(on)h(the) g(Library)f(with)h(the)330 3587 y(Library)27 b(\(or)h(with)f(a)h(w)m (ork)g(based)f(on)h(the)g(Library\))f(on)g(a)h(v)m(olume)h(of)f(a)g (storage)h(or)f(distribution)330 3696 y(medium)h(do)s(es)i(not)f(bring) g(the)g(other)h(w)m(ork)f(under)f(the)i(scop)s(e)f(of)h(this)f (License.)199 3833 y(3.)61 b(Y)-8 b(ou)32 b(ma)m(y)g(opt)f(to)h(apply)f (the)g(terms)h(of)f(the)g(ordinary)g(GNU)h(General)g(Public)f(License)h (instead)330 3943 y(of)27 b(this)g(License)g(to)h(a)f(giv)m(en)h(cop)m (y)f(of)g(the)g(Library)-8 b(.)40 b(T)-8 b(o)27 b(do)g(this,)g(y)m(ou)g (m)m(ust)g(alter)h(all)g(the)f(notices)330 4052 y(that)44 b(refer)g(to)g(this)g(License,)k(so)c(that)g(they)g(refer)g(to)g(the)g (ordinary)f(GNU)i(General)f(Public)330 4162 y(License,)32 b(v)m(ersion)f(2,)g(instead)g(of)g(to)h(this)e(License.)43 b(\(If)30 b(a)h(new)m(er)g(v)m(ersion)g(than)g(v)m(ersion)g(2)g(of)g (the)330 4271 y(ordinary)c(GNU)i(General)g(Public)e(License)i(has)e (app)s(eared,)h(then)g(y)m(ou)g(can)g(sp)s(ecify)g(that)g(v)m(ersion) 330 4381 y(instead)j(if)f(y)m(ou)h(wish.\))40 b(Do)31 b(not)g(mak)m(e)g(an)m(y)g(other)g(c)m(hange)g(in)f(these)h(notices.) 330 4518 y(Once)25 b(this)g(c)m(hange)h(is)e(made)h(in)g(a)g(giv)m(en)h (cop)m(y)-8 b(,)27 b(it)f(is)f(irrev)m(ersible)g(for)g(that)g(cop)m(y) -8 b(,)27 b(so)f(the)f(ordinary)330 4628 y(GNU)e(General)g(Public)e (License)i(applies)f(to)h(all)g(subsequen)m(t)e(copies)i(and)e(deriv)-5 b(ativ)m(e)24 b(w)m(orks)e(made)330 4737 y(from)30 b(that)h(cop)m(y)-8 b(.)330 4874 y(This)39 b(option)g(is)h(useful)f(when)f(y)m(ou)i(wish)e (to)i(cop)m(y)h(part)e(of)g(the)h(co)s(de)f(of)h(the)g(Library)e(in)m (to)j(a)330 4984 y(program)30 b(that)h(is)g(not)f(a)h(library)-8 b(.)199 5121 y(4.)61 b(Y)-8 b(ou)25 b(ma)m(y)g(cop)m(y)g(and)f (distribute)g(the)g(Library)g(\(or)g(a)h(p)s(ortion)f(or)g(deriv)-5 b(ativ)m(e)26 b(of)f(it,)h(under)d(Section)330 5230 y(2\))h(in)f(ob)5 b(ject)25 b(co)s(de)f(or)f(executable)i(form)e(under)f(the)i(terms)f (of)h(Sections)g(1)g(and)f(2)h(ab)s(o)m(v)m(e)g(pro)m(vided)330 5340 y(that)j(y)m(ou)f(accompan)m(y)h(it)g(with)e(the)h(complete)i (corresp)s(onding)d(mac)m(hine-readable)i(source)f(co)s(de,)p eop end %%Page: 79 84 TeXDict begin 79 83 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(79)330 299 y(whic)m(h)38 b(m)m(ust)g(b)s(e)f(distributed)g(under)f(the)j(terms)e(of)i(Sections)f (1)h(and)e(2)h(ab)s(o)m(v)m(e)i(on)d(a)i(medium)330 408 y(customarily)31 b(used)f(for)g(soft)m(w)m(are)i(in)m(terc)m(hange.)330 555 y(If)23 b(distribution)g(of)h(ob)5 b(ject)24 b(co)s(de)g(is)g(made) g(b)m(y)f(o\013ering)i(access)f(to)h(cop)m(y)f(from)f(a)h(designated)h (place,)330 664 y(then)g(o\013ering)g(equiv)-5 b(alen)m(t)27 b(access)f(to)g(cop)m(y)g(the)f(source)h(co)s(de)f(from)f(the)i(same)f (place)h(satis\014es)g(the)330 774 y(requiremen)m(t)i(to)g(distribute)f (the)h(source)g(co)s(de,)g(ev)m(en)h(though)e(third)g(parties)h(are)g (not)g(comp)s(elled)330 883 y(to)j(cop)m(y)g(the)g(source)f(along)i (with)e(the)g(ob)5 b(ject)32 b(co)s(de.)199 1029 y(5.)61 b(A)35 b(program)f(that)i(con)m(tains)g(no)e(deriv)-5 b(ativ)m(e)37 b(of)d(an)m(y)h(p)s(ortion)g(of)g(the)g(Library)-8 b(,)35 b(but)f(is)h(designed)330 1139 y(to)h(w)m(ork)f(with)g(the)h (Library)e(b)m(y)h(b)s(eing)g(compiled)g(or)h(link)m(ed)f(with)g(it,)i (is)f(called)g(a)g(\\w)m(ork)f(that)330 1249 y(uses)g(the)g(Library".) 54 b(Suc)m(h)34 b(a)h(w)m(ork,)i(in)e(isolation,)j(is)d(not)g(a)g (deriv)-5 b(ativ)m(e)37 b(w)m(ork)e(of)g(the)g(Library)-8 b(,)330 1358 y(and)30 b(therefore)h(falls)f(outside)h(the)g(scop)s(e)f (of)h(this)f(License.)330 1504 y(Ho)m(w)m(ev)m(er,)e(linking)d(a)g(\\w) m(ork)g(that)g(uses)g(the)f(Library")h(with)f(the)h(Library)f(creates)i (an)e(executable)330 1614 y(that)30 b(is)f(a)h(deriv)-5 b(ativ)m(e)30 b(of)g(the)f(Library)g(\(b)s(ecause)g(it)h(con)m(tains)g (p)s(ortions)f(of)g(the)h(Library\),)f(rather)330 1724 y(than)22 b(a)g(\\w)m(ork)h(that)g(uses)e(the)i(library".)38 b(The)21 b(executable)j(is)e(therefore)g(co)m(v)m(ered)i(b)m(y)e(this)g (License.)330 1833 y(Section)31 b(6)g(states)h(terms)e(for)g (distribution)g(of)g(suc)m(h)g(executables.)330 1979 y(When)j(a)h(\\w)m(ork)g(that)h(uses)e(the)g(Library")h(uses)f (material)i(from)e(a)h(header)f(\014le)h(that)g(is)f(part)h(of)330 2089 y(the)28 b(Library)-8 b(,)28 b(the)g(ob)5 b(ject)29 b(co)s(de)f(for)f(the)h(w)m(ork)g(ma)m(y)g(b)s(e)f(a)h(deriv)-5 b(ativ)m(e)30 b(w)m(ork)e(of)f(the)h(Library)f(ev)m(en)330 2198 y(though)h(the)h(source)g(co)s(de)g(is)g(not.)40 b(Whether)29 b(this)g(is)f(true)h(is)g(esp)s(ecially)h(signi\014can)m (t)f(if)g(the)g(w)m(ork)330 2308 y(can)k(b)s(e)f(link)m(ed)h(without)g (the)f(Library)-8 b(,)33 b(or)g(if)g(the)g(w)m(ork)f(is)h(itself)g(a)g (library)-8 b(.)48 b(The)32 b(threshold)g(for)330 2418 y(this)e(to)h(b)s(e)f(true)g(is)h(not)f(precisely)h(de\014ned)e(b)m(y)i (la)m(w.)330 2564 y(If)k(suc)m(h)g(an)h(ob)5 b(ject)37 b(\014le)e(uses)g(only)h(n)m(umerical)g(parameters,)i(data)e(structure) f(la)m(y)m(outs)j(and)d(ac-)330 2673 y(cessors,)e(and)e(small)h(macros) g(and)f(small)h(inline)f(functions)h(\(ten)g(lines)g(or)f(less)h(in)f (length\),)i(then)330 2783 y(the)d(use)g(of)h(the)f(ob)5 b(ject)32 b(\014le)e(is)g(unrestricted,)h(regardless)f(of)h(whether)e (it)i(is)f(legally)j(a)d(deriv)-5 b(ativ)m(e)330 2892 y(w)m(ork.)54 b(\(Executables)36 b(con)m(taining)h(this)e(ob)5 b(ject)35 b(co)s(de)g(plus)f(p)s(ortions)h(of)g(the)g(Library)f(will)h (still)330 3002 y(fall)c(under)e(Section)i(6.\))330 3148 y(Otherwise,)26 b(if)f(the)g(w)m(ork)f(is)h(a)g(deriv)-5 b(ativ)m(e)27 b(of)e(the)g(Library)-8 b(,)25 b(y)m(ou)g(ma)m(y)h (distribute)e(the)h(ob)5 b(ject)26 b(co)s(de)330 3258 y(for)31 b(the)g(w)m(ork)g(under)f(the)h(terms)g(of)g(Section)h(6.)43 b(An)m(y)31 b(executables)i(con)m(taining)f(that)g(w)m(ork)f(also)330 3367 y(fall)g(under)e(Section)i(6,)g(whether)f(or)g(not)h(they)f(are)h (link)m(ed)g(directly)g(with)f(the)g(Library)g(itself.)199 3513 y(6.)61 b(As)40 b(an)f(exception)i(to)f(the)g(Sections)g(ab)s(o)m (v)m(e,)j(y)m(ou)d(ma)m(y)g(also)h(com)m(bine)f(or)g(link)f(a)h(\\w)m (ork)g(that)330 3623 y(uses)c(the)g(Library")g(with)f(the)i(Library)e (to)i(pro)s(duce)d(a)j(w)m(ork)f(con)m(taining)i(p)s(ortions)d(of)h (the)h(Li-)330 3733 y(brary)-8 b(,)37 b(and)f(distribute)g(that)g(w)m (ork)h(under)d(terms)i(of)g(y)m(our)h(c)m(hoice,)i(pro)m(vided)d(that)h (the)f(terms)330 3842 y(p)s(ermit)26 b(mo)s(di\014cation)i(of)f(the)g (w)m(ork)g(for)g(the)g(customer's)h(o)m(wn)f(use)f(and)h(rev)m(erse)g (engineering)h(for)330 3952 y(debugging)i(suc)m(h)g(mo)s (di\014cations.)330 4098 y(Y)-8 b(ou)35 b(m)m(ust)f(giv)m(e)i(prominen) m(t)e(notice)i(with)e(eac)m(h)h(cop)m(y)h(of)e(the)h(w)m(ork)f(that)h (the)g(Library)e(is)i(used)330 4208 y(in)g(it)i(and)e(that)h(the)g (Library)f(and)g(its)h(use)f(are)h(co)m(v)m(ered)h(b)m(y)f(this)g (License.)57 b(Y)-8 b(ou)36 b(m)m(ust)f(supply)330 4317 y(a)j(cop)m(y)h(of)f(this)g(License.)64 b(If)37 b(the)h(w)m(ork)g (during)f(execution)i(displa)m(ys)f(cop)m(yrigh)m(t)h(notices,)j(y)m (ou)330 4427 y(m)m(ust)34 b(include)f(the)h(cop)m(yrigh)m(t)h(notice)g (for)e(the)h(Library)f(among)h(them,)h(as)f(w)m(ell)h(as)e(a)h (reference)330 4536 y(directing)d(the)g(user)e(to)i(the)g(cop)m(y)g(of) g(this)f(License.)41 b(Also,)31 b(y)m(ou)g(m)m(ust)f(do)h(one)f(of)h (these)g(things:)379 4682 y(a.)61 b(Accompan)m(y)40 b(the)f(w)m(ork)g (with)g(the)g(complete)h(corresp)s(onding)e(mac)m(hine-readable)j (source)510 4792 y(co)s(de)23 b(for)f(the)g(Library)f(including)h (whatev)m(er)h(c)m(hanges)h(w)m(ere)e(used)g(in)g(the)g(w)m(ork)h (\(whic)m(h)f(m)m(ust)510 4902 y(b)s(e)36 b(distributed)g(under)f (Sections)i(1)h(and)e(2)h(ab)s(o)m(v)m(e\);)42 b(and,)37 b(if)g(the)g(w)m(ork)g(is)g(an)f(executable)510 5011 y(link)m(ed)c(with)f(the)h(Library)-8 b(,)31 b(with)g(the)h(complete)h (mac)m(hine-readable)g(\\w)m(ork)f(that)g(uses)f(the)510 5121 y(Library",)46 b(as)e(ob)5 b(ject)44 b(co)s(de)f(and/or)g(source)g (co)s(de,)k(so)c(that)h(the)g(user)e(can)h(mo)s(dify)g(the)510 5230 y(Library)28 b(and)g(then)h(relink)f(to)i(pro)s(duce)e(a)h(mo)s (di\014ed)e(executable)k(con)m(taining)f(the)f(mo)s(di\014ed)510 5340 y(Library)-8 b(.)58 b(\(It)36 b(is)g(understo)s(o)s(d)f(that)h (the)h(user)e(who)h(c)m(hanges)h(the)f(con)m(ten)m(ts)i(of)e (de\014nitions)p eop end %%Page: 80 85 TeXDict begin 80 84 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(80)510 299 y(\014les)29 b(in)g(the)g(Library)f(will)h(not)h(necessarily)f(b)s(e)g(able)g(to)h (recompile)g(the)f(application)i(to)e(use)510 408 y(the)i(mo)s (di\014ed)e(de\014nitions.\))374 536 y(b.)60 b(Use)33 b(a)g(suitable)g(shared)f(library)h(mec)m(hanism)g(for)f(linking)h (with)f(the)h(Library)-8 b(.)48 b(A)32 b(suitable)510 646 y(mec)m(hanism)h(is)h(one)f(that)h(\(1\))g(uses)f(at)h(run)d(time)j (a)g(cop)m(y)g(of)f(the)g(library)g(already)h(presen)m(t)510 756 y(on)44 b(the)g(user's)g(computer)g(system,)k(rather)c(than)g(cop)m (ying)h(library)f(functions)g(in)m(to)h(the)510 865 y(executable,)32 b(and)d(\(2\))i(will)f(op)s(erate)h(prop)s(erly)d(with)i(a)g(mo)s (di\014ed)e(v)m(ersion)j(of)f(the)g(library)-8 b(,)30 b(if)510 975 y(the)j(user)f(installs)i(one,)g(as)f(long)h(as)f(the)g (mo)s(di\014ed)f(v)m(ersion)h(is)g(in)m(terface-compatible)j(with)510 1084 y(the)31 b(v)m(ersion)f(that)h(the)g(w)m(ork)f(w)m(as)h(made)g (with.)384 1212 y(c.)61 b(Accompan)m(y)27 b(the)g(w)m(ork)f(with)g(a)h (written)f(o\013er,)i(v)-5 b(alid)26 b(for)g(at)h(least)h(three)e(y)m (ears,)i(to)f(giv)m(e)h(the)510 1322 y(same)37 b(user)f(the)h (materials)i(sp)s(eci\014ed)d(in)g(Subsection)h(6a,)i(ab)s(o)m(v)m(e,)h (for)d(a)g(c)m(harge)h(no)f(more)510 1431 y(than)30 b(the)h(cost)g(of)g (p)s(erforming)e(this)h(distribution.)374 1559 y(d.)60 b(If)36 b(distribution)f(of)i(the)f(w)m(ork)h(is)f(made)g(b)m(y)g (o\013ering)h(access)h(to)f(cop)m(y)g(from)f(a)g(designated)510 1669 y(place,)d(o\013er)e(equiv)-5 b(alen)m(t)33 b(access)f(to)g(cop)m (y)g(the)f(ab)s(o)m(v)m(e)i(sp)s(eci\014ed)d(materials)j(from)d(the)i (same)510 1778 y(place.)384 1906 y(e.)61 b(V)-8 b(erify)25 b(that)h(the)f(user)f(has)g(already)i(receiv)m(ed)g(a)f(cop)m(y)g(of)g (these)g(materials)i(or)d(that)i(y)m(ou)f(ha)m(v)m(e)510 2016 y(already)31 b(sen)m(t)g(this)f(user)g(a)h(cop)m(y)-8 b(.)330 2162 y(F)g(or)29 b(an)g(executable,)i(the)d(required)g(form)g (of)h(the)g(\\w)m(ork)g(that)g(uses)f(the)h(Library")f(m)m(ust)g (include)330 2271 y(an)m(y)d(data)h(and)f(utilit)m(y)h(programs)f (needed)g(for)g(repro)s(ducing)e(the)j(executable)g(from)f(it.)40 b(Ho)m(w)m(ev)m(er,)330 2381 y(as)32 b(a)h(sp)s(ecial)f(exception,)i (the)e(materials)h(to)g(b)s(e)e(distributed)g(need)h(not)g(include)g (an)m(ything)g(that)330 2491 y(is)j(normally)h(distributed)e(\(in)h (either)h(source)f(or)g(binary)f(form\))h(with)g(the)h(ma)5 b(jor)35 b(comp)s(onen)m(ts)330 2600 y(\(compiler,)40 b(k)m(ernel,)g(and)c(so)i(on\))f(of)g(the)h(op)s(erating)f(system)g(on) g(whic)m(h)g(the)h(executable)g(runs,)330 2710 y(unless)30 b(that)h(comp)s(onen)m(t)f(itself)i(accompanies)f(the)g(executable.)330 2838 y(It)j(ma)m(y)g(happ)s(en)d(that)j(this)g(requiremen)m(t)f(con)m (tradicts)i(the)f(license)h(restrictions)f(of)f(other)h(pro-)330 2947 y(prietary)e(libraries)h(that)f(do)g(not)h(normally)f(accompan)m (y)i(the)e(op)s(erating)h(system.)46 b(Suc)m(h)32 b(a)g(con-)330 3057 y(tradiction)e(means)f(y)m(ou)g(cannot)g(use)g(b)s(oth)f(them)h (and)f(the)h(Library)f(together)i(in)f(an)f(executable)330 3166 y(that)j(y)m(ou)g(distribute.)199 3294 y(7.)61 b(Y)-8 b(ou)36 b(ma)m(y)g(place)h(library)e(facilities)j(that)e(are)h(a)f(w)m (ork)f(based)h(on)f(the)h(Library)f(side-b)m(y-side)h(in)330 3404 y(a)f(single)g(library)g(together)h(with)e(other)h(library)f (facilities)j(not)e(co)m(v)m(ered)h(b)m(y)e(this)h(License,)i(and)330 3513 y(distribute)27 b(suc)m(h)h(a)g(com)m(bined)g(library)-8 b(,)28 b(pro)m(vided)g(that)g(the)g(separate)h(distribution)e(of)h(the) g(w)m(ork)330 3623 y(based)41 b(on)f(the)h(Library)g(and)f(of)h(the)g (other)g(library)g(facilities)i(is)e(otherwise)g(p)s(ermitted,)j(and) 330 3733 y(pro)m(vided)30 b(that)h(y)m(ou)g(do)f(these)h(t)m(w)m(o)g (things:)379 3861 y(a.)61 b(Accompan)m(y)45 b(the)f(com)m(bined)h (library)e(with)h(a)g(cop)m(y)h(of)f(the)h(same)f(w)m(ork)g(based)g(on) g(the)510 3970 y(Library)-8 b(,)40 b(uncom)m(bined)d(with)g(an)m(y)h (other)g(library)g(facilities.)65 b(This)37 b(m)m(ust)h(b)s(e)f (distributed)510 4080 y(under)29 b(the)h(terms)h(of)f(the)h(Sections)g (ab)s(o)m(v)m(e.)374 4208 y(b.)60 b(Giv)m(e)24 b(prominen)m(t)d(notice) j(with)e(the)g(com)m(bined)h(library)e(of)i(the)f(fact)h(that)g(part)f (of)g(it)h(is)f(a)h(w)m(ork)510 4317 y(based)k(on)g(the)g(Library)-8 b(,)28 b(and)e(explaining)i(where)e(to)i(\014nd)e(the)h(accompan)m (ying)i(uncom)m(bined)510 4427 y(form)h(of)g(the)h(same)g(w)m(ork.)199 4555 y(8.)61 b(Y)-8 b(ou)46 b(ma)m(y)g(not)f(cop)m(y)-8 b(,)51 b(mo)s(dify)-8 b(,)49 b(sublicense,)g(link)c(with,)k(or)c (distribute)g(the)h(Library)e(except)330 4664 y(as)g(expressly)f(pro)m (vided)g(under)f(this)h(License.)80 b(An)m(y)44 b(attempt)g(otherwise)g (to)g(cop)m(y)-8 b(,)48 b(mo)s(dify)-8 b(,)330 4774 y(sublicense,)25 b(link)f(with,)i(or)e(distribute)f(the)i(Library)e(is)h(v)m(oid,)i(and) e(will)g(automatically)j(terminate)330 4883 y(y)m(our)35 b(righ)m(ts)h(under)d(this)j(License.)55 b(Ho)m(w)m(ev)m(er,)39 b(parties)d(who)f(ha)m(v)m(e)h(receiv)m(ed)h(copies,)g(or)e(righ)m(ts,) 330 4993 y(from)k(y)m(ou)i(under)d(this)i(License)g(will)h(not)f(ha)m (v)m(e)h(their)f(licenses)h(terminated)f(so)h(long)f(as)g(suc)m(h)330 5103 y(parties)31 b(remain)f(in)g(full)g(compliance.)199 5230 y(9.)61 b(Y)-8 b(ou)38 b(are)g(not)g(required)e(to)i(accept)h (this)f(License,)i(since)e(y)m(ou)f(ha)m(v)m(e)i(not)f(signed)f(it.)63 b(Ho)m(w)m(ev)m(er,)330 5340 y(nothing)27 b(else)i(gran)m(ts)f(y)m(ou)f (p)s(ermission)g(to)h(mo)s(dify)f(or)g(distribute)g(the)h(Library)e(or) i(its)f(deriv)-5 b(ativ)m(e)p eop end %%Page: 81 86 TeXDict begin 81 85 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(81)330 299 y(w)m(orks.)38 b(These)23 b(actions)h(are)g(prohibited)e(b)m(y)h(la)m(w)h(if)f(y)m(ou) g(do)g(not)h(accept)g(this)f(License.)39 b(Therefore,)330 408 y(b)m(y)k(mo)s(difying)g(or)g(distributing)f(the)i(Library)e(\(or)h (an)m(y)h(w)m(ork)f(based)g(on)g(the)g(Library\),)k(y)m(ou)330 518 y(indicate)33 b(y)m(our)g(acceptance)h(of)f(this)f(License)h(to)h (do)e(so,)h(and)f(all)h(its)g(terms)f(and)g(conditions)h(for)330 628 y(cop)m(ying,)f(distributing)d(or)i(mo)s(difying)e(the)i(Library)f (or)g(w)m(orks)g(based)g(on)h(it.)154 778 y(10.)61 b(Eac)m(h)22 b(time)g(y)m(ou)g(redistribute)f(the)h(Library)f(\(or)g(an)m(y)h(w)m (ork)g(based)f(on)g(the)h(Library\),)h(the)f(recipien)m(t)330 888 y(automatically)32 b(receiv)m(es)e(a)g(license)f(from)g(the)g (original)h(licensor)f(to)h(cop)m(y)-8 b(,)31 b(distribute,)d(link)h (with)330 998 y(or)f(mo)s(dify)f(the)h(Library)f(sub)5 b(ject)27 b(to)i(these)f(terms)g(and)f(conditions.)40 b(Y)-8 b(ou)29 b(ma)m(y)f(not)g(imp)s(ose)g(an)m(y)330 1107 y(further)e(restrictions)j(on)e(the)h(recipien)m(ts')h(exercise)f (of)g(the)g(righ)m(ts)g(gran)m(ted)g(herein.)40 b(Y)-8 b(ou)28 b(are)g(not)330 1217 y(resp)s(onsible)h(for)i(enforcing)f (compliance)i(b)m(y)e(third)g(parties)g(with)h(this)f(License.)154 1367 y(11.)61 b(If,)27 b(as)g(a)g(consequence)h(of)f(a)g(court)g (judgmen)m(t)f(or)h(allegation)i(of)e(paten)m(t)h(infringemen)m(t)e(or) h(for)g(an)m(y)330 1477 y(other)h(reason)f(\(not)h(limited)g(to)g (paten)m(t)h(issues\),)f(conditions)g(are)f(imp)s(osed)g(on)g(y)m(ou)h (\(whether)f(b)m(y)330 1587 y(court)c(order,)h(agreemen)m(t)g(or)f (otherwise\))g(that)g(con)m(tradict)i(the)d(conditions)h(of)g(this)g (License,)i(they)330 1696 y(do)34 b(not)g(excuse)h(y)m(ou)f(from)g(the) g(conditions)h(of)f(this)g(License.)53 b(If)33 b(y)m(ou)i(cannot)g (distribute)e(so)i(as)330 1806 y(to)f(satisfy)g(sim)m(ultaneously)h(y)m (our)e(obligations)j(under)c(this)h(License)h(and)f(an)m(y)h(other)g(p) s(ertinen)m(t)330 1915 y(obligations,)48 b(then)43 b(as)g(a)g (consequence)h(y)m(ou)f(ma)m(y)h(not)f(distribute)g(the)g(Library)f(at) i(all.)79 b(F)-8 b(or)330 2025 y(example,)30 b(if)e(a)g(paten)m(t)h (license)h(w)m(ould)e(not)g(p)s(ermit)f(ro)m(y)m(alt)m(y-free)32 b(redistribution)27 b(of)h(the)h(Library)330 2134 y(b)m(y)35 b(all)h(those)f(who)f(receiv)m(e)j(copies)f(directly)f(or)g(indirectly) h(through)e(y)m(ou,)i(then)f(the)g(only)g(w)m(a)m(y)330 2244 y(y)m(ou)27 b(could)f(satisfy)h(b)s(oth)e(it)i(and)f(this)g (License)h(w)m(ould)f(b)s(e)g(to)h(refrain)e(en)m(tirely)j(from)e (distribution)330 2354 y(of)31 b(the)f(Library)-8 b(.)330 2504 y(If)43 b(an)m(y)g(p)s(ortion)g(of)g(this)h(section)g(is)f(held)g (in)m(v)-5 b(alid)44 b(or)f(unenforceable)g(under)f(an)m(y)i (particular)330 2614 y(circumstance,)i(the)c(balance)g(of)g(the)g (section)h(is)f(in)m(tended)f(to)i(apply)-8 b(,)45 b(and)c(the)h (section)h(as)f(a)330 2724 y(whole)31 b(is)f(in)m(tended)g(to)h(apply)f (in)g(other)h(circumstances.)330 2874 y(It)41 b(is)f(not)h(the)f(purp)s (ose)f(of)i(this)f(section)i(to)f(induce)f(y)m(ou)h(to)g(infringe)f(an) m(y)h(paten)m(ts)g(or)g(other)330 2984 y(prop)s(ert)m(y)e(righ)m(t)i (claims)f(or)g(to)h(con)m(test)h(v)-5 b(alidit)m(y)41 b(of)f(an)m(y)g(suc)m(h)g(claims;)45 b(this)40 b(section)h(has)f(the) 330 3093 y(sole)33 b(purp)s(ose)e(of)h(protecting)h(the)g(in)m(tegrit)m (y)h(of)e(the)g(free)h(soft)m(w)m(are)g(distribution)f(system)g(whic)m (h)330 3203 y(is)j(implemen)m(ted)h(b)m(y)f(public)f(license)i (practices.)56 b(Man)m(y)36 b(p)s(eople)f(ha)m(v)m(e)h(made)f(generous) h(con)m(tri-)330 3313 y(butions)f(to)h(the)f(wide)h(range)f(of)h(soft)m (w)m(are)h(distributed)d(through)h(that)h(system)f(in)g(reliance)i(on) 330 3422 y(consisten)m(t)g(application)g(of)e(that)h(system;)i(it)e(is) g(up)e(to)i(the)g(author/donor)f(to)h(decide)g(if)g(he)f(or)330 3532 y(she)i(is)h(willing)g(to)g(distribute)f(soft)m(w)m(are)i(through) e(an)m(y)g(other)h(system)g(and)f(a)g(licensee)i(cannot)330 3641 y(imp)s(ose)30 b(that)h(c)m(hoice.)330 3792 y(This)26 b(section)j(is)e(in)m(tended)g(to)h(mak)m(e)g(thoroughly)f(clear)h (what)f(is)g(b)s(eliev)m(ed)h(to)g(b)s(e)f(a)g(consequence)330 3902 y(of)k(the)f(rest)h(of)f(this)g(License.)154 4052 y(12.)61 b(If)38 b(the)h(distribution)f(and/or)h(use)f(of)h(the)g (Library)f(is)h(restricted)g(in)f(certain)i(coun)m(tries)f(either)330 4162 y(b)m(y)c(paten)m(ts)h(or)g(b)m(y)f(cop)m(yrigh)m(ted)i(in)m (terfaces,)h(the)d(original)i(cop)m(yrigh)m(t)g(holder)e(who)g(places)h (the)330 4271 y(Library)k(under)g(this)h(License)g(ma)m(y)h(add)e(an)h (explicit)i(geographical)g(distribution)d(limitation)330 4381 y(excluding)29 b(those)g(coun)m(tries,)h(so)f(that)g(distribution) f(is)g(p)s(ermitted)h(only)f(in)g(or)h(among)g(coun)m(tries)330 4491 y(not)k(th)m(us)f(excluded.)48 b(In)32 b(suc)m(h)g(case,)j(this)d (License)i(incorp)s(orates)f(the)g(limitation)h(as)f(if)g(written)330 4600 y(in)d(the)h(b)s(o)s(dy)d(of)j(this)f(License.)154 4751 y(13.)61 b(The)32 b(F)-8 b(ree)33 b(Soft)m(w)m(are)g(F)-8 b(oundation)33 b(ma)m(y)f(publish)f(revised)h(and/or)g(new)f(v)m (ersions)i(of)f(the)g(Lesser)330 4861 y(General)i(Public)f(License)g (from)g(time)g(to)h(time.)49 b(Suc)m(h)33 b(new)f(v)m(ersions)h(will)h (b)s(e)e(similar)h(in)g(spirit)330 4970 y(to)e(the)g(presen)m(t)f(v)m (ersion,)h(but)f(ma)m(y)h(di\013er)f(in)g(detail)i(to)f(address)e(new)h (problems)g(or)g(concerns.)330 5121 y(Eac)m(h)c(v)m(ersion)g(is)g(giv)m (en)h(a)f(distinguishing)f(v)m(ersion)h(n)m(um)m(b)s(er.)38 b(If)25 b(the)h(Library)f(sp)s(eci\014es)g(a)h(v)m(ersion)330 5230 y(n)m(um)m(b)s(er)19 b(of)i(this)f(License)h(whic)m(h)f(applies)h (to)g(it)g(and)f(\\an)m(y)h(later)g(v)m(ersion",)j(y)m(ou)d(ha)m(v)m(e) g(the)g(option)g(of)330 5340 y(follo)m(wing)h(the)e(terms)h(and)f (conditions)g(either)h(of)g(that)g(v)m(ersion)g(or)f(of)h(an)m(y)f (later)i(v)m(ersion)f(published)p eop end %%Page: 82 87 TeXDict begin 82 86 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(82)330 299 y(b)m(y)41 b(the)h(F)-8 b(ree)42 b(Soft)m(w)m(are)h(F)-8 b(oundation.)74 b(If)41 b(the)h(Library)e(do)s(es)i(not)f(sp)s(ecify)g(a)h(license)g(v) m(ersion)330 408 y(n)m(um)m(b)s(er,)29 b(y)m(ou)h(ma)m(y)h(c)m(ho)s (ose)g(an)m(y)f(v)m(ersion)h(ev)m(er)g(published)d(b)m(y)i(the)g(F)-8 b(ree)31 b(Soft)m(w)m(are)g(F)-8 b(oundation.)154 543 y(14.)61 b(If)25 b(y)m(ou)h(wish)e(to)j(incorp)s(orate)f(parts)f(of)g (the)h(Library)f(in)m(to)h(other)g(free)f(programs)h(whose)f(distribu-) 330 653 y(tion)30 b(conditions)g(are)g(incompatible)h(with)e(these,)h (write)g(to)g(the)g(author)f(to)i(ask)e(for)h(p)s(ermission.)330 762 y(F)-8 b(or)33 b(soft)m(w)m(are)h(whic)m(h)e(is)h(cop)m(yrigh)m (ted)h(b)m(y)e(the)h(F)-8 b(ree)34 b(Soft)m(w)m(are)f(F)-8 b(oundation,)34 b(write)f(to)g(the)g(F)-8 b(ree)330 872 y(Soft)m(w)m(are)42 b(F)-8 b(oundation;)47 b(w)m(e)41 b(sometimes)h(mak)m(e)g(exceptions)f(for)g(this.)72 b(Our)39 b(decision)i(will)h(b)s(e)330 981 y(guided)30 b(b)m(y)h(the)g(t)m(w)m (o)h(goals)g(of)f(preserving)f(the)h(free)g(status)g(of)g(all)h(deriv) -5 b(ativ)m(es)32 b(of)f(our)f(free)h(soft-)330 1091 y(w)m(are)g(and)f(of)g(promoting)h(the)f(sharing)g(and)g(reuse)g(of)h (soft)m(w)m(are)h(generally)-8 b(.)330 1323 y Fw(NO)45 b(W)-15 b(ARRANTY)154 1483 y Fx(15.)61 b(BECA)m(USE)47 b(THE)f(LIBRAR)-8 b(Y)48 b(IS)e(LICENSED)g(FREE)g(OF)h(CHAR)m(GE,)h (THERE)e(IS)g(NO)330 1592 y(W)-10 b(ARRANTY)33 b(F)m(OR)h(THE)e(LIBRAR) -8 b(Y,)34 b(TO)e(THE)g(EXTENT)h(PERMITTED)f(BY)h(APPLI-)330 1702 y(CABLE)27 b(LA)-10 b(W.)27 b(EX)m(CEPT)g(WHEN)h(OTHER)-10 b(WISE)25 b(ST)-8 b(A)g(TED)28 b(IN)e(WRITING)i(THE)e(COPY-)330 1812 y(RIGHT)f(HOLDERS)f(AND/OR)i(OTHER)e(P)-8 b(AR)g(TIES)25 b(PR)m(O)m(VIDE)g(THE)g(LIBRAR)-8 b(Y)25 b(\\AS)g(IS")330 1921 y(WITHOUT)40 b(W)-10 b(ARRANTY)42 b(OF)f(ANY)g(KIND,)g(EITHER)f (EXPRESSED)g(OR)h(IMPLIED,)330 2031 y(INCLUDING,)33 b(BUT)g(NOT)g (LIMITED)f(TO,)g(THE)h(IMPLIED)g(W)-10 b(ARRANTIES)32 b(OF)h(MER-)330 2140 y(CHANT)-8 b(ABILITY)28 b(AND)g(FITNESS)e(F)m(OR)i (A)g(P)-8 b(AR)g(TICULAR)27 b(PURPOSE.)g(THE)g(ENTIRE)330 2250 y(RISK)f(AS)g(TO)g(THE)h(QUALITY)f(AND)h(PERF)m(ORMANCE)g(OF)g (THE)f(LIBRAR)-8 b(Y)28 b(IS)e(WITH)330 2359 y(YOU.)j(SHOULD)f(THE)h (LIBRAR)-8 b(Y)29 b(PR)m(O)m(VE)g(DEFECTIVE,)f(YOU)h(ASSUME)f(THE)g (COST)330 2469 y(OF)i(ALL)g(NECESSAR)-8 b(Y)30 b(SER)-10 b(VICING,)30 b(REP)-8 b(AIR)30 b(OR)g(CORRECTION.)154 2604 y(16.)61 b(IN)26 b(NO)g(EVENT)g(UNLESS)f(REQUIRED)h(BY)h (APPLICABLE)f(LA)-10 b(W)26 b(OR)g(A)m(GREED)h(TO)f(IN)330 2713 y(WRITING)37 b(WILL)f(ANY)i(COPYRIGHT)e(HOLDER,)h(OR)f(ANY)h (OTHER)f(P)-8 b(AR)g(TY)38 b(WHO)330 2823 y(MA)-8 b(Y)62 b(MODIFY)g(AND/OR)g(REDISTRIBUTE)e(THE)h(LIBRAR)-8 b(Y)62 b(AS)f(PERMITTED)330 2932 y(ABO)m(VE,)40 b(BE)f(LIABLE)f(TO)g(YOU)h(F)m (OR)g(D)m(AMA)m(GES,)h(INCLUDING)f(ANY)h(GENERAL,)330 3042 y(SPECIAL,)e(INCIDENT)-8 b(AL)40 b(OR)e(CONSEQUENTIAL)g(D)m(AMA)m (GES)j(ARISING)e(OUT)g(OF)330 3152 y(THE)51 b(USE)g(OR)g(INABILITY)h (TO)f(USE)g(THE)g(LIBRAR)-8 b(Y)52 b(\(INCLUDING)h(BUT)e(NOT)330 3261 y(LIMITED)29 b(TO)g(LOSS)f(OF)h(D)m(A)-8 b(T)g(A)31 b(OR)e(D)m(A)-8 b(T)g(A)31 b(BEING)f(RENDERED)g(INA)m(CCURA)-8 b(TE)29 b(OR)330 3371 y(LOSSES)38 b(SUST)-8 b(AINED)40 b(BY)h(YOU)f(OR)g(THIRD)g(P)-8 b(AR)g(TIES)40 b(OR)g(A)h(F)-10 b(AILURE)40 b(OF)g(THE)330 3480 y(LIBRAR)-8 b(Y)48 b(TO)f(OPERA)-8 b(TE)47 b(WITH)h(ANY)g(OTHER)f(SOFTW)-10 b(ARE\),)47 b(EVEN)h(IF)f(SUCH)330 3590 y(HOLDER)33 b(OR)h(OTHER)f(P)-8 b(AR)g(TY)34 b(HAS)f(BEEN)h(AD)m(VISED)g(OF)g(THE)f(POSSIBILITY)f(OF) 330 3699 y(SUCH)e(D)m(AMA)m(GES.)150 3932 y Fw(END)45 b(OF)g(TERMS)f(AND)h(CONDITIONS)p eop end %%Page: 83 88 TeXDict begin 83 87 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(83)150 299 y Fq(Ho)m(w)40 b(to)h(Apply)g(These)h(T)-10 b(erms)42 b(to)f(Y)-10 b(our)41 b(New)f(Libraries)150 446 y Fx(If)24 b(y)m(ou)i(dev)m(elop)g(a)f(new)f (library)-8 b(,)27 b(and)d(y)m(ou)h(w)m(an)m(t)h(it)f(to)h(b)s(e)e(of)i (the)f(greatest)h(p)s(ossible)f(use)g(to)g(the)g(public,)150 555 y(w)m(e)k(recommend)f(making)g(it)h(free)f(soft)m(w)m(are)i(that)f (ev)m(ery)m(one)h(can)e(redistribute)g(and)g(c)m(hange.)41 b(Y)-8 b(ou)29 b(can)150 665 y(do)i(so)g(b)m(y)g(p)s(ermitting)g (redistribution)g(under)e(these)j(terms)f(\(or,)g(alternativ)m(ely)-8 b(,)35 b(under)30 b(the)h(terms)g(of)150 775 y(the)g(ordinary)e (General)j(Public)e(License\).)275 903 y(T)-8 b(o)34 b(apply)g(these)g(terms,)h(attac)m(h)h(the)e(follo)m(wing)i(notices)f (to)g(the)f(library)-8 b(.)51 b(It)35 b(is)f(safest)g(to)h(attac)m(h) 150 1013 y(them)f(to)i(the)e(start)h(of)g(eac)m(h)h(source)e(\014le)h (to)g(most)g(e\013ectiv)m(ely)i(con)m(v)m(ey)f(the)f(exclusion)g(of)g (w)m(arran)m(t)m(y;)150 1122 y(and)26 b(eac)m(h)i(\014le)f(should)e(ha) m(v)m(e)j(at)f(least)h(the)f(\\cop)m(yrigh)m(t")i(line)e(and)f(a)h(p)s (oin)m(ter)g(to)g(where)f(the)h(full)g(notice)150 1232 y(is)j(found.)390 1338 y Fc(one)40 b(line)g(to)g(give)g(the)g (library's)h(name)f(and)g(an)g(idea)g(of)g(what)g(it)f(does.)390 1425 y Fd(Copyright)i(\(C\))f Fc(year)88 b(name)40 b(of)g(author)390 1600 y Fd(This)g(library)h(is)f(free)g(software;)h(you)f(can)g (redistribute)i(it)e(and/or)g(modify)h(it)390 1687 y(under)f(the)g (terms)h(of)e(the)h(GNU)g(Lesser)h(General)g(Public)f(License)h(as)f (published)h(by)390 1774 y(the)f(Free)g(Software)h(Foundation;)h (either)e(version)h(2.1)f(of)g(the)g(License,)h(or)e(\(at)390 1861 y(your)h(option\))h(any)f(later)g(version.)390 2036 y(This)g(library)h(is)f(distributed)h(in)f(the)g(hope)g(that)g(it)g (will)g(be)g(useful,)h(but)390 2123 y(WITHOUT)g(ANY)f(WARRANTY;)h (without)g(even)f(the)g(implied)h(warranty)g(of)390 2210 y(MERCHANTABILITY)i(or)c(FITNESS)i(FOR)f(A)g(PARTICULAR)h(PURPOSE.)80 b(See)40 b(the)g(GNU)390 2297 y(Lesser)h(General)f(Public)h(License)g (for)f(more)g(details.)390 2472 y(You)g(should)g(have)h(received)g(a)e (copy)h(of)g(the)g(GNU)g(Lesser)g(General)h(Public)390 2559 y(License)g(along)f(with)g(this)g(library;)i(if)d(not,)h(write)h (to)e(the)h(Free)g(Software)390 2646 y(Foundation,)i(Inc.,)e(51)g (Franklin)h(Street,)g(Fifth)f(Floor,)h(Boston,)f(MA)g(02110-1301,)390 2733 y(USA.)275 2862 y Fx(Also)31 b(add)e(information)i(on)f(ho)m(w)h (to)g(con)m(tact)i(y)m(ou)d(b)m(y)g(electronic)j(and)d(pap)s(er)f (mail.)275 2990 y(Y)-8 b(ou)28 b(should)f(also)i(get)g(y)m(our)f(emplo) m(y)m(er)h(\(if)f(y)m(ou)g(w)m(ork)g(as)h(a)f(programmer\))g(or)g(y)m (our)f(sc)m(ho)s(ol,)j(if)e(an)m(y)-8 b(,)150 3100 y(to)38 b(sign)g(a)g(\\cop)m(yrigh)m(t)i(disclaimer")f(for)e(the)h(library)-8 b(,)40 b(if)e(necessary)-8 b(.)63 b(Here)38 b(is)g(a)g(sample;)k(alter) d(the)150 3210 y(names:)390 3316 y Fd(Yoyodyne,)i(Inc.,)g(hereby)f (disclaims)i(all)d(copyright)j(interest)f(in)e(the)h(library)390 3403 y(`Frob')h(\(a)e(library)i(for)f(tweaking)h(knobs\))g(written)f (by)g(James)h(Random)f(Hacker.)390 3577 y Fc(signature)h(of)f(Ty)g (Coon)9 b Fd(,)40 b(1)f(April)h(1990)390 3665 y(Ty)g(Coon,)g(President) h(of)f(Vice)275 3793 y Fx(That's)30 b(all)h(there)g(is)f(to)h(it!)150 4014 y Fw(C.3)68 b(GNU)45 b(General)h(Public)e(License)1477 4154 y Fx(V)-8 b(ersion)31 b(3,)g(29)g(June)e(2007)390 4283 y(Cop)m(yrigh)m(t)842 4280 y(c)817 4283 y Fv(\015)h Fx(2007)i(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 b(oundation,)32 b(Inc.)e Fr(http://fsf.org/)390 4502 y Fx(Ev)m(ery)m(one)h(is)g(p)s (ermitted)f(to)h(cop)m(y)g(and)f(distribute)g(v)m(erbatim)h(copies)g (of)g(this)390 4612 y(license)g(do)s(cumen)m(t,)g(but)e(c)m(hanging)j (it)f(is)f(not)h(allo)m(w)m(ed.)150 4833 y Fw(Pream)l(ble)150 4992 y Fx(The)g(GNU)g(General)h(Public)f(License)h(is)f(a)h(free,)f (cop)m(yleft)i(license)f(for)f(soft)m(w)m(are)i(and)d(other)i(kinds)e (of)150 5102 y(w)m(orks.)275 5230 y(The)d(licenses)i(for)e(most)i(soft) m(w)m(are)g(and)e(other)i(practical)g(w)m(orks)f(are)g(designed)g(to)h (tak)m(e)g(a)m(w)m(a)m(y)h(y)m(our)150 5340 y(freedom)k(to)h(share)e (and)h(c)m(hange)h(the)f(w)m(orks.)51 b(By)35 b(con)m(trast,)h(the)e (GNU)h(General)g(Public)e(License)i(is)p eop end %%Page: 84 89 TeXDict begin 84 88 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(84)150 299 y(in)m(tended)25 b(to)h(guaran)m(tee)h(y)m(our)e(freedom)g(to)h(share)f(and)f(c)m(hange) j(all)f(v)m(ersions)f(of)h(a)f(program|to)h(mak)m(e)150 408 y(sure)35 b(it)h(remains)f(free)h(soft)m(w)m(are)h(for)f(all)g(its) g(users.)56 b(W)-8 b(e,)38 b(the)e(F)-8 b(ree)37 b(Soft)m(w)m(are)g(F) -8 b(oundation,)37 b(use)f(the)150 518 y(GNU)j(General)g(Public)f (License)g(for)g(most)h(of)f(our)f(soft)m(w)m(are;)44 b(it)39 b(applies)f(also)h(to)g(an)m(y)f(other)h(w)m(ork)150 628 y(released)31 b(this)f(w)m(a)m(y)i(b)m(y)e(its)h(authors.)40 b(Y)-8 b(ou)31 b(can)g(apply)f(it)h(to)g(y)m(our)f(programs,)g(to)s(o.) 275 774 y(When)37 b(w)m(e)g(sp)s(eak)g(of)g(free)h(soft)m(w)m(are,)i(w) m(e)e(are)g(referring)e(to)i(freedom,)h(not)f(price.)61 b(Our)36 b(General)150 884 y(Public)e(Licenses)g(are)h(designed)f(to)h (mak)m(e)g(sure)f(that)g(y)m(ou)h(ha)m(v)m(e)g(the)g(freedom)f(to)g (distribute)g(copies)150 993 y(of)e(free)f(soft)m(w)m(are)i(\(and)e(c)m (harge)i(for)e(them)h(if)f(y)m(ou)h(wish\),)f(that)h(y)m(ou)g(receiv)m (e)h(source)f(co)s(de)g(or)f(can)h(get)150 1103 y(it)e(if)f(y)m(ou)g(w) m(an)m(t)i(it,)f(that)g(y)m(ou)f(can)h(c)m(hange)g(the)f(soft)m(w)m (are)i(or)e(use)g(pieces)h(of)f(it)h(in)f(new)g(free)g(programs,)150 1213 y(and)h(that)h(y)m(ou)f(kno)m(w)h(y)m(ou)g(can)f(do)g(these)h (things.)275 1359 y(T)-8 b(o)24 b(protect)h(y)m(our)f(righ)m(ts,)i(w)m (e)f(need)f(to)h(prev)m(en)m(t)g(others)f(from)g(den)m(ying)g(y)m(ou)g (these)h(righ)m(ts)f(or)g(asking)150 1469 y(y)m(ou)37 b(to)g(surrender)d(the)j(righ)m(ts.)60 b(Therefore,)38 b(y)m(ou)f(ha)m(v)m(e)g(certain)h(resp)s(onsibilities)e(if)h(y)m(ou)f (distribute)150 1578 y(copies)30 b(of)f(the)g(soft)m(w)m(are,)i(or)e (if)f(y)m(ou)i(mo)s(dify)e(it:)40 b(resp)s(onsibilities)29 b(to)h(resp)s(ect)f(the)g(freedom)g(of)g(others.)275 1725 y(F)-8 b(or)30 b(example,)g(if)g(y)m(ou)f(distribute)g(copies)i (of)e(suc)m(h)g(a)h(program,)g(whether)e(gratis)j(or)e(for)g(a)h(fee,)h (y)m(ou)150 1834 y(m)m(ust)i(pass)f(on)h(to)h(the)f(recipien)m(ts)h (the)f(same)h(freedoms)e(that)i(y)m(ou)f(receiv)m(ed.)50 b(Y)-8 b(ou)34 b(m)m(ust)f(mak)m(e)h(sure)150 1944 y(that)29 b(they)-8 b(,)29 b(to)s(o,)h(receiv)m(e)g(or)f(can)f(get)i(the)e (source)h(co)s(de.)40 b(And)27 b(y)m(ou)i(m)m(ust)f(sho)m(w)g(them)h (these)f(terms)h(so)150 2053 y(they)i(kno)m(w)f(their)g(righ)m(ts.)275 2200 y(Dev)m(elop)s(ers)i(that)f(use)g(the)g(GNU)h(GPL)f(protect)g(y)m (our)g(righ)m(ts)h(with)e(t)m(w)m(o)j(steps:)41 b(\(1\))32 b(assert)g(cop)m(y-)150 2310 y(righ)m(t)38 b(on)e(the)h(soft)m(w)m (are,)k(and)36 b(\(2\))i(o\013er)g(y)m(ou)f(this)g(License)g(giving)h (y)m(ou)f(legal)i(p)s(ermission)d(to)i(cop)m(y)-8 b(,)150 2419 y(distribute)30 b(and/or)g(mo)s(dify)g(it.)275 2566 y(F)-8 b(or)35 b(the)g(dev)m(elop)s(ers')h(and)e(authors')h (protection,)j(the)d(GPL)g(clearly)h(explains)f(that)h(there)f(is)g(no) 150 2675 y(w)m(arran)m(t)m(y)g(for)f(this)g(free)g(soft)m(w)m(are.)54 b(F)-8 b(or)35 b(b)s(oth)e(users')h(and)g(authors')g(sak)m(e,)i(the)e (GPL)h(requires)e(that)150 2785 y(mo)s(di\014ed)42 b(v)m(ersions)i(b)s (e)f(mark)m(ed)g(as)h(c)m(hanged,)j(so)d(that)g(their)f(problems)g (will)g(not)h(b)s(e)f(attributed)150 2894 y(erroneously)30 b(to)h(authors)f(of)h(previous)f(v)m(ersions.)275 3041 y(Some)e(devices)h(are)f(designed)g(to)h(den)m(y)f(users)g(access)h(to) g(install)g(or)f(run)f(mo)s(di\014ed)g(v)m(ersions)h(of)h(the)150 3151 y(soft)m(w)m(are)34 b(inside)e(them,)g(although)h(the)f(man)m (ufacturer)g(can)h(do)f(so.)46 b(This)32 b(is)g(fundamen)m(tally)g (incom-)150 3260 y(patible)j(with)e(the)h(aim)h(of)f(protecting)h (users')e(freedom)h(to)h(c)m(hange)g(the)f(soft)m(w)m(are.)53 b(The)33 b(systematic)150 3370 y(pattern)j(of)g(suc)m(h)g(abuse)f(o)s (ccurs)h(in)f(the)i(area)f(of)g(pro)s(ducts)f(for)h(individuals)f(to)h (use,)i(whic)m(h)d(is)h(pre-)150 3479 y(cisely)d(where)e(it)h(is)f (most)h(unacceptable.)46 b(Therefore,)32 b(w)m(e)g(ha)m(v)m(e)h (designed)e(this)g(v)m(ersion)h(of)g(the)g(GPL)150 3589 y(to)38 b(prohibit)e(the)i(practice)g(for)f(those)h(pro)s(ducts.)60 b(If)37 b(suc)m(h)f(problems)h(arise)h(substan)m(tially)g(in)f(other) 150 3699 y(domains,)28 b(w)m(e)f(stand)g(ready)g(to)h(extend)f(this)g (pro)m(vision)g(to)h(those)f(domains)g(in)g(future)f(v)m(ersions)i(of)f (the)150 3808 y(GPL,)k(as)f(needed)g(to)h(protect)h(the)e(freedom)h(of) f(users.)275 3955 y(Finally)-8 b(,)34 b(ev)m(ery)f(program)f(is)g (threatened)h(constan)m(tly)h(b)m(y)e(soft)m(w)m(are)i(paten)m(ts.)47 b(States)33 b(should)f(not)150 4064 y(allo)m(w)25 b(paten)m(ts)e(to)h (restrict)g(dev)m(elopmen)m(t)g(and)f(use)g(of)g(soft)m(w)m(are)h(on)f (general-purp)s(ose)g(computers,)i(but)150 4174 y(in)h(those)h(that)g (do,)g(w)m(e)g(wish)f(to)h(a)m(v)m(oid)h(the)e(sp)s(ecial)h(danger)f (that)h(paten)m(ts)h(applied)e(to)h(a)g(free)f(program)150 4283 y(could)h(mak)m(e)i(it)f(e\013ectiv)m(ely)i(proprietary)-8 b(.)40 b(T)-8 b(o)28 b(prev)m(en)m(t)g(this,)g(the)g(GPL)f(assures)g (that)h(paten)m(ts)g(cannot)150 4393 y(b)s(e)i(used)f(to)i(render)f (the)g(program)g(non-free.)275 4539 y(The)f(precise)i(terms)f(and)g (conditions)h(for)f(cop)m(ying,)i(distribution)d(and)h(mo)s (di\014cation)h(follo)m(w.)150 4790 y Fw(TERMS)44 b(AND)h(CONDITIONS) 199 4949 y Fx(0.)61 b(De\014nitions.)330 5090 y(\\This)30 b(License")h(refers)f(to)i(v)m(ersion)e(3)h(of)g(the)f(GNU)h(General)g (Public)g(License.)330 5230 y(\\Cop)m(yrigh)m(t")e(also)g(means)e(cop)m (yrigh)m(t-lik)m(e)k(la)m(ws)d(that)g(apply)f(to)h(other)g(kinds)f(of)g (w)m(orks,)h(suc)m(h)g(as)330 5340 y(semiconductor)j(masks.)p eop end %%Page: 85 90 TeXDict begin 85 89 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(85)330 299 y(\\The)40 b(Program")h(refers)f(to)g(an)m(y)h(cop)m(yrigh)m(table)h(w)m(ork)e (licensed)h(under)e(this)h(License.)70 b(Eac)m(h)330 408 y(licensee)43 b(is)f(addressed)f(as)h(\\y)m(ou".)76 b(\\Licensees")44 b(and)d(\\recipien)m(ts")i(ma)m(y)g(b)s(e)e (individuals)g(or)330 518 y(organizations.)330 650 y(T)-8 b(o)32 b(\\mo)s(dify")g(a)g(w)m(ork)g(means)g(to)h(cop)m(y)f(from)g(or) f(adapt)h(all)h(or)f(part)g(of)g(the)g(w)m(ork)f(in)h(a)g(fashion)330 759 y(requiring)d(cop)m(yrigh)m(t)h(p)s(ermission,)e(other)i(than)f (the)g(making)g(of)g(an)g(exact)i(cop)m(y)-8 b(.)41 b(The)29 b(resulting)330 869 y(w)m(ork)f(is)f(called)i(a)f(\\mo)s(di\014ed)f(v)m (ersion")i(of)f(the)g(earlier)g(w)m(ork)g(or)g(a)g(w)m(ork)f(\\based)h (on")g(the)g(earlier)330 978 y(w)m(ork.)330 1110 y(A)k(\\co)m(v)m(ered) i(w)m(ork")f(means)f(either)g(the)g(unmo)s(di\014ed)e(Program)i(or)g(a) h(w)m(ork)f(based)g(on)g(the)g(Pro-)330 1219 y(gram.)330 1351 y(T)-8 b(o)31 b(\\propagate")i(a)e(w)m(ork)g(means)g(to)h(do)e(an) m(ything)i(with)e(it)h(that,)h(without)f(p)s(ermission,)f(w)m(ould)330 1461 y(mak)m(e)c(y)m(ou)e(directly)i(or)e(secondarily)h(liable)h(for)e (infringemen)m(t)h(under)e(applicable)i(cop)m(yrigh)m(t)h(la)m(w,)330 1570 y(except)34 b(executing)g(it)g(on)e(a)i(computer)f(or)f(mo)s (difying)h(a)g(priv)-5 b(ate)33 b(cop)m(y)-8 b(.)50 b(Propagation)34 b(includes)330 1680 y(cop)m(ying,)39 b(distribution)c(\(with)h(or)h (without)f(mo)s(di\014cation\),)i(making)f(a)m(v)-5 b(ailable)38 b(to)f(the)f(public,)330 1789 y(and)30 b(in)g(some)h(coun)m(tries)g (other)f(activities)j(as)e(w)m(ell.)330 1921 y(T)-8 b(o)28 b(\\con)m(v)m(ey")j(a)d(w)m(ork)g(means)g(an)m(y)g(kind)f(of)h (propagation)h(that)g(enables)f(other)g(parties)g(to)h(mak)m(e)330 2030 y(or)k(receiv)m(e)j(copies.)50 b(Mere)34 b(in)m(teraction)i(with)d (a)g(user)g(through)g(a)g(computer)h(net)m(w)m(ork,)h(with)e(no)330 2140 y(transfer)d(of)g(a)h(cop)m(y)-8 b(,)32 b(is)e(not)h(con)m(v)m (eying.)330 2271 y(An)25 b(in)m(teractiv)m(e)k(user)c(in)m(terface)j (displa)m(ys)e(\\Appropriate)g(Legal)h(Notices")h(to)f(the)f(exten)m(t) h(that)f(it)330 2381 y(includes)k(a)g(con)m(v)m(enien)m(t)j(and)c (prominen)m(tly)h(visible)h(feature)g(that)f(\(1\))i(displa)m(ys)e(an)g (appropriate)330 2491 y(cop)m(yrigh)m(t)j(notice,)h(and)d(\(2\))i (tells)f(the)g(user)f(that)i(there)e(is)h(no)g(w)m(arran)m(t)m(y)g(for) g(the)g(w)m(ork)g(\(except)330 2600 y(to)e(the)g(exten)m(t)h(that)f(w)m (arran)m(ties)g(are)g(pro)m(vided\),)g(that)g(licensees)g(ma)m(y)g(con) m(v)m(ey)h(the)f(w)m(ork)f(under)330 2710 y(this)37 b(License,)i(and)e (ho)m(w)g(to)g(view)h(a)f(cop)m(y)h(of)f(this)g(License.)61 b(If)36 b(the)i(in)m(terface)g(presen)m(ts)f(a)g(list)330 2819 y(of)32 b(user)e(commands)h(or)h(options,)g(suc)m(h)f(as)g(a)h (men)m(u,)f(a)h(prominen)m(t)f(item)h(in)f(the)h(list)g(meets)g(this) 330 2929 y(criterion.)199 3061 y(1.)61 b(Source)30 b(Co)s(de.)330 3192 y(The)g(\\source)i(co)s(de")f(for)g(a)g(w)m(ork)g(means)g(the)g (preferred)f(form)g(of)h(the)g(w)m(ork)g(for)g(making)g(mo)s(di-)330 3302 y(\014cations)g(to)g(it.)41 b(\\Ob)5 b(ject)31 b(co)s(de")g(means) g(an)m(y)f(non-source)h(form)f(of)g(a)h(w)m(ork.)330 3433 y(A)36 b(\\Standard)f(In)m(terface")i(means)f(an)f(in)m(terface)i (that)g(either)f(is)g(an)f(o\016cial)i(standard)e(de\014ned)330 3543 y(b)m(y)e(a)g(recognized)i(standards)d(b)s(o)s(dy)-8 b(,)33 b(or,)h(in)f(the)g(case)h(of)f(in)m(terfaces)i(sp)s(eci\014ed)d (for)h(a)h(particular)330 3652 y(programming)44 b(language,)49 b(one)c(that)f(is)g(widely)h(used)e(among)i(dev)m(elop)s(ers)f(w)m (orking)h(in)e(that)330 3762 y(language.)330 3893 y(The)24 b(\\System)g(Libraries")g(of)g(an)g(executable)i(w)m(ork)e(include)f (an)m(ything,)j(other)f(than)e(the)i(w)m(ork)f(as)330 4003 y(a)k(whole,)g(that)g(\(a\))g(is)f(included)g(in)g(the)g(normal)g (form)g(of)h(pac)m(k)-5 b(aging)29 b(a)e(Ma)5 b(jor)28 b(Comp)s(onen)m(t,)g(but)330 4113 y(whic)m(h)33 b(is)g(not)h(part)f(of) h(that)g(Ma)5 b(jor)34 b(Comp)s(onen)m(t,)g(and)e(\(b\))i(serv)m(es)g (only)f(to)h(enable)g(use)f(of)h(the)330 4222 y(w)m(ork)c(with)g(that)g (Ma)5 b(jor)31 b(Comp)s(onen)m(t,)e(or)h(to)h(implemen)m(t)g(a)f (Standard)f(In)m(terface)i(for)e(whic)m(h)h(an)330 4332 y(implemen)m(tation)g(is)e(a)m(v)-5 b(ailable)30 b(to)f(the)f(public)g (in)f(source)i(co)s(de)f(form.)39 b(A)29 b(\\Ma)5 b(jor)29 b(Comp)s(onen)m(t",)330 4441 y(in)38 b(this)g(con)m(text,)k(means)c(a)g (ma)5 b(jor)38 b(essen)m(tial)i(comp)s(onen)m(t)e(\(k)m(ernel,)j(windo) m(w)d(system,)i(and)e(so)330 4551 y(on\))c(of)g(the)g(sp)s(eci\014c)f (op)s(erating)h(system)g(\(if)g(an)m(y\))h(on)e(whic)m(h)h(the)g (executable)h(w)m(ork)f(runs,)f(or)h(a)330 4661 y(compiler)d(used)f(to) h(pro)s(duce)e(the)h(w)m(ork,)h(or)f(an)h(ob)5 b(ject)31 b(co)s(de)g(in)m(terpreter)f(used)g(to)h(run)e(it.)330 4792 y(The)f(\\Corresp)s(onding)g(Source")h(for)f(a)h(w)m(ork)g(in)g (ob)5 b(ject)29 b(co)s(de)g(form)g(means)f(all)i(the)f(source)g(co)s (de)330 4902 y(needed)35 b(to)h(generate,)i(install,)f(and)e(\(for)g (an)h(executable)g(w)m(ork\))g(run)e(the)h(ob)5 b(ject)36 b(co)s(de)g(and)e(to)330 5011 y(mo)s(dify)39 b(the)g(w)m(ork,)j (including)d(scripts)g(to)i(con)m(trol)f(those)g(activities.)71 b(Ho)m(w)m(ev)m(er,)44 b(it)c(do)s(es)f(not)330 5121 y(include)i(the)h(w)m(ork's)g(System)g(Libraries,)i(or)e(general-purp)s (ose)f(to)s(ols)i(or)f(generally)h(a)m(v)-5 b(ailable)330 5230 y(free)31 b(programs)g(whic)m(h)g(are)h(used)e(unmo)s(di\014ed)f (in)i(p)s(erforming)f(those)h(activities)j(but)d(whic)m(h)g(are)330 5340 y(not)g(part)f(of)h(the)g(w)m(ork.)42 b(F)-8 b(or)32 b(example,)f(Corresp)s(onding)e(Source)i(includes)f(in)m(terface)i (de\014nition)p eop end %%Page: 86 91 TeXDict begin 86 90 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(86)330 299 y(\014les)32 b(asso)s(ciated)i(with)d(source)i(\014les)f(for)g(the)g(w)m(ork,)h(and) f(the)g(source)g(co)s(de)h(for)e(shared)h(libraries)330 408 y(and)g(dynamically)g(link)m(ed)h(subprograms)e(that)h(the)h(w)m (ork)f(is)g(sp)s(eci\014cally)h(designed)f(to)h(require,)330 518 y(suc)m(h)k(as)g(b)m(y)g(in)m(timate)i(data)e(comm)m(unication)i (or)e(con)m(trol)h(\015o)m(w)f(b)s(et)m(w)m(een)h(those)f(subprograms) 330 628 y(and)30 b(other)g(parts)g(of)h(the)g(w)m(ork.)330 756 y(The)h(Corresp)s(onding)f(Source)i(need)f(not)h(include)f(an)m (ything)i(that)f(users)f(can)h(regenerate)h(auto-)330 865 y(matically)e(from)e(other)h(parts)f(of)h(the)f(Corresp)s(onding)f (Source.)330 993 y(The)h(Corresp)s(onding)e(Source)j(for)f(a)h(w)m(ork) f(in)g(source)h(co)s(de)f(form)g(is)h(that)f(same)h(w)m(ork.)199 1121 y(2.)61 b(Basic)32 b(P)m(ermissions.)330 1249 y(All)44 b(righ)m(ts)f(gran)m(ted)g(under)f(this)h(License)g(are)g(gran)m(ted)h (for)f(the)g(term)g(of)g(cop)m(yrigh)m(t)h(on)f(the)330 1358 y(Program,)29 b(and)e(are)i(irrev)m(o)s(cable)g(pro)m(vided)f(the) g(stated)h(conditions)g(are)f(met.)40 b(This)28 b(License)g(ex-)330 1468 y(plicitly)h(a\016rms)e(y)m(our)h(unlimited)g(p)s(ermission)e(to)j (run)d(the)i(unmo)s(di\014ed)e(Program.)40 b(The)27 b(output)330 1577 y(from)37 b(running)e(a)j(co)m(v)m(ered)h(w)m(ork)e(is)g(co)m(v)m (ered)i(b)m(y)e(this)h(License)f(only)h(if)f(the)g(output,)i(giv)m(en)g (its)330 1687 y(con)m(ten)m(t,)33 b(constitutes)f(a)g(co)m(v)m(ered)g (w)m(ork.)42 b(This)31 b(License)g(ac)m(kno)m(wledges)i(y)m(our)e(righ) m(ts)g(of)g(fair)g(use)330 1797 y(or)f(other)h(equiv)-5 b(alen)m(t,)32 b(as)f(pro)m(vided)f(b)m(y)g(cop)m(yrigh)m(t)i(la)m(w.) 330 1924 y(Y)-8 b(ou)41 b(ma)m(y)h(mak)m(e,)i(run)c(and)g(propagate)i (co)m(v)m(ered)g(w)m(orks)f(that)g(y)m(ou)h(do)e(not)h(con)m(v)m(ey)-8 b(,)46 b(without)330 2034 y(conditions)30 b(so)f(long)h(as)g(y)m(our)f (license)h(otherwise)g(remains)f(in)g(force.)41 b(Y)-8 b(ou)30 b(ma)m(y)f(con)m(v)m(ey)i(co)m(v)m(ered)330 2144 y(w)m(orks)40 b(to)g(others)g(for)g(the)g(sole)g(purp)s(ose)e(of)i(ha)m (ving)h(them)e(mak)m(e)i(mo)s(di\014cations)f(exclusiv)m(ely)330 2253 y(for)45 b(y)m(ou,)50 b(or)45 b(pro)m(vide)h(y)m(ou)f(with)g (facilities)j(for)d(running)f(those)h(w)m(orks,)50 b(pro)m(vided)45 b(that)h(y)m(ou)330 2363 y(comply)34 b(with)f(the)h(terms)f(of)h(this)f (License)i(in)e(con)m(v)m(eying)i(all)g(material)g(for)e(whic)m(h)g(y)m (ou)h(do)g(not)330 2472 y(con)m(trol)i(cop)m(yrigh)m(t.)55 b(Those)35 b(th)m(us)f(making)h(or)g(running)e(the)i(co)m(v)m(ered)h(w) m(orks)f(for)f(y)m(ou)h(m)m(ust)g(do)330 2582 y(so)29 b(exclusiv)m(ely)h(on)e(y)m(our)g(b)s(ehalf,)h(under)d(y)m(our)j (direction)g(and)f(con)m(trol,)i(on)e(terms)h(that)g(prohibit)330 2692 y(them)35 b(from)g(making)g(an)m(y)h(copies)g(of)f(y)m(our)h(cop)m (yrigh)m(ted)g(material)h(outside)e(their)h(relationship)330 2801 y(with)30 b(y)m(ou.)330 2929 y(Con)m(v)m(eying)46 b(under)d(an)m(y)i(other)g(circumstances)g(is)g(p)s(ermitted)g(solely)g (under)f(the)g(conditions)330 3039 y(stated)31 b(b)s(elo)m(w.)41 b(Sublicensing)30 b(is)g(not)h(allo)m(w)m(ed;)h(section)g(10)f(mak)m (es)g(it)g(unnecessary)-8 b(.)199 3166 y(3.)61 b(Protecting)32 b(Users')e(Legal)i(Righ)m(ts)f(F)-8 b(rom)31 b(An)m(ti-Circum)m(v)m(en) m(tion)i(La)m(w.)330 3294 y(No)44 b(co)m(v)m(ered)i(w)m(ork)d(shall)h (b)s(e)g(deemed)f(part)h(of)g(an)f(e\013ectiv)m(e)k(tec)m(hnological)g (measure)c(under)330 3404 y(an)m(y)30 b(applicable)h(la)m(w)f (ful\014lling)g(obligations)h(under)e(article)i(11)g(of)f(the)g(WIPO)f (cop)m(yrigh)m(t)i(treat)m(y)330 3513 y(adopted)e(on)f(20)i(Decem)m(b)s (er)f(1996,)i(or)e(similar)g(la)m(ws)g(prohibiting)f(or)h(restricting)g (circum)m(v)m(en)m(tion)330 3623 y(of)i(suc)m(h)f(measures.)330 3751 y(When)25 b(y)m(ou)h(con)m(v)m(ey)g(a)g(co)m(v)m(ered)h(w)m(ork,)f (y)m(ou)g(w)m(aiv)m(e)h(an)m(y)e(legal)i(p)s(o)m(w)m(er)f(to)g(forbid)e (circum)m(v)m(en)m(tion)j(of)330 3861 y(tec)m(hnological)j(measures)d (to)g(the)g(exten)m(t)h(suc)m(h)e(circum)m(v)m(en)m(tion)j(is)d (e\013ected)i(b)m(y)f(exercising)g(righ)m(ts)330 3970 y(under)35 b(this)h(License)h(with)e(resp)s(ect)i(to)g(the)f(co)m(v)m (ered)i(w)m(ork,)g(and)d(y)m(ou)i(disclaim)g(an)m(y)f(in)m(ten)m(tion) 330 4080 y(to)41 b(limit)g(op)s(eration)g(or)f(mo)s(di\014cation)h(of)g (the)f(w)m(ork)h(as)f(a)h(means)f(of)h(enforcing,)i(against)f(the)330 4189 y(w)m(ork's)28 b(users,)f(y)m(our)h(or)f(third)g(parties')h(legal) h(righ)m(ts)f(to)g(forbid)f(circum)m(v)m(en)m(tion)i(of)e(tec)m (hnological)330 4299 y(measures.)199 4427 y(4.)61 b(Con)m(v)m(eying)31 b(V)-8 b(erbatim)32 b(Copies.)330 4555 y(Y)-8 b(ou)28 b(ma)m(y)g(con)m(v)m(ey)h(v)m(erbatim)f(copies)g(of)g(the)f(Program's)h (source)g(co)s(de)f(as)h(y)m(ou)f(receiv)m(e)j(it,)f(in)e(an)m(y)330 4664 y(medium,)33 b(pro)m(vided)g(that)h(y)m(ou)f(conspicuously)g(and)g (appropriately)g(publish)f(on)h(eac)m(h)h(cop)m(y)g(an)330 4774 y(appropriate)e(cop)m(yrigh)m(t)i(notice;)g(k)m(eep)f(in)m(tact)h (all)f(notices)g(stating)h(that)e(this)g(License)h(and)f(an)m(y)330 4883 y(non-p)s(ermissiv)m(e)d(terms)g(added)f(in)h(accord)h(with)f (section)h(7)f(apply)g(to)h(the)f(co)s(de;)h(k)m(eep)g(in)m(tact)h(all) 330 4993 y(notices)37 b(of)f(the)g(absence)g(of)g(an)m(y)g(w)m(arran)m (t)m(y;)j(and)c(giv)m(e)i(all)g(recipien)m(ts)f(a)h(cop)m(y)f(of)g (this)f(License)330 5103 y(along)c(with)f(the)h(Program.)330 5230 y(Y)-8 b(ou)27 b(ma)m(y)g(c)m(harge)h(an)m(y)f(price)g(or)f(no)h (price)f(for)h(eac)m(h)g(cop)m(y)h(that)f(y)m(ou)g(con)m(v)m(ey)-8 b(,)29 b(and)d(y)m(ou)h(ma)m(y)h(o\013er)330 5340 y(supp)s(ort)h(or)h (w)m(arran)m(t)m(y)h(protection)h(for)e(a)h(fee.)p eop end %%Page: 87 92 TeXDict begin 87 91 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(87)199 299 y(5.)61 b(Con)m(v)m(eying)31 b(Mo)s(di\014ed)f(Source)g(V)-8 b(ersions.)330 427 y(Y)g(ou)27 b(ma)m(y)g(con)m(v)m(ey)h(a)f(w)m(ork)g (based)f(on)h(the)g(Program,)g(or)g(the)g(mo)s(di\014cations)g(to)g (pro)s(duce)e(it)i(from)330 536 y(the)36 b(Program,)h(in)e(the)g(form)g (of)g(source)h(co)s(de)g(under)d(the)j(terms)f(of)h(section)g(4,)h(pro) m(vided)e(that)330 646 y(y)m(ou)c(also)g(meet)g(all)h(of)e(these)h (conditions:)379 774 y(a.)61 b(The)28 b(w)m(ork)h(m)m(ust)f(carry)h (prominen)m(t)f(notices)i(stating)g(that)f(y)m(ou)g(mo)s(di\014ed)e (it,)j(and)e(giving)i(a)510 883 y(relev)-5 b(an)m(t)32 b(date.)374 1011 y(b.)60 b(The)34 b(w)m(ork)h(m)m(ust)f(carry)h (prominen)m(t)f(notices)i(stating)g(that)f(it)g(is)g(released)g(under)e (this)i(Li-)510 1121 y(cense)i(and)f(an)m(y)h(conditions)h(added)e (under)f(section)j(7.)60 b(This)36 b(requiremen)m(t)h(mo)s(di\014es)f (the)510 1230 y(requiremen)m(t)31 b(in)f(section)h(4)g(to)g(\\k)m(eep)h (in)m(tact)g(all)f(notices".)384 1358 y(c.)61 b(Y)-8 b(ou)36 b(m)m(ust)g(license)g(the)g(en)m(tire)h(w)m(ork,)g(as)f(a)g (whole,)h(under)d(this)i(License)g(to)h(an)m(y)m(one)f(who)510 1468 y(comes)31 b(in)m(to)g(p)s(ossession)e(of)h(a)h(cop)m(y)-8 b(.)41 b(This)29 b(License)i(will)f(therefore)h(apply)-8 b(,)30 b(along)h(with)f(an)m(y)510 1577 y(applicable)k(section)f(7)g (additional)h(terms,)f(to)h(the)e(whole)h(of)g(the)g(w)m(ork,)g(and)f (all)i(its)f(parts,)510 1687 y(regardless)h(of)g(ho)m(w)g(they)g(are)g (pac)m(k)-5 b(aged.)52 b(This)33 b(License)h(giv)m(es)h(no)f(p)s (ermission)e(to)j(license)510 1797 y(the)c(w)m(ork)h(in)f(an)m(y)g (other)h(w)m(a)m(y)-8 b(,)33 b(but)d(it)i(do)s(es)f(not)g(in)m(v)-5 b(alidate)33 b(suc)m(h)e(p)s(ermission)f(if)h(y)m(ou)h(ha)m(v)m(e)510 1906 y(separately)g(receiv)m(ed)f(it.)374 2034 y(d.)60 b(If)36 b(the)h(w)m(ork)g(has)g(in)m(teractiv)m(e)j(user)c(in)m (terfaces,)k(eac)m(h)e(m)m(ust)f(displa)m(y)g(Appropriate)g(Legal)510 2144 y(Notices;)49 b(ho)m(w)m(ev)m(er,)c(if)c(the)h(Program)f(has)g(in) m(teractiv)m(e)j(in)m(terfaces)e(that)g(do)f(not)h(displa)m(y)510 2253 y(Appropriate)30 b(Legal)i(Notices,)g(y)m(our)f(w)m(ork)f(need)g (not)h(mak)m(e)g(them)g(do)f(so.)330 2399 y(A)38 b(compilation)h(of)f (a)g(co)m(v)m(ered)h(w)m(ork)f(with)f(other)h(separate)h(and)e(indep)s (enden)m(t)f(w)m(orks,)k(whic)m(h)330 2509 y(are)c(not)g(b)m(y)g(their) g(nature)f(extensions)h(of)g(the)g(co)m(v)m(ered)i(w)m(ork,)f(and)e (whic)m(h)h(are)g(not)g(com)m(bined)330 2619 y(with)27 b(it)i(suc)m(h)e(as)h(to)h(form)e(a)h(larger)h(program,)f(in)f(or)h(on) g(a)g(v)m(olume)g(of)g(a)h(storage)g(or)f(distribution)330 2728 y(medium,)43 b(is)f(called)g(an)g(\\aggregate")j(if)c(the)h (compilation)h(and)e(its)g(resulting)h(cop)m(yrigh)m(t)h(are)330 2838 y(not)31 b(used)f(to)h(limit)h(the)e(access)i(or)f(legal)h(righ)m (ts)f(of)g(the)g(compilation's)h(users)e(b)s(ey)m(ond)g(what)h(the)330 2947 y(individual)j(w)m(orks)h(p)s(ermit.)54 b(Inclusion)34 b(of)h(a)h(co)m(v)m(ered)g(w)m(ork)f(in)g(an)g(aggregate)j(do)s(es)c (not)h(cause)330 3057 y(this)30 b(License)h(to)g(apply)f(to)h(the)g (other)g(parts)f(of)g(the)h(aggregate.)199 3185 y(6.)61 b(Con)m(v)m(eying)31 b(Non-Source)g(F)-8 b(orms.)330 3313 y(Y)g(ou)29 b(ma)m(y)h(con)m(v)m(ey)g(a)f(co)m(v)m(ered)i(w)m(ork) e(in)f(ob)5 b(ject)30 b(co)s(de)f(form)f(under)g(the)h(terms)f(of)h (sections)h(4)g(and)330 3422 y(5,)42 b(pro)m(vided)d(that)g(y)m(ou)h (also)g(con)m(v)m(ey)g(the)g(mac)m(hine-readable)g(Corresp)s(onding)e (Source)g(under)330 3532 y(the)31 b(terms)f(of)g(this)h(License,)g(in)f (one)h(of)f(these)h(w)m(a)m(ys:)379 3660 y(a.)61 b(Con)m(v)m(ey)32 b(the)f(ob)5 b(ject)31 b(co)s(de)g(in,)g(or)g(em)m(b)s(o)s(died)f(in,)h (a)g(ph)m(ysical)h(pro)s(duct)d(\(including)i(a)g(ph)m(ys-)510 3769 y(ical)37 b(distribution)d(medium\),)j(accompanied)f(b)m(y)f(the)h (Corresp)s(onding)d(Source)j(\014xed)e(on)i(a)510 3879 y(durable)30 b(ph)m(ysical)h(medium)e(customarily)i(used)f(for)g(soft)m (w)m(are)i(in)m(terc)m(hange.)374 4007 y(b.)60 b(Con)m(v)m(ey)30 b(the)f(ob)5 b(ject)30 b(co)s(de)f(in,)g(or)g(em)m(b)s(o)s(died)f(in,)h (a)g(ph)m(ysical)g(pro)s(duct)f(\(including)h(a)g(ph)m(ysi-)510 4116 y(cal)k(distribution)e(medium\),)h(accompanied)h(b)m(y)e(a)i (written)f(o\013er,)g(v)-5 b(alid)33 b(for)e(at)i(least)g(three)510 4226 y(y)m(ears)i(and)f(v)-5 b(alid)35 b(for)f(as)g(long)h(as)g(y)m(ou) g(o\013er)f(spare)h(parts)f(or)g(customer)h(supp)s(ort)d(for)i(that)510 4335 y(pro)s(duct)c(mo)s(del,)i(to)g(giv)m(e)g(an)m(y)m(one)h(who)d(p)s (ossesses)h(the)h(ob)5 b(ject)32 b(co)s(de)f(either)h(\(1\))g(a)g(cop)m (y)g(of)510 4445 y(the)24 b(Corresp)s(onding)e(Source)i(for)g(all)h (the)f(soft)m(w)m(are)h(in)f(the)g(pro)s(duct)f(that)i(is)f(co)m(v)m (ered)h(b)m(y)f(this)510 4555 y(License,)30 b(on)g(a)f(durable)g(ph)m (ysical)h(medium)e(customarily)i(used)f(for)g(soft)m(w)m(are)i(in)m (terc)m(hange,)510 4664 y(for)k(a)g(price)h(no)f(more)g(than)g(y)m(our) g(reasonable)h(cost)g(of)f(ph)m(ysically)h(p)s(erforming)e(this)h(con-) 510 4774 y(v)m(eying)f(of)f(source,)g(or)g(\(2\))h(access)g(to)g(cop)m (y)f(the)g(Corresp)s(onding)e(Source)i(from)f(a)h(net)m(w)m(ork)510 4883 y(serv)m(er)e(at)g(no)f(c)m(harge.)384 5011 y(c.)61 b(Con)m(v)m(ey)40 b(individual)e(copies)h(of)g(the)g(ob)5 b(ject)40 b(co)s(de)f(with)g(a)g(cop)m(y)g(of)g(the)g(written)g (o\013er)g(to)510 5121 y(pro)m(vide)e(the)g(Corresp)s(onding)e(Source.) 59 b(This)36 b(alternativ)m(e)k(is)c(allo)m(w)m(ed)j(only)e(o)s (ccasionally)510 5230 y(and)29 b(noncommercially)-8 b(,)31 b(and)e(only)g(if)h(y)m(ou)f(receiv)m(ed)i(the)e(ob)5 b(ject)31 b(co)s(de)e(with)g(suc)m(h)g(an)g(o\013er,)510 5340 y(in)h(accord)h(with)f(subsection)h(6b.)p eop end %%Page: 88 93 TeXDict begin 88 92 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(88)374 299 y(d.)60 b(Con)m(v)m(ey)37 b(the)f(ob)5 b(ject)37 b(co)s(de)f(b)m(y)g (o\013ering)g(access)i(from)d(a)i(designated)f(place)h(\(gratis)g(or)f (for)510 408 y(a)j(c)m(harge\),)k(and)c(o\013er)g(equiv)-5 b(alen)m(t)41 b(access)f(to)g(the)f(Corresp)s(onding)e(Source)i(in)f (the)i(same)510 518 y(w)m(a)m(y)30 b(through)f(the)g(same)h(place)h(at) f(no)f(further)f(c)m(harge.)41 b(Y)-8 b(ou)30 b(need)f(not)h(require)f (recipien)m(ts)510 628 y(to)42 b(cop)m(y)h(the)f(Corresp)s(onding)e (Source)h(along)i(with)f(the)g(ob)5 b(ject)42 b(co)s(de.)75 b(If)42 b(the)f(place)i(to)510 737 y(cop)m(y)c(the)g(ob)5 b(ject)39 b(co)s(de)g(is)g(a)g(net)m(w)m(ork)g(serv)m(er,)i(the)e (Corresp)s(onding)e(Source)h(ma)m(y)h(b)s(e)f(on)510 847 y(a)45 b(di\013eren)m(t)g(serv)m(er)f(\(op)s(erated)h(b)m(y)f(y)m (ou)h(or)g(a)f(third)g(part)m(y\))h(that)g(supp)s(orts)d(equiv)-5 b(alen)m(t)510 956 y(cop)m(ying)35 b(facilities,)i(pro)m(vided)c(y)m (ou)h(main)m(tain)h(clear)g(directions)f(next)g(to)h(the)f(ob)5 b(ject)35 b(co)s(de)510 1066 y(sa)m(ying)h(where)f(to)h(\014nd)d(the)i (Corresp)s(onding)f(Source.)55 b(Regardless)35 b(of)h(what)f(serv)m(er) g(hosts)510 1176 y(the)e(Corresp)s(onding)e(Source,)j(y)m(ou)f(remain)f (obligated)j(to)e(ensure)f(that)i(it)f(is)g(a)m(v)-5 b(ailable)35 b(for)510 1285 y(as)c(long)g(as)f(needed)g(to)h(satisfy)g (these)g(requiremen)m(ts.)384 1442 y(e.)61 b(Con)m(v)m(ey)24 b(the)g(ob)5 b(ject)24 b(co)s(de)f(using)g(p)s(eer-to-p)s(eer)h (transmission,)g(pro)m(vided)f(y)m(ou)h(inform)f(other)510 1551 y(p)s(eers)d(where)g(the)h(ob)5 b(ject)22 b(co)s(de)f(and)f (Corresp)s(onding)f(Source)i(of)g(the)g(w)m(ork)g(are)g(b)s(eing)g (o\013ered)510 1661 y(to)31 b(the)g(general)g(public)f(at)h(no)f(c)m (harge)i(under)d(subsection)h(6d.)330 1864 y(A)35 b(separable)f(p)s (ortion)g(of)h(the)g(ob)5 b(ject)35 b(co)s(de,)h(whose)e(source)h(co)s (de)g(is)f(excluded)g(from)g(the)h(Cor-)330 1974 y(resp)s(onding)c (Source)h(as)h(a)g(System)f(Library)-8 b(,)33 b(need)f(not)h(b)s(e)e (included)h(in)g(con)m(v)m(eying)i(the)f(ob)5 b(ject)330 2084 y(co)s(de)31 b(w)m(ork.)330 2240 y(A)h(\\User)g(Pro)s(duct")f(is)h (either)g(\(1\))g(a)g(\\consumer)g(pro)s(duct",)f(whic)m(h)h(means)f (an)m(y)h(tangible)h(p)s(er-)330 2350 y(sonal)g(prop)s(ert)m(y)g(whic)m (h)f(is)h(normally)h(used)e(for)h(p)s(ersonal,)g(family)-8 b(,)35 b(or)e(household)f(purp)s(oses,)g(or)330 2459 y(\(2\))26 b(an)m(ything)f(designed)f(or)h(sold)g(for)f(incorp)s (oration)h(in)m(to)h(a)f(dw)m(elling.)39 b(In)24 b(determining)h (whether)330 2569 y(a)30 b(pro)s(duct)e(is)h(a)h(consumer)f(pro)s (duct,)f(doubtful)h(cases)h(shall)g(b)s(e)e(resolv)m(ed)j(in)e(fa)m(v)m (or)h(of)g(co)m(v)m(erage.)330 2679 y(F)-8 b(or)42 b(a)g(particular)g (pro)s(duct)f(receiv)m(ed)i(b)m(y)e(a)h(particular)g(user,)i (\\normally)f(used")e(refers)g(to)i(a)330 2788 y(t)m(ypical)e(or)e (common)h(use)e(of)i(that)g(class)g(of)f(pro)s(duct,)h(regardless)g(of) f(the)h(status)f(of)h(the)f(par-)330 2898 y(ticular)d(user)e(or)h(of)h (the)f(w)m(a)m(y)h(in)f(whic)m(h)f(the)i(particular)f(user)g(actually)h (uses,)g(or)f(exp)s(ects)h(or)f(is)330 3007 y(exp)s(ected)d(to)g(use,)g (the)g(pro)s(duct.)43 b(A)32 b(pro)s(duct)f(is)g(a)h(consumer)f(pro)s (duct)g(regardless)h(of)g(whether)330 3117 y(the)h(pro)s(duct)f(has)h (substan)m(tial)g(commercial,)j(industrial)c(or)h(non-consumer)g(uses,) g(unless)f(suc)m(h)330 3226 y(uses)e(represen)m(t)g(the)h(only)f (signi\014can)m(t)i(mo)s(de)e(of)g(use)g(of)h(the)f(pro)s(duct.)330 3383 y(\\Installation)h(Information")e(for)g(a)g(User)g(Pro)s(duct)f (means)g(an)m(y)i(metho)s(ds,)e(pro)s(cedures,)g(autho-)330 3493 y(rization)d(k)m(eys,)g(or)f(other)f(information)h(required)f(to)h (install)g(and)f(execute)i(mo)s(di\014ed)d(v)m(ersions)i(of)g(a)330 3602 y(co)m(v)m(ered)h(w)m(ork)e(in)g(that)h(User)f(Pro)s(duct)f(from)h (a)h(mo)s(di\014ed)e(v)m(ersion)h(of)h(its)f(Corresp)s(onding)f (Source.)330 3712 y(The)30 b(information)h(m)m(ust)f(su\016ce)g(to)i (ensure)d(that)i(the)g(con)m(tin)m(ued)g(functioning)g(of)f(the)h(mo)s (di\014ed)330 3821 y(ob)5 b(ject)34 b(co)s(de)f(is)g(in)f(no)h(case)h (prev)m(en)m(ted)f(or)g(in)m(terfered)g(with)g(solely)h(b)s(ecause)f (mo)s(di\014cation)g(has)330 3931 y(b)s(een)d(made.)330 4088 y(If)38 b(y)m(ou)i(con)m(v)m(ey)g(an)f(ob)5 b(ject)40 b(co)s(de)f(w)m(ork)g(under)e(this)i(section)h(in,)h(or)e(with,)i(or)e (sp)s(eci\014cally)g(for)330 4197 y(use)g(in,)i(a)e(User)g(Pro)s(duct,) i(and)e(the)g(con)m(v)m(eying)i(o)s(ccurs)d(as)i(part)f(of)g(a)g (transaction)h(in)f(whic)m(h)330 4307 y(the)d(righ)m(t)g(of)g(p)s (ossession)f(and)g(use)h(of)f(the)h(User)g(Pro)s(duct)f(is)g (transferred)g(to)i(the)e(recipien)m(t)i(in)330 4416 y(p)s(erp)s(etuit)m(y)43 b(or)g(for)g(a)h(\014xed)e(term)i (\(regardless)g(of)f(ho)m(w)h(the)f(transaction)i(is)e(c)m (haracterized\),)330 4526 y(the)c(Corresp)s(onding)e(Source)i(con)m(v)m (ey)m(ed)i(under)c(this)i(section)h(m)m(ust)f(b)s(e)f(accompanied)i(b)m (y)f(the)330 4635 y(Installation)d(Information.)52 b(But)35 b(this)f(requiremen)m(t)g(do)s(es)g(not)h(apply)f(if)g(neither)g(y)m (ou)h(nor)f(an)m(y)330 4745 y(third)28 b(part)m(y)i(retains)f(the)g (abilit)m(y)i(to)e(install)h(mo)s(di\014ed)e(ob)5 b(ject)30 b(co)s(de)f(on)g(the)h(User)f(Pro)s(duct)f(\(for)330 4855 y(example,)j(the)g(w)m(ork)f(has)g(b)s(een)g(installed)h(in)f(R)m (OM\).)330 5011 y(The)38 b(requiremen)m(t)g(to)h(pro)m(vide)g (Installation)g(Information)g(do)s(es)f(not)g(include)g(a)h(requiremen) m(t)330 5121 y(to)32 b(con)m(tin)m(ue)h(to)f(pro)m(vide)g(supp)s(ort)e (service,)j(w)m(arran)m(t)m(y)-8 b(,)33 b(or)f(up)s(dates)e(for)i(a)g (w)m(ork)f(that)h(has)g(b)s(een)330 5230 y(mo)s(di\014ed)37 b(or)h(installed)h(b)m(y)g(the)f(recipien)m(t,)k(or)c(for)g(the)g(User) h(Pro)s(duct)e(in)h(whic)m(h)g(it)h(has)f(b)s(een)330 5340 y(mo)s(di\014ed)29 b(or)h(installed.)42 b(Access)31 b(to)g(a)g(net)m(w)m(ork)g(ma)m(y)g(b)s(e)e(denied)h(when)f(the)i(mo)s (di\014cation)f(itself)p eop end %%Page: 89 94 TeXDict begin 89 93 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(89)330 299 y(materially)32 b(and)e(adv)m(ersely)h(a\013ects)h(the)e(op)s(eration)h(of)g(the)f(net) m(w)m(ork)h(or)g(violates)h(the)f(rules)f(and)330 408 y(proto)s(cols)h(for)f(comm)m(unication)i(across)f(the)g(net)m(w)m (ork.)330 535 y(Corresp)s(onding)26 b(Source)h(con)m(v)m(ey)m(ed,)j (and)d(Installation)i(Information)f(pro)m(vided,)g(in)f(accord)h(with) 330 645 y(this)d(section)i(m)m(ust)e(b)s(e)g(in)g(a)h(format)g(that)f (is)h(publicly)f(do)s(cumen)m(ted)g(\(and)g(with)g(an)h(implemen)m(ta-) 330 754 y(tion)i(a)m(v)-5 b(ailable)29 b(to)f(the)g(public)e(in)h (source)h(co)s(de)f(form\),)h(and)f(m)m(ust)g(require)g(no)g(sp)s (ecial)h(passw)m(ord)330 864 y(or)i(k)m(ey)i(for)e(unpac)m(king,)g (reading)h(or)f(cop)m(ying.)199 990 y(7.)61 b(Additional)31 b(T)-8 b(erms.)330 1117 y(\\Additional)29 b(p)s(ermissions")e(are)h (terms)f(that)h(supplemen)m(t)f(the)h(terms)g(of)f(this)h(License)g(b)m (y)g(mak-)330 1226 y(ing)41 b(exceptions)h(from)e(one)h(or)g(more)g(of) g(its)g(conditions.)72 b(Additional)42 b(p)s(ermissions)d(that)j(are) 330 1336 y(applicable)31 b(to)f(the)g(en)m(tire)h(Program)f(shall)g(b)s (e)f(treated)i(as)f(though)f(they)h(w)m(ere)h(included)e(in)g(this)330 1445 y(License,)36 b(to)e(the)g(exten)m(t)i(that)e(they)g(are)g(v)-5 b(alid)34 b(under)f(applicable)i(la)m(w.)52 b(If)33 b(additional)i(p)s (ermis-)330 1555 y(sions)27 b(apply)h(only)f(to)h(part)g(of)f(the)h (Program,)h(that)f(part)f(ma)m(y)h(b)s(e)f(used)g(separately)h(under)e (those)330 1665 y(p)s(ermissions,)31 b(but)g(the)h(en)m(tire)h(Program) f(remains)f(go)m(v)m(erned)i(b)m(y)f(this)g(License)g(without)g(regard) 330 1774 y(to)f(the)g(additional)g(p)s(ermissions.)330 1901 y(When)45 b(y)m(ou)g(con)m(v)m(ey)i(a)e(cop)m(y)h(of)f(a)g(co)m(v) m(ered)i(w)m(ork,)h(y)m(ou)e(ma)m(y)f(at)h(y)m(our)f(option)g(remo)m(v) m(e)i(an)m(y)330 2010 y(additional)30 b(p)s(ermissions)e(from)h(that)h (cop)m(y)-8 b(,)31 b(or)f(from)e(an)m(y)i(part)f(of)h(it.)41 b(\(Additional)30 b(p)s(ermissions)330 2120 y(ma)m(y)41 b(b)s(e)f(written)g(to)h(require)f(their)h(o)m(wn)f(remo)m(v)-5 b(al)42 b(in)e(certain)h(cases)g(when)f(y)m(ou)g(mo)s(dify)g(the)330 2229 y(w)m(ork.\))48 b(Y)-8 b(ou)33 b(ma)m(y)g(place)h(additional)f(p)s (ermissions)e(on)i(material,)i(added)d(b)m(y)g(y)m(ou)h(to)g(a)g(co)m (v)m(ered)330 2339 y(w)m(ork,)e(for)f(whic)m(h)g(y)m(ou)h(ha)m(v)m(e)g (or)g(can)f(giv)m(e)i(appropriate)f(cop)m(yrigh)m(t)g(p)s(ermission.) 330 2465 y(Not)m(withstanding)e(an)m(y)g(other)g(pro)m(vision)f(of)h (this)f(License,)h(for)f(material)i(y)m(ou)f(add)f(to)h(a)f(co)m(v)m (ered)330 2575 y(w)m(ork,)40 b(y)m(ou)e(ma)m(y)g(\(if)g(authorized)g(b) m(y)g(the)g(cop)m(yrigh)m(t)h(holders)e(of)h(that)g(material\))h (supplemen)m(t)330 2685 y(the)31 b(terms)f(of)g(this)h(License)g(with)f (terms:)379 2811 y(a.)61 b(Disclaiming)31 b(w)m(arran)m(t)m(y)f(or)g (limiting)g(liabilit)m(y)h(di\013eren)m(tly)f(from)f(the)g(terms)g(of)h (sections)g(15)510 2921 y(and)g(16)h(of)g(this)f(License;)h(or)374 3047 y(b.)60 b(Requiring)30 b(preserv)-5 b(ation)31 b(of)g(sp)s (eci\014ed)f(reasonable)h(legal)i(notices)f(or)e(author)h(attributions) 510 3157 y(in)24 b(that)i(material)g(or)f(in)f(the)h(Appropriate)g (Legal)h(Notices)h(displa)m(y)m(ed)e(b)m(y)g(w)m(orks)f(con)m(taining) 510 3266 y(it;)31 b(or)384 3393 y(c.)61 b(Prohibiting)23 b(misrepresen)m(tation)i(of)e(the)h(origin)g(of)f(that)i(material,)h (or)d(requiring)g(that)h(mo)s(d-)510 3502 y(i\014ed)30 b(v)m(ersions)h(of)f(suc)m(h)g(material)i(b)s(e)e(mark)m(ed)h(in)f (reasonable)h(w)m(a)m(ys)g(as)g(di\013eren)m(t)g(from)f(the)510 3612 y(original)i(v)m(ersion;)f(or)374 3738 y(d.)60 b(Limiting)42 b(the)f(use)g(for)g(publicit)m(y)h(purp)s(oses)d(of)i(names)g(of)h (licensors)f(or)h(authors)e(of)i(the)510 3848 y(material;)32 b(or)384 3974 y(e.)61 b(Declining)29 b(to)f(gran)m(t)g(righ)m(ts)f (under)f(trademark)h(la)m(w)h(for)f(use)g(of)g(some)h(trade)f(names,)h (trade-)510 4084 y(marks,)i(or)h(service)g(marks;)f(or)397 4210 y(f.)60 b(Requiring)26 b(indemni\014cation)g(of)g(licensors)h(and) f(authors)f(of)i(that)f(material)i(b)m(y)e(an)m(y)m(one)h(who)510 4320 y(con)m(v)m(eys)45 b(the)e(material)h(\(or)g(mo)s(di\014ed)e(v)m (ersions)h(of)h(it\))g(with)e(con)m(tractual)k(assumptions)510 4430 y(of)40 b(liabilit)m(y)h(to)f(the)f(recipien)m(t,)k(for)c(an)m(y)h (liabilit)m(y)h(that)f(these)g(con)m(tractual)i(assumptions)510 4539 y(directly)31 b(imp)s(ose)f(on)g(those)h(licensors)g(and)f (authors.)330 4682 y(All)i(other)h(non-p)s(ermissiv)m(e)e(additional)i (terms)e(are)i(considered)e(\\further)g(restrictions")i(within)330 4792 y(the)j(meaning)f(of)h(section)g(10.)57 b(If)35 b(the)h(Program)f(as)h(y)m(ou)g(receiv)m(ed)g(it,)i(or)d(an)m(y)h(part) f(of)h(it,)h(con-)330 4902 y(tains)f(a)g(notice)h(stating)g(that)f(it)g (is)g(go)m(v)m(erned)h(b)m(y)e(this)h(License)g(along)h(with)e(a)h (term)g(that)g(is)g(a)330 5011 y(further)24 b(restriction,)k(y)m(ou)e (ma)m(y)g(remo)m(v)m(e)h(that)f(term.)39 b(If)26 b(a)g(license)g(do)s (cumen)m(t)g(con)m(tains)g(a)g(further)330 5121 y(restriction)33 b(but)f(p)s(ermits)g(relicensing)h(or)g(con)m(v)m(eying)h(under)d(this) i(License,)g(y)m(ou)g(ma)m(y)g(add)f(to)i(a)330 5230 y(co)m(v)m(ered)g(w)m(ork)e(material)h(go)m(v)m(erned)h(b)m(y)e(the)g (terms)g(of)g(that)h(license)g(do)s(cumen)m(t,)g(pro)m(vided)e(that)330 5340 y(the)g(further)e(restriction)i(do)s(es)f(not)h(surviv)m(e)f(suc)m (h)g(relicensing)h(or)g(con)m(v)m(eying.)p eop end %%Page: 90 95 TeXDict begin 90 94 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(90)330 299 y(If)30 b(y)m(ou)g(add)g(terms)g(to)h(a)g(co)m(v)m(ered)h(w)m(ork)e(in)g (accord)h(with)f(this)g(section,)i(y)m(ou)e(m)m(ust)g(place,)i(in)e (the)330 408 y(relev)-5 b(an)m(t)31 b(source)f(\014les,)g(a)g(statemen) m(t)h(of)f(the)g(additional)g(terms)g(that)g(apply)f(to)i(those)f (\014les,)g(or)g(a)330 518 y(notice)i(indicating)f(where)f(to)h(\014nd) e(the)h(applicable)i(terms.)330 648 y(Additional)37 b(terms,)h(p)s (ermissiv)m(e)e(or)h(non-p)s(ermissiv)m(e,)h(ma)m(y)f(b)s(e)e(stated)j (in)e(the)h(form)f(of)g(a)h(sep-)330 757 y(arately)i(written)f (license,)i(or)e(stated)h(as)e(exceptions;)43 b(the)38 b(ab)s(o)m(v)m(e)h(requiremen)m(ts)e(apply)g(either)330 867 y(w)m(a)m(y)-8 b(.)199 996 y(8.)61 b(T)-8 b(ermination.)330 1126 y(Y)g(ou)40 b(ma)m(y)g(not)f(propagate)i(or)e(mo)s(dify)g(a)g(co)m (v)m(ered)i(w)m(ork)f(except)g(as)g(expressly)f(pro)m(vided)g(un-)330 1235 y(der)d(this)h(License.)62 b(An)m(y)37 b(attempt)h(otherwise)f(to) h(propagate)g(or)f(mo)s(dify)f(it)i(is)f(v)m(oid,)i(and)e(will)330 1345 y(automatically)g(terminate)d(y)m(our)g(righ)m(ts)g(under)f(this)g (License)i(\(including)e(an)m(y)h(paten)m(t)h(licenses)330 1455 y(gran)m(ted)c(under)e(the)h(third)g(paragraph)g(of)g(section)i (11\).)330 1584 y(Ho)m(w)m(ev)m(er,)j(if)e(y)m(ou)f(cease)i(all)f (violation)i(of)d(this)g(License,)i(then)e(y)m(our)h(license)g(from)f (a)h(particular)330 1694 y(cop)m(yrigh)m(t)k(holder)e(is)h(reinstated)h (\(a\))f(pro)m(visionally)-8 b(,)39 b(unless)c(and)g(un)m(til)h(the)g (cop)m(yrigh)m(t)h(holder)330 1803 y(explicitly)42 b(and)e(\014nally)h (terminates)g(y)m(our)g(license,)j(and)c(\(b\))h(p)s(ermanen)m(tly)-8 b(,)43 b(if)e(the)g(cop)m(yrigh)m(t)330 1913 y(holder)34 b(fails)h(to)g(notify)g(y)m(ou)g(of)f(the)h(violation)h(b)m(y)e(some)h (reasonable)g(means)g(prior)e(to)i(60)h(da)m(ys)330 2022 y(after)31 b(the)f(cessation.)330 2152 y(Moreo)m(v)m(er,)k(y)m(our)d (license)i(from)e(a)h(particular)f(cop)m(yrigh)m(t)i(holder)e(is)h (reinstated)g(p)s(ermanen)m(tly)f(if)330 2262 y(the)d(cop)m(yrigh)m(t)h (holder)f(noti\014es)g(y)m(ou)g(of)g(the)g(violation)h(b)m(y)f(some)g (reasonable)h(means,)f(this)g(is)g(the)330 2371 y(\014rst)f(time)i(y)m (ou)f(ha)m(v)m(e)h(receiv)m(ed)g(notice)g(of)f(violation)i(of)e(this)f (License)i(\(for)f(an)m(y)g(w)m(ork\))g(from)f(that)330 2481 y(cop)m(yrigh)m(t)33 b(holder,)g(and)e(y)m(ou)h(cure)g(the)g (violation)i(prior)d(to)i(30)f(da)m(ys)h(after)f(y)m(our)g(receipt)h (of)f(the)330 2590 y(notice.)330 2720 y(T)-8 b(ermination)28 b(of)g(y)m(our)f(righ)m(ts)h(under)e(this)i(section)g(do)s(es)f(not)h (terminate)h(the)e(licenses)i(of)f(parties)330 2829 y(who)38 b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g (under)f(this)h(License.)64 b(If)38 b(y)m(our)g(righ)m(ts)h(ha)m(v)m(e) 330 2939 y(b)s(een)f(terminated)h(and)e(not)i(p)s(ermanen)m(tly)f (reinstated,)j(y)m(ou)e(do)f(not)h(qualify)f(to)h(receiv)m(e)h(new)330 3049 y(licenses)31 b(for)f(the)h(same)g(material)h(under)c(section)k (10.)199 3178 y(9.)61 b(Acceptance)32 b(Not)g(Required)d(for)i(Ha)m (ving)g(Copies.)330 3308 y(Y)-8 b(ou)38 b(are)g(not)g(required)f(to)h (accept)h(this)f(License)g(in)f(order)g(to)h(receiv)m(e)i(or)e(run)e(a) i(cop)m(y)g(of)g(the)330 3417 y(Program.)i(Ancillary)27 b(propagation)g(of)g(a)g(co)m(v)m(ered)h(w)m(ork)e(o)s(ccurring)g (solely)i(as)f(a)g(consequence)g(of)330 3527 y(using)i(p)s(eer-to-p)s (eer)g(transmission)g(to)h(receiv)m(e)h(a)e(cop)m(y)h(lik)m(ewise)h(do) s(es)d(not)i(require)e(acceptance.)330 3636 y(Ho)m(w)m(ev)m(er,)g (nothing)c(other)g(than)g(this)f(License)i(gran)m(ts)g(y)m(ou)f(p)s (ermission)f(to)i(propagate)g(or)f(mo)s(dify)330 3746 y(an)m(y)34 b(co)m(v)m(ered)g(w)m(ork.)50 b(These)32 b(actions)j(infringe)e(cop)m(yrigh)m(t)h(if)f(y)m(ou)h(do)f(not)g (accept)i(this)e(License.)330 3856 y(Therefore,)f(b)m(y)f(mo)s(difying) g(or)g(propagating)h(a)g(co)m(v)m(ered)h(w)m(ork,)f(y)m(ou)g(indicate)g (y)m(our)g(acceptance)330 3965 y(of)f(this)f(License)h(to)g(do)f(so.) 154 4095 y(10.)61 b(Automatic)32 b(Licensing)f(of)f(Do)m(wnstream)i (Recipien)m(ts.)330 4224 y(Eac)m(h)39 b(time)g(y)m(ou)g(con)m(v)m(ey)h (a)f(co)m(v)m(ered)h(w)m(ork,)h(the)d(recipien)m(t)i(automatically)h (receiv)m(es)f(a)f(license)330 4334 y(from)e(the)h(original)h (licensors,)h(to)f(run,)f(mo)s(dify)f(and)g(propagate)i(that)f(w)m (ork,)i(sub)5 b(ject)38 b(to)g(this)330 4443 y(License.)60 b(Y)-8 b(ou)38 b(are)f(not)g(resp)s(onsible)e(for)i(enforcing)g (compliance)h(b)m(y)f(third)f(parties)h(with)f(this)330 4553 y(License.)330 4682 y(An)43 b(\\en)m(tit)m(y)i(transaction")g(is)f (a)f(transaction)i(transferring)e(con)m(trol)h(of)g(an)f(organization,) 49 b(or)330 4792 y(substan)m(tially)24 b(all)f(assets)g(of)g(one,)i(or) e(sub)s(dividing)d(an)j(organization,)j(or)d(merging)g(organizations.) 330 4902 y(If)28 b(propagation)i(of)f(a)h(co)m(v)m(ered)g(w)m(ork)f (results)g(from)f(an)h(en)m(tit)m(y)i(transaction,)f(eac)m(h)g(part)m (y)g(to)f(that)330 5011 y(transaction)g(who)d(receiv)m(es)k(a)d(cop)m (y)i(of)e(the)h(w)m(ork)f(also)i(receiv)m(es)g(whatev)m(er)f(licenses)g (to)g(the)g(w)m(ork)330 5121 y(the)d(part)m(y's)g(predecessor)g(in)g (in)m(terest)h(had)e(or)h(could)g(giv)m(e)h(under)e(the)h(previous)f (paragraph,)i(plus)330 5230 y(a)31 b(righ)m(t)g(to)h(p)s(ossession)e (of)h(the)g(Corresp)s(onding)e(Source)i(of)g(the)f(w)m(ork)h(from)g (the)g(predecessor)f(in)330 5340 y(in)m(terest,)i(if)e(the)h (predecessor)f(has)g(it)h(or)f(can)h(get)h(it)e(with)h(reasonable)g (e\013orts.)p eop end %%Page: 91 96 TeXDict begin 91 95 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(91)330 299 y(Y)-8 b(ou)36 b(ma)m(y)g(not)g(imp)s(ose)f(an)m(y)h(further)e(restrictions)j (on)e(the)h(exercise)g(of)g(the)g(righ)m(ts)g(gran)m(ted)g(or)330 408 y(a\016rmed)27 b(under)f(this)h(License.)40 b(F)-8 b(or)28 b(example,)h(y)m(ou)f(ma)m(y)g(not)g(imp)s(ose)f(a)h(license)g (fee,)h(ro)m(y)m(alt)m(y)-8 b(,)31 b(or)330 518 y(other)d(c)m(harge)g (for)g(exercise)h(of)e(righ)m(ts)h(gran)m(ted)g(under)e(this)i (License,)h(and)d(y)m(ou)i(ma)m(y)g(not)g(initiate)330 628 y(litigation)f(\(including)d(a)g(cross-claim)i(or)e(coun)m (terclaim)i(in)e(a)g(la)m(wsuit\))i(alleging)g(that)e(an)m(y)h(paten)m (t)330 737 y(claim)j(is)g(infringed)e(b)m(y)i(making,)g(using,)g (selling,)h(o\013ering)f(for)f(sale,)i(or)e(imp)s(orting)g(the)h (Program)330 847 y(or)i(an)m(y)h(p)s(ortion)f(of)h(it.)154 984 y(11.)61 b(P)m(aten)m(ts.)330 1121 y(A)41 b(\\con)m(tributor")h(is) f(a)g(cop)m(yrigh)m(t)i(holder)d(who)h(authorizes)g(use)g(under)e(this) i(License)h(of)f(the)330 1230 y(Program)35 b(or)f(a)h(w)m(ork)g(on)f (whic)m(h)g(the)h(Program)f(is)h(based.)53 b(The)34 b(w)m(ork)g(th)m (us)g(licensed)h(is)g(called)330 1340 y(the)c(con)m(tributor's)f(\\con) m(tributor)i(v)m(ersion".)330 1477 y(A)g(con)m(tributor's)g(\\essen)m (tial)i(paten)m(t)e(claims")h(are)f(all)h(paten)m(t)f(claims)h(o)m (wned)e(or)h(con)m(trolled)h(b)m(y)330 1587 y(the)21 b(con)m(tributor,)j(whether)d(already)g(acquired)g(or)h(hereafter)f (acquired,)j(that)d(w)m(ould)g(b)s(e)g(infringed)330 1696 y(b)m(y)27 b(some)h(manner,)g(p)s(ermitted)f(b)m(y)g(this)h (License,)h(of)e(making,)i(using,)f(or)f(selling)i(its)f(con)m (tributor)330 1806 y(v)m(ersion,)40 b(but)c(do)i(not)f(include)g (claims)i(that)f(w)m(ould)f(b)s(e)f(infringed)h(only)g(as)h(a)g (consequence)g(of)330 1915 y(further)33 b(mo)s(di\014cation)h(of)g(the) g(con)m(tributor)g(v)m(ersion.)52 b(F)-8 b(or)34 b(purp)s(oses)e(of)i (this)g(de\014nition,)h(\\con-)330 2025 y(trol")40 b(includes)f(the)g (righ)m(t)h(to)f(gran)m(t)h(paten)m(t)g(sublicenses)f(in)g(a)g(manner)g (consisten)m(t)h(with)f(the)330 2134 y(requiremen)m(ts)30 b(of)h(this)f(License.)330 2271 y(Eac)m(h)44 b(con)m(tributor)h(gran)m (ts)f(y)m(ou)g(a)h(non-exclusiv)m(e,)j(w)m(orldwide,)f(ro)m(y)m(alt)m (y-free)g(paten)m(t)e(license)330 2381 y(under)26 b(the)h(con)m (tributor's)g(essen)m(tial)i(paten)m(t)f(claims,)h(to)f(mak)m(e,)h (use,)f(sell,)g(o\013er)g(for)f(sale,)i(imp)s(ort)330 2491 y(and)h(otherwise)h(run,)e(mo)s(dify)g(and)h(propagate)i(the)e (con)m(ten)m(ts)i(of)f(its)g(con)m(tributor)f(v)m(ersion.)330 2628 y(In)e(the)h(follo)m(wing)h(three)e(paragraphs,)h(a)g(\\paten)m(t) h(license")g(is)e(an)m(y)h(express)f(agreemen)m(t)j(or)d(com-)330 2737 y(mitmen)m(t,)g(ho)m(w)m(ev)m(er)g(denominated,)f(not)f(to)h (enforce)g(a)f(paten)m(t)i(\(suc)m(h)e(as)g(an)g(express)g(p)s (ermission)330 2847 y(to)32 b(practice)h(a)f(paten)m(t)h(or)e(co)m(v)m (enan)m(t)j(not)e(to)g(sue)f(for)h(paten)m(t)g(infringemen)m(t\).)45 b(T)-8 b(o)32 b(\\gran)m(t")h(suc)m(h)330 2956 y(a)i(paten)m(t)h (license)f(to)h(a)f(part)m(y)g(means)f(to)i(mak)m(e)f(suc)m(h)g(an)f (agreemen)m(t)j(or)d(commitmen)m(t)i(not)f(to)330 3066 y(enforce)c(a)g(paten)m(t)g(against)h(the)e(part)m(y)-8 b(.)330 3203 y(If)36 b(y)m(ou)h(con)m(v)m(ey)h(a)f(co)m(v)m(ered)h(w)m (ork,)h(kno)m(wingly)e(relying)g(on)f(a)h(paten)m(t)h(license,)h(and)d (the)h(Corre-)330 3313 y(sp)s(onding)21 b(Source)h(of)h(the)g(w)m(ork)g (is)f(not)h(a)m(v)-5 b(ailable)25 b(for)e(an)m(y)m(one)g(to)h(cop)m(y) -8 b(,)25 b(free)e(of)g(c)m(harge)g(and)f(under)330 3422 y(the)32 b(terms)f(of)h(this)f(License,)i(through)e(a)h(publicly)f(a)m (v)-5 b(ailable)34 b(net)m(w)m(ork)e(serv)m(er)g(or)g(other)g(readily) 330 3532 y(accessible)38 b(means,)g(then)e(y)m(ou)h(m)m(ust)f(either)h (\(1\))h(cause)e(the)h(Corresp)s(onding)e(Source)h(to)h(b)s(e)f(so)330 3641 y(a)m(v)-5 b(ailable,)32 b(or)e(\(2\))g(arrange)g(to)h(depriv)m(e) e(y)m(ourself)h(of)g(the)g(b)s(ene\014t)e(of)i(the)g(paten)m(t)g (license)h(for)e(this)330 3751 y(particular)35 b(w)m(ork,)g(or)f(\(3\)) i(arrange,)g(in)d(a)i(manner)e(consisten)m(t)j(with)e(the)g(requiremen) m(ts)h(of)f(this)330 3861 y(License,)j(to)f(extend)g(the)f(paten)m(t)h (license)h(to)f(do)m(wnstream)f(recipien)m(ts.)56 b(\\Kno)m(wingly)36 b(relying")330 3970 y(means)31 b(y)m(ou)h(ha)m(v)m(e)g(actual)h(kno)m (wledge)f(that,)g(but)f(for)g(the)g(paten)m(t)i(license,)f(y)m(our)g (con)m(v)m(eying)h(the)330 4080 y(co)m(v)m(ered)40 b(w)m(ork)e(in)g(a)g (coun)m(try)-8 b(,)41 b(or)e(y)m(our)f(recipien)m(t's)h(use)f(of)g(the) h(co)m(v)m(ered)g(w)m(ork)g(in)e(a)i(coun)m(try)-8 b(,)330 4189 y(w)m(ould)35 b(infringe)g(one)g(or)g(more)g(iden)m(ti\014able)h (paten)m(ts)g(in)f(that)h(coun)m(try)f(that)h(y)m(ou)f(ha)m(v)m(e)i (reason)330 4299 y(to)31 b(b)s(eliev)m(e)h(are)e(v)-5 b(alid.)330 4436 y(If,)31 b(pursuan)m(t)e(to)j(or)e(in)h(connection)h (with)e(a)h(single)h(transaction)g(or)f(arrangemen)m(t,)h(y)m(ou)f(con) m(v)m(ey)-8 b(,)330 4545 y(or)35 b(propagate)h(b)m(y)e(pro)s(curing)g (con)m(v)m(ey)m(ance)j(of,)g(a)e(co)m(v)m(ered)h(w)m(ork,)g(and)f(gran) m(t)g(a)g(paten)m(t)h(license)330 4655 y(to)c(some)f(of)h(the)f (parties)h(receiving)g(the)f(co)m(v)m(ered)i(w)m(ork)e(authorizing)h (them)f(to)h(use,)g(propagate,)330 4765 y(mo)s(dify)26 b(or)h(con)m(v)m(ey)h(a)g(sp)s(eci\014c)e(cop)m(y)i(of)f(the)g(co)m(v)m (ered)i(w)m(ork,)f(then)e(the)h(paten)m(t)h(license)g(y)m(ou)f(gran)m (t)330 4874 y(is)j(automatically)k(extended)c(to)h(all)g(recipien)m(ts) h(of)e(the)h(co)m(v)m(ered)h(w)m(ork)e(and)g(w)m(orks)g(based)g(on)h (it.)330 5011 y(A)d(paten)m(t)g(license)h(is)e(\\discriminatory")i(if)e (it)h(do)s(es)f(not)h(include)f(within)g(the)h(scop)s(e)f(of)h(its)g (co)m(v)m(er-)330 5121 y(age,)f(prohibits)c(the)h(exercise)h(of,)h(or)d (is)h(conditioned)h(on)f(the)g(non-exercise)h(of)f(one)g(or)g(more)g (of)g(the)330 5230 y(righ)m(ts)32 b(that)g(are)g(sp)s(eci\014cally)h (gran)m(ted)f(under)e(this)i(License.)45 b(Y)-8 b(ou)32 b(ma)m(y)g(not)g(con)m(v)m(ey)h(a)f(co)m(v)m(ered)330 5340 y(w)m(ork)d(if)g(y)m(ou)g(are)h(a)f(part)m(y)g(to)h(an)f (arrangemen)m(t)h(with)e(a)i(third)e(part)m(y)h(that)g(is)g(in)g(the)g (business)f(of)p eop end %%Page: 92 97 TeXDict begin 92 96 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(92)330 299 y(distributing)30 b(soft)m(w)m(are,)i(under)d(whic)m(h)h(y)m(ou)h(mak)m(e)g(pa)m(ymen)m (t)g(to)g(the)g(third)f(part)m(y)g(based)g(on)h(the)330 408 y(exten)m(t)f(of)g(y)m(our)f(activit)m(y)i(of)e(con)m(v)m(eying)i (the)e(w)m(ork,)h(and)e(under)g(whic)m(h)g(the)i(third)e(part)m(y)h (gran)m(ts,)330 518 y(to)35 b(an)m(y)g(of)f(the)h(parties)f(who)g(w)m (ould)g(receiv)m(e)i(the)f(co)m(v)m(ered)h(w)m(ork)e(from)g(y)m(ou,)i (a)f(discriminatory)330 628 y(paten)m(t)g(license)h(\(a\))f(in)f (connection)h(with)f(copies)h(of)g(the)f(co)m(v)m(ered)i(w)m(ork)f(con) m(v)m(ey)m(ed)h(b)m(y)e(y)m(ou)h(\(or)330 737 y(copies)k(made)e(from)h (those)g(copies\),)j(or)d(\(b\))g(primarily)f(for)h(and)f(in)h (connection)h(with)e(sp)s(eci\014c)330 847 y(pro)s(ducts)32 b(or)i(compilations)h(that)f(con)m(tain)h(the)f(co)m(v)m(ered)i(w)m (ork,)e(unless)f(y)m(ou)h(en)m(tered)h(in)m(to)f(that)330 956 y(arrangemen)m(t,)e(or)e(that)h(paten)m(t)g(license)h(w)m(as)e (gran)m(ted,)i(prior)d(to)j(28)f(Marc)m(h)g(2007.)330 1084 y(Nothing)23 b(in)e(this)h(License)h(shall)f(b)s(e)f(construed)h (as)g(excluding)g(or)g(limiting)h(an)m(y)f(implied)g(license)h(or)330 1194 y(other)k(defenses)f(to)h(infringemen)m(t)g(that)g(ma)m(y)g (otherwise)g(b)s(e)e(a)m(v)-5 b(ailable)29 b(to)e(y)m(ou)g(under)e (applicable)330 1303 y(paten)m(t)31 b(la)m(w.)154 1431 y(12.)61 b(No)31 b(Surrender)d(of)i(Others')g(F)-8 b(reedom.)330 1559 y(If)24 b(conditions)g(are)h(imp)s(osed)f(on)g(y)m(ou)g(\(whether) g(b)m(y)g(court)h(order,)g(agreemen)m(t)h(or)e(otherwise\))h(that)330 1669 y(con)m(tradict)35 b(the)f(conditions)h(of)e(this)h(License,)h (they)f(do)g(not)g(excuse)g(y)m(ou)g(from)g(the)f(conditions)330 1778 y(of)k(this)f(License.)59 b(If)36 b(y)m(ou)h(cannot)g(con)m(v)m (ey)h(a)e(co)m(v)m(ered)i(w)m(ork)f(so)g(as)f(to)h(satisfy)g(sim)m (ultaneously)330 1888 y(y)m(our)44 b(obligations)i(under)c(this)i (License)h(and)e(an)m(y)i(other)f(p)s(ertinen)m(t)g(obligations,)49 b(then)44 b(as)h(a)330 1998 y(consequence)40 b(y)m(ou)f(ma)m(y)g(not)g (con)m(v)m(ey)i(it)e(at)h(all.)67 b(F)-8 b(or)40 b(example,)i(if)d(y)m (ou)g(agree)h(to)g(terms)e(that)330 2107 y(obligate)32 b(y)m(ou)e(to)h(collect)h(a)f(ro)m(y)m(alt)m(y)h(for)e(further)e(con)m (v)m(eying)k(from)e(those)g(to)h(whom)e(y)m(ou)h(con)m(v)m(ey)330 2217 y(the)h(Program,)h(the)f(only)g(w)m(a)m(y)h(y)m(ou)g(could)f (satisfy)g(b)s(oth)g(those)g(terms)g(and)g(this)g(License)g(w)m(ould) 330 2326 y(b)s(e)f(to)h(refrain)f(en)m(tirely)h(from)f(con)m(v)m(eying) i(the)f(Program.)154 2454 y(13.)61 b(Use)31 b(with)f(the)g(GNU)h (A\013ero)g(General)h(Public)e(License.)330 2582 y(Not)m(withstanding) 39 b(an)m(y)g(other)f(pro)m(vision)h(of)f(this)g(License,)k(y)m(ou)c (ha)m(v)m(e)i(p)s(ermission)d(to)i(link)f(or)330 2692 y(com)m(bine)h(an)m(y)g(co)m(v)m(ered)i(w)m(ork)e(with)f(a)h(w)m(ork)g (licensed)g(under)e(v)m(ersion)i(3)g(of)g(the)g(GNU)g(A\013ero)330 2801 y(General)29 b(Public)f(License)h(in)m(to)h(a)f(single)g(com)m (bined)f(w)m(ork,)h(and)f(to)h(con)m(v)m(ey)h(the)f(resulting)g(w)m (ork.)330 2911 y(The)f(terms)g(of)g(this)h(License)f(will)h(con)m(tin)m (ue)g(to)g(apply)f(to)h(the)g(part)f(whic)m(h)g(is)g(the)h(co)m(v)m (ered)h(w)m(ork,)330 3020 y(but)38 b(the)h(sp)s(ecial)g(requiremen)m (ts)f(of)h(the)g(GNU)g(A\013ero)g(General)g(Public)g(License,)i (section)f(13,)330 3130 y(concerning)31 b(in)m(teraction)h(through)e(a) h(net)m(w)m(ork)g(will)f(apply)g(to)i(the)e(com)m(bination)i(as)e(suc)m (h.)154 3258 y(14.)61 b(Revised)31 b(V)-8 b(ersions)30 b(of)h(this)f(License.)330 3386 y(The)35 b(F)-8 b(ree)36 b(Soft)m(w)m(are)g(F)-8 b(oundation)36 b(ma)m(y)g(publish)d(revised)i (and/or)g(new)g(v)m(ersions)h(of)f(the)g(GNU)330 3495 y(General)f(Public)f(License)g(from)g(time)g(to)h(time.)49 b(Suc)m(h)33 b(new)f(v)m(ersions)h(will)h(b)s(e)e(similar)h(in)g (spirit)330 3605 y(to)e(the)g(presen)m(t)f(v)m(ersion,)h(but)f(ma)m(y)h (di\013er)f(in)g(detail)i(to)f(address)e(new)h(problems)g(or)g (concerns.)330 3733 y(Eac)m(h)37 b(v)m(ersion)g(is)f(giv)m(en)h(a)g (distinguishing)e(v)m(ersion)i(n)m(um)m(b)s(er.)57 b(If)36 b(the)g(Program)g(sp)s(eci\014es)g(that)330 3842 y(a)31 b(certain)h(n)m(um)m(b)s(ered)d(v)m(ersion)i(of)g(the)g(GNU)g(General)h (Public)e(License)h(\\or)g(an)m(y)g(later)h(v)m(ersion")330 3952 y(applies)h(to)g(it,)h(y)m(ou)e(ha)m(v)m(e)i(the)f(option)g(of)f (follo)m(wing)i(the)f(terms)f(and)g(conditions)h(either)g(of)f(that)330 4061 y(n)m(um)m(b)s(ered)h(v)m(ersion)h(or)g(of)g(an)m(y)g(later)h(v)m (ersion)g(published)d(b)m(y)i(the)g(F)-8 b(ree)35 b(Soft)m(w)m(are)g(F) -8 b(oundation.)330 4171 y(If)28 b(the)h(Program)g(do)s(es)g(not)g(sp)s (ecify)f(a)h(v)m(ersion)g(n)m(um)m(b)s(er)f(of)h(the)g(GNU)g(General)h (Public)e(License,)330 4281 y(y)m(ou)j(ma)m(y)g(c)m(ho)s(ose)g(an)m(y)g (v)m(ersion)g(ev)m(er)g(published)d(b)m(y)j(the)f(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 b(oundation.)330 4408 y(If)39 b(the)h(Program)g(sp)s(eci\014es)f(that)h(a)g(pro)m(xy)g(can)g (decide)g(whic)m(h)f(future)g(v)m(ersions)h(of)f(the)h(GNU)330 4518 y(General)34 b(Public)e(License)i(can)f(b)s(e)f(used,)h(that)h (pro)m(xy's)e(public)h(statemen)m(t)h(of)f(acceptance)j(of)d(a)330 4628 y(v)m(ersion)e(p)s(ermanen)m(tly)f(authorizes)h(y)m(ou)g(to)g(c)m (ho)s(ose)g(that)g(v)m(ersion)g(for)f(the)h(Program.)330 4756 y(Later)37 b(license)g(v)m(ersions)f(ma)m(y)h(giv)m(e)g(y)m(ou)g (additional)g(or)f(di\013eren)m(t)h(p)s(ermissions.)56 b(Ho)m(w)m(ev)m(er,)40 b(no)330 4865 y(additional)25 b(obligations)i(are)e(imp)s(osed)f(on)g(an)m(y)h(author)f(or)h(cop)m (yrigh)m(t)h(holder)e(as)h(a)g(result)f(of)h(y)m(our)330 4975 y(c)m(ho)s(osing)31 b(to)g(follo)m(w)h(a)f(later)g(v)m(ersion.)154 5103 y(15.)61 b(Disclaimer)32 b(of)f(W)-8 b(arran)m(t)m(y)g(.)330 5230 y(THERE)47 b(IS)f(NO)h(W)-10 b(ARRANTY)48 b(F)m(OR)f(THE)g(PR)m (OGRAM,)h(TO)f(THE)g(EXTENT)f(PER-)330 5340 y(MITTED)g(BY)i(APPLICABLE) e(LA)-10 b(W.)47 b(EX)m(CEPT)f(WHEN)i(OTHER)-10 b(WISE)45 b(ST)-8 b(A)g(TED)47 b(IN)p eop end %%Page: 93 98 TeXDict begin 93 97 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(93)330 299 y(WRITING)34 b(THE)f(COPYRIGHT)g(HOLDERS)g(AND/OR)i(OTHER)e(P)-8 b(AR)g(TIES)33 b(PR)m(O)m(VIDE)330 408 y(THE)d(PR)m(OGRAM)i(\\AS)e(IS")h(WITHOUT)f(W) -10 b(ARRANTY)31 b(OF)g(ANY)g(KIND,)g(EITHER)f(EX-)330 518 y(PRESSED)k(OR)h(IMPLIED,)g(INCLUDING,)g(BUT)h(NOT)e(LIMITED)h(TO,) f(THE)h(IMPLIED)330 628 y(W)-10 b(ARRANTIES)38 b(OF)g(MER)m(CHANT)-8 b(ABILITY)39 b(AND)g(FITNESS)e(F)m(OR)i(A)f(P)-8 b(AR)g(TICULAR)330 737 y(PURPOSE.)39 b(THE)h(ENTIRE)f(RISK)g(AS)h(TO)f(THE)g(QUALITY)h (AND)h(PERF)m(ORMANCE)330 847 y(OF)29 b(THE)g(PR)m(OGRAM)h(IS)f(WITH)g (YOU.)h(SHOULD)f(THE)g(PR)m(OGRAM)h(PR)m(O)m(VE)g(DEFEC-)330 956 y(TIVE,)24 b(YOU)g(ASSUME)f(THE)h(COST)f(OF)h(ALL)g(NECESSAR)-8 b(Y)23 b(SER)-10 b(VICING,)23 b(REP)-8 b(AIR)24 b(OR)330 1066 y(CORRECTION.)154 1200 y(16.)61 b(Limitation)32 b(of)e(Liabilit)m(y)-8 b(.)330 1334 y(IN)26 b(NO)g(EVENT)g(UNLESS)f (REQUIRED)h(BY)h(APPLICABLE)f(LA)-10 b(W)26 b(OR)g(A)m(GREED)h(TO)f(IN) 330 1444 y(WRITING)37 b(WILL)f(ANY)i(COPYRIGHT)e(HOLDER,)h(OR)f(ANY)h (OTHER)f(P)-8 b(AR)g(TY)38 b(WHO)330 1553 y(MODIFIES)33 b(AND/OR)h(CONVEYS)e(THE)h(PR)m(OGRAM)h(AS)e(PERMITTED)h(ABO)m(VE,)h (BE)330 1663 y(LIABLE)d(TO)e(YOU)i(F)m(OR)g(D)m(AMA)m(GES,)i(INCLUDING) e(ANY)g(GENERAL,)g(SPECIAL,)f(IN-)330 1772 y(CIDENT)-8 b(AL)32 b(OR)f(CONSEQUENTIAL)f(D)m(AMA)m(GES)j(ARISING)f(OUT)f(OF)h (THE)f(USE)g(OR)330 1882 y(INABILITY)47 b(TO)f(USE)g(THE)g(PR)m(OGRAM)i (\(INCLUDING)f(BUT)g(NOT)f(LIMITED)h(TO)330 1992 y(LOSS)28 b(OF)h(D)m(A)-8 b(T)g(A)31 b(OR)e(D)m(A)-8 b(T)g(A)31 b(BEING)f(RENDERED)f(INA)m(CCURA)-8 b(TE)30 b(OR)e(LOSSES)g(SUS-)330 2101 y(T)-8 b(AINED)43 b(BY)g(YOU)f(OR)g(THIRD)h(P)-8 b(AR)g(TIES)42 b(OR)g(A)g(F)-10 b(AILURE)43 b(OF)f(THE)g(PR)m(OGRAM)330 2211 y(TO)30 b(OPERA)-8 b(TE)29 b(WITH)i(ANY)f(OTHER)g(PR)m(OGRAMS\),)h (EVEN)f(IF)h(SUCH)e(HOLDER)h(OR)330 2320 y(OTHER)36 b(P)-8 b(AR)g(TY)37 b(HAS)g(BEEN)f(AD)m(VISED)i(OF)f(THE)f(POSSIBILITY)f(OF)h (SUCH)g(D)m(AM-)330 2430 y(A)m(GES.)154 2564 y(17.)61 b(In)m(terpretation)31 b(of)g(Sections)g(15)g(and)f(16.)330 2698 y(If)d(the)h(disclaimer)g(of)f(w)m(arran)m(t)m(y)i(and)d (limitation)k(of)d(liabilit)m(y)j(pro)m(vided)d(ab)s(o)m(v)m(e)h (cannot)g(b)s(e)f(giv)m(en)330 2808 y(lo)s(cal)35 b(legal)h(e\013ect)g (according)f(to)f(their)h(terms,)g(reviewing)f(courts)g(shall)h(apply)e (lo)s(cal)j(la)m(w)e(that)330 2917 y(most)j(closely)i(appro)m(ximates)f (an)f(absolute)g(w)m(aiv)m(er)i(of)e(all)g(civil)i(liabilit)m(y)f(in)f (connection)h(with)330 3027 y(the)d(Program,)i(unless)d(a)h(w)m(arran)m (t)m(y)h(or)f(assumption)g(of)g(liabilit)m(y)i(accompanies)f(a)g(cop)m (y)g(of)f(the)330 3136 y(Program)c(in)f(return)f(for)h(a)h(fee.)150 3368 y Fw(END)45 b(OF)g(TERMS)f(AND)h(CONDITIONS)150 3625 y(Ho)l(w)h(to)f(Apply)f(These)h(T)-11 b(erms)45 b(to)g(Y)-11 b(our)44 b(New)i(Programs)150 3784 y Fx(If)20 b(y)m(ou)i(dev)m(elop)f(a)h(new)e(program,)j(and)d(y)m(ou)i(w)m(an)m(t) f(it)h(to)f(b)s(e)g(of)g(the)g(greatest)i(p)s(ossible)d(use)h(to)g(the) g(public,)150 3894 y(the)28 b(b)s(est)f(w)m(a)m(y)i(to)g(ac)m(hiev)m(e) h(this)e(is)g(to)g(mak)m(e)h(it)g(free)f(soft)m(w)m(are)h(whic)m(h)e (ev)m(ery)m(one)j(can)e(redistribute)g(and)150 4003 y(c)m(hange)k (under)c(these)j(terms.)275 4137 y(T)-8 b(o)29 b(do)h(so,)g(attac)m(h)h (the)f(follo)m(wing)h(notices)f(to)h(the)e(program.)40 b(It)30 b(is)g(safest)g(to)g(attac)m(h)h(them)f(to)g(the)150 4247 y(start)38 b(of)g(eac)m(h)g(source)g(\014le)f(to)h(most)g (e\013ectiv)m(ely)i(state)f(the)f(exclusion)g(of)f(w)m(arran)m(t)m(y;) 42 b(and)37 b(eac)m(h)i(\014le)150 4357 y(should)29 b(ha)m(v)m(e)j(at)f (least)h(the)e(\\cop)m(yrigh)m(t")j(line)e(and)e(a)i(p)s(oin)m(ter)g (to)g(where)f(the)g(full)g(notice)i(is)e(found.)390 4468 y Fc(one)40 b(line)g(to)g(give)g(the)g(program's)h(name)f(and)g(a)g (brief)g(idea)g(of)g(what)g(it)g(does.)390 4555 y Fd(Copyright)h(\(C\)) f Fc(year)49 b(name)40 b(of)g(author)390 4730 y Fd(This)g(program)h(is) f(free)g(software:)h(you)f(can)g(redistribute)i(it)e(and/or)g(modify) 390 4817 y(it)g(under)g(the)g(terms)g(of)g(the)g(GNU)g(General)h (Public)f(License)h(as)f(published)h(by)390 4904 y(the)f(Free)g (Software)h(Foundation,)h(either)e(version)h(3)f(of)f(the)h(License,)h (or)f(\(at)390 4991 y(your)g(option\))h(any)f(later)g(version.)390 5166 y(This)g(program)h(is)f(distributed)h(in)f(the)g(hope)g(that)g(it) g(will)g(be)g(useful,)h(but)390 5253 y(WITHOUT)g(ANY)f(WARRANTY;)h (without)g(even)f(the)g(implied)h(warranty)g(of)390 5340 y(MERCHANTABILITY)i(or)c(FITNESS)i(FOR)f(A)g(PARTICULAR)h(PURPOSE.)80 b(See)40 b(the)g(GNU)p eop end %%Page: 94 99 TeXDict begin 94 98 bop 150 -116 a Fx(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(94)390 299 y Fd(General)41 b(Public)f(License)h(for)f(more)g(details.)390 473 y(You)g(should)g (have)h(received)g(a)e(copy)h(of)g(the)g(GNU)g(General)h(Public)f (License)390 560 y(along)g(with)g(this)h(program.)80 b(If)40 b(not,)g(see)g(http://www.gnu.org/licenses/.)275 695 y Fx(Also)31 b(add)e(information)i(on)f(ho)m(w)h(to)g(con)m(tact)i (y)m(ou)d(b)m(y)g(electronic)j(and)d(pap)s(er)f(mail.)275 829 y(If)e(the)i(program)f(do)s(es)f(terminal)i(in)m(teraction,)i(mak)m (e)e(it)g(output)f(a)g(short)g(notice)i(lik)m(e)f(this)f(when)f(it)150 939 y(starts)k(in)f(an)g(in)m(teractiv)m(e)j(mo)s(de:)390 1051 y Fc(program)49 b Fd(Copyright)42 b(\(C\))e Fc(year)48 b(name)41 b(of)e(author)390 1138 y Fd(This)h(program)h(comes)f(with)g (ABSOLUTELY)i(NO)e(WARRANTY;)h(for)f(details)h(type)f(`show)g(w'.)390 1225 y(This)g(is)g(free)g(software,)h(and)f(you)g(are)g(welcome)h(to)e (redistribute)j(it)390 1313 y(under)e(certain)h(conditions;)h(type)e (`show)g(c')g(for)g(details.)275 1447 y Fx(The)27 b(h)m(yp)s(othetical) i(commands)f(`)p Fr(show)h(w)p Fx(')f(and)f(`)p Fr(show)j(c)p Fx(')d(should)g(sho)m(w)h(the)g(appropriate)g(parts)g(of)150 1557 y(the)i(General)h(Public)f(License.)41 b(Of)30 b(course,)h(y)m (our)f(program's)g(commands)f(migh)m(t)i(b)s(e)f(di\013eren)m(t;)h(for) f(a)150 1666 y(GUI)h(in)m(terface,)h(y)m(ou)f(w)m(ould)f(use)g(an)g (\\ab)s(out)h(b)s(o)m(x".)275 1801 y(Y)-8 b(ou)34 b(should)f(also)i (get)g(y)m(our)e(emplo)m(y)m(er)i(\(if)g(y)m(ou)f(w)m(ork)g(as)g(a)g (programmer\))g(or)g(sc)m(ho)s(ol,)i(if)d(an)m(y)-8 b(,)36 b(to)150 1910 y(sign)d(a)g(\\cop)m(yrigh)m(t)h(disclaimer")g(for)e(the) h(program,)g(if)f(necessary)-8 b(.)48 b(F)-8 b(or)34 b(more)e(information)h(on)g(this,)150 2020 y(and)d(ho)m(w)g(to)h(apply) f(and)g(follo)m(w)i(the)e(GNU)h(GPL,)g(see)g Fr (http://www.gnu.org/licen)o(ses)o(/)p Fx(.)275 2154 y(The)44 b(GNU)h(General)g(Public)f(License)i(do)s(es)e(not)h(p)s(ermit)e (incorp)s(orating)i(y)m(our)g(program)f(in)m(to)150 2264 y(proprietary)35 b(programs.)57 b(If)35 b(y)m(our)h(program)f(is)h(a)g (subroutine)f(library)-8 b(,)37 b(y)m(ou)f(ma)m(y)h(consider)e(it)i (more)150 2374 y(useful)30 b(to)i(p)s(ermit)e(linking)i(proprietary)e (applications)i(with)f(the)g(library)-8 b(.)43 b(If)31 b(this)g(is)g(what)g(y)m(ou)g(w)m(an)m(t)150 2483 y(to)f(do,)g(use)f (the)g(GNU)h(Lesser)g(General)g(Public)f(License)h(instead)g(of)f(this) h(License.)40 b(But)30 b(\014rst,)f(please)150 2593 y(read)h Fr(http://www.gnu.org/philos)o(ophy)o(/why)o(-no)o(t-lg)o(pl.h)o(tml)o Fx(.)p eop end %%Page: 95 100 TeXDict begin 95 99 bop 150 -116 a Fx(F)-8 b(unction)31 b(and)f(V)-8 b(ariable)32 b(Index)2370 b(95)150 299 y Fu(F)-13 b(unction)52 b(and)h(V)-13 b(ariable)53 b(Index)150 610 y Fw(I)150 726 y Fd(idn_free)12 b Fa(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Ff(13)150 814 y Fd(idna-to-ascii)16 b Fa(:)g(:)e(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Ff(57)150 901 y Fd(idna-to-unicode)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Ff(57)150 988 y Fd(idna_strerror)16 b Fa(:)g(:)e(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Ff(29)150 1076 y Fd(idna_to_ascii_4i)9 b Fa(:)16 b(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Ff(26)150 1163 y Fd(idna_to_ascii_4z)9 b Fa(:)16 b(:)e(:)f(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)35 b Ff(27)150 1250 y Fd(idna_to_ascii_8z)9 b Fa(:)16 b(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Ff(27)150 1338 y Fd(idna_to_ascii_lz)9 b Fa(:)16 b(:)e(:)f(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)35 b Ff(27)150 1425 y Fd(idna_to_unicode_44i)18 b Fa(:)g(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Ff(26)150 1512 y Fd(idna_to_unicode_4z4z)16 b Fa(:)h(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)42 b Ff(28)150 1600 y Fd(idna_to_unicode_8z4z)16 b Fa(:)h(:)c(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)42 b Ff(28)150 1687 y Fd(idna_to_unicode_8z8z)16 b Fa(:)h(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)42 b Ff(28)150 1774 y Fd (idna_to_unicode_8zlz)16 b Fa(:)h(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)42 b Ff(29)150 1862 y Fd(idna_to_unicode_lzlz)16 b Fa(:)h(:)c(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)42 b Ff(29)150 2105 y Fw(P)150 2221 y Fd(pr29_4)17 b Fa(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)43 b Ff(36)150 2308 y Fd(pr29_4z)15 b Fa(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)41 b Ff(37)150 2395 y Fd(pr29_8z)15 b Fa(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)41 b Ff(37)150 2483 y Fd(pr29_strerror)16 b Fa(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Ff(37)150 2570 y Fd(punycode-decode)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Ff(56)150 2657 y Fd(punycode-encode)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Ff(56)150 2745 y Fd(punycode_decode)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Ff(23)150 2832 y Fd(punycode_encode)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Ff(22)150 2919 y Fd(punycode_strerror)6 b Fa(:)17 b(:)c(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)32 b Ff(24)150 3172 y Fw(S)150 3288 y Fd(stringprep)7 b Fa(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Ff(18)150 3375 y Fd(stringprep_4i)16 b Fa(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Ff(17)150 3462 y Fd(stringprep_4zi)14 b Fa(:)i(:)d(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)40 b Ff(18)2025 610 y Fd (stringprep_check_version)28 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49 b Ff(10)2025 699 y Fd(stringprep_convert)25 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) 47 b Ff(16)2025 787 y Fd(stringprep_iscsi)9 b Fa(:)16 b(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Ff(20)2025 875 y Fd(stringprep_locale_charset)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Ff(16)2025 964 y Fd(stringprep_locale_to_utf8)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Ff(16)2025 1052 y Fd(stringprep_nameprep_no_unassig)q(ned)17 b Fa(:)i(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)43 b Ff(20)2025 1141 y Fd(stringprep_plain) 9 b Fa(:)16 b(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Ff(20)2025 1229 y Fd(stringprep_profile)25 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Ff(19)2025 1318 y Fd(stringprep_strerror)18 b Fa(:)f(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Ff(19)2025 1406 y Fd(stringprep_ucs4_nfkc_normalize)8 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Ff(15)2025 1494 y Fd(stringprep_ucs4_to_utf8)8 b Fa(:)18 b(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)34 b Ff(14)2025 1583 y Fd(stringprep_unichar_to_utf8)17 b Fa(:)i(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)44 b Ff(14)2025 1671 y Fd(stringprep_utf8_nfkc_normalize)8 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Ff(15)2025 1760 y Fd(stringprep_utf8_to_locale)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)46 b Ff(16)2025 1848 y Fd(stringprep_utf8_to_ucs4)8 b Fa(:)18 b(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)34 b Ff(15)2025 1937 y Fd (stringprep_utf8_to_unichar)17 b Fa(:)i(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Ff(14)2025 2025 y Fd(stringprep_xmpp_nodeprep)28 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49 b Ff(21)2025 2113 y Fd(stringprep_xmpp_resourceprep)13 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)39 b Ff(21)2025 2371 y Fw(T)2025 2490 y Fd(tld_check_4)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) 48 b Ff(33)2025 2578 y Fd(tld_check_4t)21 b Fa(:)14 b(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Ff(31)2025 2667 y Fd(tld_check_4tz)16 b Fa(:)g(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)43 b Ff(31)2025 2755 y Fd(tld_check_4z)21 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Ff(34)2025 2844 y Fd(tld_check_8z)21 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Ff(34)2025 2932 y Fd(tld_check_lz)21 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)45 b Ff(34)2025 3020 y Fd(tld_default_table)6 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)33 b Ff(33)2025 3109 y Fd(tld_get_4)9 b Fa(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Ff(32)2025 3197 y Fd(tld_get_4z)7 b Fa(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Ff(32)2025 3286 y Fd(tld_get_table)16 b Fa(:)g(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Ff(33)2025 3374 y Fd(tld_get_z)9 b Fa(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Ff(32)2025 3462 y Fd(tld_strerror)21 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Ff(35)p eop end %%Page: 96 101 TeXDict begin 96 100 bop 150 -116 a Fx(Concept)31 b(Index)2927 b(96)150 299 y Fu(Concept)52 b(Index)150 638 y Fw(A)150 754 y Ff(AIX)14 b Fa(:)e(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41 b Ff(4)150 841 y(ARM)11 b Fa(:)h(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)37 b Ff(5)150 929 y(Auto)r(conf)26 b(tests)10 b Fa(:)j(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Ff(11)150 1162 y Fw(C)150 1278 y Ff(command)26 b(line)20 b Fa(:)13 b(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Ff(52)150 1365 y(Compiling)27 b(y)n(our)e(application)17 b Fa(:)e(:)e(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Ff(11)150 1452 y(Con\014gure)26 b(tests)20 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)45 b Ff(11)150 1539 y(Con)n(tributing)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)50 b Ff(7)150 1789 y Fw(D)150 1905 y Ff(de-allo)r(cation)25 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)49 b Ff(12)150 1992 y(Debian)18 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)45 b Ff(3)150 2079 y(Do)n(wnload)22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)48 b Ff(6)150 2312 y Fw(E)150 2428 y Ff(Examples)7 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)33 b Ff(38)150 2678 y Fw(F)150 2794 y Ff(FDL,)26 b(GNU)f(F)-6 b(ree)25 b(Do)r(cumen)n(tation)h(License)20 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)45 b Ff(68)150 2881 y(free)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)49 b Ff(12)150 2968 y(F)-6 b(reeBSD)22 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)49 b Ff(5)150 3201 y Fw(G)150 3317 y Ff(GPL,)26 b(GNU)f(General)i(Public)f (License)e Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)49 b Ff(83)150 3567 y Fw(H)150 3683 y Ff(Hac)n(king)18 b Fa(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)45 b Ff(7)150 3770 y(heap)25 b(memory)10 b Fa(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b Ff(12)150 3857 y(HP-UX)12 b Fa(:)f(:)j(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Ff(4)150 4090 y Fw(I)150 4206 y Fd(idn)8 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Ff(52)150 4293 y(IDNA)24 b(F)-6 b(unctions)12 b Fa(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)38 b Ff(25)150 4381 y(Installation)14 b Fa(:)g(:)g(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Ff(6)150 4468 y(in)n(v)n(oking)25 b Fd(idn)8 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Ff(52)150 4555 y(IRIX)18 b Fa(:)12 b(:)h(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)45 b Ff(4)150 4788 y Fw(L)150 4904 y Ff(LGPL,)26 b(GNU)f(Lesser)i(General) g(Public)f(License)19 b Fa(:)13 b(:)h(:)f(:)45 b Ff(75)150 4991 y(License,)27 b(GNU)e(GPL)13 b Fa(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)39 b Ff(83)150 5079 y(License,)27 b(GNU)e(LGPL)6 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Ff(75)2025 638 y Fw(M)2025 759 y Ff(MacOS)26 b(X)7 b Fa(:)12 b(:)h(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)34 b Ff(5)2025 848 y(Mandrak)n(e)20 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)48 b Ff(4)2025 938 y(Memory)26 b(handling)9 b Fa(:)k(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)35 b Ff(12)2025 1027 y(Microsoft)13 b Fa(:)i(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)40 b Ff(5)2025 1117 y(mingw32)23 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)49 b Ff(5)2025 1206 y(Motorola)28 b(Cold\014re)10 b Fa(:)j(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)37 b Ff(5)2025 1451 y Fw(N)2025 1572 y Ff(NetBSD)15 b Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)42 b Ff(5)2025 1817 y Fw(O)2025 1938 y Ff(Op)r(enBSD)18 b Fa(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)47 b Ff(5)2025 2027 y(Op)r(enP)n(o)n(w)n(er)26 b(720)10 b Fa(:)k(:)g(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Ff(4)2025 2289 y Fw(P)2025 2410 y Ff(PR29)26 b(F)-6 b(unctions)20 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Ff(36)2025 2499 y(Pun)n(yco)r(de)25 b(F)-6 b(unctions)17 b Fa(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)44 b Ff(22)2025 2761 y Fw(R)2025 2882 y Ff(RedHat)7 b Fa(:)12 b(:)i(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)34 b Ff(4)2025 2971 y(RedHat)25 b(Adv)l(anced)f(Serv)n(er)19 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)47 b Ff(4)2025 3061 y(Rep)r(orting)26 b(Bugs)10 b Fa(:)j(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)37 b Ff(7)2025 3323 y Fw(S)2025 3443 y Ff(Solaris)9 b Fa(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Ff(4)2025 3533 y(Stringprep)25 b(F)-6 b(unctions)20 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)47 b Ff(17)2025 3622 y(SuSE)13 b Fa(:)f(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)40 b Ff(4)2025 3712 y(SuSE)25 b(Lin)n(ux)c Fa(:)14 b(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)50 b Ff(4)2025 3957 y Fw(T)2025 4078 y Ff(TLD)25 b(F)-6 b(unctions)15 b Fa(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41 b Ff(31)2025 4167 y(T)-6 b(ru64)21 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Ff(4)2025 4412 y Fw(U)2025 4533 y Ff(uClib)r(c)10 b Fa(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)37 b Ff(5)2025 4622 y(uClin)n(ux)21 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)49 b Ff(5)2025 4712 y(Utilit)n(y)25 b(F)-6 b(unctions)20 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)46 b Ff(14)2025 4974 y Fw(W)2025 5094 y Ff(Windo)n(ws)9 b Fa(:)k(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)35 b Ff(4,)27 b(5)p eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF