"It's not my secret to share," she said.
She reached up and caught my right hand. "Poor payback for your courage in telling me an unbelievable truth, but the best I can offer at the moment. Thanks for trusting me."
"You're welcome."
I looked down at the place where our hands were joined and tried to find the right words. What can you say when "I like you," isn't half-strong enough, but you haven't yet gotten to "I love you"? Was it even fair to be talking about such things when I didn't know whether I'd be alive to follow through on them? No words came.
"What are you thinking?" she asked after a time.
"That I don't know how to tell you what you mean to me," I answered. "That you have grown very dear to me. That I would like more than anything to have the leisure to follow where that leads me."
"Really?" she said, and cocked her head to one side quizzically. There was a long silence before she whispered, "How very odd."
My mouth went dry, and my heart felt as though it had been transformed into a particularly anxious and fidgety hedgehog. I couldn't face those blue, blue eyes any longer and turned my gaze downward. For several minutes we remained like that, unmoving. Then Cerice reached up and placed a finger under my chin. With surprising strength, she lifted my head until I had to face her again.
"How very odd," she said again. "Because, despite my better judgment, I've grown quite fond of you, too." She pulled me down to her level and kissed me.
We went back to Cerice's room then, and for a very long time we just held each other. When we did eventually make love, it was with a slow, lazy passion and gentle twining of limbs that was more about tenderness and discovery than sex. Later, Cerice opened an ltp link and sent me through to the U of M. There was a risk my passage through the mweb might be noticed, but Cerice refused to even consider letting me use the faerie ring, which she promised to close up after I left.
* * * *
I tried to keep up with Cerice over the following weeks, but my lack of mweb access meant I couldn't call her, she had to call me. That didn't happen very often. She did have Shara bring me a new silver-inlaid rapier and matching dagger as a Solstice present. I'd found a string of tiny oval-cut rubies set in red gold that I wanted to give her the week before, so Shara didn't go back empty-handed. But exchanging gifts by goblin seemed a poor substitute for the in-person time I wished for. Between the tangles in my love life, Atropos's curse, and a heavy course load you'd have thought I had enough problems. Fate, or more precisely, one of them, didn't seem to agree. During the next six weeks, I encountered four more magical surprises, dodged one drive-by shooting, and found poison in my Purina dorm chow on three separate occasions. It was all more fun than discovering an electric eel in your beer stein. I turned into a raving insomniac, and my concentration went to hell. Somehow I managed to hold my grades up, though it was a bit like treading water with a bowling ball in each hand. It didn't help knowing that Atropos might finish Puppeteer and end the world as I knew it at any time, or that I was the only one who could stop her.
Chapter Eight
Somehow, I survived until January break and the end of the semester. That gave me a full month off before classes started again and, since Lachesis had reinstated my mweb privileges when my grades came in, the freedom to do something with the time. I would have liked nothing more than to spend it with Cerice, whose place in my heart seemed to grow in proportion to her absence in my life. But likes must make way for needs, and I really needed to see if I could do something about Atropos and Puppeteer. If I could also find a way to pull my own personal bacon out of the fire without burning my nine remaining fingertips and exact some small revenge on the darkest of the Fates into the bargain, I'd be halfway to a seat on Olympus as the patron god of hackers.
One side benefit to being nailed to the floor for half the semester was that I'd had plenty of time to think. I knew that my many-times-great-aunt would have increased security significantly since my last visit to Chez Atropos, and that none of the hacks that had worked in the past were likely to do me a lick of good. But after much thought I'd finally come up with an approach that might get me in. Better still, I had some clue as to what to do once I got there, at least as a first step: a bit of computerized life insurance. All of which put me where I was at present.
The dirt road was poorly plowed, and my borrowed Econoline van almost went into the ditch a couple of times before I got to the state park's lot. I left the van running while I crawled into the back and put on a pair of heavy black tights, a turtleneck, a sweater, and a windbreaker. Thick wool socks and a pair of ski boots came next. I slid my arms into the straps of the mountain pack holding the rest of my gear, then turned off the van and reluctantly got out. It was four below and the wind felt like a razor scraping painfully across my face. My bad knee complained, but there was no other way to get where I needed to go, so I ignored it.
When I stepped into the bindings of my cross-country skis they squeaked from the cold. I wanted to do the same, despite the fleece mask, goggles, and gloves I had added to my outfit. Instead I picked up my custom poles and got moving.
There was no wind in the woods, and the snow was a perfect coat of light powder on top of an icy crust. I made good time, and soon warmed up enough to enjoy the scenery. Late-morning sun struck rainbow sparks off the jumbled surfaces of the loosely drifting snowflakes, filling the air with dancing color. A thin layer of this frozen faerie dust decorated every branch, and the pines looked like miniature ice pagodas where tiny Japanese webpixies might live. It was almost enough to make me forget that the weather would kill me given half a chance. The faint corduroy noise of my skis and the crunch as my poles broke through the crust were the only sounds, both quickly swallowed by the silence of a pine forest in winter.
After about an hour a wide gap between the trees opened up to my left where another path turned off. It hadn't been groomed, and the long line of pristine snow stretching between the pines was starkly pretty. I slid off the main trail and slipped my backpack off. Melchior, in laptop form, was tucked into the top. I flipped his lid and typed in a spell prompt.
Run Melchior. Execute.
But, it's cold out there, Ravirn.
I didn't ask for editorials.
Oh, all right, but I'm not going to like this.
In a matter of moments he was standing and shivering atop my pack. "What do you want?"
"A GPS fix. I want to know if this is our turn."
"For that, you had to turn me back into a goblin? A simple typed request would have worked fine, and this weather is much nicer if you don't have any nerve endings to freeze."
"Deal with it, Mel. If this is the place, I'll want you to hide my tracks."
"Oh, great," he said. "What could possibly be more fun than slogging through neck-deep snow while brushing out ski tracks? When do I get to start?"
"You tell me. Where are we?"
His face went abstract for a few seconds as he queried the GPS satellite system. Then he let out a little martyred sigh. He tried to maintain an air of injured dignity as he hopped down, but the snow was deeper than he was tall. With only the faintest of crunches as he went through the icy underlayer, he dropped completely from sight. A moment later, his face fixed in a scowl, he pulled himself out onto the crust. Making his way to the base of a fir, he tore a branchlet free to use as a broom.
"So, tell me again why we have to come way out here to commit suicide," he said, once we'd gotten far enough off the main trail that he could drop the cover-up and climb up into the pack again.
"We're not committing suicide."
"How do you figure?" he asked. "We're messing around with the Fate Core. If Atropos catches us, your grandmother will hand her the scissors."
"We won't get caught," I reassured him. "I have it all planned. We'll slide in, insert Revenant into the Core, and slide out. It'll be a surgical strike, thirty minutes from start to finish, tops. Short-term scary, but it'll seriously increase our long-ter
m odds of survival."
I wasn't anywhere near that confident. The Fate Core is at the center of everything my family is. If Atropos hadn't driven me to it, I'd never have even considered messing with it.
"Who do you think you're kidding?" asked Melchior. "Revenant is just a fancy dead-man switch. It might make Atropos's life miserable after you're gone, but it won't do a thing to keep you alive."
I shrugged. He was right. But somebody had to stop Atropos, and I'd been elected. Ruining Puppeteer was more important than staying alive, and if Revenant worked properly, even dying wouldn't take me out of the game. Of course I wouldn't be around to gloat, and that took some of the savor out of things. But Melchior knew all that already.
"If you've got a better idea, Mel, I haven't heard it yet."
"Sorry, Boss. Just nervous I guess." He looked around. "Why on Earth did Atropos put a backbone hookup to Atropos. web. out in the middle of nowhere like this?"
"No choice. Believe it or not, there's a big nexus here."
"That's crazy," said Mel. "Nobody lives here. There's no good reason for people to put in a junction."
"People didn't. We're heading for what used to be a major ley-line node with a direct server connection to Atropos.web. Since her new, fast routers are all fiber-optic only, the ley link isn't used much anymore, but it's still connected as a backup."
"Oh, goody," said the webgoblin. "In addition to squatting in a snowbank and freezing to death, we'll be using antiquated equipment to hack the most sophisticated and heavily guarded hub in existence. You know ley-line hookups give me a headache."
"It won't be that bad. This nexus is cross-linked to a fiber bundle and the cell net. That's part of why I picked it. The ley net was never fully integrated with the newer systems, so security's a little more ragged at connection points like this. Better still, the antennas are mounted on a fire tower, and there's a cabin for the rangers, so we'll be able to get out of the weather."
"Somehow, the idea of sitting in a tiny unheated shack doesn't improve my mood much."
Just then we arrived at the base of the tower in question, a tall wooden framework with cell antennas, identifiable by their characteristic rod shapes, mounted to the supporting posts. At the base stood a concrete hut, painted green to blend with the surrounding conifers. A small log cabin was just visible a short way off through the trees.
"Mel, why don't you get a fire going in the cabin while I look at the communications shack?"
"You feeling all right, Boss? I get to do the quiet warm indoor job while you freeze in the snow?" Before I could respond he headed for the cabin. "Sounds like a lovely idea."
I considered chucking a snowball at him, but thought better of it. Instead I skied over to the hut and checked it out. The lock was a four-pin Schlage, but it yielded quickly to a spell-augmented pick.
Inside it was as cold as the great outdoors and as black as the eyes of Cerberus. A quick flick of the light switch solved the latter problem. The room contained the switch-box and monitoring system for the cell antennas and a trapdoor through which I accessed the fiber-optic conduit and junction. Pulling a small ball of silken cord from my fanny pack, I tied one end of the cord around the conduit and whistled a short binding spell.
The cord's knotted end liquefied and flowed through the surface of the conduit. Assuming I hadn't transposed a couple of ones and zeros, the strands of the knot would attach themselves to the various strands of fiber, giving me a hard line to the node. The quality of the link might have been a little cleaner if I'd done an actual optical connection, but that would have required serious tools. Also, since I wanted to use the ley part of the node as my main hacking channel anyway, it was probably better to use old-style symbolic magic for my entry point.
Once I'd unspooled a couple yards of cord I closed the trapdoor. That was another advantage to using silk—it didn't matter if it kinked. Then I headed for the cabin, playing out the line as I went.
The fire Melchior had started was beginning to cut the chill in the single open room. About fifteen feet on a side, it had two sets of bunk beds, a primitive kitchen, and a small fireplace. In the middle of the room was a small table. I removed my mask and gloves and tossed them onto it.
"Mel, climb up here, would you?"
"No thanks," he said from his perch on the hearth. "I like it by the fire."
"It wasn't a suggestion. I want to get the ley link established."
"If you insist, oh my lord and master." He rose from his seat on the rough stones and joined me.
I reeled out another fifteen feet of silk and cut it off. Then I stuck the loose end into a fiber-optic connector and crushed it shut with my Leatherman.
"Hey, Mel, why don't you shift to laptop?"
"Because you're planning on sticking an icy-cold connector into one of my toasty little ports, and I hate that!"
"Not half as much as you'll hate where I put it if you don't shift." He stuck his barbed tongue out from between sharply pointed teeth and waggled it from side to side.
"Melchior, Laptop. Execute."
He managed to flip me a rude gesture before his flesh started to flow and twist. Then the goblin was gone, slumping into the streamlined rectangle of my laptop, lid firmly closed in a subtle but pointed reminder that he disapproved of the current situation.
When I flipped up the top, the blue goblin logo to the left of the screen opened its eyes and glared. I was pretty sure that wasn't in his original programming. When I plugged the connector in and the little eyes crossed, I knew someone was exceeding his design specs again, and I smiled. The programmer side of my personality hated when things didn't work the way they were supposed to and itched to do some debugging. But as a sorcerer I took real pride in creating a familiar who was obviously so much more than a mere automaton.
Time to play with fire again, I typed. Are you ready?
As ready as possible with that freezing plug jammed into my port.
Don't worry. Tilings should heat up pretty quick once we hit Atropos's wards.
Wonderful!
My first exploratory program snaked its way into the ley net with no resistance. The little code weasel slid easily from silken cord to glass fiber to magical line. It slithered forward until it was just inside the nexus, stopped, and waited for further orders. I let it remain there, autonomous, for over an hour. I was feeling very cautious. Then I sent a quick query and the weasel speed-dumped its core into Mel's secure memory buffer for a virus check.
The picture that appeared on Mel's screen looked something like a spiderweb made of rainbow neon. In the center was a semisymmetrical structure of interconnected lines. From the junctures of this central mass came three major and five minor strands. Each of the larger strands left the nexus, then abruptly changed color. This represented the fact that they didn't follow the local topography, twisting off into alternate phase spaces instead. These were the links that tied the ley junction to the fate servers. The cyan went to Lachesis's network, the yellow to Clotho's, and the magenta to Atropos's. Hers was the brightest of the three, because it traced straight back to a server, while the other two patched into their respective systems farther out.
I carefully examined the strand on which the weasel had centered its attention. At the end of the line to Atropos.web was a tiny object almost exactly the same shade and saturation of magenta. With almost nothing to distinguish it from its surroundings it should have been very easy to miss. But finding holes is what I do best.
Zooming in, I saw a small scorpion-like thing whose stalk-mounted eyes tracked slowly across the whole node in a regular circular motion. Its tail, which lay across the junction of strand and node, tensed and untensed in a barely perceptible rhythm.
Gotcha! I typed.
Melchior flashed a comment on his screen. What are you talking about?
Don't you see it?
What I see is an elegant and deadly little piece of security programming. It's tiny and hard to spot, like a passive sentry, but it'
s obviously active and, knowing Atropos, deadly fast. I don't want anything to do with it.
All true. The spell had some of the same baroque beauty her Puppeteer spell possessed, albeit on a much smaller and simpler scale. Atropos was a real artist where it came to coding. If she had any flaw in her style, it was a tendency to let elegance get in the way of function as she had done here.
So, you don't see it? I typed.
What?
Look at how it moves its eyes, and the way the tail twitches. They're running in a steady pattern. Atropos had to sacrifice something to put all that nastiness into such a pretty little package. She didn't have room for a random-number generator, so she built in a set alert cycle. That means we can slip by in the gap when it resets to the start of its loop.
When do you suppose that is?
Every time the eyes look top center the tail extends onto the ley line. That's probably the upload cycle, when it dumps its memory back to the server.
So, the gap comes when the tail is at maximum contraction. I think you're right. Hell, if we slip a weasel in, it can attach itself to the back of the scorpion's memory packet and get a free ride all the way to the server.
Exactly.
It took five minutes to patch a command sequence together and send it to the weasel. This time, I wanted to keep an eye on things in real time, so I sent a second weasel to observe. Once that was in place, I sent the execute command to Weasel1.
It waited for the right opportunity, then darted forward. I held my breath when it passed from node to line, but everything went smoothly. On the other side of the guardian, it paused and dropped a relay before grabbing on to the back of the next packet upload. We were in.
All right, Mel! I typed. Wait for the all clear, then set the hook.
Waiting… There was a delay of perhaps fifteen minutes, and I became antsy. Connect. The weasel has landed! Establishing bypass link.
That was it. Our code weasel was inside the server node, and we could set up a direct mweb link bypassing Atropos's security completely.
WebMage Page 9