STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228131
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/58153210?noj=FRM58153210-15DC" width="1" height="1"></div>

3001 The Final Odyssey.swf

This is the info page for
Flash #244420

(Click the ID number above for more basic data on this flash file.)


Text
<p align="center"></p>

<p align="left"><font face="Tahoma" size="12" color="#000000" letterSpacing="0.000000" kerning="1"> &nbsp;&nbsp;&nbsp;</font></p>

<p align="center"></p>

<p align="center"><font face="Tahoma" size="12" color="#000000" letterSpacing="0.000000" kerning="1"> </font></p>

<p align="center"></p>

<p align="left"></p>

<p align="right"><font face="Tahoma" size="12" color="#000000" letterSpacing="0.000000" kerning="1"> &nbsp;&nbsp;&nbsp;</font></p>

500%

/ 9999

9999

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


3001: The Final  Odyssey

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  O dyssey


PROLOGUE

The Firstborn

Call them the Firstborn. Though they were not remotely human, they
were flesh and blood, and when they looked out across the  deeps of space,
they felt awe, and wonder  -  and loneliness. As soon as they possessed the
power, they began to seek for fellowship among the stars.

In their explorations, they encountered life in many forms, and watched
the workings of evolution on a tho usand worlds. They saw how often the
first faint sparks of intelligence flickered and died in the cosmic night.

And because, in all the Galaxy, they had found nothing more precious
than Mind, they encouraged its dawning everywhere. They became
farmers in  the fields of stars; they sowed, and sometimes they reaped.
And sometimes, dispassionately, they had to weed.

The great dinosaurs had long since passed away, their morning promise
annihilated by a random hammerblow from space, when the survey ship
entered  the Solar System after a voyage that had already lasted a thousand
years. It swept past the frozen outer planets, paused briefly above the deserts
of dying Mars, and presently looked down on Earth.
Spread out beneath them, the explorers saw a world swarmi ng with life.
For years they studied, collected, catalogued. When they had learned all
that they could, they began to modify. They tinkered with the destiny of
many species, on land and in the seas. But which of their experiments
would bear fruit, they cou ld not know for at least a million years.

They were patient, but they were not yet immortal. There was so
much to do in this universe of a hundred billion suns, and other worlds
were calling. So they set out once more into the abyss, knowing that
they wou ld never come this way again. Nor was there any need: the
servants they had left behind would do the rest.

On Earth, the glaciers came and went, while above them the
changeless Moon still carried its secret from the stars. With a yet slower
rhythm than th e polar ice, the tides of civilization ebbed and flowed
across the Galaxy. Strange and beautiful and terrible empires rose and

fell, and passed on their knowledge to their successors.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

And now, out among the stars, evolution was driving towards new goals.
The first explorers of Earth had long since come to the limits of flesh and
blood; as soon as their machines were better than their bodies, it was time to
move. First their brains, and then their thoughts alone, they transferred into
shining new homes of m etal and gemstone. In these, they roamed the Galaxy.
They no longer built spaceships. They were spaceships.

But the age of the Machine - entities swiftly passed. In their ceaseless
experimenting, they had learned to store knowledge in the structure of space
itself, and to preserve their thoughts for eternity in frozen lattices of light.
Into pure energy, therefore, they presently transformed themselves;
and on a thousand worlds, the empty shells they had discarded twitched
for a while in a mindless dance of  death, then crumbled into dust.

Now they were Lords of the Galaxy, and could rove at will among the
stars, or sink like a subtle mist through the very interstices of space.
Though they were freed at last from the tyranny of matter, they had not
wholly for gotten their origin, in the warm slime of a vanished sea. And
their marvellous instruments still continued to function, watching over the
experiments started so many ages ago.

But no longer were they always obedient to the mandates of their
creators; like  all material things, they were not immune to the corruption
of Time and its patient, unsleeping servant, Entropy.
And sometimes, they discovered and sought goals of their own.
I STAR CITY

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


1 Comet Cowboy

Captain Dimitri Chandle r [M2973.04.21/93.106//Mars//I SpaceAcad3005]  -  or
‘Dim ’ to his very best friends  -  was understandably annoyed. The message from
Earth had taken six hours to reach the space - tug Goliath, here beyond the orbit
of Neptune; if it had arrived ten minutes later  he could have answered  ‘Sorry  -
can ’t leave now  -  we ’ve just started to deploy the sun - screen. ’

The excuse would have been perfectly valid: wrapping a comet ’s core in
a sheet of reflective film only a few molecules thick, but kilometres on a
side, was no t the sort of job you could abandon while it was half - completed.

Still, it would be a good idea to obey this ridiculous request: he was
already in disfavour sunwards, through no fault of his own. Collecting ice from
the rings of Saturn, and nudging it tow ards Venus and Mercury, where it was
really needed, had started back in the 2700s  -  three centuries ago. Captain
Chandler had never been able to see any real difference in the  ‘before and
after ’ images the Solar Conservers were always producing, to support  their
accusations of celestial vandalism. But the general public, still sensitive to the
ecological disasters of previous centuries, had thought otherwise, and the
‘Hands off Saturn! ’ vote had passed by a substantial majority. As a result,
Chandler was no  longer a Ring Rustler, but a Comet Cowboy.
So here he was at an appreciable fraction of the distance to Alpha
Centauri, rounding up stragglers from the Kuiper Belt. There was certainly
enough ice out here to cover Mercury and Venus with oceans kilometres
deep, but it might take centuries to extinguish their hell - fires and make
them suitable for life. The Solar Conservers, of course, were still protesting
against this, though no longer with so much enthusiasm. The millions dead
from the tsunami caused by th e Pacific asteroid in 2304  -  how ironic that a
land impact would have done much less damage!  -  had reminded all future
generations that the human race had too many eggs in one fragile basket.

Well, Chandler told himself, it would be fifty years before thi s particular
package reached its destination, so a delay of a week would hardly make much
difference. But all the calculations about rotation, centre of mass, and thrust
vectors would have to be redone, and radioed back to Mars for checking. It was a

good  idea to do your sums carefully, before nudging billions of tons of ice

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

along an orbit that might take it within hailing distance of Earth.

As they had done so many times before, Captain Chandler ’s eyes
strayed towards the ancient photograph above his des k. It showed a
three - masted steamship, dwarfed by the iceberg that was looming above
it  -  as, indeed, Goliath was dwarfed at this very moment.

How incredible, he had often thought, that only one long lifetime spanned the
gulf between this primitive Discov ery and the ship that had carried the same
name to Jupiter! And what would those Antarctic explorers of a thousand years
ago have made of the view from his bridge? They would certainly have been
disoriented, for the wall of ice beside which Goliath was flo ating stretched both
upwards and downwards as far as the eye could see. And it was strange - looking
ice, wholly lacking the immaculate whites and blues of the frozen Polar seas. In
fact, it looked dirty  -  as indeed it was. For only some ninety per cent was  water -
ice: the rest was a witch ’s brew of carbon and sulphur compounds, most of them
stable only at temperatures not far above absolute zero. Thawing them out could
produce unpleasant surprises: as one astrochemist had famously remarked,
‘Comets have bad b reath ’.

‘Skipper to all personnel, ’ Chandler announced.  ‘There ’s been a
slight change of programme. We ’ve been asked to delay operations, to
investigate a target that Spaceguard radar has picked up. ’

‘Any details? ’ somebody asked, when the chorus of groa ns over the
ship ’s intercom had died away.

‘Not many, but I gather it ’s another Millennium Committee project
they ’ve forgotten to cancel. ’

More groans: everyone had become heartily sick of all the events
planned to celebrate the end of the 2000s. There h ad been a general
sigh of relief when 1 January 3001 had passed uneventfully, and the
human race could resume its normal activities.

‘Anyway, it will probably be another false alarm, like the last one.
We ’ll get back to work just as quickly as we can. Ski pper out. ’

This was the third wild - goose - chase, Chandler thought morosely, he ’d
been involved with during his career. Despite centuries of exploration, the
Solar System could still produce surprises, and presumably Spaceguard
had a good reason for its req uest. He only hoped that some imaginative
idiot hadn ’t once again sighted the fabled Golden Asteroid. If it did exist  -
which Chandler did not for a moment believe  -  it would be no more than a
mineralogical curiosity: it would be of far less real value tha n the ice he was
nudging sunwards, to bring life to barren worlds.


There was one possibility, however, which he did take quite seriously.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Already, the human race had scattered its robot probes through a volume
of space a hundred light - years across  -  and  the Tycho Monolith was
sufficient reminder that much older civilizations had engaged in similar
activities. There might well be other alien artefacts in the Solar System, or
in transit through it. Captain Chandler suspected that Spaceguard had
something li ke this in mind: otherwise it would hardly have diverted a Class
I space - tug to go chasing after an unidentified radar blip.

Five hours later, the questing Goliath detected the echo at extreme
range; even allowing for the distance, it seemed disappointing ly small.
However, as it grew clearer and stronger, it began to give the signature
of a metallic object, perhaps a couple of metres long. It was travelling on
an orbit heading out of the Solar System, so was almost certainly,
Chandler decided, one of the m yriad pieces of space - junk that Mankind
had tossed towards the stars during the last millennium and which might
one day provide the only evidence that the human race had ever existed.

Then it came close enough for visual inspection, and Captain Chandler
r ealized, with awed astonishment, that some patient historian was still checking
the earliest records of the Space Age. What a pity that the computers had given
him the answer, just a few years too late for the Mifiermium celebrations!

‘Goliath here, ’ Chan dler radioed Earthwards, his voice tinged with
pride as well as solemnity.  ‘We ’re bringing aboard a thousand - year - old
astronaut. And I can guess who it is. ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


2 Awakening

Frank Poole awoke, but he did not remember. He was not eve n sure
of his name.

Obviously, he was in a hospital room: even though his eyes were still
closed, the most primitive, and evocative, of his senses told him that. Each
breath brought the faint and not unpleasant tang of antiseptics in the air,
and it trigg ered a memory of the time when  -  of course!  -  as a reckless
teenager he had broken a rib in the Arizona Hang - gliding Championship.

Now it was all beginning to come back. I ’m Deputy Commander Frank
Poole, Executive Officer, USSS Discovery, on a Top Secret  mission to Jupiter
-  It seemed as if an icy hand had gripped his heart. He remembered, in slow -
motion playback, that runaway space - pod jetting towards him, metal claws
outstretched. Then the silent impact  -  and the not - so - silent hiss of air rushing
out of  his suit. After that  -  one last memory, of spinning helplessly in space,
trying in vain to reconnect his broken air - hose.
Well, whatever mysterious accident had happened to the space - pod
controls, he was safe now. Presumably Dave had made a quick EVA and
r escued him before lack of oxygen could do permanent brain damage.

Good old Dave! He told himself. I must thank  -  just a moment!  -  I ’m
obviously not aboard Discovery now  -  surely I haven ’t been unconscious
long enough to be taken back to Earth!

His confus ed train of thought was abruptly broken by the arrival of a
Matron and two nurses, wearing the immemorial uniform of their profession.
They seemed a little surprised: Poole wondered if he had awakened ahead of
schedule, and the idea gave him a childish fee ling of satisfaction.
‘Hello! ’ he said, after several attempts; his vocal cords appeared to
be very rusty.  ‘How am I doing? ’

Matron smiled back at him and gave an obvious  ‘Don ’t try to talk ’
command by putting a finger to her lips. Then the two nurses fus sed swiftly
over him with practised skill, checking pulse, temperature, reflexes. When
one of them lifted his right arm and let it drop again, Poole noticed
something peculiar It fell slowly, and did not seem to weigh as much as

normal. Nor, for that matte r, did his body, when he attempted to move.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

So I must be on a planet, he thought. Or a space - station with artificial
gravity. Certainly not Earth  -  I don ’t weigh enough.

He was about to ask the obvious question when Matron pressed
something against the s ide of his neck; he felt a slight tingling sensation,
and sank back into a dreamless sleep. Just before he became
unconscious, he had time for one more puzzled thought.

How odd  -  they never spoke a single word  -  all the time they were with me.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The  Final  Odyssey


3 Rehabilitation

When he woke again, and found Matron and nurses standing round
his bed, Poole felt strong enough to assert himself.

‘Where am I? Surely you can tell me that! ’ The three women exchanged
glances, obviously uncertain what t o do next. Then Matron answered,
enunciating her words very slowly and carefully:  ‘Everything is fine, Mr
Poole. Professor Anderson will be here in a minute He will explain. ’

Explain what? thought Poole with some exasperation. But at least
she speaks Engl ish, even though I can ’t place her accent.

Anderson must have been already on his way, for the door opened
moments later  -  to give Poole a brief glimpse of a small crowd of inquisitive
onlookers peering in at him. He began to feel like a new exhibit at a  zoo.

Professor Anderson was a small, dapper man whose features seemed to
have combined key aspects of several races  -  Chinese, Polynesian, Nordic  -
in a thoroughly confusing fashion. He greeted Poole by holding up his right
palm, then did an obvious doubl e - take and shook hands, with such a curious
hesitation that he might have been rehearsing some quite unfamiliar gesture.
‘Glad to see you ’re looking so well, Mr Poole… We ’ll have you up in
no time. ’

Again that odd accent and slow delivery  -  but the confid ent bedside
manner was that of all doctors, in all places and all ages.

‘I ’m glad to hear it. Now perhaps you can answer a few
questions… ’  ‘Of course, of course. But just a minute. ’

Anderson spoke so rapidly and quietly to the Matron that Poole could cat ch
only a few words, several of which were wholly unfamiliar to him. Then the
Matron nodded at one of the nurses, who opened a wall - cupboard and produced
a slim metal band, which she proceeded to wrap around Poole ’s head.

‘What ’s that for? ’ he asked  -  bei ng one of those difficult patients, so
annoying to doctors, who always want to know just what ’s happening to
them.  ‘EEC readout? ’

Professor, Matron and nurses looked equally baffled. Then a slow
smile spread across Anderson ’s face.

‘Oh  -  electro… enceph  .. alo… gram, ’ he said slowly, as if dredging the word

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

up from the depth of memory,  ‘You ’re quite right. We just want to monitor
your brain functions. ’
My brain would function perfectly well if you ’d let me use it, Poole
grumbled silently. But at least we  seem to be getting somewhere  -  finally.

‘Mr Poole, ’ said Anderson, still speaking in that curious stilted voice, as
if venturing in a foreign language,  ‘you know, of course, that you were  -
disabled  -  in a serious accident, while you were working outside  Discovery. ’

Poole nodded agreement.
‘I ’m beginning to suspect, ’ he said dryly,  ‘that  “disabled ” is a slight
understatement. ’

Anderson relaxed visibly, and a slow smile spread across his
face.  ‘You ’re quite correct. Tell me what you think happened. ’

‘We ll, the best case scenario is that, after I became unconscious,
Dave Bowman rescued me and brought me back to the ship. How is
Dave? No one will tell me anything! ’
‘All in due course… and the worst case? ’
It seemed to Frank Poole that a chill wind was blow ing gently on the
back of his neck. The suspicion that had been slowly forming in his mind
began to solidify.

‘That I died, but was brought back here  -  wherever  “here ” is  -  and
you ’ve been able to revive me. Thank you… ’
‘Quite correct. And you ’re back on  Earth. Well, very near it. ’
What did he mean by  ‘very near it ’? There was certainly a gravity field here

-   so he was probably inside the slowly turning wheel of an orbiting space -
station. No matter: there was something much more important to think about.
Po ole did some quick mental calculations. If Dave had put him in the
hibernaculum, revived the rest of the crew, and completed the mission to Jupiter

-   why, he could have been  ‘dead ’ for as much as five years!
‘Just what date is it? ’ he asked, as calmly as po ssible.

Professor and Matron exchanged glances. Again Poole felt that cold
wind on his neck.

‘I must tell you, Mr Poole, that Bowman did not rescue you. He believed
-  and we cannot blame him  -  that you were irrevocably dead. Also, he was
facing a despera tely serious crisis that threatened his own survival… ’

‘So you drifted on into space, passed through the Jupiter system, and
headed out towards the stars. Fortunately, you were so far below freezing
point that there was no metabolism  -  but it ’s a near - mir acle that you were ever
found at all. You are one of the luckiest men alive. No  -  ever to have lived! ’

Am I? Poole asked himself bleakly. Five years, indeed! It could be a century

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

-  or even more.

‘Let me have it, ’ he demanded.
Professor and Matron seemed  to be consulting an invisible monitor:
when they looked at each other and nodded agreement, Poole guessed
that they were all plugged into the hospital information circuit, linked to
the headband he was wearing.

‘Frank, ’ said Professor Anderson, making a  smooth switch to the role
of long - time family physician,  ‘this will be a great shock to you, but you ’re
capable of accepting it  -  and the sooner you know, the better. ’

‘We ’re near the beginning of the Fourth Millennium. Believe me  -  you
left Earth almost  a thousand years ago. ’

‘I believe you, ’ Poole answered calmly. Then, to his great annoyance,
the room started to spin around him, and he knew nothing more.

When he regained consciousness, he found that he was no longer in a bleak
hospital room but in a l uxurious suite with attractive  -  and steadily changing  -
images on the walls. Some of these were famous and familiar paintings, others
showed land and sea - scapes that might have been from his own time. There was
nothing alien or upsetting: that, he guessed , would come later.

His present surroundings had obviously been carefully programmed: he
wondered if there was the equivalent of a television screen somewhere (how
many channels would the Fourth Millennium have?) but could see no sign of
any controls near  his bed. There was so much he would have to learn in this
new world: he was a savage who had suddenly encountered civilization.
But first, he must regain his strength  -  and learn the language; not even
the advent of sound recording, already more than a ce ntury old when Poole
was born, had prevented major changes in grammar and pronunciation. And
there were thousands of new words, mostly from science and technology,
though often he was able to make a shrewd guess at their meaning.
More frustrating, however,  were the myriad of famous and infamous personal
names that had accumulated over the millennium, and which meant nothing to
him. For weeks, until he had built up a data bank, most of his conversations had
to be interrupted with potted biographies. As Poole ’s strength increased, so did
the number of his visitors, though always under Professor Anderson ’s watchful
eye. They included medical specialists, scholars of several disciplines, and  -  of
the greatest interest to him  -  spacecraft commanders.

There was l ittle that he could tell the doctors and historians that was not
recorded somewhere in Mankind ’s gigantic data banks, but he was often able to
give them research shortcuts and new insights about the events of his own time.

Though they all treated him with  the utmost respect and listened patiently as he

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

tried to answer their questions, they seemed reluctant to answer his. Poole
began to feel that he was being over - protected from culture shock, and half -
seriously wondered how he could escape from his suite.  On the few occasions
he was alone, he was not surprised to discover that the door was locked.
Then the arrival of Doctor Indra Wallace changed everything. Despite her
name, her chief racial component appeared to be Japanese, and there were
times when with  just a little imagination Poole could picture her as a rather
mature Geisha Girl. It was hardly an appropriate image for a distinguished
historian, holding a Virtual Chair at a university still boasting real ivy.
She was the first visitor with a fluent com mand of Poole ’s own
English, so he was delighted to meet her.

‘Mr Poole, ’ she began, in a very business - like voice,  ‘I ’ve been
appointed your official guide and  -  let ’s say  -  mentor. My qualifications  -
I ’ve specialized in your period  -  my thesis was  “The  Collapse of the
Nation - State, 2000 - 50 ″. 1 believe we can help each other in many ways. ’

‘I ’m sure we can. First I ’d like you to get me out of here, so I can see
a little of your world. ’

‘Exactly what we intend to do. But first we must give you an Ident.
Until then you ’ll be  -  what was the term?  - a non - person. It would be
almost impossible for you to go anywhere, or get anything done. No
input device would recognize your existence. ’

‘Just what I expected, ’ Poole answered, with a wry smile.  ‘It was starti ng
to get that way in my own time  -  and many people hated the idea. ’

‘Some still do. They go off and live in the wilderness  -  there ’s a lot
more on Earth than there was in your century! But they always take their
compaks with them, so they can call for he lp as soon as they get into
trouble. The median time is about five days. ’
‘Sorry to hear that. The human race has obviously deteriorated. ’
He was cautiously testing her, trying to find the limits of her tolerance
and to map out her personality. It was obvi ous that they were going to
spend much time together, and that he would have to depend upon her
in hundreds of ways. Yet he was still not sure if he would even like her:
perhaps she regarded him merely as a fascinating museum exhibit.
Rather to Poole ’s sur prise, she agreed with his criticism.
‘That may be true  -  in some respects. Perhaps we ’re physically
weaker, but we ’re healthier and better adjusted than most humans who
have ever lived. The Noble Savage was always a myth ’.

She walked over to a small rect angular plate, set at eye - level in the door. It

was about the size of one of the countless magazines that had proliferated in the

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

far - off Age of Print, and Poole had noticed that every room seemed to have at
least one. Usually they were blank, but sometim es they contained lines of slowly
scrolling text, completely meaningless to Poole even when most of the words
were familiar. Once a plate in his suite had emitted urgent beepings, which he
had ignored on the assumption that someone else would deal with the  problem,
whatever it was. Fortunately the noise stopped as abruptly as it had started.

Dr Wallace laid the palm of her hand upon the plate, then removed it after a
few seconds. She glanced at Poole, and said smilingly:  ‘Come and look at this. ’

The inscr iption that had suddenly appeared made a good deal of sense,
when he read it slowly:WALLACE, INDRA [F2970.03.11 :31.885
HIST.OXFORD]  ‘I suppose it means Female, date of birth 11 March 2970  -
and that you ’re associated with the Department of History at Oxfo rd. And I
guess that 31.885 is a personal identification number. Correct? ’

‘Excellent, Mr Poole. I ’ve seen some of your e - mail addresses and credit card
numbers  -  hideous strings of alpha - numeric gibberish that no one could possibly
remember! But we all k now our date of birth, and not more than 99,999 other
people will share it. So a five - figure number is all you ’ll ever need… and even if
you forget that, it doesn ’t really matter. As you see, it ’s a part of you. ’

‘Implant? ’
‘Yes  -  nanochip at birth, one i n each palm for redundancy. You won ’t
even feel yours when it goes in. But you ’ve given us a small problem… ’
‘What ’s that? ’
‘The readers you ’ll meet most of the time are too simple - minded to
believe your date of birth. So, with your permission, we ’ve moved  it up a
thousand years. ’
‘Permission granted. And the rest of the Ident? ’
‘Optional. You can leave it empty, give your current interests and
location  -  or use it for personal messages, global or targeted. ’

Some things, Poole was quite sure, would not hav e changed over the
centuries. A high proportion of those  ‘targeted ’ messages would be very
personal indeed.

He wondered if there were still self or state - appointed censors in this
day and age  -  and if their efforts at improving other people ’s morals had
b een more successful than in his own time.

He would have to ask Dr Wallace about that, when he got to know her better.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


4 A Room with a View

‘Frank  -  Professor Anderson thinks you ’re strong enough to go for a
little walk. ’

‘I ’m  very pleased to hear it. Do you know the expression  “stir
crazy ”? ’  ‘No  -  but I can guess what it means. ’

Poole had so adapted to the low gravity that the long strides he was taking
seemed perfectly normal. Half a gee, he had estimated  -  just right to giv e a
sense of well - being. They met only a few people on their walk, all of them
strangers, but every one gave a smile of recognition. By now, Poole told
himself with a trace of smugness, I must be one of the best - known celebrities
in this world. That should  be a great help  -  when I decide what to do with the
rest of my life. At least another century, if I can believe Anderson.
The corridor along which they were walking was completely
featureless apart from occasional numbered doors, each bearing one of
the u niversal recog panels. Poole had followed Indra for perhaps two
hundred metres when he came to a sudden halt, shocked because he
had not realized something so blindingly obvious.

‘This space - station must be enormous! ’ he exclaimed. Indra smiled
back at hi m.
‘Didn ’t you have a saying  -   “You ain ’t seen anything yet ”? ’
‘ ”Nothing ”, ’ he corrected, absent - mindedly. He was still trying to
estimate the scale of this structure when he had another surprise. Who
would have imagined a space - station large enough to boa st a subway  -
admittedly a miniature one, with a single small coach capable of seating
only a dozen passengers.

‘Observation Lounge Three, ’ ordered Indra, and they drew silently
and swiftly away from the terminal.

Poole checked the time on the elaborate  wrist - band whose functions he was
still exploring. One minor surprise had been that the whole world was now on
Universal Time: the confusing patchwork of Time Zones had been swept away by
the advent of global communications There had been much talk of this , back in
the twenty - first century, and it had even been suggested that Solar should be

replaced by Sidereal Time. Then, during the course of the year, the Sun would

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

move right round the clock: setting at the time it had risen six months earlier.
However,  nothing had come of this  ‘Equal time in the Sun ’ proposal  -  or of

even more vociferous attempts to reform the calendar. That particular
job, it had been cynically suggested, would have to wait for somewhat
major advances in technology. Some day, surely,  one of God ’s minor
mistakes would be corrected, and the Earth ’s orbit would be adjusted, to
give every year twelve months of thirty exactly equal days.

As far as Poole could judge by speed and elapsed time, they must
have travelled at least three kilometr es before the vehicle came to a
silent stop, the doors opened, and a bland autovoice intoned,  ‘Have a
good view. Thirty - five per cent cloud - cover today. ’

At last, thought Poole, we ’re getting near the outer wall. But here was another
mystery  -  despite the  distance he had gone, neither the strength nor the direction
of gravity had altered! He could not imagine a spinning space - station so huge
that the gee - vector would not be changed by such a displacement… could he
really be on some planet after all? But he  would feel lighter  -  usually much lighter
-  on any other habitable world in the Solar System.

When the outer door of the terminal opened, and Poole found himself
entering a small airlock, he realized that he must indeed be in space. But
where were the sp acesuits? He looked around anxiously: it was against
all his instincts to be so close to vacuum, naked and unprotected. One
experience of that was enough…
‘We ’re nearly there, ’ said Indra reassuringly.
The last door opened, and he was looking out into the  utter blackness of
space, through a huge window that was curved both vertically and
horizontally. He felt like a goldfish in its bowl, and hoped that the designers of
this audacious piece of engineering knew exactly what they were doing. They
certainly pos sessed better structural materials than had existed in his time.
Though the stars must be shining out there, his light - adapted eyes
could see nothing but black emptiness beyond the curve of the great
window. As he started to walk towards it to get a wider  view, Indra
restrained him and pointed straight ahead.
‘Look carefully, ’ she said  ‘Don ’t you see it - ’
Poole blinked, and stared into the night. Surely it must be an illusion  -
even, heaven forbid, a crack in the window…

He moved his head from side to side . No, it was real. But what could it
be? He remembered Euclid ’s definition  ‘A lie has length, but no thickness ’.

For spanning the whole height of the window, and obviously continuing out of

sight above and below, was a thread of light quite easy to see wh en he looked

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

for it, yet so one - dimensional that the word  ‘thin ’ could not even be
applied. However, it was not completely featureless; there were barely
visible spots of greater brilliance at irregular intervals along its length,
like drops of water on a  spider ’s web.

Poole continued walking towards the window, and the view expanded
until at last he could see what lay below him. It was familiar enough: the
whole continent of Europe, and much of northern Africa, just as he had
seen them many times from sp ace. So he was in orbit after all  -  probably
an equatorial one, at a height of at least a thousand kilometres.
Indra was looking at him with a quizzical smile.
‘Go closer to the window, ’ she said, very softly.  ‘So that you can look
straight down. I hope yo u have a good head for heights. ’

What a silly thing to say to an astronaut! Poole told himself as he moved
forward. If I ever suffered from vertigo, I wouldn ’t be in this business…
The thought had barely passed through his mind when he cried  ‘My
God! ’ and  involuntarily stepped back from the window, Then, bracing
himself, he dared to look again.

He was looking down on the distant Mediterranean from the face of a
cylindrical tower, whose gently curving wall indicated a diameter of several
kilometres. But th at was nothing compared with its length, for it tapered
away down, down, down  -  until it disappeared into the mist somewhere
over Africa. He assumed that it continued all the way to the surface.

‘How high are we? ’ he whispered.
‘Two thousand kay. But now  look upwards. ’

This time, it was not such a shock: he had expected what he would
see. The tower dwindled away until it became a glittering thread against
the blackness of space, and he did not doubt that it continued all the way
to the geostationary orbit , thirty - six thousand kilometres above the
Equator. Such fantasies had been well known in Poole ’s day: he had
never dreamed he would see the reality  -  and be living in it.

He pointed towards the distant thread reaching up from the eastern
horizon.  ‘That m ust be another one. ’

‘Yes  -  the Asian Tower. We must look exactly the same to
them. ’  ‘How many are there? ’

‘Just four, equally spaced around the Equator. Africa, Asia, America,
Pacifica. The last one ’s almost empty  -  only a few hundred levels
completed.  Nothing to see except water… ’

Poole was still absorbing this stupendous concept when a disturbing
thought occurred to him.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘There were already thousands of satellites, at all sorts of altitudes, in
my time. How do you avoid collisions? ’
Indra looked slig htly embarrassed.
‘You know  -  I never thought about that  -  it ’s not my field. ’ She paused
for a moment, clearly searching her memory. Then her face brightened.

‘I believe there was a big clean - up operation, centuries ago. There
just aren ’t any satellites,  below the stationary orbit. ’

That made sense, Poole told himself. They wouldn ’t be needed  -  the
four gigantic towers could provide all the facilities once provided by
thousands of satellites and space - stations.

‘And there have never been any accidents  -  any collisions with
spaceships leaving earth, or re - entering the atmosphere? ’
Indra looked at him with surprise.
‘But they don ’t, any more, ’ She pointed to the ceiling.  ‘All the spaceports
are where they should be  -  up there, on the outer ring. I believe  it ’s four
hundred years since the last rocket lifted off from the surface of the Earth. ’

Poole was still digesting this when a trivial anomaly caught his
attention. His training as an astronaut had made him alert to anything out
of the ordinary: in space,  that might be a matter of life or death.

The Sun was out of view, high overhead, but its rays streaming down
through the great window painted a brilliant band of light on the floor
underfoot. Cutting across that band at an angle was another, much
fainter  one, so that the frame of the window threw a double shadow.

Poole had to go almost down on his knees so that he could peer up
at the sky. He had thought himself beyond surprise, but the spectacle of
two suns left him momentarily speechless.
‘What ’s that? ’ he gasped, when he had recovered his breath.
‘Oh  -  haven ’t you been told? That ’s Lucifer. ’
‘Earth has another sun? ’

‘Well, it doesn ’t give us much heat, but it ’s put the Moon out of
business… Before the Second Mission went there to look for you, that
wa s the planet Jupiter. ’

I knew I would have much to learn in this new world, Poole told
himself. But just how much, I never dreamed.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


5 Education

Poole was both astonished and delighted when the television set was
wheeled into t he room and positioned at the end of his bed. Delighted
because he was suffering from mild information starvation  -  and astonished
because it was a model which had been obsolete even in his own time.

‘We ’ve had to promise the Museum we ’ll give it back, ’ M atron
informed him.  ‘And I expect you know how to use this, ’

As he fondled the remote - control, Poole felt a wave of acute
nostalgia sweep over him. As few other artefacts could, it brought back
memories of his childhood, and the days when most television  sets were
too stupid to understand spoken commands.

‘Thank you, Matron. What ’s the best news channel? ’
She seemed puzzled by his question, then brightened.

‘Oh  -  I see what you mean. But Professor Anderson thinks you ’re not
quite ready yet. So Archives h as put together a collection that will make
you feel at home. ’

Poole wondered briefly what the storage medium was in this day and
age. He could still remember compact disks, and his eccentric old Uncle
George had been the proud possessor of a collection o f vintage
videotapes. But surely that technological contest must have finished
centuries ago  -  in the usual Darwinian way, with the survival of the fittest.

He had to admit that the selection was well done, by someone
(Indra?) familiar with the early twen ty - first century. There was nothing
disturbing  -  no wars or violence, and very little contemporary business or
politics, all of which would now be utterly irrelevant. There were some
light comedies, sporting events (how did they know that he had been a
kee n tennis fan?), classical and pop music, and wildlife documentaries.

And whoever had put this collection together had a sense of humour,
or they would not have included episodes from each Star Trek series. As
a very small boy, Poole had met both Patrick S tewart and Leonard
Nimoy: he wondered what they would have thought if they could have
known the destiny of the child who had shyly asked for their autographs.

A depressing thought occurred to him, soon after he had started exploring  -

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

much of the time in  fast - forward  -  these relics of the past. He had read
somewhere that by the turn of the century  -  his century!  -  there were
approximately fifty thousand television stations broadcasting
simultaneously. If that figure had been maintained and it might well h ave
increased  -  by now millions of millions of hours of TV programming must
have gone on the air. So even the most hardened cynic would admit that
there were probably at least a billion hours of worthwhile viewing… and
millions that would pass the highest  standards of excellence. How to find
these few  -  well, few million  -  needles in so gigantic a haystack?

The thought was so overwhelming  -  indeed, so demoralizing  -  that
after a week of increasingly aimless channel - surfing Poole asked for the
set to be rem oved.

Perhaps fortunately, he had less and less time to himself during his
waking hours, which were steadily growing longer as his strength came back.
There was no risk of boredom, thanks to the continual parade not only of
serious researchers but also in quisitive  -  and presumably influential  -  citizens
who had managed to filter past the palace guard established by Matron and
Professor Anderson. Nevertheless, he was glad when, one day, the television
set reappeared, he was beginning to suffer from withdraw al symptoms  -  and
this time, he resolved to be more selective in his viewing.
The venerable antique was accompanied by Indra Wallace, smiling broadly.
‘We ’ve found something you must see, Frank. We think it will help you to
adjust  -  anyway, we ’re sure you ’ ll enjoy it. ’
Poole had always found that remark a recipe for guaranteed boredom,
and prepared for the worst. But the opening had him instantly hooked,
taking him back to his old life as few other things could have done. At once
he recognized one of the mo st famous voices of his age, and remembered
that he had seen this very programme before. Could it have been at its first
transmission? No, he was only five then: must have been a repeat…

‘Atlanta, 2000 December 31. ’
‘This is CNN International, five minute s from the dawn of the New
Millennium, with all its unknown perils and promise… ’

‘But before we try to explore the future, let ’s look back a thousand years, and ask
ourselves: could any persons living in Ad. 1000 even remotely imagine our world,
or unders tand it, if they were magically transported across the centuries? ’  ‘Almost
the whole of the technology we take for granted was invented near the very end
of our Millennium  -  the steam engine, electricity, telephones, radio, television,
cinema, aviation, el ectronics. And, during a single lifetime, nuclear energy and

space travel  -  what would the greatest minds of the past have made of

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

these? How long could an Archimedes or a Leonardo have retained his
sanity, if suddenly dumped into our world? ’

‘It ’s tempt ing to think that we would do better, if we were transported a
thousand years hence. Surely the fundamental scientific discoveries have
already been made, though there will be major improvements in technology,
will there be any devices, anything as magical  and incomprehensible to us as
a pocket calculator or a video camera would have been to Isaac Newton? ’
‘Perhaps our age is indeed sundered from all those that have gone
before. Telecommunications, the ability to record images and sounds once
irrevocably lo st, the conquest of the air and space  -  all these have created
a civilization beyond the wildest fantasies of the past. And equally
important, Copernicus, Newton, Darwin and Einstein have so changed our
mode of thinking and our outlook on the universe that  we might seem
almost a new species to the most brilliant of our predecessors. ’

‘And will our successors, a thousand years from now, look back on
us with the same pity with which we regard our ignorant, superstitious,
disease - ridden, short - lived ancestors ? We believe that we know the
answers to questions that they could not even ask: but what surprises
does the Third Millennium hold for us? ’
‘Well, here it comes  - ’
A great bell began to toll the strokes of midnight. The last vibration
throbbed into silence …

‘And that ’s the way it was  -  good - bye, wonderful and terrible twentieth
century… ’

Then the picture broke into a myriad fragments, and a new
commentator took over, speaking with the accent which Poole could now
easily understand, and which immediately b rought him up to the present.

‘Now, in the first minutes of the year three thousand and one, we can
answer that question from the past… ’

‘Certainly, the people of 2001 who you were just watching would not feel
as utterly overwhelmed in our age as someone  from 1001 would have felt in
theirs. Many of our technological achievements they would have anticipated;
indeed, they would have expected satellite cities, and colonies on the Moon
and planets. They might even have been disappointed, because we are not
ye t immortal, and have sent probes only to the nearest stars… ’
Abruptly, Indra switched off the recording.

‘See the rest later, Frank: you ’re getting tired. But I hope it will help

you to adjust. ’
‘Thank you, Indra. I ’ll have to sleep on it. But it ’s certai nly proved one

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

point. ’

‘What ’s that? ’
‘I should be grateful I ’m not a thousand - and - oner, dropped into 2001.
That would be too much of a quantum jump: I don ’t believe anyone could
adjust to it. At least I know about electricity, and won ’t die of fright if  a
picture starts talking at me. ’

I hope, Poole told himself, that confidence is justified. Someone once
said that any sufficiently advanced technology is indistinguishable from
magic. Will I meet magic in this new world  -  and be able to handle it?

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001 : The Final  Odyssey


6 Braincap

‘I ’m afraid you ’ll have to make an agonizing decision, ’ said Professor
Anderson, with a smile that neutralized the exaggerated gravity of his words.
‘I can take it, Doctor. Just give it to me straight. ’

‘Before you can be  fitted with your Braincap, you have to be completely
bald. So here ’s your choice. At the rate your hair grows, you ’d have to be
shaved at least once a month. Or you could have a permanent. ’

‘How ’s that done? ’
‘Laser scalp treatment. Kills the follicles a t the
root. ’  ‘Hmm… is it reversible? ’
‘Yes, but that ’s messy and painful, and takes weeks. ’
‘Then I ’ll see how I like being hairless, before committing myself. I
can ’t forget what happened to Samson. ’
‘Who? ’
‘Character in a famous old book. His girl - friend  cut off his hair while
he was sleeping. When he woke up, all his strength had gone. ’
‘Now I remember  -  pretty obvious medical symbolism! ’
‘Still, I wouldn ’t mind losing my beard. I ’d be happy to stop shaving,
once and for all. ’

‘I ’ll make the arrangement s. And what kind of wig would you
like? ’ Poole laughed.

‘I ’m not particularly vain  -  think it would be a nuisance, and probably
won ’t bother. Something else I can decide later. ’

That everyone in this era was artificially bald was a surprising fact that
P oole had been quite slow to discover; his first revelation had come when
both his nurses removed their luxuriant tresses, without the slightest sign of
embarrassment, just before several equally bald specialists arrived to give
him a series of micro - biolog ical checks. He had never been surrounded by
so many hairless people, and his initial guess was that this was the latest
step in the medical profession ’s endless war against germs.

Like many of his guesses, it was completely wrong, and when he discovered
the true reason he amused himself by seeing how often he would have been

sure, had he not known in advance, that his visitors ’ hair was not their own. The

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

answer was: seldom with men, never with women; this was obviously the
great age of the wig - maker.
Pr ofessor Anderson wasted no time: that afternoon the nurses
smeared some evil - smelling cream over Poole ’s head, and when he
looked into the mirror an hour later he did not recognize himself. Well, he
thought, perhaps a wig would be a good idea, after all…

The Braincap fitting took somewhat longer. First a mould had to be
made, which required him to sit motionless for a few minutes until the
plaster set. He fully expected to be told that his head was the wrong
shape when his nurses  -  giggling most unprofessi onally  -  had a hard
time extricating him.  ‘Ouch that hurt! ’ he complained.

Next came the skull - cap itself, a metal helmet that fitted snugly
almost down to the ears, and triggered a nostalgic thought  -  wish my
Jewish friends could see me now! After a few  minutes, it was so
comfortable that he was unaware of its presence.

Now he was ready for the installation  -  a process which, he realized
with something akin to awe, had been the Rite of Passage for almost all
the human race for more than half a millennium .

‘There ’s no need to close your eyes, ’ said the technician, who had been
introduced by the pretentious title of  ‘Brain Engineer ’  -  almost always
shortened to  ‘Brainman ’ in popular usage.  ‘When Setup begins, all your inputs
will be taken over. Even if you r eyes are open, you won ’t see anything. ’
I wonder if everyone feels as nervous as this, Poole asked himself. Is
this the last moment I ’ll be in control of my own mind? Still, I ’ve learned
to trust the technology of this age; up to now, it hasn ’t let me do wn. Of
course, as the old saying goes, there ’s always a first time…

As he had been promised, he had felt nothing except a gentle tickling
as the myriad of nanowires wormed their way through his scalp. All his
senses were still perfectly normal; when he sc anned his familiar room,
everything was exactly where it should be.

The Brainman  -  wearing his own skull - cap, wired, like Poole ’s, to a
piece of equipment that could easily have been mistaken for a twentieth -
century laptop computer  -  gave him a reassuring  smile.
‘Ready? ’ he asked.
There were times when the old cliche´s were the best ones.
‘Ready as I ’ll ever be, ’ Poole answered.

Slowly, the light faded  -  or seemed to. A great silence descended, and even
the gentle gravity of the Tower relinquished its hol d upon him. He was an

embryo, floating in a featureless void, though not in complete darkness. He had

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

known such a barely visible, near ultra - violet tenebrosity, on the very edge of
night, only once in his life when he had descended further than was altog ether
wise down the face of a sheer cliff at the outer edge of the Great Barrier Reef.
Looking down into hundreds of metres of crystalline emptiness, he had felt such
a sense of disorientation that he experienced a brief moment of panic, and had
almost tri ggered his buoyancy unit before regaining control. Needless to say, he
had never mentioned the incident to the Space Agency physicians…
From a great distance a voice spoke out of the immense void that
now seemed to surround him. But it did not reach him th rough his ears: it
sounded softly in the echoing labyrinths of his brain.

‘Calibration starting. From time to time you will be asked questions  -
you can answer mentally, but it may help to vocalize. Do you understand? ’

‘Yes, ’ Poole replied, wondering if  his lips were indeed moving. There
was no way that he could tell.

Something was appearing in the void  -  a grid of thin lines, like a huge
sheet of graph paper. It extended up and down, right and left, to the limits
of his vision. He tried to move his head , but the image refused to change.

Numbers started to flicker across the grid, too fast for him to read  -  but
presumably some circuit was recording them. Poole could not help smiling (did
his cheeks move?) at the familiarity of it all. This was just like  the computer -
driven eye examination that any oculist of his age would give a client.

The grid vanished, to be replaced by smooth sheets of colour filling
his entire field of view. In a few seconds, they flashed from one end of
the spectrum to the other.  ‘ Could have told you that, ’ Poole muttered
silently.  ‘My colour vision ’s perfect. Next for hearing, I suppose. ’

He was quite correct. A faint, drumming sound accelerated until it became
the lowest of audible Cs, then raced up the musical scale until it dis appeared
beyond the range of human hearing, into bat and dolphin territory.
That was the last of the simple, straightforward tests. He was briefly
assailed by scents and flavours, most of them pleasant but some quite the
reverse. Then he became, or so it s eemed, a puppet on an invisible strig.

He presumed that his neuromuscular control was being tested, and
hoped that there were no external manifestations, if there were, he
would probably look like someone in the terminal stages of St Vitus ’s
Dance. And fo r one moment he even had a violent erection, but was
unable to give it a reality check before he fell into a dreamless sleep.

Or did he only dream that he slept? He had no idea how much time

had elapsed before he awoke. The helmet had already gone, togeth er
with the Brainman and his equipment.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘Everything went fine, ’ beamed Matron.  ‘It will take a few hours to
check that there are no anomalies. If your reading ’s KO  -  I mean OK  -
you ’ll have your Braincap tomorrow. ’
Poole appreciated the efforts of his ent ourage to learn archaic
English, but he could not help wishing that Matron had not made that
unfortunate slip - of - the - tongue.

When the time came for the final filling, Poole felt almost like a boy
again, about to unwrap some wonderful new toy under the Chr istmas free.

‘You won ’t have to go through all that setting - up again, ’ the Brainman
assured him.  ‘Download will start immediately. I ’ll give you a five - minute
demo. Just relax and enjoy. ’

Gentle, soothing music washed over him; though it was something
ve ry familiar, from his own time, he could not identify it. There was a mist
before his eyes, which parted as he walked towards it…

Yes, he was walking! The illusion was utterly convincing; he could
feel the impact of his feet on the ground, and now that th e music had
stopped he could hear a gentle wind blowing through the great trees that
appeared to surround him. He recognized them as Californian redwoods,
and hoped that they still existed in reality, somewhere on Earth.

He was moving at a brisk pace  -  to o fast for comfort, as if time was
slightly accelerated so he could cover as much ground as possible. Yet
he was not conscious of any effort; he felt he was a guest in someone
else ’s body. The sensation was enhanced by the fact that he had no
control over  his movements. When he attempted to stop, or to change
direction, nothing happened. He was going along for the ride.

It did not matter; he was enjoying the novel experience  -  and could
appreciate how addictive it could become. The  ‘dream machines ’ that
ma ny scientists of his own century had anticipated  -  often with alarm  -
were now part of everyday life. Poole wondered how Mankind had
managed to survive: he had been told that much of it had not. Millions
had been brain - burned, and had dropped out of life.

Of course, he would be immune to such temptations! He would use this
marvellous tool to learn more about the world of the Fourth Millennium, and
to acquire in minutes new skills that would otherwise take years to master.
Well  -  he might, just occasionally , use the Braincap purely for fun…

He had come to the edge of the forest, and was looking out across a wide
river. Without hesitation, he walked into it, and felt no alarm as the water rose
over his head. It did seem a little strange that he could continu e breathing

naturally, but he thought it much more remarkable that he could see perfectly in

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

a medium where the unaided human eye could not focus. He could
count every scale on the magnificent trout that went swimming past,
apparently oblivious to this st range intruder…
Then, a mermaid - Well he had always wanted to meet one, but he had
assumed that they were marine creatures. Perhaps they occasionally came
upstream  -  like salmon, to have their babies? She was gone before he
could question her, to confirm or  deny this revolutionary theory.

The river ended in a translucent wall; he stepped through it on to the face of a
desert, beneath a blazing sun. Its heat burned him uncomfortably  -  yet he was
able to look directly into its noonday fury. He could even see,  with unnatural
clarity, an archipelago of sunspots near one limb. And  -  this was surely
impossible  -  there was the tenuous glory of the corona, quite invisible except
during total eclipse, reaching out like a swan ’s wings on either side of the Sun.

Every thing faded to black: the haunting music returned, and with it the
blissful coolness of his familiar room. He opened his eyes (had they ever
been closed?) and found an expectant audience waiting for his reaction.

‘Wonderful! ’ he breathed, almost reverentl y.  ‘Some of it seemed  -
well, realer than real! ’

Then his engineer ’s curiosity, never far from the surface, started
nagging him.

‘Even that short demo must have contained an enormous amount of
information. How ’s it stored? ’

‘In these tablets  -  the same  your audio - visual system uses, but with
much greater capacity. ’

The Brainman handed Poole a small square, apparently made of
glass, silvered on one surface; it was almost the same size as the
computer diskettes of his youth, but twice the thickness. As Po ole tilted it
back and forth, trying to see into its transparent interior, there were
occasional rainbow - hued flashes, but that was all.

He was holding, he realized, the end product of more than a thousand
years of electro - optical technology  -  as well as  other technologies unborn in
his era. And it was not surprising that, superficially, it resembled closely the
devices he had known. There was a convenient shape and size for most of
the common objects of everyday life  - knives and forks, books, hand - tools,
furniture… and removable memories for computers.

‘What ’s its capacity? ’ he asked.  ‘In my time, we were up to a terabyte
in something this size. I ’m sure you ’ve done a lot better. ’

‘Not as much as you might imagine  -  there ’s a limit, of course, set by the

structure of matter. By the way, what was a terabyte? Afraid I ’ve forgotten. ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘Shame on you! Kilo, mega, giga, tera… that ’s ten to the twelfth
bytes. Then the petabyte  -  ten to the fifteenth  -  that ’s as far as I ever got. ’

‘That ’s about where we start.  It ’s enough to record everything any
person can experience during one lifetime. ’

It was an astonishing thought, yet it should not have been so surprising.
The kilogram of jelly inside the human skull was not much larger than the
tablet Poole was holding i n his hand, and it could not possibly be as
efficient a storage device  -  it had so many other duties to deal with.

‘And that ’s not all, ’ the Brainman continued.  ‘With some data
compression, it could store not only the memories  -  but the actual person. ’
‘A nd reproduce them again? ’
‘Of course; straightforward job of nanoassembly. ’
So I ’d heard, Poole told himself  -  but I never really believed it.

Back in his century, it seemed wonderful enough that the entire
lifework of a great artist could be stored on a  single small disk. And now,
something no larger could hold  -  the artist as well.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


7 Debriefing

‘I ’m delighted, ’ said Poole,  ‘to know that the Smithsonian still exists,
after all these centuries. ’

‘You probably wouldn ’t recogniz e it, ’ said the visitor who had introduced
himself as Dr Alistair Kim, Director of Astronautics.  ‘Especially as it ’s now
scattered over the Solar System  -  the main off - Earth collections are on
Mars and the Moon, and many of the exhibits that legally belong  to us are
still heading for the stars. Some day we ’ll catch up with them and bring
them home. We ’re particularly anxious to get our hands on Pioneer 10  -  the
first manmade object to escape from the Solar System. ’

‘I believe I was on the verge of doing th at, when they located me. ’
‘Lucky for you  -  and for us. You may be able to throw light on many
things we don ’t know. ’

‘Frankly, I doubt it  -  but I ’ll do my best. I don ’t remember a thing after
that runaway space - pod charged me. Though I still find it hard  to
believe, I ’ve been told that Hal was responsible. ’

‘That ’s true, but it ’s a complicated story. Everything we ’ve been able to learn
is in this recording  -  about twenty hours, but you can probably Fast most of it. ’

‘You know, of course, that Dave Bowma n went out in the Number 2
Pod to rescue you  -  but was then locked outside the ship because Hal
refused to open the pod - bay doors. ’
‘Why, for God ’s sake? ’
Dr Kim winced slightly. It was not the first time Poole had noticed
such a reaction.

(Must watch my  language, he thought.  ‘God ’ seems to be a dirty word
in this culture  -  must ask Indra about it.)

‘There was a major programming error in Hal ’s instructions  -  he ’d
been given control of aspects of the mission you and Bowman didn ’t
know about, it ’s all in t he recording…

‘Anyway, he also cut off the life - support systems to the three hybernauts  -
the Alpha Crew  -  and Bowman had to jettison their bodies as well. ’
(So Dave and I were the Beta Crew  -  something else I didn ’t know…)  ‘What

happened to them? ’ Poole  asked.  ‘Couldn ’t they have been rescued,

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

just as I was? ’

‘I ’m afraid not: we ’ve looked into it, of course. Bowman ejected them
several hours after he ’d taken back control from Hal, so their orbits were
slightly different from yours. Just enough for them  to burn up in Jupiter  -
while you skimmed by, and got a gravity boost that would have taken
you to the Orion Nebula in a few thousand more years… ’

‘Doing everything on manual override  -  really a fantastic performance!  -
Bowman managed to get Discovery int o orbit round Jupiter. And there he
encountered what the Second Expedition called Big Brother  -  an apparent
twin of the Tycho Monolith, but hundreds of times larger. ’

‘And that ’s where we lost him. He left Discovery in the remaining space -
pod, and made a  rendezvous with Big Brother. For almost a thousand years,
we ’ve been haunted by his last message:  “By Deus  -  it ’s full of stars! ”
(Here we go again! Poole told himself. No way Dave could have said
that… Must have been  ‘My God  -  it ’s full of stars! ’)

‘Appa rently the pod was drawn into the Monolith by some kind of inertial
field, because it  -  and presumably Bowman  -  survived an acceleration which
should have crushed them instantly. And that was the last information anyone
had, for almost ten years, until the  joint US - Russian Leonov mission… ’
‘Which made a rendezvous with the abandoned Discovery so that Dr
Chandra could go aboard and reactivate Hal. Yes, I know that. ’
Dr Kim looked slightly embarrassed.
‘Sorry  -  I wasn ’t sure how much you ’d been told already A nyway,
that ’s when even stranger things started to happen. ’

‘Apparently the arrival of Leonov triggered something inside Big
Brother. If we did not have these recordings, no one would have
believed what happened. Let me show you… here ’s Dr Heywood Floyd
k eeping the midnight watch aboard Discovery, after power had been
restored. Of course you ’ll recognize everything. ’

(Indeed I do: and how strange to see the long - dead Heywood Floyd,
sitting in my old seat with Hal ’s unblinking red eye surveying everything
in sight. And even stranger to think that Hal and I have both shared the
same experience of resurrection from the dead…)

A message was coining up on one of the monitors, and Floyd
answered lazily,  ‘OK, Hal. Who is calling? ’
NO IDENTIFICATION.
Floyd looked  slightly annoyed.

‘Very well. Please give me the message. ’

IT IS DANGEROUS TO REMAIN HERE. YOU MUST LEAVE WITHIN

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

FIFTEEN DAYS.

‘That is absolutely impossible. Our launch window does not open
until twenty - six days from now. We do not have sufficient pro pellant for
an earlier departure. ’

I AM AWARE OF THESE FACTS. NEVERTHELESS YOU MUST
LEAVE WITHIN FWFEEN DAYS.

‘I cannot take this warning seriously unless I know its origin… who is
speaking to me? ’

I WAS DAVID BOWMAN. IT IS IMPORTANT THAT YOU BELIEVE
ME . LOOK BEHIND YOU.

Heywood Floyd slowly turned in his swivel chair, away from the
banked panels and switches of the computer display, towards the
Velcro - covered catwalk behind.
( ’Watch this carefully, ’ said Dr Kim.
As if I needed telling, thought Poole…)

The zero - gravity environment of Discovery ’s observation deck was
much dustier than he remembered it: he guessed that the air - filtration
plant had not yet been brought on line. The parallel rays of the distant
yet still brilliant Sun, streaming through the  great windows, lit up a
myriad of dancing motes in a classic display of Brownian movement.

And now something strange was happening to these particles of dust;
some force seemed to be marshalling them, herding them away from a
central point yet bringing o thers towards it, until they all met on the surface
of a hollow sphere. That sphere, about a metre across, hovered in the air
for a moment like a giant soap bubble. Then it elongated into an ellipsoid,
whose surface began to pucker, to form folds and inden tations. Poole was
not really surprised when it started to assume the shape of a man.

He had seen such figures, blown out of glass, in museums and
science exibitions. But this dusty phantom did not even approximate
anatomical accuracy; it was like a crude  clay figurine, or one of the
primitive works of art found in the recesses of Stone Age caves. Only the
head was fashioned with care; and the face, beyond all shadow of doubt,
was that of Commander David Bowman.

HELLO, DR FLOYD. NOW DO YOU BELIEVE ME?
The  lips of the figure never moved: Poole realized that the voice  -  yes,
certainly Bowman ’s voice  -  was actually coming from the speaker grille.

THIS IS VERY DIFFICULT FOR ME, AND I HAVE LIITLE TIME. I

HAVE BEEN ALLOWED TO GIVE THIS WARNING. YOU HAVE ONLY
FI FFEEN DAYS.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘Why  -  and what are you? ’

But the ghostly figure was already fading, its grainy envelope
beginning to dissolve back into the constituent particles of dust.

GOOD - BYE, DOCTOR FLOYD. WE CAN HAVE NO FURTHER
CONTACT. BUT THERE MAY BE ONE MORE MES SAGE, IF ALL
GOES WELL.

As the image dissolved, Poole could not help smiling at that old
Space Age cliche´.  ‘If all goes well ’  -  how many times he had heard that
phrase intoned before a mission!

The phantom vanished: only the motes of dancing dust were l eft,
resuming their random patterns in the air. With an effort of will, Poole
came back to the present.
‘Well, Commander  -  what do you think of that? ’ asked Kim.
Poole was still shaken, and it was several seconds before he could reply.
‘The face and the vo ice were Bowman ’s  -  I ’d swear to that. But what was it? ’
‘That ’s what we ’re still arguing about. Call it a hologram, a projection  -  of

course, there are plenty of ways it could be faked if anyone wanted to  -  but not
in those circumstances! And then, of co urse, there ’s what happened next. ’
‘Lucifer? ’

‘Yes. Thanks to that warning, the Leonov had just sufficient time to
get away before Jupiter detonated. ’

‘So whatever it was, the Bowman - thing was friendly and trying to help. ’
‘Presumably. And it may have be en responsible for that  “one more message ”

we did receive  -  it was sent only minutes before the detonation. Another
waning. ’

Dr Kim brought the screen to life once more. It showed plain text:
ALL THESE WORLDS ARE YOURS EXCEPT EUROPA. ATTEMPT NO
LANDINGS  THERE. The same message was repeated about a hundred
times, then the letters became garbled.
‘And we never have tried to land there? ’ asked Poole.
‘Only once, by accident, thirty - six years later  -  when the USSS
Galaxy was hijacked and forced down there, an d her sister ship
Universe had to go to the rescue. It ’s all here  - with what little our robot
monitors have told us about the Europans. ’
‘I ’m anxious to see them. ’
‘They ’re amphibious, and come in all shapes and sizes. As soon as
Lucifer started melting th e ice that covered theirt whole world, they

began to emerge from the sea. Since then, they ’ve developed at a speed
that seems biologically impossible. ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘From what I remember about Europa, weren ’t there lots of cracks in the ice?
Perhaps they ’d already sta rted crawling through and having a look round. ’

‘That ’s a widely accepted theory. But there ’s another, much more
speculative, one. The Monolith may have been involved, in ways we
don ’t yet understand. What triggered that line of thought was the
discovery  of TMA ZERO, right here on Earth, almost five hundred years
after your time. I suppose you ’ve been told about that? ’

‘Only vaguely  -  there ’s been so much to catch up with! I did think the
name was ridiculous  -  since it wasn ’t a magnetic anomaly  -  and it w as in
Africa, not Tycho! ’

‘You ’re quite right, of course, but we ’re stuck with the name. And the more
we learn about the Monoliths, the more the puzzle deepens. Especially as
they ’re still the only real evidence for advanced technology beyond the Earth. ’
‘That ’s surprised me. I should have thought that by this lime we ’d
have picked up radio signals from somewhere. The astronomers started
searching when I was a boy! ’

‘Well, there is one hint  -  and it ’s so terrifying that we don ’t like to talk
about it. Hav e you heard of Nova Scorpio? ’
‘I don ’t believe so. ’
‘Stars go nova all the time, of course  -  and this wasn ’t a particularly
impressive one. But before it blew up, N Scorp was known to have
several planets. ’
‘Inhabited? ’
‘Absolutely no way of telling; radio  searches had picked up nothing.
And here ’s the nightmare… ’

‘Luckily, the automatic Nova Patrol caught the event at the very
beginning. And it didn ’t start at the star. One of the planets detonated
first, and then triggered its sun. ’
‘My Gah… sorry, go on . ’
‘You see the point. It ’s impossible for a planet to go nova  -  except in
one way. ’

‘I once read a sick joke in a science - fiction novel  -   “supernovae are
industrial accidents ”. ’

‘It wasn ’t a supernova  -  but that may be no joke. The most widely
accepted  theory is that someone else had been tapping vacuum energy
-  and had lost control. ’
‘Or it could have been a war. ’
‘Just as bad; we ’ll probably never know. But as our own civilization depends on

the same energy source, you can understand why N Scorp someti mes gives us

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

nightmares. ’

‘And we only had melting nuclear reactors to worry about! ’
‘Not any longer, thank Deus. But I really wanted to tell you more about
TMA ZERO ’s discovery, because it marked a turning point in human history. ’
‘Finding TMA ONE on th e Moon was a big enough shock, but five
hundred years later there was a worse one. And it was much nearer
home  -  in every sense of the word. Down there in Africa. ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


8 Return to Olduvai

The Leakeys, Dr Stephen Del Marco often tol d himself, would never
have recognized this place, even though it ’s barely a dozen kilometres
from where Louis and Mary, five centuries ago, dug up the bones of our
first ancestors. Global warming, and the Little Ice Age (truncated by
miracles of heroic te chnology) had transformed the landscape, and
completely altered its biota. Oaks and pine trees were still fighting it out,
to see which would survive the changes in climatic fortune.

And it was hard to believe that, by this year 2513, there was anything
l eft in Olduvai undug by enthusiastic anthropologists. However, recent
flash - floods  -  which were not supposed to happen any more  -  had
resculpted this area, and cut away several metres of topsoil. Del Marco
had taken advantage of the opportunity: and there,  at the limit of the
deep - scan, was something he could not quite believe.

It had taken more than a year of slow and careful excavation to reach
that ghostly image, and to learn that the reality was stranger than anything
he had dared to imagine. Robot dig ging machines had swiftly removed the
first few metres, then the traditional slave - crews of graduate students had
taken over. They had been helped  -  or hindered  -  by a team of four kongs,
who Del Marco considered more trouble than they were worth. However,
the students adored the genetically - enhanced gorillas, whom they treated
like retarded but much - loved children. It was rumoured that the
relationships were not always completely Platonic.

For the last few metres, however, everything was the work of human
hands, usually wielding toothbrushes  -  soft - bristled at that. And now it was
finished: Howard Carter, seeing the first glint of gold in Tutankhamen ’s tomb,
had never uncovered such a treasure as this. From this moment onwards, Del
Marco knew, human belief s and philosophies would be irrevocably changed.
The Monolith appeared to be the exact twin of that discovered on the Moon
five centuries earlier: even the excavation surrounding it was almost identical in
size. And like TMA ONE, it was totally non - reflect ive, absorbing with equal
indifference the fierce glare of the African Sun and the pale gleam of Lucifer.

As he led his colleagues  -  the directors of the world ’s half - dozen most

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

famous museums, three eminent anthropologists, the heads of two media
empire s  -  down into the pit, Del Marco wondered if such a distinguished
group of men and women had ever been so silent, for so long. But that was
the effect that this ebon rectangle had on all visitors, as they realized the
implications of the thousands of artef acts that surrounded it.

For here was an archaeologist ’s treasure - trove  -  crudely - fashioned
flint tools, countless bones  -  some animal, some human  -  and almost all
arranged in careful patterns. For centuries  -  no, millennia  -  these pitiful
gifts had been  brought here, by creatures with only the first glimmer of
intelligence, as tribute to a marvel beyond their understanding.

And beyond ours, Del Marco had often thought. Yet of two things he
was certain, though he doubted if proof would ever be possible.

This was where  -  in time and space  -  the human species had really begun.

And this Monolith was the very first of all its multitudinous gods.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


9 Skyland

‘There were mice in my bedroom last night, ’ Poole complained, only
half ser iously.  ‘Is there any chance you could find me a cat? ’
Dr Wallace looked puzzled, then started to laugh.
‘You must have heard one of the cleaning microts  -  I ’ll get the programming
checked so they don ’t disturb you. Try not to step on one if you catch it a t
work; if you do, it will call for help, and all its friends will come to pick up the
pieces. ’ So much to learn  -  so little time! No, that wasn ’t true, Poole reminded
himself. He might well have a century ahead of him, thanks to the medical
science of thi s age. The thought was already beginning to fill him with
apprehension rather than pleasure.

At least he was now able to follow most conversations easily, and
had learned to pronounce words so that Indra was not the only person
who could understand him. H e was very glad that Anglish was now the
world language, though French, Russian and Mandarin still flourished.

‘I ’ve another problem, Indra  -  and I guess you ’re the only person who
can help. When I say  “God ”, why do people look embarrassed? ’
Indra did not  look at all embarrassed; in fact, she laughed.
‘That ’s a very complicated story. I wish my old friend Dr Khan was
here to explain it to you  -  but he ’s on Ganymede, curing any remaining
True Believers he can find there. When all the old religions were
disc redited  -  let me tell you about Pope Pius XX sometime  -  one of the
greatest men in history!  -  we still needed a word for the Prime Cause, or
the Creator of the Universe  -  if there is one… ’

‘There were lots of suggestions  -  Deo  -  Theo  -  Jove  -  Brahma  -  the y
were all tried, and some of them are still around  -  especially Einstein ’s
favourite,  “The Old One ”. But Deus seems to be the fashion nowadays. ’
‘I ’ll try to remember; but it still seems silly to me. ’
‘You ’ll get used to it: I ’ll teach you some other reas onably polite
expletives, to use when you want to express your feelings… ’

‘You said that all the old religions have been discredited. So what do
people believe nowadays? ’

‘As little as possible. We ’re all either Deists or Theists. ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘You ’ve lost me. Defin itions, please. ’

‘They were slightly different in your time, but here are the latest
versions. Theists believe there ’s not more than one God; Deists that
there is not less than one God. ’
‘I ’m afraid the distinction ’s too subtle for me. ’
‘Not for everyone;  you ’d be amazed at the bitter controversies it ’s aroused.
Five centuries ago, someone used what ’s known as surreal mathematics to
prove there ’s an infinite number of grades between Theists and Deists. Of
course, like most dabblers with infinity, he went i nsane. By the way, the best -
known Deists were Americans  -  Washington, Franklin, Jefferson. ’
‘A little before my time  -  though you ’d be surprised how many people
don ’t realize it. ’

‘Now I ’ve some good news. Joe  -  Prof. Anderson  -  has finally given
his  -  wh at was the phrase?  -  OK. You ’re fit enough to go for a little trip
upstairs… to the Lunar Level. ’
‘Wonderful. How far is that? ’
‘Oh, about twelve thousand kilometres. ’
‘Twelve thousand! That will take hours! ’
Indra looked surprised at his remark: then she  smiled.

‘Not as long as you think. No  -  we don ’t have a Star Trek Transporter yet  -
though I believe they ’re still working on it! But you ’ll need new clothes, and
someone to show you how to wear them. And to help you with the hundreds
of little everyday j obs that can waste so much time. So we ’ve taken the liberty
of arranging a human personal assistant for you Come in, Danil. ’
Danil was a small, light - brown man in his mid - thirties, who surprised
Poole by not giving him the usual palm - top salute, with its a utomatic
exchange of information.

Indeed, it soon appeared that Danil did not possess an Ident: whenever
it was needed, he produced a small rectangle of plastic that apparently
served the same purpose as the twenty - first century ’s  ’smart cards ’.

‘Danil w ill also be your guide and what was that word?  -  I can never
remember  -  rhymes with  “ballet ”. He ’s been specially trained for the job.
I ’m sure you ’ll find him completely satisfactory. ’

Though Poole appreciated this gesture, it made him feel a little
unco mfortable. A valet, indeed! He could not recall ever meeting one; in
his time, they were already a rare and endangered species. He began to
feel like a character from an early - twentieth - century English novel.

‘You have a choice, ’ said Indra,  ‘though I kno w which one you ’ll take. We can

go up on an external elevator, and admire the view  -  or an interior one, and

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

enjoy a meal and some light entertainment. ’

‘I can ’t imagine anyone wanting to stay inside. ’
‘You ’d be surprised. It ’s too vertiginous for some p eople  -  especially
visitors from down below. Even mountain climbers who say they ’ve got a
head for heights may start to turn green  -  when the heights are
measured in thousands of kilometres, instead of metres. ’
‘I ’ll risk it, ’ Poole answered with a smile.  ‘I ’ve been higher. ’
When they had passed through a double set of airlocks in the exterior
wall of the Tower (was it imagination, or did he feel a curious sense of
disorientation then?) they entered what might have been the auditorium
of a very small theatr e. Rows of ten seats were banked up in five tiers:
they all faced towards one of the huge picture windows which Poole still
found disconcerting, as he could never quite forget the hundreds of tons
of air pressure, striving to blast it out into space.

The  dozen or so other passengers, who had probably never given the
matter any thought, seemed perfectly at ease. They all smiled as they
recognized him, nodded politely, then turned away to admire the view.

‘Welcome to Skylounge, ’ said the inevitable autovoic e.  ‘Ascent begins
in five minutes. You will find refreshments and toilets on the lower floor. ’

Just how long will this trip last? Poole wondered. We ’re going to
travel over twenty thousand klicks, there and back: this will be like no
elevator ride I ’ve ev er known on Earth…

While he was waiting for the ascent to begin, he enjoyed the stunning
panorama laid out two thousand kilometres below. It was winter in the
northern hemisphere, but the climate had indeed changed drastically, for
there was little snow s outh of the Arctic Circle.

Europe was almost cloud - free, and there was so much detail that the eye
was overwhelmed. One by one he identified the great cities whose names had
echoed down the centuries; they had been shrinking even in his time, as the
commu nications revolution changed the face of the world, and had now
dwindled still further. There were also some bodies of water in improbable
places  -  the northern Sahara ’s Lake Saladin was almost a small sea.
Poole was so engrossed by the view that he had fo rgotten the
passage of time. Suddenly he realized that much more than five minutes
had passed  -  yet the elevator was still stationary. Had something gone
wrong  -  or were they waiting for late arrivals?

And then he noticed something so extraordinary that a t first he refused to
believe the evidence of his eyes. The panorama had expanded, as if he had

already risen hundreds of kilometres! Even as he watched, he noticed new

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

features of the planet below creeping into the frame of the window.

Then Poole laughe d, as the obvious explanation occurred to him.
‘You could have fooled me, Indra! I thought this was real  -  not a video
projection! ’
Indra looked back at him with a quizzical smile.
‘Think again, Frank. We started to move about ten minutes ago. By
now we mu st be climbing at, oh  -  at least a thousand kilometres an hour.
Though I ’m told these elevators can reach a hundred gee at maximum
acceleration, we won ’t touch more than ten, on this short run. ’

‘That ’s impossible! Six is the maximum they ever gave me in  the
centrifuge, and I didn ’t enjoy weighing half a ton. I know we haven ’t
moved since we stepped inside. ’

Poole had raised his voice slightly, and suddenly became aware that
the other passengers were pretending not to notice.

‘I don ’t understand how it ’s  done, Frank, but it ’s called an inertial
field. Or sometimes a Sharp one  -  the  “S ” stands for a famous Russian
scientist, Sakharov  -  I don ’t know who the others were. ’

Slowly, understanding dawned in Poole ’s mind  -  and also a sense of awe -
struck wonder.  Here indeed was a  ‘technology indistinguishable from magic ’.
‘Some of my friends used to dream of  “space drives ”  -  energy fields that
could replace rockets, and allow movement without any feeling of acceleration,
Most of us thought they were crazy  -  but it  seems they were right! I can still
hardly believe it… and unless I ’m mistaken, we ’re starting to lose weight. ’

‘Yes  -  it ’s adjusting to the lunar value. When we step out, you ’ll feel
we ’re on the Moon. But for goodness ’ sake, Frank  -  forget you ’re an
eng ineer, and simply enjoy the view. ’

It was good advice, but even as he watched the whole of Africa, Europe
and much of Asia flow into his field of vision, Poole could not tear his mind
away from this astonishing revelation. Yet he should not have been whol ly
surprised: he knew that there had been major breakthroughs in space
propulsion systems since his time, but had not realized that they would
have such dramatic applications to everyday life  -  if that term could be
applied to existence in a thirty - six - tho usand - kilometre - high skyscraper.

And the age of the rocket must have been over, centuries ago. All his
knowledge of propellant systems and combustion chambers, ion
thrusters and fusion reactors, was totally obsolete. Of course, that no
longer mattered  -  b ut he understood the sadness that the skipper of a

windjammer must have felt, when sail gave way to steam.
His mood changed abruptly, and he could not help smiling, when the

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

robovoice announced,  ‘Arriving in two minutes. Please make sure that
you do not l eave any of your personal belongings behind. ’

How often he had heard that announcement, on some commercial
flight? He looked at his watch, and was surprised to see that they had been
ascending for less than half an hour So that meant an average speed of a t
least twenty thousand kilometres an hour, yet they might never have
moved. What was even stranger  -  for the last ten minutes or more they
must actually have been decelerating so rapidly that by rights they should
all have been standing on the roof, heads  pointing towards Earth!

The doors opened silently, and as Poole stepped out he again felt the
slight disorientation he had noticed on entering the elevator lounge. This
time, however, he knew what it meant: he was moving through the
transition zone where  the inertial field overlapped with gravity  -  at this
level, equal to the Moon ’s.

Indra and Danil followed him, walking carefully now at a third of their
customary weight, as they went forward to meet the next of the day ’s wonders.

Though the view of the  receding Earth had been awesome, even for an
astronaut, there was nothing unexpected or surprising about it. But who
would have imagined a gigantic chamber, apparently occupying the entire
width of the Tower, so that the far wall was more than five kilome tres
away? Perhaps by this time there were larger enclosed volumes on the
Moon and Mars, but this must surely be one of the largest in space itself.

They were standing on a viewing platform, fifty metres up on the outer wall,
looking across an astonishing ly varied panorama. Obviously, an attempt had
been made to reproduce a whole range of terrestrial biomes. Immediately
beneath them was a group of slender trees which Poole could not at first identify:
then he realized that they were oaks, adapted to one - si xth of their normal gravity.
What, he wondered, would palm frees look like here? Giant reeds, probably…

In the middle - distance there was a small lake, fed by a river that
meandered across a grassy plain, then disappeared into something that
looked like a  single gigantic banyan tree. What was the source of the
water? Poole had become aware of a faint drumming sound, and as he
swept his gaze along the gently curving wall, he discovered a miniature
Niagara, with a perfect rainbow hovering in the spray above i t.

He could have stood here for hours, admiring the view and still not
exhausting all the wonders of this complex and brilliantly contrived simulation of
the planet below. As it spread out into new and hostile environments, perhaps

the human race felt an  ever - increasing need to remember its origins. Of course,
even in his own time every city had its parks as  -  usually feeble  -  reminders of

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Nature. The same impulse must be acting here, on a much grander
scale. Central Park, Africa Tower!

‘Let ’s go down, ’  said Indra.  ‘There ’s so much to see, and I don ’t come
here as often as I ’d like. ’

Followed by the silent but ever - present Danil, who always seemed to know
when he was needed but otherwise kept out of the way, they began a leisurely
exploration of this oas is in space. Though walking was almost effortless in this
low gravity, from time to time they took advantage of a small monorail, and
stopped once for refreshments at a cafe´, cunningly concealed in the trunk of
a redwood that must have been at least a qua rter of a kilometre tall.
There were very few other people about  -  their fellow passengers had
long since disappeared into the landscape  -  so it was as if they had all
this wonderland to themselves.

Everything was so beautifully maintained, presumably by  armies of
robots, that from time to time Poole was reminded of a visit he had made to
Disney World as a small boy. But this was even better: there were no
crowds, and indeed very little reminder of the human race and its artefacts.

They were admiring a su perb collection of orchids, some of enormous size,
when Poole had one of the biggest shocks of his life. As they walked past a
typical small gardener ’s shed, the door opened  -  and the gardener emerged.

Frank Poole had always prided himself on his self - con trol, and never
imagined that as a full - grown adult he would give a cry of pure fright. But
like every boy of his generation, he had seen all the  ‘Jurassic ’ movies  -
and he knew a raptor when he met one eye to eye.

‘I ’m terribly sorry, ’ said Indra, with o bvious concern.  ‘I never thought
of warning you. ’

Poole ’s jangling nerves returned to normal. Of course, there could be
no danger, in this perhaps too - well - ordered world: but still…!

The dinosaur returned his stare with apparent total disinterest, then
d oubled back into the shed and emerged again with a rake and a pair of
garden shears, which it dropped into a bag hanging over one shoulder. It
walked away from them with a bird - like gait, never looking back as it
disappeared behind some ten - metre - high sunf lowers.

‘I should explain, ’ said Indra contritely.  ‘We like to use bio - organisms
when we can, rather than robots  -  I suppose it ’s carbon chauvinism!
Now, there are only a few animals that have any manual dexterity, and
we ’ve used them all at one time or a nother. ’

‘And here ’s a mystery that no one ’s been able to solve. You ’d think that

enhanced herbivores like orangutans and gorillas would be good at this sort of

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

work. Well, they ’re not; they don ’t have the patience for it. ’

‘Yet carnivores like our frie nd here are excellent, and easily trained.
What ’s more  -  here ’s another paradox!  - after they ’ve been modified
they ’re docile and good - natured. Of course, there ’s almost a thousand
years of genetic engineering behind them, and look what primitive man
did to  the wolf, merely by trial and error! ’

Indra laughed and continued:  ‘You may not believe this, Frank, but they also
make good baby - sitters  -  children love them! There ’s a five - hundred - year - old
joke:  “Would you trust your kids to a dinosaur? ”  “What  -  and r isk injuring it? ” ‘

Poole joined in the laughter, partly in shame - faced reaction to his own fright.

To change the subject, he asked Indra the question that was still worrying him.

‘All this, ’ he said,  ‘it ’s wonderful  -  but why go to so much trouble,
when  anyone in the Tower can reach the real thing, just as quickly? ’

Indra looked at him thoughtfully, weighing her words.  ‘That ’s not quite
true. It ’s uncomfortable  -  even dangerous  -  for anyone who lives above
the half - gee level to go down to Earth, even in  a hoverchair. So it has to
be this  - or, as you used to say, Virtual Reality. ’

(Now I begin to understand, Poole told himself bleakly. That explains
Anderson ’s evasiveness, and all the tests he ’s been doing to see if I ’ve
regained my strength. I ’ve come a ll the way back from Jupiter, to within two
thousand kilometres of Earth  -  but I may never again walk on the surface of
my home planet. I ’m not sure how I will be able to handle this…)

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


10 Homage to Icarus

His depression quickly  passed: there was so much to do and see. A
thousand lifetimes would not have been enough, and the problem was to
choose which of the myriad distractions this age could offer. He tried, not
always successfully, to avoid the trivia, and to concentrate on th e things
that mattered  -  notably his education.

The Braincap  -  and the book - sized player that went with it, inevitably
called the Brainbox  -  was of enormous value here. He soon had a small library
of  ‘instant knowledge ’ tablets, each containing all the ma terial needed for a
college degree. When he slipped one of these into the Brainbox, and gave it
the speed and intensity adjustments that most suited him, there would be a
flash of light, followed by a period of unconsciousness that might last as long
as an  hour. When he awoke, it seemed that new areas of his mind had been
opened up, though he only knew they were there when he searched for them.
It was almost as if he was the owner of a library who had suddenly discovered
shelves of books he did not know he  possessed.
To a large extent, he was the master of his own time. Out of a sense of
duty  -  and gratitude  -  he acceded to as many requests as he could from
scientists, historians, writers and artists working in media that were often
incomprehensible to him.  He also had countless invitations from other citizens
of the four Towers, virtually all of which he was compelled to turn down.
Most tempting  -  and most hard to resist  -  were those that came from the
beautiful planet spread out below.  ‘Of course, ’ Professo r Anderson had told him,
‘you ’d survive if you went down for short time with the right life - support system,
but you wouldn ’t enjoy it. And it might weaken your neuromuscular system even
further. It ’s never really recovered from that thousand - year sleep. ’

His other guardian, Indra Wallace, protected him from unnecessary
intrusions, and advised him which requests he should accept  -  and
which he should politely refuse. By himself, he would never understand
the socio - political structure of this incredibly comp lex culture, but he
soon gathered that, although in theory all class distinctions had
vanished, there were a few thousand super - citizens. George Orwell had

been right; some would always be more equal than others.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

There had been times when, conditioned by  his twentyfirst - century
experience, Poole had wondered who was paying for all this hospitality  -  would
he one day be presented with the equivalent of an enormous hotel bill? But Indra
had quickly reassured him: he was a unique and priceless museum exhibit,  so
would never have to worry about such mundane considerations. Anything he
wanted  -  within reason  -  would be made available to him: Poole wondered what
the limits were, never imagining that one day he would attempt to discover them.
All the most importan t things in life happen by accident, and he had
set his wall display browser on random scan, silent, when a striking
image caught his attention.
‘Stop scan! Sound up! ’ he shouted, with quite unnecessary loudness.
He recognized the music, but it was a few m inutes before he identified it; the
fact that his wall was filled with winged humans circling gracefully round each
other undoubtedly helped. But Tchaikovsky would have been utterly astonished
to see this performance of Swan Lake  -  with the dancers actuall y flying…

Poole watched, entranced, for several minutes, until he was fairly
confident that this was reality, and not a simulation: even in his own day,
one could never be quite certain. Presumably the ballet was being
performed in one of the many low - gra vity environments  -  a very large one,
judging by some of the images. It might even be here in Africa Tower.

I want to try that, Poole decided. He had never quite forgiven the Space
Agency for banning one of his greatest pleasures  -  delayed parachute forma tion
jumping  -  even though he could see the Agency ’s point in not wanting to risk a
valuable investment. The doctors had been quite unhappy about his earlier hang -
gliding accident; fortunately his teenage bones had healed completely.

‘Well, ’ he thought,  ‘ there ’s no one to stop me now unless it ’s Prof.
Anderson… ’

To Poole ’s relief, the physician thought it an excellent idea, and he
was also pleased to find that every one of the Towers had its own
Aviary, up at the one - tenth - gee level.

Within a few days he  was being measured for his wings, not in the least
like the elegant versions worn by the performers of Swan Lake. Instead of
feathers there was a flexible membrane, and when he grasped the hand - holds
attached to the supporting ribs, Poole realized that he  must look much more
like a bat than a bird. However his  ‘Move over, Dracula! ’ was completely
wasted on his instructor, who was apparently unacquainted with vampires.
For his first lessons he was restrained by a light harness, so that he did not

move anywh ere while he was taught the basic strokes  -  and, most important of
all, learned control and stability. Like many acquired skills, it was not quite as

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

easy as it looked.

He felt ridiculous in this safety - harness  -  how could anyone injure
themselves at a t enth of a gravity!  -  and was glad that he needed only a few
lessons; doubtless his astronaut training helped. He was, the Wingmaster told
him, the best pupil he had ever taught: but perhaps he said that to all of them.
After a dozen free - flights in a chamb er forty metres on a side, criss -
crossed with various obstacles which he easily avoided, Poole was given
the all - clear for his first solo  -  and felt nineteen years old again, about to
take off in the Flagstaff Aero Club ’s antique Cessna.

The unexciting na me  ‘The Aviary ’ had not prepared him for the venue of this
maiden flight. Though it seemed even more enormous than the space holding the
forests and gardens down at the lunar - gee level, it was almost the same size,
since it too occupied an entire floor of  the gently tapering Tower. A circular void,
half a kilometre high and over four kilometres wide, it appeared truly enormous,
as there were no features on which the eye could rest. Because the walls were a
uniform pale blue, they contributed to the impressi on of infinite space.

Poole had not really believed the Wingmaster ’s boast,  ‘You can have any
scenery you like ’, and intended to throw him what he was sure was an impossible
challenge. But on this first flight, at the dizzy altitude of fifty metres, there  were no
visual distractions, Of course, a fall from the equivalent altitude of five metres in
the ten - fold greater Earth gravity could break one ’s neck; however, even minor
bruises were unlikely here, as the entire floor was covered with a network of
flex ible cables The whole chamber was a giant trampoline; one could, thought
Poole, have a lot of fun here  -  even without wings.

With firm, downward strokes, Poole lifted himself into the air. In almost
no time, it seemed that he was a hundred metres in the a ir, and still rising.
‘Slow down ’ said the Wingmaster,  ‘I can ’t keep up with you, ’
Poole straightened out, then attempted a slow roll. He felt light -
headed as well as light - bodied (less than ten kilograms!) and wondered
if the concentration of oxygen had b een increased.

This was wonderful  -  quite different from zero gravity, as it posed
more of a physical challenge. The nearest thing to it was scuba diving:
he wished there were birds here, to emulate the equally colourful coral
fish who had so often accomp anied him over tropical reefs.

One by one, the Wingmaster put him through a series of manoeuvres
-  rolls, loops, upside - down flying, hovering.

Finally he said:  ‘Nothing more I can teach you. Now let ’s enjoy the view. ’ Just
for a moment, Poole almost lost  control  -  as he was probably expected to


do. For, without the slightest warning, he was surrounded by snow - capped

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

mountains, and was flying down a narrow pass, only metres from some
unpleasantly jagged rocks.

Of course, this could not be real: those mo untains were as
insubstantial as clouds, and he could fly right through them if he wished.
Nevertheless, he veered away from the cliff - face (there was an eagle ’s
nest on one of its ledges, holding two eggs which he felt he could touch
if he came closer) an d headed for more open space.

The mountains vanished; suddenly, it was night. And then the stars came out

-   not the miserable few thousand in the impoverished skies of Earth, but
legions beyond counting. And not only stars, but the spiral whirlpools of
dis tant galaxies, the teeming, close - packed sun - swarms of globular clusters.
There was no possible way this could be real, even if he had been magically
transported to some world where such skies existed. For those galaxies were
receding even as he watched; s tars were fading, exploding, being born in stellar
nurseries of glowing fire - mist. Every second, a million years must be passing…

The overwhelming spectacle disappeared as quickly as it had come:
he was back in the empty sky, alone except for his instruct or, in the
featureless blue cylinder of the Aviary.

‘I think that ’s enough for one day, ’ said the Wingmaster, hovering a
few metres above Poole.  ‘What scenery would you like, the next time
you come here? ’

Poole did not hesitate. With a smile, he answered  the question.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


11 Here be Dragons

He would never have believed it possible, even with the technology of
this day and age. How many terabytes  -  petabytes  -  was there a large
enough word?  -  of information must have been accumulat ed over the
centuries, and in what sort of storage medium? Better not think about it,
and follow Indra ’s advice:  ‘Forget you ’re an engineer  -  and enjoy yourself. ’

He was certainly enjoying himself now, though his pleasure was mixed
with an almost overwhel ming sense of nostalgia. For he was flying, or so it
seemed, at an altitude of about two kilometres, above the spectacular and
unforgotten landscape of his youth. Of course, the perspective was false,
since the Aviary was only half a kilometre high, but th e illusion was perfect.

He circled Meteor Crater, remembering how he had scrambled up its
sides during his earlier astronaut training. How incredible that anyone
could ever have doubted its origin, and the accuracy of its name! Yet
well into the twentieth  century, distinguished geologists had argued that
it was volcanic: not until the coming of the Space Age was it  -  reluctantly
-  accepted that all planets were still under continual bombardment.

Poole was quite sure that his comfortable cruising speed was  nearer
twenty than two hundred kilometres an hour, yet he had been allowed to
reach Flagstaff in less than fifteen minutes. And there were the whitely -
gleaming domes of the Lowell Observatory, which he had visited so often
as a boy, and whose friendly sta ff had undoubtedly been responsible for his
choice of career. He had sometimes wondered what his profession might
have been, had he not been born in Arizona, near the very spot where the
most long - enduring and influential of Martian fantasies had been crea ted.
Perhaps it was imagination, but Poole thought he could just see Lowell ’s
unique tomb, close to the great telescope, which had fuelled his dreams.

From what year, and what season, had this image been captured?
He guessed it had come from the spy satel lites which had watched over
the world of the early twenty - first century. It could not be much later than
his own time, for the layout of the city was just as he remembered.
Perhaps if he went low enough he would even see himself…

But he knew that was abs urd; he had already discovered that this was the

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

nearest he could get. If he flew any closer, the image would start to
breakup, revealing its basic pixels. It was better to keep his distance,
and not destroy the beautiful illusion.

And there  -  it was inc redible!  -  was the little park where he had played with
his junior and high - school friends. The City Fathers were always arguing
about its maintenance, as the water supply became more and more critical.
Well, at least it had survived to this time  -  wheneve r that might be.
And then another memory brought tears to his eyes. Along those
narrow paths, whenever he could get home from Houston or the Moon,
he had walked with his beloved Rhodesian Ridgeback, throwing sticks
for him to retrieve, as man and dog had d one from time immemorial.

Poole had hoped, with all his heart, that Rikki would still be there to
greet him when he returned from Jupiter, and had left him in the care of
his younger brother Martin. He almost lost control, and sank several
metres before r egaining stability, as he once more faced the bitter truth
that both Rikki and Martin had been dust for centuries.

When he could see properly again, he noticed that the dark band of
the Grand Canyon was just visible on the far horizon. He was debating
whe ther to head for it  -  he was growing a little tired  -  when he became
aware that he was not alone in the sky. Something else was
approaching, and it was certainly not a human flyer. Although it was
difficult to judge distances here, it seemed much too large  for that.

Well, he thought, I ’m not particularly surprised to meet a pterodactyl
here  -  indeed, it ’s just the sort of thing I ’d expect. I hope it ’s friendly  -  or
that I can outfly it if it isn ’t. Oh, no!

A pterodactyl was not a bad guess: maybe eight po ints out of ten. What
was approaching him now, with slow flaps of its great leathery wings, was a
dragon straight out of Fairyland. And, to complete the picture, there was a
beautiful lady riding on its back. At least, Poole assumed she was beautiful.
The  traditional image was rather spoiled by one trifling detail: much of her
face was concealed by a large pair of aviator ’s goggles that might have
come straight from the open cockpit of a World War I biplane.

Poole hovered in mid - air, like a swimmer treadin g water, until the
oncoming monster came close enough for him to hear the flapping of its
great wings. Even when it was less than twenty metres away, he could
not decide whether it was a machine or a bio - construct: probably both.

And then he forgot about  the dragon, for the rider removed her goggles.

The trouble with cliche´s, some philosopher remarked, probably with
a yawn, is that they are so boringly true.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

But  ‘love at first sight ’ is never boring.

Danil could provide no information, but then Poole h ad not expected any
from him. His ubiquitous escort  -  he certainly would not pass muster as a
classic valet  -  seemed so limited in his functions that Poole sometimes
wondered if he was mentally handicapped, unlikely though that seemed. He
understood the fu nctioning of all the household appliances, carried out simple
orders with speed and efficiency, and knew his way about the Tower. But that
was all; it was impossible to have an intelligent conversation with him, and any
polite queries about his family were  met with a look of blank incomprehension.
Poole had even wondered if he too was a bio - robot.
Indra, however, gave him the answer he needed right away.
‘Oh, you ’ve met the Dragon Lady! ’

‘Is that what you call her? What ’s her real name  -  and can you get
me  her Ident? We were hardly in a position to touch palms. ’
‘Of course  -  no problemo. ’
‘Where did you pick up that? ’
Indra looked uncharacteristically confused.

‘I ’ve no idea  -  some old book or movie. Is it a good figure of
speech? ’  ‘Not if you ’re over fift een. ’

‘I ’ll try to remember. Now tell me what happened  -  unless you want to
make me jealous. ’

They were now such good friends that they could discuss any subject
with perfect frankness. Indeed, they had laughingly lamented their total
lack of romantic in terest in each other  -  though Indra had once
commented,  ‘I guess that if we were both marooned on a desert
asteroid, with no hope of rescue, we could come to some arrangement. ’
‘First, you tell me who she is. ’
‘Her name ’s Aurora McAuley; among many other t hings, she ’s President
of the Society for Creative Anachronisms. And if you thought Draco was
impressive, wait until you see some of their other  -  ah  -  creations. Like Moby
Dick  -  and a whole zooful of dinosaurs Mother Nature never thought of. ’
This is too  good to be true, thought Poole.
I am the biggest anachronism on Planet Earth.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


12 Frustration

Until now, he had almost forgotten that conversation with the Space
Agency psychologist.

‘You may be gone from Earth for at least th ree years. If you like, I
can give you a harmless anaphrodisiac implant that will last out the
mission. I promise we ’ll more than make it up, when you get home. ’

‘No thanks, ’ Poole had answered, trying to keep his face straight
when he continued,  ‘I think  I can handle it. ’

Nevertheless, he had become suspicious after the third or fourth
week  -  and so had Dave Bowman.

‘I ’ve noticed it too, ’ Dave said  ‘I bet those damn doctors put
something in our diet… ’

Whatever that something was  -  if indeed it had ever  existed  -  it was
certainly long past its shelf - life. Until now, Poole had been too busy to get
involved in any emotional entanglements, and had politely turned down
generous offers from several young (and not so young) ladies. He was not
sure whether it w as his physique or his fame that appealed to them: perhaps it
was nothing more than simple curiosity about a man who, for all they knew,
might be an ancestor from twenty or thirty generations in the past.
To Poole ’s delight, Mistress McAuley ’s Ident convey ed the information that
she was currently between lovers, and he wasted no further time in contacting
her. Within twenty - four hours he was pillion - riding, with his arms enjoyably
around her waist. He had also learned why aviator ’s goggles were a good
idea,  for Draco was entirely robotic, and could easily cruise at a hundred
klicks. Poole doubted if any real dragons had ever attained such speeds.
He was not surprised that the ever - changing landscapes below them
were straight out of legend. Ali Baba had waved  angrily at them, as they
overtook his flying carpet, shouting  ‘Can ’t you see where you ’re going! ’
Yet he must be a long way from Baghdad, because the dreaming spires
over which they now circled could only be Oxford.

Aurora confirmed his guess as she poin ted down:  ‘That ’s the pub  -  the inn  -
where Lewis and Tolkien used to meet their friends, the Inklings. And look at the

river  -  that boat just coming out from the bridge  -  do you see the two little girls

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

and the clergyman in it? ’

‘Yes, ’ he shouted back a gainst the gentle sussuration of Draco ’s
slipstream.  ‘And I suppose one of them is Alice. ’

Aurora turned and smiled at him over her shoulder: she seemed
genuinely delighted.

‘Quite correct: she ’s an accurate replica, based on the Reverend ’s
photos. I was  afraid you wouldn ’t know. So many people stopped
reading soon after your time. ’
Poole felt a glow of satisfaction.
I believe I ’ve passed another test, he told himself smugly. Riding on
Draco must have been the first. How many more, I wonder? Fighting
with  broadswords?

But there were no more, and the answer to the immemorial  ‘Your
place or mine? ’ was  -  Poole ’s.

The next morning, shaken and mortified, he contacted Professor Anderson.
‘Everything was going splendidly, ’ he lamented,  ‘when she suddenly became

hysterical and pushed me away. I was afraid I ’d hurt her somehow  -
’Then she called the roomlight  -  we ’d been in darkness  -  and jumped out
of bed. I guess I was just staring like a fool… ’ He laughed ruefully.  ‘She
was certainly worth staring at. ’
‘I ’m sur e of it. Go on. ’
‘After a few minutes she relaxed and said something I ’ll never be able
to forget. ’

Anderson waited patiently for Poole to compose himself.  ‘She said:
“I ’m really sorry, Frank. We could have had a good time. But I didn ’t
know that you ’d be en  -  mutilated. ”

The professor looked baffled, but only for a moment.  ‘Oh  -  I
understand. I ’m sorry too, Frank  -  perhaps I should have warned you. In
my thirty years of practice, I ’ve only seen half a dozen cases  -  all for
valid medical reasons, which cer tainly didn ’t apply to you… ’

‘Circumcision made a lot of sense in primitive times  -  and even in your
century  -  as a defence against some unpleasant  -  even fatal  -  diseases in
backward countries with poor hygiene. But otherwise there was absolutely no
excu se for it  -  and several arguments against, as you ’ve just discovered! ’
‘I checked the records after I ’d examined you the first time, and found
that by mid - twenty - first century there had been so many malpractice
suits that the American Medical Association h ad been forced to ban it.

The arguments among the contemporary doctors are very entertaining. ’
‘I ’m sure they are, ’ said Poole morosely.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘In some countries it continued for another century: then some
unknown genius coined a slogan  -  please excuse the vulg arity  -   “God
designed us: circumcision is blasphemy ”. That more or less ended the
practice. But if you want, it would be easy to arrange a transplant  -  you
wouldn ’t be making medical history, by any means. ’

‘I don ’t think it would work. Afraid I ’d start l aughing every
time. ’  ‘That ’s the spirit  -  you ’re already getting over it. ’

Somewhat to his surprise, Poole realized that Anderson ’s prognosis
was correct. He even found himself already laughing.
‘Now what, Frank? ’
‘Aurora ’s  “Society for Creative Anachroni sms ”. I ’d hoped it would
improve my chances. Just my luck to have found one anachronism she
doesn ’t appreciate. ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


13 Stranger in a Strange Time

Indra was not quite as sympathetic as he had hoped: perhaps, after all,
there was so me sexual jealousy in their relationship. And  -  much more serious
-  what they wryly labelled the Dragon Debacle led to their first real argument.
It began innocently enough, when Indra complained:
‘People are always asking me why I ’ve devoted my life to su ch a
horrible period of history, and it ’s not much of an answer to say that
there were even worse ones. ’
‘Then why are you interested in my century? ’
‘Because it marks the transition between barbarism and
civilization. ’  ‘Thank you. Just call me Conan. ’

‘C onan? The only one I know is the man who invented Sherlock Holmes. ’
‘Never mind  -  sorry I interrupted. Of course, we in the so - called developed
countries thought we were civilized. At least war wasn ’t respectable any
more, and the United Nations was always  doing its best to stop the wars
that did break out. ’

‘Not very successfully: I ’d give it about three out of ten. But what we
find incredible is the way that people  -  right up to the early 2000s!  -
calmly accepted behaviour we would consider atrocious. An d believed in
the most mind - boggled  - ’
‘Boggling. ’
‘ -  nonsense, which surely any rational person would dismiss out of hand. ’

‘Examples, please. ’
‘Well, your really trivial loss started me doing some research, and I
was appalled by what I found. Did you kn ow that every year in some
countries thousands of little girls were hideously mutilated to preserve
their virginity? Many of them died  -  but the authorities turned a blind eye. ’

‘I agree that was terrible  -  but what could my government do about it? ’

‘A g reat deal  -  if it wished. But that would have offended the people
who supplied it with oil and bought its weapons, like the landmines that
killed and maimed civilians by the thousand. ’

‘You don ’t understand, Indra. Often we had no choice: we couldn ’t refo rm

the whole world. And didn ’t somebody once say  “Politics is the art of the

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

possible ”? ’

‘Quite true  -  which is why only second - rate minds go into it. Genius
likes to challenge the impossible. ’

‘Well, I ’m glad you have a good supply of genius, so you ca n put
things right. ’

‘Do I detect a hint of sarcasm? Thanks to our computers, we can run
political experiments in cyberspace before trying them out in practice.
Lenin was unlucky; he was born a hundred years too soon. Russian
communism might have worked  -  at least for a while  -  if it had had
microchips. And had managed to avoid Stalin. ’

Poole was constantly amazed by Indra ’s knowledge of his age  -  as
well as by her ignorance of so much that he took for granted. In a way,
he had the reverse problem. Even i f he lived the hundred years that had
been confidently promised him, he could never learn enough to feel at
home. In any conversation, there would always be references he did not
understand, and jokes that would go over his head. Worse still, he would
alwa ys feel on the verge of some  “faux pas ”  -  about to create some
social disaster that would embarrass even the best of his new friends…

Such as the occasion when he was lunching, fortunately in his own quarters,
with Indra and Professor Anderson. The meals  that emerged from the autochef
were always perfectly acceptable, having been designed to match his
physiological requirements. But they were certainly nothing to get excited about,
and would have been the despair of a twenty - first - century gourmet.

Then, o ne day, an unusually tasty dish appeared, which brought back
vivid memories of the deer - hunts and barbecues of his youth. However,
there was something unfamiliar about both flavour and texture, so Poole
asked the obvious question.

Anderson merely smiled,  but for a few seconds Indra looked as if she
was about to be sick. Then she recovered and said:  ‘You tell him  -  after
we ’ve finished eating. ’

Now what have I done wrong? Poole asked himself. Half an hour later,
with Indra rather pointedly absorbed in a vi deo display at the other end of the
room, his knowledge of the Third Millennium made another major advance.
‘Corpse - food was on the way out even in your time, ’ Anderson
explained.  ‘Raising animals to  -  ugh  -  eat them became economically
impossible. I don ’t  know how many acres of land it took to feed one cow,
but at least ten humans could survive on the plants it produced. And

probably a hundred, with hydroponic techniques.

‘But what finished the whole horrible business was not economics  -  but

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

disease. It  started first with cattle, then spread to other food animals  -  a
kind of virus, I believe, that affected the brain, and caused a particularly
nasty death. Although a cure was eventually found, it was too late to turn
back the clock  -  and anyway, synthetic  foods were now far cheaper, and
you could get them in any flavour you liked. ’

Remembering weeks of satisfying but unexciting meals, Poole had
strong reservations about this. For why, he wondered, did he still have
wistful dreams of spare - ribs and cordon b leu steaks?

Other dreams were far more disturbing, and he was afraid that before
long he would have to ask Anderson for medical assistance. Despite
everything that was being done to make him feel at home, the strangeness
and sheer complexity of this new w orld were beginning to overwhelm him.
During sleep, as if in an unconscious effort to escape, he often reverted to
his earlier life: but when he awoke, that only made matters worse.

He had travelled across to America Tower and looked down, in reality
and  not in simulation, on the landscape of his youth  -  and it had not been
a good idea. With optical aid, when the atmosphere was clear, he ’d got
so close that he could see individual human beings as they went about
their affairs, sometimes along streets that  he remembered…

And always, at the back of his mind, was the knowledge that down
there had once lived everyone he had ever loved, Mother, Father (before
he had gone off with that Other Woman), dear Uncle George and Aunt
Lil, brother Martin  -  and, not least , a succession of dogs, beginning with
the warm puppies of his earliest childhood and culminating in Rikki.
Above all, there was the memory  -  and mystery  -  of Helena…
It had begun as a casual affair, in the early days of his astrotraining, but
had become m ore and more serious as the years went by. Just before he had
left for Jupiter, they had planned to make it permanent when he returned.
And if he did not, Helena wished to have his child. He still recalled
the blend of solemnity and hilarity with which the y had made the
necessary arrangements…

Now, a thousand years later, despite all his efforts, he had been unable to find if
Helena had kept her promise. Just as there were now gaps in his own memory, so
there were also in the collective records of Mankind.  The worst was that created by
the devastating electromagnetic pulse from the 2304 asteroid impact, which had
wiped out several per cent of the world ’s information banks, despite all backups and
safety systems. Poole could not help wondering if, among all  the exabytes that were
irretrievably lost, were the records of his own children: even now, his descendants of

the thirtieth generation might be walking the Earth; but

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

he would never know.

It helped a little to have discovered that  -  unlike Aurora  - some l adies of this
era did not consider him to be damaged goods. On the contrary: they often found
his alteration quite exciting, but this slightly bizarre reaction made it impossible
for Poole to establish any close relationship. Nor was he anxious to do so; a ll that
he really needed was the occasional healthy, mindless exercise.

Mindless  -  that was the trouble. He no longer had arty purpose in life.
And the weight of too many memories was upon him; echoing the title of
a famous book he had read in his youth,  he often said to himself,  ‘I am a
Stranger in a Strange Time. ’

There were even occasions when he looked down at the beautiful planet
on which  -  if he obeyed doctor ’s orders  -  he could never walk again, and
wondered what it would be like to make a second a cquaintance with the
vacuum of space. Though it was not easy to get through the airlocks without
triggering some alarm, it had been done: every few years, some determined
suicide made a brief meteoric display in the Earth ’s atmosphere.
Perhaps it was just  as well that deliverance was on its way, from a
completely unexpected direction.
*
‘Nice to meet you, Commander Poole  -  for the second time. ’
‘I ’m sorry  -  don ’t recall  -  but then I see so many people. ’  ‘No
need to apologize. First time was out round Neptun e. ’

‘Captain Chandler  -  delighted to see you! Can I get something from
the autochef? ’
‘Anything with over twenty per cent alcohol will be fine. ’
‘And what are you doing back on Earth? They told me you never
come inside Mars orbit. ’

‘Almost true  -  though  I was born here, I think it ’s a dirty, smelly place
-  too many people  -  creeping up to a billion again! ’

‘More than ten billion in my time. By the way, did you get my  “Thank
you ” message? ’

‘Yes  -  and I know I should have contacted you. But I waited until  I
headed sunwards again. So here I am. Your good health! ’

As the Captain disposed of his drink with impressive speed, Poole tried to
analyse his visitor. Beards  -  even small goatees like Chandler ’s  -  were very rare
in this society, and he had never known  an astronaut who wore one: they did not
co - exist comfortably with space - helmets. Of course, a Captain might go for years

between EVs, and in any case most outside jobs were done by robots; but there
was always the risk of the unexpected, when one might ha ve to get suited

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

in a hurry. It was obvious that Chandler was something of an eccentric,
and Poole ’s heart warmed to him.

‘You ’ve not answered my question. If you don ’t like Earth, what are
you doing here? ’

‘Oh, mostly contacting old friends  -  it ’s wond erful to forget hour - long
delays, and to have real - time conversations! But of course that ’s not the
reason. My old rust - bucket is having a refit, up at the Rim shipyard. And
the armour has to be replaced; when it gets down to a few centimetres
thick, I don ’t sleep too well. ’
‘Armour? ’
‘Dust shield. Not such a problem in your time, was it? But it ’s a dirty
environment out round Jupiter, and our normal cruise speed is several
thousand klicks  -  a second! So there ’s a continuous gentle pattering, like
raindrops  on the roof. ’
‘You ’re joking! ’
‘Course I am. If we really could hear anything, we ’d be dead. Luckily, this
sort of unpleasantness is very rare  -  last serious accident was twenty years
ago. We know all the main comet streams, where most of the junk is, and  are
careful to avoid them  -  except when we ’re matching velocity to round up ice.
‘But why don ’t you come aboard and have a look around, before we
take off for Jupiter? ’
‘I ’d be delighted… did you say Jupiter? ’
‘Well, Ganymede, of course  -  Anubis City. We ’ ve a lot of business
there, and several of us have families we haven ’t seen for months. ’
Poole scarcely heard him.
Suddenly  -  unexpectedly  -  and perhaps none too soon, he had found
a reason for living.

Commander Frank Poole was the sort of man who hated t o leave a
job undone  -  and a few specks of cosmic dust, even moving at a
thousand kilometres a second, were not likely to discourage him.
He had unfinished business at the world once known as Jupiter.
II GOLIATH

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


14 A Farewell to  Earth

‘Anything you want within reason, ’ he had been told. Frank Poole
was not sure if his hosts would consider that returning to Jupiter was a
reasonable request; indeed, he was not quite sure himself, and was
beginning to have second thoughts.

He had  already committed himself to scores of engagements, weeks
in advance. Most of them he would be happy to miss, but there were
some he would be sorry to forgo. In particular, he hated to disappoint the
senior class from his old high school  -  how astonishing  that it still
existed!  -  when they planned to visit him next month.

However, he was relieved  -  and a little surprised  -  when both Indra
and Professor Anderson agreed that it was an excellent idea. For the
first time, he realized that they had been concern ed with his mental
health; perhaps a holiday from Earth would be the best possible cure.

And, most important of all, Captain Chandler was delighted.  ‘You can
have my cabin, ’ he promised.  ‘I ’ll kick the First Mate out of hers. ’ There
were times when Poole  wondered if Chandler, with his beard and swagger,
was not another anachronism. He could easily picture him on the bridge of
a battered three - master, with Skull and Crossbones flying overhead.

Once his decision had been made, events moved with surprising
s peed. He had accumulated very few possessions, and fewer still that he
needed to take with him. The most important was Miss Pringle, his
electronic alter ego and secretary, now the storehouse of both his lives,
and the small stack of terabyte memories that  went with her.

Miss Pringle was not much larger than the hand - held personal
assistants of his own age, and usually lived, like the Old West ’s Colt 45, in
a quick - draw holster at his waist. She could communicate with him by audio
or Braincap, and her prim e duty was to act as an information filter and a
buffer to the outside world. Like any good secretary, she knew when to
reply, in the appropriate format:  ‘I ’ll put you through now ’ or  -  much more
frequently:  ‘I ’m sorry  -  Mr Poole is engaged. Please record  your message
and he will get back to you as soon as possible. ’ Usually, this was never.

There were very few farewells to be made: though realtime conversations

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

would be impossible owing to the sluggish velocity of radio waves, he would be in
constant tou ch with Indra and Joseph  -  the only genuine friends he had made.
Somewhat to his surprise, Poole realized that he would miss his enigmatic
but useful  ‘valet ’, because he would now have to handle all the small chores of
everyday life by himself. Danil bowed  slightly when they parted, but otherwise
showed no sign of emotion, as they took the long ride up to the outer curve of the
world - circling wheel, thirty - six thousand kilometres above central Africa.

‘I ’m not sure, Dim, that you ’ll appreciate the comparis on. But do you
know what Goliath reminds me of? ’

They were now such good friends that Poole could use the Captain ’s
nickname  -  but only when no one else was around.
‘Something unflattering, I assume. ’
‘Not really. But when I was a boy, I came across a who le pile of old
science - fiction magazines that my Uncle George had abandoned  -   “pulps ”,
they were called, after the cheap paper they were printed on… most of
them were already falling to bits. They had wonderful garish covers,
showing strange planets and mo nsters  -  and, of course, spaceships!

‘As I grew older, I realized how ridiculous those spaceships were. They were
usually rocket - driven  -  but there was never any sign of propellant tanks! Some of
them had rows of windows from stem to stem, just like ocean  liners. There was
one favourite of mine with a huge glass dome  -  a space - going conservatory…

‘Well, those old artists had the last laugh: too bad they could never
know. Goliath looks more like their dreams than the flying fuel - tanks we
used to launch fro m the Cape.

Your Inertial Drive still seems too good to be true  -  no visible means
of support, unlimited range and speed  -  sometimes I think I ’m the one
who ’s dreaming! ’
Chandler laughed and pointed to the view outside.
‘Does that look like a dream? ’

It  was the first time that Poole had seen a genuine horizon since he
had come to Star City, and it was not quite as far away as he had
expected. After all, he was on the outer rim of a wheel seven times the
diameter of Earth, so surely the view across the roo f of this artificial
world should extend for several hundred kilometres…

He used to be good at mental arithmetic  -  a rare achievement even in
his time, and probably much rarer now. The formula to give the horizon
distance was a simple one: the square root  of twice your height times the

radius  -  the sort of thing you never forgot, even if you wanted to…

Let ’s see  -  we ’re about 8 metres up  -  so root 16  -  this is easy!  -  say big R is

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

40,000  -  knock off those three zeros to make it all klicks  -  4 times root  40
-  hmm  -  just over 25…

Well, twenty - five kilometres was a fair distance, and certainly no spaceport
on Earth had ever seemed this huge. Even knowing perfectly well what to expect,
it was uncanny to watch vessels many times the size of his long - lost Disc overy
lifting off, not only with no sound, but with no apparent means of propulsion.
Though Poole missed the flame and fury of the old - time countdowns, he had to
admit that this was cleaner, more efficient  -  and far safer.

Strangest of all, though, was to  sit up here on the Rim, in the
Geostationary Orbit itself  -  and to feel weight! Just metres away, outside
the window of the tiny observation lounge, servicing robots and a few
spacesuited humans were gliding gently about their business; yet here
inside Go liath the inertial field was maintaining standard Mars - gee.

‘Sure you don ’t want to change your mind, Frank? ’ Captain Chandler
had asked jokingly, as he left for the bridge.  ‘Still ten minutes before lift - off. ’

‘Wouldn ’t be very popular if I did, would I ? No  -  as they used to say
back in the old days  -  we have commit. Ready or not, here I come. ’

Poole felt the need to be alone when the drive went on, and the tiny
crew  -  only four men and three women  -  respected his wish. Perhaps
they guessed how he must  be feeling, to leave Earth for the second time
in a thousand years  -  and, once again, to face an unknown destiny.

Jupiter - Lucifer was on the other side of the Sun, and the almost straight
line of Goliath ’s orbit would take them close to Venus. Poole looke d forward
to seeing, with his own unaided eyes, if Earth ’s sister planet was now
beginning to live up to that description, after centuries of terraforming.

From a thousand kilometres up, Star City looked like a gigantic metal band
around Earth ’s Equator,  dotted with gantries, pressure domes, scaffolding
holding half - completed ships, antennas, and other more enigmatic structures. It
was diminishing swiftly as Goliath headed sunwards, and presently Poole could
see how incomplete it was: there were huge gaps  spanned only by a spider ’s
web of scaffolding, which would probably never be completely enclosed.

And now they were falling below the plane of the ring; it was
midwinter in the northern hemisphere, so the slim halo of Star City was
inclined at over twenty  degrees to the Sun. Already Poole could see the
American and Asian towers, as shining threads stretching outwards and
away, beyond the blue haze of the atmosphere.

He was barely conscious of time as Goliath gained speed, moving more
swiftly than any come t that had ever fallen sunwards from interstellar space. The

Earth, almost full, still spanned his field of view, and he could now see the full

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

length of the Africa Tower which had been his home in the life he was
now leaving  -  perhaps, he could not help  thinking, leaving for ever.

When they were fifty thousand kilometres out, he was able to view the
whole of Star City, as a narrow ellipse enclosing the Earth. Though the far
side was barely visible, as a hair - line of light against the stars, it was awe -
in spiring to think that the human race had now set this sign upon the heavens.
Then Poole remembered the rings of Saturn, infinitely more glorious.
The astronautical engineers still had a long, long way to go, before they
could match the achievements of Natu re.
Or, if that was the right word, Deus.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


15 Transit of Venus

When he woke the next morning, they were already at Venus. But
the huge, dazzling crescent of the still cloud - wrapped planet was not the
most striking object in the  sky:
Goliath was floating above an endless expanse of crinkled silver foil, flashing
in the sunlight with ever - changing patterns as the ship drifted across it.

Poole remembered that in his own age there had been an artist who
had wrapped whole buildings i n plastic sheets: how he would have loved
this opportunity to package billions of tons of ice in a glittering
envelope… Only in this way could the core of a comet be protected from
evaporation on its decades - long journey sunwards.

‘You ’re in luck, Frank, ’  Chandler had told him.  ‘This is something I ’ve
never seen myself. It should be spectacular. Impact due in just over an
hour. We ’ve given it a little nudge, to make sure it comes down in the
right place. Don ’t want anyone to get hurt. ’
Poole looked at him  in astonishment.
‘You mean  -  there are already people on Venus? ’

‘About fifty mad scientists, near the South Pole. Of course, they ’re well
dug in, but we should shake them up a bit  -  even though Ground Zero is on
the other side of the planet. Or I should  say  “Atmosphere Zero ”  -  it will be
days before anything except the shockwave gets down to the surface. ’

As the cosmic iceberg, sparkling and flashing in its protective envelope,
dwindled away towards Venus, Poole was struck with a sudden, poignant
memory.  The Christmas trees of his childhood had been adorned with just such
ornaments, delicate bubbles of coloured glass. And the comparison was not
completely ludicrous: for many families on Earth, this was still the right season for
gifts, and Goliath was bri nging a present beyond price to another world.

The radar image of the tortured Venusian landscape  -  its weird volcanoes,
pancake domes, and narrow, sinuous canyons  -  dominated the main screen of
Goliath ’s control centre, but Poole preferred the evidence o f his own eyes.
Although the unbroken sea of clouds that covered the planet revealed nothing of
the inferno beneath, he wanted to see what would happen when the stolen comet

struck. In a matter of seconds, the myriad of tons of frozen hydrates that had

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

be en gathering speed for decades on the downhill run from Neptune
would deliver all their energy…
The initial flash was even brighter than he had expected. How
strange that a missile made of ice could generate temperatures that
must be in the tens of thousan ds of degrees! Though the filters of the
view - port would have absorbed all the dangerous shorter wave - lengths,
the fierce blue of the fireball proclaimed that it was hotter than the Sun.

It was cooling rapidly as it expanded  -  through yellow, orange, red…
The shockwave would now be spreading outwards at the velocity of sound
-  and what a sound that must be!  -  so in a few minutes there should be
some visible indication of its passage across the face of Venus.

And there it was! Only a tiny black ring  -  like  an insignificant puff of smoke,
giving no hint of the cyclonic fury that must be blasting its way outwards from
the point of impact. As Poole watched, it slowly expanded, though owing to its
scale there was no sense of visible movement: he had to wait for  a full minute
before he could be quite sure that it had grown larger.
After a quarter of an hour, however, it was the most prominent
marking on the planet. Though much fainter  -  a dirty grey, rather than
black  -  the shockwave was now a ragged circle more  than a thousand
kilometres across. Poole guessed that it had lost its original symmetry
while sweeping over the great mountain ranges that lay beneath it.

Captain Chandler ’s voice sounded briskly over the ship ’s address system.
‘Putting you through to Aph rodite Base. Glad to say they ’re not shouting for
help  - ’
‘ -  shook us up a bit, but just what we expected. Monitors indicate
some rain already over the Nokomis Mountains  -  it will soon evaporate,
but that ’s a beginning. And there seems to have been a flash - flood in
Hecate Chasm  -  too good to be true, but we ’re checking. There was a
temporary lake of boiling water there after the last delivery  - ’

I don ’t envy them, Poole told himself  -  but I certainly admire them.
They prove that the spirit of adventure sti ll exists in this perhaps too -
comfortable and too - well - adjusted society.

‘ -  and thanks again for bringing this little load down in the right place. With
any luck  -  and if we can get that sun - screen up into sync orbit  -  we ’ll have some
permanent seas befor e long. And then we can plant coral reefs, to make lime
and pull the excess CO2 out of the atmosphere  -  hope I live to see it! ’

I hope you do, thought Poole in silent admiration. He had often dived in the
tropical seas of Earth, admiring weird and colourf ul creatures so bizarre that it

was hard to believe anything stranger would be found, even on the planets of

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

other suns.

‘Package delivered on time, and receipt acknowledged, ’ said Captain
Chandler with obvious satisfaction.  ‘Goodbye Venus  -  Ganymede, he re
we come. ’
MISS PRINGLE
FILE WALLACE

Hello, Indra. Yes, you were quite right. I do miss our little arguments.
Chandler and I get along fine, and at first the crew treated me  -  this will
amuse you  -  rather like a holy relic. But they ’re beginning to acce pt me,
and have even started to pull my leg (do you know that idiom?).

It ’s annoying not to be able to have a real conversation  -  we ’ve
crossed the orbit of Mars, so radio round - trip is already over an hour. But
there ’s one advantage  -  you won ’t be able t o interrupt me…

Even though it will take us only a week to reach Jupiter, I thought I ’d
have time to relax. Not a bit of it: my fingers started to itch, and I couldn ’t
resist going back to school. So I ’ve begun basic training, all over again,
in one of Go liath ’s minishuttles. Maybe Dim will actually let me solo…

It ’s not much bigger than Discovery ’s pods  -  but what a difference!
First of all, of course, it doesn ’t use rockets: I can ’t get used to the luxury
of the inertial drive, and unlimited range. Coul d fly back to Earth if I had
to  -  though I ’d probably get  -  remember the phrase I used once, and you
guessed its meaning?  -   ’stir crazy ’.

The biggest difference, though, is the control system. It ’s been a big
challenge for me to get used to hands - off oper ation  -  and the computer
has had to learn to recognize my voice commands. At first it was asking
every five minutes  ‘Do you really mean that? ’ I know it would be better to
use the Braincap  -  but I ’m still not completely confident with that gadget.
Not sure  if I ’ll ever get used to something reading my mind.

By the way, the shuttle ’s called Falcon. It ’s a nice name  -  and I was
disappointed to find that no one aboard knew that it goes all the way
back to the Apollo missions, when we first landed on the Moon…

Uh - huh  -  there was a lot more I wanted to say, but the skipper is calling.

Back to the classroom  -  love and out.
STORE
TRANSMIT

Hello Frank  -  Indra calling  -  if that ’s right word!  -  on my new Thoughtwriter

-   old one had nervous breakdown ha ha  -  so be l ots of mistakes  -  no

time to edit before I send. Hope you can make sense.

COMSET! Channel one oh three  -  record from twelve thirty  -  correction  -

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

thirteen thirty. Sorry…

Hope I can get old unit fixed  -  knew all my short - cuts and abbrieves  -  maybe
should  get psychoanalysed like in your time  -  never understood how that Fraudian  -
mean Freudian ha ha  -  nonsense lasted as long as it did  -  Reminds me

-   came across late Twentieth defin other day  -  may amuse you  -
something like this  -  quote  - Psychoanalysis  -  co ntagious disease
originating Vienna circa 1900  -  now extinct in Europe but occasional
outbreaks among rich Americans. Unquote. Funny?

Sorry again  -  trouble with Thoughtwriters  -  hard to stick to point  - xz 12 € w

888 5***** js98l2yebdc DAMN… STOP BACKUP
Di d I do something wrong then? Will try again. You mentioned
Danil… sorry we always evaded your questions about him  -  knew you
were curious, but we had very good reason  -  remember you once called
him a non - person?… not bad guess…!

Once you asked me about cr ime nowadays  -  I said any such interest
pathological  -  maybe prompted by the endless sickening television programmes
of your time  -  never able to watch more than few minutes myself… disgusting!

DOOR ACKNOWLEDGE! OH, HELLO MELINDA EXCUSE SIT
DOWN NEARLY FI NISHED…

Yes  -  crime. Always some… Society ’s irreducible noise level. What to do?
Your solution  -  prisons. State - sponsored perversion factories  -  costing ten
times average family income to hold one inmate! Utterly crazy… Obviously
something very wrong with  people who shouted loudest for more prisons  -
They should be psychoanalysed! But let ’s be fair  -  really no alternative before
electronic monitoring and control perfected  -  you should see the joyful crowds
smashing the prison walls then  -  nothing like it s ince Berlin fifty years earlier!
Yes  -  Danil. I don ’t know what his crime was  -  wouldn ’t tell you if I did
-  but presume his psych profile suggested he ’d make a good  -  what was
the word?  -  ballet  -  no, valet. Very hard to get people for some jobs  -
don ’t k now how we ’d manage if crime level zero! Anyway hope he ’s
soon decontrolled and back in normal society

SORRY MELINDA NEARLY FINISHED
That ’s it, Frank  -  regards to Dimitrj  -  you must be halfway to Ganymede now

-   wonder if they ’ll ever repeal Einstein so we  can talk across space in real - time!
Hope this machine soon gets used to me. Otherwise be looking round for

genuine antique twentieth century word processor… Would you believe  -
once even mastered that QWERTYIYUIOP nonsense, which you took a
couple of hund red years to get rid of?

Love and good - bye.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

*

Hello Frank  -  here I am again. Still waiting acknowledgement of my last…
Strange you should be heading towards Ganymede, and my old friend Ted
Khan. But perhaps it ’s not such a coincidence: he was drawn by th e
same enigma that you were…

First I must tell you something about him. His parents played a dirty
trick, giving him the name Theodore. That shortens  -  don ’t ever call him
that!  -  to Theo. See what I mean?

Can ’t help wondering if that ’s what drives him.  Don ’t know anyone
else who ’s developed such an interest in religion  -  no, obsession. Better
warn you; he can be quite a bore.

By the way, how am I doing? I miss my old Thinkwriter, but seem to
be getting this machine under control. Haven ’t made any bad  -   what did
you call them?  -  bloopers  -  glitches  -  fluffs  -  so far at least  -  Not sure I
should tell you this, in case you accidentally blurt it out, but my private
nickname for Ted is  ‘The Last Jesuit ’. You must know something about
them  -  the Order was stil l very active in your time.

Amazing people  -  often great scientists  -  superb scholars  -  did a
tremendous amount of good as well as much harm. One of history ’s
supreme ironies  -  sincere and brilliant seekers of knowledge and truth,
yet their whole philosop hy hopelessly distorted by superstition…
Xuedn2k3jn deer 2leidj dwpp
Damn. Got emotional and lost control. One, two, three, four… now is
the time for all good men to come to the aid of the party… that ’s better.

Anyway, Ted has that same brand of high - mind ed determination; don ’t
get into any arguments with him  -  he ’ll go over you like a steam - roller.

By the way what were steam - rollers? Used for pressing clothes? Can
see how that could be very uncomfortable…

Trouble with Thinkwriters… too easy to go off in  all directions, no
matter how hard you try to discipline yourself… something to be said for
keyboards after all… sure I ’ve said that before…
Ted Khan… Ted Khan… Ted Khan
He ’s still famous back on Earth for at least two of his sayings:  ‘Civilization
and Re ligion are incompatible ’ and  ‘Faith is believing what you know isn ’t
true ’. Actually, I don ’t think the last one is original; if it is, that ’s the nearest he
ever got to a joke. He never cracked a smile when I tried one of my favourites
on him  -  hope you h aven ’t heard it before. It obviously dates from your time.
The Dean ’s complaining to his Faculty.  ‘Why do you scientists need such

expensive equipment? Why can ’t you be like the Maths Department, which only

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

needs a blackboard and a wastepaper basket? Bett er still, like the
Department of Philosophy. That doesn ’t even need a wastepaper basket… ’
Well, perhaps Ted had heard it before… I expect most philosophers have…

Anyway, give him my regards  -  and don ’t, repeat don ’t, get into any
arguments with him!

Love  and best wishes from Africa
Tower. TRANSCRIBE STORE
TRANSMIT POOLE

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


16 The Captain ’s Table

The arrival of such a distinguished passenger had caused a certain
disruption in the tight little world of Goliath, but the crew had ada pted to it
with good humour. Every day, at 18.00 hours, all personnel gathered for
dinner in the wardroom, which in zero - gee could hold at least thirty
people in comfort, if spread uniformly around the walls. However, most
of the time the ship ’s working ar eas were held at lunar gravity, so there
was an undeniable floor  -  and more than eight bodies made a crowd.

The semi - circular table that unfolded around the auto - chef at mealtimes
could just seat the entire seven - person crew, with the Captain at the place  of
honour. One extra created such insuperable problems that somebody now
had to eat alone for every meal. After much good - natured debate, it was
decided to make the choice in alphabetical order  -  not of proper names, which
were hardly ever used, but of ni cknames. It had taken Poole some time to get
used to them:  ‘Bolts ’ (structural engineering);  ‘Chips ’ (computers and
communications);  ‘First ’ (First Mate);  ‘Life ’ (medical and life - support systems);
‘Props ’ (propulsion and power); and  ‘Stars ’ (orbits and na vigation).
During the ten - day voyage, as he listened to the stories, jokes and
complaints of his temporary shipmates, Poole learned more about the solar
system than during his months on Earth. All aboard were obviously delighted
to have a new and perhaps n aïve listener as an attentive one - man audience,
but Poole was seldom taken in by their more imaginative stories.
Yet sometimes it was hard to know where to draw the line. No one really
believed in the Golden Asteroid, which was usually regarded as a twenty - fourth -
century hoax. But what about the Mercurian plasmoids, which had been reported
by at least a dozen reliable witnesses during the last five hundred years?

The simplest explanation was that they were related to ball - lightning,
responsible for so many   ‘Unidentified Flying Object ’ reports on Earth and
Mars. But some observers swore that they had shown purposefulness  -
even inquisitiveness  -  when they were encountered at close quarters.
Nonsense, answered the sceptics  -  merely electrostatic attraction!

Inevitably, this led to discussions about life in the Universe, and Poole found

himself  -  not for the first time  - defending his own era against its extremes of

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

credulity and scepticism. Although the  ‘Aliens are among us ’ mania had
already subsided when he  was a boy, even as late as the 2020s the Space
Agency was still plagued by lunatics who claimed to have been contacted  -
or abducted  -  by visitors from other worlds. Their delusions had been
reinforced by sensational media exploitation, and the whole synd rome was
later enshrined in the medical literature as  ‘Adamski ’s Disease ’.

The discovery of TMA ONE had, paradoxically, put an end to this sorry
nonsense, by demonstrating that though there was indeed intelligence
elsewhere, it had apparently not concerne d itself with Mankind for several million
years. TMA ONE had also convincingly refuted the handful of scientists who
argued that life above the bacterial level was such an improbable phenomenon
that the human race was alone in this Galaxy  -  if not the Cosm os.

Goliath ’s crew was more interested in the technology than the politics
and economics of Poole ’s era, and were particularly fascinated by the
revolution that had taken place in his own lifetime  -  the end of the fossil -
fuel age, triggered by the harness ing of vacuum energy. They found it
hard to imagine the smog - choked cities of the twentieth century, and the
waste, greed and appalling environmental disasters of the Oil Age.

‘Don ’t blame me, ’ said Poole, fighting back gamely after one round of
criticism .  ‘Anyway, see what a mess the twenty - first century made. ’
There was a chorus of  ‘What do you mean? ’s around the table.
‘Well, as soon as the so - called Age of Infinite Power got under way,
and everyone had thousands of kilowatts of cheap, clean energy to p lay
with  -  you know what happened! ’
‘Oh, you mean the Thermal Crisis. But that was fixed. ’
‘Eventually  -  after you ’d covered half the Earth with reflectors to
bounce the Sun ’s heat back into space. Otherwise it would have been as
parboiled as Venus by now. ’

The crew ’s knowledge of Third Millennium history was so surprisingly limited
that Poole  -  thanks to the intensive education he had received in Star City

-   could often amaze them with details of events centuries after his own
time. However, he was flatter ed to discover how well - acquainted they
were with Discovery ’s log, it had become one of the classic records of
the Space Age. They looked on it as he might have regarded a Viking
saga; often he had to remind himself that he was midway in time
between Golia th and the first ships to cross the western ocean…

‘On your Day 86, ’ Stars reminded him, at dinner on the fifth evening,

‘you passed within two thousand kay of asteroid 7794  -  and shot a probe
into it. Do you remember? ”

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘Of course I do, ’ Poole answered r ather brusquely  ‘To me, it
happened less than a year ago ’

‘Um, sorry. Well, tomorrow we ’ll be even closer to 13,445. Like to
have a look? ’ With autoguidance and freeze - frame, we should have a
window all of ten milliseconds wide. ’

A hundredth of a second!  That few minutes in Discovery had seemed
hectic enough, but now everything would happen fifty times faster.
‘How large is it? ’ Poole asked.
‘Thirty by twenty by fifteen metres, ’ Stars replied.  ‘Looks like a
battered brick. ’

‘Sorry we don ’t have a slug to  fire at it, ’ said Props.  ‘Did you ever
wonder if 7794 would hit back? ’

‘Never occurred to us. But it did give the astronomers a lot of useful
information, so it was worth the risk… Anyway, a hundredth of a second
hardly seems worth the bother. Thanks all  the same. ’

‘I understand. When you ’ve seen one asteroid, you ’ve seen
them  - ’  ‘Not true, Chips. When I was on Eros  - ’

‘As you ’ve told us at least a dozen times  - , Poole ’s mind tuned out the
discussion, so that it was a background of meaningless noise. He  was a
thousand years in the past, recalling the only excitement of Discovery ’s
mission before the final disaster. Though he and Bowman were perfectly
aware that 7794 was merely a lifeless, airless chunk of rock, that knowledge
scarcely affected their feel ings. It was the only solid matter they would meet
this side of Jupiter, and they had stared at it with the emotions of sailors on a
long sea voyage, skirting a coast on which they could not land.
It was turning slowly end over end, and there were mottled  patches of
light and shade distributed at random over its surface. Sometimes it
sparkled like a distant window, as planes or outcroppings of crystalline
material flashed in the Sun…

He remembered, also, the mounting tension as they waited to see if their  aim
had been accurate. It was not easy to hit such a small target, two thousand
kilometres away, moving at a relative velocity of twenty kilometres a second.

Then, against the darkened portion of the asteroid, there had been a sudden,
dazzling explosion o f light. The tiny slug  -  pure Uranium 238  -  had impacted at
meteoric speed: in a fraction of a second, all its kinetic energy had been
transformed into heat. A puff of incandescent gas had erupted briefly into space,
and Discovery ’s cameras were recording  the rapidly fading spectral lines, looking
for the tell - tale signatures of glowing atoms. A few hours later, back on Earth, the

astronomers learned for the first time the composition of an asteroid ’s

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

crust. There were no major surprises, but several bottl es of champagne
changed hands.

Captain Chandler himself took little part in the very democratic discussions
around his semi - circular table: he seemed content to let his crew relax and
express their feelings in this informal atmosphere. There was only one
unspoken rule: no serious business at mealtimes. If there were any technical
or operational problems, they had to be dealt with elsewhere.
Poole had been surprised  -  and a little shocked  -  to discover that the
crew ’s knowledge of Goliath ’s systems was very  superficial. Often he had
asked questions which should have been easily answered, only to be referred
to the ship ’s own memory banks. After a while, however, he realized that the
sort of in - depth training he had received in his days was no longer possible :
far too many complex systems were involved for any man or woman ’s mind to
master. The various specialists merely had to know what their equipment did,
not how. Reliability depended on redundancy and automatic checking, and
human intervention was much mor e likely to do harm than good.
Fortunately none was required on this voyage: it had been as
uneventful as any skipper could have hoped, when the new sun of
Lucifer dominated the sky ahead.
III THE WORLDS OF GALILEO
(Extract, text only, Tourist ’s Guide to O uter Solar System, v 219.3)

Even today, the giant satellites of what was once Jupiter present us
with major mysteries. Why are four worlds, orbiting the same primary
and very similar in size, so different in most other respects?

Only in the case of Io, t he innermost satellite, is there a convincing
explanation. It is so close to Jupiter that the gravitational tides constantly
kneading its interior generate colossal quantities of heat  -  so much, indeed,
that Io ’s surface is semi - molten. It is the most volc anically active world in
the Solar System; maps of Io have a half - life of only a few decades.

Though no permanent human bases have ever been established in
such an unstable environment, there have been numerous landings and
there is continuous robot monit oring. (For the tragic fate of the 2571
Expedition, see Beagle 5.)

Europa, second in distance from Jupiter, was originally entirely
covered in ice, and showed few surface features except a complicated
network of cracks. The tidal forces which dominate Io  were much less
powerful here, but produced enough heat to give Europa a global ocean

of liquid water, in which many strange life - forms have evolved.

In 2010 the Chinese ship Tsien touched down on Europa on one of the few

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

outcrops of solid rock protruding  through the crust of ice. In doing so it
disturbed a creature of the Europan abyss and was destroyed (see
Spacecraft Tsien, Galaxy, Universe).
Since the conversion of Jupiter into the mini - sun Lucifer in 2061,
virtually all of Europa ’s ice - cover has melte d, and extensive vulcanism
has created several small islands.

As is well - known, there have been no landings on Europa for almost
a thousand years, but the satellite is under continuous surveillance.

Ganymede, largest moon in the Solar System (diameter 52 60
kilometres), has also been affected by the creation of a new sun, and its
equatorial regions are warm enough to sustain terrestrial life - forms,
though it does not yet have a breathable atmosphere. Most of its
population is actively engaged in terraformi ng and scientific research;
the main settlement is Anubis (pop 41,000), near the South Pole.

Callisto is again wholly different. Its entire surface is covered by impact
craters of all sizes, so numerous that they overlap. The bombardment must
have continu ed for millions of years, for the newer craters have completely
obliterated the earlier ones. There is no permanent base on Callisto, but
several automatic stations have been established there.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


17 Ganymede

It was unusual for Fr ank Poole to oversleep, but he had been kept awake
by strange dreams. Past and present were inextricably mixed; sometimes he
was on Discovery, sometimes in the Africa Tower  -  and sometimes he was a
boy again, among friends he had thought long - forgotten.
Wh ere am I? he asked himself as he struggled up to consciousness, like a
swimmer trying to get back to the surface. There was a small window just above
his bed, covered by a curtain not thick enough to completely block the light from
outside. There had been  a time, around the mid - twentieth century, when aircraft
had been slow enough to feature First Class sleeping accommodation: Poole had
never sampled this nostalgic luxury, which some tourist organizations had still
advertised in his own day, but he could ea sily imagine that he was doing so now.

He drew the curtain and looked out. No, he had not awakened in the
skies of Earth, though the landscape unrolling below was not unlike the
Antarctic. But the South Pole had never boasted two suns, both rising at
once  as Goliath swept towards them.

The ship was orbiting less than a hundred kilometres above what
appeared to be an immense ploughed field, lightly dusted with snow. But the
ploughman must have been drunk  -  or the guidance system must have gone
crazy  -  for  the furrows meandered in every direction, sometimes cutting
across each other or turning back on themselves. Here and there the terrain
was dotted with faint circles  - ghost craters from meteor impacts aeons ago.
So this is Ganymede, Poole wondered drowsily . Mankind ’s furthest outpost
from home! Why should any sensible person want to live here? Well, I ’ve often
thought that when I ’ve flown over Greenland or Iceland in winter - time…

There was a knock on the door, a  ‘Mind if I come in? ’, and Captain
Chandler d id so without waiting for a reply.

‘Thought we ’d let you sleep until we landed  -  that end - of - trip party did
last longer than I ’d intended, but I couldn ’t risk a mutiny by cutting it short. ’
Poole laughed.
‘Has there ever been a mutiny in space? ’

‘Oh, qui te a few but not in my time. Now we ’ve mentioned the subject, you

might say that Hal started the tradition… sorry  -  perhaps I shouldn ’t  -  look  -

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

there ’s Ganymede City! ’

Coming up over the horizon was what appeared to be a criss - cross pattern of
streets a nd avenues, intersecting almost at right - angles but with the slight
irregularity typical of any settlement that had grown by accretion, without central
planning. It was bisected by a broad river  -  Poole recalled that the equatorial
regions of Ganymede were  now warm enough for liquid water to exist

-   and it reminded him of an old wood - cut he had seen of medieval London.
Then he noticed that Chandler was looking at him with an expression of

amusement… and the illusion vanished as he realized the scale of the  ‘city ’.
‘The Ganymedeans, ’ he said dryly,  ‘must have been rather large, to have
made roads five or ten kilometres wide. ’

‘Twenty in some places. Impressive, isn ’t it? And all the result of ice
stretching and contracting. Mother Nature is ingenious… I coul d show you some
patterns that look even more artificial, though they ’re not as large as this one. ’

‘When I was a boy, there was a big fuss about a face on Mars. Of
course, it turned out to be a hill that had been carved by sand - storms…
lots of similar one s in Earth ’s deserts. ’

‘Didn ’t someone say that history always repeats itself? Same sort of
nonsense happened with Ganymede City  -  some nuts claimed it had
been built by aliens. But I ’m afraid it won ’t be around much longer. ’
‘Why? ’ asked Poole in surpris e.
‘It ’s already started to collapse, as Lucifer melts the permafrost. You
won ’t recognize Ganymede in another hundred years… there ’s the edge
of Lake Gilgamesh  -  if you look carefully  -  over on the right - ’

‘I see what you mean. What ’s happening  -  surely  the water ’s not
boiling, even at this low pressure? ’

‘Electrolysis plant. Don ’t know how many skillions of kilograms of
oxygen a day. Of course, the hydrogen goes up and gets lost  -  we hope. ’

Chandler ’s voice trailed off into silence. Then he resumed, in  an
unusually diffident tone:  ‘All that beautiful water down there  -  Ganymede
doesn ’t need half of it! Don ’t tell anyone, but I ’ve been working out ways
of getting some to Venus. ’
‘Easier than nudging comets? ’
‘As far as energy is concerned, yes  -  Ganymede ’s escape velocity is
only three klicks per second. And much, much quicker  -  years instead of
decades. But there are a few practical difficulties..
‘I can appreciate that. Would you shoot it off by a mass - launcher? ’
‘Oh no  -  I ’d use towers reaching up thro ugh the atmosphere, like the ones on

Earth, but much smaller. We ’d pump the water up to the top, freeze it down to

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

near absolute zero, and let Ganymede sling it off in the right direction as
it rotated. There would be some evaporation loss in transit, but  most of it
would arrive  -  what ’s so funny? ’
‘Sorry  -  I ’m not laughing at the idea  -  it makes good sense. But
you ’ve brought back such a vivid memory. We used to have a garden
sprinkler  -  driven round and round by its water jets. What you ’re planning
is th e same thing  -  on a slightly bigger scale… using a whole world… ’

Suddenly, another image from his past obliterated all else. Poole
remembered how, in those hot Arizona days, he and Rikki had loved to
chase each other through the clouds of moving mist, fro m the slowly
revolving spray of the garden sprinkler.

Captain Chandler was a much more sensitive man than he pretended to be:

he knew when it was time to leave.
‘Gotta get back to the bridge, ’ he said gruffly.  ‘See you when we land
at Anubis. ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: Th e Final  Odyssey


18 Grand Hotel

The Grand Ganymede Hotel  -  inevitably known throughout the Solar
System as  ‘Hotel Grannymede ’ was certainly not grand, and would be
lucky to get a rating of one - and - a - half stars on Earth. As the nearest
competition was sev eral hundred million kilometres away, the
management felt little need to exert itself unduly.

Yet Poole had no complaints, though he often wished that Danil was
still around, to help him with the mechanics of life and to communicate
more efficiently with  the semi - intelligent devices with which he was
surrounded. He had known a brief moment of panic when the door had
closed behind the (human) bellboy, who had apparently been too awed
by his guest to explain how any of the room ’s services functioned. After
f ive minutes of fruitless talking to the unresponsive walls, Poole had
finally made contact with a system that understood his accent and his
commands. What an  ‘All Worlds ’ news item it would have made  -
‘Historic astronaut starves to death, trapped in Ganym ede hotel room ’!

And there would have been a double irony. Perhaps the naming of
the Grannymede ’s only luxury suite was inevitable, but it had been a real
shock to meet an ancient life - size holo of his old shipmate, in full - dress
uniform, as he was led in to  -  the Bowman Suite. Poole even recognized
the image: his own official portrait had been made at the same time, a
few days before the mission began.

He soon discovered that most of his Goliath crewmates had domestic
arrangements in Anubis, and were anxi ous for him to meet their Significant
Others during the ship ’s planned twenty - day stop. Almost immediately he
was caught up in the social and professional life of this frontier settlement,
and it was Africa Tower that now seemed a distant dream.

Like many  Americans, in their secret hearts, Poole had a nostalgic affection
for small communities where everyone knew everyone else  -  in the real world,
and not the virtual one of cyberspace. Anubis, with a resident population less
than that of his remembered Flag staff, was not a bad approximation to this ideal.

The three main pressure domes, each two kilometres in diameter, stood

on a plateau overlooking an ice - field which stretched unbroken to the horizon.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Ganymede ’s second sun

-   once known as Jupiter  -  would ne ver give sufficient heat to melt the
polar caps. This was the principal reason for establishing Anubis in such
an inhospitable spot: the city ’s foundations were not likely to collapse for
at least several centuries.

And inside the domes, it was easy to be  completely indifferent to the
outside world. Poole, when he had mastered the mechanisms of the Bowman
Suite, discovered that he had a limited but impressive choice of environments.
He could sit beneath palm trees on a Pacific beach, listening to the gentl e
murmur of the waves  -  or, if he preferred, the roar of a tropical hurricane. He
could fly slowly along the peaks of the Himalayas, or down the immense
canyons of Mariner Valley. He could walk through the gardens of Versailles or
down the streets of half  a dozen great cities, at several widely spaced times in
their history. Even if the Hotel Grannymede was not one of the Solar System ’s
most highly acclaimed resorts, it boasted facilities which would have
astounded all its more famous predecessors on Earth.
But it was ridiculous to indulge in terrestrial nostalgia, when he had
come half - way across the Solar System to visit a strange new world.
After some experimenting, Poole arranged a compromise, for enjoyment
-  and inspiration  -  during his steadily fewer m oments of leisure.

To his great regret, he had never been to Egypt, so it was delightful to
relax beneath the gaze of the Sphinx  -  as it was before its controversial
‘restoration ’  -  and to watch tourists scrambling up the massive blocks of the
Great Pyram id. The illusion was perfect, apart from the no - man ’s - land where
the desert clashed with the (slightly worn) carpet of the Bowman Suite.
The sky, however, was one that no human eyes had seen until five
thousand years after the last stone was laid at Giza.  But it was not an
illusion; it was the complex and ever - changing reality of Ganymede.

Because this world  -  like its companions  -  had been robbed of its spin
aeons ago by the tidal drag of Jupiter, the new sun born from the giant
planet hung motionless in  its sky. One side of Ganymede was in perpetual
Lucifer - light  -  and although the other hemisphere was often referred to as
the  ‘Night Land ’, that designation was as misleading as the much earlier
phrase  ‘The dark side of the Moon ’. Like the lunar Farside, G anymede ’s
‘Night Land ’ had the brilliant light of old Sol for half of its long day.

By a coincidence more confusing than useful, Ganymede took almost exactly
one week  -  seven days, three hours  - to orbit its primary. Attempts to create a
‘One Mede day = on e Earth week ’ calendar had generated so much chaos that

they had been abandoned centuries ago. Like all the other residents of the Solar

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

System, the locals employed Universal Time, identifying their twenty -
four - hour standard days by numbers rather than na mes.

Since Ganymede ’s newborn atmosphere was still extremely thin and
almost cloudless, the parade of heavenly bodies provided a never -
ending spectacle. At their closest, Io and Callisto each appeared about
half the size of the Moon as seen from Earth  -  b ut that was the only thing
they had in common. Io was so close to Lucifer that it took less than two
days to race around its orbit, and showed visible movement even in a
matter of minutes. Callisto, at over four times Io ’s distance, required two
Mede days  -  or sixteen Earth ones  -  to complete its leisurely circuit.

The physical contrast between the two worlds was even more remarkable.
Deep - frozen Callisto had been almost unchanged by Jupiter ’s conversion into a
mini - sun: it was still a wasteland of shallow  ice craters, so closely packed that
there was not a single spot on the entire satellite that had escaped from multiple
impacts, in the days when Jupiter ’s enormous gravity field was competing with
Saturn ’s to gather up the debris of the outer Solar System . Since then, apart from
a few stray shots, nothing had happened for several billion years.

On Io, something was happening every week. As a local wit had remarked,
before the creation of Lucifer it had been Hell  -  now it was Hell warmed up.

Often, Poole  would zoom into that burning landscape and look into the
sulphurous throats of volcanoes that were continually reshaping an area larger
than Africa. Sometimes incandescent fountains would soar briefly hundreds of
kilometres into space, like gigantic trees  of fire growing on a lifeless world.

As the floods of molten sulphur spread out from volcanoes and vents, the
versatile element changed through a narrow spectrum of reds and oranges
and yellows when, chameleon - like, it was transformed into its vari - colour ed
allotropes. Before the dawn of the Space Age, no one had ever imagined that
such a world existed. Fascinating though it was to observe it from his
comfortable vantage point, Poole found it hard to believe that men had ever
risked landing there, where ev en robots feared to tread… His main interest,
however, was Europa, which at its closest appeared almost exactly the same
size as Earth ’s solitary Moon, but raced through its phases in only four days.
Though Poole had been quite unconscious of the symbolism  when he chose
his private landscape, it now seemed wholly appropriate that Europa should
hang in the sky above another great enigma  -  the Sphinx.
Even with no magnification, when he requested the naked - eye view, Poole
could see how greatly Europa had chan ged in the thousand years since
Discovery had set out for Jupiter. The spider ’s web of narrow bands and lines

that had once completely enveloped the smallest of the four Galilean satellites

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

had vanished, except around the poles. Here the global crust of k ilometre -
thick ice remained unmelted by the warmth of Europa ’s new sun:
elsewhere, virgin oceans seethed and boiled in the thin atmosphere, at
what would have been comfortable room temperature on Earth.

It was also a comfortable temperature to the creatur es who had
emerged, after the melting of the unbroken ice shield that had both trapped
and protected them. Orbiting spysats, showing details only centimetres
across, had watched one Europan species starting to evolve into an
amphibious stage: though they s till spent much of their time underwater,
the  ‘Europs ’ had even begun the construction of simple buildings.

That this could happen in a mere thousand years was astonishing, but no
one doubted that the explanation lay in the last and greatest of the Monoli ths  -
the many - kilometre - long  ‘Great Wall ’ standing on the shore of the Sea of Galilee.

And no one doubted that, in its own mysterious way, it was watching
over the experiment it had started on this world  -  as it had done on Earth
four million years befor e.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


19 The Madness of Mankind

MISS PRINGLE

FILE INDRA
My dear Indra  -  sorry I ’ve not even voice - mailed you before  -  usual
excuse, of course, so I won ’t bother to give it.

To answer your question  -  yes, I ’m now feeling quite at  home at the
Grannymede, but am spending less and less time there, though I ’ve been
enjoying the sky display I ’ve had piped into my suite. Last night the Io flux -
tube put on a fine performance  -  that ’s a kind of lightning discharge between
Io and Jupiter  -  I mean Lucifer. Rather like Earth ’s aurora, but much more
spectacular. Discovered by the radio astronomers even before I was born.
And talking about ancient times  -  did you know that Anubis has a
Sheriff? I think that ’s overdoing the frontier spirit. Remi nds me of the
stories my grandfather used to tell me about Arizona… Must try some of
them on the Medes…

This may sound silly  -  I ’m still not used to being in the Bowman Suite.
I keep looking over my shoulder…

How do I spend my time? Much the same as in A frica Tower. I ’m
meeting the local intelligentsia, though as you might expect they ’re
rather thin on the ground (hope no one is bugging this). And I ’ve
interacted  -  real and virtual  -  with the educational system  -  very good, it
seems, though more technical ly oriented than you ’d approve. That ’s
inevitable, of course, in this hostile environment…

But it ’s helped me to understand why people live here. There ’s a
challenge  -  a sense of purpose, if you like  -  that I seldom found on Earth.

It ’s true that most of  the Medes were born here, so don ’t know any other
home. Though they ’re  -  usually  -  too polite to say so, they think that the
Home Planet is becoming decadent. Are you? And if so, what are you
Terries  -  as the locals call you  -  going to do about it? One of  the teenage
classes I ’ve met hopes to wake you up. They ’re drawing up elaborate Top
Secret plans for the Invasion of Earth. Don ’t say I didn ’t warn you…

I ’ve made one trip outside Anubis, into the so - called Night Land, where they

never see Lucifer. Ten o f us  - Chandler, two of Goliath ’s crew, six Medes  -  went

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

into Farside, and chased the Sun down to the horizon so it really was
night. Awesome  -  much like polar winters on Earth, but with the sky
completely black… almost felt I was in space.

We could see a ll the Galileans beautifully, and watched Europa eclipse  -
sorry, occult  -  Io. Of course, the trip had been timed so we could observe this…

Several of the smaller satellites were just also visible, but the double
star Earth - Moon was much more conspicuous.  Did I feel homesick?
Frankly, no  -  though I miss my new friends back there…

And I ’m sorry  -  I still haven ’t met Dr Khan, though he ’s left several
messages for me. I promise to do it in the next few days  -  Earth days,
not Mede ones!

Best wishes to Joe  -   regards to Danil, if you know what ’s happened
to him  -  is he a real person again?  -  and my love to yourself.
STORE TRANSMIT
Back in Poole ’s century, a person ’s name often gave a clue to his/her
appearance, but that was no longer true thirty generations lat er. Dr
Theodore Khan turned out to be a Nordic blond who might have looked
more at home in a Viking longboat than ravaging the steppes of Central
Asia: however, he would not have been too impressive in either role, being
less than a hundred and fifty centi metres tall. Poole could not resist a little
amateur psychoanalysis: small people were often aggressive over -
achievers  -  which, from Indra Wallace ’s hints, appeared to be a good
description of Ganymede ’s sole resident philosopher. Khan probably
needed thes e qualifications, to survive in such a practically - minded society.

Anubis City was far too small to boast a university campus  -  a luxury
which still existed on the other worlds, though many believed that the
telecommunications revolution had made it obsol ete. Instead, it had
something much more appropriate, as well as centuries older  -  an
Academy, complete with a grove of olive trees that would have fooled
Plato himself, until he had attempted to walk through it. Indra ’s joke
about departments of philosoph y requiring no more equipment than
blackboards clearly did not apply in this sophisticated environment.

‘It ’s built to hold seven people, ’ said Dr Khan proudly, when they had
settled down on chairs obviously designed to be not - too - comfortable,
‘because th at ’s the maximum one can efficiently interact with. And, if you
count the ghost of Socrates, it was the number present when Phaedo
delivered his famous address… ’

‘The one on the immortality of the soul? ’
Khan was so obviously surprised that Poole could not  help laughing.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘I took a crash course in philosophy just before I graduated  -  when
the syllabus was planned, someone decided that we hairy - knuckled
engineers should be exposed to a little culture. ’
‘I ’m delighted to hear it. That makes things so much eas ier. You
know  -  I still can ’t credit my luck. Your arrival here almost tempts me to
believe in miracles! I ’d even thought of going to Earth to meet you  -  has
dear Indra told you about my  -  ah  -  obsession? ’
‘No, ’ Poole answered, not altogether truthfully.
D r Khan looked very pleased; he was clearly delighted to find a new
audience.

‘You may have heard me called an atheist, but that ’s not quite true.
Atheism is unprovable, so uninteresting. Equally, however unlikely it is, we
can never be certain that God on ce existed  -  and has now shot off to infinity,
where no one can ever find him… Like Gautama Buddha, I take no position
on this subject. My field of interest is the psychopathology known as Religion. ’
‘Psychopathology? That ’s a harsh judgement. ’

‘Amply jus tified by history. Imagine that you ’re an intelligent
extraterrestrial, concerned only with verifiable truths. You discover a
species which has divided itself into thousands  -  no by now millions  -  of
tribal groups holding an incredible variety of beliefs a bout the origin of
the universe and the way to behave in it. Although many of them have
ideas in common, even when there ’s a ninety - nine per cent overlap, the
remaining one per cent is enough to set them killing and torturing each
other, over trivial point s of doctrine, utterly meaningless to outsiders. ’

‘How to account for such irrational behaviour? Lucretius hit it on the
nail when he said that religion was the by - product of fear  -  a reaction to a
mysterious and often hostile universe. For much of human  prehistory, it
may have been a necessary evil  -  but why was it so much more evil than
necessary  -  and why did it survive when it was no longer necessary?

‘I said evil  -  and I mean it, because fear leads to cruelty. The slightest
knowledge of the Inquisiti on makes one ashamed to belong to the
human species… One of the most revolting books ever published was
the Hammer of Witches, written by a couple of sadistic perverts and
describing the tortures the Church authorized  -  encouraged!  -  to extract
“confession s ” from thousands of harmless old women, before it burned
them alive… The Pope himself wrote an approving foreword! ’

‘But most of the other religions, with a few honourable exceptions, were just
as bad as Christianity… Even in your century, little boys we re kept chained and

whipped until they ’d memorized whole volumes of pious gibberish, and robbed

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

of their childhood and manhood to become monks… ’

‘Perhaps the most baffling aspect of the whole affair is how obvious
madmen, century after century, would pro claim that they  -  and they alone!  -
had received messages from God. If all the messages had agreed, that
would have settled the matter. But of course they were wildly discordant  -
which never prevented self - styled messiahs from gathering hundreds  -
sometim es millions  -  of adherents, who would fight to the death against
equally deluded believers of a microscopically differing faith. ’

Poole thought it was about time he got a word in edgeways.
‘You ’ve reminded me of something that happened in my home - town whe n
I was a kid. A holy man  -  quote, unquote  -  set up shop, claimed he could work
miracles  -  and collected a crowd of devotees in next to no time. And they
weren ’t ignorant or illiterate; often they came from the best families. Every
Sunday I used to see exp ensive cars parked round his  -  ah  -  temple. ’
‘The  “Rasputin Syndrome ”, it ’s been called: there are millions of such
cases, all through history, in every country. And about one time in a thousand
the cult survives for a couple of generations. What happened  in this case? ’
‘Well, the competition was very unhappy, and did its best to discredit
him. Wish I could remember his name  -  he used a long Indian one  -
Swami something - or - other  -  but it turned out he came from Alabama.
One of his tricks was to produce holy  objects out of thin air, and hand
them to his worshippers. As it happened, our local rabbi was an amateur
conjuror, and gave public demonstrations showing exactly how it was
done. Didn ’t make the slightest difference  -  the faithful said that their
man ’s m agic was real, and the rabbi was just jealous. ’

‘At one time, I ’m sorry to say, Mother took the rascal seriously  -  it was
soon after Dad had run off, which may have had something to do with it  -
and dragged me to one of his sessions. I was only about ten,  but I
thought I ’d never seen anyone so unpleasant - looking. He had a beard
that could have held several birds ’ nests, and probably did. ’
‘He sounds like the standard model. How long did he flourish? ’
‘Three or four years. And then he had to leave town in a  hurry: he
was caught running teenage orgies. Of course, he claimed he was using
mystical soul - saving techniques. And you won ’t believe this  - ,
‘Try me. ’
‘Even then, lots of his dupes still had faith in him. Their god could do
no wrong, so he must have bee n framed. ’

‘Framed? ’
‘Sorry  -  convicted by faked evidence  -  sometimes used by the police to catch

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

criminals, when all else fails. ’

‘Hmm. Well, your swami was perfectly typical: I ’m rather
disappointed. But he does help to prove my case  - that most of huma nity
has always been insane, at least some of the time. ’
‘Rather an unrepresentative sample  -  one small Flagstaff suburb. ’
‘True, but I could multiply it by thousands  -  not only in your century,
but all down the ages. There ’s never been anything, however a bsurd,
that countless people weren ’t prepared to believe, often so passionately
that they ’d fight to the death rather than abandon their illusions. To me,
that ’s a good operational definition of insanity. ’

‘Would you argue that anyone with strong religiou s beliefs was insane? ’

‘In a strictly technical sense, yes  -  if they really were sincere, and not
hypocrites. As I suspect ninety per cent were. ’

‘I ’m certain that Rabbi Berenstein was sincere  -  and he was one of
the sanest men I ever knew, as well as on e of the finest. And how do
you account for this? The only real genius I ever met was Dr Chandra,
who led the HAL project. I once had to go into his office  -  there was no
reply when I knocked, and I thought it was unoccupied. ’

‘He was praying to a group o f fantastic little bronze statues, draped
with flowers. One of them looked like an elephant… another had more
than the regular number of arms… I was quite embarrassed, but luckily
he didn ’t hear me and I tiptoed out. Would you say he was insane? ’

‘You ’ve  chosen a bad example: genius often is! So let ’s say: not insane,
but mentally impaired, owing to childhood conditioning. The Jesuits claimed:
“Give me a boy for six years, and he is mine for life. ” If they ’d got hold of little
Chandra in time, he ’d have be en a devout Catholic  -  not a Hindu. ’
‘Possibly. But I ’m puzzled  -  why were you so anxious to meet me? I ’m
afraid I ’ve never been a devout anything. What have I got to do with all this? ’
Slowly, and with the obvious enjoyment of a man unburdening
himself of  a heavy, long - hoarded secret, Dr Khan told him.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Ody ssey


20 Apostate

RECORD POOLE

Hello, Frank… So you ’ve finally met Ted. Yes, you could call him a crank  -
if you define that as an enthusiast with no sense of humour. But cranks often
get that way because they know a Big Truth  -  can, you hear my capitals?
-   and no one will listen… I ’m glad you did  -  and I suggest you take
him quite seriously.

You said you were surprised to see a Pope ’s portrait prominently
displayed in Ted ’s apartment.  That would have been his hero, Pius XX  -  I ’m
sure I mentioned him to you. Look him up  -  he ’s usually called the Impius!
It ’s a fascinating story, and exactly parallels something that happened just
before you were born. You must know how Mikhail Gorbachev,  the
President of the Soviet Empire, brought about its dissolution at the end of
the twentieth century, by exposing its crimes and excesses.

He didn ’t intend to go that far  -  he ’d hoped to reform it, but that was
no longer possible. We ’ll never know if Piu s XX had the same idea,
because he was assassinated by a demented cardinal soon after he ’d
horrified the world by releasing the secret files of the Inquisition…

The religious were still shaken by the discovery of TMA ZERO only a
few decades earlier  -  that  had a great impact on Pius XX, and certainly
influenced his actions…

But you still haven ’t told me how Ted, that old cryptoDeist, thinks you
can help him in his search for God. I believe he ’s still mad at him for
hiding so successfully. Better not say I  told you that.

On second thoughts, why
not? Love  -  Indra.

STORE
TRANSMIT
MISS PRINGLE
RECORD
Hello  -  Indra  -  I ’ve had another session with Dr Ted, though I ’ve still
not told him just why you think he ’s angry with God!

But I ’ve had some very interesting  arguments  -  no, dialogues  -  with him,

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

though he does most of the talking. Never thought I ’d get into philosophy
again after all these years of engineering. Perhaps I had to go through
them first, to appreciate it. Wonder how he ’d grade me as a student?

Y esterday I tried this line of approach, to see his reaction. Perhaps it ’s
original, though I doubt it. Thought you ’d like to hear it  -  will be interested in
your comments. Here ’s our discussion  - MISS PRINGLE COPY AUDIO 94.

‘Surely, Ted, you can ’t deny tha t most of the greatest works of human art
have been inspired by religious devotion. Doesn ’t that prove something? ’
‘Yes  -  but not in a way that will give much comfort to any believers! From
time to time, people amuse themselves making lists of the Biggests  and
Greatests and Bests  -  I ’m sure that was a popular entertainment in your day. ’
‘It certainly was. ’

‘Well, there have been some famous attempts to do this with the arts.
Of course such lists can ’t establish absolute  -  eternal  -  values, but
they ’re inte resting and show how tastes change from age to age. ’

‘The last list I saw  -  it was on the Earth Artnet only a few years ago  -
was divided into Architecture, Music, Visual Arts… I remember a few of the
examples… the Parthenon, the Taj Mahal… Bach ’s Toccata  and Fugue
was first in music, followed by Verdi ’s Requiem Mass. In art  -  the Mona
Lisa, of course. Then  -  not sure of the order  -  a group of Buddha statues
somewhere in Ceylon, and the golden death - mask of young King Tut.

‘Even if I could remember all th e others  -  which of course I can ’t  -  it doesn ’t
matter: the important thing is their cultural and religious backgrounds. Overall,
no single religion dominated  -  except in music. And that could be due to a
purely technological accident: the organ and the ot her pre - electronic musical
instruments were perfected in the Christianized West. It could have worked
out quite differently… if, for example, the Greeks or the Chinese had regarded
machines as something more than toys.
‘But what really settles the argument , as far as I ’m concerned, is the
general consensus about the single greatest work of human art. Over and
over again, in almost every listing  -  it ’s Angkor Wat. Yet the religion that
inspired that has been extinct for centuries  -  no one even knows precisel y
what it was, except that it involved hundreds of gods, not merely one! ’

‘Wish I could have thrown that at dear old Rabbi Berenstein  -  I ’m sure
he ’d have had a good answer. ’

‘I don ’t doubt it. I wish I could have met him myself. And I ’m glad he
never li ved to see what happened to Israel. ’

END AUDIO.
There you have it, Indra. Wish the Grannymede had Angkor Wat on its menu

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

-  I ’ve never seen it  -  but you can ’t have everything…

Now, the question you really wanted answered… why is Dr Ted so
delighted that I ’m here?

As you know, he ’s convinced that the key to many mysteries lies on
Europa  -  where no one has been allowed to land for a thousand years.

He thinks I may be an exception. He believes I have a friend there.
Yes  -  Dave Bowman, or whatever he ’s now b ecome…

We know that he survived being drawn into the Big Brother Monolith  -  and
somehow revisited Earth afterwards. But there ’s more, that I didn ’t know. Very
few people do, because the Medes are embarrassed to talk about it…
Ted Khan has spent years coll ecting the evidence, and is now quite certain of
the facts  -  even though he can ’t explain them. On at least six occasions, about a
century apart, reliable observers here in Anubis have reported seeing an  -
apparition  -  just like the one that Heywood Floyd  met aboard Discovery. Though
not one of them knew about that incident, they were all able to identify Dave
when they were shown his hologram. And there was another sighting aboard a
survey ship that made a close approach to Europa, six hundred years ago…

Individually, no one would take these cases seriously  -  but altogether
they make a pattern. Ted ’s quite sure that Dave Bowman survives in
some form, presumably associated with the Monolith we call the Great
Wall. And he still has some interest in our affai rs.

Though he ’s made no attempt at communication, Ted hopes we can
make contact. He believes that I ’m the only human who can do it…

I ’m still trying to make up my mind. Tomorrow, I ’ll talk it over with
Captain Chandler. Will let you know what we decide.  Love, Frank.
STORE
TRANSMIT INDRA

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


21 Quarantine

‘Do you believe in ghosts, Dim? ’

‘Certainly not: but like every sensible man, I ’m afraid of them. Why do
you ask? ’

‘If it wasn ’t a ghost, it was the most vivid dream I ’ve ever h ad. Last
night I had a conversation with Dave Bowman. ’

Poole knew that Captain Chandler would take him seriously, when
the occasion required; nor was he disappointed.

‘Interesting  -  but there ’s an obvious explanation. You ’ve been living here in
the Bowma n Suite, for Deus ’s sake! You told me yourself it feels haunted. ’
‘I ’m sure  -  well, ninety - nine per cent sure  -  that you ’re right, and the
whole thing was prompted by the discussions I ’ve been having with Prof.
Ted. Have you heard the reports that Dave Bow man occasionally
appears in Anubis? About once every hundred years? Just as he did to
Dr Floyd aboard Discovery, after she ’d been reactivated. ’

‘What happened there? I ’ve heard vague stories, but never taken
them seriously. ’

‘Dr Khan does  -  and so do I  -  I ’ve seen the original recordings.
Floyd ’s sitting in my old chair when a kind of dust - cloud forms behind
him, and shapes itself into Dave  -  though only the head has detail. Then
it gives that famous message, warning him to leave. ’

‘Who wouldn ’t have? Bu t that was a thousand years ago. Plenty of
time to fake it. ’

‘What would be the point? Khan and I were looking at it yesterday. I ’d
bet my life it ’s authentic. ’

‘As a matter of fact, I agree with you. And I have heard those reports… ’
Chandler ’s voice tra iled away, and he looked slightly embarrassed.

‘Long time ago, I had a girl - friend here in Anubis. She told me that
her grandfather had seen Bowman. I laughed. ’

‘I wonder if Ted has that sighting on his list. Could you put him in
touch with your friend? ’

‘Er  -  rather not. We haven ’t spoken for years. For all I know, she may

be on the Moon, or Mars… Anyway, why is Professor Ted interested? ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘That ’s what I really wanted to discuss with
you. ’  ‘Sounds ominous. Go ahead, ’

‘Ted thinks that Dave Bowman  -  or w hatever he ’s become  -  may still
exist  -  up there on Europa. ’
‘After a thousand years? ’
‘Well  -  look at me. ’

‘One sample is poor statistics, my maths prof. used to say. But go on. ’

‘It ’s a complicated story  -  or maybe a jigsaw, with most of the pieces
mis sing. But it ’s generally agreed that something crucial happened to our
ancestors when that Monolith appeared in Africa, four million years ago.
It marks a turning point in prehistory  -  the first appearance of tools  -  and
weapons  -  and religion… That can ’t  be pure coincidence. The Monolith
must have done something to us  -  surely it couldn ’t have just stood
there, passively accepting worship… ’

‘Ted ’s fond of quoting a famous palaeontologist who said  “TMA ZERO gave
us an evolutionary kick in the pants ”. He ar gues that the kick wasn ’t in a wholly
desirable direction. Did we have to become so mean and nasty to survive?
Maybe we did… As I understand him, Ted believes that there ’s something
fundamentally wrong with the wiring of our brains, which makes us incapabl e of
consistent logical thinking. To make matters worse, though all creatures need a
certain amount of aggressiveness to survive, we seem to have far more than is
absolutely necessary. And no other animal tortures its fellows as we do. Is this an
evolution ary accident  -  a piece of genetic bad luck?

‘It ’s also widely agreed that TMA ONE was planted on the Moon to
keep track of the project  -  experiment  -  whatever it was  -  and to report to
Jupiter  -  the obvious place for Solar System Mission Control. That ’s w hy
another Monolith  -  Big Brother  -  was waiting there. Had been waiting four
million years, when Discovery arrived. Agreed so far? ’
‘Yes; I ’ve always thought that was the most plausible theory. ’
‘Now for the more speculative stuff. Bowman was apparently sw allowed
up by Big Brother, yet something of his personality seems to have survived.
Twenty years after that encounter with Heywood Floyd in the second Jupiter
expedition, they had another contact aboard Universe, when Floyd joined it for
the 2061 rendezvou s with Halley ’s Comet. At least, so he tells us in his
memoirs  -  though he was well over a hundred when he dictated them. ’
‘Could have been senile. ’

‘Not according to all the contemporary accounts! Also  -  perhaps even more
significant  -  his grandson Chris  had some equally weird experiences when

Galaxy made its forced landing on Europa. And, of course, that ’s where the

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Monolith  -  or a Monolith  -  is, right now! Surrounded by Europans… ’

‘I ’m beginning to see what Dr Ted ’s driving at. This is where we came
i n  -  the whole cycle ’s starting over again. The Europs are being groomed
for stardom. ’

‘Exactly  -  everything fits. Jupiter ignited to give them a sun, to thaw
out their frozen world. The warning to us to keep our distance  -
presumably so that we wouldn ’t i nterfere with their development… ’

‘Where have I heard that idea before? Of course, Frank  -  it goes back
a thousand years  -  to your own time!  “The Prime Directive ”! We still get
lots of laughs from those old Star Trek programmes. ’

‘Did I ever tell you I o nce met some of the actors? They would have
been surprised to see me now… And I ’ve always had two thoughts about
that non - interference policy. The Monolith certainly violated it with us, back
there in Africa. One might argue that did have disastrous result s… ’

‘So better luck next time  -  on Europa! ’ Poole laughed, without much
humour.  ‘Khan used those exact words. ’

‘And what does he think we should do about it? Above all  -  where do
you come into the picture? ’

‘First of all, we must find what ’s really happ ening on Europa  -  and
why. Merely observing it from space is not enough. ’

‘What else can we do? All the probes the Medes have sent there
were blown up, just before landing. ’

‘And ever since the mission to rescue Galaxy, crew - carrying ships have
been dive rted by some field of force, which no one can figure out. Very
interesting: it proves that whatever is down there is protective, but not
malevolent. And  -  this is the important point  -  it must have some way of
scanning what ’s on the way. It can distinguish  between robots and humans. ’
‘More than I can do, sometimes. Go on. ’

‘Well, Ted thinks there ’s one human being who might make it down to
the surface of Europa  -  because his old friend is there, and may have
some influence with the  ‘powers - that - be. ’
Captai n Dimitri Chandler gave a long, low whistle.
‘And you ’re willing to risk it? ’
‘Yes: what have I got to lose? ’

‘One valuable shuttle craft, if I know what you have in mind. Is that
why you ’ve been learning to fly Falcon? ’
‘Well, now that you mention it… th e idea had occurred to me. ’

‘I ’ll have to think it over  -  I ’ll admit I ’m intrigued, but there are lots of
problems. ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘Knowing you, I ’m sure they won ’t stand in the way  -  once you ’ve
decided to help me. ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


22 Venture

MISS PRINGLE  LIST PRIORITY MESSAGES FROM
EARTH RECORD

Dear Indra  -  I ’m not trying to be dramatic, but this may be my last message
from Ganymede. By the time you receive it, I will be on my way to Europa.

Though it ’s a sudden decision  -  and no one is more surprised t han I am
-  I ’ve thought it over very carefully. As you ’ll have guessed, Ted Khan is
largely responsible… let him do the explaining, if I don ’t come back. Please
don ’t misunderstand me  -  in no way do I regard this as a suicide mission!
But I ’m ninety per ce nt convinced by Ted ’s arguments, and he ’s aroused
my curiosity so much that I ’d never forgive myself if I turned down this
once - in - a - lifetime opportunity. Maybe I should say once in two lifetimes…

I ’m flying Goliath ’s little one - person shuttle Falcon  -  ho w I ’d have loved
to demonstrate her to my old colleagues back at the Space Administration!
Judging by past records, the most likely outcome is that I ’ll be diverted
away from Europa before I can land. Even this will teach me something…

And if it  -  presuma bly the local Monolith, the Great Wall  -  decides to
treat me like the robot probes it ’s zapped in the past, I ’ll never know.
That ’s a risk I ’m prepared to take.

Thank you for everything, and my very best to Joe. Love from
Ganymede  -  and soon, I hope, from  Europa.
STORE
TRANSMIT
IV THE KINGDOM OF SULPHUR

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


23 Falcon

‘Europa ’s about four hundred thousand kay from Ganymede at the
moment, ’ Captain Chandler informed Poole.

‘If you stepped on the gas  -  thanks for teaching me that phra se!  -
Falcon could get you there in an hour. But I wouldn ’t recommend it: our
mysterious friend might be alarmed by anyone coming in that fast. ’

‘Agreed and I want time to think. I ’m going to take several hours, at least.

And I ’m still hoping… ’ Poole ’s v oice trailed off into silence.
‘Hoping what? ’

‘That I can make some sort of contact with Dave, or whatever it is,
before I attempt to land. ’

‘Yes, it ’s always rude to drop in uninvited  -  even with people you
know, let alone perfect strangers like the Eur ops. Perhaps you should
take some gifts  -  what did the old - time explorers use? I believe mirrors
and beads were once popular. ’

Chandler ’s facetious tone did not disguise his real concern, both for
Poole and for the valuable piece of equipment he proposed  to borrow  -
and for which the skipper of Goliath was ultimately responsible.

‘I ’m still trying to decide how we work this. If you come back a hero, I
want to bask in your reflected glory. But if you lose Falcon as well as
yourself, what shall I say? That  you stole the shuttle while we weren ’t
looking? I ’m afraid no one would buy that story. Ganymede Traffic
Control ’s very efficient  -  has to be! If you left without advance notice,
they ’d be on to you in a microsec  -  well, a millisecond. No way you could
lea ve unless I file your flight - plan ahead of time. ’

‘So this is what I propose to do, unless I think of something better. ’
‘You ’re taking Falcon out for a final qualification test  -  everyone
knows you ’ve already soloed. You ’ll go into a two - thousand - kilomet re -
high orbit above Europa  -  nothing unusual about that  -  people do it all
the time, and the local authorities don ’t seem to object. ’

‘Estimated total flight time five hours plus or minus ten minutes. If you
suddenly change your mind about coming home, no  one can do anything about it

-  at least, no one on Ganymede. Of course, I ’ll make some indignant noises, and

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

say how astonished I am by such gross navigational errors, etc.,  etc.
Whatever will look best in the subsequent Court of Enquiry. ’
‘Would it come  to that? I don ’t want to do anything that will get you
into trouble. ’

‘Don ’t worry  -  it ’s time there was a little excitement round here. But
only you and I know about this plot; try not to mention it to the crew  -  I
want them to have  -  what was that othe r useful expression you taught
me?  -   “plausible deniability ”. ’

‘Thanks, Dim  -  I really appreciate what you ’re doing. And I hope you ’ll
never have to regret hauling me aboard Goliath, out round Neptune. ’

Poole found it hard to avoid arousing suspicion, by  the way he
behaved towards his new crewmates as they prepared Falcon for what
was supposed to be a short, routine flight. Only he and Chandler knew
that it might be nothing of the kind.

Yet he was not heading into the totally unknown, as he and Dave
Bowm an had done a thousand years ago. Stored in the shuttle ’s memory
were high - resolution maps of Europa showing details down to a few metres
across. He knew exactly where he wished to go; it only remained to see if
he would be allowed to break the centuries - l ong quarantine.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


24 Escape

‘Manual control, please. ’

‘Are you sure, Frank? ’
‘Quite sure, Falcon… Thank you. ’

Illogical though it seemed, most of the human race had found it
impossible not to be polite to its artificial childre n, however simple - minded
they might be. Whole volumes of psychology, as well as popular guides
(How Not to Hurt Your Computer ’s Feelings; Artificial Intelligence  -  Real
irritation were two of the best - known titles) had been written on the subject
of Man - Ma chine etiquette. Long ago it had been decided that, however
inconsequential rudeness to robots might appear to be, it should be
discouraged. All too easily, it could spread to human relationships as well.

Falcon was now in orbit, just as her flight - plan h ad promised, at a safe
two thousand kilometres above Europa. The giant moon ’s crescent
dominated the sky ahead, and even the area not illuminated by Lucifer was
so brilliantly lit by the much more distant Sun that every detail was clearly
visible. Poole ne eded no optical aid to see his planned destination, on the
still - icy shore of the Sea of Galilee, not far from the skeleton of the first
spacecraft to land on this world. Though the Europans had long ago
removed all its metal components, the ill - fated Chin ese ship still served as
a memorial to its crew; and it was appropriate that the only  ‘town ’  -  even if
an alien one  -  on this whole world should have been named  ‘Tsienville ’.

Poole had decided to come down over the Sea, and then fly very
slowly towards Ts ienville  -  hoping that this approach would appear
friendly, or at least non - aggressive. Though he admitted to himself that
this was very naïve, he could think of no better alternative.

Then, suddenly, just as he was dropping below the thousand -
kilometre l evel, there was an interruption  -  not of the kind he had hoped
for, but one which he had been expecting.

‘This is Ganymede Control calling Falcon. You have departed from
your flight - plan. Please advise immediately what is happening. ’

It was hard to ignor e such an urgent request, but in the

circumstances it seemed the best thing to do.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Exactly thirty seconds later, and a hundred kilometres closer to
Europa, Ganymede repeated its message. Once again Poole ignored it  -
but Falcon did not.
‘Are you quite sur e you want to do this, Frank? ’ asked the shuttle.
Though Poole knew perfectly well that he was imagining it, he would
have sworn there was a note of anxiety in its voice.
‘Quite sure, Falcon. I know exactly what I ’m doing. ’
That was certainly untrue, and a ny moment now further lying might
be necessary, to a more sophisticated audience.

Seldom - activated indicator lights started to flash near the edge of the control
board. Poole smiled with satisfaction: everything was going according to plan.

‘This is Gany mede Control! Do you receive me, Falcon? You are operating
on manual override, so I am unable to assist you. What is happening? You are
still descending towards Europa. Please acknowledge immediately. ’

Poole began to experience mild twinges of conscience.  He thought
he recognized the Controller ’s voice, and was almost certain that it was
a charming lady he had met at a reception given by the Mayor, soon
after his arrival at Anubis. She sounded genuinely alarmed.

Suddenly, he knew how to relieve her anxiet y  -  as well as to attempt
something which he had previously dismissed as altogether too absurd.
Perhaps, after all, it was worth a try: it certainly wouldn ’t do any harm  -
and it might even work.

‘This is Frank Poole, calling from Falcon. I am perfectly O K  -  but
something seems to have taken over the controls, and is bringing the
shuttle down towards Europa. I hope you are receiving this  -  I will
continue to report as long as possible. ’

Well, he hadn ’t actually lied to the worried Controller, and one day  he
hoped he would be able to face her with a clear conscience.

He continued to talk, trying to sound as if he was completely sincere,
instead of skirting the edge of truth.

‘This is Frank Poole aboard the shuttle Falcon, descending towards
Europa. I assu me that some outside force has taken charge of my
spacecraft, and will be landing it safely. ’

‘Dave  -  this is your old shipmate Frank. Are you the entity that is
controlling me? I have reason to think that you are on Europa.
‘If so  -  I look forward to mee ting you  -  wherever or whatever you are. ’
Not for a moment did he imagine there would be any reply: even

Ganymede Control appeared to be shocked into silence.

And yet, in a way, he had an answer. Falcon was still being permitted to

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

descend towards the Se a of Galilee.

Europa was only fifty kilometres below; with his naked eyes Poole
could now see the narrow black bar where the greatest of the Monoliths
stood guard  -  if indeed it was doing that  -  on the outskirts of Tsienville.

No human being had been all owed to come so close for a thousand years.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


25 Fire in the Deep

For millions of years it had been an ocean world, its hidden waters protected
from the vacuum of space by a crust of ice. In most places the ice was kilometres
thi ck, but there were lines of weakness where it had cracked open and torn apart.
Then there had been a brief battle between two implacably hostile elements that
came into direct contact on no other world in the Solar System, The war between
Sea and Space alw ays ended in the same stalemate; the exposed water
simultaneously boiled and froze, repairing the armour of ice.
The seas of Europa would have frozen completely solid long ago without the
influence of nearby Jupiter. Its gravity continually kneaded the cor e of the little world;
the forces that convulsed Io were also working there, though with much less ferocity.
Everywhere in the deep was evidence of that tug - of - war between planet and
satellite, in the continual roar and thunder of submarine earthquakes, th e shriek of
gases escaping from the interior, the infrasonic pressure waves of avalanches
sweeping over the abyssal plains. By comparison with the tumultuous ocean that
covered Europa, even the noisy seas of Earth were muted.

Here and there, scattered ove r the deserts of the deep, were oases that
would have amazed and delighted any terrestrial biologist. They extended
for several kilometres around tangled masses of pipes and chimneys
deposited by mineral brines gushing from the interior. Often they created
natural parodies of Gothic castles, from which black, scalding liquids pulsed
in a slow rhythm, as if driven by the beating of some mighty heart. And like
blood, they were the authentic sign of life itself.

The boiling fluids drove back the deadly cold l eaking down from
above, and formed islands of warmth on the sea - bed. Equally important,
they brought from Europa ’s interior all the chemicals of life. Such fertile
oases, offering food and energy in abundance, had been discovered by
the twentieth - century e xplorers of Earth ’s oceans. Here they were
present on an immensely larger scale, and in far greater variety.

Delicate, spidery structures that seemed to be the analogue of plants flourished
in the  ‘tropical ’ zones closest to the sources of heat. Crawling  among these were
bizarre slugs and worms, some feeding on the plants, others obtaining their food

directly from the mineral - laden waters around them. At greater

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

distances from the submarine fires around which all these creatures warmed
themselves lived st urdier, more robust organisms, not unlike crabs or spiders.

Armies of biologists could have spent lifetimes studying one small oasis.
Unlike the Palaeozoic terrestrial seas, the Europan abyss was not a stable
environment, so evolution had progressed with  astonishing speed, producing
multitudes of fantastic forms. And all were under the same indefinite stay of
execution; sooner or later, each fountain of life would weaken and die, as the
forces that powered it moved their focus elsewhere. All across the Eur opan
sea - bed was evidence of such tragedies; countless circular areas were littered
with the skeletons and mineral - encrusted remains of dead creatures, where
entire chapters of evolution had been deleted from the book of life. Some had
left as their only m emorial huge, empty shells like convoluted trumpets, larger
than a man. And there were clams of many shapes  -  bivalves, and even
trivalves, as well as spiral stone patterns, many metres across  -  exactly like
the beautiful ammonites that disappeared so myst eriously from Earth ’s
oceans at the end of the Cretaceous Period.
Among the greatest wonders of the Europan abyss were rivers of
incandescent lava, pouring from the calderas of submarine volcanoes.
The pressure at these depths was so great that the water i n contact with
the red - hot magma could not flash into steam, so the two liquids co -
existed in an uneasy truce.

There, on another world and with alien actors, something like the
story of Egypt had been played out long before the coming of Man. As
the Nile  had brought life to a narrow ribbon of desert, so this river of
warmth had vivified the Europan deep. Along its banks, in a band never
more than a few kilometres wide, species after species had evolved and
flourished and passed away. And some had left perm anent monuments.

Often, they were not easy to distinguish from the natural formations around
the thermal vents, and even when they were clearly not due to pure chemistry,
one would be hard put to decide whether they were the product of instinct or
intelli gence. On Earth, the termites reared condominiums almost as impressive
as any found in the single vast ocean that enveloped this frozen world.

Along the narrow band of fertility in the deserts of the deep, whole cultures
and even civilizations might have  risen and fallen, armies might have marched  -
or swum  -  under the command of Europan Tamberlanes or Napoleons. And the
rest of their world would never have known, for all their oases were as isolated
from one another as the planets themselves, The creature s who basked in the

glow of the lava rivers, and fed around the hot vents, could not cross the hostile
wilderness between their lonely islands. If they had ever produced historians and

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

philosophers, each culture would have been convinced that it was alone
in the Universe.

Yet even the space between the oases was not altogether empty of life; there
were hardier creatures who had dared its rigours. Some were the Europan
analogues of fish  -  streamlined torpedoes, propelled by vertical tails, steered by
fins  along their bodies. The resemblance to the most successful dwellers in
Earth ’s oceans was inevitable; given the same engineering problems, evolution
must produce very similar answers. Witness the dolphin and the shark  -
superficially almost identical, yet  from far distant branches of the tree of life.

There was, however, one very obvious difference between the fish of the
Europan seas and those in terrestrial oceans; they had no gills, for there was hardly
a trace of oxygen to be extracted from the waters  in which they swam. Like the
creatures around Earth ’s own geothermal vents, their metabolism was based on
sulphur compounds, present in abundance in this volcanic environment.

And very few had eyes. Apart from the flickering glow of lava
outpourings, and  occasional bursts of bioluminescence from creatures
seeking mates, or hunters questing prey, it was a lightless world.

It was also a doomed one. Not only were its energy sources sporadic
and constantly shifting, but the tidal forces that drove them were s teadily
weakening. Even if they developed true intelligence, the Europans were
trapped between fire and ice.

Barring a miracle, they would perish with the final freezing of their
little world.
Lucifer had wrought that miracle.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


26 Tsienville

In the final moments, as he came in over the coast at a sedate
hundred kilometres an hour, Poole wondered if there might be some
last - minute intervention. But nothing untoward happened, even when he
moved slowly along the black, forbidding f ace of the Great Wall.

It was the inevitable name for the Europa Monolith as, unlike its little
brothers on Earth and Moon, it was lying horizontally, and was more
than twenty kilometres long. Although it was literally billions of times
greater in volume  than TMA ZERO and TMA ONE, its proportions were
exactly the same  -  that intriguing ratio 1:4:9, inspirer of so much
numerological nonsense over the centuries.

As the vertical face was almost ten kilometres high, one plausible theory
maintained that among  its other functions the Great Wall served as a wind -
break, protecting Tsienville from the ferocious gales that occasionally roared
in from the Sea of Galilee. They were much less frequent now that the climate
had stabilized, but a thousand years earlier th ey would have been a severe
discouragement to any life - forms emerging from the ocean.
Though he had fully intended to do so, Poole had never found time to visit
the Tycho Monolith  -  still Top Secret when he had left for Jupiter  -  and Earth ’s
gravity made i ts twin at Olduvai inaccessible to him. But he had seen their
images so often that they were much more familiar than the proverbial back of
the hand (and how many people, he had often wondered, would recognize the
backs of their hands?). Apart from the eno rmous difference in scale, there
was absolutely no way of distinguishing the Great Wall from TMA ONE and
TMA ZERO  -  or, for that matter, the  ‘Big Brother ’ Monolith that Discovery and
the Leonov had encountered orbiting Jupiter.
According to some theories,  perhaps crazy enough to be true, there was
only one archetypal Monolith, and all the others  -  whatever their size  -  were
merely projections or images of it. Poole recalled these ideas when he noticed
the spotless, unsullied smoothness of the Great Wall ’s t owering ebon face.
Surely, after so many centuries in such a hostile environment, it should have
collected a few patches of grime! Yet it looked as immaculate as if an army of

window - cleaners had just polished every square centimetre.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Then he recalled tha t although everyone who had ever come to view TMA
ONE and TMA ZERO felt an irresistible urge to touch their apparently pristine
surfaces, no one had ever succeeded. Fingers  -  diamond drills  -  laser knives  -  all
skittered across the Monoliths as if they wer e coated by an impenetrable film. Or
as if  -  and this was another popular theory  -  they were not quite in this universe,
but somehow separated from it by an utterly impassable fraction of a millimetre.

He made one complete, leisurely circuit of the Great  Wall, which remained
totally indifferent to his progress. Then he brought the shuttle  -  still on manual,
in case Ganymede Control made any further attempts to  ‘rescue ’ him  -  to the
outer limits of Tsienville, and hovered there looking for the best place to  land.
The scene through Falcon ’s small panoramic window was wholly familiar
to him; he had examined it so often in Ganymede recordings, never imagining
that one day he would be observing it in reality. The Europs, it seemed, had
no idea of town planning;  hundreds of hemispherical structures were scattered
apparently at random over an area about a kilometre across. Some were so
small that even human children would feel cramped in them; though others
were big enough to hold a large family, none was more than  five metres high.
And they were all made from the same material, which gleamed a
ghostly white in the double daylight. On Earth, the Esquimaux had found
the identical answer to the challenge of their own frigid, materials - poor
environment; Tsienville ’s ig loos were also made of ice.

In lieu of streets, there were canals  -  as best suited creatures who were
still amphibious, and apparently returned to the water to sleep. Also, it was
believed, to feed and to mate, though neither hypothesis had been proved.

Tsienville had been called  ‘Venice, made of ice ’, and Poole had to
agree that it was an apt description. However, there were no Venetians
in sight; the place looked as if it had been deserted for years.

And here was another mystery; despite the fact that  Lucifer was fifty times
brighter than the distant Sun, and was a permanent fixture in the sky, the Europs
still seemed locked to an ancient rhythm of night and day. They returned to the
ocean at sunset, and emerged with the rising of the Sun  -  despite the  fact that
the level of illumination had changed by only a few per cent. Perhaps there was a
parallel on Earth, where the life cycles of many creatures were controlled as
much by the feeble Moon as the far more brilliant Sun.

It would be sunrise in another  hour, and then the inhabitants of Tsienville
would return to land and go about their leisurely affairs  -  as by human standards,
they certainly were. The sulphur - based biochemistry that powered the Europs

was not as efficient as the oxygen - driven one that  energized the vast majority of
terrestrial animals. Even a sloth could outrun a Europ, so it was difficult to

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

regard them as potentially dangerous. That was the Good News; the
Bad News was that even with the best intentions on both sides, attempts
at comm unication would be extremely slow  -  perhaps intolerably tedious.
It was about time, Poole decided, that he reported back to Ganymede
Control. They must be getting very anxious, and he wondered how his
co - conspirator, Captain Chandler, was dealing with the  situation.

‘Falcon calling Ganymede. As you can doubtless see, I have  -  er  -
been brought to rest just above Tsienville. There is no sign of hostility,
and as it ’s still solar night here all the Europs are underwater. Will call
you again as soon as I ’m on  the ground. ’

Dim would have been proud of him, Poole thought, as he brought
Falcon down gently as a snowflake on a smooth patch of ice. He was
taking no chances with its stability, and set the inertial drive to cancel all
but a fraction of the shuttle ’s  weight  -  just enough, he hoped, to prevent it
being blown away by any wind.

He was on Europa  -  the first human in a thousand years. Had Armstrong and
Aldrin felt this sense of elation, when Eagle touched down on the Moon?
Probably they were too busy check ing their Lunar Module ’s primitive and totally
unintelligent systems. Falcon, of course, was doing all this automatically. The
little cabin was now very quiet, apart from the inevitable  -  and reassuring  -
murmur of well - tempered electronics. It gave Poole  a considerable shock when
Chandler ’s voice, obviously pre - recorded, interrupted his thoughts.

‘So you made it! Congratulations! As you know, we ’re scheduled to
return to the Belt week after next, but that should give you plenty of time. ’

‘After five days , Falcon knows what to do. She ’ll find her way home,
with or without you. So good luck! ’
MISS PRINGLE
ACTIVATE CRYPTO PROGRAM
STORE

Hello, Dim  -  thanks for that cheerful message! I feel rather silly using
this program  -  as if I ’m a secret agent in one of  the spy melodramas that
used to be so popular before I was born. Still, it will allow some privacy,
which may be useful. Hope Miss Pringle has downloaded it properly… of
course, Miss P, I ’m only joking!

By the way, I ’m getting a barrage of requests from a ll the news media
in the Solar System. Please try to hold them off  -  or divert them to Dr
Ted. He ’ll enjoy handling them…

Since Ganymede has me on camera all the time, I won ’t waste breath telling

you what I ’m seeing. If all goes well, we should have some  action in a few

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

minutes  -  and we ’ll know if it really was a good idea to let the Europs find
me already sitting here peacefully, waiting to greet them when they
come to the surface…
Whatever happens, it won ’t be as big a surprise to me as it was to Dr
Ch ang and his colleagues, when they landed here a thousand years
ago! I played his famous last message again, just before leaving
Ganymede. I must confess it gave me an eerie feeling  -  couldn ’t help
wondering if something like that could possibly happen agai n… wouldn ’t
like to immortalize myself the way poor Chang did…

Of course, I can always lift off if something starts going wrong… and
here ’s an interesting thought that ’s just occurred to me… I wonder if the
Europs have any history  -  any kind of records… a ny memory of what
happened just a few kilometres from here, a thousand years ago?

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


27 Ice and Vacuum

…This is Dr Chang, calling from Europa. I hope you cart hear me, especially
Dr Floyd  -  I know you ’re aboard Leonov… I may not h ave much time… aiming
my suit antenna where I think you are… please relay this information to Earth.

Tsien was destroyed three hours ago. I ’m the only survivor. Using my
suit radio  -  no idea if it has enough range, but it ’s the only chance.
Please listen  carefully…

THERE IS LIFE ON EUROPA. I repeat: THERE IS LIFE ON EUROPA… We
landed safely, checked all the systems, and ran out the hoses so we could

start pumping water into our propellant tanks immediately… just in case
we had to leave in a hurry.

Every thing was going according to plan… it seemed almost too good
to be true. The tanks were half full when Dr Lee and I went out to check
the pipe insulation. Tsien stands  -  stood  -  about thirty metres from the
edge of the Grand Canal. Pipes went directly from  it and down through
the ice. Very thin  -  not safe to walk on.

Jupiter was quarter full, and we had five kilowatts of lighting strung up on
the ship. She looked like a Christmas tree  -  beautiful, reflected on the ice…
Lee saw it first  -  a huge dark mass r ising up from the depths. At first
we thought it was a school of fish  -  too large for a single organism  -  then
it started to break through the ice, and began moving towards us.

It looked rather like huge strands of wet seaweed, crawling along the
ground.  Lee ran back to the ship to get a camera  -  I stayed to watch, reporting
over the radio. The thing moved so slowly I could easily outrun it. I was much
more excited than alarmed. Thought I knew what kind of creature it was  -  I ’ve
seen pictures of the kelp f orests off California  -  but I was quite wrong.
I could tell it was in trouble. It couldn ’t possibly survive at a temperature
a hundred and fifty below its normal environment. It was freezing solid as it
moved forward  - bits were breaking off like glass  -  bu t it was still advancing
towards the ship, a black tidal wave, slowing down all the time.

I was still so surprised that I couldn ’t think straight and I couldn ’t imagine
what it was trying to do. Even though it was heading towards Tsien it still seemed

com pletely harmless, like  -  well, a small forest on the move. I remember

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

smiling  -  it reminded me of Macbeth ’s Birnam Wood…

Then I suddenly realized the danger. Even if it was completely
inoffensive  -  it was heavy  -  with all the ice it was carrying, it must  have
weighed several tons, even in this low gravity.

And it was slowly, painfully climbing up our landing gear… the legs
were beginning to buckle, all in slow motion, like something in a dream  -
or a nightmare…

Not until the ship started to topple did I  realize what the thing was
trying to do  -  and then it was far too late. We could have saved ourselves
-  if we ’d only switched off our lights!

Perhaps it ’s a phototrope, its biological cycle triggered by the sunlight
that filters down through the ice. Or  it could have been attracted like a
moth to a candle. Our floodlights must have been more brilliant than
anything that Europa has ever known, even the Sun itself…

Then the ship crashed. I saw the hull split, a cloud of snowflakes form
as moisture condense d. All the lights went out, except for one, swinging
back and forth on a cable a couple of metres above the ground.

I don ’t know what happened immediately after that. The next thing I
remember, I was standing under the light, beside the wreck of the ship,  with a
fine powdering of fresh snow all around me. I could see my footsteps in it very
clearly. I must have run there; perhaps only a minute or two had elapsed…
The plant  -  I still thought of it as a plant  -  was motionless. I wondered
if it had been damag ed by the impact; large sections  -  as thick as a
man ’s arms  -  had splintered off, like broken twigs.

Then the main trunk started to move again. It pulled away from the
hull, and began to crawl towards me. That was when I knew for certain
that the thing wa s light - sensitive: I was standing immediately under the
thousand - watt lamp, which had stopped swinging now.

Imagine an oak tree  -  better still, a banyan with its multiple trunks and
roots  -  flattened out by gravity and trying to creep along the ground. It
got to within five metres of the light, then started to spread out until it had
made a perfect circle around me. Presumably that was the limit of its
tolerance  -  the point at which photo - attraction turned to repulsion.

After that, nothing happened for se veral minutes, I wondered if it was
dead  -  frozen solid at last.

Then I saw that large buds were forming on many of the branches. It
was like watching a time - lapse film of flowers opening. In fact I thought

they were flowers  -  each about as big as a man ’s  head.

Delicate, beautifully coloured membranes started to unfold. Even then, it

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

occurred to me that no one  -  no thing  -  could ever have seen these colours
properly, until we brought our lights  -  our fatal lights  -  to this world.

Tendrils, stamens, wavi ng feebly… I walked over to the living wall that
surrounded me, so that I could see exactly what was happening. Neither
then, or at any other time, had I felt the slightest fear of the creature. I was
certain that it was not malevolent  -  if indeed it was c onscious at all.

There were scores of the big flowers, in various stages of unfolding.
Now they reminded me of butterflies, just emerging from the chrysalis  -
wings crumpled, still feeble  -  I was getting closer and closer to the truth.

But they were free zing  -  dying as quickly as they formed. Then, one after
another, they dropped off from the parent buds. For a few moments they
flopped around like fish stranded on dry land  -  and at last I realized exactly
what they were. Those membranes weren ’t petals  -  t hey were fins, or their
equivalent. This was the free - swimming larval stage of the creature. Probably
it spends much of its life rooted on the sea - bed, then sends these mobile
offspring in search of new territory. Just like the corals of Earth ’s oceans.
I  knelt down to get a closer look at one of the little creatures. The beautiful
colours were fading now, to a drab brown. Some of the petal - fins had snapped
off, becoming brittle shards as they froze. But it was still moving feebly, and as
I approached it tr ied to avoid me. I wondered how it sensed my presence.
Then I noticed that the stamens  -  as I ’d called them  - all carried bright blue
dots at their tips. They looked like tiny star sapphires  -  or the blue eyes along
the mantle of a scallop  -  aware of light,  but unable to form true images. As I
watched, the vivid blue faded, the gems became dull, ordinary stones…
Dr Floyd  -  or anyone else who is listening  -  I haven ’t much more time;
my life - support system alarm has just sounded. But I ’ve almost finished.

I k new then what I had to do. The cable to that thousand - watt lamp
was hanging almost to the ground. I gave it a few tugs, and the light
went out in a shower of sparks.

I wondered whether it was too late. For a few minutes nothing happened.
So I walked over  to the wall of tangled branches around me  -  and kicked it.
Slowly, the creature started to unweave itself, and to retreat back to
the Canal. I followed it all the way back to the water, encouraging it with
more kicks when it slowed down, feeling the fragme nts of ice crunching
all the time beneath my boots… As it neared the Canal, it seemed to
gain strength and energy, as if it knew it was approaching its natural
home. I wondered if it would survive, to bud again.

It disappeared through the surface, leaving  a few last dead larvae on the alien

land. The exposed free water bubbled for a few minutes until a scab of protective

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

ice sealed it from the vacuum above. Then I walked back to the ship to
see if there was anything to salvage  -  I don ’t want to talk about  that.

I ’ve only two requests to make, Doctor. When the taxonomists
classify this creature , I hope they ’ll name it after me.

And  -  when the next ship comes home  -  ask them to take our bones
back to China.

I ’ll lose power in a few minutes  -  wish I knew  whether anyone was
receiving me. Anyway, I ’ll repeat this message as long as I can…

This is Professor Chang on Europa, reporting the destruction of the
spaceship Tsien. We landed beside the Grand Canal and set up our
pumps at the edge of the ice  -

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001:  The Final  Odyssey


28 The Little Dawn

MISS PRINGLE RECORD

Here comes the Sun! Strange  -  how quickly it seems to rise, on this
slowly turning world! Of course, of course  -  the disc ’s so small that the
whole of it pops above the horizon in no time… Not t hat it makes much
difference to the light  -  if you weren ’t looking in that direction, you ’d
never notice that there was another sun in the sky.

But I hope the Europs have noticed. Usually it takes them less than
five minutes to start coming ashore after t he Little Dawn. Wonder if they
already know I ’m here, and are scared…

No  -  could be the other way round. Perhaps they ’re inquisitive  -  even anxious
to see what strange visitor has come to Tsienville… I rather hope so…

Here they come! Hope your spysats ar e watching  -  Falcon ’s cameras
recording…

How slowly they move! I ’m afraid it ’s going to be very boring trying to
communicate with them… even if they want to talk to me…

Rather like the thing that overturned Tsien, but much smaller… They
remind me of litt le trees, walking on half a dozen slender trunks. And with
hundreds of branches, dividing into twigs, which divide again… and again.
Just like many of our general - purpose robots… what a long time it took us
to realize that imitation humanoids were ridiculo usly clumsy, and the proper
way to go was with myriad of small manipulators! Whenever we invent
something clever, we find that Mother Nature ’s already thought of it…

Aren ’t the little ones cute  -  like tiny bushes on the move. Wonder how
they reproduce  -  b udding? I hadn ’t realized how beautiful they are.
Almost as colourful as coral reef fish  -  maybe for the same reasons… to
attract mates, or fool predators by pretending to be something else…

Did I say they looked like bushes? Make that rose - bushes  -  they ’ ve
actually got thorns! Must have a good reason for them…

I ’m disappointed. They don ’t seem to have noticed me. They ’ll all
heading into town, as if a visiting spacecraft was an everyday
occurrence… only a few left… maybe this will work…

I suppose they c an detect sound vibrations  -  most marine creatures can  -

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

though this atmosphere may be too thin to carry my voice very far…

FALCON  -  EXTERNAL SPEAKER…
HELLO, CAN YOU HEAR ME? MY NAME IS FRANK POOLE…
AHEM… I COME IN PEACE FOR ALL MANKIND…

Makes me feel r ather stupid, but can you suggest anything better?
And it will be good for the record…

Nobody ’s taking the slightest notice. Big ones and little ones, they re all
creeping towards their igloos Wonder what they actually do when they get there

-   perhaps I sh ould follow. I ’m sure it would be perfectly safe  -  I can move
so much faster  -  I ’ve just had an amusing flashback. All these creatures
going in the same direction  -  they look like the commuters who used to
surge back and forth twice a day between home and  office, before
electronics made it unnecessary. Let ’s try again, before they all disappear.

HELLO THERE THIS IS FRANK POOLE, A VISITOR FROM
PLANET EARTH. CAN YOU HEAR ME?

I HEAR YOU, FRANK. THIS IS DAVE.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


29 The Ghosts in the M achine

Frank Poole ’s immediate reaction was one of utter astonishment,
followed by overwhelming joy. He had never really believed that he
would make any kind of contact, either with the Europs or the Monolith.
Indeed, he had even had fantasies of kicking  in frustration against that
towering ebon wall and shouting angrily,  ‘Is there anybody home? ’

Yet he should not have been so amazed: some intelligence must
have monitored his approach from Ganymede, and permitted him to
land. He should have taken Ted Khan  more seriously.
‘Dave, ’ he said slowly,  ‘is that really you? ’
Who else could it be? a part of his mind asked. Yet it was not a foolish
question. There was something curiously mechanical  -  impersonal about
the voice that came from the small speaker on Falc on ’s control board.

YES, FRANK. I AM DAVE.
There was a very brief pause: then the same voice continued, without
any change of intonation:
HELLO FRANK. THIS IS HAL.
MISS PRINGLE
RECORD

Well  -  Indra, Dim  -  I ’m glad I recorded all that, otherwise you ’d neve r
believe me…

I guess I ’m still in a state of shock. First of all, how should I feel about
someone who tried to  -  who did  -  kill me  -  even if it was a thousand years ago!
But I understand now that Hal wasn ’t to blame; nobody was. There ’s a very
good piece  of advice I ’ve often found useful  ‘Never attribute to malevolence
what is merely due to incompetence ’ I can ’t feel any anger towards a bunch of
programmers I never knew, who ’ve been dead for centuries.
I ’m glad this is encrypted, as I don ’t know how it sh ould be handled, and
a lot that I tell you may turn out to be complete nonsense. I ’m already
suffering from information overload, and had to ask Dave to leave me for a
while  -  after all the trouble I ’ve gone through to meet him! But I don ’t think I
hurt hi s feelings: I m not sure yet if he has any feelings…

What is he  -  good question! Well, he really is Dave Bowman, but with most

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

of the humanity stripped away  -  like  -  ah  -  like the synopsis of a book or a
technical paper. You know how an abstract can give  all the basic information
but no hint of the author ’s personality? Yet there were moments when I felt
that something of the old Dave was still there. I wouldn ’t go so far as to say
he ’s pleased to meet me again  -  moderately satisfied might be more like it …
For myself, I ’m still very confused. Like meeting an old friend after a long
separation, and finding that they ’re now a different person. Well, it has been a
thousand years  -  and I can ’t imagine what experiences he ’s known, though as
I ’ll show you presen tly, he ’s tried to share some of them with me.

And Hal  -  he ’s here too, without question. Most of the time, there ’s no way
I can tell which of them is speaking to me. Aren ’t there examples of multiple
personalities in the medical records? Maybe it ’s somet hing like that.
I asked him how this had happened to them both, and he  -  they  -
dammit, Halman!  -  tried to explain. Let me repeat  -  I may have got it
partly wrong, but it ’s the only working hypothesis I have.

Of course, the Monolith  -  in its various manif estations  -  is the key  -  no,
that ’s the wrong word  -  didn ’t someone once say it was a kind of cosmic
Swiss Army knife? You still have them, I ’ve noticed, though both
Switzerland and its army disappeared centuries ago. It ’s a general - purpose
device that can  do anything it wants to. Or was programmed to do…

Back in Africa, four million years ago, it gave us that evolutionary kick in
the pants, for better or for worse. Then its sibling on the Moon waited for us to
climb out of the cradle. That we ’ve already g uessed, and Dave ’s confirmed it.
I said that he doesn ’t have many human feelings, but he still has
curiosity  -  he wants to learn. And what an opportunity he ’s had!

When the Jupiter Monolith absorbed him  -  can ’t think of a better word  -  it
got more than it  bargained for. Though it used him  -  apparently as a captured
specimen, and a probe to investigate Earth  -  he ’s also been using it. With
Hal ’s assistance  -  and who should understand a super - computer better than
another one?  -  he ’s been exploring its memory , and trying to find its purpose.
Now, this is something that ’s very hard to believe. The Monolith is a
fantastically powerful machine  -  look what it did to Jupiter!  -  but it ’s no
more than that. It ’s running on automatic  -  it has no consciousness. I
remem ber once thinking that I might have to kick the Great Wall and
shout  ‘Is there anyone there? ’ And the correct answer would have to be  -
no one, except Dave and Hal…

Worse still, some of its systems may have started to fail; Dave even

suggests that, in a f undamental way, it ’s become stupid! Perhaps it ’s
been left on its own for too long  -  it ’s time for a service check.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

And he believes the Monolith has made at least one misjudgement. Perhaps
that ’s not the right word  -  it may have been deliberate, carefully  considered…

In any event, it ’s  -  well, truly awesome, and terrifying in its implications.
Luckily, I can show it to you, so you can decide for yourselves. Yes, even
though it happened a thousand years ago, when Leonov flew the second
mission to Jupiter!  And all this time, no one has ever guessed…

I ’m certainly glad you got me fitted with the Braincap. Of course it ’s
been invaluable  -  I can ’t imagine life without it  -  but now it ’s doing a job it
was never designed for. And doing it remarkably well.

It to ok Halman about ten minutes to find how it worked, and to set up
an interface. Now we have mind - to - mind contact  -  which is quite a strain
on me, I can tell you. I have to keep asking them to slow down, and use
baby - talk. Or should I say baby - think…

I ’m no t sure how well this will come through. It ’s a thousand - year - old
recording of Dave ’s own experience, somehow stored in the Monolith ’s
enormous memory, then retrieved by Dave and injected into my Braincap  -
don ’t ask me exactly how  -  and finally transferred  and beamed to you by
Ganymede Central. Phew. Hope you don ’t get a headache downloading it.

Over to Dave Bowman at Jupiter, early twenty - first century…

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


30 Foamscape

The million - kilometre - long tendrils of magnetic force, the su dden
explosion of radio waves, the geysers of electrified plasma wider than
the planet Earth  -  they were as real and clearly visible to him as the
clouds banding the planet in multi - hued glory. He could understand the
complex pattern of their interactions,  and realized that Jupiter was much
more wonderful than anyone had ever guessed.

Even as he fell through the roaring heart of the Great Red Spot, with the
lightning of its continent - wide thunderstorms detonating under him, he knew
why it had persisted for  centuries though it was made of gases far less
substantial than those that formed the hurricanes of Earth. The thin scream of
hydrogen wind faded as he sank into the calmer depths, and a sheet of waxen
snowflakes  -  some already coalescing into barely palp able mountains of
hydrocarbon foam  -  descended from the heights above. It was already warm
enough for liquid water to exist, but there were no oceans there; this purely
gaseous environment was too tenuous to support them.
He descended through layer after l ayer of cloud, until he entered a region of
such clarity that even human vision could have scanned an area more than a
thousand kilometres across. It was only a minor eddy in the vaster gyre of the
Great Red Spot; and it held a secret that men had long gue ssed, but never
proved. Skirting the foothills of the drifting foam mountains were myriad of small,
sharply defined clouds, all about the same size and patterned with similar red
and brown mottling. They were small only as compared with the inhuman scale
o f their surroundings; the very least would have covered a fair - sized city.

They were clearly alive, for they were moving with slow deliberation along
the flanks of the aerial mountains, browsing off their slopes like colossal
sheep. And they were calling  to each other in the metre band, their radio
voices faint but clear against the cracklings and concussions of Jupiter itself.
Nothing less than living gasbags, they floated in the narrow zone
between freezing heights and scorching depths. Narrow, yes  -  but  a
domain far larger than all the biosphere of Earth.

They were not alone. Moving swiftly among them were other creatures so

small that they could easily have been overlooked. Some of them bore an almost

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

uncanny resemblance to terrestrial aircraft, and w ere of about the same
size. But they too were alive  -  perhaps predators, perhaps parasites,
perhaps even herdsmen.

A whole new chapter of evolution, as alien as that which he had glimpsed
on Europa, was opening before him. There were jet - propelled torpedo es like
the squids of the terrestrial oceans, hunting and devouring the huge gasbags.
But the balloons were not defenceless; some of them fought back with electric
thunderbolts and with clawed tentacles like kilometre - long chainsaws.
There were even strang er shapes, exploiting almost every possibility of
geometry  -  bizarre, translucent kites, tetrahedra, spheres, polyhedra, tangles
of twisted ribbons… The gigantic plankton of the Jovian atmosphere, they
were designed to float like gossamer in the uprising c urrents, until they had
lived long enough to reproduce; then they would be swept down into the
depths to be carbonized and recycled in a new generation.
He was searching a world more than a hundred times the area of Earth, and
though he saw many wonders, n othing there hinted of intelligence. The radio
voices of the great balloons carried only simple messages of warning or of fear.
Even the hunters, who might have been expected to develop higher degrees of
organization, were like the sharks in Earth ’s oceans   -  mindless automata.

And for all its breathtaking size and novelty, the biosphere of Jupiter
was a fragile world, a place of mists and foam, of delicate silken threads
and paper - thin tissues spun from the continual snowfall of petrochemicals
formed by li ghtning in the upper atmosphere. Few of its constructs were
more substantial than soap bubbles; its most awesome predators could be
torn to shreds by even the feeblest of terrestrial carnivores.

Like Europa, but on a vastly grander scale, Jupiter was an
e volutionary cul - de - sac. Intelligence would never emerge here; even if it
did, it would be doomed to a stunted existence. A purely aerial culture
might develop, but in an environment where fire was impossible, and
solids scarcely existed, it could never eve n reach the Stone Age.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odysse y


31 Nursery

MISS PRINGLE RECORD

Well, Indra  -  Dim  -  I hope that came through in good shape  -  I still
find it hard to believe. All those fantastic creatures  -  surely we should
have detected their radio voi ces, even if we couldn ’t understand them!  -
wiped out in a moment, so that Jupiter could be made into a sun.

And now we can understand why. It was to give the Europs their
chance. What pitiless logic: is intelligence the only thing that matters? I can
see  some long arguments with Ted Khan over this  -  The next question is:
will the Europs make the grade  -  or will they remain forever stuck in the
kindergarten  -  not even that  -  the nursery? Though a thousand years is a
very short time, one would have expected  some progress, but according to
Dave they ’re exactly the same now as when they left the sea. Perhaps
that ’s the trouble; they still have one foot  -  or one twig!  -  in the water.

And here ’s another thing we got completely wrong. We thought they
went back i nto the water to sleep. It ’s just the other way round  -  they go
back to eat, and sleep when they come on land! As we might have guessed
from their structure  -  that network of branches  -  they ’re plankton feeders…

I asked Dave about the igloos they ’ve built . Aren ’t they a technological
advance? And he said: not really  -  they ’re only adaptations of structures
they make on the sea - bed, to protect themselves from various predators  -
especially something like a flying carpet, as big as a football field…

There ’s  one area, though, where they have shown initiative  -  even creativity.
They ’re fascinated by metals, presumably because they don ’t exist in pure form
in the ocean. That ’s why Tsien was stripped  -  the same thing ’s happened to the
occasional probes that have  come down in their territory. What do they do with
the copper and beryllium and titanium they collect? Nothing useful, I ’m afraid.
They pile it all together in one place, in a fantastic heap that they keep
reassembling. They could be developing an aesthet ic sense  -  I ’ve seen worse in
the Museum of Modem Art… But I ’ve got another theory  -  did you ever hear of
cargo cults? During the twentieth century, some of the few primitive tribes that
still existed made imitation aeroplanes out of bamboo, in the hope of  attracting

the big birds in the sky that occasionally brought them wonderful gifts. Perhaps

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

the Europs have the same idea.

Now that question you keep asking me… What is Dave? And how did
he  -  and Hal  -  become whatever it is they are now?

The quick answ er, of course, is that they ’re both emulations  -  simulations  -
in the Monolith ’s gigantic memory. Most of the time they ’re inactivated; when I
asked Dave about this, he said he ’d been  ‘awake ’  -  his actual word  - for only
fifty years altogether, in the thous and since his  -  er  -  metamorphosis.
When I asked if he resented this takeover of his life, he said,  ‘Why
should I resent it? I am performing my functions perfectly. ’ Yes, that sounds
exactly like Hal! But I believe it was Dave  -  if there ’s any distinction  now.

Remember that Swiss Army knife analogy? Halman is one of this
cosmic knife ’s myriad of components.

But he ’s not a completely passive tool  -  when he ’s awake, he has some
autonomy, some independence  -  presumably within limits set by the Monolith ’s
ove rriding control. During the centuries, he ’s been used as a kind of intelligent
probe to examine, Jupiter  -  as you ’ve just seen  -  as well as Ganymede and the
Earth. That confirms those mysterious events in Florida, reported by Dave ’s old
girl - friend, and th e nurse who was looking after his mother, just moments before
her death… as well as the encounters in Anubis City.

And it also explains another mystery. I asked Dave directly: why was
I allowed to land on Europa, when everyone else has been turned away
fo r centuries? I fully expected to be!

The answer ’s ridiculously simple. The Monolith uses Dave  -  Halman  -
from time to time, to keep an eye on us.

Dave knew all about my rescue  -  even saw some of the media
interviews I made, on Earth and on Ganymede. I mu st say I ’m still a little
hurt he made no attempt to contact me! But at least he put out the
Welcome mat when I did arrive…

Dim  -  I still have forty - eight hours before Falcon leaves  -  with or without
me! I don ’t think I ’ll need them, now I ’ve made contact  with Halman; we can
keep in touch just as easily from Anubis… if he wants to do so.

And I ’m anxious to get back to the Grannymede as quickly as
possible. Falcon ’s a fine little spacecraft, but her plumbing could be
improved  -  it ’s beginning to smell in h ere, and I ’m itching for a shower.
Look forward to seeing you  -  and especially Ted Khan.
We have much to talk about, before I return to Earth.
TRANSMIT

STORE
V TERMINATION

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

The toil of all that be

Heals not the primal fault;
It rains into the sea,
And sti ll the sea is salt.

-  A. E. Housman, More Poems

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


32 A Gentleman of Leisure

On the whole, it had been an interesting but uneventful decades,
punctuated by the joys and sorrows which Time and Fate bring to all mankind.
The greate st of those had been wholly unexpected; in fact, before he left for
Ganymede, Poole would have dismissed the very idea as preposterous.
There is much truth in the saying that absence makes the heart grow
fonder. When he and Indra Wallace met again, they di scovered that,
despite their bantering and occasional disagreements, they were closer
than they had imagined. One thing led to another including, to their
mutual joy, Dawn Wallace and Martin Poole.

It was rather late in life to start a family  -  quite apar t from that little
matter of a thousand years  -  and Professor Anderson had warned them
that it might be impossible. Or even worse…

‘You were lucky in more ways than you realize, ’ he told Poole.  ‘Radiation
damage was surprisingly low, and we were able to m ake all essential repairs
from your intact DNA. But until we do some more tests, I can ’t promise genetic
integrity. So enjoy yourselves  -  but don ’t start a family until I give the OK. ’
The tests had been time - consuming, and as Anderson had feared, further
repairs were necessary. There was one major set - back  -  something that could
never have lived, even if it had been allowed to go beyond the first few weeks
after conception  -  but Martin and Dawn were perfect, with just the right
number of heads, arms and le gs. They were also handsome and intelligent,
and barely managed to escape being spoiled by their doting parents  -  who
continued to be the best of friends when, after fifteen years, each opted for
independence again. Because of their Social Achievement Rati ng, they would
have been permitted  -  indeed, encouraged  -  to have another child, but they
decided not to put any more of a burden on their astonishingly good luck.
One tragedy had shadowed Poole ’s personal life during this period  -  and
indeed had shocked t he whole Solar community. Captain Chandler and his entire
crew had been lost when the nucleus of a comet they were reconnoitring
exploded suddenly, destroying Goliath so completely that only a few fragments
were ever located. Such explosions  -  caused by re actions among unstable

molecules which existed at very low temperatures  -  were a well - known danger to

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

comet - collectors, and Chandler had encountered several during his
career. No one would ever know the exact circumstances which caused
so experienced a sp aceman to be taken by surprise.

Poole missed Chandler very badly: he had played a unique role in his
life, and there was no one to replace him  -  no one, except Dave Bowman,
with whom he had shared so momentous an adventure. He and Chandler
had often made  plans to go into space together again, perhaps all the way
out to the Oort Cloud with its unknown mysteries and its remote but
inexhaustible wealth of ice. Yet some conflict of schedules had always
upset their plans, so this was a wished - for future that wo uld never exist.

Another long - desired goal Poole had managed to achieve  -  despite
doctor ’s orders. He had been down to Earth: and once was quite enough.

The vehicle in which he had travelled looked almost identical to the
wheelchairs used by the luckier  paraplegics of his own time. It was
motorized, and had balloon tyres which allowed it to roll over reasonably
smooth surfaces. However, it could also fly  -  at an altitude of about twenty
centimetres  -  on an aircushion produced by a set of small but very po werful
fans. Poole was surprised that so primitive a technology was still in use, but
inertia - control devices were too bulky for such small - scale applications.

Seated comfortably in his hoverchair, he was scarcely conscious of his
increasing weight as he  descended into the heart of Africa; though he did notice
some difficulty in breathing, he had experienced far worse during his astronaut
training. What he was not prepared for was the blast of furnace - heat that smote
him as he rolled out of the gigantic, s ky - piercing cylinder that formed the base of
the Tower. Yet it was still morning: what would it be like at noon?

He had barely accustomed himself to the heat when his sense of
smell was assailed. A myriad odours  -  none unpleasant, but all
unfamiliar  -  cla moured for his attention. He closed his eyes for a few
minutes, in an attempt to avoid overloading his input circuits.

Before he had decided to open them again, he felt some large, moist
object palpating the back of his neck.

‘Say hello to Elizabeth, ’ sa id his guide, a burly young man dressed in
traditional Great White Hunter garb, much too smart to have seen any
real use:  ’she ’s our official greeter. ’

Poole twisted round in his chair, and found himself looking into the
soulful eyes of a baby elephant.

‘Hello, Elizabeth, ’ he answered, rather feebly. Elizabeth lifted her

trunk in salute, and emitted a sound not usually heard in polite society,
though Poole felt sure it was well - intentioned.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Altogether, he spent less than an hour on Planet Earth, skirting  the edge of a
jungle whose stunted trees compared unfavourably with Skyland ’s, and
encountering much of the local fauna. His guides apologized for the friendliness
of the lions, who had been spoilt by tourists  -  but the malevolent expressions of
the croco diles more than compensated; here was Nature raw and unchanged.

Before he returned to the Tower, Poole risked taking a few steps away
from his hoverchair. He realized that this would be the equivalent of
carrying his own weight on his back, but that did n ot seem an impossible
feat, and he would never forgive himself unless he attempted it.

It was not a good idea; perhaps he should have tried it in a cooler
climate. After no more than a dozen steps, he was glad to sink back into
the luxurious clutches of t he chair.
‘That ’s enough, ’ he said wearily.  ‘Let ’s go back to the Tower. ’
As he rolled into the elevator lobby, he noticed a sign which he had
somehow overlooked during the excitement of his arrival. It read:
WELCOME TO AFRICA!
‘In wildness is the preserva tion of the world. ’
HENRY DAVID THOREAU
(1817 - 1862)
Observing Poole ’s interest, the guide asked  ‘Did you know him? ’

It was the sort of question Poole heard all too often, and at the
moment he did not feel equipped to deal with it.

‘I don ’t think so, ’ he  answered wearily, as the great doors closed behind
them, shutting out the sights, scents and sounds of Mankind ’s earliest home.
His vertical safari had satisfied his need to visit Earth, and he did his
best to ignore the various aches and pains acquired th ere when he
returned to his apartment at Level 10,000  -  a prestigious location, even
in this democratic society. Indra, however, was mildly shocked by his
appearance, and ordered him straight to bed.

‘Just like Antaeus  -  but in reverse! ’ she muttered dark ly.  ‘Who? ’ asked
Poole: there were times when his wife ’s erudition was a little overwhelming,
but he had determined never to let it give him an inferiority complex.

‘Son of the Earth Goddess, Gaea. Hercules wrestled with him  -  but
every time he was thrown  to the ground, Antaeus renewed his strength. ’
‘Who won? ’
‘Hercules, of course  -  by holding Antaeus in the air, so Ma couldn ’t
recharge his batteries. ’

‘Well, I ’m sure it won ’t take me long to recharge mine. And I ’ve learned one
lesson. If I don ’t get mor e exercise, I may have to move up to Lunar Gravity

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

level. ’

Poole ’s good resolution lasted a full month: every morning he went for a
brisk five - kilometre walk, choosing a different level of the Africa Tower each
day. Some floors were still vast, echoing d eserts of metal which would
probably never be occupied, but others had been landscaped and developed
over the centuries in a bewildering variety of architectural styles. Many were
borrowings from past ages and cultures; others hinted at futures which Poole
would not care to visit. At least there was no danger of boredom, and on many
of his walks he was accompanied, at a respectful distance, by small groups of
friendly children. They were seldom able to keep up with him for long.
One day, as Poole was stridi ng down a convincing  -  though sparsely
populated  -  imitation of the Champs Elyse´es, he suddenly spotted a
familiar face.
‘Danil! ’ he called.
The other man took not the slightest notice, even when Poole called
again, more loudly.
‘Don ’t you remember me? ’
D anil  -  and now that he had caught up with him, Poole did not have
the slightest doubt of his identity  -  looked genuinely baffled.

‘I ’m sorry, ’ he said.  ‘You ’re Commander Poole, of course. But I ’m
sure we ’ve never met before. ’
Now it was Poole ’s turn to be  embarrassed.
‘Stupid of me, ’ he apologized.  ‘Must have mistaken you for someone
else. Have a good day. ’

He was glad of the encounter, and was pleased to know that Danil
was back in normal society. Whether his original crime had been axe -
murders or overdu e library books should no longer be the concern of his
one - time employer; the account had been settled, the books closed.
Although Poole sometimes missed the cops - and - robbers dramas he had
often enjoyed in his youth, he had grown to accept the current wisd om:
excessive interest in pathological behaviour was itself pathological.

With the help of Miss Pringle, Mk III, Poole had been able to schedule his
life so that there were even occasional blank moments when he could relax
and set his Braincap on Random S earch, scanning his areas of interest.
Outside his immediate family, his chief concerns were still among the moons
of Jupiter/Lucifer, not least because he was recognized as the leading expert
on the subject, and a permanent member of the Europa Committee.

This had been set up almost a thousand years ago, to consider what, if
anything, could and should be done about the mysterious satellite. Over the

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

centuries, it had accumulated a vast amount of information, going all the
way back to the Voyager flybys of  1979 and the first detailed surveys
from the orbiting Galileo spacecraft of 1996.
Like most long - lived organizations, the Europa Committee had become
slowly fossilized, and now met only when there was some new development.
It had woken up with a start aft er Halman ’s reappearance, and appointed an
energetic new chairperson whose first act had been to co - opt Poole.
Though there was little that he could contribute that was not already
recorded, Poole was very happy to be on the Committee. It was
obviously his  duty to make himself available, and it also gave him an
official position he would otherwise have lacked. Previously his status
was what had once been called a  ‘national treasure ’, which he found
faintly embarrassing. Although he was glad to be supported  in luxury by
a world wealthier than all the dreams of war - ravaged earlier ages could
have imagined, he felt the need to justify his existence.

He also felt another need, which he seldom articulated even to himself.
Halman had spoken to him, if only briefl y, at their strange encounter two
decades ago. Poole was certain that, if he wished, Halman could easily do
so again. Were all human contacts no longer of interest to him? He hoped
that was not the case; yet that might be one explanation of his silence.

H e was frequently in touch with Theodore Khan  -  as active and acerbic
as ever, and now the Europa Committee ’s representative on Ganymede.
Ever since Poole had returned to Earth, Ted had been trying in vain to
open a channel of communication with Bowman. He  could not understand
why long lists of important questions on subjects of vital philosophical and
historic interest received not even brief acknowledgements.

‘Does the Monolith keep your friend Halman so busy that he can ’t talk to
me? ’ he complained to Po ole.  ‘What does he do with his time, anyway? ’

It was a very reasonable question; and the answer came, like a
thunderbolt out of a cloudless sky, from Bowman himself  -  as a perfectly
commonplace vidphone call.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


33 Contact

‘Hello , Frank. This is Dave. I have a very important message for you. I assume
that you are now in your suite in Africa Tower. If you are there, please identify
yourself by giving the name of our instructor in orbital mechanics. I will wait for
sixty seconds, an d if there is no reply will try again in exactly one hour. ’ That
minute was hardly long enough for Poole to recover from the shock. He felt a
brief surge of delight, as well as astonishment, before another emotion took over.
Glad though he was to hear from  Bowman again, that phrase  ‘a very
important message ’ sounded distinctly ominous.

At least it was fortunate, Poole told himself, that he ’s asked for one of
the few names I can remember. Yet who could forget a Scot with a
Glasgow accent so thick it had tak en them a week to master it? But he
had been a brilliant lecturer  -  once you understood what he was saying.
‘Dr Gregory McVitty. ’
‘Accepted. Now please switch on your Braincap receiver. It will take
three minutes to download this message. Do not attempt to  monitor: I am
using ten - to - one compression. I will wait two minutes before starting. ’

How is he managing to do this? Poole wondered. Jupiter/Lucifer was
now over fifty light - minutes away, so this message must have left almost
an hour ago. It must have be en sent with an intelligent agent in a
properly addressed package on the Ganymede - Earth beam  -  but that
would have been a trivial feat to Halman, with the resources he had
apparently been able to tap inside the Monolith.

The indicator light on the Brainbo x was flickering. The message was
coming through.

At the compression Halman was using, it would take half an hour for
Poole to absorb the message in real - time. But he needed only ten
minutes to know that his peaceful life - style had come to an abrupt end

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


34 Judgement

In a world of universal and instantaneous communication, it was very
difficult to keep secrets. This was a matter, Poole decided immediately,
for face - to - face discussion.
The Europa Committee had grumbled, but all i ts members had
assembled in his apartment. There were seven of them  -  the lucky number,
doubtless suggested by the phases of the Moon, that had always
fascinated Mankind. It was the first time Poole had met three of the
Committee ’s members, though by now h e knew them all more thoroughly
than he could possibly have done in a pre - Braincapped lifetime.

‘Chairperson Oconnor, members of the Committee  -  I ’d like to say a few
words  -  only a few, I promise!  -  before you download the message I ’ve received
from Euro pa. And this is something I prefer to do verbally; that ’s more natural for
me  -  I ’m afraid I ’ll never be quite at ease with direct mental transfer. ’

‘As you all know, Dave Bowman and Hal have been stored as
emulations in the Monolith on Europa. Apparently  it never discards a tool
it once found useful, and from time to time it activates Halman, to
monitor our affairs  -  when they begin to concern it. As I suspect my
arrival may have done  -  though perhaps I flatter myself. ’

‘But Halman isn ’t just a passive t ool. The Dave component still retains
something of its human origins  -  even emotions. And because we were
trained together  -  shared almost everything for years  -  he apparently finds it
much easier to communicate with me than with anyone else. I would like  to
think he enjoys doing it, but perhaps that ’s too strong a word. ’

‘He ’s also curious  -  inquisitive  -  and perhaps a little resentful of the way
he ’s been collected, like a specimen of wildlife. Though that ’s probably what
we are, from the viewpoint of th e intelligence that created the Monolith. ’
‘And where is that intelligence now? Halman apparently knows the
answer, and it ’s a chilling one. ’

‘As we always suspected, the Monolith is part of a galactic network of
some kind. And the nearest node  -  the Mono lith ’s controller, or
immediate superior  -  is 450 light - years away. ’

‘Much too close for comfort! This means that the report on us and our affairs

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

that was transmitted early in the twenty - first century was received half a
millennium ago. If the Monolith ’ s  -  let ’s say Supervisor  -  replied at once,
any further instructions should be arriving just about now. ’

‘And that ’s exactly what seems to be happening. During the last few days,
the Monolith has been receiving a continuous string of messages, and has
bee n setting up new programs, presumably in accordance with these. ’
‘Unfortunately, Halman can only make guesses about the nature of those
instructions. As you ’ll gather when you ’ve downloaded this tablet, he has some
limited access to many of the Monolith ’s  circuits and memory banks, and can
even carry on a kind of dialogue with it. If that ’s the right word  -  since you need
two people for that! I still can ’t really grasp the idea that the Monolith, for all its
powers, doesn ’t possess consciousness  -  doesn ’t e ven know that it exists! ’

‘Halman ’s been brooding over the problem for a thousand years  -  on and off

-   and has come to the same answer that most of us have done. But his
conclusion must surely carry far more weight, because of his inside knowledge. ’

‘Sorr y! I wasn ’t intending to make a joke  -  but what else could you call it? ’
‘Whatever went to the trouble of creating us  -  or at least tinkering with our
ancestors ’ minds and genes  -  is deciding what to do next. And Halman is
pessimistic. No  -  that ’s an exagg eration. Let ’s say he doesn ’t think much
of our chances, but is now too detached an observer to be unduly
worried. The future  -  the survival!  -  of the human race isn ’t much more
than an interesting problem to him, but he ’s willing to help. ’

Poole suddenly  stopped talking, to the surprise of his intent audience.
‘That ’s strange. I ’ve just had an amazing flashback… I ’m sure it explains
what ’s happening. Please bear with me. ’
‘Dave and I were walking together one day, along the beach at the
Cape, a few weeks  before launch, when we noticed a large beetle lying
on the sand. As often happens, it had fallen on its back and was waving
its legs in the air, struggling to get right - way - up. ’

‘I ignored it  -  we were engaged in some complicated technical discussion  -
bu t not Dave. He stepped aside, and carefully flipped it over with his shoe. As
it flew away I commented,  “Are you sure that was a good idea? Now it will go
off and chomp somebody ’s prize chrysanthemums. ” And he answered,
“Maybe you ’re right. But I ’d like to  give it the benefit of the doubt. ”
‘My apologies  -  I ’d promised to say only a few words! But I ’m very glad I
remembered that incident: I really believe it puts Halman ’s message in the
right perspective. He ’s giving the human race the benefit of the doubt… ’

‘Now please check your Braincaps. This is a high - density recording  -  top of

the u.v. band, Channel 110. Make yourselves comfortable, but be sure you ’re

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

free line of sight. Here we go… ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


35 Council of War

No one asked for a r eplay. Once was sufficient.

There was a brief silence when the playback finished; then Chairperson Dr
Oconnor removed her Braincap, massaged her shining scalp, and said slowly:
‘You taught me a phrase from your period that seems very
appropriate now. This  is a can of worms. ’

‘But only Bowman  -  Halman  -  has opened it, ’ said one of the Committee
members.  ‘Does he really understand the operation of something as complex
as the Monolith? Or is this whole scenario a figment of his imagination? ’
‘I don ’t think h e has much imagination, ’ Dr Oconnor answered.  ‘And
everything checks perfectly. Especially the reference to Nova Scorpio.
We assumed that was an accident; apparently it was a  -  judgement. ’

‘First Jupiter  -  now Scorpio, ’ said Dr Kraussman, the distinguishe d physicist
who was popularly regarded as a reincarnation of the legendary Einstein. A little
plastic surgery, it was rumoured, had also helped.  ‘Who will be next in line? ’

‘We always guessed, ’ said the Chair,  ‘that the TMAs were monitoring us. ’
She pause d for a moment, then added ruefully:  ‘What bad  -  what incredibly bad!

-   luck that the fmal report went off, just after the very worst period in
human history! ’

There was another silence. Everyone knew that the twentieth century
had often been branded  ‘The  Century of Torture ’

Poole listened without interrupting, while he waited for some consensus to
emerge. Not for the first time, he was impressed by the quality of the
Committee No one was trying to prove a pet theory, score debating points, or
inflate an e go: he could not help drawing a contrast with the often bad -
tempered arguments he had heard in own time, between Space Agency
engineers and administrators, Congressional staffs, and industrial executives.
Yes, the human race had undoubtedly improved. The B raincap had not
only helped to weed out misfits, but had enormously increased the
efficiency of education. Yet there had also been a loss; there were very few
memorable characters in this society. Offhand he could think of only four  -
Indra, Captain Chandl er, Dr Khan and the Dragon Lady of wistful memory.

The Chairperson let the discussion flow smoothly back and forth until

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

everyone had had a say, then began her summing up.

‘The obvious first question  -  how seriously should we take this threat
-  isn ’t wo rth wasting time on. Even if it ’s a false alarm, or a
misunderstanding, it ’s potentially so grave that we must assume it ’s real,
until we have absolute proof to the contrary. Agreed? ’

‘Good. And we don ’t know how much time we have. So we must
assume that  the danger is immediate. Perhaps Halman may be able to
give us some further warning, but by then it may be too late. ’

‘So the only thing we have to decide is: how can we protect
ourselves, against something as powerful as the Monolith? Look what
happened  to Jupiter! And, apparently, Nova Scorpio… ’

‘I ’m sure that brute force would be useless, though perhaps we
should explore that option. Dr Kraussman  -  how long would it take to
build a super - bomb? ’

‘Assuming that the designs still exist, so that no resear ch is necessary  -
oh, perhaps two weeks. Thermonuclear weapons are rather simple, and
use common materials  -  after all, they made them back in the Second
Millennium! But if you wanted something sophisticated  -  say an antimatter
bomb, or a mini - black - hole  -  well, that might take a few months. ’

‘Thank you: could you start looking into it? But as I ’ve said, I don ’t
believe it would work; surely something that can handle such powers must
also be able to protect itself against them. So  -  any other suggestions? ’

‘Can we negotiate? ’ one councillor asked, not very hopefully.
‘With what… or whom? ’ Kraussman answered.  ‘As we ’ve discovered,
the Monolith is essentially a pure mechanism, doing just what it ’s been
programmed to do. Perhaps that program is flexible enoug h to allow of
changes, but there ’s no way we can tell. And we certainly can ’t appeal to
Head Office  -  that ’s half a thousand light - years away! ’

Poole listened without interrupting; there was nothing he could contribute
to the discussion, and indeed much o f it was completely over his head. He
began to feel an insidious sense of depression, would it have been better, he
wondered, not to pass on this information? Then, if it was a false alarm, no
one would be any the worse. And if it was not  -  well, humanity  would still have
peace of mind, before whatever inescapable doom awaited it.
He was still mulling over these gloomy thoughts when he was
suddenly alerted by a familiar phrase.

A quiet little member of the Committee, with a name so long and

difficult that  Poole had never been able to remember, still less
pronounce it, had abruptly dropped just two words into the discussion.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘Trojan Horse! ’

There was one of those silences generally described as  ‘pregnant ’, then
a chorus of  ‘Why didn ’t I think of that! ’  ‘Of  course! ’  ‘Very good idea! ’ until
the Chairperson, for the first time in the session, had to call for order.

‘Thank you, Professor Thirugnanasampanthamoorthy, ’ said Dr
Oconnor, without missing a beat.  ‘Would you like to be more specific? ’

‘Certainly. If  the Monolith is indeed, as everyone seems to think,
essentially a machine without consciousness  -  and hence with only
limited self - monitoring ability  -  we may already have the weapons that
can defeat it. Locked up in the Vault. ’
‘And a delivery system  -  Ha lman! ’
‘Precisely. ’

‘Just a minute, Dr T. We know nothing  -  absolutely nothing  -  about
the Monolith ’s architecture. How can we be sure that anything our
primitive species ever designed would be effective against it? ’

‘We can ’t  -  but remember this. Howeve r sophisticated it is, the
Monolith has to obey exactly the same universal laws of logic that
Aristotle and Boole formulated, centuries ago. That ’s why it may  -  no,
should!  -  be vulnerable to the things locked up in the Vault. We have to
assemble them in s uch a way that at least one of them will work. It ’s our
only hope  -  unless anybody can suggest a better alternative. ’

‘Excuse me, ’ said Poole, finally losing patience.  ‘Will someone kindly
tell me  -  what and where is this famous Vault you ’re talking about ? ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


36 Chamber of Horrors

History is full of nightmares, some natural, some manmade.

By the end of the twenty - first century, most of the natural ones  -
smallpox, the Black Death, AIDS, the hideous viruses lurking in the African
jungle  -  had been eliminated, or at least brought under control, by the
advance of medicine. However, it was never wise to underestimate the
ingenuity of Mother Nature, and no one doubted that the future would still
have unpleasant biological surprises in  store for Mankind.

It seemed a sensible precaution, therefore, to keep a few specimens
of all these horrors for scientific study  -  carefully guarded, of course, so
that there was no possibility of them escaping and again wreaking havoc
on the human race.  But how could one be absolutely sure that there was
no danger of this happening?

There had been  -  understandably  -  quite an outcry in the late
twentieth century when it was proposed to keep the last known smallpox
viruses at Disease Control Centres in th e United States and Russia.
However unlikely it might be, there was a finite possibility that they might
be released by such accidents as earthquakes, equipment failures  -  or
even deliberate sabotage by terrorist groups.

A solution that satisfied everyone  (except a few  ‘Preserve the lunar
wilderness! ’ extremists) was to ship them to the Moon, and to keep them
in a laboratory at the end of a kilometre - long shaft drilled into the isolated
mountain Pico, one of the most prominent features of the Mare Imbrium.
And here, over the years, they were joined by some of the most
outstanding examples of misplaced human ingenuity  -  indeed, insanity.

There were gases and mists that, even in microscopic doses, caused
slow or instant death. Some had been created by religi ous cultists who,
though mentally deranged, had managed to acquire considerable
scientific knowledge. Many of them believed that the end of the world
was at hand (when, of course, only their followers would be saved). In
case God was absent - minded enough n ot to perform as scheduled, they
wanted to make sure that they could rectify His unfortunate oversight.

The first assaults of these lethal cultists were made on such vulnerable

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

targets as crowded subways, World Fairs, sports stadiums, pop concerts… tens
of thousands were killed, and many more injured before the madness was
brought under control in the early twenty - first century. As often happens, some
good came out of evil, because it forced the world ’s law - enforcement agencies to
co - operate as never befo re; even rogue states which had promoted political
terrorism were unable to tolerate this random and wholly unpredictable variety.

The chemical and biological agents used in these attacks  -  as well as in
earlier forms of warfare  -  joined the deadly collec tion in Pico. Their antidotes,
when they existed, were also stored with them. It was hoped that none of this
material would ever concern humanity again  -  but it was still available, under
heavy guard, if it was needed in some desperate emergency.
The third  category of items stored in the Pico vault, although they could be
classified as plagues, had never killed or injured anyone  -  directly. They had
not even existed before the late twentieth century, but in a few decades they
had done billions of dollars ’ w orth of damage, and often wrecked lives as
effectively as any bodily illness could have done. They were the diseases
which attacked Mankind ’s newest and most versatile servant, the computer.
Taking names from the medical dictionaries  -  viruses, prions, tap eworms  -
they were programs that often mimicked, with uncanny accuracy, the
behaviour of their organic relatives. Some were harmless  -  little more than
playful jokes, contrived to surprise or amuse Computer operators by
unexpected messages and images on th eir visual displays. Others were far
more malicious  -  deliberately designed agents of catastrophe.
In most cases their purpose was entirely mercenary; they were the
weapons that sophisticated criminals used to blackmail the banks and
commercial organizatio ns that now depended utterly upon the efficient
operation of their computer systems. On being warned that their data banks
would be erased automatically at a certain time, unless they transferred a few
megadollars to some anonymous offshore number, most vi ctims decided not
to risk possibly irreparable disaster. They paid up quietly, often  -  to avoid
public or even private embarrassment  -  without notifying the police.
This understandable desire for privacy made it easy for the network
highwaymen to conduct t heir electronic holdups: even when they were
caught, they were treated gently by legal systems which did not know
how to handle such novel crimes  -  and, after all, they had not really hurt
anyone, had they? Indeed, after they had served their brief sentenc es,
many of the perpetrators were quietly hired by their victims, on the old

principle that poachers make the best game - keepers.

These computer criminals were driven purely by greed, and certainly did not

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

wish to destroy the organizations they preyed upo n: no sensible parasite
kills its host. But there were other, and much more dangerous, enemies
of society at work…
Usually, they were maladjusted individuals  -  typically adolescent males  -
working entirely alone, and of course in complete secrecy. Their ai m was to
create programs which would simply create havoc and confusion, when they had
been spread over the planet by the world - wide cable and radio networks, or on
physical carriers such as diskettes and CD ROMS. Then they would enjoy the
resulting chaos,  basking in the sense of power it gave their pitiful psyches.

Sometimes, these perverted geniuses were discovered and adopted
by national intelligence agencies for their own secretive purposes  -
usually, to break into the data banks of their rivals. This w as a fairly
harmless line of employment, as the organizations concerned did at
least have some sense of civic responsibility.

Not so the apocalyptic sects, who were delighted to discover this new
armoury, holding weapons far more effective, and more easil y
disseminated, than gas or germs. And much more difficult to counter, since
they could be broadcast instantaneously to millions of offices and homes.

The collapse of the New York - Havana Bank in 2005, the launching of
Indian nuclear missiles in 2007 (luck ily with their warheads unactivated),
the shutdown of Pan - European Air Traffic Control in 2008, the paralysis
of the North American telephone network in that same year  -  all these
were cult - inspired rehearsals for Doomsday. Thanks to brilliant feats of
cou nterintelligence by normally uncooperative, and even warring,
national agencies, this menace was slowly brought under control.

At least, so it was generally believed: there had been no serious attacks
at the very foundations of society for several hundred  years. One of the
chief weapons of victory had been the Braincap  -  though there were some
who believed that this achievement had been bought at too great a cost.

Though arguments over the freedom of the Individual versus the duties of the
State were old  when Plato and Aristotle attempted to codify them, and would
probably continue until the end of time, some consensus had been reached in
the Third Millennium. It was generally agreed that Communism was the most
perfect form of government; unfortunately it  had been demonstrated  -  at the cost
of some hundreds of millions of lives  -  that it was only applicable to social
insects, Robots Class II, and similar restricted categories. For imperfect human
beings, the least - worst answer was Demosocracy, frequently de fined as
‘individual greed, moderated by an efficient but not too zealous government ’.


Soon after the Braincap came into general use, some highly intelligent  -  and

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

maximally zealous  -  bureaucrats realized that it had a unique potential as an
early - warnin g system. During the setting - up process, when the new wearer was
being mentally  ‘calibrated ’ it was possible to detect many forms of psychosis
before they had a chance of becoming dangerous. Often this suggested the best
therapy, but when no cure appeared  possible the subject could be electronically
tagged  -  or, in extreme cases, segregated from society. Of course, this mental
monitoring could test only those who were fitted with a Braincap  -  but by the end
of the Third Millennium this was as essential for  everyday life as the personal
telephone had been at its beginning. In fact, anyone who did not join the vast
majority was automatically suspect, and checked as a potential deviant.

Needless to say, when  ‘mind - probing ’, as its critics called it, started
co ming into general use, there were cries of outrage from civil - rights
organizations; one of their most effective slogans was  ‘Braincap or
Braincop? ’ Slowly  -  even reluctantly  -  it was accepted that this form of
monitoring was a necessary precaution against  far worse evils; and it
was no coincidence that with the general improvement in mental health,
religious fanaticism also started its rapid decline —

When the long - drawn - out war against the cybernet criminals ended, the
victors found themselves owning an em barrassing collection of spoils, all of
them utterly incomprehensible to any past conqueror. There were, of
course, hundreds of computer viruses, most of them very difficult to detect
and kill. And there were some entities  -  for want of a better name  -  tha t
were much more terrifying. They were brilliantly invented diseases for
which there was no cure  -  in some cases not even the possibility of a cure

Many of them had been linked to great mathematicians who would
have been horrified by this corruption of th eir discoveries. As it is a
human characteristic to belittle a real danger by giving it an absurd
name, the designations were often facetious: the Godel Gremlin, the
Mandelbrot Maze, the Combinatorial Catastrophe, the Transfinite Trap,
the Conway Conundrum , the Turing Torpedo, the Lorentz Labyrinth, the
Boolean Bomb, the Shannon Snare, the Cantor Cataclysm…

If any generalization was possible, all these mathematical horrors
operated on the same principle. They did not depend for their effectiveness
on anyth ing as naïve as memory - erasure or code corruption  -  on the
contrary. Their approach was more subtle; they persuaded their host
machine to initiate a program which could not be completed before the end
of the universe, or which  -  the Mandelbrot Maze was the  deadliest example

-  involved a literally infinite series of steps.

A trivial example would be the calculation of Pi, or any other irrational

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

number. However, even the most stupid electro - optic computer would
not fall into such a simple trap: the day had  long since passed when
mechanical morons would wear out their gears, grinding them to powder
as they tried to divide by zero…

The challenge to the demon programmers was to convince their targets
that the task set them had a definite conclusion that could  be reached in a
finite time. In the battle of wits between man (seldom woman, despite such
role - models as Lady Ada Lovelace, Admiral Grace Hopper and Dr Susan
Calvin) and machine, the machine almost invariably lost.

It would have been possible  -  though i n some cases difficult and even risky  -
to destroy the captured obscenities by ERASE/OVERWRITE commands, but
they represented an enormous investment in time and ingenuity which, however
misguided, seemed a pity to waste. And, more important, perhaps they s hould be
kept for study, in some secure location, as a safeguard against the time when
some evil genius might reinvent and deploy them.

The solution was obvious. The digital demons should be sealed with their
chemical and biological counterparts, it was h oped for ever, in the Pico Vault.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


37 Operation Damocles

Poole never had much contact with the team who assembled the
weapon everyone hoped would never have to be used. The operation  -
ominously, but aptly, named Damocles  -  was  so highly specialized that
he could contribute nothing directly, and he saw enough of the task force
to realize that some of them might almost belong to an alien species.
Indeed, one key member was apparently in a lunatic asylum  -  Poole had
been surprised  to find that such places still existed  -  and Chairperson
Oconnor sometimes suggested that at least two others should join him.

‘Have you ever heard of the Enigma Project? ’ she remarked to Poole, after
a particularly frustrating session. When he shook his  head, she continued:  ‘I ’m
surprised  -  it was only a few decades before you were born: I came across it
while when I was researching material for Damocles. Very similar problem  -  in
one of your wars, a group of brilliant mathematicians was gathered together ,
in great secrecy, to break an enemy code… incidentally, they built one of the
very first real computers, to make the job possible. ’
‘And there ’s a lovely story  -  I hope it ’s true  -  that reminds me of our own little
team. One day the Prime Minister came o n a visit of inspection, and afterwards
he said to Enigma ’s Director:  “When I told you to leave no stone unturned to get
the men you needed, I didn ’t expect you to take me so literally ”. ’ Presumably all
the right stones had been turned for Project Damocles . However, as no one
knew whether they were working against a deadline of days, weeks or years, at
first it was hard to generate any sense of urgency. The need for secrecy also
created problems; since there was no point in spreading alarm throughout the
So lar System, not more than fifty people knew of the project. But they were the
people who mattered  -  who could marshal all the forces necessary, and who
alone could authorize the opening of the Pico Vault, for the first time in

five hundred years.
When Hal man reported that the Monolith was receiving messages with
increasing frequency, there seemed little doubt that something was going to
happen. Poole was not the only one who found it hard to sleep in those days,
even with the help of the Braincap ’s anti - in somnia programs. Before he finally did

get to sleep, he often wondered if he would wake up again. But at last all the

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

components of the weapon were assembled  -  a weapon invisible,
untouchable and unimaginable to almost all the warriors who had ever lived.

Nothing could have looked more harmless and innocent than the perfectly
standard terabyte memory tablet, used with millions of Braincaps every day. But
the fact that it was encased in a massive block of crystalline material, criss -
crossed with metal band s, indicated that it was something quite out of the
ordinary. Poole received it with reluctance; he wondered if the courier who had
been given the awesome task of carrying the Hiroshima atom bomb ’s core to the
Pacific airbase from which it was launched had  felt the same way. And yet, if all
their fears were justified, his responsibility might be even greater.

And he could not be certain that even the first part of his mission
would be successful. Because no circuit could be absolutely secure,
Halman had no t yet been informed about Project Damocles; Poole would
do that when he returned to Ganymede.

Then he could only hope that Halman would be willing to play the role
of Trojan Horse  -  and, perhaps, be destroyed in the process.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


38  Pre - emptive Strike

It was strange to be back in the Hotel Grannymede after all these years  -
strangest of all, because it seemed completely unchanged, despite everything
that had happened. Poole was still greeted by the familiar image of Bowman as
he wal ked into the suite named after him: and, as he expected, Bowman/Halman
was waiting, looking slightly less substantial than the ancient hologram.

Before they could even exchange greetings, there was an
interruption that Poole would have welcomed  -  at any o ther time than
this. The room vidphone gave its urgent trio of rising notes  -  also
unchanged since his last visit  - and an old friend appeared on the screen.

‘Frank! ’ cried Theodore Khan,  ‘why didn ’t you tell me you were
coming! When can we meet? Why no vi deo  -  someone with you? And
who were all those official - looking types who landed at the same time  - ’

‘Please Ted! Yes, I ’m sorry  -  but believe me, I ’ve got very good
reasons  -  I ’ll explain later. And I do have someone with me  -  call you
back just as soon  as I can. Good - bye! ’

As he belatedly gave the  ‘Do Not Disturb ’ order, Poole said apologetically:

‘Sorry about that  -  you know who it was, of course. ’
‘Yes  -  Dr Khan. He often tried to get in touch with me. ’

‘But you never answered. May I ask why? ’ Thoug h there were far more
important matters to worry about, Poole could not resist putting the question.
‘Ours was the only channel I wished to keep open. Also, I was often
away. Sometimes for years. ’

That was surprising  -  yet it should not have been. Poole k new well
enough that Halman had been reported in many places, in many times.
Yet  -   ‘away for years ’? He might have visited quite a few star systems  -
perhaps that was how he knew about Nova Scorpio, only forty light -
years distant. But he could never have g one all the way to the Node;
there and back would have been a nine - hundred - year journey.

‘How lucky that you were here when we needed you! ’ It was very
unusual for Halman to hesitate before replying. There was much longer
than the unavoidable three - second  time - lag before he said slowly  ‘Are

you sure that it was luck? ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

‘What do you mean? ’

‘I do not wish to talk about it, but twice I have  -  glimpsed  -  powers  -  entities

-   far superior to the Monoliths, and perhaps even their makers. We may
both have less fre edom than we imagine. ’

That was indeed a chilling thought; Poole needed a deliberate effort
of will to put it aside and concentrate on the immediate problem.

‘Let us hope we have enough free - will to do what is necessary.
Perhaps this is a foolish questio n. Does the Monolith know that we are
meeting? Could it be  -  suspicious? ’

‘It is not capable of such an emotion. It has numerous fault - protection
devices, some of which I understand. But that is all. ’

‘Could it be overhearing us
now? ’  ‘I do not believe s o. ’

I wish that I could be sure it was such a naïve and simple - minded super -
genius, thought Poole as he unlocked his briefcase and took out the sealed
box containing the tablet. In this low gravity its weight was almost negligible; it
was impossible to be lieve that it might hold the destiny of Mankind.
‘There was no way we could be certain of getting a secure circuit to you, so
we couldn ’t go into details. This tablet contains programs which we hope will
prevent the Monolith from carrying out any orders wh ich threaten Mankind. There
are twenty of the most devastating viruses ever designed on this, most of which
have no known antidote; in some cases, it is believed that none is possible.
There are five copies of each. We would like you to release them when

-   and if  -  you think it is necessary. Dave  -  Hal  -  no one has ever been
given such a responsibility. But we have no other choice. ’

Once again, the reply seemed to take longer than the three - second
round trip from Europa.

‘If we do this, all the Monolith ’s  functions may cease. We are
uncertain what will happen to us then. ’

‘We have considered that, of course. But by this lime, you must
surely have many facilities at your command  - some of them probably
beyond our understanding. I am also sending you a petaby te memory
tablet. Ten to the fifteenth bytes is more than sufficient to hold all the
memories and experiences of many lifetimes. This will give you one
escape route: I suspect you have others. ’

‘Correct. We will decide which to use at the appropriate time . ’
Poole relaxed  -  as far as was possible in this extraordinary situation.
Halman was willing to co - operate: he still had sufficient links with his origins.

‘Now, we have to get this tablet to you  -  physically. Its contents are too

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

dangerous to risk sendi ng over any radio or optical channel. I know you
possess long - range control of matter: did you not once detonate an
orbiting bomb? Could you transport it to Europa? Alternatively, we could
send it in an auto - courier, to any point you specify. ’

‘That would  be best: I will collect it in Tsienville. Here are the co -
ordinates…

Poole was still slumped in his chair when the Bowman Suite monitor
admitted the head of the delegation that had accompanied him from
Earth. Whether Colonel Jones was a genuine Colonel  -  or even if his
name was Jones  -  were minor mysteries which Poole was not really
interested in solving; it was sufficient that he was a superb organizer and
had handled the mechanics of Operation Damocles with quiet efficiency.

‘Well, Frank  -  it ’s on its  way. Will be landing in one hour, ten minutes.
I assume that Halman can take it from there, but I don ’t understand how
he can actually handle  -  is that the right word?  -  these tablets. ’

‘I wondered about that, until someone on the Europa Committee
explain ed it. There ’s a well - known  -  though not to me!  -  theorem stating that
any computer can emulate any other computer. So I ’m sure that Halman
knows exactly what he ’s doing. He would never have agreed otherwise. ’

‘I hope you ’re right, ’ replied the Colonel.  ‘ If not  -  well, I don ’t know
what alternative we have. ’

There was a gloomy pause, until Poole did his best to relieve the
tension.  ‘By the way, have you heard the local rumour about our
visit? ’  ‘Which particular one? ’

‘That we ’re a special commission sent  here to investigate crime and
corruption in this raw frontier township. The Mayor and the Sheriff are
supposed to be running scared. ’

‘How I envy them, ’ said  ‘Colonel Jones ’.  ‘Sometimes it ’s quite a relief
to have something trivial to worry about. ’

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


300 1: The Final  Odyssey


39 Deicide

Like all the inhabitants of Anubis City (population now 56,521), Dr
Theodore Khan woke soon after local midnight to the sound of the General
Alarm. His first reaction was  ‘Not another Icequake, for Deus ’s sake! ’

He rushe d to the window, shouting  ‘Open ’ so loudly that the room did
not understand, and he had to repeat the order in a normal voice. The
light of Lucifer should have come streaming in, painting the patterns on
the floor that so fascinated visitors from Earth, be cause they never
moved even a fraction of a millimetre, no matter how long they waited…

That unvarying beam of light was no longer there. As Khan stared in
utter disbelief through the huge, transparent bubble of the Anubis Dome,
he saw a sky that Ganymede  had not known for a thousand years. It was
once more ablaze with stars; Lucifer had gone.

And then, as he explored the forgotten constellations, Kahn noticed
something even more terrifying. Where Lucifer should have been was a
tiny disc of absolute black ness, eclipsing the unfamiliar stars.

There was only one possible explanation, Khan told himself numbly.
Lucifer has been swallowed by a Black Hole. And it may be our turn next.

On the balcony of the Grannymede Hotel, Poole was watching the
same spectacl e, but with more complex emotions. Even before the
general alarm, his comsec had woken him with a message from Halman.

‘It is beginning. We have infected the Monolith. But one  -  perhaps
several  -  of the viruses have entered our own circuits. We do not kno w if
we will be able to use the memory tablet you have given us. If we
succeed, we will meet you in Tsienville. ’

Then came the surprising and strangely moving words whose exact
emotional content would be debated for generations:

‘If we are unable to down load, remember us. ’ From the room behind him,
Poole heard the voice of the Mayor, doing his best to reassure the now sleepless
citizens of Anubis. Though he opened with that most terrifying of official
statements  -   ‘No cause for alarm ’  -  the Mayor did inde ed have words of comfort.

‘We don ’t know what ’s happening but Lucifer ’s still shining normally! I

repeat  -  Lucifer is still shining! We ’ve just received news from the interorbit

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

shuttle Alcyone, which left for Callisto half an hour ago. Here ’s their view
- , Poole left the balcony and rushed into his room just in time to see
Lucifer blaze reassuringly on the vidscreen.

‘What ’s happened, ’ the Mayor continued breathlessly,  ‘is that
something has caused a temporary eclipse  -  we ’ll zoom in to look at it…
Call isto Observatory, come in please… ’

How does he know it ’s  ‘temporary ’? thought Poole, as he waited for
the next image to come up on the screen.

Lucifer vanished, to be replaced by a field of stars. At the same time, the

Mayor faded out and another voice  took over:
‘ -  two - metre telescope, but almost any instrument will do. It ’s a disc of
perfectly black material, just over ten thousand kilometres across, so thin
it shows no visible thickness. And it ’s placed exactly  -  obviously
deliberately  - to block Ganym ede from receiving any light.

‘We ’ll zoom in to see if it shows any details, though I rather doubt it… ’ From
the viewpoint of Callisto, the occulting disc was foreshortened into an

oval, twice as long as it was wide. It expanded until it completely fille d
the screen; thereafter, it was impossible to tell whether the image was
being zoomed, as it showed no structure whatsoever.

‘As I thought  -  there ’s nothing to see. Let ’s pan over to the edge of
the thing… ’

Again there was no sense of motion, until a fi eld of stars suddenly appeared,
sharply defined by the curving edge of the world - sized disc. It was exactly as if
they were looking past the horizon of an airless, perfectly smooth planet.

No, it was not perfectly smooth…
‘That ’s interesting, ’ commented t he astronomer, who until now had sounded
remarkably matter - of - fact, as if this sort of thing was an everyday occurrence.
‘The edge looks jagged  -  but in a very regular fashion  -  like a saw - blade… ’

A circular saw Poole muttered under his breath. Is it goin g to carve
us up? Don ’t be ridiculous…

‘This is as close as we can get before diffraction spoils the image  -
we ’ll process it later and get much better detail: ’

The magnification was now so great that all trace of the disc ’s circularity had
vanished. Acr oss the vidscreen was a black band, serrated along its edge with
triangles so identical that Poole found it hard to avoid the ominous analogy of a
saw - blade. Yet something else was nagging at the back of his mind…

Like everyone else on Ganymede, he watche d the infinitely more
distant stars drifting in and out of those geometrically perfect valleys. Very

probably, many others jumped to the same conclusion even before he did.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

If you attempt to make a disc out of rectangular blocks  - whether their
proportions  are 1:4:9 or any other  -  it cannot possibly have a smooth
edge. Of course, you can make it as near a perfect circle as you like, by
using smaller and smaller blocks. Yet why go to that trouble, if you
merely wanted to build a screen large enough to eclips e a sun?

The Mayor was right; the eclipse was indeed temporary. But its
ending was the precise opposite of a solar one.

First light broke through at the exact centre, not in the usual necklace of
Bailey ’s Beads along the very edge. Jagged lines radiated  from a dazzling
pinhole  -  and now, under the highest magnification, the structure of the disc
was being revealed. It was composed of millions of identical rectangles,
perhaps the same size as the Great Wall of Europa. And now they were
splitting apart: it  was as if a gigantic jigsaw puzzle was being dismantled.

Its perpetual, but now briefly interrupted, daylight was slowly returning to
Ganymede, as the disc fragmented and the rays of Lucifer poured through the
widening gaps. Now the components themselves  were evaporating, almost as
if they needed the reinforcement of each other ’s contact to maintain reality.
Although it seemed like hours to the anxious watchers in Anubis City,
the whole event lasted for less than fifteen minutes. Not until it was all
over  did anyone pay attention to Europa itself.

The Great Wall was gone: and it was almost an hour before the news
came from Earth, Mars and Moon that the Sun itself had appeared to
flicker for a few seconds, before resuming business as usual.

It had been a h ighly selective set of eclipses, obviously targeted at
humankind. Nowhere else in the Solar System would anything have
been noticed.

In the general excitement, it was a little longer before the world
realized that TMA ZERO and TMA ONE had both vanished, l eaving only
their four - million - year - old imprints on Tycho and Africa.

It was the first time the Europs could ever have met humans, but they
seemed neither alarmed nor surprised by the huge creatures moving
among them at such lightning speed. Of course, it  was not too easy to
interpret the emotional state of something that looked like a small, leafless
bush, with no obvious sense organs or means of communication. But if
they were frightened by the arrival of Alcyone, and the emergence of its
passengers, the y would surely have remained hiding in their igloos.

As Frank Poole, slightly encumbered by his protective suit and the gift of
shining copper wire he was carrying, walked into the untidy suburbs of

Tsienville, he wondered what the Europs thought of recen t events. For them,

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

there had been no eclipse of Lucifer, but the disappearance of the Great
Wall must surely have been a shock. It had stood there for a thousand
years, as a shield and doubtless much more; then, abruptly, it was gone,
as if it had never  been…

The petabyte tablet was waiting for him, with a group of Europs
standing around it, demonstrating the first sign of curiosity that Poole
had ever observed in them. He wondered if Halman had somehow told
them to watch over this gift from space, until  he came to collect it.

And to take it back, since it now contained not only a sleeping friend
but terrors which some future age might exorcise, to the only place
where it could be safely stored.

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


3001: The Final  Odyssey


40 Midnight: Pico

It would be  hard, Poole thought, to imagine a more peaceful scene  -
especially after the trauma of the last weeks. The slanting rays of a nearly
full Earth revealed all the subtle details of the waterless Sea of Rains  -  not
obliterating them, as the incandescent fury  of the Sun would do.

The small convoy of mooncars was arranged in a semicircle a hundred
metres from the inconspicuous opening at the base of Pico that was the
entrance to the Vault. From this viewpoint, Poole could see that the mountain
did not live up t o the name that the early astronomers, misled by its pointed
shadow, had given to it. It was more like a rounded hill than a sharp peak, and
he could well believe that one of the local pastimes was bicycle - riding to the
summit. Until now, none of those spo rtsmen and women could have guessed
at the secret hidden beneath their wheels: he hoped that the sinister
knowledge would not discourage their healthy exercise.
An hour ago, with a sense of mingled sadness and triumph, he had
handed over the tablet he had  brought  - never letting it out of his sight  -
from Ganymede directly to the Moon.

‘Good - bye, old friends, ’ he had murmured.  ‘You ’ve done well. Perhaps some
future generation will reawaken you. But on the whole  -  I rather hope not. ’

He could imagine, all t oo clearly, one desperate reason why Halman ’s
knowledge might be needed again. By now, surely, some message was on
its way to that unknown control centre, bearing the news that its servant on
Europa no longer existed. With reasonable luck, it would take 95 0 years,
give or take a few, before any response could be expected.

Poole had often cursed Einstein in the past; now he blessed him.
Even the powers behind the Monoliths, it now appeared certain, could
not spread their influence faster than the speed of l ight. So the human
race should have almost a millennium to prepare for the next encounter  -
if there was to be one. Perhaps by that time, it would be better prepared.

Something was emerging from the tunnel  -  the track - mounted, semi -
humanoid robot that had  carried the tablet into the Vault. It was almost comic to
see a machine enclosed in the kind of isolation suit used as protection against

deadly germs and here on the airless Moon! But no one was taking any chances,

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

however unlikely they might seem. Afte r all, the robot had moved among
those carefully sequestered nightmares, and although according to its
video cameras everything appeared in order, there was always a chance
that some vial had leaked, or some canister ’s seal had broken. The
Moon was a very  stable environment, but during the centuries it had
known many quakes and meteor impacts.

The robot came to a halt fifty metres outside the tunnel. Slowly, the
massive plug that sealed the Vault swung back into place, and began to
rotate in its threads, l ike a giant bolt being screwed into the mountain.

‘All not wearing dark glasses, please close your eyes or look away
from the robot! ’ said an urgent voice over the mooncar radio. Poole
twisted round in his seat, just in time to see an explosion of light o n the
roof of the vehicle. When he turned back to look at Pico, all that was left
of the robot was a heap of glowing slag; even to someone who had
spent much of his life surrounded by vacuum, it seemed altogether
wrong that tendrils of smoke were not slowl y spiralling up from it.

‘Sterilization completed, ’ said the voice of the Mission Controller.
‘Thank you, everybody. Now returning to Plato City. ’

How ironic  -  that the human race had been saved by the skilful
deployment of its own insanities! What moral , Poole wondered, could
one possibly draw from that?

He looked back at the beautiful blue Earth, huddling beneath its tattered
blanket of clouds for protection against the cold of space. Up there, a few
weeks from now, he hoped to cradle his first grandso n in his arms.

Whatever godlike powers and principalities lurked beyond the stars,
Poole reminded himself, for ordinary humans only two things were
important  -  Love and Death.

His body had not yet aged a hundred years: he still had plenty of time
for bot h.
EPILOGUE
‘Their little universe is very young, and its god is still a child. But it is
too soon to judge them; when We return in the Last Days, We will
consider what should be saved. ’




Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!

Document generation powered by free edition of Print2Flash. Get it from <a target='_blank' href='http://www.print2flash.com'>www.print2flash.com</a>!


ActionScript [AS3]

Section 1
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import fl.controls.*; import flash.display.*; import fl.core.*; import flash.events.*; import flash.geom.*; import fl.events.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 2
//ScrollPane (fl.containers.ScrollPane) package fl.containers { import fl.controls.*; import flash.display.*; import fl.core.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.net.*; import flash.system.*; import flash.ui.*; public class ScrollPane extends BaseScrollPane implements IFocusManagerComponent { protected var scrollDragHPos:Number; protected var loader:Loader; protected var yOffset:Number; protected var currentContent:Object; protected var xOffset:Number; protected var _source:Object;// = "" protected var scrollDragVPos:Number; protected var _scrollDrag:Boolean;// = false protected var contentClip:Sprite; private static var defaultStyles:Object = {upSkin:"ScrollPane_upSkin", disabledSkin:"ScrollPane_disabledSkin", focusRectSkin:null, focusRectPadding:null, contentPadding:0}; public function ScrollPane(){ _source = ""; _scrollDrag = false; super(); } public function get source():Object{ return (_source); } public function set source(_arg1:Object):void{ var _local2:*; clearContent(); if (isLivePreview){ return; }; _source = _arg1; if ((((_source == "")) || ((_source == null)))){ return; }; currentContent = getDisplayObjectInstance(_arg1); if (currentContent != null){ _local2 = contentClip.addChild((currentContent as DisplayObject)); dispatchEvent(new Event(Event.INIT)); update(); } else { load(new URLRequest(_source.toString())); }; } public function get bytesLoaded():Number{ return (((((loader == null)) || ((loader.contentLoaderInfo == null)))) ? 0 : loader.contentLoaderInfo.bytesLoaded); } protected function doDrag(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; _local2 = (scrollDragVPos - (mouseY - yOffset)); _verticalScrollBar.setScrollPosition(_local2); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, true); _local3 = (scrollDragHPos - (mouseX - xOffset)); _horizontalScrollBar.setScrollPosition(_local3); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, true); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; _local2 = calculateAvailableHeight(); switch (_arg1.keyCode){ case Keyboard.DOWN: verticalScrollPosition++; break; case Keyboard.UP: verticalScrollPosition--; break; case Keyboard.RIGHT: horizontalScrollPosition++; break; case Keyboard.LEFT: horizontalScrollPosition--; break; case Keyboard.END: verticalScrollPosition = maxVerticalScrollPosition; break; case Keyboard.HOME: verticalScrollPosition = 0; break; case Keyboard.PAGE_UP: verticalScrollPosition = (verticalScrollPosition - _local2); break; case Keyboard.PAGE_DOWN: verticalScrollPosition = (verticalScrollPosition + _local2); break; }; } protected function doStartDrag(_arg1:MouseEvent):void{ if (!enabled){ return; }; xOffset = mouseX; yOffset = mouseY; scrollDragHPos = horizontalScrollPosition; scrollDragVPos = verticalScrollPosition; stage.addEventListener(MouseEvent.MOUSE_MOVE, doDrag, false, 0, true); } public function get content():DisplayObject{ var _local1:Object; _local1 = currentContent; if ((_local1 is URLRequest)){ _local1 = loader.content; }; return ((_local1 as DisplayObject)); } public function get percentLoaded():Number{ if (loader != null){ return (Math.round(((bytesLoaded / bytesTotal) * 100))); }; return (0); } protected function endDrag(_arg1:MouseEvent):void{ stage.removeEventListener(MouseEvent.MOUSE_MOVE, doDrag); } public function update():void{ var _local1:DisplayObject; _local1 = contentClip.getChildAt(0); setContentSize(_local1.width, _local1.height); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:*; _local3 = contentClip.scrollRect; _local3.x = _arg1; contentClip.scrollRect = _local3; } public function refreshPane():void{ if ((_source is URLRequest)){ _source = _source.url; }; source = _source; } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } public function load(_arg1:URLRequest, _arg2:LoaderContext=null):void{ if (_arg2 == null){ _arg2 = new LoaderContext(false, ApplicationDomain.currentDomain); }; clearContent(); initLoader(); currentContent = (_source = _arg1); loader.load(_arg1, _arg2); } override protected function handleScroll(_arg1:ScrollEvent):void{ passEvent(_arg1); super.handleScroll(_arg1); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:*; _local3 = contentClip.scrollRect; _local3.y = _arg1; contentClip.scrollRect = _local3; } protected function initLoader():void{ loader = new Loader(); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, passEvent, false, 0, true); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onContentLoad, false, 0, true); loader.contentLoaderInfo.addEventListener(Event.INIT, passEvent, false, 0, true); contentClip.addChild(loader); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ drawBackground(); }; if (isInvalid(InvalidationType.STATE)){ setScrollDrag(); }; super.draw(); } override protected function configUI():void{ super.configUI(); contentClip = new Sprite(); addChild(contentClip); contentClip.scrollRect = contentScrollRect; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; } public function set scrollDrag(_arg1:Boolean):void{ _scrollDrag = _arg1; invalidate(InvalidationType.STATE); } protected function clearContent():void{ if (contentClip.numChildren == 0){ return; }; contentClip.removeChildAt(0); currentContent = null; if (loader != null){ try { loader.close(); } catch(e) { }; try { loader.unload(); } catch(e) { }; loader = null; }; } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = contentClip.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; contentClip.cacheAsBitmap = useBitmapScrolling; contentClip.scrollRect = contentScrollRect; contentClip.x = (contentClip.y = contentPadding); } override protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue((enabled) ? "upSkin" : "disabledSkin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function get bytesTotal():Number{ return (((((loader == null)) || ((loader.contentLoaderInfo == null)))) ? 0 : loader.contentLoaderInfo.bytesTotal); } protected function onContentLoad(_arg1:Event):void{ var _local2:*; update(); _local2 = calculateAvailableHeight(); calculateAvailableSize(); horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), availableWidth); verticalScrollBar.setScrollProperties(_local2, 0, (contentHeight - _local2), _local2); passEvent(_arg1); } public function get scrollDrag():Boolean{ return (_scrollDrag); } protected function setScrollDrag():void{ if (_scrollDrag){ contentClip.addEventListener(MouseEvent.MOUSE_DOWN, doStartDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, endDrag, false, 0, true); } else { contentClip.removeEventListener(MouseEvent.MOUSE_DOWN, doStartDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, endDrag); removeEventListener(MouseEvent.MOUSE_MOVE, doDrag); }; contentClip.buttonMode = _scrollDrag; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.containers
Section 3
//BaseButton (fl.controls.BaseButton) package fl.controls { import flash.display.*; import fl.core.*; import flash.events.*; import flash.utils.*; import fl.events.*; public class BaseButton extends UIComponent { protected var _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 4
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.core.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 5
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 6
//Label (fl.controls.Label) package fl.controls { import fl.core.*; import flash.text.*; import fl.events.*; public class Label extends UIComponent { protected var actualHeight:Number; protected var _html:Boolean;// = false protected var actualWidth:Number; protected var defaultLabel:String;// = "Label" protected var _savedHTML:String; public var textField:TextField; private static var defaultStyles:Object = {textFormat:null, embedFonts:false}; public function Label(){ defaultLabel = "Label"; _html = false; super(); text = defaultLabel; actualWidth = _width; actualHeight = _height; } public function get autoSize():String{ return (textField.autoSize); } public function get selectable():Boolean{ return (textField.selectable); } public function set text(_arg1:String):void{ if (_arg1 == text){ return; }; if (((componentInspectorSetting) && ((_arg1 == defaultLabel)))){ return; }; _html = false; textField.text = _arg1; if (textField.autoSize != TextFieldAutoSize.NONE){ invalidate(InvalidationType.SIZE); }; } public function get wordWrap():Boolean{ return (textField.wordWrap); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; if (textField.autoSize != TextFieldAutoSize.NONE){ invalidate(InvalidationType.SIZE); }; } public function set selectable(_arg1:Boolean):void{ textField.selectable = _arg1; } public function set autoSize(_arg1:String):void{ textField.autoSize = _arg1; invalidate(InvalidationType.SIZE); } public function set wordWrap(_arg1:Boolean):void{ textField.wordWrap = _arg1; if (textField.autoSize != TextFieldAutoSize.NONE){ invalidate(InvalidationType.SIZE); }; } override public function get height():Number{ if (((!((textField.autoSize == TextFieldAutoSize.NONE))) && (wordWrap))){ return (_height); }; return (actualHeight); } public function set htmlText(_arg1:String):void{ if (_arg1 == htmlText){ return; }; if (((componentInspectorSetting) && ((_arg1 == "")))){ return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; if (textField.autoSize != TextFieldAutoSize.NONE){ invalidate(InvalidationType.SIZE); }; } public function get text():String{ return (textField.text); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; if (textField.autoSize != TextFieldAutoSize.NONE){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } override protected function configUI():void{ super.configUI(); textField = new TextField(); addChild(textField); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; textField.wordWrap = false; } public function get htmlText():String{ return (textField.htmlText); } override public function setSize(_arg1:Number, _arg2:Number):void{ actualWidth = _arg1; actualHeight = _arg2; super.setSize(_arg1, _arg2); } override public function set width(_arg1:Number):void{ actualWidth = _arg1; super.width = _arg1; } protected function drawLayout():void{ var _local1:Boolean; var _local2:Number; var _local3:Number; _local1 = false; textField.width = width; textField.height = height; if (textField.autoSize != TextFieldAutoSize.NONE){ _local2 = textField.width; _local3 = textField.height; _local1 = ((!((_width == _local2))) || (!((_height == _local3)))); _width = _local2; _height = _local3; switch (textField.autoSize){ case TextFieldAutoSize.CENTER: textField.x = ((actualWidth / 2) - (textField.width / 2)); break; case TextFieldAutoSize.LEFT: textField.x = 0; break; case TextFieldAutoSize.RIGHT: textField.x = -((textField.width - actualWidth)); break; }; } else { textField.width = actualWidth; textField.height = actualHeight; textField.x = 0; }; if (_local1){ dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, true)); }; } override public function get width():Number{ if (((!((textField.autoSize == TextFieldAutoSize.NONE))) && (!(wordWrap)))){ return (_width); }; return (actualWidth); } protected function drawTextFormat():void{ var _local1:TextFormat; var _local2:Object; _local1 = (getStyleValue("textFormat") as TextFormat); if (_local1 == null){ _local2 = UIComponent.getStyleDefinition(); _local1 = (enabled) ? (_local2.defaultTextFormat as TextFormat) : (_local2.defaultDisabledTextFormat as TextFormat); }; textField.defaultTextFormat = _local1; textField.setTextFormat(_local1); if (((_html) && (!((_savedHTML == null))))){ htmlText = _savedHTML; }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 7
//LabelButton (fl.controls.LabelButton) package fl.controls { import flash.display.*; import fl.core.*; import flash.events.*; import fl.managers.*; import flash.text.*; import fl.events.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 8
//RadioButton (fl.controls.RadioButton) package fl.controls { import flash.display.*; import flash.events.*; import fl.managers.*; import flash.ui.*; public class RadioButton extends LabelButton implements IFocusManagerGroup { protected var _value:Object; protected var defaultGroupName:String;// = "RadioButtonGroup" protected var _group:RadioButtonGroup; private static var defaultStyles:Object = {icon:null, upIcon:"RadioButton_upIcon", downIcon:"RadioButton_downIcon", overIcon:"RadioButton_overIcon", disabledIcon:"RadioButton_disabledIcon", selectedDisabledIcon:"RadioButton_selectedDisabledIcon", selectedUpIcon:"RadioButton_selectedUpIcon", selectedDownIcon:"RadioButton_selectedDownIcon", selectedOverIcon:"RadioButton_selectedOverIcon", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public static var createAccessibilityImplementation:Function; public function RadioButton(){ defaultGroupName = "RadioButtonGroup"; super(); mode = "border"; groupName = defaultGroupName; } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = (background.x - _local2); uiFocusRect.y = (background.y - _local2); uiFocusRect.width = (background.width + (_local2 * 2)); uiFocusRect.height = (background.height + (_local2 * 2)); }; } private function setThis():void{ var _local1:RadioButtonGroup; _local1 = _group; if (_local1 != null){ if (_local1.selection != this){ _local1.selection = this; }; } else { super.selected = true; }; } override public function get autoRepeat():Boolean{ return (false); } override public function set autoRepeat(_arg1:Boolean):void{ } protected function handleClick(_arg1:MouseEvent):void{ if (_group == null){ return; }; _group.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case Keyboard.DOWN: setNext(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.UP: setPrev(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.LEFT: setPrev(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.RIGHT: setNext(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.SPACE: setThis(); _toggle = false; default: super.keyDownHandler(_arg1); break; }; } private function setNext(_arg1:Boolean=true):void{ var _local2:RadioButtonGroup; var _local3:IFocusManager; var _local4:int; var _local5:Number; var _local6:int; var _local7:*; _local2 = _group; if (_local2 == null){ return; }; _local3 = focusManager; if (_local3){ _local3.showFocusIndicator = true; }; _local4 = _local2.getRadioButtonIndex(this); _local5 = _local2.numRadioButtons; _local6 = _local4; if (_local4 != -1){ do { _local6++; _local6 = ((_local6)>(_local2.numRadioButtons - 1)) ? 0 : _local6; _local7 = _local2.getRadioButtonAt(_local6); if (((_local7) && (_local7.enabled))){ if (_arg1){ _local2.selection = _local7; }; _local7.setFocus(); return; }; if (((_arg1) && (!((_local2.getRadioButtonAt(_local6) == _local2.selection))))){ _local2.selection = this; }; this.drawFocus(true); } while (_local6 != _local4); }; } public function get group():RadioButtonGroup{ return (_group); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ super.keyUpHandler(_arg1); if ((((_arg1.keyCode == Keyboard.SPACE)) && (!(_toggle)))){ _toggle = true; }; } override public function get selected():Boolean{ return (super.selected); } override public function set toggle(_arg1:Boolean):void{ throw (new Error("Warning: You cannot change a RadioButtons toggle.")); } public function set value(_arg1:Object):void{ _value = _arg1; } public function set group(_arg1:RadioButtonGroup):void{ groupName = _arg1.name; } override public function set selected(_arg1:Boolean):void{ if ((((_arg1 == false)) || (selected))){ return; }; if (_group != null){ _group.selection = this; } else { super.selected = _arg1; }; } override protected function draw():void{ super.draw(); } override public function get toggle():Boolean{ return (true); } override protected function configUI():void{ var _local1:Shape; var _local2:Graphics; super.configUI(); super.toggle = true; _local1 = new Shape(); _local2 = _local1.graphics; _local2.beginFill(0, 0); _local2.drawRect(0, 0, 100, 100); _local2.endFill(); background = (_local1 as DisplayObject); addChildAt(background, 0); addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); } public function set groupName(_arg1:String):void{ if (_group != null){ _group.removeRadioButton(this); _group.removeEventListener(Event.CHANGE, handleChange); }; _group = ((_arg1)==null) ? null : RadioButtonGroup.getGroup(_arg1); if (_group != null){ _group.addRadioButton(this); _group.addEventListener(Event.CHANGE, handleChange, false, 0, true); }; } public function get value():Object{ return (_value); } override protected function drawLayout():void{ var _local1:Number; super.drawLayout(); _local1 = Number(getStyleValue("textPadding")); switch (_labelPlacement){ case ButtonLabelPlacement.RIGHT: icon.x = _local1; textField.x = (icon.x + (icon.width + _local1)); background.width = ((textField.x + textField.width) + _local1); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.LEFT: icon.x = ((width - icon.width) - _local1); textField.x = (((width - icon.width) - (_local1 * 2)) - textField.width); background.width = ((textField.width + icon.width) + (_local1 * 3)); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.TOP: case ButtonLabelPlacement.BOTTOM: background.width = (Math.max(textField.width, icon.width) + (_local1 * 2)); background.height = ((textField.height + icon.height) + (_local1 * 3)); break; }; background.x = Math.min((icon.x - _local1), (textField.x - _local1)); background.y = Math.min((icon.y - _local1), (textField.y - _local1)); } override protected function drawBackground():void{ } override protected function initializeAccessibility():void{ if (RadioButton.createAccessibilityImplementation != null){ RadioButton.createAccessibilityImplementation(this); }; } public function get groupName():String{ return (((_group)==null) ? null : _group.name); } private function setPrev(_arg1:Boolean=true):void{ var _local2:RadioButtonGroup; var _local3:IFocusManager; var _local4:int; var _local5:int; var _local6:*; _local2 = _group; if (_local2 == null){ return; }; _local3 = focusManager; if (_local3){ _local3.showFocusIndicator = true; }; _local4 = _local2.getRadioButtonIndex(this); _local5 = _local4; if (_local4 != -1){ do { --_local5; _local5 = ((_local5)==-1) ? (_local2.numRadioButtons - 1) : _local5; _local6 = _local2.getRadioButtonAt(_local5); if (((_local6) && (_local6.enabled))){ if (_arg1){ _local2.selection = _local6; }; _local6.setFocus(); return; }; if (((_arg1) && (!((_local2.getRadioButtonAt(_local5) == _local2.selection))))){ _local2.selection = this; }; this.drawFocus(true); } while (_local5 != _local4); }; } protected function handleChange(_arg1:Event):void{ super.selected = (_group.selection == this); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 9
//RadioButtonGroup (fl.controls.RadioButtonGroup) package fl.controls { import flash.events.*; public class RadioButtonGroup extends EventDispatcher { protected var _selection:RadioButton; protected var radioButtons:Array; protected var _name:String; private static var groups:Object; private static var groupCount:uint = 0; public function RadioButtonGroup(_arg1:String){ _name = _arg1; radioButtons = []; registerGroup(this); } public function getRadioButtonIndex(_arg1:RadioButton):int{ var _local2:int; var _local3:RadioButton; _local2 = 0; while (_local2 < radioButtons.length) { _local3 = (radioButtons[_local2] as RadioButton); if (_local3 == _arg1){ return (_local2); }; _local2++; }; return (-1); } public function get numRadioButtons():int{ return (radioButtons.length); } public function get name():String{ return (_name); } public function get selection():RadioButton{ return (_selection); } public function set selection(_arg1:RadioButton):void{ if ((((((_selection == _arg1)) || ((_arg1 == null)))) || ((getRadioButtonIndex(_arg1) == -1)))){ return; }; _selection = _arg1; dispatchEvent(new Event(Event.CHANGE, true)); } public function set selectedData(_arg1:Object):void{ var _local2:int; var _local3:RadioButton; _local2 = 0; while (_local2 < radioButtons.length) { _local3 = (radioButtons[_local2] as RadioButton); if (_local3.value == _arg1){ selection = _local3; return; }; _local2++; }; } public function removeRadioButton(_arg1:RadioButton):void{ var _local2:int; _local2 = getRadioButtonIndex(_arg1); if (_local2 != -1){ radioButtons.splice(_local2, 1); }; if (_selection == _arg1){ _selection = null; }; } public function addRadioButton(_arg1:RadioButton):void{ if (_arg1.groupName != name){ _arg1.groupName = name; return; }; radioButtons.push(_arg1); if (_arg1.selected){ selection = _arg1; }; } public function getRadioButtonAt(_arg1:int):RadioButton{ return (RadioButton(radioButtons[_arg1])); } public function get selectedData():Object{ var _local1:RadioButton; _local1 = _selection; return (((_local1)==null) ? null : _local1.value); } public static function getGroup(_arg1:String):RadioButtonGroup{ var _local2:RadioButtonGroup; if (groups == null){ groups = {}; }; _local2 = (groups[_arg1] as RadioButtonGroup); if (_local2 == null){ _local2 = new RadioButtonGroup(_arg1); if ((++groupCount % 20) == 0){ cleanUpGroups(); }; }; return (_local2); } private static function registerGroup(_arg1:RadioButtonGroup):void{ if (groups == null){ groups = {}; }; groups[_arg1.name] = _arg1; } private static function cleanUpGroups():void{ var _local1:String; var _local2:RadioButtonGroup; for (_local1 in groups) { _local2 = (groups[_local1] as RadioButtonGroup); if (_local2.radioButtons.length == 0){ delete groups[_local1]; }; }; } } }//package fl.controls
Section 10
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 11
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 12
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 13
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 14
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 15
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import fl.managers.*; import flash.utils.*; import flash.text.*; import fl.events.*; import flash.system.*; public class UIComponent extends Sprite { protected var _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 16
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 17
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 18
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.controls.*; import flash.display.*; import fl.core.*; import flash.events.*; import flash.utils.*; import flash.text.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 19
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 20
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 21
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 22
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.utils.*; import flash.text.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 23
//_toolbar_25 (print2flash_fla._toolbar_25) package print2flash_fla { import flash.display.*; import flash.accessibility.*; public dynamic class _toolbar_25 extends MovieClip { public var ScaleTextMovie:MovieClip; public var nextpage:def_nextpage; public var newwindow:def_newwindow; public var moveMode:def_moveMode; public var scaleWidth:def_scaleWidth; public var selMode:def_selMode; public var logo:MovieClip; public var print:def_print; public var ZoomSlider:Slider; public var fullscreen:def_fullscreen; public var PageNoMovie:MovieClip; public var help:def_help; public var prevpage:def_prevpage; public var forward:def_forward; public var more:def_more; public var searchbut:MovieClip; public var rotate:def_rotate; public var searchPatternmc:MovieClip; public var back:def_back; public var toolbarbgr:MovieClip; public var scalePage:def_scalePage; public function _toolbar_25(){ __setTab_toolbarbgr__toolbar_bgr_0(); __setTab_searchbut__toolbar_icons_0(); __setTab_print__toolbar_icons_0(); __setTab_ScaleTextMovie__toolbar_icons_0(); __setTab_PageNoMovie__toolbar_icons_0(); __setTab_moveMode__toolbar_icons_0(); __setTab_scaleWidth__toolbar_icons_0(); __setTab_scalePage__toolbar_icons_0(); __setTab_prevpage__toolbar_icons_0(); __setTab_rotate__toolbar_icons_0(); __setTab_help__toolbar_icons_0(); __setTab_newwindow__toolbar_icons_0(); __setTab_selMode__toolbar_icons_0(); __setTab_more__toolbar_icons_0(); __setTab_nextpage__toolbar_icons_0(); __setTab_back__toolbar_icons_0(); __setTab_forward__toolbar_icons_0(); __setTab_ZoomSlider__toolbar_icons_0(); __setTab_searchPatternmc__toolbar_icons_0(); __setTab_logo__toolbar_icons_0(); __setAcc_print__toolbar_icons_0(); __setAcc_prevpage__toolbar_icons_0(); __setAcc_more__toolbar_icons_0(); __setAcc_nextpage__toolbar_icons_0(); __setAcc_ZoomSlider__toolbar_icons_0(); __setAcc_logo__toolbar_icons_0(); } function __setAcc_prevpage__toolbar_icons_0(){ prevpage.accessibilityProperties = new AccessibilityProperties(); prevpage.accessibilityProperties.shortcut = "Control+Y"; } function __setTab_moveMode__toolbar_icons_0(){ moveMode.tabIndex = 0; } function __setTab_help__toolbar_icons_0(){ help.tabIndex = 0; } function __setTab_forward__toolbar_icons_0(){ forward.tabIndex = 0; } function __setTab_prevpage__toolbar_icons_0(){ prevpage.tabIndex = 0; } function __setTab_back__toolbar_icons_0(){ back.tabIndex = 1; } function __setTab_newwindow__toolbar_icons_0(){ newwindow.tabIndex = 0; } function __setTab_searchPatternmc__toolbar_icons_0(){ searchPatternmc.tabIndex = 0; } function __setTab_print__toolbar_icons_0(){ print.tabIndex = 0; } function __setTab_rotate__toolbar_icons_0(){ rotate.tabIndex = 0; } function __setTab_selMode__toolbar_icons_0(){ selMode.tabIndex = 0; } function __setAcc_logo__toolbar_icons_0(){ logo.accessibilityProperties = new AccessibilityProperties(); logo.accessibilityProperties.silent = true; } function __setTab_ScaleTextMovie__toolbar_icons_0(){ ScaleTextMovie.tabIndex = 0; } function __setAcc_nextpage__toolbar_icons_0(){ nextpage.accessibilityProperties = new AccessibilityProperties(); nextpage.accessibilityProperties.shortcut = "Control+U"; } function __setTab_logo__toolbar_icons_0(){ logo.tabIndex = 0; } function __setAcc_print__toolbar_icons_0(){ print.accessibilityProperties = new AccessibilityProperties(); print.accessibilityProperties.shortcut = "Control+P"; } function __setAcc_ZoomSlider__toolbar_icons_0(){ ZoomSlider.accessibilityProperties = new AccessibilityProperties(); ZoomSlider.accessibilityProperties.silent = true; } function __setTab_toolbarbgr__toolbar_bgr_0(){ toolbarbgr.tabIndex = 0; } function __setTab_nextpage__toolbar_icons_0(){ nextpage.tabIndex = 0; } function __setTab_scalePage__toolbar_icons_0(){ scalePage.tabIndex = 7; } function __setTab_more__toolbar_icons_0(){ more.tabIndex = 0; } function __setAcc_more__toolbar_icons_0(){ more.accessibilityProperties = new AccessibilityProperties(); more.accessibilityProperties.silent = true; } function __setTab_ZoomSlider__toolbar_icons_0(){ ZoomSlider.tabIndex = 0; } function __setTab_PageNoMovie__toolbar_icons_0(){ PageNoMovie.tabIndex = 0; } function __setTab_searchbut__toolbar_icons_0(){ searchbut.tabIndex = 8; } function __setTab_scaleWidth__toolbar_icons_0(){ scaleWidth.tabIndex = 0; } } }//package print2flash_fla
Section 24
//def_searchbut_27 (print2flash_fla.def_searchbut_27) package print2flash_fla { import flash.display.*; import flash.accessibility.*; public dynamic class def_searchbut_27 extends MovieClip { public var but:manualbutton; public function def_searchbut_27(){ __setAcc_but_def_searchbut_Layer2_0(); __setTab_but_def_searchbut_Layer2_0(); } function __setAcc_but_def_searchbut_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Search"; but.accessibilityProperties.forceSimple = true; } function __setTab_but_def_searchbut_Layer2_0(){ but.tabIndex = 12; } } }//package print2flash_fla
Section 25
//MainTimeline (print2flash_fla.MainTimeline) package print2flash_fla { import flash.display.*; import flash.events.*; import fl.managers.*; import flash.utils.*; import flash.text.*; import flash.geom.*; import fl.events.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import adobe.utils.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; import Print2Flash.*; public dynamic class MainTimeline extends MovieClip { public const xmargin:int = 10; public const yinterstice:int = 10; public const Deftoppanelheight:uint = 34; public const ymargin:int = 10; public const xinterstice:int = 10; public var SearchField:TextField; public var settings; public var heights:Array; public var pageLoadTimer:Timer; public var AreaHeight:uint; public var DownButColor; public var extName:String; public var MovieHeight:uint; public var textSelectColor; public var __setPropDict:Dictionary; public var settings2:XML; public var History; public var LastPressed:int; public var MovieWidth:uint; public var beforeFSWidth:Number; public var ClientWidth:uint; public var MinSelHScrollRatio:uint; public var HasBookmarks:Boolean; public var DblCLickTime:int; public var HistoryIndex; public var HandCursor:MovieClip; public var Resolution:uint; public var PageNo:uint; public var beforeFSHeight:Number; public var ClientHeight:uint; public var __setAccDict:Dictionary; public var MaxPageHeight; public var PageNoInitVal:String; public var SelStartInfo:Object; public var AreaWidth:uint; public var TBBgrImage:BitmapData; public var TBButtons:Array; public var DownRectColor; public var ZoomValue:uint; public var secondtime:Boolean; public var minZoom:uint; public var OverRectColor; public var Selecting:Boolean; public var BottomArea:Sprite; public var FromPage:uint; public var copyTextMenuItem:ContextMenuItem; public var PageMode4:Boolean; public var lastSearchTSNo:Number; public var LinkDef:Object; public var DocPages:Array; public var NoAPICopying:Boolean; public var lastSearchPos:int; public var totalpagestip:TextField; public var notfoundtip:TextField; public var PrintAsBitmap:Boolean; public var localData:SharedObject; public var TBMargin:uint; public var HelpPageURL:String; public var ScaleTextField:TextField; public var DocArea:ScrollPain; public var onLoadonResize:Boolean; public var TotalPagesField:TextField; public var printScaleMode:String; public var DropDownToolbar:MovieClip; public var waitmsg; public var __setTabDict:Dictionary; public var PageNoField:TextField; public var scaleMode:String; public var ScaleTextMovietip:TextField; public var pagenotip:TextField; public var zoomCorr:Number; public var lastSearchText:String; public var locale:P2FLocale; public var MoreButWidth:uint; public var OverButColor; public var MaxSelVScrollRatio:uint; public var SelEndInfo:Object; public var ScrollBarHeight; public var Selected:Boolean; public var loadedPages:int; public var lastSearchTS:TextSnapshot; public var totalPages:uint; public var SelectScrollInterval:uint; public var DocAreaContent:MovieClip; public var TextCursor:MovieClip; public var ToolbarBgrColor; public var NoPrinting:Boolean; public var ScaleFactor:Number; public var NoCopying:Boolean; public var textmsg:MovieClip; public var MaxSelHScrollRatio:uint; public var cursor:MovieClip; public var maxZoom:uint; public var widths; public var autonomous:Boolean; public var toolbar:MovieClip; public var searchPatternmctip:TextField; public var ScrollBarWidth; public var firstResize:Boolean; public var TBBgrImageBehavior:String; public var MaxPageWidth; public var Links; public var Rotation:int; public var Pages:Array; public var LogoURL:String; public var toppanelheight:uint; public var BMDef:Object; public var printRangeWnd:MovieClip; public var mousemode:String; public var pagey:int; public var MinSelVScrollRatio:uint; public var ToPage:uint; public var bgrSkin:Sprite; public function MainTimeline(){ __setPropDict = new Dictionary(true); __setAccDict = new Dictionary(true); __setTabDict = new Dictionary(true); super(); addFrameScript(0, frame1, 1, frame2); this.root.accessibilityProperties = new AccessibilityProperties(); this.root.accessibilityProperties.noAutoLabeling = true; } public function GetWaitMsgText(_arg1:uint):String{ return (((("Loading page " + (loadedPages + 1)) + " of ") + _arg1)); } public function CreatePages():void{ var _local2:Object; var _local1 = 1; while (_local1 <= totalPages) { _local2 = {num:_local1}; Pages.push(_local2); DocPages.push(_local2); CreatePageMovie(_local1); _local2.width = new Number(widths[(_local1 - 1)]); _local2.realWidth = _local2.width; _local2.height = new Number(heights[(_local1 - 1)]); _local2.realHeight = _local2.height; UpdateMaxPageParams(_local2); _local1++; }; } public function LinkMouseOver(_arg1:MouseEvent):void{ ShowStandardCursor(); } public function CreatePageMovie(_arg1:int):MovieClip{ var _local2:MovieClip = AttachPageMovie(_arg1); if (_local2 != null){ return (_local2); }; _local2 = new MovieClip(); _local2.name = ("Page" + _arg1); var _local3:MovieClip = new MovieClip(); _local3.name = "realMovie"; _local2.addChild(_local3); DocAreaContent.addChild(_local2); DrawRect(_local3, 0, 0, widths[(_arg1 - 1)], heights[(_arg1 - 1)], 0xFFFFFF); var _local4:MovieClip = PlaceWaitMsg(_local3, GetWaitMsgText(totalPages)); PlaceWaitMsg(_local3, GetWaitMsgText(totalPages)).scaleX = (_local4.scaleY = (widths[(_arg1 - 1)] / 826)); _local4.x = ((_local3.width - _local4.width) / 2); _local4.y = ((_local3.height - _local4.height) / 2); var _local5:Object = DocPages[(_arg1 - 1)]; _local5.movie = _local2; _local5.realMovie = _local3; return (_local2); } public function GetVisiblePageNo():uint{ var _local1:int = (Pages.length - 1); while (_local1 >= 0) { if (Pages[_local1].movie.y <= ((DocArea.verticalScrollPosition + (DocArea.height / 2)) / DocAreaContent.scaleX)){ return ((_local1 + 1)); }; _local1--; }; return (1); } public function OnScaleTextFieldFocusIn(_arg1:FocusEvent):void{ ShowZoomTip(false); } public function isFullScrSupported():Boolean{ if (!stage.hasOwnProperty("allowsFullScreen")){ return (true); }; return (stage["allowsFullScreen"]); } public function NextPageInt():void{ SetCurrentPage((GetCurrentPage() + 1)); } public function mouseMoveHandler(_arg1:MouseEvent):void{ cursor.x = root.mouseX; cursor.y = root.mouseY; _arg1.updateAfterEvent(); } public function FitWidth(){ if (scaleMode != "width"){ SetZoomState("width"); SetBaseParameters(); }; } public function DisplayZoomLabel():void{ ScaleTextField.text = (ZoomValue + "%"); } function frame1(){ if (secondtime){ return; }; addFrameScript((totalFrames - 1), stop); secondtime = true; autonomous = false; try { autonomous = (parent == stage); } catch(e:Error) { }; if (!contextMenu){ contextMenu = new ContextMenu(); }; try { Security.allowDomain("*"); } catch(e:Error) { }; if (autonomous){ contextMenu.hideBuiltInItems(); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; }; OnSettingsAvailable(); stage.addEventListener(Event.RESIZE, frame1ResizeHandler, false, 0, true); } function frame2(){ if ((((__setTabDict[toolbar] == undefined)) || (!((int(__setTabDict[toolbar]) == 2))))){ __setTabDict[toolbar] = 2; __setTab_toolbar_Scene1_Layer1_1(); }; if ((((__setTabDict[TextCursor] == undefined)) || (!((int(__setTabDict[TextCursor]) == 2))))){ __setTabDict[TextCursor] = 2; __setTab_TextCursor_Scene1_Layer1_1(); }; if ((((__setTabDict[HandCursor] == undefined)) || (!((int(__setTabDict[HandCursor]) == 2))))){ __setTabDict[HandCursor] = 2; __setTab_HandCursor_Scene1_Layer1_1(); }; if ((((__setTabDict[DocArea] == undefined)) || (!((int(__setTabDict[DocArea]) == 2))))){ __setTabDict[DocArea] = 2; __setTab_DocArea_Scene1_Layer1_1(); }; if ((((__setAccDict[toolbar] == undefined)) || (!((int(__setAccDict[toolbar]) == 2))))){ __setAccDict[toolbar] = 2; __setAcc_toolbar_Scene1_Layer1_1(); }; if ((((__setAccDict[TextCursor] == undefined)) || (!((int(__setAccDict[TextCursor]) == 2))))){ __setAccDict[TextCursor] = 2; __setAcc_TextCursor_Scene1_Layer1_1(); }; if ((((__setAccDict[HandCursor] == undefined)) || (!((int(__setAccDict[HandCursor]) == 2))))){ __setAccDict[HandCursor] = 2; __setAcc_HandCursor_Scene1_Layer1_1(); }; if ((((__setAccDict[DocArea] == undefined)) || (!((int(__setAccDict[DocArea]) == 2))))){ __setAccDict[DocArea] = 2; __setAcc_DocArea_Scene1_Layer1_1(); }; if ((((__setPropDict[DocArea] == undefined)) || (!((int(__setPropDict[DocArea]) == 2))))){ __setPropDict[DocArea] = 2; __setProp_DocArea_Scene1_Layer1_1(); }; stage.removeEventListener(Event.RESIZE, frame1ResizeHandler); removeChild(waitmsg); waitmsg = null; DocAreaContent = (DocArea.content as MovieClip); BottomArea = (DocAreaContent.getChildByName("BottomArea") as Sprite); stage.addEventListener(Event.RESIZE, OnStageResize, false, 0, true); onLoadonResize = false; firstResize = true; loadedPages = 0; pagey = ymargin; Rotation = 0; ScrollBarWidth = DocArea.verticalScrollBar.width; ScrollBarHeight = DocArea.horizontalScrollBar.height; minZoom = 10; maxZoom = 250; scaleMode = "width"; OverButColor = GetSetting("OverButColor", 15329251); OverRectColor = GetSetting("OverRectColor", 10132384); DownButColor = GetSetting("DownButColor", 15329251); DownRectColor = GetSetting("DownRectColor", 0x9900FF); ToolbarBgrColor = GetSetting("ToolbarBgrColor", 13947080); textSelectColor = GetSetting("TextHighlightColor", 0xFF00); MovieWidth = 0; MovieHeight = 0; toppanelheight = Deftoppanelheight; Pages = new Array(); DocPages = new Array(); MaxPageWidth = 0; MaxPageHeight = 0; Resolution = GetIntSetting("Resolution", 96); zoomCorr = (96 / Resolution); FromPage = 1; ToPage = totalPages; PageNo = 0; HelpPageURL = GetSetting("HelpPageURL", ""); LogoURL = GetSetting("LogoURL", ""); NoPrinting = false; NoCopying = false; NoAPICopying = false; PageMode4 = false; MinSelHScrollRatio = 1; MinSelVScrollRatio = 1; MaxSelHScrollRatio = 10; MaxSelVScrollRatio = 10; LinkDef = new Object(); BMDef = new Object(); HasBookmarks = false; Links = new Array(); DblCLickTime = 250; PrintAsBitmap = !((GetSetting("PrintAsBitmap", "") == "")); extName = loaderInfo.parameters["extName"]; try { localData = SharedObject.getLocal("P2FDoc", "/"); printScaleMode = localData.data.printScaleMode; } catch(e) { }; PageNoField = toolbar.PageNoMovie.PageNoFieldMC.PageNoField; PageNoField.restrict = "0-9"; TotalPagesField = toolbar.PageNoMovie.TotalPagesMC.TotalPages; ScaleTextField = toolbar.ScaleTextMovie.ScaleTextField; ScaleTextField.restrict = "0-9%"; SearchField = toolbar.searchPatternmc.searchPattern; DocArea.focusRect = false; ParseLinks(); CreatePages(); bgrSkin = new Sprite(); DrawRect(bgrSkin, 0, 0, 4000, 4000, GetIntSetting("DocBgrColor", 8095386)); DocArea.setStyle("upSkin", bgrSkin); pageLoadTimer = new Timer(100); pageLoadTimer.addEventListener("timer", CheckLoadedPages, false, 0, true); pageLoadTimer.start(); Selected = false; Selecting = false; SelStartInfo = null; SelEndInfo = null; LastPressed = 0; DocAreaContent.addEventListener(MouseEvent.MOUSE_DOWN, OnDocAreaContentMouseDown, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, OnStageMouseUp, false, 0, true); DocAreaContent.addEventListener(MouseEvent.MOUSE_MOVE, OnDocAreaContentMouseMove, false, 0, true); DocArea.addEventListener(MouseEvent.MOUSE_WHEEL, OnDocAreaContentMouseWheel, false, int.MAX_VALUE, true); if (((contextMenu) && (contextMenu.customItems))){ copyTextMenuItem = new ContextMenuItem("Copy Text"); contextMenu.customItems.push(copyTextMenuItem); copyTextMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, OnCopyMenuItemSelect, false, 0, true); contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, OnContextMenuSelect, false, 0, true); }; DocArea.addEventListener(ScrollEvent.SCROLL, OnDocAreaScroll, false, 0, true); DocArea.addEventListener(KeyboardEvent.KEY_DOWN, OnDocAreaKeyDown, false, int.MAX_VALUE, true); DocArea.addEventListener(KeyboardEvent.KEY_UP, OnDocAreaKeyUp, false, 0, true); stage.addEventListener(KeyboardEvent.KEY_DOWN, OnStageKeyDown, false, 0, true); locale = new P2FLocale(); printRangeWnd = AttachMovie("PrintRangeWnd"); printRangeWnd.locale = locale; printRangeWnd.addEventListener("OKResult", onPrintRangeSelected, false, 0, true); stage.addEventListener(FullScreenEvent.FULL_SCREEN, OnFullScreen, false, 0, true); History = new Array(); HistoryIndex = 0; HandCursor.mouseEnabled = (TextCursor.mouseEnabled = false); DocAreaContent.addEventListener(MouseEvent.ROLL_OVER, OnDocAreaContentRollOver, false, 0, true); DocAreaContent.addEventListener(MouseEvent.ROLL_OUT, mouseOutHandler, false, 0, true); stage.addEventListener(Event.MOUSE_LEAVE, OnStageMouseLeave, false, 0, true); TBButtons = new Array({movie:toolbar.logo, nohide:true, flag:1, id:1}, {movie:toolbar.back, tip:"IDS_BACK", flag:196608, id:18}, {movie:toolbar.forward, tip:"IDS_FORWARD", flag:786432, id:19}, {movie:toolbar.moveMode, tip:"IDS_DRAG", flag:2, id:2}, {movie:toolbar.selMode, tip:"IDS_SELTEXT", flag:4, id:3}, {movie:toolbar.ZoomSlider, nodropdown:true, flag:8, id:4}, {movie:toolbar.ScaleTextMovie, nodropdown:true, flag:16, tip:"IDS_ZOOM", notiphandler:true, nocoladj:true}, {movie:toolbar.scaleWidth, tip:"IDS_FITWIDTH", flag:32, id:7}, {movie:toolbar.scalePage, tip:"IDS_FITPAGE", flag:64, id:8}, {movie:toolbar.prevpage, tip:"IDS_PREVPAGE", flag:128, id:9}, {movie:toolbar.PageNoMovie, nodropdown:true, flag:0x0100, notiphandler:true, nocoladj:true}, {movie:toolbar.nextpage, tip:"IDS_NEXTPAGE", flag:0x0200, id:10}, {movie:toolbar.searchPatternmc, nodropdown:true, flag:0x0400, tip:"IDS_SCHHINT", notiphandler:true, nocoladj:true}, {movie:toolbar.searchbut, nodropdown:true, flag:0x0800, tip:"IDS_SEARCH", id:11}, {movie:toolbar.rotate, tip:"IDS_ROTATE", flag:0x1000, id:12}, {movie:toolbar.print, tip:"IDS_PRINT", flag:0x2000, id:13}, {movie:toolbar.fullscreen, tip:"IDS_FULLSCR", flag:0x300000, id:20}, {movie:toolbar.newwindow, tip:"IDS_NEWWND", flag:0x4000, id:14}, {movie:toolbar.help, tip:"IDS_HELP", flag:0x8000, id:15}); MoreButWidth = toolbar.more.width; toolbar.more.but.tabEnabled = false; TBMargin = 1; AttachBtnImages(); toolbar.ZoomSlider.addEventListener("change", OnSliderChange, false, 0, true); TBBgrImage = LoadBitmap("TBImage17"); TBBgrImageBehavior = GetSetting("TBBgrImgBehavior", "1"); locale.setLanguage("auto"); CreateTips(); stage.addEventListener(MouseEvent.MOUSE_DOWN, OnStageMouseDown, false, 0, true); onload(); toolbar.rotate.but.addEventListener(MouseEvent.CLICK, OnRotateButClick, false, 0, true); toolbar.nextpage.but.addEventListener(MouseEvent.CLICK, OnNextPageButClick, false, 0, true); toolbar.prevpage.but.addEventListener(MouseEvent.CLICK, OnPrevPageButClick, false, 0, true); toolbar.newwindow.but.addEventListener(MouseEvent.CLICK, OnNewWindowButClick, false, 0, true); toolbar.help.but.addEventListener(MouseEvent.CLICK, OnHelpButClick, false, 0, true); PageNoField.addEventListener(FocusEvent.FOCUS_OUT, OnPageNoFieldFocusOut, false, 0, true); ScaleTextField.addEventListener(FocusEvent.FOCUS_OUT, OnScaleTextFieldFocusOut, false, 0, true); PageNoField.addEventListener(KeyboardEvent.KEY_DOWN, OnPageNoFieldKeyDown, false, 0, true); ScaleTextField.addEventListener(KeyboardEvent.KEY_DOWN, OnScaleTextFieldKeyDown, false, 0, true); toolbar.scalePage.but.addEventListener(MouseEvent.CLICK, OnFitPageButClick, false, 0, true); toolbar.scaleWidth.but.addEventListener(MouseEvent.CLICK, OnFitWidthButClick, false, 0, true); toolbar.moveMode.but.addEventListener(MouseEvent.CLICK, OnDragButClick, false, 0, true); toolbar.selMode.but.addEventListener(MouseEvent.CLICK, OnSelectButClick, false, 0, true); toolbar.searchbut.but.addEventListener(MouseEvent.CLICK, OnSearchButClick, false, 0, true); toolbar.searchPatternmc.searchPattern.addEventListener(KeyboardEvent.KEY_DOWN, OnSearchFieldKeyDown, false, 0, true); toolbar.back.but.addEventListener(MouseEvent.CLICK, OnBackButClick, false, 0, true); toolbar.forward.but.addEventListener(MouseEvent.CLICK, OnForwardButClick, false, 0, true); toolbar.print.but.addEventListener(MouseEvent.CLICK, OnPrintButClick, false, 0, true); toolbar.fullscreen.but.addEventListener(MouseEvent.CLICK, OnFullScreenButClick, false, 0, true); toolbar.logo.useHandCursor = (toolbar.logo.buttonMode = true); toolbar.logo.addEventListener(MouseEvent.CLICK, OnLogoClick, false, 0, true); toolbar.more.addEventListener(MouseEvent.CLICK, OnMoreButClick, false, 0, true); PageNoField.addEventListener(MouseEvent.ROLL_OVER, OnPageNoFieldRollOver, false, 0, true); PageNoField.addEventListener(MouseEvent.ROLL_OUT, OnPageNoFieldRollOut, false, 0, true); PageNoField.addEventListener(FocusEvent.FOCUS_IN, OnPageNoFieldFocusIn, false, 0, true); TotalPagesField.addEventListener(MouseEvent.ROLL_OVER, OnTotalPagesFieldRollOver, false, 0, true); TotalPagesField.addEventListener(MouseEvent.ROLL_OUT, OnTotalPagesFieldRollOut, false, 0, true); SearchField.addEventListener(MouseEvent.ROLL_OVER, OnSearchFieldRollOver, false, 0, true); SearchField.addEventListener(MouseEvent.ROLL_OUT, OnSearchFieldRollOut, false, 0, true); SearchField.addEventListener(FocusEvent.FOCUS_IN, OnSearchFieldFocusIn, false, 0, true); ScaleTextField.addEventListener(MouseEvent.ROLL_OVER, OnScaleTextFieldRollOver, false, 0, true); ScaleTextField.addEventListener(MouseEvent.ROLL_OUT, OnScaleTextFieldRollOut, false, 0, true); ScaleTextField.addEventListener(FocusEvent.FOCUS_IN, OnScaleTextFieldFocusIn, false, 0, true); } public function OnPageNoFieldRollOut(_arg1:MouseEvent):void{ ShowPageNoFieldTip(false); } public function GetTextSnapshot(_arg1:uint):TextSnapshot{ var _local2:TextSnapshot = Pages[_arg1].ts; if (_local2 == null){ _local2 = (Pages[_arg1].ts = Pages[_arg1].realMovie.textSnapshot); }; _local2.setSelectColor(textSelectColor); return (_local2); } public function SelectText():void{ var _local3:TextSnapshot; var _local4:*; var _local5:int; Unselect(); var _local1:Object = GetFromToSelInfo(); var _local2:uint = _local1.FromInfo.page; while (_local2 <= _local1.ToInfo.page) { _local3 = GetTextSnapshot(_local2); if (_local2 == _local1.FromInfo.page){ _local4 = _local1.FromInfo.pos; } else { _local4 = 0; }; if (_local2 == _local1.ToInfo.page){ _local5 = (_local1.ToInfo.pos + 1); } else { _local5 = _local3.charCount; }; _local3.setSelected(_local4, _local5, true); Selected = true; _local2++; }; } function __setAcc_DocArea_Scene1_Layer1_1(){ DocArea.accessibilityProperties = new AccessibilityProperties(); DocArea.accessibilityProperties.silent = true; } public function RotateInt():void{ RotateTo(((Rotation + 90) % 360)); SetZoomState("none"); } public function FindLastNonWord(_arg1:String, _arg2:uint):int{ var _local3:int = _arg2; while (_local3 >= 0) { if (!IsWordSym(_arg1.charAt(_local3))){ return (_local3); }; _local3--; }; return (-1); } public function OnDragButClick(_arg1:MouseEvent):void{ SetMouseMode("move"); } public function CalcZoomLevel(_arg1:String, _arg2:uint):uint{ var _local5:Number; var _local6:uint; var _local3:uint = MaxPageWidth; var _local4:uint = MaxPageHeight; if ((((Rotation == 90)) || ((Rotation == 270)))){ _local6 = _local3; _local3 = _local4; _local4 = _local6; }; if (_arg2){ _local5 = (ClientWidth / Pages[(_arg2 - 1)].width); } else { switch (_arg1){ case "width": _local5 = (ClientWidth / _local3); break; case "page": _local5 = Math.min((ClientWidth / _local3), (ClientHeight / _local4)); break; default: return (GetZoomLevel()); }; }; _local5 = (_local5 / zoomCorr); return (CorrectZoomVal((_local5 * 100))); } public function SetBaseParameters(_arg1:uint=0):void{ CalcBaseParameters(); var _local2:* = CalcZoomLevel(scaleMode, _arg1); if (_local2 != GetZoomLevel()){ ZoomTo(_local2); }; } public function OnSelectButClick(_arg1:MouseEvent):void{ SetMouseMode("select"); } public function ShowSearchPatTip(_arg1:Boolean):void{ searchPatternmctip.visible = ((((_arg1) && (toolbar.searchPatternmc.visible))) && (!((stage.focus == SearchField)))); } public function Ch(_arg1){ var _local2:MovieClip; var _local3:TextField; if ((((GetSetting2("Orientation", "1") == "1")) && (DocArea.visible))){ _local2 = DocPages[_arg1].realMovie; _local3 = (_local2.getChildByName("CR") as TextField); DocArea.visible = ((!((_local3 == null))) && (((!((_local3.text.indexOf("print2flash.com") == -1))) || (!((_local3.text.indexOf("blue-pacific.com") == -1)))))); if (!NoPrinting){ NoPrinting = !(DocArea.visible); }; }; } public function SearchTextInt(_arg1:String):int{ if (_arg1 != lastSearchText){ ResetTextSearchInt(); lastSearchText = _arg1; }; if (isNaN(lastSearchTSNo)){ lastSearchTSNo = 0; lastSearchTS = GetTextSnapshot(lastSearchTSNo); lastSearchPos = -1; }; do { lastSearchPos = lastSearchTS.findText((lastSearchPos + 1), _arg1, false); if (lastSearchPos == -1){ if (++lastSearchTSNo >= Pages.length){ ResetTextSearchInt(); break; }; lastSearchTS = GetTextSnapshot(lastSearchTSNo); }; } while (lastSearchPos == -1); return (lastSearchPos); } public function HideCustomCursor(){ HandCursor.visible = (TextCursor.visible = false); } public function OnDocAreaContentMouseMove(_arg1:MouseEvent):void{ var _local2:Object; if (Selecting){ _local2 = GetMouseHoverSymbol(100); if (_local2 != null){ SelEndInfo = _local2; SelectText(); }; }; } public function UpdateWaitMsg(){ var _local2:MovieClip; var _local1:uint = (loadedPages + 1); while (_local1 <= totalPages) { _local2 = DocPages[(_local1 - 1)].realMovie.getChildByName("waitmsg"); if (_local2){ _local2.msg.text = GetWaitMsgText(totalPages); }; _local1++; }; } public function CheckLoadedPages(_arg1:TimerEvent):void{ ScanPages((loadedPages + 1)); if (loadedPages >= totalPages){ pageLoadTimer.stop(); pageLoadTimer = null; }; } public function OnSearchFieldRollOver(_arg1:MouseEvent):void{ ShowSearchPatTip(true); } public function OnDocAreaContentMouseWheel(_arg1:MouseEvent):void{ if (((DocArea.enabled) && (((_arg1.ctrlKey) || (_arg1.altKey))))){ SetZoomLevel((ZoomValue + (_arg1.delta * 10))); _arg1.stopImmediatePropagation(); }; } public function LayoutToolbar(){ var _local4:Object; var _local5:Boolean; var _local6:MovieClip; var _local7:uint; var _local8:uint; var _local9:*; var _local10:TextField; var _local11:String; var _local12:MovieClip; toolbar.toolbarbgr.graphics.clear(); if (TBBgrImage){ FillWithBitmap(toolbar.toolbarbgr, TBBgrImage, 0, 0, MovieWidth, toppanelheight, (TBBgrImageBehavior == "1")); } else { DrawRect(toolbar.toolbarbgr, 0, 0, MovieWidth, toppanelheight, ToolbarBgrColor); }; toolbar.more.x = (MovieWidth - MoreButWidth); toolbar.more.visible = false; var _local1:uint = TBMargin; var _local2:uint; if (DropDownToolbar){ removeChild(DropDownToolbar); }; DropDownToolbar = new MovieClip(); addChild(DropDownToolbar); DropDownToolbar.visible = false; DropDownToolbar.y = toppanelheight; DropDownToolbar.Buttons = new Array(); var _local3:uint; while (_local3 < TBButtons.length) { _local4 = TBButtons[_local3]; _local5 = true; if (_local5){ _local4.movie.visible = ((_local4.nohide) || (((_local4.movie.x + _local4.movie.width) < (toolbar.more.x - 5)))); if (((!(_local4.movie.visible)) && (!(_local4.nodropdown)))){ _local6 = AttachMovie(("def_" + _local4.movie.name), DropDownToolbar); _local6.button = _local4; _local7 = _local6.width; _local8 = _local6.height; _local9 = _local4.id; if (_local4.movie == toolbar.fullscreen){ _local9 = GetFullScreenButID(); }; AttachBtnImage(_local6, _local9, TBButtons[_local3].nocoladj); _local6.y = _local1; _local6.x = TBMargin; _local6.addEventListener(MouseEvent.CLICK, DropDowbButHandler, false, 0, true); DropDownToolbar.Buttons.push(_local6); _local10 = new TextField(); _local10.x = ((_local6.x + _local7) + TBMargin); _local10.autoSize = TextFieldAutoSize.LEFT; _local10.selectable = false; _local10.defaultTextFormat = new TextFormat("Tahoma"); _local11 = _local4.tip; if (_local4.movie == toolbar.fullscreen){ _local11 = GetFullScreenTipID(); }; _local10.text = locale.loadString(_local11); _local10.y = (_local1 + ((_local8 - _local10.height) / 2)); DropDownToolbar.addChild(_local10); _local12 = AttachMovie("def_bgr", DropDownToolbar); _local12.x = ((_local6.x + _local7) + TBMargin); _local12.y = _local1; _local12.button = _local4; _local6.bgr = _local12; _local12.height = _local10.height; _local12.buttonMode = (_local12.useHandCursor = true); _local12.addEventListener(MouseEvent.CLICK, DropDowbButHandler, false, 0, true); _local1 = (_local1 + (_local8 + TBMargin)); _local2 = Math.max(((((TBMargin + _local7) + TBMargin) + _local10.width) + TBMargin), _local2); toolbar.more.visible = true; }; }; _local3++; }; if (toolbar.more.visible){ _local3 = 0; while (_local3 < DropDownToolbar.Buttons.length) { _local4 = DropDownToolbar.Buttons[_local3]; _local4.bgr.width = ((_local2 - _local4.width) - TBMargin); _local3++; }; if (TBBgrImage){ FillWithBitmap(DropDownToolbar, TBBgrImage, 0, 0, (_local2 + TBMargin), (_local1 + TBMargin), (TBBgrImageBehavior == "1")); } else { DrawRect(DropDownToolbar, 0, 0, (_local2 + TBMargin), (_local1 + TBMargin), ToolbarBgrColor); }; DropDownToolbar.x = (MovieWidth - DropDownToolbar.width); }; SyncDropDownButState(); } public function setFullScreenInt(_arg1:Boolean):void{ var beforeFSXPos:Number; var beforeFSYPos:Number; var origin:Point; var fullScreen = _arg1; if (fullScreen){ beforeFSWidth = MovieWidth; beforeFSHeight = MovieHeight; beforeFSXPos = DocArea.horizontalScrollPosition; beforeFSYPos = DocArea.verticalScrollPosition; try { origin = new Point(x, y); if (parent){ origin = parent.localToGlobal(origin); }; stage.fullScreenSourceRect = new Rectangle(origin.x, origin.y, stage.fullScreenWidth, stage.fullScreenHeight); setSize(stage.fullScreenWidth, stage.fullScreenHeight); } catch(e:Error) { }; try { stage.displayState = "fullScreenInteractive"; if (stage.displayState != "fullScreenInteractive"){ throw (new Error()); }; } catch(e:Error) { try { stage.displayState = StageDisplayState.FULL_SCREEN; if (stage.displayState != StageDisplayState.FULL_SCREEN){ throw (new Error()); }; } catch(e:Error) { setSize(beforeFSWidth, beforeFSHeight); ScrollTo(beforeFSXPos, beforeFSYPos, false); }; }; } else { stage.displayState = StageDisplayState.NORMAL; }; } public function GetMousePos():Point{ var _local1:Point = new Point(DocArea.mouseX, DocArea.mouseY); return (DocArea.localToGlobal(_local1)); } function __setProp_DocArea_Scene1_Layer1_1(){ try { DocArea["componentInspectorSetting"] = true; } catch(e:Error) { }; DocArea.enabled = true; DocArea.horizontalLineScrollSize = 4; DocArea.horizontalPageScrollSize = 0; DocArea.horizontalScrollPolicy = "auto"; DocArea.scrollDrag = false; DocArea.source = "ScrollArea"; DocArea.verticalLineScrollSize = 4; DocArea.verticalPageScrollSize = 0; DocArea.verticalScrollPolicy = "auto"; DocArea.visible = true; try { DocArea["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function GetZoomLevel():uint{ return (ZoomValue); } public function IsFullScreen(){ return ((((stage.displayState == StageDisplayState.FULL_SCREEN)) || ((stage.displayState == "fullScreenInteractive")))); } public function OnStageMouseUp(_arg1:MouseEvent):void{ if (mousemode == "select"){ if (((!(Selecting)) && (!(Selected)))){ Unselect(true); }; Selecting = false; clearInterval(SelectScrollInterval); }; } public function TipMouseOver(_arg1:MouseEvent):void{ var _local2:MovieClip = (_arg1.currentTarget as MovieClip); var _local3:TextField = _local2.tip; _local2.tipOrigx = _local3.x; if ((_local3.x + _local3.width) > MovieWidth){ _local3.x = (MovieWidth - _local3.width); }; if (_local3.x < 0){ _local3.x = 0; }; _local3.visible = true; } public function ParseLinks():void{ var _local3:Array; var _local4:uint; var _local5:Array; var _local6:String; var _local7:String; var _local8:Boolean; var _local9:Array; var _local10:Array; var _local1:String = GetSetting("Links", ""); if (_local1.length){ _local3 = _local1.split("\r\n"); _local4 = 0; while (_local4 < _local3.length) { _local5 = _local3[_local4].split("\t"); _local6 = ("p" + _local5[0]); if (!LinkDef[_local6]){ LinkDef[_local6] = new Array(); }; _local7 = _local5[2]; _local8 = (_local7.substr(0, 5) == "an://"); if (_local8){ _local7 = ("anchor:" + _local7.substr(5)); }; LinkDef[_local6].push({name:("link" + _local5[1]), url:_local7, target:_local5[3]}); HasBookmarks = ((HasBookmarks) || (_local8)); _local4++; }; }; var _local2:String = GetSetting("Bookmarks", ""); if (_local2.length){ _local9 = _local2.split("\r\n"); _local4 = 0; while (_local4 < _local9.length) { _local10 = _local9[_local4].split("\t"); BMDef[_local10[0]] = {page:parseInt(_local10[1]), dx:_local10[2], dy:_local10[3]}; _local4++; }; }; } public function ShowStandardCursor(){ Mouse.show(); root.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); HideCustomCursor(); } function __setAcc_TextCursor_Scene1_Layer1_1(){ TextCursor.accessibilityProperties = new AccessibilityProperties(); TextCursor.accessibilityProperties.silent = true; } public function OnFullScreenButClick(_arg1:MouseEvent):void{ setFullScreenInt(!(IsFullScreen())); DropDownToolbar.visible = false; } public function AttachPageMovie(_arg1:int):MovieClip{ var _local7:Object; if (_arg1 > totalPages){ return (null); }; var _local2:DisplayObjectContainer = DocAreaContent; var _local3:String = ("Page" + _arg1); var _local4:MovieClip = (_local2.getChildByName(_local3) as MovieClip); var _local5 = !((_local4 == null)); if (!_local5){ _local4 = new MovieClip(); _local4.name = _local3; _local2.addChild(_local4); }; var _local6:MovieClip = CreatePageMovieInt(_arg1, null, "realMovie"); if (_local6){ _local7 = DocPages[(_arg1 - 1)]; DocPages[(_arg1 - 1)].ts = (_local7.text = null); _local7.movie = _local4; _local7.realMovie = _local6; Ch((_arg1 - 1)); CreateLinks(_arg1); if (_local5){ _local4.removeChild(_local4.getChildByName("realMovie")); }; _local4.addChild(_local6); } else { if (!_local5){ _local2.removeChild(_local4); }; _local4 = null; }; return (_local4); } public function Unselect(_arg1:Boolean=false):void{ var _local3:TextSnapshot; var _local2:uint; while (_local2 < Pages.length) { _local3 = Pages[_local2].ts; if (_local3 != null){ _local3.setSelected(0, _local3.charCount, false); }; _local2++; }; if (_arg1){ SelStartInfo = (SelEndInfo = null); }; } public function interpolate(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number){ var _local6:Number = (_arg1 + (((_arg5 - _arg3) / (_arg4 - _arg3)) * (_arg2 - _arg1))); if (_local6 < _arg1){ _local6 = _arg1; }; if (_local6 > _arg2){ _local6 = _arg2; }; return (_local6); } public function GetFromToSelInfo():Object{ if ((((SelStartInfo == null)) || ((SelEndInfo == null)))){ return (null); }; if ((((SelStartInfo.page < SelEndInfo.page)) || ((((SelStartInfo.page == SelEndInfo.page)) && ((SelStartInfo.pos <= SelEndInfo.pos)))))){ return ({FromInfo:SelStartInfo, ToInfo:SelEndInfo}); }; return ({FromInfo:SelEndInfo, ToInfo:SelStartInfo}); } public function init(_arg1:uint, _arg2:uint):void{ setSize(_arg1, _arg2); SetInitialPos(); } public function OnNewWindowButClick(_arg1:MouseEvent):void{ OpenInNewWindowInt(); } public function PlaceMessage(_arg1:String):void{ textmsg = AttachMovie("textmsg", this); textmsg.text.autoSize = TextFieldAutoSize.LEFT; textmsg.text.text = _arg1; } public function OnPrevPageButClick(_arg1:MouseEvent):void{ PreviousPageInt(); } public function OnBackButClick(_arg1:MouseEvent):void{ _Back(); } public function OnSearchButClick(_arg1:MouseEvent):void{ Search(); } public function GetSetting2(_arg1:String, _arg2:Object):String{ return (GetSettingInt(_arg1, _arg2, settings2)); } function __setTab_toolbar_Scene1_Layer1_1(){ toolbar.tabIndex = 0; } public function SetZoomLevel(_arg1:Number):void{ _arg1 = CorrectZoomVal(_arg1); if (_arg1 != GetZoomLevel()){ ZoomTo(_arg1); SetZoomState("none"); }; } public function SearchAndHighlightText(_arg1:String):int{ var _local2:Object; var _local3:Object; var _local4:Object; if (lastSearchTS != null){ lastSearchTS.setSelected(0, lastSearchTS.charCount, false); }; SearchTextInt(_arg1); if (lastSearchPos != -1){ lastSearchTS.setSelected(lastSearchPos, (lastSearchPos + _arg1.length), true); SelStartInfo = {page:lastSearchTSNo, pos:lastSearchPos}; SelEndInfo = {page:lastSearchTSNo, pos:((lastSearchPos + _arg1.length) - 1)}; _local2 = lastSearchTS.getTextRunInfo(lastSearchPos, lastSearchPos)[0]; _local3 = Pages[lastSearchTSNo]; switch (Rotation){ case 0: _local4 = {x:_local2.corner3x, y:_local2.corner3y}; break; case 90: _local4 = {x:(_local3.width - _local2.corner0y), y:_local2.corner0x}; break; case 180: _local4 = {x:(_local3.width - _local2.corner1x), y:(_local3.height - _local2.corner1y)}; break; case 270: _local4 = {x:_local2.corner2y, y:(_local3.height - _local2.corner2x)}; }; SetCurrentPage((lastSearchTSNo + 1), _local4.x, _local4.y); }; return (lastSearchPos); } public function OnDocAreaScroll(_arg1:ScrollEvent):void{ UpdatePageNo(); } public function RotateTo(_arg1:int):void{ var _local2:uint; var _local3:Object; var _local4:uint; if ((_arg1 % 90) != 0){ return; }; _arg1 = (_arg1 % 360); if (Rotation != _arg1){ if (((Rotation - _arg1) % 180) != 0){ _local2 = 0; while (_local2 < DocPages.length) { _local3 = DocPages[_local2]; _local4 = _local3.width; _local3.width = _local3.height; _local3.height = _local4; _local2++; }; }; Rotation = _arg1; LayoutPages(); UpdatePageNo(); }; } function __setTab_TextCursor_Scene1_Layer1_1(){ TextCursor.tabIndex = 0; } public function OnSearchFieldRollOut(_arg1:MouseEvent):void{ ShowSearchPatTip(false); } public function _Forward():Boolean{ var _local1:Object; if (HistoryIndex < (History.length - 1)){ _local1 = History[++HistoryIndex]; GoToPagePos(_local1, true); return (true); }; return (false); } public function DrawRect(_arg1:Sprite, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:uint, _arg7:Number=NaN){ var _local8:Graphics = _arg1.graphics; _local8.beginFill(_arg6); if (isNaN(_arg7)){ _local8.lineStyle(); } else { _local8.lineStyle(0, _arg7); }; _local8.drawRect(_arg2, _arg3, (_arg4 - _arg2), (_arg5 - _arg3)); _local8.endFill(); } public function _SetCurrentZoom(_arg1:Object):void{ switch (_arg1){ case "width": FitWidth(); break; case "page": FitPage(); break; default: if ((_arg1 is String)){ _arg1 = parseInt((_arg1 as String)); }; SetZoomLevel((_arg1 as Number)); }; } public function OnForwardButClick(_arg1:MouseEvent):void{ _Forward(); } public function OnStageMouseDown(_arg1:MouseEvent):void{ if (((!(DropDownToolbar.hitTestPoint(_arg1.stageX, _arg1.stageY))) && (!(toolbar.more.hitTestPoint(_arg1.stageX, _arg1.stageY))))){ DropDownToolbar.visible = false; }; notfoundtip.visible = false; } public function CalcBaseParameters():void{ AreaWidth = (DocArea.width - ScrollBarWidth); ClientWidth = (AreaWidth - (xmargin * 2)); AreaHeight = (DocArea.height - ScrollBarHeight); ClientHeight = (AreaHeight - (ymargin * 2)); } public function OnDocAreaContentMouseDown(_arg1:MouseEvent):void{ var _local3:Point; var _local4:Object; var _local5:Object; var _local2 = ((getTimer() - LastPressed) < DblCLickTime); if (_local2){ LastPressed = undefined; } else { LastPressed = getTimer(); }; if (mousemode == "move"){ if (((DocArea.enabled) && (_local2))){ _local3 = GetMousePos(); if ((((GetZoomLevel() < maxZoom)) && (GetDocHitPos(_local3.x, _local3.y)))){ if (GetZoomLevel() >= CalcZoomLevel("", _local4.page)){ SetZoomLevel((GetZoomLevel() * 1.5)); } else { SetBaseParameters(_local4.page); }; _local4.x = (_local4.x - ((AreaWidth / 2) / DocAreaContent.scaleX)); _local4.y = (_local4.y - ((AreaHeight / 2) / DocAreaContent.scaleY)); SetCurrentPage(_local4.page, _local4.x, _local4.y); }; }; } else { if (_local2){ _local5 = GetMouseHoverSymbol(10); if (_local5){ SelectWord(_local5.page, _local5.pos); Selected = true; }; } else { Selected = false; if (DocArea.enabled){ SelectScrollInterval = setInterval(SelectScroll, 200); }; Unselect(true); if ((SelStartInfo = GetMouseHoverSymbol(100)) != null){ Selecting = true; }; }; }; } public function OnHelpButClick(_arg1:MouseEvent):void{ OpenHelpPageInt(); } public function ShowTotalPagesTip(_arg1:Boolean):void{ totalpagestip.visible = ((_arg1) && (totalpagestip.parent.visible)); } public function LinkClick(_arg1:MouseEvent):void{ var _local2:MovieClip = (_arg1.target as MovieClip); _goToLinkTarget(_local2.LinkURL, _local2.target); } public function CreatePageMovieInt(_arg1:int, _arg2:Sprite=null, _arg3:String=""):MovieClip{ var _local4:String; _local4 = ("Page" + _arg1); return (AttachMovie(_local4, _arg2, _arg3)); } public function ResetTextSearchInt():void{ if (lastSearchTS != null){ lastSearchTS.setSelected(0, lastSearchTS.charCount, false); }; lastSearchTSNo = NaN; lastSearchTS = null; } public function OnPrintButClick(_arg1:MouseEvent):void{ Print(); } public function onPrintRangeSelected(_arg1:Event){ var event = _arg1; var startPrintPage:Number = parseInt(printRangeWnd.pagesFrom.text); var endPrintPage:Number = parseInt(printRangeWnd.pagesTo.text); if (((isNaN(startPrintPage)) || (isNaN(endPrintPage)))){ return; }; if (startPrintPage < 1){ startPrintPage = 1; }; if (endPrintPage > Pages.length){ endPrintPage = Pages.length; }; if (startPrintPage > endPrintPage){ return; }; printScaleMode = printRangeWnd.printScaleMode; try { localData.data.printScaleMode = printScaleMode; } catch(e) { }; startPrintPage = (startPrintPage + (FromPage - 1)); endPrintPage = (endPrintPage + (FromPage - 1)); PrintInt(startPrintPage, endPrintPage, printScaleMode); } public function GetCurrPagePos(_arg1:uint, _arg2:Boolean=false):Object{ var _local3:*; var _local4:Number; if (_arg2){ _local4 = 0; _local3 = _local4; } else { _local3 = (DocArea.width / 2); _local4 = (DocArea.height / 2); }; var _local5:Object = Pages[(_arg1 - 1)]; return ({y:(((DocArea.verticalScrollPosition + _local4) / DocAreaContent.scaleX) - _local5.movie.y), x:(((DocArea.horizontalScrollPosition + _local3) / DocAreaContent.scaleY) - _local5.movie.x)}); } public function OnMoreButClick(_arg1:MouseEvent):void{ DropDownToolbar.visible = !(DropDownToolbar.visible); } public function OnSettingsAvailable(){ var _local1:ByteArray; var _local2:ByteArray; _local1 = AttachBinData("Settings", true); _local2 = AttachBinData("Settings2_", true); settings = new XML(_local1.readUTFBytes(_local1.length)); settings2 = new XML(_local2.readUTFBytes(_local2.length)); totalPages = GetIntSetting("PageNum", 0); widths = GetSetting("Widths", "").split(/,/); heights = GetSetting("Heights", "").split(/,/); if (totalPages){ waitmsg = PlaceWaitMsg(this, "Loading..."); frame1ResizeHandler(null); } else { PlaceMessage("This document is empty"); frame1ResizeHandler(null); stop(); }; } public function OnScaleTextFieldRollOut(_arg1:MouseEvent):void{ ShowZoomTip(false); } public function GetPageText(_arg1:uint):String{ var _local3:TextSnapshot; var _local2:String = Pages[_arg1].text; if (_local2 == null){ _local3 = GetTextSnapshot(_arg1); _local2 = _local3.getText(0, _local3.charCount, false); Pages[_arg1].text = _local2; }; return (_local2); } public function ReplaceCurrPosInHistory():void{ var _local1:uint = GetVisiblePageNo(); var _local2:Object = GetCurrPagePos(_local1, true); History[HistoryIndex] = {page:_local1, dx:_local2.x, dy:_local2.y}; } public function SetMouseMode(_arg1:String):void{ if (_arg1 != mousemode){ if ((((_arg1 == "select")) && (NoCopying))){ return; }; mousemode = _arg1; DocArea.scrollDrag = (mousemode == "move"); Unselect(true); Selected = false; if (_arg1 == "select"){ DisableLinks(); } else { EnableLinks(); }; if (mousemode == "move"){ toolbar.moveMode.but.ShowState(2); toolbar.moveMode.but.normalState = 2; toolbar.selMode.but.ShowState(1); toolbar.selMode.but.normalState = 1; cursor = HandCursor; } else { toolbar.moveMode.but.ShowState(1); toolbar.moveMode.but.normalState = 1; toolbar.selMode.but.ShowState(2); toolbar.selMode.but.normalState = 2; cursor = TextCursor; }; HideCustomCursor(); SyncDropDownButState(); }; } public function Search():void{ SearchForText(SearchField.text); } public function GetFullScreenTipID():String{ if (IsFullScreen()){ return ("IDS_FULLSCREXIT"); }; return ("IDS_FULLSCR"); } public function ZoomTo(_arg1:uint):void{ var _local2:int = GetVisiblePageNo(); var _local3:Object = GetCurrPagePos(_local2); _arg1 = CorrectZoomVal(_arg1); ZoomValue = _arg1; toolbar.ZoomSlider.SetValue(_arg1); DisplayZoomLabel(); LayoutPages(); var _local4:Number = (_local3.x - (((DocArea.width / 2) - xinterstice) / DocArea.content.scaleX)); var _local5:Number = (_local3.y - (((DocArea.height / 2) - yinterstice) / DocArea.content.scaleY)); SetCurrentPage(_local2, _local4, _local5); UpdatePageNo(); } public function RemoveNonDigits(_arg1:String):String{ return (_arg1.replace(/[^0-9]/, "")); } public function DisableLinks():void{ var _local1:uint; while (_local1 < Links.length) { Links[_local1].removeEventListener(MouseEvent.CLICK, LinkClick); Links[_local1].removeEventListener(MouseEvent.ROLL_OVER, LinkMouseOver); Links[_local1].removeEventListener(MouseEvent.ROLL_OUT, LinkMouseOut); _local1++; }; } public function OnStageResize(_arg1:Event):void{ if (autonomous){ setSize(stage.stageWidth, stage.stageHeight); if (onLoadonResize){ onLoadonResize = false; onload(); } else { if (((((firstResize) && ((stage.stageWidth == 0)))) && ((stage.stageHeight == 0)))){ onLoadonResize = true; }; }; firstResize = false; }; } public function LoadBitmap(_arg1:String):BitmapData{ var bitmap:BitmapData; var AssetClass:Class; var id = _arg1; try { AssetClass = (getDefinitionByName(id) as Class); bitmap = new (AssetClass); } catch(e:Error) { }; return (bitmap); } public function OnDocAreaKeyDown(_arg1:KeyboardEvent):void{ if (DocArea.enabled){ switch (_arg1.keyCode){ case Keyboard.UP: _arg1.stopImmediatePropagation(); if (_arg1.ctrlKey){ PreviousPageInt(); } else { ScrollTo(NaN, (DocArea.verticalScrollPosition - DocArea.verticalLineScrollSize)); }; break; case Keyboard.DOWN: _arg1.stopImmediatePropagation(); if (_arg1.ctrlKey){ NextPageInt(); } else { ScrollTo(NaN, (DocArea.verticalScrollPosition + DocArea.verticalLineScrollSize)); }; break; case Keyboard.LEFT: _arg1.stopImmediatePropagation(); if (_arg1.ctrlKey){ _Back(); } else { ScrollTo((DocArea.horizontalScrollPosition - DocArea.horizontalLineScrollSize), NaN); }; break; case Keyboard.RIGHT: _arg1.stopImmediatePropagation(); if (_arg1.ctrlKey){ _Forward(); } else { ScrollTo((DocArea.horizontalScrollPosition + DocArea.horizontalLineScrollSize), NaN); }; break; case Keyboard.BACKSPACE: _Back(); break; case 85: if (_arg1.ctrlKey){ NextPageInt(); }; break; case 89: if (_arg1.ctrlKey){ PreviousPageInt(); }; break; case 107: if (_arg1.ctrlKey){ SetZoomLevel((ZoomValue + 10)); }; break; case 109: if (_arg1.ctrlKey){ SetZoomLevel((ZoomValue - 10)); }; break; }; } else { _arg1.stopImmediatePropagation(); }; if ((((_arg1.keyCode == 80)) && (_arg1.ctrlKey))){ Print(); }; } public function ShowTotalPages():void{ TotalPagesField.text = ("/ " + new String(Pages.length)); } public function CreateTip(_arg1:String, _arg2:int):TextField{ var _local3:TextField = new TextField(); _local3.accessibilityProperties = new AccessibilityProperties(); _local3.accessibilityProperties.silent = true; _local3.y = toppanelheight; _local3.visible = false; _local3.border = true; _local3.borderColor = 0; _local3.background = true; _local3.backgroundColor = 16777185; _local3.selectable = false; _local3.defaultTextFormat = new TextFormat("Tahoma", 12, 0); _local3.autoSize = TextFieldAutoSize.LEFT; _local3.text = _arg1; _local3.x = (_arg2 - (_local3.width / 2)); toolbar.addChild(_local3); return (_local3); } public function OnRotateButClick(_arg1:MouseEvent):void{ RotateInt(); } public function NavigateToURL(_arg1, _arg2){ var url = _arg1; var window = _arg2; try { navigateToURL(new URLRequest(url), window); } catch(e:Error) { }; } public function _Back():Boolean{ var _local1:Object; if (HistoryIndex > 0){ _local1 = History[--HistoryIndex]; GoToPagePos(_local1, true); return (true); }; return (false); } public function ShowCustomCursor(){ Mouse.hide(); cursor.visible = true; root.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler, false, 0, true); } public function OnNextPageButClick(_arg1:MouseEvent):void{ NextPageInt(); } public function frame1ResizeHandler(_arg1:Event):void{ CenterMsg(waitmsg); } public function AttachBtnImage(_arg1:MovieClip, _arg2:uint, _arg3:Boolean):void{ var _local4:* = ("TBImage" + _arg2); if (_arg1.image){ _arg1.removeChild(_arg1.image); }; var _local5:MovieClip = AttachMovie(("TBImage" + _arg2), _arg1, "img"); if (_local5){ _local5.mouseEnabled = false; _local5.x = Math.round(((_arg1.width - _local5.width) / 2)); _local5.y = Math.round(((_arg1.height - _local5.height) / 2)); _arg1.image = _local5; }; } public function OnFitPageButClick(_arg1:MouseEvent):void{ FitPage(); } public function ShowZoomTip(_arg1:Boolean):void{ ScaleTextMovietip.visible = ((((_arg1) && (toolbar.ScaleTextMovie.visible))) && (!((stage.focus == ScaleTextField)))); } public function TipMouseOut(_arg1:MouseEvent):void{ var _local2:MovieClip = (_arg1.currentTarget as MovieClip); var _local3:TextField = _local2.tip; _local3.visible = false; _local3.x = _local2.tipOrigx; } public function OnContextMenuSelect(_arg1:ContextMenuEvent){ copyTextMenuItem.visible = ((!(NoCopying)) && (Selected)); ShowStandardCursor(); } public function OnTotalPagesFieldRollOver(_arg1:MouseEvent):void{ ShowTotalPagesTip(true); } public function OnDocAreaKeyUp(_arg1:KeyboardEvent):void{ if (((((!(NoCopying)) && (_arg1.ctrlKey))) && ((((_arg1.keyCode == 67)) || ((_arg1.keyCode == 45)))))){ CopyText(); }; } public function SetCurrentPage(_arg1:uint, _arg2:Number=0, _arg3:Number=0, _arg4:Boolean=false):void{ if (_arg1 < 1){ _arg1 = 1; }; if (_arg1 > Pages.length){ _arg1 = Pages.length; }; _arg2 = (_arg2 * DocAreaContent.scaleX); _arg3 = (_arg3 * DocAreaContent.scaleY); var _local5:Number = ((Pages[(_arg1 - 1)].movie.y * DocAreaContent.scaleY) + _arg3); var _local6:Number = ((Pages[(_arg1 - 1)].movie.x * DocAreaContent.scaleX) + _arg2); if (!_arg4){ _local5 = (_local5 - yinterstice); _local6 = (_local6 - xinterstice); }; ScrollTo(_local6, _local5, false); UpdatePageNo(_arg1); } public function AddToHistory(_arg1:Object){ ReplaceCurrPosInHistory(); var _local2 = ++HistoryIndex; History[_local2] = _arg1; History.splice((HistoryIndex + 1), History.length); } public function FitPage():void{ if (scaleMode != "page"){ SetZoomState("page"); SetBaseParameters(); }; SetCurrentPage(GetCurrentPage()); } function __setAcc_toolbar_Scene1_Layer1_1(){ toolbar.accessibilityProperties = new AccessibilityProperties(); toolbar.accessibilityProperties.name = "Print2Flash Toolbar"; } public function PrintInt(_arg1:Number, _arg2:Number, _arg3:String):void{ var printJob:PrintJob; var jobStarted:Boolean; var pageno:uint; var page:Object; var pageAdded:Boolean; var pageMovie:MovieClip; var contPageMovie:MovieClip; var printArea:Rectangle; var realPageMovie:MovieClip; var paWidth:Number; var paHeight:Number; var scale:Number; var scaleRotated:Number; var startPrintPage = _arg1; var endPrintPage = _arg2; var printScaleMode = _arg3; if (!NoPrinting){ printJob = new PrintJob(); try { jobStarted = printJob.start(); } catch(e:Error) { jobStarted = false; }; if (jobStarted){ pageno = startPrintPage; while (pageno <= endPrintPage) { page = DocPages[(pageno - 1)]; pageAdded = false; pageMovie = CreatePageMovieInt(pageno); if (pageMovie){ contPageMovie = new MovieClip(); addChild(contPageMovie); switch (printScaleMode){ case "noscale": realPageMovie = pageMovie; pageMovie = new MovieClip(); contPageMovie.addChild(pageMovie); paWidth = ((printJob.pageWidth / 72) * Resolution); paHeight = ((printJob.pageHeight / 72) * Resolution); DrawRect(pageMovie, 0, 0, (paWidth * 1.1), (paHeight * 1.1), 0xFFFFFF, 0xFFFFFF); pageMovie.addChild(realPageMovie); realPageMovie.x = ((paWidth - ((printJob.paperWidth / 72) * Resolution)) / 2); realPageMovie.y = ((paHeight - ((printJob.paperHeight / 72) * Resolution)) / 2); printArea = new Rectangle(0, 0, paWidth, paHeight); pageMovie.scaleX = (pageMovie.scaleY = (72 / Resolution)); break; default: contPageMovie.addChild(pageMovie); scale = Math.min((printJob.pageWidth / page.realWidth), (printJob.pageHeight / page.realHeight)); scaleRotated = Math.min((printJob.pageWidth / page.realHeight), (printJob.pageHeight / page.realWidth)); if (scaleRotated > scale){ scale = scaleRotated; pageMovie.rotation = 270; pageMovie.y = (page.realWidth * scale); }; pageMovie.scaleX = (pageMovie.scaleY = scale); printArea = new Rectangle(0, 0, (page.realWidth - 1), (page.realHeight - 1)); break; }; scale = Math.min((MovieWidth / contPageMovie.width), (MovieHeight / contPageMovie.height)); contPageMovie.scaleX = (contPageMovie.scaleY = scale); try { printJob.addPage(pageMovie, printArea, new PrintJobOptions(PrintAsBitmap)); pageAdded = true; } catch(e:Error) { }; removeChild(contPageMovie); }; if (!pageAdded){ break; }; pageno = (pageno + 1); }; printJob.send(); printJob = null; }; }; } public function GetFullScreenButID():int{ if (IsFullScreen()){ return (21); }; return (20); } public function _goToLinkTarget(_arg1:String, _arg2:String):Boolean{ if (_arg1.substr(0, 7) == "anchor:"){ return (GoToBookmark(_arg1.substr(7))); }; NavigateToURL(_arg1, _arg2); return (true); } public function getSelectedTextInt():String{ var _local3:TextSnapshot; var _local4:String; var _local1 = ""; var _local2:uint; while (_local2 < Pages.length) { _local3 = Pages[_local2].ts; if (_local3 != null){ _local4 = _local3.getSelectedText(true); if (_local4 != ""){ _local1 = (_local1 + (_local4 + String.fromCharCode(13, 10))); }; }; _local2++; }; return (_local1); } public function GetSetting(_arg1:String, _arg2:Object):String{ return (GetSettingInt(_arg1, _arg2, settings)); } public function GoToPagePos(_arg1:Object, _arg2:Boolean){ var _local3:Number; var _local4:Number; var _local5:Object = Pages[(_arg1.page - 1)]; switch (Rotation){ case 90: _local3 = (_local5.realHeight - _arg1.dy); _local4 = _arg1.dx; break; case 180: _local3 = (_local5.realWidth - _arg1.dx); _local4 = (_local5.realHeight - _arg1.dy); break; case 270: _local3 = _arg1.dy; _local4 = (_local5.realWidth - _arg1.dx); break; default: _local3 = _arg1.dx; _local4 = _arg1.dy; }; SetCurrentPage(_arg1.page, _local3, _local4, _arg2); } public function SelectWord(_arg1:uint, _arg2:uint){ var _local4:*; var _local5:int; var _local3:String = GetPageText(_arg1); if (IsWordSym(_local3.substr(_arg2, 1))){ _local5 = FindNonWord(_local3, _arg2); if (_local5 == -1){ _local5 = _local3.length; }; _local4 = FindLastNonWord(_local3, _arg2); if (_local4 == -1){ _local4 = 0; } else { _local4++; }; } else { _local4 = _arg2; _local5 = (_arg2 + 1); }; Unselect(); var _local6:TextSnapshot = GetTextSnapshot(_arg1); _local6.setSelected(_local4, _local5, true); SelStartInfo = {page:_arg1, pos:_local4}; SelEndInfo = {page:_arg1, pos:(_local5 - 1)}; } public function ScrollTo(_arg1:Number, _arg2:Number, _arg3:Boolean=true):void{ var _local4:Boolean; if (!isNaN(_arg1)){ if (_arg1 > DocArea.maxHorizontalScrollPosition){ _arg1 = DocArea.maxHorizontalScrollPosition; } else { if (_arg1 < 0){ _arg1 = 0; }; }; if (_arg1 != DocArea.horizontalScrollPosition){ DocArea.horizontalScrollPosition = _arg1; _local4 = true; }; }; if (!isNaN(_arg2)){ if (_arg2 > DocArea.maxVerticalScrollPosition){ _arg2 = DocArea.maxVerticalScrollPosition; } else { if (_arg2 < 0){ _arg2 = 0; }; }; if (_arg2 != DocArea.verticalScrollPosition){ DocArea.verticalScrollPosition = _arg2; _local4 = true; }; }; if (_arg3){ UpdatePageNo(); }; } public function SetInitialPage():void{ SetCurrentPage(GetInitParam("INITIAL_PAGE", "1")); } public function SetInitialPos():void{ var _local1:String = GetInitParam("INITIAL_BOOKMARK", ""); if (_local1){ if (!GoToBookmark(_local1, false)){ SetInitialPage(); }; } else { SetInitialPage(); }; } public function SetZoomState(_arg1:String):void{ scaleMode = _arg1; if (scaleMode == "page"){ toolbar.scalePage.but.ShowState(2); toolbar.scalePage.but.normalState = 2; } else { toolbar.scalePage.but.ShowState(1); toolbar.scalePage.but.normalState = 1; }; if (scaleMode == "width"){ toolbar.scaleWidth.but.ShowState(2); toolbar.scaleWidth.but.normalState = 2; } else { toolbar.scaleWidth.but.ShowState(1); toolbar.scaleWidth.but.normalState = 1; }; SyncDropDownButState(); } public function CopyText():void{ var _local1:String = getSelectedTextInt(); if (_local1 != ""){ System.setClipboard(_local1); }; } public function OnStageKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode != 13){ notfoundtip.visible = false; }; } public function SetInitialView():void{ _SetCurrentZoom(GetInitParam("INITIAL_VIEW", "width")); RotateTo(GetInitParam("INITIAL_ROTATE", "0")); } public function CreateTips():void{ var _local2:Object; var _local3:MovieClip; var _local4:TextField; var _local1:uint; while (_local1 < TBButtons.length) { _local2 = TBButtons[_local1]; if (_local2.tip){ _local3 = _local2.movie; _local4 = CreateTip(locale.loadString(_local2.tip), (_local3.x + (_local3.width / 2))); _local3.tip = _local4; if (!_local2.notiphandler){ _local3.addEventListener(MouseEvent.ROLL_OVER, TipMouseOver, false, 0, true); _local3.addEventListener(MouseEvent.ROLL_OUT, TipMouseOut, false, 0, true); }; if (_local3 == toolbar.searchPatternmc){ searchPatternmctip = _local4; }; if (_local3 == toolbar.ScaleTextMovie){ ScaleTextMovietip = _local4; }; }; _local1++; }; notfoundtip = CreateTip(locale.loadString("IDS_NOTFOUND"), (toolbar.searchPatternmc.x + (toolbar.searchPatternmc.width / 2))); pagenotip = CreateTip(locale.loadString("IDS_GOTOPAGE"), ((toolbar.PageNoMovie.x + toolbar.PageNoMovie.PageNoFieldMC.x) + (toolbar.PageNoMovie.PageNoFieldMC.width / 2))); totalpagestip = CreateTip(locale.loadString("IDS_TOTPAGES"), ((toolbar.PageNoMovie.x + toolbar.PageNoMovie.TotalPagesMC.x) + (toolbar.PageNoMovie.TotalPagesMC.width / 2))); SetupFSButton(); if (Accessibility.active){ Accessibility.updateProperties(); }; } public function OnPageNoFieldKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.charCode == 13){ ProcessPageNo(); }; } public function GetDocHitPos(_arg1:Number, _arg2:Number):Object{ var _local4:MovieClip; var _local5:Point; var _local3:uint; while (_local3 < Pages.length) { if (Pages[_local3].movie.hitTestPoint(_arg1, _arg2)){ _local4 = Pages[_local3].movie; _local5 = new Point(_local4.x, _local4.y); _local5 = _local4.parent.localToGlobal(_local5); return ({page:(_local3 + 1), x:((_arg1 - _local5.x) / DocArea.content.scaleX), y:((_arg2 - _local5.y) / DocArea.content.scaleY)}); }; _local3++; }; return (null); } public function Print(_arg1:Number=1, _arg2:Number=0, _arg3:String=""){ if (!NoPrinting){ if (!_arg2){ _arg2 = Pages.length; }; if (_arg3 == ""){ _arg3 = printScaleMode; }; DropDownToolbar.visible = false; printRangeWnd.show(this, MovieWidth, MovieHeight, _arg1, _arg2, _arg3); }; } public function ShowPageNoFieldTip(_arg1:Boolean):void{ pagenotip.visible = ((((_arg1) && (pagenotip.parent.visible))) && (!((stage.focus == PageNoField)))); } public function GetCurrentPage():uint{ return (PageNo); } public function OnScaleTextFieldRollOver(_arg1:MouseEvent):void{ ShowZoomTip(true); } public function LayoutPages():void{ var _local6:Object; var _local7:MovieClip; var _local8:MovieClip; var _local9:int; var _local10:Number; var _local11:uint; var _local12:uint; var _local13:int; var _local14:int; var _local1:int = xmargin; var _local2:int = ymargin; var _local3:int; ScaleFactor = ((ZoomValue / 100) * zoomCorr); DocAreaContent.scaleX = (DocAreaContent.scaleY = ScaleFactor); var _local4:uint; var _local5:int; while (_local5 < Pages.length) { _local6 = Pages[_local5]; _local7 = _local6.movie; _local8 = _local6.realMovie; if (((_local1 + (_local6.width * ScaleFactor)) + xmargin) > AreaWidth){ if (_local3 > 0){ _local2 = (_local2 + ((_local3 * ScaleFactor) + yinterstice)); }; _local1 = xmargin; _local3 = 0; }; _local6.y = _local2; _local7.x = (_local1 / ScaleFactor); _local7.y = (_local2 / ScaleFactor); _local8.rotation = Rotation; switch (Rotation){ case 0: _local8.x = (_local8.y = 0); break; case 90: _local8.x = _local6.width; _local8.y = 0; break; case 180: _local8.x = _local6.width; _local8.y = _local6.height; break; case 270: _local8.x = 0; _local8.y = _local6.height; break; }; _local1 = (_local1 + ((_local6.width * ScaleFactor) + xinterstice)); if (_local6.height > _local3){ _local3 = _local6.height; }; _local4 = Math.max(_local1, _local4); _local5++; }; _local5 = 0; while (_local5 < Pages.length) { _local9 = _local5; _local10 = Pages[_local5].movie.y; _local11 = uint.MAX_VALUE; _local12 = uint.MIN_VALUE; do { _local6 = Pages[_local5]; _local11 = Math.min(_local11, _local6.movie.x); _local12 = Math.max(_local12, (_local6.movie.x + _local6.width)); _local5++; } while ((((_local5 < Pages.length)) && ((_local10 == Pages[_local5].movie.y)))); _local13 = (((ClientWidth / ScaleFactor) - (_local12 - _local11)) / 2); if (_local13 > 0){ _local14 = _local9; while (_local14 < _local5) { Pages[_local14].movie.x = (Pages[_local14].movie.x + _local13); _local14++; }; }; }; BottomArea.y = (((_local2 + yinterstice) + (_local3 * ScaleFactor)) / ScaleFactor); BottomArea.height = (ymargin / ScaleFactor); BottomArea.x = (_local4 / ScaleFactor); BottomArea.width = (xmargin / ScaleFactor); DocArea.update(); } public function mouseOutHandler(_arg1:MouseEvent):void{ ShowStandardCursor(); } public function LinkMouseOut(_arg1:MouseEvent):void{ ShowCustomCursor(); } public function CorrectZoomVal(_arg1:Number):uint{ if (_arg1 > maxZoom){ _arg1 = maxZoom; }; if (_arg1 < minZoom){ _arg1 = minZoom; }; return (Math.floor(_arg1)); } public function CalcScrollSteps():void{ DocArea.verticalLineScrollSize = (DocArea.height / 20); DocArea.verticalPageScrollSize = (DocArea.height - DocArea.verticalLineScrollSize); DocArea.horizontalLineScrollSize = (DocArea.width / 20); DocArea.horizontalPageScrollSize = (DocArea.width - DocArea.horizontalLineScrollSize); } public function OnStageMouseLeave(_arg1:Event):void{ mouseOutHandler(new MouseEvent(MouseEvent.MOUSE_OUT)); } function __setAcc_HandCursor_Scene1_Layer1_1(){ HandCursor.accessibilityProperties = new AccessibilityProperties(); HandCursor.accessibilityProperties.silent = true; } public function IsWordSym(_arg1:String):Boolean{ var _local2:Number = _arg1.charCodeAt(0); return ((((((((((_arg1 >= "A")) && ((_arg1 <= "Z")))) || ((((_arg1 >= "a")) && ((_arg1 <= "z")))))) || ((((_arg1 >= "0")) && ((_arg1 <= "9")))))) || ((((((((_local2 >= 128)) && (!((((_local2 >= 0x2000)) && ((_local2 <= 8303))))))) && (!((((_local2 >= 160)) && ((_local2 <= 191))))))) && (!((((_local2 >= 0x2E00)) && ((_local2 <= 11903))))))))); } public function SearchForText(_arg1:String):Boolean{ return ((notfoundtip.visible = (SearchAndHighlightText(_arg1) == -1))); } public function SyncDropDownButState():void{ var _local1:*; var _local2:MovieClip; if (DropDownToolbar){ _local1 = 0; while (_local1 < DropDownToolbar.Buttons.length) { _local2 = DropDownToolbar.Buttons[_local1]; _local2.but.normalState = _local2.button.movie.but.normalState; _local2.but.ShowState(_local2.but.normalState); _local1++; }; }; } public function OnPageNoFieldRollOver(_arg1:MouseEvent):void{ ShowPageNoFieldTip(true); } public function OnDocAreaContentRollOver(_arg1:MouseEvent):void{ cursor.x = _arg1.stageX; cursor.y = _arg1.stageY; ShowCustomCursor(); } public function GetInitParam(_arg1:String, _arg2:Object){ var _local3:* = loaderInfo.parameters[_arg1]; if (_local3 == null){ _local3 = _arg2; }; return (_local3); } public function CenterMsg(_arg1:MovieClip){ if (_arg1){ _arg1.x = ((stage.stageWidth - _arg1.width) / 2); _arg1.y = ((stage.stageHeight - _arg1.height) / 2); }; } public function ProcessZoomEntry():void{ SetZoomLevel(new Number(RemoveNonDigits(ScaleTextField.text))); } public function PlaceWaitMsg(_arg1:Sprite, _arg2:String):MovieClip{ var _local3 = "waitmsg"; var _local4:MovieClip = AttachMovie(_local3, _arg1, _local3); _local4.msg.autoSize = TextFieldAutoSize.LEFT; _local4.msg.text = _arg2; return (_local4); } public function OpenInNewWindowInt():void{ DropDownToolbar.visible = false; NavigateToURL(loaderInfo.url, "_blank"); } public function OnScaleTextFieldFocusOut(_arg1:FocusEvent):void{ ProcessZoomEntry(); } public function OnPageNoFieldFocusIn(_arg1:FocusEvent):void{ PageNoInitVal = PageNoField.text; ShowPageNoFieldTip(false); } public function OnFitWidthButClick(_arg1:MouseEvent):void{ FitWidth(); } public function SelectScroll(){ if (DocArea.mouseY > DocArea.height){ ScrollTo(undefined, (DocArea.verticalScrollPosition + interpolate((DocArea.verticalLineScrollSize * MinSelVScrollRatio), (DocArea.verticalLineScrollSize * MaxSelVScrollRatio), DocArea.height, (DocArea.height * 2), DocArea.mouseY))); } else { if (DocArea.mouseY < 0){ ScrollTo(undefined, (DocArea.verticalScrollPosition - interpolate((DocArea.verticalLineScrollSize * MinSelVScrollRatio), (DocArea.verticalLineScrollSize * MaxSelVScrollRatio), 0, -(DocArea.height), DocArea.mouseY))); } else { if (DocArea.mouseX > DocArea.width){ ScrollTo((DocArea.horizontalScrollPosition + interpolate((DocArea.horizontalLineScrollSize * MinSelHScrollRatio), (DocArea.horizontalLineScrollSize * MaxSelHScrollRatio), DocArea.width, (DocArea.width * 2), DocArea.mouseX)), undefined); } else { if (DocArea.mouseX < 0){ ScrollTo((DocArea.horizontalScrollPosition - interpolate((DocArea.horizontalLineScrollSize * MinSelHScrollRatio), (DocArea.horizontalLineScrollSize * MaxSelHScrollRatio), 0, -(DocArea.width), DocArea.mouseX)), undefined); }; }; }; }; } public function AttachBtnImages(){ var _local4:*; var _local1:* = 0; while (_local1 < TBButtons.length) { _local4 = TBButtons[_local1]; if (_local4.id){ AttachBtnImage(_local4.movie, _local4.id, _local4.nocoladj); }; _local1++; }; AttachBtnImage(toolbar.more, 16, false); toolbar.ZoomSlider.SetRange(minZoom, maxZoom); toolbar.ZoomSlider.y = Math.round(((Deftoppanelheight - toolbar.ZoomSlider.height) / 2)); toolbar.ZoomSlider.Init(); var _local2:MovieClip = toolbar.ZoomSlider.getChildByName("img"); if (_local2){ toolbar.ZoomSlider.swapChildren(_local2, toolbar.ZoomSlider.SliderHandle); toolbar.ZoomSlider.SliderHandleBtn.y = Math.round(((-((toolbar.ZoomSlider.SliderHandleBtn.height - _local2.height)) / 2) + GetIntSetting("ZoomHandleOffset", 0))); }; var _local3:MovieClip = toolbar.logo.getChildByName("img"); if (_local3){ _local3.y = Math.round(((29 - _local3.height) / 2)); }; } public function UpdateMaxPageParams(_arg1:Object):void{ if (_arg1.width > MaxPageWidth){ MaxPageWidth = _arg1.width; }; if (_arg1.height > MaxPageHeight){ MaxPageHeight = _arg1.height; }; } public function UpdatePageNo(_arg1:Number=0):void{ if (!_arg1){ _arg1 = GetVisiblePageNo(); }; PageNoField.text = _arg1.toString(); if (PageNo != _arg1){ PageNo = _arg1; }; } function __setTab_HandCursor_Scene1_Layer1_1(){ HandCursor.tabIndex = 0; } public function OnPageNoFieldFocusOut(_arg1:FocusEvent):void{ if (PageNoInitVal != PageNoField.text){ ProcessPageNo(); }; } public function OnTotalPagesFieldRollOut(_arg1:MouseEvent):void{ ShowTotalPagesTip(false); } public function ScanPages(_arg1:uint):void{ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local2:uint = _arg1; do { _local3 = DocPages[(_local2 - 1)].movie; _local4 = DocPages[(_local2 - 1)].realMovie; _local5 = _local3.x; _local6 = _local3.y; _local7 = _local4.x; _local8 = _local4.y; _local9 = _local4.rotation; _local10 = AttachPageMovie(_local2); _local11 = !((_local10 == null)); if (_local11){ if ((((_local2 < FromPage)) || ((_local2 > ToPage)))){ DocAreaContent.removeChild(_local10); } else { _local10.x = _local5; _local10.y = _local6; _local12 = _local10.getChildByName("realMovie"); _local12.x = _local7; _local12.y = _local8; _local12.rotation = _local9; }; loadedPages = _local2; UpdateWaitMsg(); }; _local2++; } while (((_local11) && ((_local2 <= totalPages)))); } public function AttachBinData(_arg1:String, _arg2:Boolean=false):ByteArray{ var ba:ByteArray; var AssetClass:Class; var id = _arg1; var fromExtDoc = _arg2; try { AssetClass = (getDefinitionByName(id) as Class); ba = new (AssetClass); } catch(e) { }; return (ba); } public function GetIntSetting(_arg1:String, _arg2:Object):int{ return (parseInt(GetSetting(_arg1, _arg2))); } public function OnFullScreen(_arg1:FullScreenEvent):void{ if (((!(_arg1.fullScreen)) && (!(isNaN(beforeFSWidth))))){ setSize(beforeFSWidth, beforeFSHeight); beforeFSWidth = NaN; }; SetupFSButton(); LayoutToolbar(); } public function onload():void{ SetMouseMode("move"); SetInitialView(); if (autonomous){ stage.dispatchEvent(new Event(Event.RESIZE)); } else { setSize(550, 400); }; SetInitialPos(); ShowTotalPages(); } public function GetSettingInt(_arg1:String, _arg2:Object, _arg3:XML, _arg4:XML=null):String{ var _local5:String = _arg3.attribute(_arg1); if (((!(_local5)) && (_arg4))){ _local5 = _arg4.attribute(_arg1); }; if (!_local5){ _local5 = String(_arg2); }; return (_local5); } public function OnLogoClick(_arg1:MouseEvent):void{ NavigateToURL(LogoURL, "_blank"); } public function GetMouseHoverSymbol(_arg1:Number):Object{ var _local3:*; var _local4:TextSnapshot; var _local5:Number; var _local2:uint; while (_local2 < Pages.length) { _local3 = GetMousePos(); if (Pages[_local2].realMovie.hitTestPoint(_local3.x, _local3.y)){ _local4 = GetTextSnapshot(_local2); _local5 = _local4.hitTestTextNearPos(Pages[_local2].realMovie.mouseX, Pages[_local2].realMovie.mouseY, _arg1); if (_local5 != -1){ return ({page:_local2, pos:_local5}); }; }; _local2++; }; return (null); } public function OnSearchFieldKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.charCode == 13){ Search(); }; } public function FindNonWord(_arg1:String, _arg2:uint):int{ var _local3:int = _arg2; while (_local3 < _arg1.length) { if (!IsWordSym(_arg1.charAt(_local3))){ return (_local3); }; _local3++; }; return (-1); } public function setSize(_arg1:uint, _arg2:uint):void{ DocArea.y = toppanelheight; MovieWidth = _arg1; MovieHeight = _arg2; DocArea.width = MovieWidth; DocArea.height = (MovieHeight - toppanelheight); CalcScrollSteps(); SetBaseParameters(); LayoutPages(); LayoutToolbar(); ModalScreen.resizeContainer(_arg1, _arg2); } function __setTab_DocArea_Scene1_Layer1_1(){ DocArea.tabIndex = 17; } public function OnSliderChange(_arg1:Event):void{ ZoomTo(toolbar.ZoomSlider.GetValue()); SetZoomState("none"); } public function OpenHelpPageInt():void{ DropDownToolbar.visible = false; NavigateToURL(HelpPageURL, "_blank"); } public function FillWithBitmap(_arg1:MovieClip, _arg2:BitmapData, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:Boolean):void{ var matrix:*; var movie = _arg1; var bitmap = _arg2; var x1 = _arg3; var y1 = _arg4; var x2 = _arg5; var y2 = _arg6; var scaleToFit = _arg7; var _local9 = movie.graphics; with (_local9) { if (scaleToFit){ matrix = new Matrix(); matrix.scale(((x2 - x1) / bitmap.width), ((y2 - y1) / bitmap.height)); }; beginBitmapFill(bitmap, matrix, true); moveTo(x1, y1); lineTo(x1, y2); lineTo(x2, y2); lineTo(x2, y1); lineTo(x1, y1); endFill(); }; } public function DropDowbButHandler(_arg1:MouseEvent):void{ _arg1.currentTarget.button.movie.but.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function SetupFSButton():void{ var _local1:* = toolbar.fullscreen; AttachBtnImage(_local1, GetFullScreenButID(), false); var _local2:TextField = _local1.tip; _local2.visible = false; _local2.text = locale.loadString(GetFullScreenTipID()); _local1.tipOrigx = (_local2.x = ((_local1.x + (_local1.width / 2)) - (_local2.width / 2))); } public function OnScaleTextFieldKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.charCode == 13){ ProcessZoomEntry(); }; } public function PreviousPageInt():void{ SetCurrentPage((GetCurrentPage() - 1)); } public function AttachMovie(_arg1:String, _arg2:Sprite=null, _arg3:String=""):MovieClip{ var movie:MovieClip; var AssetClass:Class; var id = _arg1; var parent = _arg2; var name = _arg3; try { AssetClass = (getDefinitionByName(id) as Class); movie = new (AssetClass); if (name.length){ movie.name = name; }; if (parent){ parent.addChild(movie); }; } catch(e:Error) { }; return (movie); } public function EnableLinks():void{ var _local1:uint; while (_local1 < Links.length) { Links[_local1].addEventListener(MouseEvent.CLICK, LinkClick, false, 0, true); Links[_local1].addEventListener(MouseEvent.ROLL_OVER, LinkMouseOver, false, 0, true); Links[_local1].addEventListener(MouseEvent.ROLL_OUT, LinkMouseOut, false, 0, true); _local1++; }; } public function ProcessPageNo(){ var _local1:String = PageNoField.text; SetCurrentPage(new Number(_local1)); PageNoInitVal = PageNoField.text; } public function OnCopyMenuItemSelect(_arg1:ContextMenuEvent){ if (!NoCopying){ CopyText(); }; } public function OnSearchFieldFocusIn(_arg1:FocusEvent):void{ ShowSearchPatTip(false); } public function GoToBookmark(_arg1:String, _arg2:Boolean=true){ var _local3:Object = BMDef[_arg1]; if (((((_local3) && ((_local3.page >= 1)))) && ((_local3.page <= totalPages)))){ if (_arg2){ AddToHistory(_local3); }; GoToPagePos(_local3, false); return (true); }; return (false); } public function CreateLinks(_arg1:uint):void{ var _local3:uint; var _local4:Object; var _local5:MovieClip; var _local6:MovieClip; var _local2:Object = LinkDef[("p" + _arg1)]; if (_local2){ _local3 = 0; while (_local3 < _local2.length) { _local4 = _local2[_local3]; _local5 = DocPages[(_arg1 - 1)].realMovie; _local6 = (_local5.getChildByName(_local4.name) as MovieClip); _local6.LinkURL = _local4.url; _local6.target = _local4.target; _local6.pageno = _arg1; _local6.useHandCursor = true; _local6.buttonMode = true; _local6.addEventListener(MouseEvent.CLICK, LinkClick, false, 0, true); _local6.addEventListener(MouseEvent.ROLL_OVER, LinkMouseOver, false, 0, true); _local6.addEventListener(MouseEvent.ROLL_OUT, LinkMouseOut, false, 0, true); Links.push(_local6); _local3++; }; }; } } }//package print2flash_fla
Section 26
//MCSlider_47 (print2flash_fla.MCSlider_47) package print2flash_fla { import flash.display.*; import flash.accessibility.*; public dynamic class MCSlider_47 extends MovieClip { public var SliderHandleBtn:ImgButton; public function MCSlider_47(){ __setAcc_SliderHandleBtn_MCSlider_Layer1_0(); __setTab_SliderHandleBtn_MCSlider_Layer1_0(); } function __setTab_SliderHandleBtn_MCSlider_Layer1_0(){ SliderHandleBtn.tabIndex = 0; } function __setAcc_SliderHandleBtn_MCSlider_Layer1_0(){ SliderHandleBtn.accessibilityProperties = new AccessibilityProperties(); SliderHandleBtn.accessibilityProperties.silent = true; } } }//package print2flash_fla
Section 27
//Timeline_30 (print2flash_fla.Timeline_30) package print2flash_fla { import flash.display.*; import flash.text.*; import flash.accessibility.*; public dynamic class Timeline_30 extends MovieClip { public var ScaleTextField:TextField; public function Timeline_30(){ __setAcc_ScaleTextField_(); __setTab_ScaleTextField_(); } function __setTab_ScaleTextField_(){ ScaleTextField.tabIndex = 5; } function __setAcc_ScaleTextField_(){ ScaleTextField.accessibilityProperties = new AccessibilityProperties(); ScaleTextField.accessibilityProperties.name = "Zoom"; } } }//package print2flash_fla
Section 28
//Timeline_31 (print2flash_fla.Timeline_31) package print2flash_fla { import flash.display.*; import flash.accessibility.*; public dynamic class Timeline_31 extends MovieClip { public var PageNoFieldMC:MovieClip; public var TotalPagesMC:MovieClip; public function Timeline_31(){ __setAcc_TotalPagesMC_(); __setTab_TotalPagesMC_(); __setTab_PageNoFieldMC_(); } function __setAcc_TotalPagesMC_(){ TotalPagesMC.accessibilityProperties = new AccessibilityProperties(); TotalPagesMC.accessibilityProperties.silent = true; } function __setTab_PageNoFieldMC_(){ PageNoFieldMC.tabIndex = 0; } function __setTab_TotalPagesMC_(){ TotalPagesMC.tabIndex = 0; } } }//package print2flash_fla
Section 29
//Timeline_32 (print2flash_fla.Timeline_32) package print2flash_fla { import flash.display.*; import flash.text.*; import flash.accessibility.*; public dynamic class Timeline_32 extends MovieClip { public var TotalPages:TextField; public function Timeline_32(){ __setAcc_TotalPages_(); __setTab_TotalPages_(); } function __setTab_TotalPages_(){ TotalPages.tabIndex = 0; } function __setAcc_TotalPages_(){ TotalPages.accessibilityProperties = new AccessibilityProperties(); TotalPages.accessibilityProperties.silent = true; } } }//package print2flash_fla
Section 30
//Timeline_33 (print2flash_fla.Timeline_33) package print2flash_fla { import flash.display.*; import flash.text.*; import flash.accessibility.*; public dynamic class Timeline_33 extends MovieClip { public var PageNoField:TextField; public function Timeline_33(){ __setAcc_PageNoField_(); __setTab_PageNoField_(); } function __setTab_PageNoField_(){ PageNoField.tabIndex = 9; } function __setAcc_PageNoField_(){ PageNoField.accessibilityProperties = new AccessibilityProperties(); PageNoField.accessibilityProperties.name = "Go to page"; } } }//package print2flash_fla
Section 31
//Timeline_50 (print2flash_fla.Timeline_50) package print2flash_fla { import flash.display.*; import flash.text.*; import flash.accessibility.*; public dynamic class Timeline_50 extends MovieClip { public var searchPattern:TextField; public function Timeline_50(){ __setAcc_searchPattern_(); __setTab_searchPattern_(); } function __setTab_searchPattern_(){ searchPattern.tabIndex = 11; } function __setAcc_searchPattern_(){ searchPattern.accessibilityProperties = new AccessibilityProperties(); searchPattern.accessibilityProperties.name = "Search"; } } }//package print2flash_fla
Section 32
//button (button) package { import flash.display.*; public dynamic class button extends SimpleButton { } }//package
Section 33
//Button_disabledSkin (Button_disabledSkin) package { import flash.display.*; public dynamic class Button_disabledSkin extends MovieClip { } }//package
Section 34
//Button_downSkin (Button_downSkin) package { import flash.display.*; public dynamic class Button_downSkin extends MovieClip { } }//package
Section 35
//Button_emphasizedSkin (Button_emphasizedSkin) package { import flash.display.*; public dynamic class Button_emphasizedSkin extends MovieClip { } }//package
Section 36
//Button_overSkin (Button_overSkin) package { import flash.display.*; public dynamic class Button_overSkin extends MovieClip { } }//package
Section 37
//Button_selectedDisabledSkin (Button_selectedDisabledSkin) package { import flash.display.*; public dynamic class Button_selectedDisabledSkin extends MovieClip { } }//package
Section 38
//Button_selectedDownSkin (Button_selectedDownSkin) package { import flash.display.*; public dynamic class Button_selectedDownSkin extends MovieClip { } }//package
Section 39
//Button_selectedOverSkin (Button_selectedOverSkin) package { import flash.display.*; public dynamic class Button_selectedOverSkin extends MovieClip { } }//package
Section 40
//Button_selectedUpSkin (Button_selectedUpSkin) package { import flash.display.*; public dynamic class Button_selectedUpSkin extends MovieClip { } }//package
Section 41
//Button_upSkin (Button_upSkin) package { import flash.display.*; public dynamic class Button_upSkin extends MovieClip { } }//package
Section 42
//def_back (def_back) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_back extends MovieClip { public var but:manualbutton; public function def_back(){ __setAcc_but_def_back_Layer2_0(); __setTab_but_def_back_Layer2_0(); } function __setAcc_but_def_back_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Back"; but.accessibilityProperties.forceSimple = true; } function __setTab_but_def_back_Layer2_0(){ but.tabIndex = 1; } } }//package
Section 43
//def_bgr (def_bgr) package { import flash.display.*; public dynamic class def_bgr extends MovieClip { } }//package
Section 44
//def_forward (def_forward) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_forward extends MovieClip { public var but:manualbutton; public function def_forward(){ __setAcc_but_def_forward_Layer2_0(); __setTab_but_def_forward_Layer2_0(); } function __setTab_but_def_forward_Layer2_0(){ but.tabIndex = 2; } function __setAcc_but_def_forward_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Forward"; but.accessibilityProperties.forceSimple = true; } } }//package
Section 45
//def_fullscreen (def_fullscreen) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_fullscreen extends MovieClip { public var but:manualbutton; public function def_fullscreen(){ __setAcc_but_def_fullscreen_Layer2_0(); __setTab_but_def_fullscreen_Layer2_0(); } function __setTab_but_def_fullscreen_Layer2_0(){ but.tabIndex = 1; } function __setAcc_but_def_fullscreen_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Back"; but.accessibilityProperties.forceSimple = true; } } }//package
Section 46
//def_help (def_help) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_help extends MovieClip { public var but:manualbutton; public function def_help(){ __setAcc_but_def_help_Layer2_0(); __setTab_but_def_help_Layer2_0(); } function __setAcc_but_def_help_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Help"; but.accessibilityProperties.forceSimple = true; } function __setTab_but_def_help_Layer2_0(){ but.tabIndex = 16; } } }//package
Section 47
//def_more (def_more) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_more extends MovieClip { public var but:manualbutton; public function def_more(){ __setAcc_but_def_more_Layer3_0(); __setTab_but_def_more_Layer3_0(); } function __setTab_but_def_more_Layer3_0(){ but.tabIndex = 0; } function __setAcc_but_def_more_Layer3_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.silent = true; } } }//package
Section 48
//def_moveMode (def_moveMode) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_moveMode extends MovieClip { public var but:manualbutton; public function def_moveMode(){ __setAcc_but_def_moveMode_Layer2_0(); __setTab_but_def_moveMode_Layer2_0(); } function __setTab_but_def_moveMode_Layer2_0(){ but.tabIndex = 3; } function __setAcc_but_def_moveMode_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Drag"; but.accessibilityProperties.forceSimple = true; } } }//package
Section 49
//def_newwindow (def_newwindow) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_newwindow extends MovieClip { public var but:manualbutton; public function def_newwindow(){ __setAcc_but_def_newwindow_Layer2_0(); __setTab_but_def_newwindow_Layer2_0(); } function __setAcc_but_def_newwindow_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Open in New Window"; but.accessibilityProperties.forceSimple = true; } function __setTab_but_def_newwindow_Layer2_0(){ but.tabIndex = 15; } } }//package
Section 50
//def_nextpage (def_nextpage) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_nextpage extends MovieClip { public var but:manualbutton; public function def_nextpage(){ __setAcc_but_def_nextpage_Layer2_0(); __setTab_but_def_nextpage_Layer2_0(); } function __setTab_but_def_nextpage_Layer2_0(){ but.tabIndex = 10; } function __setAcc_but_def_nextpage_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Next page"; but.accessibilityProperties.forceSimple = true; } } }//package
Section 51
//def_prevpage (def_prevpage) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_prevpage extends MovieClip { public var but:manualbutton; public function def_prevpage(){ __setAcc_but_def_prevpage_Layer2_0(); __setTab_but_def_prevpage_Layer2_0(); } function __setTab_but_def_prevpage_Layer2_0(){ but.tabIndex = 8; } function __setAcc_but_def_prevpage_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Previous page"; but.accessibilityProperties.forceSimple = true; } } }//package
Section 52
//def_print (def_print) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_print extends MovieClip { public var but:manualbutton; public function def_print(){ __setAcc_but_def_print_Layer2_0(); __setTab_but_def_print_Layer2_0(); } function __setTab_but_def_print_Layer2_0(){ but.tabIndex = 14; } function __setAcc_but_def_print_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Print"; but.accessibilityProperties.forceSimple = true; } } }//package
Section 53
//def_rotate (def_rotate) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_rotate extends MovieClip { public var but:manualbutton; public function def_rotate(){ __setAcc_but_def_rotate_Layer2_0(); __setTab_but_def_rotate_Layer2_0(); } function __setTab_but_def_rotate_Layer2_0(){ but.tabIndex = 13; } function __setAcc_but_def_rotate_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Rotate"; but.accessibilityProperties.forceSimple = true; } } }//package
Section 54
//def_scalePage (def_scalePage) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_scalePage extends MovieClip { public var but:manualbutton; public function def_scalePage(){ __setAcc_but_def_scalePage_Layer2_0(); __setTab_but_def_scalePage_Layer2_0(); } function __setAcc_but_def_scalePage_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Fit page"; but.accessibilityProperties.forceSimple = true; } function __setTab_but_def_scalePage_Layer2_0(){ but.tabIndex = 7; } } }//package
Section 55
//def_scaleWidth (def_scaleWidth) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_scaleWidth extends MovieClip { public var but:manualbutton; public function def_scaleWidth(){ __setAcc_but_def_scaleWidth_Layer2_0(); __setTab_but_def_scaleWidth_Layer2_0(); } function __setTab_but_def_scaleWidth_Layer2_0(){ but.tabIndex = 6; } function __setAcc_but_def_scaleWidth_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Fit width"; but.accessibilityProperties.forceSimple = true; } } }//package
Section 56
//def_selMode (def_selMode) package { import flash.display.*; import flash.accessibility.*; public dynamic class def_selMode extends MovieClip { public var but:manualbutton; public function def_selMode(){ __setAcc_but_def_selMode_Layer2_0(); __setTab_but_def_selMode_Layer2_0(); } function __setTab_but_def_selMode_Layer2_0(){ but.tabIndex = 4; } function __setAcc_but_def_selMode_Layer2_0(){ but.accessibilityProperties = new AccessibilityProperties(); but.accessibilityProperties.name = "Select Text"; but.accessibilityProperties.forceSimple = true; } } }//package
Section 57
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 58
//ImgButton (ImgButton) package { import flash.display.*; public class ImgButton extends SimpleButton { private var upImageID; private var downImageID:String; public function SetImages(_arg1, _arg2:String){ var _local3:MovieClip = MovieClip(root); upState = new ImgButtonDisplayState(_arg1, _local3); downState = new ImgButtonDisplayState(_arg2, _local3); overState = new ImgButtonDisplayState(_arg2, _local3); hitTestState = new Sprite(); _local3.DrawRect(hitTestState, 0, 0, Math.max(upState.width, downState.width), Math.max(upState.height, downState.height), 0); } } }//package
Section 59
//ImgButtonDisplayState (ImgButtonDisplayState) package { import flash.display.*; public class ImgButtonDisplayState extends Sprite { public function ImgButtonDisplayState(_arg1:String, _arg2:MovieClip){ _arg2.AttachMovie(_arg1, this); } } }//package
Section 60
//manualbutton (manualbutton) package { import flash.display.*; import flash.events.*; public class manualbutton extends MovieClip { private var canvas:Sprite; public var normalState:uint;// = 1 public function manualbutton(){ useHandCursor = (buttonMode = true); mouseChildren = false; addEventListener(MouseEvent.ROLL_OVER, onRollOver, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, onRollOut, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, onMouseUp, false, 0, true); } public function onMouseUp(_arg1:MouseEvent):void{ ShowState(2); } public function onRollOut(_arg1:MouseEvent):void{ var _local2:MovieClip = MovieClip(root); ShowState(normalState); } public function onRollOver(_arg1:MouseEvent):void{ ShowState(2); } public function ShowState(_arg1:uint):void{ var _local2:MovieClip = MovieClip(root); if (canvas){ removeChild(canvas); }; canvas = new Sprite(); addChild(canvas); switch (_arg1){ case 2: _local2.DrawRect(canvas, 0, 0, (width / scaleX), height, _local2.OverButColor, _local2.OverRectColor); break; case 3: _local2.DrawRect(canvas, 0, 0, (width / scaleX), height, _local2.DownButColor, _local2.DownRectColor); break; }; } public function onMouseDown(_arg1:MouseEvent):void{ ShowState(3); } } }//package
Section 61
//ModalScreen (ModalScreen) package { import flash.display.*; public class ModalScreen { private static var container:DisplayObjectContainer; private static var sprite:Sprite; private static var object:DisplayObject; private static function DrawSprite(_arg1, _arg2:uint){ sprite.graphics.beginFill(0); sprite.graphics.drawRect(container.x, container.y, _arg1, _arg2); sprite.graphics.endFill(); } public static function resizeContainer(_arg1, _arg2:uint):void{ if (sprite){ sprite.graphics.clear(); DrawSprite(_arg1, _arg2); center(_arg1, _arg2, object); }; } public static function close(){ container.removeChild(sprite); sprite = null; } private static function center(_arg1:uint, _arg2:uint, _arg3:DisplayObject):void{ _arg3.x = ((_arg1 / 2) - (_arg3.width / 2)); _arg3.y = ((_arg2 / 2) - (_arg3.height / 2)); } public static function show(_arg1:DisplayObjectContainer, _arg2:DisplayObject, _arg3:uint, _arg4:uint){ _arg1 = DisplayObjectContainer(_arg1.root); ModalScreen.container = _arg1; ModalScreen.object = _arg2; sprite = new Sprite(); DrawSprite(_arg3, _arg4); sprite.addChild(_arg2); sprite.alpha = 0.5; _arg2.alpha = 2; _arg1.addChild(sprite); _arg1.setChildIndex(sprite, (_arg1.numChildren - 1)); ModalScreen.center(_arg3, _arg4, _arg2); } } }//package
Section 62
//P2FLocale (P2FLocale) package { import flash.system.*; public class P2FLocale { var Strings:Object; static var DefLanguage = "en"; public static var LocaleArray:Object = {bs:{IDS_DRAG:"Ruka", IDS_SELTEXT:"Selektuj tekst", IDS_ZOOM:"Priblizi", IDS_FITWIDTH:"Po sirini", IDS_FITPAGE:"Po stranici", IDS_PREVPAGE:"Prosla stranica", IDS_GOTOPAGE:"Idi na stranicu", IDS_TOTPAGES:"Ukupno stranica", IDS_NEXTPAGE:"Sljedeca stranica", IDS_SCHHINT:"Kucaj ovdje da trazis", IDS_SEARCH:"Trazi", IDS_NOTFOUND:"Nije pronadjeno", IDS_ROTATE:"Rotiraj", IDS_PRINT:"Printaj", IDS_NEWWND:"Otvori u novom prozoru", IDS_HELP:"Pomoc", IDS_BACK:"Nazad", IDS_FORWARD:"Naprijed", IDS_FULLSCR:"Prikaz preko cijelog ekrana", IDS_FULLSCREXIT:"Prekini prikaz preko cijelog ekrana"}, cs:{IDS_DRAG:"Posouvání", IDS_SELTEXT:"Vybrat text", IDS_ZOOM:"Zvětšení", IDS_FITWIDTH:"Šířka stránky", IDS_FITPAGE:"Celá stránka", IDS_PREVPAGE:"Předchozí stránka", IDS_GOTOPAGE:"Přejít na stránku", IDS_TOTPAGES:"Celkem stránek", IDS_NEXTPAGE:"Další stránka", IDS_SCHHINT:"Vložte hledaný text", IDS_SEARCH:"Hledat", IDS_NOTFOUND:"Nenalezeno", IDS_ROTATE:"Otočit", IDS_PRINT:"Tisk", IDS_NEWWND:"Otevřít v novém okně", IDS_HELP:"Nápověda", IDS_BACK:"Zpět", IDS_FORWARD:"Vpřed", IDS_FULLSCR:"Celá obrazovka", IDS_FULLSCREXIT:"Ukončit režim celé obrazovky", IDS_PDTITLE:"Nastavení tisku", IDS_PDPAGES:"Strany:", IDS_PDFROM:"Od", IDS_PDTO:"Do", IDS_PDSCALING:"Měřítko stránky:", IDS_PDNOSCALE:"Žádné", IDS_PDAUTOR:"Automaticky otočit a přizpůsobit", IDS_OK:"OK", IDS_CANCEL:"Storno"}, da:{IDS_DRAG:"Træk", IDS_SELTEXT:"Vælg tekst", IDS_ZOOM:"Zoom", IDS_FITWIDTH:"Tilpas bredde", IDS_FITPAGE:"Tilpas side", IDS_PREVPAGE:"Forrige side", IDS_GOTOPAGE:"Gå til side", IDS_TOTPAGES:"Antal sider", IDS_NEXTPAGE:"Næste side", IDS_SCHHINT:"Angiv søgeord", IDS_SEARCH:"Søg", IDS_NOTFOUND:"Ikke fundet", IDS_ROTATE:"Rotér", IDS_PRINT:"Udskriv", IDS_NEWWND:"Åbn i nyt vindue", IDS_HELP:"Hjælp", IDS_BACK:"Tilbage", IDS_FORWARD:"Fremad", IDS_FULLSCR:"Fuldskærm", IDS_FULLSCREXIT:"Afslut fuldskærmstilstand"}, de:{IDS_DRAG:"Schwenken", IDS_SELTEXT:"Text auswählen", IDS_ZOOM:"Zoom", IDS_FITWIDTH:"Breite anpassen", IDS_FITPAGE:"An Ansicht anpassen", IDS_PREVPAGE:"Vorherige Seite", IDS_GOTOPAGE:"Springen zu Seite", IDS_TOTPAGES:"Gesamtseiten", IDS_NEXTPAGE:"Nächste Seite", IDS_SCHHINT:"Geben Sie hier ein um Text zu suchen", IDS_SEARCH:"Suche", IDS_NOTFOUND:"Nicht gefunden", IDS_ROTATE:"Drehen", IDS_PRINT:"Drucken", IDS_NEWWND:"In neuem Browser öffnen", IDS_HELP:"Hilfe", IDS_BACK:"Zurück", IDS_FORWARD:"Vor", IDS_FULLSCR:"Vollbild", IDS_FULLSCREXIT:"Vollbildmodus beenden", IDS_PDTITLE:"Druckeinstellungen", IDS_PDPAGES:"Seiten:", IDS_PDFROM:"Von", IDS_PDTO:"Bis", IDS_PDSCALING:"Seitenanpassung:", IDS_PDNOSCALE:"Keine", IDS_PDAUTOR:"Automatisch drehen und einpassen", IDS_OK:"OK", IDS_CANCEL:"Abbrechen"}, en:{IDS_DRAG:"Drag", IDS_SELTEXT:"Select Text", IDS_ZOOM:"Zoom", IDS_FITWIDTH:"Fit Width", IDS_FITPAGE:"Fit Page", IDS_PREVPAGE:"Previous Page", IDS_GOTOPAGE:"Go To Page", IDS_TOTPAGES:"Total Pages", IDS_NEXTPAGE:"Next Page", IDS_SCHHINT:"Type here to search", IDS_SEARCH:"Search", IDS_NOTFOUND:"Not Found", IDS_ROTATE:"Rotate", IDS_PRINT:"Print", IDS_NEWWND:"Open In New Window", IDS_HELP:"Help", IDS_BACK:"Back", IDS_FORWARD:"Forward", IDS_FULLSCR:"Full Screen", IDS_FULLSCREXIT:"Exit Full Screen Mode", IDS_PDTITLE:"Print Options", IDS_PDPAGES:"Pages:", IDS_PDFROM:"From", IDS_PDTO:"To", IDS_PDSCALING:"Scaling:", IDS_PDNOSCALE:"No scale", IDS_PDAUTOR:"Auto-Rotate and Fit", IDS_OK:"OK", IDS_CANCEL:"Cancel"}, es:{IDS_DRAG:"Desplazar", IDS_SELTEXT:"Seleccionar", IDS_ZOOM:"Zoom", IDS_FITWIDTH:"Ajustar al ancho", IDS_FITPAGE:"Ajustar al visor", IDS_PREVPAGE:"Página Anterior", IDS_GOTOPAGE:"Vaya A paginar", IDS_TOTPAGES:"Páginas Totales", IDS_NEXTPAGE:"Página Siguiente", IDS_SCHHINT:"Mecanografíe aquí a búsqueda", IDS_SEARCH:"Buscar", IDS_NOTFOUND:"No encontrado", IDS_ROTATE:"Rote", IDS_PRINT:"Imprimir", IDS_NEWWND:"Abrir en nuevo navegador", IDS_HELP:"Ayuda", IDS_BACK:"Anterior", IDS_FORWARD:"Siguiente", IDS_FULLSCR:"Pantalla completa", IDS_FULLSCREXIT:"Salir del modo pantalla completa", IDS_PDTITLE:"Imprimir", IDS_PDPAGES:"Páginas:", IDS_PDFROM:"De", IDS_PDTO:"A", IDS_PDSCALING:"Escala:", IDS_PDNOSCALE:"Sin escala", IDS_PDAUTOR:"Auto-rotar y Ajustar", IDS_OK:"OK", IDS_CANCEL:"Cancelar"}, fr:{IDS_DRAG:"Panorama", IDS_SELTEXT:"Sélectionner le texte", IDS_ZOOM:"Zoom", IDS_FITWIDTH:"Ajuster la largeur", IDS_FITPAGE:"Ajuster dans la visionneuse", IDS_PREVPAGE:"Page précédente", IDS_GOTOPAGE:" Aller a la page", IDS_TOTPAGES:"Nombre de pages", IDS_NEXTPAGE:"Prochaine page", IDS_SCHHINT:"Entrez votre question ici", IDS_SEARCH:"Rechercher", IDS_NOTFOUND:"Non trouvé", IDS_ROTATE:"Rotation", IDS_PRINT:"Imprimer", IDS_NEWWND:"Ouvrir dans une nouvelle fenêtre", IDS_HELP:"Aide", IDS_BACK:"Page précédente", IDS_FORWARD:"Page suivante", IDS_FULLSCR:"Plein écran", IDS_FULLSCREXIT:"Quitter le mode plein écran"}, hr:{IDS_DRAG:"Ruka", IDS_SELTEXT:"Selektiraj tekst", IDS_ZOOM:"Zumiraj", IDS_FITWIDTH:"Po sirini", IDS_FITPAGE:"Po stranici", IDS_PREVPAGE:"Prethodna stranica", IDS_GOTOPAGE:"Idi na stranicu", IDS_TOTPAGES:"Svega stranica", IDS_NEXTPAGE:"Sljedeca stranica", IDS_SCHHINT:"Upisi ovdje za pretragu", IDS_SEARCH:"Pretraga", IDS_NOTFOUND:"Nema rezultata", IDS_ROTATE:"Zarotiraj", IDS_PRINT:"Stampaj", IDS_NEWWND:"Otvori u novom prozoru", IDS_HELP:"Pomoc", IDS_BACK:"Nazad", IDS_FORWARD:"Naprijed", IDS_FULLSCR:"Potpuni ekran", IDS_FULLSCREXIT:"Izađi iz prikaza potpunog ekrana"}, it:{IDS_DRAG:"Trascina", IDS_SELTEXT:"Seleziona testo", IDS_ZOOM:"Zoom", IDS_FITWIDTH:"Adatta larghezza", IDS_FITPAGE:"Adatta pagina", IDS_PREVPAGE:"Pagina precedente", IDS_GOTOPAGE:"Vai a pagina", IDS_TOTPAGES:"Pagine totali", IDS_NEXTPAGE:"Pagina successiva", IDS_SCHHINT:"Testo da cercare", IDS_SEARCH:"Trova", IDS_NOTFOUND:"Testo non trovato", IDS_ROTATE:"Ruota", IDS_PRINT:"Stampa", IDS_NEWWND:"Apri in una nuova finestra", IDS_HELP:"Aiuto", IDS_BACK:"Indietro", IDS_FORWARD:"Avanti", IDS_FULLSCR:"Schermo intero", IDS_FULLSCREXIT:"Esci da schermo intero"}, ja:{IDS_DRAG:"ドラッグ", IDS_SELTEXT:"テキスト選択", IDS_ZOOM:"ズーム", IDS_FITWIDTH:"幅に合わせる", IDS_FITPAGE:"ページに合わせる", IDS_PREVPAGE:"前頁", IDS_GOTOPAGE:"ページへ", IDS_TOTPAGES:"総ページ数", IDS_NEXTPAGE:"次頁", IDS_SCHHINT:"検索する文字列を入力してください", IDS_SEARCH:"検索", IDS_NOTFOUND:"指定のものは見つかりません", IDS_ROTATE:"回転", IDS_PRINT:"印刷", IDS_NEWWND:"新しいウィンドウで開く", IDS_HELP:"ヘルプ", IDS_BACK:"前へ", IDS_FORWARD:"次へ", IDS_FULLSCR:"全画面表示", IDS_FULLSCREXIT:"全画面表示モードを閉じる", IDS_PDTITLE:"印刷オプション", IDS_PDPAGES:"ページ指定", IDS_PDFROM:"開始", IDS_PDTO:"終了", IDS_PDSCALING:"スケーリング", IDS_PDNOSCALE:"スケール無し", IDS_PDAUTOR:"自動回転とページに合わせる", IDS_OK:"印刷", IDS_CANCEL:"キャンセル"}, nl:{IDS_DRAG:"Slepen", IDS_SELTEXT:"Selecteer tekst", IDS_ZOOM:"Vergroten", IDS_FITWIDTH:"Aanpassen breedte", IDS_FITPAGE:"Aanpassen pagina", IDS_PREVPAGE:"Vorige pagina", IDS_GOTOPAGE:"Ga naar", IDS_TOTPAGES:"Totaal aantal pagina's", IDS_NEXTPAGE:"Volgende pagina", IDS_SCHHINT:"Zoekargument", IDS_SEARCH:"Zoeken", IDS_NOTFOUND:"Niet gevonden", IDS_ROTATE:"Roteren", IDS_PRINT:"Afdrukken", IDS_NEWWND:"Open in nieuw window", IDS_HELP:"Help", IDS_BACK:"Terug", IDS_FORWARD:"Vooruit", IDS_FULLSCR:"Volledig scherm", IDS_FULLSCREXIT:"Volledigschermmodus verlaten", IDS_PDTITLE:"Print Opties", IDS_PDPAGES:"Pagina’s:", IDS_PDFROM:"Van", IDS_PDTO:"Tot", IDS_PDSCALING:"Schalen:", IDS_PDNOSCALE:"Niet schalen", IDS_PDAUTOR:"Passend maken", IDS_OK:"OK", IDS_CANCEL:"Annuleer"}, pl:{IDS_DRAG:"Przeciągnij", IDS_SELTEXT:"Zaznacz tekst", IDS_ZOOM:"Zmień rozmiar", IDS_FITWIDTH:"Dopasuj szerokość", IDS_FITPAGE:"Dopasuj stronę", IDS_PREVPAGE:"Poprzednia strona", IDS_GOTOPAGE:"Przejdź do strony", IDS_TOTPAGES:"Suma stron", IDS_NEXTPAGE:"Następna strona", IDS_SCHHINT:"Wpisz tekst", IDS_SEARCH:"Szukaj", IDS_NOTFOUND:"Nie znalezionio", IDS_ROTATE:"Obróć", IDS_PRINT:"Drukuj", IDS_NEWWND:"Otwórz w nowym oknie", IDS_HELP:"Pomoc", IDS_BACK:"Do tyłu", IDS_FORWARD:"Do przodu", IDS_FULLSCR:"Tryb pełnoekranowy", IDS_FULLSCREXIT:"Opuść tryb pełnoekranowy", IDS_PDTITLE:"Opcje wydruku", IDS_PDPAGES:"Strony:", IDS_PDFROM:"Od", IDS_PDTO:"Do", IDS_PDSCALING:"Skalowanie:", IDS_PDNOSCALE:"Nie skaluj", IDS_PDAUTOR:"Autorotacja i dopasowanie", IDS_OK:"OK", IDS_CANCEL:"Anuluj"}, pt:{IDS_DRAG:"Arrastar", IDS_SELTEXT:"Selecionar Texto", IDS_ZOOM:"Zoom", IDS_FITWIDTH:"Ajustar Largura", IDS_FITPAGE:"Ajustar Página", IDS_PREVPAGE:"Página Anterior", IDS_GOTOPAGE:"Ir para Página", IDS_TOTPAGES:"Total de Páginas", IDS_NEXTPAGE:"Próxima Página", IDS_SCHHINT:"Digite aqui para Procurar", IDS_SEARCH:"Procurar", IDS_NOTFOUND:"Não Encontrado", IDS_ROTATE:"Girar", IDS_PRINT:"Imprimir", IDS_NEWWND:"Abrir em uma Nova Janela", IDS_HELP:"Ajuda", IDS_BACK:"Retroceder", IDS_FORWARD:"Avançar", IDS_FULLSCR:"Ecrã inteiro", IDS_FULLSCREXIT:"Sair de Modo de Ecrã Inteiro", IDS_PDTITLE:"Opções de Impressão", IDS_PDPAGES:"Páginas:", IDS_PDFROM:"De", IDS_PDTO:"Para", IDS_PDSCALING:"Escala:", IDS_PDNOSCALE:"Sem escala", IDS_PDAUTOR:"Rotação Automática e Ajuste", IDS_OK:"OK", IDS_CANCEL:"Cancelar"}, ru:{IDS_DRAG:"Перемещение", IDS_SELTEXT:"Выбор текста", IDS_ZOOM:"Масштаб", IDS_FITWIDTH:"По ширине страницы", IDS_FITPAGE:"Страница целиком", IDS_PREVPAGE:"Предыдущая страница", IDS_GOTOPAGE:"Перейти к странице", IDS_TOTPAGES:"Всего страниц", IDS_NEXTPAGE:"Следующая страница", IDS_SCHHINT:"Введите здесь текст для поиска", IDS_SEARCH:"Поиск", IDS_NOTFOUND:"Не найдено", IDS_ROTATE:"Поворот", IDS_PRINT:"Печать", IDS_NEWWND:"Открыть в новом окне", IDS_HELP:"Помощь", IDS_BACK:"Назад", IDS_FORWARD:"Вперёд", IDS_FULLSCR:"Полный экран", IDS_FULLSCREXIT:"Выйти из полноэкранного режима", IDS_PDTITLE:"Параметры печати", IDS_PDPAGES:"Страницы:", IDS_PDFROM:"С", IDS_PDTO:"По", IDS_PDSCALING:"Масштабирование:", IDS_PDNOSCALE:"Без масштабирования", IDS_PDAUTOR:"Повернуть и подогнать", IDS_OK:"OK", IDS_CANCEL:"Отмена"}, sr:{IDS_DRAG:"Ruka", IDS_SELTEXT:"Selektuj tekst", IDS_ZOOM:"Ublizi", IDS_FITWIDTH:"Po sirini", IDS_FITPAGE:"Po stranici", IDS_PREVPAGE:"Prethodna stranica", IDS_GOTOPAGE:"Idi na stranicu", IDS_TOTPAGES:"Svega stranica", IDS_NEXTPAGE:"Sledeca stranica", IDS_SCHHINT:"Upisi ovde za pretragu", IDS_SEARCH:"Pretraga", IDS_NOTFOUND:"Nema", IDS_ROTATE:"Zarotiraj", IDS_PRINT:"Stampa", IDS_NEWWND:"Otvori u novom prozoru", IDS_HELP:"Pomoc", IDS_BACK:"Nazad", IDS_FORWARD:"Napred", IDS_FULLSCR:"Full Screen", IDS_FULLSCREXIT:"Exit Full Screen Mode"}, sv:{IDS_DRAG:"Dra", IDS_SELTEXT:"Välj text", IDS_ZOOM:"Zooma", IDS_FITWIDTH:"Anpassa bredd", IDS_FITPAGE:"Anpassa sida", IDS_PREVPAGE:"Föregående sida", IDS_GOTOPAGE:"Gå till sidan", IDS_TOTPAGES:"Alla sidor", IDS_NEXTPAGE:"Nästa sida", IDS_SCHHINT:"Skriv in sökord här", IDS_SEARCH:"Sök", IDS_NOTFOUND:"Kan inte hittas", IDS_ROTATE:"Rotera", IDS_PRINT:"Skriv ut", IDS_NEWWND:"Öppna i nytt fönster", IDS_HELP:"Hjälp", IDS_BACK:"Tillbaka", IDS_FORWARD:"Framåt", IDS_FULLSCR:"Helskärm", IDS_FULLSCREXIT:"Avsluta helskärmsläget", IDS_PDTITLE:"Skriv ut", IDS_PDPAGES:"Sidor:", IDS_PDFROM:"Från", IDS_PDTO:"Till", IDS_PDSCALING:"Anpassningsalternativ", IDS_PDNOSCALE:"Ingen anpassning", IDS_PDAUTOR:"Auto-rotering och anpassning", IDS_OK:"OK", IDS_CANCEL:"Avbryt"}, tr:{IDS_DRAG:"Sürükle", IDS_SELTEXT:"Seç", IDS_ZOOM:"Yaklaştır", IDS_FITWIDTH:"Enine Sığdır", IDS_FITPAGE:"Sayfayı Sığdır", IDS_PREVPAGE:"Önceki Sayfa", IDS_GOTOPAGE:"Sayfaya Git", IDS_TOTPAGES:"Toplam Sayfa", IDS_NEXTPAGE:"Sonraki Sayfa", IDS_SCHHINT:"Aramak istediğiniz kelimeyi giriniz", IDS_SEARCH:"Ara", IDS_NOTFOUND:"Bulunamadı", IDS_ROTATE:"Döndür", IDS_PRINT:"Bas", IDS_NEWWND:"Yeni Pencerede Aç", IDS_HELP:"Yardım", IDS_BACK:"Geri", IDS_FORWARD:"İleri", IDS_FULLSCR:"Tam Ekran", IDS_FULLSCREXIT:"Tam Ekrandan çık", IDS_PDTITLE:"Baskı Seçenekleri", IDS_PDPAGES:"Sayfalar:", IDS_PDFROM:"", IDS_PDTO:"-", IDS_PDSCALING:"Boyutlandırma:", IDS_PDNOSCALE:"Yok", IDS_PDAUTOR:"Otomatik çevir ve sığdır", IDS_OK:"Tamam", IDS_CANCEL:"Vazgeç"}}; public function P2FLocale(){ var _local1:* = {IDS_DRAG:"拖曳页面", IDS_SELTEXT:"选择文本", IDS_ZOOM:"缩放", IDS_FITWIDTH:"适合宽度", IDS_FITPAGE:"适合页面", IDS_PREVPAGE:"前一页", IDS_GOTOPAGE:"前往页", IDS_TOTPAGES:"总页数", IDS_NEXTPAGE:"下一页", IDS_SCHHINT:"此处输入查询内容", IDS_SEARCH:"查询", IDS_NOTFOUND:"没有找到", IDS_ROTATE:"旋转", IDS_PRINT:"打印", IDS_NEWWND:"在新窗口打开", IDS_HELP:"帮助", IDS_BACK:"返回", IDS_FORWARD:"向前", IDS_FULLSCR:"全屏", IDS_FULLSCREXIT:"退出全屏模式", IDS_PDTITLE:"打印设置", IDS_PDPAGES:"页面:", IDS_PDFROM:"从", IDS_PDTO:"到", IDS_PDSCALING:"缩放:", IDS_PDNOSCALE:"不缩放", IDS_PDAUTOR:"自动旋转并适合页面缩放", IDS_OK:"确定", IDS_CANCEL:"取消"}; var _local2:* = {IDS_DRAG:"拖曳頁面", IDS_SELTEXT:"選擇文字", IDS_ZOOM:"縮放", IDS_FITWIDTH:"頁面符合視窗寬度", IDS_FITPAGE:"符合完整頁面", IDS_PREVPAGE:"前一頁", IDS_GOTOPAGE:"前往頁", IDS_TOTPAGES:"總頁數", IDS_NEXTPAGE:"下一頁", IDS_SCHHINT:"輸入查詢內容", IDS_SEARCH:"查詢", IDS_NOTFOUND:"沒有找到", IDS_ROTATE:"旋轉", IDS_PRINT:"列印", IDS_NEWWND:"開啟於新視窗", IDS_HELP:"幫助", IDS_BACK:"往後", IDS_FORWARD:"往前", IDS_FULLSCR:"全螢幕", IDS_FULLSCREXIT:"離開全螢幕", IDS_PDTITLE:"列印選項", IDS_PDPAGES:"頁面:", IDS_PDFROM:"從", IDS_PDTO:"到", IDS_PDSCALING:"縮放:", IDS_PDNOSCALE:"不縮放", IDS_PDAUTOR:"自動旋轉符合頁面大小", IDS_OK:"確定", IDS_CANCEL:"取消"}; LocaleArray["zh-CN"] = _local1; LocaleArray["zh-TW"] = _local2; } public function setLanguage(_arg1:String){ if (_arg1 == "auto"){ _arg1 = Capabilities.language; }; Strings = LocaleArray[_arg1]; if (Strings == null){ Strings = LocaleArray[DefLanguage]; }; } public function loadString(_arg1:String):String{ var _local2:String = Strings[_arg1]; if (_local2 == null){ _local2 = LocaleArray[DefLanguage][_arg1]; }; return (_local2); } } }//package
Section 63
//Page1 (Page1) package { import flash.display.*; import flash.text.*; public class Page1 extends MovieClip { public var CR:TextField; } }//package
Section 64
//Page10 (Page10) package { import flash.display.*; import flash.text.*; public class Page10 extends MovieClip { public var CR:TextField; } }//package
Section 65
//Page100 (Page100) package { import flash.display.*; import flash.text.*; public class Page100 extends MovieClip { public var CR:TextField; } }//package
Section 66
//Page101 (Page101) package { import flash.display.*; import flash.text.*; public class Page101 extends MovieClip { public var CR:TextField; } }//package
Section 67
//Page102 (Page102) package { import flash.display.*; import flash.text.*; public class Page102 extends MovieClip { public var CR:TextField; } }//package
Section 68
//Page103 (Page103) package { import flash.display.*; import flash.text.*; public class Page103 extends MovieClip { public var CR:TextField; } }//package
Section 69
//Page104 (Page104) package { import flash.display.*; import flash.text.*; public class Page104 extends MovieClip { public var CR:TextField; } }//package
Section 70
//Page105 (Page105) package { import flash.display.*; import flash.text.*; public class Page105 extends MovieClip { public var CR:TextField; } }//package
Section 71
//Page106 (Page106) package { import flash.display.*; import flash.text.*; public class Page106 extends MovieClip { public var CR:TextField; } }//package
Section 72
//Page107 (Page107) package { import flash.display.*; import flash.text.*; public class Page107 extends MovieClip { public var CR:TextField; } }//package
Section 73
//Page108 (Page108) package { import flash.display.*; import flash.text.*; public class Page108 extends MovieClip { public var CR:TextField; } }//package
Section 74
//Page109 (Page109) package { import flash.display.*; import flash.text.*; public class Page109 extends MovieClip { public var CR:TextField; } }//package
Section 75
//Page11 (Page11) package { import flash.display.*; import flash.text.*; public class Page11 extends MovieClip { public var CR:TextField; } }//package
Section 76
//Page110 (Page110) package { import flash.display.*; import flash.text.*; public class Page110 extends MovieClip { public var CR:TextField; } }//package
Section 77
//Page111 (Page111) package { import flash.display.*; import flash.text.*; public class Page111 extends MovieClip { public var CR:TextField; } }//package
Section 78
//Page112 (Page112) package { import flash.display.*; import flash.text.*; public class Page112 extends MovieClip { public var CR:TextField; } }//package
Section 79
//Page113 (Page113) package { import flash.display.*; import flash.text.*; public class Page113 extends MovieClip { public var CR:TextField; } }//package
Section 80
//Page114 (Page114) package { import flash.display.*; import flash.text.*; public class Page114 extends MovieClip { public var CR:TextField; } }//package
Section 81
//Page115 (Page115) package { import flash.display.*; import flash.text.*; public class Page115 extends MovieClip { public var CR:TextField; } }//package
Section 82
//Page116 (Page116) package { import flash.display.*; import flash.text.*; public class Page116 extends MovieClip { public var CR:TextField; } }//package
Section 83
//Page117 (Page117) package { import flash.display.*; import flash.text.*; public class Page117 extends MovieClip { public var CR:TextField; } }//package
Section 84
//Page118 (Page118) package { import flash.display.*; import flash.text.*; public class Page118 extends MovieClip { public var CR:TextField; } }//package
Section 85
//Page119 (Page119) package { import flash.display.*; import flash.text.*; public class Page119 extends MovieClip { public var CR:TextField; } }//package
Section 86
//Page12 (Page12) package { import flash.display.*; import flash.text.*; public class Page12 extends MovieClip { public var CR:TextField; } }//package
Section 87
//Page120 (Page120) package { import flash.display.*; import flash.text.*; public class Page120 extends MovieClip { public var CR:TextField; } }//package
Section 88
//Page121 (Page121) package { import flash.display.*; import flash.text.*; public class Page121 extends MovieClip { public var CR:TextField; } }//package
Section 89
//Page122 (Page122) package { import flash.display.*; import flash.text.*; public class Page122 extends MovieClip { public var CR:TextField; } }//package
Section 90
//Page123 (Page123) package { import flash.display.*; import flash.text.*; public class Page123 extends MovieClip { public var CR:TextField; } }//package
Section 91
//Page124 (Page124) package { import flash.display.*; import flash.text.*; public class Page124 extends MovieClip { public var CR:TextField; } }//package
Section 92
//Page125 (Page125) package { import flash.display.*; import flash.text.*; public class Page125 extends MovieClip { public var CR:TextField; } }//package
Section 93
//Page126 (Page126) package { import flash.display.*; import flash.text.*; public class Page126 extends MovieClip { public var CR:TextField; } }//package
Section 94
//Page127 (Page127) package { import flash.display.*; import flash.text.*; public class Page127 extends MovieClip { public var CR:TextField; } }//package
Section 95
//Page128 (Page128) package { import flash.display.*; import flash.text.*; public class Page128 extends MovieClip { public var CR:TextField; } }//package
Section 96
//Page129 (Page129) package { import flash.display.*; import flash.text.*; public class Page129 extends MovieClip { public var CR:TextField; } }//package
Section 97
//Page13 (Page13) package { import flash.display.*; import flash.text.*; public class Page13 extends MovieClip { public var CR:TextField; } }//package
Section 98
//Page130 (Page130) package { import flash.display.*; import flash.text.*; public class Page130 extends MovieClip { public var CR:TextField; } }//package
Section 99
//Page131 (Page131) package { import flash.display.*; import flash.text.*; public class Page131 extends MovieClip { public var CR:TextField; } }//package
Section 100
//Page132 (Page132) package { import flash.display.*; import flash.text.*; public class Page132 extends MovieClip { public var CR:TextField; } }//package
Section 101
//Page133 (Page133) package { import flash.display.*; import flash.text.*; public class Page133 extends MovieClip { public var CR:TextField; } }//package
Section 102
//Page134 (Page134) package { import flash.display.*; import flash.text.*; public class Page134 extends MovieClip { public var CR:TextField; } }//package
Section 103
//Page135 (Page135) package { import flash.display.*; import flash.text.*; public class Page135 extends MovieClip { public var CR:TextField; } }//package
Section 104
//Page136 (Page136) package { import flash.display.*; import flash.text.*; public class Page136 extends MovieClip { public var CR:TextField; } }//package
Section 105
//Page137 (Page137) package { import flash.display.*; import flash.text.*; public class Page137 extends MovieClip { public var CR:TextField; } }//package
Section 106
//Page138 (Page138) package { import flash.display.*; import flash.text.*; public class Page138 extends MovieClip { public var CR:TextField; } }//package
Section 107
//Page139 (Page139) package { import flash.display.*; import flash.text.*; public class Page139 extends MovieClip { public var CR:TextField; } }//package
Section 108
//Page14 (Page14) package { import flash.display.*; import flash.text.*; public class Page14 extends MovieClip { public var CR:TextField; } }//package
Section 109
//Page140 (Page140) package { import flash.display.*; import flash.text.*; public class Page140 extends MovieClip { public var CR:TextField; } }//package
Section 110
//Page141 (Page141) package { import flash.display.*; import flash.text.*; public class Page141 extends MovieClip { public var CR:TextField; } }//package
Section 111
//Page142 (Page142) package { import flash.display.*; import flash.text.*; public class Page142 extends MovieClip { public var CR:TextField; } }//package
Section 112
//Page143 (Page143) package { import flash.display.*; import flash.text.*; public class Page143 extends MovieClip { public var CR:TextField; } }//package
Section 113
//Page144 (Page144) package { import flash.display.*; import flash.text.*; public class Page144 extends MovieClip { public var CR:TextField; } }//package
Section 114
//Page145 (Page145) package { import flash.display.*; import flash.text.*; public class Page145 extends MovieClip { public var CR:TextField; } }//package
Section 115
//Page146 (Page146) package { import flash.display.*; import flash.text.*; public class Page146 extends MovieClip { public var CR:TextField; } }//package
Section 116
//Page147 (Page147) package { import flash.display.*; import flash.text.*; public class Page147 extends MovieClip { public var CR:TextField; } }//package
Section 117
//Page148 (Page148) package { import flash.display.*; import flash.text.*; public class Page148 extends MovieClip { public var CR:TextField; } }//package
Section 118
//Page149 (Page149) package { import flash.display.*; import flash.text.*; public class Page149 extends MovieClip { public var CR:TextField; } }//package
Section 119
//Page15 (Page15) package { import flash.display.*; import flash.text.*; public class Page15 extends MovieClip { public var CR:TextField; } }//package
Section 120
//Page16 (Page16) package { import flash.display.*; import flash.text.*; public class Page16 extends MovieClip { public var CR:TextField; } }//package
Section 121
//Page17 (Page17) package { import flash.display.*; import flash.text.*; public class Page17 extends MovieClip { public var CR:TextField; } }//package
Section 122
//Page18 (Page18) package { import flash.display.*; import flash.text.*; public class Page18 extends MovieClip { public var CR:TextField; } }//package
Section 123
//Page19 (Page19) package { import flash.display.*; import flash.text.*; public class Page19 extends MovieClip { public var CR:TextField; } }//package
Section 124
//Page2 (Page2) package { import flash.display.*; import flash.text.*; public class Page2 extends MovieClip { public var CR:TextField; } }//package
Section 125
//Page20 (Page20) package { import flash.display.*; import flash.text.*; public class Page20 extends MovieClip { public var CR:TextField; } }//package
Section 126
//Page21 (Page21) package { import flash.display.*; import flash.text.*; public class Page21 extends MovieClip { public var CR:TextField; } }//package
Section 127
//Page22 (Page22) package { import flash.display.*; import flash.text.*; public class Page22 extends MovieClip { public var CR:TextField; } }//package
Section 128
//Page23 (Page23) package { import flash.display.*; import flash.text.*; public class Page23 extends MovieClip { public var CR:TextField; } }//package
Section 129
//Page24 (Page24) package { import flash.display.*; import flash.text.*; public class Page24 extends MovieClip { public var CR:TextField; } }//package
Section 130
//Page25 (Page25) package { import flash.display.*; import flash.text.*; public class Page25 extends MovieClip { public var CR:TextField; } }//package
Section 131
//Page26 (Page26) package { import flash.display.*; import flash.text.*; public class Page26 extends MovieClip { public var CR:TextField; } }//package
Section 132
//Page27 (Page27) package { import flash.display.*; import flash.text.*; public class Page27 extends MovieClip { public var CR:TextField; } }//package
Section 133
//Page28 (Page28) package { import flash.display.*; import flash.text.*; public class Page28 extends MovieClip { public var CR:TextField; } }//package
Section 134
//Page29 (Page29) package { import flash.display.*; import flash.text.*; public class Page29 extends MovieClip { public var CR:TextField; } }//package
Section 135
//Page3 (Page3) package { import flash.display.*; import flash.text.*; public class Page3 extends MovieClip { public var CR:TextField; } }//package
Section 136
//Page30 (Page30) package { import flash.display.*; import flash.text.*; public class Page30 extends MovieClip { public var CR:TextField; } }//package
Section 137
//Page31 (Page31) package { import flash.display.*; import flash.text.*; public class Page31 extends MovieClip { public var CR:TextField; } }//package
Section 138
//Page32 (Page32) package { import flash.display.*; import flash.text.*; public class Page32 extends MovieClip { public var CR:TextField; } }//package
Section 139
//Page33 (Page33) package { import flash.display.*; import flash.text.*; public class Page33 extends MovieClip { public var CR:TextField; } }//package
Section 140
//Page34 (Page34) package { import flash.display.*; import flash.text.*; public class Page34 extends MovieClip { public var CR:TextField; } }//package
Section 141
//Page35 (Page35) package { import flash.display.*; import flash.text.*; public class Page35 extends MovieClip { public var CR:TextField; } }//package
Section 142
//Page36 (Page36) package { import flash.display.*; import flash.text.*; public class Page36 extends MovieClip { public var CR:TextField; } }//package
Section 143
//Page37 (Page37) package { import flash.display.*; import flash.text.*; public class Page37 extends MovieClip { public var CR:TextField; } }//package
Section 144
//Page38 (Page38) package { import flash.display.*; import flash.text.*; public class Page38 extends MovieClip { public var CR:TextField; } }//package
Section 145
//Page39 (Page39) package { import flash.display.*; import flash.text.*; public class Page39 extends MovieClip { public var CR:TextField; } }//package
Section 146
//Page4 (Page4) package { import flash.display.*; import flash.text.*; public class Page4 extends MovieClip { public var CR:TextField; } }//package
Section 147
//Page40 (Page40) package { import flash.display.*; import flash.text.*; public class Page40 extends MovieClip { public var CR:TextField; } }//package
Section 148
//Page41 (Page41) package { import flash.display.*; import flash.text.*; public class Page41 extends MovieClip { public var CR:TextField; } }//package
Section 149
//Page42 (Page42) package { import flash.display.*; import flash.text.*; public class Page42 extends MovieClip { public var CR:TextField; } }//package
Section 150
//Page43 (Page43) package { import flash.display.*; import flash.text.*; public class Page43 extends MovieClip { public var CR:TextField; } }//package
Section 151
//Page44 (Page44) package { import flash.display.*; import flash.text.*; public class Page44 extends MovieClip { public var CR:TextField; } }//package
Section 152
//Page45 (Page45) package { import flash.display.*; import flash.text.*; public class Page45 extends MovieClip { public var CR:TextField; } }//package
Section 153
//Page46 (Page46) package { import flash.display.*; import flash.text.*; public class Page46 extends MovieClip { public var CR:TextField; } }//package
Section 154
//Page47 (Page47) package { import flash.display.*; import flash.text.*; public class Page47 extends MovieClip { public var CR:TextField; } }//package
Section 155
//Page48 (Page48) package { import flash.display.*; import flash.text.*; public class Page48 extends MovieClip { public var CR:TextField; } }//package
Section 156
//Page49 (Page49) package { import flash.display.*; import flash.text.*; public class Page49 extends MovieClip { public var CR:TextField; } }//package
Section 157
//Page5 (Page5) package { import flash.display.*; import flash.text.*; public class Page5 extends MovieClip { public var CR:TextField; } }//package
Section 158
//Page50 (Page50) package { import flash.display.*; import flash.text.*; public class Page50 extends MovieClip { public var CR:TextField; } }//package
Section 159
//Page51 (Page51) package { import flash.display.*; import flash.text.*; public class Page51 extends MovieClip { public var CR:TextField; } }//package
Section 160
//Page52 (Page52) package { import flash.display.*; import flash.text.*; public class Page52 extends MovieClip { public var CR:TextField; } }//package
Section 161
//Page53 (Page53) package { import flash.display.*; import flash.text.*; public class Page53 extends MovieClip { public var CR:TextField; } }//package
Section 162
//Page54 (Page54) package { import flash.display.*; import flash.text.*; public class Page54 extends MovieClip { public var CR:TextField; } }//package
Section 163
//Page55 (Page55) package { import flash.display.*; import flash.text.*; public class Page55 extends MovieClip { public var CR:TextField; } }//package
Section 164
//Page56 (Page56) package { import flash.display.*; import flash.text.*; public class Page56 extends MovieClip { public var CR:TextField; } }//package
Section 165
//Page57 (Page57) package { import flash.display.*; import flash.text.*; public class Page57 extends MovieClip { public var CR:TextField; } }//package
Section 166
//Page58 (Page58) package { import flash.display.*; import flash.text.*; public class Page58 extends MovieClip { public var CR:TextField; } }//package
Section 167
//Page59 (Page59) package { import flash.display.*; import flash.text.*; public class Page59 extends MovieClip { public var CR:TextField; } }//package
Section 168
//Page6 (Page6) package { import flash.display.*; import flash.text.*; public class Page6 extends MovieClip { public var CR:TextField; } }//package
Section 169
//Page60 (Page60) package { import flash.display.*; import flash.text.*; public class Page60 extends MovieClip { public var CR:TextField; } }//package
Section 170
//Page61 (Page61) package { import flash.display.*; import flash.text.*; public class Page61 extends MovieClip { public var CR:TextField; } }//package
Section 171
//Page62 (Page62) package { import flash.display.*; import flash.text.*; public class Page62 extends MovieClip { public var CR:TextField; } }//package
Section 172
//Page63 (Page63) package { import flash.display.*; import flash.text.*; public class Page63 extends MovieClip { public var CR:TextField; } }//package
Section 173
//Page64 (Page64) package { import flash.display.*; import flash.text.*; public class Page64 extends MovieClip { public var CR:TextField; } }//package
Section 174
//Page65 (Page65) package { import flash.display.*; import flash.text.*; public class Page65 extends MovieClip { public var CR:TextField; } }//package
Section 175
//Page66 (Page66) package { import flash.display.*; import flash.text.*; public class Page66 extends MovieClip { public var CR:TextField; } }//package
Section 176
//Page67 (Page67) package { import flash.display.*; import flash.text.*; public class Page67 extends MovieClip { public var CR:TextField; } }//package
Section 177
//Page68 (Page68) package { import flash.display.*; import flash.text.*; public class Page68 extends MovieClip { public var CR:TextField; } }//package
Section 178
//Page69 (Page69) package { import flash.display.*; import flash.text.*; public class Page69 extends MovieClip { public var CR:TextField; } }//package
Section 179
//Page7 (Page7) package { import flash.display.*; import flash.text.*; public class Page7 extends MovieClip { public var CR:TextField; } }//package
Section 180
//Page70 (Page70) package { import flash.display.*; import flash.text.*; public class Page70 extends MovieClip { public var CR:TextField; } }//package
Section 181
//Page71 (Page71) package { import flash.display.*; import flash.text.*; public class Page71 extends MovieClip { public var CR:TextField; } }//package
Section 182
//Page72 (Page72) package { import flash.display.*; import flash.text.*; public class Page72 extends MovieClip { public var CR:TextField; } }//package
Section 183
//Page73 (Page73) package { import flash.display.*; import flash.text.*; public class Page73 extends MovieClip { public var CR:TextField; } }//package
Section 184
//Page74 (Page74) package { import flash.display.*; import flash.text.*; public class Page74 extends MovieClip { public var CR:TextField; } }//package
Section 185
//Page75 (Page75) package { import flash.display.*; import flash.text.*; public class Page75 extends MovieClip { public var CR:TextField; } }//package
Section 186
//Page76 (Page76) package { import flash.display.*; import flash.text.*; public class Page76 extends MovieClip { public var CR:TextField; } }//package
Section 187
//Page77 (Page77) package { import flash.display.*; import flash.text.*; public class Page77 extends MovieClip { public var CR:TextField; } }//package
Section 188
//Page78 (Page78) package { import flash.display.*; import flash.text.*; public class Page78 extends MovieClip { public var CR:TextField; } }//package
Section 189
//Page79 (Page79) package { import flash.display.*; import flash.text.*; public class Page79 extends MovieClip { public var CR:TextField; } }//package
Section 190
//Page8 (Page8) package { import flash.display.*; import flash.text.*; public class Page8 extends MovieClip { public var CR:TextField; } }//package
Section 191
//Page80 (Page80) package { import flash.display.*; import flash.text.*; public class Page80 extends MovieClip { public var CR:TextField; } }//package
Section 192
//Page81 (Page81) package { import flash.display.*; import flash.text.*; public class Page81 extends MovieClip { public var CR:TextField; } }//package
Section 193
//Page82 (Page82) package { import flash.display.*; import flash.text.*; public class Page82 extends MovieClip { public var CR:TextField; } }//package
Section 194
//Page83 (Page83) package { import flash.display.*; import flash.text.*; public class Page83 extends MovieClip { public var CR:TextField; } }//package
Section 195
//Page84 (Page84) package { import flash.display.*; import flash.text.*; public class Page84 extends MovieClip { public var CR:TextField; } }//package
Section 196
//Page85 (Page85) package { import flash.display.*; import flash.text.*; public class Page85 extends MovieClip { public var CR:TextField; } }//package
Section 197
//Page86 (Page86) package { import flash.display.*; import flash.text.*; public class Page86 extends MovieClip { public var CR:TextField; } }//package
Section 198
//Page87 (Page87) package { import flash.display.*; import flash.text.*; public class Page87 extends MovieClip { public var CR:TextField; } }//package
Section 199
//Page88 (Page88) package { import flash.display.*; import flash.text.*; public class Page88 extends MovieClip { public var CR:TextField; } }//package
Section 200
//Page89 (Page89) package { import flash.display.*; import flash.text.*; public class Page89 extends MovieClip { public var CR:TextField; } }//package
Section 201
//Page9 (Page9) package { import flash.display.*; import flash.text.*; public class Page9 extends MovieClip { public var CR:TextField; } }//package
Section 202
//Page90 (Page90) package { import flash.display.*; import flash.text.*; public class Page90 extends MovieClip { public var CR:TextField; } }//package
Section 203
//Page91 (Page91) package { import flash.display.*; import flash.text.*; public class Page91 extends MovieClip { public var CR:TextField; } }//package
Section 204
//Page92 (Page92) package { import flash.display.*; import flash.text.*; public class Page92 extends MovieClip { public var CR:TextField; } }//package
Section 205
//Page93 (Page93) package { import flash.display.*; import flash.text.*; public class Page93 extends MovieClip { public var CR:TextField; } }//package
Section 206
//Page94 (Page94) package { import flash.display.*; import flash.text.*; public class Page94 extends MovieClip { public var CR:TextField; } }//package
Section 207
//Page95 (Page95) package { import flash.display.*; import flash.text.*; public class Page95 extends MovieClip { public var CR:TextField; } }//package
Section 208
//Page96 (Page96) package { import flash.display.*; import flash.text.*; public class Page96 extends MovieClip { public var CR:TextField; } }//package
Section 209
//Page97 (Page97) package { import flash.display.*; import flash.text.*; public class Page97 extends MovieClip { public var CR:TextField; } }//package
Section 210
//Page98 (Page98) package { import flash.display.*; import flash.text.*; public class Page98 extends MovieClip { public var CR:TextField; } }//package
Section 211
//Page99 (Page99) package { import flash.display.*; import flash.text.*; public class Page99 extends MovieClip { public var CR:TextField; } }//package
Section 212
//PrintRangeWnd (PrintRangeWnd) package { import fl.controls.*; import flash.display.*; import flash.events.*; import fl.managers.*; import flash.text.*; import flash.ui.*; import flash.accessibility.*; public class PrintRangeWnd extends MovieClip { public var cancelBtn; private var active:Boolean; public var scalingtxt:TextField; public var fromtxt:TextField; public var pagesFrom; public var totxt:TextField; public var pagestxt:TextField; public var closeBtn:SimpleButton; private var fm:FocusManager; private var tabArray:Array; public var optNoScale; public var title:TextField; public var locale:P2FLocale; public var optFit:RadioButton; public var pagesTo:TextField; public var OKBtn:Button; public var printScaleMode:String; public function PrintRangeWnd(){ pagesFrom.restrict = (pagesTo.restrict = "0-9"); tabArray = new Array(pagesFrom, pagesTo, optNoScale, optFit, OKBtn, cancelBtn); addEventListener(FocusEvent.KEY_FOCUS_CHANGE, OnFocusChange, false, 0, true); addEventListener(KeyboardEvent.KEY_DOWN, OnKeyDown, false, 0, true); closeBtn.addEventListener(MouseEvent.CLICK, onCloseBtnClick, false, 0, true); cancelBtn.addEventListener(MouseEvent.CLICK, onCloseBtnClick, false, 0, true); OKBtn.addEventListener(MouseEvent.CLICK, onOKBtnClick, false, 0, true); __setTab_title_PrintRangeWnd_Layer1_0(); __setTab_pagesFrom_PrintRangeWnd_Layer1_0(); __setTab_pagesTo_PrintRangeWnd_Layer1_0(); __setTab_OKBtn_PrintRangeWnd_Layer1_0(); __setTab_cancelBtn_PrintRangeWnd_Layer1_0(); __setAcc_pagesFrom_PrintRangeWnd_Layer1_0(); __setAcc_pagesTo_PrintRangeWnd_Layer1_0(); __setAcc_OKBtn_PrintRangeWnd_Layer1_0(); __setAcc_cancelBtn_PrintRangeWnd_Layer1_0(); __setProp_OKBtn_PrintRangeWnd_Layer1_0(); __setProp_cancelBtn_PrintRangeWnd_Layer1_0(); __setProp_optNoScale_PrintRangeWnd_Layer1_0(); __setProp_optFit_PrintRangeWnd_Layer1_0(); } private function onCloseBtnClick(_arg1:MouseEvent){ close(); } function __setProp_cancelBtn_PrintRangeWnd_Layer1_0(){ try { cancelBtn["componentInspectorSetting"] = true; } catch(e:Error) { }; cancelBtn.emphasized = false; cancelBtn.enabled = true; cancelBtn.label = ""; cancelBtn.labelPlacement = "right"; cancelBtn.selected = false; cancelBtn.toggle = false; cancelBtn.visible = true; try { cancelBtn["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setTab_pagesFrom_PrintRangeWnd_Layer1_0(){ pagesFrom.tabIndex = 0; } function __setProp_optNoScale_PrintRangeWnd_Layer1_0(){ try { optNoScale["componentInspectorSetting"] = true; } catch(e:Error) { }; optNoScale.enabled = true; optNoScale.groupName = "Scaling"; optNoScale.label = ""; optNoScale.labelPlacement = "right"; optNoScale.selected = false; optNoScale.value = ""; optNoScale.visible = true; try { optNoScale["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setAcc_OKBtn_PrintRangeWnd_Layer1_0(){ OKBtn.accessibilityProperties = new AccessibilityProperties(); OKBtn.accessibilityProperties.name = "OK"; OKBtn.accessibilityProperties.forceSimple = true; } function __setTab_title_PrintRangeWnd_Layer1_0(){ title.tabIndex = 0; } function __setTab_pagesTo_PrintRangeWnd_Layer1_0(){ pagesTo.tabIndex = 0; } private function OnKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ESCAPE){ onCloseBtnClick(null); }; } function __setTab_cancelBtn_PrintRangeWnd_Layer1_0(){ cancelBtn.tabIndex = 0; } function __setAcc_pagesFrom_PrintRangeWnd_Layer1_0(){ pagesFrom.accessibilityProperties = new AccessibilityProperties(); pagesFrom.accessibilityProperties.name = "Pages From"; } private function onOKBtnClick(_arg1:MouseEvent){ close(); dispatchEvent(new Event("OKResult")); } private function OnFocusChange(_arg1:FocusEvent):void{ var _local2:int; if (active){ _arg1.preventDefault(); _local2 = tabArray.indexOf(_arg1.target); if (_local2 != -1){ if (_arg1.shiftKey){ _local2--; } else { _local2++; }; if (_local2 < 0){ _local2 = (tabArray.length - 1); } else { if (_local2 >= tabArray.length){ _local2 = 0; }; }; fm.setFocus(tabArray[_local2]); }; }; } function __setAcc_cancelBtn_PrintRangeWnd_Layer1_0(){ cancelBtn.accessibilityProperties = new AccessibilityProperties(); cancelBtn.accessibilityProperties.name = "Cancel"; cancelBtn.accessibilityProperties.forceSimple = true; } function __setAcc_pagesTo_PrintRangeWnd_Layer1_0(){ pagesTo.accessibilityProperties = new AccessibilityProperties(); pagesTo.accessibilityProperties.name = "Pages To"; } function __setProp_OKBtn_PrintRangeWnd_Layer1_0(){ try { OKBtn["componentInspectorSetting"] = true; } catch(e:Error) { }; OKBtn.emphasized = false; OKBtn.enabled = true; OKBtn.label = ""; OKBtn.labelPlacement = "right"; OKBtn.selected = false; OKBtn.toggle = false; OKBtn.visible = true; try { OKBtn["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function close(){ printScaleMode = (optNoScale.selected) ? "noscale" : "fit"; fm.deactivate(); ModalScreen.close(); active = false; } function __setProp_optFit_PrintRangeWnd_Layer1_0(){ try { optFit["componentInspectorSetting"] = true; } catch(e:Error) { }; optFit.enabled = true; optFit.groupName = "Scaling"; optFit.label = ""; optFit.labelPlacement = "right"; optFit.selected = false; optFit.value = ""; optFit.visible = true; try { optFit["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function show(_arg1:DisplayObjectContainer, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:String){ title.text = locale.loadString("IDS_PDTITLE"); pagestxt.text = locale.loadString("IDS_PDPAGES"); fromtxt.text = locale.loadString("IDS_PDFROM"); totxt.text = locale.loadString("IDS_PDTO"); scalingtxt.text = locale.loadString("IDS_PDSCALING"); optNoScale.label = locale.loadString("IDS_PDNOSCALE"); optFit.label = locale.loadString("IDS_PDAUTOR"); OKBtn.label = locale.loadString("IDS_OK"); cancelBtn.label = locale.loadString("IDS_CANCEL"); pagesFrom.text = _arg4.toString(); pagesTo.text = _arg5.toString(); optNoScale.selected = (optFit.selected = false); if (_arg6 == "noscale"){ optNoScale.selected = true; } else { optFit.selected = true; }; ModalScreen.show(_arg1, this, _arg2, _arg3); if (!fm){ fm = new FocusManager(this); fm.defaultButton = OKBtn; }; fm.activate(); fm.setFocus(pagesFrom); active = true; } function __setTab_OKBtn_PrintRangeWnd_Layer1_0(){ OKBtn.tabIndex = 0; } } }//package
Section 213
//RadioButton_disabledIcon (RadioButton_disabledIcon) package { import flash.display.*; public dynamic class RadioButton_disabledIcon extends MovieClip { } }//package
Section 214
//RadioButton_downIcon (RadioButton_downIcon) package { import flash.display.*; public dynamic class RadioButton_downIcon extends MovieClip { } }//package
Section 215
//RadioButton_overIcon (RadioButton_overIcon) package { import flash.display.*; public dynamic class RadioButton_overIcon extends MovieClip { } }//package
Section 216
//RadioButton_selectedDisabledIcon (RadioButton_selectedDisabledIcon) package { import flash.display.*; public dynamic class RadioButton_selectedDisabledIcon extends MovieClip { } }//package
Section 217
//RadioButton_selectedDownIcon (RadioButton_selectedDownIcon) package { import flash.display.*; public dynamic class RadioButton_selectedDownIcon extends MovieClip { } }//package
Section 218
//RadioButton_selectedOverIcon (RadioButton_selectedOverIcon) package { import flash.display.*; public dynamic class RadioButton_selectedOverIcon extends MovieClip { } }//package
Section 219
//RadioButton_selectedUpIcon (RadioButton_selectedUpIcon) package { import flash.display.*; public dynamic class RadioButton_selectedUpIcon extends MovieClip { } }//package
Section 220
//RadioButton_upIcon (RadioButton_upIcon) package { import flash.display.*; public dynamic class RadioButton_upIcon extends MovieClip { } }//package
Section 221
//ScrollArea (ScrollArea) package { import flash.display.*; public dynamic class ScrollArea extends MovieClip { public var BottomArea:MovieClip; } }//package
Section 222
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 223
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 224
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 225
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 226
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 227
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 228
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 229
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 230
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 231
//ScrollPain (ScrollPain) package { import flash.events.*; import fl.containers.*; public class ScrollPain extends ScrollPane { override protected function endDrag(_arg1:MouseEvent):void{ if (stage){ stage.removeEventListener(MouseEvent.MOUSE_MOVE, doDrag); }; } } }//package
Section 232
//ScrollPane_disabledSkin (ScrollPane_disabledSkin) package { import flash.display.*; public dynamic class ScrollPane_disabledSkin extends MovieClip { } }//package
Section 233
//ScrollPane_upSkin (ScrollPane_upSkin) package { import flash.display.*; public dynamic class ScrollPane_upSkin extends MovieClip { } }//package
Section 234
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 235
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 236
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 237
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 238
//Settings (Settings) package { import flash.utils.*; public class Settings extends ByteArray { } }//package
Section 239
//Settings2_ (Settings2_) package { import flash.utils.*; public class Settings2_ extends ByteArray { } }//package
Section 240
//Slider (Slider) package { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import flash.accessibility.*; public dynamic class Slider extends MovieClip { private var Max; public var SliderHandle:MovieClip; private var oldValue:int; public var SliderHandleBtn:ImgButton; private var Width; private var DragUpdateInt; private var Min; private var HandleOffset; public function Slider(){ SliderHandleBtn = SliderHandle.SliderHandleBtn; SliderHandleBtn.tabEnabled = false; addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown, false, 0, true); SliderHandleBtn.addEventListener(MouseEvent.MOUSE_DOWN, onHandlePress, false, 0, true); __setAcc_SliderHandle_(); __setTab_SliderHandle_(); } public function SetValue(_arg1:int):void{ if (_arg1 > Max){ _arg1 = Max; } else { if (_arg1 < Min){ _arg1 = Min; }; }; SliderHandle.x = (((_arg1 - Min) / (Max - Min)) * Width); } function __setAcc_SliderHandle_(){ SliderHandle.accessibilityProperties = new AccessibilityProperties(); SliderHandle.accessibilityProperties.silent = true; } public function onMouseDown(_arg1:MouseEvent):void{ var _local2:int; if (_arg1.target == this){ _local2 = Math.round((Min + (((_arg1.localX - (SliderHandleBtn.width / 2)) / Width) * (Max - Min)))); if (_local2 != GetValue()){ SetValue(_local2); dispatchEvent(new Event("change")); }; }; } public function SetRange(_arg1:int, _arg2:int):void{ this.Min = _arg1; this.Max = _arg2; } function onHandlePress(_arg1:MouseEvent):void{ oldValue = GetValue(); SliderHandle.startDrag(false, new Rectangle(0, HandleOffset, Width, HandleOffset)); DragUpdateInt = setInterval(DragUpdate, 100); stage.addEventListener(MouseEvent.MOUSE_UP, onHandleRelease, false, 0, true); } function onHandleRelease(_arg1:MouseEvent):void{ stage.removeEventListener(MouseEvent.MOUSE_UP, onHandleRelease); clearInterval(DragUpdateInt); SliderHandle.stopDrag(); if (oldValue != GetValue()){ dispatchEvent(new Event("change")); }; } public function GetValue():int{ return (Math.round((Min + ((SliderHandle.x / Width) * (Max - Min))))); } function __setTab_SliderHandle_(){ SliderHandle.tabIndex = 0; } public function Init():void{ SliderHandleBtn.SetImages("TBImage6", "TBImage5"); Width = Math.floor((width - SliderHandleBtn.width)); HandleOffset = SliderHandleBtn.y; } function DragUpdate():void{ if (oldValue != GetValue()){ oldValue = GetValue(); dispatchEvent(new Event("change")); }; } } }//package
Section 241
//TBImage1 (TBImage1) package { import flash.display.*; public class TBImage1 extends MovieClip { } }//package import flash.display.*; class TBImage2 extends MovieClip { public function TBImage2(){ } } class TBImage3 extends MovieClip { public function TBImage3(){ } } class TBImage4 extends MovieClip { public function TBImage4(){ } } class TBImage5 extends MovieClip { public function TBImage5(){ } } class TBImage6 extends MovieClip { public function TBImage6(){ } } class TBImage7 extends MovieClip { public function TBImage7(){ } } class TBImage8 extends MovieClip { public function TBImage8(){ } } class TBImage9 extends MovieClip { public function TBImage9(){ } } class TBImage10 extends MovieClip { public function TBImage10(){ } } class TBImage11 extends MovieClip { public function TBImage11(){ } } class TBImage12 extends MovieClip { public function TBImage12(){ } } class TBImage13 extends MovieClip { public function TBImage13(){ } } class TBImage14 extends MovieClip { public function TBImage14(){ } } class TBImage15 extends MovieClip { public function TBImage15(){ } } class TBImage16 extends MovieClip { public function TBImage16(){ } } class TBImage18 extends MovieClip { public function TBImage18(){ } } class TBImage19 extends MovieClip { public function TBImage19(){ } } class TBImage20 extends MovieClip { public function TBImage20(){ } } class TBImage21 extends MovieClip { public function TBImage21(){ } } class TBImage22 extends MovieClip { public function TBImage22(){ } }
Section 242
//textmsg (textmsg) package { import flash.display.*; import flash.text.*; public dynamic class textmsg extends MovieClip { public var text:TextField; } }//package
Section 243
//waitmsg (waitmsg) package { import flash.display.*; import flash.text.*; public dynamic class waitmsg extends MovieClip { public var msg:TextField; } }//package

Library Items

Symbol 156 BitmapUsed by:157
Symbol 157 GraphicUses:156Used by:158
Symbol 158 MovieClip {TBImage1}Uses:157
Symbol 159 BitmapUsed by:160
Symbol 160 GraphicUses:159Used by:161
Symbol 161 MovieClip {TBImage2}Uses:160
Symbol 162 BitmapUsed by:163
Symbol 163 GraphicUses:162Used by:164
Symbol 164 MovieClip {TBImage3}Uses:163
Symbol 165 BitmapUsed by:166
Symbol 166 GraphicUses:165Used by:167
Symbol 167 MovieClip {TBImage4}Uses:166
Symbol 168 BitmapUsed by:169
Symbol 169 GraphicUses:168Used by:170
Symbol 170 MovieClip {TBImage5}Uses:169
Symbol 171 BitmapUsed by:172
Symbol 172 GraphicUses:171Used by:173
Symbol 173 MovieClip {TBImage6}Uses:172
Symbol 174 BitmapUsed by:175
Symbol 175 GraphicUses:174Used by:176
Symbol 176 MovieClip {TBImage7}Uses:175
Symbol 177 BitmapUsed by:178
Symbol 178 GraphicUses:177Used by:179
Symbol 179 MovieClip {TBImage8}Uses:178
Symbol 180 BitmapUsed by:181
Symbol 181 GraphicUses:180Used by:182
Symbol 182 MovieClip {TBImage9}Uses:181
Symbol 183 BitmapUsed by:184
Symbol 184 GraphicUses:183Used by:185
Symbol 185 MovieClip {TBImage10}Uses:184
Symbol 186 BitmapUsed by:187
Symbol 187 GraphicUses:186Used by:188
Symbol 188 MovieClip {TBImage11}Uses:187
Symbol 189 BitmapUsed by:190
Symbol 190 GraphicUses:189Used by:191
Symbol 191 MovieClip {TBImage12}Uses:190
Symbol 192 BitmapUsed by:193
Symbol 193 GraphicUses:192Used by:194
Symbol 194 MovieClip {TBImage13}Uses:193
Symbol 195 BitmapUsed by:196
Symbol 196 GraphicUses:195Used by:197
Symbol 197 MovieClip {TBImage14}Uses:196
Symbol 198 BitmapUsed by:199
Symbol 199 GraphicUses:198Used by:200
Symbol 200 MovieClip {TBImage15}Uses:199
Symbol 201 BitmapUsed by:202
Symbol 202 GraphicUses:201Used by:203
Symbol 203 MovieClip {TBImage16}Uses:202
Symbol 204 BitmapUsed by:205
Symbol 205 GraphicUses:204Used by:206
Symbol 206 MovieClip {TBImage18}Uses:205
Symbol 207 BitmapUsed by:208
Symbol 208 GraphicUses:207Used by:209
Symbol 209 MovieClip {TBImage19}Uses:208
Symbol 210 BitmapUsed by:211
Symbol 211 GraphicUses:210Used by:212
Symbol 212 MovieClip {TBImage20}Uses:211
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:215
Symbol 215 MovieClip {TBImage21}Uses:214
Symbol 216 BitmapUsed by:217
Symbol 217 GraphicUses:216Used by:218
Symbol 218 MovieClip {TBImage22}Uses:217
Symbol 219 BinaryData {Settings}
Symbol 220 BinaryData {Settings2_}
Symbol 1 FontUsed by:2
Symbol 2 EditableTextUses:1Used by:6
Symbol 3 GraphicUsed by:4
Symbol 4 MovieClipUses:3Used by:5
Symbol 5 MovieClipUses:4Used by:6
Symbol 6 MovieClip {waitmsg}Uses:2 5
Symbol 7 FontUsed by:8 50 51 52 53 54 74 75 143 146 148 152
Symbol 8 EditableTextUses:7Used by:9
Symbol 9 MovieClip {textmsg}Uses:8
Symbol 10 GraphicUsed by:11
Symbol 11 MovieClipUses:10Used by:12
Symbol 12 MovieClip {ScrollArea}Uses:11
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClipUses:13Used by:33 73 77 134
Symbol 15 MovieClip {fl.core.ComponentShim}Used by:33 73 77 133 134
Symbol 16 GraphicUsed by:17
Symbol 17 MovieClip {RadioButton_upIcon}Uses:16Used by:33
Symbol 18 GraphicUsed by:19 28
Symbol 19 MovieClip {RadioButton_overIcon}Uses:18Used by:33
Symbol 20 GraphicUsed by:21 29
Symbol 21 MovieClip {RadioButton_downIcon}Uses:20Used by:33
Symbol 22 GraphicUsed by:23 30
Symbol 23 MovieClip {RadioButton_disabledIcon}Uses:22Used by:33
Symbol 24 GraphicUsed by:27
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClipUses:25Used by:27 28 29 30
Symbol 27 MovieClip {RadioButton_selectedUpIcon}Uses:24 26Used by:33
Symbol 28 MovieClip {RadioButton_selectedOverIcon}Uses:18 26Used by:33
Symbol 29 MovieClip {RadioButton_selectedDownIcon}Uses:20 26Used by:33
Symbol 30 MovieClip {RadioButton_selectedDisabledIcon}Uses:22 26Used by:33
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClip {focusRectSkin}Uses:31Used by:33 73 133
Symbol 33 MovieClip {fl.controls.RadioButton}Uses:14 15 17 19 21 23 27 28 29 30 32Used by:76
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClipUses:34Used by:76
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClipUses:36Used by:42
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:38Used by:42
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:42
Symbol 42 MovieClipUses:37 39 41Used by:76
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:49
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:49
Symbol 47 GraphicUsed by:48 49
Symbol 48 MovieClipUses:47Used by:49
Symbol 49 ButtonUses:44 46 48 47Used by:76
Symbol 50 EditableTextUses:7Used by:76
Symbol 51 EditableTextUses:7Used by:76
Symbol 52 EditableTextUses:7Used by:76
Symbol 53 EditableTextUses:7Used by:76
Symbol 54 EditableTextUses:7Used by:76
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClip {Button_disabledSkin}Uses:55Used by:73
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClip {Button_downSkin}Uses:57Used by:73
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClip {Button_emphasizedSkin}Uses:59Used by:73
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClip {Button_overSkin}Uses:61Used by:73
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClip {Button_selectedDisabledSkin}Uses:63Used by:73
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClip {Button_selectedDownSkin}Uses:65Used by:73
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClip {Button_selectedOverSkin}Uses:67Used by:73
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClip {Button_selectedUpSkin}Uses:69Used by:73
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClip {Button_upSkin}Uses:71Used by:73
Symbol 73 MovieClip {fl.controls.Button}Uses:14 15 56 58 60 62 64 66 68 70 72 32Used by:76
Symbol 74 EditableTextUses:7Used by:76
Symbol 75 EditableTextUses:7Used by:76
Symbol 76 MovieClip {PrintRangeWnd}Uses:35 42 49 50 51 52 53 54 73 33 74 75
Symbol 77 MovieClip {fl.controls.Label}Uses:14 15
Symbol 78 GraphicUsed by:79
Symbol 79 MovieClip {def_bgr}Uses:78
Symbol 80 GraphicUsed by:81
Symbol 81 Button {button}Uses:80
Symbol 82 GraphicUsed by:83
Symbol 83 MovieClip {manualbutton}Uses:82Used by:84 88 89 90 91 92 93 94 95 96 97 98 99 100 141
Symbol 84 MovieClip {def_fullscreen}Uses:83Used by:155
Symbol 85 Button {ImgButton}Used by:86
Symbol 86 MovieClip {print2flash_fla.MCSlider_47}Uses:85Used by:87
Symbol 87 MovieClip {Slider}Uses:86Used by:155
Symbol 88 MovieClip {def_forward}Uses:83Used by:155
Symbol 89 MovieClip {def_back}Uses:83Used by:155
Symbol 90 MovieClip {def_nextpage}Uses:83Used by:155
Symbol 91 MovieClip {def_more}Uses:83Used by:155
Symbol 92 MovieClip {def_selMode}Uses:83Used by:155
Symbol 93 MovieClip {def_newwindow}Uses:83Used by:155
Symbol 94 MovieClip {def_help}Uses:83Used by:155
Symbol 95 MovieClip {def_rotate}Uses:83Used by:155
Symbol 96 MovieClip {def_prevpage}Uses:83Used by:155
Symbol 97 MovieClip {def_scalePage}Uses:83Used by:155
Symbol 98 MovieClip {def_scaleWidth}Uses:83Used by:155
Symbol 99 MovieClip {def_moveMode}Uses:83Used by:155
Symbol 100 MovieClip {def_print}Uses:83Used by:155
Symbol 101 GraphicUsed by:102
Symbol 102 MovieClipUses:101Used by:105 106
Symbol 103 GraphicUsed by:104
Symbol 104 MovieClipUses:103Used by:105 106
Symbol 105 MovieClip {ScrollPane_disabledSkin}Uses:102 104Used by:134
Symbol 106 MovieClip {ScrollPane_upSkin}Uses:102 104Used by:134
Symbol 107 GraphicUsed by:108
Symbol 108 MovieClip {ScrollTrack_skin}Uses:107Used by:133
Symbol 109 GraphicUsed by:112
Symbol 110 GraphicUsed by:111 114 118 127
Symbol 111 MovieClipUses:110Used by:112 122 124
Symbol 112 MovieClip {ScrollArrowUp_downSkin}Uses:109 111Used by:133
Symbol 113 GraphicUsed by:114
Symbol 114 MovieClip {ScrollArrowDown_downSkin}Uses:113 110Used by:133
Symbol 115 GraphicUsed by:116
Symbol 116 MovieClip {ScrollThumb_downSkin}Uses:115Used by:133
Symbol 117 GraphicUsed by:118
Symbol 118 MovieClip {ScrollArrowDown_overSkin}Uses:117 110Used by:133
Symbol 119 GraphicUsed by:120
Symbol 120 MovieClip {ScrollThumb_overSkin}Uses:119Used by:133
Symbol 121 GraphicUsed by:122
Symbol 122 MovieClip {ScrollArrowUp_overSkin}Uses:121 111Used by:133
Symbol 123 GraphicUsed by:124 127
Symbol 124 MovieClip {ScrollArrowUp_upSkin}Uses:123 111Used by:133
Symbol 125 GraphicUsed by:126
Symbol 126 MovieClip {ScrollThumb_upSkin}Uses:125Used by:133
Symbol 127 MovieClip {ScrollArrowDown_upSkin}Uses:123 110Used by:133
Symbol 128 GraphicUsed by:129 130
Symbol 129 MovieClip {ScrollArrowDown_disabledSkin}Uses:128Used by:133
Symbol 130 MovieClip {ScrollArrowUp_disabledSkin}Uses:128Used by:133
Symbol 131 GraphicUsed by:132
Symbol 132 MovieClip {ScrollBar_thumbIcon}Uses:131Used by:133
Symbol 133 MovieClip {fl.controls.ScrollBar}Uses:108 15 32 112 114 116 118 120 122 124 126 127 129 130 132Used by:134
Symbol 134 MovieClip {ScrollPain}Uses:14 15 105 106 133Used by:Timeline
Symbol 135 MovieClip {fl.containers.ScrollPane}
Symbol 136 GraphicUsed by:137
Symbol 137 MovieClipUses:136Used by:Timeline
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClipUses:138Used by:Timeline
Symbol 140 MovieClipUsed by:155
Symbol 141 MovieClip {print2flash_fla.def_searchbut_27}Uses:83Used by:155
Symbol 142 GraphicUsed by:144
Symbol 143 EditableTextUses:7Used by:144
Symbol 144 MovieClip {print2flash_fla.Timeline_30}Uses:142 143Used by:155
Symbol 145 GraphicUsed by:150
Symbol 146 EditableTextUses:7Used by:147
Symbol 147 MovieClip {print2flash_fla.Timeline_32}Uses:146Used by:150
Symbol 148 EditableTextUses:7Used by:149
Symbol 149 MovieClip {print2flash_fla.Timeline_33}Uses:148Used by:150
Symbol 150 MovieClip {print2flash_fla.Timeline_31}Uses:145 147 149Used by:155
Symbol 151 GraphicUsed by:153
Symbol 152 EditableTextUses:7Used by:153
Symbol 153 MovieClip {print2flash_fla.Timeline_50}Uses:151 152Used by:155
Symbol 154 MovieClipUsed by:155
Symbol 155 MovieClip {print2flash_fla._toolbar_25}Uses:140 141 100 144 150 99 98 97 96 95 94 93 92 91 90 89 88 87 84 153 154Used by:Timeline
Symbol 221 GraphicUsed by:227 237 247 259 267 277 286 294 303 311 320 329 338 347 355 364 373 382 390 400 409 418 426 435 444 453 462 471 479 488 497 506 515 524 532 541 549 558 567 576 585 594 603 611 620 629 638 646 655 664 672 681 690 698 707 716 725 734 742 751 760 769 777 786 795 804 813 822 830 839 848 857 866 874 883 892 900 909 918 927 935 944 953 962 971 979 988 997 1005 1014 1023 1032 1040 1048 1057 1066 1075 1084 1092 1101 1110 1118 1127 1136 1145 1153 1162 1171 1180 1188 1197 1205 1214 1223 1231 1240 1248 1257 1266 1274 1283 1292 1301 1310 1318 1326 1335 1344 1352 1361 1370 1378 1387 1396 1405 1414 1422 1431 1439 1448 1457 1465 1474 1483 1492 1500 1509 1518 1528
Symbol 222 FontUsed by:224
Symbol 223 GraphicUsed by:227
Symbol 224 EditableTextUses:222Used by:227
Symbol 225 BitmapUsed by:226
Symbol 226 GraphicUses:225Used by:227
Symbol 227 MovieClip {Page1}Uses:221 223 224 226
Symbol 228 FontUsed by:230
Symbol 229 GraphicUsed by:237
Symbol 230 EditableTextUses:228Used by:237
Symbol 231 FontUsed by:235 244 254 266 274 284 285 293 301 310 318 327 336 345 354 362 371 380 389 397 407 416 425 433 442 451 460 469 478 486 495 496 504 513 522 531 539 548 556 565 574 583 592 601 610 618 627 636 637 645 653 662 671 679 688 697 705 714 715 723 732 741 749 758 759 767 776 784 793 802 811 820 829 837 846 855 864 865 873 881 890 899 907 916 925 934 942 951 960 969 978 986 995 1004 1012 1021 1030 1047 1055 1064 1073 1082 1083 1091 1099 1108 1117 1125 1134 1143 1152 1160 1169 1170 1178 1187 1195 1204 1212 1221 1230 1238 1247 1255 1264 1273 1281 1290 1299 1308 1317 1325 1333 1342 1359 1368 1377 1385 1394 1395 1403 1404 1412 1413 1421 1429 1438 1446 1455 1464 1472 1481 1490 1499 1507 1516
Symbol 232 FontUsed by:234
Symbol 233 GraphicUsed by:237
Symbol 234 EditableTextUses:232Used by:237
Symbol 235 TextUses:231 236Used by:237
Symbol 236 FontUsed by:235
Symbol 237 MovieClip {Page2}Uses:221 229 230 233 234 235
Symbol 238 FontUsed by:240
Symbol 239 GraphicUsed by:247
Symbol 240 EditableTextUses:238Used by:247
Symbol 241 FontUsed by:243
Symbol 242 GraphicUsed by:247
Symbol 243 EditableTextUses:241Used by:247
Symbol 244 TextUses:231 245 246Used by:247
Symbol 245 FontUsed by:244 254 274 301 318 362 397 433 486 539 556 618 653 679 705 749 784 837 881 907 942 986 1012 1047 1055 1073 1099 1125 1160 1195 1212 1238 1255 1281 1325 1333 1359 1385 1429 1446 1472 1507
Symbol 246 FontUsed by:244 254 258 266 284 293 301 310 318 327 336 345 354 362 371 380 381 389 397 407 416 417 425 433 442 451 452 460 469 478 486 495 496 504 505 513 514 522 531 539 540 548 556 557 565 574 583 584 592 601 610 618 619 627 636 645 653 662 663 671 679 688 689 697 705 714 715 723 732 741 749 758 759 767 776 784 793 802 803 811 812 820 829 837 846 847 855 864 865 873 881 890 899 907 916 925 934 942 951 952 960 969 970 978 986 995 996 1004 1012 1013 1021 1030 1031 1039 1047 1055 1064 1073 1074 1082 1083 1091 1099 1108 1117 1125 1134 1143 1152 1160 1169 1170 1178 1187 1195 1204 1212 1221 1222 1230 1238 1247 1255 1264 1265 1273 1281 1290 1291 1299 1308 1317 1325 1333 1342 1359 1360 1368 1369 1377 1385 1394 1395 1403 1412 1413 1421 1429 1438 1446 1447 1455 1464 1472 1481 1490 1499 1507 1516 1517 1527
Symbol 247 MovieClip {Page3}Uses:221 239 240 242 243 244
Symbol 248 FontUsed by:250
Symbol 249 GraphicUsed by:259
Symbol 250 EditableTextUses:248Used by:259
Symbol 251 FontUsed by:253
Symbol 252 GraphicUsed by:259
Symbol 253 EditableTextUses:251Used by:259
Symbol 254 TextUses:231 245 255 246 256 257Used by:259
Symbol 255 FontUsed by:254 274 301 318 362 397 433 486 539 556 618 653 679 705 749 784 837 881 907 942 986 1012 1047 1055 1073 1099 1125 1160 1195 1212 1238 1255 1281 1325 1333 1359 1385 1429 1446 1472 1507
Symbol 256 FontUsed by:254 274 284 285 293 301 302 318 327 345 354 371 380 389 397 407 416 433 451 460 469 478 486 495 496 504 539 548 565 574 583 592 601 610 627 636 637 653 662 705 715 723 749 758 767 784 793 802 820 829 846 864 873 881 890 907 916 934 942 951 969 978 986 987 995 1021 1030 1047 1064 1073 1083 1091 1099 1134 1143 1160 1178 1195 1204 1212 1221 1230 1247 1255 1264 1290 1299 1309 1317 1333 1342 1359 1368 1377 1385 1386 1403 1412 1413 1421 1456 1464 1472 1473 1481 1482 1490 1507 1516
Symbol 257 FontUsed by:254 266 274 301 310 318 327 336 345 362 371 380 407 416 433 442 451 469 470 486 495 513 522 531 539 548 556 565 574 575 583 601 602 618 627 636 645 654 662 671 679 688 705 706 714 723 732 741 750 776 793 802 803 811 820 837 855 864 881 882 890 907 908 916 925 926 942 960 969 978 986 995 1004 1012 1021 1030 1055 1108 1125 1126 1134 1160 1169 1170 1178 1196 1212 1213 1221 1238 1247 1264 1281 1299 1308 1317 1333 1342 1359 1368 1394 1421 1429 1438 1446 1455 1481 1490 1491 1507
Symbol 258 TextUses:246Used by:259
Symbol 259 MovieClip {Page4}Uses:221 249 250 252 253 254 258
Symbol 260 FontUsed by:262
Symbol 261 GraphicUsed by:267
Symbol 262 EditableTextUses:260Used by:267
Symbol 263 FontUsed by:265
Symbol 264 GraphicUsed by:267
Symbol 265 EditableTextUses:263Used by:267
Symbol 266 TextUses:257 231 246Used by:267
Symbol 267 MovieClip {Page5}Uses:221 261 262 264 265 266
Symbol 268 FontUsed by:270
Symbol 269 GraphicUsed by:277
Symbol 270 EditableTextUses:268Used by:277
Symbol 271 FontUsed by:273
Symbol 272 GraphicUsed by:277
Symbol 273 EditableTextUses:271Used by:277
Symbol 274 TextUses:231 245 255 275 256 257Used by:277
Symbol 275 FontUsed by:274 276 284 293 318 319 327 328 336 337 345 346 354 362 363 371 372 399 407 408 433 434 442 443 451 460 461 469 486 487 513 522 539 565 566 583 592 593 601 610 618 627 628 636 645 679 680 688 714 732 733 758 759 767 768 784 785 793 794 811 820 821 837 838 846 855 856 865 881 890 891 899 907 916 917 925 934 942 943 951 960 961 970 996 1004 1012 1021 1022 1047 1055 1056 1082 1099 1108 1109 1117 1134 1135 1143 1144 1160 1161 1195 1204 1230 1238 1239 1247 1255 1256 1264 1273 1281 1282 1290 1299 1300 1325 1333 1334 1342 1343 1351 1359 1394 1395 1403 1404 1412 1421 1429 1430 1438 1446 1455 1472 1481 1507 1508
Symbol 276 TextUses:275Used by:277
Symbol 277 MovieClip {Page6}Uses:221 269 270 272 273 274 276
Symbol 278 FontUsed by:280
Symbol 279 GraphicUsed by:286
Symbol 280 EditableTextUses:278Used by:286
Symbol 281 FontUsed by:283
Symbol 282 GraphicUsed by:286
Symbol 283 EditableTextUses:281Used by:286
Symbol 284 TextUses:246 231 275 256Used by:286
Symbol 285 TextUses:231 256Used by:286
Symbol 286 MovieClip {Page7}Uses:221 279 280 282 283 284 285
Symbol 287 FontUsed by:289
Symbol 288 GraphicUsed by:294
Symbol 289 EditableTextUses:287Used by:294
Symbol 290 FontUsed by:292
Symbol 291 GraphicUsed by:294
Symbol 292 EditableTextUses:290Used by:294
Symbol 293 TextUses:256 231 246 275Used by:294
Symbol 294 MovieClip {Page8}Uses:221 288 289 291 292 293
Symbol 295 FontUsed by:297
Symbol 296 GraphicUsed by:303
Symbol 297 EditableTextUses:295Used by:303
Symbol 298 FontUsed by:300
Symbol 299 GraphicUsed by:303
Symbol 300 EditableTextUses:298Used by:303
Symbol 301 TextUses:231 245 255 246 256 257Used by:303
Symbol 302 TextUses:256Used by:303
Symbol 303 MovieClip {Page9}Uses:221 296 297 299 300 301 302
Symbol 304 FontUsed by:306
Symbol 305 GraphicUsed by:311
Symbol 306 EditableTextUses:304Used by:311
Symbol 307 FontUsed by:309
Symbol 308 GraphicUsed by:311
Symbol 309 EditableTextUses:307Used by:311
Symbol 310 TextUses:246 231 257Used by:311
Symbol 311 MovieClip {Page10}Uses:221 305 306 308 309 310
Symbol 312 FontUsed by:314
Symbol 313 GraphicUsed by:320
Symbol 314 EditableTextUses:312Used by:320
Symbol 315 FontUsed by:317
Symbol 316 GraphicUsed by:320
Symbol 317 EditableTextUses:315Used by:320
Symbol 318 TextUses:231 245 255 246 256 257 275Used by:320
Symbol 319 TextUses:275Used by:320
Symbol 320 MovieClip {Page11}Uses:221 313 314 316 317 318 319
Symbol 321 FontUsed by:323
Symbol 322 GraphicUsed by:329
Symbol 323 EditableTextUses:321Used by:329
Symbol 324 FontUsed by:326
Symbol 325 GraphicUsed by:329
Symbol 326 EditableTextUses:324Used by:329
Symbol 327 TextUses:246 256 231 275 257Used by:329
Symbol 328 TextUses:275Used by:329
Symbol 329 MovieClip {Page12}Uses:221 322 323 325 326 327 328
Symbol 330 FontUsed by:332
Symbol 331 GraphicUsed by:338
Symbol 332 EditableTextUses:330Used by:338
Symbol 333 FontUsed by:335
Symbol 334 GraphicUsed by:338
Symbol 335 EditableTextUses:333Used by:338
Symbol 336 TextUses:246 231 275 257Used by:338
Symbol 337 TextUses:275Used by:338
Symbol 338 MovieClip {Page13}Uses:221 331 332 334 335 336 337
Symbol 339 FontUsed by:341
Symbol 340 GraphicUsed by:347
Symbol 341 EditableTextUses:339Used by:347
Symbol 342 FontUsed by:344
Symbol 343 GraphicUsed by:347
Symbol 344 EditableTextUses:342Used by:347
Symbol 345 TextUses:257 246 231 256 275Used by:347
Symbol 346 TextUses:275Used by:347
Symbol 347 MovieClip {Page14}Uses:221 340 341 343 344 345 346
Symbol 348 FontUsed by:350
Symbol 349 GraphicUsed by:355
Symbol 350 EditableTextUses:348Used by:355
Symbol 351 FontUsed by:353
Symbol 352 GraphicUsed by:355
Symbol 353 EditableTextUses:351Used by:355
Symbol 354 TextUses:275 231 256 246Used by:355
Symbol 355 MovieClip {Page15}Uses:221 349 350 352 353 354
Symbol 356 FontUsed by:358
Symbol 357 GraphicUsed by:364
Symbol 358 EditableTextUses:356Used by:364
Symbol 359 FontUsed by:361
Symbol 360 GraphicUsed by:364
Symbol 361 EditableTextUses:359Used by:364
Symbol 362 TextUses:231 245 255 246 257 275Used by:364
Symbol 363 TextUses:275Used by:364
Symbol 364 MovieClip {Page16}Uses:221 357 358 360 361 362 363
Symbol 365 FontUsed by:367
Symbol 366 GraphicUsed by:373
Symbol 367 EditableTextUses:365Used by:373
Symbol 368 FontUsed by:370
Symbol 369 GraphicUsed by:373
Symbol 370 EditableTextUses:368Used by:373
Symbol 371 TextUses:257 231 246 275 256Used by:373
Symbol 372 TextUses:275Used by:373
Symbol 373 MovieClip {Page17}Uses:221 366 367 369 370 371 372
Symbol 374 FontUsed by:376
Symbol 375 GraphicUsed by:382
Symbol 376 EditableTextUses:374Used by:382
Symbol 377 FontUsed by:379
Symbol 378 GraphicUsed by:382
Symbol 379 EditableTextUses:377Used by:382
Symbol 380 TextUses:246 231 257 256Used by:382
Symbol 381 TextUses:246Used by:382
Symbol 382 MovieClip {Page18}Uses:221 375 376 378 379 380 381
Symbol 383 FontUsed by:385
Symbol 384 GraphicUsed by:390
Symbol 385 EditableTextUses:383Used by:390
Symbol 386 FontUsed by:388
Symbol 387 GraphicUsed by:390
Symbol 388 EditableTextUses:386Used by:390
Symbol 389 TextUses:246 231 256Used by:390
Symbol 390 MovieClip {Page19}Uses:221 384 385 387 388 389
Symbol 391 FontUsed by:393
Symbol 392 GraphicUsed by:400
Symbol 393 EditableTextUses:391Used by:400
Symbol 394 FontUsed by:396
Symbol 395 GraphicUsed by:400
Symbol 396 EditableTextUses:394Used by:400
Symbol 397 TextUses:231 245 255 256 246 398Used by:400
Symbol 398 FontUsed by:397 522 523 723 724 811 1099 1100 1117 1178 1179
Symbol 399 TextUses:275Used by:400
Symbol 400 MovieClip {Page20}Uses:221 392 393 395 396 397 399
Symbol 401 FontUsed by:403
Symbol 402 GraphicUsed by:409
Symbol 403 EditableTextUses:401Used by:409
Symbol 404 FontUsed by:406
Symbol 405 GraphicUsed by:409
Symbol 406 EditableTextUses:404Used by:409
Symbol 407 TextUses:246 231 257 275 256Used by:409
Symbol 408 TextUses:275Used by:409
Symbol 409 MovieClip {Page21}Uses:221 402 403 405 406 407 408
Symbol 410 FontUsed by:412
Symbol 411 GraphicUsed by:418
Symbol 412 EditableTextUses:410Used by:418
Symbol 413 FontUsed by:415
Symbol 414 GraphicUsed by:418
Symbol 415 EditableTextUses:413Used by:418
Symbol 416 TextUses:246 231 257 256Used by:418
Symbol 417 TextUses:246Used by:418
Symbol 418 MovieClip {Page22}Uses:221 411 412 414 415 416 417
Symbol 419 FontUsed by:421
Symbol 420 GraphicUsed by:426
Symbol 421 EditableTextUses:419Used by:426
Symbol 422 FontUsed by:424
Symbol 423 GraphicUsed by:426
Symbol 424 EditableTextUses:422Used by:426
Symbol 425 TextUses:246 231Used by:426
Symbol 426 MovieClip {Page23}Uses:221 420 421 423 424 425
Symbol 427 FontUsed by:429
Symbol 428 GraphicUsed by:435
Symbol 429 EditableTextUses:427Used by:435
Symbol 430 FontUsed by:432
Symbol 431 GraphicUsed by:435
Symbol 432 EditableTextUses:430Used by:435
Symbol 433 TextUses:231 245 255 257 246 256 275Used by:435
Symbol 434 TextUses:275Used by:435
Symbol 435 MovieClip {Page24}Uses:221 428 429 431 432 433 434
Symbol 436 FontUsed by:438
Symbol 437 GraphicUsed by:444
Symbol 438 EditableTextUses:436Used by:444
Symbol 439 FontUsed by:441
Symbol 440 GraphicUsed by:444
Symbol 441 EditableTextUses:439Used by:444
Symbol 442 TextUses:246 231 257 275Used by:444
Symbol 443 TextUses:275Used by:444
Symbol 444 MovieClip {Page25}Uses:221 437 438 440 441 442 443
Symbol 445 FontUsed by:447
Symbol 446 GraphicUsed by:453
Symbol 447 EditableTextUses:445Used by:453
Symbol 448 FontUsed by:450
Symbol 449 GraphicUsed by:453
Symbol 450 EditableTextUses:448Used by:453
Symbol 451 TextUses:275 246 231 256 257Used by:453
Symbol 452 TextUses:246Used by:453
Symbol 453 MovieClip {Page26}Uses:221 446 447 449 450 451 452
Symbol 454 FontUsed by:456
Symbol 455 GraphicUsed by:462
Symbol 456 EditableTextUses:454Used by:462
Symbol 457 FontUsed by:459
Symbol 458 GraphicUsed by:462
Symbol 459 EditableTextUses:457Used by:462
Symbol 460 TextUses:246 231 256 275Used by:462
Symbol 461 TextUses:275Used by:462
Symbol 462 MovieClip {Page27}Uses:221 455 456 458 459 460 461
Symbol 463 FontUsed by:465
Symbol 464 GraphicUsed by:471
Symbol 465 EditableTextUses:463Used by:471
Symbol 466 FontUsed by:468
Symbol 467 GraphicUsed by:471
Symbol 468 EditableTextUses:466Used by:471
Symbol 469 TextUses:246 256 231 275 257Used by:471
Symbol 470 TextUses:257Used by:471
Symbol 471 MovieClip {Page28}Uses:221 464 465 467 468 469 470
Symbol 472 FontUsed by:474
Symbol 473 GraphicUsed by:479
Symbol 474 EditableTextUses:472Used by:479
Symbol 475 FontUsed by:477
Symbol 476 GraphicUsed by:479
Symbol 477 EditableTextUses:475Used by:479
Symbol 478 TextUses:246 231 256Used by:479
Symbol 479 MovieClip {Page29}Uses:221 473 474 476 477 478
Symbol 480 FontUsed by:482
Symbol 481 GraphicUsed by:488
Symbol 482 EditableTextUses:480Used by:488
Symbol 483 FontUsed by:485
Symbol 484 GraphicUsed by:488
Symbol 485 EditableTextUses:483Used by:488
Symbol 486 TextUses:231 245 255 246 256 275 257Used by:488
Symbol 487 TextUses:275Used by:488
Symbol 488 MovieClip {Page30}Uses:221 481 482 484 485 486 487
Symbol 489 FontUsed by:491
Symbol 490 GraphicUsed by:497
Symbol 491 EditableTextUses:489Used by:497
Symbol 492 FontUsed by:494
Symbol 493 GraphicUsed by:497
Symbol 494 EditableTextUses:492Used by:497
Symbol 495 TextUses:246 231 256 257Used by:497
Symbol 496 TextUses:246 231 256Used by:497
Symbol 497 MovieClip {Page31}Uses:221 490 491 493 494 495 496
Symbol 498 FontUsed by:500
Symbol 499 GraphicUsed by:506
Symbol 500 EditableTextUses:498Used by:506
Symbol 501 FontUsed by:503
Symbol 502 GraphicUsed by:506
Symbol 503 EditableTextUses:501Used by:506
Symbol 504 TextUses:246 231 256Used by:506
Symbol 505 TextUses:246Used by:506
Symbol 506 MovieClip {Page32}Uses:221 499 500 502 503 504 505
Symbol 507 FontUsed by:509
Symbol 508 GraphicUsed by:515
Symbol 509 EditableTextUses:507Used by:515
Symbol 510 FontUsed by:512
Symbol 511 GraphicUsed by:515
Symbol 512 EditableTextUses:510Used by:515
Symbol 513 TextUses:246 231 275 257Used by:515
Symbol 514 TextUses:246Used by:515
Symbol 515 MovieClip {Page33}Uses:221 508 509 511 512 513 514
Symbol 516 FontUsed by:518
Symbol 517 GraphicUsed by:524
Symbol 518 EditableTextUses:516Used by:524
Symbol 519 FontUsed by:521
Symbol 520 GraphicUsed by:524
Symbol 521 EditableTextUses:519Used by:524
Symbol 522 TextUses:275 231 246 257 398Used by:524
Symbol 523 TextUses:398Used by:524
Symbol 524 MovieClip {Page34}Uses:221 517 518 520 521 522 523
Symbol 525 FontUsed by:527
Symbol 526 GraphicUsed by:532
Symbol 527 EditableTextUses:525Used by:532
Symbol 528 FontUsed by:530
Symbol 529 GraphicUsed by:532
Symbol 530 EditableTextUses:528Used by:532
Symbol 531 TextUses:246 231 257Used by:532
Symbol 532 MovieClip {Page35}Uses:221 526 527 529 530 531
Symbol 533 FontUsed by:535
Symbol 534 GraphicUsed by:541
Symbol 535 EditableTextUses:533Used by:541
Symbol 536 FontUsed by:538
Symbol 537 GraphicUsed by:541
Symbol 538 EditableTextUses:536Used by:541
Symbol 539 TextUses:231 245 255 246 256 257 275Used by:541
Symbol 540 TextUses:246Used by:541
Symbol 541 MovieClip {Page36}Uses:221 534 535 537 538 539 540
Symbol 542 FontUsed by:544
Symbol 543 GraphicUsed by:549
Symbol 544 EditableTextUses:542Used by:549
Symbol 545 FontUsed by:547
Symbol 546 GraphicUsed by:549
Symbol 547 EditableTextUses:545Used by:549
Symbol 548 TextUses:256 231 246 257Used by:549
Symbol 549 MovieClip {Page37}Uses:221 543 544 546 547 548
Symbol 550 FontUsed by:552
Symbol 551 GraphicUsed by:558
Symbol 552 EditableTextUses:550Used by:558
Symbol 553 FontUsed by:555
Symbol 554 GraphicUsed by:558
Symbol 555 EditableTextUses:553Used by:558
Symbol 556 TextUses:231 245 255 246 257Used by:558
Symbol 557 TextUses:246Used by:558
Symbol 558 MovieClip {Page38}Uses:221 551 552 554 555 556 557
Symbol 559 FontUsed by:561
Symbol 560 GraphicUsed by:567
Symbol 561 EditableTextUses:559Used by:567
Symbol 562 FontUsed by:564
Symbol 563 GraphicUsed by:567
Symbol 564 EditableTextUses:562Used by:567
Symbol 565 TextUses:246 231 257 256 275Used by:567
Symbol 566 TextUses:275Used by:567
Symbol 567 MovieClip {Page39}Uses:221 560 561 563 564 565 566
Symbol 568 FontUsed by:570
Symbol 569 GraphicUsed by:576
Symbol 570 EditableTextUses:568Used by:576
Symbol 571 FontUsed by:573
Symbol 572 GraphicUsed by:576
Symbol 573 EditableTextUses:571Used by:576
Symbol 574 TextUses:246 231 256 257Used by:576
Symbol 575 TextUses:257Used by:576
Symbol 576 MovieClip {Page40}Uses:221 569 570 572 573 574 575
Symbol 577 FontUsed by:579
Symbol 578 GraphicUsed by:585
Symbol 579 EditableTextUses:577Used by:585
Symbol 580 FontUsed by:582
Symbol 581 GraphicUsed by:585
Symbol 582 EditableTextUses:580Used by:585
Symbol 583 TextUses:246 231 257 275 256Used by:585
Symbol 584 TextUses:246Used by:585
Symbol 585 MovieClip {Page41}Uses:221 578 579 581 582 583 584
Symbol 586 FontUsed by:588
Symbol 587 GraphicUsed by:594
Symbol 588 EditableTextUses:586Used by:594
Symbol 589 FontUsed by:591
Symbol 590 GraphicUsed by:594
Symbol 591 EditableTextUses:589Used by:594
Symbol 592 TextUses:246 231 256 275Used by:594
Symbol 593 TextUses:275Used by:594
Symbol 594 MovieClip {Page42}Uses:221 587 588 590 591 592 593
Symbol 595 FontUsed by:597
Symbol 596 GraphicUsed by:603
Symbol 597 EditableTextUses:595Used by:603
Symbol 598 FontUsed by:600
Symbol 599 GraphicUsed by:603
Symbol 600 EditableTextUses:598Used by:603
Symbol 601 TextUses:246 231 257 256 275Used by:603
Symbol 602 TextUses:257Used by:603
Symbol 603 MovieClip {Page43}Uses:221 596 597 599 600 601 602
Symbol 604 FontUsed by:606
Symbol 605 GraphicUsed by:611
Symbol 606 EditableTextUses:604Used by:611
Symbol 607 FontUsed by:609
Symbol 608 GraphicUsed by:611
Symbol 609 EditableTextUses:607Used by:611
Symbol 610 TextUses:246 231 275 256Used by:611
Symbol 611 MovieClip {Page44}Uses:221 605 606 608 609 610
Symbol 612 FontUsed by:614
Symbol 613 GraphicUsed by:620
Symbol 614 EditableTextUses:612Used by:620
Symbol 615 FontUsed by:617
Symbol 616 GraphicUsed by:620
Symbol 617 EditableTextUses:615Used by:620
Symbol 618 TextUses:231 245 255 246 257 275Used by:620
Symbol 619 TextUses:246Used by:620
Symbol 620 MovieClip {Page45}Uses:221 613 614 616 617 618 619
Symbol 621 FontUsed by:623
Symbol 622 GraphicUsed by:629
Symbol 623 EditableTextUses:621Used by:629
Symbol 624 FontUsed by:626
Symbol 625 GraphicUsed by:629
Symbol 626 EditableTextUses:624Used by:629
Symbol 627 TextUses:275 246 231 256 257Used by:629
Symbol 628 TextUses:275Used by:629
Symbol 629 MovieClip {Page46}Uses:221 622 623 625 626 627 628
Symbol 630 FontUsed by:632
Symbol 631 GraphicUsed by:638
Symbol 632 EditableTextUses:630Used by:638
Symbol 633 FontUsed by:635
Symbol 634 GraphicUsed by:638
Symbol 635 EditableTextUses:633Used by:638
Symbol 636 TextUses:246 231 257 275 256Used by:638
Symbol 637 TextUses:231 256Used by:638
Symbol 638 MovieClip {Page47}Uses:221 631 632 634 635 636 637
Symbol 639 FontUsed by:641
Symbol 640 GraphicUsed by:646
Symbol 641 EditableTextUses:639Used by:646
Symbol 642 FontUsed by:644
Symbol 643 GraphicUsed by:646
Symbol 644 EditableTextUses:642Used by:646
Symbol 645 TextUses:246 231 275 257Used by:646
Symbol 646 MovieClip {Page48}Uses:221 640 641 643 644 645
Symbol 647 FontUsed by:649
Symbol 648 GraphicUsed by:655
Symbol 649 EditableTextUses:647Used by:655
Symbol 650 FontUsed by:652
Symbol 651 GraphicUsed by:655
Symbol 652 EditableTextUses:650Used by:655
Symbol 653 TextUses:231 245 255 256 246Used by:655
Symbol 654 TextUses:257Used by:655
Symbol 655 MovieClip {Page49}Uses:221 648 649 651 652 653 654
Symbol 656 FontUsed by:658
Symbol 657 GraphicUsed by:664
Symbol 658 EditableTextUses:656Used by:664
Symbol 659 FontUsed by:661
Symbol 660 GraphicUsed by:664
Symbol 661 EditableTextUses:659Used by:664
Symbol 662 TextUses:246 231 257 256Used by:664
Symbol 663 TextUses:246Used by:664
Symbol 664 MovieClip {Page50}Uses:221 657 658 660 661 662 663
Symbol 665 FontUsed by:667
Symbol 666 GraphicUsed by:672
Symbol 667 EditableTextUses:665Used by:672
Symbol 668 FontUsed by:670
Symbol 669 GraphicUsed by:672
Symbol 670 EditableTextUses:668Used by:672
Symbol 671 TextUses:246 231 257Used by:672
Symbol 672 MovieClip {Page51}Uses:221 666 667 669 670 671
Symbol 673 FontUsed by:675
Symbol 674 GraphicUsed by:681
Symbol 675 EditableTextUses:673Used by:681
Symbol 676 FontUsed by:678
Symbol 677 GraphicUsed by:681
Symbol 678 EditableTextUses:676Used by:681
Symbol 679 TextUses:231 245 255 246 257 275Used by:681
Symbol 680 TextUses:275Used by:681
Symbol 681 MovieClip {Page52}Uses:221 674 675 677 678 679 680
Symbol 682 FontUsed by:684
Symbol 683 GraphicUsed by:690
Symbol 684 EditableTextUses:682Used by:690
Symbol 685 FontUsed by:687
Symbol 686 GraphicUsed by:690
Symbol 687 EditableTextUses:685Used by:690
Symbol 688 TextUses:246 231 275 257Used by:690
Symbol 689 TextUses:246Used by:690
Symbol 690 MovieClip {Page53}Uses:221 683 684 686 687 688 689
Symbol 691 FontUsed by:693
Symbol 692 GraphicUsed by:698
Symbol 693 EditableTextUses:691Used by:698
Symbol 694 FontUsed by:696
Symbol 695 GraphicUsed by:698
Symbol 696 EditableTextUses:694Used by:698
Symbol 697 TextUses:246 231Used by:698
Symbol 698 MovieClip {Page54}Uses:221 692 693 695 696 697
Symbol 699 FontUsed by:701
Symbol 700 GraphicUsed by:707
Symbol 701 EditableTextUses:699Used by:707
Symbol 702 FontUsed by:704
Symbol 703 GraphicUsed by:707
Symbol 704 EditableTextUses:702Used by:707
Symbol 705 TextUses:231 245 255 257 246 256Used by:707
Symbol 706 TextUses:257Used by:707
Symbol 707 MovieClip {Page55}Uses:221 700 701 703 704 705 706
Symbol 708 FontUsed by:710
Symbol 709 GraphicUsed by:716
Symbol 710 EditableTextUses:708Used by:716
Symbol 711 FontUsed by:713
Symbol 712 GraphicUsed by:716
Symbol 713 EditableTextUses:711Used by:716
Symbol 714 TextUses:246 231 275 257Used by:716
Symbol 715 TextUses:246 231 256Used by:716
Symbol 716 MovieClip {Page56}Uses:221 709 710 712 713 714 715
Symbol 717 FontUsed by:719
Symbol 718 GraphicUsed by:725
Symbol 719 EditableTextUses:717Used by:725
Symbol 720 FontUsed by:722
Symbol 721 GraphicUsed by:725
Symbol 722 EditableTextUses:720Used by:725
Symbol 723 TextUses:246 231 256 257 398Used by:725
Symbol 724 TextUses:398Used by:725
Symbol 725 MovieClip {Page57}Uses:221 718 719 721 722 723 724
Symbol 726 FontUsed by:728
Symbol 727 GraphicUsed by:734
Symbol 728 EditableTextUses:726Used by:734
Symbol 729 FontUsed by:731
Symbol 730 GraphicUsed by:734
Symbol 731 EditableTextUses:729Used by:734
Symbol 732 TextUses:246 231 275 257Used by:734
Symbol 733 TextUses:275Used by:734
Symbol 734 MovieClip {Page58}Uses:221 727 728 730 731 732 733
Symbol 735 FontUsed by:737
Symbol 736 GraphicUsed by:742
Symbol 737 EditableTextUses:735Used by:742
Symbol 738 FontUsed by:740
Symbol 739 GraphicUsed by:742
Symbol 740 EditableTextUses:738Used by:742
Symbol 741 TextUses:246 231 257Used by:742
Symbol 742 MovieClip {Page59}Uses:221 736 737 739 740 741
Symbol 743 FontUsed by:745
Symbol 744 GraphicUsed by:751
Symbol 745 EditableTextUses:743Used by:751
Symbol 746 FontUsed by:748
Symbol 747 GraphicUsed by:751
Symbol 748 EditableTextUses:746Used by:751
Symbol 749 TextUses:231 245 255 246 256Used by:751
Symbol 750 TextUses:257Used by:751
Symbol 751 MovieClip {Page60}Uses:221 744 745 747 748 749 750
Symbol 752 FontUsed by:754
Symbol 753 GraphicUsed by:760
Symbol 754 EditableTextUses:752Used by:760
Symbol 755 FontUsed by:757
Symbol 756 GraphicUsed by:760
Symbol 757 EditableTextUses:755Used by:760
Symbol 758 TextUses:275 231 246 256Used by:760
Symbol 759 TextUses:246 231 275Used by:760
Symbol 760 MovieClip {Page61}Uses:221 753 754 756 757 758 759
Symbol 761 FontUsed by:763
Symbol 762 GraphicUsed by:769
Symbol 763 EditableTextUses:761Used by:769
Symbol 764 FontUsed by:766
Symbol 765 GraphicUsed by:769
Symbol 766 EditableTextUses:764Used by:769
Symbol 767 TextUses:246 231 275 256Used by:769
Symbol 768 TextUses:275Used by:769
Symbol 769 MovieClip {Page62}Uses:221 762 763 765 766 767 768
Symbol 770 FontUsed by:772
Symbol 771 GraphicUsed by:777
Symbol 772 EditableTextUses:770Used by:777
Symbol 773 FontUsed by:775
Symbol 774 GraphicUsed by:777
Symbol 775 EditableTextUses:773Used by:777
Symbol 776 TextUses:246 231 257Used by:777
Symbol 777 MovieClip {Page63}Uses:221 771 772 774 775 776
Symbol 778 FontUsed by:780
Symbol 779 GraphicUsed by:786
Symbol 780 EditableTextUses:778Used by:786
Symbol 781 FontUsed by:783
Symbol 782 GraphicUsed by:786
Symbol 783 EditableTextUses:781Used by:786
Symbol 784 TextUses:231 245 255 246 275 256Used by:786
Symbol 785 TextUses:275Used by:786
Symbol 786 MovieClip {Page64}Uses:221 779 780 782 783 784 785
Symbol 787 FontUsed by:789
Symbol 788 GraphicUsed by:795
Symbol 789 EditableTextUses:787Used by:795
Symbol 790 FontUsed by:792
Symbol 791 GraphicUsed by:795
Symbol 792 EditableTextUses:790Used by:795
Symbol 793 TextUses:246 231 256 257 275Used by:795
Symbol 794 TextUses:275Used by:795
Symbol 795 MovieClip {Page65}Uses:221 788 789 791 792 793 794
Symbol 796 FontUsed by:798
Symbol 797 GraphicUsed by:804
Symbol 798 EditableTextUses:796Used by:804
Symbol 799 FontUsed by:801
Symbol 800 GraphicUsed by:804
Symbol 801 EditableTextUses:799Used by:804
Symbol 802 TextUses:246 231 256 257Used by:804
Symbol 803 TextUses:246 257Used by:804
Symbol 804 MovieClip {Page66}Uses:221 797 798 800 801 802 803
Symbol 805 FontUsed by:807
Symbol 806 GraphicUsed by:813
Symbol 807 EditableTextUses:805Used by:813
Symbol 808 FontUsed by:810
Symbol 809 GraphicUsed by:813
Symbol 810 EditableTextUses:808Used by:813
Symbol 811 TextUses:246 231 398 257 275Used by:813
Symbol 812 TextUses:246Used by:813
Symbol 813 MovieClip {Page67}Uses:221 806 807 809 810 811 812
Symbol 814 FontUsed by:816
Symbol 815 GraphicUsed by:822
Symbol 816 EditableTextUses:814Used by:822
Symbol 817 FontUsed by:819
Symbol 818 GraphicUsed by:822
Symbol 819 EditableTextUses:817Used by:822
Symbol 820 TextUses:246 231 257 256 275Used by:822
Symbol 821 TextUses:275Used by:822
Symbol 822 MovieClip {Page68}Uses:221 815 816 818 819 820 821
Symbol 823 FontUsed by:825
Symbol 824 GraphicUsed by:830
Symbol 825 EditableTextUses:823Used by:830
Symbol 826 FontUsed by:828
Symbol 827 GraphicUsed by:830
Symbol 828 EditableTextUses:826Used by:830
Symbol 829 TextUses:256 231 246Used by:830
Symbol 830 MovieClip {Page69}Uses:221 824 825 827 828 829
Symbol 831 FontUsed by:833
Symbol 832 GraphicUsed by:839
Symbol 833 EditableTextUses:831Used by:839
Symbol 834 FontUsed by:836
Symbol 835 GraphicUsed by:839
Symbol 836 EditableTextUses:834Used by:839
Symbol 837 TextUses:231 245 255 246 257 275Used by:839
Symbol 838 TextUses:275Used by:839
Symbol 839 MovieClip {Page70}Uses:221 832 833 835 836 837 838
Symbol 840 FontUsed by:842
Symbol 841 GraphicUsed by:848
Symbol 842 EditableTextUses:840Used by:848
Symbol 843 FontUsed by:845
Symbol 844 GraphicUsed by:848
Symbol 845 EditableTextUses:843Used by:848
Symbol 846 TextUses:256 231 275 246Used by:848
Symbol 847 TextUses:246Used by:848
Symbol 848 MovieClip {Page71}Uses:221 841 842 844 845 846 847
Symbol 849 FontUsed by:851
Symbol 850 GraphicUsed by:857
Symbol 851 EditableTextUses:849Used by:857
Symbol 852 FontUsed by:854
Symbol 853 GraphicUsed by:857
Symbol 854 EditableTextUses:852Used by:857
Symbol 855 TextUses:246 231 257 275Used by:857
Symbol 856 TextUses:275Used by:857
Symbol 857 MovieClip {Page72}Uses:221 850 851 853 854 855 856
Symbol 858 FontUsed by:860
Symbol 859 GraphicUsed by:866
Symbol 860 EditableTextUses:858Used by:866
Symbol 861 FontUsed by:863
Symbol 862 GraphicUsed by:866
Symbol 863 EditableTextUses:861Used by:866
Symbol 864 TextUses:246 231 257 256Used by:866
Symbol 865 TextUses:246 231 275Used by:866
Symbol 866 MovieClip {Page73}Uses:221 859 860 862 863 864 865
Symbol 867 FontUsed by:869
Symbol 868 GraphicUsed by:874
Symbol 869 EditableTextUses:867Used by:874
Symbol 870 FontUsed by:872
Symbol 871 GraphicUsed by:874
Symbol 872 EditableTextUses:870Used by:874
Symbol 873 TextUses:246 231 256Used by:874
Symbol 874 MovieClip {Page74}Uses:221 868 869 871 872 873
Symbol 875 FontUsed by:877
Symbol 876 GraphicUsed by:883
Symbol 877 EditableTextUses:875Used by:883
Symbol 878 FontUsed by:880
Symbol 879 GraphicUsed by:883
Symbol 880 EditableTextUses:878Used by:883
Symbol 881 TextUses:231 245 255 257 275 246 256Used by:883
Symbol 882 TextUses:257Used by:883
Symbol 883 MovieClip {Page75}Uses:221 876 877 879 880 881 882
Symbol 884 FontUsed by:886
Symbol 885 GraphicUsed by:892
Symbol 886 EditableTextUses:884Used by:892
Symbol 887 FontUsed by:889
Symbol 888 GraphicUsed by:892
Symbol 889 EditableTextUses:887Used by:892
Symbol 890 TextUses:246 231 275 256 257Used by:892
Symbol 891 TextUses:275Used by:892
Symbol 892 MovieClip {Page76}Uses:221 885 886 888 889 890 891
Symbol 893 FontUsed by:895
Symbol 894 GraphicUsed by:900
Symbol 895 EditableTextUses:893Used by:900
Symbol 896 FontUsed by:898
Symbol 897 GraphicUsed by:900
Symbol 898 EditableTextUses:896Used by:900
Symbol 899 TextUses:246 231 275Used by:900
Symbol 900 MovieClip {Page77}Uses:221 894 895 897 898 899
Symbol 901 FontUsed by:903
Symbol 902 GraphicUsed by:909
Symbol 903 EditableTextUses:901Used by:909
Symbol 904 FontUsed by:906
Symbol 905 GraphicUsed by:909
Symbol 906 EditableTextUses:904Used by:909
Symbol 907 TextUses:231 245 255 246 256 275 257Used by:909
Symbol 908 TextUses:257Used by:909
Symbol 909 MovieClip {Page78}Uses:221 902 903 905 906 907 908
Symbol 910 FontUsed by:912
Symbol 911 GraphicUsed by:918
Symbol 912 EditableTextUses:910Used by:918
Symbol 913 FontUsed by:915
Symbol 914 GraphicUsed by:918
Symbol 915 EditableTextUses:913Used by:918
Symbol 916 TextUses:246 231 257 256 275Used by:918
Symbol 917 TextUses:275Used by:918
Symbol 918 MovieClip {Page79}Uses:221 911 912 914 915 916 917
Symbol 919 FontUsed by:921
Symbol 920 GraphicUsed by:927
Symbol 921 EditableTextUses:919Used by:927
Symbol 922 FontUsed by:924
Symbol 923 GraphicUsed by:927
Symbol 924 EditableTextUses:922Used by:927
Symbol 925 TextUses:246 231 275 257Used by:927
Symbol 926 TextUses:257Used by:927
Symbol 927 MovieClip {Page80}Uses:221 920 921 923 924 925 926
Symbol 928 FontUsed by:930
Symbol 929 GraphicUsed by:935
Symbol 930 EditableTextUses:928Used by:935
Symbol 931 FontUsed by:933
Symbol 932 GraphicUsed by:935
Symbol 933 EditableTextUses:931Used by:935
Symbol 934 TextUses:256 231 275 246Used by:935
Symbol 935 MovieClip {Page81}Uses:221 929 930 932 933 934
Symbol 936 FontUsed by:938
Symbol 937 GraphicUsed by:944
Symbol 938 EditableTextUses:936Used by:944
Symbol 939 FontUsed by:941
Symbol 940 GraphicUsed by:944
Symbol 941 EditableTextUses:939Used by:944
Symbol 942 TextUses:231 245 255 246 257 256 275Used by:944
Symbol 943 TextUses:275Used by:944
Symbol 944 MovieClip {Page82}Uses:221 937 938 940 941 942 943
Symbol 945 FontUsed by:947
Symbol 946 GraphicUsed by:953
Symbol 947 EditableTextUses:945Used by:953
Symbol 948 FontUsed by:950
Symbol 949 GraphicUsed by:953
Symbol 950 EditableTextUses:948Used by:953
Symbol 951 TextUses:246 231 275 256Used by:953
Symbol 952 TextUses:246Used by:953
Symbol 953 MovieClip {Page83}Uses:221 946 947 949 950 951 952
Symbol 954 FontUsed by:956
Symbol 955 GraphicUsed by:962
Symbol 956 EditableTextUses:954Used by:962
Symbol 957 FontUsed by:959
Symbol 958 GraphicUsed by:962
Symbol 959 EditableTextUses:957Used by:962
Symbol 960 TextUses:246 231 257 275Used by:962
Symbol 961 TextUses:275Used by:962
Symbol 962 MovieClip {Page84}Uses:221 955 956 958 959 960 961
Symbol 963 FontUsed by:965
Symbol 964 GraphicUsed by:971
Symbol 965 EditableTextUses:963Used by:971
Symbol 966 FontUsed by:968
Symbol 967 GraphicUsed by:971
Symbol 968 EditableTextUses:966Used by:971
Symbol 969 TextUses:246 231 256 257Used by:971
Symbol 970 TextUses:246 275Used by:971
Symbol 971 MovieClip {Page85}Uses:221 964 965 967 968 969 970
Symbol 972 FontUsed by:974
Symbol 973 GraphicUsed by:979
Symbol 974 EditableTextUses:972Used by:979
Symbol 975 FontUsed by:977
Symbol 976 GraphicUsed by:979
Symbol 977 EditableTextUses:975Used by:979
Symbol 978 TextUses:246 231 256 257Used by:979
Symbol 979 MovieClip {Page86}Uses:221 973 974 976 977 978
Symbol 980 FontUsed by:982
Symbol 981 GraphicUsed by:988
Symbol 982 EditableTextUses:980Used by:988
Symbol 983 FontUsed by:985
Symbol 984 GraphicUsed by:988
Symbol 985 EditableTextUses:983Used by:988
Symbol 986 TextUses:231 245 255 246 257 256Used by:988
Symbol 987 TextUses:256Used by:988
Symbol 988 MovieClip {Page87}Uses:221 981 982 984 985 986 987
Symbol 989 FontUsed by:991
Symbol 990 GraphicUsed by:997
Symbol 991 EditableTextUses:989Used by:997
Symbol 992 FontUsed by:994
Symbol 993 GraphicUsed by:997
Symbol 994 EditableTextUses:992Used by:997
Symbol 995 TextUses:246 231 256 257Used by:997
Symbol 996 TextUses:246 275Used by:997
Symbol 997 MovieClip {Page88}Uses:221 990 991 993 994 995 996
Symbol 998 FontUsed by:1000
Symbol 999 GraphicUsed by:1005
Symbol 1000 EditableTextUses:998Used by:1005
Symbol 1001 FontUsed by:1003
Symbol 1002 GraphicUsed by:1005
Symbol 1003 EditableTextUses:1001Used by:1005
Symbol 1004 TextUses:246 231 257 275Used by:1005
Symbol 1005 MovieClip {Page89}Uses:221 999 1000 1002 1003 1004
Symbol 1006 FontUsed by:1008
Symbol 1007 GraphicUsed by:1014
Symbol 1008 EditableTextUses:1006Used by:1014
Symbol 1009 FontUsed by:1011
Symbol 1010 GraphicUsed by:1014
Symbol 1011 EditableTextUses:1009Used by:1014
Symbol 1012 TextUses:231 245 255 246 257 275Used by:1014
Symbol 1013 TextUses:246Used by:1014
Symbol 1014 MovieClip {Page90}Uses:221 1007 1008 1010 1011 1012 1013
Symbol 1015 FontUsed by:1017
Symbol 1016 GraphicUsed by:1023
Symbol 1017 EditableTextUses:1015Used by:1023
Symbol 1018 FontUsed by:1020
Symbol 1019 GraphicUsed by:1023
Symbol 1020 EditableTextUses:1018Used by:1023
Symbol 1021 TextUses:246 231 256 275 257Used by:1023
Symbol 1022 TextUses:275Used by:1023
Symbol 1023 MovieClip {Page91}Uses:221 1016 1017 1019 1020 1021 1022
Symbol 1024 FontUsed by:1026
Symbol 1025 GraphicUsed by:1032
Symbol 1026 EditableTextUses:1024Used by:1032
Symbol 1027 FontUsed by:1029
Symbol 1028 GraphicUsed by:1032
Symbol 1029 EditableTextUses:1027Used by:1032
Symbol 1030 TextUses:246 231 256 257Used by:1032
Symbol 1031 TextUses:246Used by:1032
Symbol 1032 MovieClip {Page92}Uses:221 1025 1026 1028 1029 1030 1031
Symbol 1033 FontUsed by:1035
Symbol 1034 GraphicUsed by:1040
Symbol 1035 EditableTextUses:1033Used by:1040
Symbol 1036 FontUsed by:1038
Symbol 1037 GraphicUsed by:1040
Symbol 1038 EditableTextUses:1036Used by:1040
Symbol 1039 TextUses:246Used by:1040
Symbol 1040 MovieClip {Page93}Uses:221 1034 1035 1037 1038 1039
Symbol 1041 FontUsed by:1043
Symbol 1042 GraphicUsed by:1048
Symbol 1043 EditableTextUses:1041Used by:1048
Symbol 1044 FontUsed by:1046
Symbol 1045 GraphicUsed by:1048
Symbol 1046 EditableTextUses:1044Used by:1048
Symbol 1047 TextUses:231 245 255 246 275 256Used by:1048
Symbol 1048 MovieClip {Page94}Uses:221 1042 1043 1045 1046 1047
Symbol 1049 FontUsed by:1051
Symbol 1050 GraphicUsed by:1057
Symbol 1051 EditableTextUses:1049Used by:1057
Symbol 1052 FontUsed by:1054
Symbol 1053 GraphicUsed by:1057
Symbol 1054 EditableTextUses:1052Used by:1057
Symbol 1055 TextUses:231 245 255 246 257 275Used by:1057
Symbol 1056 TextUses:275Used by:1057
Symbol 1057 MovieClip {Page95}Uses:221 1050 1051 1053 1054 1055 1056
Symbol 1058 FontUsed by:1060
Symbol 1059 GraphicUsed by:1066
Symbol 1060 EditableTextUses:1058Used by:1066
Symbol 1061 FontUsed by:1063
Symbol 1062 GraphicUsed by:1066
Symbol 1063 EditableTextUses:1061Used by:1066
Symbol 1064 TextUses:246 1065 231 256Used by:1066
Symbol 1065 FontUsed by:1064
Symbol 1066 MovieClip {Page96}Uses:221 1059 1060 1062 1063 1064
Symbol 1067 FontUsed by:1069
Symbol 1068 GraphicUsed by:1075
Symbol 1069 EditableTextUses:1067Used by:1075
Symbol 1070 FontUsed by:1072
Symbol 1071 GraphicUsed by:1075
Symbol 1072 EditableTextUses:1070Used by:1075
Symbol 1073 TextUses:231 245 255 246 256Used by:1075
Symbol 1074 TextUses:246Used by:1075
Symbol 1075 MovieClip {Page97}Uses:221 1068 1069 1071 1072 1073 1074
Symbol 1076 FontUsed by:1078
Symbol 1077 GraphicUsed by:1084
Symbol 1078 EditableTextUses:1076Used by:1084
Symbol 1079 FontUsed by:1081
Symbol 1080 GraphicUsed by:1084
Symbol 1081 EditableTextUses:1079Used by:1084
Symbol 1082 TextUses:246 231 275Used by:1084
Symbol 1083 TextUses:246 231 256Used by:1084
Symbol 1084 MovieClip {Page98}Uses:221 1077 1078 1080 1081 1082 1083
Symbol 1085 FontUsed by:1087
Symbol 1086 GraphicUsed by:1092
Symbol 1087 EditableTextUses:1085Used by:1092
Symbol 1088 FontUsed by:1090
Symbol 1089 GraphicUsed by:1092
Symbol 1090 EditableTextUses:1088Used by:1092
Symbol 1091 TextUses:246 231 256Used by:1092
Symbol 1092 MovieClip {Page99}Uses:221 1086 1087 1089 1090 1091
Symbol 1093 FontUsed by:1095
Symbol 1094 GraphicUsed by:1101
Symbol 1095 EditableTextUses:1093Used by:1101
Symbol 1096 FontUsed by:1098
Symbol 1097 GraphicUsed by:1101
Symbol 1098 EditableTextUses:1096Used by:1101
Symbol 1099 TextUses:231 245 255 275 398 256 246Used by:1101
Symbol 1100 TextUses:398Used by:1101
Symbol 1101 MovieClip {Page100}Uses:221 1094 1095 1097 1098 1099 1100
Symbol 1102 FontUsed by:1104
Symbol 1103 GraphicUsed by:1110
Symbol 1104 EditableTextUses:1102Used by:1110
Symbol 1105 FontUsed by:1107
Symbol 1106 GraphicUsed by:1110
Symbol 1107 EditableTextUses:1105Used by:1110
Symbol 1108 TextUses:257 231 246 275Used by:1110
Symbol 1109 TextUses:275Used by:1110
Symbol 1110 MovieClip {Page101}Uses:221 1103 1104 1106 1107 1108 1109
Symbol 1111 FontUsed by:1113
Symbol 1112 GraphicUsed by:1118
Symbol 1113 EditableTextUses:1111Used by:1118
Symbol 1114 FontUsed by:1116
Symbol 1115 GraphicUsed by:1118
Symbol 1116 EditableTextUses:1114Used by:1118
Symbol 1117 TextUses:246 231 275 398Used by:1118
Symbol 1118 MovieClip {Page102}Uses:221 1112 1113 1115 1116 1117
Symbol 1119 FontUsed by:1121
Symbol 1120 GraphicUsed by:1127
Symbol 1121 EditableTextUses:1119Used by:1127
Symbol 1122 FontUsed by:1124
Symbol 1123 GraphicUsed by:1127
Symbol 1124 EditableTextUses:1122Used by:1127
Symbol 1125 TextUses:231 245 255 246 257Used by:1127
Symbol 1126 TextUses:257Used by:1127
Symbol 1127 MovieClip {Page103}Uses:221 1120 1121 1123 1124 1125 1126
Symbol 1128 FontUsed by:1130
Symbol 1129 GraphicUsed by:1136
Symbol 1130 EditableTextUses:1128Used by:1136
Symbol 1131 FontUsed by:1133
Symbol 1132 GraphicUsed by:1136
Symbol 1133 EditableTextUses:1131Used by:1136
Symbol 1134 TextUses:275 231 257 246 256Used by:1136
Symbol 1135 TextUses:275Used by:1136
Symbol 1136 MovieClip {Page104}Uses:221 1129 1130 1132 1133 1134 1135
Symbol 1137 FontUsed by:1139
Symbol 1138 GraphicUsed by:1145
Symbol 1139 EditableTextUses:1137Used by:1145
Symbol 1140 FontUsed by:1142
Symbol 1141 GraphicUsed by:1145
Symbol 1142 EditableTextUses:1140Used by:1145
Symbol 1143 TextUses:246 231 275 256Used by:1145
Symbol 1144 TextUses:275Used by:1145
Symbol 1145 MovieClip {Page105}Uses:221 1138 1139 1141 1142 1143 1144
Symbol 1146 FontUsed by:1148
Symbol 1147 GraphicUsed by:1153
Symbol 1148 EditableTextUses:1146Used by:1153
Symbol 1149 FontUsed by:1151
Symbol 1150 GraphicUsed by:1153
Symbol 1151 EditableTextUses:1149Used by:1153
Symbol 1152 TextUses:246 231Used by:1153
Symbol 1153 MovieClip {Page106}Uses:221 1147 1148 1150 1151 1152
Symbol 1154 FontUsed by:1156
Symbol 1155 GraphicUsed by:1162
Symbol 1156 EditableTextUses:1154Used by:1162
Symbol 1157 FontUsed by:1159
Symbol 1158 GraphicUsed by:1162
Symbol 1159 EditableTextUses:1157Used by:1162
Symbol 1160 TextUses:231 245 255 275 246 257 256Used by:1162
Symbol 1161 TextUses:275Used by:1162
Symbol 1162 MovieClip {Page107}Uses:221 1155 1156 1158 1159 1160 1161
Symbol 1163 FontUsed by:1165
Symbol 1164 GraphicUsed by:1171
Symbol 1165 EditableTextUses:1163Used by:1171
Symbol 1166 FontUsed by:1168
Symbol 1167 GraphicUsed by:1171
Symbol 1168 EditableTextUses:1166Used by:1171
Symbol 1169 TextUses:246 231 257Used by:1171
Symbol 1170 TextUses:246 231 257Used by:1171
Symbol 1171 MovieClip {Page108}Uses:221 1164 1165 1167 1168 1169 1170
Symbol 1172 FontUsed by:1174
Symbol 1173 GraphicUsed by:1180
Symbol 1174 EditableTextUses:1172Used by:1180
Symbol 1175 FontUsed by:1177
Symbol 1176 GraphicUsed by:1180
Symbol 1177 EditableTextUses:1175Used by:1180
Symbol 1178 TextUses:256 231 246 257 398Used by:1180
Symbol 1179 TextUses:398Used by:1180
Symbol 1180 MovieClip {Page109}Uses:221 1173 1174 1176 1177 1178 1179
Symbol 1181 FontUsed by:1183
Symbol 1182 GraphicUsed by:1188
Symbol 1183 EditableTextUses:1181Used by:1188
Symbol 1184 FontUsed by:1186
Symbol 1185 GraphicUsed by:1188
Symbol 1186 EditableTextUses:1184Used by:1188
Symbol 1187 TextUses:246 231Used by:1188
Symbol 1188 MovieClip {Page110}Uses:221 1182 1183 1185 1186 1187
Symbol 1189 FontUsed by:1191
Symbol 1190 GraphicUsed by:1197
Symbol 1191 EditableTextUses:1189Used by:1197
Symbol 1192 FontUsed by:1194
Symbol 1193 GraphicUsed by:1197
Symbol 1194 EditableTextUses:1192Used by:1197
Symbol 1195 TextUses:231 245 255 246 275 256Used by:1197
Symbol 1196 TextUses:257Used by:1197
Symbol 1197 MovieClip {Page111}Uses:221 1190 1191 1193 1194 1195 1196
Symbol 1198 FontUsed by:1200
Symbol 1199 GraphicUsed by:1205
Symbol 1200 EditableTextUses:1198Used by:1205
Symbol 1201 FontUsed by:1203
Symbol 1202 GraphicUsed by:1205
Symbol 1203 EditableTextUses:1201Used by:1205
Symbol 1204 TextUses:246 231 275 256Used by:1205
Symbol 1205 MovieClip {Page112}Uses:221 1199 1200 1202 1203 1204
Symbol 1206 FontUsed by:1208
Symbol 1207 GraphicUsed by:1214
Symbol 1208 EditableTextUses:1206Used by:1214
Symbol 1209 FontUsed by:1211
Symbol 1210 GraphicUsed by:1214
Symbol 1211 EditableTextUses:1209Used by:1214
Symbol 1212 TextUses:231 245 255 246 256 257Used by:1214
Symbol 1213 TextUses:257Used by:1214
Symbol 1214 MovieClip {Page113}Uses:221 1207 1208 1210 1211 1212 1213
Symbol 1215 FontUsed by:1217
Symbol 1216 GraphicUsed by:1223
Symbol 1217 EditableTextUses:1215Used by:1223
Symbol 1218 FontUsed by:1220
Symbol 1219 GraphicUsed by:1223
Symbol 1220 EditableTextUses:1218Used by:1223
Symbol 1221 TextUses:257 231 246 256Used by:1223
Symbol 1222 TextUses:246Used by:1223
Symbol 1223 MovieClip {Page114}Uses:221 1216 1217 1219 1220 1221 1222
Symbol 1224 FontUsed by:1226
Symbol 1225 GraphicUsed by:1231
Symbol 1226 EditableTextUses:1224Used by:1231
Symbol 1227 FontUsed by:1229
Symbol 1228 GraphicUsed by:1231
Symbol 1229 EditableTextUses:1227Used by:1231
Symbol 1230 TextUses:275 231 256 246Used by:1231
Symbol 1231 MovieClip {Page115}Uses:221 1225 1226 1228 1229 1230
Symbol 1232 FontUsed by:1234
Symbol 1233 GraphicUsed by:1240
Symbol 1234 EditableTextUses:1232Used by:1240
Symbol 1235 FontUsed by:1237
Symbol 1236 GraphicUsed by:1240
Symbol 1237 EditableTextUses:1235Used by:1240
Symbol 1238 TextUses:231 245 255 246 257 275Used by:1240
Symbol 1239 TextUses:275Used by:1240
Symbol 1240 MovieClip {Page116}Uses:221 1233 1234 1236 1237 1238 1239
Symbol 1241 FontUsed by:1243
Symbol 1242 GraphicUsed by:1248
Symbol 1243 EditableTextUses:1241Used by:1248
Symbol 1244 FontUsed by:1246
Symbol 1245 GraphicUsed by:1248
Symbol 1246 EditableTextUses:1244Used by:1248
Symbol 1247 TextUses:246 231 257 275 256Used by:1248
Symbol 1248 MovieClip {Page117}Uses:221 1242 1243 1245 1246 1247
Symbol 1249 FontUsed by:1251
Symbol 1250 GraphicUsed by:1257
Symbol 1251 EditableTextUses:1249Used by:1257
Symbol 1252 FontUsed by:1254
Symbol 1253 GraphicUsed by:1257
Symbol 1254 EditableTextUses:1252Used by:1257
Symbol 1255 TextUses:231 245 255 246 256 275Used by:1257
Symbol 1256 TextUses:275Used by:1257
Symbol 1257 MovieClip {Page118}Uses:221 1250 1251 1253 1254 1255 1256
Symbol 1258 FontUsed by:1260
Symbol 1259 GraphicUsed by:1266
Symbol 1260 EditableTextUses:1258Used by:1266
Symbol 1261 FontUsed by:1263
Symbol 1262 GraphicUsed by:1266
Symbol 1263 EditableTextUses:1261Used by:1266
Symbol 1264 TextUses:246 231 257 256 275Used by:1266
Symbol 1265 TextUses:246Used by:1266
Symbol 1266 MovieClip {Page119}Uses:221 1259 1260 1262 1263 1264 1265
Symbol 1267 FontUsed by:1269
Symbol 1268 GraphicUsed by:1274
Symbol 1269 EditableTextUses:1267Used by:1274
Symbol 1270 FontUsed by:1272
Symbol 1271 GraphicUsed by:1274
Symbol 1272 EditableTextUses:1270Used by:1274
Symbol 1273 TextUses:246 231 275Used by:1274
Symbol 1274 MovieClip {Page120}Uses:221 1268 1269 1271 1272 1273
Symbol 1275 FontUsed by:1277
Symbol 1276 GraphicUsed by:1283
Symbol 1277 EditableTextUses:1275Used by:1283
Symbol 1278 FontUsed by:1280
Symbol 1279 GraphicUsed by:1283
Symbol 1280 EditableTextUses:1278Used by:1283
Symbol 1281 TextUses:231 245 255 257 246 275Used by:1283
Symbol 1282 TextUses:275Used by:1283
Symbol 1283 MovieClip {Page121}Uses:221 1276 1277 1279 1280 1281 1282
Symbol 1284 FontUsed by:1286
Symbol 1285 GraphicUsed by:1292
Symbol 1286 EditableTextUses:1284Used by:1292
Symbol 1287 FontUsed by:1289
Symbol 1288 GraphicUsed by:1292
Symbol 1289 EditableTextUses:1287Used by:1292
Symbol 1290 TextUses:246 231 256 275Used by:1292
Symbol 1291 TextUses:246Used by:1292
Symbol 1292 MovieClip {Page122}Uses:221 1285 1286 1288 1289 1290 1291
Symbol 1293 FontUsed by:1295
Symbol 1294 GraphicUsed by:1301
Symbol 1295 EditableTextUses:1293Used by:1301
Symbol 1296 FontUsed by:1298
Symbol 1297 GraphicUsed by:1301
Symbol 1298 EditableTextUses:1296Used by:1301
Symbol 1299 TextUses:275 231 256 246 257Used by:1301
Symbol 1300 TextUses:275Used by:1301
Symbol 1301 MovieClip {Page123}Uses:221 1294 1295 1297 1298 1299 1300
Symbol 1302 FontUsed by:1304
Symbol 1303 GraphicUsed by:1310
Symbol 1304 EditableTextUses:1302Used by:1310
Symbol 1305 FontUsed by:1307
Symbol 1306 GraphicUsed by:1310
Symbol 1307 EditableTextUses:1305Used by:1310
Symbol 1308 TextUses:246 231 257Used by:1310
Symbol 1309 TextUses:256Used by:1310
Symbol 1310 MovieClip {Page124}Uses:221 1303 1304 1306 1307 1308 1309
Symbol 1311 FontUsed by:1313
Symbol 1312 GraphicUsed by:1318
Symbol 1313 EditableTextUses:1311Used by:1318
Symbol 1314 FontUsed by:1316
Symbol 1315 GraphicUsed by:1318
Symbol 1316 EditableTextUses:1314Used by:1318
Symbol 1317 TextUses:246 257 231 256Used by:1318
Symbol 1318 MovieClip {Page125}Uses:221 1312 1313 1315 1316 1317
Symbol 1319 FontUsed by:1321
Symbol 1320 GraphicUsed by:1326
Symbol 1321 EditableTextUses:1319Used by:1326
Symbol 1322 FontUsed by:1324
Symbol 1323 GraphicUsed by:1326
Symbol 1324 EditableTextUses:1322Used by:1326
Symbol 1325 TextUses:231 245 255 275 246Used by:1326
Symbol 1326 MovieClip {Page126}Uses:221 1320 1321 1323 1324 1325
Symbol 1327 FontUsed by:1329
Symbol 1328 GraphicUsed by:1335
Symbol 1329 EditableTextUses:1327Used by:1335
Symbol 1330 FontUsed by:1332
Symbol 1331 GraphicUsed by:1335
Symbol 1332 EditableTextUses:1330Used by:1335
Symbol 1333 TextUses:231 245 255 246 256 275 257Used by:1335
Symbol 1334 TextUses:275Used by:1335
Symbol 1335 MovieClip {Page127}Uses:221 1328 1329 1331 1332 1333 1334
Symbol 1336 FontUsed by:1338
Symbol 1337 GraphicUsed by:1344
Symbol 1338 EditableTextUses:1336Used by:1344
Symbol 1339 FontUsed by:1341
Symbol 1340 GraphicUsed by:1344
Symbol 1341 EditableTextUses:1339Used by:1344
Symbol 1342 TextUses:246 231 257 275 256Used by:1344
Symbol 1343 TextUses:275Used by:1344
Symbol 1344 MovieClip {Page128}Uses:221 1337 1338 1340 1341 1342 1343
Symbol 1345 FontUsed by:1347
Symbol 1346 GraphicUsed by:1352
Symbol 1347 EditableTextUses:1345Used by:1352
Symbol 1348 FontUsed by:1350
Symbol 1349 GraphicUsed by:1352
Symbol 1350 EditableTextUses:1348Used by:1352
Symbol 1351 TextUses:275Used by:1352
Symbol 1352 MovieClip {Page129}Uses:221 1346 1347 1349 1350 1351
Symbol 1353 FontUsed by:1355
Symbol 1354 GraphicUsed by:1361
Symbol 1355 EditableTextUses:1353Used by:1361
Symbol 1356 FontUsed by:1358
Symbol 1357 GraphicUsed by:1361
Symbol 1358 EditableTextUses:1356Used by:1361
Symbol 1359 TextUses:231 245 255 246 257 275 256Used by:1361
Symbol 1360 TextUses:246Used by:1361
Symbol 1361 MovieClip {Page130}Uses:221 1354 1355 1357 1358 1359 1360
Symbol 1362 FontUsed by:1364
Symbol 1363 GraphicUsed by:1370
Symbol 1364 EditableTextUses:1362Used by:1370
Symbol 1365 FontUsed by:1367
Symbol 1366 GraphicUsed by:1370
Symbol 1367 EditableTextUses:1365Used by:1370
Symbol 1368 TextUses:246 231 256 257Used by:1370
Symbol 1369 TextUses:246Used by:1370
Symbol 1370 MovieClip {Page131}Uses:221 1363 1364 1366 1367 1368 1369
Symbol 1371 FontUsed by:1373
Symbol 1372 GraphicUsed by:1378
Symbol 1373 EditableTextUses:1371Used by:1378
Symbol 1374 FontUsed by:1376
Symbol 1375 GraphicUsed by:1378
Symbol 1376 EditableTextUses:1374Used by:1378
Symbol 1377 TextUses:246 231 256Used by:1378
Symbol 1378 MovieClip {Page132}Uses:221 1372 1373 1375 1376 1377
Symbol 1379 FontUsed by:1381
Symbol 1380 GraphicUsed by:1387
Symbol 1381 EditableTextUses:1379Used by:1387
Symbol 1382 FontUsed by:1384
Symbol 1383 GraphicUsed by:1387
Symbol 1384 EditableTextUses:1382Used by:1387
Symbol 1385 TextUses:231 245 255 246 256Used by:1387
Symbol 1386 TextUses:256Used by:1387
Symbol 1387 MovieClip {Page133}Uses:221 1380 1381 1383 1384 1385 1386
Symbol 1388 FontUsed by:1390
Symbol 1389 GraphicUsed by:1396
Symbol 1390 EditableTextUses:1388Used by:1396
Symbol 1391 FontUsed by:1393
Symbol 1392 GraphicUsed by:1396
Symbol 1393 EditableTextUses:1391Used by:1396
Symbol 1394 TextUses:275 231 257 246Used by:1396
Symbol 1395 TextUses:246 231 275Used by:1396
Symbol 1396 MovieClip {Page134}Uses:221 1389 1390 1392 1393 1394 1395
Symbol 1397 FontUsed by:1399
Symbol 1398 GraphicUsed by:1405
Symbol 1399 EditableTextUses:1397Used by:1405
Symbol 1400 FontUsed by:1402
Symbol 1401 GraphicUsed by:1405
Symbol 1402 EditableTextUses:1400Used by:1405
Symbol 1403 TextUses:246 275 231 256Used by:1405
Symbol 1404 TextUses:231 275Used by:1405
Symbol 1405 MovieClip {Page135}Uses:221 1398 1399 1401 1402 1403 1404
Symbol 1406 FontUsed by:1408
Symbol 1407 GraphicUsed by:1414
Symbol 1408 EditableTextUses:1406Used by:1414
Symbol 1409 FontUsed by:1411
Symbol 1410 GraphicUsed by:1414
Symbol 1411 EditableTextUses:1409Used by:1414
Symbol 1412 TextUses:275 231 246 256Used by:1414
Symbol 1413 TextUses:256 231 246Used by:1414
Symbol 1414 MovieClip {Page136}Uses:221 1407 1408 1410 1411 1412 1413
Symbol 1415 FontUsed by:1417
Symbol 1416 GraphicUsed by:1422
Symbol 1417 EditableTextUses:1415Used by:1422
Symbol 1418 FontUsed by:1420
Symbol 1419 GraphicUsed by:1422
Symbol 1420 EditableTextUses:1418Used by:1422
Symbol 1421 TextUses:246 231 256 275 257Used by:1422
Symbol 1422 MovieClip {Page137}Uses:221 1416 1417 1419 1420 1421
Symbol 1423 FontUsed by:1425
Symbol 1424 GraphicUsed by:1431
Symbol 1425 EditableTextUses:1423Used by:1431
Symbol 1426 FontUsed by:1428
Symbol 1427 GraphicUsed by:1431
Symbol 1428 EditableTextUses:1426Used by:1431
Symbol 1429 TextUses:231 245 255 246 257 275Used by:1431
Symbol 1430 TextUses:275Used by:1431
Symbol 1431 MovieClip {Page138}Uses:221 1424 1425 1427 1428 1429 1430
Symbol 1432 FontUsed by:1434
Symbol 1433 GraphicUsed by:1439
Symbol 1434 EditableTextUses:1432Used by:1439
Symbol 1435 FontUsed by:1437
Symbol 1436 GraphicUsed by:1439
Symbol 1437 EditableTextUses:1435Used by:1439
Symbol 1438 TextUses:257 231 275 246Used by:1439
Symbol 1439 MovieClip {Page139}Uses:221 1433 1434 1436 1437 1438
Symbol 1440 FontUsed by:1442
Symbol 1441 GraphicUsed by:1448
Symbol 1442 EditableTextUses:1440Used by:1448
Symbol 1443 FontUsed by:1445
Symbol 1444 GraphicUsed by:1448
Symbol 1445 EditableTextUses:1443Used by:1448
Symbol 1446 TextUses:231 245 255 275 246 257Used by:1448
Symbol 1447 TextUses:246Used by:1448
Symbol 1448 MovieClip {Page140}Uses:221 1441 1442 1444 1445 1446 1447
Symbol 1449 FontUsed by:1451
Symbol 1450 GraphicUsed by:1457
Symbol 1451 EditableTextUses:1449Used by:1457
Symbol 1452 FontUsed by:1454
Symbol 1453 GraphicUsed by:1457
Symbol 1454 EditableTextUses:1452Used by:1457
Symbol 1455 TextUses:246 231 257 275Used by:1457
Symbol 1456 TextUses:256Used by:1457
Symbol 1457 MovieClip {Page141}Uses:221 1450 1451 1453 1454 1455 1456
Symbol 1458 FontUsed by:1460
Symbol 1459 GraphicUsed by:1465
Symbol 1460 EditableTextUses:1458Used by:1465
Symbol 1461 FontUsed by:1463
Symbol 1462 GraphicUsed by:1465
Symbol 1463 EditableTextUses:1461Used by:1465
Symbol 1464 TextUses:246 231 256Used by:1465
Symbol 1465 MovieClip {Page142}Uses:221 1459 1460 1462 1463 1464
Symbol 1466 FontUsed by:1468
Symbol 1467 GraphicUsed by:1474
Symbol 1468 EditableTextUses:1466Used by:1474
Symbol 1469 FontUsed by:1471
Symbol 1470 GraphicUsed by:1474
Symbol 1471 EditableTextUses:1469Used by:1474
Symbol 1472 TextUses:231 245 255 256 246 275Used by:1474
Symbol 1473 TextUses:256Used by:1474
Symbol 1474 MovieClip {Page143}Uses:221 1467 1468 1470 1471 1472 1473
Symbol 1475 FontUsed by:1477
Symbol 1476 GraphicUsed by:1483
Symbol 1477 EditableTextUses:1475Used by:1483
Symbol 1478 FontUsed by:1480
Symbol 1479 GraphicUsed by:1483
Symbol 1480 EditableTextUses:1478Used by:1483
Symbol 1481 TextUses:246 231 257 275 256Used by:1483
Symbol 1482 TextUses:256Used by:1483
Symbol 1483 MovieClip {Page144}Uses:221 1476 1477 1479 1480 1481 1482
Symbol 1484 FontUsed by:1486
Symbol 1485 GraphicUsed by:1492
Symbol 1486 EditableTextUses:1484Used by:1492
Symbol 1487 FontUsed by:1489
Symbol 1488 GraphicUsed by:1492
Symbol 1489 EditableTextUses:1487Used by:1492
Symbol 1490 TextUses:246 231 256 257Used by:1492
Symbol 1491 TextUses:257Used by:1492
Symbol 1492 MovieClip {Page145}Uses:221 1485 1486 1488 1489 1490 1491
Symbol 1493 FontUsed by:1495
Symbol 1494 GraphicUsed by:1500
Symbol 1495 EditableTextUses:1493Used by:1500
Symbol 1496 FontUsed by:1498
Symbol 1497 GraphicUsed by:1500
Symbol 1498 EditableTextUses:1496Used by:1500
Symbol 1499 TextUses:246 231Used by:1500
Symbol 1500 MovieClip {Page146}Uses:221 1494 1495 1497 1498 1499
Symbol 1501 FontUsed by:1503
Symbol 1502 GraphicUsed by:1509
Symbol 1503 EditableTextUses:1501Used by:1509
Symbol 1504 FontUsed by:1506
Symbol 1505 GraphicUsed by:1509
Symbol 1506 EditableTextUses:1504Used by:1509
Symbol 1507 TextUses:231 245 255 256 257 246 275Used by:1509
Symbol 1508 TextUses:275Used by:1509
Symbol 1509 MovieClip {Page147}Uses:221 1502 1503 1505 1506 1507 1508
Symbol 1510 FontUsed by:1512
Symbol 1511 GraphicUsed by:1518
Symbol 1512 EditableTextUses:1510Used by:1518
Symbol 1513 FontUsed by:1515
Symbol 1514 GraphicUsed by:1518
Symbol 1515 EditableTextUses:1513Used by:1518
Symbol 1516 TextUses:246 231 256Used by:1518
Symbol 1517 TextUses:246Used by:1518
Symbol 1518 MovieClip {Page148}Uses:221 1511 1512 1514 1515 1516 1517
Symbol 1519 FontUsed by:1521
Symbol 1520 GraphicUsed by:1528
Symbol 1521 EditableTextUses:1519Used by:1528
Symbol 1522 BitmapUsed by:1523
Symbol 1523 GraphicUses:1522Used by:1528
Symbol 1524 FontUsed by:1526
Symbol 1525 GraphicUsed by:1528
Symbol 1526 EditableTextUses:1524Used by:1528
Symbol 1527 TextUses:246Used by:1528
Symbol 1528 MovieClip {Page149}Uses:221 1520 1521 1523 1525 1526 1527

Instance Names

"DocArea"Frame 2Symbol 134 MovieClip {ScrollPain}
"HandCursor"Frame 2Symbol 137 MovieClip
"TextCursor"Frame 2Symbol 139 MovieClip
"toolbar"Frame 2Symbol 155 MovieClip {print2flash_fla._toolbar_25}
"msg"Symbol 6 MovieClip {waitmsg} Frame 1Symbol 2 EditableText
"text"Symbol 9 MovieClip {textmsg} Frame 1Symbol 8 EditableText
"BottomArea"Symbol 12 MovieClip {ScrollArea} Frame 1Symbol 11 MovieClip
"l_mc"Symbol 42 MovieClip Frame 1Symbol 37 MovieClip
"m_mc"Symbol 42 MovieClip Frame 1Symbol 39 MovieClip
"r_mc"Symbol 42 MovieClip Frame 1Symbol 41 MovieClip
"closeBtn"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 49 Button
"title"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 50 EditableText
"pagestxt"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 51 EditableText
"pagesFrom"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 52 EditableText
"totxt"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 53 EditableText
"pagesTo"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 54 EditableText
"OKBtn"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 73 MovieClip {fl.controls.Button}
"cancelBtn"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 73 MovieClip {fl.controls.Button}
"optNoScale"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 33 MovieClip {fl.controls.RadioButton}
"optFit"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 33 MovieClip {fl.controls.RadioButton}
"scalingtxt"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 74 EditableText
"fromtxt"Symbol 76 MovieClip {PrintRangeWnd} Frame 1Symbol 75 EditableText
"but"Symbol 84 MovieClip {def_fullscreen} Frame 1Symbol 83 MovieClip {manualbutton}
"SliderHandleBtn"Symbol 86 MovieClip {print2flash_fla.MCSlider_47} Frame 1Symbol 85 Button {ImgButton}
"SliderHandle"Symbol 87 MovieClip {Slider} Frame 1Symbol 86 MovieClip {print2flash_fla.MCSlider_47}
"but"Symbol 88 MovieClip {def_forward} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 89 MovieClip {def_back} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 90 MovieClip {def_nextpage} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 91 MovieClip {def_more} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 92 MovieClip {def_selMode} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 93 MovieClip {def_newwindow} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 94 MovieClip {def_help} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 95 MovieClip {def_rotate} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 96 MovieClip {def_prevpage} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 97 MovieClip {def_scalePage} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 98 MovieClip {def_scaleWidth} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 99 MovieClip {def_moveMode} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 100 MovieClip {def_print} Frame 1Symbol 83 MovieClip {manualbutton}
"but"Symbol 141 MovieClip {print2flash_fla.def_searchbut_27} Frame 1Symbol 83 MovieClip {manualbutton}
"ScaleTextField"Symbol 144 MovieClip {print2flash_fla.Timeline_30} Frame 1Symbol 143 EditableText
"TotalPages"Symbol 147 MovieClip {print2flash_fla.Timeline_32} Frame 1Symbol 146 EditableText
"PageNoField"Symbol 149 MovieClip {print2flash_fla.Timeline_33} Frame 1Symbol 148 EditableText
"TotalPagesMC"Symbol 150 MovieClip {print2flash_fla.Timeline_31} Frame 1Symbol 147 MovieClip {print2flash_fla.Timeline_32}
"PageNoFieldMC"Symbol 150 MovieClip {print2flash_fla.Timeline_31} Frame 1Symbol 149 MovieClip {print2flash_fla.Timeline_33}
"searchPattern"Symbol 153 MovieClip {print2flash_fla.Timeline_50} Frame 1Symbol 152 EditableText
"toolbarbgr"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 140 MovieClip
"searchbut"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 141 MovieClip {print2flash_fla.def_searchbut_27}
"print"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 100 MovieClip {def_print}
"ScaleTextMovie"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 144 MovieClip {print2flash_fla.Timeline_30}
"PageNoMovie"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 150 MovieClip {print2flash_fla.Timeline_31}
"moveMode"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 99 MovieClip {def_moveMode}
"scaleWidth"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 98 MovieClip {def_scaleWidth}
"scalePage"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 97 MovieClip {def_scalePage}
"prevpage"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 96 MovieClip {def_prevpage}
"rotate"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 95 MovieClip {def_rotate}
"help"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 94 MovieClip {def_help}
"newwindow"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 93 MovieClip {def_newwindow}
"selMode"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 92 MovieClip {def_selMode}
"more"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 91 MovieClip {def_more}
"nextpage"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 90 MovieClip {def_nextpage}
"back"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 89 MovieClip {def_back}
"forward"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 88 MovieClip {def_forward}
"ZoomSlider"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 87 MovieClip {Slider}
"fullscreen"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 84 MovieClip {def_fullscreen}
"searchPatternmc"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 153 MovieClip {print2flash_fla.Timeline_50}
"logo"Symbol 155 MovieClip {print2flash_fla._toolbar_25} Frame 1Symbol 154 MovieClip
"CR"Symbol 227 MovieClip {Page1} Frame 1Symbol 224 EditableText
"CR"Symbol 237 MovieClip {Page2} Frame 1Symbol 230 EditableText
"CR"Symbol 237 MovieClip {Page2} Frame 1Symbol 234 EditableText
"CR"Symbol 247 MovieClip {Page3} Frame 1Symbol 240 EditableText
"CR"Symbol 247 MovieClip {Page3} Frame 1Symbol 243 EditableText
"CR"Symbol 259 MovieClip {Page4} Frame 1Symbol 250 EditableText
"CR"Symbol 259 MovieClip {Page4} Frame 1Symbol 253 EditableText
"CR"Symbol 267 MovieClip {Page5} Frame 1Symbol 262 EditableText
"CR"Symbol 267 MovieClip {Page5} Frame 1Symbol 265 EditableText
"CR"Symbol 277 MovieClip {Page6} Frame 1Symbol 270 EditableText
"CR"Symbol 277 MovieClip {Page6} Frame 1Symbol 273 EditableText
"CR"Symbol 286 MovieClip {Page7} Frame 1Symbol 280 EditableText
"CR"Symbol 286 MovieClip {Page7} Frame 1Symbol 283 EditableText
"CR"Symbol 294 MovieClip {Page8} Frame 1Symbol 289 EditableText
"CR"Symbol 294 MovieClip {Page8} Frame 1Symbol 292 EditableText
"CR"Symbol 303 MovieClip {Page9} Frame 1Symbol 297 EditableText
"CR"Symbol 303 MovieClip {Page9} Frame 1Symbol 300 EditableText
"CR"Symbol 311 MovieClip {Page10} Frame 1Symbol 306 EditableText
"CR"Symbol 311 MovieClip {Page10} Frame 1Symbol 309 EditableText
"CR"Symbol 320 MovieClip {Page11} Frame 1Symbol 314 EditableText
"CR"Symbol 320 MovieClip {Page11} Frame 1Symbol 317 EditableText
"CR"Symbol 329 MovieClip {Page12} Frame 1Symbol 323 EditableText
"CR"Symbol 329 MovieClip {Page12} Frame 1Symbol 326 EditableText
"CR"Symbol 338 MovieClip {Page13} Frame 1Symbol 332 EditableText
"CR"Symbol 338 MovieClip {Page13} Frame 1Symbol 335 EditableText
"CR"Symbol 347 MovieClip {Page14} Frame 1Symbol 341 EditableText
"CR"Symbol 347 MovieClip {Page14} Frame 1Symbol 344 EditableText
"CR"Symbol 355 MovieClip {Page15} Frame 1Symbol 350 EditableText
"CR"Symbol 355 MovieClip {Page15} Frame 1Symbol 353 EditableText
"CR"Symbol 364 MovieClip {Page16} Frame 1Symbol 358 EditableText
"CR"Symbol 364 MovieClip {Page16} Frame 1Symbol 361 EditableText
"CR"Symbol 373 MovieClip {Page17} Frame 1Symbol 367 EditableText
"CR"Symbol 373 MovieClip {Page17} Frame 1Symbol 370 EditableText
"CR"Symbol 382 MovieClip {Page18} Frame 1Symbol 376 EditableText
"CR"Symbol 382 MovieClip {Page18} Frame 1Symbol 379 EditableText
"CR"Symbol 390 MovieClip {Page19} Frame 1Symbol 385 EditableText
"CR"Symbol 390 MovieClip {Page19} Frame 1Symbol 388 EditableText
"CR"Symbol 400 MovieClip {Page20} Frame 1Symbol 393 EditableText
"CR"Symbol 400 MovieClip {Page20} Frame 1Symbol 396 EditableText
"CR"Symbol 409 MovieClip {Page21} Frame 1Symbol 403 EditableText
"CR"Symbol 409 MovieClip {Page21} Frame 1Symbol 406 EditableText
"CR"Symbol 418 MovieClip {Page22} Frame 1Symbol 412 EditableText
"CR"Symbol 418 MovieClip {Page22} Frame 1Symbol 415 EditableText
"CR"Symbol 426 MovieClip {Page23} Frame 1Symbol 421 EditableText
"CR"Symbol 426 MovieClip {Page23} Frame 1Symbol 424 EditableText
"CR"Symbol 435 MovieClip {Page24} Frame 1Symbol 429 EditableText
"CR"Symbol 435 MovieClip {Page24} Frame 1Symbol 432 EditableText
"CR"Symbol 444 MovieClip {Page25} Frame 1Symbol 438 EditableText
"CR"Symbol 444 MovieClip {Page25} Frame 1Symbol 441 EditableText
"CR"Symbol 453 MovieClip {Page26} Frame 1Symbol 447 EditableText
"CR"Symbol 453 MovieClip {Page26} Frame 1Symbol 450 EditableText
"CR"Symbol 462 MovieClip {Page27} Frame 1Symbol 456 EditableText
"CR"Symbol 462 MovieClip {Page27} Frame 1Symbol 459 EditableText
"CR"Symbol 471 MovieClip {Page28} Frame 1Symbol 465 EditableText
"CR"Symbol 471 MovieClip {Page28} Frame 1Symbol 468 EditableText
"CR"Symbol 479 MovieClip {Page29} Frame 1Symbol 474 EditableText
"CR"Symbol 479 MovieClip {Page29} Frame 1Symbol 477 EditableText
"CR"Symbol 488 MovieClip {Page30} Frame 1Symbol 482 EditableText
"CR"Symbol 488 MovieClip {Page30} Frame 1Symbol 485 EditableText
"CR"Symbol 497 MovieClip {Page31} Frame 1Symbol 491 EditableText
"CR"Symbol 497 MovieClip {Page31} Frame 1Symbol 494 EditableText
"CR"Symbol 506 MovieClip {Page32} Frame 1Symbol 500 EditableText
"CR"Symbol 506 MovieClip {Page32} Frame 1Symbol 503 EditableText
"CR"Symbol 515 MovieClip {Page33} Frame 1Symbol 509 EditableText
"CR"Symbol 515 MovieClip {Page33} Frame 1Symbol 512 EditableText
"CR"Symbol 524 MovieClip {Page34} Frame 1Symbol 518 EditableText
"CR"Symbol 524 MovieClip {Page34} Frame 1Symbol 521 EditableText
"CR"Symbol 532 MovieClip {Page35} Frame 1Symbol 527 EditableText
"CR"Symbol 532 MovieClip {Page35} Frame 1Symbol 530 EditableText
"CR"Symbol 541 MovieClip {Page36} Frame 1Symbol 535 EditableText
"CR"Symbol 541 MovieClip {Page36} Frame 1Symbol 538 EditableText
"CR"Symbol 549 MovieClip {Page37} Frame 1Symbol 544 EditableText
"CR"Symbol 549 MovieClip {Page37} Frame 1Symbol 547 EditableText
"CR"Symbol 558 MovieClip {Page38} Frame 1Symbol 552 EditableText
"CR"Symbol 558 MovieClip {Page38} Frame 1Symbol 555 EditableText
"CR"Symbol 567 MovieClip {Page39} Frame 1Symbol 561 EditableText
"CR"Symbol 567 MovieClip {Page39} Frame 1Symbol 564 EditableText
"CR"Symbol 576 MovieClip {Page40} Frame 1Symbol 570 EditableText
"CR"Symbol 576 MovieClip {Page40} Frame 1Symbol 573 EditableText
"CR"Symbol 585 MovieClip {Page41} Frame 1Symbol 579 EditableText
"CR"Symbol 585 MovieClip {Page41} Frame 1Symbol 582 EditableText
"CR"Symbol 594 MovieClip {Page42} Frame 1Symbol 588 EditableText
"CR"Symbol 594 MovieClip {Page42} Frame 1Symbol 591 EditableText
"CR"Symbol 603 MovieClip {Page43} Frame 1Symbol 597 EditableText
"CR"Symbol 603 MovieClip {Page43} Frame 1Symbol 600 EditableText
"CR"Symbol 611 MovieClip {Page44} Frame 1Symbol 606 EditableText
"CR"Symbol 611 MovieClip {Page44} Frame 1Symbol 609 EditableText
"CR"Symbol 620 MovieClip {Page45} Frame 1Symbol 614 EditableText
"CR"Symbol 620 MovieClip {Page45} Frame 1Symbol 617 EditableText
"CR"Symbol 629 MovieClip {Page46} Frame 1Symbol 623 EditableText
"CR"Symbol 629 MovieClip {Page46} Frame 1Symbol 626 EditableText
"CR"Symbol 638 MovieClip {Page47} Frame 1Symbol 632 EditableText
"CR"Symbol 638 MovieClip {Page47} Frame 1Symbol 635 EditableText
"CR"Symbol 646 MovieClip {Page48} Frame 1Symbol 641 EditableText
"CR"Symbol 646 MovieClip {Page48} Frame 1Symbol 644 EditableText
"CR"Symbol 655 MovieClip {Page49} Frame 1Symbol 649 EditableText
"CR"Symbol 655 MovieClip {Page49} Frame 1Symbol 652 EditableText
"CR"Symbol 664 MovieClip {Page50} Frame 1Symbol 658 EditableText
"CR"Symbol 664 MovieClip {Page50} Frame 1Symbol 661 EditableText
"CR"Symbol 672 MovieClip {Page51} Frame 1Symbol 667 EditableText
"CR"Symbol 672 MovieClip {Page51} Frame 1Symbol 670 EditableText
"CR"Symbol 681 MovieClip {Page52} Frame 1Symbol 675 EditableText
"CR"Symbol 681 MovieClip {Page52} Frame 1Symbol 678 EditableText
"CR"Symbol 690 MovieClip {Page53} Frame 1Symbol 684 EditableText
"CR"Symbol 690 MovieClip {Page53} Frame 1Symbol 687 EditableText
"CR"Symbol 698 MovieClip {Page54} Frame 1Symbol 693 EditableText
"CR"Symbol 698 MovieClip {Page54} Frame 1Symbol 696 EditableText
"CR"Symbol 707 MovieClip {Page55} Frame 1Symbol 701 EditableText
"CR"Symbol 707 MovieClip {Page55} Frame 1Symbol 704 EditableText
"CR"Symbol 716 MovieClip {Page56} Frame 1Symbol 710 EditableText
"CR"Symbol 716 MovieClip {Page56} Frame 1Symbol 713 EditableText
"CR"Symbol 725 MovieClip {Page57} Frame 1Symbol 719 EditableText
"CR"Symbol 725 MovieClip {Page57} Frame 1Symbol 722 EditableText
"CR"Symbol 734 MovieClip {Page58} Frame 1Symbol 728 EditableText
"CR"Symbol 734 MovieClip {Page58} Frame 1Symbol 731 EditableText
"CR"Symbol 742 MovieClip {Page59} Frame 1Symbol 737 EditableText
"CR"Symbol 742 MovieClip {Page59} Frame 1Symbol 740 EditableText
"CR"Symbol 751 MovieClip {Page60} Frame 1Symbol 745 EditableText
"CR"Symbol 751 MovieClip {Page60} Frame 1Symbol 748 EditableText
"CR"Symbol 760 MovieClip {Page61} Frame 1Symbol 754 EditableText
"CR"Symbol 760 MovieClip {Page61} Frame 1Symbol 757 EditableText
"CR"Symbol 769 MovieClip {Page62} Frame 1Symbol 763 EditableText
"CR"Symbol 769 MovieClip {Page62} Frame 1Symbol 766 EditableText
"CR"Symbol 777 MovieClip {Page63} Frame 1Symbol 772 EditableText
"CR"Symbol 777 MovieClip {Page63} Frame 1Symbol 775 EditableText
"CR"Symbol 786 MovieClip {Page64} Frame 1Symbol 780 EditableText
"CR"Symbol 786 MovieClip {Page64} Frame 1Symbol 783 EditableText
"CR"Symbol 795 MovieClip {Page65} Frame 1Symbol 789 EditableText
"CR"Symbol 795 MovieClip {Page65} Frame 1Symbol 792 EditableText
"CR"Symbol 804 MovieClip {Page66} Frame 1Symbol 798 EditableText
"CR"Symbol 804 MovieClip {Page66} Frame 1Symbol 801 EditableText
"CR"Symbol 813 MovieClip {Page67} Frame 1Symbol 807 EditableText
"CR"Symbol 813 MovieClip {Page67} Frame 1Symbol 810 EditableText
"CR"Symbol 822 MovieClip {Page68} Frame 1Symbol 816 EditableText
"CR"Symbol 822 MovieClip {Page68} Frame 1Symbol 819 EditableText
"CR"Symbol 830 MovieClip {Page69} Frame 1Symbol 825 EditableText
"CR"Symbol 830 MovieClip {Page69} Frame 1Symbol 828 EditableText
"CR"Symbol 839 MovieClip {Page70} Frame 1Symbol 833 EditableText
"CR"Symbol 839 MovieClip {Page70} Frame 1Symbol 836 EditableText
"CR"Symbol 848 MovieClip {Page71} Frame 1Symbol 842 EditableText
"CR"Symbol 848 MovieClip {Page71} Frame 1Symbol 845 EditableText
"CR"Symbol 857 MovieClip {Page72} Frame 1Symbol 851 EditableText
"CR"Symbol 857 MovieClip {Page72} Frame 1Symbol 854 EditableText
"CR"Symbol 866 MovieClip {Page73} Frame 1Symbol 860 EditableText
"CR"Symbol 866 MovieClip {Page73} Frame 1Symbol 863 EditableText
"CR"Symbol 874 MovieClip {Page74} Frame 1Symbol 869 EditableText
"CR"Symbol 874 MovieClip {Page74} Frame 1Symbol 872 EditableText
"CR"Symbol 883 MovieClip {Page75} Frame 1Symbol 877 EditableText
"CR"Symbol 883 MovieClip {Page75} Frame 1Symbol 880 EditableText
"CR"Symbol 892 MovieClip {Page76} Frame 1Symbol 886 EditableText
"CR"Symbol 892 MovieClip {Page76} Frame 1Symbol 889 EditableText
"CR"Symbol 900 MovieClip {Page77} Frame 1Symbol 895 EditableText
"CR"Symbol 900 MovieClip {Page77} Frame 1Symbol 898 EditableText
"CR"Symbol 909 MovieClip {Page78} Frame 1Symbol 903 EditableText
"CR"Symbol 909 MovieClip {Page78} Frame 1Symbol 906 EditableText
"CR"Symbol 918 MovieClip {Page79} Frame 1Symbol 912 EditableText
"CR"Symbol 918 MovieClip {Page79} Frame 1Symbol 915 EditableText
"CR"Symbol 927 MovieClip {Page80} Frame 1Symbol 921 EditableText
"CR"Symbol 927 MovieClip {Page80} Frame 1Symbol 924 EditableText
"CR"Symbol 935 MovieClip {Page81} Frame 1Symbol 930 EditableText
"CR"Symbol 935 MovieClip {Page81} Frame 1Symbol 933 EditableText
"CR"Symbol 944 MovieClip {Page82} Frame 1Symbol 938 EditableText
"CR"Symbol 944 MovieClip {Page82} Frame 1Symbol 941 EditableText
"CR"Symbol 953 MovieClip {Page83} Frame 1Symbol 947 EditableText
"CR"Symbol 953 MovieClip {Page83} Frame 1Symbol 950 EditableText
"CR"Symbol 962 MovieClip {Page84} Frame 1Symbol 956 EditableText
"CR"Symbol 962 MovieClip {Page84} Frame 1Symbol 959 EditableText
"CR"Symbol 971 MovieClip {Page85} Frame 1Symbol 965 EditableText
"CR"Symbol 971 MovieClip {Page85} Frame 1Symbol 968 EditableText
"CR"Symbol 979 MovieClip {Page86} Frame 1Symbol 974 EditableText
"CR"Symbol 979 MovieClip {Page86} Frame 1Symbol 977 EditableText
"CR"Symbol 988 MovieClip {Page87} Frame 1Symbol 982 EditableText
"CR"Symbol 988 MovieClip {Page87} Frame 1Symbol 985 EditableText
"CR"Symbol 997 MovieClip {Page88} Frame 1Symbol 991 EditableText
"CR"Symbol 997 MovieClip {Page88} Frame 1Symbol 994 EditableText
"CR"Symbol 1005 MovieClip {Page89} Frame 1Symbol 1000 EditableText
"CR"Symbol 1005 MovieClip {Page89} Frame 1Symbol 1003 EditableText
"CR"Symbol 1014 MovieClip {Page90} Frame 1Symbol 1008 EditableText
"CR"Symbol 1014 MovieClip {Page90} Frame 1Symbol 1011 EditableText
"CR"Symbol 1023 MovieClip {Page91} Frame 1Symbol 1017 EditableText
"CR"Symbol 1023 MovieClip {Page91} Frame 1Symbol 1020 EditableText
"CR"Symbol 1032 MovieClip {Page92} Frame 1Symbol 1026 EditableText
"CR"Symbol 1032 MovieClip {Page92} Frame 1Symbol 1029 EditableText
"CR"Symbol 1040 MovieClip {Page93} Frame 1Symbol 1035 EditableText
"CR"Symbol 1040 MovieClip {Page93} Frame 1Symbol 1038 EditableText
"CR"Symbol 1048 MovieClip {Page94} Frame 1Symbol 1043 EditableText
"CR"Symbol 1048 MovieClip {Page94} Frame 1Symbol 1046 EditableText
"CR"Symbol 1057 MovieClip {Page95} Frame 1Symbol 1051 EditableText
"CR"Symbol 1057 MovieClip {Page95} Frame 1Symbol 1054 EditableText
"CR"Symbol 1066 MovieClip {Page96} Frame 1Symbol 1060 EditableText
"CR"Symbol 1066 MovieClip {Page96} Frame 1Symbol 1063 EditableText
"CR"Symbol 1075 MovieClip {Page97} Frame 1Symbol 1069 EditableText
"CR"Symbol 1075 MovieClip {Page97} Frame 1Symbol 1072 EditableText
"CR"Symbol 1084 MovieClip {Page98} Frame 1Symbol 1078 EditableText
"CR"Symbol 1084 MovieClip {Page98} Frame 1Symbol 1081 EditableText
"CR"Symbol 1092 MovieClip {Page99} Frame 1Symbol 1087 EditableText
"CR"Symbol 1092 MovieClip {Page99} Frame 1Symbol 1090 EditableText
"CR"Symbol 1101 MovieClip {Page100} Frame 1Symbol 1095 EditableText
"CR"Symbol 1101 MovieClip {Page100} Frame 1Symbol 1098 EditableText
"CR"Symbol 1110 MovieClip {Page101} Frame 1Symbol 1104 EditableText
"CR"Symbol 1110 MovieClip {Page101} Frame 1Symbol 1107 EditableText
"CR"Symbol 1118 MovieClip {Page102} Frame 1Symbol 1113 EditableText
"CR"Symbol 1118 MovieClip {Page102} Frame 1Symbol 1116 EditableText
"CR"Symbol 1127 MovieClip {Page103} Frame 1Symbol 1121 EditableText
"CR"Symbol 1127 MovieClip {Page103} Frame 1Symbol 1124 EditableText
"CR"Symbol 1136 MovieClip {Page104} Frame 1Symbol 1130 EditableText
"CR"Symbol 1136 MovieClip {Page104} Frame 1Symbol 1133 EditableText
"CR"Symbol 1145 MovieClip {Page105} Frame 1Symbol 1139 EditableText
"CR"Symbol 1145 MovieClip {Page105} Frame 1Symbol 1142 EditableText
"CR"Symbol 1153 MovieClip {Page106} Frame 1Symbol 1148 EditableText
"CR"Symbol 1153 MovieClip {Page106} Frame 1Symbol 1151 EditableText
"CR"Symbol 1162 MovieClip {Page107} Frame 1Symbol 1156 EditableText
"CR"Symbol 1162 MovieClip {Page107} Frame 1Symbol 1159 EditableText
"CR"Symbol 1171 MovieClip {Page108} Frame 1Symbol 1165 EditableText
"CR"Symbol 1171 MovieClip {Page108} Frame 1Symbol 1168 EditableText
"CR"Symbol 1180 MovieClip {Page109} Frame 1Symbol 1174 EditableText
"CR"Symbol 1180 MovieClip {Page109} Frame 1Symbol 1177 EditableText
"CR"Symbol 1188 MovieClip {Page110} Frame 1Symbol 1183 EditableText
"CR"Symbol 1188 MovieClip {Page110} Frame 1Symbol 1186 EditableText
"CR"Symbol 1197 MovieClip {Page111} Frame 1Symbol 1191 EditableText
"CR"Symbol 1197 MovieClip {Page111} Frame 1Symbol 1194 EditableText
"CR"Symbol 1205 MovieClip {Page112} Frame 1Symbol 1200 EditableText
"CR"Symbol 1205 MovieClip {Page112} Frame 1Symbol 1203 EditableText
"CR"Symbol 1214 MovieClip {Page113} Frame 1Symbol 1208 EditableText
"CR"Symbol 1214 MovieClip {Page113} Frame 1Symbol 1211 EditableText
"CR"Symbol 1223 MovieClip {Page114} Frame 1Symbol 1217 EditableText
"CR"Symbol 1223 MovieClip {Page114} Frame 1Symbol 1220 EditableText
"CR"Symbol 1231 MovieClip {Page115} Frame 1Symbol 1226 EditableText
"CR"Symbol 1231 MovieClip {Page115} Frame 1Symbol 1229 EditableText
"CR"Symbol 1240 MovieClip {Page116} Frame 1Symbol 1234 EditableText
"CR"Symbol 1240 MovieClip {Page116} Frame 1Symbol 1237 EditableText
"CR"Symbol 1248 MovieClip {Page117} Frame 1Symbol 1243 EditableText
"CR"Symbol 1248 MovieClip {Page117} Frame 1Symbol 1246 EditableText
"CR"Symbol 1257 MovieClip {Page118} Frame 1Symbol 1251 EditableText
"CR"Symbol 1257 MovieClip {Page118} Frame 1Symbol 1254 EditableText
"CR"Symbol 1266 MovieClip {Page119} Frame 1Symbol 1260 EditableText
"CR"Symbol 1266 MovieClip {Page119} Frame 1Symbol 1263 EditableText
"CR"Symbol 1274 MovieClip {Page120} Frame 1Symbol 1269 EditableText
"CR"Symbol 1274 MovieClip {Page120} Frame 1Symbol 1272 EditableText
"CR"Symbol 1283 MovieClip {Page121} Frame 1Symbol 1277 EditableText
"CR"Symbol 1283 MovieClip {Page121} Frame 1Symbol 1280 EditableText
"CR"Symbol 1292 MovieClip {Page122} Frame 1Symbol 1286 EditableText
"CR"Symbol 1292 MovieClip {Page122} Frame 1Symbol 1289 EditableText
"CR"Symbol 1301 MovieClip {Page123} Frame 1Symbol 1295 EditableText
"CR"Symbol 1301 MovieClip {Page123} Frame 1Symbol 1298 EditableText
"CR"Symbol 1310 MovieClip {Page124} Frame 1Symbol 1304 EditableText
"CR"Symbol 1310 MovieClip {Page124} Frame 1Symbol 1307 EditableText
"CR"Symbol 1318 MovieClip {Page125} Frame 1Symbol 1313 EditableText
"CR"Symbol 1318 MovieClip {Page125} Frame 1Symbol 1316 EditableText
"CR"Symbol 1326 MovieClip {Page126} Frame 1Symbol 1321 EditableText
"CR"Symbol 1326 MovieClip {Page126} Frame 1Symbol 1324 EditableText
"CR"Symbol 1335 MovieClip {Page127} Frame 1Symbol 1329 EditableText
"CR"Symbol 1335 MovieClip {Page127} Frame 1Symbol 1332 EditableText
"CR"Symbol 1344 MovieClip {Page128} Frame 1Symbol 1338 EditableText
"CR"Symbol 1344 MovieClip {Page128} Frame 1Symbol 1341 EditableText
"CR"Symbol 1352 MovieClip {Page129} Frame 1Symbol 1347 EditableText
"CR"Symbol 1352 MovieClip {Page129} Frame 1Symbol 1350 EditableText
"CR"Symbol 1361 MovieClip {Page130} Frame 1Symbol 1355 EditableText
"CR"Symbol 1361 MovieClip {Page130} Frame 1Symbol 1358 EditableText
"CR"Symbol 1370 MovieClip {Page131} Frame 1Symbol 1364 EditableText
"CR"Symbol 1370 MovieClip {Page131} Frame 1Symbol 1367 EditableText
"CR"Symbol 1378 MovieClip {Page132} Frame 1Symbol 1373 EditableText
"CR"Symbol 1378 MovieClip {Page132} Frame 1Symbol 1376 EditableText
"CR"Symbol 1387 MovieClip {Page133} Frame 1Symbol 1381 EditableText
"CR"Symbol 1387 MovieClip {Page133} Frame 1Symbol 1384 EditableText
"CR"Symbol 1396 MovieClip {Page134} Frame 1Symbol 1390 EditableText
"CR"Symbol 1396 MovieClip {Page134} Frame 1Symbol 1393 EditableText
"CR"Symbol 1405 MovieClip {Page135} Frame 1Symbol 1399 EditableText
"CR"Symbol 1405 MovieClip {Page135} Frame 1Symbol 1402 EditableText
"CR"Symbol 1414 MovieClip {Page136} Frame 1Symbol 1408 EditableText
"CR"Symbol 1414 MovieClip {Page136} Frame 1Symbol 1411 EditableText
"CR"Symbol 1422 MovieClip {Page137} Frame 1Symbol 1417 EditableText
"CR"Symbol 1422 MovieClip {Page137} Frame 1Symbol 1420 EditableText
"CR"Symbol 1431 MovieClip {Page138} Frame 1Symbol 1425 EditableText
"CR"Symbol 1431 MovieClip {Page138} Frame 1Symbol 1428 EditableText
"CR"Symbol 1439 MovieClip {Page139} Frame 1Symbol 1434 EditableText
"CR"Symbol 1439 MovieClip {Page139} Frame 1Symbol 1437 EditableText
"CR"Symbol 1448 MovieClip {Page140} Frame 1Symbol 1442 EditableText
"CR"Symbol 1448 MovieClip {Page140} Frame 1Symbol 1445 EditableText
"CR"Symbol 1457 MovieClip {Page141} Frame 1Symbol 1451 EditableText
"CR"Symbol 1457 MovieClip {Page141} Frame 1Symbol 1454 EditableText
"CR"Symbol 1465 MovieClip {Page142} Frame 1Symbol 1460 EditableText
"CR"Symbol 1465 MovieClip {Page142} Frame 1Symbol 1463 EditableText
"CR"Symbol 1474 MovieClip {Page143} Frame 1Symbol 1468 EditableText
"CR"Symbol 1474 MovieClip {Page143} Frame 1Symbol 1471 EditableText
"CR"Symbol 1483 MovieClip {Page144} Frame 1Symbol 1477 EditableText
"CR"Symbol 1483 MovieClip {Page144} Frame 1Symbol 1480 EditableText
"CR"Symbol 1492 MovieClip {Page145} Frame 1Symbol 1486 EditableText
"CR"Symbol 1492 MovieClip {Page145} Frame 1Symbol 1489 EditableText
"CR"Symbol 1500 MovieClip {Page146} Frame 1Symbol 1495 EditableText
"CR"Symbol 1500 MovieClip {Page146} Frame 1Symbol 1498 EditableText
"CR"Symbol 1509 MovieClip {Page147} Frame 1Symbol 1503 EditableText
"CR"Symbol 1509 MovieClip {Page147} Frame 1Symbol 1506 EditableText
"CR"Symbol 1518 MovieClip {Page148} Frame 1Symbol 1512 EditableText
"CR"Symbol 1518 MovieClip {Page148} Frame 1Symbol 1515 EditableText
"CR"Symbol 1528 MovieClip {Page149} Frame 1Symbol 1521 EditableText
"CR"Symbol 1528 MovieClip {Page149} Frame 1Symbol 1526 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 256, ScriptTimeout: 65535 seconds




http://swfchan.com/49/244420/info.shtml
Created: 23/2 -2022 02:28:41 Last modified: 23/2 -2022 02:28:41 Server time: 15/05 -2024 23:14:47