!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                   Safe2Run ps2pdf to translate an EPS file to a PDF file. eps_to_pdf "/tmp/t.0.eps"SafeConvert degrees to radians.!Convert millimeters to PS points.Type specialised . variant of .Safe>BoundingBox for an EPSF file with an optional HiResBoundingBox lower left x (x-min) lower left y (y-min) upper right x (x-max)upper right y (y-max)high resolution  high resolution  high resolution  high resolution }Paper size data type, the units are specified in the type. The units in postscript are points, we often work in millimeters.Enumeration type for Units. Translate  from mm to points. 7let a4 = Paper MM 210 297 paper_size_pt a4 == (595,841)Swap width and height of .Proportion of . import Graphics.PS.Paper.Names proportion broadsheet == 1.25 map (round . (* 1e3) . proportion) [a0,b0,c0] == [1414,1414,1414] map proportion [usLetter,berliner,tabloid]'The margin given by placing paper size p within q.Sum of . ;bbox_sum (BBox 5 5 10 10) (BBox 0 0 2 20) == BBox 0 0 10 20  Translate  from mm to points.!A + variant that rounds rather than truncates. llet f (Paper _ h _) = h `div` 2 == h `divRound` 2 in all id (map f [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9]) == False  !  !   !    !Safe2(ISO size downscaling, ie. from A0 to A1. iso_down_scale a4 == a5)4JIS size downscaling, truncates instead of rounding.*ISO A sizes in millimeters. a4 == Paper 210 297+ISO A sizes in millimeters. a4 == Paper 210 297,ISO A sizes in millimeters. a4 == Paper 210 297-ISO A sizes in millimeters. a4 == Paper 210 297.ISO A sizes in millimeters. a4 == Paper 210 297/ISO A sizes in millimeters. a4 == Paper 210 2970ISO A sizes in millimeters. a4 == Paper 210 2971ISO A sizes in millimeters. a4 == Paper 210 2972ISO A sizes in millimeters. a4 == Paper 210 2973ISO A sizes in millimeters. a4 == Paper 210 2974ISO A sizes in millimeters. a4 == Paper 210 2975ISO B sizes in millimeters. 1b4 == Paper 250 354 inset_margin b4 a3 == (23,33)6ISO B sizes in millimeters. 1b4 == Paper 250 354 inset_margin b4 a3 == (23,33)7ISO B sizes in millimeters. 1b4 == Paper 250 354 inset_margin b4 a3 == (23,33)8ISO B sizes in millimeters. 1b4 == Paper 250 354 inset_margin b4 a3 == (23,33)9ISO B sizes in millimeters. 1b4 == Paper 250 354 inset_margin b4 a3 == (23,33):ISO B sizes in millimeters. 1b4 == Paper 250 354 inset_margin b4 a3 == (23,33);ISO B sizes in millimeters. 1b4 == Paper 250 354 inset_margin b4 a3 == (23,33)<ISO B sizes in millimeters. 1b4 == Paper 250 354 inset_margin b4 a3 == (23,33)=ISO B sizes in millimeters. 1b4 == Paper 250 354 inset_margin b4 a3 == (23,33)>ISO B sizes in millimeters. 1b4 == Paper 250 354 inset_margin b4 a3 == (23,33)?ISO B sizes in millimeters. 1b4 == Paper 250 354 inset_margin b4 a3 == (23,33)@ JIS B sizes Wjis_b4 == Paper 257 364 (proportion b0,proportion jis_b0) == (1.414,1.4135922330097088) !inset_margin jis_b4 a3 == (20,28)A JIS B sizes Wjis_b4 == Paper 257 364 (proportion b0,proportion jis_b0) == (1.414,1.4135922330097088) !inset_margin jis_b4 a3 == (20,28)B JIS B sizes Wjis_b4 == Paper 257 364 (proportion b0,proportion jis_b0) == (1.414,1.4135922330097088) !inset_margin jis_b4 a3 == (20,28)C JIS B sizes Wjis_b4 == Paper 257 364 (proportion b0,proportion jis_b0) == (1.414,1.4135922330097088) !inset_margin jis_b4 a3 == (20,28)D JIS B sizes Wjis_b4 == Paper 257 364 (proportion b0,proportion jis_b0) == (1.414,1.4135922330097088) !inset_margin jis_b4 a3 == (20,28)E JIS B sizes Wjis_b4 == Paper 257 364 (proportion b0,proportion jis_b0) == (1.414,1.4135922330097088) !inset_margin jis_b4 a3 == (20,28)F JIS B sizes Wjis_b4 == Paper 257 364 (proportion b0,proportion jis_b0) == (1.414,1.4135922330097088) !inset_margin jis_b4 a3 == (20,28)G JIS B sizes Wjis_b4 == Paper 257 364 (proportion b0,proportion jis_b0) == (1.414,1.4135922330097088) !inset_margin jis_b4 a3 == (20,28)H JIS B sizes Wjis_b4 == Paper 257 364 (proportion b0,proportion jis_b0) == (1.414,1.4135922330097088) !inset_margin jis_b4 a3 == (20,28)I JIS B sizes Wjis_b4 == Paper 257 364 (proportion b0,proportion jis_b0) == (1.414,1.4135922330097088) !inset_margin jis_b4 a3 == (20,28)J JIS B sizes Wjis_b4 == Paper 257 364 (proportion b0,proportion jis_b0) == (1.414,1.4135922330097088) !inset_margin jis_b4 a3 == (20,28)KISO C sizes in millimeters. c4 == Paper 229 324LISO C sizes in millimeters. c4 == Paper 229 324MISO C sizes in millimeters. c4 == Paper 229 324NISO C sizes in millimeters. c4 == Paper 229 324OISO C sizes in millimeters. c4 == Paper 229 324PISO C sizes in millimeters. c4 == Paper 229 324QISO C sizes in millimeters. c4 == Paper 229 324RISO C sizes in millimeters. c4 == Paper 229 324SISO C sizes in millimeters. c4 == Paper 229 324TISO C sizes in millimeters. c4 == Paper 229 324UISO C sizes in millimeters. c4 == Paper 229 324V"US Letter size in millimeters (ie  216 279).W%Newspaper sizes in millimeters. See  -http://www.papersizes.org/newspaper-sizes.htm.X%Newspaper sizes in millimeters. See  -http://www.papersizes.org/newspaper-sizes.htm.Y%Newspaper sizes in millimeters. See  -http://www.papersizes.org/newspaper-sizes.htm.2()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY2()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY2()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY2()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYSafeZCharacter data type.ZZZZSafe[Graphics state.cTColour model. Postscript doesn't support alpha, but store it for PDF rendering etc.eLine join enumeration.iLine width (real).jLine cap enumeration.nDefault [ of indicated c.oDefault [ of indicated shade of grey.[\]^_`abcdefghijklmno[\]^_`abcdefghijklmnojklmiefghcd[\]^_`abno[\]^_`abcdefghijklmnoSafezFont data type.z{|}z{|}z{|}z{|}Safe,An arc, given as either one or two segments.FAn arc segment, as starting point and values for the curveto operator."Path data type,in cartesian space.Infix notation for . Left fold of .Line segments though list of . Variant of  connecting the last  to the first.Rectangle with lower left at W and of specified width and height. Polygon is ordered anticlockwise from lower left.EArc segment, (x,y) = center,r = radius,a = start angle,b = end angle.8Arc, c = center,r = radius,a = start angle,b = end angleJIf the arc angle is greater than pi the arc must be drawn in two segments. of . Variant of  allowing b to be less than a. with a and b reversed.?Arc given by a central point,a radius,and start and end angles. Negative arc.](x,y) = center,ir = inner radius,xr = outer radius,sa = start angle,a = angle,ea = end angleAnnular segment.LApply any transformations at path. The resulting path will not have any  nodes.'Render each (p1,p2) as a distinct line.+Collapse line sequences into a single line.   Safe&An image is a rendering of a graph of s. Layer one  over another.List of s at .   SafeFWrite a postscript file. The list of images are written one per page.)Variant with page (paper) size in points.Generate postscript data given title , page size, and a set of page .,Write an encapsulated postscript file. The - is in points. The single image is written.@?@2 1 Safe 6Rectangle, given as lower left and upper right points.?Locate the starting point of the path, which must begin with a  node.-Variant that allows the initial node to be a  or  node.Ensure path begins with a  node.!Locate the end point of the path. Append a  the start point of .Approximate curves as n+ straight line segments. That is replace  nodes with n  nodes calculated using bezier4.Sum (join) of two .Rectangle bounding a (simple) . Translate  to .  SafePath statistics data type.1Determine number of path components of each type.Statistics for all  at .    Safe9; 0Values that can be transformed in relation to a Matrix. Translation in x and y.  Scaling in x and y.Rotation, in radians.                SafeSee ?ftp.scsh.net/pub/scsh/contrib/fps/doc/examples/fractal-sqr.html of  with inputs  (250,250),  (175,175), 12. variant of .A unit arrow.See Aftp.scsh.net/pub/scsh/contrib/fps/doc/examples/fractal-arrow.htmlIsosceles right angled triangleSierpinski triangle.Safe  !Z[\]^_`abcdefghijklmnoz{|} !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&    ' !"#$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkklmnopqrstuvwxyz{|}~                                                      !"#$%&'($%)*+,*+-*+-*+.*+/*+0*+0*+1*+2*+3*+,*+4*+5*+6*+6*+7*+8*+9*+:*+;*+<*+=*+>*+>*+?*+?*+@*+A*+A*+B*+C*+D*+E*+F*+G*+H*+I*+J*+K*+L*+M*+N*+O*+P*+Q*RS*RT*RU*RV*RW*RX*RY*RZ*R[*R\*R]*R^*R_*R`*Ra*Rb*Rc*Rd*Re*Rf*Rg*Rh*Ri*Rj*Rk*Rl*Rm*Rn*Ro*Rp*Rq*Rr*Rs*Rt*Ru*Rv*Rw*Rx*Ry*Rz*R{*R|*R}*R~*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R *R *R *R *R *R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R*R* !* "* #* $* %* &* '* (* )* ** +* ,* -* .* /* 0* 12hps-0.16-7WLHIAasL8I1My7JYl83AKGraphics.PS.UtilGraphics.PS.UnitGraphics.PS.PaperGraphics.PS.Paper.NamesGraphics.PS.GlyphGraphics.PS.GSGraphics.PS.FontGraphics.PS.PathGraphics.PS.ImageGraphics.PS.PSGraphics.PS.QueryGraphics.PS.StatisticsGraphics.PS.TransformGraphics.PS.Path.GraphsIImages Graphics.PSCmdrun_cmdeps_to_pdf_cmd eps_to_pdfradiansmm_pti_to_d mm_pt_intBBoxHRBBoxllxllyurxuryhrllxhrllyhrurxhruryPaperunitswidthheightUnitsMMPT paper_size_pt landscape proportion inset_marginbbox_sum bbox_mm_to_ptdivRound $fEqUnits $fShowUnits $fEqPaper $fShowPaper$fEqBBox $fShowBBoxiso_down_scalejis_down_scalea0a1a2a3a4a5a6a7a8a9a10b0b1b2b3b4b5b6b7b8b9b10jis_b0jis_b1jis_b2jis_b3jis_b4jis_b5jis_b6jis_b7jis_b8jis_b9jis_b10c0c1c2c3c4c5c6c7c8c9c10usLetter broadsheetberlinertabloidGlyphGSgs_color gs_line_width gs_line_cap gs_line_joings_dashgs_miter_limitColorRGBALineJoin MiterJoin RoundJoin BevelJoin LineWidthLineCapButtCapRoundCapProjectingSquareCap defaultGSgreyGS $fEqLineCap $fShowLineCap $fEnumLineCap $fEqLineJoin$fShowLineJoin$fEnumLineJoin $fEqColor $fShowColor$fEqGS$fShowGSFontfontNamefontSize$fEqFont $fShowFontAnnularArcArc1Arc2Arc_SegPathMoveToLineToCurveTo ClosePathText PTransformJoin+++combinelinepolygon rectanglearcparca arc_to_path arca_udirarcNegative_udirarc arcNegative annular_fannular flatten_fflatten renderLinesrenderLines_jn $fMonoidPath$fEqPath $fShowPathImageStrokeFill ITransformOverEmptyoverpaths $fMonoidImage $fEqImage $fShowImage MonadMonoidappMonadMonoidPSNameLNameOpCommentIntDoubleString TransformArrayProcDictSeqdscPSheaderPS headerEPStitlePS creatorPSlanguageLevelPSpagesPSbboxPS endCommentsPSpagePS trailerPSeofPSdocumentMediaPSaliasPS pdfCompatprologPSstrokePSfillPSfalsePSsavePS restorePS showPagePSrgbaPS lineWidthPS lineCapPS lineJoinPSdashPS miterLimitPSmoveToPSlineToPS transformPS curveToPS closePathPS selectFontPS charPathPSgsPSpathPSimagePS>+> ps_bracket ps_escapeps_put to_page_seqpsstringFromPS_pt stringFromPSeps$fMonoidMonadMonoidRectrect_llrect_urstartPtstartPt'mkValidendPtcloseapproxrect_sum path_rect rect_to_bbox path_to_bbox$fEqRect $fShowRect StatisticsnMoveTonLineTonCurveTo nClosePathnGlyph nTransformpathStatisticsimageStatistics$fMonoidStatistics$fEqStatistics$fShowStatistics Transformable mtransform translatescalerotate$fTransformablePt$fTransformablePath$fTransformableImagefractal_sqr_pt fractal_sqr fractal_sqr' unitArrow fractalArrowerat sierpinskibaseGHC.Real fromIntegralghc-prim GHC.Typesdiv%hcg-minus-0.16-6beuxj0OZIhAg2wh1KmICYData.CG.Minus.TypesPtWnwn_exwn_llVcvc_xvc_yRpt_xpt_yP3p3_xp3_yp3_z Matrix_IndexI0I1I2MatrixLsls_elemLnln_endln_startCaCvc_uopvc_binoppt_uoppt_binopp3_uopp3_binopmx_uopmx_row mx_multiplymx_colmx_binopmatrix_apply_rawData.CG.Minus.Core~=wn_unitwn_to_ls_closedwn_to_ls wn_square_o wn_squarewn_showwn_normalise_f wn_negate_y wn_join_lwn_join wn_intersect wn_grid_wn wn_grid_vc wn_grid_pt_ll wn_grid_pt_c wn_grid_lswn_from_extent wn_extractwn'vc_xyvc_unit vc_to_polarvc_scalevc_same_directionvc_polar vc_mag_sqvc_magvc_dotvc_anglesplit_f segment_f r_to_radiansr_from_radians r_constrain pts_windowpts_sequence_rightpts_sequence_above pts_sequence pts_minmaxpt_xy pt_translate pt_transformpt_to_vc pt_to_radians pt_to_polar pt_ternary_fpt_swap pt_shift_wpt_scalept_rotate_about pt_rotate pt_reflect_y pt_reflect_xy pt_reflect_x pt_randompt_polar pt_origin pt_on_line pt_offset pt_negate_y pt_minmaxpt_minpt_max pt_mag_sqpt_magpt_ln_reflect_mdpt_ln_intersect_md_rawpt_ln_intersect_mdpt_linear_extensionpt_lift3 pt_is_normal pt_in_windowpt_from_scalarpt_from_radians pt_from_polar pt_from_ipt_eq_by pt_eq_approx pt_distance pt_constrainpt_clipu pt_angle_opt_anglepolygon_unfold polygon_parampairsp3_xyzp3_scale p3_random p3_origin p3_offsetp3_from_scalarp3'mx_translation mx_translate mx_scalingmx_scalemx_scalar_multiply mx_rotation mx_rotatemx_list mx_invert mx_identity mx_adjoint mk_vc_polarmk_vc mk_pt_polarmk_ptmk_lsmk_lnmag_sqmagls_xy ls_window ls_unliftls_tolerate_maybe ls_tolerate ls_to_ln_setls_sequence_rightls_sequence_above ls_sequence ls_separatels_segment_windowls_rotate_about_centroidls_rotate_aboutls_pt_inside_or_vertex ls_pt_insidels_nullls_not_in_windowls_normalise_wls_normalise_set ls_normalise ls_negate_y ls_multiply ls_minmax_y ls_minmax_x ls_minmax ls_midpointsls_mapls_intersections_yls_intersections_xls_intersectionsls_intersect_p ls_in_windowls_enters_window ls_elem_f ls_concatls_closels_check_normalised ls_centroidlslns_translate_pt lns_translate lns_normalise lns_multiply lns_minmax ln_y_aligned ln_x_alignedln_wn ln_verticalln_vcln_uopln_translate_pt ln_translateln_sortln_slopeln_scaleln_same_directionln_rotate_about ln_reverse ln_randomln_pt_vc ln_pt_alongln_pt ln_parallel__ ln_parallel_ ln_parallelln_normalise_w ln_multiply ln_minmax ln_midpoint ln_magnitudeln_intersection_ln_intersectionln_intersect_sgln_intersect_p ln_intersect ln_horizontal ln_extend_ ln_extendln_elemln_circle_intersection_setln_circle_intersectionln_angleln_align ln_adjustln' list_closein_rangeepsilondelete_f cc_midpointbimap1bimapData.CG.Minus.Colourto_greyscale_c to_greyscalesrgb_components rgba_to_ca rgb_to_hsl rgb_to_cargb_to_c rgb24_to_c pureColourmk_grey hsl_to_rgbhsl_to_c hex_to_rgb24 ca_to_rgbaca_is_transparentc_to_rgbc_to_hsl