LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Translating Standard Scripts to Linux (https://www.linuxquestions.org/questions/programming-9/translating-standard-scripts-to-linux-4175448526/)

des_a 02-04-2013 12:10 AM

Translating Standard Scripts to Linux
 
I've been translating my code from Windows XP DOS BATCH files to Linux BASH shell scripts. I've run into a problem from this script. I'm having trouble parsing the database I've created, which tells Linux how to create a set of directories in this case.

The I'm on mknasosnames2.sh, which it's job is to create standard directories for each known operating system. It's code in Windows XP:

Code:

@ECHO OFF


ECHO Making Directories for Each Operating System...


MKDIR OS
FOR /F "tokens=* delims=$n" %%A IN (C:\SETTINGS\Operating_Systems\osnames.sdr) DO (
 FOR /F "tokens=1,* delims=        " %%B IN ("%%A") DO (
  ECHO Creating %%B...
  IF EXIST "%%B" ECHO There's already a directory named %%B!
  MKDIR ".\%%B"

  CD ".\%%B"
  CALL :mktypes "%%C"
  CD ..
 )
)
GOTO done


:mktypes
 IF "%~1" == "(none)" GOTO mktypes_done


 CALL mknastypes3 %1
 GOTO mktypes_done


 :mktypes_done
  EXIT /B 0


:done

It's Linux code so far:

Code:

#! /bin/sh



echo Making directories for each operating system...
mkdir OS


cat /etc/settings/Operating_Systems/osnames.sdr | while read -a line
do
 echo ${line[0]}
 echo ${line[1]}
 cat ${line[1]} | while read -a line2
 do
  echo Creating ${line[0]}...
#  if [ -f $line2[0] ]; then 
#  echo There\'s already a directory named $line2[0]
#  else
#  mkdir $line2[0]

#  cd $line2[0]
#  cd ..
#  fi
 done
done

It fails on the second while loop, currently.

des_a 02-04-2013 12:19 AM

By the way, what my standard scripts are is this: Any OS that can support the standard scripts can be used on this network, I know this will work in Linux, I just don't know how yet.

dive 02-04-2013 03:38 AM

If you're testing for a directory, use -d not -f in your test.

# if [ -d $line2[0] ]; then

des_a 02-04-2013 05:35 AM

This is it's output:

Code:

[root@c-des-main1-rec standard_scripts]# . ./mknasosnames2.sh
Making directories for each operating system...
mkdir: cannot create directory `OS': File exists
DOS
/etc/settings/Operating_Systems/dos.sdr
: No such file or directoryg_Systems/dos.sdr
LINUX
/etc/settings/Operating_Systems/linux/types.sdr
: No such file or directoryg_Systems/linux/types.sdr
WINDOWS
/etc/settings/Operating_Systems/windows/types.sdr
: No such file or directoryg_Systems/windows/types.sdr
[root@c-des-main1-rec standard_scripts]#


des_a 02-04-2013 05:38 AM

Thanks. I'll use -d instead of -f. But with the output, now you see the problem. I'd tried a for loop, and it does the same thing. Appearently, it's comming from the cat command.

---------- Post added 02-04-13 at 03:38 AM ----------

If it really sees that shortened version of what it reports, it has reason to complain, but I want it to see the whole path, which I put in the file.

David the H. 02-04-2013 12:44 PM

This page has some tips about converting DOS batch files to bash.

http://www.tldp.org/LDP/abs/html/dosbatch.html

But if you really want to code "standard" scripts, then you have to restrict all of your code to what's available in the POSIX standard. When you run a script with "#!/bin/sh" at the top, it will be interpreted as such, even if the underlying interpreter is actually bash or another shell.

Conversely, to get the full set of bash features, you have to use #!/bin/bash.


POSIX doesn't have many of the useful modern features that are available to bash, such as arrays. See this page for bash-specific commands and their equivalents.

http://mywiki.wooledge.org/Bashism


Note: If your script does include things like arrays, and they seem to work, that's only because the system is still set to use bash (or a similar shell) to do the interpreting. Since arrays are not counter to POSIX, but just undefined by it, there's nothing keeping a shell from interpreting them if it wants to. But if, for example, the system was using dash instead (a strictly complying shell), it would break. All /bin/sh says is that, if a script is coded according to POSIX, it will run. It doesn't try to force compliance to it.

In fact, one of the best ways to test that your script is POSIX-compliant is to use #!/bin/dash as your shebang. If it runs in dash, it should run anywhere.


Incidentally, I see several errors in the above script. Unquoted variables, improperly formatted array expansions, Useless Use Of Cat. But maybe I should wait for you to clarify whether you actually need POSIX or not, or whether a bash-compatible script would do (it is available standard on pretty much every Linux distro, after all). The latter would certainly be much more convenient.

PS: You also really need to supply us with a sample of the input. We need to see what the files that it's processing hold.

sunnydrake 02-04-2013 12:51 PM

really.. it's hard to say how to fix it if you don't say what's actually wrong.. second loop is wrong it like my pc is broken fix it.. for file read i use
for f in $(cat -s ~/bin/BabyPhotoStarGalleryGetImagesAslist.sh); do echo "LINE".$f;done;
but there is a problem f is each word(1) separated by spaces
so to read lines is better to use readarray f < ~/bin/BabyPhotoStarGalleryGetImagesAslist.sh where f[N] is lines from file

David the H. 02-04-2013 01:44 PM

@Sunnydrake

Please Do not Read Lines With For. Always use a while+read loop instead.

How can I read a file (data stream, variable) line-by-line (and/or field-by-field)?
http://mywiki.wooledge.org/BashFAQ/001

readarray/mapfile is another safe option, but probably not suitable if the input file is very large. It's also a bash-specific extension (available since 4.0), and not at all portable.


And do please use ***[code][/code]*** tags around your code and data, to preserve the original formatting and to improve readability.

dive 02-04-2013 03:46 PM

For some reason it isn't reading line2 correctly when it cats ${line[1]}. Cat you post a bit of /etc/settings/Operating_Systems/dos.sdr ?

I would tend to use something like:

while read -a line2
do
...
done < ${line[1]}

in these situations.

Also, if you use mkdir with the -p (make parent) flag it will surpress the already exists warnings.

schneidz 02-04-2013 03:54 PM

can the op please post a few lines of the input file and what they are expecting the output to be ?

des_a 02-04-2013 07:44 PM

I'll post the files.

des_a 02-04-2013 08:00 PM

/etc/settings/Operating_Systems/osnames.sdr
Code:

DOS        /etc/settings/Operating_Systems/dos.sdr
LINUX  /etc/settings/Operating_Systems/linux/types.sdr
WINDOWS        /etc/settings/Operating_Systems/windows/types.sdr


/etc/settings/Operating_Systems/dos.sdr
Code:

FreeDOS        (none)
PC-DOS        (none)
MS-DOS        (none)

/etc/settings/Operating_Systems/linux/types.sdr
Code:

Mandrake        /etc/settings/Operating_Systems/linux/Mandrake.sdr
Mandriva        /etc/settings/Operating_Systems/linux/Mandriva.sdr

/etc/settings/Operating_Systems/linux/Mandrake.sdr
Code:

10.1
/etc/settings/Operating_Systems/linux/Mandriva.sdr
Code:

2008.0
2009.1

/etc/settings/Operating_Systems/windows/types.sdr
Code:

95        (none)
98        (none)
XP        /etc/settings/Operating_Systems/windows/XP.sdr

/etc/settings/Operating_Systems/windows/XP.sdr
Code:

HOME
PRO
MCE

These are the files I'm trying to parse. I did try it with the following format:

Code:

while read -a line2
do
...
done < ${line[1]}

...and this had exactly the same result.

Let me know if I need to explain the syntax of any of these files. Also note that they probably need to be updated to contain my latest information, however, that was not my first priority. It's the same syntax I have on Windows XP, except with a Linux path name instead of a Windows path name. The Windows code works.

des_a 02-04-2013 08:01 PM

You can also see that the code is still not complete yet, when it gets to the second loop working, but that's what I'm stuck on for now.

sundialsvcs 02-04-2013 10:42 PM

Interesting thought ...

... has no one in Linux-land ever tackled the ("if I on-ly had a brain...") ;) problem of dealing with DOS batch-files? Is it really true that no one ever wrote a command that could "gracefully and graciously" (of course...) accept DOS batch-files as input, and "have a good college try" at running them?

Casually googling, I didn't find one (yet), but ... it seems so obvious. Really?

You mean, I can't do: #!/bin/ihavenobrain ?? ;)

dive 02-04-2013 10:46 PM

This works for me.

Code:

#!/bin/sh

echo Making directories for each operating system...
mkdir -p OS
cd OS # did you want this?

while read -a line
do
    echo ${line[0]}
    echo ${line[1]}
   
    while read -a line2
    do 
        if [ -d ${line2[0]} ]; then
            echo There\'s already a directory named ${line2[0]}
        else
            echo Creating ${line2[0]}...
            mkdir ${line2[0]}
            cd ${line2[0]}
            cd ..
        fi 
    done < ${line[1]}

done < /etc/settings/Operating_Systems/osnames.sdr

ls OS
95/ 98/ FreeDOS/ MS-DOS/ Mandrake/ Mandriva/ PC-DOS/ XP/

Note that I've changed all the $line2[0] to ${line2[0]}

des_a 02-05-2013 06:50 PM

It still doesn't work for me for some reason.

Code:

#! /bin/sh


pushd .


echo Making directories for each operating system...
mkdir -p OS
cd OS


while read -a line
do
 echo ${line[0]}
 echo ${line[1]}
 while read -a line2
 do
  echo Creating ${line[0]}...
#  if [ -d $line2[0] ]; then 
#  echo There\'s already a directory named $line2[0]
#  else
#  mkdir $line2[0]

#  cd $line2[0]
#  cd ..
#  fi
 done < ${line[1]}
done < /etc/settings/Operating_Systems/osnames.sdr


popd

Output:

Code:

[root@c-des-main1-rec standard_scripts]# . ./mknasosnames2.sh
/standard_scripts /standard_scripts
Making directories for each operating system...
DOS
/etc/settings/Operating_Systems/dos.sdr
: No such file or directoryng_Systems/dos.sdr
LINUX
/etc/settings/Operating_Systems/linux/types.sdr
: No such file or directoryng_Systems/linux/types.sdr
WINDOWS
/etc/settings/Operating_Systems/windows/types.sdr
: No such file or directoryng_Systems/windows/types.sdr
/standard_scripts

Why would it work there and not here?

dive 02-05-2013 07:57 PM

It seems to be cutting off the name:

No such file or directoryng_Systems/linux/types.sdr

Which OS is this? Maybe you need to use a newer shell like bash for the script?

ntubski 02-05-2013 09:32 PM

Quote:

Originally Posted by dive (Post 4885147)
It seems to be cutting off the name:

No such file or directoryng_Systems/linux/types.sdr

That usually indicates carriage returns, try running dos2unix on both the script and input (.sdr) file.

sunnydrake 02-06-2013 01:02 AM

Quote:

Originally Posted by David the H. (Post 4884301)
@Sunnydrake

Please Do not Read Lines With For. Always use a while+read loop instead.

How can I read a file (data stream, variable) line-by-line (and/or field-by-field)?
http://mywiki.wooledge.org/BashFAQ/001

readarray/mapfile is another safe option, but probably not suitable if the input file is very large. It's also a bash-specific extension (available since 4.0), and not at all portable.


And do please use ***[code][/code]*** tags around your code and data, to preserve the original formatting and to improve readability.

regarding article
$(<afile); is improper use of < :) + !!!FOR IN LOOP!!! problem lies in IN instruction that read array separated by spaces!!!
remember FOR is just cycle construct not some evil overbuggy lib :) you can do stupid mistakes with while loop too :)

most efficient / right path is place for competition.. but i don't want to write in bash sub program to read bytes in cache then determine end-line characters.
PS: thanks for read -r :) my man is a little bit messed up with C header functions.. readarray all that i quick found upto job specs working good. hmm strange it's not part of coreutils .. also lines in bash man page help make doubts about using it on large files.
Quote:

If no names are supplied, the line read is assigned to the variable REPLY. The return code is zero, unless end-of-file is encountered, read times out (in which case the return code is greater than 128), or an invalid file descriptor is supplied as the argument to -u.

des_a 02-06-2013 03:48 PM

I ran dos2unix on those files and now it works! Now to finish the rest of the code.

Sergei Steshenko 02-07-2013 02:01 AM

Quote:

Originally Posted by sundialsvcs (Post 4884549)
Interesting thought ...

... has no one in Linux-land ever tackled the ("if I on-ly had a brain...") ;) problem of dealing with DOS batch-files? Is it really true that no one ever wrote a command that could "gracefully and graciously" (of course...) accept DOS batch-files as input, and "have a good college try" at running them?

Casually googling, I didn't find one (yet), but ... it seems so obvious. Really?

You mean, I can't do: #!/bin/ihavenobrain ?? ;)

Wine ( http://www.winehq.org/ ) exist for ages, doesn't it ? Also there is DOSEMU: http://www.dosemu.org/ .

sunnydrake 02-07-2013 11:44 PM

1)wineconsole cmd
2)DOSBOX

David the H. 02-09-2013 07:24 AM

Quote:

Originally Posted by sunnydrake (Post 4885279)
regarding article
$(<afile); is improper use of < :) + !!!FOR IN LOOP!!! problem lies in IN instruction that read array separated by spaces!!!
remember FOR is just cycle construct not some evil overbuggy lib :) you can do stupid mistakes with while loop too :)

most efficient / right path is place for competition.. but i don't want to write in bash sub program to read bytes in cache then determine end-line characters.

Just because you can do something one way doesn't mean you should do it that way. I've had this debate before, and it has always been my position (and of most experienced scripters, as represented by the link I gave) that the for loop is the wrong way to go about it.


The main issue I have with it is that proper use of it relies on shell word splitting, which means that the coder must know in advance that the file is in the proper format, and will generate exactly the list of word tokens necessary for the loop. One small mistake there and you have errors.

The second issue is, indeed, with inefficiency and the possibility of hitting the ARG_MAX limit of your system. I consider this a secondary problem, as this unlikely to be a hard limit in most scripts. Still, there is potential for it.

In any case, it's much better in the long run to just do it the right way all the time, and use a proper while+read loop. With practice and experience it's no more difficult to write one of those than a for loop; and it's much safer, flexible, and efficient in all situations. In any case, calling it a "sub program" is a serious misnomer. It's just another type of loop, not any more complex to set up than any other.

Finally, and most importantly here, while you are certainly free to do whatever you want in your own private coding, when you're giving advice in a help forum like this it's your responsibility to always give the best advice you are capable of. That means attempting to show others correct practice, and not your lazy shortcuts (although certainly ignorance of correct practice is forgivable).

That's why I harp on such things so often. I consider it a duty to educate and to weed out poor scripting practice whenever I can. There are generally very good reasons why experienced coders always tend to advise the use of or avoidance of certain structures, and you ignore their hard-earned experience at your peril.


PS: "$( <file )" is simply a bash built-in convenience feature that behaves in exactly the same manner as "$( cat <file )". It only works inside command substitution brackets, and is certainly not portable.

readarray (a.k.a. mapfile, apparently the proper name) is also a bash built-in keyword, as it has to be in order to set environment values directly. So no, you'll never find it in the coreutils. It's only function is to safely load an array with lines from a file, so as with any other variable usage, the limit is in the amount of RAM you have available in which to store the text. As long as you know you can stay inside that limit, it's certainly a viable alternative to a while loop.

sunnydrake 02-10-2013 09:51 AM

hey i just posted mistakes that i found in that article.
< is stdio input redirection which is not cat :) so construct $(< ) is illogical(call/fork shell with just input from file? try using just <filename in shell not like cat result?:)).(and tend to have some hidden caveats(like double input,special chars,etc....) found some when i searched correct instructions for file read).
I can't and I won't do all work for poster... i shared exp and some quick search data that in my tests(yes i wrote mini tests for this specific scenario) made usable expected result).
Each specific task have not so many best approaches and big a number of still useful. I made working suggestion in given(!) task params.
You frame me that it's my lazy shortcuts? you make me smile:) Also don't push on while loop you sound like religion priest, let's not start flame wars. In bare bones this is just same loops with almost identical code(for with read -a ? not a problem :)).
However i can understand you if you say read -a is a good way to read files... despite time out's i mentioned(and yet untested memory usage) it's a challenge to find another std useful file read line tool/command usable in shell... my search ended with readarray (but i tested shells stdio redirection,for in,cat's keys scenarios which not produced useful results.. ).. i hope we not hijacking this thread too much.

PTrenholme 02-10-2013 03:57 PM

What happens if you use a mkdir -p instead of a simple mkdir?

David the H. 02-11-2013 10:34 AM

Quote:

Originally Posted by sunnydrake (Post 4888479)
hey i just posted mistakes that i found in that article.
< is stdio input redirection which is not cat :) so construct $(< ) is illogical(call/fork shell with just input from file? try using just <filename in shell not like cat result?:)).

It's not a mistake. As I (and the link) said, "$(<file)" is a minor bash-specific convenience feature. It only works in bash, only works inside command substitution brackets, and it behaves exactly as if there's an invisible cat command in front of it.

Any other attempt at raw redirection (unassociated with a command) will fail, just as you expect.

Quote:

You frame me that it's my lazy shortcuts? you make me smile:) Also don't push on while loop you sound like religion priest, let's not start flame wars. In bare bones this is just same loops with almost identical code(for with read -a ? not a problem :)).
I believe I explained my reasoning clearly. I will always, to the best of my ability, oppose poor coding practices. And I will continue to correct them any time anyone posts them here. If that marks me as a "religion priest", then so be it.

Whatever you use yourself in private is your own business, and you will accept the consequences of those choices until such time as you learn better. But I will do what I can to ensure that the new, inexperienced scripters who come here to learn do not get taught to use and perpetuate those same errors.

Quote:

it's a challenge to find another std useful file read line tool/command usable in shell... my search ended with readarray (but i tested shells stdio redirection,for in,cat's keys scenarios which not produced useful results.. ).
If it's not directly built into the shell, then there's no way you'll ever be able to directly add anything to the shell environment with it. All external commands run as separate processes, which by definition are isolated from the original environment and unable to affect it. Therefore the only options you have are variations of read, redirection, and command substitution.

theNbomr 02-12-2013 12:21 PM

Quote:

Originally Posted by sundialsvcs (Post 4884549)
Interesting thought ...

... has no one in Linux-land ever tackled the ("if I on-ly had a brain...") ;) problem of dealing with DOS batch-files? Is it really true that no one ever wrote a command that could "gracefully and graciously" (of course...) accept DOS batch-files as input, and "have a good college try" at running them?

Casually googling, I didn't find one (yet), but ... it seems so obvious. Really?

You mean, I can't do: #!/bin/ihavenobrain ?? ;)

Sounds like a perfect suggestion for one of those "I just learned <language_of_the_day>. Now what problem can I solve?" questions.
--- rod.

des_a 02-15-2013 02:40 PM

Sorry that took so long, but I needed then to finish coding the rest of it, and it was not possible to entirely test everything, without first finishing a draft of the scripts so that everything is coded.

Code:

#! /bin/sh


pushd .


echo Making directories for each operating system...
mkdir OS
cd OS


while read -a line
do
 echo Creating ${line[0]}...
 if [ -d ${line[0]} ]; then
  echo There\'s already a directory named ${line[0]}
 else
  mkdir ${line[0]}
 fi

 cd ${line[0]}

 while read -a line2
 do
  echo ${line2[0]}
  echo ${line2[1]}

  echo Creating ${line2[0]}...
  if [ -d ${line2[0]} ]; then 
  echo There\'s already a directory named ${line2[0]}
  else
  mkdir ${line2[0]}

  cd ${line2[0]}

  if [ ${line2[1]} == "(none)" ]; then
    cd ..
    break
  fi

  pushd .
  . ./mknastypes3.sh ${line2[1]}
  popd

  cd ..
  fi
 done < ${line[1]}

 cd ..
done < /etc/settings/Operating_Systems/osnames.sdr


popd

My focus now turns to the logical test of the scripts, and one script is giving me trouble again. This is a closely related cousin of the script above, but there are some differences.

From here on out, I can assume that the standard scripts will always be stored in /standard_scripts. Here is the code that's giving me trouble now:

mknasosnames:
Code:

#! /bin/sh


pushd . > /dev/null


echo Making directories for each operating system...


mkdir ALL
cd ALL
mkdir STANDARD
mkdir OPTIONAL
cd STANDARD
mkdir NORMAL
mkdir SHAREWARE
cd ..
cd OPTIONAL
mkdir NORMAL
mkdir SHAREWARE
cd ..
cd ..


while read -a line
do
 echo Creating ${line[0]}...
 if [ -d ${line[0]} ]; then
  echo There\'s already a directory named ${line[0]}
 else
  mkdir ${line[0]}
 fi

 cd ${line[0]}

 while read -a line2
 do
 if [ -d ${line2[0]} ]; then
  echo There\'s already a directory names ${line2[0]}
 else
  mkdir ${line2[0]}

  cd ${line2[0]}

  if [ ${line2[1]} == "(none)" ]; then
  pushd . > /dev/null
    . /standard_scripts/mknastypes2.sh
  popd > /dev/null
  cd ..
  break
  else
  pushd . > /dev/null
  . /standard_scripts/mknastypes.sh ${line2[1]}
  popd > /dev/null

  cd ..
  fi
 fi
 done < ${line[1]}

 cd ..
done < /etc/settings/Operating_Systems/osnames.sdr



popd > /dev/null

Output:
Code:

[root@c-des-main1-rec standard_scripts]# . ./mknasosnames.sh
Making directories for each operating system...
Creating DOS...
Making directories for types of software...
Creating LINUX...
Creating 2008.0...
bash: ${line[1]}: ambiguous redirect
Creating WINDOWS...
Making directories for types of software...
[root@c-des-main1-rec standard_scripts]#


PTrenholme 02-15-2013 04:36 PM

In post #12, above, you state that /etc/settings/Operating_Systems/linux/Mandriva.sdr contains
Quote:

2008.0
2009.1
Thus, when processing the 2008.0, line[0]=2008.0 and line[1] is null, so the redirection done < ${line[1]} is somewhat ambiguous, don't you think?

By the way, I notice that your code often uses commands (like, e.g., mkdir) but hardly ever follows the command with a [ $? -ne 0 ] && echo "Could not ..." assert check. You might find the information about the bash built in trap function of interest.

Also, I find your use of the pushd and popd built in functions somewhat inconsistent. Why not use them everywhere you now use a cd command? Or, if you're simply using the pushd command as a placeholder for the current directory, you could just do a variable_name="$(cwd)" and, to return there, a cd "${variable_name}". Of course, you might need the quotes if you directory names sometimes include blanks, etc., but that not much of a hardship.

des_a 02-15-2013 05:00 PM

Thanks for catching that. I'll work on fixing it. That means I may not be able to use the exact same syntax.

David the H. 02-17-2013 12:12 PM

I would recommend that instead of using pushd/popd, try redesigning your code flow to run the necessary commands in "()" subshell brackets. When the subshell exits, its environment is lost, and you're automatically back to where you started without having to do anything.

Example:
Code:

#!/bin/sh

echo "$PWD"
mkdir -p subdir1

(
    cd subdir1
    echo "$PWD"
    touch file1
    ls
)

echo "$PWD"
rm -rf subdir1

Save pushd/popd for when you need more complex backtracking through directories (and in all the years I've been scripting, I've never needed them).

David the H. 02-17-2013 12:27 PM

And to reiterate a couple of things:

When you use "#!/bin/sh", the script is interpreted as a POSIX-compliant script.

So if you want to use arrays or other bashisms, be sure to make the shebang "#!/bin/bash", and conversely if you need to use "#!/bin/sh" explicitly, then do not use arrays or other bashisms.

(Watch that you type it correctly, too. No spaces.)


And since I don't think I've yet stated it unambiguously:

QUOTE ALL OF YOUR VARIABLE EXPANSIONS. You should never leave the quotes off a parameter expansion unless you explicitly want the resulting string to be word-split by the shell and possible globbing patterns expanded. This is a vitally important concept in scripting, so train yourself to do it correctly now. You can learn about the exceptions later.

http://mywiki.wooledge.org/Arguments
http://mywiki.wooledge.org/WordSplitting
http://mywiki.wooledge.org/Quotes

This generally means that if it begins with a "$", then double-quote it. If it's a string that has spaces or other weird characters in it, also single or double quote it.

The general rule of thumb is also to try to quote the longest string possible. e.g.:

Code:

  echo "There's already a directory named ${line[0]}"

PTrenholme 02-17-2013 01:37 PM

I agree with the above comments by "David the H," but - to muddy the water slightly - I like to at least try to make my comments grammatically correct. viz:
Code:

echo "A directory named \"${line[0]}\" already exists." >&2
Another nice habit is to try to direct error and warning messages to stderr (&2). That way a user of the script can redirect its output to some file or pipe and not have that output stream messed up with errors or warnings.

des_a 02-18-2013 10:49 PM

Unless I'm breaking something, I think I have one more script to go. I'll retest after this, just to make sure though. Unfortunately, I'm stuck again and this time with no errors.

File to translate:
Code:

@ECHO OFF


IF "%1" == "" GOTO none
IF "%2" == "" GOTO none


CALL RT -temp
%1
CD "%2"


ECHO Making Standard Directories for Software...

ECHO Making Base Directories...
ECHO SOFTWARE...
MKDIR SOFTWARE


CD SOFTWARE
ECHO DOCUMENTATION...
MKDIR DOCUMENTATION

ECHO BOOTLOADERS...
MKDIR BOOTLOADERS

ECHO OPERATING SYSTEMS...
MKDIR OPERATING_SYSTEMS

ECHO DRIVERS...
MKDIR DRIVERS

ECHO PATCHES...
MKDIR PATCHES

ECHO PROGRAMS...
MKDIR PROGRAMS

ECHO CONFIGURATION_FILES...
MKDIR CONFIGURATION_FILES

ECHO BACKUP...
MKDIR BACKUP

ECHO CUSTOM...
MKDIR CUSTOM


ECHO Making Directories for Operating Systems and People...
CD DOCUMENTATION
CALL MKNAMES2
CD ..

CD BOOTLOADERS
CALL MKOSNAMES
CD ..

CD OPERATING_SYSTEMS
CALL MKNAMES
CD ..

CD DRIVERS
CALL MKOSNAMES
CD ..

CD PATCHES
CALL MKOSNAMES
CD ..

CD PROGRAMS
CALL MKOSNAMES
CD ..

CD CONFIGURATION_FILES
CALL MKOSNAMES
CD ..

CD BACKUP
CALL MKNAMES2
CD ..

CD CUSTOM
MKDIR READY
CD READY
CALL MKOSNAMES
CD ..
MKDIR NOT_READY
CD NOT_READY
CALL MKOSNAMES
CD ..


ECHO Done!


CALL RTCDTEMP
CALL RTCL -temp
GOTO done


:none
ECHO Usage: %0 [Drive] [Path]
ECHO.

:done

Translated files so far:

csoftwarefolders.sh:
Code:

#! /bin/sh


if [ $# -eq 0 ]; then
 echo Usage: csoftwarefolders.sh {path}
 echo
else
 pushd . > /dev/null
 cd $1


echo Making Standard Directories for Software...

echo Making Base Directories...
echo SOFTWARE
mkdir SOFTWARE
cd SOFTWARE


echo DOCUMENTATION
mkdir DOCUMENTATION

echo BOOTLOADERS
mkdir BOOTLOADERS

echo OPERATING_SYSTEMS
mkdir OPERATING_SYSTEMS

echo DRIVERS
mkdir DRIVERS

echo PATCHES
mkdir PATCHES

echo PROGRAMS
mkdir PROGRAMS

echo CONFIGURATION_FILES
mkdir CONFIGURATION_FILES

echo BACKUP
mkdir BACKUP

echo CUSTOM
mkdir CUSTOM


echo Making Directories for Operating Systems and People...
cd DOCUMENTATION
#. /standard_scripts/mknames2.sh
cd ..

cd BOOTLOADERS
. /standard_scripts/mkosnames.sh
cd ..

cd OPERATING_SYSTEMS
#. /standard_scripts/mknames.sh
cd ..

cd DRIVERS
#. /standard_scripts/mkosnames.sh
cd ..

cd PATCHES
#. /standard_scripts/mkosnames.sh
cd ..

cd PROGRAMS
#. /standard_scripts/mkosnames.sh
cd ..

cd CONFIGURATION_FILES
#. /standard_scripts/mkosnames.sh
cd ..

cd BACKUP
#. /standard_scripts/mknames2.sh
cd ..

cd CUSTOM
mkdir READY
cd READY
#. /standard_scripts/mkosnames.sh
cd ..
mkdir NOT_READY
cd NOT_READY
#. /standard_scripts/mkosnames.sh
cd ..
cd ..

echo Done!

 popd > /dev/null
fi

mkosnames.sh
Code:

#! /bin/sh


pushd . > /dev/null


echo Making directories for each operating system...
mkdir ALL
cd ALL
. /standard_scripts/mknames2.sh
cd ..


while read -a line
do
 echo Creating ${line[0]}...
 if [ -d ${line[0]} ]; then
  echo There\'s already a directory named ${line[0]}
 else
  mkdir ${line[0]}


 cd ${line[0]}

 while read -a line2
 do
  echo Creating ${line2[0]}...
  if [ -d ${line2[0]} ]; then 
  echo There\'s already a directory named ${line2[0]}
  else
  mkdir ${line2[0]}

  cd ${line2[0]}

  if [ ${line2[1]} == "(none)" ]; then
    . /standard_scripts/mknames.sh
  else
    . /standard_scripts/mktypes.sh ${line2[1]}
  fi

  cd ..
  fi
  done < ${line[1]}

  cd ..
 fi
done < /etc/settings/Operating_Systems/osnames.sdr


popd > /dev/null

mktypes.sh
Code:

#! /bin/sh


pushd . > /dev/null


echo Making directories for each operating system...
mkdir ALL
cd ALL
. /standard_scripts/mknames.sh
cd ..


while read -a line
do
 echo Creating ${line[0]}...
 if [ -d ${line[0]} ]; then
  echo There\'s already a directory named ${line[0]}
 else
  mkdir ${line[0]}
 fi

 cd ${line[0]}

 while read -a line2
 do
  echo Creating ${line2[0]}...
  if [ -d ${line2[0]} ]; then 
  echo There\'s already a directory named ${line2[0]}
  else
  mkdir ${line2[0]}

  cd ${line2[0]}

  echo ${line2[1]}
  if [ ${line2[1]} == "(none)" ]; then
    . /standard_scripts/mknames.sh
  else
    . /standard_scripts/mkversions.sh ${line2[1]}

    cd ..
  fi
  fi
 done < ${line[1]}
done < $1


popd > /dev/null

mknames.sh
Code:

#! /bin/sh



echo Making directories for Each Person in the House...

echo Making Directories for Types of Software for All...
mkdir ALL
cd ALL
mkdir STANDARD
mkdir OPTIONAL
cd STANDARD
mkdir NORMAL
mkdir SHAREWARE
cd ..
cd OPTIONAL
mkdir NORMAL
mkdir SHAREWARE
cd ..
cd ..

cat /etc/settings/names.sdr | while read line
do
 echo Creating $line...
 if [ -d $line ]; then 
  echo There\'s already a directory named $line
 else
  mkdir $line

  echo Making Directories for Types of Software for $line...
  cd $line
  mkdir STANDARD
  mkdir OPTIONAL
  cd STANDARD
  mkdir NORMAL
  mkdir SHAREWARE
  cd ..
  cd OPTIONAL
  mkdir NORMAL
  mkdir SHAREWARE
  cd ..
  cd ..
 fi
done

mkversions.sh
Code:

#! /bin/sh


pushd . > /dev/null


mkdir ALL
. /standard_scripts/mknames.sh

while read line
do
 if [ -d $line ]; then
  echo There\'s already a directory named $line!
 else
  cd $line
  . /standard_scripts/mknames.sh
  cd ..
 fi
done < $1


popd > /dev/null

mknames2.sh
Code:

#! /bin/sh



echo Making directories for Each Person in the House...

echo Making Directories for Types of Software for All...
mkdir ALL
cd ALL
mkdir STANDARD
mkdir OPTIONAL
cd STANDARD
mkdir NORMAL
mkdir SHAREWARE
cd ..
cd OPTIONAL
mkdir NORMAL
mkdir SHAREWARE
cd ..
cd ..


cat /etc/settings/names.sdr | while read line
do
 echo Creating $line...
 if [ -d $line ]; then 
  echo There\'s already a directory named $line
 else
  mkdir $line

  cd $line
  mkdir STANDARD
  mkdir OPTIONAL
  cd STANDARD
  mkdir NORMAL
  mkdir SHAREWARE
  cd ..
  cd OPTIONAL
  mkdir NORMAL
  mkdir SHAREWARE
  cd ..
  cd ..
 fi
done

This time it's just a bunch of strange runtime errors, but I haven't caught it yet. The DOS BATCH file is authoritive on the output this should give.

des_a 02-18-2013 10:54 PM

The new syntax of the deeper files is:

XP.sdr
Code:

HOME        /etc/settings/Operating_Systems/windows/none.sdr
PRO        /etc/settings/Operating_Systems/windows/none.sdr
MCE        /etc/settings/Operating_Systems/windows/none.sdr

It is the same with the other Linux files that go that deep. none.sdr, is just a blank file. Also, here is my new file, names.sdr:

Code:

des
When I applied the newer syntax to the files, that's what made the ambiguous message go away on the last script.

des_a 02-18-2013 11:42 PM

Here's the correct output:

des_a 02-18-2013 11:44 PM

Sorry about this, the system is saying my posts are too long. I'm going to have to break it up.

des_a 02-18-2013 11:48 PM

Here's the correct output (p1):

Code:

ÃÄÄÄBACKUP
³  ÃÄÄÄALL
³  ÀÄÄÄdes
ÃÄÄÄBOOTLOADERS
³  ÃÄÄÄALL
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄdes
³  ³      ÃÄÄÄOPTIONAL
³  ³      ³  ÃÄÄÄNORMAL
³  ³      ³  ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄSTANDARD
³  ³          ÃÄÄÄNORMAL
³  ³          ÀÄÄÄSHAREWARE
³  ÃÄÄÄDOS
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄFreeDOS
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄMS-DOS
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄPC-DOS
³  ³      ÃÄÄÄALL
³  ³      ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄSTANDARD
³  ³      ³      ÃÄÄÄNORMAL
³  ³      ³      ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄdes
³  ³          ÃÄÄÄOPTIONAL
³  ³          ³  ÃÄÄÄNORMAL
³  ³          ³  ÀÄÄÄSHAREWARE
³  ³          ÀÄÄÄSTANDARD
³  ³              ÃÄÄÄNORMAL
³  ³              ÀÄÄÄSHAREWARE
³  ÃÄÄÄLINUX
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄMandrake
³  ³  ³  ÃÄÄÄ10.1
³  ³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄdes
³  ³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄALL
³  ³  ³      ÃÄÄÄALL
³  ³  ³      ³  ÃÄÄÄOPTIONAL
³  ³  ³      ³  ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³      ³  ÀÄÄÄSTANDARD
³  ³  ³      ³      ÃÄÄÄNORMAL
³  ³  ³      ³      ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄdes
³  ³  ³          ÃÄÄÄOPTIONAL
³  ³  ³          ³  ÃÄÄÄNORMAL
³  ³  ³          ³  ÀÄÄÄSHAREWARE
³  ³  ³          ÀÄÄÄSTANDARD
³  ³  ³              ÃÄÄÄNORMAL
³  ³  ³              ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄMandriva
³  ³      ÃÄÄÄ2008.0
³  ³      ³  ÃÄÄÄALL
³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄdes
³  ³      ³      ÃÄÄÄOPTIONAL
³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³      ³      ÀÄÄÄSTANDARD
³  ³      ³          ÃÄÄÄNORMAL
³  ³      ³          ÀÄÄÄSHAREWARE
³  ³      ÃÄÄÄ2009.1
³  ³      ³  ÃÄÄÄALL
³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄdes
³  ³      ³      ÃÄÄÄOPTIONAL
³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³      ³      ÀÄÄÄSTANDARD
³  ³      ³          ÃÄÄÄNORMAL
³  ³      ³          ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄALL
³  ³          ÃÄÄÄALL
³  ³          ³  ÃÄÄÄOPTIONAL
³  ³          ³  ³  ÃÄÄÄNORMAL
³  ³          ³  ³  ÀÄÄÄSHAREWARE
³  ³          ³  ÀÄÄÄSTANDARD
³  ³          ³      ÃÄÄÄNORMAL
³  ³          ³      ÀÄÄÄSHAREWARE
³  ³          ÀÄÄÄdes
³  ³              ÃÄÄÄOPTIONAL
³  ³              ³  ÃÄÄÄNORMAL
³  ³              ³  ÀÄÄÄSHAREWARE
³  ³              ÀÄÄÄSTANDARD
³  ³                  ÃÄÄÄNORMAL
³  ³                  ÀÄÄÄSHAREWARE
³  ÀÄÄÄWINDOWS
³      ÃÄÄÄ95
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÃÄÄÄ98
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÃÄÄÄALL
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÀÄÄÄXP
³          ÃÄÄÄALL
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÃÄÄÄHOME
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÃÄÄÄMCE
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÀÄÄÄPRO
³              ÃÄÄÄALL
³              ³  ÃÄÄÄOPTIONAL
³              ³  ³  ÃÄÄÄNORMAL
³              ³  ³  ÀÄÄÄSHAREWARE
³              ³  ÀÄÄÄSTANDARD
³              ³      ÃÄÄÄNORMAL
³              ³      ÀÄÄÄSHAREWARE
³              ÀÄÄÄdes
³                  ÃÄÄÄOPTIONAL
³                  ³  ÃÄÄÄNORMAL
³                  ³  ÀÄÄÄSHAREWARE
³                  ÀÄÄÄSTANDARD
³                      ÃÄÄÄNORMAL
³                      ÀÄÄÄSHAREWARE
ÃÄÄÄCONFIGURATION_FILES
³  ÃÄÄÄALL
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄdes
³  ³      ÃÄÄÄOPTIONAL
³  ³      ³  ÃÄÄÄNORMAL
³  ³      ³  ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄSTANDARD
³  ³          ÃÄÄÄNORMAL
³  ³          ÀÄÄÄSHAREWARE
³  ÃÄÄÄDOS
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄFreeDOS
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄMS-DOS
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄPC-DOS
³  ³      ÃÄÄÄALL
³  ³      ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄSTANDARD
³  ³      ³      ÃÄÄÄNORMAL
³  ³      ³      ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄdes
³  ³          ÃÄÄÄOPTIONAL
³  ³          ³  ÃÄÄÄNORMAL
³  ³          ³  ÀÄÄÄSHAREWARE
³  ³          ÀÄÄÄSTANDARD
³  ³              ÃÄÄÄNORMAL
³  ³              ÀÄÄÄSHAREWARE
³  ÃÄÄÄLINUX
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄMandrake
³  ³  ³  ÃÄÄÄ10.1
³  ³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄdes
³  ³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄALL
³  ³  ³      ÃÄÄÄALL
³  ³  ³      ³  ÃÄÄÄOPTIONAL
³  ³  ³      ³  ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³      ³  ÀÄÄÄSTANDARD
³  ³  ³      ³      ÃÄÄÄNORMAL
³  ³  ³      ³      ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄdes
³  ³  ³          ÃÄÄÄOPTIONAL
³  ³  ³          ³  ÃÄÄÄNORMAL
³  ³  ³          ³  ÀÄÄÄSHAREWARE
³  ³  ³          ÀÄÄÄSTANDARD
³  ³  ³              ÃÄÄÄNORMAL
³  ³  ³              ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄMandriva
³  ³      ÃÄÄÄ2008.0
³  ³      ³  ÃÄÄÄALL
³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄdes
³  ³      ³      ÃÄÄÄOPTIONAL
³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³      ³      ÀÄÄÄSTANDARD
³  ³      ³          ÃÄÄÄNORMAL
³  ³      ³          ÀÄÄÄSHAREWARE
³  ³      ÃÄÄÄ2009.1
³  ³      ³  ÃÄÄÄALL
³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄdes
³  ³      ³      ÃÄÄÄOPTIONAL
³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³      ³      ÀÄÄÄSTANDARD
³  ³      ³          ÃÄÄÄNORMAL
³  ³      ³          ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄALL
³  ³          ÃÄÄÄALL
³  ³          ³  ÃÄÄÄOPTIONAL
³  ³          ³  ³  ÃÄÄÄNORMAL
³  ³          ³  ³  ÀÄÄÄSHAREWARE
³  ³          ³  ÀÄÄÄSTANDARD
³  ³          ³      ÃÄÄÄNORMAL
³  ³          ³      ÀÄÄÄSHAREWARE
³  ³          ÀÄÄÄdes
³  ³              ÃÄÄÄOPTIONAL
³  ³              ³  ÃÄÄÄNORMAL
³  ³              ³  ÀÄÄÄSHAREWARE
³  ³              ÀÄÄÄSTANDARD
³  ³                  ÃÄÄÄNORMAL
³  ³                  ÀÄÄÄSHAREWARE
³  ÀÄÄÄWINDOWS
³      ÃÄÄÄ95
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÃÄÄÄ98
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÃÄÄÄALL
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÀÄÄÄXP
³          ÃÄÄÄALL
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÃÄÄÄHOME
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÃÄÄÄMCE
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÀÄÄÄPRO
³              ÃÄÄÄALL
³              ³  ÃÄÄÄOPTIONAL
³              ³  ³  ÃÄÄÄNORMAL
³              ³  ³  ÀÄÄÄSHAREWARE
³              ³  ÀÄÄÄSTANDARD
³              ³      ÃÄÄÄNORMAL
³              ³      ÀÄÄÄSHAREWARE
³              ÀÄÄÄdes
³                  ÃÄÄÄOPTIONAL
³                  ³  ÃÄÄÄNORMAL
³                  ³  ÀÄÄÄSHAREWARE
³                  ÀÄÄÄSTANDARD
³                      ÃÄÄÄNORMAL
³                      ÀÄÄÄSHAREWARE


des_a 02-18-2013 11:50 PM

(p2):

Code:

ÃÄÄÄCUSTOM
³  ÃÄÄÄNOT_READY
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄDOS
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄdes
³  ³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ³  ÃÄÄÄFreeDOS
³  ³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄdes
³  ³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ³  ÃÄÄÄMS-DOS
³  ³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄdes
³  ³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄPC-DOS
³  ³  ³      ÃÄÄÄALL
³  ³  ³      ³  ÃÄÄÄOPTIONAL
³  ³  ³      ³  ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³      ³  ÀÄÄÄSTANDARD
³  ³  ³      ³      ÃÄÄÄNORMAL
³  ³  ³      ³      ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄdes
³  ³  ³          ÃÄÄÄOPTIONAL
³  ³  ³          ³  ÃÄÄÄNORMAL
³  ³  ³          ³  ÀÄÄÄSHAREWARE
³  ³  ³          ÀÄÄÄSTANDARD
³  ³  ³              ÃÄÄÄNORMAL
³  ³  ³              ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄLINUX
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄdes
³  ³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ³  ÃÄÄÄMandrake
³  ³  ³  ³  ÃÄÄÄ10.1
³  ³  ³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ³  ³  ÀÄÄÄdes
³  ³  ³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄALL
³  ³  ³  ³      ÃÄÄÄALL
³  ³  ³  ³      ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³      ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³      ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³      ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ³      ÀÄÄÄSHAREWARE
³  ³  ³  ³      ÀÄÄÄdes
³  ³  ³  ³          ÃÄÄÄOPTIONAL
³  ³  ³  ³          ³  ÃÄÄÄNORMAL
³  ³  ³  ³          ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³          ÀÄÄÄSTANDARD
³  ³  ³  ³              ÃÄÄÄNORMAL
³  ³  ³  ³              ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄMandriva
³  ³  ³      ÃÄÄÄ2008.0
³  ³  ³      ³  ÃÄÄÄALL
³  ³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³      ³  ÀÄÄÄdes
³  ³  ³      ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ³      ÀÄÄÄSTANDARD
³  ³  ³      ³          ÃÄÄÄNORMAL
³  ³  ³      ³          ÀÄÄÄSHAREWARE
³  ³  ³      ÃÄÄÄ2009.1
³  ³  ³      ³  ÃÄÄÄALL
³  ³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³      ³  ÀÄÄÄdes
³  ³  ³      ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ³      ÀÄÄÄSTANDARD
³  ³  ³      ³          ÃÄÄÄNORMAL
³  ³  ³      ³          ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄALL
³  ³  ³          ÃÄÄÄALL
³  ³  ³          ³  ÃÄÄÄOPTIONAL
³  ³  ³          ³  ³  ÃÄÄÄNORMAL
³  ³  ³          ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³          ³  ÀÄÄÄSTANDARD
³  ³  ³          ³      ÃÄÄÄNORMAL
³  ³  ³          ³      ÀÄÄÄSHAREWARE
³  ³  ³          ÀÄÄÄdes
³  ³  ³              ÃÄÄÄOPTIONAL
³  ³  ³              ³  ÃÄÄÄNORMAL
³  ³  ³              ³  ÀÄÄÄSHAREWARE
³  ³  ³              ÀÄÄÄSTANDARD
³  ³  ³                  ÃÄÄÄNORMAL
³  ³  ³                  ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄWINDOWS
³  ³      ÃÄÄÄ95
³  ³      ³  ÃÄÄÄALL
³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄdes
³  ³      ³      ÃÄÄÄOPTIONAL
³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³      ³      ÀÄÄÄSTANDARD
³  ³      ³          ÃÄÄÄNORMAL
³  ³      ³          ÀÄÄÄSHAREWARE
³  ³      ÃÄÄÄ98
³  ³      ³  ÃÄÄÄALL
³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄdes
³  ³      ³      ÃÄÄÄOPTIONAL
³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³      ³      ÀÄÄÄSTANDARD
³  ³      ³          ÃÄÄÄNORMAL
³  ³      ³          ÀÄÄÄSHAREWARE
³  ³      ÃÄÄÄALL
³  ³      ³  ÃÄÄÄALL
³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄdes
³  ³      ³      ÃÄÄÄOPTIONAL
³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³      ³      ÀÄÄÄSTANDARD
³  ³      ³          ÃÄÄÄNORMAL
³  ³      ³          ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄXP
³  ³          ÃÄÄÄALL
³  ³          ³  ÃÄÄÄALL
³  ³          ³  ³  ÃÄÄÄOPTIONAL
³  ³          ³  ³  ³  ÃÄÄÄNORMAL
³  ³          ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³          ³  ³  ÀÄÄÄSTANDARD
³  ³          ³  ³      ÃÄÄÄNORMAL
³  ³          ³  ³      ÀÄÄÄSHAREWARE
³  ³          ³  ÀÄÄÄdes
³  ³          ³      ÃÄÄÄOPTIONAL
³  ³          ³      ³  ÃÄÄÄNORMAL
³  ³          ³      ³  ÀÄÄÄSHAREWARE
³  ³          ³      ÀÄÄÄSTANDARD
³  ³          ³          ÃÄÄÄNORMAL
³  ³          ³          ÀÄÄÄSHAREWARE
³  ³          ÃÄÄÄHOME
³  ³          ³  ÃÄÄÄALL
³  ³          ³  ³  ÃÄÄÄOPTIONAL
³  ³          ³  ³  ³  ÃÄÄÄNORMAL
³  ³          ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³          ³  ³  ÀÄÄÄSTANDARD
³  ³          ³  ³      ÃÄÄÄNORMAL
³  ³          ³  ³      ÀÄÄÄSHAREWARE
³  ³          ³  ÀÄÄÄdes
³  ³          ³      ÃÄÄÄOPTIONAL
³  ³          ³      ³  ÃÄÄÄNORMAL
³  ³          ³      ³  ÀÄÄÄSHAREWARE
³  ³          ³      ÀÄÄÄSTANDARD
³  ³          ³          ÃÄÄÄNORMAL
³  ³          ³          ÀÄÄÄSHAREWARE
³  ³          ÃÄÄÄMCE
³  ³          ³  ÃÄÄÄALL
³  ³          ³  ³  ÃÄÄÄOPTIONAL
³  ³          ³  ³  ³  ÃÄÄÄNORMAL
³  ³          ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³          ³  ³  ÀÄÄÄSTANDARD
³  ³          ³  ³      ÃÄÄÄNORMAL
³  ³          ³  ³      ÀÄÄÄSHAREWARE
³  ³          ³  ÀÄÄÄdes
³  ³          ³      ÃÄÄÄOPTIONAL
³  ³          ³      ³  ÃÄÄÄNORMAL
³  ³          ³      ³  ÀÄÄÄSHAREWARE
³  ³          ³      ÀÄÄÄSTANDARD
³  ³          ³          ÃÄÄÄNORMAL
³  ³          ³          ÀÄÄÄSHAREWARE
³  ³          ÀÄÄÄPRO
³  ³              ÃÄÄÄALL
³  ³              ³  ÃÄÄÄOPTIONAL
³  ³              ³  ³  ÃÄÄÄNORMAL
³  ³              ³  ³  ÀÄÄÄSHAREWARE
³  ³              ³  ÀÄÄÄSTANDARD
³  ³              ³      ÃÄÄÄNORMAL
³  ³              ³      ÀÄÄÄSHAREWARE
³  ³              ÀÄÄÄdes
³  ³                  ÃÄÄÄOPTIONAL
³  ³                  ³  ÃÄÄÄNORMAL
³  ³                  ³  ÀÄÄÄSHAREWARE
³  ³                  ÀÄÄÄSTANDARD
³  ³                      ÃÄÄÄNORMAL
³  ³                      ÀÄÄÄSHAREWARE
³  ÀÄÄÄREADY
³      ÃÄÄÄALL
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÃÄÄÄDOS
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄALL
³      ³  ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ³  ÀÄÄÄSTANDARD
³      ³  ³  ³      ÃÄÄÄNORMAL
³      ³  ³  ³      ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄdes
³      ³  ³      ÃÄÄÄOPTIONAL
³      ³  ³      ³  ÃÄÄÄNORMAL
³      ³  ³      ³  ÀÄÄÄSHAREWARE
³      ³  ³      ÀÄÄÄSTANDARD
³      ³  ³          ÃÄÄÄNORMAL
³      ³  ³          ÀÄÄÄSHAREWARE
³      ³  ÃÄÄÄFreeDOS
³      ³  ³  ÃÄÄÄALL
³      ³  ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ³  ÀÄÄÄSTANDARD
³      ³  ³  ³      ÃÄÄÄNORMAL
³      ³  ³  ³      ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄdes
³      ³  ³      ÃÄÄÄOPTIONAL
³      ³  ³      ³  ÃÄÄÄNORMAL
³      ³  ³      ³  ÀÄÄÄSHAREWARE
³      ³  ³      ÀÄÄÄSTANDARD
³      ³  ³          ÃÄÄÄNORMAL
³      ³  ³          ÀÄÄÄSHAREWARE
³      ³  ÃÄÄÄMS-DOS
³      ³  ³  ÃÄÄÄALL
³      ³  ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ³  ÀÄÄÄSTANDARD
³      ³  ³  ³      ÃÄÄÄNORMAL
³      ³  ³  ³      ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄdes
³      ³  ³      ÃÄÄÄOPTIONAL
³      ³  ³      ³  ÃÄÄÄNORMAL
³      ³  ³      ³  ÀÄÄÄSHAREWARE
³      ³  ³      ÀÄÄÄSTANDARD
³      ³  ³          ÃÄÄÄNORMAL
³      ³  ³          ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄPC-DOS
³      ³      ÃÄÄÄALL
³      ³      ³  ÃÄÄÄOPTIONAL
³      ³      ³  ³  ÃÄÄÄNORMAL
³      ³      ³  ³  ÀÄÄÄSHAREWARE
³      ³      ³  ÀÄÄÄSTANDARD
³      ³      ³      ÃÄÄÄNORMAL
³      ³      ³      ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄdes
³      ³          ÃÄÄÄOPTIONAL
³      ³          ³  ÃÄÄÄNORMAL
³      ³          ³  ÀÄÄÄSHAREWARE
³      ³          ÀÄÄÄSTANDARD
³      ³              ÃÄÄÄNORMAL
³      ³              ÀÄÄÄSHAREWARE
³      ÃÄÄÄLINUX
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄALL
³      ³  ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ³  ÀÄÄÄSTANDARD
³      ³  ³  ³      ÃÄÄÄNORMAL
³      ³  ³  ³      ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄdes
³      ³  ³      ÃÄÄÄOPTIONAL
³      ³  ³      ³  ÃÄÄÄNORMAL
³      ³  ³      ³  ÀÄÄÄSHAREWARE
³      ³  ³      ÀÄÄÄSTANDARD
³      ³  ³          ÃÄÄÄNORMAL
³      ³  ³          ÀÄÄÄSHAREWARE
³      ³  ÃÄÄÄMandrake
³      ³  ³  ÃÄÄÄ10.1
³      ³  ³  ³  ÃÄÄÄALL
³      ³  ³  ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ³  ³  ÀÄÄÄSTANDARD
³      ³  ³  ³  ³      ÃÄÄÄNORMAL
³      ³  ³  ³  ³      ÀÄÄÄSHAREWARE
³      ³  ³  ³  ÀÄÄÄdes
³      ³  ³  ³      ÃÄÄÄOPTIONAL
³      ³  ³  ³      ³  ÃÄÄÄNORMAL
³      ³  ³  ³      ³  ÀÄÄÄSHAREWARE
³      ³  ³  ³      ÀÄÄÄSTANDARD
³      ³  ³  ³          ÃÄÄÄNORMAL
³      ³  ³  ³          ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄALL
³      ³  ³      ÃÄÄÄALL
³      ³  ³      ³  ÃÄÄÄOPTIONAL
³      ³  ³      ³  ³  ÃÄÄÄNORMAL
³      ³  ³      ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³      ³  ÀÄÄÄSTANDARD
³      ³  ³      ³      ÃÄÄÄNORMAL
³      ³  ³      ³      ÀÄÄÄSHAREWARE
³      ³  ³      ÀÄÄÄdes
³      ³  ³          ÃÄÄÄOPTIONAL
³      ³  ³          ³  ÃÄÄÄNORMAL
³      ³  ³          ³  ÀÄÄÄSHAREWARE
³      ³  ³          ÀÄÄÄSTANDARD
³      ³  ³              ÃÄÄÄNORMAL
³      ³  ³              ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄMandriva
³      ³      ÃÄÄÄ2008.0
³      ³      ³  ÃÄÄÄALL
³      ³      ³  ³  ÃÄÄÄOPTIONAL
³      ³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³      ³  ³  ÀÄÄÄSTANDARD
³      ³      ³  ³      ÃÄÄÄNORMAL
³      ³      ³  ³      ÀÄÄÄSHAREWARE
³      ³      ³  ÀÄÄÄdes
³      ³      ³      ÃÄÄÄOPTIONAL
³      ³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ³      ÀÄÄÄSTANDARD
³      ³      ³          ÃÄÄÄNORMAL
³      ³      ³          ÀÄÄÄSHAREWARE
³      ³      ÃÄÄÄ2009.1
³      ³      ³  ÃÄÄÄALL
³      ³      ³  ³  ÃÄÄÄOPTIONAL
³      ³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³      ³  ³  ÀÄÄÄSTANDARD
³      ³      ³  ³      ÃÄÄÄNORMAL
³      ³      ³  ³      ÀÄÄÄSHAREWARE
³      ³      ³  ÀÄÄÄdes
³      ³      ³      ÃÄÄÄOPTIONAL
³      ³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ³      ÀÄÄÄSTANDARD
³      ³      ³          ÃÄÄÄNORMAL
³      ³      ³          ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄALL
³      ³          ÃÄÄÄALL
³      ³          ³  ÃÄÄÄOPTIONAL
³      ³          ³  ³  ÃÄÄÄNORMAL
³      ³          ³  ³  ÀÄÄÄSHAREWARE
³      ³          ³  ÀÄÄÄSTANDARD
³      ³          ³      ÃÄÄÄNORMAL
³      ³          ³      ÀÄÄÄSHAREWARE
³      ³          ÀÄÄÄdes
³      ³              ÃÄÄÄOPTIONAL
³      ³              ³  ÃÄÄÄNORMAL
³      ³              ³  ÀÄÄÄSHAREWARE
³      ³              ÀÄÄÄSTANDARD
³      ³                  ÃÄÄÄNORMAL
³      ³                  ÀÄÄÄSHAREWARE
³      ÀÄÄÄWINDOWS
³          ÃÄÄÄ95
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÃÄÄÄ98
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÃÄÄÄALL
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÀÄÄÄXP
³              ÃÄÄÄALL
³              ³  ÃÄÄÄALL
³              ³  ³  ÃÄÄÄOPTIONAL
³              ³  ³  ³  ÃÄÄÄNORMAL
³              ³  ³  ³  ÀÄÄÄSHAREWARE
³              ³  ³  ÀÄÄÄSTANDARD
³              ³  ³      ÃÄÄÄNORMAL
³              ³  ³      ÀÄÄÄSHAREWARE
³              ³  ÀÄÄÄdes
³              ³      ÃÄÄÄOPTIONAL
³              ³      ³  ÃÄÄÄNORMAL
³              ³      ³  ÀÄÄÄSHAREWARE
³              ³      ÀÄÄÄSTANDARD
³              ³          ÃÄÄÄNORMAL
³              ³          ÀÄÄÄSHAREWARE
³              ÃÄÄÄHOME
³              ³  ÃÄÄÄALL
³              ³  ³  ÃÄÄÄOPTIONAL
³              ³  ³  ³  ÃÄÄÄNORMAL
³              ³  ³  ³  ÀÄÄÄSHAREWARE
³              ³  ³  ÀÄÄÄSTANDARD
³              ³  ³      ÃÄÄÄNORMAL
³              ³  ³      ÀÄÄÄSHAREWARE
³              ³  ÀÄÄÄdes
³              ³      ÃÄÄÄOPTIONAL
³              ³      ³  ÃÄÄÄNORMAL
³              ³      ³  ÀÄÄÄSHAREWARE
³              ³      ÀÄÄÄSTANDARD
³              ³          ÃÄÄÄNORMAL
³              ³          ÀÄÄÄSHAREWARE
³              ÃÄÄÄMCE
³              ³  ÃÄÄÄALL
³              ³  ³  ÃÄÄÄOPTIONAL
³              ³  ³  ³  ÃÄÄÄNORMAL
³              ³  ³  ³  ÀÄÄÄSHAREWARE
³              ³  ³  ÀÄÄÄSTANDARD
³              ³  ³      ÃÄÄÄNORMAL
³              ³  ³      ÀÄÄÄSHAREWARE
³              ³  ÀÄÄÄdes
³              ³      ÃÄÄÄOPTIONAL
³              ³      ³  ÃÄÄÄNORMAL
³              ³      ³  ÀÄÄÄSHAREWARE
³              ³      ÀÄÄÄSTANDARD
³              ³          ÃÄÄÄNORMAL
³              ³          ÀÄÄÄSHAREWARE
³              ÀÄÄÄPRO
³                  ÃÄÄÄALL
³                  ³  ÃÄÄÄOPTIONAL
³                  ³  ³  ÃÄÄÄNORMAL
³                  ³  ³  ÀÄÄÄSHAREWARE
³                  ³  ÀÄÄÄSTANDARD
³                  ³      ÃÄÄÄNORMAL
³                  ³      ÀÄÄÄSHAREWARE
³                  ÀÄÄÄdes
³                      ÃÄÄÄOPTIONAL
³                      ³  ÃÄÄÄNORMAL
³                      ³  ÀÄÄÄSHAREWARE
³                      ÀÄÄÄSTANDARD
³                          ÃÄÄÄNORMAL
³                          ÀÄÄÄSHAREWARE
ÃÄÄÄDOCUMENTATION
³  ÃÄÄÄALL
³  ÀÄÄÄdes
ÃÄÄÄDRIVERS
³  ÃÄÄÄALL
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄdes
³  ³      ÃÄÄÄOPTIONAL
³  ³      ³  ÃÄÄÄNORMAL
³  ³      ³  ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄSTANDARD
³  ³          ÃÄÄÄNORMAL
³  ³          ÀÄÄÄSHAREWARE
³  ÃÄÄÄDOS
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄFreeDOS
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄMS-DOS
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄPC-DOS
³  ³      ÃÄÄÄALL
³  ³      ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄSTANDARD
³  ³      ³      ÃÄÄÄNORMAL
³  ³      ³      ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄdes
³  ³          ÃÄÄÄOPTIONAL
³  ³          ³  ÃÄÄÄNORMAL
³  ³          ³  ÀÄÄÄSHAREWARE
³  ³          ÀÄÄÄSTANDARD
³  ³              ÃÄÄÄNORMAL
³  ³              ÀÄÄÄSHAREWARE
³  ÃÄÄÄLINUX
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄMandrake
³  ³  ³  ÃÄÄÄ10.1
³  ³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄdes
³  ³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄALL
³  ³  ³      ÃÄÄÄALL
³  ³  ³      ³  ÃÄÄÄOPTIONAL
³  ³  ³      ³  ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³      ³  ÀÄÄÄSTANDARD
³  ³  ³      ³      ÃÄÄÄNORMAL
³  ³  ³      ³      ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄdes
³  ³  ³          ÃÄÄÄOPTIONAL
³  ³  ³          ³  ÃÄÄÄNORMAL
³  ³  ³          ³  ÀÄÄÄSHAREWARE
³  ³  ³          ÀÄÄÄSTANDARD
³  ³  ³              ÃÄÄÄNORMAL
³  ³  ³              ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄMandriva
³  ³      ÃÄÄÄ2008.0
³  ³      ³  ÃÄÄÄALL
³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄdes
³  ³      ³      ÃÄÄÄOPTIONAL
³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³      ³      ÀÄÄÄSTANDARD
³  ³      ³          ÃÄÄÄNORMAL
³  ³      ³          ÀÄÄÄSHAREWARE
³  ³      ÃÄÄÄ2009.1
³  ³      ³  ÃÄÄÄALL
³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄdes
³  ³      ³      ÃÄÄÄOPTIONAL
³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³      ³      ÀÄÄÄSTANDARD
³  ³      ³          ÃÄÄÄNORMAL
³  ³      ³          ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄALL
³  ³          ÃÄÄÄALL
³  ³          ³  ÃÄÄÄOPTIONAL
³  ³          ³  ³  ÃÄÄÄNORMAL
³  ³          ³  ³  ÀÄÄÄSHAREWARE
³  ³          ³  ÀÄÄÄSTANDARD
³  ³          ³      ÃÄÄÄNORMAL
³  ³          ³      ÀÄÄÄSHAREWARE
³  ³          ÀÄÄÄdes
³  ³              ÃÄÄÄOPTIONAL
³  ³              ³  ÃÄÄÄNORMAL
³  ³              ³  ÀÄÄÄSHAREWARE
³  ³              ÀÄÄÄSTANDARD
³  ³                  ÃÄÄÄNORMAL
³  ³                  ÀÄÄÄSHAREWARE
³  ÀÄÄÄWINDOWS
³      ÃÄÄÄ95
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÃÄÄÄ98
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÃÄÄÄALL
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÀÄÄÄXP
³          ÃÄÄÄALL
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÃÄÄÄHOME
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÃÄÄÄMCE
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÀÄÄÄPRO
³              ÃÄÄÄALL
³              ³  ÃÄÄÄOPTIONAL
³              ³  ³  ÃÄÄÄNORMAL
³              ³  ³  ÀÄÄÄSHAREWARE
³              ³  ÀÄÄÄSTANDARD
³              ³      ÃÄÄÄNORMAL
³              ³      ÀÄÄÄSHAREWARE
³              ÀÄÄÄdes
³                  ÃÄÄÄOPTIONAL
³                  ³  ÃÄÄÄNORMAL
³                  ³  ÀÄÄÄSHAREWARE
³                  ÀÄÄÄSTANDARD
³                      ÃÄÄÄNORMAL
³                      ÀÄÄÄSHAREWARE


des_a 02-18-2013 11:51 PM

(p3):

Code:

ÃÄÄÄOPERATING_SYSTEMS
³  ÃÄÄÄALL
³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄSTANDARD
³  ³      ÃÄÄÄNORMAL
³  ³      ÀÄÄÄSHAREWARE
³  ÀÄÄÄdes
³      ÃÄÄÄOPTIONAL
³      ³  ÃÄÄÄNORMAL
³      ³  ÀÄÄÄSHAREWARE
³      ÀÄÄÄSTANDARD
³          ÃÄÄÄNORMAL
³          ÀÄÄÄSHAREWARE
ÃÄÄÄPATCHES
³  ÃÄÄÄALL
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄdes
³  ³      ÃÄÄÄOPTIONAL
³  ³      ³  ÃÄÄÄNORMAL
³  ³      ³  ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄSTANDARD
³  ³          ÃÄÄÄNORMAL
³  ³          ÀÄÄÄSHAREWARE
³  ÃÄÄÄDOS
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄFreeDOS
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄMS-DOS
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄPC-DOS
³  ³      ÃÄÄÄALL
³  ³      ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄSTANDARD
³  ³      ³      ÃÄÄÄNORMAL
³  ³      ³      ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄdes
³  ³          ÃÄÄÄOPTIONAL
³  ³          ³  ÃÄÄÄNORMAL
³  ³          ³  ÀÄÄÄSHAREWARE
³  ³          ÀÄÄÄSTANDARD
³  ³              ÃÄÄÄNORMAL
³  ³              ÀÄÄÄSHAREWARE
³  ÃÄÄÄLINUX
³  ³  ÃÄÄÄALL
³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄdes
³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ÃÄÄÄMandrake
³  ³  ³  ÃÄÄÄ10.1
³  ³  ³  ³  ÃÄÄÄALL
³  ³  ³  ³  ³  ÃÄÄÄOPTIONAL
³  ³  ³  ³  ³  ³  ÃÄÄÄNORMAL
³  ³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³  ³  ÀÄÄÄSTANDARD
³  ³  ³  ³  ³      ÃÄÄÄNORMAL
³  ³  ³  ³  ³      ÀÄÄÄSHAREWARE
³  ³  ³  ³  ÀÄÄÄdes
³  ³  ³  ³      ÃÄÄÄOPTIONAL
³  ³  ³  ³      ³  ÃÄÄÄNORMAL
³  ³  ³  ³      ³  ÀÄÄÄSHAREWARE
³  ³  ³  ³      ÀÄÄÄSTANDARD
³  ³  ³  ³          ÃÄÄÄNORMAL
³  ³  ³  ³          ÀÄÄÄSHAREWARE
³  ³  ³  ÀÄÄÄALL
³  ³  ³      ÃÄÄÄALL
³  ³  ³      ³  ÃÄÄÄOPTIONAL
³  ³  ³      ³  ³  ÃÄÄÄNORMAL
³  ³  ³      ³  ³  ÀÄÄÄSHAREWARE
³  ³  ³      ³  ÀÄÄÄSTANDARD
³  ³  ³      ³      ÃÄÄÄNORMAL
³  ³  ³      ³      ÀÄÄÄSHAREWARE
³  ³  ³      ÀÄÄÄdes
³  ³  ³          ÃÄÄÄOPTIONAL
³  ³  ³          ³  ÃÄÄÄNORMAL
³  ³  ³          ³  ÀÄÄÄSHAREWARE
³  ³  ³          ÀÄÄÄSTANDARD
³  ³  ³              ÃÄÄÄNORMAL
³  ³  ³              ÀÄÄÄSHAREWARE
³  ³  ÀÄÄÄMandriva
³  ³      ÃÄÄÄ2008.0
³  ³      ³  ÃÄÄÄALL
³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄdes
³  ³      ³      ÃÄÄÄOPTIONAL
³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³      ³      ÀÄÄÄSTANDARD
³  ³      ³          ÃÄÄÄNORMAL
³  ³      ³          ÀÄÄÄSHAREWARE
³  ³      ÃÄÄÄ2009.1
³  ³      ³  ÃÄÄÄALL
³  ³      ³  ³  ÃÄÄÄOPTIONAL
³  ³      ³  ³  ³  ÃÄÄÄNORMAL
³  ³      ³  ³  ³  ÀÄÄÄSHAREWARE
³  ³      ³  ³  ÀÄÄÄSTANDARD
³  ³      ³  ³      ÃÄÄÄNORMAL
³  ³      ³  ³      ÀÄÄÄSHAREWARE
³  ³      ³  ÀÄÄÄdes
³  ³      ³      ÃÄÄÄOPTIONAL
³  ³      ³      ³  ÃÄÄÄNORMAL
³  ³      ³      ³  ÀÄÄÄSHAREWARE
³  ³      ³      ÀÄÄÄSTANDARD
³  ³      ³          ÃÄÄÄNORMAL
³  ³      ³          ÀÄÄÄSHAREWARE
³  ³      ÀÄÄÄALL
³  ³          ÃÄÄÄALL
³  ³          ³  ÃÄÄÄOPTIONAL
³  ³          ³  ³  ÃÄÄÄNORMAL
³  ³          ³  ³  ÀÄÄÄSHAREWARE
³  ³          ³  ÀÄÄÄSTANDARD
³  ³          ³      ÃÄÄÄNORMAL
³  ³          ³      ÀÄÄÄSHAREWARE
³  ³          ÀÄÄÄdes
³  ³              ÃÄÄÄOPTIONAL
³  ³              ³  ÃÄÄÄNORMAL
³  ³              ³  ÀÄÄÄSHAREWARE
³  ³              ÀÄÄÄSTANDARD
³  ³                  ÃÄÄÄNORMAL
³  ³                  ÀÄÄÄSHAREWARE
³  ÀÄÄÄWINDOWS
³      ÃÄÄÄ95
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÃÄÄÄ98
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÃÄÄÄALL
³      ³  ÃÄÄÄALL
³      ³  ³  ÃÄÄÄOPTIONAL
³      ³  ³  ³  ÃÄÄÄNORMAL
³      ³  ³  ³  ÀÄÄÄSHAREWARE
³      ³  ³  ÀÄÄÄSTANDARD
³      ³  ³      ÃÄÄÄNORMAL
³      ³  ³      ÀÄÄÄSHAREWARE
³      ³  ÀÄÄÄdes
³      ³      ÃÄÄÄOPTIONAL
³      ³      ³  ÃÄÄÄNORMAL
³      ³      ³  ÀÄÄÄSHAREWARE
³      ³      ÀÄÄÄSTANDARD
³      ³          ÃÄÄÄNORMAL
³      ³          ÀÄÄÄSHAREWARE
³      ÀÄÄÄXP
³          ÃÄÄÄALL
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÃÄÄÄHOME
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÃÄÄÄMCE
³          ³  ÃÄÄÄALL
³          ³  ³  ÃÄÄÄOPTIONAL
³          ³  ³  ³  ÃÄÄÄNORMAL
³          ³  ³  ³  ÀÄÄÄSHAREWARE
³          ³  ³  ÀÄÄÄSTANDARD
³          ³  ³      ÃÄÄÄNORMAL
³          ³  ³      ÀÄÄÄSHAREWARE
³          ³  ÀÄÄÄdes
³          ³      ÃÄÄÄOPTIONAL
³          ³      ³  ÃÄÄÄNORMAL
³          ³      ³  ÀÄÄÄSHAREWARE
³          ³      ÀÄÄÄSTANDARD
³          ³          ÃÄÄÄNORMAL
³          ³          ÀÄÄÄSHAREWARE
³          ÀÄÄÄPRO
³              ÃÄÄÄALL
³              ³  ÃÄÄÄOPTIONAL
³              ³  ³  ÃÄÄÄNORMAL
³              ³  ³  ÀÄÄÄSHAREWARE
³              ³  ÀÄÄÄSTANDARD
³              ³      ÃÄÄÄNORMAL
³              ³      ÀÄÄÄSHAREWARE
³              ÀÄÄÄdes
³                  ÃÄÄÄOPTIONAL
³                  ³  ÃÄÄÄNORMAL
³                  ³  ÀÄÄÄSHAREWARE
³                  ÀÄÄÄSTANDARD
³                      ÃÄÄÄNORMAL
³                      ÀÄÄÄSHAREWARE
ÀÄÄÄPROGRAMS
    ÃÄÄÄALL
    ³  ÃÄÄÄALL
    ³  ³  ÃÄÄÄOPTIONAL
    ³  ³  ³  ÃÄÄÄNORMAL
    ³  ³  ³  ÀÄÄÄSHAREWARE
    ³  ³  ÀÄÄÄSTANDARD
    ³  ³      ÃÄÄÄNORMAL
    ³  ³      ÀÄÄÄSHAREWARE
    ³  ÀÄÄÄdes
    ³      ÃÄÄÄOPTIONAL
    ³      ³  ÃÄÄÄNORMAL
    ³      ³  ÀÄÄÄSHAREWARE
    ³      ÀÄÄÄSTANDARD
    ³          ÃÄÄÄNORMAL
    ³          ÀÄÄÄSHAREWARE
    ÃÄÄÄDOS
    ³  ÃÄÄÄALL
    ³  ³  ÃÄÄÄALL
    ³  ³  ³  ÃÄÄÄOPTIONAL
    ³  ³  ³  ³  ÃÄÄÄNORMAL
    ³  ³  ³  ³  ÀÄÄÄSHAREWARE
    ³  ³  ³  ÀÄÄÄSTANDARD
    ³  ³  ³      ÃÄÄÄNORMAL
    ³  ³  ³      ÀÄÄÄSHAREWARE
    ³  ³  ÀÄÄÄdes
    ³  ³      ÃÄÄÄOPTIONAL
    ³  ³      ³  ÃÄÄÄNORMAL
    ³  ³      ³  ÀÄÄÄSHAREWARE
    ³  ³      ÀÄÄÄSTANDARD
    ³  ³          ÃÄÄÄNORMAL
    ³  ³          ÀÄÄÄSHAREWARE
    ³  ÃÄÄÄFreeDOS
    ³  ³  ÃÄÄÄALL
    ³  ³  ³  ÃÄÄÄOPTIONAL
    ³  ³  ³  ³  ÃÄÄÄNORMAL
    ³  ³  ³  ³  ÀÄÄÄSHAREWARE
    ³  ³  ³  ÀÄÄÄSTANDARD
    ³  ³  ³      ÃÄÄÄNORMAL
    ³  ³  ³      ÀÄÄÄSHAREWARE
    ³  ³  ÀÄÄÄdes
    ³  ³      ÃÄÄÄOPTIONAL
    ³  ³      ³  ÃÄÄÄNORMAL
    ³  ³      ³  ÀÄÄÄSHAREWARE
    ³  ³      ÀÄÄÄSTANDARD
    ³  ³          ÃÄÄÄNORMAL
    ³  ³          ÀÄÄÄSHAREWARE
    ³  ÃÄÄÄMS-DOS
    ³  ³  ÃÄÄÄALL
    ³  ³  ³  ÃÄÄÄOPTIONAL
    ³  ³  ³  ³  ÃÄÄÄNORMAL
    ³  ³  ³  ³  ÀÄÄÄSHAREWARE
    ³  ³  ³  ÀÄÄÄSTANDARD
    ³  ³  ³      ÃÄÄÄNORMAL
    ³  ³  ³      ÀÄÄÄSHAREWARE
    ³  ³  ÀÄÄÄdes
    ³  ³      ÃÄÄÄOPTIONAL
    ³  ³      ³  ÃÄÄÄNORMAL
    ³  ³      ³  ÀÄÄÄSHAREWARE
    ³  ³      ÀÄÄÄSTANDARD
    ³  ³          ÃÄÄÄNORMAL
    ³  ³          ÀÄÄÄSHAREWARE
    ³  ÀÄÄÄPC-DOS
    ³      ÃÄÄÄALL
    ³      ³  ÃÄÄÄOPTIONAL
    ³      ³  ³  ÃÄÄÄNORMAL
    ³      ³  ³  ÀÄÄÄSHAREWARE
    ³      ³  ÀÄÄÄSTANDARD
    ³      ³      ÃÄÄÄNORMAL
    ³      ³      ÀÄÄÄSHAREWARE
    ³      ÀÄÄÄdes
    ³          ÃÄÄÄOPTIONAL
    ³          ³  ÃÄÄÄNORMAL
    ³          ³  ÀÄÄÄSHAREWARE
    ³          ÀÄÄÄSTANDARD
    ³              ÃÄÄÄNORMAL
    ³              ÀÄÄÄSHAREWARE
    ÃÄÄÄLINUX
    ³  ÃÄÄÄALL
    ³  ³  ÃÄÄÄALL
    ³  ³  ³  ÃÄÄÄOPTIONAL
    ³  ³  ³  ³  ÃÄÄÄNORMAL
    ³  ³  ³  ³  ÀÄÄÄSHAREWARE
    ³  ³  ³  ÀÄÄÄSTANDARD
    ³  ³  ³      ÃÄÄÄNORMAL
    ³  ³  ³      ÀÄÄÄSHAREWARE
    ³  ³  ÀÄÄÄdes
    ³  ³      ÃÄÄÄOPTIONAL
    ³  ³      ³  ÃÄÄÄNORMAL
    ³  ³      ³  ÀÄÄÄSHAREWARE
    ³  ³      ÀÄÄÄSTANDARD
    ³  ³          ÃÄÄÄNORMAL
    ³  ³          ÀÄÄÄSHAREWARE
    ³  ÃÄÄÄMandrake
    ³  ³  ÃÄÄÄ10.1
    ³  ³  ³  ÃÄÄÄALL
    ³  ³  ³  ³  ÃÄÄÄOPTIONAL
    ³  ³  ³  ³  ³  ÃÄÄÄNORMAL
    ³  ³  ³  ³  ³  ÀÄÄÄSHAREWARE
    ³  ³  ³  ³  ÀÄÄÄSTANDARD
    ³  ³  ³  ³      ÃÄÄÄNORMAL
    ³  ³  ³  ³      ÀÄÄÄSHAREWARE
    ³  ³  ³  ÀÄÄÄdes
    ³  ³  ³      ÃÄÄÄOPTIONAL
    ³  ³  ³      ³  ÃÄÄÄNORMAL
    ³  ³  ³      ³  ÀÄÄÄSHAREWARE
    ³  ³  ³      ÀÄÄÄSTANDARD
    ³  ³  ³          ÃÄÄÄNORMAL
    ³  ³  ³          ÀÄÄÄSHAREWARE
    ³  ³  ÀÄÄÄALL
    ³  ³      ÃÄÄÄALL
    ³  ³      ³  ÃÄÄÄOPTIONAL
    ³  ³      ³  ³  ÃÄÄÄNORMAL
    ³  ³      ³  ³  ÀÄÄÄSHAREWARE
    ³  ³      ³  ÀÄÄÄSTANDARD
    ³  ³      ³      ÃÄÄÄNORMAL
    ³  ³      ³      ÀÄÄÄSHAREWARE
    ³  ³      ÀÄÄÄdes
    ³  ³          ÃÄÄÄOPTIONAL
    ³  ³          ³  ÃÄÄÄNORMAL
    ³  ³          ³  ÀÄÄÄSHAREWARE
    ³  ³          ÀÄÄÄSTANDARD
    ³  ³              ÃÄÄÄNORMAL
    ³  ³              ÀÄÄÄSHAREWARE
    ³  ÀÄÄÄMandriva
    ³      ÃÄÄÄ2008.0
    ³      ³  ÃÄÄÄALL
    ³      ³  ³  ÃÄÄÄOPTIONAL
    ³      ³  ³  ³  ÃÄÄÄNORMAL
    ³      ³  ³  ³  ÀÄÄÄSHAREWARE
    ³      ³  ³  ÀÄÄÄSTANDARD
    ³      ³  ³      ÃÄÄÄNORMAL
    ³      ³  ³      ÀÄÄÄSHAREWARE
    ³      ³  ÀÄÄÄdes
    ³      ³      ÃÄÄÄOPTIONAL
    ³      ³      ³  ÃÄÄÄNORMAL
    ³      ³      ³  ÀÄÄÄSHAREWARE
    ³      ³      ÀÄÄÄSTANDARD
    ³      ³          ÃÄÄÄNORMAL
    ³      ³          ÀÄÄÄSHAREWARE
    ³      ÃÄÄÄ2009.1
    ³      ³  ÃÄÄÄALL
    ³      ³  ³  ÃÄÄÄOPTIONAL
    ³      ³  ³  ³  ÃÄÄÄNORMAL
    ³      ³  ³  ³  ÀÄÄÄSHAREWARE
    ³      ³  ³  ÀÄÄÄSTANDARD
    ³      ³  ³      ÃÄÄÄNORMAL
    ³      ³  ³      ÀÄÄÄSHAREWARE
    ³      ³  ÀÄÄÄdes
    ³      ³      ÃÄÄÄOPTIONAL
    ³      ³      ³  ÃÄÄÄNORMAL
    ³      ³      ³  ÀÄÄÄSHAREWARE
    ³      ³      ÀÄÄÄSTANDARD
    ³      ³          ÃÄÄÄNORMAL
    ³      ³          ÀÄÄÄSHAREWARE
    ³      ÀÄÄÄALL
    ³          ÃÄÄÄALL
    ³          ³  ÃÄÄÄOPTIONAL
    ³          ³  ³  ÃÄÄÄNORMAL
    ³          ³  ³  ÀÄÄÄSHAREWARE
    ³          ³  ÀÄÄÄSTANDARD
    ³          ³      ÃÄÄÄNORMAL
    ³          ³      ÀÄÄÄSHAREWARE
    ³          ÀÄÄÄdes
    ³              ÃÄÄÄOPTIONAL
    ³              ³  ÃÄÄÄNORMAL
    ³              ³  ÀÄÄÄSHAREWARE
    ³              ÀÄÄÄSTANDARD
    ³                  ÃÄÄÄNORMAL
    ³                  ÀÄÄÄSHAREWARE
    ÀÄÄÄWINDOWS
        ÃÄÄÄ95
        ³  ÃÄÄÄALL
        ³  ³  ÃÄÄÄOPTIONAL
        ³  ³  ³  ÃÄÄÄNORMAL
        ³  ³  ³  ÀÄÄÄSHAREWARE
        ³  ³  ÀÄÄÄSTANDARD
        ³  ³      ÃÄÄÄNORMAL
        ³  ³      ÀÄÄÄSHAREWARE
        ³  ÀÄÄÄdes
        ³      ÃÄÄÄOPTIONAL
        ³      ³  ÃÄÄÄNORMAL
        ³      ³  ÀÄÄÄSHAREWARE
        ³      ÀÄÄÄSTANDARD
        ³          ÃÄÄÄNORMAL
        ³          ÀÄÄÄSHAREWARE
        ÃÄÄÄ98
        ³  ÃÄÄÄALL
        ³  ³  ÃÄÄÄOPTIONAL
        ³  ³  ³  ÃÄÄÄNORMAL
        ³  ³  ³  ÀÄÄÄSHAREWARE
        ³  ³  ÀÄÄÄSTANDARD
        ³  ³      ÃÄÄÄNORMAL
        ³  ³      ÀÄÄÄSHAREWARE
        ³  ÀÄÄÄdes
        ³      ÃÄÄÄOPTIONAL
        ³      ³  ÃÄÄÄNORMAL
        ³      ³  ÀÄÄÄSHAREWARE
        ³      ÀÄÄÄSTANDARD
        ³          ÃÄÄÄNORMAL
        ³          ÀÄÄÄSHAREWARE
        ÃÄÄÄALL
        ³  ÃÄÄÄALL
        ³  ³  ÃÄÄÄOPTIONAL
        ³  ³  ³  ÃÄÄÄNORMAL
        ³  ³  ³  ÀÄÄÄSHAREWARE
        ³  ³  ÀÄÄÄSTANDARD
        ³  ³      ÃÄÄÄNORMAL
        ³  ³      ÀÄÄÄSHAREWARE
        ³  ÀÄÄÄdes
        ³      ÃÄÄÄOPTIONAL
        ³      ³  ÃÄÄÄNORMAL
        ³      ³  ÀÄÄÄSHAREWARE
        ³      ÀÄÄÄSTANDARD
        ³          ÃÄÄÄNORMAL
        ³          ÀÄÄÄSHAREWARE
        ÀÄÄÄXP
            ÃÄÄÄALL
            ³  ÃÄÄÄALL
            ³  ³  ÃÄÄÄOPTIONAL
            ³  ³  ³  ÃÄÄÄNORMAL
            ³  ³  ³  ÀÄÄÄSHAREWARE
            ³  ³  ÀÄÄÄSTANDARD
            ³  ³      ÃÄÄÄNORMAL
            ³  ³      ÀÄÄÄSHAREWARE
            ³  ÀÄÄÄdes
            ³      ÃÄÄÄOPTIONAL
            ³      ³  ÃÄÄÄNORMAL
            ³      ³  ÀÄÄÄSHAREWARE
            ³      ÀÄÄÄSTANDARD
            ³          ÃÄÄÄNORMAL
            ³          ÀÄÄÄSHAREWARE
            ÃÄÄÄHOME
            ³  ÃÄÄÄALL
            ³  ³  ÃÄÄÄOPTIONAL
            ³  ³  ³  ÃÄÄÄNORMAL
            ³  ³  ³  ÀÄÄÄSHAREWARE
            ³  ³  ÀÄÄÄSTANDARD
            ³  ³      ÃÄÄÄNORMAL
            ³  ³      ÀÄÄÄSHAREWARE
            ³  ÀÄÄÄdes
            ³      ÃÄÄÄOPTIONAL
            ³      ³  ÃÄÄÄNORMAL
            ³      ³  ÀÄÄÄSHAREWARE
            ³      ÀÄÄÄSTANDARD
            ³          ÃÄÄÄNORMAL
            ³          ÀÄÄÄSHAREWARE
            ÃÄÄÄMCE
            ³  ÃÄÄÄALL
            ³  ³  ÃÄÄÄOPTIONAL
            ³  ³  ³  ÃÄÄÄNORMAL
            ³  ³  ³  ÀÄÄÄSHAREWARE
            ³  ³  ÀÄÄÄSTANDARD
            ³  ³      ÃÄÄÄNORMAL
            ³  ³      ÀÄÄÄSHAREWARE
            ³  ÀÄÄÄdes
            ³      ÃÄÄÄOPTIONAL
            ³      ³  ÃÄÄÄNORMAL
            ³      ³  ÀÄÄÄSHAREWARE
            ³      ÀÄÄÄSTANDARD
            ³          ÃÄÄÄNORMAL
            ³          ÀÄÄÄSHAREWARE
            ÀÄÄÄPRO
                ÃÄÄÄALL
                ³  ÃÄÄÄOPTIONAL
                ³  ³  ÃÄÄÄNORMAL
                ³  ³  ÀÄÄÄSHAREWARE
                ³  ÀÄÄÄSTANDARD
                ³      ÃÄÄÄNORMAL
                ³      ÀÄÄÄSHAREWARE
                ÀÄÄÄdes
                    ÃÄÄÄOPTIONAL
                    ³  ÃÄÄÄNORMAL
                    ³  ÀÄÄÄSHAREWARE
                    ÀÄÄÄSTANDARD
                        ÃÄÄÄNORMAL
                        ÀÄÄÄSHAREWARE


des_a 02-18-2013 11:53 PM

But the output it's giving me is:

Code:

├── BACKUP
├── BOOTLOADERS
│   ├── ALL
│   │   ├── ALL
│   │   │   ├── OPTIONAL
│   │   │   │   ├── NORMAL
│   │   │   │   └── SHAREWARE
│   │   │   └── STANDARD
│   │   │       ├── NORMAL
│   │   │       └── SHAREWARE
│   │   └── des
│   │       ├── OPTIONAL
│   │       │   ├── NORMAL
│   │       │   └── SHAREWARE
│   │       └── STANDARD
│   │           ├── NORMAL
│   │           └── SHAREWARE
│   ├── DOS
│   │   ├── FreeDOS
│   │   │   ├── ALL
│   │   │   │   ├── OPTIONAL
│   │   │   │   │   ├── NORMAL
│   │   │   │   │   └── SHAREWARE
│   │   │   │   └── STANDARD
│   │   │   │       ├── NORMAL
│   │   │   │       └── SHAREWARE
│   │   │   └── des
│   │   │       ├── OPTIONAL
│   │   │       │   ├── NORMAL
│   │   │       │   └── SHAREWARE
│   │   │       └── STANDARD
│   │   │           ├── NORMAL
│   │   │           └── SHAREWARE
│   │   ├── MS-DOS
│   │   │   ├── ALL
│   │   │   │   ├── OPTIONAL
│   │   │   │   │   ├── NORMAL
│   │   │   │   │   └── SHAREWARE
│   │   │   │   └── STANDARD
│   │   │   │       ├── NORMAL
│   │   │   │       └── SHAREWARE
│   │   │   └── des
│   │   │       ├── OPTIONAL
│   │   │       │   ├── NORMAL
│   │   │       │   └── SHAREWARE
│   │   │       └── STANDARD
│   │   │           ├── NORMAL
│   │   │           └── SHAREWARE
│   │   └── PC-DOS
│   │       ├── ALL
│   │       │   ├── OPTIONAL
│   │       │   │   ├── NORMAL
│   │       │   │   └── SHAREWARE
│   │       │   └── STANDARD
│   │       │       ├── NORMAL
│   │       │       └── SHAREWARE
│   │       └── des
│   │           ├── OPTIONAL
│   │           │   ├── NORMAL
│   │           │   └── SHAREWARE
│   │           └── STANDARD
│   │               ├── NORMAL
│   │               └── SHAREWARE
│   ├── LINUX
│   │   ├── Mandrake
│   │   │   ├── 10.1
│   │   │   └── ALL
│   │   │       ├── ALL
│   │   │       │   ├── OPTIONAL
│   │   │       │   │   ├── NORMAL
│   │   │       │   │   └── SHAREWARE
│   │   │       │   └── STANDARD
│   │   │       │       ├── NORMAL
│   │   │       │       └── SHAREWARE
│   │   │       └── des
│   │   │           ├── OPTIONAL
│   │   │           │   ├── NORMAL
│   │   │           │   └── SHAREWARE
│   │   │           └── STANDARD
│   │   │               ├── NORMAL
│   │   │               └── SHAREWARE
│   │   └── Mandriva
│   │       ├── 2008.0
│   │       │   └── 2009.1
│   │       └── ALL
│   │           ├── ALL
│   │           │   ├── OPTIONAL
│   │           │   │   ├── NORMAL
│   │           │   │   └── SHAREWARE
│   │           │   └── STANDARD
│   │           │       ├── NORMAL
│   │           │       └── SHAREWARE
│   │           └── des
│   │               ├── OPTIONAL
│   │               │   ├── NORMAL
│   │               │   └── SHAREWARE
│   │               └── STANDARD
│   │                   ├── NORMAL
│   │                   └── SHAREWARE
│   └── WINDOWS
│       ├── 95
│       │   ├── ALL
│       │   │   ├── OPTIONAL
│       │   │   │   ├── NORMAL
│       │   │   │   └── SHAREWARE
│       │   │   └── STANDARD
│       │   │       ├── NORMAL
│       │   │       └── SHAREWARE
│       │   └── des
│       │       ├── OPTIONAL
│       │       │   ├── NORMAL
│       │       │   └── SHAREWARE
│       │       └── STANDARD
│       │           ├── NORMAL
│       │           └── SHAREWARE
│       ├── 98
│       │   ├── ALL
│       │   │   ├── OPTIONAL
│       │   │   │   ├── NORMAL
│       │   │   │   └── SHAREWARE
│       │   │   └── STANDARD
│       │   │       ├── NORMAL
│       │   │       └── SHAREWARE
│       │   └── des
│       │       ├── OPTIONAL
│       │       │   ├── NORMAL
│       │       │   └── SHAREWARE
│       │       └── STANDARD
│       │           ├── NORMAL
│       │           └── SHAREWARE
│       └── XP
│           ├── ALL
│           │   ├── ALL
│           │   │   ├── OPTIONAL
│           │   │   │   ├── NORMAL
│           │   │   │   └── SHAREWARE
│           │   │   └── STANDARD
│           │   │       ├── NORMAL
│           │   │       └── SHAREWARE
│           │   └── des
│           │       ├── OPTIONAL
│           │       │   ├── NORMAL
│           │       │   └── SHAREWARE
│           │       └── STANDARD
│           │           ├── NORMAL
│           │           └── SHAREWARE
│           └── HOME
│               └── PRO
│                   └── MCE
├── CONFIGURATION_FILES
├── CUSTOM
│   ├── NOT_READY
│   └── READY
├── DOCUMENTATION
├── DRIVERS
├── OPERATING_SYSTEMS
├── PATCHES
└── PROGRAMS


des_a 02-18-2013 11:54 PM

Sorry about the messyness of the tree commands, it's just the way they came out, but it should still be readable...

des_a 02-19-2013 12:00 AM

Quote:

When the subshell exits, its environment is lost, and you're automatically back to where you started without having to do anything.
These particular commands must be run in the same shell. Thanks for the suggestion though.

des_a 02-19-2013 12:07 AM

Quote:

And to reiterate a couple of things:

When you use "#!/bin/sh", the script is interpreted as a POSIX-compliant script.

So if you want to use arrays or other bashisms, be sure to make the shebang "#!/bin/bash", and conversely if you need to use "#!/bin/sh" explicitly, then do not use arrays or other bashisms.

(Watch that you type it correctly, too. No spaces.)


And since I don't think I've yet stated it unambiguously:

QUOTE ALL OF YOUR VARIABLE EXPANSIONS. You should never leave the quotes off a parameter expansion unless you explicitly want the resulting string to be word-split by the shell and possible globbing patterns expanded. This is a vitally important concept in scripting, so train yourself to do it correctly now. You can learn about the exceptions later.

http://mywiki.wooledge.org/Arguments
http://mywiki.wooledge.org/WordSplitting
http://mywiki.wooledge.org/Quotes

This generally means that if it begins with a "$", then double-quote it. If it's a string that has spaces or other weird characters in it, also single or double quote it.

The general rule of thumb is also to try to quote the longest string possible. e.g.:


Code:
echo "There's already a directory named ${line[0]}"

So all this time I've been putting spaces, and it's incorrect? These scripts are supposed to be run in bash. sh, is a link to bash.

des_a 02-19-2013 06:47 PM

This problem is solved now.

mknasosnames2.sh

Code:

#! /bin/sh


pushd . > /dev/null


echo Making directories for each operating system...
mkdir OS
cd OS


while read -a line
do
 echo Creating ${line[0]}...
 if [ -d ${line[0]} ]; then
  echo There\'s already a directory named ${line[0]}
 else
  mkdir ${line[0]}
 fi

 cd ${line[0]}

 while read -a line2
 do
  echo Creating ${line2[0]}...
  if [ -d ${line2[0]} ]; then 
  echo There\'s already a directory named ${line2[0]}
  else
  mkdir ${line2[0]}

  cd ${line2[0]}

  if [ ${line2[1]} == "(none)" ]; then
    cd ..
    continue
  fi

  pushd . > /dev/null
  . /standard_scripts/mknastypes3.sh ${line2[1]}
  popd > /dev/null

  cd ..
  fi
 done < ${line[1]}

 cd ..
done < /etc/settings/Operating_Systems/osnames.sdr


popd > /dev/null


des_a 02-19-2013 06:53 PM

The problem with script #1, was I needed to run dos2unix on it.

des_a 02-19-2013 06:54 PM

mknasosnames.sh

Code:

#! /bin/sh


pushd . > /dev/null


echo Making directories for each operating system...


mkdir ALL
cd ALL
mkdir STANDARD
mkdir OPTIONAL
cd STANDARD
mkdir NORMAL
mkdir SHAREWARE
cd ..
cd OPTIONAL
mkdir NORMAL
mkdir SHAREWARE
cd ..
cd ..


while read -a line
do
 echo Creating ${line[0]}...
 if [ -d ${line[0]} ]; then
  echo There\'s already a directory named ${line[0]}
 else
  mkdir ${line[0]}
 fi

 cd ${line[0]}

 while read -a line2
 do
 if [ -d ${line2[0]} ]; then
  echo There\'s already a directory names ${line2[0]}
 else
  mkdir ${line2[0]}

  cd ${line2[0]}

  #echo ${line[0]}
  #echo ${line[1]}
  #echo ${line2[0]}
  #echo ${line2[1]}

  if [ ${line2[1]} == "(none)" ]; then
  pushd . > /dev/null
    . /standard_scripts/mknastypes2.sh
  popd > /dev/null
  cd ..
  else
  pushd . > /dev/null
  . /standard_scripts/mknastypes.sh ${line2[1]}
  popd > /dev/null

  cd ..
  fi
 fi
 done < ${line[1]}

 cd ..
done < /etc/settings/Operating_Systems/osnames.sdr



popd > /dev/null


des_a 02-19-2013 06:56 PM

The problem with the above was that I needed to change the syntax of the files, so it could be unambigous.

des_a 02-19-2013 06:58 PM

mktypes.sh

Code:

#! /bin/sh


pushd . > /dev/null


echo Making directories for each operating system...
mkdir ALL
cd ALL
. /standard_scripts/mknames.sh
cd ..


while read -a line
do
 echo Creating ${line[0]}...
 if [ -d ${line[0]} ]; then
  echo There\'s already a directory named ${line[0]}
 else
  mkdir ${line[0]}


  cd ${line[0]}


  if [ ${line[1]} == "(none)" ]; then
    . /standard_scripts/mknames.sh
  else
    . /standard_scripts/mkversions.sh ${line[1]}

    cd ..
  fi
 fi
done < $1


popd > /dev/null



---------- Post added 02-19-13 at 04:59 PM ----------

The problem with this last one was that it had an extra loop.

konsolebox 02-22-2013 07:47 PM

Can I ask what delims=$n was for, or if it does really work as expected? I haven't encountered any syntax form like that. Or perhaps it's a new feature?

dive: I suggest placing strings inside double quotes e.g.
Code:

echo "Making directories for each operating system..."
echo "${line[0]}"
echo "There's already a directory named ${line2[0]}"



All times are GMT -5. The time now is 03:05 AM.