#!/usr/bin/perl -w # Yeah baby YEAH!!!!!!!!!!! muhri@muhri.net # for Liki.
# $Id: ProntoInstaller.pl,v 1.11 2002/05/25 00:37:37 muhri Exp $
#############################################################################
#
mkdir("$ENV{'HOME'}/prontobuild", 0755); #
$builddir = "$ENV{'HOME'}/prontobuild"; #
$untar = "tar xvzf"; #
$mirror = "http://www.cpan.org/authors/id"; #
$prontoversion = "2.4.0"; #
$getcmd = $ARGV[0]; #
$compile = "perl Makefile.PL ; make ; make install"; #
$cyberdeck = "http://www.muhri.net/pronto"; #
$cyberftp = "ftp://housing.ualr.edu"; #
#
#############################################################################
if ($getcmd && $getcmd =~ /ftp/i) { # change the mirror to an ftp one if user requested ftp client
$mirror = "ftp://ftp.sedl.org/pub/mirrors/CPAN/authors/id";
}
my @about_xpm;
@about_xpm = (
"201 81 1388 2",
" c None",
". c #001C26",
"+ c #00151C",
"\@ c #000609",
"# c #000203",
"\$ c #001821",
"% c #002E3E",
"& c #003549",
"* c #0094C8",
"= c #007AA5",
"- c #00759F",
"; c #005B7D",
"> c #001E29",
", c #000B0F",
"' c #004159",
") c #00739C",
"! c #007CAA",
"~ c #0088B9",
"{ c #00AAE2",
"] c #00C3F9",
"^ c #008ABC",
"/ c #007FAD",
"( c #007CA9",
"_ c #007098",
": c #00384C",
"< c #00090C",
"[ c #001F2A",
"} c #005B7B",
"| c #0079A5",
"1 c #007DAA",
"2 c #0094C9",
"3 c #00CAFD",
"4 c #00C4FA",
"5 c #007BA7",
"6 c #0077A2",
"7 c #005B7C",
"8 c #001D28",
"9 c #000304",
"0 c #000102",
"a c #000F15",
"b c #003F56",
"c c #006F98",
"d c #007DAB",
"e c #00C9FD",
"f c #00C3FA",
"g c #0089BA",
"h c #007EAC",
"i c #007BA8",
"j c #0079A4",
"k c #0077A1",
"l c #006C93",
"m c #004A65",
"n c #00080B",
"o c #003C51",
"p c #006488",
"q c #00749D",
"r c #0079A6",
"s c #007FAC",
"t c #0093C7",
"u c #00D3FD",
"v c #008EC0",
"w c #007EAB",
"x c #007AA6",
"y c #00658A",
"z c #002A39",
"A c #000E13",
"B c #004B66",
"C c #00739D",
"D c #0075A0",
"E c #0078A4",
"F c #00A1D4",
"G c #00E1FF",
"H c #00F3FF",
"I c #00A7D9",
"J c #0076A1",
"K c #007099",
"L c #00698F",
"M c #000A0D",
"N c #004D69",
"O c #006E97",
"P c #007199",
"Q c #0080AE",
"R c #00C4ED",
"S c #00CEF2",
"T c #0082B0",
"U c #00729C",
"V c #00719A",
"W c #006E96",
"X c #006589",
"Y c #002431",
"Z c #000101",
"` c #00445D",
" . c #006B92",
".. c #0077A3",
"+. c #0090C2",
"\@. c #00E6FC",
"#. c #00F0FE",
"\$. c #009ECF",
"%. c #006B93",
"&. c #006082",
"*. c #002532",
"=. c #000C10",
"-. c #00435B",
";. c #00688E",
">. c #00BFE9",
",. c #00DBF6",
"'. c #0088B7",
"). c #00749E",
"!. c #006D95",
"~. c #006184",
"{. c #002F41",
"]. c #000405",
"^. c #00678C",
"/. c #00729B",
"(. c #00A0D0",
"_. c #00F1FE",
":. c #00BEE7",
"<. c #006A91",
"[. c #00668C",
"}. c #003142",
"|. c #004C68",
"1. c #006990",
"2. c #0088B8",
"3. c #00DCF8",
"4. c #00EFFE",
"5. c #00A2D2",
"6. c #005E80",
"7. c #002B3B",
"8. c #000303",
"9. c #004760",
"0. c #006386",
"a. c #00688C",
"b. c #00C5EC",
"c. c #00E3FB",
"d. c #008FBF",
"e. c #00688D",
"f. c #00678B",
"g. c #006588",
"h. c #006285",
"i. c #005D7E",
"j. c #002F40",
"k. c #000608",
"l. c #000202",
"m. c #00151D",
"n. c #004A64",
"o. c #006083",
"p. c #00668A",
"q. c #00AEDC",
"r. c #00F2FF",
"s. c #00C3ED",
"t. c #006C94",
"u. c #00668B",
"v. c #006487",
"w. c #006385",
"x. c #005C7D",
"y. c #00455E",
"z. c #00070A",
"A. c #000001",
"B. c #000406",
"C. c #00161E",
"D. c #00384D",
"E. c #005675",
"F. c #006D94",
"G. c #0083B2",
"H. c #00D8FB",
"I. c #00C4F7",
"J. c #0081AF",
"K. c #006284",
"L. c #005E7F",
"M. c #005C7C",
"N. c #005776",
"O. c #004761",
"P. c #002533",
"Q. c #000C11",
"R. c #003E54",
"S. c #005472",
"T. c #005A7A",
"U. c #008DBF",
"V. c #00ABE9",
"W. c #005F80",
"X. c #005A7B",
"Y. c #005878",
"Z. c #005573",
"`. c #002B3C",
" + c #000709",
".+ c #00202B",
"++ c #005371",
"\@+ c #005676",
"#+ c #005D7F",
"\$+ c #006183",
"%+ c #006A90",
"&+ c #0088BA",
"*+ c #00A6E2",
"=+ c #00698E",
"-+ c #006387",
";+ c #005978",
">+ c #005473",
",+ c #005270",
"'+ c #004863",
")+ c #003042",
"!+ c #001923",
"~+ c #000508",
"{+ c #00141B",
"]+ c #00435C",
"^+ c #00506C",
"/+ c #005574",
"(+ c #0087B7",
"_+ c #00A7E2",
":+ c #00516E",
"<+ c #004F6B",
"[+ c #003E55",
"}+ c #001E2A",
"|+ c #00171F",
"1+ c #003548",
"2+ c #004964",
"3+ c #004D6A",
"4+ c #004F6C",
"5+ c #00516F",
"6+ c #005A79",
"7+ c #00B8F6",
"8+ c #005674",
"9+ c #00526F",
"0+ c #004E6A",
"a+ c #004C67",
"b+ c #004963",
"c+ c #003D53",
"d+ c #002939",
"e+ c #00131A",
"f+ c #000305",
"g+ c #000D12",
"h+ c #002634",
"i+ c #003A4F",
"j+ c #00465F",
"k+ c #006081",
"l+ c #006A8F",
"m+ c #00A0D5",
"n+ c #00B2E5",
"o+ c #006D93",
"p+ c #005F81",
"q+ c #005979",
"r+ c #004660",
"s+ c #00425A",
"t+ c #003041",
"u+ c #001820",
"v+ c #000000",
"w+ c #003D54",
"x+ c #005877",
"y+ c #007CA8",
"z+ c #00C6F7",
"A+ c #00D1FD",
"B+ c #00516D",
"C+ c #004F6A",
"D+ c #004D68",
"E+ c #004965",
"F+ c #004158",
"G+ c #003B51",
"H+ c #002736",
"I+ c #001016",
"J+ c #00222E",
"K+ c #00364B",
"L+ c #004057",
"M+ c #00ACDF",
"N+ c #00BBF0",
"O+ c #00445E",
"P+ c #00394F",
"Q+ c #002C3C",
"R+ c #00364A",
"S+ c #003C53",
"T+ c #004058",
"U+ c #005370",
"V+ c #0086B6",
"W+ c #00C9FA",
"X+ c #008CBF",
"Y+ c #005775",
"Z+ c #004A66",
"`+ c #00455F",
" \@ c #00425B",
".\@ c #003F57",
"+\@ c #003A50",
"\@\@ c #00394D",
"#\@ c #001B25",
"\$\@ c #000D11",
"%\@ c #001A24",
"&\@ c #002737",
"*\@ c #00394E",
"=\@ c #004059",
"-\@ c #004862",
";\@ c #006489",
">\@ c #00A1DA",
",\@ c #00A3DD",
"'\@ c #003C52",
")\@ c #00374C",
"!\@ c #003448",
"~\@ c #000A0E",
"{\@ c #000B0E",
"]\@ c #002330",
"^\@ c #002D3F",
"/\@ c #003246",
"(\@ c #003B52",
"_\@ c #005C7E",
":\@ c #00B0EF",
"<\@ c #00506D",
"[\@ c #004B67",
"}\@ c #004661",
"|\@ c #003245",
"1\@ c #003143",
"2\@ c #00080A",
"3\@ c #2BABD7",
"4\@ c #27B5E6",
"5\@ c #27B5E7",
"6\@ c #32A1C8",
"7\@ c #002E3F",
"8\@ c #003144",
"9\@ c #003346",
"0\@ c #00415A",
"a\@ c #004E69",
"b\@ c #00526E",
"c\@ c #0089BB",
"d\@ c #0093C8",
"e\@ c #00374B",
"f\@ c #003043",
"g\@ c #002C3D",
"h\@ c #002A3A",
"i\@ c #002837",
"j\@ c #00151E",
"k\@ c #0D7EA6",
"l\@ c #0084B3",
"m\@ c #0082B1",
"n\@ c #197495",
"o\@ c #001F2C",
"p\@ c #003244",
"q\@ c #00ACEA",
"r\@ c #005777",
"s\@ c #002C3E",
"t\@ c #002A3B",
"u\@ c #002938",
"v\@ c #00141C",
"w\@ c #0D7AA0",
"x\@ c #0477A1",
"y\@ c #1E5C72",
"z\@ c #174454",
"A\@ c #164252",
"B\@ c #154152",
"C\@ c #184455",
"D\@ c #1F5A70",
"E\@ c #0679A2",
"F\@ c #1A708F",
"G\@ c #001D29",
"H\@ c #004762",
"I\@ c #0084B4",
"J\@ c #00B7F7",
"K\@ c #009CD3",
"L\@ c #005F82",
"M\@ c #003447",
"N\@ c #002D3E",
"O\@ c #002635",
"P\@ c #002433",
"Q\@ c #002230",
"R\@ c #007EAA",
"S\@ c #007FAB",
"T\@ c #0184B2",
"U\@ c #129BCB",
"V\@ c #2B8BAE",
"W\@ c #244F60",
"X\@ c #0F2E3B",
"Y\@ c #0A2936",
"Z\@ c #0D2B38",
"`\@ c #1A3947",
" # c #2B687F",
".# c #2894BA",
"+# c #14A1D2",
"\@# c #0287B6",
"## c #007DA9",
"\$# c #007BA6",
"%# c #001C27",
"&# c #002331",
"*# c #006F97",
"=# c #00AFEC",
"-# c #002534",
";# c #002432",
"># c #00202C",
",# c #001118",
"'# c #036E94",
")# c #13536A",
"!# c #025F80",
"~# c #0076A0",
"{# c #0081AE",
"]# c #0089B9",
"^# c #0D99CB",
"/# c #1F8DB5",
"(# c #225E75",
"_# c #113443",
":# c #042331",
"<# c #00202E",
"[# c #062633",
"}# c #1D5367",
"|# c #2383A5",
"1# c #169ECE",
"2# c #0297CC",
"3# c #00759E",
"4# c #025F7F",
"5# c #0F485D",
"6# c #1F5C71",
"7# c #001924",
"8# c #00212E",
"9# c #00A1DB",
"0# c #00B3F2",
"a# c #0082B2",
"b# c #004E6B",
"c# c #003D55",
"d# c #00384E",
"e# c #00202D",
"f# c #001E2B",
"g# c #07698C",
"h# c #2D4651",
"i# c #243A44",
"j# c #1E414D",
"k# c #0A4B62",
"l# c #0496C9",
"m# c #159DCE",
"n# c #2386AA",
"o# c #20576D",
"p# c #0C2B38",
"q# c #01212F",
"r# c #022230",
"s# c #0F2F3C",
"t# c #2589AD",
"u# c #089CD1",
"v# c #008CBD",
"w# c #09495F",
"x# c #21404B",
"y# c #233942",
"z# c #18333F",
"A# c #265D71",
"B# c #002838",
"C# c #009DD6",
"D# c #00B2F2",
"E# c #008FC4",
"F# c #003347",
"G# c #001C28",
"H# c #066B8F",
"I# c #173542",
"J# c #01202E",
"K# c #082634",
"L# c #1A3440",
"M# c #243A43",
"N# c #173E4C",
"O# c #055977",
"P# c #0078A3",
"Q# c #0698CC",
"R# c #199CCA",
"S# c #217C9D",
"T# c #184253",
"U# c #02222F",
"V# c #1C495B",
"W# c #2182A5",
"X# c #16A1D2",
"Y# c #049BD0",
"Z# c #074960",
"`# c #193B48",
" \$ c #1B3540",
".\$ c #062533",
"+\$ c #225A6F",
"\@\$ c #000E14",
"#\$ c #00A4E0",
"\$\$ c #009DD7",
"%\$ c #00506E",
"&\$ c #001721",
"*\$ c #0B2937",
"=\$ c #1F3741",
"-\$ c #183844",
";\$ c #0A4D64",
">\$ c #016A8F",
",\$ c #008BBC",
"'\$ c #0D98C9",
")\$ c #207B9D",
"!\$ c #1D4E61",
"~\$ c #0C2D3C",
"{\$ c #072735",
"]\$ c #194253",
"^\$ c #1F7797",
"/\$ c #149AC9",
"(\$ c #069DD2",
"_\$ c #0082AF",
":\$ c #05526E",
"<\$ c #153D4B",
"[\$ c #1E343D",
"}\$ c #082734",
"|\$ c #002332",
"1\$ c #003449",
"2\$ c #003E56",
"3\$ c #00435D",
"4\$ c #008BBE",
"5\$ c #00AAE9",
"6\$ c #00A2DE",
"7\$ c #00749F",
"8\$ c #000F16",
"9\$ c #072634",
"0\$ c #1A343F",
"a\$ c #223942",
"b\$ c #1B4251",
"c\$ c #08516B",
"d\$ c #006E95",
"e\$ c #0599CE",
"f\$ c #1699C8",
"g\$ c #257695",
"h\$ c #1B4759",
"i\$ c #092937",
"j\$ c #062634",
"k\$ c #23708C",
"l\$ c #1D95C0",
"m\$ c #0A9FD3",
"n\$ c #008FC1",
"o\$ c #0083B1",
"p\$ c #0080AD",
"q\$ c #006B90",
"r\$ c #07506A",
"s\$ c #1B3D4A",
"t\$ c #213842",
"u\$ c #02212F",
"v\$ c #001822",
"w\$ c #002E40",
"x\$ c #0085B6",
"y\$ c #001D2A",
"z\$ c #00090D",
"A\$ c #283235",
"B\$ c #0B2A37",
"C\$ c #1F3742",
"D\$ c #233C46",
"E\$ c #174556",
"F\$ c #055D7C",
"G\$ c #0B9DD1",
"H\$ c #1E97C3",
"I\$ c #23728F",
"J\$ c #123443",
"K\$ c #082735",
"L\$ c #20596F",
"M\$ c #2290B9",
"N\$ c #0DA1D5",
"O\$ c #0092C5",
"P\$ c #0085B4",
"Q\$ c #035370",
"R\$ c #194251",
"S\$ c #253C45",
"T\$ c #1F3641",
"U\$ c #0B2936",
"V\$ c #196E8B",
"W\$ c #0E0F0F",
"X\$ c #00121A",
"Y\$ c #001F2D",
"Z\$ c #00222F",
"`\$ c #00293A",
" % c #002F42",
".% c #182024",
"+% c #0D789D",
"\@% c #032330",
"#% c #0F2C39",
"\$% c #243C46",
"%% c #15404F",
"&% c #04536F",
"*% c #018FC1",
"=% c #1897C5",
"-% c #227694",
";% c #1A4759",
">% c #052432",
",% c #143948",
"'% c #226B87",
")% c #1D98C4",
"!% c #099ACE",
"~% c #025876",
"{% c #134253",
"]% c #213A44",
"^% c #223943",
"/% c #17637E",
"(% c #0A1418",
"_% c #00354A",
":% c #172C35",
"<% c #0D779C",
"[% c #1E3641",
"}% c #1E3640",
"|% c #124151",
"1% c #025B7A",
"2% c #018EBF",
"3% c #089BCF",
"4% c #198FB9",
"5% c #206680",
"6% c #163B4B",
"7% c #052533",
"8% c #10313F",
"9% c #1F6078",
"0% c #1B8EB7",
"a% c #0DA0D4",
"b% c #0293C7",
"c% c #025D7E",
"d% c #0B4255",
"e% c #1C3843",
"f% c #1E343E",
"g% c #102E3A",
"h% c #032331",
"i% c #16647F",
"j% c #0A232D",
"k% c #00445C",
"l% c #0D779D",
"m% c #102D3A",
"n% c #1F343E",
"o% c #213B46",
"p% c #12475A",
"q% c #01668A",
"r% c #0091C4",
"s% c #0A9DD1",
"t% c #1F8BB2",
"u% c #226077",
"v% c #0F3140",
"w% c #0D2D3B",
"x% c #215B71",
"y% c #2087AD",
"z% c #139FD1",
"A% c #0197CB",
"B% c #0086B5",
"C% c #00739B",
"D% c #0A5069",
"E% c #1D3B46",
"F% c #21363E",
"G% c #15313D",
"H% c #166682",
"I% c #0A2835",
"J% c #00739E",
"K% c #0080AF",
"L% c #005372",
"M% c #173643",
"N% c #15313E",
"O% c #253D47",
"P% c #134658",
"Q% c #045A78",
"R% c #0195C9",
"S% c #1A97C3",
"T% c #236C87",
"U% c #193F4F",
"V% c #1F5266",
"W% c #2480A1",
"X% c #1A9ECD",
"Y% c #029ACF",
"Z% c #0177A1",
"`% c #066486",
" & c #144A5D",
".& c #203B45",
"+& c #1F3842",
"\@& c #0A2935",
"#& c #007BA9",
"\$& c #005170",
"%& c #13303D",
"&& c #1A3743",
"*& c #1E3A46",
"=& c #1F3A46",
"-& c #1B3844",
";& c #14323E",
">& c #0C2A37",
",& c #052431",
"'& c #01212E",
")& c #132F3B",
"!& c #233A44",
"~& c #1F3E49",
"{& c #0D485D",
"]& c #015F81",
"^& c #017FAC",
"/& c #0582AD",
"(& c #0887B4",
"_& c #0793C5",
":& c #0F9FD2",
"<& c #089CD0",
"[& c #018DBF",
"}& c #0582AE",
"|& c #0A84AF",
"1& c #027FAB",
"2& c #0A495F",
"3& c #274753",
"4& c #37515A",
"5& c #34474F",
"6& c #0C2A38",
"7& c #092735",
"8& c #14313E",
"9& c #1D3945",
"0& c #26414C",
"a& c #253D48",
"b& c #122F3B",
"c& c #072633",
"d& c #112E3B",
"e& c #00212F",
"f& c #00648A",
"g& c #0087B9",
"h& c #007DAC",
"i& c #002636",
"j& c #042431",
"k& c #215669",
"l& c #286075",
"m& c #214D5E",
"n& c #194352",
"o& c #153946",
"p& c #15313B",
"q& c #18272D",
"r& c #1F282C",
"s& c #283439",
"t& c #30424A",
"u& c #243E49",
"v& c #183542",
"w& c #2B4652",
"x& c #2F4752",
"y& c #2E454F",
"z& c #26404B",
"A& c #17323E",
"B& c #203740",
"C& c #1D3D4A",
"D& c #0A4C64",
"E& c #1D7C9D",
"F& c #2C809E",
"G& c #296479",
"H& c #2D758E",
"I& c #1E8BB2",
"J& c #0481AD",
"K& c #0380AC",
"L& c #248CB1",
"M& c #1F566A",
"N& c #256278",
"O& c #1A404D",
"P& c #2C4956",
"Q& c #0D5B78",
"R& c #2D373B",
"S& c #36515C",
"T& c #2C444E",
"U& c #2C3F48",
"V& c #283C44",
"W& c #213841",
"X& c #17313A",
"Y& c #0E2731",
"Z& c #070B0D",
"`& c #283940",
" * c #233F4B",
".* c #2C4650",
"+* c #293940",
"\@* c #2D4047",
"#* c #1E3945",
"\$* c #264552",
"%* c #16272E",
"&* c #213A45",
"** c #00709A",
"=* c #0086B8",
"-* c #00739F",
";* c #005271",
">* c #173644",
",* c #092835",
"'* c #26A4AF",
")* c #00B6DC",
"!* c #006185",
"~* c #011319",
"{* c #131719",
"]* c #2E3C42",
"^* c #032230",
"/* c #204554",
"(* c #1B7DA1",
"_* c #07475E",
":* c #032D3C",
"<* c #032430",
"[* c #0D1E24",
"}* c #212A2D",
"|* c #2F424B",
"1* c #38525D",
"2* c #297F9F",
"3* c #01465F",
"4* c #012330",
"5* c #01232F",
"6* c #1A333C",
"7* c #2885A6",
"8* c #047097",
"9* c #0F5C77",
"0* c #2A88AB",
"a* c #01384C",
"b* c #343B3F",
"c* c #1C3844",
"d* c #2F5565",
"e* c #056B92",
"f* c #273135",
"g* c #115A75",
"h* c #011117",
"i* c #08181F",
"j* c #0F1C21",
"k* c #1D2326",
"l* c #435861",
"m* c #225468",
"n* c #012533",
"o* c #011218",
"p* c #1B2326",
"q* c #28404B",
"r* c #295669",
"s* c #011720",
"t* c #2D4049",
"u* c #004E6C",
"v* c #006186",
"w* c #00719B",
"x* c #005373",
"y* c #2E9BA2",
"z* c #00DAF3",
"A* c #006B91",
"B* c #013548",
"C* c #0081B0",
"D* c #010D11",
"E* c #232A2E",
"F* c #203A46",
"G* c #2C788D",
"H* c #01A7D7",
"I* c #061F28",
"J* c #1A2C33",
"K* c #1E4E60",
"L* c #0E6787",
"M* c #06151B",
"N* c #2D3B41",
"O* c #0F2C3A",
"P* c #2D7B99",
"Q* c #01678D",
"R* c #1C2528",
"S* c #4B5C63",
"T* c #407285",
"U* c #085774",
"V* c #243136",
"W* c #384D55",
"X* c #30454E",
"Y* c #288FB5",
"Z* c #0A0D0E",
"`* c #30454F",
" = c #315C6E",
".= c #03698F",
"+= c #22282A",
"\@= c #3A5763",
"#= c #2B4049",
"\$= c #324750",
"%= c #3B6D81",
"&= c #004560",
"*= c #24292B",
"== c #3A4F58",
"-= c #253F4B",
";= c #233F4A",
">= c #326376",
",= c #1B2224",
"'= c #3C4D55",
")= c #31515F",
"!= c #072F3F",
"~= c #1B3743",
"{= c #15323F",
"]= c #22586F",
"^= c #021219",
"/= c #2E434D",
"(= c #006287",
"_= c #00719C",
":= c #006288",
"<= c #005474",
"[= c #308990",
"}= c #00E4F9",
"|= c #007AA7",
"1= c #01141B",
"2= c #394246",
"3= c #385E6D",
"4= c #219DC7",
"5= c #00ADE1",
"6= c #010A0E",
"7= c #2B373D",
"8= c #2D8DA2",
"9= c #0082A2",
"0= c #2D3437",
"a= c #1E3B47",
"b= c #31525F",
"c= c #278AAF",
"d= c #01729C",
"e= c #0B1214",
"f= c #29414C",
"g= c #23424F",
"h= c #159CCE",
"i= c #062531",
"j= c #364A52",
"k= c #1F3B47",
"l= c #32809D",
"m= c #043D52",
"n= c #32434A",
"o= c #1B3744",
"p= c #1E8EB8",
"q= c #000F14",
"r= c #293236",
"s= c #122F3C",
"t= c #316174",
"u= c #016287",
"v= c #1C2124",
"w= c #233E4A",
"x= c #0A2836",
"y= c #366476",
"z= c #004D6B",
"A= c #21282B",
"B= c #163340",
"C= c #22404D",
"D= c #16617E",
"E= c #06161D",
"F= c #193643",
"G= c #2F5C6E",
"H= c #041F2A",
"I= c #1E3B48",
"J= c #19536C",
"K= c #071013",
"L= c #2C4550",
"M= c #005E81",
"N= c #006991",
"O= c #005575",
"P= c #00425C",
"Q= c #30757E",
"R= c #01EBFB",
"S= c #02090B",
"T= c #34464D",
"U= c #0E2C39",
"V= c #3A6875",
"W= c #09D8F6",
"X= c #006286",
"Y= c #131617",
"Z= c #2E97AD",
"`= c #007793",
" - c #273034",
".- c #0F2D3A",
"+- c #2C4E5C",
"\@- c #15A9DF",
"#- c #012633",
"\$- c #31424A",
"%- c #326377",
"&- c #058CBD",
"*- c #1A2225",
"=- c #1F3A47",
"-- c #2E505E",
";- c #0B79A2",
">- c #242F33",
",- c #2B4550",
"'- c #1D90BB",
")- c #00597B",
"!- c #012A39",
"~- c #0A1011",
"{- c #2D454F",
"]- c #316376",
"^- c #005F84",
"/- c #1B2023",
"(- c #1C3744",
"_- c #326073",
":- c #21272A",
"<- c #15323E",
"[- c #2F5464",
"}- c #054E69",
"|- c #1A2124",
"1- c #1E3946",
"2- c #2F4C59",
"3- c #0C4258",
"4- c #222B2F",
"5- c #274551",
"6- c #0F4962",
"7- c #151B1E",
"8- c #005D80",
"9- c #30636D",
"0- c #04F1FC",
"a- c #376977",
"b- c #07D5F6",
"c- c #070A0B",
"d- c #364B54",
"e- c #2F99AF",
"f- c #007693",
"g- c #102E3B",
"h- c #2E9DC2",
"i- c #003C50",
"j- c #34444B",
"k- c #337C98",
"l- c #016F98",
"m- c #173441",
"n- c #218DB5",
"o- c #122A33",
"p- c #3B525C",
"q- c #1E90BB",
"r- c #023345",
"s- c #376475",
"t- c #2C383D",
"u- c #016387",
"v- c #1B2123",
"w- c #062532",
"x- c #306073",
"y- c #013C52",
"z- c #283236",
"A- c #215A70",
"B- c #101C21",
"C- c #253F4A",
"D- c #2E4E5C",
"E- c #083B52",
"F- c #21292C",
"G- c #002839",
"H- c #00435F",
"I- c #003B55",
"J- c #002A3D",
"K- c #002231",
"L- c #2D505B",
"M- c #06F4FB",
"N- c #008DBC",
"O- c #3A4B52",
"P- c #30515F",
"Q- c #24A1CC",
"R- c #00ABE0",
"S- c #006388",
"T- c #06090B",
"U- c #374B53",
"V- c #3099AF",
"W- c #2E9BC2",
"X- c #033243",
"Y- c #364951",
"Z- c #3189AA",
"`- c #2E3A3F",
" ; c #2D87A9",
".; c #063546",
"+; c #44575F",
"\@; c #1F90BB",
"#; c #022734",
"\$; c #576D76",
"%; c #0F779E",
"&; c #131E22",
"*; c #29424D",
"=; c #345F70",
"-; c #03668C",
";; c #1B2124",
">; c #316072",
",; c #092734",
"'; c #2E657B",
"); c #2C393E",
"!; c #2C5E72",
"~; c #061A22",
"{; c #2D434D",
"]; c #315565",
"^; c #032D3F",
"/; c #29353A",
"(; c #002130",
"_; c #002637",
":; c #00344B",
"<; c #004360",
"[; c #004664",
"}; c #004563",
"|; c #003850",
"1; c #00293B",
"2; c #26434E",
"3; c #0CF0F5",
"4; c #0097C5",
"5; c #021016",
"6; c #3D4F56",
"7; c #1680A8",
"8; c #0097CE",
"9; c #0B0D0D",
"0; c #334953",
"a; c #2F98AE",
"b; c #072533",
"c; c #1F3C49",
"d; c #366E84",
"e; c #09739A",
"f; c #182428",
"g; c #28424E",
"h; c #2D8BAF",
"i; c #2F3C42",
"j; c #30819F",
"k; c #043E54",
"l; c #45565D",
"m; c #022735",
"n; c #425056",
"o; c #2D81A1",
"p; c #023244",
"q; c #34434A",
"r; c #3A6475",
"s; c #325D6F",
"t; c #02506E",
"u; c #2C657C",
"v; c #2F3D43",
"w; c #2F5D70",
"x; c #021E29",
"y; c #2F434C",
"z; c #2E596B",
"A; c #2F3F46",
"B; c #003349",
"C; c #00425E",
"D; c #004969",
"E; c #004562",
"F; c #002F44",
"G; c #002535",
"H; c #16E4E8",
"I; c #00A3CE",
"J; c #006D96",
"K; c #203B47",
"L; c #2A3336",
"M; c #2D4956",
"N; c #325D6E",
"O; c #1D6682",
"P; c #024A64",
"Q; c #142227",
"R; c #2D424B",
"S; c #2F809F",
"T; c #2C373C",
"U; c #30809F",
"V; c #35454B",
"W; c #376172",
"X; c #05678D",
"Y; c #1F272A",
"Z; c #4D7382",
"`; c #04688E",
" > c #1B2225",
".> c #315B6C",
"+> c #045371",
"\@> c #306378",
"#> c #013447",
"\$> c #2A363B",
"%> c #2F5D6F",
"&> c #021F2A",
"*> c #2A586B",
"=> c #071A23",
"-> c #2C434D",
";> c #166683",
">> c #002333",
",> c #002C3F",
"'> c #003952",
")> c #004766",
"!> c #003F5A",
"~> c #00344A",
"{> c #173744",
"]> c #1CD7DB",
"^> c #00ADD6",
"/> c #00678E",
"(> c #006084",
"_> c #001922",
":> c #171B1D",
"<> c #2A404B",
"[> c #2D96AD",
"}> c #363F44",
"|> c #2696BD",
"1> c #035D7D",
"2> c #11262F",
"3> c #2E3A40",
"4> c #27404A",
"5> c #2F6E86",
"6> c #027AA7",
"7> c #252E31",
"8> c #2E85A5",
"9> c #05374A",
"0> c #44565E",
"a> c #1F90BA",
"b> c #022736",
"c> c #314149",
"d> c #223E4B",
"e> c #1C80A5",
"f> c #05242F",
"g> c #5C747E",
"h> c #06698F",
"i> c #045472",
"j> c #305B6C",
"k> c #02435B",
"l> c #12303D",
"m> c #2D5D71",
"n> c #051A22",
"o> c #2D434C",
"p> c #254756",
"q> c #21323A",
"r> c #003348",
"s> c #003D57",
"t> c #004663",
"u> c #004462",
"v> c #002B3D",
"w> c #112F3C",
"x> c #22C9CE",
"y> c #00BADE",
"z> c #032531",
"A> c #024057",
"B> c #01435C",
"C> c #0E171B",
"D> c #2A3438",
"E> c #273F4A",
"F> c #373F43",
"G> c #28ADD8",
"H> c #3A4245",
"I> c #2D4752",
"J> c #2A5060",
"K> c #0B98CC",
"L> c #131F24",
"M> c #26404C",
"N> c #248BB1",
"O> c #0E2934",
"P> c #3C525C",
"Q> c #208EB7",
"R> c #022B3B",
"S> c #314148",
"T> c #306C83",
"U> c #025878",
"V> c #36464D",
"W> c #065572",
"X> c #305A6B",
"Y> c #045574",
"Z> c #1D2427",
"`> c #183441",
" , c #2A4B59",
"., c #0C5774",
"+, c #131B1F",
"\@, c #245A6F",
"#, c #0C191F",
"\$, c #27404B",
"%, c #00354B",
"&, c #00415D",
"*, c #003E58",
"=, c #002C40",
"-, c #27B8BD",
";, c #00C5E7",
">, c #282B2D",
",, c #455B65",
"', c #2F4A55",
"), c #2E4650",
"!, c #2C92A8",
"~, c #007794",
"{, c #2B3336",
"], c #3B6474",
"^, c #1197C8",
"/, c #023547",
"(, c #242D30",
"_, c #2F4650",
":, c #2294BF",
"<, c #02384D",
"[, c #35454C",
"}, c #2F505D",
"|, c #0C779F",
"1, c #212C31",
"2, c #28434E",
"3, c #2389AF",
"4, c #023143",
"5, c #304047",
"6, c #274654",
"7, c #127FA8",
"8, c #024A65",
"9, c #1B2022",
"0, c #2F5665",
"a, c #065B7B",
"b, c #1C2326",
"c, c #1A3642",
"d, c #163441",
"e, c #22637D",
"f, c #021E2A",
"g, c #2F4C58",
"h, c #0D4156",
"i, c #173440",
"j, c #14303D",
"k, c #00374F",
"l, c #004765",
"m, c #003C56",
"n, c #003146",
"o, c #173543",
"p, c #2BA7AD",
"q, c #00D1ED",
"r, c #0F1112",
"s, c #2A434E",
"t, c #2E879C",
"u, c #007A98",
"v, c #2E5B6D",
"w, c #1685AE",
"x, c #014C67",
"y, c #0C1E25",
"z, c #273236",
"A, c #2F6276",
"B, c #0781AF",
"C, c #132329",
"D, c #394A51",
"E, c #37505B",
"F, c #2C7591",
"G, c #053546",
"H, c #304149",
"I, c #277C9C",
"J, c #033547",
"K, c #2F424A",
"L, c #2E7089",
"M, c #01719A",
"N, c #1E2427",
"O, c #264755",
"P, c #0D5D7C",
"Q, c #1C2428",
"R, c #173340",
"S, c #2F5463",
"T, c #074760",
"U, c #121B1F",
"V, c #394A52",
"W, c #374F59",
"X, c #2C5565",
"Y, c #041B24",
"Z, c #2F4149",
"`, c #284958",
" ' c #16252C",
".' c #223A44",
"+' c #00283A",
"\@' c #003045",
"#' c #003B54",
"\$' c #004461",
"%' c #003D56",
"&' c #002B3E",
"*' c #002536",
"=' c #173A48",
"-' c #2E969D",
";' c #00D9F1",
">' c #040809",
",' c #2D414B",
"'' c #2E798C",
")' c #027A99",
"!' c #2B363A",
"~' c #264856",
"{' c #2B6C85",
"]' c #115B76",
"^' c #04171D",
"/' c #202C31",
"(' c #12303E",
"_' c #2D728C",
":' c #075E7E",
"<' c #042633",
"[' c #0E3240",
"}' c #042C3B",
"|' c #283438",
"1' c #29586A",
"2' c #123643",
"3' c #243C47",
"4' c #274856",
"5' c #12789E",
"6' c #242D31",
"7' c #244E5E",
"8' c #24343A",
"9' c #2C5768",
"0' c #073445",
"a' c #05151C",
"b' c #0D2028",
"c' c #041820",
"d' c #283338",
"e' c #183440",
"f' c #235063",
"g' c #081921",
"h' c #263C46",
"i' c #166783",
"j' c #0A3141",
"k' c #00425F",
"l' c #1B4B60",
"m' c #0D799E",
"n' c #042330",
"o' c #2A7784",
"p' c #0295B7",
"q' c #0B3646",
"r' c #13323E",
"s' c #1C343D",
"t' c #20292D",
"u' c #213740",
"v' c #285565",
"w' c #086280",
"x' c #2B3B43",
"y' c #24424F",
"z' c #1A3541",
"A' c #2E5362",
"B' c #2A505F",
"C' c #283C45",
"D' c #2E3F46",
"E' c #193541",
"F' c #183541",
"G' c #2E596A",
"H' c #11323E",
"I' c #293B42",
"J' c #0E2C3A",
"K' c #2E4B57",
"L' c #2A434D",
"M' c #28373D",
"N' c #186C8A",
"O' c #11465D",
"P' c #133544",
"Q' c #2A444F",
"R' c #1A3643",
"S' c #20404E",
"T' c #193542",
"U' c #0D2A38",
"V' c #066C90",
"W' c #183643",
"X' c #225B70",
"Y' c #0581AC",
"Z' c #297D9C",
"`' c #1E7594",
" ) c #1F7594",
".) c #238BB0",
"+) c #008CBE",
"\@) c #0D7094",
"#) c #196985",
"\$) c #314B54",
"%) c #2F454D",
"&) c #374D54",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" . + \@ # \$ % & ",
" * = - ; > # , ' ) ! ~ { ",
" ] ^ / ( _ : < # [ } | 1 / 2 3 ",
" 4 ^ / 1 5 6 7 8 9 0 a b c | 5 d / * e ",
" f g h ( i j k l m . 0 n o p q 6 r i ( s t e ",
" u v w i x j 6 - ) y z 9 A B c C D 6 E x i w F G ",
" H I 1 x j 6 J - ) K L % 0 M N O P C - J 6 E 5 Q R ",
" S T x 6 J - C U V W X Y Z n ` .W V U C - J ..x +.\@. ",
" #.\$.| 6 - C U V _ W %.&.*.# =.-.;.l O _ V U C - 6 1 >. ",
" ,.'.J ).U V _ O !.%.L ~.{.]. a N ^.L l !.O _ V /.).6 (._. ",
" :.x C V c W !.l <.L [.~.}.9 A |.y ^.1.<.l !.W c V q 2.3. ",
" 4.5.).V W !.l <.1.;.^.p 6.7.8. A 9.0.X a.;.1.<.%.!.W V ( b. ",
" c.d.K !.l <.1.;.e.f.g.h.i.j.k. l.m.n.o.h.X p.e.;.L <.l W /.q.r. ",
" s.k t.<.L ;.a.u.X v.w.&.x.y.> z.A. B.C.D.E.6.&.0.v.X p.a.;.L <.F.G.H. ",
" I.J. .L ;.a.p.X v.0.K.&.L.M.N.O.P.Q.0 z.[ R.S.T.x.6.&.~.0.v.X p.^.;.L .U. ",
" V./ 1.;.^.p.g.v.w.~.&.W.L.x.X.Y.Z.m `.=.Z Z +.+' ++\@+Y.} x.#+W.&.\$+w.v.g.p.^.;.%+&+ ",
" *+1 =+^.p.g.-+w.~.&.W.L.x.} T.;+N.>+,+'+)+!+~+ 9 {+{.]+^+++/+N.Y.T.} x.L.W.&.\$+w.v.g.p.^.L (+ ",
" _+( e.p.g.-+h.~.&.6.i.x.} T.Y.N.E.Z.++:+<+|.[+}+n 0 0 k.|+1+2+3+4+5+++Z.E.N.Y.6+} x.i.W.&.\$+h.-+g.p.=+~ ",
" 7+g ^.X 0.h.\$+&.6.i.x.} T.Y.N.8+Z.++9+:+^+0+a+b+c+d+e+f+ l.g+h+i+j+m a+0+^+:+9+++Z.E.N.Y.6+} x.i.W.k+\$+h.v.X l+m+ ",
" n+o+p h.\$+p+6.i.x.} q+Y.N.8+Z.++9+:+^+<+N |.m '+r+s+t+u+< Z v+\@ u+z w+y.O.2+B |.N 0+^+:+9+++>+8+N.x+q+} M.i.6.p+\$+h.g.y+z+ ",
" A+v p ~.p+6.i.x.} q+Y.N.8+Z.++9+B+^+C+D+|.B E+'+O.y.]+F+G+H+I+9 # , J+K+L+s+]+j+O.'+2+B |.D+0+^+:+9+++S.8+N.x+q+} M.i.6.p+~.%+M+ ",
" N+V o.6.i.M.} q+x+N.8+Z.++9+B+^+0+D+|.B E+'+O.r+O+]+s+L+[+P+Q+!+z.l. A.# \@ {+d+R+S+[+T+s+]+O+r+O.'+E+B |.D+0+^+B+9+U+S.8+N.x+q+X.M.i.6.~.V+W+ ",
" X+o.i.M.X.q+x+Y+8+S.++9+B+4+0+D+|.Z+2+'+O.`+O+]+ \@' .\@[+S++\@\@\@)+*.#\@\$\@# l.< %\@&\@{.R+*\@G+c+[+.\@=\@s+]+O+`+O.-\@2+Z+|.D+0+4+B+9+U+S.8+Y+x+q+X.M.#+;\@>\@ ",
" ,\@y x.T.q+x+Y+/+S.++9+B+4+0+D+a+Z+2+'+O.`+O+]+s+' .\@[+w+'\@+\@*\@)\@R+!\@)+*.C.~\@9 v+ v+9 {\@C.]\@^\@/\@!\@K+D.P++\@(\@w+[+.\@T+s+]+O+`+O.-\@2+Z+a+D+0+4+B+9+U+S.8+Y+x+q+T._\@/.:\@ ",
" :\@D 7 q+x+Y+/+S.U+9+<\@4+0+D+[\@Z+2+-\@}\@`+O+]+s+T+.\@[+w+'\@+\@*\@D.)\@& !\@|\@1\@{.Q+*.\$ g+2\@0 3\@4\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@5\@4\@6\@ k.I+\$ ]\@7.7\@t+8\@9\@!\@& K+D.P++\@(\@w+[+.\@T+0\@]+` `+}\@-\@2+Z+[\@D+a\@<+<\@b\@U+S./+E.x+q+_\@c\@ ",
" d\@#+Y.Y+/+S.U+:+<\@<+0+D+[\@Z+2+-\@}\@`+` ]+0\@T+.\@[+w+'\@+\@*\@D.e\@& !\@9\@|\@f\@{.7\@g\@h\@i\@P.j\@l. k\@l\@l\@l\@l\@l\@l\@G.m\@T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T m\@G.l\@l\@l\@l\@l\@l\@l\@n\@ 2\@o\@H+d+7.g\@7\@{.f\@p\@9\@!\@& K+D.*\@+\@G+w+[+.\@T+s+]+` `+}\@-\@2+Z+[\@|.a\@<+<\@b\@U+S./+Y+Y.p._+ ",
" q\@W r\@8+S.U+:+<\@<+0+|.[\@Z+2+-\@r+`+` ]+s+T+b [+c+(\@+\@*\@D.e\@& !\@9\@p\@f\@{.7\@s\@`.t\@u\@H+P.v\@l. w\@s s s s s s x\@y\@z\@A\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@B\@A\@C\@D\@E\@s s s s s s w F\@ z.G\@h+H+u\@h\@`.s\@7\@{.f\@8\@9\@!\@& K+D.*\@+\@G+c+[+b T+0\@]+` `+r+H\@2+Z+[\@|.a\@<+<\@:+U+S.E.q+I\@J\@ ",
" K\@L\@/+++:+<\@<+0+|.[\@m 2+H\@r+`+` -.0\@T+b [+c+(\@+\@*\@D.e\@& M\@9\@p\@f\@{.7\@N\@`.t\@d+&\@O\@P\@Q\@e+# w\@w R\@S\@s s s T\@U\@V\@W\@X\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Y\@Z\@`\@ #.#+#\@#s s s w ##\$#w F\@ \@ %#&#P.O\@i\@u\@h\@`.s\@7\@{.f\@8\@9\@M\@& K+D.*\@+\@G+c+[+b T+0\@-.` `+r+H\@2+m [\@|.a\@<+<\@:+++/+*#=# ",
" J\@~ q+,+<\@<+a\@|.[\@m 2+-\@r+`+` -.0\@T+b [+S+(\@+\@*\@D.K+& M\@9\@8\@f\@{.7\@s\@`.h\@d+&\@O\@-#;#Q\@>#,#Z w\@'#)#!#~#1 s s {#]#^#/#(#_#:#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#[#}#|#1#2#2.J.s s ##3#4#5#6#5 F\@ B.7#8#Q\@;#-#O\@&\@u\@h\@`.g\@7\@{.)+8\@9\@M\@& K+D.*\@i+G+S+[+b T+0\@-.` `+r+H\@b+m [\@|.N <+:+++[.9# ",
" 0#a#Y.<\@b#|.[\@m 2+H\@r+`+` \@' T+b c#S+G+i+d#: K+& M\@9\@8\@)+{.7\@g\@`.h\@u\@&\@O\@-#;#Q\@8#e#f#Q.v+ w\@g#h#i#j#k#g.| w s Q V+l#m#n#o#p#q#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#r#s#o#t#u#v#T s s w j X w#x#y#z#A#1 F\@ # j\@e#<#8#Q\@;#-#O\@&\@B#h\@`.g\@7\@{.)+8\@9\@M\@& R+: *\@i+G+S+c#b T+' \@` `+r+H\@b+m [\@|.b#5+^.C# ",
" D#E#~.b#|.m b+O.r+y.` \@' T+b w+S+G+i+d#)\@K+& F#/\@8\@)+{.^\@g\@`.h\@B#H+O\@P.;#Q\@8#<#<#e#G#k. w\@H#I#J#K#L#M#N#O#P#w s s {#2.Q#R#S#T#U#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#q#Y\@V#W#X#Y#g Q s w 5 ;.Z#`#y# \$.\$<#q#+\$1 F\@ A.\@\$o\@e#<#<#8#Q\@&#P.O\@H+B#h\@`.g\@^\@j.)+8\@/\@M\@& R+)\@d#i+G+S+w+b T+' \@` y.r+O.'+Z+|.>+E #\$ ",
" \$\$/.%\$2+H\@r+y.` \@' T+b w+S+G+P+d#)\@K+& F#|\@8\@)+j.^\@g\@7.h\@B#H+O\@P.;#Q\@8#<#<#<#<#e#&\$# w\@H#I#<#<#<#q#*\$=\$-\$;\$>\$= w s / T ,\$'\$)\$!\$~\$U#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#q#{\$]\$^\$/\$(\$v#_\$/ s R\@3#:\$<\$[\$ \$}\$q#<#<#<#q#+\$1 F\@ n G\@e#<#<#<#<#8#Q\@|\$P.O\@H+B#h\@`.g\@^\@j.)+8\@|\@M\@1\$R+)\@d#P+G+S+w+2\$T+' \@3\$y.r+H\@E+#+4\$5\$ ",
" 6\$7\$m r+y.3\$ \@' T+b w+S+G+i+D.)\@K+& F#|\@8\@)+j.^\@g\@7.h\@u\@H+O\@P.;#Q\@8#<#<#<#<#<#e#o\@8\$Z w\@H#I#<#<#<#<#<#J#9\$0\$a\$b\$c\$d\$5 w s J.,\$e\$f\$g\$h\$i\$q#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#j\$T#k\$l\$m\$n\$o\$p\$s w = q\$r\$s\$t\$Z\@u\$<#<#<#<#<#<#q#+\$1 F\@ 9 v\$e#<#<#<#<#<#<#8#Q\@&#P.O\@H+B#h\@7.g\@^\@w\$)+8\@|\@F#!\@R+)\@d#P+G+S+w+2\$L+' \@]+y.r+%\$x\$ ",
" ..|.y.]+ \@' L+b w+S+G+P+D.)\@R+!\@F#|\@8\@)+w\$^\@g\@7.h\@B#H+O\@P.Y Q\@8#<#<#<#<#<#<#<#e#y\$z\$A\$w\@H#I#<#<#<#<#<#<#<#<#q#B\$C\$D\$E\$F\$= w s / T v G\$H\$I\$J\$q#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#J#K\$L\$M\$N\$O\$P\$p\$s w y+*#Q\$R\$S\$T\$U\$<#<#<#<#<#<#<#<#<#q#+\$1 V\$W\$X\$Y\$<#<#<#<#<#<#<#<#8#Z\$&#P.O\@H+B#`\$7.g\@^\@w\$ %1\@|\@F#!\@R+)\@D.P++\@'\@w+2\$L+' \@]+y.++.. ",
" K D+` \@' .\@[+w+'\@G+P+D.)\@R+!\@F#|\@8\@ %w\$N\@g\@t\@d+B#H+h+P.&#Z\$8#<#<#<#<#<#<#<#<#<#e#7#.%+%H#I#<#<#<#<#<#<#<#<#<#<#<#\@%#%\$%%%&%d\$y+w s p\$G.*%=%-%;%9\$<#<#<#<#<#<#<#<#<#<#<#<#<#<#>%,%'%)%!%(+Q s w ##).~%{%]%^%Z\@r#<#<#<#<#<#<#<#<#<#<#<#q#+\$1 /%(%}+e#<#<#<#<#<#<#<#<#<#8#Z\$&#P.O\@H+i\@d+7.g\@N\@w\${.1\@|\@F#!\@_%)\@D.P++\@'\@w+[+.\@' s+` /+J ",
" h /+-.' .\@2\$w+'\@G+P+D.)\@R+!\@9\@|\@1\@ %w\$N\@g\@7.`\$B#H+h+P\@&#Z\$8#<#<#<#<#<#<#<#<#<#<#<#Y\$:%<%H#I#<#<#<#<#<#<#<#<#<#<#<#<#<#q#Z\@[%}%|%1%q ##w s o\$2%3%4%5%6%7%<#<#<#<#<#<#<#<#\@%8%9%0%a%b%l\@p\$s 1 - c%d%e%f%g%h%<#<#<#<#<#<#<#<#<#<#<#<#<#<#q#+\$1 i%j%e#<#<#<#<#<#<#<#<#<#<#<#8#Z\$&#P\@h+H+B#d+7.g\@N\@w\${.1\@|\@9\@!\@_%)\@D.P++\@'\@w+[+.\@' k%-+ ",
" u.]+L+[+w+'\@G+P+D.)\@R+!\@9\@|\@1\@ %w\$N\@g\@7.d+B#H+h+P\@&#Z\$8#<#<#<#<#<#<#<#<#<#<#<#<#e#I#l%H#I#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#u\$m%n%o%p%q%y+w s p\$l\@r%s%t%u%v%q#<#<#u\$w%x%y%z%A%B%Q s s ##C%D%E%F%G%:#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#q#+\$1 H%I%<#<#<#<#<#<#<#<#<#<#<#<#<#8#Z\$&#P\@h+H+i\@d+7.g\@N\@w\${.1\@|\@9\@!\@& )\@D.P++\@'\@w+2\$T+'+J% ",
" K%L%L+w+'\@+\@*\@D.e\@R+!\@9\@|\@1\@{.w\$N\@Q+t\@d+i\@H+-#P\@&#Z\$<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#M%l%H#I#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#:#N%O%P%Q%) ##w s p\$V+R%S%T%U%V%W%X%Y%]#J.s w 1 Z%`% &.&+&9\$<#<#<#<#q#q#<#<#<#<#<#<#<#<#<#<#<#<#<#<#q#+\$1 H%\@&<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#Z\$&#P\@-#H+i\@d+t\@`.N\@w\${.f\@|\@9\@!\@& )\@D.*\@+\@'\@w+]+[.c\@ ",
" #&\$&[+G+P+D.e\@R+!\@9\@|\@1\@{.7\@N\@Q+t\@d+i\@O\@-#;#&#Z\$<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#M%l%H#I#<#<#\@%*\$%&&&*&=&-&;&>&,&'&<#<#<#<#<#<#q#u\$>%)&!&~&{&]&J 1 ^&/&(&_&:&<&[&o\$}&|&1&= p.2&3&4&5&6&9\$7&Y\@Z\@8&9&0&a&b&u\$>%9\$:#'&<#<#<#<#<#c&d&>%q#+\$1 H%\@&<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#e&]\@;#-#O\@i\@d+t\@`.N\@7\@{.f\@|\@9\@!\@& e\@D.i+G+` f&g& ",
" h&6.`+'\@D.R+!\@9\@|\@f\@{.7\@N\@`.h\@d+i\@i&-#;#&#e&<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#M%l%H#I#<#j&k&l&m&n&o&p&q&r&s&t&u&Y\@q#<#<#:#v&w&x&y&z&8&U\$A&B&C&D&E&F&G&H&I&J&s K&L&M&N&O&B&L#P&Q&R&S&T&U&V&V&W&X&Y&Z&`& *.*+*\@*#*:#<#<#<#h%\$*%*&*r#+\$1 H%Y\@<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#e&]\@;#-#O\@i\@d+h\@`.N\@7\@{.f\@|\@9\@1+K++\@]+>+**=* ",
" m\@-*y ;*=\@& |\@1\@{.7\@N\@`.h\@d+i\@O\@-#;#&#e&<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#>*l%H#I#<#,*'*)* .;.y !*Y.m )+~*{*]*9&^*q#/*(*_*:*<*[*}*|*%&q#}\$1*2*3*4*5*6*7*8*9*0*a*b*c*q#r#d*e*f*g*)+Z\$*\@j.h*i*j*k*l*m*n*~*o*p*q*:#<#<#>&r*s*t*:#+\$1 H%Y\@<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#e&]\@;#-#O\@i\@d+h\@`.N\@7\@{.1\@9\@G+u*v*w*! ",
" <.x*w+9\@{.N\@Q+h\@d+&\@O\@-#;#&#e&<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#>*l%H#I#<#K#y*z*6 c A*5+B*]&C*1.'\@D*E*F*.\$G*H*I*J*K*L*E.M*N*O*>&P*Q*R*S*T*U*V*W*X*Y*X.Z*`*\@%^* =.=+=\@=#=\$=%=&=*===-=;=>=a*,='=)=!=}*~=J#<#{=]=^=/=h%+\$1 H%Y\@<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#8#Q\@;#-#O\@&\@d+h\@Q+^\@8\@P+Z+(=_= ",
" :=<=]+|\@Q+d+i\@O\@-#;#]\@e&<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#>*l%H#I#<#>%[=}=|=c ;\@1=2=3=4=5= .|.6=7={=8=9=0=h#a=b=c=d=e=f=g=h=i=j=Z\@k=l=m=n=o=p=[.q=r=s=:#t=u=v=w=x=*\$y=z=A=B=q#C=D=E=j=B\$F=G=H=t&.\$<#I=J=K=L=r#+\$1 H%Y\@<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#8#Q\@;#-#O\@i\@h\@w\$w+5+M=N= ",
" v*O=P=/\@`\$O\@;#&#Z\$<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#>*l%H#I#<#\@%Q=R=s c &.S=T=U=V=W=y+X=f\@Y=L=Z=`= -.-<#h%+-\@-#-\$-%-&-*-=-J#U#--;->-,-'-)-!-~-{-.\$]-^-/-(-<#:#_-b#:-<-r#[-}-|-1-<#^*2-3-4-8&q#5-6-7-k=q#+\$1 H%Y\@<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#8#Z\$&#P.i\@{.2\$u*8- ",
" \$&`+D. %d+|\$e&<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#>*l%H#I#<#r#9-0-B%K L\@S=t&,*a-b-i X=m c-d-e-f- -#%<#<#g-h-i-j-k-l-r=.-<#<#m-n-o-p-q-r-s-& t-s=t=u-v-(-<#:#_-b#:-;&w-x-y-z-O*<#<#v&A-B-C-^*D-E-F-%&q#+\$1 H%Y\@<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#e&Q\@G-8\@d#P=z= ",
" H\@H-I-J-K-e&e&<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#>*l%H#I#<#u\$L-M-N-**L\@S=O-P-Q-R-!.S-0+T-U-V-f- -#%<#q#v&W-X-Y-Z-; `-,*<#<#6& ;.;+;\@;#;\$;%;&;*;=;-;;;(-<#:#>;u*:-<-,;';)+);7&<#<#Z\@!;~;{;.\$];^;/;x=q#+\$1 H%Y\@<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#e&e&(;_;:;<;[; ",
" };|;1;K-e&e&<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#>*l%H#I#<#J#2;3;4;**-+5;6;7;8;D =+!*' 9;0;a;f- -.-b;c;d;e;f;g;h;/+i;K#<#<#7&j;k;l;\@;m;n;o;p;q;r;-;;;(-<#h%s;t;:-<-,*u;7\@v;K#<#<#,*w;x;y;U\$z;'&A;>%q#+\$1 H%Y\@<#<#<#<#<#<#<#<#<#<#<#<#<#<#e&e&K-_;B;C;D; ",
" E;I-F;G;(;e&<#<#<#<#<#<#<#<#<#<#<#<#<#>*l%H#I#<#J#a=H;I;/.L 4+b#E J;e.;\@Y.m.E*K;Z=f-L;M;N;O;P;Q;R;Z\@S;y T;U\$<#<#7&U;k;l;\@;m;V;W;X;Y;Z;`; >(-<#^*.>+>A=<-c&\@>#>\$>Y\@<#<#K\$%>&>y;Z\@*>=>->u\$q#+\$1 ;>Y\@<#<#<#<#<#<#<#<#<#<#<#<#e&(;>>,>'><; ",
" )>!>~>t\@K-e&e&<#<#<#<#<#<#<#<#<#<#{>l%H#I#<#<#m-]>^>U 1. .[.L />(>B _>:><>U=[>f-}>|>1>2>3>4>}\$:#5>6>7>%&<#<#B\$8>9>0>a>b>c>d>e>f>g>h> >(-<#^*.>i>A={=:#j>k>7>l><#<#B\$m>n>o>K\$p>q>8&<#q#+\$1 ;>Y\@<#<#<#<#<#<#<#<#<#<#e&Q\@_;r>s>t> ",
" u>|;v>P\@e&e&<#<#<#<#<#<#<#<#>*l%H#I#<#<#w>x>y>C %+/+z>A>B>m;C>D>E>c&,*[>f-F>G>h.H>I>.\$<#q#J>K>L>M>q#<#{=N>O>P>Q>R>S>U=T>U>V>W>v-(-<#^*X>Y>Z>`>u\$ ,.,+,M>q#<#B=\@,#,\$,u\$>&.-u\$<#q#+\$1 H%\@&<#<#<#<#<#<#<#<#e&K-1;%,&, ",
" [;*,=,|\$e&e&<#<#<#<#<#<#I#l%H#I#<#<#6&-,;,7\$%+e\@>,,,',),z&.-r#<#}\$!,~,{,],^,/,(,_,w>\@%B=:,<,[,6&h%},|,1,2,3,4,5,.\$6,7,8,!-9,~=<#r#0,a,b,c,<#d,e,f,j-B\$:#g,h,r&i,I%j,.\$<#<#q#+\$1 H%I%<#<#<#<#<#e&e&K-G-k,}; ",
" l,m,n,G->>Q\@e&<#<#<#o,l%H#I#<#<#K\$p,q,J <.` r,s,\@%u\$J#<#<#<#.\$t,u, -m-v,w,x,y,z,\$%7&A,B,C,D,E,F,G,H,l>I,J,K,h%p#L,M,>#N,m-<#q#O,P,Q,R,<#>%S,T,U,V,W,X,Y,Z,6&`, '.'q#<#q#+\$1 H%Y\@e&e&e&K-P\@+'\@'#'\$' ",
" )>H-%':;F;&'+'*'='l%H#I#<#<#w--';'c X='+>','r#<#<#<#<#<#:#'')'!'B\$K#~'{']'^'/',*('_':'<'['}'|'`>>%1'2'3'q#U#4'5'i\@6'g-<#<#('7'8'>&<#<#%&9'0'a'b'c'd'e'x=f'g'h'u\$<#q#+\$1 i'j'&'F;B;k,%'H-l, ",
" k'C;*,l'm'H#I#<#<#n'o'p'q'r's't'u'^*<#<#<#<#<#u\$v'w'x'w-<#r#.-y's,z'r#q#l>A'B'C'D'E'r#<#*\$F'}\$<#<#x=G'H'I'b;<#<#q#J'Z\@q#<#<#q#l>K'L'M'D'F'r#^*I=S\$.-<#<#q#+\$1 N'O'k' ",
" w\@H#I#<#<#J#P' ,Q'w=R's=.\$<#<#<#<#<#<#<#Z\@S'N%q#<#<#<#<#q#<#<#<#<#:#x=*\$>%J#<#<#<#<#<#<#<#<#7&T'U'J#<#<#<#<#<#<#<#<#<#<#h%x=*\$>%J#<#<#q#r#<#<#<#q#+\$1 F\@ ",
" w\@H#I#<#<#<#<#q#J#<#<#<#<#<#<#<#<#<#<#<#<#u\$J#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#q#+\$1 F\@ ",
" w\@H#I#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#q#+\$1 F\@ ",
" w\@H#I#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#<#q#+\$1 F\@ ",
" w\@V'W'J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#J#u\$X'1 F\@ ",
" w\@Y'Z'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`' ).)Q F\@ ",
" w\@_\$,\$+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)+)v#2.s F\@ ",
" \@)/./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././.#) ",
" \$)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)%)&) ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "
);
if (!$ARGV[0]) {
$getcmd = "wget";
@test=("$getcmd --version >$builddir/test");
if (system(@test) != 0) {
print("Could not find $getcmd, please supply me with an internet fetching utility like\nncftpget at the command line, for example:\nperl ProntoInstaller.pl ncftpget\n");
exit;
} else {
print("Found $getcmd :)\n");
}
}
unless (eval 'use Gtk; init Gtk;') { &installgtk }
else { &checkgtkversion }
sub checkgtkversion {
$ver = $Gtk::VERSION;
$reqver = 0.7003;
if ($ver >= $reqver) { &startgui("0"); } else { &installgtk("Old") }
}
sub installgtk {
my ($flag) = @_;
if (defined $flag and $flag eq "Old") {
print("Your Gtk::Perl version was $Gtk::VERSION, while pronto requires $reqver\nFetching the appropriate version\n");
} else {
print ("No Gtk::Perl was found, Fetching Gtk-Perl ... \n");
}
if ($< != 0) { die "I wanted to install Gtk::Perl for you but you need to be root\n";}
#check for Gtk+ headers
my $test = system("gtk-config --cflags");
if ($test !=0) {
die "You need the Gtk+ headers installed in order for me to compile Gtk::Perl\nand you dont have them !\n";
}
if (-f "$builddir/gnome-perl.tar.gz") { $cmd = "cd $builddir; $untar gnome-perl.tar.gz"
} else {
if ($getcmd =~/ftp/) { $cmd = "cd $builddir; $getcmd $cyberftp/gnome-perl.tar.gz ; sleep 5 ;$untar gnome-perl.tar.gz";} else {
$cmd = "cd $builddir; $getcmd $cyberdeck/gnome-perl.tar.gz ; sleep 5 ;$untar gnome-perl.tar.gz";}
}
system($cmd);
print ("Compiling Gtk-Perl ... \n");
$cmd2 = "cd $builddir/gnome-perl/; $compile";
system($cmd2);
print("Compiling GtkXmHTML...\n");
$cmd3 = "cd $builddir/gnome-perl/GtkXmHTML; $compile";
system($cmd3);
print("Done, firing up the GUI ...\n");
&initgtk;
}
sub initgtk {
unless (eval 'use Gtk; init Gtk;;') { die $@ };
$newgtk = 1;
&startgui("$newgtk");
}
sub startgui {
my ($newgtk)=@_;
$main = new Gtk::Window("toplevel");
$main->set_title("Pronto! Installer ...");
$main->set_policy(1,1,0);
$main->set_position(-mouse);
$main->set_default_size('210','200');
$main->signal_connect("delete_event" => \&Gtk::false);
$main->signal_connect("destroy" => sub { $main->destroy ; Gtk->exit(0); });
$main->show;
$window = $main->window;
$bg = $main->style->bg('normal');
($about_pixmap, $about_mask) = Gtk::Gdk::Pixmap->create_from_xpm_d($window, $bg, @about_xpm);
$main->{'vbox'} = new Gtk::VBox(0,0);
$main->{'vbox'}->show;
$main->{'hbox'} = new Gtk::HBox(0,0);
$main->{'hbox'}->show;
$main->add($main->{'vbox'});
$main->{'phbox'} = new Gtk::HBox(0,0);
$main->{'phbox'}->show;
$main->{'pixmap'} = new Gtk::Pixmap($about_pixmap, $about_mask);
$main->{'pixmap'}->show;
$main->{'phbox'}->pack_start($main->{'pixmap'},1,0,0);
$main->{'vbox'}->pack_start($main->{'phbox'},1,0,0);
$main->{'vbox'}->pack_start($main->{'hbox'},1,0,0);
$label = new Gtk::Label(" Pronto! Installer ");
$label->set_alignment(0.0,0.5);
$label->show;
$main->{'hbox'}->pack_start($label,1,0,0);
$main->{'abort'} = new Gtk::Button("Abort");
$main->{'abort'}->signal_connect("clicked" => sub { $main->destroy; Gtk->exit(0);});
$main->{'abort'}->show;
$main->{'radiobox'} = new Gtk::HBox(0,0);
$main->{'vbox'}->pack_start($main->{'radiobox'},0,0,0);
$main->{'hbox2'} = new Gtk::HBox(0,0);
$main->{'hbox2'}->show;
$main->{'vbox'}->pack_start($main->{'hbox2'},0,0,0);
$main->{'hbox2'}->pack_start($main->{'abort'},1,1,0);
$main->{'go'} = new Gtk::Button("Go");
if ($< == 0) {
$main->{'go'}->signal_connect("clicked" => sub { if (defined $newgtk) { $main->{'go'}->hide; &sd ; &go("$newgtk") } else { $main->{'go'}->hide; &sd ; &go } });
} else {
$main->{'go'}->signal_connect("clicked" => sub { $label->set_text("You need to be root ..."); });
}
$main->{'go'}->show;
$main->{'hbox2'}->pack_start($main->{'go'},1,1,0);
}
sub go {
my ($newgtk)=@_;
if (defined $newgtk and $newgtk == 1) {
&checkforxmhtml("$newgtk");
} else {
$newgtk = 0; &checkforxmhtml("$newgtk");
}
&check("Date::Manip","SBECK","DateManip-5.40.tar.gz","DateManip-5.40",5.39);
&check("DBI","TIMB","DBI-1.14.tar.gz","DBI-1.14",1.14);
&check("Text::CSV_XS","JWIED","Text-CSV_XS-0.20.tar.gz","Text-CSV_XS-0.20",0.20);
&check("SQL::Statement","JWIED","SQL-Statement-0.1016.tar.gz","SQL-Statement-0.1016",0.1016);
&check("DBD::CSV","JWIED","DBD-CSV-0.1030.tar.gz","DBD-CSV-0.1030",0.1022);
&check("MIME::Base64","GAAS","MIME-Base64-2.12.tar.gz","MIME-Base64-2.12",2.11);
&check("HTML::Parser","GAAS","HTML-Parser-3.26.tar.gz","HTML-Parser-3.26",3.08);
&check("IO::Wrap","ERYQ","IO-stringy-2.108.tar.gz","IO-stringy-2.108",1.2);
&check("MIME::Parser","ERYQ","MIME-tools-5.411a.tar.gz","MIME-tools-5.411",5);
&check("Mail::Header","GBARR","MailTools-1.1401.tar.gz","MailTools-1.1401",1.14);
&check("MIME::Types","O/OK/OKAMOTO","MIME-Types-0.02.tar.gz","MIME-Types-0.02",0.02);
&check("URI::URL","GAAS","URI-1.19.tar.gz","URI-1.19",5);
&check("IO::Socket","GBARR","IO-1.20.tar.gz","IO-1.20",1.20);
&check("Lingua::Ispell","J/JD/JDPORTER","Lingua-Ispell-0.07.tar.gz","Lingua-Ispell-0.07",0.07);
$status_dialog->{'statuslabel'}->set_text("Waiting for user Input");
&dopronto;
}
sub dopronto {
$label->set_text("Done Installing modules\nWould you like\n install Pronto from \ntar.gz or RPM?");
$main->{'abort'}->destroy;
$main->{'go'}->destroy;
$main->{'tar'} = new Gtk::RadioButton("Tar");
$main->{'tar'}->signal_connect("toggled" => sub { $main->{'location'}->show; $main->{'entry'}->show});
$main->{'rpm'} = new Gtk::RadioButton("RPM", $main->{'tar'});
$main->{'rpm'}->signal_connect("toggled" => sub { $main->{'location'}->hide; $main->{'entry'}->hide });
$main->{'tar'}->show;
$main->{'rpm'}->show;
$main->{'radiobox'}->pack_start($main->{'tar'},1,0,0);
$main->{'radiobox'}->pack_start($main->{'rpm'},1,0,0);
$main->{'radiobox'}->show;
$main->{'location'} = new Gtk::Label("Prefix ");
$main->{'location'}->show;
$main->{'hbox2'}->pack_start($main->{'location'},0,0,0);
$main->{'entry'} = new Gtk::Entry;
$main->{'entry'}->set_text("/usr");
$main->{'entry'}->set_editable(1);
$main->{'entry'}->set_usize(60,20);
$main->{'entry'}->show;
$main->{'hbox2'}->pack_start($main->{'entry'},0,1,0);
$main->{'install'} = new Gtk::Button("Install");
$main->{'install'}->signal_connect("clicked", sub { &install });
$main->{'install'}->show;
$main->{'hbox2'}->pack_end($main->{'install'},0,1,0);
}
sub install {
if ($main->{'tar'}->active) {
$prefix = $main->{'entry'}->get_text;
&fetchpronto("$prefix", "tar");
} elsif ($main->{'rpm'}->active) {
&fetchpronto("", "rpm");
}
$main->{'tar'}->destroy;
$main->{'rpm'}->destroy;
$main->{'location'}->destroy;
$main->{'install'}->destroy;
$main->{'pixmap'}->destroy;
$main->{'entry'}->destroy;
$status_dialog->destroy;
$label->set_text("Finished ...\n You may want to clean\n the contents\n of $builddir\n after making sure \nthat Pronto runs fine");
$main->{'start'} = new Gtk::Button("Start pronto");
$main->{'start'}->signal_connect("clicked" => sub { system("pronto"); });
$main->{'start'}->show;
$main->{'hbox2'}->pack_start($main->{'start'},1,1,0);
}
sub check {
my ($test,$id,$file,$dir,$wantedver) = @_;
$tmpinstalled = 0;
$tmp = "use $test;";
eval $tmp; $tmpinstalled = 1 unless $@;
#found the module but its old
if ($tmpinstalled == 1 && $test->VERSION < $wantedver) {
print("Found $test ". $test->VERSION . ", I need $wantedver, installing it\n");
}
#found the module and its good
if ($tmpinstalled == 1 && $test->VERSION >= $wantedver) {
print ("Found $test ". $test->VERSION ." Good\n");
$label->set_text("Found $test\n");
$status_dialog->{'statuslabel'}->set_text("Found $test, on to the next module");
while (Gtk->events_pending) { Gtk->main_iteration; }
return 1;
} else {
#get it, we need it.
if (-f "$builddir/$file") {
open(TMP, "cd $builddir ; $untar $file 2>&1 |");
$status_dialog->{'statuslabel'}->set_text("Found $test in $builddir");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
#html parser asks a question on perl 5.7 and above.. fix it !
if ($test eq "HTML::Parser" && $] >= 5.007) {
make_new_parser_make_file($dir);
}
$status_dialog->{'statuslabel'}->set_text("Generating Makefile for $test");
open(TMP, "cd $builddir/$dir ; perl Makefile.PL 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
$status_dialog->{'statuslabel'}->set_text("Running Make ... ");
open(TMP, "cd $builddir/$dir ; make 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
$status_dialog->{'statuslabel'}->set_text("Installing $test");
open(TMP, "cd $builddir/$dir ; make install 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
return 1;
} else {
print("Fetching $test\n");
$status_dialog->{'statuslabel'}->set_text("Fetching $test");
$label->set_text("Fetching $test");
open(TMP, "cd $builddir ; $getcmd $mirror/$id/$file 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
$status_dialog->{'statuslabel'}->set_text("untarring $test");
open(TMP, "cd $builddir ; $untar $file 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
print ("Compiling $test\n");
$status_dialog->{'statuslabel'}->set_text("Generating Makefile $test");
$label->set_text("Compiling $test");
open(TMP, "cd $builddir/$dir ; perl Makefile.PL 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
$status_dialog->{'statuslabel'}->set_text("Compiling $test");
open(TMP, "cd $builddir/$dir ; make 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
$status_dialog->{'statuslabel'}->set_text("Installing $test");
open(TMP, "cd $builddir/$dir ; make install 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
}
}
}
sub make_new_parser_make_file
{
my ($dir) = @_;
print("making makefile\n");
open(OUT, ">$builddir/$dir/Makefile.PL");
my $tmp=<<"EOF"
require 5.004;
use strict;
use ExtUtils::MakeMaker;
my \@extra;
my \@define;
my \$ans = "y"; #prompt("Do you want to compile with support for marked sections?", "yes");
if (\$ans =~ /^y(es)?\$/i) {
push(\@define, "-DMARKED_SECTION");
}
push(\@extra, "DEFINE" => "\@define") if \@define;
WriteMakefile(
NAME => 'HTML::Parser',
VERSION_FROM => 'Parser.pm',
H => [ "hparser.h", "hctype.h", "tokenpos.h", "pfunc.h",
"hparser.c", "util.c",
],
PREREQ_PM => {
'HTML::Tagset' => 3,
},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
\@extra,
);
sub MY::postamble
{
'
pfunc.h : mkpfunc
\$(PERL) mkpfunc >pfunc.h
hctype.h : mkhctype
\$(PERL) mkhctype >hctype.h
'
}
EOF
;
print OUT $tmp;
close(OUT);
return;
}
sub checkforxmhtml {
my ($newgtk) = @_;
$tmpinstalled = 0;
$tmp = "use Gtk::XmHTML;";
eval $tmp; $tmpinstalled = 1 unless $@;
if ($tmpinstalled == 1) { print("Found Gtk::XmHTML\n");
$label->set_text("Found Gtk::XmHTML");
$status_dialog->{'statuslabel'}->set_text("Found Gtk::XmHTML, on to the next module");
return 1;
} else {
if ($newgtk == 1) {
print ("Using Freshly built Gtk to build GtkXmHTML\n");
$label->set_text("Building Gtk::XmHTML");
$status_dialog->{'statuslabel'}->set_text("Building Makefile for Gtk::XmHTML");
open(TMP, "cd $builddir/gnome-perl/GtkXmHTML; perl Makefile.PL 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
$status_dialog->{'statuslabel'}->set_text("Compiling Gtk::XmHTML");
open(TMP, "cd $builddir/gnome-perl/GtkXmHTML; make 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
$status_dialog->{'statuslabel'}->set_text("Installing Gtk::XmHTML");
open(TMP, "cd $builddir/gnome-perl/GtkXmHTML; make install 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
return 1;
} else {
$tmpinstalled = 0;
$tmp = "use Gtk::XmHTML;";
eval $tmp; $tmpinstalled = 1 unless $@;
if ($tmpinstalled == 1) {
print ("Found Gtk::XmHTML\n");
$label->set_text("Found Gtk::XmHTML");
$status_dialog->{'statuslabel'}->set_text("Found Gtk::XmHTML, on to the next module");
return 1
} else {
print ("Fetching Gtk::XmHTML ... \n");
$label->set_text("Fetching Gtk::XmHTML ... ");
$status_dialog->{'statuslabel'}->set_text("Fetching Gtk::XmHTML");
if ($getcmd =~/ftp/) {
open(TMP, "cd $builddir; $getcmd $cyberftp/gnome-perl.tar.gz");
} else {
open(TMP, "cd $builddir ; $getcmd $cyberdeck/gnome-perl.tar.gz 2>&1 |");}
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
$label->set_text("Untarring Gtk::XmHTML ... ");
$status_dialog->{'statuslabel'}->set_text("Untarring Gtk::XmHTML");
open(TMP, "cd $builddir ; $untar gnome-perl.tar.gz 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
$label->set_text("Making Gtk::XmHTML ... ");
$status_dialog->{'statuslabel'}->set_text("Making Gtk::XmHTML");
open(TMP, "cd $builddir/gnome-perl ; perl Makefile.PL 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
open(TMP, "cd $builddir/gnome-perl; make 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
open(TMP, "cd $builddir/gnome-perl; make install 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
open(TMP, "cd $builddir/gnome-perl/GtkXmHTML; perl Makefile.PL 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
open(TMP, "cd $builddir/gnome-perl/GtkXmHTML; make 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
$label->set_text("Installing Gtk::XmHTML ... ");
$status_dialog->{'statuslabel'}->set_text("Installing Gtk::XmHTML");
open(TMP, "cd $builddir/gnome-perl/GtkXmHTML; make install 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
}
}
}
}
sub fetchpronto {
my ($prefix, $form) = @_;
if ($form eq "tar") {
if (-f "$builddir/pronto-$prontoversion.tar.gz") {
print ("Found pronto-$prontoversion.tar.gz in $builddir, using that\n");
$label->set_text("Found local pronto $prontoversion\n");
$status_dialog->{'statuslabel'}->set_text("Using local copy of Pronto $prontoversion");
$i = 0;
open(TMP, "cd $builddir ; $untar pronto-$prontoversion.tar.gz 2>&1 |");
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
print ("Installing pronto $prontoversion\n");
$label->set_text("Installing pronto $prontoversion");
$status_dialog->{'statuslabel'}->set_text("Installing pronto $prontoversion");
open(TMP, "cd $builddir/pronto-$prontoversion ; make install PREFIX=$prefix 2>&1 |");
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
return 1;
} else {
print("Fetching pronto $prontoversion");
$label->set_text("Fetching pronto $prontoversion");
$status_dialog->{'statuslabel'}->set_text("Fetching pronto $prontoversion");
if ($getcmd =~/ftp/) {
open(TMP, "cd $builddir; $getcmd $cyberftp/pronto-$prontoversion.tar.gz 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
} else {
open(TMP, "cd $builddir; $getcmd $cyberdeck/pronto-$prontoversion.tar.gz 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
}
$status_dialog->{'statuslabel'}->set_text("untarring pronto $prontoversion");
open(TMP, "cd $builddir ; $untar pronto-$prontoversion.tar.gz 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
$status_dialog->{'statuslabel'}->set_text("installing pronto $prontoversion");
open(TMP, "cd $builddir/pronto-$prontoversion ; make install PREFIX=$prefix 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
return 1;
}
}
if ($form eq "rpm") {
if (-f "$builddir/pronto-nomodules-$prontoversion-1.noarch.rpm") {
print ("Found pronto $prontoversion RPM in $builddir, using that\n");
$label->set_text("Found local pronto $prontoversion\n");
$status_dialog->{'statuslabel'}->set_text("Using local copy of pronto $prontoversion");
$i = 0;
open(TMP, "cd $builddir ; rpm -Uvh pronto-nomodules-$prontoversion-1.noarch.rpm 2>&1 |");
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
return 1;
} else {
print("Fetching pronto $prontoversion");
$label->set_text("Fetching pronto $prontoversion");
$status_dialog->{'statuslabel'}->set_text("Fetching pronto $prontoversion");
if ($getcmd =~/ftp/) {
open(TMP, "cd $builddir; $getcmd $cyberftp/pronto-nomodules-$prontoversion-1.noarch.rpm 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
} else {
open(TMP, "cd $builddir; $getcmd $cyberdeck/pronto-nomodules-$prontoversion-1.noarch.rpm 2>&1 |");
$i = 0;
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
}
$status_dialog->{'statuslabel'}->set_text("installing pronto $prontoversion");
$i = 0;
open(TMP, "cd $builddir ; rpm -Uvh pronto-nomodules-$prontoversion-1.noarch.rpm 2>&1 |");
while (<TMP>) {
$status_dialog->{'progressbar'}->set_value($i++);
while (Gtk->events_pending) { Gtk->main_iteration; }
}
close TMP;
}
}
}
sub sd {
$status_dialog = new Gtk::Dialog;
$status_dialog->signal_connect("destroy" => sub { $status_dialog->destroy; });
$status_dialog->signal_connect("delete_event" => sub { $status_dialog->destroy; });
$status_dialog->set_title("Working !");
$status_dialog->position(-mouse);
$status_dialog->border_width(5);
$sd_vbox=new Gtk::VBox(0,5);
$sd_vbox->border_width(5);
$status_dialog->vbox->pack_start($sd_vbox,1,1,0);
$sd_vbox->show;
$status_dialog->{'statuslabel'}=new Gtk::Label "Preparing ...";
$status_dialog->{'statuslabel'}->set_alignment(0.5,0.5);
$sd_vbox->pack_start($status_dialog->{'statuslabel'},0,1,0);
$status_dialog->{'statuslabel'}->show;
$status_dialog->{'progressbar'}=new Gtk::ProgressBar;
$status_dialog->{'progressbar'}->set_usize(200,20);
$status_dialog->{'progressbar'}->set_show_text(1);
$status_dialog->{'progressbar'}->set_text_alignment(0.5,0.5);
$status_dialog->{'progressbar'}->set_activity_mode('1');
$status_dialog->{'progressbar'}->set_activity_step('12');
$sd_vbox->pack_start($status_dialog->{'progressbar'},1,1,0);
$status_dialog->{'progressbar'}->show;
$status_dialog->show;
while (Gtk->events_pending) { Gtk->main_iteration; }
}
main Gtk;
syntax highlighted by Code2HTML, v. 0.9.1