As using -C to turn on utf8 IO is equivalent to the open pragma,
[p5sagit/p5-mst-13.2.git] / symbian / sisify.pl
CommitLineData
f26f4a2f 1#!/usr/bin/perl -w
2
3#
4# sisify.pl - package Perl scripts or Perl libraries into SIS files
5#
6# Copyright (c) 2004-2005 Nokia. All rights reserved.
f26f4a2f 7# The sisify.pl utility is licensed under the same terms as Perl itself.
8#
9
10require 5.008;
11
12use strict;
13
14use vars qw($VERSION);
15
c8f896e5 16$VERSION = '0.2';
f26f4a2f 17
18use Getopt::Long;
19use File::Temp qw/tempdir/;
20use File::Find;
21use File::Basename qw/basename dirname/;
22use Cwd qw/getcwd/;
23
f26f4a2f 24BEGIN {
c8f896e5 25 # This utility has been developed in Windows under cmd.exe with
26 # the Series 60 2.6 SDK installed, but for the makesis utility
27 # in UNIX/Linux, try e.g. one of the following:
f26f4a2f 28 # http://gnupoc.sourceforge.net/
29 # http://symbianos.org/~andreh/ You
30 # will also need the 'uidcrc' utility.
c8f896e5 31 die "$0: Looks like Cygwin, aborting.\n" if exists $ENV{'!C:'};
f26f4a2f 32}
33
34sub die_with_usage {
35 if (@_) {
36 warn "$0: $_\n" for @_;
37 }
38 die <<__USAGE__;
39$0: Usage:
25ca88e0 40$0 [--variant=S60|S80|UIQ] [ --uid=hhhhhhhh ] [ --version=a.b.c ] [ --library=x.y.z ] [ some.pl | Some.pm | somefile | dir ... ]
f26f4a2f 41The uid is the Symbian app uid for the SIS.
42The version is the version of the SIS.
43The library is the version of Perl under which to install. If using this,
c8f896e5 44only specify directories for packaging.
f26f4a2f 45__USAGE__
46}
47
48my $SisUid;
49my $SisVersion;
50my $Library;
51my @SisPl;
52my @SisPm;
53my @SisDir;
54my @SisOther;
55my $AppName;
56my $Debug;
57my $ShowPkg;
ed76c0e4 58my $Variant;
f26f4a2f 59
60my $SisUidDefault = 0x0acebabe;
61my $SisVersionDefault = '0.0.0';
ed76c0e4 62my $VariantDefault = 'S60';
63
25ca88e0 64my %Variant = qw(S60 1 S80 1 UIQ 1);
f26f4a2f 65
66die_with_usage()
67 unless GetOptions(
ed76c0e4 68 'variant=s' => \$Variant,
f26f4a2f 69 'uid=s' => \$SisUid,
70 'version=s' => \$SisVersion,
71 'debug' => \$Debug,
72 'showpkg' => \$ShowPkg,
73 'library=s' => \$Library,
74 'appname=s' => \$AppName,
75 );
76die_with_usage("Need to specify what to sisify")
77 unless @ARGV;
78
ed76c0e4 79unless (defined $Variant) {
80 warn "$0: Defaulting to $VariantDefault\n";
81 $Variant = $VariantDefault;
82}
83
84unless (exists $Variant{$Variant}) {
85 die "$0: Unknown variant '$Variant'\n";
86}
87
f26f4a2f 88for my $i (@ARGV) {
89 if ($i =~ /\.pl$/i) {
90 push @SisPl, $i;
91 } elsif ($i =~ /\.pm$/i) {
92 push @SisPm, $i;
93 } elsif (-f $i) {
94 push @SisOther, $i;
95 } elsif (-d $i) {
96 push @SisDir, $i;
97 } else {
98 die_with_usage("Unknown sisifiable '$i'");
99 }
100}
101
102sub do_system {
103 my $cwd = getcwd();
104 print qq{\# system("@_") [cwd "$cwd"]\n};
105 return system("@_") == 0;
106}
107
108die_with_usage("Must specify something to sisify")
109 unless @SisPl || @SisPm || @SisOther || @SisDir;
110
111die_with_usage("With the lib option set, specify only directories")
112 if defined $Library && ((@SisPl || @SisPm || @SisOther) || @SisDir == 0);
113
114die_with_usage("Lib must define the Perl 5 version as 5.x.y")
115 if defined $Library && $Library !~ /^5.\d+\.\d+$/;
116
117die_with_usage("With the lib option unset, specify at least one .pl file")
118 if (! defined $Library && @SisPl == 0);
119
120if (!defined $AppName) {
121 if (defined $Library) {
122 $AppName = $SisDir[0];
123 $AppName =~ tr!/!-!;
124 } elsif (@SisPl > 0 && $SisPl[0] =~ /^(.+)\.pl$/i) {
125 $AppName = basename($1);
126 }
127}
128
129die_with_usage("Must either specify appname or at least one .pl file or the lib option")
130 unless defined $AppName || defined $Library;
131
132print "[app name '$AppName']\n" if $Debug;
133
134unless (defined $SisUid) {
135 $SisUid = $SisUidDefault;
136 printf "[default app uid '0x%08x']\n", $SisUid;
137} elsif ($SisUid =~ /^(?:0x)?([0-9a-f]{8})$/i) {
138 $SisUid = hex($1);
139} else {
140 die_with_usage("Bad uid '$SisUid'");
141}
142$SisUid = sprintf "0x%08x", $SisUid;
143
144die_with_usage("Bad uid '$SisUid'")
145 if $SisUid !~ /^0x[0-9a-f]{8}$/i;
146
147unless (defined $SisVersion) {
148 $SisVersion = $SisVersionDefault;
149 print "[default app version '$SisVersionDefault']\n";
150} elsif ($SisVersion !~ /^\d+\.\d+\.\d+$/) {
151 die_with_usage("Bad version '$SisVersion'")
152}
153
154my $tempdir = tempdir( CLEANUP => 1 );
155
156print "[temp directory '$tempdir']\n" if $Debug;
157
158for my $file (@SisPl, @SisPm, @SisOther) {
159 print "[copying file '$file']\n" if $Debug;
160 die_with_usage("$0: File '$file': $!") unless -f $file;
161 my $dir = dirname($file);
c8f896e5 162 do_system("mkdir $tempdir\\$dir") unless $dir eq '.';
163 do_system("copy $file $tempdir");
f26f4a2f 164}
165if (@SisPl) {
c8f896e5 166 do_system("copy $SisPl[0] $tempdir\\default.pl")
167 unless $SisPl[0] eq "default.pl";
f26f4a2f 168}
169for my $dir (@SisDir) {
170 print "[copying directory '$dir']\n" if $Debug;
c8f896e5 171 do_system("copy $dir $tempdir");
f26f4a2f 172}
173
174my $SisVersionCommas = $SisVersion;
175
176$SisVersionCommas =~ s/\./\,/g;
177
178my @pkg;
179
c8f896e5 180push @pkg, qq[&EN;];
f26f4a2f 181push @pkg, qq[#{"$AppName"},($SisUid),$SisVersionCommas];
182push @pkg, qq[(0x101F6F88), 0, 0, 0, {"Series60ProductID"}];
183
184my $OWD = getcwd();
185
c8f896e5 186$OWD =~ s!/!\\!g;
187
f26f4a2f 188chdir($tempdir) or die "$0: chdir('$tempdir')\n";
c8f896e5 189
190if (@SisPl) {
191 if (open(my $fi, "default.pl")) {
192 my $fn = "default.pl.new";
193 if (open(my $fo, ">$fn")) {
194 while (<$fi>) {
195 last unless /^\#/;
196 print $fo $_;
197 }
198 print $fo "use lib qw(\\system\\apps\\$AppName \\system\\apps\\$AppName\\lib);\n";
199 printf $fo qq[# %d "$SisPl[0]"\n], $.;
200 print $fo $_;
201 while (<$fi>) {
202 print $fo $_;
203 }
204 close($fo);
205 } else {
206 die "$0: open '>$fn': $!\n";
207 }
208 close($fi);
209 rename($fn, "default.pl") or die "$0: rename $fn default.pl: $!\n";
210 # system("cat -nvet default.pl");
211 } else {
212 die "$0: open 'default.pl': $!\n";
213 }
214}
215
216
f26f4a2f 217my @c;
218find(
219 sub {
220 if (-f $_) {
221 $File::Find::name =~ s!^\./!!;
222 push @c, $File::Find::name;
223 }
224 }
225 ,
226 ".");
227
228for my $i (sort @c) {
229 my $j = $i;
230 $j =~ s!/!\\!g;
231 push @pkg, defined $Library ? qq["$j"-"!:\\System\\Libs\\Perl\\siteperl\\$Library\\$j"] : qq["$j"-"!:\\system\\apps\\$AppName\\$j"];
232}
233
234sub hex2data {
c7a4d1c0 235 pack("H*", shift); # symbian\hexdump.pl to create the hexdumps.
f26f4a2f 236}
237
238my $APPHEX;
239my $RSCHEX;
240
241unless ($Library) {
242 # If we package an application we will need both a launching native
243 # Symbian application and a resource file for it. The resource file
244 # we can get easily from a stub but for the native app we need to
245 # patch in the right Symbian app uids and executable checksums.
246
247 &init_hex; # Initialized $APPHEX and $RSCHEX.
248
ed76c0e4 249 die "$0: No app template found\n" unless defined $APPHEX && defined $RSCHEX;
250
f26f4a2f 251 my $app = hex2data($APPHEX);
252 my $uidcrc;
253 my $uids = "0x10000079 0x100039CE $SisUid";
254
255 my $cmd = "uidcrc $uids |";
256
257 if (open(my $fh, $cmd)) {
258 my $line = <$fh>;
259 close($fh);
260 # 0x10000079 0x100039ce 0x0acebabe 0xc82b1900
261 $line =~ s/\r?\n$//;
262 if ($line =~ /^$uids (0x[0-9a-f]{8})$/i) {
263 $uidcrc = hex($1);
264 } else {
265 die "$0: uidcrc returned '$line'\n";
266 }
267 } else {
268 die qq[$0: open '$cmd' failed: $!\n];
269 }
270
271 my $uid = hex($SisUid);
272
273 my $oldchk = unpack('V', substr($app, 24, 4));
274 my $newchk = ($uid + $oldchk) & 0xFFFFFFFF;
275
276 # printf "# uid = 0x%08x\n", $uid;
277 # printf "# uidcrc = 0x%08x\n", $uidcrc;
278 # printf "# oldchk = 0x%08x\n", $oldchk;
279 # printf "# newchk = 0x%08x\n", $newchk;
280
281 substr($app, 8, 4) = pack('V', $uid);
282 substr($app, 12, 4) = pack('V', $uidcrc);
283 substr($app, 24, 4) = pack('V', $newchk);
284
285 my $UID_OFFSET = 0x0C7C; # This is where the uid is in the $app.
286 substr($app, $UID_OFFSET, 4) = substr($app, 8, 4); # Copy the uid also here.
287
288 if (open(my $fh, ">$AppName.app")) {
289 binmode($fh);
290 print $fh $app;
291 close($fh);
292 } else {
293 die qq[$0: open '>$AppName.app' failed: $!\n];
294 }
295
296 push @pkg, qq["$AppName.app"-"!:\\system\\apps\\$AppName\\$AppName.app"];
297
298 if (open(my $fh, ">$AppName.rsc")) {
299 binmode($fh);
300 print $fh hex2data($RSCHEX);
301 close($fh);
302 } else {
303 die qq[$0: open '>$AppName.rsc' failed: $!\n];
304 }
305 push @pkg, qq["$AppName.rsc"-"!:\\system\\apps\\$AppName\\$AppName.rsc"];
306}
307
308if ($ShowPkg) {
309 for my $l (@pkg) {
310 print $l, "\r\n";
311 }
312} else {
313 my $fn = "$AppName.pkg";
314 if (open(my $fh, ">$fn")) {
315 for my $l (@pkg) {
316 print $fh "$l\r\n"; # Note CRLF!
317 }
318 close($fh);
319 } else {
320 die qq[$0: Failed to open "$fn" for writing: $!\n];
321 }
322 my $sis = "$AppName.SIS";
323 unlink($sis);
c8f896e5 324 do_system("dir");
f26f4a2f 325 do_system("makesis $fn");
326 unless (-f $sis) {
327 die qq[$0: failed to create "$sis"\n];
328 }
c8f896e5 329 do_system("copy $AppName.sis $OWD");
330 chdir($OWD);
331 system("dir $sis");
f26f4a2f 332 print "\n=== Now transfer $sis to your device ===\n";
f26f4a2f 333}
334
335exit(0);
336
ed76c0e4 337# To create the hex: print unpack("H*", $data);
338
f26f4a2f 339sub init_hex {
340 # This is Symbian application executable skeleton.
341 # You can create the ...\epoc32\release\thumb\urel\foo.app
342 # by compiling the PerlApp.cpp with PerlMinSample defined in PerlApp.h.
c8f896e5 343 # The following executable has been compiled using the Series 60 SDK 2.6
344 # for Visual C.
d0d72822 345 # 'make sisify_hex' to create the perlappmin.hex for this hexdump.
ed76c0e4 346 if ($Variant eq 'S60') {
347 $APPHEX = <<__APP__;
d0d72822 34879000010ce390010f61520108581107645504f4300200000996c5ca0000000000100bf00000b5d19abe2e00003000001c40e00000000000000100000000010000020000000000000010000000000001000000000070000003c0f000001000000180d00007c00000000000000400f0000a8110000000000005e01000000b500f085f902bc084700000148006870470000bc09001000b5011c024800f061fb01bc00470000dc090010f0b5071c0e1c244878612448b8612448f8612448b8642448f86424483860b42464003d192968002910d0786800f0ecf92968002905d008688268081c032100f057f9b4246400391900200860b62464003d192868002803d000f034fb00202860b96a002905d008688268081c032100f03ff9094878610948b8610948f8610948b8640948f8640a483860381c311c00f06ffbf0bc01bc0047a00c0010040d0010f40c0010d40c0010e00c00107c0a0010000a001084b010b595b01790189119921a9301200021002200f038fb041c14a901a800f0fdfa002808d10090201c17a90222002300f030fb00f0f8fa00f0fcfa15b010bc08bc04b018470000f0b5474680b4324ca544071c8846022952d100f081f9011c0a687ea8126a00f0e9f88026f6006e44301c00f049f92949301c7eaa002300f049f9c425ed006d44281c00f04bf9244c6c440021224868440160201c042100f047f9301c00f04af9011c201c2a1c00f04bf9002824d1301c00f040f9011c8420000168448022520000f0bafa8521090169446846fc22520000f0b8fa84200001684400680f49694409680f4a6a4412680e4b6b441b68fff783ff381c00f036f900204446002c00d10120094b9d4408bc9846f0bc02bc0847b4f5ffffc0090010480a000044080000480800004c0800004c0a000000b50120fff7fefe01bc004730b5051c242000f087fa041c002c04d0291c00f0b9fa03482060201c30bc02bc08470000340b0010f0b54f464646c0b4b820400000f070fa071c002f2ad000f0fbf81848b8641848f864184ca1467c61174ca046bc61174efe61174dbd64174cfc64174838604c467c614446bc61134cfc6414483860381c6030802100f052fa4c467c614446bc61fe61bd640b4cfc640d483860381c18bc9846a146f0bc02bc08470000080c0010140c0010a00c0010040d0010f40c0010d40c0010e00c0010280c0010000a00107c0a001010b58b20800000f02dfa041c002c03d000f0b2f802482060201c10bc02bc0847cc0b0010002070470047704708477047104770471847704720477047284770473047704738477047404770474847704750477047584770476047704770477047014b1b681847c046180d0010014b1b681847c046200d0010014b1b681847c046240d0010014b1b681847c0461c0d0010014b1b681847c046700d0010014b1b681847c046640d0010014b1b681847c046680d0010014b1b681847c046740d0010014b1b681847c0466c0d0010014b1b681847c046800d0010014b1b681847c046840d0010014b1b681847c046780d0010014b1b681847c0467c0d0010014b1b681847c0469c0d001040b4024e3668b44640bc6047940d0010014b1b681847c046980d0010014b1b681847c046880d0010014b1b681847c046900d0010014b1b681847c0468c0d0010014b1b681847c0461c0e0010014b1b681847c046a00d0010014b1b681847c046d00d0010014b1b681847c046680e0010014b1b681847c046640e0010014b1b681847c0467c0e0010014b1b681847c0462c0e0010014b1b681847c046dc0d0010014b1b681847c046ec0d0010014b1b681847c0464c0e0010014b1b681847c046180e0010014b1b681847c0460c0e0010014b1b681847c046bc0d0010014b1b681847c046f00d0010014b1b681847c046580e0010014b1b681847c046300e0010014b1b681847c046340e0010014b1b681847c046b80d0010014b1b681847c046080e0010014b1b681847c046a80d0010014b1b681847c046240e0010014b1b681847c046d80d0010014b1b681847c046a40d0010014b1b681847c046380e0010014b1b681847c046000e0010014b1b681847c046c00d0010014b1b681847c046cc0d0010014b1b681847c046100e0010014b1b681847c046440e0010014b1b681847c046500e0010014b1b681847c0463c0e0010014b1b681847c046d40d0010014b1b681847c046fc0d0010014b1b681847c046f80d0010014b1b681847c046200e0010014b1b681847c046280e0010014b1b681847c046540e0010014b1b681847c046700e001040b4024e3668b44640bc6047140e001040b4024e3668b44640bc6047f40d0010014b1b681847c046480e0010014b1b681847c046b40d0010014b1b681847c046e00d0010014b1b681847c046ac0d001040b4024e3668b44640bc6047400e0010014b1b681847c046c80d0010014b1b681847c046c40d0010014b1b681847c046040e0010014b1b681847c0466c0e0010014b1b681847c046b00d0010014b1b681847c046e40d0010014b1b681847c046740e0010014b1b681847c046780e001040b4024e3668b44640bc6047e80d0010014b1b681847c046600e0010014b1b681847c0465c0e0010014b1b681847c046880e0010014b1b681847c046a00e0010014b1b681847c046900e0010014b1b681847c046940e0010014b1b681847c0468c0e0010014b1b681847c046980e0010014b1b681847c046800e0010014b1b681847c046840e0010014b1b681847c0469c0e0010014b1b681847c046a40e0010014b1b681847c046a80e0010014b1b681847c046b00e001040b4024e3668b44640bc6047b40e0010014b1b681847c046b80e0010014b1b681847c046ac0e0010014b1b681847c0465c0d0010014b1b681847c046600d0010014b1b681847c0463c0d0010014b1b681847c0464c0d0010014b1b681847c0462c0d0010014b1b681847c046340d001040b4024e3668b44640bc6047280d0010014b1b681847c046580d0010014b1b681847c046540d0010014b1b681847c046480d0010014b1b681847c046440d001040b4024e3668b44640bc6047400d0010014b1b681847c046300d0010014b1b681847c046380d0010014b1b681847c046500d00107047000000b5084a4261084a8261084ac261084a8264084ac264084a0260fff791ff01bc00470000a00c0010040d0010f40c0010d40c0010e00c0010000a001000b5fff717ff01bc0047000000b5fff717ff01bc0047000000b5fff70bff01bc0047000000b5fff705ff01bc0047000010b581b0039c14380094fff79bfe01b010bc01bc0047000000b51438fff7b2ff01bc004700b51438fff794fe01bc004700b51838fff7defe02bc084700b51c38fff7d2fe02bc084700b51c38fff7c6fe02bc084700b54838fff788ff01bc004700b54c38fff788ff01bc0047ffffffff00000000ffffffff00000000bc090010dc090010a00c0010040d0010f40c0010d40c0010e00c0010000a00107c0a0010c0090010340b0010080c0010140c0010a00c0010040d0010f40c0010d40c0010e00c0010280c0010000a00107c0a0010f80a0010900b0010cc0b0010a00c0010040d0010f40c0010d40c0010e00c0010000a0010f81520100a000000640065006600610075006c0074002e0070006c00000000000e0000005000650072006c004100700070004d0069006e0069006d0061006c000000000000000000000000005d080010b5070010c1070010710400107d0400107d03001089030010cd07001095030010d907001089040010a1030010ad0300108507001095040010fd050010a104001091070010ad040010b9040010c5040010e5070010d1040010dd040010e9040010f5040010f5070010010800105d07001000000000000000002d000010b5070010c1070010710400107d0400107d03001089030010cd07001095030010d907001089040010a1030010ad030010850700109504001029010010a104001091070010ad040010b9040010c5040010e5070010d1040010dd040010e9040010f5040010f507001001080010150200100000000000000000990800100d080010010500105d070010190800100d0500104d0300101905001025050010310500103d050010490500105d0700100000000000000000a50800105505001061050010590300106d0500107905001085050010910500109d05001059080010a9050010b50500106503001071030010c1050010cd050010d90500104902001025080010e5050010f10500100000000000000000b10800100d080010010500105d070010190800100d0500104d0300101905001025050010310500103d050010490500105d0700100000000000000000bd0800100d080010010500100d000010190800100d0500104d0300101905001025050010310500103d050010490500102102001000000000000000005d07001000000000000000005d070010b9030010c503001000000000000000009d070010b5070010c1070010710400107d0400107d03001089030010cd07001095030010d907001089040010a1030010ad0300108d06001095040010fd050010a104001099060010ad040010b9040010c5040010e5070010d1040010dd040010e9040010f5040010f507001001080010ecffffff00000000e10800102906001035060010410600104d0600105d06001069060010c908001075060010ed08001081060010b8ffffff000000001d090010b4ffffff0000000029090010b9030010c5030010e4ffffff000000001109001005090010e8ffffff00000000f9080010d1030010dd03001003000000060000001b00000047000000ee020000f502000022030000230300002503000028030000b5040000b6040000d2040000e6040000f304000044050000480500000008000005080000520000005a0000006000000065000000bb000000ff000000000100002401000025010000120000002700000033000000b7000000e3000000e600000011000000140000001e0000001f00000028000000300000003100000033000000340000004000000041000000420000004300000044000000470000004a0000004b0000004c00000050000000510000005200000054000000560000006400000074000000790000007a0000007c0000008200000085000000860000008c0000008e0000008f00000092000000930000009500000096000000970000009b0000009d000000a1000000b3000000c6000000c8000000cc000000ce000000d5000000d6000000de000000e0000000e2000000fd000000080100002201000028010000020000000300000029030000380300007c0400008c0400000205000003050000e00500002e0600004b06000006000000080000007f050000d005000000000000ed02000068020000e00100000400000003000000060000001b00000047000000f50100000f000000ee020000f502000022030000230300002503000028030000b5040000b6040000d2040000e6040000f3040000440500004805000000080000050800000902000009000000520000005a0000006000000065000000bb000000ff0000000001000024010000250100001c02000006000000120000002700000033000000b7000000e3000000e6000000300200003800000011000000140000001e0000001f00000028000000300000003100000033000000340000004000000041000000420000004300000044000000470000004a0000004b0000004c00000050000000510000005200000054000000560000006400000074000000790000007a0000007c0000008200000085000000860000008c0000008e0000008f00000092000000930000009500000096000000970000009b0000009d000000a1000000b3000000c6000000c8000000cc000000ce000000d5000000d6000000de000000e0000000e2000000fd000000080100002201000028010000460200000b000000020000000300000029030000380300007c0400008c0400000205000003050000e00500002e0600004b0600005a0200000400000006000000080000007f050000d00500004150504152435b31303030336133645d2e444c4c0041564b4f4e5b31303030353663365d2e444c4c00434f4e455b31303030336134315d2e444c4c0045465352565b31303030333965345d2e444c4c0045494b434f52455b31303030343839325d2e444c4c0045555345525b31303030333965355d2e444c4c005045524c3539332e444c4c000000a40200004d01000000000000a402000014302830c430c830cc30d030d430d830dc30fc314432c432c832cc32d032d432d832dc32e032e432e8320c33543360336c337833843390339c33a833b433c033cc33d833e433f03300340c341834243430343c344834543460346c347834843490349c34a834b434c034cc34d834e434f034fc340835143520352c353835443550355c356835743580358c359835a435b035bc35c835d435e035ec35f83508361836243630363c3648365836643670367c3688369436a036ac36b836c836d436e036ec36f836043710371c372837343740374c3758376437703780378c379837a437b037bc37c837d437e037f037fc3708381438203830383c38483854388038843888388c3890389438443948394c395039543958395c396039643968396c397039743978397c398039843988398c399039943998399c39a039a439a839ac39b039b439b839083a0c3a103a143a183a1c3a203a243a283a2c3a303a343a383a3c3a403a443a483a4c3a503a543a583a5c3a603a643a683a6c3a703a743a783a843a883a8c3a903a943a983a9c3aa03aa43aa83aac3ab03ab43ab83abc3ac03ac43ac83acc3ad03ad43ad83adc3ae03ae43ae83aec3af03af43a003b043b083b0c3b103b143b183b1c3b203b243b283b2c3b303b3c3b403b443b483b4c3b503b543b583b5c3b603b643b683b6c3b703b743b783b7c3b803b843b883b8c3b983b9c3ba03ba43ba83bac3bb03bb43bb83bbc3bc03bc43bc83bd43bd83bdc3be03be43be83bec3bf03bf43bf83bfc3b003c043c103c1c3c203c243c303c343c383c3c3c403c443c483c4c3c503c543c583c5c3c603c643c683c6c3c703c743c783c7c3c803c843c883c8c3c903c943c983c9c3ca83cac3cb03cb43cb83cbc3cc03cc43cc83ccc3cd03cdc3ce83cec3cf03cfc3c003d0c3d103d143d0000
f26f4a2f 349__APP__
ed76c0e4 350 }
f26f4a2f 351
352 # This is Symbian application resource skeleton.
353 # You can create the ...\epoc32\data\z\system\apps\PerlApp\PerlApp.rsc
354 # by compiling the PerlApp.cpp.
c8f896e5 355 # The following resource has been compiled using the Series 60 SDK 2.6
356 # for Visual C.
d0d72822 357 # 'make sisify_hex' to create the perlrscmin.hex for this hexdump.
ed76c0e4 358 if ($Variant eq 'S60') {
359 $RSCHEX = <<__RSC__;
3606b4a1f10000000005fde04001ca360de01b80010000400000001f0e54d0000000004f0e54d00000000000000001a00cc0800000000010005f0e54d000000000000ffffffff0000000000000000000f0500000400000000000000000000050541626f7574170000ffffffff00000000010400000000000000000000040454696d65170000ffffffff00000000020400000000000000000000030352756e170000ffffffff0000000003040000000000000000000008084f6e656c696e6572170000ffffffff000000000404000000000000000000000909436f707972696768740e0000ffffffff00000000000000000120000000000000001400cc0801006816000100000000000100000000ffffffff00ffffffff0000000000000000ffff000000000000000120000000000000002400cc0801006816000100000000000100000000ffffffff00ffffffff0000000000000000ffff000000000000004122000000000000001400cc08010069160000050000000001000000000000000001000000040007000800ff020100ffffffff00000000000000000000ffff000000000000004122000000000000001400cc08010074160007000000000054160000ffffffff000000000000ffff00000000000000000000000015001d001d0035004d00ef0026015d01a301d201d701
f26f4a2f 361__RSC__
ed76c0e4 362 }
363
364 # This is Symbian application executable skeleton.
365 # You can create the ...\epoc32\release\thumb\urel\foo.app
366 # by compiling the PerlApp.cpp with PerlMinSample defined in PerlApp.h.
367 # The following executable has been compiled using the Series 80 SDK 2.0
368 # for Visual C.
d0d72822 369 # 'make sisify_hex' to create the perlappmin.hex for this hexdump.
ed76c0e4 370 if ($Variant eq 'S80') {
371 $APPHEX = <<__APP__;
d0d72822 37279000010ce390010f61520108581107645504f430020000087d7d3fc000000000100bb00804eab39abe2e00003000001f40b00000000000000100000000010000020000000000000010000000000001000000000060000006c0c000001000000740a00007c00000000000000700c0000900e0000000000005e01000000b500f047f902bc0847000001480068704700003408001000b5011c024800f03ffb01bc0047000054080010f0b5071c0e1c1e4878611e48b8611e4838609e2464003d192968002910d0786800f0a8f92968002905d008688268081c032100f01ff99e246400391900200860a02464003d192868002803d000f018fb00202860796a002905d008688268081c032100f007f9064878610648b86107483860381c311c00f083f9f0bc01bc00472c0a0010600a0010e80800107808001084b010b595b01790189119921a9301200021002200f028fb041c14a901a800f0edfa002808d10090201c17a90222002300f020fb00f0e8fa00f0ecfa15b010bc08bc04b018470000f0b5474680b4324ca544071c8846022952d100f04ff9011c0a687ea8126a00f0bdf88026f6006e44301c00f011f92949301c7eaa002300f011f9c425ed006d44281c00f013f9244c6c440021224868440160201c042100f00ff9301c00f012f9011c201c2a1c00f013f9002824d1301c00f008f9011c8420000168448022520000f0aafa8521090169446846fc22520000f0a8fa84200001684400680f49694409680f4a6a4412680e4b6b441b68fff783ff381c00f004f900204446002c00d10120094b9d4408bc9846f0bc02bc0847b4f5ffff38080010480a000044080000480800004c0800004c0a000000b50120fff710ff01bc004730b5051c242000f077fa041c002c04d0291c00f0dff803482060201c30bc02bc084700005809001070b5a220400000f063fa061c002e10d000f0d2f8094d7561094cb46109483060301c3430802100f059fa7561b46106483060301c70bc02bc084700002c0a0010600a001078080010e808001010b58b20800000f049fa041c002c03d000f0b2f802482060201c10bc02bc0847f0090010002070470047704708477047104770471847704720477047284770473047704738477047404770474847704750477047584770476047704770477047014b1b681847c046740a0010014b1b681847c0467c0a0010014b1b681847c046800a0010014b1b681847c046780a0010014b1b681847c046900a0010014b1b681847c046840a0010014b1b681847c046880a0010014b1b681847c046940a0010014b1b681847c0468c0a0010014b1b681847c046980a0010014b1b681847c0469c0a0010014b1b681847c046b40a001040b4024e3668b44640bc6047ac0a0010014b1b681847c046b00a0010014b1b681847c046a00a0010014b1b681847c046a80a0010014b1b681847c046a40a0010014b1b681847c046440b0010014b1b681847c0468c0b0010014b1b681847c046b80a0010014b1b681847c046e40a0010014b1b681847c046900b0010014b1b681847c046980b0010014b1b681847c046940b0010014b1b681847c046a40b0010014b1b681847c046ac0b0010014b1b681847c046500b0010014b1b681847c046580b0010014b1b681847c046a00b0010014b1b681847c0460c0b0010014b1b681847c046f00a0010014b1b681847c046000b0010014b1b681847c046400b0010014b1b681847c046280b0010014b1b681847c046d00a001040b4024e3668b44640bc6047f80a0010014b1b681847c046040b0010014b1b681847c046800b0010014b1b681847c0465c0b0010014b1b681847c046600b0010014b1b681847c046300b0010014b1b681847c046cc0a0010014b1b681847c0462c0b0010014b1b681847c046200b0010014b1b681847c046c00a0010014b1b681847c0464c0b0010014b1b681847c046ec0a0010014b1b681847c046bc0a0010014b1b681847c046640b0010014b1b681847c046180b0010014b1b681847c046d40a0010014b1b681847c046e00a0010014b1b681847c046340b0010014b1b681847c046700b0010014b1b681847c046780b0010014b1b681847c046680b0010014b1b681847c046e80a0010014b1b681847c046140b0010014b1b681847c046100b0010014b1b681847c046480b0010014b1b681847c046540b001040b4024e3668b44640bc6047240b0010014b1b681847c0467c0b0010014b1b681847c046a80b001040b4024e3668b44640bc60473c0b001040b4024e3668b44640bc6047fc0a0010014b1b681847c046380b001040b4024e3668b44640bc6047080b0010014b1b681847c046740b0010014b1b681847c046c80a0010014b1b681847c046f40a0010014b1b681847c046c40a001040b4024e3668b44640bc60476c0b0010014b1b681847c046dc0a0010014b1b681847c046d80a0010014b1b681847c0461c0b0010014b1b681847c0469c0b0010014b1b681847c046880b0010014b1b681847c046840b0010014b1b681847c046b80b0010014b1b681847c046d00b0010014b1b681847c046c00b0010014b1b681847c046c40b0010014b1b681847c046bc0b0010014b1b681847c046c80b0010014b1b681847c046b00b0010014b1b681847c046b40b0010014b1b681847c046cc0b0010014b1b681847c046d40b0010014b1b681847c046d80b0010014b1b681847c046e00b001040b4024e3668b44640bc6047e40b0010014b1b681847c046e80b0010014b1b681847c046dc0b00107047000000b5054a4261054a8261054a0260fff71ffe01bc004700002c0a0010600a00107808001000b5fff787ff01bc0047000000b5fff77bff01bc0047000000b5fff775ff01bc0047000010b581b0039c14380094fff72bff01b010bc01bc0047000000b51438fff71cff01bc004700b51438fff724ff01bc004700b51838fff708ff02bc0847ffffffff00000000ffffffff0000000034080010540800102c0a0010600a001078080010e808001038080010580900102c0a0010600a001078080010e8080010b4090010f00900102c0a0010600a001078080010f81520100a000000640065006600610075006c0074002e0070006c00000000000e0000005000650072006c004100700070004d0069006e0069006d0061006c000000000000000000000000005d070010f5030010010400100d04001019040010010300100d0300102504001019030010310400103d04001025030010310300104107001049040010dd0500104d07001055040010610400106d040010790400108904001095040010a1040010ad0400101907001000000000000000002d000010f5030010010400100d04001019040010010300100d0300102504001019030010310400103d04001025030010310300104107001049040010050100104d07001055040010610400106d040010790400108904001095040010a1040010ad040010f10100100000000000000000810700102505001031050010dd0200103d0500104905001055050010610500106d050010590700107905001085050010e9020010f5020010910500109d050010a905001025020010b5050010c5050010d105001000000000000000008d070010b9040010c504001019070010d1040010dd040010d1020010e9040010f5040010010500100d0500101905001019070010000000000000000099070010b9040010c50400100d000010d1040010dd040010d1020010e9040010f5040010010500100d05001019050010fd010010ecffffff00000000bd07001025060010310600103d060010490600105906001065060010a507001071060010c90700107d060010e8ffffff00000000d50700103d0300104903001003000000060000001b00000047000000520000005a0000006000000065000000bb000000ff00000000010000120000002700000033000000b7000000e3000000e600000011000000140000001e0000001f000000300000003100000033000000340000004000000041000000420000004300000044000000470000004a0000004b0000004e0000005000000051000000520000005400000055000000560000006400000074000000790000007a0000007b0000007c0000007d0000007f000000820000008300000085000000860000008c0000008e0000008f0000009000000092000000930000009500000096000000970000009b0000009d000000a1000000b3000000c8000000cc000000ce000000d5000000d6000000d9000000db000000de000000e0000000e2000000e5000000fb000000fd000000fe000000020000000300000029030000380300007c0400008c0400000205000003050000e00500002e0600004b060000060000000900000080050000d1050000000000007102000020020000ac0100000400000003000000060000001b00000047000000c101000007000000520000005a0000006000000065000000bb000000ff00000000010000d401000006000000120000002700000033000000b7000000e3000000e6000000e80100003e00000011000000140000001e0000001f000000300000003100000033000000340000004000000041000000420000004300000044000000470000004a0000004b0000004e0000005000000051000000520000005400000055000000560000006400000074000000790000007a0000007b0000007c0000007d0000007f000000820000008300000085000000860000008c0000008e0000008f0000009000000092000000930000009500000096000000970000009b0000009d000000a1000000b3000000c8000000cc000000ce000000d5000000d6000000d9000000db000000de000000e0000000e2000000e5000000fb000000fd000000fe000000fe0100000b000000020000000300000029030000380300007c0400008c0400000205000003050000e00500002e0600004b0600001202000004000000060000000900000080050000d10500004150504152435b31303030336133645d2e444c4c00434f4e455b31303030336134315d2e444c4c0045465352565b31303030333965345d2e444c4c0045494b434f52455b31303030343839325d2e444c4c0045555345525b31303030333965355d2e444c4c005045524c3539332e444c4c000000e8010000f000000000000000e801000014302830ac30b030b430b830d83120326032643268326c329032d832e432f032fc320833143320332c333833443350335c336c337833843390339c33a833b433c033cc33d833e433f033fc330834143420342c343834443450345c3468347434843490349c34a834b434c034cc34d834e434f034fc340835143520352c353835443550355c356835743580358c359835a435b035c035cc35d835e835f8350436143620362c3638364436543660366c367836843690369c36a836b436c036cc36d836e436f036fc360837143720372c373c3748375437743778377c37f037f437f837fc370038043808380c381038143818381c382038243828382c3830388038843888388c389038943898389c38a038a438a838ac38b038b438b838bc38c038c438c838cc38d038d438d838dc38e038e438f038f438f838fc380039043908390c391039143918391c392039243928392c393039343938393c394039443948394c39503954396039643968396c397039743978397c398039843988398c399039943998399c39a039a439a839ac39b039bc39c039c439c839cc39d039d439d839dc39e039e439e839ec39f839fc39003a043a083a0c3a103a143a183a1c3a203a243a283a343a383a3c3a403a443a483a4c3a503a543a583a5c3a683a6c3a703a
25ca88e0 373__APP__
ed76c0e4 374 }
375
376 # This is Symbian application resource skeleton.
377 # You can create the ...\epoc32\data\z\system\apps\PerlApp\PerlApp.rsc
378 # by compiling the PerlApp.cpp.
379 # The following resource has been compiled using the Series 80 SDK 2.0
380 # for Visual C.
d0d72822 381 # 'make sisify_hex' to create the perlrscmin.hex for this hexdump.
ed76c0e4 382 if ($Variant eq 'S80') {
383 $RSCHEX = <<__RSC__;
d0d72822 3846b4a1f10000000005fde04001ca360de01b800780400000001f0e54d0000000005f0e54d000000000000000004f0e54d000000000010010000005000000000000400000204030352756e0900ffffffff00030408084f6e656c696e65720900ffffffff000504050541626f75740900ffffffff0000010404457869740500ffffffff0007010006f0e54d07074f7074696f6e73110000000000ffffffff0000000000000000000f0500000400000000000000000000050541626f7574170000ffffffff00000000010400000000000000000000040454696d65170000ffffffff00000000020400000000000000000000030352756e170000ffffffff0000000003040000000000000000000008084f6e656c696e6572170000ffffffff000000000404000000000000000000000909436f707972696768740e0000ffffffff00000000000000000003010005055469746c65110000000064b0f3000000000001000200060650726f6d70740f00080000000000000a00010080000014001c001c0034008200a50047017b01
25ca88e0 385__RSC__
386 }
387
388 # This is Symbian application executable skeleton.
389 # You can create the ...\epoc32\release\thumb\urel\foo.app
390 # by compiling the PerlApp.cpp with PerlMinSample defined in PerlApp.h.
391 # The following executable has been compiled using the UIQ SDK 2.1
392 # for CodeWarrior.
d0d72822 393 # 'make sisify_hex' to create the perlappmin.hex for this hexdump.
25ca88e0 394 if ($Variant eq 'UIQ') {
395 $APPHEX = <<__APP__;
d0d72822 39679000010ce390010f61520108581107645504f4300200000c26d4733000000000100af004056bb93abe2e00003000000840c0000000000000010000000001000002000000000000001000000000000100000000007000000fc0c000001000000ec0a00007c00000000000000000d0000540f0000000000005e01000000b500f047f902bc0847000001480068704700007c08001000b5011c024800f087fa01bc004700009c080010f0b5071c0e1c1e4878611e48b8611e483860a42464003d192968002910d0786800f096f92968002905d008688268081c032100f01ff9a4246400391900200860a62464003d192868002803d000f060fa00202860796a002905d008688268081c032100f007f9064878610648b86107483860381c311c00f0a1faf0bc01bc0047a40a0010d80a001040090010c008001084b010b595b01790189119921a9301200021002200f070fa041c14a901a800f035fa002808d10090201c17a90222002300f068fa00f030fa00f034fa15b010bc08bc04b018470000f0b5474680b4324ca544071c8846022952d100f037f9011c0a687ea8126a00f0bdf88026f6006e44301c00f0fff82949301c7eaa002300f0fff8c425ed006d44281c00f001f9244c6c440021224868440160201c042100f0fdf8301c00f000f9011c201c2a1c00f001f9002824d1301c00f0f6f8011c8420000168448022520000f0f2f98521090169446846fc22520000f0f0f984200001684400680f49694409680f4a6a4412680e4b6b441b68fff783ff381c00f0ecf800204446002c00d10120094b9d4408bc9846f0bc02bc0847b4f5ffff80080010480a000044080000480800004c0800004c0a000000b50120fff710ff01bc004730b5051c242000f0bff9041c002c04d0291c00f0c7f803482060201c30bc02bc08470000c009001070b5a820400000f0abf9061c002e10d000f0def9094d7561094cb46109483060301c4030802100f0a1f97561b46106483060301c70bc02bc08470000a40a0010d80a0010c00800104009001010b58c20800000f091f9041c002c03d000f0bef902482060201c10bc02bc0847600a0010002070470047704708477047104770471847704720477047284770473047704738477047404770474847704750477047584770476047704770477047014b1b681847c046f00a0010014b1b681847c046f40a0010014b1b681847c046ec0a0010014b1b681847c046000b0010014b1b681847c046f80a0010014b1b681847c046fc0a0010014b1b681847c046040b0010014b1b681847c046080b0010014b1b681847c046200b001040b4024e3668b44640bc6047180b0010014b1b681847c0461c0b0010014b1b681847c0460c0b0010014b1b681847c046140b0010014b1b681847c046100b0010014b1b681847c046780b0010014b1b681847c046240b0010014b1b681847c046440b0010014b1b681847c046a40b0010014b1b681847c046500b0010014b1b681847c0466c0b0010014b1b681847c046300b0010014b1b681847c0469c0b0010014b1b681847c046600b0010014b1b681847c046340b0010014b1b681847c046400b0010014b1b681847c046700b0010014b1b681847c0468c0b0010014b1b681847c046940b0010014b1b681847c046840b0010014b1b681847c046480b0010014b1b681847c0465c0b0010014b1b681847c046580b0010014b1b681847c0467c0b0010014b1b681847c046800b001040b4024e3668b44640bc6047680b0010014b1b681847c046980b0010014b1b681847c046ac0b001040b4024e3668b44640bc6047740b001040b4024e3668b44640bc6047540b0010014b1b681847c046900b0010014b1b681847c0462c0b0010014b1b681847c0464c0b0010014b1b681847c046280b001040b4024e3668b44640bc6047880b0010014b1b681847c0463c0b0010014b1b681847c046380b0010014b1b681847c046640b0010014b1b681847c046a80b0010014b1b681847c046a00b0010014b1b681847c046b80b0010014b1b681847c046d00b0010014b1b681847c046c00b0010014b1b681847c046c40b0010014b1b681847c046bc0b0010014b1b681847c046c80b0010014b1b681847c046b00b0010014b1b681847c046b40b0010014b1b681847c046cc0b0010014b1b681847c046d40b0010014b1b681847c046d80b0010014b1b681847c046e00b001040b4024e3668b44640bc6047e40b0010014b1b681847c046e80b0010014b1b681847c046dc0b0010014b1b681847c046440c0010014b1b681847c046ec0b0010014b1b681847c046fc0b0010014b1b681847c046200c0010014b1b681847c0462c0c0010014b1b681847c046340c0010014b1b681847c046380c0010014b1b681847c046100c0010014b1b681847c046000c0010014b1b681847c0461c0c0010014b1b681847c046080c0010014b1b681847c046280c0010014b1b681847c046240c001040b4024e3668b44640bc6047180c0010014b1b681847c046140c0010014b1b681847c0463c0c0010014b1b681847c046400c0010014b1b681847c0460c0c0010014b1b681847c046f00b0010014b1b681847c046f40b0010014b1b681847c046f80b0010014b1b681847c0466c0c0010014b1b681847c0465c0c0010014b1b681847c046680c0010014b1b681847c046640c0010014b1b681847c046480c0010014b1b681847c046580c0010014b1b681847c046700c0010014b1b681847c046600c0010014b1b681847c0464c0c0010014b1b681847c046740c0010014b1b681847c046500c0010014b1b681847c046540c0010014b1b681847c046300c001040b4024e3668b44640bc6047040c0010014b1b681847c046780c00107047000000b5054a4261054a8261054a0260fff719ff01bc00470000a40a0010d80a0010c008001000b5fff7abfe01bc0047000000b5fff7ddff01bc0047000000b5fff7d7ff01bc0047000010b581b0039c14380094fff755fe01b010bc01bc0047000000b51438fff7b6ff01bc004700b51438fff74efe01bc004700b51838fff7b0ff02bc0847ffffffff00000000ffffffff000000007c0800109c080010a40a0010d80a0010c00800104009001080080010c0090010a40a0010d80a0010c0080010400900101c0a0010600a0010a40a0010d80a0010c0080010f81520100a000000640065006600610075006c0074002e0070006c00000000000e0000005000650072006c004100700070004d0069006e0069006d0061006c00000000000000000000000000a50700100d060010190600102506001031060010f5020010010300103d0600104906001055060010610600106d0600100d030010d1050010ad03001095040010dd05001079060010b9030010c50300108506001095060010d1030010a1060010ad060010b9060010c5060010d1060010dd060010a905001000000000000000002d0000100d060010190600102506001031060010f5020010010300103d0600104906001055060010610600106d0600100d030010d1050010ad03001005010010dd05001079060010b9030010c50300108506001095060010d1030010a1060010ad060010b9060010c5060010d1060010dd060010f10100100000000000000000c9070010dd030010e9030010d1020010f5030010010400100d0400101904001025040010a1070010310400103d040010dd020010e9020010490400105504001061040010250200106d0400107d040010890400100000000000000000d5070010e9060010f5060010a9050010010700100d0700101907001025070010310700103d0700104907001055070010a9050010610700106d0700100000000000000000e1070010e9060010f50600100d000010010700100d0700101907001025070010310700103d0700104907001055070010fd010010610700106d070010ecffffff0000000005080010c1040010cd040010d9040010e5040010f504001001050010ed0700100d0500101108001019050010e8ffffff000000001d0800101903001025030010060000001b00000047000000520000006000000065000000ff00000000010000120000002700000033000000b7000000e3000000e6000000110000001f00000030000000330000003400000040000000410000004200000043000000440000004b0000005100000054000000560000006400000074000000790000007b0000007c00000082000000850000008c0000008e000000920000009b0000009d000000a1000000b3000000c8000000cc000000ce000000d5000000db000000e2000000fd000000020000000300000029030000380300007c0400008c0400000205000003050000e00500002e0600004b060000060000000900000080050000d1050000010000000d0000000e0000000f00000010000000750000007a0000008600000087000000900000009d000000a6000000b2000000b3000000bd000000d4000000e3000000e4000000020100001701000021010000220100008d0100009c0100009d0100009e0100009f010000a0010000a1010000a2010000a3010000a4010000a5010000a6010000a7010000a8010000000000007102000054020000cc01000003000000060000001b00000047000000e101000005000000520000006000000065000000ff00000000010000f401000006000000120000002700000033000000b7000000e3000000e60000000802000023000000110000001f00000030000000330000003400000040000000410000004200000043000000440000004b0000005100000054000000560000006400000074000000790000007b0000007c00000082000000850000008c0000008e000000920000009b0000009d000000a1000000b3000000c8000000cc000000ce000000d5000000db000000e2000000fd0000001e0200000b000000020000000300000029030000380300007c0400008c0400000205000003050000e00500002e0600004b0600003202000004000000060000000900000080050000d10500003e02000024000000010000000d0000000e0000000f00000010000000750000007a0000008600000087000000900000009d000000a6000000b2000000b3000000bd000000d4000000e3000000e4000000020100001701000021010000220100008d0100009c0100009d0100009e0100009f010000a0010000a1010000a2010000a3010000a4010000a5010000a6010000a7010000a80100004150504152435b31303030336133645d2e444c4c00434f4e455b31303030336134315d2e444c4c0045465352565b31303030333965345d2e444c4c0045494b434f52455b31303030343839325d2e444c4c0045555345525b31303030333965355d2e444c4c005045524c3539332e444c4c0051494b43544c5b31303030356663395d2e444c4c00000c02000002010000000000000c02000014302830ac30b030b430b830d83120326032643268326c329032d832e432f032fc320833143320332c3338334833543360336c337833843390339c33a833b433c033cc33d833e433f033fc330834143420342c343834443450345c346834783484349034a034b034bc34c834d434e034f034fc340835143520352c353835443550355c356835743580358c359835a435b035bc35cc35d835e435f035fc350836143620362c363836443650365c3668367436803690369c36a836b436c036cc36d836e436f036fc360837143720372c373837443750375c3768377437803790379c37bc37c037c43738383c384038443848384c385038543858385c386038643868386c38703874387838c838cc38d038d438d838dc38e038e438e838ec38f038f438f838fc380039043908390c391039143918391c392039243928392c393039343938393c3948394c395039543958395c396039643968396c397039743978397c398039843988398c399039943998399c39a039a439a839ac39b039b439b839bc39c839cc39d039d439d839dc39e039e439e839ec39f039f439f839fc39003a043a083a0c3a103a143a183a243a283a2c3a303a343a383a3c3a403a443a483a4c3a503a543a583a5c3a683a6c3a703a743a783a7c3a803a843a883a8c3a903a943a983a9c3aa03aac3ab03ab43ab83abc3ac03ac43ac83acc3ad03ad43ae03ae43ae83a
25ca88e0 397__APP__
398 }
399
400 # This is Symbian application resource skeleton.
401 # You can create the ...\epoc32\data\z\system\apps\PerlApp\PerlApp.rsc
402 # by compiling the PerlApp.cpp.
d0d72822 403 # The following resource has been compiled using the UIQ 2.1 SDK
404 # for CodeWarrior.
405 # 'make sisify_hex' to create the perlrscmin.hex for this hexdump.
25ca88e0 406 if ($Variant eq 'UIQ') {
407 $RSCHEX = <<__RSC__;
d0d72822 4086b4a1f10000000005fde04001ca360de019a00f8030400000001f0e54d0000000004f0e54d04f0e54d0000000000000000000000000007010005f0e54d07074f7074696f6e73110000000000ffffffff0000000000000000000f0400000400000000000000000000050541626f7574170000ffffffff00000000010400000000000000000000040454696d65170000ffffffff0000000003040000000000000000000008084f6e656c696e6572170000ffffffff000000000404000000000000000000000909436f707972696768740e0000ffffffff000000000000000000050100000005055469746c6511460014000000000064b0f30001000200060650726f6d707411000800000000000000000a0001008000000005000000000d0d4f4b202f2043616e63656c203f0e460014000000000008f0e54d00000015010000000200feff00000000000000000000000002024f6b1a00ffffffff000000000101ffff000000000000000000000000060643616e63656c0b00ffffffff0000000001010005000000000a0a596573202f204e6f203f0e46001400000000000af0e54d00000015010000000200feff00000000000000000000000003035965732900ffffffff000000000101ffff000000000000000000000000024e006f0000ffffffff00000000010115001d001d0035005800de0016013a018201a301e801
25ca88e0 409__RSC__
ed76c0e4 410 }
f26f4a2f 411}