imagecreatefromxpm 


gd apg

CREATE a new image from file or URL from a XPM image.

Since PHP 5.3.19 this function is available on Windows™.





This function returns an image identifier representing the image obtained from the given filename.





This function returns FALSE on errors.

The GdImage, resource or object returned by this function allows the creation of other image formats from XPM format.



<?php

GdImage
|false imagecreatefromxpmstring $filename )


where,

$filename The path to an existing XPM image 

?>
 

  $filename   


The path or stream resource.

$filename can reference a local file or, (configuration permitting), a remote file using one of the supported stream wrappers:

STREAM WRAPPERS MEANING
file:// LOCAL File System
http:// URL HTTP
ftp:// URL FTP
php:// I/O streams
zlib:// Data Compression stream
data:// DATA (RFC-2397)
glob:// Find Filenames
phar:// PHP Archive
ssh2:// Secure Shell 2
rar:// RAR
ogg:// Audio
expect:// Interaction of stream processes
ed48


/* XPM */
static char * conv_test_xpm[] = {
"50 50 1535 2",
"      c None",
".     c #F81010",
"+     c #F71112",
"@     c #F51314",
"#     c #F31517",
"$     c #F01619",
"%     c #EE181C",
"&     c #EC191E",
"*     c #E91B21",
"=     c #E71D24",
"-     c #E41E26",
";     c #E22028",
">     c #E0212B",
",     c #DE232D",
"'     c #DB2430",
")     c #D92632",
"!     c #D62835",
"~     c #D42938",
"{     c #D22B3A",
"]     c #CF2C3D",
"^     c #CD2E3F",
"/     c #CB2F41",
"(     c #C93144",
"_     c #C63346",
":     c #C43449",
"<     c #C1364C",
"[     c #BF374E",
"}     c #BD3951",
"|     c #BB3B53",
"1     c #B83C55",
"2     c #B63E58",
"3     c #B43F5A",
"4     c #B1415D",
"5     c #AF4360",
"6     c #AC4462",
"7     c #AA4665",
"8     c #A84767",
"9     c #A6496A",
"0     c #A34A6C",
"a     c #A14C6E",
"b     c #9F4D71",
"c     c #9C4F74",
"d     c #9A5176",
"e     c #975279",
"f     c #95547B",
"g     c #93557E",
"h     c #F71212",
"i     c #F51315",
"j     c #F21517",
"k     c #F0161A",
"l     c #EB191E",
"m     c #E22029",
"n     c #DD232E",
"o     c #D92633",
"p     c #D42A38",
"q     c #CF2D3D",
"r     c #CD2F3F",
"s     c #CB3142",
"t     c #C83244",
"u     c #C63347",
"v     c #C43549",
"w     c #BF384E",
"x     c #BA3B53",
"y     c #B83C56",
"z     c #B33F5B",
"A     c #A5496A",
"B     c #A14C6F",
"C     c #9E4E71",
"D     c #93567E",
"E     c #905780",
"F     c #F41315",
"G     c #EB191F",
"H     c #E61D24",
"I     c #DB2530",
"J     c #D92733",
"K     c #D62936",
"L     c #D22C3A",
"M     c #D02E3D",
"N     c #CD303F",
"O     c #C93344",
"P     c #C73447",
"Q     c #C53649",
"R     c #C2384C",
"S     c #C0394F",
"T     c #BD3A51",
"U     c #BB3C53",
"V     c #B83D56",
"W     c #B63F58",
"X     c #B3405B",
"Y     c #AE4360",
"Z     c #AC4463",
"`     c #A74767",
" .    c #A34B6C",
"..    c #995177",
"+.    c #975379",
"@.    c #95547C",
"#.    c #8E5983",
"$.    c #F71213",
"%.    c #ED181C",
"&.    c #EB1A1F",
"*.    c #E91B22",
"=.    c #E41E27",
"-.    c #DF222C",
";.    c #DB2630",
">.    c #D82833",
",.    c #D42B38",
"'.    c #D22D3B",
").    c #D02F3D",
"!.    c #CE3040",
"~.    c #CB3242",
"{.    c #C93444",
"].    c #C73547",
"^.    c #C53749",
"/.    c #C03A4F",
"(.    c #BE3B51",
"_.    c #BB3D54",
":.    c #B93E56",
"<.    c #B64059",
"[.    c #B4415B",
"}.    c #B2425D",
"|.    c #AF4460",
"1.    c #AC4563",
"2.    c #A74868",
"3.    c #A34B6D",
"4.    c #A04C6F",
"5.    c #9E4E72",
"6.    c #9C5074",
"7.    c #92567E",
"8.    c #905781",
"9.    c #8B5B86",
"0.    c #F61213",
"a.    c #F21518",
"b.    c #F0171A",
"c.    c #ED181D",
"d.    c #E81B22",
"e.    c #E41F27",
"f.    c #E12029",
"g.    c #DD242E",
"h.    c #DB2631",
"i.    c #D62A36",
"j.    c #D42C38",
"k.    c #D22E3B",
"l.    c #D0303D",
"m.    c #CD3140",
"n.    c #CB3342",
"o.    c #C93545",
"p.    c #C73647",
"q.    c #C5384A",
"r.    c #C3394C",
"s.    c #C03B4F",
"t.    c #BE3D51",
"u.    c #BC3E54",
"v.    c #BA3F56",
"w.    c #B74159",
"x.    c #B5425B",
"y.    c #B2435E",
"z.    c #B04560",
"A.    c #AD4663",
"B.    c #AA4765",
"C.    c #A84868",
"D.    c #9B5075",
"E.    c #94547C",
"F.    c #905881",
"G.    c #895C88",
"H.    c #F81111",
"I.    c #F41415",
"J.    c #EF171A",
"K.    c #E81C22",
"L.    c #E61D25",
"M.    c #DA2731",
"N.    c #D92933",
"O.    c #D42D39",
"P.    c #D0303E",
"Q.    c #CD3240",
"R.    c #C33A4D",
"S.    c #BE3D52",
"T.    c #B94056",
"U.    c #B04561",
"V.    c #AE4763",
"W.    c #AB4866",
"X.    c #A94A68",
"Y.    c #A64B6B",
"Z.    c #A34C6D",
"`.    c #A14D6F",
" +    c #97537A",
".+    c #94557C",
"++    c #92567F",
"@+    c #8D5983",
"#+    c #865E8B",
"$+    c #F41416",
"%+    c #F11518",
"&+    c #EF171B",
"*+    c #E31F27",
"=+    c #E1202A",
"-+    c #DF232C",
";+    c #DC252F",
">+    c #D62B36",
",+    c #D22F3B",
"'+    c #CF303E",
")+    c #CB3343",
"!+    c #C73648",
"~+    c #C23A4D",
"{+    c #BB3E54",
"]+    c #B94057",
"^+    c #B5425C",
"/+    c #B2445E",
"(+    c #AC4866",
"_+    c #AA4A68",
":+    c #A74C6B",
"<+    c #A44D6D",
"[+    c #A24E70",
"}+    c #9F4F72",
"|+    c #9C5075",
"1+    c #995277",
"2+    c #96537A",
"3+    c #8D5984",
"4+    c #895C89",
"5+    c #84608E",
"6+    c #ED191D",
"7+    c #EA1A20",
"8+    c #E1212A",
"9+    c #D92934",
"0+    c #C83545",
"a+    c #B74259",
"b+    c #B4425C",
"c+    c #AE4764",
"d+    c #AC4966",
"e+    c #A54D6D",
"f+    c #A34F70",
"g+    c #A05072",
"h+    c #9D5275",
"i+    c #9A5378",
"j+    c #97547A",
"k+    c #8F5881",
"l+    c #885D89",
"m+    c #865E8C",
"n+    c #816191",
"o+    c #F11618",
"p+    c #EC191D",
"q+    c #E81C23",
"r+    c #E51E25",
"s+    c #E31F28",
"t+    c #D92A34",
"u+    c #D62C37",
"v+    c #D12F3C",
"w+    c #CD3241",
"x+    c #CA3343",
"y+    c #C73748",
"z+    c #C03B50",
"A+    c #BD3D52",
"B+    c #BB3F55",
"C+    c #B6425A",
"D+    c #B4435C",
"E+    c #AF4661",
"F+    c #AD4764",
"G+    c #A94A69",
"H+    c #A54D6E",
"I+    c #9E5275",
"J+    c #9B5478",
"K+    c #99557A",
"L+    c #96567D",
"M+    c #93577F",
"N+    c #905882",
"O+    c #8D5A84",
"P+    c #8B5B87",
"Q+    c #83608E",
"R+    c #816291",
"S+    c #7F6393",
"T+    c #E71C23",
"U+    c #DC262F",
"V+    c #DA2832",
"W+    c #D82A34",
"X+    c #D32D39",
"Y+    c #CA3443",
"Z+    c #C83546",
"`+    c #C4394B",
" @    c #C23B4E",
".@    c #C03D51",
"+@    c #BE3F54",
"@@    c #BC4157",
"#@    c #BA435A",
"$@    c #B7445C",
"%@    c #B5455F",
"&@    c #B24661",
"*@    c #B04763",
"=@    c #AE4865",
"-@    c #A24F70",
";@    c #A05173",
">@    c #97577D",
",@    c #94587F",
"'@    c #915982",
")@    c #8E5B84",
"!@    c #865F8C",
"~@    c #7C6596",
"{@    c #E51E26",
"]@    c #E0212A",
"^@    c #D32D3A",
"/@    c #CF313E",
"(@    c #CC3241",
"_@    c #C63749",
":@    c #C43A4D",
"<@    c #C23D50",
"[@    c #C03F53",
"}@    c #BE4157",
"|@    c #BC4359",
"1@    c #BA455C",
"2@    c #B8465F",
"3@    c #B64861",
"4@    c #B44964",
"5@    c #B14A66",
"6@    c #AF4B68",
"7@    c #AD4C6A",
"8@    c #AA4D6B",
"9@    c #A74E6D",
"0@    c #A54E6E",
"a@    c #9D5276",
"b@    c #99567B",
"c@    c #96577D",
"d@    c #945980",
"e@    c #925A82",
"f@    c #8F5C84",
"g@    c #8C5C87",
"h@    c #895E89",
"i@    c #83608F",
"j@    c #7E6394",
"k@    c #7A6698",
"l@    c #EA1B20",
"m@    c #E21F28",
"n@    c #DC2530",
"o@    c #D52C37",
"p@    c #D32E3A",
"q@    c #CE313F",
"r@    c #CA3444",
"s@    c #C83646",
"t@    c #C6394A",
"u@    c #C53B4E",
"v@    c #C33E52",
"w@    c #C14155",
"x@    c #BF4358",
"y@    c #BD455C",
"z@    c #BB475F",
"A@    c #B94961",
"B@    c #B74B64",
"C@    c #B54C66",
"D@    c #B34D68",
"E@    c #B04F6B",
"F@    c #AE4F6C",
"G@    c #AC506E",
"H@    c #A95170",
"I@    c #A65272",
"J@    c #A35273",
"K@    c #A05274",
"L@    c #9D5376",
"M@    c #905C85",
"N@    c #8E5E87",
"O@    c #8A5F8A",
"P@    c #87608C",
"Q@    c #84618F",
"R@    c #7E6494",
"S@    c #7A6799",
"T@    c #77689B",
"U@    c #D92832",
"V@    c #D82A35",
"W@    c #C83647",
"X@    c #C6394B",
"Y@    c #C53D4F",
"Z@    c #C33F53",
"`@    c #C14257",
" #    c #C0445A",
".#    c #BE475D",
"+#    c #BC4961",
"@#    c #BA4B63",
"##    c #B84D66",
"$#    c #B64F69",
"%#    c #B4506B",
"&#    c #B2526D",
"*#    c #AF536F",
"=#    c #AD5471",
"-#    c #AB5473",
";#    c #A85574",
">#    c #A55576",
",#    c #A25678",
"'#    c #9F5679",
")#    c #9C567A",
"!#    c #925B82",
"~#    c #8C5F8A",
"{#    c #88618D",
"]#    c #86628F",
"^#    c #826392",
"/#    c #7F6494",
"(#    c #796799",
"_#    c #756A9E",
":#    c #D72A35",
"<#    c #D52C38",
"[#    c #CC3342",
"}#    c #C83747",
"|#    c #C63A4B",
"1#    c #C53D50",
"2#    c #C34054",
"3#    c #C24358",
"4#    c #C0455B",
"5#    c #BE485F",
"6#    c #BC4B62",
"7#    c #BB4D65",
"8#    c #B94F68",
"9#    c #B7516B",
"0#    c #B5536E",
"a#    c #B35470",
"b#    c #B05672",
"c#    c #AE5774",
"d#    c #AD5876",
"e#    c #AA5878",
"f#    c #A75979",
"g#    c #A4597A",
"h#    c #A15A7C",
"i#    c #9E5A7D",
"j#    c #9B5A7E",
"k#    c #975A80",
"l#    c #945A81",
"m#    c #915B83",
"n#    c #8B5F8A",
"o#    c #89618D",
"p#    c #86638F",
"q#    c #846492",
"r#    c #806594",
"s#    c #7D6697",
"t#    c #77689C",
"u#    c #726CA1",
"v#    c #C63A4C",
"w#    c #C34154",
"x#    c #C0465C",
"y#    c #BE4960",
"z#    c #BD4C64",
"A#    c #BB4F67",
"B#    c #BA516A",
"C#    c #B8536D",
"D#    c #B65570",
"E#    c #B45772",
"F#    c #B25975",
"G#    c #B05A77",
"H#    c #AD5B79",
"I#    c #AC5C7B",
"J#    c #A95C7C",
"K#    c #A65D7E",
"L#    c #A35D7F",
"M#    c #A05D80",
"N#    c #9D5D81",
"O#    c #9A5D82",
"P#    c #965D83",
"Q#    c #935D85",
"R#    c #905D86",
"S#    c #8D5E88",
"T#    c #826694",
"U#    c #7E6797",
"V#    c #7B6899",
"W#    c #78699C",
"X#    c #706DA3",
"Y#    c #DF212B",
"Z#    c #D62935",
"`#    c #C43D50",
" $    c #C34155",
".$    c #C14459",
"+$    c #C0475D",
"@$    c #BF4A61",
"#$    c #BD4D65",
"$$    c #BC5068",
"%$    c #BA536C",
"&$    c #BA5870",
"*$    c #B95C75",
"=$    c #B85E79",
"-$    c #B6607B",
";$    c #B4617D",
">$    c #B2627F",
",$    c #B06380",
"'$    c #AD6280",
")$    c #A96080",
"!$    c #A56082",
"~$    c #A26183",
"{$    c #9F6184",
"]$    c #9C6185",
"^$    c #996186",
"/$    c #956187",
"($    c #926088",
"_$    c #8F6089",
":$    c #8B608B",
"<$    c #866390",
"[$    c #826695",
"}$    c #7F6897",
"|$    c #7D6999",
"1$    c #796A9C",
"2$    c #766B9E",
"3$    c #6F6EA4",
"4$    c #6D6FA6",
"5$    c #DB2531",
"6$    c #D82733",
"7$    c #CE3140",
"8$    c #C93445",
"9$    c #C5394B",
"0$    c #C14359",
"a$    c #BF4B61",
"b$    c #BD4E66",
"c$    c #BC5169",
"d$    c #BC566D",
"e$    c #BC5B74",
"f$    c #B95C77",
"g$    c #B85D78",
"h$    c #B65F79",
"i$    c #B4617C",
"j$    c #B2627E",
"k$    c #AE6483",
"l$    c #AC6686",
"m$    c #AB6888",
"n$    c #A76787",
"o$    c #A26487",
"p$    c #9E6488",
"q$    c #9B6489",
"r$    c #98648A",
"s$    c #94648B",
"t$    c #91638C",
"u$    c #8D638D",
"v$    c #8A638E",
"w$    c #846592",
"x$    c #816695",
"y$    c #7D699A",
"z$    c #7A6B9C",
"A$    c #776C9F",
"B$    c #746DA1",
"C$    c #706EA4",
"D$    c #6B71A9",
"E$    c #DA2531",
"F$    c #D82633",
"G$    c #C43C4F",
"H$    c #C24054",
"I$    c #C14358",
"J$    c #BE4A61",
"K$    c #BC516A",
"L$    c #BD586F",
"M$    c #BB5B76",
"N$    c #BA5C76",
"O$    c #B95F78",
"P$    c #B8617B",
"Q$    c #B6637E",
"R$    c #B56580",
"S$    c #B36783",
"T$    c #B16885",
"U$    c #AF6986",
"V$    c #AC6988",
"W$    c #A96989",
"X$    c #A66A8D",
"Y$    c #A56B8D",
"Z$    c #9E688C",
"`$    c #9A678D",
" %    c #96678E",
".%    c #93678F",
"+%    c #906690",
"@%    c #8C6691",
"#%    c #886692",
"$%    c #846593",
"%%    c #786C9F",
"&%    c #756EA2",
"*%    c #726FA4",
"=%    c #6E6FA7",
"-%    c #6872AB",
";%    c #D62836",
">%    c #D32B39",
",%    c #D02F3E",
"'%    c #C33B4E",
")%    c #C23F53",
"!%    c #C04358",
"~%    c #BF465C",
"{%    c #BA5D76",
"]%    c #B96079",
"^%    c #B9637D",
"/%    c #B96680",
"(%    c #B96883",
"_%    c #B86A86",
":%    c #B66C88",
"<%    c #B46D8A",
"[%    c #B06D8B",
"}%    c #AD6D8C",
"|%    c #AA6D8D",
"1%    c #A66D8E",
"2%    c #A26D91",
"3%    c #A06E92",
"4%    c #996A91",
"5%    c #956A91",
"6%    c #926992",
"7%    c #8F6993",
"8%    c #8B6994",
"9%    c #876895",
"0%    c #826896",
"a%    c #7F6898",
"b%    c #7C699A",
"c%    c #7A6B9D",
"d%    c #786D9F",
"e%    c #766EA2",
"f%    c #7370A4",
"g%    c #7070A7",
"h%    c #6C71A9",
"i%    c #6873AC",
"j%    c #6674AE",
"k%    c #D32A39",
"l%    c #D12D3B",
"m%    c #CF2F3E",
"n%    c #C13E52",
"o%    c #C04256",
"p%    c #BE455B",
"q%    c #BD4960",
"r%    c #BC4D65",
"s%    c #BB5069",
"t%    c #BB566E",
"u%    c #BA6079",
"v%    c #BA647E",
"w%    c #BB6882",
"x%    c #BD6B86",
"y%    c #BD6E89",
"z%    c #BE708C",
"A%    c #BC718E",
"B%    c #B9728F",
"C%    c #B57290",
"D%    c #B07191",
"E%    c #AC7191",
"F%    c #A67092",
"G%    c #A26F93",
"H%    c #9E7096",
"I%    c #9B7095",
"J%    c #946D95",
"K%    c #916C96",
"L%    c #8D6C96",
"M%    c #896B97",
"N%    c #856B98",
"O%    c #816A99",
"P%    c #7D6A9B",
"Q%    c #766FA2",
"R%    c #7470A4",
"S%    c #7172A7",
"T%    c #6E72A9",
"U%    c #6A73AC",
"V%    c #6376B1",
"W%    c #D02C3B",
"X%    c #CF2E3E",
"Y%    c #C03C50",
"Z%    c #BF4055",
"`%    c #BE445A",
" &    c #BC485F",
".&    c #BB4C63",
"+&    c #BA4F68",
"@&    c #BA536D",
"#&    c #BB5C75",
"$&    c #B95C76",
"%&    c #B9607A",
"&&    c #BC6882",
"*&    c #BF6C87",
"=&    c #C1708B",
"-&    c #C5778F",
";&    c #C97D92",
">&    c #C77F94",
",&    c #C27C95",
"'&    c #BB7896",
")&    c #B47696",
"!&    c #AE7596",
"~&    c #A87496",
"{&    c #A27396",
"]&    c #9D7297",
"^&    c #9B739A",
"/&    c #947098",
"(&    c #906F99",
"_&    c #8C6E9A",
":&    c #886E9B",
"<&    c #836D9B",
"[&    c #7F6D9C",
"}&    c #7B6C9D",
"|&    c #776D9F",
"1&    c #7470A5",
"2&    c #6F73AA",
"3&    c #6C74AC",
"4&    c #6875AE",
"5&    c #6476B1",
"6&    c #6178B3",
"7&    c #D02C3C",
"8&    c #CE2E3E",
"9&    c #CC3041",
"0&    c #C4384A",
"a&    c #BD4259",
"b&    c #BB465E",
"c&    c #BA4A62",
"d&    c #B94E67",
"e&    c #B8526B",
"f&    c #B95870",
"g&    c #B95D78",
"h&    c #B85F79",
"i&    c #C3738C",
"j&    c #CD8091",
"k&    c #D18695",
"l&    c #D18998",
"m&    c #D08A9B",
"n&    c #CE8A9B",
"o&    c #C9879B",
"p&    c #BB7D9B",
"q&    c #B1799A",
"r&    c #AA779A",
"s&    c #A37699",
"t&    c #9C759A",
"u&    c #98749C",
"v&    c #95759C",
"w&    c #8E719C",
"x&    c #8A709D",
"y&    c #86709E",
"z&    c #826F9F",
"A&    c #7D6FA0",
"B&    c #796FA1",
"C&    c #7370A5",
"D&    c #6C75AC",
"E&    c #6A76AF",
"F&    c #6677B1",
"G&    c #6278B4",
"H&    c #5E79B6",
"I&    c #CE2D3E",
"J&    c #CA3243",
"K&    c #C83446",
"L&    c #C4384B",
"M&    c #BF3C50",
"N&    c #BB4157",
"O&    c #BA445C",
"P&    c #B94861",
"Q&    c #B84C65",
"R&    c #B7506A",
"S&    c #B7546F",
"T&    c #B85D76",
"U&    c #B65E79",
"V&    c #B7627C",
"W&    c #B96681",
"X&    c #BC6B86",
"Y&    c #C1718B",
"Z&    c #D28897",
"`&    c #D991A0",
" *    c #DE98A9",
".*    c #DE9AAB",
"+*    c #D895A6",
"@*    c #CE8EA1",
"#*    c #C88A9F",
"$*    c #B57E9E",
"%*    c #AC7A9D",
"&*    c #A3789D",
"**    c #9C779D",
"=*    c #96769E",
"-*    c #9578A1",
";*    c #8D739F",
">*    c #8873A0",
",*    c #8472A0",
"'*    c #8072A2",
")*    c #7B71A3",
"!*    c #7771A4",
"~*    c #6F74AA",
"{*    c #6A77AF",
"]*    c #6778B1",
"^*    c #6379B4",
"/*    c #607AB7",
"(*    c #5C7BB9",
"_*    c #C93143",
":*    c #C63648",
"<*    c #BD3D53",
"[*    c #B9425A",
"}*    c #B74A63",
"|*    c #B64E68",
"1*    c #B5526D",
"2*    c #B55672",
"3*    c #B75F7A",
"4*    c #B5607B",
"5*    c #B6647F",
"6*    c #B86984",
"7*    c #C5788F",
"8*    c #E4A1B2",
"9*    c #ECB7C4",
"0*    c #ECBAC7",
"a*    c #E4A8BA",
"b*    c #D898AB",
"c*    c #CB8EA3",
"d*    c #BC86A2",
"e*    c #AD7DA1",
"f*    c #A47BA0",
"g*    c #9B79A0",
"h*    c #9578A0",
"i*    c #9379A4",
"j*    c #8C76A2",
"k*    c #8675A3",
"l*    c #8274A3",
"m*    c #7E73A4",
"n*    c #7973A5",
"o*    c #7573A6",
"p*    c #7172A8",
"q*    c #6E74AA",
"r*    c #6C75AD",
"s*    c #6878B2",
"t*    c #6579B4",
"u*    c #617BB7",
"v*    c #5D7BB9",
"w*    c #597DBC",
"x*    c #C73346",
"y*    c #C3384B",
"z*    c #C23A4E",
"A*    c #BA3F55",
"B*    c #B84158",
"C*    c #B7445D",
"D*    c #B64862",
"E*    c #B35874",
"F*    c #B5617C",
"G*    c #B3627D",
"H*    c #B46682",
"I*    c #B76B87",
"J*    c #BD708C",
"K*    c #C87E93",
"L*    c #D18999",
"M*    c #F9E0E6",
"N*    c #FAE6EB",
"O*    c #EEC2CE",
"P*    c #DDA1B5",
"Q*    c #CC91A8",
"R*    c #C18BA5",
"S*    c #AE7FA3",
"T*    c #A37DA2",
"U*    c #9A7BA2",
"V*    c #937AA3",
"W*    c #917BA6",
"X*    c #8B78A4",
"Y*    c #8476A5",
"Z*    c #8076A6",
"`*    c #7C75A7",
" =    c #7775A8",
".=    c #7375A9",
"+=    c #6778B2",
"@=    c #657AB4",
"#=    c #627BB7",
"$=    c #5F7CB9",
"%=    c #5B7DBC",
"&=    c #577EBE",
"*=    c #C3374B",
"==    c #C13A4E",
"-=    c #BF3C51",
";=    c #BD3E53",
">=    c #B6425B",
",=    c #B4465F",
"'=    c #B34A64",
")=    c #B24E69",
"!=    c #B2526E",
"~=    c #B15672",
"{=    c #B15A77",
"]=    c #B3627F",
"^=    c #B16380",
"/=    c #B26784",
"(=    c #B66D89",
"_=    c #BB728F",
":=    c #C77F95",
"<=    c #D08B9B",
"[=    c #FBEBF0",
"}=    c #EEC6D1",
"|=    c #DDA2B7",
"1=    c #CC93AA",
"2=    c #BF8CA7",
"3=    c #AC81A6",
"4=    c #A17FA5",
"5=    c #987DA5",
"6=    c #927BA5",
"7=    c #8F7CA8",
"8=    c #8879A7",
"9=    c #8278A8",
"0=    c #7E78A9",
"a=    c #7977AA",
"b=    c #7576AB",
"c=    c #7176AC",
"d=    c #6C76AD",
"e=    c #6977AF",
"f=    c #6779B2",
"g=    c #627CB7",
"h=    c #607DBA",
"i=    c #5C7EBC",
"j=    c #587FBF",
"k=    c #5580C1",
"l=    c #C2364B",
"m=    c #C0394E",
"n=    c #BF3B51",
"o=    c #BC3E53",
"p=    c #B3435D",
"q=    c #B24762",
"r=    c #B14B66",
"s=    c #AF5370",
"t=    c #AE5775",
"u=    c #AE5B79",
"v=    c #B16381",
"w=    c #AF6482",
"x=    c #B06986",
"y=    c #B36D8B",
"z=    c #B87290",
"A=    c #C17D96",
"B=    c #CE8A9C",
"C=    c #D895A7",
"D=    c #E5AFC2",
"E=    c #D79DB2",
"F=    c #C891AA",
"G=    c #BA8AA8",
"H=    c #A981A7",
"I=    c #9F80A7",
"J=    c #967EA7",
"K=    c #907DA8",
"L=    c #8D7EAB",
"M=    c #857AA9",
"N=    c #8079AA",
"O=    c #7B79AB",
"P=    c #7778AC",
"Q=    c #7378AD",
"R=    c #6E78AE",
"S=    c #6A77B0",
"T=    c #657AB5",
"U=    c #607EBA",
"V=    c #5D7EBC",
"W=    c #5A80BF",
"X=    c #5681C1",
"Y=    c #5282C4",
"Z=    c #BC3D53",
"`=    c #B14560",
" -    c #AF4864",
".-    c #AE4C69",
"+-    c #AE506D",
"@-    c #AD5472",
"#-    c #AD5877",
"$-    c #AD6585",
"%-    c #AD6988",
"&-    c #AF6E8C",
"*-    c #B37391",
"=-    c #BA7896",
"--    c #C8889C",
";-    c #CE8EA2",
">-    c #DDA3B7",
",-    c #CC95AC",
"'-    c #C390AA",
")-    c #AF84A9",
"!-    c #A481A8",
"~-    c #9A80A8",
"{-    c #937FA9",
"]-    c #8D7DAA",
"^-    c #8B7FAD",
"/-    c #827BAB",
"(-    c #7D7BAC",
"_-    c #787AAD",
":-    c #757AAE",
"<-    c #7079B0",
"[-    c #6C79B1",
"}-    c #647AB5",
"|-    c #627CB8",
"1-    c #5D7FBD",
"2-    c #5B80BF",
"3-    c #5781C1",
"4-    c #5382C4",
"5-    c #5083C6",
"6-    c #BC3A51",
"7-    c #BB3C54",
"8-    c #BA3E56",
"9-    c #B74158",
"0-    c #AE4662",
"a-    c #AD4966",
"b-    c #AC4E6B",
"c-    c #AC5270",
"d-    c #AB5574",
"e-    c #AA5979",
"f-    c #AA5D7D",
"g-    c #AB6482",
"h-    c #AB6788",
"i-    c #AB6A89",
"j-    c #AC6E8E",
"k-    c #AF7292",
"l-    c #B37797",
"m-    c #BA7E9C",
"n-    c #C78AA0",
"o-    c #CB8EA4",
"p-    c #CC92A8",
"q-    c #C892AA",
"r-    c #B387AA",
"s-    c #A882AA",
"t-    c #9E81AA",
"u-    c #9580AA",
"v-    c #8F7FAA",
"w-    c #8A7EAC",
"x-    c #8880AD",
"y-    c #7E7CAD",
"z-    c #7A7CAE",
"A-    c #767BB0",
"B-    c #727BB1",
"C-    c #6D7BB2",
"D-    c #697BB3",
"E-    c #647BB5",
"F-    c #5F7EBA",
"G-    c #5B81BF",
"H-    c #5882C2",
"I-    c #5583C4",
"J-    c #5184C7",
"K-    c #4D85C9",
"L-    c #BC3951",
"M-    c #BA3B54",
"N-    c #B74059",
"O-    c #B3435E",
"P-    c #AE4663",
"Q-    c #AC4865",
"R-    c #AB4B68",
"S-    c #AA4F6D",
"T-    c #A95372",
"U-    c #A85676",
"V-    c #A75A7B",
"W-    c #A75E7F",
"X-    c #A76283",
"Y-    c #A96A8A",
"Z-    c #A76A8B",
"`-    c #A86E8F",
" ;    c #AA7293",
".;    c #AD7697",
"+;    c #B07A9B",
"@;    c #B57F9F",
"#;    c #BC87A3",
"$;    c #C08BA5",
"%;    c #BA8AA9",
"&;    c #A782AA",
"*;    c #9F81AA",
"=;    c #9781AB",
"-;    c #9180AB",
";;    c #8B80AC",
">;    c #8981AF",
",;    c #827EAE",
"';    c #7B7DAF",
");    c #777DB0",
"!;    c #737CB2",
"~;    c #6F7CB3",
"{;    c #6A7CB4",
"];    c #667CB6",
"^;    c #5D80BD",
"/;    c #5982C2",
"(;    c #5683C4",
"_;    c #5284C7",
":;    c #4E85C9",
"<;    c #4A87CC",
"[;    c #B73D56",
"};    c #B63F59",
"|;    c #B4425B",
"1;    c #A84C6B",
"2;    c #A7506F",
"3;    c #A65373",
"4;    c #A55778",
"5;    c #A45B7C",
"6;    c #A45E80",
"7;    c #A36285",
"8;    c #A56889",
"9;    c #A56B8F",
"0;    c #A46E90",
"a;    c #A57193",
"b;    c #A77597",
"c;    c #A9789B",
"d;    c #AB7B9F",
"e;    c #AD7EA2",
"f;    c #AD80A4",
"g;    c #AC81A7",
"h;    c #A981A8",
"i;    c #A481A9",
"j;    c #9D81AA",
"k;    c #9281AC",
"l;    c #8C80AD",
"m;    c #8880AF",
"n;    c #8681B0",
"o;    c #7C7EB0",
"p;    c #787EB1",
"q;    c #747EB2",
"r;    c #707DB4",
"s;    c #6C7DB5",
"t;    c #677DB7",
"u;    c #627DB8",
"v;    c #5F7EBB",
"w;    c #5B81C0",
"x;    c #5385C7",
"y;    c #4F86C9",
"z;    c #4B87CC",
"A;    c #4789CF",
"B;    c #B73D57",
"C;    c #B53E59",
"D;    c #B3415C",
"E;    c #B1435E",
"F;    c #A45071",
"G;    c #A35475",
"H;    c #A25879",
"I;    c #A15B7E",
"J;    c #A05F82",
"K;    c #A06286",
"L;    c #9F668A",
"M;    c #A26D8F",
"N;    c #A06E93",
"O;    c #A07195",
"P;    c #A07498",
"Q;    c #A1779B",
"R;    c #A2799E",
"S;    c #A37CA1",
"T;    c #A27EA4",
"U;    c #A17FA6",
"V;    c #9E80A8",
"W;    c #9981A9",
"X;    c #9181AC",
"Y;    c #8782B1",
"Z;    c #7E7FB1",
"`;    c #797FB2",
" >    c #757FB3",
".>    c #717EB5",
"+>    c #6D7EB6",
"@>    c #687EB7",
"#>    c #647EB9",
"$>    c #5783C5",
"%>    c #5485C7",
"&>    c #5087CA",
"*>    c #4C87CC",
"=>    c #4889CF",
"->    c #458AD1",
";>    c #B53F59",
">>    c #B2405C",
",>    c #B0425E",
"'>    c #AF4461",
")>    c #A15173",
"!>    c #A05577",
"~>    c #9F587B",
"{>    c #9E5C7F",
"]>    c #9D5F83",
"^>    c #9D6387",
"/>    c #9C668B",
"(>    c #9C698F",
"_>    c #9E7094",
":>    c #9C7198",
"<>    c #9B7399",
"[>    c #9B769C",
"}>    c #9B789F",
"|>    c #9A7AA1",
"1>    c #997CA4",
"2>    c #977DA6",
"3>    c #957FA8",
"4>    c #927FAA",
"5>    c #8F80AB",
"6>    c #8B80AD",
"7>    c #8880B0",
"8>    c #8682B1",
"9>    c #7E80B1",
"0>    c #767FB4",
"a>    c #727FB5",
"b>    c #6D7FB6",
"c>    c #697FB8",
"d>    c #647FBA",
"e>    c #607FBB",
"f>    c #5C80BD",
"g>    c #5784C5",
"h>    c #5187CA",
"i>    c #4D88CC",
"j>    c #4989CF",
"k>    c #458BD2",
"l>    c #428CD4",
"m>    c #AE4461",
"n>    c #AC4663",
"o>    c #9C5579",
"p>    c #9C597D",
"q>    c #9B5C81",
"r>    c #9A5F85",
"s>    c #996389",
"t>    c #98668C",
"u>    c #976990",
"v>    c #976C93",
"w>    c #997197",
"x>    c #99759C",
"y>    c #96759E",
"z>    c #9577A0",
"A>    c #9379A2",
"B>    c #917CA7",
"C>    c #8F7DA9",
"D>    c #8C7EAA",
"E>    c #897FAD",
"F>    c #8881B0",
"G>    c #8582B1",
"H>    c #7D7FB1",
"I>    c #797FB3",
"J>    c #757FB4",
"K>    c #6E80B7",
"L>    c #6A7FB8",
"M>    c #6580BA",
"N>    c #6180BC",
"O>    c #5D80BE",
"P>    c #5982C3",
"Q>    c #5684C5",
"R>    c #5485C8",
"S>    c #4E88CC",
"T>    c #4A8ACF",
"U>    c #468BD2",
"V>    c #408ED7",
"W>    c #B0425F",
"X>    c #AD4361",
"Y>    c #AB4564",
"Z>    c #A94766",
"`>    c #A84969",
" ,    c #A64C6B",
".,    c #99567A",
"+,    c #98597E",
"@,    c #975C82",
"#,    c #966086",
"$,    c #95638A",
"%,    c #94668E",
"&,    c #946991",
"*,    c #936C94",
"=,    c #926E98",
"-,    c #92719A",
";,    c #94769E",
">,    c #9479A2",
",,    c #927AA5",
"',    c #8E7DAA",
"),    c #8C7FAC",
"!,    c #8A80AE",
"~,    c #8780AE",
"{,    c #817FAF",
"],    c #7C7EB1",
"^,    c #787FB2",
"/,    c #727FB6",
"(,    c #6A80B9",
"_,    c #6680BA",
":,    c #5882C3",
"<,    c #5287CA",
"[,    c #4E88CD",
"},    c #4B8ACF",
"|,    c #478BD2",
"1,    c #438CD4",
"2,    c #3D8FD9",
"3,    c #AD4461",
"4,    c #A74969",
"5,    c #A54B6B",
"6,    c #A44D6E",
"7,    c #955980",
"8,    c #945D84",
"9,    c #936087",
"0,    c #92638B",
"a,    c #91668F",
"b,    c #906992",
"c,    c #906C96",
"d,    c #8F6E99",
"e,    c #8D709C",
"f,    c #8C739E",
"g,    c #8B75A1",
"h,    c #8A77A4",
"i,    c #8979A6",
"j,    c #877AA8",
"k,    c #847BAB",
"l,    c #807CAD",
"m,    c #7D7DAF",
"n,    c #7A7EB1",
"o,    c #777EB2",
"p,    c #717FB5",
"q,    c #6D80B7",
"r,    c #6580BB",
"s,    c #6181BC",
"t,    c #5D81BE",
"u,    c #5A81C1",
"v,    c #4F89CD",
"w,    c #4B8AD0",
"x,    c #488BD2",
"y,    c #438CD5",
"z,    c #3D90D9",
"A,    c #3B91DC",
"B,    c #A64969",
"C,    c #A44A6C",
"D,    c #A24C6E",
"E,    c #A14E71",
"F,    c #9F5173",
"G,    c #905D85",
"H,    c #906089",
"I,    c #8F638C",
"J,    c #8E6690",
"K,    c #8D6893",
"L,    c #8C6B97",
"M,    c #8A6E9A",
"N,    c #89709D",
"O,    c #8872A0",
"P,    c #8674A2",
"Q,    c #8278A7",
"R,    c #8079A9",
"S,    c #7E7BAC",
"T,    c #7B7CAE",
"U,    c #797DB0",
"V,    c #767EB2",
"W,    c #747EB4",
"X,    c #707FB6",
"Y,    c #6980B9",
"Z,    c #5684C6",
"`,    c #5386C8",
" '    c #5187CB",
".'    c #4C8AD0",
"+'    c #488CD2",
"@'    c #448DD5",
"#'    c #3D90DA",
"$'    c #3B91DD",
"%'    c #9E5073",
"&'    c #9C5276",
"*'    c #98567B",
"='    c #8C608A",
"-'    c #8B638E",
";'    c #8A6691",
">'    c #896894",
",'    c #876B98",
"''    c #866D9B",
")'    c #85709E",
"!'    c #8372A1",
"~'    c #7E77A8",
"{'    c #7C79AB",
"]'    c #797AAD",
"^'    c #777BAF",
"/'    c #757CB1",
"('    c #727DB3",
"_'    c #6F7EB5",
":'    c #6C7FB7",
"<'    c #6880B9",
"['    c #6181BD",
"}'    c #5883C3",
"|'    c #4C8BD0",
"1'    c #488CD3",
"2'    c #458DD5",
"3'    c #418ED7",
"4'    c #9C4F73",
"5'    c #9B5176",
"6'    c #995378",
"7'    c #98557B",
"8'    c #96577E",
"9'    c #925B83",
"0'    c #89618C",
"a'    c #87638F",
"b'    c #866692",
"c'    c #846896",
"d'    c #836B99",
"e'    c #826D9C",
"f'    c #806F9F",
"g'    c #7F72A2",
"h'    c #7D73A4",
"i'    c #7B75A7",
"j'    c #737BB1",
"k'    c #707CB3",
"l'    c #6D7DB5",
"m'    c #6A7EB7",
"n'    c #677FB8",
"o'    c #6380BB",
"p'    c #6080BD",
"q'    c #5C81BF",
"r'    c #5883C4",
"s'    c #5584C6",
"t'    c #498CD3",
"u'    c #458ED5",
"v'    c #418ED8",
"w'    c #985279",
"x'    c #96547B",
"y'    c #95577E",
"z'    c #935980",
"A'    c #8E5E88",
"B'    c #806897",
"C'    c #7F6A9A",
"D'    c #7D6D9D",
"E'    c #7C6FA0",
"F'    c #7A71A3",
"G'    c #7873A6",
"H'    c #7577AB",
"I'    c #717AB0",
"J'    c #6E7BB2",
"K'    c #6B7CB4",
"L'    c #697DB6",
"M'    c #657EB8",
"N'    c #627FBA",
"O'    c #5F80BC",
"P'    c #5386C9",
"Q'    c #5188CB",
"R'    c #4E89CE",
"S'    c #418FD8",
"T'    c #3E90DA",
"U'    c #925880",
"V'    c #905A83",
"W'    c #8F5C85",
"X'    c #8B608A",
"Y'    c #7B6B9C",
"Z'    c #796D9F",
"`'    c #776FA1",
" )    c #7671A4",
".)    c #7573A7",
"+)    c #7375AA",
"@)    c #6E78AF",
"#)    c #647DB8",
"$)    c #5E7FBD",
"%)    c #5A81C2",
"&)    c #5783C4",
"*)    c #5585C6",
"=)    c #5088CB",
"-)    c #4C8BD1",
";)    c #498DD3",
">)    c #458ED6",
",)    c #8D5B86",
"')    c #8B5D88",
"))    c #766EA1",
"!)    c #756FA3",
"~)    c #7271A6",
"{)    c #7073A9",
"])    c #6E75AB",
"^)    c #6C76AE",
"/)    c #6978B0",
"()    c #6779B3",
"_)    c #5585C7",
":)    c #5088CC",
"<)    c #4B8BD1",
"[)    c #488DD3",
"})    c #3E90DB",
"|)    c #8A5C88",
"1)    c #885E8B",
"2)    c #86608D",
"3)    c #856290",
"4)    c #836492",
"5)    c #6D74AB",
"6)    c #6B76AE",
"7)    c #6679B3",
"8)    c #5286C9",
"9)    c #875E8B",
"0)    c #855F8D",
"a)    c #836290",
"b)    c #826493",
"c)    c #806595",
"d)    c #7E6898",
"e)    c #7271A7",
"f)    c #6F73A9",
"g)    c #6D75AC",
"h)    c #6878B1",
"i)    c #4D8ACE",
"j)    c #4A8BD1",
"k)    c #478DD4",
"l)    c #448ED6",
"m)    c #418FD9",
"n)    c #3D91DB",
"o)    c #826190",
"p)    c #806393",
"q)    c #7E6595",
"r)    c #7C6798",
"s)    c #7B699A",
"t)    c #796A9D",
"u)    c #647BB6",
"v)    c #617CB8",
"w)    c #4F88CC",
"x)    c #4D8ACF",
"y)    c #438ED6",
"z)    c #408FD9",
"A)    c #7D6595",
"B)    c #79689A",
"C)    c #776A9D",
"D)    c #766C9F",
"E)    c #746DA2",
"F)    c #7071A7",
"G)    c #6E73AA",
"H)    c #6A76AE",
"I)    c #617DB8",
"J)    c #5C80BE",
"K)    c #4C8ACF",
"L)    c #498BD2",
"M)    c #468DD4",
"N)    c #438ED7",
"O)    c #3F8FD9",
"P)    c #3C91DB",
"Q)    c #91567F",
"R)    c #8F5882",
"S)    c #816190",
"T)    c #7D6596",
"U)    c #78689B",
"V)    c #76699D",
"W)    c #746BA0",
"X)    c #726CA2",
"Y)    c #706FA4",
"Z)    c #6E71A7",
"`)    c #6D72AA",
" !    c #6B74AC",
".!    c #6976AF",
"+!    c #6777B1",
"@!    c #637BB6",
"#!    c #5E7EBB",
"$!    c #5C7FBE",
"%!    c #5A81C0",
"&!    c #5584C5",
"*!    c #5385C8",
"=!    c #4D88CD",
"-!    c #458CD4",
";!    c #3C91DC",
">!    c #8A5B87",
",!    c #75699D",
"'!    c #736BA0",
")!    c #716DA2",
"!!    c #6F6EA5",
"~!    c #6C70A7",
"{!    c #6B71AA",
"]!    c #6973AC",
"^!    c #6775AF",
"/!    c #6577B1",
"(!    c #617AB6",
"_!    c #5D7EBB",
":!    c #5B7FBE",
"<!    c #5981C0",
"[!    c #5682C3",
"}!    c #5484C5",
"|!    c #5185C8",
"1!    c #4F87CA",
"2!    c #4C88CD",
"3!    c #3E90D9",
"4!    c #8C5A84",
"5!    c #7A6699",
"6!    c #756A9D",
"7!    c #6E6EA5",
"8!    c #6C70A8",
"9!    c #6972AA",
"0!    c #6773AD",
"a!    c #6575AF",
"b!    c #6178B4",
"c!    c #5F79B6",
"d!    c #597EBE",
"e!    c #5780C1",
"f!    c #5482C3",
"g!    c #5283C6",
"h!    c #5085C8",
"i!    c #4D86CA",
"j!    c #4B88CD",
"k!    c #428DD5",
"l!    c #8A5C87",
"m!    c #885D8A",
"n!    c #855F8C",
"o!    c #6276B2",
"p!    c #6078B4",
"q!    c #5E7AB7",
"r!    c #5282C3",
"s!    c #4E85C8",
"t!    c #4C86CB",
"u!    c #4988CD",
"v!    c #4789D0",
"w!    c #448BD2",
"x!    c #3F8ED7",
". . . . . . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g ",
". . . . . h i j k % l * = - m > n ' o ! p { q r s t u v < w } x y 2 z 4 5 6 7 8 A 0 B C c d e f D E ",
". . . . h F j k % G * H - m > n I J K p L M N s O P Q R S T U V W X 4 Y Z 7 ` A  .B C c ..+.@.D E #.",
". . . $.F j k %.&.*.H =.m -.n ;.>.K ,.'.).!.~.{.].^.R /.(._.:.<.[.}.|.1.7 2.A 3.4.5.6...+.@.7.8.#.9.",
". . 0.F a.b.c.&.d.H e.f.-.g.h.>.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.A 3.4.5.D...+.E.7.F.#.9.G.",
"H.0.I.a.J.c.&.K.L.e.f.-.g.M.N.i.O.k.P.Q.n.o.p.q.R.s.S.u.T.w.x.y.U.V.W.X.Y.Z.`.5.D... +.+++F.@+9.G.#+",
"0.$+%+&+c.&.K.L.*+=+-+;+M.N.>+O.,+'+Q.)+o.!+q.~+s.S.{+]+w.^+/+U.V.(+_+:+<+[+}+|+1+2+.+++F.3+9.4+#+5+",
"$+%+&+6+7+K.L.*+8+-+;+M.9+>+O.,+'+Q.)+0+!+q.~+s.S.{+]+a+b+/+U.c+d+_+:+e+f+g+h+i+j+.+++k+3+9.l+m+5+n+",
"o+&+p+7+q+r+s+8+, ;+M.t+u+O.v+'+w+x+0+y+q.~+z+A+B+]+C+D+/+E+F+d+G+:+H+f+g+I+J+K+L+M+N+O+P+l+m+Q+R+S+",
"&+& 7+T+r+s+8+, U+V+W+u+X+v+'+w+Y+Z+y+`+ @.@+@@@#@$@%@&@*@=@d+G+:+H+-@;@h+J+K+>@,@'@)@P+l+!@Q+R+S+~@",
"& 7+T+{@s+]@, ;+V+W+u+^@v+/@(@Y+Z+_@:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@-@;@a@J+b@c@d@e@f@g@h@!@i@R+j@~@k@",
"l@T+{@m@> , n@V+W+o@p@v+q@(@r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@I@J@K@L@J+b@c@d@e@M@N@O@P@Q@R+R@~@S@T@",
"T+{@; > , I U@V@o@p@v+q@(@r@W@X@Y@Z@`@ #.#+#@###$#%#&#*#=#-#;#>#,#'#)#b@c@d@!#M@N@~#{#]#^#/#~@(#T@_#",
"- m > , I U@:#<#p@).q@[#r@}#|#1#2#3#4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#M@N@n#o#p#q#r#s#(#t#_#u#",
"m > n I J :#<#p@l.q@[#{.W@v#1#w#3#x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#n#o#p#q#T#U#V#W#_#u#X#",
"Y#n I J Z#<#k.l.q@n.{.W@v#`# $.$+$@$#$$$%$&$*$=$-$;$>$,$'$)$!$~${$]$^$/$($_$:${#<$q#[$}$|$1$2$u#3$4$",
"n 5$6$Z#,.k.l.7$n.8$p.9$`#w#0$+$a$b$c$d$e$f$g$h$i$j$,$k$l$m$n$o$p$q$r$s$t$u$v$<$w$x$}$y$z$A$B$C$4$D$",
"E$F$K ,.'.l.m.n.o.p.q.G$H$I$+$J$b$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ %.%+%@%#%$%x$}$y$z$%%&%*%=%D$-%",
"6$;%>%'.,%Q.)+o.p.q.'%)%!%~%J$#$c$L$M${%]%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%c%d%e%f%g%h%i%j%",
";%k%l%m%m.)+o.!+q.R.n%o%p%q%r%s%t%M${%u%v%w%x%y%z%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%c%d%Q%R%S%T%U%j%V%",
"k%W%X%m.)+0+!+q.~+Y%Z%`% &.&+&@&#&$&%&v%&&*&=&-&;&>&,&'&)&!&~&{&]&^&/&(&_&:&<&[&}&|&Q%1&S%2&3&4&5&6&",
"7&8&9&x+Z+y+0&~+z++@a&b&c&d&e&f&g&h&^%w%*&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y&z&A&B&Q%C&S%2&D&E&F&G&H&",
"I&9&J&K&y+L&~+M&A+N&O&P&Q&R&S&T&U&V&W&X&Y&j&Z&`& *.*+*@*#*$*%*&***=*-*;*>*,*'*)*!*1&S%~*D&{*]*^*/*(*",
"/ _*K&:*L&~+M&<*B+[*2@}*|*1*2*3*4*5*6*y%7*k&`&8*9*0*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*{*s*t*u*v*w*",
"( x*Q y*z*M&<*A*B*C*D*C@%#a#E*F*G*H*I*J*K*L* *9*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*`* =.=~*r*{*+=@=#=$=%=&=",
"_ v *===-=;=A*B*>=,='=)=!=~={=]=^=/=(=_=:=<=.*0*N*[=}=|=1=2=3=4=5=6=7=8=9=0=a=b=c=d=e=f=@=g=h=i=j=k=",
": l=m=n=o=v.B*>=p=q=r=E@s=t=u=v=w=x=y=z=A=B=C=a*O*}=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=f=T=g=U=V=W=X=Y=",
"< w (.Z=v.B*x.p=`= -.-+-@-#-I#w=$-%-&-*-=---;-b*P*>-E=,-'-)-!-~-{-]-^-/-(-_-:-<-[-f=}-|-U=1-2-3-4-5-",
"w 6-7-8-9-x.p=`=0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-1=q-'-r-s-t-u-v-w-x-y-z-A-B-C-D-E-|-F-1-G-H-I-J-K-",
"L-M-:.N-x.O-z.P-Q-R-S-T-U-V-W-X-Y-Z-`- ;.;+;@;#;$;2=%;)-&;*;=;-;;;>;,;';);!;~;{;];|-F-^;G-/;(;_;:;<;",
"M-[;};|;O-z.P-(+_+1;2;3;4;5;6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;=;k;l;m;n;o;p;q;r;s;t;u;v;^;w;/;(;x;y;z;A;",
"B;C;D;E;z.V.(+_+1;e+F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;u-X;l;m;Y;Z;`; >.>+>@>#>v;^;w;/;$>%>&>*>=>->",
";>>>,>'>V.d+_+:+e+f+)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>`;0>a>b>c>d>e>f>w;/;g>%>h>i>j>k>l>",
">>,>m>n>W.G+:+e+f+g+I+o>p>q>r>s>t>u>v>w>x>y>z>A>6=B>C>D>E>F>G>H>I>J>a>K>L>M>N>O>w;P>Q>R>h>S>T>U>l>V>",
"W>X>Y>Z>`> ,H+-@;@I+J+.,+,@,#,$,%,&,*,=,-,;,>,,,7=',),!,~,{,],^,J>/,K>(,_,N>O>w;:,Q>R><,[,},|,1,V>2,",
"3,Y>8 4,5,6,-@;@I+J+b@c@7,8,9,0,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,J>p,q,(,r,s,t,u,:,Q>R>h>v,w,x,y,V>z,A,",
"Y>8 B,C,D,E,F,h+J+b@c@d@e@G,H,I,J,K,L,M,N,O,P,Y*Q,R,S,T,U,V,W,X,q,Y,r,s,t,u,:,Z,`, 'v,.'+'@'V>#'A,$'",
"8 B,0 a b %'&'J+*'c@d@e@M@N@='-';'>',''')'!'l*Z*~'{']'^'/'('_':'<'r,['t,u,}'Z,`, 'v,|'1'2'3'#'A,$'$'",
"9 0 a b 4'5'6'7'8'd@9'M@N@n#0'a'b'c'd'e'f'g'h'i'a=P=:-j'k'l'm'n'o'p'q'u,r's'`, 'v,|'t'u'v'#'A,$'$'$'",
"0 B C c d w'x'y'z'm#M@A'n#o#a'q#T#B'C'D'E'F'G' =H'Q=I'J'K'L'M'N'O'q'u,r's'P'Q'R'|'t'u'S'T'$'$'$'$'$'",
"B C c d e @.D U'V'W'S#X'o#p#q#T#}$|$Y'Z'`' ).)+)c=@)[-D-];#)U=$)G-%)&)*)P'=)R'-);)>)S'T'$'$'$'$'$'$'",
"5.c d +.@.7.8.#.,)')O@{#p#w$x$}$y$Y'%%))!)~){)])^)/)()E-g=F-1-G-/;&)_)P':)R'<)[)>)S'})$'$'$'$'$'$'$'",
"6...+.@.7.F.#.9.|)1)2)3)4)x$}$y$z$%%))R%~){)5)6)/)7)E-|-F-^;G-/;&)_)8):)R'<)[)>)S'})$'$'$'$'$'$'$'$'",
"..+..+++F.@+9.G.9)0)a)b)c)d)b%z$d%))R%e)f)g)6)h)7)E-|-v;^;w;/;$>_)8):)i)j)k)l)m)n)$'$'$'$'$'$'$'$'$'",
"+..+++F.3+9.4+#+5+o)p)q)r)s)t)A$&%R%S%f)g)6)h)7)u)v)v;^;w;/;$>%><,w)x)j)k)y)z)n)$'$'$'$'$'$'$'$'$'$'",
".+++k+3+9.l+#+5+o)S+A)k@B)C)D)E)*%F)G)g)H)h)7)u)I)v;J)w;/;Q>%>h>w)K)L)M)N)O)P)$'$'$'$'$'$'$'$'$'$'$'",
"Q)R)O+P+l+#+5+S)S+T)k@U)V)W)X)Y)Z)`) !.!+!t*@!v)#!$!%!:,&!*!&>=!},x,-!3'O);!$'$'$'$'$'$'$'$'$'$'$'$'",
"R)O+>!l+m+Q+R+S+~@k@U),!'!)!!!~!{!]!^!/!^*(!$=_!:!<![!}!|!1!2!j>U>1,3'3!;!$'$'$'$'$'$'$'$'$'$'$'$'$'",
"4!>!l+!@Q+R+j@~@5!U)6!'!)!7!8!9!0!a!V%b!c!v*%=d!e!f!g!h!i!j!=>k>k!V>#'A,$'$'$'$'$'$'$'$'$'$'$'$'$'$'",
"l!m!n!Q+R+R@~@S@T@_#'!X#7!8!9!0!a!o!p!q!(*w*&=k=r!5-s!t!u!v!w!k!x!#'A,$'$'$'$'$'$'$'$'$'$'$'$'$'$'$'"};

  1 EXERCISE   

<?php

echo 'PHP VERSION: ' PHP_VERSION '<br><br>';

if (!
extension_loaded('gd')) {
die(
"skip gd extension not available.");
}

if (!
function_exists("imagejpeg")) {
die(
"skip jpeg support unavailable");
}
if (!
function_exists("imagecreatefromxpm")) {
die(
"skip xpm read support unavailable");
}

$cwd __DIR__;
$ncwd P2JPEGN;

echo 
"XPM to JPEG conversion: ";
echo 
imagejpeg(imagecreatefromxpm($cwd "/conv_test.xpm"), 
$ncwd "/JPEG 017 01 (xpm2jpeg).jpg") ? 'ok' 'failed';
echo 
"<br>";

// @unlink($ncwd . "/JPEG 017 01 (xpm2jpeg).jpg");

?>

 RESULT   

conv_test.xpm

XPM to JPEG conversion: ok

JPEG 017 01 (xpm2jpeg).jpg

JPEG 017 01 (xpm2jpeg).jpg apr

  2 EXERCISE   

<?php

echo 'PHP VERSION: ' PHP_VERSION '<br><br>';

$cwd getcwd() . '/';

$img_name 'png/PNG 04100 02 text_xpm(xpm2png).png';

echo 
"XPM to PNG conversion: ";
echo 
imagepng(imagecreatefromxpm($cwd "/image/conv_test.xpm"), 
$cwd $img_name) ? 'ok' 'failed';
echo 
"<br><br>";
echo 
'<img src="' $img_name 
'" alt="' $img_name '" title="' $img_name '">'

?>

 RESULT   

conv_test.xpm

XPM to PNG conversion: ok

PNG 024 02 (xpm2png).png

PNG 024 02 (xpm2png).png apr

/* XPM */
static char * teapot_xpm[] = {
"234 149 34 1",
"     c #FFFFFFFFFFFF",
".    c #FFFF9191AAAA",
"X    c #DADA9191AAAA",
"o    c #FFFFB6B6AAAA",
"O    c #FFFFB6B6FFFF",
"+    c #FFFFDADAFFFF",
"@    c #FFFFDADAAAAA",
"#    c #B6B66D6DAAAA",
"$    c #B6B66D6D5555",
"%    c #6D6D48485555",
"&    c #91916D6D5555",
"*    c #91916D6DAAAA",
"=    c #B6B69191AAAA",
"-    c #919148485555",
";    c #B6B691915555",
":    c #DADA6D6DAAAA",
"?    c #484848485555",
">    c #6D6D24245555",
",    c #6D6D6D6D5555",
"<    c #DADAB6B6AAAA",
"1    c #91914848AAAA",
"2    c #FFFF9191FFFF",
"3    c #DADA9191FFFF",
"4    c #DADA6D6D5555",
"5    c #DADA91915555",
"6    c #DADAB6B6FFFF",
"7    c #484824245555",
"8    c #919191915555",
"9    c #6D6D4848AAAA",
"0    c #B6B64848AAAA",
"q    c #6D6D6D6DAAAA",
"w    c #6D6D48480000",
"e    c #6D6D24240000",
"r    c #484848480000",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                        ....                                                                                                                              ",
"                                                                                                 ...XoO++++O+o+o...                                                                                                                       ",
"                                                                                               O.O+.++++O+++O++++++O.                                                                                                                     ",
"                                                                                              XoO@O+O++++++++++++++++X                                                                                                                    ",
"                                                                                             OXO+++++++++++++++++ ++++#                                                                                                                   ",
"                                                                                             O$XoOo+o+++++++ + + + + +o                                                                                                                   ",
"                                                                                              %##X.oOO+++++ +   + + O..                                                                                                                   ",
"                                                                                              %%%&#X.ooO@+++  +++++O..                                                                                                                    ",
"                                                                                               %%%%$*=X...OoOOOOoO...                                                                                                                     ",
"                                                                                                %%%%%-&*##;:XXXXX#..                                                                                                                      ",
"                                                                                                 %%%%%%-&&#&#$#$#$.                                                                                                                       ",
"                                                                                                  ?%%%%%%-*&*&#&*&.                                                                                                                       ",
"                                                                                                   >%?%%-,-*$#&#$%                                                                                                                        ",
"                                                                                            .....**&%%%%-*&#$=#=X+OX.......                                                                                                               ",
"                                                                                 .... ++++++  ++++oX?%%-*$#XXXXX.oOoO..oOOoOoO....                                                                                                        ",
"                                                                            ...+ +++++O++o+OOOOoOoOO-%-*XXoooOooOOoo.oOooX:XXXXXXX.oo=...                                                                                                 ",
"                                                                        ..++..++OO+OoOooOOoO@Oo+O+oX&&#XoOO+O++O@O+O+OOOO+O@O+OoXXX*$##==.o..                                                                                             ",
"                                                                    ..++++++OOoOooO@OO+O@O+oOO+ooO.XXX.oO++   ++++O+o++@O@+O+o++++O+OXX%-&*#=.O.                                                                                          ",
"                                                                ...++++OOoOoOo+o+O+O@Oo+OoO+ooOoOoOoOoO+++   +  +++++O+O+O++++O+O+@O+@O+o=&%%%&#<O.                                                                                       ",
"                                                              ..++OoOoOoOoOO@OO+O@Oo+O+oO+oOO+oOO+++O++++++++ +++++++++++++o+++@+O++O+++O+O+OX&%>%&XX.                                                                                    ",
"                                                             +++oooOoOo+O+o+O+o+oO+O+oO+o+O@O+O+@++++++++++ ++ + + ++++++++++O+O++++++O++++o++O+=&%%*XX.                                                                                  ",
"                                                           X+Oo..OoOOo+O@O+o+O+O++o+O+o+O+O++o++O+++++++++++ ++ +++++++++++++++++++o+++@O++++++o+Oo1%-&Oo.                                                                                ",
"                                                          o+o.XoOoOo+O+oO+O+o+o+o+O+o++O+@+O++++++++++++++ ++++++ ++ ++++++++++++++++++++++O++++++++o%%&XO                                                                                ",
"                                                         O+.XXOoOO+O@O+O+o+O+O+O+O+++O+@O+++++O++++++++++++++ + ++++++ ++++++++++++++++++++++@O+++O+++X%-X+.                                                                              ",
"                                                        X+.XXoOOo+o+O+o+O+@O+@O+@+O@O++++O+@O+++++++++++++++++++++ ++++++++++++++++++++++++++++++++++O+o*$+@                                                                              ",
"                                                       #o+.XOoOo+O+O@O++o+O++O++O+++++o++++++++@+++++++++++ ++++++++++++ ++++++++++++++++++++++++++++++++-O+X                                                                             ",
"                                                       XoOooOoO+o+o+O+o++O+@O+@O++o+O+++O+++++++++++++++++++++++ ++++ +++++++++++++++++++++++++++++++++++oO+O.                                                                            ",
"                                                      $X.OOoOoOO+O+O@++O++O++++++++++++++++O+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++O+++o                                                                            ",
"                         OOOOOOOoOoOoOOOOOOOOOO      .*=.o+OoO@O@O@+O+O+o+++O+O+o++O++O+@+++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++O++++O                                                                            ",
"                    OOoO+++++++++++++++++++++++++O@O+$$#XoOO+OO+O+O++O@+++O@++@++++++@+++O+++++++++++++++++++++++++ ++++++ +++++++++++++++++++++++++++++++++++X                                                                           ",
"                 OOO++++++++++++++++++++++++++++++++o*$=XX.@+o+o++@O+++O++++O+++O+++O+++++++++++++++++++++++++ +++++++++ ++++++++++++++++++++++++++ +O+++++++oO                                              .+++++++O+O+O+o+O@+O.        ",
"              OOO++++++++O++++++++++++++++++++++++++#&#$#XX.O+++O+++O++++o++++O++++++++++++++++++++++++++++++++++++++++++++++++ ++ ++++ +++++ + + +O++++ ++++++X                                          ..OoOoo.OoOOOOoOo+O+++oO+O      ",
"             =o++O+O@OO@O+o+O+O++++++++++++++++++++o&*$*=#XXo.O@++O+@++O+++++++++++++++++++++++++++++++++++++++++ ++++ ++++++++++++++ ++++ +++++++++ + +++++++Oo.                                        XOO++++++++++@++++++++ ++.       ",
"            XOoOoOoOO@OO@OOo+oOoOoOoOo+OO+O+O+O+O++:*$#$#;XXXXo2ooO++O+@++++O+++++++++++++++++++++++++++++++ ++++++++++++++ ++ ++ +++++ +++ ++++++ + ++ + +++++OX                                       XoooOoOoOoOOoO+O+O+++oO:.         ",
"           XooOoOoOooOoo.oo..Xo.o.ooOo.oooooOooOoOo$&*$#=##=XXX.o2ooOo+O+O+++++++++++++++++++++++++++++++++++++ +++ +++ + +++++++++ + +++++++ +   + + ++++++++o+o.                                     XX.O.oooOoOoOoOoo.oX$#-            ",
"          .XX.OooOo.XXX:=##*&*-&*&##$#=#####$OOOXX#&#&#$#;X$XXXXXo.ooOoOo+o++@O++o+++++++++++++++++++++++ +++ +++++++ ++++++ + + + ++++++ + +  + + + + + +++++++OX                                    XX.<.O.O.OoOooOo.XX#&-              ",
"          =X.O.o.XX##&-                         OO$*&##;##=:=:XXXXX2.o.OoOoOoO+o++++O@O++o+++++++++++++++++ ++++ + ++++ + +++ +++ + + +  +   + + + ++ +++ +++++O@o                                   =XXX.o.OooOooO.o.XX#-                ",
"         O#X.o.3X#&-%%                           O&$*$*#;#X;X=XXXXXX<.O.ooOoOoOOoOO@+O+++++++++++++++++++++O+++++++ + ++ + + +   +   +    + +  +  + ++ + +++++++OO.                                 #XXX.<2oo2oO.O.oX..&.                 ",
"         .#Xo2<XX$*%?                            $*&#$#;#=#X#XX=XXXX.XXo2.o2oOooO@OOo+oO+o+O+++++++++++++++++ + + ++ + + +  +  +   +   + +  + + + +  + ++++++++++oO                                =#XXXXoo2oOoOoo.X...                   ",
"         .XXoo..=#&&                             *$*$*$#=4=:;X:XXXXXXoX.<.ooooOoOoOoOO+o+O+@O++O+++++++++++ ++ + +  +                +    +  +  + ++ ++ + ++++++O+o.                               $=XXXo2oOoOoo2.X..                     ",
"         .=.OoOo.XX#                            %&*$*$=#$=#XX=XXXXX.XX2<.3.O.O.OoOoOoOo+Oo+O+o++@++++++++ ++ + +                       + +  + +  +  + ++ ++ ++++++Oo                              #=:XX.oOoOoOo2oXX.                      ",
"         .XXoOOoO.XX                            #&$*$##;#X;#X:=XXXXXXoX.<.o.OooOoOoOo+Oo+OO@O++O+O++++++++ ++ +  +                 +  +   +   + + + + + +++++++++o+O                              &#;XXo2oOoOoOo.X.                       ",
"         .XoOoOOoOo.                           %&*$*#$#=##X=5XXXXXXXXX.6.o3o.O.oOoOoOoOOo+o++O@++++++++++++ + +                         +  + + + + + + ++ + ++++++O+X                            *$=XX.oOoOoOo.oX.                        ",
"         .=.O+++O@Oo                           *$*&#$=$#;X$X#X=:XXXX.<X.Xo.Oo.OoOoOoOo+o+O+O@O+O+o+++++++ +++ + +                    + +  +  +  + + + + ++ +++++++OoO                            *$XXXo2oOoOoOoX.                         ",
"         .XoO+o++OOo                          ?$&*$#&#=#=#X=X:X5XXXXX.3oXO.o2ooOoOoOoOOoO@O+O+O@+++O+++++++ ++ +                         +  + +  + + ++ + ++++++++++oX                          $*=:X.OoOoOOoO..                          ",
"         .#.o+++++oOo                         &*-#&##$=$X$X#X;XXXXXX.<X.oXO.oOo.OoOoO@O+OO@O@O++O+++++++++++ + +                     + +  +   + + + + + +++ ++++++O+OO                          *$#XXoOoO+o+ooX.                          ",
"         .&XO++++++Oo                         #&$*$#;##=#X=5:XX=XXXXX.X6..oo2oOoOoOoOOoO@OO+O@O++O+@++++++ +++ + +                      +  + +  +  + + + + ++ +++++@+o.                        *&#;XooOoO@OoO..                           ",
"          *.oO+++++Oo                        %&*&#&##;#5#=:=X=XXXXX.X<..<2<2oo.OoOoOoO@OO@O@O++o+++O++++++++ + +                     +   +  + +  + + + ++ +++++++++O+OX                        $*;XX2oOO+OOoOX                            ",
"          -XO@++++++Oo                       *$1$*$#$#=#5#XX#XXXXXXXX.3o.o.oO.OoOoOoOoOo+O+O+o++O+++++++++ +++ +                      +   +    + + + + + ++ + ++++++O@O                       $*$#X.oOo+o+oO..                            ",
"           #.O++ ++++..                      *&&#&#$=#;#=X$XXX:XXXX.X<.XOXO.oOoo2oOoO+OOo+o+O+O++o++++++++++ + + +                     + +  + + + + + + + +++++++++++Oo.                      &&#=X.Oo+O+oOo.                             ",
"           &XO+++ +++oo                     &#&*$#&#=$#X#X=X#5XXXXXX.XOX.o.Oo.OoOoOoOoo+Oo+O@O+@O+++O++++++++ + +                    +    +  +  +  + + ++ + + ++++++O++O                     $*$#XXoOO+o+OoO.                             ",
"           .Xo++++ ++OO                     &*-$*$#$#=#;X$XXXX=XXXXX<.Xo.Oo.OoOoOoOoO+Oo+Oo+O+O+++O+++++++ +++ +                       +   +  +  + + + + +++ ++ +++++oOo.                    #&#=X.Oo+O+oOo.                              ",
"            $.O+ +++++Oo                   7&$*&#*$=#;#=:=:=XXXXXX.X.3oXOXoO.o.OoOoOooO+o+O+o+@O++@+++++++++ ++ + +                     + + +  + + + + + + ++++++++++++o.                   #&*$XXoOO@+O+oO.                              ",
"             Xo++  ++++O                   &*-*$*$#$=#5#=5=:5=XXXXXX<.Xo.o2ooOoOoOoOO+oOO@O+O+O+@O+++++++++ ++ + +                   +   +   + +  + + + + + + +++++++O+Oo                   #&#=X.oO@O+@Oo.                               ",
"             &.O++ + +++.                  &#&&#&#=#$=#X#X:=X:XXXXX.Xo3.6.o2o2oOoOoOoOo+oO+o+o++O++O+++++++++ + +                      +   +  + + +  + + +++ ++ ++++++o+O.                 #&#$=X.OO++O+Oo.                               ",
"             .=oO+  + ++Oo                7&&1&#$*$#=$=$X=5XXXXXXXXX.Xo.o.OoooOoOoOoO@OO+o+O++O++++++++++++ +++ +                       + + +  +  + + + + + ++ ++++++++OoX                #$*$=:XoO@O+@Ooo.                               ",
"              #XO++ + +++O#               &*-$*&#$#;##X#X#X#X=XXXX.<3oXOXo.O.Oo2oOoOoOo+oO+oO@+o+O@+O++++++++ + + +                   +      +  + + + + ++ + ++++++++O++Oo               ;#$#=XXoOo++O+oO.                                ",
"              .XoO+  + +++o               &$*&*$*$##;#;#5=XXXXXXXXX.X.<.O.OooOooOoOo+OOo+O+O+O++O++++++++++ ++ + +                      + + + + +  + + + + +++ ++ +++++o+O.             &#*$=#XXoOO+O@OOo.                                ",
"               .Xo++  + +++o             7&1&-#&##8##=:=:=:;X:XXXXXXoX2o.o.O.oOoOoOOoO@OO@O@O@O+++O++++++++++ ++                      +    +  +  + + + + ++ + +++++++++O+oX            =#$=#;XX.Oo++++Ooo                                 ",
"                &.O+  + +++Oo            &*&*&*$*$#;#;#X;:=XX=XXXX.X.<.<2oOoOo2oOoOoOoO+oO+O++O@O+@++++++++ ++ + +                      + +  + + +  + + + + +++ ++++++++o+o          =X#X#;#XXXoOO@O+o+o#                                 ",
"                .*.++  + ++++o           &-&-#&#$###;#X#X=:XXXXXXXXo3.O.o.o.oOoOoOoO@OoO+o+o+O++++O++O++++++++ + + +                  +    +   +  + + + + ++ + +++++++O+OOo.      ..XXXX;XXXXX.Oo++++OoO.                                 ",
"                 .#oO   + ++++O          *&1&&#&#&;##=$=4=X;:XXXXXX.<.Xo3o2oO.OoOoOoOO+oO+O+o+o+O++++@+++++ +++ + +                     + +  +  + + + + + + ++++ +++++++@OO.   ..X..X.XXXXXXXXoO+O+O@Oo.                                  ",
"                  .Xo+    +++++O        7&-&*-*$###;#$X#X#XX=XXXXX.X.<2o.oOo.OooOoOoO@OO@O@O+O+O@+O@+++++++++ ++ +                    +    + + + + + + + + ++ ++++ ++++O++oooo.OoOoOoXoXXXXXX.Oo+@++OOo#                                  ",
"                   .XO+    +++++O       %&*-&#&#&$##=#=4=X$XX:=XXXX<.XoXO.o2ooOoOoOOoOo+OO+o+O@+O+++O+++++++ ++ + +                     + +   +  +  + + + + ++ + +++++++O@OOOO+oOoOoOo2oX.X.<OoO+O+o+oo.                                  ",
"                    .XO+    +++++O      -&-*&*$*$#8#$X#=:=X=XX5XX.X.6.O.oO.oOoOoOoOoO+oO@Oo+O+O+++O+++++++++++ + + +                  +    + + +  + + + ++ + ++++++++++++O+++oO+OoOOoOo.3oXO.Oo+O++OoO.                                   ",
"                     &XO+    +++++OX    &*-&1&#&##$=#;#5=:=:5XXXXXXX.<.<.oOo.Oo2oOoOoOO@O+O+o++o++@+++++++++ +++ +  +                   + +   + + + + + + +++ + +++++++O+o+++++++ ++Oo.Oo.o.Oo+O@+o+Oo.                                   ",
"                      &XO+    ++++++X  7&-*-&&#&#&#$=#=#5=4=X#XXXXoXoX2o2o.OooOoOoOo+oOOo+o+O+O+O+O++O++++++++ ++ +                   +  +  +  + + + + + + + ++++ ++++++++++++++++OooOo.o3oOo+O++O+oO.                                    ",
"                       &XO+    + ++++o7%&&-*&1&#&#=#$#5#=:=XXXXXXXX2Xo.<.Oo.O.OoOoOoOO@O+OO@O@+O@+++++++++++ ++ + + +                  +  + + +  +  + + + + ++ +++++++++O+O++O@O+oOOoOoOooOOO@O+O@OOo$                                    ",
"                        &XO+    +++++++&1&%&1&$*$#$#=$=:=X#X#XXXXX.<.3o2o.OoOooOoOoOo+oOo+o+O+O++O+o++++++++++++ + +                 +   +   + +  + + + ++ ++ ++ ++ +++++@+O@+O+oO@OoOo2oOoo+O+@O+oo.                                     ",
"                         -Xo+     +++++&-*-&&*&#&#&=$#=$=4=X5XXXXXX.<.<.o2o.oOoOoOoOOoO+oO+O@O@O+@++++++++++ + ++ + +                  +  + +  + + + + + ++ ++ ++++++++O+O++O+oO+OoOoOoOoOOO+o+O+OOo#                                     ",
"                          >#oO   +  + O&1&%*-*$*$#$#=#5#X=:=X:XXXX.X2<.OXoOo2oOoOoOo+OoO+o+O+O++O+O++O+++++++++ ++ + +               +  +  + + + + + + + + + +++ +++++++++o++O+oOoOoOoOoOoO@O+O@Ooo.                                      ",
"                           7#oO+   + +3&&-&-*-&#&*#$#;#=#5=:=XXXXX<.<..<2o.Ooo2oOoOoOo+oO+o+o+O@+O++++++++++++++ + +  +               +  +  +  + + + + + ++ ++ +++++++++O+O@O@O+o+OoOoOO@O+O@O+OoOo#                                      ",
"                             -XO++  + <1&9-,&*&*$#$=$##;:#X=5XXXXX.X2<2o.oO.oOoOoOoOoOO+oO+O+o+O+@+O+@+++++++ +++ + +  +           +   +  +  + +  + + + + ++ +++ ++++++++o+O+OoOOoOo+O@OO@OO+oOoOoX                                       ",
"                              ?#o++  +6-&-,1-&0&#&#&#=$=#=4X#XXXXXX<.Xo.O.oO.oOoOoOoO@Oo+Oo+O+O@O++++O+++++++++ +++ + +  +          + + + + + + + + + ++ + ++ ++++ +++++O+o+oO+o+o+OoOOo+O@Oo+oOo.%                                       ",
"                                -XO++ =-,1-&*-&*$*$#=$#=4==XX=XXXX.XO.XoXO.oOo2ooOoOoOoOo+Oo+o+++O+o++++++++++ ++ ++ + +          +      + + + + + + + ++ ++ ++ +++++++++o+O+oO+OOoO+o+OoOO@OOoO.X                                        ",
"                                 %#.O+&1&%,--*&&*$*$##;#=:#X#XXXXXX.Xo3o.oO.oOoOoOoOOo+OO@O+O+OO@+O++++O++++++++++ + +  + +  +  +   + + +  +  + + + ++ + ++ ++ ++++++++O+OO@O+oO@O+oOoO@O@OOoOooX%                                        ",
"                                  7%=.&-%&-q-&1&#&#$*;##;#5=X5:XXX.<X.o2o.oO.oOoOoOoOoO@OO@O@O@+O+++O++++++++++ + ++ + +   +   +  +  + + +  + + + + + + + ++ ++++++++++++o+OoO+oO@OO@OOOoOoOoo2X&                                         ",
"                                    %&1,1%-%&-&*-#&#$##;:=:=:XXXXXX.6.Xo3o2oOo.OoOoOoOOo+oO+O+O+O@O+@+++++++++++++ ++ + ++  +   +  +  +  + + + + + + +++ + +++ ++ ++++++O+oO+oO+OoOoOo+oOoOoO.oX                                          ",
"                                      -&%&%*%*-&*$*$*;##=$X=X=XXXXXX.<2o.o.o.OoOoOoOoO@OO+oO@O@O+++O+O+@O++++++ +++ ++ +  +  + + +  +  + + + + + ++ + + +++ ++++++++++++oOO@OOooOO@OoOoOoOo.oX#                                           ",
"                                      %1&%%-&-*&&*$*$#$=$=:;:XXXXX.<X.Xo3oO.OoO.oOoOoOOoOo+OO+O@O+o++++++++++++++ ++ ++ ++ + +  + + + + + + + + + ++ +++ +++ ++ +++++++O+oOoOoOOoOoOoOoOo.oXXX                                            ",
"                                      %%-%&%9&-*-$*$*#$#=#X#X=:XXXX.3oX.o.oOo.oOoOoOoOo+oOO@O@O+O++O@O+++++++++++++++ ++ + + + +  + + + + + + ++ + ++ + ++ ++++++++++++++oOoOoOooOoOoo.o.2XX#                                             ",
"                                      7,-%9%-,-&*&*$*$=#$=$X=5XXXXXX<.<2<2.o2oOoOoOoOoOoO@OO@O+o+o++++O++O++++++++ +++ + + + + + + + + + + + + + ++ ++ ++ ++ +++++++++O+OoOoOooOoo.o2o2.<XX#                                              ",
"                                       -%,-%%-q--*&&#&#$=#X#X#XXXXX.X.Xo.<o2oo2oo2oOoOo+OO@OO@O+O+O@O+@++@++++++++++ ++++ ++ + + + + + + ++ ++ ++ + + ++ +++++ ++++++++o+oo.o2o.2o2.X.XXX#$                                               ",
"                                       ,1%%%&%-&*-&#&#$=#;#5=XX=XXXX<2X.6.o.Ooo2oOoOoOOoOoO@OO+o+o+O++O+O+++++++++ +++ + + ++ + + + + + + ++ ++ + ++++ +++ ++++++++++O++OO.O.o.<.XX<XXX=#$                                                ",
"                                       %%%-%%%*%&&1&#&#$##=:=4=:XXXX.XoX.O.o.OoOooOoOoOo+OoO+o+O+O++o++++++++++++++++++++++ ++ +++ +++ ++ + + + ++ + +++ +++ +++++++++O@Oo.XXXXXXXXX=#=$%                                                 ",
"                                       ?-%%%%%-%*-&*$*$#=$=$X=XXXXXXX<.6.<.O.o2oOoOoOoOoOo+Oo+Oo+o+O+O+o+O++O++++++++ + + ++ ++ + + + + ++ ++ ++ ++++ ++++++++++++++O++O@OXXXXXX=X#$#$%                                                   ",
"                                        %%%%%%%&-*-&*$*$#=#X#X#5XXXX.XX.Xo3o.Oo.o2oOoOoO@Oo+Oo+O+O+@O+++++@++++++++++++++++ ++ ++++ ++++ ++ ++ +++ +++ ++ +++++++++++O@OOoX#=#=#$#&*-                                                     ",
"                                        %%%%%%%%%&*-$*$#$#;#;:=X#XXXXXoXO.o.O.oOooOoOoOoOOOo+Oo+o+O+O@O+o+O+++++++++++++ ++++ ++ + ++ + + +++ ++ ++ +++++++++++++++O+O+oOo#$#$$*&&-                                                       ",
"                                        7%%%%%%%&--*&*$*#;##=X$XXXXXXXX.XXOXoo2o2ooOoOoOoo+oOo+OO@O@O++O++++O+++++++++ ++++ +++++++ ++ ++++ +++++++++ ++++++++++++O+o+oOOoX&&1&%%7                                                        ",
"                                         %%%%%%%%9&-*&#&##;#$X=:=XXXX.<3o.Xo2o.ooO.OooOoOOoOO+oO@O+O+o++o+O+@+O+++++++++++++++ + +++ +++ ++++ + + ++++++ ++++++++O++O+OooO$%%                                                             ",
"                                         ?%%?%%%%&%&-*&#$#$=##X;X:XXXXX.X<2oXoO.OoOo2oOoOoO@OoO+Oo+o+O+O++@O++++++++++++++++ +++++ +++++++ +++++++++ +++++++++++++O@OoOoO.*                                                               ",
"                                          %>%%>%%%1&&-*$*$#=$=:=:=XXXXXX.XoX2o.o2o.oOoOoOoOOo+oO@OO+O@O@O+O++O+@O+++++++++++++++++++++ +++++ +++++++++++++++++O+O+oO+oOooX                                                                ",
"                                          %%?%%%%%%-*&&*$*$#=$=4=X5XXXXX<.XoXo2oo2oOoOoOoOoOoOOoO+o+o+O+O@+O+@O+++++++++++++++++++++ ++++ ++++++ ++++++++++++O++o+OoOoOo.*                                                                ",
"                                           %%>?%%%%,-1&&#&#$##=#X#X=XXXX.3X.OXo.Oo.o2ooOoOoOo+o+OoO+OO@O+O+@O+++O+O++++++++++++++ +++++++++++++++++++++++++O++O+Oo+OoOo.=                                                                 ",
"                                            ?%w%%%%%%&1&&#&#;#$=$X#XXXXXXXoX.XOX.oOoo2oOoOoOoOOoO+oO@O+o+o+O+O+O@+++O++++++++++++++++++++++++++++++++++++O++O+o+oOoOoo.X%                                                                 ",
"                                             %%7%%%%%-&1&*$*$#;#=#5=:XXXXXXo3o.oO..O.oO.oOoOoOoOoO@OO@O+O+O@O+@++O+@++O++++++++++++++++++++++++++++++++O++O+o+Oo+Ooo2.X-                                                                  ",
"                                             7%%%?%%%%%&-&*&#&##;:=:=XXXXXXX.X<.XOo.OooOoOoOoOo+oOOo+OoO@O+O@O+O+@O+O+@+O++++++++++++++++++++++++++O+O++O+o+OoOoOoO.oX=                                                                   ",
"                                               %%>%%%%%%*-&*$*$##;#;:=4=XXXX<.3o.XoO.o2oO.oOoOoOOo+oOo+OO@O+O+o+O+O+@O+++O+O+++++++++++++++++++O+O++++O@O+OoO@Ooo.oXX#                                                                    ",
"                                               %%?%>?%%%-,-&1$*$##=#5=XXXXXXXX.Xo2Xo.Oo.oOoOoOoOoOoOO+oO@OoO@O+O@O+O++O+o+++O+O+O+O+O++O++O+O+++++O+oO+O@OoOoOoO.2XX#                                                                     ",
"                                                %%%%%%%%%-1&&*&*$$#;##=:=XXXXXXXXoXO.o.O.o2ooOoOoOoOoOoOOO+oO+oO+o+o+o+O+O@O@+O@+++++O++O++++OO@OO@O+oOoOoOoOo..<XX#                                                                      ",
"                                                 %?w>%%%%%%%-&-&*$##$=$X#XXXXX.<2X.Xo3o.Ooo2ooOooOoOoOo+ooO+oO+oO+O+O+o+o+O+O++O+Oo+O@O+@Oo+o+oO+oOoOO@OoOoo.o2XXX$                                                                       ",
"                                                  %%?%7%%%%%q-*&*&*$##=$=4=:XXXXXX<.X.<.o2oo2o.OoOoOoOoOoOoOoOo+oOoO@OO+O+o+o+o+o++O+O@OO+OO+o+OoO+oOoOoOo.O.XXX##                                                                        ",
"                                                   %>%%%?%%%%%--&*&*$&##$=#=X=XXXXXXXo3.Xo2o.Oo.OooOoOoOoOoO+oOOO@O@OO@OoO+OO+OO+oO@OoO+oO@oOOoOoOoOooo2o..XXXX#$                                                                         ",
"                                                    ?%%%>%%%%%%%-&-&*$#$##;#$X#XXXXXXXXoX.Xo.o2o.O.oOooOoOoOoOooOoOOoOoO+oOo@OooOO@OO@OoOoOOooOoOoo.O.o.XXXXX#$&                                                                          ",
"                                                      ?%%?%>%%%%%1&-*&&*$#$#=$=#=:XXXXXXXX.3<..o.o2o.O.oOoOooOoOoOoOoOoOoOoOOoO+oOoOoOoOoOooOoOo.o2o.XXXXX=#=&%                                                                           ",
"                                                       %%e%?%%%%%%%&-1&&*&#$##;:;#=:=XXXXXXX.XX3oX.o.o2o.o.Oo.OoOooOoOoOoOooOoOoOoOoOoOoOoOo.o..O.XXXXXX=##$&7                                                                            ",
"                                                         ?%%%?%%%%%%%&-1&&*&$#$##;#;:=:=XXXXXXXXX.<3.Xo.O.o.Oo.o.OooOoooOoOoOooOooOoo2o.o..o2.<XXXXXXX##$#&%                                                                              ",
"                                                          %%>w%7%%%%%%%,--&1&*&#&###;#=:=XXXXXXXXXXXXoXXX.6...O.o.2o.O.O.o.o.O.o2o..o.o2.<.XXXXXXX=:=$#&#&7                                                                               ",
"                                                            ?%%%%?%%%%%%%1%&-&*&#&$#$#$=$#=#X=XXXXXXXXXXXX.X<XX.3oX..o..o.2o..o..Xo3.XXXXXXXXXX=:#$#&#&&%                                                                                 ",
"                                                            7%%?>%%7%%%%%%%%*%-&&*&*&#$##;#;#:=#=:=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=X##$=$*$*&-                                                                                   ",
"                                                              %%%%%%%%>%%%%%%-%-%-&&*&*&$#$#$=$#;#X#=#X=XX=XXXXXXXXXXXXXXXXXXXXXXXXX=X=:=###$=$*$*&-%%                                                                                    ",
"                                                                %?e%?%?%%?%%%%%%q-%--&-*&*&#&#$#$#$#$=$:##X##=#X#X=X=X=X=X=X=X=:==###$#;#$=$*&*&-%%*?                                                                                     ",
"                                                                 7%%%>%%%>%%%%%%%%%%9-,-&-*&*&*&#&#&#$#$=$#;#$=$=$#$#####$###$#=#$=$=$#&#&&*---%&*-                                                                                       ",
"                                                                   7%r%%?%%?>?%%%%%%%%%%1%--&-&-&*&&*&*&#&#&#$#$##$=$#;$#=$$#=$$#$*$&*&*-&-%&%*&7                                                                                         ",
"                                                                      %>%w>%%%%7%%%%%%%%%%%%%-9&%-&1&-&*&&&*&&*&&*&#&*$*&&*&&&*&*&-*----,9-&*-%                                                                                           ",
"                                                                         %%?%w%%%7%?%%%%%%%%%%%%%%-%&1---*--*-&1&&-*&-&-*-&1&1---,-%%,%*-&#?                                                                                              ",
"                                                                           7%?>%%w%%>?%7%%%%%%%%%%%%%%,%%-,-%-%&%1&%-*%&-%&-%&%,%1%&1&##%                                                                                                 ",
"                                                                               %%?>%%%%%%?%%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-%-1&&*#=%                                                                                                    ",
"                                                                                   r%%%%w>%%>%?%%%?%%%%%%%%%%%%%%%%-%%-%*&*&*#==-%%                                                                                                       ",
"                                                                                        7 -%,%%%%%%%%%%%%%%%%&9&-*&*&###$##%%%                                                                                                            ",
"                                                                                               ?7 777 7777?7?77?7?>?%?                                                                                                                    ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          ",
"                                                                                                                                                                                                                                          "};

  3 EXERCISE   

<?php

echo 'PHP VERSION: ' PHP_VERSION '<br><br>';

$cwd getcwd() . '/';

$img_name 'png/PNG 04100 03 teapot(xpm2png).png';

echo 
"XPM to PNG conversion: ";
echo 
imagepng(imagecreatefromxpm($cwd "/image/teapot.xpm"), 
$cwd $img_name) ? 'ok' 'failed';
echo 
"<br><br>";
echo 
'<img src="' $img_name 
'" alt="' $img_name '" title="' $img_name '">'

?>

 RESULT   

teapot.xpm

XPM to PNG conversion: ok

PNG 025 03 (xpm2png).png

PNG 025 03 (xpm2png).png apr

  4 EXERCISE   

<?php

echo 'PHP VERSION: ' PHP_VERSION '<br><br>';

$cwd __DIR__;
$cwda P2IGDN;
$cwdb P2GD2N;

echo 
"$cwd <br> $cwda <br> $cwdb <br><br>";

echo 
"XPM to GD conversion: ";
echo 
imagegd(imagecreatefromxpm($cwd "/conv_test.xpm"), 
$cwda "/GD 005 04 (xpm2gd).gd") ? 'ok' 'failed';
echo 
"<br>";

echo 
"XPM to GD2 conversion: ";
echo 
imagegd2(imagecreatefromxpm($cwd "/conv_test.xpm"), 
$cwdb "/GD2 006 04 (xpm2gd2).gd2") ? 'ok' 'failed';
echo 
"<br>";

// @unlink($cwda . "/GD 005 04 (xpm2gd).gd");
// @unlink($cwdb . "/GD2 006 04 (xpm2gd2).gd2");

?>

 RESULT   

XPM to GD conversion: ok
XPM to GD2 conversion: ok