SEVEN

Blood lust Hacking Frenzy

I got seriously into hacking the code for the ADZE robot, and the next three and a half weeks went by in a blur.

Hacking is like building a scale-model cathedral out of toothpicks, except that if one toothpick is out of place the whole cathedral disappears. And then you have to feel around for the invisible cathedral, trying to figure out which toothpick is wrong. Debuggers make it a little easier, but not much, since a truly screwed-up cutting-edge program is entirely capable of screwing up the debugger as well, so that then it’s as if you’re feeling around for the missing toothpick with a stroke-crippled claw-hand.

But, ah, the dark dream beauty of the hacker grind against the hidden wall that only you can see, the wall that only you wail at, you the programmer, with the brand new tools that you made up as you went along, your special new toothpick lathes and jigs and your real-time scrimshaw shaver, you alone in the dark with your wonderful tools.

In the real world, I spent Friday and Saturday at the Mark Hopkins Hotel in San Francisco with Gretchen. The city was full of people partying; there was a kind of holiday mood over the absence of TV; everyone was talking and laughing much more than usual.

Actually, there was a certain amount of analog TV: crazy amateur shows being put out by random nobodies. A few places had analog TVs set up to show amateur TV to the true tube addicts, and you got the feeling that some of this unofficial stuff might catch on. Who really needed the networks anyway? We were free of the bullshit, free of the Pig. But it was too good to last.

Sunday morning, GoMotion released the ant lion virus and by Sunday evening, the ant lions had cleaned up DTV. Roger Coolidge made an appearance on the news, taking credit for the ant lion, and apologizing to the public-in a nonspecific kind of way-for any difficulty that the unfortunate release of the GoMotion ants might have caused. Everyone understood that “unfortunate” was a code word for “crazy Jerzy Rugby.”

Like the GoMotion ants, the ant lions lived on DTV compression and decompression chips, but they didn’t affect the images. All they did was sit there and kill anything that acted like a GoMotion ant, though exactly how the ant lions killed the ants was a GoMotion trade secret.

The ant-detection code made the GoMotion ant lion into a huge lurking memory hog that wallowed in a DTV chip’s memory like a sullen supertanker in a mountain lake. This was a problem because DTV’s fractal-theoretic image-expansion algorithms wanted to use a lot of memory for scratch paper: the finer the image, the more memory was needed. With the ant lion taking up so much chip memory, the highest-resolution DTV formats were plagued with the bail-out blotches that result from incomplete computations.

But mid-resolution broadcast DTV was working fine, which was the main thing. The highest-resolution DTV was mainly for playing back digitally mastered movies that you could download over the Fibernet. Intel, National Semiconductor, Motorola, and the other chip-sters were promising to roll out DTV memory-expansion minicards with enough room for both high-resolution mode and an ant lion by the next financial quarter. Funny how ready for that they were. I wondered if GoMotion had recently bought a lot of chip stock.

My state trial got scheduled for May 28, some three and a half weeks off, with the federal trial still pending. Stu said my chances in court were fair to good.

The paper on the door of my house turned out to be a notice of an attempted Wednesday morning delivery by Federal Express. The documents Fed Ex had been trying to deliver to me had been mailed by GoMotion at 6:00 p.m. on Tuesday afternoon. Stu picked up the documents Thursday and found a unilateral letter of dismissal signed by Jeff Pear, along with two copies of a severance agreement signed by GoMotion president Nancy Day, with blank lines waiting for my signature.

The lateness of the delivery was good news. Since I had not even received the agreement by Tuesday night, Studly was-Stu assured me-the legal property and responsibility of GoMotion Inc. during the time frame when Jose Ruiz’s dog was killed and the GoMotion ants were released. And furthermore, since I now declined to sign the severance agreement, Studly and my cyberdeck were in fact still the property and responsibility of GoMotion, pending further negotiation.

The legal issue of whether I had maliciously influenced the robot Studly’s actions was less favorable. According to the West West cryps, Jose Ruiz was going to be the D.A.‘s star witness. Apparently he was saying he’d watched me and Studly through his window. This part of the trial was going to be tough; Stu would just have to challenge the accuracy of what Jose Ruiz thought he’d seen and heard.

Above and beyond all factual matters were a host of technical issues about the statutes I was charged under; did these particular statutes apply to the unique events of that Tuesday evening on White Road? Stu said that even if I was convicted of something, he could keep me out of jail on appeals for years-or for as long as West West was willing to foot the bill.

I used Stu’s computer to e-mail Roger asking if he’d testify that it was he who’d infected Studly with the ants, but Roger e-mailed back that the best he could do was wish me good luck. He was very busy in Switzerland, and in any case he “would not feel right” in offering testimony to support my “highly idiosyncratic interpretation of the events.” I was, in other words, free to twist slowly in the wind.

My house on Tangle Way was unlivable. Not only were there reporters encamped round the clock, but, according to Stu, death threats were rolling in. The public had it in for me, the morons. And the network news was making me out to be some kind of rabid hyena. Even the so-called liberal pundits were judiciously intoning things like, “A free society cannot tolerate misfit hackers who would block the open exchange of ideas.” The exchange of their ideas, that is. At least the freestyle amateur TV broadcasters had picked up a boost from the brief blackout of official TV.

Whenever I saw the DTV news these days, I had an intense desire to cryp the GoMotion ant lion code, find a loophole, and show the hole to the GoMotion ants in cyberspace-but no, Jerzy, no.

I couldn’t live at home anymore, and Gretchen didn’t want me to move in permanently, so Thursday evening after my first full day’s work at West West, I took a roundabout route up through the Santa Cruz mountains to Queue Harmaline’s house.

Queue and Keith lived near Boulder Creek, on a steep hillside surrounded by giant redwoods. They had a hot tub and a samadhi flotation tank. Their home was like a coral reef or a beehive: a congeries, an un-architected wad of rooms plastered to the steep redwood hillside. They always needed money, and I knew that they would have a room to rent to me.

Queue had a brace on her knee because she’d recently made the error of going skiing while she was rushing on a mighty LSD run. “I should just trip in the samadhi tank,” she told me with a tinkling giggle, “but you wake up a day later and you feel like Dracula.” She had long glossy black hair that tended to split and hang in a spitty way over her face and mouth when she talked about psychedelics. “I’ve learned not to do anything that involves metal or electricity when I’m on acid, ’cause I have no way of knowing what I might get into. And now I know not to go skiing. Sure we can rent a room to you. If you behave.” She batted her eyes at me.

Though Queue always professed absolute faithfulness to Keith, she was a big flirt and I was happy to flirt with her. Her head was very round. She had the perky cute features of a brunette ingenue. Her odd laugh was intoxicating, and she wore gypsy amounts of jewelry, with a descending scale of nine gold hoops arranged along the rim of each of her ears.

“So how does it feel to be a big media star, Jerzy? You’ve invented a whole new order of life. It’s magic.” We were sitting in her kitchen drinking herbal tea.

“It’s not magic, Queue,” I sighed. “It’s science. I don’t think about transcendence or the One anymore.”

“But there has to be some mystery to help get us through these dreary times. We need it. If we didn’t need it so much, why did your ants try to kill TV? They’re a higher force for New Mystery.”

“Everything computers do is science, Queue. Logic. There’s no mystery to it at all.” I was tired and drained from the day’s hacking.

“You hide behind your preppy clothes and your sleepy expression,” cried Queue. “Come on! Be interesting!”

“These aren’t supposed to be preppy clothes,” I said, looking down at my garb. I was wearing a red rayon shirt covered with UFOs, some short white canvas shorts, yellow socks with a white section map of Death Valley, and my Birkenstocks.

“You don’t fool me, Jerzy. You’re as tidy as a little boy going to a birthday party. You yuppie. Come on and say something interesting or I won’t rent you the room!”

“Interesting.” My whole life was so interesting that I could hardly stand it-yet now, under Queue’s scrutiny, I realized that I rarely ever did talk about what it was that I found so interesting about hacking robots in cyberspace. More often than not, I let the people I was talking to divert conversations up their own creeks; I’d just paddle along and dream behind my sleepy expression. But if anyone actually asked, I could still talk.

“Okay, I’ll tell you some random things that are interesting. Last time I was in cyberspace the GoMotion ants took me out into the fourth dimension and put me into a gangster movie with a guy who looked like Death. Instead of a mouth he had a big steel zipper with a padlock. His name was Hex DEF6. That’s a hexadecimal number which is-” I paused and pulled out a slip of paper where I’d written this information down, “1101 1110 1111 0110 in binary and 57,078 in base ten. I have no idea what it means, except that if you leave the last zero off the binary version you get a sym-metric bit-string. Not interesting? How about this: The night the ants got loose, I was over on the east side trying to fuck a Vietnamese girl called Nga Vo.“

“Are you hard up?”

“Dig it, Queue, I’m not hard up, I’ve got myself a cashmere yuppie mommy. Her name is Gretchen. She’s a mortgage insurance broker.”

“How many children does Gretchen have?”

“None, as far as I know. I think of her as a mommy because she reminds me of the big dazed whitebread American mothers some of the kids at school had when I was small. Dreamy, slow-moving women with kind smiles. And just that soft hint of a double chin, you know?”

“Ugh! I don’t want to hear you talk about women, Jerzy. It’s so sexist and disgusting and-ugh! Can’t you tell me more about your computer adventures?”

“Queue, you got no inkling.” I took a deep breath and smiled. Keith was down in the basement making some tapes. “Talking openly like this gets me high. In cyberspace I sat on the back of an ant that found me in Nordstrom’s, and the ant shrank me down small and we crawled out a hole to the Antland of Fnoor. I guess that was a New Mystery. If I can get a cyberdeck up here, maybe I’ll take you there.”

“Do it!” Queue exclaimed. “But it has to be on the sly. You’re a computer criminal, Jerzy. I’m not going to dial up the Fibernet and ask them for a cyberspace account and then have everyone see Jerzy Rugby come out of my registered memory node.”

I thought for a minute. “Any good phreak or cryp would find a way. Maybe… maybe I could use the Animata’s satellite dish.”

“Your car has a dish?”

“It has a titanium-doped electronic Fresnel lens in the moonroof. My map machine uses the lens to pick up on navigational satellites.”

“Okay, this is starting to be interesting.”

“Can you let me have a little of your pot now, Queue?”

I got into a rhythm of commuting from Queue’s to West West every morning and working all day in my cubicle in the West West programmer pit two cells away from Russ Zwerg. Most nights I’d sit out on the deck with Queue and Keith and get high.

Carol? I saw her the next weekend, when I hired some movers to clear us out of Tangle Way. Carol, Tom, and Ida were there to help pack and sort.

The idea was to move some stuff to Carol and Hiroshi’s apartment, and some to a rented space in Crocker’s Lockers. It was the first time I’d seen Carol since the night the GoMotion ants got loose. She confronted me down in the kitchen, out of earshot from the kids and the movers.

“So you’re living with Queue? I guess that means you’re stoned all the time?” Carol didn’t particularly like drugs or drug culture, and she and Queue had never hit it off. As Carol once put it: “Queue thinks I’m corny and obvious, but she doesn’t realize that I think she’s corny and obvious.”

“No, Carol, I’m not stoned all the time,” I said defensively. “I’m hacking my brains out for West West is what I’m doing.”

“I’ll bet. What does Keith have to say about your moving in? Are they married?”

“He thinks it’s fine. Carol, all I’m doing is renting a room. I am not sleeping with Queue. She’s very committed to Keith. And no, they’re not married.”

“That’s because Keith doesn’t have an income. Queue looks out for number one. I bet she tries to marry you, Jerzy. She’s had her eye on you ever since you got the good job at GoMotion.” In imitation of Queue, Carol opened her eyes wide, threw up her hands, and rocked from side to side to simper, “Oh, Jerzy, you’re so smart and wonderful!”

“Give it up, Carol,” I snapped. “How can you be jealous when you’ve already left me for another man? It’s not logical.” Unexpectedly my voice cracked. “I can’t live alone, you know.”

Carol gave me a sudden, frank look, her eyes roving over every contour of my face. She was on the verge of tears. “Are we making a big mistake, Jerzy?” From upstairs came the heavy sounds of the movers. “Don’t you still want me?”

I silently embraced her, and the kids found us there like that. “Woo-woo,” they said, softly, hopefully. Carol and I broke the clinch and got back to the details of the move.

Outside, the reporters were on us like meat bees at a barbecue. I phoned Stu to come and make a statement to them. I stood by his side as they filmed us. Stu spoke slowly and with conviction. He was acting like a good lawyer, like a stand-up guy.

“Good morning, ladies and gentlemen of the press. My name is Stuart Koblenz, and I am Jerzy Rugby’s attorney.

“GoMotion Incorporated has chosen to try and make Jerzy Rugby the scapegoat for their own industrial accident. Mr. Rugby will enter pleas of innocent to all the charges placed against him. We are preparing vigorously for the trial. For obvious legal reasons, Mr. Rugby is unable to answer questions at this time.

“The fact that Mr. Rugby is moving out of this house today is a direct result of the continuing media harassment of this innocent man. I would strongly request that the press please respect the privacy of Mr. Rugby and his family in the weeks to come. Thank you.”

After this, none of us would say anything at all to the reporters, and they pretty much pulled back, though a few of them followed the moving van to get footage of Crocker’s Lockers and of Carol and Hiroshi’s apartment complex.

Under the terms of my bail, I’d had to tell the court about moving to Queue’s and, of course, as soon as the court entered it into their machine, all the Bay Area cryps could grok my new address. Most days a car or two would tail me both ways of my commute between West West and Queue’s-sometimes reporters, other times cops or dicks or industrial agents. Queue’s house was up off a locked private road which gave me some privacy there, and West West had a gated entrance as well.

Normally the cars that followed me would melt away at the gates, but the Monday evening after we’d moved out of Tangle Way, a guy jumped out of his car and headed for me while I was opening the gate.

“Jerzy!”

Our car engines were off and we were alone in the quiet under the redwoods. Wind soughed high in the branches above. The asphalt was thickly scattered with brown pine needles, and dappled with gold patches of setting sun. The person who’d called to me was a twenty-year-old boy with shoulder-length brown hair in rasta tangles; he was bouncy and skinny, with thin lips pulled back in an expression that was not quite a smile. He walked toward me. His hands were empty, but an odd little shape trailed along the pavement after him like a mascot. A toy animal? There was no time to look closer. I focused my attention back on the boy.

“What do you want?” I challenged.

“That’s awesome that you’re working for West West, cuz,” he said in a soft, trailing-off twang. He was right in front of me. The open Animata door was just behind me. I watched the boy’s big hands and feet closely for any sign of an attack. Something bumped against my foot.

I looked down: the boy’s mascot was a motorized toy truck with some circuit boards in its back. The truck had the head of a rubber cow glued to its front, and this is what was nudging me.

“Am I Hex DEF6 yet?” drawled the boy, and waggled his eyebrows like Bugs Bunny imitating Groucho Marx. He raised one hand and made a gesture of tapping ashes off an invisible cigar. “Big business. I’m most hellacious with family video.”

“You little creep.” I thought of the tortured cyberspace session I’d spent writhingly watching myself and my loved ones being tortured and killed. They’d pasted our faces into slasher movies and war footage-my mind kept coming back to the scene of Sorrel and Tom running down a bombed road in Vietnam, all their clothes burned off by napalm, Sorrel screaming and Tom’s mouth twisted into an unbearable dog bone of anguish. And the scene with Ida sobbing over my disemboweled corpse while the killer crept up behind her-I surged forward and got my hands around the boy’s neck. “I’ll kill you.”

Bruisingly he knocked my arms away and sprang back. “No harm, schoolmarm. It’s only software. Like the GoMotion ants.”

“Then the threats weren’t real?”

“I wouldn’t say that either. There’s always fireworks with a Chinese Dragon. You better deliver the goods for West West, Jerzy.”

“You work for West West?”

“No, bro.” The little robot truck had retreated to a safe distance when the boy and I had grappled, but now it came nosing up close to me again. It rose up and down on its tires, bucking like a low-rider and then actually jumping a couple of inches off the ground. It was cute, with the cow’s head and everything, but maybe there was like a hypodermic dart gun inside one of those soft rubber horns, a dart gun loaded with bio-hacker brainscramble. Not wanting to find out, I kicked hard at the side of the mascot. It dodged me and skittered away. I took the opportunity to hop back into my car and close the door.

“Come see me in cyberspace if you need any phreaking done,” said the boy. “That’s all I wanted to say. And don’t forget-don’t forget Hex DEF6.” Even though he was bareheaded, he made a hat-doffing gesture appropriate for a ten-gallon hat.

“Get out of here, you Texas prick.” I reached into my glove compartment as if I had something in there.

“I’m gone.” He drove off, and I went on up to Queue’s. Keith was sitting on the deck staring up at the trees. He was a peaceful person: big, healthy, and always high. We did two quick bowls of Queue’s bud.

“Hey, Keith, do you know where I could get a pistol?” I asked as the rush settled over me.

“Statistically, a gun is most likely to kill its owner or a member of the owner’s family,” said Keith mildly. “So why would you want one? Guns are bad karma.”

“A kid was threatening me down at the gate,” I explained. “He had sort of a mechanical cow. A little one.”

“What did the little cow do to you?”

“It just rolled around, but I felt like it was getting ready to attack me. Maybe it had a needle inside its horn. I wish I could have shot it.”

“I think that if you shot off a gun, the cops would revoke your bail, Jerzy. Why don’t I give you a staff instead.” Keith disappeared into the warren of the house and emerged with a thick, ornately carved redwood stick. “I made this. See the sacred energy symbols that spiral up around it? Keep it with you in your car.”

So instead of a gun I got a sacred staff.

Well that’s enough talk about the real world; now it’s time to talk about hacking.

For the longest time, the Kwirkey/SuperC logjam would not yield. West West was committed to using Kwirkey, which was the creation of one of Seven Lucky’s seven Taiwanese founders. And most of my coding experience for GoMotion was in SuperC, and all the Veep code which the West West cryps had copied was SuperC as well. But Russ Zwerg was working on the interpreter, or had one running, or was about to have one ready, wasn’t he?

On the surface, it seemed that the languages were easily interconvertible; it was just a matter of writing an automatic interpreter that knows that “A + B” in SuperC is “(+ A B)” in Kwirkey, and other stupid shit like that. Yet Kwirkey, being Lisp-grounded, had an utterly different idea of memory than did SuperC. Russ’s Kwirkey interpreter needed to waste megabytes of space and kiloclocks of time on creating and then cleaning up the “frame diagrams” required to convert Kwirkey commands into machine instructions. And there were lots of other things-maddeningly fiddling little thinglets that nobody except Sun Tam would ever want to have to know about.

Russ Zwerg was not a likable person, but I ended up feeling some sympathy and even respect for him as he hacked his way through the vicious undergrowths that separated the kingdoms of Kwirkey, SuperC, and the Y9707 machine language of the Adze.

While Russ hacked from within, I worked from without, getting familiar with Kwirkey by learning how to do some simple things. I was excited when my first Kwirkey program for the Adze actually worked; a program called Hello Squidboy.

There was a rudimentary cyberspace viewer connected to my desktop workstation. The viewer was like a pair of binoculars connected by a wire to the machine. Inside the binoculars were swinging inertial sensors that knew exactly to what position you turned the binocs. You could look all around a scene, and there were buttons on the binocs to zoom you forward, pan sideways, or whatever. It was as if you were looking through the viewfinder of a video camera while you moved your head.

When I ran the Hello Squidboy program on my machine, I’d see a little black-and-white copy of Our American Home with a model of Squidboy sitting in the kitchen. Whenever I moved my viewpoint into the kitchen, the Squidboy figure would wave one arm and say, “Hello Squidboy,” through my workstation’s speaker. It wasn’t much, but on any system, getting your very first program to run is half the battle. It’s like the first wheel, or the invention of fire. I began building on Hello Squidboy step-by-step, continually testing each improvement out in my workstation’s cheap cyberspace. Sun Tam helped me more than Russ did.

West West Home Products General Manager Otto Gyorgyi was calling Ben Brie in for daily meetings and asking him about my progress. Keep in mind that I was into West West for three million dollars at this point. No doubt Gyorgyi was wondering if just maybe what GoMotion said about me was true-that I was a destructive incompetent.

“Are you, Russ, and Sun ready to like schedule some milestones and benchmarks?” Ben asked me after a few days. He handed me some sheets of paper. “These are the Adze performance specs that Marketing has decided to run with. Janelle basically took the Veep specs and made everything twenty-five percent better. I’m going to feel a hell of a lot more confident about all this when our software starts doing more than saying, ‘Hello Squidboy.’”

I labored frantically to prove that I was indeed worth three megabucks, and slowly, as I dug deeper into Kwirkey, my feelings about the language underwent a flip-flop, the kind of flip-flop that had happened to me a dozen times before.

With a new language or a new machine, it was always like having someone say, “Here, Jerzy, here’s this list of part numbers, and here’s a picture of a car you can build with the parts,” and at first I would think, “Fuck this, I already know how to build a car with the old kind of parts I’ve been using,” but then I would get curious and start trying to use the new parts, and they’d be shaped weird-the new parts would have their own unfamiliar logic that at first I couldn’t accept-but then I’d manage to build a wheel and it would roll, and then I’d get more curious and start seeing cool things to do with the new logic, and by then I’d be well into the flip-flop. The fact that I was willing and able to do this to myself so often was what made me a hacker.

One of the things I began loving about Kwirkey was that it was a frobbable language. A frob is something you can pick up in the palm of your hand and walk off with, something about the size of a book of matches or the size of a trestle support for a model railway. Frob is a transitive verb as well. “Where did you get that cool spin button?” “I frobbed it from a dialog box.” High-level Kwirkey code was totally modular, with none of SuperC’s entangling data commitments, and you could frob Kwirkey code with a will.

I was ready to crank up a full-scale Kwirkey port of the SuperC bag of tricks that I’d written to work with Roger’s ROBOT. LIB machine code for the Y9707, but Russ’s automatic interpreter still wasn’t happening. Port was the word hackers used to mean taking software that worked on one kind of system and trying to get it to work on another kind; it was kind of like portaging a canoe on your head over rocks and through underbrush.

There was too much code for me to think of porting it by hand; even though I now understood Kwirkey, there were scads of little traps I wasn’t going to have time to figure out, lots of mosquitoes in the underbrush. Sun Tam knew about most of them, but the point was to have Russ automate the port. I began pestering Russ; I began reviling him for being so slow.

Russ’s verbal comments and e-mail messages grew ever more crazed and hostile. Even though we worked thirty feet apart from each other, we talked by e-mail lest we get involved in a public shouting match that might get us both fired. In our e-mail Russ called me a twit, a professor, and a charlatan; while I called him a lawn-dwarf, a dropout, and a nut.

An exceedingly hostile or schizophrenic e-mail message is called a flame. Even though Russ and I were still exchanging scientific information, we were at the same time in the throes of a flame war. But it didn’t really matter. As Roger Coolidge had once told me, “If you’re a serious hacker you don’t let flames bother you. Instead you grow thick scales.”

One fabulous Tuesday, two weeks after the GoMotion ant attack, something yielded, the jam broke up, and Russ had fully hacked a fast and beautiful Kwirkey/ SuperC interface. I could program the Adze in mixed Kwirkey and SuperC as transparently as if my hands were picking up sand dollars in clear water. I was like a kid in a candy shop. At the end of three dizzyingly wonderful hours, I found that I’d linked every single one of the Veep algorithms into our prototype Adze software. And, so far as I could check using the feeble cyberspace of my desk machine, my new code worked fine.

I told Russ and he was cautiously glad. Flame mode: Off. We hurried to the big Sphex monitor in the back room.

Jack and Jill, the jolly jock hackers, were on one of the machines, laughing excitedly and looking at their new program. The screen showed a box-shaped room that was full of tumbling three-dimensional boxes. The boxes were translucent and inside each box were more boxes, also translucent, and also with boxes inside them. It went down for as many levels as the screen resolution could handle.

“This is our new Kwirkey interface,” explained Jack when he noticed me watching. “Jill calls it Gizmos.” The boxes made noises as they bounced around, noises like boing whumpa boing. Jack’s pale eyes were glowing with excitement.

Brown-eyed Jill flew our view down into one of the boxes and the box seemed like the whole room. The boxes were moving so fast and smoothly that it was totally hypnotic to look at. Jill zoomed down and down through the rooms and eventually the view was the same as the start room. “We keep the top views down inside each of the smallest boxes,” said Jill. “So it has circular scale.”

“Or sideways scale,” put in Jack, making a gesture with his gloved hands. A web of lines sprang onto the screen, lines like bungee-cords connecting the wild boxes. “These are the bindings.”

“What are the boxes?”

“The boxes are gizmos,” laughed Jill and started moving her hands around, panning and zooming her gesturing glove icons about in the virtual space of the interface. The boxes became clothed in translucent shapes-a shovel, a crow, a house, an oak tree, a Scotty dog. Jack reached in and adjusted the cables between the gizmos; they began to writhe and move in twisty, nonlinear ways.

“So far we’ve been single-stepping,” said Jack. “But now I can speed it all up.” He made a fist of his hand and the images blurred with smooth, rapid motion. “And then it converges on one of the limit cycles of the attractor. Check it out, Jerzy.”

The images had locked into slow, deeply computed interactions. I was looking at an oak tree in front of a house, with a Scotty dog running around the yard. There was a ditch with a shovel next to it; the Scotty jumped over the ditch. The crow sailed down from the tree and cawed at the Scotty. The Scotty barked and jumped back over the ditch.

“Gizmos are object-oriented Kwirkey frames,” said Russ, who always made a point of knowing what his fellow programmers were up to. “Self-modifying structures of data and function pointers.”

Jack interrupted. “You should use it for the Adze. A gizmo could be an Adze eye or wheel or neural array. A gizmo can be a user, or it can be something the user wants to do.”

“Gizmos are God,” said Jill. She looked calm and pleased.

“So when are you guys going to have your Adze code happening?” asked Jack. “I’m ready to try and gizmofy it.”

“I think it’s working now,” I said. “Now that Russ has finished his port.”

“Show me now,” said Russ coldly.

We left Jack and Jill, who got back to their boxes. Sketchy Albedo was on the other Sphex. Janelle Fuchs had been praising Sketchy to me. “He’s a skater,” she’d told me. “ Sketchy is a skater word. He’s a fun guy at a party. He just likes to harsh on older men. He doesn’t mean anything by it.” For his part, Sketchy had decided I was okay when he found out about the wide range of court charges against me. I was practically a cryp.

“Gronk,” said Russ to Sketchy. “Gronk gronk gronk.” Russ squinted his eyes shut and opened his mouth wide as he did this. He tilted his head back so that his beard rose up off his chest. God he was ugly.

“Russ means can we use the machine,” I said.

“The lawn-dwarf and the twit,” said Sketchy, quoting from our private e-mail flame letters. Sketchy read whoever’s e-mail he felt like. “I was thinking-can you spazzes teach Squidboy to skate?”

“Maybe,” I said. “Provided there’s a physically accurate cyberspace skate simulation that the program can practice in.”

“Sure there’s a program like that,” said Sketchy. “ Cyberskate. Silicon Graphics ships it with their deck along with a spring-mounted feely-blank skateboard that you stand on for your interface.”

“If someone could set up message-passing between Cyberskate and the Adze code it would be feasible,” said Russ. “But neither of you amateurs has a prayer of doing it, and I’m not about to. Guess what?” Russ mimed a false hobbit smile, then scowled and began yelling, “Marketing has gotten Brie and Gyorgyi to sign off on a schedule which gives Sun Tam, Jerzy, and me six days from now to give Developer Services and Quality Assurance some working code. That’s next Monday. So get your feeble butt off the Sphex! For future reference: that’s what gronk stands for!” Sketchy sprang up and Russ plopped himself down into the Sphex’s Steadiswivel chair. I sat down next to him, and we each pulled on two gloves.

Sketchy had ridden the viewer into a cyberspace library that looked like a British club, with parquet walls and leather furniture, though the tuxedos of the people in it were odd as surrealist cartoons-a giant duck, a stepping razor, a clam with teeth, and a staticky bit of cloud. To make it the gnarlier, the tuxedos were morphing themselves among several alternate shapes as we watched. The duck slowly transformed into a rabbit and then back into a duck. The cloud molded itself into a series of tornado shapes, and then into something like a Corinthian column.

“This is the Cryp Club library,” explained Sketchy. “No phreaks allowed.”

“How do you tell who’s who?” I asked.

“We all know who we are,” said Sketchy. “Cryps work for money, and phreaks just do it to be weird, though sometimes a phreak will take money, too. Phreaks are younger, mostly. It’s almost like two gangs. If I showed up in the phreak library, somebody would try to burn me.”

“Speaking of cryps and phreaks,” I asked him, “do you know anything about Hex DEF6?”

“Hex DEF6!” Sketchy looked surprised. “That’s the third time I heard that in the last two days.”

“Where?”

“Yesterday it was written on the wall in spraypaint over there.” He pointed toward one of the library walls that swept by as Russ steered us toward the exit node that hovered in the middle of the library like an oversize world globe.

“It’s very incorrect,” continued Sketchy, “to deface the Cryp Club library. So of course nobody would cop to it. I cleaned it off myself; it was my day for maintenance duty. Maybe a phreak got in and did it. If we catch him we’re going to burn him bad.”

Russ jumped into the exit node and brought us out in the Bay Area Netport. The huge Beaux Arts architectural space stretched out before us, with spherical hyperjump nodes all along the ceiling, floor, and walls.

“The second time I heard of Hex DEF6 was this morning,” continued Sketchy. “A phreak was trying to bust into the West West node. The dude’s tuxedo looked like a canvas mask with a zipper instead of a mouth. I iced him and he left, but before he left he gave me the finger and said his name was Hex DEF6. And now you’re asking me about him. That’s three times in two days. So, yeah, what is Hex DEF6?”

With quick jerky movements, Russ was steering the viewpoint across the Netport to the West West node, a shiny copper ball decorated with the West West WW logo that was, Janelle had told me, the same as the old Meta Meta MM logo upside down. We slid through the surface of the ball and saw an aerial view of the West West building plus a virtual housing development of Our American Homes set up out in back of the parking lot. At my request, Sun Tam had installed 256 of them; it was as many as the West West computers had room for. It took a petabyte of memory to maintain this big a subdivision of Our American Homes.

“I saw that zipper-mouth Hex DEF6 with a bunch of GoMotion ants a couple of weeks ago,” I said. “He told me he’d injure me and my children if I didn’t work for West West. And this week a kid followed me home and said that he was Hex DEF6, or that he worked for him or something. But you don’t think West West is behind it?”

“Sounds like a phreak burn to me,” said Sketchy.

“Sorry to interrupt these exciting spyboy adventures,” said Russ, using the standard hacker insult for cryps and phreaks. “But where’d you put your Adze code, Jerzy?” He was hovering over my virtual desk, right there in the model of my cubicle in the pit.

“I’ll get it.”

I pulled open the virtual desk’s top drawer to reveal a three-dimensional chrome box with a socket and a keyhole in it. Written on the box in flowing gold cursive was SuperC/Kwirkey For Adze, Jerzy Rugby. There was no way to pick the box up, as I’d permanently attached it to the cyberspace aether-meaning that there was no way to change the box’s location coordinates without destroying it. To use the software you had to unlock the box with a key.

The key I kept hidden in my lower drawer, which was filled with a mess of several hundred random solid 3-D images. Today I had the key hidden inside a sword-fish. I took the thrashing swordfish out of the drawer and zoomed down onto the third spine of the dorsal fin. Stuck down at the spine’s base was the billion-bit key I’d generated last time I locked the program. It looked like a wriggly piece of wire with a round handle on one end. I pulled the wire out from the base of the swordfish’s fin-spine, put the swordfish away, and stuck the key into the software box. Now it was unlocked.

Russ pulled down a cable icon with his data glove. He stuck one end of the cable into my software box’s socket and held on to the other end of the cable as he flew up out of the virtual West West building and over to the nearest model of Our American Home. Russ pushed the doorbell and Perky Pat Christensen came to the front door and opened it.

“Walt and I are so glad you came. Dexter and Scooter are here as well!” She moved with the angular abruptness of a virtual Barbie doll, which was no surprise, as GoMotion had licensed the CyberBarbie surface meshes and joint-constraints from Mattel. Well, actually, GoMotion hadn’t licensed the info, Trevor had simply crypped it from Mattel. And then Sketchy had crypped it from GoMotion. It seemed Mattel didn’t have a clue.

We flew on into the kitchen, Russ still holding the infinitely stretchable cable in his hand. Virtual Squid-boy was sitting there in his nest, his food cord plugged into the wall. Russ opened the little door in Squidboy’s back, stuck the cable into the back of Squidboy, and squeezed the cable’s Download lever as if he were filling Squidboy up with gas. Once the download was over, Russ pulled out the cable and said, “Kwirkey Run.” Squidboy sat up and looked around. Russ flew up to join me on the ceiling.

Young Dexter Christensen wandered into the kitchen and glanced up at us. In this simulation, we looked like gloved hands attached to matchstick arms, but Dexter talked to us just the same.

“Wow! Are you startin‘ up the robot?” asked Dexter.

We didn’t bother answering him.

“Hello Squidboy,” chirped Squidboy, waving his tentacle.

“Hi, Mr. Robot,” said Dexter. “Do you wanta play?”

“Wanta play?” echoed Squidboy. We’d started him from a blank state and he was in language acquisition mode.

“Let’s go in the living room,” said Dexter and reached out toward Squidboy’s left-hand pincer-manipulator. To my horror, instead of gently taking the boy’s hand, Squidboy darted rapidly forward and slashed into the boy’s abdomen with inhuman fury.

“Hello Squidboy,” said the virtual machine, peering at the trashed geometry that had been the lad’s body. “Wanta play? Hello Squidboy. Wanta play?”

“Kwirkey Halt,” said Russ, and Squidboy and the Dexter-fragments stopped moving. Russ turned to me, a savage gleam in his eye. “What do you bet it’s your fault?”

“My code was fully tested for the Veep,” I spluttered. “Keep in mind that the Adze is a different machine. And of course it could be your port that’s causing the problem.”

“You wish,” said Russ, then spoke again to the Kwirkey operating system that was running this simulation. “Kwirkey Debug!”

A ray-traced retrocurved chrome figure appeared in the cyberspace of the kitchen.

“I am Kwirkey Debug. I am ready.”

Rather than being the tuxedo of a living user, this was a so-called daemon, a construct projected by autonomous software. In cyberspace, daemons had taken the place of menus and command-line interpreters. The GoMotion ants were daemons, too, though daemons of a much different order.

“Hello Kwirkey Debug,” said Russ. “I’m Russ and this is Jerzy. We want to set a breakpoint.”

“Which kind of breakpoint? At address, changed memory global, expression true, or hardware interrupt?” inquired the daemon. S/he spoke in a cool androgynous tone. Some goofing hacker had set the daemon’s tux to morph-wander slowly about in a parameter space that let her/im vary between male and female and between fat and thin. As we watched, the daemon changed from a fat man to a muscular woman to a skinny man-but all the while s/he was made of rippling, reflective chrome. Hackers were suckers for ray-traced chrome, also it was computationally cheap thanks to the new quaternion-based Mori-Kuzin hack, which had been the exclusive property of Unisys for about a week until a phreak called Phineas Phage had broadcast the source code all over cyberspace.

“Break when the following expression is true,” said Russ. “ Squidboy’s pincer intersects Dexter’s chest.”

“Breakpoint is set,” said Kwirkey Debug.

“Reset and run,” said Russ.

The kitchen flickered as Kwirkey Debug reinitialized it. Now Squidboy was in his nest, and Dexter was coming in again. Kwirkey Debug stood off in a corner, staring at Dexter’s chest.

Dexter Christensen glanced up at us, moving his head like a very old man.

“Wow! Are you startin‘ up the robot?” slurred Dexter. His voice was deep and grainy. The code ran substantially slower with the breakpoint on, so that Kwirkey Debug could be sure not to miss the exact instant when Squidboy hit Dexter.

“Hello Squidboy,” groaned Squidboy. He sounded like the cartoon voice of a giant octopus in an underwater treasure cave.

“Hi, Mr. Robot,” oozed Dexter. “Do you wanta play?”

“Wanta play?” mocked sepulchral Squidboy.

“Let’s go in the living room,” drooled Dexter and reached out for Squidboy’s pincer. Moving at a speed that was fast even under slo-mo, Squidboy swung his left arm forward in a hard, flat arc that…

“Breakpoint,” said Kwirkey Debug. “Squidboy’s pincer intersects Dexter’s chest.”

Squidboy stood frozen in place with the tip of his left-hand manipulator poised daintily against Dexter.

“Show us a chart of Squidboy’s attribute variables,” said Russ.

Kwirkey Debug gestured with two hands and a small chart sproinged into existence. On the left of the chart were the names I’d assigned to Squidboy’s variables, and on the right were the variables’ numeric values. We scrolled the chart up and down, looking things over.

“How about that variable there called stroke_persist,” said Russ presently. “It’s set to 4,294,967,289.” He paused gloatingly. “You jack-off.”

“Oh hell.” Stroke_persist was supposed to be a small integer like three or minus eleven or something. It measured how hard Squidboy pushed against things. With a stroke_persist value of four billion, Squidboy’s normal motions would become amplified so much that he must perforce slash into those around him. How had stroke_persist gotten to be four billion?

“Kwirkey Debug,” I said. “Please set a breakpoint for the following condition: Squidboy’s stroke_persist is larger than four billion. Then reset and run.”

“Yes,” said Kwirkey Debug.

On the third run, the breakpoint tripped as Dexter reached for Squidboy’s left hand.

“Show us the source code with the instruction pointer,” I said.

Another chart appeared, and*bingo* there it was, our breakpoint had kicked in right after an instruction that set stroke_persist equal to -7. This is what it was supposed to do; the 7 meant move softly, and the minus meant you’re using your left arm. But Russ’s Kwirkey translator had decided that stroke_persist was always to be a positive number, and if you view a thirty-two-bit representation of -7 as a positive number, you think it’s 4,294,967,289.

I started trying to explain this to Russ, but instead of letting me finish he rudely yelled that using minus for left-hand had been a stupid trick in the first place, and that now it was worse than stupid, it was unusable since Squidboy had three, hands. Funny I hadn’t thought of that. I recovered by pointing out that Russ had no business assuming that all of Squidboy’s state variables were positive integers. Russ countered that he needed to assume all numbers to be positive so that the ROBOT. LIB calls could be made at maximum speed, thus guaranteeing that “his” code would run faster than the “kludgey” code for the Veep. He said that if I wanted to keep track of left, right, and middle, I should use a separate flag variable instead of trying to do it with negative numbers. I began to respond that…

“Let’s go ahead and fix the first bug and see what happens next,” said Sun Tam quietly. Russ and I had been so absorbed in the Sphex’s cyberspace, and in our quarreling, that neither of us had noticed when Sun sat down next to us.

“Edit code,” said Russ to Kwirkey Debug, and the silver figure produced what looked like a large pink rubber eraser. “I ONLY MAKE BIG MISTEAKS” was printed on the eraser-some West West hacker’s idea of a joke.

“This is too stupid,” I said. “I’ll fix it on my own machine. Let’s meet back here in an hour.” I went back in the pit and squeezed all the negative numbers out of my program. It was, as Russ had suggested, a matter of using a two-bit hand_flag variable to do what the minuses had done. I used hand_flag 0 for LEFT, 1 for MIDDLE, and 2 for RIGHT; which meant that binary 00, 01, and 10 stood for, respectively, the pincer, the tentacle, and the humanoid hand. First the new code wouldn’t compile (in my excitement I’d left out a “;”), then it compiled but crashed (I’d forgotten to rebuild one of the submodules with the new header file), and then*siiigh* my quick fix was done. I rushed back to the Sphex. Russ and Sun Tam were waiting.

Russ downloaded the new code and said, “Run.”

This time Squidboy and Dexter made it into the living room.

“Hi there,” said Perky Pat brightly. She was sitting in an armchair watching television. Walt was passed-out drunk on the couch, and Baby Scooter was lying on the floor gumming a filthy teething ring. The screen of the virtual TV against the wall was painted with changing real-time network television. I could clearly hear the TV voices through the Sphex speaker. Just now a newscaster was saying that a judge had denied Stu’s pretrial motion to have my venue moved out of Silicon Valley. “So Jerzy Rugby’s state trial on charges of criminal trespass, computer intrusion, and extreme cruelty to animals is still scheduled to begin the week after next in San Jose,” the newscaster said. “Thursday, May 28. This network will be providing special coverage of that trial.”

I was so involved in listening to the TV that I wasn’t watching when Squidboy veered too far around Baby Scooter, lost his balance, and fell onto Walt’s neck. I looked just in time to see Walt’s head come off and fall onto the floor. It made a nasty thump.

“Oh, no way!” I cried. “Squidboy didn’t hit him that hard.”

“Let’s just fix it,” said Sun Tam. “Kwirkey Debug, reset and run to the point where Squidboy passes Baby Scooter.”

This time there was nothing grossly wrong with any of the values in Squidboy’s registers. We single-stepped the code forward, watching the numbers. The value of the direction_angle started doing something queer just before Squidboy fell over: it began oscillating irregularly between two, then four, then eight values, and then burst into what looked like totally random fluctuations.

“I recognize that behavior,” I said, talking quickly before Russ could start up with the insults. “That’s the period-doubling route to chaos! No problem. It’s because I use a nonlinear formula to damp the jitter out of direction_angle. I use a preset constant called FEEDBACK_DAMPER. But the damping’s not working anymore. We’re getting the opposite of damped feedback; we’re getting feebdack, right, Russ? Ha, ha!” I was feeling hackish and manic. “Well, that’s just because the Adze is different from the Veep. All I need to do is tweak the FEEDBACK_DAMPER value. Kwirkey Debug, I want to edit the constant definitions file. And put away that stupid eraser.”

I changed FEEDBACK_DAMPER from 0.12 to 0.13.

“Compile, reset, and run.”

This time, instead of overavoiding Baby Scooter, Squidboy locked into a death spiral that wound around and around Baby Scooter until Scoot’s geometry was churned into crooked fnoor.

“I thought you said you had the Adze code wired,” snarled Russ. “You fucking loser.”

“It’s a chaotically sensitive system,” I cried. “I tweaked it specially for the GoMotion Veep with genetic algorithms. I’m not surprised it isn’t working yet. Even though the Veep and the Adze use the same Y9707 chip, their sensors and effectors are different in hundreds of ways. They have different bodies.”

“Your control algorithms seem to be very sensitive,” said Sun Tam. “You change the second digit of FEED-BACK_DAMPER and Squidboy kills Scooter instead of Walt?”

“Yeah,” I said. “And maybe the value halfway in between will work. Say 0.125. But maybe not. Maybe FEEDBACK_DAMPER needs to be 0.124. The only way to find the right number is through trial and error. And even if you get one parameter right, you might need to change it again after you change some other parameter. You’re searching a multidimensional chaotic phase space.”

“So you’re telling us that robot software is impossibly difficult to program,” said Russ flatly. He looked sad. “And the Adze is never going to work.”

“It’s not impossible,” I said. “It’s just that we need to use genetic programming to find the right parameter settings. That’s why I made Sun Tam put up 256 Our American Homes. We’ll use genetic programming and everything will be fine.”

“How?” asked Sun Tam.

“We put a Squidboy instance into each of the 256 Our American Homes, and select out, say, the 64 parameter sets that give the best behavior. Then we replace the worst 64 sets with mutated clones and crossovers of the genes in the top 64,” I explained. “And you leave the 128 medium-scoring guys alone, or maybe mutate them a little. On the next cycle some of the middle guys might do better than average, and some might do worse.” Russ was starting to grin. I was getting over. “So that we don’t have to monitor it, we give all the Squidboys some simple machine-scored task. To begin with, the task will be walking into the living room without killing anybody. And once it can do that, we try a different task. The process works, I promise you.”

“Let’s help him get it started, Russ,” said Sun Tam.

“Gronk,” said Russ.

We got it happening late that afternoon, and by the next morning, the parameters were such that Squidboy could follow Dexter around the Christensens’ house without breaking anything or hurting anyone-at least in the default Pat-sitting. Walt-sleeping. Dexter-roving. Scooter-teething configuration. Now we needed to look for more difficult configurations.

I got Ben to come and see what we’d achieved so far. He was favorably impressed, though still very worried about our being ready for the product rollout scheduled for Tuesday, May 26, a mere two weeks away. Sun Tam got Ben to allocate wireless pro-quality cyberspace headsets for the three of us. We continued working in front of the Sphex, but now instead of the bogus shared look-through Abbott wafer display, we had true immersion.

We set up a virtual office down on the asphalt next to the Our American Homes and began spending almost all our time there together in our tuxedos. I was an idealized Jerzy in shorts, fractal shirt, and sandals- my tux that I’d bought from Dirk Blanda. Sun Tam’s tux showed a lanky gunslinger. Russ was a pagan hobbit with shades, a nun’s habit, and seventeen toes.

Every now and then I’d look up into the cyberspace sky and see the spherical green-and-gray Netport node up there like a low-hanging harvest moon. Sometimes, when the hacking was getting old, I’d feel trapped. I was stuck in a parking lot by a field of tract homes in a boring part of San Jose. I would wish I could fly away to see what the GoMotion ants were doing, out there in the Antland of Fnoor. People said there were still GoMotion ants loose in cyberspace, but we weren’t seeing any of them at West West.

To continue improving the Adze code, we began making the Our American Home test beds more difficult. We began breeding for bad Our American Homes. Each Our American Home setup could be described by its own parameter set, and we began selecting out the 64 Our American Homes that got the worst scores for their Squidboys, and at the same time singling out the 64 Our American Homes whose Squidboys did the best. And then we’d replace the parameter sets of the mellow 64 homes with mutated clones and blends of the parameter sets of the 64 worst Our American Homes, and let the 128 homes in the middle ride along for another cycle.

After a few days of this, the Our American Homes were pretty bizarre-like imagine your worst nightmare of a subdivision to live in. In one house you could see Pat throwing dishes at Walt. In another, Dexter was taking a crap on the front steps. In another, a flipped-out Pat was in the kitchen setting the drapes on fire. In another, drunk Walt hunted the robot with an axe. In another, Scooter was sitting on the ledge of a window holding a carving knife. And in each of the bad Our American Homes, a desperate Squidboy did his best to fit in. Some of the Squidboys did better than others, and those were the ones who would get bred onto the genes of the Squidboys who lost.

By that Friday, it began looking like the Adze could work. We let the gene tweaker run for the whole weekend, and on Monday, May 18, Russ, Sun and I floated in cyberspace looking fondly down at 256 Squidboys doing good things in all the different Our American Homes. We were the gods of this ticky-tacky little world, this sinister Happy Acres.

“It’s time for me to do my thing,” said Sun Tam. “Let’s hit the Rubber Room, guys.”

I was scared; I was always especially scared when we started up one of these powerful robots with code that I’d worked on. I knew all too well how fallible I was. Another worry was that the GoMotion ants might infest Squidboy and take over-even though we’d been sure to copy the incomprehensible encrypted machine language bits of a GoMotion ant lion into his code.

Ben went into the Rubber Room with us and picked up the remote On/Off switch as before. If Squidboy killed one of us, it would be West West’s responsibility, and it would be Ben’s job to take the fall.

As before, the Rubber Room held a practice staircase, soft mannequins of the Christensen family, a fridge, a Plexiglas door, and some furniture. Dome-head Squidboy was there, squatting down on his wheels. We waited behind the big waist-high table by the door while Russ stuck our new program disk into Squidboy. Russ ran back to us and Ben pressed the On button.

The robot hummed into life, scanned around the room, and said “Hello Squidboy.”

“Squidboy,” said Ben. “Go to the fridge and get Perky Pat a bottle of Calistoga water.” Squidboy smoothly turned toward the refrigerator and started rolling. When he got to the movable Plexiglas door, he slowed and used his tentacle to open it.

“Good going,” murmured Sun Tam.

Squidboy got the bottle out of the fridge, went back through the door, pulled up next to the seated Perky Pat doll, unscrewed the bottle cap, and set the bottle down on the table next to her.

“All right!” I said.

“Squidboy, go up and down the stairs,” said Ben. Squidboy made it up the stairs okay, but-he fell over on his way down.

In every program there’s one killer problem that tortures you the most. In the case of Squidboy it was stairs. I was damned if I could get them right. As the coming days wore on, I began to realize that my having gotten the parameters right for the Veep so quickly had been blind luck. No matter how long I genetically evolved the Squidboy stair-climbing procedure, the damn machine always ended up falling over on the way down. Fortunately the Rubber Room had a soft floor.

I spent the next four days driving around inside Squidboy, single-stepping with all the variables in watch mode, perturbing and reevolving the parameters, and trying new hand-coded ideas for the staircase procedures. I was hacking all the time and thinking about nothing but the software… dreaming of bytes, xors and shifts, of memory allocations and data structures. On Friday, I came up with a desperate brute-force measure that made Squidboy climb stairs quite a bit more slowly than Studly had, but Squidboy stopped falling over.

Meanwhile Ben had already sent the Adze program to the West West software build group, who were sending us bug reports to the tune of two dozen a day. I was busy with the stairs, but doughty Russ and Sun dug in and fixed the bugs as fast as they came.

Friday afternoon West West started final code integration. We worked straight through Saturday and Sunday, testing the builds and adding final tweaks. The official Adze 1.0 build tested out copacetic on Monday. On Tuesday, the official product launch was held in a big ballroom in the San Jose Fairmont Hotel. We’d beaten out the GoMotion Veep launch by one day. Hurray!

Загрузка...