%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: quick.dvi %%Pages: 41 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -N0 quick %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2003.06.23:1300 %%BeginProcSet: texc.pro %! /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/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/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]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/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 TeXDict begin 39158280 55380996 1000 600 600 (quick.dvi) @start %DVIPSBitmapFont: Fa cmsy10 10.95 4 /Fa 4 107 df15 D<153FEC03FFEC0FE0EC3F80EC7E00495A5C495AA2495AB3AA130F5C131F495A91C7FC13 FEEA03F8EA7FE048C8FCEA7FE0EA03F8EA00FE133F806D7E130F801307B3AA6D7EA26D7E 80EB007EEC3F80EC0FE0EC03FFEC003F205B7AC32D>102 D<12FCEAFFC0EA07F0EA01FC EA007E6D7E131F6D7EA26D7EB3AA801303806D7E1300147FEC1FC0EC07FEEC00FFEC07FE EC1FC0EC7F0014FC1301495A5C13075CB3AA495AA2495A133F017EC7FC485AEA07F0EAFF C000FCC8FC205B7AC32D>I<126012F0B3B3B3B3B11260045B76C319>106 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fb cmbx12 12 41 /Fb 41 122 df45 DII49 DII<163FA25E5E5D5DA25D5D5D5D A25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07143E147E147C14F8EB01F0EB03E013 0714C0EB0F80EB1F00133E5BA25B485A485A485A120F5B48C7FC123E5A12FCB91280A5C8 000F90C7FCAC027FB61280A531417DC038>I<0007150301E0143F01FFEB07FF91B6FC5E 5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC3FF001C1B5FC01C714C001DF14F090 39FFE03FFC9138000FFE01FC6D7E01F06D13804915C0497F6C4815E0C8FC6F13F0A317F8 A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E05B007EC74813C0123E003F4A1380D8 1FC0491300D80FF0495AD807FEEBFFFC6CB612F0C65D013F1480010F01FCC7FC010113C0 2D427BC038>I<4AB47E021F13F0027F13FC49B6FC01079038807F8090390FFC001FD93F F014C04948137F4948EBFFE048495A5A1400485A120FA248486D13C0EE7F80EE1E00003F 92C7FCA25B127FA2EC07FC91381FFF8000FF017F13E091B512F89039F9F01FFC9039FBC0 07FE9039FF8003FF17804A6C13C05B6F13E0A24915F0A317F85BA4127FA5123FA217F07F 121FA2000F4A13E0A26C6C15C06D4913806C018014006C6D485A6C9038E01FFC6DB55A01 1F5C010714C0010191C7FC9038003FF02D427BC038>I<121E121F13FC90B712FEA45A17 FC17F817F017E017C0A2481680007EC8EA3F00007C157E5E00785D15014B5A00F84A5A48 4A5A5E151FC848C7FC157E5DA24A5A14035D14074A5AA2141F5D143FA2147F5D14FFA25B A35B92C8FCA35BA55BAA6D5A6D5A6D5A2F447AC238>I67 DIII72 DI< B76C0103B512F8A526003FFEC93807E0004F5A4F5A077EC7FC614E5A4E5A4E5AF01F804E C8FC187E604D5AEF07F0EF0FC04D5A4DC9FC177E4C5AEE03F04C5A4C5A4C7EEE7FF04C7E 5D4B7F4B7F4B7FED3F3FDB7E1F7F03FC806E486C7F4B7E4B6C7F0380804B6C7F4A7F717E 84717F83717F85717F83717F85717F187F727E86727F84727F86727F84B76C90B612FCA5 4E447CC358>75 D 78 D<923807FFC092B512FE0207ECFFC0021F15F091267FFE0013FC902601FFF0EB1FFF 01070180010313C04990C76C7FD91FFC6E6C7E49486F7E49486F7E01FF8348496F7E4849 6F1380A248496F13C0A24890C96C13E0A24819F04982003F19F8A3007F19FC49177FA400 FF19FEAD007F19FC6D17FFA3003F19F8A26D5E6C19F0A26E5D6C19E0A26C6D4B13C06C19 806E5D6C6D4B13006C6D4B5A6D6C4B5A6D6C4B5A6D6C4A5B6D01C001075B6D01F0011F5B 010101FE90B5C7FC6D90B65A023F15F8020715C002004AC8FC030713C047467AC454>I< B812F8EFFFC018F818FE727ED8001F90C7003F13E005037F05007F727E727E727EA28684 A286A762A24E90C7FCA24E5A61187F943801FFF005075B053F138092B7C8FC18F818E018 F892C77FEF3FFF050F7F717F717FA2717FA2717FA785A61B0F85A2187F73131F72141EB7 00E06DEB803E72EBE0FC72EBFFF8060114F0726C13E0CC0007138050457DC354>82 D<003FBA12E0A59026FE000FEB8003D87FE09338003FF049171F90C71607A2007E180300 7C1801A300781800A400F819F8481978A5C81700B3B3A20107B8FCA545437CC24E>84 DI<903801FFE0011F13 FE017F6D7E48B612E03A03FE007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F7F6C5A6C 5AEA00F090C7FCA40203B5FC91B6FC1307013F13F19038FFFC01000313E0000F1380381F FE00485A5B127F5B12FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1FFF80FC7F 0007EBFFF86CECE01FC66CEB8007D90FFCC9FC322F7DAD36>97 DI 100 DI< DAFFE0137E010F9039FE03FF80013FEBFF8F90B812C048D9C07F133F489038001FF84848 EB0FFC4848903907FE1F80001F9238FF0F00496D90C7FCA2003F82A8001F93C7FCA26D5B 000F5D6C6C495A6C6C495A6C9038C07FF04890B55A1680D8078F49C8FC018013E0000F90 CAFCA47F7F7F90B612C016FC6CEDFF8017E06C826C16FC7E000382000F82D81FF0C77ED8 3FC014074848020113808248C9FC177FA46D15FF007F17006D5C6C6C4A5A6C6C4A5AD80F FEEC3FF83B07FFC001FFF0000190B612C06C6C92C7FC010F14F8D9007F90C8FC32427DAC 38>103 D<137C48B4FC4813804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7 FCAAEB7FC0EA7FFFA512037EB3AFB6FCA518467CC520>105 D108 D<90277F8007FEEC0FFCB590263FFFC090387FFF80 92B5D8F001B512E002816E4880913D87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D9 9F009026FF3E007F6C019E6D013C130F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B6 0081B60003B512FEA5572D7CAC5E>I<90397F8007FEB590383FFF8092B512E0028114F8 913987F03FFC91388F801F000390399F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B6 0083B512FEA5372D7CAC3E>II<90397FC00FF8B590B57E02C314E002CF14F89139DFC03FFC9139FF001FFE000301FC EB07FF6C496D13804A15C04A6D13E05C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FF A24C13E06E15C06E5B6E4913806E4913006E495A9139DFC07FFC02CFB512F002C314C002 C091C7FCED1FF092C9FCADB67EA536407DAC3E>I<90387F807FB53881FFE0028313F002 8F13F8ED8FFC91389F1FFE000313BE6C13BC14F8A214F0ED0FFC9138E007F8ED01E092C7 FCA35CB3A5B612E0A5272D7DAC2E>114 D<90391FFC038090B51287000314FF120F381F F003383FC00049133F48C7121F127E00FE140FA215077EA27F01E090C7FC13FE387FFFF0 14FF6C14C015F06C14FC6C800003806C15806C7E010F14C0EB003F020313E0140000F014 3FA26C141F150FA27EA26C15C06C141FA26DEB3F8001E0EB7F009038F803FE90B55A00FC 5CD8F03F13E026E007FEC7FC232F7CAD2C>IIIIIII E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fc cmtt10 10.95 94 /Fc 94 127 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00 A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14 00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2 02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F 90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2 29387DB730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFE FD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A3 6CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F01 1F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FC A35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C 5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>II II<141E147F14FF5BEB03 FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F 5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7E EB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>I<127812 FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB 03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14 E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A12781847 78BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9 FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048 B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD8 7E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30>I<143EA2147FAF007FB7 FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>II<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120F EA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A2 1507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA2 4A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249 C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127CA22547 7BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F48 48EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FCA400FE EC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A2 6C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FE C7FC273A7CB830>IIIII<000FB6128048 15C05AA316800180C8FCAEEB83FF019F13C090B512F015FC8181D9FE0313809039F0007F C049133F0180EB1FE06CC7120F000E15F0C81207A216F81503A31218127EA2B4FC150716 F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C6C5C 6C14E06C6C1380D90FFCC7FC25397BB730>II<127CB712FC16FEA416FC48C7EA 0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5A A24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830 >I<49B4FC011F13F0017F13FC90B57E0003ECFF804815C048010113E03A1FF8003FF049 131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C6C EB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F13F0497F90B512FE4880 2607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303007F15FC90C712014815 FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE0 6C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7CB830>I<49B4FC010F13 E0013F13F890B57E4880488048010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0F F048481307A290C7EA03F85A4815FC1501A416FEA37E7E6D1303A26C6C13076C6C130F6D 133FD80FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190380060011400ED03F8 A2150716F0150F000F15E0486C131F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC 90B55A6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>I<120FEA3FC0EA7FE0A2EAFFF0 A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F 000C276EA630>II<16F01503ED07F8151F157FEDFFF0 14034A13C0021F138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0 485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F3800 7FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7F F8151F1507ED03F01500252F7BB230>I<007FB7FCA2B81280A36C16006C5DCBFCA7003F B612FE4881B81280A36C1600A229157DA530>I<1278127EB4FC13C07FEA7FF813FEEA1F FF6C13C000037F6C13F86C6C7EEB1FFF6D7F010313E06D7F9038007FFC6E7E91380FFF80 6E13C0020113F080ED3FF8151F153FEDFFF05C020713C04A138091383FFE004A5A903801 FFF0495B010F13804990C7FCEB7FFC48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE0 5B90C9FC127E1278252F7BB230>III<147F4A7EA2497FA4497F14F7A401077F14E3A301 0F7FA314C1A2011F7FA490383F80FEA590387F007FA4498049133F90B6FCA34881A39038 FC001F00038149130FA4000781491307A2D87FFFEB7FFFB56CB51280A46C496C13002939 7DB830>I<007FB512F0B612FE6F7E82826C813A03F8001FF815076F7E1501A26F7EA615 015EA24B5A1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E 1500167FA3EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7 FC29387EB730>I<91387F803C903903FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE0 7F48EB801F3903FE000F484813075B48481303A2484813015B123F491300A2127F90C8FC 167C16005A5AAC7E7EA2167C6D14FE123FA27F121F6D13016C6C14FCA26C6CEB03F86D13 076C6CEB0FF03901FF801F6C9038E07FE06DB512C06D14806D1400010713FC6D13F09038 007FC0273A7CB830>I<003FB512E04814FCB67E6F7E6C816C813A03F8007FF0ED1FF815 0F6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A3163F1780A216 7F17005E4B5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B38 7FB730>I<007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FC A6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<00 3FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FCA690 38FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I<02FF13F00103 EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F49130F485A 491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C 6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE133F6C6C137F ECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830>I<3B3FFF80 0FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00B290B6FCA6 01F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E02D38 7FB730>I<007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB71280A46C1500 213879B730>I<49B512F04914F85BA27F6D14F090C7EAFE00B3B3123C127EB4FCA24A5A 1403EB8007397FF01FF86CB55A5D6C5C00075C000149C7FC38003FF025397AB730>II<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8 FCA27E6C16802A387EB730>III<90383FFFE048B512FC000714FF4815804815C04815 E0EBF80001E0133FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407A26C15F0A3 6D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114FCD8003F13 E0253A7BB830>I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE1501 6F7EA2821780163FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15 F001F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<90383FFFE048B512FC000714FF48 15804815C04815E0EBF80001E0133F4848EB1FF049130F90C71207A44815F8481403B3A8 147E14FE6CEBFF076C15F0EC7F87A2EC3FC7018013CF9038C01FFFD83FE014E0EBF80F90 B6FC6C15C06C15806C1500000114FCD8003F7FEB00016E7EA21680157F16C0153F16E015 1F16F0150FED07E025467BB830>I<003FB57E4814F0B612FC15FF6C816C812603F8017F 9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93 C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EB FFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>I<90390FF803C0D97F FF13E048B512C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141F A2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C8001 1F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA5 6C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8 D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA43AFE003F800FA8007C ED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFFC007FFFCB56C 4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE6D13016D5CEC 800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFCEC1FF02F3980 B730>III<3A3FFF01FF F84801837F02C77FA202835B6C01015B3A01FC007F806D91C7FC00005C6D5BEB7F01EC81 FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D5BA26D5BA26D90C8FCA4497FA2497FA2 815B81EB0FE781EB1FC381EB3F8181EB7F0081497F49800001143F49800003141F498000 07140FD87FFEEB7FFFB590B5128080A25C6C486D130029387DB730>II<001FB612 FC4815FE5AA490C7EA03FCED07F816F0150FED1FE016C0153FED7F80003E1500C85A4A5A 5D14034A5A5D140F4A5A5D143F4A5A92C7FC5C495A5C1303495A5C130F495A5C133F495A 91C8FC5B4848147C4914FE1203485A5B120F485A5B123F485A90B6FCB7FCA46C15FC2738 7CB730>I<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C140019476DBE30>I< 127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7EA2 6D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7E A26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01 F0150025477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A5007FB5FCB6FCA46C1400 19477DBE30>I<1307EB1FC0EB7FF0497E000313FE000FEBFF80003F14E0D87FFD13F039 FFF07FF8EBC01FEB800F38FE0003007CEB01F00010EB00401D0E77B730>I<007FB612F0 A2B712F8A36C15F0A225077B7D30>I<1338137CEA01FE12031207EA0FFC13F0EA1FE013 C0EA3F8013005A127EA212FE5AA5EAFFC013E013F0127FA2123FA2EA1FE0EA07C00F1D70 BE30>IIII<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A 5A481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA25AA25AA87E6C140F A27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F7 6D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F 7F90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F484814F0491307 127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D 1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013 C0252A7CA830>IIII<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFF F8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023397AB830>III<387FFFF8B57EA47EEA0001B3B3A8007F B612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B5 00CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC01A201F013F8A3 01E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01071380322881A730>II<49B4FC010F13E0013F13F8497F90B57E0003ECFF8014 013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90C71201A3 00FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE0 6D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E0010190C7FC272A7CA8 30>II<49B413F8010FEBC1 FC013F13F14913FD48B6FC5A481381390FFC007F49131F4848130F491307485A49130312 7F90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F6C6C133F01FC137F3907FF 01FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE0190C7FCAD92B512F84A14FC A46E14F82E3C7DA730>II<90381FFC1E48B5129F000714FF5A5A5A387FF0 07EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E00001 14F86C6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB 3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830 >III<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C1380 3B01F80003F000A26D130700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7 FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E 5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7 EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147D A2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D 277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE 90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F8190 3803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE 6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3F FFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C 137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15 FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA200 0F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA6 30>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E4913 00C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E 4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28277DA630>II<127CA212FEB3B3B3AD127CA207476CBE30>II<017C133848B4137C48EB80FE4813C14813C348EBEFFC397FEFFF F0D8FF8713E0010713C0486C1380D87C0113003838007C1F0C78B730>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fd cmti9 9 16 /Fd 16 119 df<121C127F12FFA412FE12380808778718>46 D64 D<0107B612C04915F017FC903A003F8001FEEE007FEF1F80 92C7EA0FC0EF07E05CEF03F0147E170102FE15F8A25CA21301A25CA2130317035CA21307 18F04A1407A2130F18E04A140F18C0011F151F18805CEF3F00133F177E91C85AA2494A5A 4C5A017E4A5A4C5A01FE4A5A047EC7FC49495A0001EC0FF8007FB612E0B7C8FC15F83533 7BB23A>68 D<0107B612C04915F883903A003F8001FEEE003FEF1F8092C713C0170F5C18 E0147EA214FEEF1FC05CA201011680173F4A1500177E010315FE5F4AEB03F8EE07E00107 EC3FC091B6C7FC16F802E0C9FC130FA25CA2131FA25CA2133FA291CAFCA25BA2137EA213 FEA25B1201387FFFF0B5FCA233337CB234>80 D87 D97 D<14FCEB07FF90381F078090383E03C0EBFC013801F8033803F0073807E0 0F13C0120F391F80070091C7FC48C8FCA35A127EA312FE5AA4007C14C0EC01E0A2EC03C0 6CEB0F80EC1F006C137C380F81F03803FFC0C648C7FC1B2278A023>99 D101 D<143FECFF80903803E1E6903807C0FF90380F807FEB1F00133E017E133F49133EA24848 137EA24848137CA215FC12074913F8A21401A2D80FC013F0A21403120715E01407140F14 1F3903E03FC00001137FEBF0FF38007FCF90381F0F801300141FA21500A25C143E123800 7E137E5C00FE5B48485A387803E0387C0F80D81FFFC7FCEA07F820317CA023>103 D105 D<133FEA07FF5A13FEEA007EA3137CA213FCA213F8A21201A213F0A21203A213E0A21207 A213C0A2120FA21380A2121FA21300A25AA2123EA2127EA2127C1318EAFC1C133CEAF838 A21378137012F013F0EAF8E01279EA3FC0EA0F00103579B314>108 D<2703C003F8137F3C0FF00FFE01FFC03C1E783C1F07C1E03C1C7CF00F8F01F03B3C3DE0 079E0026383FC001FC7FD97F805B007001005B5E137ED8F0FC90380FC00100E05FD860F8 148012000001021F130360491400A200034A13076049013E130FF081800007027EEC83C0 051F138049017C1403A2000F02FC1407053E130049495CEF1E0E001F01015D183C010049 EB0FF0000E6D48EB03E03A227AA03F>I<3903C007F0390FF01FFC391E787C1E391C7CF0 1F393C3DE00F26383FC01380EB7F8000781300EA707EA2D8F0FC131F00E01500EA60F812 0000015C153E5BA20003147E157C4913FCEDF8180007153C0201133801C013F0A2000F15 78EDE070018014F016E0001FECE1C015E390C7EAFF00000E143E26227AA02B>I<14FCEB 07FF90381F07C090383E03E09038FC01F0EA01F83903F000F8485A5B120F484813FCA248 C7FCA214014814F8127EA2140300FE14F05AA2EC07E0A2007CEB0FC01580141FEC3F006C 137E5C381F01F0380F83E03803FF80D800FCC7FC1E2278A027>I115 D<01F01338D803FC13FCEA0F1E120E121C123C 0038147CEA783E0070143CA2137ED8F07C1338EA60FCC65A1578000114705BA215F00003 14E05BA2EC01C0A2EBC003158014071500EBE00EA26C6C5A3800F878EB7FE0EB1F801E22 7AA023>118 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe cmr9 9 23 /Fe 23 117 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C 121C5A5A126009177A8715>44 D<15E0A34A7EA24A7EA34A7EA3EC0DFE140CA2EC187FA3 4A6C7EA202707FEC601FA202E07FECC00FA2D901807F1507A249486C7EA301066D7EA201 0E80010FB5FCA249800118C77EA24981163FA2496E7EA3496E7EA20001821607487ED81F F04A7ED8FFFE49B512E0A333367DB53A>65 D67 D69 DIII78 D82 D<90381FE00390387FFC0748 B5FC3907F01FCF390F8003FF48C7FC003E80814880A200788000F880A46C80A27E92C7FC 127F13C0EA3FF013FF6C13F06C13FF6C14C06C14F0C680013F7F01037F9038003FFF1403 02001380157F153FED1FC0150F12C0A21507A37EA26CEC0F80A26C15006C5C6C143E6C14 7E01C05B39F1FC03F800E0B512E0011F138026C003FEC7FC22377CB42B>I97 D99 D<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003 BF3907E001FF48487E48487F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B 6C6C4813803A03F007BFFC3900F81E3FEB3FFCD90FE0130026357DB32B>II<151F90391FC07F809039FFF8E3C039 01F07FC73907E03F033A0FC01F83809039800F8000001F80EB00074880A66C5CEB800F00 0F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9FCA3121EA2121F380FFFFEEC FFC06C14F06C14FC4880381F0001003EEB007F4880ED1F8048140FA56C141F007C15006C 143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22337EA126>103 DII108 D<3903F01FC000FFEB7FF09038 F1E0FC9038F3807C3907F7007EEA03FE497FA25BA25BB3486CEB7F80B538C7FFFCA32621 7EA02B>110 DI<3903F03F 8000FFEBFFE09038F3C0F89038F7007ED807FE7F6C48EB1F804914C049130F16E0ED07F0 A3ED03F8A9150716F0A216E0150F16C06D131F6DEB3F80160001FF13FC9038F381F89038 F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325307EA02B>I<3803E07C38FFE1FF9038E3 8F809038E71FC0EA07EEEA03ECA29038FC0F8049C7FCA35BB2487EB512E0A31A217FA01E >114 D<1330A51370A313F0A21201A212031207381FFFFEB5FCA23803F000AF1403A814 073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>116 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff cmsy6 6 1 /Ff 1 4 df<136013701360A20040132000E0137038F861F0387E67E0381FFF803807FE 00EA00F0EA07FE381FFF80387E67E038F861F038E060700040132000001300A213701360 14157B9620>3 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fg cmr10 10.95 89 /Fg 89 124 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907 F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7 FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 DIII<121EEA7F80EAFFC0A9EA7F80ACEA3F00AC 121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33 D<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F133F391E600F30000013 00A401E01370491360A3000114E04913C00003130101001380481303000EEB070048130E 0018130C0038131C003013181C1C7DBE2D>I<4B6C130C4B6C131EA20307143EA24C133C A2030F147CA293C71278A24B14F8A2031E5CA2033E1301A2033C5CA3037C1303A203785C A203F81307A24B5CA20201140F007FBAFCBB1280A26C1900C72707C0003EC8FC4B133CA3 020F147CA292C71278A24A14F8A2021E5CA3023E1301007FBAFCBB1280A26C1900C727F8 0007C0C8FC4A5CA20101140FA24A91C9FCA301035CA24A131EA20107143EA24A133CA201 0F147CA291C71278A34914F8A2011E5CA2013E1301A2013C5CA201186D5A41517BBE4C> I<14E0A4EB07FC90383FFF8090B512E03901F8E3F03903E0E0FCD807C0133CD80F807FD8 1F007F003E80003C1580007C140316C00078141F00F8143F157FA47EED3F806CEC0E0092 C7FC127F138013C0EA3FF013FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F1303 01007FECE7FF14E102E01380157F153FED1FC0A2003E140F127FD8FF801307A5130000FC 158000F0140F1270007815005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280 D93FFEC7FCEB0FF8EB00E0A422497BC32D>I38 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A 120E5A1218123812300B1C79BE19>I<1430147014E0EB01C0EB03801307EB0F00131E13 3E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12 FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F12007F13787F133E 131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E12707E7E121E7E6C 7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0A61303 14F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2137813F85B12015B48 5A12075B48C7FC121E121C5A5A5A5A145A7BC323>II<1506150FB3A9007FB912E0BA12F0 A26C18E0C8000FC9FCB3A915063C3C7BB447>I<121EEA7F8012FF13C0A213E0A3127FEA 1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C798919>II<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>II< EB01FE90380FFFC090383F03F090387C00F849137C48487F48487F4848EB0F80A2000F15 C04848EB07E0A3003F15F0A290C712034815F8A64815FCB3A26C15F8A56C6CEB07F0A300 1F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E6C6C5B017C5B90383F03F09038 0FFFC0D901FEC7FC263F7DBC2D>IIII<150E151E153EA2157EA215FE1401A21403EC077E1406140E14 1CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B1201485A90C7FC 5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403 D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380FFF 8090383E03E090387001F8496C7E49137E497F90C713800006141FC813C0A216E0150FA3 16F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F80123C6CEC7F00 001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>II<1238123C123F90B612FCA316F85A16 F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC8127015F04A5A5D14 034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A3130F5CA2131FA613 3FAA6D5A0107C8FC26407BBD2D>III<121EEA7F80A2EAFF C0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779A619>I< 121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E12 00A412011380A3120313005A1206120E120C121C5A1230A20A3979A619>I<007FB912E0 BA12F0A26C18E0CDFCAE007FB912E0BA12F0A26C18E03C167BA147>61 D63 DI<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A291380381 FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA249 819138800001A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA20178 82170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>IIIIIIIII<011FB512FCA3D9000713006E5A1401B3B3A6123FEA7F80EAFFC0A44A5A 1380D87F005B007C130700385C003C495A6C495A6C495A2603E07EC7FC3800FFF8EB3FC0 26407CBD2F>IIIIIII82 DI<003F B91280A3903AF0007FE001018090393FC0003F48C7ED1FC0007E1707127C00781703A300 701701A548EF00E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>IIII<007FB5D8C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC1F806D6C92C7 FC171E6D6C141C6D6C143C5F6D6C14706D6D13F04C5ADA7FC05B023F13036F485ADA1FF0 90C8FC020F5BEDF81E913807FC1C163C6E6C5A913801FF7016F06E5B6F5AA26F7E6F7EA2 8282153FED3BFEED71FF15F103E07F913801C07F0203804B6C7EEC07004A6D7E020E6D7E 5C023C6D7E02386D7E14784A6D7E4A6D7F130149486E7E4A6E7E130749C86C7E496F7E49 7ED9FFC04A7E00076DEC7FFFB500FC0103B512FEA33F3E7EBD44>II<003FB712F8A391C7EA1FF013F801E0EC3FE00180EC7F C090C8FC003EEDFF80A2003C4A1300007C4A5A12784B5A4B5AA200704A5AA24B5A4B5AA2 C8485A4A90C7FCA24A5A4A5AA24A5AA24A5A4A5AA24A5A4A5AA24990C8FCA2495A494814 1CA2495A495AA2495A495A173C495AA24890C8FC485A1778485A484815F8A24848140116 034848140F4848143FED01FFB8FCA32E3E7BBD38>II<486C13C00003130101001380481303000EEB070048130E0018130C 0038131C003013180070133800601330A300E01370481360A400CFEB678039FFC07FE001 E013F0A3007F133FA2003F131F01C013E0390F0007801C1C73BE2D>II96 DII< 49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A5B121FA248 48EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C1307 6C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828 >IIII<167C903903F801FF903A1FFF078F8090397E0FDE1F9038 F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00 075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA2 7F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE003E14004815 7E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017F C7FC90383FFFFC010313C0293D7EA82D>III<1478EB01FEA2EB 03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14 FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185BD1C>III<2701F801FE14FF00FF902707FFC0 0313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000FC2603F9C06D487F 000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F8 7FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC091381E07E091387803F0 00079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8 F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E01F8131F4848EB0F 804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C 15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D800 7EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381F FF8091387C0FE09039FDE003F03A07FFC001FC6C496C7E6C90C7127F49EC3F805BEE1FC0 17E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001 F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733 >I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803F8130E4848EB0FFC 150748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C13 0F6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512 F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB 1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901 FFF8E03807C03F381F000F003E1307003C1303127C0078130112F81400A27E7E7E6D1300 EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF8 00E01303A214017E1400A27E15F07E14016C14E06CEB03C0903880078039F3E01F0038E0 FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112031207001FB512C0 B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F138090381F8700EB07FE EB01F81B397EB723>IIIIII<001FB61280 A2EBE0000180140049485A001E495A121C4A5A003C495A141F00385C4A5A147F5D4AC7FC C6485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B4848130712074914 00485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>II E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fh cmbx10 10.95 43 /Fh 43 122 df46 D<140F143F5C495A130F48B5FCB6FCA313F7EAFE071200B3B3A8007FB612 F0A5243C78BB34>49 D<903803FF80013F13F890B512FE00036E7E4881260FF80F7F261F C0037F4848C67F486C6D7E6D6D7E487E6D6D7EA26F1380A46C5A6C5A6C5A0007C7FCC8FC 4B1300A25E153F5E4B5AA24B5A5E4A5B4A5B4A48C7FC5D4A5AEC1FE04A5A4A5A9139FF00 0F80EB01FC495A4948EB1F00495AEB1F8049C7FC017E5C5B48B7FC485D5A5A5A5A5AB7FC 5EA4293C7BBB34>I<903801FFE0010F13FE013F6D7E90B612E04801817F3A03FC007FF8 D807F06D7E82D80FFC131F6D80121F7FA56C5A5E6C48133FD801F05CC8FC4B5A5E4B5A4A 5B020F5B902607FFFEC7FC15F815FEEDFFC0D9000113F06E6C7E6F7E6F7E6F7E1780A26F 13C0A217E0EA0FC0487E487E487E487EA317C0A25D491580127F49491300D83FC0495A6C 6C495A3A0FFE01FFF86CB65A6C5DC61580013F49C7FC010313E02B3D7CBB34>II<00071538D80FE0EB01F801FE13 3F90B6FC5E5E5E5E93C7FC5D15F85D15C04AC8FC0180C9FCA9ECFFC0018713FC019F13FF 90B67E020113E09039F8007FF0496D7E01C06D7E5B6CC77FC8120F82A31780A21207EA1F C0487E487E12FF7FA21700A25B4B5A6C5A01805C6CC7123F6D495AD81FE0495A260FFC07 5B6CB65A6C92C7FCC614FC013F13F0010790C8FC293D7BBB34>II56 D66 D<922607FFC0130E92B500FC131E020702FF133E023FEDC07E91B7EAE1FE01039138803F FB499039F80003FF4901C01300013F90C8127F4948151FD9FFF8150F48491507485B4A15 03481701485B18004890CAFC197E5A5B193E127FA349170012FFAC127F7F193EA2123FA2 7F6C187E197C6C7F19FC6C6D16F86C6D150119F06C6D15036C6DED07E0D97FFEED0FC06D 6CED3F80010F01C0ECFF006D01F8EB03FE6D9039FF801FFC010091B55A023F15E0020715 80020002FCC7FC030713C03F407ABE4C>I69 DI<922607FFC0130E92B500FC 131E020702FF133E023FEDC07E91B7EAE1FE01039138803FFB499039F80003FF4901C013 00013F90C8127F4948151FD9FFF8150F48491507485B4A1503481701485B18004890CAFC 197E5A5B193E127FA34994C7FC12FFAB0407B612FC127F7FA3003F92C7383FFE00A27F7E A26C7FA26C7F6C7FA26C7F6C7FD97FFE157F6D6C7E010F01E014FF6D01F813036D9038FF 801F010091B512F3023F15C00207ED803E02009138FE000E030701E090C7FC46407ABE52 >I73 D75 D78 DII82 D<903A03FFC001C0011FEBF803017FEBFE0748B6128F4815DF 48010013FFD80FF8130F48481303497F4848EB007F127F49143F161F12FF160FA27F1607 A27F7F01FC91C7FCEBFF806C13F8ECFFC06C14FCEDFF806C15E016F86C816C816C816C16 806C6C15C07F010715E0EB007F020714F0EC003F1503030013F8167F163F127800F8151F A2160FA27EA217F07E161F6C16E06D143F01E015C001F8EC7F8001FEEB01FF9026FFE007 13004890B55A486C14F8D8F81F5CD8F00314C027E0003FFEC7FC2D407ABE3A>I<003FB9 12FCA5903BFE003FFE003FD87FF0EE0FFE01C0160349160190C71500197E127EA2007C18 3EA400FC183F48181FA5C81600B3AF010FB712F8A5403D7CBC49>II<903807FFC0013F13F848B6FC48812607FE037F26 0FF8007F6DEB3FF0486C806F7EA36F7EA26C5A6C5AEA01E0C8FC153F91B5FC130F137F39 01FFFE0F4813E0000F1380381FFE00485A5B485A12FF5BA4151F7F007F143F6D90387BFF 806C6C01FB13FE391FFF07F36CEBFFE100031480C6EC003FD91FF890C7FC2F2B7DA933> 97 D<13FFB5FCA512077EAFEDFFE0020713FC021FEBFF80027F80DAFF8113F09139FC00 3FF802F06D7E4A6D7E4A13074A80701380A218C082A318E0AA18C0A25E1880A218005E6E 5C6E495A6E495A02FCEB7FF0903AFCFF01FFE0496CB55AD9F01F91C7FCD9E00713FCC700 0113C033407DBE3A>IIIII<903A03FF80 07F0013F9038F83FF8499038FCFFFC48B712FE48018313F93A07FC007FC34848EB3FE100 1FEDF1FC4990381FF0F81700003F81A7001F5DA26D133F000F5D6C6C495A3A03FF83FF80 91B5C7FC4814FC01BF5BD80F03138090CAFCA2487EA27F13F06CB6FC16F016FC6C15FF17 806C16C06C16E01207001F16F0393FE000034848EB003F49EC1FF800FF150F90C81207A5 6C6CEC0FF06D141F003F16E001F0147FD81FFC903801FFC02707FF800F13006C90B55AC6 15F8013F14E0010101FCC7FC2F3D7DA834>I105 D<13FFB5FCA512077EB3B3AFB512FCA5163F7CBE1D>108 D<01FFD91FF8ECFFC0B590B5 010713F80203DAC01F13FE4A6E487FDA0FE09026F07F077F91261F003FEBF8010007013E DAF9F0806C0178ECFBC04A6DB4486C7FA24A92C7FC4A5CA34A5CB3A4B5D8FE07B5D8F03F EBFF80A551297CA858>I<01FFEB1FF8B5EBFFFE02036D7E4A80DA0FE07F91381F007F00 07013C806C5B4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A533297CA83A>II<01FFEBFFE0B5000713FC021FEBFF80027F80DA FF8113F09139FC007FF8000701F06D7E6C496D7E4A130F4A6D7E1880A27013C0A38218E0 AA4C13C0A318805E18005E6E5C6E495A6E495A02FCEBFFF0DAFF035B92B55A029F91C7FC 028713FC028113C00280C9FCACB512FEA5333B7DA83A>I<3901FE01FE00FF903807FF80 4A13E04A13F0EC3F1F91387C3FF8000713F8000313F0EBFFE0A29138C01FF0ED0FE09138 8007C092C7FCA391C8FCB3A2B6FCA525297DA82B>114 D<90383FFC1E48B512BE000714 FE5A381FF00F383F800148C7FC007E147EA200FE143EA27E7F6D90C7FC13F8EBFFE06C13 FF15C06C14F06C806C806C806C80C61580131F1300020713C014000078147F00F8143F15 1F7EA27E16806C143F6D140001E013FF9038F803FE90B55A15F0D8F87F13C026E00FFEC7 FC222B7DA929>IIIIIII E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fi cmbx12 14.4 33 /Fi 33 121 df<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7 FCB3B3B3A6007FB712FEA52F4E76CD43>49 DI<9138 0FFFC091B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803 F86E7E491680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC16 80C9FC4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA 000713E0030113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FE A2EA03E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F0 4A13C06C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F15800103 02FCC7FCD9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167F A216FF5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC 1F005C147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A 485A90C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>III<932601FFFCEC01C0047FD9FFC013030307B600F8130703 3F03FE131F92B8EA803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01 800203B5FC494848C9FC4901F8824949824949824949824949824990CA7E494883A24849 83485B1B7F485B481A3FA24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F3 07C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A 6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE02 0F01FEEC1FF80203903AFFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E004 0101FCC9FC525479D261>67 D69 DI73 D78 D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013 FF020F01C0010F13C0023F90C7000313F0DA7FFC02007F494848ED7FFE4901E0ED1FFF49 496F7F49496F7F4990C96C7F49854948707F4948707FA24849717E48864A83481B804A83 481BC0A2481BE04A83A2481BF0A348497113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F 6C1BE0A36C6D4D13C0A26C6D4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D 6D4B5B6D6D4B5B6D6D4B5B6D6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0011F13F002 0F01FC90B512C0020390B7C8FC020016FC031F15E0030392C9FCDB001F13E0565479D265 >II< B912F0F0FF8019F819FF1AC0D8000701F0C714F0060F7F060113FE727F737F737F85737F 87A2737FA387A863A2616363A24F5B4F5B4F90C8FC4F5A06035B060F13F095B512C092B8 C9FC19F819E019F89226F0000313FE9439007FFF80727F727F727F727F727F8684A28684 A787A71D1C75133EA38575137E73157C7513FC731401B86C6D9038F803F807039038FE07 F07390B512E0736C14C0080F1400CEEA7FFC5F537CD164>82 D<91260FFF80130791B500 F85B010702FF5B011FEDC03F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5FC 4848C87E48488149150F001F824981123F4981007F82A28412FF84A27FA26D82A27F7F6D 93C7FC14C06C13F014FF15F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C836C 836D826D82010F821303010082021F16801400030F15C0ED007F040714E01600173F050F 13F08383A200788200F882A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D5D 01FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7FC 48C66C14FC48010F14F048D9007F90C8FC3C5479D24B>I<003FBC1280A59126C0003F90 38C0007F49C71607D87FF8060113C001E08449197F49193F90C8171FA2007E1A0FA3007C 1A07A500FC1BE0481A03A6C994C7FCB3B3AC91B912F0A553517BD05E>II97 D<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001FFD97FFC 491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A4892C8FC5B A312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D 147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC020113E0 33387CB63C>99 D<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91B6FC01 0315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980485B83 485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5 FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9003F13 F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901817F90 3A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191C7FC48 17E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E14 037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A0F FFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I103 D<137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCAD EB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>105 D108 DII<913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1FFC000FFED97F F86D6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A248486F7EA300 7F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C 6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F 91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F13FE033FEBFFC092B612F002 F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7F A2717FA285187F85A4721380AC1A0060A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F49 5B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F1480031F01FCC8FC030313C092 CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380FFF80033F13E04B13F09238FE 1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1F F8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F 90B7FC120348EB003FD80FF81307D81FE0130148487F4980127F90C87EA24881A27FA27F 01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C816C816C81C681013F158001 0F15C01300020714E0EC003F030713F015010078EC007F00F8153F161F7E160FA27E17E0 7E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8 F807148048C601F8C7FC2C387CB635>I<143EA6147EA414FEA21301A313031307A2130F 131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC 1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34>II<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F8 6D6D5C6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A 6EEB8FE06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FC DA01FD7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D 7F495A49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447> 120 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fj cmsy8 8 1 /Fj 1 4 df<130C131EA50060EB01800078130739FC0C0FC0007FEB3F80393F8C7F0038 07CCF83801FFE038007F80011EC7FCEB7F803801FFE03807CCF8383F8C7F397F0C3F8000 FCEB0FC039781E078000601301000090C7FCA5130C1A1D7C9E23>3 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fk cmr12 12 16 /Fk 16 122 df<14FF010713E090381F81F890383E007C01FC133F4848EB1F8049130F48 48EB07C04848EB03E0A2000F15F0491301001F15F8A2003F15FCA390C8FC4815FEA54815 FFB3A46C15FEA56D1301003F15FCA3001F15F8A26C6CEB03F0A36C6CEB07E0000315C06D 130F6C6CEB1F806C6CEB3F00013E137C90381F81F8903807FFE0010090C7FC28447CC131 >48 D50 D<49B4FC010F13E0013F13FC 9038FE01FE3A01F0007F80D803C0EB3FC048C7EA1FE0120EED0FF0EA0FE0486C14F8A215 077F5BA26C48130FEA03C0C813F0A3ED1FE0A2ED3FC01680ED7F0015FE4A5AEC03F0EC1F C0D90FFFC7FC15F090380001FCEC007FED3F80ED1FC0ED0FE016F0ED07F816FC150316FE A2150116FFA3121EEA7F80487EA416FE491303A2007EC713FC00701407003015F8003814 0F6C15F06CEC1FE06C6CEB3FC0D803E0EB7F803A01FE01FE0039007FFFF8010F13E00101 90C7FC28447CC131>I<010FB512FEA3D9000313806E130080B3B3AB123F487E487EA44A 5A13801300006C495A00705C6C13076C5C6C495A6CEB1F802603E07FC7FC3800FFFCEB1F E027467BC332>74 D80 D87 D97 D99 D101 D105 D108 DI<39 01FC01FE00FF903807FFC091381E07F091383801F8000701707F0003EBE0002601FDC07F 5C01FF147F91C7FCA25BA35BB3A8486CECFF80B5D8F83F13FEA32F2C7DAB36>I<3903F8 03F000FFEB1FFCEC3C3EEC707F0007EBE0FF3803F9C000015B13FBEC007E153C01FF1300 5BA45BB3A748B4FCB512FEA3202C7DAB26>114 D117 D121 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fl cmr17 17.28 17 /Fl 17 118 df67 D70 DI73 D<933801FFE0043F13FF4BB612E0 03079038003FF8DB1FF0EB03FEDB7FC0903800FF804A48C8EA3FE0DA03FCED0FF0DA0FF0 ED03FC4A486F7E4A486F7E4A48707E4ACA6C7E4948717E4948717E4948717E4948717E49 48717E013F854A83017F864948727EA24890CC6C7EA24848737EA24848737EA2000F8749 1907001F87A34848737EA4007F1C80A24985A400FF1CC0AF6C6C4F1380A5003F1C006D61 A3001F63A26D190F000F63A26C6C4F5AA36C6C4F5AA26C6D4E5A6C636E18FF017F626D6C 4D90C7FC6E5F011F616D6C4D5A6D6C4D5A0103616E171F6D6C4D5A6D6D4C5ADA3FC04CC8 FCDA1FF0ED03FE6E6C4B5A6E6C4B5ADA01FFED3FE09126007FC0ECFF80DB1FF0D903FEC9 FCDB07FFEB3FF8030190B512E0DB003F91CAFC040113E05A667AE367>79 D<933801FFE0043F13FF4BB612E003079038003FF8DB1FF0EB03FEDB7FC0903800FF804A 48C8EA3FE0DA03FCED0FF0DA0FF8ED07FCDA1FE0ED01FE4A486F7E4A48707E4ACA6C7E49 48717E4948717E4948717E010F854948717E4948717EA24948717F01FF864A187F4890CC 6C7EA2488749191F00078749190F000F87A2001F87491907A2003F87A24985A2007F1C80 A44985A200FF1CC0AF007F1C806D61A4003F1C00A36D61001F63A36C6C4F5AA20007636D 191FA26C6C4F5AA26C636C6DDA3F804A5AEFFFE06D6C010301F84A5A6D6C902607C07C49 90C7FC93380F001E6D6C011E6D495A6D6C6F495A0107021CD903805B6D6C013C6D6C485A 6E0138151F6D6C0300495A6D01806F485ADA3FC04CC8FCDA1FE0ED71FE91260FF83CEC77 FC912607FC1CEC7FF8912601FF1EEC3FE09126007FDEECFF80DB1FFFD903FEC9FC030790 38C03FF8030190B56C1560DB003F143C0401EBE01C93C8121EA21DE0191FA3736C13011D C0741303A274130774130F736CEB1F8074133F9738FF01FF7390B51200A264856485745B 745B745B08071380E001FEC7FC5B807AE367>81 D83 D<003FBC12F8A49126C000 039038C0000301FCC76C49EB007F01F0190F01C019074848F103FC90C81701007E1A0000 7C1B7CA300781B3CA400701B1CA600F01B1E481B0EA7C91800B3B3B3A54C7FA2041F13F8 4AB87EA457627CE160>I97 D<4AB47E020F13F8023F13FE9139FF007F80D903FCEB07E0D907F0EB01F0D91FE0 EB007849488049488049C87E48485D4915FF00034B138048485CA2485AA2485AA2003F6F 130049EC007C94C7FC127FA35B12FFAD127F7FA4123F7FA2001FEE01C07F000F16036D16 8012076C6C15076D160000015E6C6C151E6D6C5C6D6C5C6D6C5CD90FF8495AD903FCEB07 C0903A00FF803F8091263FFFFEC7FC020F13F80201138032417CBF3A>99 D<181EEF3FFEEE07FFA4EE000F1703A21701B3AAEDFF80020F13F8023F13FE9139FF803F 81903A03FC0007C14948EB01E1D91FE0EB00F94948147D4948143D49C8121F4848150F49 1507120348481503491501120F121F5BA2123F5B127FA45B12FFAD127F7FA3123FA27F12 1FA26C6C1503A26C6C150712036D150F6C6C151F0000163D137F6D6CECF9FF6D6CEB01F1 D90FF0D903C113C06D6CD90F81EBFF80D901FFEB7F019039007FFFFC021F13E002010100 91C7FC41657CE349>II<133C13FF487F487FA66C5B6C90C7FC133C90C8FCB3A2EB03C0EA07FF127FA4 1201EA007FA2133FB3B3AC497E497EB612E0A41B5F7DDE23>105 D107 D<9039078003F8D807FFEB0FFFB501 3F13C092387C0FE0913881F01F9238E03FF00001EB838039007F8700148FEB3F8E029CEB 1FE0EE0FC00298EB030002B890C7FCA214B014F0A25CA55CB3B0497EEBFFF8B612FCA42C 3F7CBE33>114 D<1438A71478A414F8A31301A31303A21307130F131FA2137F13FF1203 000F90B6FCB8FCA3260007F8C8FCB3AE17E0AE6D6CEB01C0A316036D6C148016076D6C14 006E6C5A91383FC01E91381FF07C6EB45A020313E09138007F802B597FD733>116 DI E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 %%EndSetup %%Page: 1 1 1 0 bop 1125 937 a Fl(CFITSIO)44 b(Quic)l(k)h(Start)d(Guide)1625 1190 y Fk(William)28 b(P)m(ence)2277 1154 y Fj(\003)1666 1394 y Fk(Jan)m(uary)33 b(2003)120 1916 y Fi(Con)l(ten)l(ts)120 2120 y Fh(1)84 b(In)m(tro)s(duction)2897 b(2)120 2324 y(2)84 b(Installing)35 b(and)g(Using)h(CFITSIO)2080 b(3)120 2528 y(3)84 b(Example)34 b(Programs)2600 b(4)120 2731 y(4)84 b(CFITSIO)33 b(Routines)2603 b(6)256 2844 y Fg(4.1)94 b(Error)30 b(Rep)s(orting)24 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h (.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)174 b(6)256 2957 y(4.2)94 b(File)30 b(Op)s(en/Close)f(Routines)57 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.) g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)g(.)f(.)h(.)g(.)174 b(6)256 3070 y(4.3)94 b(HDU-lev)m(el)32 b(Routines)85 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) g(.)174 b(7)256 3183 y(4.4)94 b(Image)32 b(I/O)e(Routines)79 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)174 b(9)256 3296 y(4.5)94 b(T)-8 b(able)30 b(I/O)h(Routines)d(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g (.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)129 b(12)256 3409 y(4.6)94 b(Header)31 b(Keyw)m(ord)f(I/O)h(Routines)78 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)129 b(19)256 3522 y(4.7)94 b(Utilit)m(y)30 b(Routines)c(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.) f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f (.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)129 b(22)120 3726 y Fh(5)84 b(CFITSIO)33 b(File)i(Names)f(and)g(Filters)1907 b(23)256 3839 y Fg(5.1)94 b(Creating)30 b(New)h(Files)43 b(.)j(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h (.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)129 b(23)256 3951 y(5.2)94 b(Op)s(ening)29 b(Existing)f(Files)39 b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)129 b(24)256 4064 y(5.3)94 b(Image)32 b(Filtering)53 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f (.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)129 b(26)465 4177 y(5.3.1)106 b(Extracting)31 b(a)g(subsection)e(of)i(an)f (image)76 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)g(.)f(.)h(.)g(.)129 b(26)465 4290 y(5.3.2)106 b(Create)32 b(an)e(Image)h(b)m(y)f(Binning)e(T)-8 b(able)30 b(Columns)i(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)129 b(26)256 4403 y(5.4)94 b(T)-8 b(able)30 b(Filtering)74 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g (.)129 b(28)465 4516 y(5.4.1)106 b(Column)29 b(and)h(Keyw)m(ord)g (Filtering)47 b(.)e(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g (.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)129 b(28)465 4629 y(5.4.2)106 b(Ro)m(w)31 b(Filtering)39 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) g(.)f(.)h(.)g(.)129 b(29)465 4742 y(5.4.3)106 b(Go)s(o)s(d)30 b(Time)g(In)m(terv)-5 b(al)30 b(Filtering)59 b(.)46 b(.)f(.)h(.)g(.)g (.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) 129 b(32)465 4855 y(5.4.4)106 b(Spatial)29 b(Region)i(Filtering)56 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)129 b(32)465 4968 y(5.4.5)106 b(Example)30 b(Ro)m(w)h(Filters)f(.)45 b(.)h(.)g(.)f(.)h(.) g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)g(.)f(.)h(.)g(.)129 b(34)256 5081 y(5.5)94 b(Com)m(bined)29 b(Filtering)g(Examples)44 b(.)i(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h (.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)129 b(36)120 5284 y Fh(6)84 b(CFITSIO)33 b(Error)i(Status)f(Co)s(des)2069 b(38)p 120 5346 1465 4 v 222 5400 a Ff(\003)258 5431 y Fe(HEASAR)n(C,)25 b(NASA)f(Go)r(ddard)i(Space)f(Fligh)n(t)h(Cen)n (ter,)g Fd(Wil)t(liam.D.Penc)l(e@nasa.gov)1928 5809 y Fg(1)p eop %%Page: 2 2 2 1 bop 120 573 a Fi(1)135 b(In)l(tro)t(duction)120 776 y Fg(This)33 b(do)s(cumen)m(t)h(is)f(in)m(tended)g(to)i(help)e(y)m(ou)i (quic)m(kly)e(start)i(writing)d(C)i(programs)g(to)h(read)f(and)g(write) 120 889 y(FITS)45 b(\014les)f(using)g(the)h(CFITSIO)f(library)-8 b(.)84 b(It)45 b(co)m(v)m(ers)i(the)f(most)f(imp)s(ortan)m(t)g(CFITSIO) e(routines)120 1002 y(that)i(are)f(needed)g(to)h(p)s(erform)d(most)i(t) m(yp)s(es)h(of)f(op)s(erations)f(on)h(FITS)f(\014les.)81 b(F)-8 b(or)45 b(more)f(complete)120 1115 y(information)39 b(ab)s(out)g(these)i(and)f(all)f(the)h(other)h(a)m(v)-5 b(ailable)39 b(routines)g(in)g(the)i(library)d(please)i(refer)g(to)120 1227 y(the)c(\\CFITSIO)e(User's)i(Reference)g(Guide",)h(whic)m(h)d(is)g (a)m(v)-5 b(ailable)35 b(from)g(the)h(CFITSIO)e(W)-8 b(eb)36 b(site)g(at)120 1340 y Fc(http://heasarc.gsfc.nasa)o(.gov)o (/fit)o(sio)o Fg(.)261 1453 y(F)-8 b(or)41 b(more)f(general)f (information)f(ab)s(out)i(the)g(FITS)f(data)h(format,)j(refer)d(to)g (the)g(follo)m(wing)e(w)m(eb)120 1566 y(page:)j(h)m (ttp://heasarc.gsfc.nasa.go)m(v/do)s(cs/heasa)q(rc/\014ts.h)m(t)q(ml) 261 1679 y(FITS)27 b(stands)h(for)g(Flexible)e(Image)j(T)-8 b(ransp)s(ort)27 b(System)h(and)f(is)g(the)i(standard)e(\014le)g (format)h(used)g(to)120 1792 y(store)j(most)g(astronomical)f(data)i (\014les.)40 b(There)30 b(are)h(2)g(basic)f(t)m(yp)s(es)g(of)h(FITS)f (\014les:)40 b(images)30 b(and)g(tables.)120 1905 y(FITS)j(images)h (often)g(con)m(tain)g(a)g(2-dimensional)d(arra)m(y)k(of)e(pixels)f (represen)m(ting)h(an)h(image)g(of)f(a)h(piece)120 2018 y(of)f(the)f(sky)-8 b(,)34 b(but)e(FITS)g(images)g(can)h(also)g(con)m (tain)g(1-D)g(arra)m(ys)g(\(i.e,)h(a)f(sp)s(ectrum)e(or)i(ligh)m(t)e (curv)m(e\),)j(or)120 2131 y(3-D)40 b(arra)m(ys)f(\(a)g(data)g(cub)s (e\),)i(or)d(ev)m(en)i(higher)d(dimensional)f(arra)m(ys)i(of)h(data.)66 b(An)38 b(image)h(ma)m(y)g(also)120 2244 y(ha)m(v)m(e)30 b(zero)g(dimensions,)c(in)i(whic)m(h)f(case)j(it)e(is)g(referred)g(to)i (as)f(a)g(n)m(ull)e(or)i(empt)m(y)g(arra)m(y)-8 b(.)41 b(The)28 b(supp)s(orted)120 2357 y(datat)m(yp)s(es)f(for)f(the)h(image) g(arra)m(ys)f(are)h(8,)h(16,)g(and)e(32-bit)h(in)m(tegers,)h(and)d(32)j (and)d(64-bit)i(\015oating)f(p)s(oin)m(t)120 2469 y(real)k(n)m(um)m(b)s (ers.)39 b(Both)31 b(signed)f(and)f(unsigned)g(in)m(tegers)h(are)h (supp)s(orted.)261 2582 y(FITS)j(tables)g(con)m(tain)g(ro)m(ws)g(and)g (columns)f(of)h(data,)i(similar)c(to)j(a)g(spreadsheet.)52 b(All)33 b(the)h(v)-5 b(alues)120 2695 y(in)30 b(a)h(particular)e (column)h(m)m(ust)g(ha)m(v)m(e)j(the)e(same)g(datat)m(yp)s(e.)43 b(A)31 b(cell)f(of)h(a)g(column)f(is)g(not)h(restricted)g(to)120 2808 y(a)h(single)d(n)m(um)m(b)s(er,)i(and)f(instead)h(can)g(con)m (tain)h(an)f(arra)m(y)g(or)h(v)m(ector)g(of)g(n)m(um)m(b)s(ers.)41 b(There)31 b(are)h(actually)120 2921 y(2)43 b(subt)m(yp)s(es)f(of)h (FITS)f(tables:)65 b(ASCI)s(I)41 b(and)i(binary)-8 b(.)76 b(As)43 b(the)g(names)g(imply)-8 b(,)44 b(ASCI)s(I)d(tables)i(store)120 3034 y(the)37 b(data)h(v)-5 b(alues)36 b(in)g(an)g(ASCI)s(I)g(represen) m(tation)h(whereas)f(binary)g(tables)g(store)i(the)f(data)g(v)-5 b(alues)37 b(in)120 3147 y(a)c(more)f(e\016cien)m(t)h(mac)m (hine-readable)e(binary)g(format.)46 b(Binary)32 b(tables)g(are)g (generally)g(more)g(compact)120 3260 y(and)25 b(supp)s(ort)e(more)j (features)f(\(e.g.,)j(a)e(wider)e(range)h(of)h(datat)m(yp)s(es,)h(and)e (v)m(ector)i(columns\))d(than)h(ASCI)s(I)120 3373 y(tables.)261 3486 y(A)31 b(single)e(FITS)h(\014le)g(man)m(y)h(con)m(tain)g(m)m (ultiple)d(images)j(or)g(tables.)41 b(Eac)m(h)31 b(table)g(or)f(image)h (is)f(called)120 3599 y(a)k(Header-Data)j(Unit,)d(or)g(HDU.)h(The)f (\014rst)f(HDU)i(in)d(a)j(FITS)e(\014le)g(m)m(ust)h(b)s(e)f(an)h(image) h(\(but)e(it)h(ma)m(y)120 3711 y(ha)m(v)m(e)c(zero)f(axes\))h(and)e(is) g(called)g(the)h(Primary)e(Arra)m(y)-8 b(.)41 b(An)m(y)28 b(additional)f(HDUs)i(in)f(the)g(\014le)g(\(whic)m(h)g(are)120 3824 y(also)i(referred)g(to)h(as)g(`extensions'\))f(ma)m(y)h(con)m (tain)g(either)f(an)g(image)h(or)f(a)h(table.)261 3937 y(Ev)m(ery)38 b(HDU)g(con)m(tains)g(a)g(header)g(con)m(taining)f(k)m (eyw)m(ord)h(records.)62 b(Eac)m(h)38 b(k)m(eyw)m(ord)g(record)g(is)f (80)120 4050 y(ASCI)s(I)29 b(c)m(haracters)j(long)e(and)f(has)i(the)f (follo)m(wing)f(format:)120 4263 y Fc(KEYWORD)46 b(=)h(value)g(/)g (comment)f(string)261 4475 y Fg(The)23 b(k)m(eyw)m(ord)i(name)f(can)g (b)s(e)f(up)g(to)h(8)g(c)m(haracters)i(long)d(\(all)g(upp)s(ercase\).) 38 b(The)23 b(v)-5 b(alue)24 b(can)g(b)s(e)f(either)120 4588 y(an)k(in)m(teger)g(or)f(\015oating)h(p)s(oin)m(t)e(n)m(um)m(b)s (er,)i(a)g(logical)f(v)-5 b(alue)26 b(\(T)h(or)f(F\),)i(or)e(a)h(c)m (haracter)i(string)c(enclosed)i(in)120 4701 y(single)d(quotes.)40 b(Eac)m(h)26 b(header)f(b)s(egins)f(with)g(a)i(series)f(of)h(required)e (k)m(eyw)m(ords)h(to)i(describ)s(e)d(the)h(datat)m(yp)s(e)120 4814 y(and)35 b(format)h(of)f(the)h(follo)m(wing)e(data)i(unit,)f(if)f (an)m(y)-8 b(.)57 b(An)m(y)35 b(n)m(um)m(b)s(er)g(of)g(other)h (optional)e(k)m(eyw)m(ords)i(can)120 4927 y(b)s(e)d(included)e(in)h (the)h(header)h(to)g(pro)m(vide)e(other)i(descriptiv)m(e)f(information) e(ab)s(out)j(the)f(data.)51 b(F)-8 b(or)34 b(the)120 5040 y(most)g(part,)g(the)g(CFITSIO)d(routines)i(automatically)g(write) f(the)i(required)e(FITS)g(k)m(eyw)m(ords)i(for)f(eac)m(h)120 5153 y(HDU,)e(so)g(y)m(ou,)g(the)g(programmer,)f(usually)e(do)i(not)h (need)f(to)h(w)m(orry)f(ab)s(out)g(them.)1928 5809 y(2)p eop %%Page: 3 3 3 2 bop 120 573 a Fi(2)135 b(Installing)46 b(and)f(Using)g(CFITSIO)120 776 y Fg(First,)32 b(y)m(ou)g(should)d(do)m(wnload)i(the)h(CFITSIO)e (soft)m(w)m(are)j(and)e(the)h(set)g(of)g(example)g(FITS)f(utilit)m(y)f (pro-)120 889 y(grams)h(from)f(the)g(w)m(eb)h(site)f(at)i(h)m (ttp://heasarc.gsfc.nasa.go)m(v/\014tsio.)46 b(The)30 b(example)g(programs)g(illus-)120 1002 y(trate)g(ho)m(w)e(to)h(p)s (erform)f(man)m(y)g(common)h(t)m(yp)s(es)f(of)h(op)s(erations)f(on)g (FITS)g(\014les)g(using)f(CFITSIO.)g(They)120 1115 y(are)h(also)g (useful)d(when)i(writing)f(a)i(new)f(program)g(b)s(ecause)h(it)f(is)g (often)h(easier)f(to)i(tak)m(e)g(a)f(cop)m(y)g(of)g(one)g(of)120 1227 y(these)k(utilit)m(y)e(programs)h(as)g(a)h(template)g(and)f(then)g (mo)s(dify)e(it)i(for)g(y)m(our)h(o)m(wn)f(purp)s(oses,)f(rather)i (than)120 1340 y(writing)c(the)j(new)f(program)g(completely)g(from)g (scratc)m(h.)261 1453 y(T)-8 b(o)28 b(build)c(the)k(CFITSIO)d(library)g (on)i(Unix)f(platforms,)i(`un)m(tar')f(the)h(source)f(co)s(de)h (distribution)23 b(\014le)120 1566 y(and)30 b(then)g(execute)i(the)e (follo)m(wing)f(commands)h(in)f(the)i(directory)e(con)m(taining)h(the)h (source)g(co)s(de:)120 1779 y Fc(>)95 b(./configure)45 b([--prefix=/target/instal)o(lati)o(on/)o(path)o(])120 1892 y(>)95 b(make)524 b(\(or)47 b('make)f(shared'\))120 2005 y(>)95 b(make)47 b(install)141 b(\(this)46 b(step)h(is)g (optional\))261 2217 y Fg(The)40 b(optional)g('pre\014x')g(argumen)m(t) h(to)g(con\014gure)f(giv)m(es)h(the)g(path)f(to)h(the)g(directory)f (where)g(the)120 2330 y(CFITSIO)30 b(library)g(and)h(include)f(\014les) h(should)f(b)s(e)h(installed)f(via)i(the)g(later)g('mak)m(e)h(install') d(command.)120 2443 y(F)-8 b(or)31 b(example,)120 2655 y Fc(>)95 b(./configure)45 b(--prefix=/usr1/local)261 2868 y Fg(will)18 b(cause)j(the)g('mak)m(e)h(install')d(command)h(to)h (cop)m(y)h(the)e(CFITSIO)f(lib)s(c\014tsio)f(\014le)i(to)h(/usr1/lo)s (cal/lib)120 2981 y(and)35 b(the)h(necessary)g(include)e(\014les)h(to)h (/usr1/lo)s(cal/include)e(\(assuming)h(of)g(course)h(that)h(the)f(pro)s (cess)120 3094 y(has)30 b(p)s(ermission)d(to)32 b(write)d(to)i(these)g (directories\).)261 3207 y(Pre-compiled)d(v)m(ersions)h(of)h(the)g (CFITSIO)e(DLL)i(library)d(are)j(a)m(v)-5 b(ailable)29 b(for)g(PCs.)40 b(On)29 b(Macin)m(tosh)120 3320 y(mac)m(hines,)45 b(refer)d(to)g(the)h(README.MacOS)g(\014le)e(for)h(instructions)e(on)i (building)c(CFITSIO)j(using)120 3432 y(Co)s(deW)-8 b(arrior.)261 3545 y(An)m(y)40 b(programs)g(that)h(use)f(CFITSIO)f(m)m(ust)h(of)g (course)h(b)s(e)e(link)m(ed)g(with)g(the)h(CFITSIO)f(library)120 3658 y(when)e(creating)h(the)g(executable)h(\014le.)63 b(The)37 b(exact)j(pro)s(cedure)c(for)i(linking)d(a)k(program)e(dep)s (ends)f(on)120 3771 y(y)m(our)31 b(soft)m(w)m(are)i(en)m(vironmen)m(t,) e(but)g(on)g(Unix)f(platforms,)h(the)g(command)g(line)f(to)i(compile)e (and)h(link)e(a)120 3884 y(program)h(will)e(lo)s(ok)i(something)g(lik)m (e)f(this:)120 4097 y Fc(gcc)47 b(-o)g(myprog)f(myprog.c)g(-L.)h (-lcfitsio)e(-lm)i(-lnsl)f(-lsocket)261 4309 y Fg(Y)-8 b(ou)37 b(ma)m(y)g(not)f(need)g(to)h(include)e(all)g(of)h(the)h('m',)h ('nsl',)f(and)f('so)s(c)m(k)m(et')i(system)f(libraries)c(on)j(y)m(our) 120 4422 y(particular)j(mac)m(hine.)72 b(T)-8 b(o)42 b(\014nd)d(out)i(what)g(libraries)d(are)j(required)e(on)i(y)m(our)g (\(Unix\))f(system,)k(t)m(yp)s(e)120 4535 y Fc('make)i(testprog')28 b Fg(and)i(see)h(what)f(libraries)e(are)i(then)h(included)c(on)j(the)h (resulting)e(link)f(line.)1928 5809 y(3)p eop %%Page: 4 4 4 3 bop 120 573 a Fi(3)135 b(Example)46 b(Programs)120 776 y Fg(Before)32 b(describing)d(the)j(individual)27 b(CFITSIO)i(routines)i(in)f(detail,)h(it)f(is)h(instructiv)m(e)f(to)i (\014rst)f(lo)s(ok)g(at)120 889 y(an)c(actual)g(program.)40 b(The)26 b(names)h(of)g(the)g(CFITSIO)f(routines)g(are)h(fairly)e (descriptiv)m(e)h(\(they)i(all)e(b)s(egin)120 1002 y(with)j Fc(fits)p 525 1002 29 4 v 33 w Fg(,)i(so)g(it)e(should)g(b)s(e)h (reasonably)f(clear)i(what)f(this)f(program)h(do)s(es:)120 1202 y Fc(------------------------)o(----)o(----)o(---)o(----)o(----)o (---)o(----)o(----)o(---)o(----)o(---)311 1315 y(#include)45 b()311 1428 y(#include)g()120 1541 y(1:)95 b(#include)45 b("fitsio.h")311 1767 y(int)i(main\(int)e(argc,)i (char)f(*argv[]\))311 1879 y({)120 1992 y(2:)286 b(fitsfile)45 b(*fptr;)502 2105 y(char)h(card[FLEN_CARD];)120 2218 y(3:)286 b(int)47 b(status)f(=)h(0,)95 b(nkeys,)46 b(ii;)95 b(/*)47 b(MUST)g(initialize)e(status)h(*/)120 2444 y(4:)286 b(fits_open_file\(&fptr,)42 b(argv[1],)j(READONLY,)h(&status\);)502 2557 y(fits_get_hdrspace\(fptr,)41 b(&nkeys,)46 b(NULL,)g(&status\);) 502 2783 y(for)h(\(ii)g(=)g(1;)g(ii)g(<=)h(nkeys;)e(ii++\))94 b({)597 2896 y(fits_read_record\(fptr,)42 b(ii,)47 b(card,)f (&status\);)g(/*)h(read)f(keyword)g(*/)597 3009 y(printf\("\045s\\n",)e (card\);)502 3121 y(})502 3234 y(printf\("END\\n\\n"\);)90 b(/*)48 b(terminate)d(listing)h(with)g(END)h(*/)502 3347 y(fits_close_file\(fptr,)42 b(&status\);)502 3573 y(if)47 b(\(status\))475 b(/*)47 b(print)g(any)g(error)f(messages)f(*/)120 3686 y(5:)477 b(fits_report_error\(stder)o(r,)42 b(status\);)502 3799 y(return\(status\);)311 3912 y(})120 4025 y (------------------------)o(----)o(----)o(---)o(----)o(----)o(---)o (----)o(----)o(---)o(----)o(---)261 4225 y Fg(This)28 b(program)h(op)s(ens)f(the)h(sp)s(eci\014ed)f(FITS)g(\014le)h(and)f (prin)m(ts)g(out)h(all)f(the)i(header)f(k)m(eyw)m(ords)g(in)f(the)120 4338 y(curren)m(t)i(HDU.)i(Some)e(other)h(p)s(oin)m(ts)e(to)i(notice)g (ab)s(out)f(the)g(program)g(are:)231 4516 y(1.)46 b(The)30 b Fc(fitsio.h)e Fg(header)i(\014le)f(m)m(ust)i(b)s(e)e(included)f(to)j (de\014ne)e(the)i(v)-5 b(arious)29 b(routines)g(and)h(sym)m(b)s(ols)347 4629 y(used)g(in)f(CFITSIO.)231 4812 y(2.)46 b(The)37 b Fc(fitsfile)e Fg(parameter)i(is)f(the)h(\014rst)g(argumen)m(t)g(in)f (almost)h(ev)m(ery)h(CFITSIO)d(routine.)60 b(It)347 4925 y(is)40 b(a)i(p)s(oin)m(ter)e(to)i(a)g(structure)e(\(de\014ned)g(in)g Fc(fitsio.h)p Fg(\))g(that)h(stores)h(information)d(ab)s(out)i(the)347 5038 y(particular)g(FITS)g(\014le)g(that)i(the)g(routine)e(will)e(op)s (erate)k(on.)76 b(Memory)43 b(for)f(this)f(structure)g(is)347 5151 y(automatically)33 b(allo)s(cated)f(when)g(the)h(\014le)f(is)f (\014rst)h(op)s(ened)g(or)h(created,)h(and)e(is)g(freed)g(when)g(the) 347 5264 y(\014le)e(is)f(closed.)231 5447 y(3.)46 b(Almost)40 b(ev)m(ery)g(CFITSIO)e(routine)g(has)i(a)g Fc(status)d Fg(parameter)j(as)g(the)g(last)f(argumen)m(t.)69 b(The)347 5560 y(status)28 b(v)-5 b(alue)27 b(is)g(also)h(usually)d(returned)i (as)h(the)g(v)-5 b(alue)27 b(of)h(the)f(function)g(itself.)38 b(Normally)27 b(status)1928 5809 y(4)p eop %%Page: 5 5 5 4 bop 347 573 a Fg(=)22 b(0,)i(and)d(a)h(p)s(ositiv)m(e)f(status)h(v) -5 b(alue)21 b(indicates)g(an)h(error)f(of)h(some)g(sort.)38 b(The)22 b(status)g(v)-5 b(ariable)20 b(m)m(ust)347 686 y(alw)m(a)m(ys)32 b(b)s(e)e(initialized)e(to)k(zero)g(b)s(efore)f(use,) g(b)s(ecause)g(if)f(status)h(is)f(greater)j(than)d(zero)i(on)f(input) 347 799 y(then)e(the)g(CFITSIO)f(routines)g(will)e(simply)g(return)i (without)g(doing)g(an)m(ything.)40 b(This)27 b(`inherited)347 912 y(status')46 b(feature,)j(where)44 b(eac)m(h)i(CFITSIO)e(routine)g (inherits)e(the)j(status)g(from)g(the)g(previous)347 1024 y(routine,)e(mak)m(es)e(it)f(unnecessary)g(to)i(c)m(hec)m(k)g(the) f(status)g(v)-5 b(alue)40 b(after)h(ev)m(ery)h(single)d(CFITSIO)347 1137 y(routine)f(call.)64 b(Generally)38 b(y)m(ou)h(should)e(c)m(hec)m (k)j(the)e(status)h(after)g(an)g(esp)s(ecially)e(imp)s(ortan)m(t)g(or) 347 1250 y(complicated)31 b(routine)f(has)h(b)s(een)g(called,)g(or)g (after)h(a)f(blo)s(c)m(k)g(of)g(closely)g(related)g(CFITSIO)f(calls.) 347 1363 y(This)25 b(example)h(program)h(has)f(tak)m(en)i(this)e (feature)h(to)g(the)g(extreme)g(and)f(only)g(c)m(hec)m(ks)i(the)f (status)347 1476 y(v)-5 b(alue)30 b(at)h(the)g(v)m(ery)g(end)e(of)i (the)f(program.)231 1664 y(4.)46 b(In)37 b(this)e(example)i(program)g (the)g(\014le)f(name)h(to)h(b)s(e)e(op)s(ened)h(is)f(giv)m(en)h(as)g (an)g(argumen)m(t)g(on)g(the)347 1777 y(command)e(line)f(\()p Fc(arg[1])p Fg(\).)53 b(If)35 b(the)g(\014le)g(con)m(tains)g(more)g (than)g(1)g(HDU)h(or)f(extension,)i(y)m(ou)e(can)347 1890 y(sp)s(ecify)19 b(whic)m(h)g(particular)g(HDU)i(to)g(b)s(e)f(op)s (ened)f(b)m(y)h(enclosing)g(the)g(name)g(or)h(n)m(um)m(b)s(er)e(of)h (the)h(HDU)347 2002 y(in)j(square)i(brac)m(k)m(ets)h(follo)m(wing)d (the)h(ro)s(ot)h(name)g(of)f(the)h(\014le.)38 b(F)-8 b(or)26 b(example,)h Fc(file.fts[0])22 b Fg(op)s(ens)347 2115 y(the)31 b(primary)d(arra)m(y)-8 b(,)32 b(while)d Fc(file.fts[2])e Fg(will)h(mo)m(v)m(e)k(to)f(and)f(op)s(en)f(the)i(2nd) f(extension)g(in)f(the)347 2228 y(\014le,)36 b(and)e Fc(file.fit[EVENTS])d Fg(will)h(op)s(en)j(the)g(extension)f(that)i(has) f(a)g Fc(EXTNAME)46 b(=)i('EVENTS')347 2341 y Fg(k)m(eyw)m(ord)31 b(in)e(the)h(header.)41 b(Note)31 b(that)g(on)f(the)h(Unix)e(command)h (line)f(y)m(ou)h(m)m(ust)g(enclose)h(the)f(\014le)347 2454 y(name)h(in)e(single)g(or)i(double)e(quote)j(c)m(haracters)g(if)d (the)i(name)g(con)m(tains)f(sp)s(ecial)g(c)m(haracters)i(suc)m(h)347 2567 y(as)f(`[')g(or)f(`]'.)347 2717 y(All)42 b(of)h(the)h(CFITSIO)d (routines)h(whic)m(h)g(read)h(or)g(write)g(header)g(k)m(eyw)m(ords,)k (image)c(data,)k(or)347 2830 y(table)31 b(data)g(op)s(erate)g(only)f (within)e(the)j(curren)m(tly)f(op)s(ened)g(HDU)h(in)e(the)i(\014le.)41 b(T)-8 b(o)31 b(read)g(or)f(write)347 2943 y(information)36 b(in)g(a)i(di\013eren)m(t)f(HDU)h(y)m(ou)g(m)m(ust)f(\014rst)g (explicitly)e(mo)m(v)m(e)j(to)h(that)f(HDU)g(\(see)g(the)347 3056 y Fc(fits)p 545 3056 29 4 v 34 w(movabs)p 867 3056 V 32 w(hdu)30 b Fg(and)g Fc(fits)p 1442 3056 V 33 w(movrel)p 1763 3056 V 33 w(hdu)f Fg(routines)g(in)g(section)i(4.3\).)231 3244 y(5.)46 b(The)25 b Fc(fits)p 727 3244 V 33 w(report)p 1048 3244 V 33 w(error)e Fg(routine)h(pro)m(vides)g(a)h(con)m(v)m (enien)m(t)h(w)m(a)m(y)g(to)g(prin)m(t)e(out)h(diagnostic)f(mes-)347 3357 y(sages)32 b(ab)s(out)e(an)m(y)g(error)g(that)h(ma)m(y)g(ha)m(v)m (e)h(o)s(ccurred.)261 3544 y(A)f(set)g(of)f(example)g(FITS)g(utilit)m (y)f(programs)h(are)g(a)m(v)-5 b(ailable)30 b(from)g(the)g(CFITSIO)f(w) m(eb)i(site)f(at)120 3657 y(h)m(ttp://heasarc.gsfc.nasa.go)m(v/do)s (cs/soft)n(w)m(are/)q(\014tsio/cexa)q(mples.h)m(tml.)87 b(These)45 b(are)g(real)f(w)m(orking)120 3770 y(programs)e(whic)m(h)e (illustrate)g(ho)m(w)i(to)h(read,)i(write,)f(and)d(mo)s(dify)f(FITS)i (\014les)e(using)h(the)h(CFITSIO)120 3883 y(library)-8 b(.)36 b(Most)24 b(of)g(these)f(programs)g(are)h(v)m(ery)f(short,)i (con)m(taining)e(only)f(a)i(few)f(10s)h(of)f(lines)e(of)j(executable) 120 3996 y(co)s(de)32 b(or)g(less,)g(y)m(et)h(they)f(p)s(erform)e (quite)h(useful)f(op)s(erations)h(on)h(FITS)f(\014les.)44 b(Running)30 b(eac)m(h)j(program)120 4109 y(without)40 b(an)m(y)h(command)f(line)f(argumen)m(ts)i(will)d(pro)s(duce)h(a)i (short)f(description)f(of)i(ho)m(w)g(to)g(use)f(the)120 4222 y(program.)g(The)30 b(curren)m(tly)g(a)m(v)-5 b(ailable)29 b(programs)h(are:)347 4409 y(\014tscop)m(y)h(-)g(cop)m(y)g(a)g(\014le) 347 4522 y(listhead)e(-)i(list)e(header)h(k)m(eyw)m(ords)347 4635 y(liststruc)f(-)i(sho)m(w)f(the)g(structure)g(of)h(a)g(FITS)e (\014le.)347 4748 y(mo)s(dhead)h(-)g(write)g(or)g(mo)s(dify)f(a)i (header)f(k)m(eyw)m(ord)347 4861 y(imarith)f(-)h(add,)g(subtract,)h(m)m (ultiply)-8 b(,)28 b(or)j(divide)d(2)j(images)347 4974 y(imlist)d(-)j(list)e(pixel)g(v)-5 b(alues)29 b(in)g(an)i(image)347 5087 y(imstat)g(-)f(compute)h(mean,)g(min,)e(and)g(max)i(pixel)e(v)-5 b(alues)29 b(in)g(an)i(image)347 5200 y(tablist)f(-)g(displa)m(y)f(the) h(con)m(ten)m(ts)i(of)f(a)g(FITS)e(table)347 5313 y(tab)s(calc)i(-)g (general)f(table)g(calculator)1928 5809 y(5)p eop %%Page: 6 6 6 5 bop 120 573 a Fi(4)135 b(CFITSIO)44 b(Routines)120 776 y Fg(This)36 b(c)m(hapter)i(describ)s(es)e(the)h(main)g(CFITSIO)f (routines)g(that)i(can)g(b)s(e)f(used)g(to)h(p)s(erform)e(the)i(most) 120 889 y(common)31 b(t)m(yp)s(es)f(of)h(op)s(erations)e(on)i(FITS)e (\014les.)120 1136 y Fb(4.1)112 b(Error)37 b(Rep)s(orting)120 1310 y Fc(void)47 b(fits_report_error\(FILE)41 b(*stream,)46 b(int)h(status\))120 1423 y(void)g(fits_get_errstatus\(int)41 b(status,)46 b(char)h(*err_text\))120 1536 y(float)f (fits_get_version\(float)c(*version\))261 1748 y Fg(The)24 b(\014rst)g(routine)f(prin)m(ts)g(out)i(information)e(ab)s(out)h(an)m (y)h(error)f(that)h(has)g(o)s(ccurred.)38 b(Whenev)m(er)25 b(an)m(y)120 1861 y(CFITSIO)f(routine)h(encoun)m(ters)i(an)f(error)f (it)h(usually)d(writes)i(a)i(message)g(describing)c(the)j(nature)g(of)g (the)120 1974 y(error)g(to)i(an)e(in)m(ternal)f(error)i(message)g(stac) m(k)h(and)e(then)h(returns)e(with)g(a)i(p)s(ositiv)m(e)f(in)m(teger)h (status)g(v)-5 b(alue.)120 2087 y(P)m(assing)27 b(the)h(error)f(status) h(v)-5 b(alue)27 b(to)h(this)f(routine)f(will)f(cause)j(a)g(generic)g (description)d(of)j(the)g(error)f(and)120 2200 y(all)e(the)i(messages)h (from)e(the)h(in)m(ternal)e(CFITSIO)g(error)h(stac)m(k)i(to)g(b)s(e)e (prin)m(ted)f(to)i(the)g(sp)s(eci\014ed)e(stream.)120 2313 y(The)30 b Fc(stream)f Fg(parameter)h(is)g(usually)e(set)j(equal)f (to)h Fc("stdout")d Fg(or)i Fc("stderr")p Fg(.)261 2426 y(The)25 b(second)g(routine)f(simply)e(returns)i(a)h(30-c)m(haracter)j (descriptiv)m(e)c(error)g(message)i(corresp)s(onding)120 2538 y(to)31 b(the)g(input)d(status)j(v)-5 b(alue.)261 2651 y(The)30 b(last)g(routine)g(returns)f(the)h(curren)m(t)g(CFITSIO)f (library)f(v)m(ersion)i(n)m(um)m(b)s(er.)120 2899 y Fb(4.2)112 b(File)37 b(Op)s(en/Close)g(Routines)120 3072 y Fc(int)47 b(fits_open_file\()d(fitsfile)h(**fptr,)h(char)h(*filename,)e(int)h (mode,)h(int)g(*status\))120 3185 y(int)g(fits_open_data\()d(fitsfile)h (**fptr,)h(char)h(*filename,)e(int)h(mode,)h(int)g(*status\))120 3298 y(int)g(fits_open_table\(fitsfile)41 b(**fptr,)46 b(char)h(*filename,)e(int)h(mode,)h(int)g(*status\))120 3411 y(int)g(fits_open_image\(fitsfile)41 b(**fptr,)46 b(char)h(*filename,)e(int)h(mode,)h(int)g(*status\))120 3637 y(int)g(fits_create_file\(fitsfil)o(e)42 b(**fptr,)k(char)g (*filename,)f(int)i(*status\))120 3750 y(int)g (fits_close_file\(fitsfile)41 b(*fptr,)46 b(int)h(*status\))261 3962 y Fg(These)38 b(routines)e(op)s(en)i(or)f(close)i(a)f(\014le.)62 b(The)37 b(\014rst)g Fc(fitsfile)f Fg(parameter)i(in)f(these)h(and)f (nearly)120 4075 y(ev)m(ery)28 b(other)g(CFITSIO)f(routine)f(is)h(a)h (p)s(oin)m(ter)f(to)h(a)g(structure)g(that)g(CFITSIO)e(uses)h(to)i (store)f(relev)-5 b(an)m(t)120 4188 y(parameters)31 b(ab)s(out)f(eac)m (h)i(op)s(ened)e(\014le.)41 b(Y)-8 b(ou)31 b(should)e(nev)m(er)i (directly)e(read)i(or)f(write)g(an)m(y)h(information)120 4301 y(in)23 b(this)h(structure.)38 b(Memory)26 b(for)e(this)g (structure)g(is)g(allo)s(cated)g(automatically)h(when)f(the)h(\014le)e (is)h(op)s(ened)120 4414 y(or)30 b(created,)i(and)e(is)f(freed)h(when)g (the)g(\014le)g(is)f(closed.)261 4527 y(The)f Fc(mode)e Fg(parameter)j(in)d(the)i Fc(fits)p 1552 4527 29 4 v 34 w(open)p 1778 4527 V 33 w(xxxx)f Fg(set)h(of)g(routines)f(can)h(b)s (e)f(set)i(to)f(either)g Fc(READONLY)120 4640 y Fg(or)i Fc(READWRITE)d Fg(to)j(select)g(the)g(t)m(yp)s(e)f(of)h(\014le)f (access)i(that)f(will)d(b)s(e)i(allo)m(w)m(ed.)40 b(These)29 b(sym)m(b)s(olic)f(constan)m(ts)120 4753 y(are)j(de\014ned)e(in)g Fc(fitsio.h)p Fg(.)261 4866 y(The)k Fc(fits)p 649 4866 V 33 w(open)p 874 4866 V 34 w(file)f Fg(routine)h(op)s(ens)f(the)i (\014le)f(and)f(p)s(ositions)g(the)i(in)m(ternal)e(\014le)g(p)s(oin)m (ter)h(to)h(the)120 4979 y(b)s(eginning)21 b(of)j(the)g(\014le,)g(or)g (to)h(the)f(sp)s(eci\014ed)e(extension)h(if)g(an)h(extension)f(name)h (or)g(n)m(um)m(b)s(er)e(is)h(app)s(ended)120 5092 y(to)k(the)f(\014le)g (name)g(\(see)h(the)g(later)f(section)h(on)f(\\CFITSIO)f(File)g(Names)i (and)f(Filters")g(for)g(a)g(description)120 5204 y(of)32 b(the)f(syn)m(tax\).)45 b Fc(fits)p 945 5204 V 33 w(open)p 1170 5204 V 33 w(data)31 b Fg(b)s(eha)m(v)m(es)g(similarly)d(except)33 b(that)f(it)f(will)d(mo)m(v)m(e)33 b(to)f(the)g(\014rst)f(HDU)120 5317 y(con)m(taining)k(signi\014can)m(t)f(data)i(if)e(a)i(HDU)g(name)g (or)f(n)m(um)m(b)s(er)f(to)i(op)s(en)f(is)f(not)i(explicitly)c(sp)s (eci\014ed)i(as)120 5430 y(part)23 b(of)h(the)g(\014lename.)38 b(It)23 b(will)e(mo)m(v)m(e)k(to)g(the)e(\014rst)g(IMA)m(GE)i(HDU)f (with)e(NAXIS)i(greater)h(than)e(0,)j(or)d(the)1928 5809 y(6)p eop %%Page: 7 7 7 6 bop 120 573 a Fg(\014rst)29 b(table)g(that)i(do)s(es)e(not)h(con)m (tain)g(the)g(strings)e(`GTI')i(\(a)g(Go)s(o)s(d)g(Time)e(In)m(terv)-5 b(al)30 b(extension\))f(or)h(`OB-)120 686 y(ST)-8 b(ABLE')37 b(in)f(the)h(EXTNAME)h(k)m(eyw)m(ord)f(v)-5 b(alue.)61 b(The)36 b Fc(fits)p 2380 686 29 4 v 34 w(open)p 2606 686 V 33 w(table)g Fg(and)g Fc(fits)p 3290 686 V 34 w(open)p 3516 686 V 33 w(image)120 799 y Fg(routines)e(are)i(similar)c(except)37 b(that)f(they)f(will)e(mo)m(v)m(e)j(to)g(the)g(\014rst)e(signi\014can)m (t)h(table)g(HDU)h(or)f(image)120 912 y(HDU,)c(resp)s(ectiv)m(ely)f(if) f(a)i(HDU)g(name)g(of)f(n)m(um)m(b)s(er)f(is)h(not)g(sp)s(eci\014ed)f (as)i(part)f(of)g(the)h(input)d(\014le)i(name.)261 1024 y(When)e(op)s(ening)f(an)h(existing)f(\014le,)h(the)h Fc(filename)d Fg(can)i(include)e(optional)i(argumen)m(ts,)h(enclosed)f (in)120 1137 y(square)h(brac)m(k)m(ets)i(that)f(sp)s(ecify)e (\014ltering)g(op)s(erations)g(that)i(should)e(b)s(e)h(applied)e(to)j (the)g(input)d(\014le.)40 b(F)-8 b(or)120 1250 y(example,)263 1428 y Fc(myfile.fit[EVENTS][counts)41 b(>)48 b(0])120 1605 y Fg(op)s(ens)27 b(the)i(table)f(in)f(the)i(EVENTS)e(extension)h (and)g(creates)i(a)e(virtual)f(table)h(b)m(y)g(selecting)g(only)g (those)120 1718 y(ro)m(ws)g(where)f(the)i(COUNTS)d(column)h(v)-5 b(alue)28 b(is)f(greater)i(than)f(0.)40 b(See)28 b(section)g(5)h(for)f (more)g(examples)f(of)120 1831 y(these)k(p)s(o)m(w)m(erful)e (\014ltering)f(capabilities.)261 1944 y(In)38 b Fc(fits)p 581 1944 V 33 w(create)p 902 1944 V 33 w(file)p Fg(,)h(the)g Fc(filename)d Fg(is)i(simply)e(the)i(ro)s(ot)h(name)f(of)h(the)g (\014le)e(to)i(b)s(e)f(created.)120 2057 y(Y)-8 b(ou)36 b(can)g(o)m(v)m(erwrite)g(an)g(existing)e(\014le)h(b)m(y)g(pre\014xing) f(the)i(name)g(with)e(a)i(`!')57 b(c)m(haracter)37 b(\(on)f(the)f(Unix) 120 2170 y(command)30 b(line)e(this)h(m)m(ust)g(b)s(e)g(pre\014xed)g (with)g(a)h(bac)m(kslash,)g(as)g(in)e Fc(`\\!file.fit')p Fg(\).)38 b(If)29 b(the)h(\014le)f(name)120 2282 y(ends)f(with)f Fc(.gz)h Fg(the)h(\014le)f(will)e(b)s(e)i(compressed)g(using)f(the)i (gzip)f(algorithm.)39 b(If)29 b(the)f(\014lename)g(is)g Fc(stdout)120 2395 y Fg(or)h Fc("-")e Fg(\(a)j(single)d(dash)h(c)m (haracter\))j(then)d(the)h(output)f(\014le)g(will)e(b)s(e)i(pip)s(ed)e (to)k(the)f(stdout)f(stream.)41 b(Y)-8 b(ou)120 2508 y(can)27 b(c)m(hain)f(sev)m(eral)g(tasks)h(together)h(b)m(y)f(writing)d (the)j(output)f(from)g(the)g(\014rst)g(task)h(to)g Fc(stdout)e Fg(and)h(then)120 2621 y(reading)j(the)i(input)d(\014le)i(in)f(the)i (2nd)e(task)i(from)f Fc(stdin)f Fg(or)h Fc("-")p Fg(.)120 2867 y Fb(4.3)112 b(HDU-lev)m(el)36 b(Routines)261 3040 y Fg(The)30 b(routines)f(listed)g(in)g(this)h(section)g(op)s(erate)h (on)f(Header-Data)j(Units)d(\(HDUs\))h(in)e(a)i(\014le.)120 3153 y Fc(________________________)o(____)o(____)o(___)o(____)o(____)o (___)o(____)o(____)o(___)o(____)o(__)120 3266 y(int)47 b(fits_get_num_hdus\(fitsfi)o(le)42 b(*fptr,)k(int)h(*hdunum,)e(int)i (*status\))120 3379 y(int)g(fits_get_hdu_num\(fitsfil)o(e)42 b(*fptr,)94 b(int)47 b(*hdunum\))261 3579 y Fg(The)39 b(\014rst)f(routines)g(returns)g(the)h(total)h(n)m(um)m(b)s(er)e(of)h (HDUs)h(in)d(the)j(FITS)e(\014le,)j(and)d(the)h(second)120 3692 y(routine)32 b(returns)f(the)i(p)s(osition)e(of)i(the)g(curren)m (tly)e(op)s(ened)h(HDU)i(in)d(the)i(FITS)f(\014le)g(\(starting)g(with)g (1,)120 3805 y(not)f(0\).)120 4005 y Fc(________________________)o (____)o(____)o(___)o(____)o(____)o(___)o(____)o(____)o(___)o(____)o (____)o(___)o(____)o(__)120 4118 y(int)47 b(fits_movabs_hdu\(fitsfile) 41 b(*fptr,)46 b(int)h(hdunum,)f(int)h(*hdutype,)e(int)i(*status\))120 4231 y(int)g(fits_movrel_hdu\(fitsfile)41 b(*fptr,)46 b(int)h(nmove,)94 b(int)47 b(*hdutype,)e(int)i(*status\))120 4344 y(int)g(fits_movnam_hdu\(fitsfile)41 b(*fptr,)46 b(int)h(hdutype,)f(char)g(*extname,)1075 4457 y(int)g(extver,)g(int)h (*status\))261 4657 y Fg(These)31 b(routines)f(enable)h(y)m(ou)g(to)h (mo)m(v)m(e)g(to)g(a)g(di\013eren)m(t)e(HDU)i(in)e(the)h(\014le.)42 b(Most)32 b(of)g(the)f(CFITSIO)120 4770 y(functions)g(whic)m(h)h(read)h (or)g(write)f(k)m(eyw)m(ords)h(or)g(data)h(op)s(erate)f(only)g(on)f (the)h(curren)m(tly)f(op)s(ened)h(HDU)120 4883 y(in)h(the)h(\014le.)53 b(The)34 b(\014rst)g(routine)g(mo)m(v)m(es)i(to)g(the)f(sp)s(eci\014ed) e(absolute)i(HDU)g(n)m(um)m(b)s(er)f(in)f(the)i(FITS)f(\014le)120 4996 y(\(the)e(\014rst)f(HDU)i(=)e(1\),)i(whereas)f(the)g(second)f (routine)g(mo)m(v)m(es)i(a)f(relativ)m(e)g(n)m(um)m(b)s(er)f(of)h(HDUs) g(forw)m(ard)120 5109 y(or)f(bac)m(kw)m(ard)h(from)e(the)i(curren)m (tly)e(op)s(en)g(HDU.)i(The)f Fc(hdutype)e Fg(parameter)i(returns)f (the)i(t)m(yp)s(e)f(of)g(the)120 5222 y(newly)d(op)s(ened)h(HDU,)i(and) e(will)e(b)s(e)i(equal)g(to)h(one)g(of)g(these)g(sym)m(b)s(olic)e (constan)m(t)j(v)-5 b(alues:)40 b Fc(IMAGE)p 3564 5222 V 33 w(HDU,)120 5334 y(ASCII)p 366 5334 V 33 w(TBL,)47 b(or)g(BINARY)p 1069 5334 V 33 w(TBL)p Fg(.)37 b Fc(hdutype)g Fg(ma)m(y)h(b)s(e)g(set)h(to)g(NULL)f(if)f(it)h(is)g(not)g(needed.)64 b(The)38 b(third)120 5447 y(routine)30 b(mo)m(v)m(es)j(to)f(the)f (\(\014rst\))h(HDU)g(that)f(matc)m(hes)i(the)e(input)f(extension)h(t)m (yp)s(e,)g(name,)h(and)f(v)m(ersion)120 5560 y(n)m(um)m(b)s(er,)23 b(as)f(giv)m(en)h(b)m(y)f(the)g Fc(XTENSION,)46 b(EXTNAME)20 b Fg(\(or)j Fc(HDUNAME)p Fg(\))d(and)i Fc(EXTVER)f Fg(k)m(eyw)m(ords.) 38 b(If)22 b(the)g(input)1928 5809 y(7)p eop %%Page: 8 8 8 7 bop 120 573 a Fg(v)-5 b(alue)33 b(of)g Fc(extver)e Fg(=)i(0,)i(then)e(the)g(v)m(ersion)g(n)m(um)m(b)s(er)e(will)g(b)s(e)h (ignored)h(when)f(lo)s(oking)g(for)h(a)g(matc)m(hing)120 686 y(HDU.)120 898 y Fc(________________________)o(____)o(____)o(___)o (____)o(____)o(___)o(____)o(____)o(___)o(____)o(____)120 1011 y(int)47 b(fits_get_hdu_type\(fitsfi)o(le)42 b(*fptr,)93 b(int)47 b(*hdutype,)f(int)g(*status\))261 1224 y Fg(Get)21 b(the)g(t)m(yp)s(e)f(of)h(the)f(curren)m(t)g(HDU)h(in)e(the)i(FITS)e (\014le:)35 b Fc(IMAGE)p 2435 1224 29 4 v 33 w(HDU,)47 b(ASCII)p 2947 1224 V 33 w(TBL,)f(or)h(BINARY)p 3649 1224 V 33 w(TBL)p Fg(.)120 1436 y Fc(________________________)o(____)o (____)o(___)o(____)o(____)o(___)o(____)o(____)o(___)o(____)o(____)o (___)120 1549 y(int)g(fits_copy_hdu\(fitsfile)42 b(*infptr,)j(fitsfile) h(*outfptr,)f(int)i(morekeys,)979 1662 y(int)g(*status\))120 1775 y(int)g(fits_copy_file\(fitsfile)41 b(*infptr,)46 b(fitsfile)f(*outfptr,)h(int)h(previous,)979 1888 y(int)g(current,)f (int)g(following,)f(>)j(int)f(*status\))261 2100 y Fg(The)34 b(\014rst)g(routine)f(copies)i(the)f(curren)m(t)g(HDU)i(from)e(the)g (FITS)g(\014le)g(asso)s(ciated)g(with)g(infptr)e(and)120 2213 y(app)s(ends)i(it)i(to)h(the)f(end)f(of)h(the)g(FITS)g(\014le)f (asso)s(ciated)h(with)f(outfptr.)57 b(Space)36 b(ma)m(y)h(b)s(e)e (reserv)m(ed)i(for)120 2326 y Fc(morekeys)32 b Fg(additional)h(k)m(eyw) m(ords)i(in)f(the)g(output)h(header.)53 b(The)35 b(second)f(routine)g (copies)h(an)m(y)g(HDUs)120 2439 y(previous)41 b(to)j(the)e(curren)m(t) h(HDU,)h(and/or)e(the)h(curren)m(t)f(HDU,)i(and/or)f(an)m(y)g(HDUs)g (follo)m(wing)e(the)120 2552 y(curren)m(t)22 b(HDU,)h(dep)s(ending)c (on)j(the)g(v)-5 b(alue)22 b(\(T)-8 b(rue)22 b(or)g(F)-8 b(alse\))23 b(of)f Fc(previous,)45 b(current)p Fg(,)22 b(and)g Fc(following)p Fg(,)120 2665 y(resp)s(ectiv)m(ely)-8 b(.)40 b(F)-8 b(or)32 b(example,)215 2853 y Fc(fits_copy_file\(infptr,) 42 b(outfptr,)k(0,)h(1,)g(1,)g(&status\);)120 3040 y Fg(will)32 b(cop)m(y)k(the)f(curren)m(t)g(HDU)g(and)g(an)m(y)g(HDUs)g (that)h(follo)m(w)e(it)g(from)h(the)g(input)e(to)i(the)h(output)e (\014le,)120 3153 y(but)c(it)g(will)d(not)k(cop)m(y)g(an)m(y)g(HDUs)g (preceding)e(the)i(curren)m(t)f(HDU.)1928 5809 y(8)p eop %%Page: 9 9 9 8 bop 120 573 a Fb(4.4)112 b(Image)37 b(I/O)h(Routines)120 744 y Fg(This)29 b(section)h(lists)f(the)i(more)f(imp)s(ortan)m(t)g (CFITSIO)e(routines)i(whic)m(h)f(op)s(erate)i(on)f(FITS)g(images.)120 956 y Fc(________________________)o(____)o(____)o(___)o(____)o(____)o (___)o(____)o(____)o(___)o(____)o(__)120 1069 y(int)47 b(fits_get_img_type\(fitsfi)o(le)42 b(*fptr,)k(int)h(*bitpix,)e(int)i (*status\))120 1181 y(int)g(fits_get_img_dim\()c(fitsfile)j(*fptr,)g (int)h(*naxis,)93 b(int)47 b(*status\))120 1294 y(int)g (fits_get_img_size\(fitsfi)o(le)42 b(*fptr,)k(int)h(maxdim,)93 b(long)47 b(*naxes,)1170 1407 y(int)g(*status\))120 1520 y(int)g(fits_get_img_param\(fitsf)o(ile)41 b(*fptr,)46 b(int)h(maxdim,)94 b(int)47 b(*bitpix,)1218 1633 y(int)g(*naxis,)e (long)i(*naxes,)f(int)h(*status\))261 1844 y Fg(Get)38 b(information)e(ab)s(out)h(the)g(curren)m(tly)f(op)s(ened)h(image)g (HDU.)h(The)f(\014rst)f(routine)g(returns)g(the)120 1957 y(datat)m(yp)s(e)41 b(of)e(the)h(image)g(as)g(\(de\014ned)f(b)m(y)g (the)h Fc(BITPIX)e Fg(k)m(eyw)m(ord\),)43 b(whic)m(h)38 b(can)i(ha)m(v)m(e)h(the)f(follo)m(wing)120 2070 y(sym)m(b)s(olic)29 b(constan)m(t)i(v)-5 b(alues:)311 2256 y Fc(BYTE_IMG)141 b(=)i(8)g(\()47 b(8-bit)g(byte)f(pixels,)g(0)h(-)h(255\))311 2369 y(SHORT_IMG)93 b(=)i(16)143 b(\(16)47 b(bit)g(integer)e(pixels\)) 311 2482 y(LONG_IMG)141 b(=)95 b(32)143 b(\(32-bit)46 b(integer)f(pixels\))311 2595 y(FLOAT_IMG)93 b(=)47 b(-32)143 b(\(32-bit)46 b(floating)f(point)h(pixels\))311 2708 y(DOUBLE_IMG)f(=)i(-64)143 b(\(64-bit)46 b(floating)f(point)h(pixels\)) 261 2895 y Fg(The)34 b(second)g(and)f(third)f(routines)h(return)g(the)h (n)m(um)m(b)s(er)e(of)i(dimensions)d(in)i(the)h(image)g(\(from)g(the) 120 3007 y Fc(NAXIS)25 b Fg(k)m(eyw)m(ord\),)j(and)e(the)h(sizes)f(of)g (eac)m(h)i(dimension)c(\(from)i(the)g Fc(NAXIS1,)46 b(NAXIS2)p Fg(,)26 b(etc.)40 b(k)m(eyw)m(ords\).)120 3120 y(The)g(last)h(routine)f (simply)f(com)m(bines)h(the)i(function)d(of)i(the)h(\014rst)e(3)h (routines.)72 b(The)40 b(input)f Fc(maxdim)120 3233 y Fg(parameter)28 b(in)f(this)f(routine)h(giv)m(es)h(the)g(maxim)m(um)f (n)m(um)m(b)s(er)f(dimensions)f(that)k(ma)m(y)f(b)s(e)f(returned)g (\(i.e.,)120 3346 y(the)k(dimension)c(of)k(the)f Fc(naxes)f Fg(arra)m(y\))120 3557 y Fc(________________________)o(____)o(____)o (___)o(____)o(____)o(___)o(____)o(____)o(___)o(_)120 3670 y(int)47 b(fits_create_img\(fitsfile)41 b(*fptr,)46 b(int)h(bitpix,)f(int)h(naxis,)1075 3783 y(long)f(*naxes,)g(int)h (*status\))261 3994 y Fg(Create)28 b(an)f(image)h(HDU)g(b)m(y)f (writing)e(the)i(required)f(k)m(eyw)m(ords)h(whic)m(h)f(de\014ne)h(the) g(structure)g(of)g(the)120 4107 y(image.)50 b(The)33 b(2nd)f(through)h(4th)h(parameters)f(sp)s(eci\014ed)f(the)h(datat)m(yp) s(e,)j(the)d(n)m(um)m(b)s(er)f(of)i(dimensions,)120 4220 y(and)26 b(the)h(sizes)f(of)g(the)h(dimensions.)37 b(The)26 b(allo)m(w)m(ed)g(v)-5 b(alues)26 b(of)h(the)f Fc(bitpix)f Fg(parameter)i(are)g(listed)e(ab)s(o)m(v)m(e)120 4333 y(in)32 b(the)h(description)e(of)i(the)g Fc(fits)p 1319 4333 29 4 v 33 w(get)p 1496 4333 V 33 w(img)p 1673 4333 V 34 w(type)f Fg(routine.)47 b(If)32 b(the)h(FITS)f(\014le)g(p)s(oin)m (ted)g(to)i(b)m(y)f Fc(fptr)e Fg(is)120 4446 y(empt)m(y)c(\(previously) d(created)j(with)e Fc(fits)p 1575 4446 V 33 w(create)p 1896 4446 V 33 w(file)p Fg(\))g(then)h(this)f(routine)g(creates)j(a)f (primary)d(arra)m(y)120 4559 y(in)36 b(the)h(\014le,)h(otherwise)f(a)g (new)g(IMA)m(GE)h(extension)f(is)f(app)s(ended)f(to)j(end)f(of)g(the)g (\014le)g(follo)m(wing)e(the)120 4672 y(other)c(HDUs)g(in)e(the)h (\014le.)120 4883 y Fc(________________________)o(____)o(____)o(___)o (____)o(____)o(___)o(____)o(____)o(___)o(____)o(_)120 4996 y(int)47 b(fits_write_pix\(fitsfile)41 b(*fptr,)46 b(int)h(datatype,)f(long)g(*fpixel,)836 5109 y(long)h(nelements,)e (void)h(*array,)g(int)h(*status\);)120 5334 y(int)g (fits_write_pixnull\(fitsf)o(ile)41 b(*fptr,)46 b(int)h(datatype,)f (long)g(*fpixel,)836 5447 y(long)h(nelements,)e(void)h(*array,)g(void)h (*nulval,)e(int)i(*status\);)1928 5809 y Fg(9)p eop %%Page: 10 10 10 9 bop 120 573 a Fc(int)47 b(fits_read_pix\(fitsfile)42 b(*fptr,)k(int)94 b(datatype,)46 b(long)g(*fpixel,)979 686 y(long)h(nelements,)e(void)h(*nulval,)g(void)h(*array,)979 799 y(int)g(*anynul,)f(int)g(*status\))261 1007 y Fg(Read)32 b(or)f(write)f(all)g(or)h(part)h(of)f(the)g(FITS)g(image.)43 b(There)31 b(are)h(2)f(di\013eren)m(t)g('write')g(pixel)e(routines:)120 1120 y(The)23 b(\014rst)g(simply)e(writes)i(the)h(input)e(arra)m(y)i (of)g(pixels)e(to)i(the)g(FITS)f(\014le.)38 b(The)23 b(second)h(is)f(similar,)f(except)120 1233 y(that)30 b(it)e(substitutes)g(the)h(appropriate)f(n)m(ull)f(pixel)g(v)-5 b(alue)29 b(in)f(the)h(FITS)f(\014le)g(for)h(an)m(y)g(pixels)e(whic)m (h)h(ha)m(v)m(e)120 1346 y(a)j(v)-5 b(alue)29 b(equal)h(to)h Fc(*nulval)d Fg(\(note)j(that)g(this)e(parameter)h(giv)m(es)h(the)f (address)f(of)i(the)f(n)m(ull)e(pixel)h(v)-5 b(alue,)120 1459 y(not)35 b(the)g(v)-5 b(alue)34 b(itself)7 b(\).)52 b(Similarly)-8 b(,)33 b(when)g(reading)h(an)h(image,)h(CFITSIO)d(will)f (substitute)h(the)i(v)-5 b(alue)120 1572 y(giv)m(en)29 b(b)m(y)f Fc(nulval)f Fg(for)i(an)m(y)g(unde\014ned)d(pixels)h(in)h (the)h(image,)g(unless)e Fc(nulval)46 b(=)i(NULL)p Fg(,)27 b(in)h(whic)m(h)f(case)120 1685 y(no)j(c)m(hec)m(ks)i(will)c(b)s(e)i (made)g(for)g(unde\014ned)e(pixels)h(when)g(reading)h(the)g(FITS)g (image.)261 1798 y(The)35 b Fc(fpixel)f Fg(parameter)i(in)e(these)i (routines)e(is)h(an)g(arra)m(y)h(whic)m(h)e(giv)m(es)i(the)g(co)s (ordinate)f(in)f(eac)m(h)120 1910 y(dimension)22 b(of)k(the)f(\014rst)f (pixel)g(to)h(b)s(e)g(read)g(or)g(written,)g(and)g Fc(nelements)d Fg(is)i(the)h(total)h(n)m(um)m(b)s(er)e(of)h(pixels)120 2023 y(to)i(read)g(or)f(write.)39 b Fc(array)25 b Fg(is)h(the)g (address)g(of)h(an)f(arra)m(y)h(whic)m(h)e(either)h(con)m(tains)h(the)g (pixel)e(v)-5 b(alues)26 b(to)h(b)s(e)120 2136 y(written,)k(or)g(will)e (hold)g(the)j(v)-5 b(alues)30 b(of)i(the)f(pixels)f(that)i(are)f(read.) 43 b(When)31 b(reading,)g Fc(array)f Fg(m)m(ust)h(ha)m(v)m(e)120 2249 y(b)s(een)k(allo)s(cated)h(large)g(enough)f(to)i(hold)d(all)h(the) h(returned)f(pixel)f(v)-5 b(alues.)56 b(These)36 b(routines)e(starts)j (at)120 2362 y(the)e Fc(fpixel)d Fg(lo)s(cation)i(and)g(then)g(read)h (or)f(write)g(the)g Fc(nelements)e Fg(pixels,)i(con)m(tin)m(uing)g(on)g (successiv)m(e)120 2475 y(ro)m(ws)f(of)g(the)g(image)g(if)f(necessary) -8 b(.)49 b(F)-8 b(or)34 b(example,)g(to)f(write)f(an)h(en)m(tire)g(2D) h(image,)g(set)f Fc(fpixel[0])46 b(=)120 2588 y(fpixel[1])f(=)j(1)p Fg(,)35 b(and)f Fc(nelements)46 b(=)h(NAXIS1)f(*)i(NAXIS2)p Fg(.)j(Or)34 b(to)i(read)e(just)g(the)h(10th)h(ro)m(w)e(of)h(the)120 2701 y(image,)49 b(set)c Fc(fpixel[0])g(=)j(1,)f(fpixel[1])e(=)j(10)p Fg(,)g(and)c Fc(nelements)h(=)i(NAXIS1)p Fg(.)82 b(The)45 b Fc(datatype)120 2814 y Fg(parameter)28 b(sp)s(eci\014es)d(the)j (datat)m(yp)s(e)g(of)f(the)g(C)g Fc(array)e Fg(in)h(the)h(program,)h (whic)m(h)e(need)h(not)g(b)s(e)g(the)g(same)120 2927 y(as)32 b(the)f(datat)m(yp)s(e)i(of)e(the)h(FITS)f(image)g(itself.)43 b(If)31 b(the)h(datat)m(yp)s(es)g(di\013er)e(then)h(CFITSIO)f(will)f (con)m(v)m(ert)120 3040 y(the)i(data)h(as)f(it)g(is)f(read)h(or)g (written.)41 b(The)31 b(follo)m(wing)e(sym)m(b)s(olic)h(constan)m(ts)i (are)f(allo)m(w)m(ed)g(for)g(the)g(v)-5 b(alue)120 3152 y(of)31 b Fc(datatype)p Fg(:)215 3337 y Fc(TBYTE)238 b(unsigned)45 b(char)215 3450 y(TSBYTE)190 b(signed)46 b(char)215 3563 y(TSHORT)190 b(signed)46 b(short)215 3675 y(TUSHORT)142 b(unsigned)45 b(short)215 3788 y(TINT)286 b(signed)46 b(int)215 3901 y(TUINT)238 b(unsigned)45 b(int)215 4014 y(TLONG)238 b(signed)46 b(long)215 4127 y(TULONG)190 b(unsigned)45 b(long)215 4240 y(TFLOAT)190 b(float)215 4353 y(TDOUBLE)142 b(double)120 4561 y (________________________)o(____)o(____)o(___)o(____)o(____)o(___)o (____)o(____)o(___)o(____)o(____)120 4674 y(int)47 b (fits_write_subset\(fitsfi)o(le)42 b(*fptr,)k(int)h(datatype,)e(long)h (*fpixel,)740 4787 y(long)h(*lpixel,)f(DTYPE)g(*array,)g(>)h(int)g (*status\))120 5013 y(int)g(fits_read_subset\(fitsfil)o(e)42 b(*fptr,)k(int)95 b(datatype,)45 b(long)h(*fpixel,)740 5126 y(long)h(*lpixel,)f(long)g(*inc,)h(void)f(*nulval,)94 b(void)46 b(*array,)740 5239 y(int)h(*anynul,)f(int)h(*status\))261 5447 y Fg(Read)i(or)g(write)e(a)i(rectangular)g(section)g(of)g(the)f (FITS)g(image.)96 b(These)49 b(are)g(v)m(ery)g(similar)d(to)120 5560 y Fc(fits)p 318 5560 29 4 v 33 w(write)p 591 5560 V 33 w(pix)37 b Fg(and)f Fc(fits)p 1180 5560 V 34 w(read)p 1406 5560 V 33 w(pix)g Fg(except)j(that)f(y)m(ou)f(sp)s(ecify)f(the)i (last)f(pixel)f(co)s(ordinate)h(\(the)1905 5809 y(10)p eop %%Page: 11 11 11 10 bop 120 573 a Fg(upp)s(er)22 b(righ)m(t)h(corner)h(of)g(the)h (section\))f(instead)f(of)h(the)h(n)m(um)m(b)s(er)d(of)i(pixels)f(to)h (b)s(e)g(read.)38 b(The)23 b(read)h(routine)120 686 y(also)38 b(has)f(an)h Fc(inc)f Fg(parameter)h(whic)m(h)e(can)j(b)s(e)e(used)g (to)h(read)g(only)f(ev)m(ery)h Fc(inc-th)e Fg(pixel)g(along)i(eac)m(h) 120 799 y(dimension)26 b(of)j(the)g(image.)40 b(Normally)28 b Fc(inc[0])46 b(=)h(inc[1])f(=)i(1)28 b Fg(to)i(read)e(ev)m(ery)i (pixel)d(in)g(a)i(2D)h(image.)120 912 y(T)-8 b(o)31 b(read)f(ev)m(ery)h (other)g(pixel)e(in)g(the)h(en)m(tire)h(2D)g(image,)g(set)311 1099 y Fc(fpixel[0])45 b(=)j(fpixel[1])d(=)i(1)311 1212 y(lpixel[0])e(=)j({NAXIS1})311 1325 y(lpixel[1])d(=)j({NAXIS2})311 1438 y(inc[0])e(=)h(inc[1])g(=)g(2)261 1626 y Fg(Or,)30 b(to)h(read)f(the)h(8th)g(ro)m(w)f(of)h(a)f(2D)i(image,)e(set)311 1813 y Fc(fpixel[0])45 b(=)j(1)311 1926 y(fpixel[1])d(=)j(8)311 2039 y(lpixel[0])d(=)j({NAXIS1})311 2152 y(lpixel[1])d(=)j(8)311 2265 y(inc[0])e(=)h(inc[1])g(=)g(1)1905 5809 y Fg(11)p eop %%Page: 12 12 12 11 bop 120 573 a Fb(4.5)112 b(T)-9 b(able)37 b(I/O)h(Routines)120 744 y Fg(This)29 b(section)h(lists)f(the)i(most)f(imp)s(ortan)m(t)g (CFITSIO)f(routines)g(whic)m(h)g(op)s(erate)i(on)f(FITS)g(tables.)120 957 y Fc(________________________)o(____)o(____)o(___)o(____)o(____)o (___)o(____)o(____)o(___)o(____)o(____)o(___)o(____)o(__)120 1070 y(int)47 b(fits_create_tbl\(fitsfile)41 b(*fptr,)46 b(int)h(tbltype,)f(long)g(nrows,)g(int)h(tfields,)311 1183 y(char)g(*ttype[],char)d(*tform[],)h(char)i(*tunit[],)e(char)i (*extname,)e(int)i(*status\))261 1395 y Fg(Create)e(a)f(new)f(table)h (extension)f(b)m(y)h(writing)e(the)i(required)e(k)m(eyw)m(ords)i(that)g (de\014ne)f(the)h(table)120 1508 y(structure.)38 b(The)22 b(required)e(n)m(ull)h(primary)f(arra)m(y)j(will)d(b)s(e)i(created)i (\014rst)d(if)h(the)h(\014le)e(is)h(initially)d(completely)120 1621 y(empt)m(y)-8 b(.)41 b Fc(tbltype)26 b Fg(de\014nes)i(the)g(t)m (yp)s(e)h(of)g(table)f(and)g(can)g(ha)m(v)m(e)i(v)-5 b(alues)28 b(of)g Fc(ASCII)p 2931 1621 29 4 v 33 w(TBL)47 b(or)g(BINARY)p 3586 1621 V 33 w(TBL)p Fg(.)120 1734 y(Binary)33 b(tables)h(are)h(generally)e(preferred)g(b)s(ecause)h(they) h(are)f(more)h(e\016cien)m(t)f(and)g(supp)s(ort)f(a)h(greater)120 1847 y(range)d(of)f(column)f(datat)m(yp)s(es)j(than)e(ASCI)s(I)f (tables.)261 1960 y(The)c Fc(nrows)f Fg(parameter)i(giv)m(es)g(the)f (initial)e(n)m(um)m(b)s(er)h(of)i(empt)m(y)g(ro)m(ws)f(to)h(b)s(e)f (allo)s(cated)g(for)h(the)f(table;)120 2073 y(this)g(should)g(normally) f(b)s(e)i(set)h(to)g(0.)40 b(The)26 b Fc(tfields)f Fg(parameter)i(giv)m (es)f(the)h(n)m(um)m(b)s(er)e(of)i(columns)e(in)g(the)120 2186 y(table)e(\(maxim)m(um)f(=)g(999\).)40 b(The)22 b Fc(ttype,)46 b(tform)p Fg(,)24 b(and)e Fc(tunit)f Fg(parameters)i (giv)m(e)h(the)f(name,)h(datat)m(yp)s(e,)120 2299 y(and)34 b(ph)m(ysical)f(units)h(of)g(eac)m(h)i(column,)f(and)f Fc(extname)f Fg(giv)m(es)i(the)g(name)g(for)f(the)h(table)g(\(the)g(v) -5 b(alue)34 b(of)120 2412 y(the)j Fc(EXTNAME)e Fg(k)m(eyw)m(ord\).)61 b(The)36 b(FITS)g(Standard)g(recommends)g(that)i(only)e(letters,)j (digits,)e(and)f(the)120 2524 y(underscore)27 b(c)m(haracter)h(b)s(e)f (used)g(in)f(column)g(names)h(with)f(no)h(em)m(b)s(edded)g(spaces.)40 b(It)27 b(is)g(recommended)120 2637 y(that)k(all)e(the)i(column)e (names)h(in)f(a)i(giv)m(en)f(table)h(b)s(e)e(unique)g(within)f(the)i (\014rst)g(8)h(c)m(haracters.)261 2750 y(The)g(follo)m(wing)f(table)i (sho)m(ws)f(the)h(TF)m(ORM)g(column)e(format)i(v)-5 b(alues)31 b(that)h(are)g(allo)m(w)m(ed)g(in)e(ASCI)s(I)120 2863 y(tables)g(and)g(in)f(binary)g(tables:)502 3051 y Fc(ASCII)46 b(Table)h(Column)f(Format)g(Codes)502 3164 y(------------------------)o (---)o(----)502 3277 y(\(w)h(=)g(column)g(width,)f(d)h(=)h(no.)e(of)i (decimal)d(places)i(to)g(display\))693 3390 y(Aw)142 b(-)48 b(character)d(string)693 3502 y(Iw)142 b(-)48 b(integer)693 3615 y(Fw.d)e(-)i(fixed)e(floating)g(point)693 3728 y(Ew.d)g(-)i(exponential)d(floating)g(point)693 3841 y(Dw.d)h(-)i(exponential)d(floating)g(point)502 4067 y(Binary)h(Table)g(Column)g(Format)g(Codes)502 4180 y(------------------------)o(---)o(----)o(-)502 4293 y(\(r)h(=)g(vector)g(length,)e(default)h(=)i(1\))693 4406 y(rA)95 b(-)47 b(character)e(string)693 4519 y(rAw)i(-)g(array)f (of)i(strings,)d(each)i(of)g(length)f(w)693 4632 y(rL)95 b(-)47 b(logical)693 4744 y(rX)95 b(-)47 b(bit)693 4857 y(rB)95 b(-)47 b(unsigned)f(byte)693 4970 y(rS)95 b(-)47 b(signed)f(byte)h(**)693 5083 y(rI)95 b(-)47 b(signed)f(16-bit)g (integer)693 5196 y(rU)95 b(-)47 b(unsigned)f(16-bit)g(integer)g(**)693 5309 y(rJ)95 b(-)47 b(signed)f(32-bit)g(integer)693 5422 y(rV)95 b(-)47 b(unsigned)f(32-bit)g(integer)g(**)693 5535 y(rK)95 b(-)47 b(64-bit)f(integer)g(***)1905 5809 y Fg(12)p eop %%Page: 13 13 13 12 bop 693 573 a Fc(rE)95 b(-)47 b(32-bit)f(floating)g(point)693 686 y(rD)95 b(-)47 b(64-bit)f(floating)g(point)693 799 y(rC)95 b(-)47 b(32-bit)f(complex)g(pair)693 912 y(rM)95 b(-)47 b(64-bit)f(complex)g(pair)359 1137 y(**)h(The)g(S,)g(U)g(and)g (V)h(format)e(codes)g(are)h(not)g(actual)f(legal)g(TFORMn)h(values.)502 1250 y(CFITSIO)f(substitutes)e(the)j(somewhat)f(more)g(complicated)f (set)i(of)502 1363 y(keywords)e(that)i(are)g(used)g(to)g(represent)e (unsigned)h(integers)f(or)502 1476 y(signed)h(bytes.)311 1702 y(***)h(The)g(64-bit)f(integer)g(format)g(is)h(experimental)d(and) j(is)g(not)502 1815 y(officially)e(recognized)g(in)i(the)g(FITS)g (Standard.)261 2002 y Fg(The)27 b Fc(tunit)e Fg(and)h Fc(extname)f Fg(parameters)j(are)f(optional)f(and)h(ma)m(y)g(b)s(e)g (set)g(to)h(NULL)f(if)f(they)h(are)g(not)120 2115 y(needed.)261 2228 y(Note)41 b(that)f(it)e(ma)m(y)i(b)s(e)f(easier)g(to)h(create)h(a) f(new)e(table)h(b)m(y)h(cop)m(ying)f(the)g(header)g(from)g(another)120 2341 y(existing)29 b(table)i(with)e Fc(fits)p 1089 2341 29 4 v 33 w(copy)p 1314 2341 V 33 w(header)g Fg(rather)h(than)g (calling)f(this)g(routine.)120 2554 y Fc(________________________)o (____)o(____)o(___)o(____)o(____)o(___)o(____)o(____)o(___)o(____)o(__) 120 2667 y(int)47 b(fits_get_num_rows\(fitsfi)o(le)42 b(*fptr,)k(long)g(*nrows,)g(int)h(*status\))120 2780 y(int)g(fits_get_num_cols\(fitsfi)o(le)42 b(*fptr,)k(int)94 b(*ncols,)46 b(int)h(*status\))261 2992 y Fg(Get)37 b(the)g(n)m(um)m(b) s(er)d(of)j(ro)m(ws)f(or)g(columns)f(in)f(the)j(curren)m(t)e(FITS)h (table.)58 b(The)35 b(n)m(um)m(b)s(er)g(of)h(ro)m(ws)g(is)120 3105 y(giv)m(en)d(b)m(y)g(the)g Fc(NAXIS2)e Fg(k)m(eyw)m(ord)j(and)e (the)h(n)m(um)m(b)s(er)f(of)h(columns)f(is)g(giv)m(en)h(b)m(y)g(the)g Fc(TFIELDS)e Fg(k)m(eyw)m(ord)120 3218 y(in)e(the)i(header)f(of)g(the)h (table.)120 3430 y Fc(________________________)o(____)o(____)o(___)o (____)o(____)o(___)o(____)o(____)o(___)o(____)o(__)120 3543 y(int)47 b(fits_get_colnum\(fitsfile)41 b(*fptr,)46 b(int)h(casesen,)f(char)g(*template,)1075 3656 y(int)g(*colnum,)g(int)h (*status\))120 3769 y(int)g(fits_get_colname\(fitsfil)o(e)42 b(*fptr,)k(int)h(casesen,)e(char)i(*template,)1075 3882 y(char)f(*colname,)f(int)i(*colnum,)f(int)h(*status\))261 4095 y Fg(Get)33 b(the)e(column)f(n)m(um)m(b)s(er)g(\(starting)i(with)e (1,)i(not)g(0\))g(of)f(the)h(column)e(whose)h(name)h(matc)m(hes)g(the) 120 4208 y(sp)s(eci\014ed)37 b(template)i(name.)66 b(The)38 b(only)g(di\013erence)g(in)f(these)i(2)g(routines)f(is)f(that)j(the)e (2nd)g(one)h(also)120 4320 y(returns)29 b(the)i(name)f(of)h(the)f (column)f(that)i(matc)m(hed)h(the)e(template)h(string.)261 4433 y(Normally)-8 b(,)27 b Fc(casesen)d Fg(should)g(b)s(e)i(set)h(to)g Fc(CASEINSEN)p Fg(,)d(but)i(it)f(ma)m(y)i(b)s(e)f(set)h(to)g Fc(CASESEN)d Fg(to)j(force)g(the)120 4546 y(name)j(matc)m(hing)h(to)g (b)s(e)f(case-sensitiv)m(e.)261 4659 y(The)22 b(input)e Fc(template)g Fg(string)h(giv)m(es)i(the)f(name)h(of)f(the)h(desired)d (column)h(and)h(ma)m(y)h(include)d(wildcard)120 4772 y(c)m(haracters:)41 b(a)30 b(`*')g(matc)m(hes)g(an)m(y)f(sequence)g(of) h(c)m(haracters)g(\(including)c(zero)k(c)m(haracters\),)h(`?')40 b(matc)m(hes)120 4885 y(an)m(y)45 b(single)e(c)m(haracter,)50 b(and)44 b(`#')h(matc)m(hes)g(an)m(y)g(consecutiv)m(e)h(string)d(of)i (decimal)f(digits)f(\(0-9\).)85 b(If)120 4998 y(more)27 b(than)g(one)g(column)f(name)h(in)f(the)h(table)g(matc)m(hes)h(the)f (template)g(string,)g(then)g(the)g(\014rst)f(matc)m(h)i(is)120 5111 y(returned)22 b(and)h(the)h(status)f(v)-5 b(alue)23 b(will)e(b)s(e)i(set)h(to)g Fc(COL)p 1962 5111 V 33 w(NOT)p 2139 5111 V 34 w(UNIQUE)e Fg(as)h(a)h(w)m(arning)e(that)i(a)g(unique)d (matc)m(h)120 5224 y(w)m(as)34 b(not)g(found.)50 b(T)-8 b(o)35 b(\014nd)d(the)i(next)g(column)f(that)i(matc)m(hes)g(the)f (template,)h(call)f(this)e(routine)h(again)120 5337 y(lea)m(ving)d(the) h(input)d(status)j(v)-5 b(alue)30 b(equal)g(to)h Fc(COL)p 1832 5337 V 33 w(NOT)p 2009 5337 V 34 w(UNIQUE)p Fg(.)e(Rep)s(eat)i (this)e(pro)s(cess)h(un)m(til)f Fc(status)46 b(=)120 5450 y(COL)p 270 5450 V 34 w(NOT)p 448 5450 V 33 w(FOUND)29 b Fg(is)g(returned.)1905 5809 y(13)p eop %%Page: 14 14 14 13 bop 120 573 a Fc(________________________)o(____)o(____)o(___)o (____)o(____)o(___)o(____)o(____)o(___)o(____)o(__)120 686 y(int)47 b(fits_get_coltype\(fitsfil)o(e)42 b(*fptr,)k(int)h (colnum,)f(int)h(*typecode,)1122 799 y(long)g(*repeat,)e(long)i (*width,)f(int)h(*status\))261 1011 y Fg(Return)41 b(the)h(datat)m(yp)s (e,)k(v)m(ector)d(rep)s(eat)f(coun)m(t,)j(and)c(the)h(width)e(in)g(b)m (ytes)i(of)g(a)g(single)f(column)120 1124 y(elemen)m(t)i(for)e(column)g (n)m(um)m(b)s(er)g Fc(colnum)p Fg(.)74 b(Allo)m(w)m(ed)42 b(v)-5 b(alues)41 b(for)h(the)g(returned)f(datat)m(yp)s(e)i(in)e(ASCI)s (I)120 1237 y(tables)30 b(are:)42 b Fc(TSTRING,)j(TSHORT,)h(TLONG,)g (TFLOAT,)g(and)h(TDOUBLE)p Fg(.)29 b(Binary)h(tables)g(supp)s(ort)f (these)120 1350 y(additional)19 b(t)m(yp)s(es:)36 b Fc(TLOGICAL,)45 b(TBIT,)h(TBYTE,)g(TINT32BIT,)f(TCOMPLEX)h(and)h(TDBLCOMPLEX)p Fg(.)18 b(The)120 1463 y(negativ)m(e)34 b(of)f(the)h(datat)m(yp)s(e)g (co)s(de)f(v)-5 b(alue)32 b(is)h(returned)e(if)h(it)h(is)f(a)h(v)-5 b(ariable)32 b(length)h(arra)m(y)g(column.)48 b(The)120 1576 y(rep)s(eat)31 b(coun)m(t)g(is)e(alw)m(a)m(ys)i(1)g(in)e(ASCI)s(I) g(tables.)261 1689 y(The)39 b('rep)s(eat')g(parameter)h(returns)e(the)h (v)m(ector)h(rep)s(eat)g(coun)m(t)f(on)g(the)g(binary)f(table)g(TF)m (ORMn)120 1802 y(k)m(eyw)m(ord)44 b(v)-5 b(alue.)78 b(\(ASCI)s(I)42 b(table)h(columns)f(alw)m(a)m(ys)i(ha)m(v)m(e)g(rep)s(eat)g(=)e(1\).)80 b(The)43 b('width')f(parameter)120 1914 y(returns)d(the)i(width)e(in)h (b)m(ytes)h(of)g(a)g(single)e(column)h(elemen)m(t)h(\(e.g.,)k(a)c ('10D')i(binary)c(table)i(column)120 2027 y(will)c(ha)m(v)m(e)42 b(width)c(=)i(8,)j(an)d(ASCI)s(I)e(table)i('F12.2')j(column)c(will)e (ha)m(v)m(e)42 b(width)c(=)i(12,)j(and)d(a)g(binary)120 2140 y(table'60A')26 b(c)m(haracter)h(string)c(column)h(will)e(ha)m(v)m (e)k(width)d(=)h(60\);)k(Note)f(that)e(this)f(routine)f(supp)s(orts)g (the)120 2253 y(lo)s(cal)31 b(con)m(v)m(en)m(tion)j(for)e(sp)s (ecifying)e(arra)m(ys)i(of)h(\014xed)e(length)h(strings)f(within)f(a)i (binary)f(table)h(c)m(haracter)120 2366 y(column)37 b(using)f(the)j (syn)m(tax)f(TF)m(ORM)h(=)e('rAw')h(where)g('r')g(is)f(the)h(total)h(n) m(um)m(b)s(er)e(of)h(c)m(haracters)h(\(=)120 2479 y(the)d(width)d(of)j (the)f(column\))g(and)f('w')i(is)e(the)i(width)d(of)j(a)f(unit)f (string)g(within)f(the)j(column.)54 b(Th)m(us)34 b(if)120 2592 y(the)i(column)f(has)h(TF)m(ORM)g(=)g('60A12')j(then)c(this)g (means)h(that)h(eac)m(h)g(ro)m(w)f(of)h(the)f(table)g(con)m(tains)g(5) 120 2705 y(12-c)m(haracter)h(substrings)31 b(within)h(the)i(60-c)m (haracter)j(\014eld,)d(and)f(th)m(us)h(in)e(this)h(case)i(this)e (routine)g(will)120 2818 y(return)25 b(t)m(yp)s(eco)s(de)i(=)f (TSTRING,)f(rep)s(eat)i(=)e(60,)k(and)c(width)g(=)h(12.)40 b(The)25 b(n)m(um)m(b)s(er)g(of)i(substings)d(in)h(an)m(y)120 2931 y(binary)31 b(table)h(c)m(haracter)i(string)e(\014eld)f(can)i(b)s (e)f(calculated)h(b)m(y)f(\(rep)s(eat/width\).)47 b(A)33 b(n)m(ull)d(p)s(oin)m(ter)i(ma)m(y)120 3044 y(b)s(e)e(giv)m(en)g(for)g (an)m(y)h(of)g(the)f(output)g(parameters)h(that)g(are)f(not)h(needed.) 120 3256 y Fc(________________________)o(____)o(____)o(___)o(____)o (____)o(___)o(____)o(____)o(___)o(____)o(____)o(___)o(____)o(____)120 3369 y(int)47 b(fits_insert_rows\(fitsfil)o(e)42 b(*fptr,)k(long)h (firstrow,)e(long)h(nrows,)h(int)f(*status\))120 3482 y(int)h(fits_delete_rows\(fitsfil)o(e)42 b(*fptr,)k(long)h(firstrow,)e (long)h(nrows,)h(int)f(*status\))120 3595 y(int)h (fits_delete_rowrange\(fit)o(sfil)o(e)42 b(*fptr,)k(char)g(*rangelist,) f(int)i(*status\))120 3708 y(int)g(fits_delete_rowlist\(fits)o(file)41 b(*fptr,)46 b(long)h(*rowlist,)e(long)i(nrows,)f(int)h(*stat\))261 3920 y Fg(Insert)33 b(or)g(delete)g(ro)m(ws)g(in)e(a)j(table.)48 b(The)33 b(blank)e(ro)m(ws)i(are)h(inserted)d(immediately)h(follo)m (wing)f(ro)m(w)120 4033 y Fc(frow)p Fg(.)54 b(Set)35 b Fc(frow)f Fg(=)g(0)i(to)f(insert)f(ro)m(ws)h(at)h(the)f(b)s(eginning) e(of)i(the)g(table.)55 b(The)34 b(\014rst)h('delete')g(routine)120 4146 y(deletes)k Fc(nrows)e Fg(ro)m(ws)i(b)s(eginning)d(with)i(ro)m(w)h Fc(firstrow)p Fg(.)64 b(The)38 b(2nd)g(delete)h(routine)f(tak)m(es)j (an)d(input)120 4259 y(string)26 b(listing)f(the)i(ro)m(ws)f(or)h(ro)m (w)g(ranges)g(to)h(b)s(e)e(deleted)h(\(e.g.,)i('2,4-7,)h(9-12'\).)42 b(The)26 b(last)h(delete)g(routine)120 4372 y(tak)m(es)35 b(an)f(input)d(long)i(in)m(teger)h(arra)m(y)h(that)f(sp)s(eci\014es)e (eac)m(h)j(individual)29 b(ro)m(w)34 b(to)g(b)s(e)f(deleted.)50 b(The)33 b(ro)m(w)120 4485 y(lists)h(m)m(ust)h(b)s(e)f(sorted)i(in)e (ascending)g(order.)55 b(All)34 b(these)i(routines)e(up)s(date)g(the)i (v)-5 b(alue)34 b(of)i(the)f Fc(NAXIS2)120 4598 y Fg(k)m(eyw)m(ord)c (to)g(re\015ect)g(the)f(new)g(n)m(um)m(b)s(er)f(of)i(ro)m(ws)f(in)f (the)i(table.)120 4810 y Fc(________________________)o(____)o(____)o (___)o(____)o(____)o(___)o(____)o(____)o(___)o(____)o(____)o(___)o (____)o(_)120 4923 y(int)47 b(fits_insert_col\(fitsfile)41 b(*fptr,)46 b(int)h(colnum,)f(char)h(*ttype,)e(char)i(*tform,)1075 5036 y(int)f(*status\))120 5149 y(int)h(fits_insert_cols\(fitsfil)o(e) 42 b(*fptr,)k(int)h(colnum,)f(int)h(ncols,)f(char)g(**ttype,)1122 5262 y(char)h(**tform,)e(int)i(*status\))120 5488 y(int)g (fits_delete_col\(fitsfile)41 b(*fptr,)46 b(int)h(colnum,)f(int)h (*status\))1905 5809 y Fg(14)p eop %%Page: 15 15 15 14 bop 261 573 a Fg(Insert)25 b(or)g(delete)g(columns)f(in)f(a)j (table.)38 b Fc(colnum)24 b Fg(giv)m(es)h(the)g(p)s(osition)e(of)i(the) h(column)d(to)j(b)s(e)f(inserted)120 686 y(or)34 b(deleted)f(\(where)h (the)g(\014rst)f(column)g(of)h(the)g(table)g(is)e(at)j(p)s(osition)d (1\).)52 b Fc(ttype)32 b Fg(and)h Fc(tform)g Fg(giv)m(e)h(the)120 799 y(column)j(name)i(and)f(column)f(format,)k(where)d(the)h(allo)m(w)m (ed)g(format)f(co)s(des)h(are)g(listed)e(ab)s(o)m(v)m(e)j(in)d(the)120 912 y(description)43 b(of)i(the)h Fc(fits)p 1088 912 29 4 v 33 w(create)p 1409 912 V 33 w(table)d Fg(routine.)84 b(The)45 b(2nd)f('insert')h(routine)f(inserts)g(m)m(ultiple)120 1024 y(columns,)32 b(where)h Fc(ncols)e Fg(is)h(the)h(n)m(um)m(b)s(er)e (of)i(columns)f(to)h(insert,)g(and)f Fc(ttype)f Fg(and)h Fc(tform)g Fg(are)h(arra)m(ys)120 1137 y(of)e(string)e(p)s(oin)m(ters)g (in)g(this)g(case.)120 1312 y Fc(________________________)o(____)o (____)o(___)o(____)o(____)o(___)o(____)o(____)o(___)o(____)o(____)o (___)120 1425 y(int)47 b(fits_copy_col\(fitsfile)42 b(*infptr,)j (fitsfile)h(*outfptr,)f(int)i(incolnum,)502 1537 y(int)g(outcolnum,)e (int)i(create_col,)d(int)j(*status\);)261 1712 y Fg(Cop)m(y)31 b(a)g(column)f(from)g(one)i(table)e(HDU)i(to)g(another.)42 b(If)31 b Fc(create)p 2609 1712 V 32 w(col)f Fg(=)h(TR)m(UE)g(\(i.e.,)h (not)f(equal)120 1825 y(to)42 b(zero\),)k(then)41 b(a)h(new)f(column)f (will)f(b)s(e)i(inserted)f(in)h(the)g(output)g(table)h(at)g(p)s (osition)e Fc(outcolumn)p Fg(,)120 1937 y(otherwise)30 b(the)g(v)-5 b(alues)30 b(in)f(the)i(existing)e(output)h(column)f(will) f(b)s(e)i(o)m(v)m(erwritten.)120 2112 y Fc(________________________)o (____)o(____)o(___)o(____)o(____)o(___)o(____)o(____)o(___)o(____)o (____)o(___)o(____)o(__)120 2225 y(int)47 b(fits_write_col\(fitsfile)41 b(*fptr,)46 b(int)h(datatype,)f(int)h(colnum,)e(long)i(firstrow,)979 2337 y(long)g(firstelem,)e(long)h(nelements,)f(void)i(*array,)f(int)h (*status\))120 2450 y(int)g(fits_write_colnull\(fitsf)o(ile)41 b(*fptr,)46 b(int)h(datatype,)f(int)g(colnum,)979 2563 y(long)h(firstrow,)e(long)i(firstelem,)e(long)h(nelements,)979 2676 y(void)h(*array,)f(void)g(*nulval,)g(int)h(*status\))120 2789 y(int)g(fits_write_col_null\(fits)o(file)41 b(*fptr,)46 b(int)h(colnum,)f(long)g(firstrow,)979 2902 y(long)h(firstelem,)e(long) h(nelements,)f(int)i(*status\))120 3128 y(int)g (fits_read_col\(fitsfile)42 b(*fptr,)k(int)h(datatype,)e(int)i(colnum,) f(long)g(firstrow,)454 3241 y(long)h(firstelem,)e(long)h(nelements,)f (void)i(*nulval,)f(void)g(*array,)454 3354 y(int)h(*anynul,)f(int)g (*status\))261 3641 y Fg(W)-8 b(rite)44 b(or)f(read)g(elemen)m(ts)h(in) e(column)g(n)m(um)m(b)s(er)g Fc(colnum)p Fg(,)j(starting)e(with)f(ro)m (w)h Fc(firstsrow)e Fg(and)120 3754 y(elemen)m(t)33 b Fc(firstelem)d Fg(\(if)i(it)g(is)g(a)h(v)m(ector)h(column\).)46 b Fc(firstelem)30 b Fg(is)i(ignored)g(if)f(it)h(is)g(a)h(scalar)f (column.)120 3867 y(The)d Fc(nelements)f Fg(n)m(um)m(b)s(er)g(of)i (elemen)m(ts)h(are)f(read)g(or)f(written)g(con)m(tin)m(uing)g(on)h (successiv)m(e)g(ro)m(ws)g(of)g(the)120 3980 y(table)36 b(if)f(necessary)-8 b(.)59 b Fc(array)35 b Fg(is)g(the)i(address)e(of)h (an)g(arra)m(y)h(whic)m(h)e(either)h(con)m(tains)g(the)h(v)-5 b(alues)35 b(to)i(b)s(e)120 4092 y(written,)27 b(or)f(will)e(hold)i (the)g(returned)g(v)-5 b(alues)26 b(that)h(are)g(read.)39 b(When)27 b(reading,)g Fc(array)e Fg(m)m(ust)h(ha)m(v)m(e)i(b)s(een)120 4205 y(allo)s(cated)i(large)h(enough)f(to)h(hold)e(all)g(the)i (returned)e(v)-5 b(alues.)261 4318 y(There)40 b(are)h(3)h(di\013eren)m (t)e('write')g(column)g(routines:)60 b(The)40 b(\014rst)g(simply)e (writes)i(the)h(input)e(arra)m(y)120 4431 y(in)m(to)32 b(the)g(column.)43 b(The)31 b(second)h(is)f(similar,)e(except)k(that)f (it)f(substitutes)g(the)h(appropriate)e(n)m(ull)g(pixel)120 4544 y(v)-5 b(alue)35 b(in)e(the)j(column)d(for)i(an)m(y)h(input)d (arra)m(y)i(v)-5 b(alues)35 b(whic)m(h)f(are)h(equal)g(to)h Fc(*nulval)d Fg(\(note)j(that)f(this)120 4657 y(parameter)k(giv)m(es)f (the)h(address)e(of)i(the)f(n)m(ull)e(pixel)h(v)-5 b(alue,)40 b(not)e(the)h(v)-5 b(alue)37 b(itself)7 b(\).)64 b(The)38 b(third)e(write)120 4770 y(routine)27 b(sets)h(the)g(sp)s(eci\014ed)e (table)i(elemen)m(ts)g(to)h(a)f(n)m(ull)e(v)-5 b(alue.)39 b(New)28 b(ro)m(ws)g(will)d(b)s(e)j(automatical)g(added)120 4883 y(to)j(the)g(table)f(if)f(the)i(write)e(op)s(eration)h(extends)h (b)s(ey)m(ond)e(the)i(curren)m(t)f(size)g(of)h(the)f(table.)261 4996 y(When)42 b(reading)f(a)i(column,)h(CFITSIO)c(will)g(substitute)h (the)h(v)-5 b(alue)42 b(giv)m(en)g(b)m(y)g Fc(nulval)e Fg(for)i(an)m(y)120 5109 y(unde\014ned)25 b(elemen)m(ts)i(in)f(the)h (FITS)f(column,)h(unless)e Fc(nulval)g Fg(or)i Fc(*nulval)46 b(=)h(NULL)p Fg(,)26 b(in)g(whic)m(h)f(case)j(no)120 5222 y(c)m(hec)m(ks)k(will)c(b)s(e)h(made)i(for)f(unde\014ned)e(v)-5 b(alues)30 b(when)f(reading)h(the)g(column.)261 5334 y Fc(datatype)i Fg(sp)s(eci\014es)h(the)h(datat)m(yp)s(e)h(of)g(the)f (C)g Fc(array)e Fg(in)h(the)h(program,)i(whic)m(h)c(need)i(not)h(b)s(e) e(the)120 5447 y(same)42 b(as)f(the)g(in)m(trinsic)e(datat)m(yp)s(e)j (of)f(the)h(column)e(in)g(the)h(FITS)g(table.)73 b(The)40 b(follo)m(wing)g(sym)m(b)s(olic)120 5560 y(constan)m(ts)32 b(are)e(allo)m(w)m(ed)h(for)f(the)g(v)-5 b(alue)30 b(of)h Fc(datatype)p Fg(:)1905 5809 y(15)p eop %%Page: 16 16 16 15 bop 215 573 a Fc(TSTRING)142 b(array)46 b(of)h(character)f (string)g(pointers)215 686 y(TBYTE)238 b(unsigned)45 b(char)215 799 y(TSHORT)190 b(signed)46 b(short)215 912 y(TUSHORT)142 b(unsigned)45 b(short)215 1024 y(TINT)286 b(signed)46 b(int)215 1137 y(TUINT)238 b(unsigned)45 b(int)215 1250 y(TLONG)238 b(signed)46 b(long)215 1363 y(TULONG)190 b(unsigned)45 b(long)215 1476 y(TFLOAT)190 b(float)215 1589 y(TDOUBLE)142 b(double)261 1791 y Fg(Note)35 b(that)e Fc(TSTRING)f Fg(corresp)s(onds)g(to)h(the)h(C)f Fc(char**)e Fg(datat)m(yp)s(e,)k(i.e.,)g(a)e(p)s(oin)m(ter)f(to)i(an)f (arra)m(y)h(of)120 1904 y(p)s(oin)m(ters)29 b(to)i(an)g(arra)m(y)f(of)h (c)m(haracters.)261 2017 y(An)m(y)38 b(column,)i(regardless)d(of)i (it's)f(in)m(trinsic)d(datat)m(yp)s(e,)42 b(ma)m(y)d(b)s(e)e(read)h(as) h(a)f Fc(TSTRING)f Fg(c)m(haracter)120 2130 y(string.)h(The)24 b(displa)m(y)g(format)h(of)g(the)h(returned)e(strings)f(will)g(b)s(e)h (determined)g(b)m(y)h(the)g Fc(TDISPn)f Fg(k)m(eyw)m(ord,)120 2243 y(if)i(it)h(exists,)h(otherwise)f(a)g(default)g(format)h(will)c(b) s(e)j(used)f(dep)s(ending)f(on)j(the)f(datat)m(yp)s(e)h(of)g(the)f (column.)120 2356 y(The)22 b Fc(tablist)e Fg(example)i(utilit)m(y)f (program)h(\(a)m(v)-5 b(ailable)22 b(from)g(the)h(CFITSIO)e(w)m(eb)h (site\))h(uses)f(this)f(feature)120 2469 y(to)31 b(displa)m(y)e(all)g (the)i(v)-5 b(alues)29 b(in)g(a)i(FITS)f(table.)120 2671 y Fc(________________________)o(____)o(____)o(___)o(____)o(____)o(___)o (____)o(____)o(___)o(____)o(____)o(___)o(_)120 2784 y(int)47 b(fits_select_rows\(fitsfil)o(e)42 b(*infptr,)j(fitsfile)h(*outfptr,)f (char)i(*expr,)1122 2897 y(int)g(*status\))120 3010 y(int)g (fits_calculator\(fitsfile)41 b(*infptr,)46 b(char)g(*expr,)g(fitsfile) g(*outfptr,)1075 3123 y(char)g(*colname,)f(char)i(*tform,)f(int)h (*status\))261 3325 y Fg(These)26 b(are)h(2)g(of)g(the)f(most)h(p)s(o)m (w)m(erful)e(routines)h(in)f(the)i(CFITSIO)d(library)-8 b(.)38 b(\(See)27 b(the)g(full)d(CFITSIO)120 3438 y(Reference)37 b(Guide)e(for)h(a)h(description)d(of)i(sev)m(eral)h(related)f (routines\).)57 b(These)36 b(routines)f(can)i(p)s(erform)120 3551 y(complicated)45 b(transformations)g(on)g(tables)g(based)g(on)g (an)g(input)f(arithmetic)g(expression)g(whic)m(h)g(is)120 3664 y(ev)-5 b(aluated)37 b(for)f(eac)m(h)h(ro)m(w)g(of)g(the)f(table.) 59 b(The)36 b(\014rst)g(routine)f(will)f(select)j(or)g(cop)m(y)g(ro)m (ws)f(of)h(the)f(table)120 3777 y(for)i(whic)m(h)f(the)h(expression)f (ev)-5 b(aluates)39 b(to)g(TR)m(UE)g(\(i.e.,)h(not)f(equal)f(to)h (zero\).)65 b(The)38 b(second)g(routine)120 3890 y(writes)c(the)h(v)-5 b(alue)34 b(of)h(the)g(expression)f(to)i(a)f(column)f(in)f(the)i (output)g(table.)54 b(Rather)35 b(than)g(supplying)120 4003 y(the)j(expression)e(directly)g(to)i(these)g(routines,)h(the)e (expression)g(ma)m(y)h(also)f(b)s(e)g(written)g(to)h(a)g(text)g(\014le) 120 4116 y(\(con)m(tin)m(ued)e(o)m(v)m(er)g(m)m(ultiple)e(lines)f(if)i (necessary\))h(and)f(the)h(name)f(of)h(the)g(\014le,)g(prep)s(ended)d (with)h(a)i('@')120 4229 y(c)m(haracter,)c(ma)m(y)f(b)s(e)f(supplied)d (as)k(the)f(v)-5 b(alue)30 b(of)h(the)f('expr')g(parameter)h(\(e.g.)42 b('@\014lename.txt'\).)261 4342 y(The)26 b(arithmetic)f(expression)g (ma)m(y)i(b)s(e)f(a)g(function)f(of)h(an)m(y)h(column)e(or)h(k)m(eyw)m (ord)h(in)e(the)h(input)e(table)120 4455 y(as)31 b(sho)m(wn)e(in)g (these)i(examples:)120 4657 y Fc(Row)47 b(Selection)e(Expressions:)263 4770 y(counts)h(>)i(0)1240 b(uses)47 b(COUNTS)f(column)g(value)263 4883 y(sqrt\()h(X**2)f(+)i(Y**2\))e(<)h(10.)572 b(uses)47 b(X)g(and)g(Y)h(column)e(values)263 4996 y(\(X)h(>)h(10\))f(||)g(\(X)g (<)h(-10\))e(&&)h(\(Y)h(==)f(0\))142 b(used)47 b('or')g(and)g('and')f (operators)263 5109 y(gtifilter\(\))1190 b(filter)46 b(on)i(Good)e(Time)h(Intervals)263 5222 y(regfilter\("myregion.reg"\)) 518 b(filter)46 b(using)h(a)g(region)f(file)263 5334 y(@select.txt)1190 b(reads)47 b(expression)e(from)h(a)i(text)e(file)120 5447 y(Calculator)f(Expressions:)263 5560 y(#row)i(\045)g(10)1145 b(modulus)46 b(of)h(the)g(row)g(number)1905 5809 y Fg(16)p eop %%Page: 17 17 17 16 bop 263 573 a Fc(counts/#exposure)807 b(Fn)47 b(of)h(COUNTS)e (column)g(and)h(EXPOSURE)e(keyword)263 686 y(dec)i(<)h(85)f(?)g (cos\(dec)f(*)h(#deg\))g(:)g(0)143 b(Conditional)45 b(expression:)g (evaluates)g(to)1934 799 y(cos\(dec\))g(if)i(dec)g(<)h(85,)f(else)f(0) 263 912 y(\(count{-1}+count+count{+1)o(}\)/3)o(.)137 b(running)46 b(mean)h(of)g(the)g(count)f(values)g(in)h(the)1934 1024 y(previous,)e(current,)g(and)i(next)g(rows)263 1137 y(max\(0,)f(min\(X,)g(1000\)\))619 b(returns)46 b(a)h(value)g(between)f (0)h(-)h(1000)263 1250 y(@calc.txt)1143 b(reads)47 b(expression)e(from) h(a)i(text)e(file)261 1463 y Fg(Most)40 b(standard)d(mathematical)i(op) s(erators)g(and)f(functions)f(are)i(supp)s(orted.)64 b(If)38 b(the)h(expression)120 1576 y(includes)32 b(the)j(name)f(of)h (a)f(column,)h(than)f(the)h(v)-5 b(alue)34 b(in)f(the)h(curren)m(t)h (ro)m(w)f(of)h(the)f(table)h(will)c(b)s(e)j(used)120 1689 y(when)f(ev)-5 b(aluating)33 b(the)h(expression)f(on)h(eac)m(h)h (ro)m(w.)51 b(An)34 b(o\013set)h(to)g(an)e(adjacen)m(t)j(ro)m(w)e(can)g (b)s(e)f(sp)s(eci\014ed)120 1802 y(b)m(y)d(including)d(the)j(o\013set)h (v)-5 b(alue)29 b(in)g(curly)g(brac)m(k)m(ets)i(after)g(the)f(column)f (name)h(as)g(sho)m(wn)g(in)f(one)h(of)g(the)120 1914 y(examples.)39 b(Keyw)m(ord)27 b(v)-5 b(alues)27 b(can)g(b)s(e)g (included)d(in)i(the)i(expression)e(b)m(y)h(preceding)f(the)i(k)m(eyw)m (ord)f(name)120 2027 y(with)g(a)i(`#')f(sign.)39 b(See)28 b(Section)h(5)f(of)h(this)e(do)s(cumen)m(t)h(for)g(more)g(discussion)e (of)i(the)h(expression)e(syn)m(tax.)261 2140 y Fc(gtifilter)i Fg(is)h(a)i(sp)s(ecial)e(function)g(whic)m(h)g(tests)i(whether)f(the)h Fc(TIME)e Fg(column)g(v)-5 b(alue)31 b(in)f(the)h(input)120 2253 y(table)38 b(falls)f(within)f(one)j(or)f(more)h(Go)s(o)s(d)f(Time) f(In)m(terv)-5 b(als.)65 b(By)39 b(default,)g(this)f(function)f(lo)s (oks)h(for)g(a)120 2366 y('GTI')27 b(extension)f(in)f(the)i(same)g (\014le)e(as)i(the)g(input)d(table.)40 b(The)26 b('GTI')g(table)h(con)m (tains)g Fc(START)e Fg(and)h Fc(STOP)120 2479 y Fg(columns)f(whic)m(h)h (de\014ne)g(the)g(range)h(of)g(eac)m(h)h(go)s(o)s(d)f(time)f(in)m(terv) -5 b(al.)39 b(See)27 b(section)f(5.4.3)j(for)d(more)h(details.)261 2592 y Fc(regfilter)35 b Fg(is)h(another)h(sp)s(ecial)f(function)g (whic)m(h)g(selects)h(ro)m(ws)h(based)e(on)h(whether)g(the)g(spatial) 120 2705 y(p)s(osition)21 b(asso)s(ciated)j(with)e(eac)m(h)j(ro)m(w)e (is)f(lo)s(cated)i(within)d(in)h(a)h(sp)s(eci\014ed)f(region)h(of)g (the)h(sky)-8 b(.)38 b(By)24 b(default,)120 2818 y(the)35 b Fc(X)g Fg(and)f Fc(Y)h Fg(columns)f(in)g(the)h(input)e(table)i(are)g (assumed)g(to)h(giv)m(e)f(the)g(p)s(osition)e(of)j(eac)m(h)g(ro)m(w.)55 b(The)120 2931 y(spatial)35 b(region)g(is)f(de\014ned)h(in)f(an)h(ASCI) s(I)f(text)j(\014le)d(whose)i(name)f(is)g(giv)m(en)g(as)h(the)g (argumen)m(t)g(to)g(the)120 3044 y Fc(regfilter)28 b Fg(function.)39 b(See)31 b(section)f(5.4.4)j(for)d(more)g(details.)261 3156 y(The)e Fc(infptr)e Fg(and)i Fc(outfptr)e Fg(parameters)j(in)e (these)h(routines)f(ma)m(y)i(p)s(oin)m(t)e(to)i(the)g(same)f(table)g (or)h(to)120 3269 y(di\013eren)m(t)h(tables.)42 b(In)31 b Fc(fits)p 1092 3269 29 4 v 33 w(select)p 1413 3269 V 33 w(rows)p Fg(,)f(if)f(the)j(input)c(and)j(output)f(tables)h(are)g (the)g(same)h(then)e(the)120 3382 y(ro)m(ws)e(that)h(do)f(not)g (satisfy)g(the)g(selection)g(expression)f(will)e(b)s(e)i(deleted)h (from)g(the)g(table.)40 b(Otherwise,)27 b(if)120 3495 y(the)k(output)g(table)g(is)f(di\013eren)m(t)h(from)g(the)g(input)e (table)i(then)g(the)g(selected)h(ro)m(ws)f(will)e(b)s(e)h(copied)h (from)120 3608 y(the)g(input)d(table)i(to)h(the)g(output)f(table.)261 3721 y(The)i(output)g(column)f(in)g Fc(fits)p 1376 3721 V 33 w(calculator)f Fg(ma)m(y)i(or)h(ma)m(y)g(not)f(already)g(exist.)46 b(If)32 b(it)g(exists)g(then)120 3834 y(the)44 b(calculated)f(v)-5 b(alues)43 b(will)e(b)s(e)i(written)g(to)h(that)h(column,)h(o)m(v)m (erwriting)d(the)g(existing)g(v)-5 b(alues.)80 b(If)120 3947 y(the)36 b(column)f(do)s(esn't)h(exist)f(then)h(the)g(new)g (column)e(will)g(b)s(e)h(app)s(ended)f(to)j(the)f(output)g(table.)57 b(The)120 4060 y Fc(tform)37 b Fg(parameter)i(can)f(b)s(e)g(used)g(to)h (sp)s(ecify)e(the)h(datat)m(yp)s(e)i(of)e(the)h(new)f(column)f(\(e.g.,) 42 b(the)d Fc(TFORM)120 4173 y Fg(k)m(eyw)m(ord)26 b(v)-5 b(alue)25 b(as)h(in)f Fc('1E',)46 b(or)h('1J')p Fg(\).)25 b(If)h Fc(tform)e Fg(=)h(NULL)h(then)f(a)h(default)f(datat)m(yp)s(e)i (will)c(b)s(e)i(used,)120 4286 y(dep)s(ending)j(on)i(the)h(expression.) 120 4498 y Fc(________________________)o(____)o(____)o(___)o(____)o (____)o(___)o(____)o(____)o(___)o(____)o(____)o(___)o(_)120 4611 y(int)47 b(fits_read_tblbytes\(fitsf)o(ile)41 b(*fptr,)46 b(long)h(firstrow,)e(long)i(firstchar,)1122 4724 y(long)g(nchars,)f (unsigned)f(char)i(*array,)f(int)h(*status\))120 4837 y(int)g(fits_write_tblbytes)42 b(\(fitsfile)k(*fptr,)g(long)g (firstrow,)g(long)g(firstchar,)1122 4950 y(long)h(nchars,)f(unsigned)f (char)i(*array,)f(int)h(*status\))261 5162 y Fg(These)35 b(2)g(routines)e(pro)m(vide)h(lo)m(w-lev)m(el)h(access)h(to)f(tables)g (and)f(are)h(mainly)e(useful)g(as)i(an)g(e\016cien)m(t)120 5275 y(w)m(a)m(y)i(to)g(cop)m(y)g(ro)m(ws)f(of)g(a)h(table)f(from)g (one)g(\014le)f(to)i(another.)58 b(These)36 b(routines)f(simply)f(read) i(or)g(write)120 5388 y(the)30 b(sp)s(eci\014ed)f(n)m(um)m(b)s(er)g(of) h(consecutiv)m(e)i(c)m(haracters)f(\(b)m(ytes\))h(in)d(a)i(table,)f (without)f(regard)h(for)h(column)120 5501 y(b)s(oundaries.)83 b(F)-8 b(or)47 b(example,)i(to)d(read)f(or)h(write)e(the)i(\014rst)f (ro)m(w)g(of)h(a)g(table,)j(set)d Fc(firstrow)g(=)h(1,)1905 5809 y Fg(17)p eop %%Page: 18 18 18 17 bop 120 573 a Fc(firstchar)45 b(=)j(1)p Fg(,)38 b(and)e Fc(nchars)46 b(=)i(NAXIS1)35 b Fg(where)h(the)h(length)f(of)h (a)h(ro)m(w)f(is)e(giv)m(en)i(b)m(y)g(the)g(v)-5 b(alue)36 b(of)120 686 y(the)31 b Fc(NAXIS1)f Fg(header)h(k)m(eyw)m(ord.)43 b(When)31 b(reading)g(a)g(table,)h Fc(array)e Fg(m)m(ust)h(ha)m(v)m(e)h (b)s(een)f(declared)f(at)i(least)120 799 y Fc(nchars)d Fg(b)m(ytes)i(long)f(to)h(hold)e(the)h(returned)f(string)h(of)g(b)m (ytes.)1905 5809 y(18)p eop %%Page: 19 19 19 18 bop 120 573 a Fb(4.6)112 b(Header)38 b(Keyw)m(ord)f(I/O)h (Routines)120 744 y Fg(The)30 b(follo)m(wing)f(routines)g(read)h(and)g (write)g(header)g(k)m(eyw)m(ords)g(in)g(the)g(curren)m(t)g(HDU.)120 957 y Fc(________________________)o(____)o(____)o(___)o(____)o(____)o (___)o(____)o(____)o(___)o(____)o(____)o(___)120 1070 y(int)47 b(fits_get_hdrspace\(fitsfi)o(le)42 b(*fptr,)k(int)h (*keysexist,)d(int)j(*morekeys,)1170 1183 y(int)g(*status\))120 1395 y Fg(Return)36 b(the)g(n)m(um)m(b)s(er)f(of)i(existing)e(k)m(eyw)m (ords)i(\(not)g(coun)m(ting)f(the)h(mandatory)f(END)h(k)m(eyw)m(ord\))g (and)120 1508 y(the)29 b(amoun)m(t)h(of)f(empt)m(y)h(space)g(curren)m (tly)e(a)m(v)-5 b(ailable)28 b(for)h(more)h(k)m(eyw)m(ords.)40 b(The)29 b Fc(morekeys)e Fg(parameter)120 1621 y(ma)m(y)k(b)s(e)f(set)h (to)g(NULL)f(if)f(it's)h(v)-5 b(alue)30 b(is)g(not)g(needed.)120 1834 y Fc(________________________)o(____)o(____)o(___)o(____)o(____)o (___)o(____)o(____)o(___)o(____)o(____)o(___)o(____)o(___)120 1947 y(int)47 b(fits_read_record\(fitsfil)o(e)42 b(*fptr,)k(int)h (keynum,)f(char)g(*record,)g(int)h(*status\))120 2060 y(int)g(fits_read_card\(fitsfile)41 b(*fptr,)46 b(char)h(*keyname,)e (char)i(*record,)f(int)g(*status\))120 2172 y(int)h (fits_read_key\(fitsfile)42 b(*fptr,)k(int)h(datatype,)e(char)i (*keyname,)979 2285 y(void)g(*value,)f(char)g(*comment,)f(int)i (*status\))120 2511 y(int)g(fits_find_nextkey\(fitsfi)o(le)42 b(*fptr,)k(char)g(**inclist,)f(int)i(ninc,)1170 2624 y(char)g(**exclist,)e(int)i(nexc,)f(char)h(*card,)f(int)h(*status\))120 2850 y(int)g(fits_read_key_unit\(fitsf)o(ile)41 b(*fptr,)46 b(char)h(*keyname,)e(char)i(*unit,)1218 2963 y(int)g(*status\))261 3175 y Fg(These)d(routines)g(all)f(read)h(a)h(header)f(record)g(in)f (the)i(curren)m(t)f(HDU.)i(The)e(\014rst)f(routine)h(reads)120 3288 y(k)m(eyw)m(ord)c(n)m(um)m(b)s(er)f Fc(keynum)f Fg(\(where)i(the)g(\014rst)f(k)m(eyw)m(ord)i(is)e(at)i(p)s(osition)d (1\).)70 b(This)38 b(routine)h(is)g(most)120 3401 y(commonly)28 b(used)g(when)f(sequen)m(tially)g(reading)g(ev)m(ery)j(record)e(in)f (the)i(header)f(from)g(b)s(eginning)e(to)j(end.)120 3514 y(The)22 b(2nd)f(and)h(3rd)f(routines)g(read)h(the)g(named)g(k)m(eyw)m (ord)h(and)e(return)g(either)h(the)g(whole)f(80-b)m(yte)j(record,)120 3627 y(or)30 b(the)h(k)m(eyw)m(ord)g(v)-5 b(alue)30 b(and)f(commen)m(t) j(string.)261 3740 y(Wild)25 b(card)g(c)m(haracters)j(\(*,)g(?,)f(and)e (#\))h(ma)m(y)h(b)s(e)e(used)g(when)g(sp)s(ecifying)f(the)i(name)h(of)f (the)g(k)m(eyw)m(ord)120 3853 y(to)31 b(b)s(e)f(read,)g(in)f(whic)m(h)h (case)h(the)g(\014rst)e(matc)m(hing)i(k)m(eyw)m(ord)f(is)g(returned.) 261 3966 y(The)41 b Fc(datatype)e Fg(parameter)j(sp)s(eci\014es)e(the)h (C)g(datat)m(yp)s(e)h(of)g(the)f(returned)f(k)m(eyw)m(ord)i(v)-5 b(alue)41 b(and)120 4079 y(can)48 b(ha)m(v)m(e)h(one)f(of)g(the)f (follo)m(wing)f(sym)m(b)s(olic)g(constan)m(t)j(v)-5 b(alues:)75 b Fc(TSTRING,)46 b(TLOGICAL)f Fg(\(==)i(in)m(t\),)120 4192 y Fc(TBYTE)p Fg(,)d Fc(TSHORT)p Fg(,)f Fc(TUSHORT)p Fg(,)g Fc(TINT)p Fg(,)h Fc(TUINT)p Fg(,)f Fc(TLONG)p Fg(,)h Fc(TULONG)p Fg(,)f Fc(TFLOAT)p Fg(,)g Fc(TDOUBLE)p Fg(,)g Fc(TCOMPLEX)p Fg(,)g(and)120 4304 y Fc(TDBLCOMPLEX)p Fg(.)e(Data)k(t)m(yp)s(e)f(con)m(v)m(ersion)g(will)d(b)s(e)i(p)s (erformed)f(for)i(n)m(umeric)e(v)-5 b(alues)43 b(if)g(the)h(in)m (trinsic)120 4417 y(FITS)32 b(k)m(eyw)m(ord)h(v)-5 b(alue)32 b(do)s(es)g(not)g(ha)m(v)m(e)i(the)f(same)g(datat)m(yp)s(e.)48 b(The)32 b Fc(comment)e Fg(parameter)j(ma)m(y)g(b)s(e)f(set)120 4530 y(equal)e(to)h(NULL)f(if)g(the)g(commen)m(t)i(string)d(is)g(not)i (needed.)261 4643 y(The)21 b(4th)h(routine)f(pro)m(vides)g(an)h(easy)g (w)m(a)m(y)h(to)f(\014nd)e(all)h(the)h(k)m(eyw)m(ords)g(in)f(the)g (header)h(that)g(matc)m(h)h(one)120 4756 y(of)29 b(the)h(name)f (templates)g(in)f Fc(inclist)f Fg(and)h(do)h(not)h(matc)m(h)g(an)m(y)f (of)g(the)h(name)f(templates)g(in)f Fc(exclist)p Fg(.)120 4869 y Fc(ninc)37 b Fg(and)h Fc(nexc)f Fg(are)i(the)g(n)m(um)m(b)s(er)e (of)h(template)h(strings)e(in)g Fc(inclist)g Fg(and)h Fc(exclist)p Fg(,)g(resp)s(ectiv)m(ely)-8 b(.)120 4982 y(Wild)33 b(cards)h(\(*,)i(?,)f(and)f(#\))g(ma)m(y)h(b)s(e)f(used)f(in) g(the)h(templates)h(to)g(matc)m(h)g(m)m(ultiple)d(k)m(eyw)m(ords.)53 b(Eac)m(h)120 5095 y(time)35 b(this)f(routine)g(is)g(called)g(it)g (returns)g(the)h(next)h(matc)m(hing)f(80-b)m(yte)h(k)m(eyw)m(ord)g (record.)54 b(It)36 b(returns)120 5208 y(status)31 b(=)f Fc(KEY)p 640 5208 29 4 v 33 w(NO)p 769 5208 V 34 w(EXIST)f Fg(if)g(there)i(are)g(no)f(more)g(matc)m(hes.)261 5321 y(The)f(5th)g(routine)f(returns)g(the)i(k)m(eyw)m(ord)g(v)-5 b(alue)28 b(units)g(string,)g(if)h(an)m(y)-8 b(.)41 b(The)28 b(units)g(are)i(recorded)f(at)120 5434 y(the)i(b)s(eginning)c(of)k(the) f(k)m(eyw)m(ord)h(commen)m(t)h(\014eld)d(enclosed)h(in)f(square)h(brac) m(k)m(ets.)1905 5809 y(19)p eop %%Page: 20 20 20 19 bop 120 573 a Fc(________________________)o(____)o(____)o(___)o (____)o(____)o(___)o(____)o(____)o(___)o(____)o(__)120 686 y(int)47 b(fits_write_key\(fitsfile)41 b(*fptr,)46 b(int)h(datatype,)f(char)g(*keyname,)502 799 y(void)g(*value,)g(char)h (*comment,)e(int)i(*status\))120 912 y(int)g(fits_update_key\(fitsfile) 41 b(*fptr,)46 b(int)h(datatype,)e(char)i(*keyname,)502 1024 y(void)f(*value,)g(char)h(*comment,)e(int)i(*status\))120 1137 y(int)g(fits_write_record\(fitsfi)o(le)42 b(*fptr,)k(char)g (*card,)g(int)h(*status\))120 1363 y(int)g(fits_modify_comment\(fits)o (file)41 b(*fptr,)46 b(char)h(*keyname,)e(char)i(*comment,)502 1476 y(int)g(*status\))120 1589 y(int)g(fits_write_key_unit\(fits)o (file)41 b(*fptr,)46 b(char)h(*keyname,)e(char)i(*unit,)502 1702 y(int)g(*status\))261 1975 y Fg(W)-8 b(rite)31 b(or)g(mo)s(dify)f (a)h(k)m(eyw)m(ord)g(in)f(the)h(header)g(of)g(the)g(curren)m(t)g(HDU.)h (The)e(\014rst)g(routine)g(app)s(ends)120 2087 y(the)g(new)g(k)m(eyw)m (ord)g(to)h(the)f(end)g(of)g(the)g(header,)h(whereas)e(the)i(second)f (routine)f(will)e(up)s(date)j(the)g(v)-5 b(alue)120 2200 y(and)40 b(commen)m(t)h(\014elds)e(of)i(the)g(k)m(eyw)m(ord)g(if)e(it)h (already)h(exists,)h(otherwise)e(it)h(b)s(eha)m(v)m(es)g(lik)m(e)e(the) i(\014rst)120 2313 y(routine)32 b(and)g(app)s(ends)f(the)h(new)h(k)m (eyw)m(ord.)48 b(Note)34 b(that)f Fc(value)e Fg(giv)m(es)i(the)g (address)f(to)h(the)g(v)-5 b(alue)32 b(and)120 2426 y(not)f(the)g(v)-5 b(alue)31 b(itself.)41 b(The)31 b Fc(datatype)d Fg(parameter)k(sp)s (eci\014es)d(the)j(C)e(datat)m(yp)s(e)i(of)f(the)g(k)m(eyw)m(ord)h(v)-5 b(alue)120 2539 y(and)38 b(ma)m(y)g(ha)m(v)m(e)i(an)m(y)f(of)f(the)g(v) -5 b(alues)38 b(listed)f(in)g(the)h(description)e(of)j(the)f(k)m(eyw)m (ord)h(reading)e(routines,)120 2652 y(ab)s(o)m(v)m(e.)71 b(A)40 b(NULL)g(ma)m(y)h(b)s(e)e(en)m(tered)i(for)f(the)g(commen)m(t)h (parameter,)i(in)c(whic)m(h)g(case)i(the)f(k)m(eyw)m(ord)120 2765 y(commen)m(t)31 b(\014eld)e(will)f(b)s(e)i(unmo)s(di\014ed)d(or)j (left)h(blank.)261 2878 y(The)25 b(third)f(routine)h(is)g(more)h (primitiv)m(e)e(and)h(simply)e(writes)i(the)h(80-c)m(haracter)j Fc(card)c Fg(record)h(to)g(the)120 2991 y(header.)40 b(It)30 b(is)f(the)h(programmer's)f(resp)s(onsibilit)m(y)d(in)i(this)h (case)h(to)h(ensure)e(that)h(the)g(record)g(conforms)120 3104 y(to)h(all)e(the)i(FITS)f(format)g(requiremen)m(ts)g(for)g(a)h (header)f(record.)261 3217 y(The)42 b(fourth)f(routine)g(mo)s(di\014es) f(the)i(commen)m(t)h(string)e(in)g(an)g(existing)g(k)m(eyw)m(ord,)46 b(and)41 b(the)h(last)120 3329 y(routine)33 b(writes)g(or)h(up)s(dates) f(the)h(k)m(eyw)m(ord)h(units)d(string)h(for)h(an)g(existing)f(k)m(eyw) m(ord.)52 b(\(The)34 b(units)e(are)120 3442 y(recorded)e(at)h(the)g(b)s (eginning)d(of)i(the)h(k)m(eyw)m(ord)f(commen)m(t)i(\014eld)d(enclosed) h(in)f(square)h(brac)m(k)m(ets\).)120 3621 y Fc (________________________)o(____)o(____)o(___)o(____)o(____)o(___)o (____)o(____)o(___)o(____)o(____)o(__)120 3734 y(int)47 b(fits_write_comment\(fitsf)o(ile)41 b(*fptr,)46 b(char)h(*comment,)93 b(int)47 b(*status\))120 3847 y(int)g(fits_write_history\(fitsf)o(ile) 41 b(*fptr,)46 b(char)h(*history,)93 b(int)47 b(*status\))120 3960 y(int)g(fits_write_date\(fitsfile)41 b(*fptr,)94 b(int)47 b(*status\))261 4139 y Fg(W)-8 b(rite)21 b(a)g Fc(COMMENT,)46 b(HISTORY)p Fg(,)18 b(or)j Fc(DATE)e Fg(k)m(eyw)m(ord)i (to)h(the)f(curren)m(t)f(header.)37 b(The)20 b Fc(COMMENT)f Fg(k)m(eyw)m(ord)120 4252 y(is)37 b(t)m(ypically)g(used)g(to)h(write)g (a)g(commen)m(t)h(ab)s(out)e(the)i(\014le)e(or)g(the)i(data.)64 b(The)37 b Fc(HISTORY)f Fg(k)m(eyw)m(ord)i(is)120 4365 y(t)m(ypically)22 b(used)f(to)j(pro)m(vide)e(information)f(ab)s(out)h (the)h(history)e(of)i(the)g(pro)s(cessing)e(pro)s(cedures)h(that)h(ha)m (v)m(e)120 4478 y(b)s(een)36 b(applied)f(to)i(the)g(data.)61 b(The)36 b Fc(comment)f Fg(or)i Fc(history)e Fg(string)h(will)e(b)s(e)i (con)m(tin)m(ued)h(o)m(v)m(er)h(m)m(ultiple)120 4591 y(k)m(eyw)m(ords)31 b(if)e(it)h(is)f(more)i(than)f(70)h(c)m(haracters)h (long.)261 4704 y(The)k Fc(DATE)f Fg(k)m(eyw)m(ord)i(is)e(used)h(to)h (record)f(the)h(date)g(and)f(time)g(that)h(the)f(FITS)g(\014le)f(w)m (as)i(created.)120 4817 y(Note)f(that)f(this)e(\014le)h(creation)h (date)g(is)f(usually)e(di\013eren)m(t)i(from)g(the)h(date)g(of)g(the)f (observ)-5 b(ation)35 b(whic)m(h)120 4930 y(obtained)e(the)h(data)h(in) d(the)j(FITS)e(\014le.)50 b(The)33 b Fc(DATE)g Fg(k)m(eyw)m(ord)h(v)-5 b(alue)34 b(is)f(a)h(c)m(haracter)i(string)c(in)h('yyyy-)120 5042 y(mm-ddThh:mm:ss')27 b(format.)40 b(If)29 b(a)g Fc(DATE)f Fg(k)m(eyw)m(ord)i(already)e(exists)h(in)f(the)h(header,)h (then)e(this)g(routine)120 5155 y(will)g(up)s(date)h(the)i(v)-5 b(alue)30 b(with)f(the)h(curren)m(t)g(system)h(date.)120 5334 y Fc(________________________)o(____)o(____)o(___)o(____)o(____)o (___)o(____)o(____)o(___)o(____)o(____)o(__)120 5447 y(int)47 b(fits_delete_record\(fitsf)o(ile)41 b(*fptr,)46 b(int)h(keynum,)94 b(int)47 b(*status\))120 5560 y(int)g (fits_delete_key\(fitsfile)41 b(*fptr,)46 b(char)h(*keyname,)93 b(int)47 b(*status\))1905 5809 y Fg(20)p eop %%Page: 21 21 21 20 bop 261 573 a Fg(Delete)32 b(a)f(k)m(eyw)m(ord)h(record.)42 b(The)30 b(\014rst)g(routine)g(deletes)h(a)g(k)m(eyw)m(ord)h(at)f(a)h (sp)s(eci\014ed)d(p)s(osition)g(\(the)120 686 y(\014rst)e(k)m(eyw)m (ord)h(is)e(at)i(p)s(osition)e(1,)j(not)e(0\),)i(whereas)f(the)f (second)h(routine)e(deletes)i(the)g(named)f(k)m(eyw)m(ord.)120 898 y Fc(________________________)o(____)o(____)o(___)o(____)o(____)o (___)o(____)o(____)o(___)o(____)o(____)o(___)o(___)120 1011 y(int)47 b(fits_copy_header\(fitsfil)o(e)42 b(*infptr,)j(fitsfile) h(*outfptr,)93 b(int)47 b(*status\))261 1224 y Fg(Cop)m(y)26 b(all)f(the)h(header)g(k)m(eyw)m(ords)h(from)e(the)i(curren)m(t)e(HDU)i (asso)s(ciated)g(with)d(infptr)g(to)j(the)g(curren)m(t)120 1337 y(HDU)h(asso)s(ciated)f(with)e(outfptr.)39 b(If)27 b(the)g(curren)m(t)f(output)h(HDU)g(is)f(not)h(empt)m(y)-8 b(,)29 b(then)d(a)h(new)f(HDU)i(will)120 1450 y(b)s(e)34 b(app)s(ended)f(to)j(the)f(output)f(\014le.)53 b(The)35 b(output)f(HDU)i(will)c(then)i(ha)m(v)m(e)i(the)f(iden)m(tical)f (structure)g(as)120 1562 y(the)d(input)d(HDU,)j(but)f(will)e(con)m (tain)i(no)h(data.)1905 5809 y(21)p eop %%Page: 22 22 22 21 bop 120 573 a Fb(4.7)112 b(Utilit)m(y)34 b(Routines)120 744 y Fg(This)29 b(section)h(lists)f(the)i(most)f(imp)s(ortan)m(t)g (CFITSIO)f(general)h(utilit)m(y)f(routines.)120 957 y Fc(________________________)o(____)o(____)o(___)o(____)o(____)o(___)o (____)o(____)o(___)o(____)o(____)o(__)120 1070 y(int)47 b(fits_write_chksum\()c(fitsfile)i(*fptr,)h(int)h(*status\))120 1183 y(int)g(fits_verify_chksum\(fitsf)o(ile)41 b(*fptr,)46 b(int)h(*dataok,)f(int)h(*hduok,)f(int)g(*status\))261 1395 y Fg(These)35 b(routines)f(compute)h(or)g(v)-5 b(alidate)34 b(the)i(c)m(hec)m(ksums)f(for)g(the)g(currenrt)f(HDU.)i(The)e Fc(DATASUM)120 1508 y Fg(k)m(eyw)m(ord)d(is)e(used)g(to)i(store)g(the)f (n)m(umerical)f(v)-5 b(alue)29 b(of)i(the)f(32-bit,)h(1's)f(complemen)m (t)g(c)m(hec)m(ksum)h(for)f(the)120 1621 y(data)25 b(unit)e(alone.)39 b(The)24 b Fc(CHECKSUM)f Fg(k)m(eyw)m(ord)i(is)f(used)f(to)j(store)f (the)g(ASCI)s(I)e(enco)s(ded)h(COMPLEMENT)120 1734 y(of)32 b(the)f(c)m(hec)m(ksum)h(for)f(the)h(en)m(tire)f(HDU.)i(Storing)d(the)i (complemen)m(t,)g(rather)f(than)g(the)h(actual)f(c)m(hec)m(k-)120 1847 y(sum,)26 b(forces)g(the)g(c)m(hec)m(ksum)g(for)f(the)h(whole)f (HDU)h(to)g(equal)f(zero.)40 b(If)25 b(the)h(\014le)f(has)g(b)s(een)g (mo)s(di\014ed)e(since)120 1960 y(the)31 b(c)m(hec)m(ksums)f(w)m(ere)h (computed,)g(then)f(the)g(HDU)i(c)m(hec)m(ksum)f(will)c(usually)h(not)j (equal)f(zero.)261 2073 y(The)g(returned)g Fc(dataok)f Fg(and)h Fc(hduok)g Fg(parameters)h(will)d(ha)m(v)m(e)k(a)f(v)-5 b(alue)30 b(=)h(1)g(if)f(the)h(data)g(or)g(HDU)g(is)120 2186 y(v)m(eri\014ed)c(correctly)-8 b(,)30 b(a)e(v)-5 b(alue)28 b(=)g(0)g(if)f(the)i Fc(DATASUM)d Fg(or)i Fc(CHECKSUM)e Fg(k)m(eyw)m(ord)j(is)e(not)h(presen)m(t,)h(or)f(v)-5 b(alue)28 b(=)120 2299 y(-1)j(if)e(the)i(computed)f(c)m(hec)m(ksum)h (is)f(not)g(correct.)120 2511 y Fc(________________________)o(____)o (____)o(___)o(____)o(____)o(___)o(____)o(____)o(___)o(____)o(____)o(__) 120 2624 y(int)47 b(fits_parse_value\(char)42 b(*card,)k(char)h (*value,)e(char)i(*comment,)e(int)i(*status\))120 2737 y(int)g(fits_get_keytype\(char)42 b(*value,)k(char)g(*dtype,)g(int)h (*status\))120 2850 y(int)g(fits_get_keyclass\(char)42 b(*card\))120 2963 y(int)47 b(fits_parse_template\(char)41 b(*template,)k(char)i(*card,)f(int)h(*keytype,)e(int)i(*status\))261 3288 y(fits)p 459 3288 29 4 v 33 w(parse)p 732 3288 V 33 w(value)29 b Fg(parses)h(the)h(input)d(80-c)m(hararacter)33 b(header)d(k)m(eyw)m(ord)h(record,)g(returning)d(the)120 3401 y(v)-5 b(alue)20 b(\(as)i(a)f(literal)e(c)m(haracter)k(string\))d (and)g(commen)m(t)i(strings.)37 b(If)20 b(the)h(k)m(eyw)m(ord)h(has)e (no)h(v)-5 b(alue)20 b(\(columns)120 3514 y(9-10)38 b(not)e(equal)g(to) h('=)f('\),)j(then)d(a)g(n)m(ull)f(v)-5 b(alue)35 b(string)h(is)f (returned)g(and)h(the)g(commen)m(t)h(string)f(is)f(set)120 3627 y(equal)30 b(to)h(column)e(9)i(-)g(80)g(of)f(the)h(input)d (string.)261 3740 y Fc(fits)p 459 3740 V 33 w(get)p 636 3740 V 34 w(keytype)41 b Fg(parses)i(the)g(k)m(eyw)m(ord)h(v)-5 b(alue)42 b(string)g(to)i(determine)e(its)h(datat)m(yp)s(e.)80 b Fc(dtype)120 3853 y Fg(returns)34 b(with)f(a)i(v)-5 b(alue)35 b(of)g('C',)g('L',)g('I',)h('F')f(or)g('X',)h(for)f(c)m (haracter)h(string,)f(logical,)h(in)m(teger,)g(\015oating)120 3966 y(p)s(oin)m(t,)30 b(or)g(complex,)g(resp)s(ectiv)m(ely)-8 b(.)261 4079 y Fc(fits)p 459 4079 V 33 w(get)p 636 4079 V 34 w(keyclass)31 b Fg(returns)i(a)h(classi\014cation)e(co)s(de)i (that)g(indicates)f(the)h(classi\014cation)e(t)m(yp)s(e)i(of)120 4192 y(the)41 b(input)d(k)m(eyw)m(ord)j(record)f(\(e.g.,)45 b(a)40 b(required)f(structural)g(k)m(eyw)m(ord,)44 b(a)d(TDIM)f(k)m (eyw)m(ord,)k(a)c(W)m(CS)120 4304 y(k)m(eyw)m(ord,)49 b(a)d(commen)m(t)g(k)m(eyw)m(ord,)j(etc.)85 b(See)45 b(the)h(CFITSIO)d(Reference)j(Guide)d(for)i(a)g(list)f(of)h(the)120 4417 y(di\013eren)m(t)30 b(classi\014cation)f(co)s(des.)261 4530 y Fc(fits)p 459 4530 V 33 w(parse)p 732 4530 V 33 w(template)37 b Fg(tak)m(es)j(an)e(input)f(free)h(format)h(k)m(eyw)m (ord)g(template)g(string)f(and)g(returns)120 4643 y(a)i(formatted)g (80*c)m(har)h(record)e(that)h(satis\014es)f(all)g(the)g(FITS)g (requiremen)m(ts)g(for)g(a)h(header)f(k)m(eyw)m(ord)120 4756 y(record.)65 b(The)38 b(template)h(should)d(generally)i(con)m (tain)h(3)g(tok)m(ens:)58 b(the)38 b(k)m(eyw)m(ord)h(name,)i(the)e(k)m (eyw)m(ord)120 4869 y(v)-5 b(alue,)28 b(and)f(the)g(k)m(eyw)m(ord)h (commen)m(t)h(string.)39 b(The)27 b(returned)f Fc(keytype)g Fg(parameter)i(indicates)e(whether)120 4982 y(the)33 b(k)m(eyw)m(ord)g(is)f(a)h(COMMENT)g(k)m(eyw)m(ord)g(or)g(not.)48 b(See)33 b(the)g(CFITSIO)e(Reference)j(Guide)e(for)g(more)120 5095 y(details.)1905 5809 y(22)p eop %%Page: 23 23 23 22 bop 120 573 a Fi(5)135 b(CFITSIO)44 b(File)h(Names)h(and)f (Filters)120 779 y Fb(5.1)112 b(Creating)37 b(New)g(Files)120 951 y Fg(When)43 b(creating)g(a)g(new)g(output)f(\014le)g(on)h (magnetic)h(disk)d(with)h Fc(fits)p 2677 951 29 4 v 33 w(create)p 2998 951 V 33 w(file)g Fg(the)h(follo)m(wing)120 1064 y(features)31 b(are)f(supp)s(orted.)256 1251 y Fa(\017)46 b Fg(Ov)m(erwriting,)29 b(or)h('Clobb)s(ering')e(an)j(Existing)d(File) 347 1402 y(If)f(the)h(\014lename)f(is)g(preceded)g(b)m(y)g(an)h (exclamation)g(p)s(oin)m(t)e(\(!\))41 b(then)27 b(if)g(that)h(\014le)e (already)i(exists)f(it)347 1514 y(will)f(b)s(e)h(deleted)h(prior)e(to)j (creating)f(the)g(new)g(FITS)f(\014le.)39 b(Otherwise)26 b(if)h(there)h(is)f(an)h(existing)f(\014le)347 1627 y(with)35 b(the)g(same)h(name,)i(CFITSIO)c(will)f(not)j(o)m(v)m(erwrite)g(the)g (existing)e(\014le)h(and)g(will)e(return)h(an)347 1740 y(error)28 b(status)h(co)s(de.)40 b(Note)30 b(that)f(the)f(exclamation) h(p)s(oin)m(t)e(is)g(a)i(sp)s(ecial)e(UNIX)h(c)m(haracter,)j(so)e(if)e (it)347 1853 y(is)f(used)g(on)g(the)h(command)g(line)e(rather)h(than)g (en)m(tered)i(at)f(a)g(task)g(prompt,)g(it)f(m)m(ust)h(b)s(e)f (preceded)347 1966 y(b)m(y)j(a)h(bac)m(kslash)f(to)h(force)g(the)f (UNIX)h(shell)d(to)k(pass)d(it)h(v)m(erbatim)g(to)h(the)g(application)d (program.)256 2154 y Fa(\017)46 b Fg(Compressed)30 b(Output)f(Files)347 2304 y(If)g(the)g(output)f(disk)g(\014le)g(name)h(ends)f(with)f(the)i (su\016x)f('.gz',)j(then)e(CFITSIO)e(will)f(compress)j(the)347 2417 y(\014le)38 b(using)g(the)h(gzip)g(compression)f(algorithm)g(b)s (efore)g(writing)f(it)i(to)h(disk.)65 b(This)37 b(can)j(reduce)347 2530 y(the)h(amoun)m(t)g(of)g(disk)e(space)i(used)f(b)m(y)g(the)h (\014le.)70 b(Note)42 b(that)f(this)f(feature)h(requires)e(that)i(the) 347 2643 y(uncompressed)e(\014le)h(b)s(e)g(constructed)h(in)e(memory)h (b)s(efore)g(it)g(is)g(compressed)g(and)g(written)g(to)347 2756 y(disk,)29 b(so)i(it)f(can)h(fail)e(if)g(there)i(is)e (insu\016cien)m(t)g(a)m(v)-5 b(ailable)29 b(memory)-8 b(.)347 2906 y(One)32 b(can)h(also)g(sp)s(ecify)e(that)i(an)m(y)g (images)g(written)f(to)h(the)g(output)f(\014le)g(should)f(b)s(e)h (compressed)347 3019 y(using)22 b(the)h(newly)f(dev)m(elop)s(ed)h (`tile-compression')f(algorithm)g(b)m(y)h(app)s(ending)e(`[compress]')j (to)g(the)347 3132 y(name)36 b(of)h(the)f(disk)f(\014le)g(\(as)i(in)e Fc(myfile.fits[compress])p Fg(\).)52 b(Refer)36 b(to)h(the)g(CFITSIO)d (User's)347 3245 y(Reference)d(Guide)f(for)g(more)g(information)f(ab)s (out)h(this)f(new)h(image)h(compression)e(format.)256 3432 y Fa(\017)46 b Fg(Using)30 b(a)h(T)-8 b(emplate)30 b(to)h(Create)g(a)g(New)g(FITS)e(File)347 3583 y(The)k(structure)g(of)g (an)m(y)h(new)f(FITS)f(\014le)h(that)h(is)e(to)i(b)s(e)f(created)h(ma)m (y)g(b)s(e)f(de\014ned)f(in)g(an)h(ASCI)s(I)347 3695 y(template)c(\014le.)39 b(If)29 b(the)f(name)h(of)g(the)f(template)h (\014le)f(is)g(app)s(ended)e(to)k(the)e(name)h(of)g(the)f(FITS)g (\014le)347 3808 y(itself,)36 b(enclosed)f(in)f(paren)m(thesis)g (\(e.g.,)k Fc('newfile.fits\(template.tx)o(t\)')p Fg(\))29 b(then)35 b(CFITSIO)347 3921 y(will)28 b(create)33 b(a)e(FITS)f(\014le) g(with)f(that)j(structure)e(b)s(efore)h(op)s(ening)e(it)h(for)h(the)g (application)e(to)i(use.)347 4034 y(The)h(template)h(\014le)f (basically)e(de\014nes)i(the)h(dimensions)c(and)j(data)h(t)m(yp)s(e)g (of)g(the)f(primary)f(arra)m(y)347 4147 y(and)23 b(an)m(y)h(IMA)m(GE)g (extensions,)h(and)e(the)g(names)g(and)g(data)h(t)m(yp)s(es)g(of)f(the) h(columns)e(in)g(an)m(y)i(ASCI)s(I)347 4260 y(or)35 b(binary)f(table)h (extensions.)54 b(The)35 b(template)g(\014le)f(can)i(also)f(b)s(e)f (used)h(to)g(de\014ne)g(an)m(y)g(optional)347 4373 y(k)m(eyw)m(ords)g (that)g(should)d(b)s(e)i(written)f(in)h(an)m(y)g(of)h(the)f(HDU)h (headers.)53 b(The)34 b(image)g(pixel)f(v)-5 b(alues)347 4486 y(and)38 b(table)h(en)m(try)f(v)-5 b(alues)38 b(are)h(all)e (initialized)f(to)j(zero.)66 b(The)38 b(application)f(program)h(can)h (then)347 4599 y(write)27 b(actual)g(data)h(in)m(to)g(the)f(HDUs.)40 b(See)28 b(the)f(CFITSIO)f(Reference)i(Guide)e(for)h(for)g(a)h (complete)347 4712 y(description)h(of)h(the)h(template)g(\014le)e(syn)m (tax.)256 4899 y Fa(\017)46 b Fg(Creating)30 b(a)h(T)-8 b(emp)s(orary)30 b(Scratc)m(h)h(File)e(in)g(Memory)347 5050 y(It)38 b(is)f(sometimes)h(useful)e(to)j(create)g(a)f(temp)s (orary)g(output)f(\014le)g(when)g(testing)h(an)g(application)347 5162 y(program.)45 b(If)31 b(the)h(name)g(of)g(the)g(\014le)f(to)i(b)s (e)e(created)i(is)e(sp)s(eci\014ed)f(as)i Fc(mem:)42 b Fg(then)32 b(CFITSIO)e(will)347 5275 y(create)39 b(the)e(\014le)g(in) f(memory)h(where)f(it)h(will)e(p)s(ersist)g(only)h(un)m(til)g(the)h (program)g(closes)h(the)f(\014le.)347 5388 y(Use)e(of)g(this)f Fc(mem:)48 b Fg(output)34 b(\014le)g(usually)e(enables)i(the)h(program) f(to)i(run)d(faster,)j(and)e(of)h(course)347 5501 y(the)c(output)f (\014le)f(do)s(es)h(not)h(use)f(up)f(an)m(y)i(disk)e(space.)1905 5809 y(23)p eop %%Page: 24 24 24 23 bop 120 573 a Fb(5.2)112 b(Op)s(ening)38 b(Existing)d(Files)120 744 y Fg(When)j(op)s(ening)e(a)j(\014le)e(with)g Fc(fits)p 1392 744 29 4 v 33 w(open)p 1617 744 V 33 w(file)p Fg(,)i(CFITSIO)e (can)h(read)g(a)g(v)-5 b(ariet)m(y)39 b(of)f(di\013eren)m(t)f(input)120 857 y(\014le)30 b(formats)h(and)g(is)f(not)h(restricted)g(to)h(only)e (reading)g(FITS)h(format)g(\014les)f(from)h(magnetic)g(disk.)42 b(The)120 970 y(follo)m(wing)29 b(t)m(yp)s(es)h(of)h(input)d(\014les)i (are)g(all)g(supp)s(orted:)256 1183 y Fa(\017)46 b Fg(FITS)30 b(\014les)f(compressed)h(with)f Fc(zip,)47 b(gzip)29 b Fg(or)i Fc(compress)347 1333 y Fg(If)36 b(CFITSIO)f(cannot)i(\014nd)e (the)i(sp)s(eci\014ed)e(\014le)g(to)i(op)s(en)f(it)g(will)e (automatically)i(lo)s(ok)g(for)g(a)h(\014le)347 1446 y(with)j(the)g(same)h(ro)s(otname)h(but)d(with)h(a)h Fc(.gz,)46 b(.zip)p Fg(,)d(or)d Fc(.Z)g Fg(extension.)71 b(If)41 b(it)f(\014nds)f(suc)m(h)h(a)347 1559 y(compressed)d(\014le,)g (it)g(will)d(allo)s(cate)j(a)g(blo)s(c)m(k)f(of)h(memory)g(and)f (uncompress)f(the)i(\014le)f(in)m(to)h(that)347 1672 y(memory)25 b(space.)39 b(The)25 b(application)e(program)h(will)f(then) h(transparen)m(tly)g(op)s(en)g(this)g(virtual)f(FITS)347 1785 y(\014le)35 b(in)f(memory)-8 b(.)56 b(Compressed)35 b(\014les)f(can)i(only)f(b)s(e)f(op)s(ened)h(with)f('readonly',)j(not)f ('readwrite')347 1898 y(\014le)30 b(access.)256 2085 y Fa(\017)46 b Fg(FITS)30 b(\014les)f(on)h(the)h(in)m(ternet,)f(using)f Fc(ftp)h Fg(or)g Fc(http)f Fg(URLs)347 2236 y(Simply)20 b(pro)m(vide)i(the)i(full)c(URL)j(as)g(the)g(name)g(of)h(the)f(\014le)f (that)h(y)m(ou)h(w)m(an)m(t)f(to)h(op)s(en.)38 b(F)-8 b(or)23 b(example,)347 2348 y Fc(ftp://legacy.gsfc.nasa.go)o(v/so)o (ftwa)o(re/)o(fits)o(io/c)o(/te)o(stpr)o(og.s)o(td)347 2461 y Fg(will)34 b(op)s(en)h(the)h(CFITSIO)e(test)j(FITS)e(\014le)g (that)i(is)d(lo)s(cated)j(on)e(the)h Fc(legacy)f Fg(mac)m(hine.)57 b(These)347 2574 y(\014les)30 b(can)g(only)g(b)s(e)f(op)s(ened)h(with)f ('readonly')h(\014le)g(access.)256 2762 y Fa(\017)46 b Fg(FITS)30 b(\014les)f(on)h Fc(stdin)f Fg(or)i Fc(stdout)d Fg(\014le)i(streams)347 2912 y(If)k(the)g(name)h(of)f(the)h(\014le)e (to)i(b)s(e)f(op)s(ened)f(is)g Fc('stdin')g Fg(or)h Fc('-')f Fg(\(a)i(single)e(dash)g(c)m(haracter\))k(then)347 3025 y(CFITSIO)f(will)f(read)j(the)f(\014le)g(from)g(the)h(standard)f(input) e(stream.)63 b(Similarly)-8 b(,)36 b(if)h(the)h(output)347 3138 y(\014le)k(name)h(is)f Fc('stdout')f Fg(or)i Fc('-')p Fg(,)j(then)c(the)i(\014le)e(will)e(b)s(e)j(written)f(to)h(the)h (standard)e(output)347 3251 y(stream.)54 b(In)34 b(addition,)g(if)f (the)i(output)f(\014lename)g(is)g Fc('stdout.gz')d Fg(or)k Fc('-.gz')e Fg(then)h(it)g(will)e(b)s(e)347 3364 y(gzip)h(compressed)g (b)s(efore)g(b)s(eing)e(written)h(to)i(stdout.)49 b(This)32 b(mec)m(hanism)g(can)i(b)s(e)e(used)g(to)i(pip)s(e)347 3477 y(FITS)c(\014les)f(from)h(one)h(task)g(to)g(another)f(without)g (ha)m(ving)g(to)h(write)e(an)i(in)m(termediary)e(FITS)g(\014le)347 3590 y(on)i(magnetic)f(disk.)256 3777 y Fa(\017)46 b Fg(FITS)30 b(\014les)f(that)i(exist)f(only)g(in)f(memory)-8 b(,)31 b(or)f(shared)g(memory)-8 b(.)347 3928 y(In)38 b(some)i(applications,)f(suc)m(h)g(as)g(real)f(time)h(data)g (acquisition,)h(y)m(ou)f(ma)m(y)h(w)m(an)m(t)f(to)h(ha)m(v)m(e)g(one) 347 4040 y(pro)s(cess)31 b(write)f(a)i(FITS)e(\014le)g(in)m(to)h(a)h (certain)f(section)g(of)g(computer)g(memory)-8 b(,)32 b(and)f(then)f(b)s(e)h(able)347 4153 y(to)26 b(op)s(en)f(that)g(\014le) f(in)g(memory)h(with)f(another)h(pro)s(cess.)39 b(There)25 b(is)f(a)h(sp)s(ecialized)e(CFITSIO)h(op)s(en)347 4266 y(routine)e(called)h Fc(fits)p 1102 4266 V 33 w(open)p 1327 4266 V 33 w(memfile)f Fg(that)h(can)h(b)s(e)e(used)h(for)g(this)f (purp)s(ose.)37 b(See)23 b(the)g(\\CFITSIO)347 4379 y(User's)31 b(Reference)g(Guide")f(for)g(more)g(details.)256 4567 y Fa(\017)46 b Fg(IRAF)31 b(format)g(images)f(\(with)f Fc(.imh)h Fg(\014le)f(extensions\))347 4717 y(CFITSIO)38 b(supp)s(orts)g(reading)h(IRAF)h(format)g(images)g(b)m(y)g(con)m(v)m (erting)g(them)g(on)f(the)h(\015y)f(in)m(to)347 4830 y(FITS)27 b(images)h(in)e(memory)-8 b(.)40 b(The)28 b(application)d (program)j(then)f(reads)h(this)e(virtual)g(FITS)h(format)347 4943 y(image)35 b(in)f(memory)-8 b(.)55 b(There)34 b(is)g(curren)m(tly) g(no)h(supp)s(ort)e(for)i(writing)e(IRAF)i(format)g(images,)h(or)347 5056 y(for)30 b(reading)g(or)g(writing)f(IRAF)h(tables.)256 5243 y Fa(\017)46 b Fg(Image)31 b(arra)m(ys)g(in)e(ra)m(w)i(binary)d (format)347 5394 y(If)23 b(the)h(input)d(\014le)i(is)f(a)i(ra)m(w)f (binary)f(data)i(arra)m(y)-8 b(,)26 b(then)d(CFITSIO)f(will)e(con)m(v)m (ert)25 b(it)e(on)g(the)h(\015y)f(in)m(to)g(a)347 5507 y(virtual)f(FITS)g(image)i(with)e(the)i(basic)e(set)i(of)g(required)d (header)i(k)m(eyw)m(ords)h(b)s(efore)f(it)g(is)f(op)s(ened)g(b)m(y)1905 5809 y(24)p eop %%Page: 25 25 25 24 bop 347 573 a Fg(the)31 b(application)d(program.)40 b(In)30 b(this)f(case)i(the)f(data)h(t)m(yp)s(e)g(and)e(dimensions)e (of)k(the)f(image)g(m)m(ust)347 686 y(b)s(e)d(sp)s(eci\014ed)e(in)h (square)h(brac)m(k)m(ets)h(follo)m(wing)e(the)h(\014lename)g(\(e.g.)41 b Fc(rawfile.dat[ib512,512])p Fg(\).)347 799 y(The)30 b(\014rst)g(c)m(haracter)i(inside)c(the)i(brac)m(k)m(ets)i(de\014nes)e (the)g(datat)m(yp)s(e)i(of)e(the)h(arra)m(y:)586 1049 y Fc(b)429 b(8-bit)47 b(unsigned)e(byte)586 1161 y(i)381 b(16-bit)47 b(signed)f(integer)586 1274 y(u)381 b(16-bit)47 b(unsigned)e(integer)586 1387 y(j)381 b(32-bit)47 b(signed)f(integer) 586 1500 y(r)h(or)h(f)142 b(32-bit)47 b(floating)e(point)586 1613 y(d)381 b(64-bit)47 b(floating)e(point)347 1863 y Fg(An)32 b(optional)e(second)i(c)m(haracter)h(sp)s(eci\014es)d(the)i (b)m(yte)h(order)e(of)g(the)h(arra)m(y)g(v)-5 b(alues:)43 b(b)31 b(or)h(B)g(indi-)347 1976 y(cates)27 b(big)d(endian)f(\(as)j(in) e(FITS)g(\014les)g(and)g(the)i(nativ)m(e)f(format)g(of)h(SUN)e(UNIX)i (w)m(orkstations)f(and)347 2089 y(Mac)35 b(PCs\))d(and)h(l)f(or)h(L)g (indicates)f(little)g(endian)g(\(nativ)m(e)i(format)f(of)g(DEC)h(OSF)e (w)m(orkstations)347 2202 y(and)41 b(IBM)g(PCs\).)73 b(If)41 b(this)f(c)m(haracter)i(is)f(omitted)g(then)f(the)i(arra)m(y)f (is)g(assumed)f(to)i(ha)m(v)m(e)g(the)347 2315 y(nativ)m(e)29 b(b)m(yte)g(order)e(of)h(the)h(lo)s(cal)e(mac)m(hine.)40 b(These)28 b(datat)m(yp)s(e)h(c)m(haracters)g(are)g(then)f(follo)m(w)m (ed)f(b)m(y)347 2428 y(a)f(series)f(of)g(one)h(or)f(more)h(in)m(teger)f (v)-5 b(alues)25 b(separated)h(b)m(y)f(commas)h(whic)m(h)e(de\014ne)h (the)g(size)h(of)f(eac)m(h)347 2540 y(dimension)j(of)j(the)f(ra)m(w)h (arra)m(y)-8 b(.)41 b(Arra)m(ys)31 b(with)e(up)g(to)i(5)g(dimensions)d (are)i(curren)m(tly)g(supp)s(orted.)347 2691 y(Finally)-8 b(,)32 b(a)h(b)m(yte)g(o\013set)g(to)g(the)g(p)s(osition)d(of)i(the)h (\014rst)f(pixel)e(in)h(the)i(data)g(\014le)e(ma)m(y)i(b)s(e)f(sp)s (eci\014ed)347 2804 y(b)m(y)c(separating)g(it)g(with)e(a)j(':')40 b(from)27 b(the)i(last)e(dimension)f(v)-5 b(alue.)39 b(If)28 b(omitted,)h(it)e(is)g(assumed)h(that)347 2917 y(the)h(o\013set)g(=)f(0.)41 b(This)26 b(parameter)j(ma)m(y)g(b)s(e)f (used)f(to)i(skip)e(o)m(v)m(er)j(an)m(y)e(header)g(information)f(in)g (the)347 3029 y(\014le)j(that)h(precedes)f(the)h(binary)d(data.)42 b(F)-8 b(urther)30 b(examples:)443 3279 y Fc(raw.dat[b10000])473 b(1-dimensional)44 b(10000)i(pixel)h(byte)f(array)443 3392 y(raw.dat[rb400,400,12])185 b(3-dimensional)44 b(floating)i(point) g(big-endian)f(array)443 3505 y(img.fits[ib512,512:2880)o(])d(reads)k (the)h(512)g(x)h(512)e(short)h(integer)f(array)g(in)h(a)1636 3618 y(FITS)g(file,)f(skipping)f(over)i(the)g(2880)g(byte)f(header)1905 5809 y Fg(25)p eop %%Page: 26 26 26 25 bop 120 573 a Fb(5.3)112 b(Image)37 b(Filtering)120 744 y Fh(5.3.1)105 b(Extracting)35 b(a)g(subsection)h(of)f(an)g(image) 120 916 y Fg(When)21 b(sp)s(ecifying)e(the)j(name)f(of)g(an)g(image)h (to)g(b)s(e)f(op)s(ened,)h(y)m(ou)g(can)f(select)h(a)g(rectangular)f (subsection)f(of)120 1029 y(the)29 b(image)f(to)h(b)s(e)f(extracted)i (and)e(op)s(ened)f(b)m(y)i(the)f(application)f(program.)40 b(The)28 b(application)f(program)120 1142 y(then)k(op)s(ens)f(a)i (virtual)e(image)h(that)h(only)e(con)m(tains)i(the)f(pixels)f(within)e (the)k(sp)s(eci\014ed)d(subsection.)43 b(T)-8 b(o)120 1255 y(do)33 b(this,)g(sp)s(ecify)f(the)i(the)f(range)h(of)f(pixels)e (\(start:end\))k(along)e(eac)m(h)h(axis)f(to)h(b)s(e)f(extracted)h (from)f(the)120 1368 y(original)28 b(image)j(enclosed)f(in)f(square)h (brac)m(k)m(ets.)42 b(Y)-8 b(ou)31 b(can)f(also)h(sp)s(ecify)e(an)h (optional)f(pixel)g(incremen)m(t)120 1481 y(\(start:end:step\))37 b(for)f(eac)m(h)g(axis)g(of)f(the)h(input)e(image.)57 b(A)36 b(pixel)e(step)i(=)f(1)h(will)d(b)s(e)i(assumed)g(if)g(it)g(is) 120 1594 y(not)29 b(sp)s(eci\014ed.)38 b(If)28 b(the)h(starting)f (pixel)f(is)g(larger)i(then)f(the)h(end)e(pixel,)h(then)g(the)h(image)g (will)c(b)s(e)j(\015ipp)s(ed)120 1706 y(\(pro)s(ducing)33 b(a)i(mirror)d(image\))j(along)g(that)g(dimension.)51 b(An)34 b(asterisk,)i('*',)h(ma)m(y)e(b)s(e)f(used)f(to)j(sp)s(ecify) 120 1819 y(the)25 b(en)m(tire)g(range)g(of)g(an)g(axis,)h(and)e('-*')i (will)d(\015ip)g(the)i(en)m(tire)g(axis.)38 b(In)24 b(the)h(follo)m (wing)f(examples,)i(assume)120 1932 y(that)31 b Fc(myfile.fits)c Fg(con)m(tains)k(a)g(512)g(x)g(512)g(pixel)e(2D)i(image.)215 2130 y Fc(myfile.fits[201:210,)43 b(251:260])i(-)j(opens)e(a)i(10)f(x)g (10)g(pixel)g(subimage.)215 2356 y(myfile.fits[*,)d(512:257])i(-)h (opens)g(a)g(512)g(x)h(256)e(image)h(consisting)e(of)406 2469 y(all)i(the)g(columns)f(in)h(the)g(input)f(image,)h(but)f(only)h (rows)g(257)406 2582 y(through)f(512.)95 b(The)46 b(image)h(will)f(be)i (flipped)d(along)i(the)g(Y)g(axis)406 2695 y(since)g(the)g(starting)e (row)i(is)g(greater)f(than)h(the)g(ending)406 2808 y(row.)215 3033 y(myfile.fits[*:2,)d(512:257:2])h(-)i(creates)f(a)i(256)e(x)i(128) f(pixel)f(image.)406 3146 y(Similar)g(to)h(the)g(previous)f(example,)f (but)i(only)g(every)f(other)h(row)406 3259 y(and)g(column)f(is)i(read)e (from)h(the)g(input)f(image.)215 3485 y(myfile.fits[-*,)e(*])j(-)h (creates)e(an)h(image)f(containing)f(all)i(the)g(rows)g(and)406 3598 y(columns)f(in)h(the)g(input)g(image,)f(but)h(flips)f(it)h(along)g (the)f(X)406 3711 y(axis.)261 3909 y Fg(If)33 b(the)g(arra)m(y)h(to)g (b)s(e)f(op)s(ened)f(is)h(in)f(an)h(Image)h(extension,)g(and)f(not)g (in)f(the)i(primary)d(arra)m(y)j(of)f(the)120 4022 y(\014le,)c(then)g (y)m(ou)g(need)g(to)h(sp)s(ecify)d(the)j(extension)f(name)g(or)g(n)m (um)m(b)s(er)f(in)f(square)i(brac)m(k)m(ets)i(b)s(efore)e(giving)120 4135 y(the)h(subsection)e(range,)i(as)g(in)e Fc(myfile.fits[1][-*,)42 b(*])29 b Fg(to)h(read)f(the)h(image)g(in)e(the)h(\014rst)g(extension) 120 4248 y(in)g(the)i(\014le.)120 4485 y Fh(5.3.2)105 b(Create)34 b(an)h(Image)f(b)m(y)h(Binning)h(T)-9 b(able)34 b(Columns)120 4657 y Fg(Y)-8 b(ou)40 b(can)f(also)g(create)i(and)d(op)s (en)h(a)g(virtual)f(image)h(b)m(y)g(binning)d(the)k(v)-5 b(alues)38 b(in)g(a)h(pair)f(of)i(columns)120 4770 y(of)f(a)h(FITS)f (table)g(\(in)f(other)i(w)m(ords,)h(create)g(a)e(2-D)i(histogram)e(of)g (the)g(v)-5 b(alues)39 b(in)f(the)h(2)h(columns\).)120 4883 y(This)33 b(tec)m(hnique)h(is)g(often)h(used)f(in)g(X-ra)m(y)i (astronom)m(y)f(where)f(eac)m(h)i(detected)g(X-ra)m(y)g(photon)f (during)120 4996 y(an)29 b(observ)-5 b(ation)28 b(is)g(recorded)h(in)e (a)i(FITS)f(table.)40 b(There)29 b(are)g(t)m(ypically)e(2)j(columns)d (in)g(the)i(table)g(called)120 5109 y Fc(X)35 b Fg(and)h Fc(Y)f Fg(whic)m(h)g(record)g(the)i(pixel)d(lo)s(cation)h(of)h(that)h (ev)m(en)m(t)g(in)d(a)j(virtual)d(2D)i(image.)58 b(T)-8 b(o)36 b(create)h(an)120 5222 y(image)27 b(from)f(this)g(table,)i(one)f (just)f(scans)h(the)g(X)g(and)f(Y)h(columns)f(and)g(coun)m(ts)h(up)f (ho)m(w)h(man)m(y)g(photons)120 5334 y(w)m(ere)k(recorded)g(in)f(eac)m (h)i(pixel)d(of)i(the)g(image.)43 b(When)30 b(table)h(binning)d(is)i (sp)s(eci\014ed,)g(CFITSIO)f(creates)120 5447 y(a)38 b(temp)s(orary)e(FITS)h(primary)e(arra)m(y)j(in)e(memory)h(b)m(y)g (computing)g(the)g(histogram)g(of)h(the)f(v)-5 b(alues)37 b(in)120 5560 y(the)29 b(sp)s(eci\014ed)e(columns.)39 b(After)29 b(the)g(histogram)f(is)g(computed)h(the)g(original)e(FITS)h (\014le)g(con)m(taining)g(the)1905 5809 y(26)p eop %%Page: 27 27 27 26 bop 120 573 a Fg(table)24 b(is)e(closed)i(and)f(the)g(temp)s (orary)h(FITS)e(primary)g(arra)m(y)i(is)f(op)s(ened)g(and)g(passed)g (to)h(the)g(application)120 686 y(program.)39 b(Th)m(us,)27 b(the)g(application)e(program)i(nev)m(er)g(sees)h(the)f(original)e (FITS)h(table)h(and)f(only)g(sees)h(the)120 799 y(image)k(in)e(the)h (new)g(temp)s(orary)g(\014le)g(\(whic)m(h)f(has)h(no)g(extensions\).) 261 912 y(The)f(table)g(binning)d(sp)s(eci\014er)i(is)h(enclosed)g(in)f (square)h(brac)m(k)m(ets)h(follo)m(wing)e(the)i(ro)s(ot)f(\014lename)g (and)120 1024 y(table)h(extension)g(name)h(or)f(n)m(um)m(b)s(er)f(and)h (b)s(egins)f(with)g(the)h(k)m(eyw)m(ord)h('bin',)f(as)g(in:)120 1137 y Fc('myfile.fits[events][bin)41 b(\(X,Y\)]')p Fg(.)20 b(In)h(this)g(case,)k(the)d(X)g(and)f(Y)h(columns)f(in)g(the)h('ev)m (en)m(ts')h(table)120 1250 y(extension)29 b(are)h(binned)e(up)g(to)j (create)g(the)f(image.)41 b(The)29 b(size)g(of)h(the)g(image)g(is)f (usually)e(determined)h(b)m(y)120 1363 y(the)22 b Fc(TLMINn)d Fg(and)i Fc(TLMAXn)f Fg(header)h(k)m(eyw)m(ords)h(whic)m(h)e(giv)m(e)i (the)f(minim)m(um)e(and)i(maxim)m(um)f(allo)m(w)m(ed)h(pixel)120 1476 y(v)-5 b(alues)37 b(in)f(the)i(columns.)61 b(F)-8 b(or)38 b(instance)f(if)g Fc(TLMINn)46 b(=)h(1)37 b Fg(and)g Fc(TLMAXn)46 b(=)i(4096)36 b Fg(for)i(b)s(oth)e(columns,)120 1589 y(this)e(w)m(ould)g(generate)i(a)f(4096)i(x)e(4096)h(pixel)e (image)h(b)m(y)g(default.)53 b(This)33 b(is)h(rather)h(large,)i(so)e(y) m(ou)g(can)120 1702 y(also)d(sp)s(ecify)f(a)i(pixel)d(binning)f(factor) 34 b(to)f(reduce)f(the)g(image)h(size.)46 b(F)-8 b(or)33 b(example)f(sp)s(ecifying)e(,)j Fc('[bin)120 1815 y(\(X,Y\))46 b(=)i(16]')29 b Fg(will)e(use)i(a)i(binning)26 b(factor)31 b(of)f(16,)h(whic)m(h)e(will)e(pro)s(duce)i(a)h(256)h(x)f(256)h(pixel)e (image)h(in)120 1928 y(the)h(previous)d(example.)261 2041 y(If)35 b(the)g(TLMIN)g(and)g(TLMAX)g(k)m(eyw)m(ords)g(don't)g (exist,)i(or)e(y)m(ou)g(w)m(an)m(t)h(to)g(o)m(v)m(erride)g(their)e(v)-5 b(alues,)120 2154 y(y)m(ou)36 b(can)h(sp)s(ecify)d(the)i(image)h(range) f(and)f(binning)e(factor)k(directly)-8 b(,)37 b(as)f(in)f Fc('[bin)46 b(X)i(=)f(1:4096:16,)120 2267 y(Y=1:4096:16]')p Fg(.)36 b(Y)-8 b(ou)28 b(can)g(also)f(sp)s(ecify)f(the)i(datat)m(yp)s (e)g(of)g(the)g(created)g(image)g(b)m(y)f(app)s(ending)e(a)j(b,)g(i,) 120 2379 y(j,)f(r,)g(or)f(d)f(\(for)h(8-bit)g(b)m(yte,)i(16-bit)f(in)m (tegers,)g(32-bit)f(in)m(teger,)i(32-bit)e(\015oating)g(p)s(oin)m(ts,)g (or)g(64-bit)h(double)120 2492 y(precision)34 b(\015oating)h(p)s(oin)m (t,)h(resp)s(ectiv)m(ely\))f(to)h(the)g('bin')e(k)m(eyw)m(ord)h(\(e.g.) 58 b Fc('[binr)46 b(\(X,Y\)]')33 b Fg(creates)k(a)120 2605 y(\015oating)i(p)s(oin)m(t)e(image\).)66 b(If)38 b(the)h(datat)m(yp)s(e)h(is)d(not)i(sp)s(eci\014ed)e(then)h(a)h(32-bit) g(in)m(teger)g(image)g(will)d(b)s(e)120 2718 y(created)31 b(b)m(y)g(default.)261 2831 y(If)39 b(the)h(column)e(name)h(is)g(not)g (sp)s(eci\014ed,)h(then)f(CFITSIO)f(will)f(\014rst)h(try)i(to)g(use)f (the)g('preferred)120 2944 y(column')34 b(as)h(sp)s(eci\014ed)e(b)m(y)i (the)g(CPREF)g(k)m(eyw)m(ord)g(if)f(it)h(exists)f(\(e.g.,)k('CPREF)d(=) g('DETX,DETY'\),)120 3057 y(otherwise)30 b(column)f(names)h('X',)i('Y') e(will)e(b)s(e)i(assumed)g(for)g(the)g(2)h(axes.)261 3170 y(Note)37 b(that)f(this)e(binning)e(sp)s(eci\014er)i(is)g(not)h (restricted)g(to)h(only)f(2D)h(images)f(and)g(can)g(b)s(e)g(used)g(to) 120 3283 y(create)f(1D,)f(3D,)g(or)g(4D)g(images)f(as)g(w)m(ell.)46 b(It)32 b(is)f(also)h(p)s(ossible)e(to)j(sp)s(ecify)e(a)h(w)m(eigh)m (ting)g(factor)i(that)e(is)120 3396 y(applied)27 b(during)h(the)h (binning.)38 b(Please)29 b(refer)h(to)g(the)g(\\CFITSIO)e(User's)i (Reference)g(Guide")f(for)g(more)120 3509 y(details)g(on)i(these)f(adv) -5 b(anced)31 b(features.)1905 5809 y(27)p eop %%Page: 28 28 28 27 bop 120 573 a Fb(5.4)112 b(T)-9 b(able)37 b(Filtering)120 744 y Fh(5.4.1)105 b(Column)34 b(and)h(Keyw)m(ord)g(Filtering)120 916 y Fg(The)29 b(column)f(or)h(k)m(eyw)m(ord)h(\014ltering)e(sp)s (eci\014er)g(is)g(used)h(to)h(mo)s(dify)d(the)j(column)e(structure)h (and/or)g(the)120 1029 y(header)h(k)m(eyw)m(ords)h(in)e(the)i(HDU)g (that)g(w)m(as)g(selected)g(with)e(the)i(previous)e(HDU)i(lo)s(cation)f (sp)s(eci\014er.)39 b(It)120 1142 y(can)31 b(b)s(e)e(used)h(to)h(p)s (erform)e(the)i(follo)m(wing)d(t)m(yp)s(es)j(of)f(op)s(erations.)256 1354 y Fa(\017)46 b Fg(App)s(end)35 b(a)h(new)g(column)f(to)i(a)f (table)g(b)m(y)h(giving)e(the)h(column)f(name,)j(optionally)d(follo)m (w)m(ed)g(b)m(y)347 1467 y(the)e(datat)m(yp)s(e)h(in)d(paren)m(theses,) j(follo)m(w)m(ed)e(b)m(y)h(an)g(equals)f(sign)g(and)g(the)h(arithmetic) f(expression)347 1580 y(to)e(b)s(e)e(used)g(to)i(compute)f(the)g(v)-5 b(alue.)40 b(The)28 b(datat)m(yp)s(e)i(is)e(sp)s(eci\014ed)f(using)h (the)h(same)g(syn)m(tax)h(that)347 1693 y(is)j(allo)m(w)m(ed)g(for)g (the)g(v)-5 b(alue)33 b(of)h(the)f(FITS)g(TF)m(ORMn)g(k)m(eyw)m(ord)h (\(e.g.,)i('I',)e('J',)g('E',)f('D',)i(etc.)51 b(for)347 1806 y(binary)31 b(tables,)h(and)g('I8',)h(F12.3',)i('E20.12',)g(etc.) 47 b(for)32 b(ASCI)s(I)f(tables\).)46 b(If)32 b(the)g(datat)m(yp)s(e)h (is)e(not)347 1919 y(sp)s(eci\014ed)e(then)h(a)h(default)e(datat)m(yp)s (e)j(will)27 b(b)s(e)j(c)m(hosen)h(dep)s(ending)d(on)i(the)h (expression.)256 2107 y Fa(\017)46 b Fg(Create)33 b(a)g(new)f(header)g (k)m(eyw)m(ord)h(b)m(y)f(giving)f(the)i(k)m(eyw)m(ord)g(name,)g (preceded)f(b)m(y)g(a)h(p)s(ound)d(sign)347 2220 y('#',)24 b(follo)m(w)m(ed)c(b)m(y)h(an)g(equals)f(sign)g(and)g(an)h(arithmetic)f (expression)g(for)h(the)g(v)-5 b(alue)20 b(of)h(the)h(k)m(eyw)m(ord.) 347 2332 y(The)k(expression)f(ma)m(y)i(b)s(e)f(a)h(function)e(of)i (other)f(header)g(k)m(eyw)m(ord)h(v)-5 b(alues.)39 b(The)26 b(commen)m(t)h(string)347 2445 y(for)40 b(the)h(k)m(eyw)m(ord)g(ma)m(y) g(b)s(e)f(sp)s(eci\014ed)f(in)g(paren)m(theses)i(immediately)d(follo)m (wing)h(the)i(k)m(eyw)m(ord)347 2558 y(name.)256 2746 y Fa(\017)46 b Fg(Ov)m(erwrite)29 b(the)g(v)-5 b(alues)29 b(in)e(an)i(existing)g(column)e(or)j(k)m(eyw)m(ord)f(b)m(y)g(giving)f (the)i(name)f(follo)m(w)m(ed)f(b)m(y)347 2859 y(an)j(equals)e(sign)h (and)f(an)i(arithmetic)e(expression.)256 3046 y Fa(\017)46 b Fg(Select)35 b(a)f(set)g(of)h(columns)d(to)j(b)s(e)e(included)f(in)g (the)j(\014ltered)e(\014le)g(b)m(y)h(listing)d(the)k(column)d(names)347 3159 y(separated)d(with)e(semi-colons.)39 b(Wild)27 b(card)h(c)m (haracters)i(ma)m(y)e(b)s(e)g(used)f(in)g(the)i(column)e(names)h(to)347 3272 y(matc)m(h)33 b(m)m(ultiple)d(columns.)45 b(An)m(y)32 b(other)h(columns)d(in)h(the)i(input)d(table)i(will)d(not)k(app)s(ear)e (in)g(the)347 3385 y(\014ltered)f(\014le.)256 3573 y Fa(\017)46 b Fg(Delete)31 b(a)f(column)f(or)g(k)m(eyw)m(ord)h(b)m(y)g (listing)d(the)j(name)g(preceded)f(b)m(y)h(a)g(min)m(us)e(sign)g(or)i (an)g(excla-)347 3686 y(mation)g(mark)g(\(!\))256 3873 y Fa(\017)46 b Fg(Rename)31 b(an)f(existing)g(column)f(or)h(k)m(eyw)m (ord)h(with)e(the)i(syn)m(tax)g('NewName)g(==)f(OldName'.)261 4086 y(The)20 b(column)f(\014ltering)g(sp)s(eci\014er)f(is)i(enclosed)g (in)f(square)h(brac)m(k)m(ets)h(and)f(b)s(egins)f(with)g(the)h(string)g ('col'.)120 4199 y(Multiple)29 b(op)s(erations)h(can)h(b)s(e)f(p)s (erformed)f(b)m(y)i(separating)f(them)h(with)e(semi-colons.)41 b(F)-8 b(or)32 b(complex)e(or)120 4312 y(commonly)g(used)h(op)s (erations,)f(y)m(ou)i(can)f(write)f(the)h(column)f(\014lter)g(to)i(a)f (text)h(\014le,)e(and)h(then)f(use)h(it)f(b)m(y)120 4425 y(giving)f(the)i(name)f(of)h(the)f(text)i(\014le,)d(preceded)h(b)m(y)h (a)f('@')h(c)m(haracter.)261 4538 y(Some)g(examples:)215 4750 y Fc([col)47 b(PI=PHA)f(*)i(1.1)f(+)g(0.2])285 b(-)48 b(creates)e(new)g(PI)i(column)e(from)g(PHA)h(values)215 4976 y([col)g(rate)g(=)g(counts/exposure])91 b(-)48 b(creates)e(or)h (overwrites)e(the)i(rate)f(column)g(by)1743 5089 y(dividing)f(the)i (counts)f(column)g(by)i(the)1743 5202 y(EXPOSURE)d(keyword)h(value.)215 5428 y([col)h(TIME;)f(X;)i(Y])667 b(-)48 b(only)e(the)h(listed)f (columns)g(will)h(appear)1743 5540 y(in)g(the)g(filtered)e(file)1905 5809 y Fg(28)p eop %%Page: 29 29 29 28 bop 215 686 a Fc([col)47 b(Time;*raw])713 b(-)48 b(include)e(the)g(Time)h(column)f(and)h(any)g(other)1743 799 y(columns)f(whose)g(name)h(ends)f(with)h('raw'.)215 1024 y([col)g(-TIME;)f(Good)h(==)g(STATUS])141 b(-)48 b(deletes)e(the)g(TIME)h(column)f(and)1743 1137 y(renames)g(the)g (STATUS)h(column)f(to)h(GOOD)215 1363 y([col)g(@colfilt.txt])569 b(-)48 b(uses)e(the)h(filtering)f(expression)f(in)1743 1476 y(the)i(colfilt.txt)d(text)j(file)261 1689 y Fg(The)30 b(original)f(\014le)h(is)g(not)h(c)m(hanged)g(b)m(y)g(this)f (\014ltering)f(op)s(eration,)h(and)g(instead)g(the)h(mo)s (di\014cations)120 1802 y(are)36 b(made)f(on)h(a)f(temp)s(orary)h(cop)m (y)g(of)f(the)h(input)d(FITS)i(\014le)g(\(usually)e(in)h(memory\),)k (whic)m(h)c(includes)120 1914 y(a)42 b(cop)m(y)g(of)g(all)e(the)i (other)g(HDUs)g(in)e(the)i(input)e(\014le.)73 b(The)41 b(original)f(input)g(\014le)g(is)h(closed)g(and)g(the)120 2027 y(application)29 b(program)h(op)s(ens)f(the)i(\014ltered)e(cop)m (y)i(of)g(the)g(\014le.)120 2268 y Fh(5.4.2)105 b(Ro)m(w)36 b(Filtering)120 2439 y Fg(The)22 b(ro)m(w)h(\014lter)f(is)g(used)g(to)h (select)g(a)h(subset)e(of)h(the)g(ro)m(ws)f(from)h(a)g(table)f(based)h (on)f(a)i(b)s(o)s(olean)d(expression.)120 2552 y(A)37 b(temp)s(orary)g(new)f(FITS)g(\014le)h(is)f(created)i(on)f(the)g(\015y) f(\(usually)f(in)h(memory\))h(whic)m(h)f(con)m(tains)h(only)120 2665 y(those)30 b(ro)m(ws)g(for)g(whic)m(h)f(the)h(ro)m(w)g(\014lter)f (expression)f(ev)-5 b(aluates)31 b(to)f(true)g(\(i.e.,)h(not)f(equal)f (to)i(zero\).)42 b(The)120 2778 y(primary)24 b(arra)m(y)j(and)e(an)m(y) h(other)h(extensions)e(in)g(the)h(input)e(\014le)h(are)i(also)f(copied) f(to)i(the)f(temp)s(orary)g(\014le.)120 2891 y(The)h(original)f(FITS)h (\014le)g(is)g(closed)g(and)h(the)g(new)f(temp)s(orary)g(\014le)g(is)g (then)g(op)s(ened)g(b)m(y)h(the)g(application)120 3004 y(program.)261 3117 y(The)f(ro)m(w)g(\014lter)f(expression)g(is)g (enclosed)g(in)g(square)h(brac)m(k)m(ets)h(follo)m(wing)e(the)h(\014le) f(name)h(and)f(exten-)120 3230 y(sion)31 b(name.)48 b(F)-8 b(or)33 b(example,)g Fc('file.fits[events][GRAD)o(E==5)o(0]')26 b Fg(selects)33 b(only)f(those)h(ro)m(ws)f(in)f(the)120 3342 y(EVENTS)f(table)g(where)g(the)g(GRADE)h(column)f(v)-5 b(alue)29 b(is)h(equal)g(to)h(50\).)261 3455 y(The)d(ro)m(w)h (\014ltering)d(expression)i(can)g(b)s(e)g(an)h(arbitrarily)c(complex)k (series)e(of)i(op)s(erations)f(p)s(erformed)120 3568 y(on)e(constan)m(ts,)i(k)m(eyw)m(ord)e(v)-5 b(alues,)26 b(and)f(column)g(data)h(tak)m(en)h(from)e(the)h(sp)s(eci\014ed)e(FITS)h (T)-8 b(ABLE)26 b(exten-)120 3681 y(sion.)39 b(The)27 b(expression)f(also)i(can)f(b)s(e)g(written)g(in)m(to)h(a)f(text)i (\014le)e(and)g(then)g(used)g(b)m(y)g(giving)f(the)i(\014lename)120 3794 y(preceded)i(b)m(y)g(a)h('@')g(c)m(haracter,)h(as)e(in)f Fc('[@rowfilt.txt]')p Fg(.)261 3907 y(Keyw)m(ord)40 b(and)f(column)g (data)h(are)h(referenced)f(b)m(y)f(name.)70 b(An)m(y)40 b(string)f(of)h(c)m(haracters)h(not)f(sur-)120 4020 y(rounded)30 b(b)m(y)i(quotes)g(\(ie,)g(a)h(constan)m(t)g(string\))e(or)g(follo)m(w) m(ed)h(b)m(y)f(an)h(op)s(en)f(paren)m(theses)h(\(ie,)h(a)f(function)120 4133 y(name\))e(will)c(b)s(e)j(initially)c(in)m(terpreted)k(as)g(a)h (column)e(name)h(and)g(its)g(con)m(ten)m(ts)i(for)e(the)g(curren)m(t)g (ro)m(w)g(in-)120 4246 y(serted)e(in)m(to)g(the)h(expression.)38 b(If)27 b(no)g(suc)m(h)g(column)f(exists,)i(a)f(k)m(eyw)m(ord)h(of)g (that)f(name)h(will)c(b)s(e)j(searc)m(hed)120 4359 y(for)34 b(and)f(its)g(v)-5 b(alue)34 b(used,)g(if)f(found.)50 b(T)-8 b(o)35 b(force)f(the)g(name)g(to)h(b)s(e)e(in)m(terpreted)g(as)i (a)f(k)m(eyw)m(ord)g(\(in)f(case)120 4472 y(there)28 b(is)f(b)s(oth)g(a)h(column)f(and)g(k)m(eyw)m(ord)h(with)f(the)h(same)g (name\),)h(precede)f(the)g(k)m(eyw)m(ord)h(name)e(with)g(a)120 4584 y(single)j(p)s(ound)f(sign,)i('#',)h(as)g(in)e Fc(#NAXIS2)p Fg(.)41 b(Due)32 b(to)g(the)f(generalities)g(of)g(FITS)g(column)f(and)h (k)m(eyw)m(ord)120 4697 y(names,)c(if)d(the)i(column)f(or)g(k)m(eyw)m (ord)h(name)g(con)m(tains)g(a)g(space)g(or)g(a)g(c)m(haracter)h(whic)m (h)e(migh)m(t)g(app)s(ear)g(as)120 4810 y(an)32 b(arithmetic)f(term)h (then)g(inclose)f(the)h(name)g(in)e('$')j(c)m(haracters)h(as)e(in)f Fc($MAX)46 b(PHA$)31 b Fg(or)h Fc(#$MAX-PHA$)p Fg(.)120 4923 y(The)e(names)g(are)h(case)g(insensitiv)m(e.)261 5036 y(T)-8 b(o)37 b(access)g(a)g(table)f(en)m(try)h(in)e(a)h(ro)m(w)h (other)f(than)g(the)h(curren)m(t)f(one,)i(follo)m(w)e(the)g(column's)f (name)120 5149 y(with)j(a)h(ro)m(w)g(o\013set)g(within)e(curly)g (braces.)66 b(F)-8 b(or)40 b(example,)h Fc('PHA)p Fa(f)p Fc(-3)p Fa(g)p Fc(')d Fg(will)e(ev)-5 b(aluate)39 b(to)h(the)f(v)-5 b(alue)120 5262 y(of)40 b(column)e(PHA,)i(3)g(ro)m(ws)f(ab)s(o)m(v)m(e) i(the)f(ro)m(w)g(curren)m(tly)e(b)s(eing)g(pro)s(cessed.)68 b(One)39 b(cannot)h(sp)s(ecify)e(an)120 5375 y(absolute)32 b(ro)m(w)g(n)m(um)m(b)s(er,)f(only)g(a)i(relativ)m(e)f(o\013set.)47 b(Ro)m(ws)32 b(that)h(fall)d(outside)h(the)i(table)f(will)d(b)s(e)i (treated)120 5488 y(as)g(unde\014ned,)d(or)i(NULLs.)1905 5809 y(29)p eop %%Page: 30 30 30 29 bop 261 573 a Fg(Bo)s(olean)31 b(op)s(erators)g(can)g(b)s(e)g (used)f(in)f(the)i(expression)f(in)f(either)i(their)f(F)-8 b(ortran)31 b(or)g(C)f(forms.)42 b(The)120 686 y(follo)m(wing)29 b(b)s(o)s(olean)g(op)s(erators)i(are)g(a)m(v)-5 b(ailable:)311 886 y Fc("equal")428 b(.eq.)46 b(.EQ.)h(==)95 b("not)46 b(equal")476 b(.ne.)94 b(.NE.)h(!=)311 999 y("less)46 b(than")238 b(.lt.)46 b(.LT.)h(<)143 b("less)46 b(than/equal")188 b(.le.)94 b(.LE.)h(<=)47 b(=<)311 1112 y("greater)e(than")95 b(.gt.)46 b(.GT.)h(>)143 b("greater)45 b(than/equal")g(.ge.)94 b(.GE.)h(>=)47 b(=>)311 1225 y("or")572 b(.or.)46 b(.OR.)h(||)95 b("and")762 b(.and.)46 b(.AND.)h(&&)311 1337 y("negation")236 b(.not.)46 b(.NOT.)h(!)95 b("approx.)45 b(equal\(1e-7\)")92 b(~)261 1537 y Fg(Note)34 b(that)g(the)f(exclamation)g(p)s(oin)m(t,)g (')10 b(!',)34 b(is)e(a)i(sp)s(ecial)d(UNIX)i(c)m(haracter,)j(so)d(if)f (it)g(is)g(used)g(on)h(the)120 1650 y(command)f(line)f(rather)h(than)g (en)m(tered)h(at)g(a)g(task)g(prompt,)f(it)g(m)m(ust)g(b)s(e)g (preceded)g(b)m(y)g(a)h(bac)m(kslash)f(to)120 1763 y(force)f(the)g (UNIX)f(shell)f(to)i(ignore)f(it.)261 1876 y(The)d(expression)e(ma)m(y) j(also)f(include)e(arithmetic)h(op)s(erators)h(and)f(functions.)38 b(T)-8 b(rigonometric)27 b(func-)120 1989 y(tions)g(use)h(radians,)g (not)g(degrees.)40 b(The)28 b(follo)m(wing)f(arithmetic)g(op)s(erators) h(and)g(functions)e(can)j(b)s(e)e(used)120 2102 y(in)i(the)i (expression)e(\(function)g(names)h(are)h(case)h(insensitiv)m(e\):)311 2302 y Fc("addition")522 b(+)477 b("subtraction")d(-)311 2415 y("multiplication")234 b(*)477 b("division")618 b(/)311 2528 y("negation")522 b(-)477 b("exponentiation")330 b(**)143 b(^)311 2641 y("absolute)45 b(value")237 b(abs\(x\))g ("cosine")714 b(cos\(x\))311 2754 y("sine")g(sin\(x\))237 b("tangent")666 b(tan\(x\))311 2867 y("arc)47 b(cosine")427 b(arccos\(x\))93 b("arc)47 b(sine")619 b(arcsin\(x\))311 2979 y("arc)47 b(tangent")379 b(arctan\(x\))93 b("arc)47 b(tangent")475 b(arctan2\(x,y\))311 3092 y("exponential")378 b(exp\(x\))237 b("square)46 b(root")476 b(sqrt\(x\))311 3205 y("natural)45 b(log")381 b(log\(x\))237 b("common)46 b(log")524 b(log10\(x\))311 3318 y("modulus")570 b(i)48 b(\045)f(j)286 b("random)46 b(#)h([0.0,1.0\)")141 b(random\(\))311 3431 y("minimum")570 b(min\(x,y\))141 b("maximum")666 b(max\(x,y\))311 3544 y("if-then-else")330 b(b?x:y)261 3744 y Fg(The)37 b(follo)m(wing)f(t)m(yp)s(e)i(casting)f(op)s(erators)h (are)g(a)m(v)-5 b(ailable,)38 b(where)f(the)h(inclosing)d(paren)m (theses)j(are)120 3857 y(required)22 b(and)i(tak)m(en)h(from)f(the)h(C) f(language)g(usage.)40 b(Also,)25 b(the)f(in)m(teger)h(to)g(real)f (casts)h(v)-5 b(alues)24 b(to)h(double)120 3970 y(precision:)884 4170 y Fc("real)46 b(to)h(integer")189 b(\(int\))46 b(x)239 b(\(INT\))46 b(x)884 4283 y("integer)f(to)i(real")190 b(\(float\))46 b(i)143 b(\(FLOAT\))45 b(i)261 4483 y Fg(Sev)m(eral)31 b(constan)m(ts)g(are)g(built)d(in)h(for)h(use)g(in)f (n)m(umerical)g(expressions:)502 4683 y Fc(#pi)667 b(3.1415...)284 b(#e)620 b(2.7182...)502 4796 y(#deg)f(#pi/180)380 b(#row)524 b(current)46 b(row)h(number)502 4909 y(#null)428 b(undefined)45 b(value)142 b(#snull)428 b(undefined)45 b(string)261 5109 y Fg(A)d(string)f(constan)m(t)i(m)m(ust)f(b)s(e)f(enclosed)h(in)f (quotes)h(as)g(in)f('Crab'.)75 b(The)41 b("n)m(ull")g(constan)m(ts)i (are)120 5222 y(useful)36 b(for)h(conditionally)e(setting)j(table)f(v) -5 b(alues)37 b(to)h(a)g(NULL,)g(or)f(unde\014ned,)h(v)-5 b(alue)37 b(\(F)-8 b(or)38 b(example,)120 5334 y Fc("col1==-99)45 b(?)95 b(#NULL)47 b(:)g(col1")p Fg(\).)261 5447 y(There)33 b(is)g(also)g(a)h(function)f(for)g(testing)h(if)e(t)m(w)m(o)j(v)-5 b(alues)33 b(are)h(close)g(to)g(eac)m(h)h(other,)g(i.e.,)g(if)d(they)i (are)120 5560 y("near")29 b(eac)m(h)g(other)f(to)g(within)e(a)i(user)f (sp)s(eci\014ed)f(tolerance.)41 b(The)27 b(argumen)m(ts,)i Fc(value)p 3184 5560 29 4 v 33 w(1)e Fg(and)h Fc(value)p 3707 5560 V 33 w(2)1905 5809 y Fg(30)p eop %%Page: 31 31 31 30 bop 120 573 a Fg(can)39 b(b)s(e)g(in)m(teger)g(or)g(real)f(and)h (represen)m(t)g(the)g(t)m(w)m(o)h(v)-5 b(alues)38 b(who's)h(pro)m (ximit)m(y)f(is)g(b)s(eing)g(tested)h(to)h(b)s(e)120 686 y(within)28 b(the)i(sp)s(eci\014ed)f(tolerance,)i(also)g(an)f(in)m (teger)h(or)f(real:)1075 880 y Fc(near\(value_1,)44 b(value_2,)h (tolerance\))261 1074 y Fg(When)30 b(a)h(NULL,)f(or)h(unde\014ned,)d(v) -5 b(alue)30 b(is)f(encoun)m(tered)i(in)e(the)h(FITS)g(table,)g(the)h (expression)e(will)120 1186 y(ev)-5 b(aluate)42 b(to)g(NULL)g(unless)d (the)j(unde\014ned)d(v)-5 b(alue)41 b(is)g(not)g(actually)g(required)f (for)h(ev)-5 b(aluation,)44 b(e.g.)120 1299 y("TR)m(UE)e(.or.)76 b(NULL")42 b(ev)-5 b(aluates)43 b(to)g(TR)m(UE.)f(The)f(follo)m(wing)g (t)m(w)m(o)i(functions)e(allo)m(w)g(some)h(NULL)120 1412 y(detection)31 b(and)f(handling:)1027 1606 y Fc(ISNULL\(x\))1027 1719 y(DEFNULL\(x,y\))261 1913 y Fg(The)43 b(former)g(returns)f(a)i(b)s (o)s(olean)e(v)-5 b(alue)43 b(of)g(TR)m(UE)h(if)e(the)i(argumen)m(t)f (x)h(is)e(NULL.)i(The)e(later)120 2026 y("de\014nes")e(a)g(v)-5 b(alue)39 b(to)h(b)s(e)g(substituted)e(for)h(NULL)h(v)-5 b(alues;)44 b(it)39 b(returns)f(the)i(v)-5 b(alue)40 b(of)f(x)h(if)f(x)g(is)g(not)120 2139 y(NULL,)31 b(otherwise)e(it)h (returns)f(the)i(v)-5 b(alue)30 b(of)g(y)-8 b(.)261 2252 y(Bit)31 b(masks)g(can)g(b)s(e)f(used)g(to)h(select)h(out)f(ro)m(ws)g (from)f(bit)g(columns)f(\()p Fc(TFORMn)47 b(=)g(#X)p Fg(\))31 b(in)e(FITS)h(\014les.)120 2365 y(T)-8 b(o)31 b(represen)m(t)f(the)h(mask,)f(binary)-8 b(,)30 b(o)s(ctal,)h(and)e (hex)i(formats)f(are)h(allo)m(w)m(ed:)931 2558 y Fc(binary:)142 b(b0110xx1010000101xxxx00)o(01)931 2671 y(octal:)190 b(o720x1)46 b(->)h(\(b111010000xxx001\))931 2784 y(hex:)286 b(h0FxD)94 b(->)47 b(\(b00001111xxxx1101\))261 2978 y Fg(In)28 b(all)g(the)i(represen)m(tations,)f(an)g(x)g(or)g(X)g(is)f (allo)m(w)m(ed)h(in)f(the)h(mask)g(as)h(a)f(wild)e(card.)40 b(Note)30 b(that)g(the)120 3091 y(x)i(represen)m(ts)f(a)h(di\013eren)m (t)f(n)m(um)m(b)s(er)g(of)h(wild)d(card)j(bits)e(in)g(eac)m(h)j (represen)m(tation.)45 b(All)30 b(represen)m(tations)120 3204 y(are)h(case)g(insensitiv)m(e.)261 3317 y(T)-8 b(o)38 b(construct)f(the)h(b)s(o)s(olean)e(expression)g(using)g(the)h(mask)h (as)f(the)h(b)s(o)s(olean)e(equal)h(op)s(erator)g(de-)120 3430 y(scrib)s(ed)29 b(ab)s(o)m(v)m(e)i(on)g(a)g(bit)f(table)g(column.) 40 b(F)-8 b(or)32 b(example,)e(if)g(y)m(ou)h(had)f(a)h(7)g(bit)e (column)h(named)g(\015ags)h(in)120 3543 y(a)36 b(FITS)e(table)i(and)f (w)m(an)m(ted)h(all)e(ro)m(ws)h(ha)m(ving)g(the)h(bit)e(pattern)i (0010011,)k(the)35 b(selection)h(expression)120 3656 y(w)m(ould)29 b(b)s(e:)1456 3850 y Fc(flags)47 b(==)g(b0010011)311 3962 y(or)1456 4075 y(flags)g(.eq.)f(b10011)261 4269 y Fg(It)32 b(is)e(also)i(p)s(ossible)d(to)j(test)g(if)f(a)h(range)f(of) h(bits)e(is)h(less)g(than,)g(less)g(than)h(equal,)f(greater)i(than)e (and)120 4382 y(greater)h(than)e(equal)g(to)h(a)f(particular)f(b)s(o)s (olean)h(v)-5 b(alue:)1456 4576 y Fc(flags)47 b(<=)g(bxxx010xx)1456 4689 y(flags)g(.gt.)f(bxxx100xx)1456 4802 y(flags)h(.le.)f(b1xxxxxxx) 261 4996 y Fg(Notice)31 b(the)g(use)f(of)h(the)f(x)h(bit)e(v)-5 b(alue)30 b(to)h(limit)d(the)j(range)f(of)h(bits)e(b)s(eing)g (compared.)261 5109 y(It)k(is)f(not)h(necessary)g(to)g(sp)s(ecify)f (the)g(leading)g(\(most)h(signi\014can)m(t\))f(zero)i(\(0\))g(bits)d (in)h(the)h(mask,)g(as)120 5222 y(sho)m(wn)d(in)f(the)h(second)h (expression)e(ab)s(o)m(v)m(e.)261 5334 y(Bit)h(wise)f(AND,)h(OR)g(and)f (NOT)g(op)s(erations)g(are)h(also)g(p)s(ossible)d(on)i(t)m(w)m(o)i(or)f (more)g(bit)f(\014elds)f(using)120 5447 y(the)38 b('&'\(AND\),)h(')p Fa(j)p Fg('\(OR\),)g(and)e(the)h(')10 b(!'\(NOT\))38 b(op)s(erators.)63 b(All)36 b(of)i(these)g(op)s(erators)g(result)e(in)g (a)i(bit)120 5560 y(\014eld)29 b(whic)m(h)g(can)i(then)f(b)s(e)g(used)f (with)g(the)i(equal)f(op)s(erator.)41 b(F)-8 b(or)31 b(example:)1905 5809 y(31)p eop %%Page: 32 32 32 31 bop 1361 573 a Fc(\(!flags\))45 b(==)j(b1101100)1361 686 y(\(flags)e(&)h(b1000001\))f(==)h(bx000001)261 887 y Fg(Bit)35 b(\014elds)e(can)h(b)s(e)g(app)s(ended)f(as)i(w)m(ell)e (using)g(the)i('+')g(op)s(erator.)53 b(Strings)33 b(can)i(b)s(e)f (concatenated)120 1000 y(this)29 b(w)m(a)m(y)-8 b(,)32 b(to)s(o.)120 1238 y Fh(5.4.3)105 b(Go)s(o)s(d)36 b(Time)e(In)m(terv)-6 b(al)34 b(Filtering)120 1410 y Fg(A)27 b(common)g(\014ltering)e(metho)s (d)i(in)m(v)m(olv)m(es)g(selecting)g(ro)m(ws)f(whic)m(h)g(ha)m(v)m(e)i (a)g(time)e(v)-5 b(alue)27 b(whic)m(h)e(lies)h(within)120 1523 y(what)38 b(is)e(called)h(a)h(Go)s(o)s(d)g(Time)e(In)m(terv)-5 b(al)38 b(or)f(GTI.)h(The)f(time)h(in)m(terv)-5 b(als)36 b(are)i(de\014ned)f(in)f(a)i(separate)120 1636 y(FITS)31 b(table)h(extension)f(whic)m(h)g(con)m(tains)h(2)g(columns)e(giving)h (the)h(start)g(and)f(stop)h(time)g(of)g(eac)m(h)g(go)s(o)s(d)120 1749 y(in)m(terv)-5 b(al.)59 b(The)37 b(\014ltering)e(op)s(eration)h (accepts)i(only)e(those)h(ro)m(ws)g(of)g(the)g(input)e(table)i(whic)m (h)e(ha)m(v)m(e)j(an)120 1861 y(asso)s(ciated)31 b(time)g(whic)m(h)f (falls)f(within)f(one)k(of)f(the)g(time)f(in)m(terv)-5 b(als)30 b(de\014ned)g(in)g(the)h(GTI)f(extension.)42 b(A)120 1974 y(high)28 b(lev)m(el)i(function,)f (gti\014lter\(a,b,c,d\),)i(is)d(a)m(v)-5 b(ailable)30 b(whic)m(h)e(ev)-5 b(aluates)31 b(eac)m(h)g(ro)m(w)f(of)g(the)g(input)d (table)120 2087 y(and)j(returns)g(TR)m(UE)g(or)h(F)-10 b(ALSE)30 b(dep)s(ending)f(whether)h(the)g(ro)m(w)h(is)f(inside)e(or)j (outside)f(the)h(go)s(o)s(d)g(time)120 2200 y(in)m(terv)-5 b(al.)40 b(The)30 b(syn)m(tax)h(is)406 2401 y Fc(gtifilter\()45 b([)j("gtifile")d([,)i(expr)g([,)g("STARTCOL",)e("STOPCOL")g(])j(])f(]) g(\))120 2603 y Fg(where)35 b(eac)m(h)i("[]")g(demarks)e(optional)f (parameters.)57 b(Note)37 b(that)f(the)g(quotes)g(around)e(the)i (gti\014le)f(and)120 2716 y(ST)-8 b(AR)g(T/STOP)31 b(column)h(are)h (required.)45 b(Either)32 b(single)f(or)h(double)g(quote)h(c)m (haracters)h(ma)m(y)f(b)s(e)f(used.)120 2828 y(The)c(gti\014le,)g(if)f (sp)s(eci\014ed,)h(can)g(b)s(e)g(blank)f(\(""\))j(whic)m(h)d(will)f (mean)j(to)g(use)f(the)g(\014rst)g(extension)g(with)f(the)120 2941 y(name)c("*GTI*")i(in)d(the)h(curren)m(t)g(\014le,)h(a)f(plain)e (extension)i(sp)s(eci\014er)f(\(eg,)k("+2",)f("[2]",)i(or)c ("[STDGTI]"\))120 3054 y(whic)m(h)f(will)f(b)s(e)i(used)g(to)i(select)f (an)g(extension)f(in)f(the)i(curren)m(t)g(\014le,)g(or)g(a)g(regular)e (\014lename)h(with)g(or)g(with-)120 3167 y(out)j(an)g(extension)g(sp)s (eci\014er)e(whic)m(h)h(in)f(the)j(latter)f(case)h(will)c(mean)j(to)h (use)f(the)g(\014rst)f(extension)h(with)e(an)120 3280 y(extension)29 b(name)h("*GTI*".)42 b(Expr)28 b(can)i(b)s(e)f(an)m(y)g (arithmetic)g(expression,)g(including)d(simply)h(the)j(time)120 3393 y(column)j(name.)52 b(A)34 b(v)m(ector)i(time)e(expression)f(will) e(pro)s(duce)i(a)i(v)m(ector)g(b)s(o)s(olean)f(result.)50 b(ST)-8 b(AR)g(TCOL)120 3506 y(and)33 b(STOPCOL)f(are)j(the)f(names)g (of)g(the)g(ST)-8 b(AR)g(T/STOP)33 b(columns)g(in)f(the)j(GTI)e (extension.)52 b(If)33 b(one)120 3619 y(of)e(them)f(is)f(sp)s (eci\014ed,)g(they)i(b)s(oth)e(m)m(ust)i(b)s(e.)261 3732 y(In)37 b(its)h(simplest)e(form,)k(no)e(parameters)g(need)g(to)h(b)s(e) e(pro)m(vided)g({)h(default)g(v)-5 b(alues)37 b(will)e(b)s(e)j(used.) 120 3845 y(The)30 b(expression)f Fc("gtifilter\(\)")e Fg(is)i(equiv)-5 b(alen)m(t)30 b(to)454 4046 y Fc(gtifilter\()45 b("",)i(TIME,)f("*START*",)f("*STOP*")h(\))120 4247 y Fg(This)30 b(will)g(searc)m(h)j(the)f(curren)m(t)g(\014le)g(for)g(a)g (GTI)g(extension,)h(\014lter)e(the)h(TIME)g(column)f(in)g(the)i(curren) m(t)120 4360 y(table,)47 b(using)c(ST)-8 b(AR)g(T/STOP)43 b(times)g(tak)m(en)i(from)e(columns)g(in)g(the)h(GTI)f(extension)h (with)e(names)120 4473 y(con)m(taining)30 b(the)h(strings)e("ST)-8 b(AR)g(T")31 b(and)f("STOP".)41 b(The)30 b(wildcards)e(\('*'\))k(allo)m (w)e(sligh)m(t)f(v)-5 b(ariations)30 b(in)120 4586 y(naming)h(con)m(v)m (en)m(tions)h(suc)m(h)g(as)g("TST)-8 b(AR)g(T")32 b(or)g("ST)-8 b(AR)g(TTIME".)45 b(The)31 b(same)i(default)e(v)-5 b(alues)31 b(apply)120 4699 y(for)g(unsp)s(eci\014ed)e(parameters)j(when)e(the)i (\014rst)e(one)i(or)f(t)m(w)m(o)i(parameters)f(are)g(sp)s(eci\014ed.)42 b(The)31 b(function)120 4812 y(automatically)41 b(searc)m(hes)g(for)g (TIMEZER)m(O/I/F)g(k)m(eyw)m(ords)g(in)e(the)i(curren)m(t)g(and)f(GTI)h (extensions,)120 4924 y(applying)28 b(a)j(relativ)m(e)f(time)h (o\013set,)g(if)f(necessary)-8 b(.)120 5163 y Fh(5.4.4)105 b(Spatial)35 b(Region)h(Filtering)120 5334 y Fg(Another)f(common)h (\014ltering)e(metho)s(d)h(selects)g(ro)m(ws)h(based)f(on)g(whether)g (the)h(spatial)e(p)s(osition)f(asso-)120 5447 y(ciated)40 b(with)f(eac)m(h)j(ro)m(w)e(is)f(lo)s(cated)h(within)e(a)i(giv)m(en)h (2-dimensional)d(region.)69 b(The)40 b(syn)m(tax)h(for)e(this)120 5560 y(high-lev)m(el)29 b(\014lter)h(is)1905 5809 y(32)p eop %%Page: 33 33 33 32 bop 454 573 a Fc(regfilter\()45 b("regfilename")f([)k(,)f(Xexpr,) f(Yexpr)h([)g(,)h("wcs)e(cols")h(])g(])g(\))120 757 y Fg(where)28 b(eac)m(h)i("[)g(]")f(demarks)g(optional)f(parameters.)40 b(The)29 b(region)f(\014le)g(name)h(is)f(required)f(and)h(m)m(ust)h(b)s (e)120 870 y(enclosed)g(in)f(quotes.)41 b(The)29 b(remaining)e (parameters)j(are)f(optional.)40 b(The)29 b(region)g(\014le)f(is)g(an)i (ASCI)s(I)d(text)120 983 y(\014le)36 b(whic)m(h)f(con)m(tains)i(a)g (list)f(of)g(one)h(or)g(more)g(geometric)h(shap)s(es)d(\(circle,)k (ellipse,)d(b)s(o)m(x,)i(etc.\))62 b(whic)m(h)120 1096 y(de\014nes)30 b(a)i(region)f(on)g(the)h(celestial)f(sphere)g(or)g(an)g (area)h(within)d(a)j(particular)e(2D)i(image.)44 b(The)31 b(region)120 1209 y(\014le)37 b(is)g(t)m(ypically)g(generated)i(using)e (an)h(image)g(displa)m(y)f(program)h(suc)m(h)f(as)i(fv/PO)m(W)f (\(distribute)e(b)m(y)120 1322 y(the)c(HEASAR)m(C\),)g(or)g(ds9)g (\(distributed)d(b)m(y)i(the)h(Smithsonian)e(Astroph)m(ysical)g(Observ) -5 b(atory\).)46 b(Users)120 1435 y(should)40 b(refer)i(to)h(the)f(do)s (cumen)m(tation)g(pro)m(vided)f(with)g(these)h(programs)g(for)g(more)g (details)f(on)h(the)120 1548 y(syn)m(tax)31 b(used)e(in)h(the)g(region) g(\014les.)261 1661 y(In)35 b(its)g(simpliest)e(form,)k(\(e.g.,)i Fc(regfilter\("region.reg"\))30 b Fg(\))36 b(the)f(co)s(ordinates)h(in) e(the)i(default)120 1774 y('X')24 b(and)e('Y')i(columns)d(will)g(b)s(e) h(used)g(to)i(determine)e(if)g(eac)m(h)i(ro)m(w)f(is)f(inside)f(or)i (outside)f(the)h(area)h(sp)s(eci\014ed)120 1886 y(in)g(the)i(region)f (\014le.)38 b(Alternate)26 b(p)s(osition)d(column)h(names,)j(or)e (expressions,)g(ma)m(y)h(b)s(e)f(en)m(tered)h(if)e(needed,)120 1999 y(as)31 b(in)502 2184 y Fc(regfilter\("region.reg",)41 b(XPOS,)47 b(YPOS\))120 2368 y Fg(Region)38 b(\014ltering)f(can)h(b)s (e)g(applied)e(most)i(unam)m(biguously)e(if)h(the)h(p)s(ositions)f(in)f (the)j(region)f(\014le)f(and)120 2481 y(in)e(the)i(table)g(to)h(b)s(e)e (\014ltered)g(are)h(b)s(oth)f(giv)m(e)h(in)f(terms)g(of)h(absolute)g (celestial)f(co)s(ordinate)h(units.)58 b(In)120 2594 y(this)37 b(case)i(the)g(lo)s(cations)f(and)f(sizes)h(of)h(the)f (geometric)h(shap)s(es)f(in)f(the)h(region)g(\014le)f(are)i(sp)s (eci\014ed)e(in)120 2707 y(angular)d(units)f(on)h(the)h(sky)f(\(e.g.,)j (p)s(ositions)c(giv)m(en)i(in)e(R.A.)i(and)f(Dec.)54 b(and)34 b(sizes)g(in)f(arcseconds)i(or)120 2820 y(arcmin)m(utes\).)j (Similarly)-8 b(,)20 b(eac)m(h)j(ro)m(w)g(of)f(the)g(\014ltered)f (table)h(will)d(ha)m(v)m(e)k(a)g(celestial)e(co)s(ordinate)h(asso)s (ciated)120 2933 y(with)32 b(it.)50 b(This)32 b(asso)s(ciation)h(is)g (usually)e(implemen)m(ted)h(using)h(a)g(set)i(of)e(so-called)h('W)-8 b(orld)33 b(Co)s(ordinate)120 3046 y(System')j(\(or)h(W)m(CS\))f(FITS)f (k)m(eyw)m(ords)i(that)f(de\014ne)g(the)g(co)s(ordinate)g (transformation)f(that)i(m)m(ust)f(b)s(e)120 3159 y(applied)28 b(to)j(the)g(v)-5 b(alues)30 b(in)f(the)h('X')h(and)f('Y')h(columns)e (to)i(calculate)g(the)f(co)s(ordinate.)261 3272 y(Alternativ)m(ely)-8 b(,)37 b(one)f(can)f(p)s(erform)f(spatial)h(\014ltering)e(using)h (unitless)g('pixel')g(co)s(ordinates)h(for)g(the)120 3385 y(regions)30 b(and)g(ro)m(w)h(p)s(ositions.)40 b(In)30 b(this)f(case)j(the)f(user)f(m)m(ust)h(b)s(e)f(careful)g(to)h(ensure)f (that)h(the)g(p)s(ositions)120 3498 y(in)h(the)h(2)h(\014les)e(are)i (self-consisten)m(t.)49 b(A)34 b(t)m(ypical)e(problem)g(is)g(that)i (the)g(region)f(\014le)f(ma)m(y)i(b)s(e)e(generated)120 3610 y(using)22 b(a)i(binned)e(image,)j(but)e(the)h(un)m(binned)d(co)s (ordinates)i(are)i(giv)m(en)e(in)g(the)h(ev)m(en)m(t)h(table.)38 b(The)24 b(R)m(OSA)-8 b(T)120 3723 y(ev)m(en)m(ts)34 b(\014les,)f(for)g(example,)h(ha)m(v)m(e)g(X)f(and)g(Y)g(pixel)e(co)s (ordinates)i(that)h(range)f(from)g(1)g(-)h(15360.)51 b(These)120 3836 y(co)s(ordinates)32 b(are)h(t)m(ypically)f(binned)e(b) m(y)j(a)g(factor)g(of)g(32)h(to)f(pro)s(duce)f(a)h(480x480)i(pixel)c (image.)48 b(If)32 b(one)120 3949 y(then)f(uses)g(a)g(region)g(\014le)f (generated)j(from)d(this)g(image)i(\(in)e(image)h(pixel)f(units\))g(to) i(\014lter)e(the)i(R)m(OSA)-8 b(T)120 4062 y(ev)m(en)m(ts)33 b(\014le,)e(then)g(the)g(X)g(and)g(Y)h(column)e(v)-5 b(alues)30 b(m)m(ust)i(b)s(e)e(con)m(v)m(erted)j(to)f(corresp)s(onding) d(pixel)h(units)120 4175 y(as)h(in:)502 4360 y Fc (regfilter\("rosat.reg",)42 b(X/32.+.5,)j(Y/32.+.5\))120 4544 y Fg(Note)30 b(that)f(this)e(binning)f(con)m(v)m(ersion)i(is)g (not)h(necessary)g(if)e(the)i(region)f(\014le)f(is)h(sp)s(eci\014ed)f (using)g(celestial)120 4657 y(co)s(ordinate)g(units)f(instead)g(of)h (pixel)f(units)f(b)s(ecause)i(CFITSIO)f(is)g(then)h(able)g(to)h (directly)d(compare)j(the)120 4770 y(celestial)34 b(co)s(ordinate)g(of) g(eac)m(h)h(ro)m(w)f(in)f(the)h(table)g(with)f(the)h(celestial)g(co)s (ordinates)g(in)e(the)j(region)e(\014le)120 4883 y(without)c(ha)m(ving) h(to)h(kno)m(w)g(an)m(ything)f(ab)s(out)g(ho)m(w)g(the)h(image)f(ma)m (y)h(ha)m(v)m(e)h(b)s(een)d(binned.)261 4996 y(The)k(last)g("w)m(cs)g (cols")h(parameter)f(should)e(rarely)h(b)s(e)h(needed.)48 b(If)33 b(supplied,)d(this)i(string)g(con)m(tains)120 5109 y(the)39 b(names)g(of)h(the)f(2)g(columns)f(\(space)i(or)f(comma)h (separated\))g(whic)m(h)e(ha)m(v)m(e)i(the)g(asso)s(ciated)f(W)m(CS)120 5222 y(k)m(eyw)m(ords.)k(If)30 b(not)h(supplied,)d(the)j(\014lter)f (will)e(scan)j(the)g(X)g(and)g(Y)g(expressions)e(for)i(column)f(names.) 42 b(If)120 5334 y(only)32 b(one)g(is)g(found)f(in)g(eac)m(h)j (expression,)e(those)h(columns)e(will)f(b)s(e)i(used,)h(otherwise)f(an) g(error)g(will)e(b)s(e)120 5447 y(returned.)261 5560 y(These)g(region)g(shap)s(es)g(are)g(supp)s(orted)f(\(names)i(are)f (case)i(insensitiv)m(e\):)1905 5809 y(33)p eop %%Page: 34 34 34 33 bop 454 573 a Fc(Point)428 b(\()48 b(X1,)f(Y1)g(\))715 b(<-)48 b(One)f(pixel)f(square)g(region)454 686 y(Line)476 b(\()48 b(X1,)f(Y1,)g(X2,)f(Y2)i(\))333 b(<-)48 b(One)f(pixel)f(wide)h (region)454 799 y(Polygon)332 b(\()48 b(X1,)f(Y1,)g(X2,)f(Y2,)h(...)g (\))95 b(<-)48 b(Rest)e(are)h(interiors)e(with)454 912 y(Rectangle)236 b(\()48 b(X1,)f(Y1,)g(X2,)f(Y2,)h(A)h(\))334 b(|)47 b(boundaries)e(considered)454 1024 y(Box)524 b(\()48 b(Xc,)f(Yc,)g(Wdth,)f(Hght,)g(A)i(\))143 b(V)47 b(within)f(the)h (region)454 1137 y(Diamond)332 b(\()48 b(Xc,)f(Yc,)g(Wdth,)f(Hght,)g(A) i(\))454 1250 y(Circle)380 b(\()48 b(Xc,)f(Yc,)g(R)g(\))454 1363 y(Annulus)332 b(\()48 b(Xc,)f(Yc,)g(Rin,)f(Rout)h(\))454 1476 y(Ellipse)332 b(\()48 b(Xc,)f(Yc,)g(Rx,)f(Ry,)h(A)h(\))454 1589 y(Elliptannulus)c(\()k(Xc,)f(Yc,)g(Rinx,)f(Riny,)g(Routx,)g (Routy,)g(Ain,)h(Aout)g(\))454 1702 y(Sector)380 b(\()48 b(Xc,)f(Yc,)g(Amin,)f(Amax)h(\))120 1914 y Fg(where)33 b(\(Xc,Yc\))j(is)d(the)i(co)s(ordinate)e(of)i(the)f(shap)s(e's)f(cen)m (ter;)k(\(X#,Y#\))e(are)f(the)g(co)s(ordinates)g(of)g(the)120 2027 y(shap)s(e's)22 b(edges;)k(Rxxx)d(are)g(the)h(shap)s(es')e(v)-5 b(arious)22 b(Radii)f(or)i(semima)5 b(jor/minor)21 b(axes;)27 b(and)22 b(Axxx)h(are)g(the)120 2140 y(angles)i(of)g(rotation)g(\(or)g (b)s(ounding)d(angles)j(for)g(Sector\))h(in)d(degrees.)40 b(F)-8 b(or)26 b(rotated)g(shap)s(es,)f(the)g(rotation)120 2253 y(angle)36 b(can)h(b)s(e)e(left)h(o\013,)i(indicating)c(no)i (rotation.)59 b(Common)35 b(alternate)i(names)f(for)g(the)g(regions)g (can)120 2366 y(also)27 b(b)s(e)f(used:)39 b(rotb)s(o)m(x)27 b(=)f(b)s(o)m(x;)j(rotrectangle)f(=)f(rectangle;)i(\(rot\)rhom)m(bus)d (=)h(\(rot\)diamond;)h(and)e(pie)120 2479 y(=)h(sector.)41 b(When)28 b(a)g(shap)s(e's)f(name)g(is)g(preceded)g(b)m(y)h(a)g(min)m (us)e(sign,)i('-',)h(the)f(de\014ned)e(region)h(is)g(instead)120 2592 y(the)36 b(area)g(*outside*)g(its)f(b)s(oundary)e(\(ie,)k(the)f (region)f(is)g(in)m(v)m(erted\).)56 b(All)34 b(the)i(shap)s(es)f (within)e(a)j(single)120 2705 y(region)e(\014le)g(are)h(OR'd)g (together)h(to)f(create)i(the)e(region,)g(and)g(the)g(order)f(is)g (signi\014can)m(t.)53 b(The)34 b(o)m(v)m(erall)120 2818 y(w)m(a)m(y)g(of)g(lo)s(oking)e(at)i(region)f(\014les)f(is)g(that)i(if) e(the)i(\014rst)e(region)h(is)g(an)g(excluded)f(region)h(then)g(a)g (dumm)m(y)120 2931 y(included)27 b(region)j(of)g(the)g(whole)f (detector)j(is)d(inserted)f(in)h(the)h(fron)m(t.)41 b(Then)29 b(eac)m(h)i(region)f(sp)s(eci\014cation)120 3044 y(as)h(it)g(is)f(pro)s (cessed)h(o)m(v)m(errides)g(an)m(y)g(selections)g(inside)e(of)i(that)h (region)f(sp)s(eci\014ed)e(b)m(y)i(previous)f(regions.)120 3156 y(Another)f(w)m(a)m(y)i(of)e(thinking)e(ab)s(out)i(this)f(is)h (that)g(if)g(a)g(previous)f(excluded)g(region)h(is)g(completely)g (inside)120 3269 y(of)i(a)f(subsequen)m(t)g(included)e(region)i(the)g (excluded)f(region)h(is)g(ignored.)261 3382 y(The)20 b(p)s(ositional)e(co)s(ordinates)i(ma)m(y)h(b)s(e)e(giv)m(en)i(either)e (in)g(pixel)g(units,)i(decimal)e(degrees)i(or)f(hh:mm:ss.s,)120 3495 y(dd:mm:ss.s)25 b(units.)37 b(The)26 b(shap)s(e)f(sizes)g(ma)m(y)i (b)s(e)e(giv)m(en)h(in)e(pixels,)i(degrees,)h(arcmin)m(utes,)g(or)f (arcseconds.)120 3608 y(Lo)s(ok)k(at)i(examples)d(of)i(region)f(\014le) f(pro)s(duced)g(b)m(y)h(fv/PO)m(W)h(or)f(ds9)g(for)g(further)f(details) h(of)g(the)h(region)120 3721 y(\014le)e(format.)120 3961 y Fh(5.4.5)105 b(Example)34 b(Ro)m(w)h(Filters)311 4133 y Fc([double)46 b(&&)h(mag)g(<=)g(5.0])381 b(-)95 b(Extract)46 b(all)h(double)f(stars)g(brighter)1886 4246 y(than)94 b(fifth)47 b(magnitude)311 4472 y([#row)f(>=)h(125)g(&&)h(#row)e(<=)h (175])142 b(-)48 b(Extract)e(row)h(numbers)e(125)i(through)f(175)311 4697 y([abs\(sin\(theta)e(*)j(#deg\)\))f(<)i(0.5])e(-)i(Extract)e(all)h (rows)f(having)g(the)1886 4810 y(absolute)f(value)i(of)g(the)g(sine)g (of)g(theta)1886 4923 y(less)94 b(than)47 b(a)g(half)g(where)f(the)h (angles)1886 5036 y(are)g(tabulated)e(in)i(degrees)311 5262 y([@rowFilter.txt])711 b(-)48 b(Extract)e(rows)g(using)h(the)g (expression)1886 5375 y(contained)e(within)h(the)h(text)g(file)1886 5488 y(rowFilter.txt)1905 5809 y Fg(34)p eop %%Page: 35 35 35 34 bop 311 686 a Fc([gtifilter\(\)])855 b(-)48 b(Search)e(the)h (current)f(file)g(for)h(a)h(GTI)359 799 y(extension,)92 b(filter)i(the)47 b(TIME)359 912 y(column)f(in)h(the)g(current)f (table,)g(using)359 1024 y(START/STOP)f(times)h(taken)g(from)359 1137 y(columns)f(in)j(the)f(GTI)94 b(extension)311 1363 y([regfilter\("pow.reg"\)])423 b(-)48 b(Extract)e(rows)g(which)h(have)f (a)i(coordinate)1886 1476 y(\(as)f(given)f(in)h(the)g(X)h(and)f(Y)g (columns\))1886 1589 y(within)f(the)h(spatial)f(region)g(specified)1886 1702 y(in)h(the)g(pow.reg)f(region)g(file.)1905 5809 y Fg(35)p eop %%Page: 36 36 36 35 bop 120 573 a Fb(5.5)112 b(Com)m(bined)37 b(Filtering)e(Examples) 120 744 y Fg(The)29 b(previous)g(sections)g(describ)s(ed)f(all)h(the)h (individual)25 b(t)m(yp)s(es)30 b(of)g(\014lters)e(that)j(ma)m(y)f(b)s (e)f(applied)f(to)i(the)120 857 y(input)i(\014le.)49 b(In)33 b(this)f(section)i(w)m(e)g(sho)m(w)g(examples)f(whic)m(h)f(com) m(bine)i(sev)m(eral)f(di\013eren)m(t)h(\014lters)e(at)i(once.)120 970 y(These)h(examples)f(all)g(use)h(the)g Fc(fitscopy)e Fg(program)i(that)g(is)f(distributed)e(with)i(the)h(CFITSIO)f(co)s(de.) 120 1083 y(It)c(simply)e(copies)j(the)f(input)f(\014le)g(to)i(the)g (output)f(\014le.)120 1268 y Fc(fitscopy)46 b(rosat.fit)f(out.fit)261 1453 y Fg(This)25 b(trivial)g(example)h(simply)f(mak)m(es)i(an)g(iden)m (tical)f(cop)m(y)h(of)g(the)g(input)e(rosat.\014t)i(\014le)f(without)g (an)m(y)120 1566 y(\014ltering.)120 1751 y Fc(fitscopy)46 b('rosat.fit[events][col)41 b(Time;X;Y][#row)j(<)k(1000]')e(out.fit)261 1936 y Fg(The)34 b(output)g(\014le)g(con)m(tains)h(only)e(the)i(Time,)g (X,)g(and)e(Y)i(columns,)g(and)e(only)h(the)h(\014rst)f(999)h(ro)m(ws) 120 2049 y(from)g(the)g('EVENTS')f(table)h(extension)g(of)g(the)g (input)e(\014le.)54 b(All)33 b(the)j(other)f(HDUs)g(in)f(the)h(input)e (\014le)120 2162 y(are)e(copied)f(to)h(the)f(output)g(\014le)g(without) f(an)m(y)i(mo)s(di\014cation.)120 2346 y Fc(fitscopy)46 b('rosat.fit[events][PI)c(<)47 b(50][bin)f(\(Xdet,Ydet\))f(=)i(16]')g (image.fit)261 2531 y Fg(This)29 b(creates)i(an)f(output)g(image)h(b)m (y)f(binning)d(the)j(Xdet)h(and)f(Ydet)g(columns)f(of)h(the)h(ev)m(en)m (ts)g(table)120 2644 y(with)25 b(a)i(pixel)e(binning)e(factor)k(of)g (16.)40 b(Only)25 b(the)i(ro)m(ws)f(whic)m(h)f(ha)m(v)m(e)j(a)e(PI)h (energy)f(less)g(than)g(50)h(are)g(used)120 2757 y(to)33 b(construct)f(this)e(image.)45 b(The)32 b(output)f(image)h(\014le)f (con)m(tains)h(a)g(primary)e(arra)m(y)i(image)g(without)f(an)m(y)120 2870 y(extensions.)120 3055 y Fc(fitscopy)46 b('rosat.fit[events][gtif) o(ilt)o(er\(\))41 b(&&)47 b(regfilter\("pow.reg"\)]')42 b(out.fit)261 3240 y Fg(The)29 b(\014ltering)f(expression)g(in)g(this)h (example)g(uses)g(the)h Fc(gtifilter)d Fg(function)h(to)i(test)g (whether)f(the)120 3353 y(TIME)e(column)f(v)-5 b(alue)26 b(in)g(eac)m(h)j(ro)m(w)e(is)f(within)f(one)i(of)g(the)h(Go)s(o)s(d)f (Time)f(In)m(terv)-5 b(als)26 b(de\014ned)g(in)g(the)i(GTI)120 3466 y(extension)h(in)f(the)i(same)g(input)d(\014le,)i(and)g(also)h (uses)f(the)g Fc(regfilter)e Fg(function)i(to)h(test)g(if)f(the)g(p)s (osition)120 3579 y(asso)s(ciated)i(with)d(eac)m(h)j(ro)m(w)g(\(deriv)m (ed)e(b)m(y)h(default)f(from)h(the)g(v)-5 b(alues)29 b(in)g(the)h(X)h(and)e(Y)h(columns)f(of)h(the)120 3692 y(ev)m(en)m(ts)38 b(table\))e(is)g(lo)s(cated)h(within)c(the)k(area)g (de\014ned)e(in)h(the)g Fc(pow.reg)f Fg(text)i(region)f(\014le)f (\(whic)m(h)h(w)m(as)120 3804 y(previously)g(created)k(with)e(the)g Fc(fv/POW)f Fg(image)i(displa)m(y)e(program\).)66 b(Only)37 b(the)i(ro)m(ws)f(whic)m(h)g(satisfy)120 3917 y(b)s(oth)30 b(tests)h(are)g(copied)e(to)i(the)g(output)f(table.)120 4102 y Fc(fitscopy)46 b('r.fit[evt][PI<50]')c(stdout)k(|)i(fitscopy)d (stdin[evt][col)f(X,Y])j(out.fit)261 4287 y Fg(In)25 b(this)f(somewhat)i(con)m(v)m(oluted)f(example,)i(\014tscop)m(y)e(is)g (used)f(to)i(\014rst)f(select)h(the)f(ro)m(ws)g(from)g(the)h(evt)120 4400 y(extension)j(whic)m(h)g(ha)m(v)m(e)i(PI)e(less)g(than)h(50)g(and) f(write)g(the)h(resulting)e(table)i(out)g(to)g(the)g(stdout)g(stream.) 120 4513 y(This)36 b(is)g(pip)s(ed)f(to)j(a)g(2nd)f(instance)g(of)h (\014tscop)m(y)g(\(with)e(the)i(Unix)e(`)p Fa(j)p Fg(')i(pip)s(e)e (command\))h(whic)m(h)g(reads)120 4626 y(that)31 b(\014ltered)f(FITS)f (\014le)h(from)g(the)h(stdin)e(stream)i(and)f(copies)g(only)g(the)h(X)f (and)g(Y)h(columns)e(from)h(the)120 4739 y(evt)h(table)f(to)h(the)g (output)f(\014le.)120 4924 y Fc(fitscopy)46 b('r.fit[evt][col)d (RAD=sqrt\(\(X-#XCEN\)**2+\(Y-)o(#YCE)o(N\)*)o(*2\)])o([rad)o(<10)o (0]')e(out.fit)261 5109 y Fg(This)23 b(example)i(\014rst)f(creates)i(a) f(new)f(column)g(called)g(RAD)h(whic)m(h)e(giv)m(es)i(the)g(distance)g (b)s(et)m(w)m(een)g(the)120 5222 y(X,Y)k(co)s(ordinate)f(of)g(eac)m(h)i (ev)m(en)m(t)g(and)d(the)i(co)s(ordinate)f(de\014ned)f(b)m(y)h(the)h(X) m(CEN)f(and)g(YCEN)g(k)m(eyw)m(ords)120 5334 y(in)j(the)i(header.)47 b(Then,)32 b(only)g(those)h(ro)m(ws)g(whic)m(h)e(ha)m(v)m(e)j(a)f (distance)f(less)g(than)g(100)i(are)f(copied)f(to)h(the)120 5447 y(output)e(table.)45 b(In)31 b(other)h(w)m(ords,)f(only)g(the)h (ev)m(en)m(ts)h(whic)m(h)e(are)h(lo)s(cated)g(within)d(100)k(pixel)d (units)g(from)120 5560 y(the)h(\(X)m(CEN,)g(YCEN\))f(co)s(ordinate)h (are)f(copied)g(to)h(the)g(output)f(table.)1905 5809 y(36)p eop %%Page: 37 37 37 36 bop 120 573 a Fc(fitscopy)46 b('ftp://heasarc.gsfc.nas)o(a.g)o (ov/r)o(osat)o(.fi)o(t[ev)o(ents)o(][b)o(in)c(\(X,Y\)=16]')j(img.fit) 261 785 y Fg(This)22 b(example)h(bins)e(the)i(X)h(and)f(Y)g(columns)f (of)h(the)h(h)m(yp)s(othetical)e(R)m(OSA)-8 b(T)24 b(\014le)e(at)i(the) f(HEASAR)m(C)120 898 y(ftp)30 b(site)g(to)h(create)h(the)f(output)f (image.)120 1111 y Fc(fitscopy)46 b('raw.fit[i512,512][101:)o(110)o (,51:)o(60]')41 b(image.fit)261 1323 y Fg(This)28 b(example)h(con)m(v)m (erts)i(the)e(512)i(x)e(512)i(pixel)d(ra)m(w)h(binary)f(16-bit)h(in)m (teger)h(image)g(to)g(a)g(FITS)e(\014le)120 1436 y(and)i(copies)g(a)h (10)g(x)f(10)h(pixel)e(subimage)h(from)g(it)f(to)j(the)e(output)g(FITS) g(image.)1905 5809 y(37)p eop %%Page: 38 38 38 37 bop 120 573 a Fi(6)135 b(CFITSIO)44 b(Error)h(Status)g(Co)t(des) 120 776 y Fg(The)34 b(follo)m(wing)e(table)i(lists)f(all)g(the)h(error) g(status)g(co)s(des)h(used)e(b)m(y)h(CFITSIO.)f(Programmers)h(are)g (en-)120 889 y(couraged)f(to)g(use)g(the)f(sym)m(b)s(olic)f(mnemonics)h (\(de\014ned)f(in)g(the)i(\014le)f(\014tsio.h\))g(rather)g(than)g(the)h (actual)120 1002 y(in)m(teger)e(status)f(v)-5 b(alues)30 b(to)h(impro)m(v)m(e)f(the)h(readabilit)m(y)e(of)h(their)g(co)s(de.)168 1214 y Fc(Symbolic)45 b(Const)190 b(Value)237 b(Meaning)168 1327 y(--------------)187 b(-----)94 b(------------------------)o(----) o(---)o(----)o(----)o(--)1122 1440 y(0)191 b(OK,)47 b(no)g(error)168 1553 y(SAME_FILE)427 b(101)190 b(input)46 b(and)h(output)f(files)h(are) g(the)f(same)168 1666 y(TOO_MANY_FILES)187 b(103)j(tried)46 b(to)h(open)g(too)g(many)g(FITS)f(files)h(at)g(once)168 1779 y(FILE_NOT_OPENED)139 b(104)190 b(could)46 b(not)h(open)g(the)g (named)f(file)168 1892 y(FILE_NOT_CREATED)91 b(105)190 b(could)46 b(not)h(create)f(the)h(named)g(file)168 2005 y(WRITE_ERROR)331 b(106)190 b(error)46 b(writing)g(to)h(FITS)g(file)168 2117 y(END_OF_FILE)331 b(107)190 b(tried)46 b(to)h(move)g(past)g(end)g (of)g(file)168 2230 y(READ_ERROR)379 b(108)190 b(error)46 b(reading)g(from)h(FITS)f(file)168 2343 y(FILE_NOT_CLOSED)139 b(110)190 b(could)46 b(not)h(close)g(the)f(file)168 2456 y(ARRAY_TOO_BIG)235 b(111)190 b(array)46 b(dimensions)f(exceed)h (internal)g(limit)168 2569 y(READONLY_FILE)235 b(112)190 b(Cannot)46 b(write)g(to)i(readonly)d(file)168 2682 y (MEMORY_ALLOCATION)e(113)190 b(Could)46 b(not)h(allocate)f(memory)168 2795 y(BAD_FILEPTR)331 b(114)190 b(invalid)46 b(fitsfile)f(pointer)168 2908 y(NULL_INPUT_PTR)187 b(115)j(NULL)47 b(input)f(pointer)g(to)h (routine)168 3021 y(SEEK_ERROR)379 b(116)190 b(error)46 b(seeking)g(position)g(in)h(file)168 3247 y(BAD_URL_PREFIX)235 b(121)142 b(invalid)46 b(URL)h(prefix)f(on)h(file)g(name)168 3359 y(TOO_MANY_DRIVERS)139 b(122)j(tried)46 b(to)h(register)f(too)h (many)g(IO)g(drivers)168 3472 y(DRIVER_INIT_FAILED)c(123)142 b(driver)46 b(initialization)e(failed)168 3585 y(NO_MATCHING_DRIVER)f (124)142 b(matching)45 b(driver)i(is)g(not)g(registered)168 3698 y(URL_PARSE_ERROR)187 b(125)142 b(failed)46 b(to)h(parse)g(input)f (file)h(URL)168 3924 y(SHARED_BADARG)235 b(151)190 b(bad)47 b(argument)e(in)j(shared)e(memory)g(driver)168 4037 y(SHARED_NULPTR)235 b(152)190 b(null)47 b(pointer)e(passed)h(as)i(an)f(argument)168 4150 y(SHARED_TABFULL)187 b(153)j(no)47 b(more)g(free)f(shared)g (memory)h(handles)168 4263 y(SHARED_NOTINIT)187 b(154)j(shared)46 b(memory)g(driver)g(is)h(not)g(initialized)168 4376 y(SHARED_IPCERR)235 b(155)190 b(IPC)47 b(error)f(returned)g(by)h(a)g(system)f(call)168 4489 y(SHARED_NOMEM)283 b(156)190 b(no)47 b(memory)f(in)h(shared)f (memory)h(driver)168 4601 y(SHARED_AGAIN)283 b(157)190 b(resource)45 b(deadlock)h(would)g(occur)168 4714 y(SHARED_NOFILE)235 b(158)190 b(attempt)46 b(to)h(open/create)e(lock)h(file)h(failed)168 4827 y(SHARED_NORESIZE)139 b(159)190 b(shared)46 b(memory)g(block)g (cannot)h(be)g(resized)f(at)h(the)g(moment)168 5053 y(HEADER_NOT_EMPTY) 91 b(201)190 b(header)46 b(already)g(contains)f(keywords)168 5166 y(KEY_NO_EXIST)283 b(202)190 b(keyword)46 b(not)h(found)f(in)h (header)168 5279 y(KEY_OUT_BOUNDS)187 b(203)j(keyword)46 b(record)g(number)g(is)h(out)g(of)g(bounds)168 5392 y(VALUE_UNDEFINED) 139 b(204)190 b(keyword)46 b(value)g(field)g(is)i(blank)168 5505 y(NO_QUOTE)475 b(205)190 b(string)46 b(is)h(missing)f(the)h (closing)f(quote)1905 5809 y Fg(38)p eop %%Page: 39 39 39 38 bop 168 573 a Fc(BAD_KEYCHAR)331 b(207)190 b(illegal)46 b(character)f(in)i(keyword)f(name)h(or)g(card)168 686 y(BAD_ORDER)427 b(208)190 b(required)45 b(keywords)h(out)h(of)g(order) 168 799 y(NOT_POS_INT)331 b(209)190 b(keyword)46 b(value)g(is)h(not)g (a)h(positive)d(integer)168 912 y(NO_END)571 b(210)190 b(couldn't)45 b(find)i(END)g(keyword)168 1024 y(BAD_BITPIX)379 b(211)190 b(illegal)46 b(BITPIX)g(keyword)g(value)168 1137 y(BAD_NAXIS)427 b(212)190 b(illegal)46 b(NAXIS)g(keyword)g(value) 168 1250 y(BAD_NAXES)427 b(213)190 b(illegal)46 b(NAXISn)g(keyword)g (value)168 1363 y(BAD_PCOUNT)379 b(214)190 b(illegal)46 b(PCOUNT)g(keyword)g(value)168 1476 y(BAD_GCOUNT)379 b(215)190 b(illegal)46 b(GCOUNT)g(keyword)g(value)168 1589 y(BAD_TFIELDS)331 b(216)190 b(illegal)46 b(TFIELDS)g(keyword)f (value)168 1702 y(NEG_WIDTH)427 b(217)190 b(negative)45 b(table)i(row)g(size)168 1815 y(NEG_ROWS)475 b(218)190 b(negative)45 b(number)i(of)g(rows)f(in)i(table)168 1928 y(COL_NOT_FOUND)235 b(219)190 b(column)46 b(with)h(this)f(name)h(not)g (found)f(in)h(table)168 2041 y(BAD_SIMPLE)379 b(220)190 b(illegal)46 b(value)g(of)h(SIMPLE)f(keyword)168 2154 y(NO_SIMPLE)427 b(221)190 b(Primary)46 b(array)g(doesn't)g(start)g (with)h(SIMPLE)168 2267 y(NO_BITPIX)427 b(222)190 b(Second)46 b(keyword)g(not)h(BITPIX)168 2379 y(NO_NAXIS)475 b(223)190 b(Third)46 b(keyword)g(not)h(NAXIS)168 2492 y(NO_NAXES)475 b(224)190 b(Couldn't)45 b(find)i(all)g(the)g(NAXISn)f(keywords)168 2605 y(NO_XTENSION)331 b(225)190 b(HDU)47 b(doesn't)f(start)g(with)h (XTENSION)e(keyword)168 2718 y(NOT_ATABLE)379 b(226)190 b(the)47 b(CHDU)f(is)i(not)f(an)g(ASCII)f(table)g(extension)168 2831 y(NOT_BTABLE)379 b(227)190 b(the)47 b(CHDU)f(is)i(not)f(a)g (binary)f(table)g(extension)168 2944 y(NO_PCOUNT)427 b(228)190 b(couldn't)45 b(find)i(PCOUNT)f(keyword)168 3057 y(NO_GCOUNT)427 b(229)190 b(couldn't)45 b(find)i(GCOUNT)f(keyword) 168 3170 y(NO_TFIELDS)379 b(230)190 b(couldn't)45 b(find)i(TFIELDS)f (keyword)168 3283 y(NO_TBCOL)475 b(231)190 b(couldn't)45 b(find)i(TBCOLn)f(keyword)168 3396 y(NO_TFORM)475 b(232)190 b(couldn't)45 b(find)i(TFORMn)f(keyword)168 3509 y(NOT_IMAGE)427 b(233)190 b(the)47 b(CHDU)f(is)i(not)f(an)g(IMAGE)f(extension)168 3621 y(BAD_TBCOL)427 b(234)190 b(TBCOLn)46 b(keyword)g(value)g(<)i(0)f (or)g(>)h(rowlength)168 3734 y(NOT_TABLE)427 b(235)190 b(the)47 b(CHDU)f(is)i(not)f(a)g(table)168 3847 y(COL_TOO_WIDE)283 b(236)190 b(column)46 b(is)h(too)g(wide)g(to)g(fit)g(in)g(table)168 3960 y(COL_NOT_UNIQUE)187 b(237)j(more)47 b(than)f(1)i(column)e(name)g (matches)g(template)168 4073 y(BAD_ROW_WIDTH)235 b(241)190 b(sum)47 b(of)g(column)f(widths)g(not)h(=)h(NAXIS1)168 4186 y(UNKNOWN_EXT)331 b(251)190 b(unrecognizable)44 b(FITS)i(extension)g(type)168 4299 y(UNKNOWN_REC)331 b(252)190 b(unknown)46 b(record;)g(1st)g(keyword)g(not)h(SIMPLE)f(or)h (XTENSION)168 4412 y(END_JUNK)475 b(253)190 b(END)47 b(keyword)f(is)h(not)g(blank)168 4525 y(BAD_HEADER_FILL)139 b(254)190 b(Header)46 b(fill)h(area)f(contains)g(non-blank)f(chars)168 4638 y(BAD_DATA_FILL)235 b(255)190 b(Illegal)46 b(data)g(fill)h(bytes)f (\(not)h(zero)g(or)g(blank\))168 4751 y(BAD_TFORM)427 b(261)190 b(illegal)46 b(TFORM)g(format)g(code)168 4863 y(BAD_TFORM_DTYPE)139 b(262)190 b(unrecognizable)44 b(TFORM)i(datatype) g(code)168 4976 y(BAD_TDIM)475 b(263)190 b(illegal)46 b(TDIMn)g(keyword)g(value)168 5089 y(BAD_HEAP_PTR)283 b(264)190 b(invalid)46 b(BINTABLE)f(heap)i(pointer)f(is)h(out)g(of)g (range)168 5315 y(BAD_HDU_NUM)331 b(301)190 b(HDU)47 b(number)f(<)h(1)h(or)f(>)g(MAXHDU)168 5428 y(BAD_COL_NUM)331 b(302)190 b(column)46 b(number)g(<)i(1)f(or)g(>)h(tfields)168 5541 y(NEG_FILE_POS)283 b(304)190 b(tried)46 b(to)h(move)g(to)g (negative)f(byte)g(location)g(in)h(file)1905 5809 y Fg(39)p eop %%Page: 40 40 40 39 bop 168 573 a Fc(NEG_BYTES)427 b(306)190 b(tried)46 b(to)h(read)g(or)g(write)g(negative)e(number)h(of)h(bytes)168 686 y(BAD_ROW_NUM)331 b(307)190 b(illegal)46 b(starting)f(row)i(number) f(in)h(table)168 799 y(BAD_ELEM_NUM)283 b(308)190 b(illegal)46 b(starting)f(element)h(number)g(in)h(vector)168 912 y(NOT_ASCII_COL)235 b(309)190 b(this)47 b(is)g(not)g(an)g(ASCII)f(string)g(column)168 1024 y(NOT_LOGICAL_COL)139 b(310)190 b(this)47 b(is)g(not)g(a)g (logical)f(datatype)f(column)168 1137 y(BAD_ATABLE_FORMAT)e(311)190 b(ASCII)46 b(table)h(column)f(has)h(wrong)f(format)168 1250 y(BAD_BTABLE_FORMAT)d(312)190 b(Binary)46 b(table)g(column)g(has)h (wrong)g(format)168 1363 y(NO_NULL)523 b(314)190 b(null)47 b(value)f(has)h(not)g(been)f(defined)168 1476 y(NOT_VARI_LEN)283 b(317)190 b(this)47 b(is)g(not)g(a)g(variable)f(length)g(column)168 1589 y(BAD_DIMEN)427 b(320)190 b(illegal)46 b(number)g(of)h(dimensions) e(in)i(array)168 1702 y(BAD_PIX_NUM)331 b(321)190 b(first)46 b(pixel)h(number)f(greater)g(than)g(last)h(pixel)168 1815 y(ZERO_SCALE)379 b(322)190 b(illegal)46 b(BSCALE)g(or)h(TSCALn)f (keyword)g(=)h(0)168 1928 y(NEG_AXIS)475 b(323)190 b(illegal)46 b(axis)g(length)g(<)i(1)168 2154 y(NOT_GROUP_TABLE)330 b(340)142 b(Grouping)46 b(function)f(error)168 2267 y (HDU_ALREADY_MEMBER)186 b(341)168 2379 y(MEMBER_NOT_FOUND)282 b(342)168 2492 y(GROUP_NOT_FOUND)330 b(343)168 2605 y(BAD_GROUP_ID)474 b(344)168 2718 y(TOO_MANY_HDUS_TRACKED)42 b(345)168 2831 y(HDU_ALREADY_TRACKED)138 b(346)168 2944 y(BAD_OPTION)570 b(347)168 3057 y(IDENTICAL_POINTERS)186 b(348)168 3170 y(BAD_GROUP_ATTACH)282 b(349)168 3283 y(BAD_GROUP_DETACH)g(350)168 3509 y(NGP_NO_MEMORY)426 b(360)238 b(malloc)46 b(failed)168 3621 y(NGP_READ_ERR)474 b(361)238 b(read)46 b(error)h(from)f(file)168 3734 y(NGP_NUL_PTR)522 b(362)238 b(null)46 b(pointer)g(passed)g(as)h (an)g(argument.)1695 3847 y(Passing)f(null)g(pointer)g(as)h(a)h(name)f (of)1695 3960 y(template)f(file)g(raises)g(this)h(error)168 4073 y(NGP_EMPTY_CURLINE)234 b(363)k(line)46 b(read)h(seems)f(to)h(be)h (empty)e(\(used)1695 4186 y(internally\))168 4299 y (NGP_UNREAD_QUEUE_FULL)c(364)238 b(cannot)46 b(unread)g(more)g(then)h (1)g(line)g(\(or)g(single)1695 4412 y(line)g(twice\))168 4525 y(NGP_INC_NESTING)330 b(365)238 b(too)46 b(deep)h(include)f(file)h (nesting)e(\(infinite)1695 4638 y(loop,)h(template)g(includes)f(itself) i(?\))168 4751 y(NGP_ERR_FOPEN)426 b(366)238 b(fopen\(\))45 b(failed,)h(cannot)g(open)h(template)e(file)168 4863 y(NGP_EOF)714 b(367)238 b(end)46 b(of)i(file)e(encountered)f(and)i(not) g(expected)168 4976 y(NGP_BAD_ARG)522 b(368)238 b(bad)46 b(arguments)g(passed.)g(Usually)f(means)1695 5089 y(internal)h(parser)g (error.)g(Should)g(not)h(happen)168 5202 y(NGP_TOKEN_NOT_EXPECT)90 b(369)238 b(token)46 b(not)h(expected)e(here)168 5428 y(BAD_I2C)523 b(401)190 b(bad)47 b(int)g(to)g(formatted)e(string)h (conversion)168 5541 y(BAD_F2C)523 b(402)190 b(bad)47 b(float)f(to)h(formatted)f(string)g(conversion)1905 5809 y Fg(40)p eop %%Page: 41 41 41 40 bop 168 573 a Fc(BAD_INTKEY)379 b(403)190 b(can't)46 b(interpret)g(keyword)f(value)i(as)g(integer)168 686 y(BAD_LOGICALKEY)187 b(404)j(can't)46 b(interpret)g(keyword)f(value)i (as)g(logical)168 799 y(BAD_FLOATKEY)283 b(405)190 b(can't)46 b(interpret)g(keyword)f(value)i(as)g(float)168 912 y(BAD_DOUBLEKEY)235 b(406)190 b(can't)46 b(interpret)g(keyword)f(value)i(as)g(double)168 1024 y(BAD_C2I)523 b(407)190 b(bad)47 b(formatted)e(string)h(to)h(int)g (conversion)168 1137 y(BAD_C2F)523 b(408)190 b(bad)47 b(formatted)e(string)h(to)h(float)g(conversion)168 1250 y(BAD_C2D)523 b(409)190 b(bad)47 b(formatted)e(string)h(to)h(double)f (conversion)168 1363 y(BAD_DATATYPE)283 b(410)190 b(illegal)46 b(datatype)f(code)i(value)168 1476 y(BAD_DECIM)427 b(411)190 b(bad)47 b(number)f(of)h(decimal)f(places)g(specified)168 1589 y(NUM_OVERFLOW)283 b(412)190 b(overflow)45 b(during)i(datatype)e (conversion)168 1702 y(DATA_COMPRESSION_ERR)137 b(413)95 b(error)46 b(compressing)f(image)168 1815 y(DATA_DECOMPRESSION_ERR)c (414)95 b(error)46 b(uncompressing)f(image)168 2041 y(BAD_DATE)475 b(420)190 b(error)46 b(in)h(date)g(or)g(time)g(conversion)168 2267 y(PARSE_SYNTAX_ERR)91 b(431)190 b(syntax)46 b(error)g(in)i(parser) e(expression)168 2379 y(PARSE_BAD_TYPE)187 b(432)j(expression)45 b(did)i(not)g(evaluate)e(to)i(desired)f(type)168 2492 y(PARSE_LRG_VECTOR)91 b(433)190 b(vector)46 b(result)g(too)h(large)f (to)i(return)e(in)h(array)168 2605 y(PARSE_NO_OUTPUT)139 b(434)190 b(data)47 b(parser)f(failed)g(not)h(sent)f(an)h(out)g(column) 168 2718 y(PARSE_BAD_COL)235 b(435)190 b(bad)47 b(data)f(encounter)g (while)g(parsing)g(column)168 2831 y(PARSE_BAD_OUTPUT)91 b(436)190 b(Output)46 b(file)h(not)g(of)g(proper)f(type)168 3057 y(ANGLE_TOO_BIG)235 b(501)190 b(celestial)45 b(angle)i(too)f (large)h(for)g(projection)168 3170 y(BAD_WCS_VAL)331 b(502)190 b(bad)47 b(celestial)e(coordinate)g(or)i(pixel)g(value)168 3283 y(WCS_ERROR)427 b(503)190 b(error)46 b(in)h(celestial)f (coordinate)f(calculation)168 3396 y(BAD_WCS_PROJ)283 b(504)190 b(unsupported)45 b(type)h(of)h(celestial)f(projection)168 3509 y(NO_WCS_KEY)379 b(505)190 b(celestial)45 b(coordinate)g(keywords) h(not)h(found)168 3621 y(APPROX_WCS_KEY)187 b(506)j(approximate)45 b(wcs)i(keyword)e(values)h(were)h(returned)1905 5809 y Fg(41)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF