/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 11, 1993 8:17:06 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGOutlineImplA, module: GGOutlineImplA */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [4217845748,475872771] GGOutlineImplA";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W16 f; W3 r;} W19;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef W6 *W6Pt;
typedef struct {W8 f; W4 r;} W12;
typedef struct {W8 f; W3 r;} W11;
typedef W2 *W2Pt;
typedef struct {W8 f; W5 r;} W13;
typedef W3 *W3Pt;
typedef W5 *W5Pt;
#define SOURCE(p, l) /* source p, l */
static float fc93 = 0.5;
static float fc101 = 8802.04;
static float fc250 = 8810.24;
static float fc281 = 8803.24;
static float fc286 = 8702.26;
static float fc373 = 0.0;
static void NoName←Q8412();
static void GGOutlineImplA←P0();
static word BuildOutlineSliceClass←P60();
static word BuildClusterSliceClass←P120();
static word OutlineFromChildList←P180();
static word ClusterFromChildList←P240();
static word OutlineDescribe←P300();
static word ClusterDescribe←P360();
static word ClusterCopy←P420();
static word DoCreateCluster←P3924();
static void ClusterDrawSelectionFeedback←P480();
static void ClusterFileout←P540();
static word ClusterFilein←P600();
static void ClusterMovingParts←P660();
static void Unlink←P720();
static word GetBoundBox←P780();
static word GetTransformedBoundBox←P840();
static word GetTightBox←P900();
static word OutlineCopy←P960();
static word DoCreateOutline←P4752();
static word Copy←P1020();
static word AddChild←P4860();
static void CopyWholeTraj←P4968();
static word VisitChild←P5028();
static void Restore←P1080();
static void OutlineBuildPath←P1140();
static void OutlineDrawBorder←P1200();
static void OutlineDrawParts←P1260();
static void BuildOutline←P5664();
static word RenderChild←P5820();
static void DrawParts←P1320();
static void OutlineDrawTransform←P1380();
static void BuildOutline←P6024();
static void DrawTransform←P1440();
static void DrawSelectionFeedback←P1500();
static void OutlineDrawSelectionFeedback←P1560();
static void DrawAttractorFeedback←P1620();
static word AttractorFeedbackBoundBox←P1680();
static word ChildPartsFromParts←P1740();
static void SaveSelections←P1800();
static word RemakeSelections←P1860();
static void Transform←P1920();
static word FirstChildProc←P6756();
static word RestChildProc←P6816();
static word OneChildPartOnly←P1980();
static word Describe←P2040();
static word DescribeHit←P2100();
static void Fileout←P2160();
static word Filein←P2220();
static void OutlineFileout←P2280();
static word OutlineFilein←P2340();
static void ComplainAboutFile←P2400();
static word NoName←Q8472();
static word IsEmptyParts←P2460();
static word IsEmpty←P2520();
static word IsCompleteParts←P2580();
static word IsComplete←P2640();
static word NewParts←P2700();
static word UnionParts←P2760();
static word DifferenceParts←P2820();
static void OutlineMovingParts←P2880();
static void MovingParts←P2940();
static word AugmentParts←P3000();
static word AlterParts←P3060();
static word OutlineFirstChild←P3120();
static word OutlineLastChild←P3180();
static void SetSelectedFields←P3240();
static word PointsInDescriptor←P3300();
static void WalkPointsInDescriptor←P3360();
static word PointPairsInDescriptor←P3420();
static word SegmentsInDescriptor←P3480();
static void NextSegment←P3540();
static word WalkSegments←P3600();
static void NextPoint←P3660();
static void NextPointPair←P3720();
static void NoName←Q8532();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\354\000\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[4];} string3 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\144\000\000"};
static struct {unsigned f; char r[4];} string5 = {196611, "\004@\321"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\373\147\067\364\300\034\135\076\003\105\060\000\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\311\023\117\300\300\337\236\305\170\100\164\000\000"};
static struct {unsigned f; char r[4];} string9 = {196611, "\004A6"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\324\000\000"};
static struct {unsigned f; char r[32];} string11 = {1966110, "\006\015\000\001\004\001\010\001\034\001\040\001\044\001\050\001\054\001\060\001\064\001\074\001\100\110\001\100\130\001\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\125\044\051\337\300\130\157\071\243\100\324\000\000"};
static struct {unsigned f; char r[16];} string13 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\224\000\000"};
static struct {unsigned f; char r[4];} string15 = {131074, "\004\011\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\373\147\067\364\300\034\135\076\003\105\030\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\311\023\117\300\300\337\236\305\170\100\214\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\210\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\373\147\067\364\300\034\135\076\003\105\000\000\000"};
static struct {unsigned f; char r[48];} string20 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\371\314\343\307\300\031\056\017\130\100\324\005\004\162\145\163\164\214\216\257\300\371\314\343\307\300\031\056\017\130\100\324\261\000\000\000"};
static struct {unsigned f; char r[48];} string21 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\247\365\203\234\300\047\265\225\046\100\324\005\004\162\145\163\164\214\216\257\300\247\365\203\234\300\047\265\225\046\100\324\261\000\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\050\000\000"};
static struct {unsigned f; char r[4];} string23 = {131074, "\004\007\000"};
static struct {unsigned f; char r[44];} string24 = {2752556, "\260\006\005\146\151\162\163\164\257\300\015\277\004\146\300\034\367\146\045\112\114\005\004\162\145\163\164\214\257\300\015\277\004\146\300\034\367\146\045\112\114\261\000"};
static struct {unsigned f; char r[28];} string25 = {1572888, "\006\002\000\007\000\040\016\000\003\001\000\000\000\000\014\014\000\014\014\014\014\000\010\001\000\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\311\023\117\300\300\337\236\305\170\100\244\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\106\354\000\000"};
static struct {unsigned f; char r[8];} string28 = {262148, "\004\200@\034\000\000\000"};
static struct {unsigned f; char r[4];} string29 = {196612, "Box"};
static struct {unsigned f; char r[8];} string30 = {458760, "a Slice"};
static struct {unsigned f; char r[32];} string31 = {2031648, "several parts of a multi-slice "};
static struct {unsigned f; char r[4];} string32 = {196612, "No "};
static struct {unsigned f; char r[20];} string33 = {1245204, " parts to speak of."};
static struct {unsigned f; char r[48];} string34 = {3014704, ". . . Cannot Fetch Joints or CPs by themselves\000"};
static struct {unsigned f; char r[12];} string35 = {524300, "child %g\000\000\000"};
static struct {unsigned f; char r[4];} string36 = {196612, "/%g"};
static struct {unsigned f; char r[4];} string37 = {131076, ": \000"};
static struct {unsigned f; char r[52];} string38 = {3342388, "Unmatched outline and hitData in OutlineDescribeHit"};
static struct {unsigned f; char r[16];} string39 = {983056, "Children: [%g]\012"};
static struct {unsigned f; char r[12];} string40 = {589836, "Children:\000\000"};
static struct {unsigned f; char r[16];} string41 = {851984, "Trajectories:\000\000"};
static struct {unsigned f; char r[8];} string42 = {393224, "Parent\000"};
static struct {unsigned f; char r[20];} string43 = {1179668, "NIL child detected\000"};
static struct {unsigned f; char r[44];} string44 = {2687020, "parental object with no children detected\000\000"};
static struct {unsigned f; char r[12];} string45 = {720908, "fillColor: "};
static struct {unsigned f; char r[8];} string46 = {327688, " ow: \000\000"};
static struct {unsigned f; char r[12];} string47 = {720908, " fillText: "};
static struct {unsigned f; char r[12];} string48 = {655372, "fillColor:\000"};
static struct {unsigned f; char r[4];} string49 = {196612, "ow:"};
static struct {unsigned f; char r[12];} string50 = {589836, "fillText:\000\000"};
static struct {unsigned f; char r[12];} string51 = {655372, "strokeEnd:\000"};
static struct {unsigned f; char r[12];} string52 = {655372, "not a file\000"};
static struct {unsigned f; char r[36];} string53 = {2162724, "Filein Error for %g: %g slice, %g\000\000"};
static struct {unsigned f; char r[12];} string54 = {589836, "Complaint\000\000"};
static struct {unsigned f; char r[12];} string55 = {524300, "Gargoyle\000\000\000"};
static struct {unsigned f; char r[8];} string56 = {262152, "Traj\000\000\000"};
static struct {unsigned f; char r[52];} string57 = {3145780, "Unmatched outline and hitData in OutlineNewParts\000\000\000"};
static struct {unsigned f; char r[8];} string58 = {458760, "Forward"};
static struct {unsigned f; char r[12];} string59 = {524300, "Backward\000\000\000"};
static struct {unsigned f; char r[8];} string60 = {262152, "Grow\000\000\000"};
static struct {unsigned f; char r[16];} string61 = {851984, "ShrinkForward\000\000"};
static struct {unsigned f; char r[16];} string62 = {917520, "ShrinkBackward\000"};
static struct {unsigned f; char r[8];} string63 = {458760, "frozen:"};
static struct {unsigned f; char r[12];} string64 = {524300, "frozen: \000\000\000"};
static struct {unsigned f; char r[8];} string65 = {458760, "cluster"};
static struct {unsigned f; char r[8];} string66 = {458760, "outline"};
static struct {unsigned f; char r[8];} string67 = {458760, "Cluster"};
static struct {unsigned f; char r[8];} string68 = {458760, "Outline"};
static struct {unsigned f; char r[16];} string69 = {851984, "\257\300\373\147\067\364\300\034\135\076\003\100\164\000\000"};
static struct {unsigned f; char r[16];} string70 = {851981, "\006\003\024\001\030\001\100\200\010\000\004\050\001\000\000"};
static struct {unsigned f; char r[16];} string71 = {851984, "\257\300\322\334\347\304\300\124\107\000\027\100\150\000\000"};
static struct {unsigned f; char r[16];} string72 = {851984, "\257\300\344\212\014\176\300\070\230\121\123\100\150\000\000"};
static struct {unsigned f; char r[16];} string73 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string74 = {851984, "\257\300\231\005\151\136\300\275\231\323\274\100\150\000\000"};
static struct {unsigned f; char r[8];} string75 = {1195855733, "tline"};
static struct {unsigned f; char r[16];} string76 = {851984, "\257\300\311\023\117\300\300\337\236\305\170\100\150\000\000"};
static struct {unsigned f; char r[8];} string77 = {1195855969, "rent"};
static struct {unsigned f; char r[16];} string78 = {851984, "\257\300\301\241\007\150\300\032\111\265\237\100\150\000\000"};
static struct {unsigned f; char r[16];} string79 = {851984, "\257\300\236\155\220\261\300\040\017\026\014\100\150\000\000"};
static struct {unsigned f; char r[16];} string80 = {851984, "\257\300\045\215\147\016\300\153\043\150\276\100\150\000\000"};
static struct {unsigned f; char r[16];} string81 = {851984, "\257\300\347\101\365\007\300\150\102\366\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string82 = {851984, "\257\300\261\002\056\176\300\055\321\222\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string83 = {851984, "\257\300\235\036\354\311\300\234\133\201\260\100\150\000\000"};
static struct {unsigned f; char r[4];} string84 = {1195856748, "ice"};
static struct {unsigned f; char r[16];} string85 = {851984, "\257\300U$)\337\300Xo9\243@t\000\000"};
static struct {unsigned f; char r[16];} string86 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string87 = {851984, "\257\300\050\310\006\072\300\004\273\314\121\100\150\000\000"};
static struct {unsigned f; char r[16];} string88 = {851984, "\257\300\370\132\042\205\300\045\133\011\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string89 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string90 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string91 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {
   word f0[72]; word f72; word f73; word f74; 
   word f75; word f76; word f77; word f78; 
   word f79; word f80; word f81; word f82; 
   word f83; word f84; word f85; word f86; 
   word f87; word f88; word f89; word f90; 
   word f91; word f92; word f93; word f94; 
   word f95; word f96; word f97; word f98; 
   word f99; word f100; word f101; word f102; 
   word f103; word f104; word f105; word f106; 
   word f107; word f108; word f109; word f110; 
   word f111; word f112; word f113; word f114; 
   word f115; word f116; word f117; word f118; 
   word f119; word f120; word f121; word f122; 
   word f123; word f124; word f125; word f126; 
   word f127; word f128; word f129; word f130; 
   word f131; word f132; word f133; word f134; 
   word f135; word f136; word f137; word f138; 
   word f139; word f140; word f141; word f142; 
   word f143; word f144; word f145; word f146; 
   word f147; word f148; word f149; word f150; 
   word f151; word f152; word f153; word f154; 
   word f155; word f156; word f157; word f158; 
   word f159; word f160; word f161; word f162; 
   word f163; word f164; word f165; word f166; 
   word f167; word f168; word f169; word f170; 
   word f171; word f172; word f173; word f174; 
   word f175; word f176; word f177; word f178; 
   word f179; word f180; word f181; word f182; 
   word f183; word f184; word f185; word f186; 
   word f187; word f188; word f189; word f190; 
   word f191; word f192; word f193; word f194; 
   word f195; word f196; word f197[24]; 
   } globalframe = {
   {0}, (word) NextPointPair←P3720, 0, (word) NextPoint←P3660, 
   0, (word) WalkSegments←P3600, 0, (word) NextSegment←P3540, 
   0, (word) SegmentsInDescriptor←P3480, 0, (word) PointPairsInDescriptor←P3420, 
   0, (word) WalkPointsInDescriptor←P3360, 0, (word) PointsInDescriptor←P3300, 
   0, (word) SetSelectedFields←P3240, 0, (word) OutlineLastChild←P3180, 
   0, (word) OutlineFirstChild←P3120, 0, (word) AlterParts←P3060, 
   0, (word) AugmentParts←P3000, 0, (word) MovingParts←P2940, 
   0, (word) OutlineMovingParts←P2880, 0, (word) DifferenceParts←P2820, 
   0, (word) UnionParts←P2760, 0, (word) NewParts←P2700, 
   0, (word) IsComplete←P2640, 0, (word) IsCompleteParts←P2580, 
   0, (word) IsEmpty←P2520, 0, (word) IsEmptyParts←P2460, 
   0, (word) ComplainAboutFile←P2400, 0, (word) OutlineFilein←P2340, 
   0, (word) OutlineFileout←P2280, 0, (word) Filein←P2220, 
   0, (word) Fileout←P2160, 0, (word) DescribeHit←P2100, 
   0, (word) Describe←P2040, 0, (word) OneChildPartOnly←P1980, 
   0, (word) Transform←P1920, 0, (word) RemakeSelections←P1860, 
   0, (word) SaveSelections←P1800, 0, (word) ChildPartsFromParts←P1740, 
   0, (word) AttractorFeedbackBoundBox←P1680, 0, (word) DrawAttractorFeedback←P1620, 
   0, (word) OutlineDrawSelectionFeedback←P1560, 0, (word) DrawSelectionFeedback←P1500, 
   0, (word) DrawTransform←P1440, 0, (word) OutlineDrawTransform←P1380, 
   0, (word) DrawParts←P1320, 0, (word) OutlineDrawParts←P1260, 
   0, (word) OutlineDrawBorder←P1200, 0, (word) OutlineBuildPath←P1140, 
   0, (word) Restore←P1080, 0, (word) Copy←P1020, 
   0, (word) OutlineCopy←P960, 0, (word) GetTightBox←P900, 
   0, (word) GetTransformedBoundBox←P840, 0, (word) GetBoundBox←P780, 
   0, (word) Unlink←P720, 0, (word) ClusterMovingParts←P660, 
   0, (word) ClusterFilein←P600, 0, (word) ClusterFileout←P540, 
   0, (word) ClusterDrawSelectionFeedback←P480, 0, (word) ClusterCopy←P420, 
   0, (word) ClusterDescribe←P360, 0, (word) OutlineDescribe←P300, 
   0, (word) ClusterFromChildList←P240, 0, (word) OutlineFromChildList←P180, 
   0, (word) BuildClusterSliceClass←P120, 0, (word) BuildOutlineSliceClass←P60, 
   0, (word) GGOutlineImplA←P0, {0}
   };

static void NoName←Q8412()
   {
   register ptr gf←c0841 =  (ptr) &globalframe;
   word var←c96644;
   (* (( (ptr) gf←c0841)+8) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0841)+9) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
   (* (( (ptr) gf←c0841)+10) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0841)+12) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0841)+13) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
   (* (( (ptr) gf←c0841)+14) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0841)+16) ) = (word) XR←GetTypeIndexS((word) (&string12));
   (* (( (ptr) gf←c0841)+18) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string2);
   (* (( (ptr) gf←c0841)+19) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string15);
   (* (( (ptr) gf←c0841)+20) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string7);
   (* (( (ptr) gf←c0841)+21) ) = (word) XR←GetTypeIndex((word) &string17, 0, (word) &string2);
   (* (( (ptr) gf←c0841)+22) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string15);
   (* (( (ptr) gf←c0841)+23) ) = (word) XR←GetTypeIndex((word) &string19, 0, (word) &string7);
   (* (( (ptr) gf←c0841)+24) ) = (word) XR←GetTypeIndex((word) &string20, 0, (word) &string7);
   (* (( (ptr) gf←c0841)+25) ) = (word) XR←GetTypeIndex((word) &string21, 0, (word) &string7);
   (* (( (ptr) gf←c0841)+27) ) = (word) XR←GetTypeIndex((word) &string22, 0, (word) &string23);
   (* (( (ptr) gf←c0841)+29) ) = (word) XR←GetTypeIndex((word) &string24, 0, (word) &string25);
   (* (( (ptr) gf←c0841)+30) ) = (word) XR←GetTypeIndex((word) &string26, 0, (word) &string7);
   (* (( (ptr) gf←c0841)+31) ) = (word) XR←GetTypeIndex((word) &string27, 0, (word) &string28);
   (*  (ptr) (( (bPt) gf←c0841)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+9) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0841)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0841)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0841)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0841)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0841)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0841)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0841)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c0841)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c0841)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c0841)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string39);
   (*  (ptr) (( (bPt) gf←c0841)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string40);
   (*  (ptr) (( (bPt) gf←c0841)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string41);
   (*  (ptr) (( (bPt) gf←c0841)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string42);
   (*  (ptr) (( (bPt) gf←c0841)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string43);
   (*  (ptr) (( (bPt) gf←c0841)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string44);
   (*  (ptr) (( (bPt) gf←c0841)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string45);
   (*  (ptr) (( (bPt) gf←c0841)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string46);
   (*  (ptr) (( (bPt) gf←c0841)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string47);
   (*  (ptr) (( (bPt) gf←c0841)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string48);
   (*  (ptr) (( (bPt) gf←c0841)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string49);
   (*  (ptr) (( (bPt) gf←c0841)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string50);
   (*  (ptr) (( (bPt) gf←c0841)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string51);
   (*  (ptr) (( (bPt) gf←c0841)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string52);
   (*  (ptr) (( (bPt) gf←c0841)+224) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string53);
   (*  (ptr) (( (bPt) gf←c0841)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+9) ), (word) &string54);
   (*  (ptr) (( (bPt) gf←c0841)+232) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+9) ), (word) &string55);
   (*  (ptr) (( (bPt) gf←c0841)+236) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+9) ), (word) &string56);
   (*  (ptr) (( (bPt) gf←c0841)+240) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string57);
   (*  (ptr) (( (bPt) gf←c0841)+244) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+9) ), (word) &string58);
   (*  (ptr) (( (bPt) gf←c0841)+248) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+9) ), (word) &string59);
   (*  (ptr) (( (bPt) gf←c0841)+252) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+9) ), (word) &string60);
   (*  (ptr) (( (bPt) gf←c0841)+256) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+9) ), (word) &string61);
   (*  (ptr) (( (bPt) gf←c0841)+260) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+9) ), (word) &string62);
   (*  (ptr) (( (bPt) gf←c0841)+264) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string63);
   (*  (ptr) (( (bPt) gf←c0841)+268) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string64);
   (*  (ptr) (( (bPt) gf←c0841)+272) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string65);
   (*  (ptr) (( (bPt) gf←c0841)+276) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+18) ), (word) &string66);
   (*  (ptr) (( (bPt) gf←c0841)+280) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+9) ), (word) &string67);
   (*  (ptr) (( (bPt) gf←c0841)+284) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0841)+9) ), (word) &string68);
   (void) XR←DeclareGlobalFrame((word) "GGOutlineImplA", &globalframe, (word) XR←GetTypeIndex((word) &string69, 0, (word) &string70)
      , (word) (( (bPt) gf←c0841)+784)/* var←c91396 */ );
   var←c96644 = (word) XR←ImportInterface((word) "Feedback", (word) XR←GetTypeIndexS((word) (&string71)), 25);
   (* (( (ptr) gf←c0841)+202)/* var←c91492 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 1313029);
   (void) XR←ImportProcS(var←c96644, 1050628);
   (void) XR←ImportProcS(var←c96644, 67372545);
   var←c96644 = (word) XR←ImportInterface((word) "FS", (word) XR←GetTypeIndexS((word) (&string72)), 36);
   (* (( (ptr) gf←c0841)+219)/* var←c94340 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 134483969);
   (void) XR←ImportProcS(var←c96644, 67377665);
   var←c96644 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string73)), 24);
   (* (( (ptr) gf←c0841)+206)/* var←c91780 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 67634434);
   (void) XR←ImportProcS(var←c96644, 67372033);
   (void) XR←ImportProcS(var←c96644, 67109376);
   var←c96644 = (word) XR←ImportInterface((word) "GGCoreOps", (word) XR←GetTypeIndexS((word) (&string74)), 37);
   (* (( (ptr) gf←c0841)+213)/* var←c92868 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 67641602);
   (void) XR←ImportProcS(var←c96644, 794627);
   (void) XR←ImportProcS(var←c96644, 67379713);
   var←c96644 = (word) XR←ImportInterface((word) &string75, (word) XR←GetTypeIndexS((word) (&string76)), 19);
   (* (( (ptr) gf←c0841)+208)/* var←c91972 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 67633410);
   (void) XR←ImportProcS(var←c96644, 1050628);
   var←c96644 = (word) XR←ImportInterface((word) &string77, (word) XR←GetTypeIndexS((word) (&string78)), 83);
   (* (( (ptr) gf←c0841)+204)/* var←c91588 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 67653378);
   (void) XR←ImportProcS(var←c96644, 67653122);
   (void) XR←ImportProcS(var←c96644, 67385857);
   (void) XR←ImportProcS(var←c96644, 68176388);
   (void) XR←ImportProcS(var←c96644, 68437509);
   (void) XR←ImportProcS(var←c96644, 68175108);
   (void) XR←ImportProcS(var←c96644, 270800645);
   (void) XR←ImportProcS(var←c96644, 68161796);
   (void) XR←ImportProcS(var←c96644, 528386);
   (void) XR←ImportProcS(var←c96644, 2361353);
   (void) XR←ImportProcS(var←c96644, 67636738);
   (void) XR←ImportProcS(var←c96644, 1574662);
   (void) XR←ImportProcS(var←c96644, 1312261);
   (void) XR←ImportProcS(var←c96644, 134749954);
   (void) XR←ImportProcS(var←c96644, 336077314);
   (void) XR←ImportProcS(var←c96644, 201859330);
   (void) XR←ImportProcS(var←c96644, 67641346);
   (void) XR←ImportProcS(var←c96644, 67378689);
   (void) XR←ImportProcS(var←c96644, 67378433);
   (void) XR←ImportProcS(var←c96644, 531458);
   (void) XR←ImportProcS(var←c96644, 67377921);
   (void) XR←ImportProcS(var←c96644, 793091);
   (void) XR←ImportProcS(var←c96644, 67639554);
   (void) XR←ImportProcS(var←c96644, 67639298);
   (void) XR←ImportProcS(var←c96644, 67638786);
   (void) XR←ImportProcS(var←c96644, 67638530);
   (void) XR←ImportProcS(var←c96644, 67900419);
   (void) XR←ImportProcS(var←c96644, 67375873);
   (void) XR←ImportProcS(var←c96644, 67375617);
   (void) XR←ImportProcS(var←c96644, 67636994);
   (void) XR←ImportProcS(var←c96644, 1314053);
   (void) XR←ImportProcS(var←c96644, 67636226);
   (void) XR←ImportProcS(var←c96644, 789251);
   (void) XR←ImportProcS(var←c96644, 68684294);
   (void) XR←ImportProcS(var←c96644, 1837319);
   (void) XR←ImportProcS(var←c96644, 525570);
   (void) XR←ImportProcS(var←c96644, 262145);
   (void) XR←ImportProcS(var←c96644, 67633922);
   (void) XR←ImportProcS(var←c96644, 68157956);
   (void) XR←ImportProcS(var←c96644, 67633410);
   var←c96644 = (word) XR←ImportInterface((word) "GGParseIn", (word) XR←GetTypeIndexS((word) (&string79)), 26);
   (* (( (ptr) gf←c0841)+212)/* var←c92516 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 67373569);
   (void) XR←ImportProcS(var←c96644, 134745602);
   (void) XR←ImportProcS(var←c96644, 67636226);
   (void) XR←ImportProcS(var←c96644, 67376385);
   (void) XR←ImportProcS(var←c96644, 525826);
   (void) XR←ImportProcS(var←c96644, 67376129);
   (void) XR←ImportProcS(var←c96644, 525570);
   var←c96644 = (word) XR←ImportInterface((word) "GGParseOut", (word) XR←GetTypeIndexS((word) (&string80)), 15);
   (* (( (ptr) gf←c0841)+211)/* var←c92484 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 787459);
   (void) XR←ImportProcS(var←c96644, 524802);
   (void) XR←ImportProcS(var←c96644, 527106);
   var←c96644 = (word) XR←ImportInterface((word) "GGScene", (word) XR←GetTypeIndexS((word) (&string81)), 50);
   (* (( (ptr) gf←c0841)+218)/* var←c94020 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 67379969);
   var←c96644 = (word) XR←ImportInterface((word) "GGSequence", (word) XR←GetTypeIndexS((word) (&string82)), 58);
   (* (( (ptr) gf←c0841)+215)/* var←c93412 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 67377921);
   (void) XR←ImportProcS(var←c96644, 67379713);
   (void) XR←ImportProcS(var←c96644, 134488321);
   (void) XR←ImportProcS(var←c96644, 67376641);
   var←c96644 = (word) XR←ImportInterface((word) "GGShapes", (word) XR←GetTypeIndexS((word) (&string83)), 20);
   (* (( (ptr) gf←c0841)+209)/* var←c92356 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 1315076);
   (void) XR←ImportProcS(var←c96644, 786947);
   var←c96644 = (word) XR←ImportInterface((word) &string84, (word) XR←GetTypeIndexS((word) (&string85)), 128);
   (* (( (ptr) gf←c0841)+205)/* var←c91620 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 201600257);
   (void) XR←ImportProcS(var←c96644, 1321732);
   (void) XR←ImportProcS(var←c96644, 201600001);
   (void) XR←ImportProcS(var←c96644, 278529);
   (void) XR←ImportProcS(var←c96644, 1060356);
   (void) XR←ImportProcS(var←c96644, 279041);
   (void) XR←ImportProcS(var←c96644, 278785);
   (void) XR←ImportProcS(var←c96644, 279297);
   (void) XR←ImportProcS(var←c96644, 788227);
   (void) XR←ImportProcS(var←c96644, 67372545);
   (void) XR←ImportProcS(var←c96644, 67634178);
   (void) XR←ImportProcS(var←c96644, 67371777);
   (void) XR←ImportProcS(var←c96644, 265729);
   (void) XR←ImportProcS(var←c96644, 2115848);
   (void) XR←ImportProcS(var←c96644, 2377737);
   (void) XR←ImportProcS(var←c96644, 277761);
   var←c96644 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string86)), 73);
   (* (( (ptr) gf←c0841)+207)/* var←c91876 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 336078338);
   (void) XR←ImportProcS(var←c96644, 67642370);
   (void) XR←ImportProcS(var←c96644, 134752002);
   (void) XR←ImportProcS(var←c96644, 67379969);
   (void) XR←ImportProcS(var←c96644, 67379713);
   (void) XR←ImportProcS(var←c96644, 532738);
   (void) XR←ImportProcS(var←c96644, 794371);
   (void) XR←ImportProcS(var←c96644, 67640834);
   (void) XR←ImportProcS(var←c96644, 67640578);
   (void) XR←ImportProcS(var←c96644, 270539780);
   (void) XR←ImportProcS(var←c96644, 67640066);
   (void) XR←ImportProcS(var←c96644, 67639810);
   (void) XR←ImportProcS(var←c96644, 67901699);
   (void) XR←ImportProcS(var←c96644, 67377153);
   (void) XR←ImportProcS(var←c96644, 67376897);
   (void) XR←ImportProcS(var←c96644, 68436485);
   (void) XR←ImportProcS(var←c96644, 540930);
   (void) XR←ImportProcS(var←c96644, 67638274);
   (void) XR←ImportProcS(var←c96644, 67375873);
   (void) XR←ImportProcS(var←c96644, 1315333);
   (void) XR←ImportProcS(var←c96644, 67637506);
   (void) XR←ImportProcS(var←c96644, 790531);
   (void) XR←ImportProcS(var←c96644, 68685574);
   (void) XR←ImportProcS(var←c96644, 1838599);
   (void) XR←ImportProcS(var←c96644, 201860354);
   (void) XR←ImportProcS(var←c96644, 67379201);
   (void) XR←ImportProcS(var←c96644, 2362633);
   (void) XR←ImportProcS(var←c96644, 1575942);
   (void) XR←ImportProcS(var←c96644, 1313541);
   (void) XR←ImportProcS(var←c96644, 67388673);
   (void) XR←ImportProcS(var←c96644, 2099720);
   (void) XR←ImportProcS(var←c96644, 2361609);
   (void) XR←ImportProcS(var←c96644, 526082);
   (void) XR←ImportProcS(var←c96644, 67371521);
   (void) XR←ImportProcS(var←c96644, 134756866);
   (void) XR←ImportProcS(var←c96644, 67634690);
   (void) XR←ImportProcS(var←c96644, 67634434);
   (void) XR←ImportProcS(var←c96644, 68158468);
   (void) XR←ImportProcS(var←c96644, 67633922);
   (void) XR←ImportProcS(var←c96644, 264193);
   (void) XR←ImportProcS(var←c96644, 68173572);
   var←c96644 = (word) XR←ImportInterface((word) "GGTraj", (word) XR←GetTypeIndexS((word) (&string87)), 55);
   (* (( (ptr) gf←c0841)+216)/* var←c93444 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 67636482);
   var←c96644 = (word) XR←ImportInterface((word) "GGUtility", (word) XR←GetTypeIndexS((word) (&string88)), 42);
   (* (( (ptr) gf←c0841)+214)/* var←c92996 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 268964866);
   (void) XR←ImportProcS(var←c96644, 135007235);
   (void) XR←ImportProcS(var←c96644, 134220544);
   (void) XR←ImportProcS(var←c96644, 135008515);
   (void) XR←ImportProcS(var←c96644, 67637762);
   (void) XR←ImportProcS(var←c96644, 134221824);
   var←c96644 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string89)), 84);
   (* (( (ptr) gf←c0841)+203)/* var←c91524 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 801283);
   (void) XR←ImportProcS(var←c96644, 67383553);
   var←c96644 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string90)), 103);
   (* (( (ptr) gf←c0841)+210)/* var←c92452 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 1063171);
   (void) XR←ImportProcS(var←c96644, 67910402);
   (void) XR←ImportProcS(var←c96644, 528642);
   (void) XR←ImportProcS(var←c96644, 1071364);
   var←c96644 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string91)), 43);
   (* (( (ptr) gf←c0841)+217)/* var←c93988 */  ) = var←c96644;
   (void) XR←ImportProcS(var←c96644, 68419845);
   (void) XR←ImportProcS(var←c96644, 67633666);
   var←c96644 = (word) XR←ExportInterface((word) &string84, (word) XR←GetTypeIndexS((word) (&string85)), 128);
   (* (( (ptr) gf←c0841)+220)/* var←c96676 */  ) = var←c96644;
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+768)/* var←c91332 */ , 67112192, (word) "BuildClusterSliceClass")
   ;
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+776)/* var←c91364 */ , 67124224, (word) "BuildOutlineSliceClass")
   ;
   var←c96644 = (word) XR←ExportInterface((word) &string75, (word) XR←GetTypeIndexS((word) (&string76)), 19);
   (* (( (ptr) gf←c0841)+220)/* var←c96676 */  ) = var←c96644;
   (void) XR←ExportVar(var←c96644, 0, (word) (( (bPt) gf←c0841)+20)/* fillColor←v7452 */ );
   var←c96644 = (word) XR←ExportInterface((word) &string77, (word) XR←GetTypeIndexS((word) (&string78)), 83);
   (* (( (ptr) gf←c0841)+220)/* var←c96676 */  ) = var←c96644;
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+688)/* var←c91012 */ , 262145, (word) "Unlink");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+680)/* var←c90980 */ , 67633410, (word) "GetBoundBox");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+672)/* var←c90948 */ , 68157956, (word) "GetTransformedBoundBox")
   ;
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+664)/* var←c90916 */ , 67633922, (word) "GetTightBox");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+648)/* var←c90852 */ , 67896323, (word) "Copy");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+640)/* var←c90820 */ , 525570, (word) "Restore");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+608)/* var←c90692 */ , 1312261, (word) "DrawParts");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+592)/* var←c90628 */ , 1574662, (word) "DrawTransform");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+584)/* var←c90596 */ , 2361353, (word) "DrawSelectionFeedback")
   ;
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+568)/* var←c90532 */ , 1837319, (word) "DrawAttractorFeedback")
   ;
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+560)/* var←c90500 */ , 68684294, (word) "AttractorFeedbackBoundBox")
   ;
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+544)/* var←c90436 */ , 789251, (word) "SaveSelections");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+536)/* var←c90404 */ , 67636226, (word) "RemakeSelections");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+528)/* var←c90372 */ , 1314053, (word) "Transform");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+512)/* var←c90308 */ , 67636738, (word) "Describe");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+504)/* var←c90276 */ , 67636994, (word) "DescribeHit");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+496)/* var←c90244 */ , 528386, (word) "Fileout");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+488)/* var←c90212 */ , 68161796, (word) "Filein");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+456)/* var←c90084 */ , 67375617, (word) "IsEmptyParts");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+440)/* var←c90020 */ , 67375873, (word) "IsCompleteParts");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+424)/* var←c89956 */ , 67900419, (word) "NewParts");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+416)/* var←c89924 */ , 67638530, (word) "UnionParts");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+408)/* var←c89892 */ , 67638786, (word) "DifferenceParts");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+392)/* var←c89828 */ , 270800645, (word) "MovingParts");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+384)/* var←c89796 */ , 67639298, (word) "AugmentParts");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+376)/* var←c89764 */ , 67639554, (word) "AlterParts");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+352)/* var←c89668 */ , 793091, (word) "SetSelectedFields");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+344)/* var←c89636 */ , 67377921, (word) "PointsInDescriptor")
   ;
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+336)/* var←c89604 */ , 531458, (word) "WalkPointsInDescriptor")
   ;
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+328)/* var←c89572 */ , 67378433, (word) "PointPairsInDescriptor")
   ;
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+320)/* var←c89540 */ , 67378689, (word) "SegmentsInDescriptor")
   ;
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+312)/* var←c89508 */ , 134749954, (word) "NextSegment");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+304)/* var←c89476 */ , 67641346, (word) "WalkSegments");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+296)/* var←c89444 */ , 201859330, (word) "NextPoint");
   (void) XR←ExportProcS(var←c96644, (word) (( (bPt) gf←c0841)+288)/* var←c89412 */ , 336077314, (word) "NextPointPair");
   }

static void GGOutlineImplA←P0(formal←c094, formal←c093)
   word formal←c094;
   word formal←c093;
   {
   register ptr gf←c96708 =  (ptr) &globalframe;
   /* GGOutlineImplA: */ 
SOURCE(345, 62789)
SOURCE(3600, 24)
   (* (( (ptr) gf←c96708)+4)/* Problem←v5520 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c96708)+202)/* var←c91492 */  ))+28)
    ) );
SOURCE(63149, 53)
   {
      word pd92;
      pd92 = (* (( (ptr) (* (( (ptr) gf←c96708)+203)/* var←c91524 */  ))+53) );
      (* (( (ptr) gf←c96708)+5)/* fillColor←v7452 */  ) = (word) ( *( (fPt) ((*  (ptr) pd92 ))))((*  (ptr) (&fc93) ), pd92);
      };
   }

static word BuildOutlineSliceClass←P60()
   {
   register ptr gf←c96740 =  (ptr) &globalframe;
   word class←v7632;
   /* BuildOutlineSliceClass: */ 
SOURCE(3660, 2479)
SOURCE(3660, 2479)
   class←v7632 = 0;
SOURCE(3731, 2365)
   {
      word var←c91556;
      var←c91556 = XR←NewObject(252, (* (( (ptr) gf←c96740)+8) ));
      (*  (ptr) var←c91556 ) = (* (( (ptr) gf←c96740)+71) );
      (* (( (ptr) var←c91556)+1) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+5) );
      (* (( (ptr) var←c91556)+2) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+6) );
      (* (( (ptr) var←c91556)+3) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+7) );
      (* (( (ptr) var←c91556)+4) ) = (word) (( (bPt) gf←c96740)+656)/* var←c90884 */ ;
      (* (( (ptr) var←c91556)+5) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+4) );
      (* (( (ptr) var←c91556)+6) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+9) );
      (* (( (ptr) var←c91556)+7) ) = (word) (( (bPt) gf←c96740)+632)/* var←c90788 */ ;
      (* (( (ptr) var←c91556)+8) ) = (word) (( (bPt) gf←c96740)+624)/* var←c90756 */ ;
      (* (( (ptr) var←c91556)+9) ) = (word) (( (bPt) gf←c96740)+616)/* var←c90724 */ ;
      (* (( (ptr) var←c91556)+10) ) = (word) (( (bPt) gf←c96740)+600)/* var←c90660 */ ;
      (* (( (ptr) var←c91556)+11) ) = (word) (( (bPt) gf←c96740)+576)/* var←c90564 */ ;
      (* (( (ptr) var←c91556)+12) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+13) );
      (* (( (ptr) var←c91556)+13) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+14) );
      (* (( (ptr) var←c91556)+14) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+15) );
      (* (( (ptr) var←c91556)+15) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+16) );
      (* (( (ptr) var←c91556)+16) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+17) );
      (* (( (ptr) var←c91556)+17) ) = (word) (( (bPt) gf←c96740)+744)/* var←c91236 */ ;
      (* (( (ptr) var←c91556)+18) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+19) );
      (* (( (ptr) var←c91556)+19) ) = (word) (( (bPt) gf←c96740)+480)/* var←c90180 */ ;
      (* (( (ptr) var←c91556)+20) ) = (word) (( (bPt) gf←c96740)+472)/* var←c90148 */ ;
      (* (( (ptr) var←c91556)+21) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+22) );
      (* (( (ptr) var←c91556)+22) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+23) );
      (* (( (ptr) var←c91556)+23) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+24) );
      (* (( (ptr) var←c91556)+24) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+25) );
      (* (( (ptr) var←c91556)+25) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+26) );
      (* (( (ptr) var←c91556)+26) ) = (word) (( (bPt) gf←c96740)+400)/* var←c89860 */ ;
      (* (( (ptr) var←c91556)+27) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+28) );
      (* (( (ptr) var←c91556)+28) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+29) );
      (* (( (ptr) var←c91556)+29) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+30) );
      (* (( (ptr) var←c91556)+30) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+31) );
      (* (( (ptr) var←c91556)+31) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+32) );
      (* (( (ptr) var←c91556)+32) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+33) );
      (* (( (ptr) var←c91556)+33) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+34) );
      (* (( (ptr) var←c91556)+34) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+36) );
      (* (( (ptr) var←c91556)+35) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+37) );
      (* (( (ptr) var←c91556)+36) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+38) );
      (* (( (ptr) var←c91556)+37) ) = (* (( (ptr) (* (( (ptr) gf←c96740)+204)/* var←c91588 */  ))+35) );
      class←v7632 = var←c91556;
      };
SOURCE(6098, 41)
   {
      word pd94;
      pd94 = (* (( (ptr) (* (( (ptr) gf←c96740)+205)/* var←c91620 */  ))+65) );
      (void) ( *( (fPt) ((*  (ptr) pd94 ))))(class←v7632, pd94);
      };
SOURCE(3660, 2479)
   return(class←v7632);
   }

static word BuildClusterSliceClass←P120()
   {
   register ptr gf←c96772 =  (ptr) &globalframe;
   word class←v7692;
   /* BuildClusterSliceClass: */ 
SOURCE(6145, 2530)
SOURCE(6145, 2530)
   class←v7692 = 0;
SOURCE(6216, 2416)
   {
      word var←c91652;
      var←c91652 = XR←NewObject(252, (* (( (ptr) gf←c96772)+8) ));
      (*  (ptr) var←c91652 ) = (* (( (ptr) gf←c96772)+70) );
      (* (( (ptr) var←c91652)+1) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+5) );
      (* (( (ptr) var←c91652)+2) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+6) );
      (* (( (ptr) var←c91652)+3) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+7) );
      (* (( (ptr) var←c91652)+4) ) = (word) (( (bPt) gf←c96772)+728)/* var←c91172 */ ;
      (* (( (ptr) var←c91652)+5) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+4) );
      (* (( (ptr) var←c91652)+6) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+9) );
      (* (( (ptr) var←c91652)+7) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+205)/* var←c91620 */  ))+76) );
      (* (( (ptr) var←c91652)+8) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+205)/* var←c91620 */  ))+77) );
      (* (( (ptr) var←c91652)+9) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+10) );
      (* (( (ptr) var←c91652)+10) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+11) );
      (* (( (ptr) var←c91652)+11) ) = (word) (( (bPt) gf←c96772)+720)/* var←c91140 */ ;
      (* (( (ptr) var←c91652)+12) ) = (word) (( (bPt) gf←c96772)+568)/* var←c90532 */ ;
      (* (( (ptr) var←c91652)+13) ) = (word) (( (bPt) gf←c96772)+560)/* var←c90500 */ ;
      (* (( (ptr) var←c91652)+14) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+15) );
      (* (( (ptr) var←c91652)+15) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+16) );
      (* (( (ptr) var←c91652)+16) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+17) );
      (* (( (ptr) var←c91652)+17) ) = (word) (( (bPt) gf←c96772)+736)/* var←c91204 */ ;
      (* (( (ptr) var←c91652)+18) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+19) );
      (* (( (ptr) var←c91652)+19) ) = (word) (( (bPt) gf←c96772)+712)/* var←c91108 */ ;
      (* (( (ptr) var←c91652)+20) ) = (word) (( (bPt) gf←c96772)+704)/* var←c91076 */ ;
      (* (( (ptr) var←c91652)+21) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+22) );
      (* (( (ptr) var←c91652)+22) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+23) );
      (* (( (ptr) var←c91652)+23) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+24) );
      (* (( (ptr) var←c91652)+24) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+25) );
      (* (( (ptr) var←c91652)+25) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+26) );
      (* (( (ptr) var←c91652)+26) ) = (word) (( (bPt) gf←c96772)+696)/* var←c91044 */ ;
      (* (( (ptr) var←c91652)+27) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+28) );
      (* (( (ptr) var←c91652)+28) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+29) );
      (* (( (ptr) var←c91652)+29) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+30) );
      (* (( (ptr) var←c91652)+30) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+31) );
      (* (( (ptr) var←c91652)+31) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+32) );
      (* (( (ptr) var←c91652)+32) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+33) );
      (* (( (ptr) var←c91652)+33) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+34) );
      (* (( (ptr) var←c91652)+34) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+36) );
      (* (( (ptr) var←c91652)+35) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+37) );
      (* (( (ptr) var←c91652)+36) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+38) );
      (* (( (ptr) var←c91652)+37) ) = (* (( (ptr) (* (( (ptr) gf←c96772)+204)/* var←c91588 */  ))+35) );
      class←v7692 = var←c91652;
      };
SOURCE(8634, 41)
   {
      word pd95;
      pd95 = (* (( (ptr) (* (( (ptr) gf←c96772)+205)/* var←c91620 */  ))+18) );
      (void) ( *( (fPt) ((*  (ptr) pd95 ))))(class←v7692, pd95);
      };
SOURCE(6145, 2530)
   return(class←v7692);
   }

static word OutlineFromChildList←P180(childList←v7752, fillColor←v7780, oddWrap←v7808, fillText←v7836, screenStyle←v7864, version←v7892)
   word childList←v7752;
   word fillColor←v7780;
   word oddWrap←v7808;
   word fillText←v7836;
   word screenStyle←v7864;
   word version←v7892;
   {
   register ptr gf←c96804 =  (ptr) &globalframe;
   word outline←v8020;
   word data←v18252;
   /* OutlineFromChildList: */ 
SOURCE(8681, 1167)
SOURCE(8681, 1167)
   outline←v8020 = 0;
SOURCE(8863, 104)
   data←v18252 = XR←NewObject(36, (* (( (ptr) gf←c96804)+13) ));
   (*  (ptr) data←v18252 ) = oddWrap←v7808;
   (* (( (ptr) data←v18252)+1) ) = fillColor←v7780;
   (* (( (ptr) data←v18252)+3) ) = 1;
   (* (( (ptr) data←v18252)+4) ) = childList←v7752;
SOURCE(8969, 224)
   {
      word var←c91716;
      word var←c91748;
      word var←c91812;
      word var←c91844;
      {
         word pd96;
         pd96 = (* (( (ptr) (* (( (ptr) gf←c96804)+205)/* var←c91620 */  ))+7) );
         var←c91716 = (word) ( *( (fPt) ((*  (ptr) pd96 ))))((* ((( (ptr) gf←c96804)+71)) ), pd96);
         };
      {
         word pd97;
         pd97 = (* (( (ptr) (* (( (ptr) gf←c96804)+206)/* var←c91780 */  ))+6) );
         var←c91748 = (word) ( *( (fPt) ((*  (ptr) pd97 ))))(pd97);
         };
      {
         word pd98;
         pd98 = (* (( (ptr) (* (( (ptr) gf←c96804)+206)/* var←c91780 */  ))+6) );
         var←c91812 = (word) ( *( (fPt) ((*  (ptr) pd98 ))))(pd98);
         };
      var←c91844 = XR←NewObject(92, (* (( (ptr) gf←c96804)+14) ));
      (*  (ptr) var←c91844 ) = var←c91716;
      (* (( (ptr) var←c91844)+1) ) = data←v18252;
      (*  (W4Pt) (( (ptr) var←c91844)+3) ) = (*  (W4Pt) (( (ptr) gf←c96804)+198)/* var←c91460 */  );
      (* (( (ptr) var←c91844)+13) ) = var←c91748;
      (* (( (ptr) var←c91844)+15) ) = var←c91812;
      (* (( (ptr) var←c91844)+21) ) =  (word) -1;
      outline←v8020 = var←c91844;
      };
SOURCE(9195, 84)
   {
      register word tL←v18296;
      tL←v18296 = childList←v7752;
      lab←L100003: ;
      if ((tL←v18296 != 0)) {
         }
      else {
         goto lab←L100000;
         };
SOURCE(9254, 25)
      (* (( (ptr) (*  (ptr) tL←v18296 ))+2) ) = outline←v8020;
      tL←v18296 = (* (( (ptr) tL←v18296)+1) );
      goto lab←L100003;
      lab←L100000: ;
      };
SOURCE(9290, 66)
   {
      word pd99;
      pd99 = (* (( (ptr) (* (( (ptr) gf←c96804)+205)/* var←c91620 */  ))+8) );
      (* (( (ptr) outline←v8020)+11) ) = (word) ( *( (fPt) ((*  (ptr) pd99 ))))(outline←v8020, 0, pd99);
      };
SOURCE(9358, 379)
   {
      word x100;
      word x102;
      if (((
         x100 = version←v7892,  *(float*)&x100
         ) < (
         x102 = (*  (ptr) &fc101 ),  *(float*)&x102
         ))) {
SOURCE(9495, 62)
         {
            word var←c91908;
            word pd103;
            pd103 = (* (( (ptr) (* (( (ptr) gf←c96804)+207)/* var←c91876 */  ))+67) );
            var←c91908 = (word) ( *( (fPt) ((*  (ptr) pd103 ))))((*  (ptr) childList←v7752 ), 0, 1, 0, pd103);
            };
SOURCE(9595, 142)
         {
            register word holeList←v18424;
            holeList←v18424 = (* (( (ptr) childList←v7752)+1) );
            lab←L100007: ;
            if ((holeList←v18424 != 0)) {
               }
            else {
               goto lab←L100004;
               };
SOURCE(9677, 60)
            {
               word var←c91940;
               word pd104;
               pd104 = (* (( (ptr) (* (( (ptr) gf←c96804)+207)/* var←c91876 */  ))+67) );
               var←c91940 = (word) ( *( (fPt) ((*  (ptr) pd104 ))))((*  (ptr) holeList←v18424 ), 0, 0, 0, pd104);
               };
            holeList←v18424 = (* (( (ptr) holeList←v18424)+1) );
            goto lab←L100007;
            lab←L100004: ;
            };
         };
      };
SOURCE(9790, 58)
   {
      word pd105;
      pd105 = (* (( (ptr) (* (( (ptr) gf←c96804)+208)/* var←c91972 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd105 ))))(outline←v8020, fillText←v7836, screenStyle←v7864, 0, pd105);
      };
SOURCE(8681, 1167)
   return(outline←v8020);
   }

static word ClusterFromChildList←P240(childList←v8080, frozen←v8108, version←v8136)
   word childList←v8080;
   word frozen←v8108;
   word version←v8136;
   {
   register ptr gf←c96836 =  (ptr) &globalframe;
   word parent←v8264;
   word data←v18552;
   /* ClusterFromChildList: */ 
SOURCE(9854, 647)
SOURCE(9854, 647)
   parent←v8264 = 0;
SOURCE(9966, 150)
   {
      word var←c92004;
      word var←c92068;
      {
         word var←c92036;
         var←c92036 = XR←NewObject(4, (* (( (ptr) gf←c96836)+16) ));
         (*  (ptr) var←c92036 ) = frozen←v8108;
         var←c92004 = var←c92036;
         };
      var←c92068 = XR←NewObject(36, (* (( (ptr) gf←c96836)+13) ));
      (* (( (ptr) var←c92068)+3) ) = 1;
      (* (( (ptr) var←c92068)+4) ) = childList←v8080;
      (* (( (ptr) var←c92068)+8) ) = var←c92004;
      data←v18552 = var←c92068;
      };
SOURCE(10118, 223)
   {
      word var←c92100;
      word var←c92132;
      word var←c92164;
      word var←c92196;
      {
         word pd106;
         pd106 = (* (( (ptr) (* (( (ptr) gf←c96836)+205)/* var←c91620 */  ))+7) );
         var←c92100 = (word) ( *( (fPt) ((*  (ptr) pd106 ))))((* ((( (ptr) gf←c96836)+70)) ), pd106);
         };
      {
         word pd107;
         pd107 = (* (( (ptr) (* (( (ptr) gf←c96836)+206)/* var←c91780 */  ))+6) );
         var←c92132 = (word) ( *( (fPt) ((*  (ptr) pd107 ))))(pd107);
         };
      {
         word pd108;
         pd108 = (* (( (ptr) (* (( (ptr) gf←c96836)+206)/* var←c91780 */  ))+6) );
         var←c92164 = (word) ( *( (fPt) ((*  (ptr) pd108 ))))(pd108);
         };
      var←c92196 = XR←NewObject(92, (* (( (ptr) gf←c96836)+14) ));
      (*  (ptr) var←c92196 ) = var←c92100;
      (* (( (ptr) var←c92196)+1) ) = data←v18552;
      (*  (W4Pt) (( (ptr) var←c92196)+3) ) = (*  (W4Pt) (( (ptr) gf←c96836)+198)/* var←c91460 */  );
      (* (( (ptr) var←c92196)+13) ) = var←c92132;
      (* (( (ptr) var←c92196)+15) ) = var←c92164;
      (* (( (ptr) var←c92196)+21) ) =  (word) -1;
      parent←v8264 = var←c92196;
      };
SOURCE(10343, 83)
   {
      register word tL←v18596;
      tL←v18596 = childList←v8080;
      lab←L100011: ;
      if ((tL←v18596 != 0)) {
         }
      else {
         goto lab←L100008;
         };
SOURCE(10402, 24)
      (* (( (ptr) (*  (ptr) tL←v18596 ))+2) ) = parent←v8264;
      tL←v18596 = (* (( (ptr) tL←v18596)+1) );
      goto lab←L100011;
      lab←L100008: ;
      };
SOURCE(10437, 64)
   {
      word pd109;
      pd109 = (* (( (ptr) (* (( (ptr) gf←c96836)+205)/* var←c91620 */  ))+8) );
      (* (( (ptr) parent←v8264)+11) ) = (word) ( *( (fPt) ((*  (ptr) pd109 ))))(parent←v8264, 0, pd109);
      };
SOURCE(9854, 647)
   return(parent←v8264);
   }

static word OutlineDescribe←P300(sliceD←v8324)
   word sliceD←v8324;
   {
   register ptr gf←c96868 =  (ptr) &globalframe;
   word rope←v8368;
   /* OutlineDescribe: */ 
SOURCE(10506, 122)
SOURCE(10506, 122)
   rope←v8368 = 0;
SOURCE(10584, 44)
   {
      word pd110;
      pd110 = (* (( (ptr) (* (( (ptr) gf←c96868)+204)/* var←c91588 */  ))+18) );
      return((word) ( *( (fPt) ((*  (ptr) pd110 ))))(sliceD←v8324, (* (( (ptr) gf←c96868)+69) ), pd110));
      };
   }

static word ClusterDescribe←P360(sliceD←v8428)
   word sliceD←v8428;
   {
   register ptr gf←c96900 =  (ptr) &globalframe;
   word rope←v8472;
   /* ClusterDescribe: */ 
SOURCE(10633, 122)
SOURCE(10633, 122)
   rope←v8472 = 0;
SOURCE(10711, 44)
   {
      word pd111;
      pd111 = (* (( (ptr) (* (( (ptr) gf←c96900)+204)/* var←c91588 */  ))+18) );
      return((word) ( *( (fPt) ((*  (ptr) pd111 ))))(sliceD←v8428, (* (( (ptr) gf←c96900)+68) ), pd111));
      };
   }

static word ClusterCopy←P420(slice←v8532, parts←v8560)
   word slice←v8532;
   word parts←v8560;
   {
   W7 var←c96932;
   register ptr gf←c96964 =  (ptr) &globalframe;
   word copy←v8604;
   /* declaration of var←c92292 skipped */ 
   word outlineParts←v18752;
   word oldData←v18780;
   /* declaration of oldClusterData←v18808 skipped */ 
   /* ClusterCopy: */ 
SOURCE(10760, 567)
   {
      word tmpAddr112;
      tmpAddr112 = (word) (( (ptr) &var←c96932)+4)/* var←c92292 */ ;
      (*  (ptr) tmpAddr112 ) = ( ((word)  (fPt) DoCreateCluster←P3924) );
      (* (( (ptr) tmpAddr112) + 1) ) = 1;
      };
SOURCE(10760, 567)
   copy←v8604 = 0;
SOURCE(11137, 42)
   outlineParts←v18752 = XR←Narrow(parts←v8560, (* (( (ptr) gf←c96964)+21) ));
SOURCE(11181, 41)
   oldData←v18780 = XR←Narrow((* (( (ptr) slice←v8532)+1) ), (* (( (ptr) gf←c96964)+13) ));
SOURCE(11224, 58)
   var←c96932.f6/* oldClusterData←v18808 */  = XR←Narrow((* (( (ptr) oldData←v18780)+8) ), (* (( (ptr) gf←c96964)+16) ));
SOURCE(11285, 42)
   copy←v8604 = (word) Copy←P1020(slice←v8532, parts←v8560, (word) (( (bPt) &var←c96932)+16)/* var←c92292 */ );
SOURCE(10760, 567)
   return(copy←v8604);
   }

static word DoCreateCluster←P3924(newSlice←v18884, formal←c97028)
   word newSlice←v18884;
   word formal←c97028;
   {
   register ptr gf←c96996 =  (ptr) &globalframe;
   word parent←v18928;
   word newData←v18956 = 0;
   formal←c97028 = (formal←c97028 - 16);
   /* DoCreateCluster: */ 
SOURCE(10852, 280)
SOURCE(10852, 280)
   parent←v18928 = 0;
SOURCE(10942, 32)
   {
      word pd113;
      pd113 = (* (( (ptr) (* (( (ptr) gf←c96996)+205)/* var←c91620 */  ))+10) );
      parent←v18928 = (word) ( *( (fPt) ((*  (ptr) pd113 ))))(1, pd113);
      };
SOURCE(10976, 47)
   {
      word pd114;
      pd114 = (* (( (ptr) (* (( (ptr) gf←c96996)+205)/* var←c91620 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd114 ))))(parent←v18928, newSlice←v18884,  (word) -1, pd114);
      };
SOURCE(11025, 29)
   newData←v18956 = XR←Narrow((* (( (ptr) parent←v18928)+1) ), (* (( (ptr) gf←c96996)+13) ));
SOURCE(11056, 76)
   {
      word var←c92324;
      var←c92324 = XR←NewObject(4, (* (( (ptr) gf←c96996)+16) ));
      (*  (ptr) var←c92324 ) = (*  (ptr) (* (( (ptr) formal←c97028)+6) ) );
      (* (( (ptr) newData←v18956)+8) ) = var←c92324;
      };
SOURCE(10852, 280)
   return(parent←v18928);
   }

static void ClusterDrawSelectionFeedback←P480(slice←v8748, selectedParts←v8776, hotParts←v8804, dc←v8832, camera←v8860, dragInProgress←v8888, caretIsMoving←v8916, hideHot←v8944, quick←v8972)
   word slice←v8748;
   word selectedParts←v8776;
   word hotParts←v8804;
   word dc←v8832;
   word camera←v8860;
   word dragInProgress←v8888;
   word caretIsMoving←v8916;
   word hideHot←v8944;
   word quick←v8972;
   {
   register ptr gf←c97060 =  (ptr) &globalframe;
   word slowNormal←v19000 = 0;
   word slowHot←v19028 = 0;
   word completeNormal←v19056 = 0;
   word completeHot←v19084 = 0;
   word normalOutlineParts←v19112;
   word hotOutlineParts←v19140;
   word boxDrawn←v19168 = 0;
   /* ClusterDrawSelectionFeedback: */ 
SOURCE(11333, 1575)
SOURCE(11596, 56)
   normalOutlineParts←v19112 = XR←Narrow(selectedParts←v8776, (* (( (ptr) gf←c97060)+21) ));
SOURCE(11654, 48)
   hotOutlineParts←v19140 = XR←Narrow(hotParts←v8804, (* (( (ptr) gf←c97060)+21) ));
SOURCE(11729, 46)
   if (((0 != caretIsMoving←v8916) || (0 != dragInProgress←v8888))) {
SOURCE(11769, 6)
      return;
      };
SOURCE(11777, 49)
   if ( ( (selectedParts←v8776 == 0) ? (hotParts←v8804 == 0) : 0 ) ) {
SOURCE(11820, 6)
      return;
      };
SOURCE(11829, 74)
   if ((normalOutlineParts←v19112 != 0)) {
      completeNormal←v19056 =  (unsigned) (0 != (word) IsComplete←P2640(normalOutlineParts←v19112));
      }
   else {
      completeNormal←v19056 =  (unsigned) 0;
      };
SOURCE(11905, 65)
   if ((hotOutlineParts←v19140 != 0)) {
      completeHot←v19084 =  (unsigned) (0 != (word) IsComplete←P2640(hotOutlineParts←v19140));
      }
   else {
      completeHot←v19084 =  (unsigned) 0;
      };
SOURCE(11972, 65)
   if ((selectedParts←v8776 != 0)) {
      if ((0 == quick←v8972)) {
         slowNormal←v19000 =  (unsigned) 1;
         }
      else {
         slowNormal←v19000 =  (unsigned) (0 == completeNormal←v19056);
         };
      }
   else {
      slowNormal←v19000 =  (unsigned) 0;
      };
SOURCE(12039, 54)
   if ((hotParts←v8804 != 0)) {
      if ((0 == quick←v8972)) {
         slowHot←v19028 =  (unsigned) 1;
         }
      else {
         slowHot←v19028 =  (unsigned) (0 == completeHot←v19084);
         };
      }
   else {
      slowHot←v19028 =  (unsigned) 0;
      };
SOURCE(12096, 121)
   {
      word pd115;
      pd115 = (* (( (ptr) (* (( (ptr) gf←c97060)+204)/* var←c91588 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd115 ))))(slice←v8748, selectedParts←v8776, hotParts←v8804, dc←v8832, camera←v8860, dragInProgress←v8888
         , caretIsMoving←v8916, hideHot←v8944, quick←v8972, pd115);
      };
SOURCE(12219, 249)
   if ( ( (0 == slowNormal←v19000) ? (0 != completeNormal←v19056) : 0 ) ) {
SOURCE(12261, 209)
      {
         word boundBox←v19212;
SOURCE(12263, 44)
         boundBox←v19212 = (word) GetBoundBox←P780(slice←v8748, 0);
SOURCE(12309, 51)
         {
            word pd116;
            pd116 = (* (( (ptr) (* (( (ptr) gf←c97060)+209)/* var←c92356 */  ))+6) );
            (void) ( *( (fPt) ((*  (ptr) pd116 ))))(dc←v8832, boundBox←v19212, (* (( (ptr) camera←v8860)+4) ), pd116);
            };
SOURCE(12362, 89)
         {
            W2 var←c92388;
            var←c92388.f0 = (*  (ptr) boundBox←v19212 );
            var←c92388.f1 = (* (( (ptr) boundBox←v19212)+1) );
            {
               word pd117;
               pd117 = (* (( (ptr) (* (( (ptr) gf←c97060)+209)/* var←c92356 */  ))+21) );
               (void) ( *( (fPt) ((*  (ptr) pd117 ))))(dc←v8832, var←c92388, 0, (* (( (ptr) camera←v8860)+4) ), pd117);
               };
            };
SOURCE(12453, 15)
         boxDrawn←v19168 = 1;
         };
      };
SOURCE(12473, 240)
   if ( ( (0 == slowHot←v19028) ? (0 != completeHot←v19084) : 0 ) ) {
SOURCE(12509, 206)
      {
         word boundBox←v19256;
SOURCE(12511, 44)
         boundBox←v19256 = (word) GetBoundBox←P780(slice←v8748, 0);
SOURCE(12557, 51)
         {
            word pd118;
            pd118 = (* (( (ptr) (* (( (ptr) gf←c97060)+209)/* var←c92356 */  ))+6) );
            (void) ( *( (fPt) ((*  (ptr) pd118 ))))(dc←v8832, boundBox←v19256, (* (( (ptr) camera←v8860)+4) ), pd118);
            };
SOURCE(12610, 86)
         {
            W2 var←c92420;
            var←c92420.f0 = (*  (ptr) boundBox←v19256 );
            var←c92420.f1 = (* (( (ptr) boundBox←v19256)+1) );
            {
               word pd119;
               pd119 = (* (( (ptr) (* (( (ptr) gf←c97060)+209)/* var←c92356 */  ))+21) );
               (void) ( *( (fPt) ((*  (ptr) pd119 ))))(dc←v8832, var←c92420, 1, (* (( (ptr) camera←v8860)+4) ), pd119);
               };
            };
SOURCE(12698, 15)
         boxDrawn←v19168 = 1;
         };
      };
SOURCE(12718, 190)
   if ( ( (0 == boxDrawn←v19168) ?  ( (0 == (word) IsEmpty←P2520(normalOutlineParts←v19112)) ? 1 : (0 == (word) IsEmpty←P2520(
      hotOutlineParts←v19140)) )  : 0 ) ) {
SOURCE(12809, 101)
      {
         word boundBox←v19300;
SOURCE(12811, 44)
         boundBox←v19300 = (word) GetBoundBox←P780(slice←v8748, 0);
SOURCE(12857, 51)
         {
            word pd120;
            pd120 = (* (( (ptr) (* (( (ptr) gf←c97060)+209)/* var←c92356 */  ))+6) );
            (void) ( *( (fPt) ((*  (ptr) pd120 ))))(dc←v8832, boundBox←v19300, (* (( (ptr) camera←v8860)+4) ), pd120);
            };
         };
      };
   }

static void ClusterFileout←P540(slice←v9032, f←v9060)
   word slice←v9032;
   word f←v9060;
   {
   register ptr gf←c97092 =  (ptr) &globalframe;
   word outlineData←v19344;
   word clusterData←v19372;
   /* ClusterFileout: */ 
SOURCE(12917, 282)
SOURCE(12978, 45)
   outlineData←v19344 = XR←Narrow((* (( (ptr) slice←v9032)+1) ), (* (( (ptr) gf←c97092)+13) ));
SOURCE(13025, 59)
   clusterData←v19372 = XR←Narrow((* (( (ptr) outlineData←v19344)+8) ), (* (( (ptr) gf←c97092)+16) ));
SOURCE(13086, 21)
   {
      word pd121;
      pd121 = (* (( (ptr) (* (( (ptr) gf←c97092)+210)/* var←c92452 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd121 ))))(f←v9060, (* (( (ptr) gf←c97092)+67) ), 0, 2147483647, pd121);
      };
SOURCE(13109, 43)
   {
      word pd122;
      pd122 = (* (( (ptr) (* (( (ptr) gf←c97092)+211)/* var←c92484 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd122 ))))(f←v9060, (*  (ptr) clusterData←v19372 ), pd122);
      };
SOURCE(13155, 16)
   {
      word pd123;
      pd123 = (* (( (ptr) (* (( (ptr) gf←c97092)+210)/* var←c92452 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd123 ))))(f←v9060, 10, pd123);
      };
SOURCE(13173, 26)
   {
      word pd124;
      pd124 = (* (( (ptr) (* (( (ptr) gf←c97092)+204)/* var←c91588 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd124 ))))(slice←v9032, f←v9060, pd124);
      };
   }

static word ClusterFilein←P600(f←v9120, version←v9148, router←v9176, camera←v9204)
   word f←v9120;
   word version←v9148;
   word router←v9176;
   word camera←v9204;
   {
   register ptr gf←c97124 =  (ptr) &globalframe;
   word slice←v9248;
   word frozen←v19416 = 1;
   word childList←v19444 = 0;
   /* ClusterFilein: */ 
SOURCE(13205, 367)
SOURCE(13205, 367)
   slice←v9248 = 0;
SOURCE(13371, 32)
   {
      word pd125;
      pd125 = (* (( (ptr) (* (( (ptr) gf←c97124)+212)/* var←c92516 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd125 ))))(f←v9120, (* (( (ptr) gf←c97124)+66) ), pd125);
      };
SOURCE(13405, 30)
   {
      word pd126;
      pd126 = (* (( (ptr) (* (( (ptr) gf←c97124)+212)/* var←c92516 */  ))+24) );
      frozen←v19416 = (word) ( *( (fPt) ((*  (ptr) pd126 ))))(f←v9120, pd126);
      };
SOURCE(13437, 55)
   {
      word pd127;
      pd127 = (* (( (ptr) (* (( (ptr) gf←c97124)+204)/* var←c91588 */  ))+21) );
      childList←v19444 = (word) ( *( (fPt) ((*  (ptr) pd127 ))))(f←v9120, version←v9148, router←v9176, camera←v9204, pd127);
      };
SOURCE(13494, 78)
   if ((childList←v19444 != 0)) {
SOURCE(13516, 56)
      slice←v9248 = (word) ClusterFromChildList←P240(childList←v19444, frozen←v19416, version←v9148);
      };
SOURCE(13205, 367)
   return(slice←v9248);
   }

static void ClusterMovingParts←P660(formal←c0186, slice←v9308, selectedParts←v9336, editConstraints←v9364, bezierDrag←v9392)
   word formal←c0186;
   word slice←v9308;
   word selectedParts←v9336;
   word editConstraints←v9364;
   W5 bezierDrag←v9392;
   {
   register ptr gf←c97156 =  (ptr) &globalframe;
   word background←v9436;
   word overlay←v9464;
   word rubber←v9492;
   word drag←v9520;
   word outlineData←v19572;
   /* ClusterMovingParts: */ 
SOURCE(13578, 344)
SOURCE(13578, 344)
   background←v9436 = 0;
SOURCE(13578, 344)
   overlay←v9464 = 0;
SOURCE(13578, 344)
   rubber←v9492 = 0;
SOURCE(13578, 344)
   drag←v9520 = 0;
SOURCE(13791, 45)
   outlineData←v19572 = XR←Narrow((* (( (ptr) slice←v9308)+1) ), (* (( (ptr) gf←c97156)+13) ));
SOURCE(13838, 84)
   {
      W4 var←c92548;
      {
         word pd128;
         pd128 = (* (( (ptr) (* (( (ptr) gf←c97156)+204)/* var←c91588 */  ))+27) );
         (void) ( *( (fPt) ((*  (ptr) pd128 ))))((word) &var←c92548, slice←v9308, selectedParts←v9336, 1, editConstraints←v9364, bezierDrag←v9392, pd128)
         ;
         };
      background←v9436 = var←c92548.f0;
      overlay←v9464 = var←c92548.f1;
      rubber←v9492 = var←c92548.f2;
      drag←v9520 = var←c92548.f3;
      /* removed tail goto */ 
      };
   (*  (ptr) formal←c0186 ) = background←v9436;
   (* (( (ptr) formal←c0186)+1) ) = overlay←v9464;
   (* (( (ptr) formal←c0186)+2) ) = rubber←v9492;
   (* (( (ptr) formal←c0186)+3) ) = drag←v9520;
   return;
   }

static void Unlink←P720(slice←v9580)
   word slice←v9580;
   {
   register ptr gf←c97188 =  (ptr) &globalframe;
   /* Unlink: */ 
SOURCE(13929, 376)
SOURCE(13968, 337)
   if (((* (( (ptr) slice←v9580)+1) ) != 0)) {
SOURCE(13991, 316)
      {
         word outlineData←v19616;
SOURCE(13993, 45)
         outlineData←v19616 = XR←Narrow((* (( (ptr) slice←v9580)+1) ), (* (( (ptr) gf←c97188)+13) ));
SOURCE(14040, 26)
         {
            word pd129;
            pd129 = (* (( (ptr) (* (( (ptr) gf←c97188)+205)/* var←c91620 */  ))+71) );
            (void) ( *( (fPt) ((*  (ptr) pd129 ))))(slice←v9580, pd129);
            };
SOURCE(14068, 158)
         {
            register word childList←v19660;
            childList←v19660 = (* (( (ptr) outlineData←v19616)+4) );
            lab←L100016: ;
            if ((childList←v19660 != 0)) {
               }
            else {
               goto lab←L100013;
               };
SOURCE(14159, 67)
            if (((* (( (ptr) (*  (ptr) childList←v19660 ))+1) ) != 0)) {
SOURCE(14192, 34)
               {
                  word pd130;
                  pd130 = (* (( (ptr) (* (( (ptr) gf←c97188)+207)/* var←c91876 */  ))+12) );
                  (void) ( *( (fPt) ((*  (ptr) pd130 ))))((*  (ptr) (childList←v19660) ), pd130);
                  };
               };
            childList←v19660 = (* (( (ptr) childList←v19660)+1) );
            goto lab←L100016;
            lab←L100013: ;
            };
SOURCE(14279, 26)
         (* (( (ptr) outlineData←v19616)+4) ) = 0;
         };
      };
   }

static word GetBoundBox←P780(slice←v9640, parts←v9668)
   word slice←v9640;
   word parts←v9668;
   {
   register ptr gf←c97220 =  (ptr) &globalframe;
   word box←v9712;
   /* GetBoundBox: */ 
SOURCE(14314, 1053)
SOURCE(14314, 1053)
   box←v9712 = 0;
SOURCE(14401, 966)
   if ( ( (0 != (* (( (ptr) slice←v9640)+16) )) ? (parts←v9668 == 0) : 0 ) ) {
SOURCE(14438, 41)
      return((* (( (ptr) slice←v9640)+15) ));
      }
   else {
SOURCE(14479, 893)
      {
         word outlineParts←v19788;
         word outlineData←v19816;
         word boundBoxList←v19844 = 0;
         word thisBoundBox←v19872 = 0;
SOURCE(14481, 42)
         outlineParts←v19788 = XR←Narrow(parts←v9668, (* (( (ptr) gf←c97220)+21) ));
SOURCE(14525, 45)
         outlineData←v19816 = XR←Narrow((* (( (ptr) slice←v9640)+1) ), (* (( (ptr) gf←c97220)+13) ));
SOURCE(14628, 497)
         if ((parts←v9668 == 0)) {
SOURCE(14648, 196)
            {
               register word childList←v20000;
               childList←v20000 = (* (( (ptr) outlineData←v19816)+4) );
               lab←L100020: ;
               if ((childList←v20000 != 0)) {
                  }
               else {
                  goto lab←L100017;
                  };
SOURCE(14741, 54)
               {
                  word pd131;
                  pd131 = (* (( (ptr) (* (( (ptr) gf←c97220)+207)/* var←c91876 */  ))+7) );
                  thisBoundBox←v19872 = (word) ( *( (fPt) ((*  (ptr) pd131 ))))((*  (ptr) childList←v20000 ), 0, pd131);
                  };
SOURCE(14797, 47)
               {
                  word var←c92580;
                  var←c92580 = XR←NewObject(8, (* (( (ptr) gf←c97220)+24) ));
                  (*  (ptr) var←c92580 ) = thisBoundBox←v19872;
                  (* (( (ptr) var←c92580)+1) ) = boundBoxList←v19844;
                  boundBoxList←v19844 = var←c92580;
                  };
               childList←v20000 = (* (( (ptr) childList←v20000)+1) );
               goto lab←L100020;
               lab←L100017: ;
               };
            }
         else {
SOURCE(14859, 266)
            {
               register word list←v20128;
               list←v20128 = (*  (ptr) outlineParts←v19788 );
               lab←L100024: ;
               if ((list←v20128 != 0)) {
                  }
               else {
                  goto lab←L100021;
                  };
SOURCE(14951, 174)
               if (((*  (ptr) list←v20128 ) != 0)) {
SOURCE(14976, 73)
                  {
                     word pd132;
                     pd132 = (* (( (ptr) (* (( (ptr) gf←c97220)+207)/* var←c91876 */  ))+7) );
                     thisBoundBox←v19872 = (word) ( *( (fPt) ((*  (ptr) pd132 ))))((*  (ptr) (*  (ptr) list←v20128 ) ), (* (( (ptr) (*  (ptr) list←v20128 ))+1)
                         ), pd132);
                     };
SOURCE(15051, 74)
                  if ((thisBoundBox←v19872 != 0)) {
SOURCE(15078, 47)
                     {
                        word var←c92612;
                        var←c92612 = XR←NewObject(8, (* (( (ptr) gf←c97220)+24) ));
                        (*  (ptr) var←c92612 ) = thisBoundBox←v19872;
                        (* (( (ptr) var←c92612)+1) ) = boundBoxList←v19844;
                        boundBoxList←v19844 = var←c92612;
                        };
                     };
                  };
               list←v20128 = (* (( (ptr) list←v20128)+1) );
               goto lab←L100024;
               lab←L100021: ;
               };
            };
SOURCE(15139, 46)
         {
            word pd133;
            pd133 = (* (( (ptr) (* (( (ptr) gf←c97220)+206)/* var←c91780 */  ))+8) );
            box←v9712 = (word) ( *( (fPt) ((*  (ptr) pd133 ))))(boundBoxList←v19844, pd133);
            };
SOURCE(15187, 180)
         if ((parts←v9668 == 0)) {
SOURCE(15254, 38)
            {
               word pd134;
               pd134 = (* (( (ptr) (* (( (ptr) gf←c97220)+205)/* var←c91620 */  ))+69) );
               (void) ( *( (fPt) ((*  (ptr) pd134 ))))((* ((( (ptr) slice←v9640)+2)) ), pd134);
               };
SOURCE(15324, 20)
            (* (( (ptr) slice←v9640)+15) ) = box←v9712;
SOURCE(15346, 21)
            (* (( (ptr) slice←v9640)+16) ) = 1;
            };
         };
      };
SOURCE(14314, 1053)
   return(box←v9712);
   }

static word GetTransformedBoundBox←P840(slice←v9772, selectedParts←v9800, movingParts←v9828, transform←v9856)
   word slice←v9772;
   word selectedParts←v9800;
   word movingParts←v9828;
   word transform←v9856;
   {
   register ptr gf←c97252 =  (ptr) &globalframe;
   word box←v9900;
   /* GetTransformedBoundBox: */ 
SOURCE(15379, 1324)
SOURCE(15379, 1324)
   box←v9900 = 0;
SOURCE(15543, 1160)
   if ( ( (0 != (* (( (ptr) slice←v9772)+16) )) ? (selectedParts←v9800 == 0) : 0 ) ) {
SOURCE(15588, 83)
      {
         word pd135;
         pd135 = (* (( (ptr) (* (( (ptr) gf←c97252)+206)/* var←c91780 */  ))+9) );
         return((word) ( *( (fPt) ((*  (ptr) pd135 ))))((* (( (ptr) slice←v9772)+15) ), transform←v9856, pd135));
         };
      }
   else {
SOURCE(15671, 1034)
      {
         word outlineSelectedParts←v20256;
         word outlineMovingParts←v20284;
         word outlineData←v20312;
         word boundBoxList←v20340 = 0;
         word thisBoundBox←v20368 = 0;
SOURCE(15673, 58)
         outlineSelectedParts←v20256 = XR←Narrow(selectedParts←v9800, (* (( (ptr) gf←c97252)+21) ));
SOURCE(15733, 54)
         outlineMovingParts←v20284 = XR←Narrow(movingParts←v9828, (* (( (ptr) gf←c97252)+21) ));
SOURCE(15789, 45)
         outlineData←v20312 = XR←Narrow((* (( (ptr) slice←v9772)+1) ), (* (( (ptr) gf←c97252)+13) ));
SOURCE(15892, 751)
         if ((selectedParts←v9800 == 0)) {
SOURCE(15920, 228)
            {
               register word childList←v20496;
               childList←v20496 = (* (( (ptr) outlineData←v20312)+4) );
               lab←L100028: ;
               if ((childList←v20496 != 0)) {
                  }
               else {
                  goto lab←L100025;
                  };
SOURCE(16013, 86)
               {
                  word pd136;
                  pd136 = (* (( (ptr) (* (( (ptr) gf←c97252)+207)/* var←c91876 */  ))+8) );
                  thisBoundBox←v20368 = (word) ( *( (fPt) ((*  (ptr) pd136 ))))((*  (ptr) childList←v20496 ), 0, 0, transform←v9856, pd136)
                  ;
                  };
SOURCE(16101, 47)
               {
                  word var←c92676;
                  var←c92676 = XR←NewObject(8, (* (( (ptr) gf←c97252)+24) ));
                  (*  (ptr) var←c92676 ) = thisBoundBox←v20368;
                  (* (( (ptr) var←c92676)+1) ) = boundBoxList←v20340;
                  boundBoxList←v20340 = var←c92676;
                  };
               childList←v20496 = (* (( (ptr) childList←v20496)+1) );
               goto lab←L100028;
               lab←L100025: ;
               };
            }
         else {
SOURCE(16163, 491)
            {
               word nextMovingList←v20624;
SOURCE(16165, 16)
               nextMovingList←v20624 = (*  (ptr) outlineMovingParts←v20284 );
SOURCE(16239, 404)
               {
                  register word list←v20752;
                  list←v20752 = (*  (ptr) outlineSelectedParts←v20256 );
                  lab←L100032: ;
                  if ((list←v20752 != 0)) {
                     }
                  else {
                     goto lab←L100029;
                     };
                  {
                     word nextMovingD←v20880;
SOURCE(16339, 51)
                     nextMovingD←v20880 = (*  (ptr) nextMovingList←v20624 );
SOURCE(16414, 188)
                     if (((*  (ptr) list←v20752 ) != 0)) {
SOURCE(16439, 114)
                        {
                           word pd137;
                           pd137 = (* (( (ptr) (* (( (ptr) gf←c97252)+207)/* var←c91876 */  ))+8) );
                           thisBoundBox←v20368 = (word) ( *( (fPt) ((*  (ptr) pd137 ))))((*  (ptr) (*  (ptr) list←v20752 ) ), (* (( (ptr) (*  (ptr) list←v20752 ))+1)
/*1*/    ), (* (( (ptr) nextMovingD←v20880)+1) ), transform←v9856, pd137);
                           };
SOURCE(16555, 47)
                        {
                           word var←c92708;
                           var←c92708 = XR←NewObject(8, (* (( (ptr) gf←c97252)+24) ));
                           (*  (ptr) var←c92708 ) = thisBoundBox←v20368;
                           (* (( (ptr) var←c92708)+1) ) = boundBoxList←v20340;
                           boundBoxList←v20340 = var←c92708;
                           };
                        };
SOURCE(16607, 36)
                     nextMovingList←v20624 = (* (( (ptr) nextMovingList←v20624)+1) );
                     };
                  list←v20752 = (* (( (ptr) list←v20752)+1) );
                  goto lab←L100032;
                  lab←L100029: ;
                  };
               };
            };
SOURCE(16657, 46)
         {
            word pd138;
            pd138 = (* (( (ptr) (* (( (ptr) gf←c97252)+206)/* var←c91780 */  ))+8) );
            box←v9900 = (word) ( *( (fPt) ((*  (ptr) pd138 ))))(boundBoxList←v20340, pd138);
            };
         };
      };
SOURCE(15379, 1324)
   return(box←v9900);
   }

static word GetTightBox←P900(slice←v9960, parts←v9988)
   word slice←v9960;
   word parts←v9988;
   {
   register ptr gf←c97284 =  (ptr) &globalframe;
   word box←v10032;
   /* GetTightBox: */ 
SOURCE(16712, 1036)
SOURCE(16712, 1036)
   box←v10032 = 0;
SOURCE(16799, 949)
   if ( ( (0 != (* (( (ptr) slice←v9960)+14) )) ? (parts←v9988 == 0) : 0 ) ) {
SOURCE(16841, 41)
      return((* (( (ptr) slice←v9960)+13) ));
      }
   else {
SOURCE(16882, 871)
      {
         word outlineParts←v20924;
         word outlineData←v20952;
         word boundBoxList←v20980 = 0;
         word thisBoundBox←v21008 = 0;
SOURCE(16884, 42)
         outlineParts←v20924 = XR←Narrow(parts←v9988, (* (( (ptr) gf←c97284)+21) ));
SOURCE(16928, 45)
         outlineData←v20952 = XR←Narrow((* (( (ptr) slice←v9960)+1) ), (* (( (ptr) gf←c97284)+13) ));
SOURCE(17031, 470)
         if ((parts←v9988 == 0)) {
SOURCE(17051, 196)
            {
               register word childList←v21136;
               childList←v21136 = (* (( (ptr) outlineData←v20952)+4) );
               lab←L100036: ;
               if ((childList←v21136 != 0)) {
                  }
               else {
                  goto lab←L100033;
                  };
SOURCE(17144, 54)
               {
                  word pd139;
                  pd139 = (* (( (ptr) (* (( (ptr) gf←c97284)+207)/* var←c91876 */  ))+9) );
                  thisBoundBox←v21008 = (word) ( *( (fPt) ((*  (ptr) pd139 ))))((*  (ptr) childList←v21136 ), 0, pd139);
                  };
SOURCE(17200, 47)
               {
                  word var←c92740;
                  var←c92740 = XR←NewObject(8, (* (( (ptr) gf←c97284)+24) ));
                  (*  (ptr) var←c92740 ) = thisBoundBox←v21008;
                  (* (( (ptr) var←c92740)+1) ) = boundBoxList←v20980;
                  boundBoxList←v20980 = var←c92740;
                  };
               childList←v21136 = (* (( (ptr) childList←v21136)+1) );
               goto lab←L100036;
               lab←L100033: ;
               };
            }
         else {
SOURCE(17262, 239)
            {
               register word list←v21264;
               list←v21264 = (*  (ptr) outlineParts←v20924 );
               lab←L100040: ;
               if ((list←v21264 != 0)) {
                  }
               else {
                  goto lab←L100037;
                  };
SOURCE(17354, 147)
               if (((*  (ptr) list←v21264 ) != 0)) {
SOURCE(17379, 73)
                  {
                     word pd140;
                     pd140 = (* (( (ptr) (* (( (ptr) gf←c97284)+207)/* var←c91876 */  ))+9) );
                     thisBoundBox←v21008 = (word) ( *( (fPt) ((*  (ptr) pd140 ))))((*  (ptr) (*  (ptr) list←v21264 ) ), (* (( (ptr) (*  (ptr) list←v21264 ))+1)
                         ), pd140);
                     };
SOURCE(17454, 47)
                  {
                     word var←c92772;
                     var←c92772 = XR←NewObject(8, (* (( (ptr) gf←c97284)+24) ));
                     (*  (ptr) var←c92772 ) = thisBoundBox←v21008;
                     (* (( (ptr) var←c92772)+1) ) = boundBoxList←v20980;
                     boundBoxList←v20980 = var←c92772;
                     };
                  };
               list←v21264 = (* (( (ptr) list←v21264)+1) );
               goto lab←L100040;
               lab←L100037: ;
               };
            };
SOURCE(17515, 46)
         {
            word pd141;
            pd141 = (* (( (ptr) (* (( (ptr) gf←c97284)+206)/* var←c91780 */  ))+8) );
            box←v10032 = (word) ( *( (fPt) ((*  (ptr) pd141 ))))(boundBoxList←v20980, pd141);
            };
SOURCE(17563, 185)
         if ((parts←v9988 == 0)) {
SOURCE(17630, 38)
            {
               word pd142;
               pd142 = (* (( (ptr) (* (( (ptr) gf←c97284)+205)/* var←c91620 */  ))+70) );
               (void) ( *( (fPt) ((*  (ptr) pd142 ))))((* ((( (ptr) slice←v9960)+2)) ), pd142);
               };
SOURCE(17700, 20)
            (* (( (ptr) slice←v9960)+13) ) = box←v10032;
SOURCE(17722, 26)
            (* (( (ptr) slice←v9960)+14) ) = 1;
            };
         };
      };
SOURCE(16712, 1036)
   return(box←v10032);
   }

static word OutlineCopy←P960(slice←v10092, parts←v10120)
   word slice←v10092;
   word parts←v10120;
   {
   W7 var←c97316;
   register ptr gf←c97348 =  (ptr) &globalframe;
   word copy←v10164;
   /* declaration of var←c92804 skipped */ 
   /* declaration of oldData←v21420 skipped */ 
   word oldParts←v21448;
   /* OutlineCopy: */ 
SOURCE(17760, 697)
   {
      word tmpAddr143;
      tmpAddr143 = (word) (( (ptr) &var←c97316)+4)/* var←c92804 */ ;
      (*  (ptr) tmpAddr143 ) = ( ((word)  (fPt) DoCreateOutline←P4752) );
      (* (( (ptr) tmpAddr143) + 1) ) = 1;
      };
SOURCE(17760, 697)
   copy←v10164 = 0;
SOURCE(18175, 41)
   var←c97316.f6/* oldData←v21420 */  = XR←Narrow((* (( (ptr) slice←v10092)+1) ), (* (( (ptr) gf←c97348)+13) ));
SOURCE(18218, 38)
   oldParts←v21448 = XR←Narrow(parts←v10120, (* (( (ptr) gf←c97348)+21) ));
SOURCE(18258, 42)
   copy←v10164 = (word) Copy←P1020(slice←v10092, parts←v10120, (word) (( (bPt) &var←c97316)+16)/* var←c92804 */ );
SOURCE(18302, 155)
   if ((parts←v10120 == 0) || (0 != (word) IsComplete←P2640(oldParts←v21448))) {
SOURCE(18380, 77)
      {
         word pd144;
         pd144 = (* (( (ptr) (* (( (ptr) gf←c97348)+208)/* var←c91972 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd144 ))))((*  (ptr) copy←v10164 ), (* (( (ptr) var←c97316.f6/* oldData←v21420 */ )+2) ), (* (
               ( (ptr) var←c97316.f6/* oldData←v21420 */ )+3) ), 0, pd144);
         };
      };
SOURCE(17760, 697)
   return(copy←v10164);
   }

static word DoCreateOutline←P4752(newSlice←v21524, formal←c97412)
   word newSlice←v21524;
   word formal←c97412;
   {
   register ptr gf←c97380 =  (ptr) &globalframe;
   word parent←v21568;
   word newData←v21596 = 0;
   formal←c97412 = (formal←c97412 - 16);
   /* DoCreateOutline: */ 
SOURCE(17852, 318)
SOURCE(17852, 318)
   parent←v21568 = 0;
SOURCE(17942, 82)
   {
      word var←c92836;
      {
         word pd145;
         pd145 = (* (( (ptr) (* (( (ptr) gf←c97380)+213)/* var←c92868 */  ))+38) );
         var←c92836 = (word) ( *( (fPt) ((*  (ptr) pd145 ))))((* ((( (ptr) (* (( (ptr) formal←c97412)+6) ))+1)) ), pd145);
         };
      {
         word pd146;
         pd146 = (* (( (ptr) (* (( (ptr) gf←c97380)+208)/* var←c91972 */  ))+5) );
         parent←v21568 = (word) ( *( (fPt) ((*  (ptr) pd146 ))))(newSlice←v21524, var←c92836, pd146);
         };
      };
SOURCE(18026, 29)
   newData←v21596 = XR←Narrow((* (( (ptr) parent←v21568)+1) ), (* (( (ptr) gf←c97380)+13) ));
SOURCE(18057, 33)
   (*  (ptr) newData←v21596 ) = (*  (ptr) (* (( (ptr) formal←c97412)+6) ) );
SOURCE(18092, 35)
   (* (( (ptr) newData←v21596)+2) ) = (* (( (ptr) (* (( (ptr) formal←c97412)+6) ))+2) );
SOURCE(18129, 41)
   (* (( (ptr) newData←v21596)+3) ) = (* (( (ptr) (* (( (ptr) formal←c97412)+6) ))+3) );
SOURCE(17852, 318)
   return(parent←v21568);
   }

static word Copy←P1020(formal←c0941, parts←v10336, formal←c0942)
   word formal←c0941;
   word parts←v10336;
   word formal←c0942;
   {
   W19 var←c97444;
   /* declaration of slice←v10308 skipped */ 
   /* declaration of create←v10364 skipped */ 
   register ptr gf←c97476 =  (ptr) &globalframe;
   /* declaration of copy←v10512 skipped */ 
   /* declaration of var←c92900 skipped */ 
   /* declaration of var←c92932 skipped */ 
   /* declaration of var←c92964 skipped */ 
   /* declaration of newParent←v21640 skipped */ 
   /* declaration of newSlice←v21668 skipped */ 
   word oldData←v21696 = 0;
   /* declaration of newData←v21724 skipped */ 
   /* declaration of ptr←v21752 skipped */ 
   /* declaration of holeList←v21780 skipped */ 
   word outlineParts←v21808;
   (* (( (ptr) &var←c97444)+4)/* slice←v10308 */  ) = formal←c0941;
   (* (( (ptr) &var←c97444)+5)/* create←v10364 */  ) = formal←c0942;
   /* Copy: */ 
SOURCE(18466, 2535)
   {
      word tmpAddr147;
      tmpAddr147 = (word) (( (ptr) &var←c97444)+7)/* var←c92900 */ ;
      (*  (ptr) tmpAddr147 ) = ( ((word)  (fPt) VisitChild←P5028) );
      (* (( (ptr) tmpAddr147) + 1) ) = 1;
      };
   {
      word tmpAddr148;
      tmpAddr148 = (word) (( (ptr) &var←c97444)+9)/* var←c92932 */ ;
      (*  (ptr) tmpAddr148 ) = ( ((word)  (fPt) CopyWholeTraj←P4968) );
      (* (( (ptr) tmpAddr148) + 1) ) = 1;
      };
   {
      word tmpAddr149;
      tmpAddr149 = (word) (( (ptr) &var←c97444)+11)/* var←c92964 */ ;
      (*  (ptr) tmpAddr149 ) = ( ((word)  (fPt) AddChild←P4860) );
      (* (( (ptr) tmpAddr149) + 1) ) = 1;
      };
SOURCE(18466, 2535)
   (* (( (ptr) &var←c97444)+6)/* copy←v10512 */  ) = 0;
SOURCE(18614, 26)
   (* (( (ptr) &var←c97444)+13)/* newParent←v21640 */  ) = 0;
   (* (( (ptr) &var←c97444)+14)/* newSlice←v21668 */  ) = 0;
SOURCE(18642, 29)
   (* (( (ptr) &var←c97444)+15)/* newData←v21724 */  ) = 0;
SOURCE(18673, 15)
   (* (( (ptr) &var←c97444)+16)/* ptr←v21752 */  ) = 0;
   (* (( (ptr) &var←c97444)+17)/* holeList←v21780 */  ) = 0;
SOURCE(18703, 42)
   outlineParts←v21808 = XR←Narrow(parts←v10336, (* (( (ptr) gf←c97476)+21) ));
SOURCE(18748, 2253)
   if ((parts←v10336 == 0) || (0 != (word) IsComplete←P2640(outlineParts←v21808))) {
SOURCE(18794, 624)
SOURCE(19171, 28)
      oldData←v21696 = XR←Narrow((* (( (ptr) (* (( (ptr) &var←c97444)+4)/* slice←v10308 */  ))+1) ), (* (( (ptr) gf←c97476)+13)
          ));
SOURCE(19201, 44)
      {
         W2 var←c93028;
         {
            word pd150;
            pd150 = (* (( (ptr) (* (( (ptr) gf←c97476)+214)/* var←c92996 */  ))+20) );
            (void) ( *( (fPt) ((*  (ptr) pd150 ))))((word) (&var←c93028), pd150);
            };
         (* (( (ptr) &var←c97444)+16)/* ptr←v21752 */  ) = var←c93028.f1;
         (* (( (ptr) &var←c97444)+17)/* holeList←v21780 */  ) = var←c93028.f0;
         };
SOURCE(19247, 50)
      {
         word var←c93060;
         word pd151;
         pd151 = (* (( (ptr) (* (( (ptr) gf←c97476)+204)/* var←c91588 */  ))+73) );
         var←c93060 = (word) ( *( (fPt) ((*  (ptr) pd151 ))))((* (( (ptr) &var←c97444)+4)/* slice←v10308 */  ), 0, (word) (( (bPt) &var←c97444)+44)
            /* var←c92964 */ , 0, pd151);
         };
SOURCE(19299, 93)
      if (((* (( (ptr) &var←c97444)+17)/* holeList←v21780 */  ) != 0)) {
SOURCE(19320, 72)
         {
            word pd152;
            pd152 = (* (( (ptr) (* (( (ptr) gf←c97476)+214)/* var←c92996 */  ))+22) );
            (* (( (ptr) (* (( (ptr) &var←c97444)+15)/* newData←v21724 */  ))+4) ) = (word) ( *( (fPt) ((*  (ptr) pd152 ))))((* (( (ptr) (* (
                     ( (ptr) &var←c97444)+15)/* newData←v21724 */  ))+4) ), (* (( (ptr) &var←c97444)+17)/* holeList←v21780 */  ), pd152);
            };
         };
SOURCE(19394, 22)
      {
         word var←c93092;
         word var←c93124;
         var←c93092 = XR←NewObject(8, (* (( (ptr) gf←c97476)+25) ));
         var←c93124 = var←c93092;
         (*  (ptr) var←c93124 ) = (* (( (ptr) &var←c97444)+13)/* newParent←v21640 */  );
         (* (( (ptr) &var←c97444)+6)/* copy←v10512 */  ) = var←c93092;
         };
      }
   else {
SOURCE(19425, 1578)
      {
         /* declaration of fillColor←v22140 skipped */ 
SOURCE(20844, 88)
         {
            W2 var←c0259;
            word var←c93156;
            {
               word pd153;
               pd153 = (* (( (ptr) (* (( (ptr) gf←c97476)+207)/* var←c91876 */  ))+62) );
               (void) ( *( (fPt) ((*  (ptr) pd153 ))))((word) &var←c0259, (* (( (ptr) &var←c97444)+4)/* slice←v10308 */  ), 0, pd153);
               };
            var←c93156 = var←c0259.f0;
            {
               word pd154;
               pd154 = (* (( (ptr) (* (( (ptr) gf←c97476)+213)/* var←c92868 */  ))+38) );
               (* (( (ptr) &var←c97444)+18)/* fillColor←v22140 */  ) = (word) ( *( (fPt) ((*  (ptr) pd154 ))))(var←c93156, pd154);
               };
            };
SOURCE(20934, 67)
         {
            word var←c93188;
            word pd155;
            pd155 = (* (( (ptr) (* (( (ptr) gf←c97476)+204)/* var←c91588 */  ))+74) );
            var←c93188 = (word) ( *( (fPt) ((*  (ptr) pd155 ))))((* (( (ptr) &var←c97444)+4)/* slice←v10308 */  ), parts←v10336, 0, (word) (
                  ( (bPt) &var←c97444)+28)/* var←c92900 */ , 0, pd155);
            };
         };
      };
SOURCE(18466, 2535)
   return((* (( (ptr) &var←c97444)+6)/* copy←v10512 */  ));
   }

static word AddChild←P4860(child←v22012, formal←c97540)
   word child←v22012;
   word formal←c97540;
   {
   register ptr gf←c97508 =  (ptr) &globalframe;
   word done←v22056;
   formal←c97540 = (formal←c97540 - 44);
   /* AddChild: */ 
SOURCE(18830, 16)
SOURCE(18830, 16)
   done←v22056 = 0;
SOURCE(18893, 270)
   if (((* (( (ptr) formal←c97540)+14) ) == 0)) {
SOURCE(18918, 39)
      {
         word pd156;
         pd156 = (* (( (ptr) (* (( (ptr) gf←c97508)+207)/* var←c91876 */  ))+10) );
         (* (( (ptr) formal←c97540)+14) ) = (*  (ptr) ( *( (fPt) ((*  (ptr) pd156 ))))(child←v22012, 0, pd156) );
         };
SOURCE(18959, 28)
      {
         word pd157;
         pd157 = (* (( (ptr) formal←c97540)+5) );
         (* (( (ptr) formal←c97540)+13) ) = (word) ( *( (fPt) ((*  (ptr) pd157 ))))((* ((( (ptr) formal←c97540)+14)) ), pd157);
         };
SOURCE(18989, 32)
      (* (( (ptr) formal←c97540)+15) ) = XR←Narrow((* (( (ptr) (* (( (ptr) formal←c97540)+13) ))+1) ), (* (( (ptr) gf←c97508)+13)
          ));
      }
   else {
SOURCE(19032, 39)
      {
         word pd158;
         pd158 = (* (( (ptr) (* (( (ptr) gf←c97508)+207)/* var←c91876 */  ))+10) );
         (* (( (ptr) formal←c97540)+14) ) = (*  (ptr) ( *( (fPt) ((*  (ptr) pd158 ))))(child←v22012, 0, pd158) );
         };
SOURCE(19073, 61)
      {
         W2 var←c93220;
         {
            word pd159;
            pd159 = (* (( (ptr) (* (( (ptr) gf←c97508)+214)/* var←c92996 */  ))+21) );
            (void) ( *( (fPt) ((*  (ptr) pd159 ))))((word) &var←c93220, (* (( (ptr) formal←c97540)+14) ), (* (( (ptr) formal←c97540)+17)
                ), (* (( (ptr) formal←c97540)+16) ), pd159);
            };
         (* (( (ptr) formal←c97540)+16) ) = var←c93220.f1;
         (* (( (ptr) formal←c97540)+17) ) = var←c93220.f0;
         };
SOURCE(19136, 27)
      (* (( (ptr) (* (( (ptr) formal←c97540)+14) ))+2) ) = (* (( (ptr) formal←c97540)+13) );
      };
SOURCE(18830, 16)
   return(done←v22056);
   }

static void CopyWholeTraj←P4968(child←v22216, enclose←v22244, formal←c97604)
   word child←v22216;
   word enclose←v22244;
   word formal←c97604;
   {
   register ptr gf←c97572 =  (ptr) &globalframe;
   word thisFillColor←v22376;
   word newChild←v22404;
   formal←c97604 = (formal←c97604 - 36);
   /* CopyWholeTraj: */ 
SOURCE(19483, 21)
SOURCE(19545, 92)
   {
      W2 var←c0269;
      word var←c93252;
      {
         word pd160;
         pd160 = (* (( (ptr) (* (( (ptr) gf←c97572)+207)/* var←c91876 */  ))+62) );
         (void) ( *( (fPt) ((*  (ptr) pd160 ))))((word) &var←c0269, (* (( (ptr) formal←c97604)+4) ), 0, pd160);
         };
      var←c93252 = var←c0269.f0;
      {
         word pd161;
         pd161 = (* (( (ptr) (* (( (ptr) gf←c97572)+213)/* var←c92868 */  ))+38) );
         thisFillColor←v22376 = (word) ( *( (fPt) ((*  (ptr) pd161 ))))(var←c93252, pd161);
         };
      };
SOURCE(19639, 46)
   {
      word pd162;
      pd162 = (* (( (ptr) (* (( (ptr) gf←c97572)+207)/* var←c91876 */  ))+10) );
      newChild←v22404 = (*  (ptr) ( *( (fPt) ((*  (ptr) pd162 ))))(child←v22216, 0, pd162) );
      };
SOURCE(19687, 75)
   if ((0 != enclose←v22244)) {
SOURCE(19703, 59)
      {
         word pd163;
         pd163 = (* (( (ptr) (* (( (ptr) gf←c97572)+208)/* var←c91972 */  ))+5) );
         newChild←v22404 = (word) ( *( (fPt) ((*  (ptr) pd163 ))))(newChild←v22404, thisFillColor←v22376, pd163);
         };
      };
SOURCE(19764, 54)
   {
      word var←c93284;
      {
         word var←c93316;
         word var←c93348;
         var←c93316 = XR←NewObject(8, (* (( (ptr) gf←c97572)+25) ));
         var←c93348 = var←c93316;
         (*  (ptr) var←c93348 ) = newChild←v22404;
         var←c93284 = var←c93316;
         };
      {
         word pd164;
         pd164 = (* (( (ptr) (* (( (ptr) gf←c97572)+214)/* var←c92996 */  ))+22) );
         (* (( (ptr) formal←c97604)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd164 ))))((* (( (ptr) formal←c97604)+6) ), var←c93284, pd164)
         ;
         };
      };
   }

static word VisitChild←P5028(childD←v22304, formal←c97668)
   word childD←v22304;
   word formal←c97668;
   {
   register ptr gf←c97636 =  (ptr) &globalframe;
   word done←v22348;
   word nextChild←v22448;
   word childParts←v22476;
   formal←c97668 = (formal←c97668 - 28);
   /* VisitChild: */ 
SOURCE(19823, 18)
SOURCE(19823, 18)
   done←v22348 = 0;
SOURCE(19899, 31)
   nextChild←v22448 = (*  (ptr) childD←v22304 );
SOURCE(19932, 37)
   childParts←v22476 = (* (( (ptr) childD←v22304)+1) );
SOURCE(19971, 853)
   {
      word pd165;
      pd165 = (* (( (ptr) (* (( (ptr) gf←c97636)+207)/* var←c91876 */  ))+6) );
      if (((word) ( *( (fPt) ((*  (ptr) pd165 ))))(nextChild←v22448, pd165) != (* (( (ptr) gf←c97636)+59) ))) {
SOURCE(20017, 78)
         {
            word var←c93380;
            {
               word pd166;
               pd166 = (* (( (ptr) (* (( (ptr) gf←c97636)+207)/* var←c91876 */  ))+10) );
               var←c93380 = (word) ( *( (fPt) ((*  (ptr) pd166 ))))(nextChild←v22448, childParts←v22476, pd166);
               };
            {
               word pd167;
               pd167 = (* (( (ptr) (* (( (ptr) gf←c97636)+214)/* var←c92996 */  ))+22) );
               (* (( (ptr) formal←c97668)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd167 ))))((* (( (ptr) formal←c97668)+6) ), var←c93380, pd167)
               ;
               };
            };
         }
      else {
SOURCE(20104, 734)
         {
            word nextChildParts←v22520;
SOURCE(20106, 46)
            nextChildParts←v22520 = XR←Narrow(childParts←v22476, (* (( (ptr) gf←c97636)+27) ));
SOURCE(20154, 670)
            {
               word pd168;
               pd168 = (* (( (ptr) (* (( (ptr) gf←c97636)+215)/* var←c93412 */  ))+26) );
               if ((0 != (word) ( *( (fPt) ((*  (ptr) pd168 ))))(nextChildParts←v22520, pd168))) {
SOURCE(20200, 36)
                  (void) CopyWholeTraj←P4968(nextChild←v22448, 1, (word) (( (bPt) formal←c97668)+36));
                  }
               else {
SOURCE(20236, 599)
                  {
                     word nextRuns←v22564;
                     W2 var←c0281;
SOURCE(20238, 89)
                     {
                        word pd169;
                        pd169 = (* (( (ptr) (* (( (ptr) gf←c97636)+215)/* var←c93412 */  ))+37) );
                        (void) ( *( (fPt) ((*  (ptr) pd169 ))))((word) &var←c0281, nextChildParts←v22520, pd169);
                        };
                     nextRuns←v22564 = var←c0281.f0;
SOURCE(20329, 495)
                     {
                        register word nextSeq←v22608;
                        {
                           word pd170;
                           pd170 = (* (( (ptr) (* (( (ptr) gf←c97636)+215)/* var←c93412 */  ))+38) );
                           nextSeq←v22608 = (word) ( *( (fPt) ((*  (ptr) pd170 ))))(nextRuns←v22564, pd170);
                           };
                        lab←L100044: ;
                        if ((nextSeq←v22608 != 0)) {
                           }
                        else {
                           goto lab←L100041;
                           };
SOURCE(20444, 203)
                        {
                           word pd171;
                           pd171 = (* (( (ptr) (* (( (ptr) gf←c97636)+215)/* var←c93412 */  ))+31) );
                           if ((0 == (word) ( *( (fPt) ((*  (ptr) pd171 ))))(nextSeq←v22608, pd171))) {
SOURCE(20496, 159)
/*1*/   {
/*1*/      word router←v22652;
SOURCE(20498, 52)
/*1*/      {
/*1*/         word pd172;
/*1*/         pd172 = (* (( (ptr) (* (( (ptr) gf←c97636)+202)/* var←c91492 */  ))+10) );
/*1*/         router←v22652 = (word) ( *( (fPt) ((*  (ptr) pd172 ))))((* ((( (ptr) gf←c97636)+58)) ), pd172);
/*1*/         };
SOURCE(20552, 95)
/*1*/      {
/*1*/         word pd173;
/*1*/         pd173 = (* (( (ptr) (* (( (ptr) gf←c97636)+202)/* var←c91492 */  ))+12) );
/*1*/         (void) ( *( (fPt) ((*  (ptr) pd173 ))))(router←v22652, 0, (* (( (ptr) gf←c97636)+57) ), (* (( (ptr) gf←c97636)+37) ), pd173)
/*1*/         ;
/*1*/         };
SOURCE(20649, 4)
/*1*/      goto lab←L100043;
/*1*/      };
/*1*/   };
                           };
SOURCE(20658, 53)
                        {
                           word pd174;
                           pd174 = (* (( (ptr) (* (( (ptr) gf←c97636)+216)/* var←c93444 */  ))+17) );
                           (* (( (ptr) formal←c97668)+14) ) = (word) ( *( (fPt) ((*  (ptr) pd174 ))))(nextChild←v22448, nextSeq←v22608, pd174);
                           };
SOURCE(20713, 55)
                        {
                           word pd175;
                           pd175 = (* (( (ptr) (* (( (ptr) gf←c97636)+208)/* var←c91972 */  ))+5) );
                           (* (( (ptr) formal←c97668)+14) ) = (word) ( *( (fPt) ((*  (ptr) pd175 ))))((* (( (ptr) formal←c97668)+14) ), (* (( (ptr) formal←c97668)+18)
/*1*/    ), pd175);
                           };
SOURCE(20770, 54)
                        {
                           word var←c93476;
                           {
/*1*/   word var←c93508;
/*1*/   word var←c93540;
/*1*/   var←c93508 = XR←NewObject(8, (* (( (ptr) gf←c97636)+25) ));
/*1*/   var←c93540 = var←c93508;
/*1*/   (*  (ptr) var←c93540 ) = (* (( (ptr) formal←c97668)+14) );
/*1*/   var←c93476 = var←c93508;
/*1*/   };
                           {
/*1*/   word pd176;
/*1*/   pd176 = (* (( (ptr) (* (( (ptr) gf←c97636)+214)/* var←c92996 */  ))+22) );
/*1*/   (* (( (ptr) formal←c97668)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd176 ))))((* (( (ptr) formal←c97668)+6) ), var←c93476, pd176)
/*1*/   ;
/*1*/   };
                           };
                        lab←L100043: ;
                        {
                           word pd177;
                           pd177 = (* (( (ptr) (* (( (ptr) gf←c97636)+215)/* var←c93412 */  ))+38) );
                           nextSeq←v22608 = (word) ( *( (fPt) ((*  (ptr) pd177 ))))(nextRuns←v22564, pd177);
                           };
                        goto lab←L100044;
                        lab←L100041: ;
                        };
                     };
                  };
               };
            };
         };
      };
SOURCE(19823, 18)
   return(done←v22348);
   }

static void Restore←P1080(from←v10656, to←v10684)
   word from←v10656;
   word to←v10684;
   {
   register ptr gf←c97700 =  (ptr) &globalframe;
   /* Restore: */ 
SOURCE(21010, 2585)
SOURCE(21060, 27)
   if ((to←v10684 == 0) || (from←v10656 == 0)) {
SOURCE(21087, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(21094, 28)
   if (((*  (ptr) to←v10684 ) != (*  (ptr) from←v10656 ))) {
SOURCE(21122, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(21221, 2376)
   {
      word fromSize←v22696 = 0;
      word fromData←v22724;
      word fromChildren←v22752;
      word toSize←v22780 = 0;
      word toData←v22808;
      word toChildren←v22836;
      word lastToChildren←v22864 = 0;
SOURCE(21246, 41)
      fromData←v22724 = XR←Narrow((* (( (ptr) from←v10656)+1) ), (* (( (ptr) gf←c97700)+13) ));
SOURCE(21289, 14)
      fromChildren←v22752 = (* (( (ptr) fromData←v22724)+4) );
SOURCE(21355, 37)
      toData←v22808 = XR←Narrow((* (( (ptr) to←v10684)+1) ), (* (( (ptr) gf←c97700)+13) ));
SOURCE(21394, 12)
      toChildren←v22836 = (* (( (ptr) toData←v22808)+4) );
SOURCE(21477, 33)
      (*  (ptr) toData←v22808 ) = (*  (ptr) fromData←v22724 );
SOURCE(21512, 37)
      (* (( (ptr) toData←v22808)+1) ) = (* (( (ptr) fromData←v22724)+1) );
SOURCE(21551, 35)
      (* (( (ptr) toData←v22808)+2) ) = (* (( (ptr) fromData←v22724)+2) );
SOURCE(21588, 41)
      (* (( (ptr) toData←v22808)+3) ) = (* (( (ptr) fromData←v22724)+3) );
SOURCE(21632, 101)
      {
         register word fromList←v23160;
         fromList←v23160 = fromChildren←v22752;
         lab←L100048: ;
         if ((fromList←v23160 != 0)) {
            }
         else {
            goto lab←L100045;
            };
SOURCE(21712, 21)
         fromSize←v22696 = (fromSize←v22696 + 1);
         fromList←v23160 = (* (( (ptr) fromList←v23160)+1) );
         goto lab←L100048;
         lab←L100045: ;
         };
SOURCE(21744, 89)
      {
         register word toList←v23288;
         toList←v23288 = toChildren←v22836;
         lab←L100052: ;
         if ((toList←v23288 != 0)) {
            }
         else {
            goto lab←L100049;
            };
SOURCE(21816, 17)
         toSize←v22780 = (toSize←v22780 + 1);
         toList←v23288 = (* (( (ptr) toList←v23288)+1) );
         goto lab←L100052;
         lab←L100049: ;
         };
SOURCE(21845, 1196)
      if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c97700)+205)/* var←c91620 */  ))+67) ) ))) {
SOURCE(21873, 917)
         if (( (int)fromSize←v22696 >=  (int)toSize←v22780)) {
SOURCE(21900, 269)
            lab←L100055: ;
            if ((toChildren←v22836 != 0)) {
               }
            else {
               goto lab←L100053;
               };
SOURCE(21924, 66)
            {
               word pd178;
               pd178 = (* (( (ptr) (* (( (ptr) gf←c97700)+207)/* var←c91876 */  ))+11) );
               (void) ( *( (fPt) ((*  (ptr) pd178 ))))((*  (ptr) fromChildren←v22752 ), (*  (ptr) toChildren←v22836 ), pd178);
               };
SOURCE(21992, 28)
            (* (( (ptr) (*  (ptr) toChildren←v22836 ))+2) ) = to←v10684;
SOURCE(22077, 28)
            lastToChildren←v22864 = toChildren←v22836;
SOURCE(22107, 32)
            fromChildren←v22752 = (* (( (ptr) fromChildren←v22752)+1) );
SOURCE(22141, 28)
            toChildren←v22836 = (* (( (ptr) toChildren←v22836)+1) );
            goto lab←L100055;
            lab←L100053: ;
SOURCE(22180, 235)
            if ((lastToChildren←v22864 != 0)) {
SOURCE(22252, 34)
               (* (( (ptr) lastToChildren←v22864)+1) ) = fromChildren←v22752;
SOURCE(22309, 106)
               {
                  register word adoptees←v23416;
                  adoptees←v23416 = fromChildren←v22752;
                  lab←L100059: ;
                  if ((adoptees←v23416 != 0)) {
                     }
                  else {
                     goto lab←L100056;
                     };
SOURCE(22389, 26)
                  (* (( (ptr) (*  (ptr) adoptees←v23416 ))+2) ) = to←v10684;
                  adoptees←v23416 = (* (( (ptr) adoptees←v23416)+1) );
                  goto lab←L100059;
                  lab←L100056: ;
                  };
               };
            }
         else {
SOURCE(22456, 271)
            lab←L100062: ;
            if ((fromChildren←v22752 != 0)) {
               }
            else {
               goto lab←L100060;
               };
SOURCE(22482, 66)
            {
               word pd179;
               pd179 = (* (( (ptr) (* (( (ptr) gf←c97700)+207)/* var←c91876 */  ))+11) );
               (void) ( *( (fPt) ((*  (ptr) pd179 ))))((*  (ptr) fromChildren←v22752 ), (*  (ptr) toChildren←v22836 ), pd179);
               };
SOURCE(22550, 28)
            (* (( (ptr) (*  (ptr) toChildren←v22836 ))+2) ) = to←v10684;
SOURCE(22635, 28)
            lastToChildren←v22864 = toChildren←v22836;
SOURCE(22665, 32)
            fromChildren←v22752 = (* (( (ptr) fromChildren←v22752)+1) );
SOURCE(22699, 28)
            toChildren←v22836 = (* (( (ptr) toChildren←v22836)+1) );
            goto lab←L100062;
            lab←L100060: ;
SOURCE(22738, 52)
            if ((lastToChildren←v22864 != 0)) {
SOURCE(22765, 25)
               (* (( (ptr) lastToChildren←v22864)+1) ) = 0;
               };
            };
         }
      else {
SOURCE(22884, 111)
         {
            register word adoptees←v23544;
            adoptees←v23544 = (* (( (ptr) fromData←v22724)+4) );
            lab←L100066: ;
            if ((adoptees←v23544 != 0)) {
               }
            else {
               goto lab←L100063;
               };
SOURCE(22969, 26)
            (* (( (ptr) (*  (ptr) adoptees←v23544 ))+2) ) = to←v10684;
            adoptees←v23544 = (* (( (ptr) adoptees←v23544)+1) );
            goto lab←L100066;
            lab←L100063: ;
            };
SOURCE(23006, 35)
         (* (( (ptr) toData←v22808)+4) ) = (* (( (ptr) fromData←v22724)+4) );
         };
SOURCE(23068, 39)
      (*  (W4Pt) (( (ptr) to←v10684)+3) ) = (*  (W4Pt) (( (ptr) from←v10656)+3) );
SOURCE(23127, 28)
      (* (( (ptr) to←v10684)+7) ) = 0;
SOURCE(23181, 25)
      (* (( (ptr) to←v10684)+8) ) = 0;
SOURCE(23232, 28)
      (* (( (ptr) to←v10684)+9) ) = 0;
SOURCE(23286, 27)
      (* (( (ptr) to←v10684)+10) ) = 0;
SOURCE(23339, 29)
      (*  (W6Pt) (* (( (ptr) to←v10684)+13) ) ) = (*  (W6Pt) (* (( (ptr) from←v10656)+13) ) );
SOURCE(23370, 37)
      (* (( (ptr) to←v10684)+14) ) = (* (( (ptr) from←v10656)+14) );
SOURCE(23409, 29)
      (*  (W6Pt) (* (( (ptr) to←v10684)+15) ) ) = (*  (W6Pt) (* (( (ptr) from←v10656)+15) ) );
SOURCE(23440, 27)
      (* (( (ptr) to←v10684)+16) ) = (* (( (ptr) from←v10656)+16) );
SOURCE(23469, 29)
      (* (( (ptr) to←v10684)+17) ) = (* (( (ptr) from←v10656)+17) );
SOURCE(23500, 33)
      (* (( (ptr) to←v10684)+18) ) = (* (( (ptr) from←v10656)+18) );
SOURCE(23535, 27)
      (* (( (ptr) to←v10684)+19) ) = (* (( (ptr) from←v10656)+19) );
SOURCE(23564, 31)
      (* (( (ptr) to←v10684)+20) ) = (* (( (ptr) from←v10656)+20) );
      };
   }

static void OutlineBuildPath←P1140(slice←v10744, transformParts←v10772, transform←v10800, moveTo←v10828, lineTo←v10856, curveTo←v10884, conicTo←v10912, arcTo←v10940, editConstraints←v10968)
   word slice←v10744;
   word transformParts←v10772;
   word transform←v10800;
   word moveTo←v10828;
   word lineTo←v10856;
   word curveTo←v10884;
   word conicTo←v10912;
   word arcTo←v10940;
   word editConstraints←v10968;
   {
   register ptr gf←c97732 =  (ptr) &globalframe;
   word outlineData←v23672;
   word outlineTransformParts←v23700;
   word noTransform←v23728;
   word transformAll←v23756;
   word pathTransformParts←v23784;
   /* OutlineBuildPath: */ 
SOURCE(23608, 1401)
SOURCE(23855, 45)
   outlineData←v23672 = XR←Narrow((* (( (ptr) slice←v10744)+1) ), (* (( (ptr) gf←c97732)+13) ));
SOURCE(23902, 60)
   outlineTransformParts←v23700 = XR←Narrow(transformParts←v10772, (* (( (ptr) gf←c97732)+21) ));
SOURCE(23964, 33)
   noTransform←v23728 =  (unsigned) (transform←v10800 == 0);
SOURCE(23999, 57)
   transformAll←v23756 =  (unsigned)  ( (transform←v10800 != 0) ? (transformParts←v10772 == 0) : 0 ) ;
SOURCE(24058, 20)
   pathTransformParts←v23784 =  ( (transformParts←v10772 == 0) ? 0 : (*  (ptr) outlineTransformParts←v23700 ) ) ;
SOURCE(24175, 834)
   {
      register word children←v23912;
      children←v23912 = (* (( (ptr) outlineData←v23672)+4) );
      lab←L100070: ;
      if ((children←v23912 != 0)) {
         }
      else {
         goto lab←L100067;
         };
      {
         word isClosed←v24040;
SOURCE(24265, 108)
         {
            word tc180;
            word pd181;
            pd181 = (* (( (ptr) (* (( (ptr) gf←c97732)+207)/* var←c91876 */  ))+6) );
            if (((word) ( *( (fPt) ((*  (ptr) pd181 ))))((*  (ptr) (children←v23912) ), pd181) != (* (( (ptr) gf←c97732)+59) ))) {
               tc180 =  (word) 1;
               }
            else {
               tc180 =  (word) ((*  (ptr) XR←Narrow((* (( (ptr) (*  (ptr) children←v23912 ))+1) ), (* (( (ptr) gf←c97732)+31) )) ) != 2);
               };
            isClosed←v24040 =  (unsigned) tc180;
            };
SOURCE(24375, 554)
         if ((0 != isClosed←v24040)) {
SOURCE(24433, 496)
            if ((0 != noTransform←v23728)) {
SOURCE(24453, 110)
               {
                  word pd182;
                  pd182 = (* (( (ptr) (* (( (ptr) gf←c97732)+207)/* var←c91876 */  ))+13) );
                  (void) ( *( (fPt) ((*  (ptr) pd182 ))))((*  (ptr) children←v23912 ), 0, 0, moveTo←v10828, lineTo←v10856, curveTo←v10884
                     , conicTo←v10912, arcTo←v10940, editConstraints←v10968, pd182);
                  };
               }
            else {
SOURCE(24563, 366)
               if ((0 != transformAll←v23756)) {
SOURCE(24584, 116)
                  {
                     word pd183;
                     pd183 = (* (( (ptr) (* (( (ptr) gf←c97732)+207)/* var←c91876 */  ))+13) );
                     (void) ( *( (fPt) ((*  (ptr) pd183 ))))((*  (ptr) children←v23912 ), 0, transform←v10800, moveTo←v10828, lineTo←v10856, curveTo←v10884
                        , conicTo←v10912, arcTo←v10940, editConstraints←v10968, pd183);
                     };
                  }
               else {
SOURCE(24700, 229)
                  {
                     word pd184;
                     pd184 = (* (( (ptr) (* (( (ptr) gf←c97732)+207)/* var←c91876 */  ))+13) );
                     (void) ( *( (fPt) ((*  (ptr) pd184 ))))((*  (ptr) children←v23912 ),  ( ((*  (ptr) pathTransformParts←v23784 ) == 0) ? 0 : (* (
                           ( (ptr) (*  (ptr) pathTransformParts←v23784 ))+1) ) ) ,  ( ((*  (ptr) pathTransformParts←v23784 ) == 0) ? 0 : transform←v10800 ) , moveTo←v10828, lineTo←v10856, curveTo←v10884
                        , conicTo←v10912, arcTo←v10940, editConstraints←v10968, pd184);
                     };
                  };
               };
            };
SOURCE(24934, 75)
         if ((pathTransformParts←v23784 != 0)) {
SOURCE(24965, 44)
            pathTransformParts←v23784 = (* (( (ptr) pathTransformParts←v23784)+1) );
            };
         };
      children←v23912 = (* (( (ptr) children←v23912)+1) );
      goto lab←L100070;
      lab←L100067: ;
      };
   }

static void OutlineDrawBorder←P1200(slice←v11028, drawParts←v11056, transformParts←v11084, transform←v11112, dc←v11140, camera←v11168, quick←v11196, editConstraints←v11224)
   word slice←v11028;
   word drawParts←v11056;
   word transformParts←v11084;
   word transform←v11112;
   word dc←v11140;
   word camera←v11168;
   word quick←v11196;
   word editConstraints←v11224;
   {
   register ptr gf←c97764 =  (ptr) &globalframe;
   word outlineData←v24084;
   word outlineDrawParts←v24112;
   word outlineTransformParts←v24140;
   word noTransform←v24168;
   word transformAll←v24196;
   word drawAll←v24224;
   word pathTransformParts←v24252;
   word pathDrawParts←v24280;
   /* OutlineDrawBorder: */ 
SOURCE(25024, 1624)
SOURCE(25250, 45)
   outlineData←v24084 = XR←Narrow((* (( (ptr) slice←v11028)+1) ), (* (( (ptr) gf←c97764)+13) ));
SOURCE(25297, 50)
   outlineDrawParts←v24112 = XR←Narrow(drawParts←v11056, (* (( (ptr) gf←c97764)+21) ));
SOURCE(25349, 60)
   outlineTransformParts←v24140 = XR←Narrow(transformParts←v11084, (* (( (ptr) gf←c97764)+21) ));
SOURCE(25411, 33)
   noTransform←v24168 =  (unsigned) (transform←v11112 == 0);
SOURCE(25446, 57)
   transformAll←v24196 =  (unsigned)  ( (transform←v11112 != 0) ? (transformParts←v11084 == 0) : 0 ) ;
SOURCE(25505, 29)
   drawAll←v24224 =  (unsigned) (drawParts←v11056 == 0);
SOURCE(25536, 20)
   pathTransformParts←v24252 =  ( (transformParts←v11084 == 0) ? 0 : (*  (ptr) outlineTransformParts←v24140 ) ) ;
SOURCE(25653, 15)
   pathDrawParts←v24280 =  ( (0 != drawAll←v24224) ? 0 : (*  (ptr) outlineDrawParts←v24112 ) ) ;
SOURCE(25749, 899)
   {
      register word children←v24492;
      children←v24492 = (* (( (ptr) outlineData←v24084)+4) );
      lab←L100074: ;
      if ((children←v24492 != 0)) {
         }
      else {
         goto lab←L100071;
         };
SOURCE(25839, 667)
      if ((0 != drawAll←v24224) || ((*  (ptr) pathDrawParts←v24280 ) != 0)) {
SOURCE(25917, 589)
         if ((0 != noTransform←v24168)) {
SOURCE(25937, 141)
            {
               word pd185;
               pd185 = (* (( (ptr) (* (( (ptr) gf←c97764)+207)/* var←c91876 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd185 ))))((*  (ptr) children←v24492 ),  ( (0 != drawAll←v24224) ? 0 : (* (( (ptr) (*  (ptr) pathDrawParts←v24280 ))+1)
                   ) ) , 0, 0, dc←v11140, camera←v11168
                  , quick←v11196, editConstraints←v11224, pd185);
               };
            }
         else {
SOURCE(26078, 428)
            if ((0 != transformAll←v24196)) {
SOURCE(26099, 147)
               {
                  word pd186;
                  pd186 = (* (( (ptr) (* (( (ptr) gf←c97764)+207)/* var←c91876 */  ))+14) );
                  (void) ( *( (fPt) ((*  (ptr) pd186 ))))((*  (ptr) children←v24492 ),  ( (0 != drawAll←v24224) ? 0 : (* (( (ptr) (*  (ptr) pathDrawParts←v24280 ))+1)
                      ) ) , 0, transform←v11112, dc←v11140, camera←v11168
                     , quick←v11196, editConstraints←v11224, pd186);
                  };
               }
            else {
SOURCE(26246, 260)
               {
                  word pd187;
                  pd187 = (* (( (ptr) (* (( (ptr) gf←c97764)+207)/* var←c91876 */  ))+14) );
                  (void) ( *( (fPt) ((*  (ptr) pd187 ))))((*  (ptr) children←v24492 ),  ( (0 != drawAll←v24224) ? 0 : (* (( (ptr) (*  (ptr) pathDrawParts←v24280 ))+1)
                      ) ) ,  ( ((*  (ptr) pathTransformParts←v24252 ) == 0) ? 0 : (* (( (ptr) (*  (ptr) pathTransformParts←v24252 ))+1) ) ) ,  ( ((*  (ptr) pathTransformParts←v24252 ) == 0) ? 0 : transform←v11112 ) , dc←v11140, camera←v11168
                     , quick←v11196, editConstraints←v11224, pd187);
                  };
               };
            };
         };
SOURCE(26511, 75)
      if ((pathTransformParts←v24252 != 0)) {
SOURCE(26542, 44)
         pathTransformParts←v24252 = (* (( (ptr) pathTransformParts←v24252)+1) );
         };
SOURCE(26588, 60)
      if ((pathDrawParts←v24280 != 0)) {
SOURCE(26614, 34)
         pathDrawParts←v24280 = (* (( (ptr) pathDrawParts←v24280)+1) );
         };
      children←v24492 = (* (( (ptr) children←v24492)+1) );
      goto lab←L100074;
      lab←L100071: ;
      };
   }

static void OutlineDrawParts←P1260(slice←v11284, parts←v11312, formal←c0943, formal←c0944, formal←c0945)
   word slice←v11284;
   word parts←v11312;
   word formal←c0943;
   word formal←c0944;
   word formal←c0945;
   {
   W12 var←c97796;
   /* declaration of dc←v11340 skipped */ 
   /* declaration of camera←v11368 skipped */ 
   /* declaration of quick←v11396 skipped */ 
   register ptr gf←c97828 =  (ptr) &globalframe;
   /* declaration of var←c93572 skipped */ 
   /* declaration of var←c93604 skipped */ 
   /* declaration of outlineData←v24648 skipped */ 
   (* (( (ptr) &var←c97796)+4)/* dc←v11340 */  ) = formal←c0943;
   (* (( (ptr) &var←c97796)+5)/* camera←v11368 */  ) = formal←c0944;
   (* (( (ptr) &var←c97796)+6)/* quick←v11396 */  ) = formal←c0945;
   /* OutlineDrawParts: */ 
SOURCE(26663, 994)
   {
      word tmpAddr188;
      tmpAddr188 = (word) (( (ptr) &var←c97796)+7)/* var←c93572 */ ;
      (*  (ptr) tmpAddr188 ) = ( ((word)  (fPt) RenderChild←P5820) );
      (* (( (ptr) tmpAddr188) + 1) ) = 1;
      };
   {
      word tmpAddr189;
      tmpAddr189 = (word) (( (ptr) &var←c97796)+9)/* var←c93604 */ ;
      (*  (ptr) tmpAddr189 ) = ( ((word)  (fPt) BuildOutline←P5664) );
      (* (( (ptr) tmpAddr189) + 1) ) = 1;
      };
SOURCE(27110, 45)
   (* (( (ptr) &var←c97796)+11)/* outlineData←v24648 */  ) = XR←Narrow((* (( (ptr) slice←v11284)+1) ), (* (( (ptr) gf←c97828)+13)
       ));
SOURCE(27157, 137)
   if (((* (( (ptr) (* (( (ptr) &var←c97796)+11)/* outlineData←v24648 */  ))+1) ) != 0)) {
SOURCE(27193, 45)
      {
         word pd190;
         pd190 = (* (( (ptr) (* (( (ptr) gf←c97828)+213)/* var←c92868 */  ))+36) );
         (void) ( *( (fPt) ((*  (ptr) pd190 ))))((* (( (ptr) &var←c97796)+4)/* dc←v11340 */  ), (* (( (ptr) (* (( (ptr) &var←c97796)+11)
               /* outlineData←v24648 */  ))+1) ), 0, pd190);
         };
SOURCE(27240, 54)
      {
         word pd191;
         pd191 = (* (( (ptr) (* (( (ptr) gf←c97828)+203)/* var←c91524 */  ))+62) );
         (void) ( *( (fPt) ((*  (ptr) pd191 ))))((* (( (ptr) &var←c97796)+4)/* dc←v11340 */  ), (word) (( (bPt) &var←c97796)+36)/* var←c93604 */ , (*  (ptr) (* (
               ( (ptr) &var←c97796)+11)/* outlineData←v24648 */  ) ), pd191);
         };
      };
SOURCE(27299, 167)
   {
      register word children←v24692;
      children←v24692 = (* (( (ptr) (* (( (ptr) &var←c97796)+11)/* outlineData←v24648 */  ))+4) );
      lab←L100078: ;
      if ((children←v24692 != 0)) {
         }
      else {
         goto lab←L100075;
         };
SOURCE(27389, 77)
      {
         word pd192;
         pd192 = (* (( (ptr) (* (( (ptr) gf←c97828)+207)/* var←c91876 */  ))+14) );
         (void) ( *( (fPt) ((*  (ptr) pd192 ))))((*  (ptr) children←v24692 ), 0, 0, 0, (* (( (ptr) &var←c97796)+4)/* dc←v11340 */  ), (* (
               ( (ptr) &var←c97796)+5)/* camera←v11368 */  )
            , 0, 0, pd192);
         };
      children←v24692 = (* (( (ptr) children←v24692)+1) );
      goto lab←L100078;
      lab←L100075: ;
      };
SOURCE(27477, 182)
SOURCE(27599, 58)
   {
      word var←c93636;
      word pd193;
      pd193 = (* (( (ptr) (* (( (ptr) gf←c97828)+204)/* var←c91588 */  ))+73) );
      var←c93636 = (word) ( *( (fPt) ((*  (ptr) pd193 ))))(slice←v11284, 1, (word) (( (bPt) &var←c97796)+28)/* var←c93572 */ , (* (
            ( (ptr) gf←c97828)+32) ), pd193);
      };
   }

static void BuildOutline←P5664(moveTo←v79512, lineTo←v79540, curveTo←v79568, conicTo←v79596, arcTo←v79624, formal←c97892)
   word moveTo←v79512;
   word lineTo←v79540;
   word curveTo←v79568;
   word conicTo←v79596;
   word arcTo←v79624;
   word formal←c97892;
   {
   register ptr gf←c97860 =  (ptr) &globalframe;
   formal←c97892 = (formal←c97892 - 36);
   /* BuildOutline: */ 
SOURCE(26780, 286)
SOURCE(26814, 252)
   {
      register word children←v24968;
      children←v24968 = (* (( (ptr) (* (( (ptr) formal←c97892)+11) ))+4) );
      lab←L100082: ;
      if ((children←v24968 != 0)) {
         }
      else {
         goto lab←L100079;
         };
      {
         word isOpen←v25096;
SOURCE(26904, 48)
         {
            word pd194;
            pd194 = (* (( (ptr) (* (( (ptr) gf←c97860)+207)/* var←c91876 */  ))+73) );
            isOpen←v25096 = (word) ( *( (fPt) ((*  (ptr) pd194 ))))((*  (ptr) (children←v24968) ), pd194);
            };
SOURCE(26954, 112)
         if ((0 == isOpen←v25096)) {
SOURCE(26973, 93)
            {
               word pd195;
               pd195 = (* (( (ptr) (* (( (ptr) gf←c97860)+207)/* var←c91876 */  ))+13) );
               (void) ( *( (fPt) ((*  (ptr) pd195 ))))((*  (ptr) children←v24968 ), 0, 0, moveTo←v79512, lineTo←v79540, curveTo←v79568
                  , conicTo←v79596, arcTo←v79624, 0, pd195);
               };
            };
         };
      children←v24968 = (* (( (ptr) children←v24968)+1) );
      goto lab←L100082;
      lab←L100079: ;
      };
   }

static word RenderChild←P5820(child←v24896, formal←c97956)
   word child←v24896;
   word formal←c97956;
   {
   register ptr gf←c97924 =  (ptr) &globalframe;
   word done←v24940;
   formal←c97956 = (formal←c97956 - 28);
   /* RenderChild: */ 
SOURCE(27483, 19)
SOURCE(27483, 19)
   done←v24940 = 0;
SOURCE(27550, 44)
   {
      word pd196;
      pd196 = (* (( (ptr) (* (( (ptr) gf←c97924)+205)/* var←c91620 */  ))+50) );
      (void) ( *( (fPt) ((*  (ptr) pd196 ))))((* (( (ptr) formal←c97956)+4) ), child←v24896, (* (( (ptr) formal←c97956)+5) ), (* (
            ( (ptr) formal←c97956)+6) ), pd196);
      };
SOURCE(27483, 19)
   return(done←v24940);
   }

static void DrawParts←P1320(slice←v11456, parts←v11484, dc←v11512, camera←v11540, quick←v11568)
   word slice←v11456;
   word parts←v11484;
   word dc←v11512;
   word camera←v11540;
   word quick←v11568;
   {
   register ptr gf←c97988 =  (ptr) &globalframe;
   word outlineData←v25140;
   /* DrawParts: */ 
SOURCE(27668, 307)
SOURCE(27778, 45)
   outlineData←v25140 = XR←Narrow((* (( (ptr) slice←v11456)+1) ), (* (( (ptr) gf←c97988)+13) ));
SOURCE(27825, 150)
   {
      register word children←v25184;
      children←v25184 = (* (( (ptr) outlineData←v25140)+4) );
      lab←L100086: ;
      if ((children←v25184 != 0)) {
         }
      else {
         goto lab←L100083;
         };
SOURCE(27915, 60)
      {
         word pd197;
         pd197 = (* (( (ptr) (* (( (ptr) gf←c97988)+207)/* var←c91876 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd197 ))))((*  (ptr) children←v25184 ), 0, dc←v11512, camera←v11540, quick←v11568, pd197);
         };
      children←v25184 = (* (( (ptr) children←v25184)+1) );
      goto lab←L100086;
      lab←L100083: ;
      };
   }

static void OutlineDrawTransform←P1380(slice←v11628, parts←v11656, dc←v11684, camera←v11712, formal←c0946, formal←c0947)
   word slice←v11628;
   word parts←v11656;
   word dc←v11684;
   word camera←v11712;
   word formal←c0946;
   word formal←c0947;
   {
   W11 var←c98020;
   /* declaration of transform←v11740 skipped */ 
   /* declaration of editConstraints←v11768 skipped */ 
   register ptr gf←c98052 =  (ptr) &globalframe;
   /* declaration of var←c93668 skipped */ 
   /* declaration of outlineData←v25340 skipped */ 
   /* declaration of outlineParts←v25368 skipped */ 
   word borderParts←v25396 = 0;
   /* declaration of t←v25424 skipped */ 
   (* (( (ptr) &var←c98020)+4)/* transform←v11740 */  ) = formal←c0946;
   (* (( (ptr) &var←c98020)+5)/* editConstraints←v11768 */  ) = formal←c0947;
   /* OutlineDrawTransform: */ 
SOURCE(27989, 1747)
   {
      word tmpAddr198;
      tmpAddr198 = (word) (( (ptr) &var←c98020)+6)/* var←c93668 */ ;
      (*  (ptr) tmpAddr198 ) = ( ((word)  (fPt) BuildOutline←P6024) );
      (* (( (ptr) tmpAddr198) + 1) ) = 1;
      };
SOURCE(28820, 45)
   (* (( (ptr) &var←c98020)+8)/* outlineData←v25340 */  ) = XR←Narrow((* (( (ptr) slice←v11628)+1) ), (* (( (ptr) gf←c98052)+13)
       ));
SOURCE(28867, 42)
   (* (( (ptr) &var←c98020)+9)/* outlineParts←v25368 */  ) = XR←Narrow(parts←v11656, (* (( (ptr) gf←c98052)+21) ));
SOURCE(28949, 17)
   (* (( (ptr) &var←c98020)+10)/* t←v25424 */  ) = 0;
SOURCE(28969, 74)
   if (((* (( (ptr) &var←c98020)+9)/* outlineParts←v25368 */  ) == 0)) {
      borderParts←v25396 = 0;
      }
   else {
      borderParts←v25396 = (*  (ptr) (* (( (ptr) &var←c98020)+9)/* outlineParts←v25368 */  ) );
      };
SOURCE(29045, 232)
   if (((* (( (ptr) (* (( (ptr) &var←c98020)+8)/* outlineData←v25340 */  ))+1) ) != 0)) {
SOURCE(29081, 140)
      if ((0 != (word) IsComplete←P2640((* ((( (ptr) &var←c98020)+9)/* outlineParts←v25368 */ ) )))) {
SOURCE(29114, 62)
         {
            word pd199;
            pd199 = (* (( (ptr) (* (( (ptr) gf←c98052)+213)/* var←c92868 */  ))+36) );
            (void) ( *( (fPt) ((*  (ptr) pd199 ))))(dc←v11684, (* (( (ptr) (* (( (ptr) &var←c98020)+8)/* outlineData←v25340 */  ))+1)
                ), (* (( (ptr) &var←c98020)+4)/* transform←v11740 */  ), pd199);
            };
         }
      else {
SOURCE(29176, 45)
         {
            word pd200;
            pd200 = (* (( (ptr) (* (( (ptr) gf←c98052)+213)/* var←c92868 */  ))+36) );
            (void) ( *( (fPt) ((*  (ptr) pd200 ))))(dc←v11684, (* (( (ptr) (* (( (ptr) &var←c98020)+8)/* outlineData←v25340 */  ))+1)
                ), 0, pd200);
            };
         };
SOURCE(29223, 54)
      {
         word pd201;
         pd201 = (* (( (ptr) (* (( (ptr) gf←c98052)+203)/* var←c91524 */  ))+62) );
         (void) ( *( (fPt) ((*  (ptr) pd201 ))))(dc←v11684, (word) (( (bPt) &var←c98020)+24)/* var←c93668 */ , (*  (ptr) (* (( (ptr) &var←c98020)+8)
            /* outlineData←v25340 */  ) ), pd201);
         };
      };
SOURCE(29282, 465)
   {
      word transformParts←v25552 = 0;
SOURCE(29316, 420)
      {
         register word children←v25596;
         children←v25596 = (* (( (ptr) (* (( (ptr) &var←c98020)+8)/* outlineData←v25340 */  ))+4) );
         lab←L100090: ;
         if ((children←v25596 != 0)) {
            }
         else {
            goto lab←L100087;
            };
SOURCE(29406, 98)
         if ((borderParts←v25396 == 0) || ((*  (ptr) borderParts←v25396 ) == 0)) {
            transformParts←v25552 = 0;
            }
         else {
            transformParts←v25552 = (* (( (ptr) (*  (ptr) borderParts←v25396 ))+1) );
            };
SOURCE(29506, 73)
         if ((borderParts←v25396 == 0) || ((*  (ptr) borderParts←v25396 ) != 0)) {
            (* (( (ptr) &var←c98020)+10)/* t←v25424 */  ) = (* (( (ptr) &var←c98020)+4)/* transform←v11740 */  );
            }
         else {
            (* (( (ptr) &var←c98020)+10)/* t←v25424 */  ) = 0;
            };
SOURCE(29581, 97)
         {
            word pd202;
            pd202 = (* (( (ptr) (* (( (ptr) gf←c98052)+207)/* var←c91876 */  ))+14) );
            (void) ( *( (fPt) ((*  (ptr) pd202 ))))((*  (ptr) children←v25596 ), 0, transformParts←v25552, (* (( (ptr) &var←c98020)+10)
               /* t←v25424 */  ), dc←v11684, camera←v11712
               , 0, (* (( (ptr) &var←c98020)+5)/* editConstraints←v11768 */  ), pd202);
            };
SOURCE(29680, 56)
         if ((borderParts←v25396 != 0)) {
SOURCE(29706, 30)
            borderParts←v25396 = (* (( (ptr) borderParts←v25396)+1) );
            };
         children←v25596 = (* (( (ptr) children←v25596)+1) );
         goto lab←L100090;
         lab←L100087: ;
         };
      };
   }

static void BuildOutline←P6024(moveTo←v80420, lineTo←v80448, curveTo←v80476, conicTo←v80504, arcTo←v80532, formal←c98116)
   word moveTo←v80420;
   word lineTo←v80448;
   word curveTo←v80476;
   word conicTo←v80504;
   word arcTo←v80532;
   word formal←c98116;
   {
   register ptr gf←c98084 =  (ptr) &globalframe;
   word pathParts←v25724 = 0;
   word transformParts←v25752 = 0;
   formal←c98116 = (formal←c98116 - 24);
   /* BuildOutline: */ 
SOURCE(28164, 642)
SOURCE(28262, 72)
   if (((* (( (ptr) formal←c98116)+9) ) == 0)) {
      pathParts←v25724 = 0;
      }
   else {
      pathParts←v25724 = (*  (ptr) (* (( (ptr) formal←c98116)+9) ) );
      };
SOURCE(28336, 470)
   {
      register word children←v25880;
      children←v25880 = (* (( (ptr) (* (( (ptr) formal←c98116)+8) ))+4) );
      lab←L100094: ;
      if ((children←v25880 != 0)) {
         }
      else {
         goto lab←L100091;
         };
SOURCE(28426, 96)
      if ((pathParts←v25724 == 0) || ((*  (ptr) pathParts←v25724 ) == 0)) {
         transformParts←v25752 = 0;
         }
      else {
         transformParts←v25752 = (* (( (ptr) (*  (ptr) pathParts←v25724 ))+1) );
         };
SOURCE(28524, 69)
      if ((pathParts←v25724 == 0) || ((*  (ptr) pathParts←v25724 ) != 0)) {
         (* (( (ptr) formal←c98116)+10) ) = (* (( (ptr) formal←c98116)+4) );
         }
      else {
         (* (( (ptr) formal←c98116)+10) ) = 0;
         };
SOURCE(28595, 159)
      {
         word pd203;
         pd203 = (* (( (ptr) (* (( (ptr) gf←c98084)+207)/* var←c91876 */  ))+73) );
         if ((0 == (word) ( *( (fPt) ((*  (ptr) pd203 ))))((*  (ptr) (children←v25880) ), pd203))) {
SOURCE(28641, 113)
            {
               word pd204;
               pd204 = (* (( (ptr) (* (( (ptr) gf←c98084)+207)/* var←c91876 */  ))+13) );
               (void) ( *( (fPt) ((*  (ptr) pd204 ))))((*  (ptr) children←v25880 ), transformParts←v25752, (* (( (ptr) formal←c98116)+10)
                   ), moveTo←v80420, lineTo←v80448, curveTo←v80476
                  , conicTo←v80504, arcTo←v80532, (* (( (ptr) formal←c98116)+5) ), pd204);
               };
            };
         };
SOURCE(28756, 50)
      if ((pathParts←v25724 != 0)) {
SOURCE(28780, 26)
         pathParts←v25724 = (* (( (ptr) pathParts←v25724)+1) );
         };
      children←v25880 = (* (( (ptr) children←v25880)+1) );
      goto lab←L100094;
      lab←L100091: ;
      };
   }

static void DrawTransform←P1440(slice←v11828, parts←v11856, dc←v11884, camera←v11912, transform←v11940, editConstraints←v11968)
   word slice←v11828;
   word parts←v11856;
   word dc←v11884;
   word camera←v11912;
   word transform←v11940;
   word editConstraints←v11968;
   {
   register ptr gf←c98148 =  (ptr) &globalframe;
   word outlineData←v26008;
   word outlineParts←v26036;
   word childrenD←v26064 = 0;
   word thisChild←v26092 = 0;
   word theseParts←v26120 = 0;
   word t←v26148 = 0;
   /* DrawTransform: */ 
SOURCE(29756, 973)
SOURCE(29924, 45)
   outlineData←v26008 = XR←Narrow((* (( (ptr) slice←v11828)+1) ), (* (( (ptr) gf←c98148)+13) ));
SOURCE(29971, 42)
   outlineParts←v26036 = XR←Narrow(parts←v11856, (* (( (ptr) gf←c98148)+21) ));
SOURCE(30134, 72)
   if ((outlineParts←v26036 == 0)) {
      childrenD←v26064 = 0;
      }
   else {
      childrenD←v26064 = (*  (ptr) outlineParts←v26036 );
      };
SOURCE(30208, 521)
   {
      register word children←v26276;
      children←v26276 = (* (( (ptr) outlineData←v26008)+4) );
      lab←L100098: ;
      if ((children←v26276 != 0)) {
         }
      else {
         goto lab←L100095;
         };
SOURCE(30298, 26)
      thisChild←v26092 = (*  (ptr) children←v26276 );
SOURCE(30326, 266)
      if ((childrenD←v26064 == 0)) {
SOURCE(30383, 16)
         theseParts←v26120 = 0;
SOURCE(30401, 13)
         t←v26148 = transform←v11940;
         }
      else {
SOURCE(30423, 169)
         if (((*  (ptr) childrenD←v26064 ) != 0)) {
SOURCE(30477, 34)
            theseParts←v26120 = (* (( (ptr) (*  (ptr) childrenD←v26064 ))+1) );
SOURCE(30513, 13)
            t←v26148 = transform←v11940;
            }
         else {
SOURCE(30567, 16)
            theseParts←v26120 = 0;
SOURCE(30585, 7)
            t←v26148 = 0;
            };
         };
SOURCE(30597, 79)
      {
         word pd205;
         pd205 = (* (( (ptr) (* (( (ptr) gf←c98148)+207)/* var←c91876 */  ))+16) );
         (void) ( *( (fPt) ((*  (ptr) pd205 ))))(thisChild←v26092, theseParts←v26120, dc←v11884, camera←v11912, t←v26148, editConstraints←v11968, pd205)
         ;
         };
SOURCE(30678, 51)
      if ((childrenD←v26064 != 0)) {
SOURCE(30702, 27)
         childrenD←v26064 = (* (( (ptr) childrenD←v26064)+1) );
         };
      children←v26276 = (* (( (ptr) children←v26276)+1) );
      goto lab←L100098;
      lab←L100095: ;
      };
   }

static void DrawSelectionFeedback←P1500(slice←v12028, selectedParts←v12056, hotParts←v12084, dc←v12112, camera←v12140, dragInProgress←v12168, caretIsMoving←v12196, hideHot←v12224, quick←v12252)
   word slice←v12028;
   word selectedParts←v12056;
   word hotParts←v12084;
   word dc←v12112;
   word camera←v12140;
   word dragInProgress←v12168;
   word caretIsMoving←v12196;
   word hideHot←v12224;
   word quick←v12252;
   {
   register ptr gf←c98180 =  (ptr) &globalframe;
   register word normalList←v26404 = 0;
   register word hotList←v26432 = 0;
   word slowNormal←v26460 = 0;
   word slowHot←v26488 = 0;
   word completeNormal←v26516 = 0;
   word completeHot←v26544 = 0;
   word normalOutlineParts←v26572;
   word hotOutlineParts←v26600;
   /* DrawSelectionFeedback: */ 
SOURCE(30744, 1944)
SOURCE(31046, 56)
   normalOutlineParts←v26572 = XR←Narrow(selectedParts←v12056, (* (( (ptr) gf←c98180)+21) ));
SOURCE(31104, 48)
   hotOutlineParts←v26600 = XR←Narrow(hotParts←v12084, (* (( (ptr) gf←c98180)+21) ));
SOURCE(31154, 74)
   if ((normalOutlineParts←v26572 != 0)) {
      completeNormal←v26516 =  (unsigned) (0 != (word) IsComplete←P2640(normalOutlineParts←v26572));
      }
   else {
      completeNormal←v26516 =  (unsigned) 0;
      };
SOURCE(31230, 65)
   if ((hotOutlineParts←v26600 != 0)) {
      completeHot←v26544 =  (unsigned) (0 != (word) IsComplete←P2640(hotOutlineParts←v26600));
      }
   else {
      completeHot←v26544 =  (unsigned) 0;
      };
SOURCE(31297, 65)
   if ((selectedParts←v12056 != 0)) {
      if ((0 == quick←v12252)) {
         slowNormal←v26460 =  (unsigned) 1;
         }
      else {
         slowNormal←v26460 =  (unsigned) (0 == completeNormal←v26516);
         };
      }
   else {
      slowNormal←v26460 =  (unsigned) 0;
      };
SOURCE(31364, 54)
   if ((hotParts←v12084 != 0)) {
      if ((0 == quick←v12252)) {
         slowHot←v26488 =  (unsigned) 1;
         }
      else {
         slowHot←v26488 =  (unsigned) (0 == completeHot←v26544);
         };
      }
   else {
      slowHot←v26488 =  (unsigned) 0;
      };
SOURCE(31420, 1268)
   if (((0 != slowNormal←v26460) && (0 != slowHot←v26488))) {
SOURCE(31453, 37)
      hotList←v26432 = (*  (ptr) hotOutlineParts←v26600 );
SOURCE(31492, 610)
      normalList←v26404 = (*  (ptr) normalOutlineParts←v26572 );
      lab←L100102: ;
      if ((normalList←v26404 != 0)) {
         }
      else {
         goto lab←L100099;
         };
SOURCE(31581, 497)
      if (((*  (ptr) normalList←v26404 ) != 0)) {
SOURCE(31672, 201)
         {
            word pd206;
            pd206 = (* (( (ptr) (* (( (ptr) gf←c98180)+207)/* var←c91876 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd206 ))))((*  (ptr) (*  (ptr) normalList←v26404 ) ), (* (( (ptr) (*  (ptr) normalList←v26404 ))+1)
                ),  ( ((*  (ptr) hotList←v26432 ) == 0) ? 0 : (* (( (ptr) (*  (ptr) hotList←v26432 ))+1) ) ) , dc←v12112, camera←v12140, dragInProgress←v12168
               , caretIsMoving←v12196, hideHot←v12224, quick←v12252, pd206);
            };
         }
      else {
SOURCE(31873, 205)
         if (((*  (ptr) hotList←v26432 ) != 0)) {
SOURCE(31940, 138)
            {
               word pd207;
               pd207 = (* (( (ptr) (* (( (ptr) gf←c98180)+207)/* var←c91876 */  ))+17) );
               (void) ( *( (fPt) ((*  (ptr) pd207 ))))((*  (ptr) (*  (ptr) hotList←v26432 ) ), 0, (* (( (ptr) (*  (ptr) hotList←v26432 ))+1)
                   ), dc←v12112, camera←v12140, dragInProgress←v12168
                  , caretIsMoving←v12196, hideHot←v12224, quick←v12252, pd207);
               };
            };
         };
SOURCE(32080, 22)
      hotList←v26432 = (* (( (ptr) hotList←v26432)+1) );
      normalList←v26404 = (* (( (ptr) normalList←v26404)+1) );
      goto lab←L100102;
      lab←L100099: ;
      }
   else {
SOURCE(32120, 568)
      if ((0 != slowNormal←v26460)) {
SOURCE(32141, 266)
         normalList←v26404 = (*  (ptr) normalOutlineParts←v26572 );
         lab←L100106: ;
         if ((normalList←v26404 != 0)) {
            }
         else {
            goto lab←L100103;
            };
SOURCE(32232, 175)
         if (((*  (ptr) normalList←v26404 ) != 0)) {
SOURCE(32263, 144)
            {
               word pd208;
               pd208 = (* (( (ptr) (* (( (ptr) gf←c98180)+207)/* var←c91876 */  ))+17) );
               (void) ( *( (fPt) ((*  (ptr) pd208 ))))((*  (ptr) (*  (ptr) normalList←v26404 ) ), (* (( (ptr) (*  (ptr) normalList←v26404 ))+1)
                   ), 0, dc←v12112, camera←v12140, dragInProgress←v12168
                  , caretIsMoving←v12196, hideHot←v12224, quick←v12252, pd208);
               };
            };
         normalList←v26404 = (* (( (ptr) normalList←v26404)+1) );
         goto lab←L100106;
         lab←L100103: ;
         }
      else {
SOURCE(32425, 263)
         if ((0 != slowHot←v26488)) {
SOURCE(32443, 245)
            hotList←v26432 = (*  (ptr) hotOutlineParts←v26600 );
            lab←L100110: ;
            if ((hotList←v26432 != 0)) {
               }
            else {
               goto lab←L100107;
               };
SOURCE(32522, 166)
            if (((*  (ptr) hotList←v26432 ) != 0)) {
SOURCE(32550, 138)
               {
                  word pd209;
                  pd209 = (* (( (ptr) (* (( (ptr) gf←c98180)+207)/* var←c91876 */  ))+17) );
                  (void) ( *( (fPt) ((*  (ptr) pd209 ))))((*  (ptr) (*  (ptr) hotList←v26432 ) ), 0, (* (( (ptr) (*  (ptr) hotList←v26432 ))+1)
                      ), dc←v12112, camera←v12140, dragInProgress←v12168
                     , caretIsMoving←v12196, hideHot←v12224, quick←v12252, pd209);
                  };
               };
            hotList←v26432 = (* (( (ptr) hotList←v26432)+1) );
            goto lab←L100110;
            lab←L100107: ;
            };
         };
      };
   }

static void OutlineDrawSelectionFeedback←P1560(slice←v12312, selectedParts←v12340, hotParts←v12368, dc←v12396, camera←v12424, dragInProgress←v12452, caretIsMoving←v12480, hideHot←v12508, quick←v12536)
   word slice←v12312;
   word selectedParts←v12340;
   word hotParts←v12368;
   word dc←v12396;
   word camera←v12424;
   word dragInProgress←v12452;
   word caretIsMoving←v12480;
   word hideHot←v12508;
   word quick←v12536;
   {
   register ptr gf←c98212 =  (ptr) &globalframe;
   word slowNormal←v26728 = 0;
   word slowHot←v26756 = 0;
   word completeNormal←v26784 = 0;
   word completeHot←v26812 = 0;
   W2 firstJoint←v26840;
   word normalOutlineParts←v26868;
   word hotOutlineParts←v26896;
   /* OutlineDrawSelectionFeedback: */ 
SOURCE(32706, 1471)
SOURCE(32988, 56)
   normalOutlineParts←v26868 = XR←Narrow(selectedParts←v12340, (* (( (ptr) gf←c98212)+21) ));
SOURCE(33046, 48)
   hotOutlineParts←v26896 = XR←Narrow(hotParts←v12368, (* (( (ptr) gf←c98212)+21) ));
SOURCE(33097, 46)
   if (((0 != caretIsMoving←v12480) || (0 != dragInProgress←v12452))) {
SOURCE(33137, 6)
      return;
      };
SOURCE(33145, 49)
   if ( ( (selectedParts←v12340 == 0) ? (hotParts←v12368 == 0) : 0 ) ) {
SOURCE(33188, 6)
      return;
      };
SOURCE(33197, 74)
   if ((normalOutlineParts←v26868 != 0)) {
      completeNormal←v26784 =  (unsigned) (0 != (word) IsComplete←P2640(normalOutlineParts←v26868));
      }
   else {
      completeNormal←v26784 =  (unsigned) 0;
      };
SOURCE(33273, 65)
   if ((hotOutlineParts←v26896 != 0)) {
      completeHot←v26812 =  (unsigned) (0 != (word) IsComplete←P2640(hotOutlineParts←v26896));
      }
   else {
      completeHot←v26812 =  (unsigned) 0;
      };
SOURCE(33340, 65)
   if ((selectedParts←v12340 != 0)) {
      if ((0 == quick←v12536)) {
         slowNormal←v26728 =  (unsigned) 1;
         }
      else {
         slowNormal←v26728 =  (unsigned) (0 == completeNormal←v26784);
         };
      }
   else {
      slowNormal←v26728 =  (unsigned) 0;
      };
SOURCE(33407, 54)
   if ((hotParts←v12368 != 0)) {
      if ((0 == quick←v12536)) {
         slowHot←v26756 =  (unsigned) 1;
         }
      else {
         slowHot←v26756 =  (unsigned) (0 == completeHot←v26812);
         };
      }
   else {
      slowHot←v26756 =  (unsigned) 0;
      };
SOURCE(33464, 121)
   {
      word pd210;
      pd210 = (* (( (ptr) (* (( (ptr) gf←c98212)+204)/* var←c91588 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd210 ))))(slice←v12312, selectedParts←v12340, hotParts←v12368, dc←v12396, camera←v12424, dragInProgress←v12452
         , caretIsMoving←v12480, hideHot←v12508, quick←v12536, pd210);
      };
SOURCE(33587, 366)
   if ( ( (0 == slowNormal←v26728) ? (0 != completeNormal←v26784) : 0 )  ||  ( (0 == slowHot←v26756) ? (0 != completeHot←v26812) : 0 ) ) {
SOURCE(33664, 291)
      {
         word firstChildD←v26940;
         word pointGen←v26968;
         W3 var←c0428;
SOURCE(33666, 129)
         firstChildD←v26940 =  ( (0 != completeNormal←v26784) ? (*  (ptr) (*  (ptr) normalOutlineParts←v26868 ) ) : (*  (ptr) (*  (ptr) hotOutlineParts←v26896 ) ) ) ;
SOURCE(33797, 69)
         {
            word pd211;
            pd211 = (* (( (ptr) (* (( (ptr) gf←c98212)+207)/* var←c91876 */  ))+36) );
            pointGen←v26968 = (word) ( *( (fPt) ((*  (ptr) pd211 ))))(firstChildD←v26940, pd211);
            };
SOURCE(33868, 85)
         {
            word pd212;
            pd212 = (* (( (ptr) (* (( (ptr) gf←c98212)+207)/* var←c91876 */  ))+41) );
            (void) ( *( (fPt) ((*  (ptr) pd212 ))))((word) &var←c0428, (*  (ptr) firstChildD←v26940 ), pointGen←v26968, pd212);
            };
         firstJoint←v26840 = (*  (W2Pt) &var←c0428 );
         };
      };
SOURCE(33958, 113)
   if ( ( (0 == slowNormal←v26728) ? (0 != completeNormal←v26784) : 0 ) ) {
SOURCE(34000, 71)
      {
         word pd213;
         pd213 = (* (( (ptr) (* (( (ptr) gf←c98212)+209)/* var←c92356 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd213 ))))(dc←v12396, firstJoint←v26840, 0, (* (( (ptr) camera←v12424)+4) ), pd213);
         };
      };
SOURCE(34073, 104)
   if ( ( (0 == slowHot←v26756) ? (0 != completeHot←v26812) : 0 ) ) {
SOURCE(34109, 68)
      {
         word pd214;
         pd214 = (* (( (ptr) (* (( (ptr) gf←c98212)+209)/* var←c92356 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd214 ))))(dc←v12396, firstJoint←v26840, 1, (* (( (ptr) camera←v12424)+4) ), pd214);
         };
      };
   }

static void DrawAttractorFeedback←P1620(slice←v12596, attractorParts←v12624, selectedParts←v12652, dragInProgress←v12680, dc←v12708, camera←v12736, editConstraints←v12764)
   word slice←v12596;
   word attractorParts←v12624;
   word selectedParts←v12652;
   word dragInProgress←v12680;
   word dc←v12708;
   word camera←v12736;
   word editConstraints←v12764;
   {
   register ptr gf←c98244 =  (ptr) &globalframe;
   word success←v27012 = 0;
   word childD←v27040 = 0;
   word childSelectedParts←v27068 = 0;
   /* DrawAttractorFeedback: */ 
SOURCE(34183, 678)
SOURCE(34464, 66)
   {
      word pd215;
      pd215 = (* (( (ptr) (* (( (ptr) gf←c98244)+204)/* var←c91588 */  ))+78) );
      childD←v27040 = (word) ( *( (fPt) ((*  (ptr) pd215 ))))(slice←v12596, attractorParts←v12624, 0, 0, pd215);
      };
SOURCE(34629, 27)
   if ((childD←v27040 == 0)) {
SOURCE(34650, 6)
      return;
      };
SOURCE(34658, 76)
   childSelectedParts←v27068 = (word) ChildPartsFromParts←P1740(slice←v12596, selectedParts←v12652, (*  (ptr) childD←v27040 ))
   ;
SOURCE(34736, 125)
   {
      word pd216;
      pd216 = (* (( (ptr) (* (( (ptr) gf←c98244)+207)/* var←c91876 */  ))+18) );
      (void) ( *( (fPt) ((*  (ptr) pd216 ))))((*  (ptr) childD←v27040 ), (* (( (ptr) childD←v27040)+1) ), childSelectedParts←v27068, dragInProgress←v12680, dc←v12708, camera←v12736
         , editConstraints←v12764, pd216);
      };
   }

static word AttractorFeedbackBoundBox←P1680(slice←v12824, attractorParts←v12852, selectedParts←v12880, dragInProgress←v12908, camera←v12936, editConstraints←v12964)
   word slice←v12824;
   word attractorParts←v12852;
   word selectedParts←v12880;
   word dragInProgress←v12908;
   word camera←v12936;
   word editConstraints←v12964;
   {
   register ptr gf←c98276 =  (ptr) &globalframe;
   word box←v13008;
   word success←v27112 = 0;
   word childD←v27140 = 0;
   word childSelectedParts←v27168 = 0;
   /* AttractorFeedbackBoundBox: */ 
SOURCE(34867, 661)
SOURCE(34867, 661)
   box←v13008 = 0;
SOURCE(35156, 66)
   {
      word pd217;
      pd217 = (* (( (ptr) (* (( (ptr) gf←c98276)+204)/* var←c91588 */  ))+78) );
      childD←v27140 = (word) ( *( (fPt) ((*  (ptr) pd217 ))))(slice←v12824, attractorParts←v12852, 0, 0, pd217);
      };
SOURCE(35290, 27)
   if ((childD←v27140 == 0)) {
SOURCE(35311, 6)
      return(box←v13008);
      };
SOURCE(35319, 76)
   childSelectedParts←v27168 = (word) ChildPartsFromParts←P1740(slice←v12824, selectedParts←v12880, (*  (ptr) childD←v27140 ))
   ;
SOURCE(35397, 131)
   {
      word pd218;
      pd218 = (* (( (ptr) (* (( (ptr) gf←c98276)+207)/* var←c91876 */  ))+19) );
      box←v13008 = (word) ( *( (fPt) ((*  (ptr) pd218 ))))((*  (ptr) childD←v27140 ), (* (( (ptr) childD←v27140)+1) ), childSelectedParts←v27168, dragInProgress←v12908, camera←v12936, editConstraints←v12964, pd218)
      ;
      };
SOURCE(34867, 661)
   return(box←v13008);
   }

static word ChildPartsFromParts←P1740(slice←v13068, parts←v13096, child←v13124)
   word slice←v13068;
   word parts←v13096;
   word child←v13124;
   {
   register ptr gf←c98308 =  (ptr) &globalframe;
   word childParts←v13168;
   word outlineParts←v27212;
   /* ChildPartsFromParts: */ 
SOURCE(35534, 405)
SOURCE(35534, 405)
   childParts←v13168 = 0;
SOURCE(35645, 42)
   outlineParts←v27212 = XR←Narrow(parts←v13096, (* (( (ptr) gf←c98308)+21) ));
SOURCE(35689, 42)
   if ((child←v13124 == 0) || (parts←v13096 == 0)) {
SOURCE(35720, 11)
      return(0);
      };
SOURCE(35733, 206)
   {
      register word descriptors←v27256;
      descriptors←v27256 = (*  (ptr) outlineParts←v27212 );
      lab←L100114: ;
      if ((descriptors←v27256 != 0)) {
         }
      else {
         goto lab←L100111;
         };
SOURCE(35844, 95)
      if ( ( ((*  (ptr) descriptors←v27256 ) != 0) ? ((*  (ptr) (*  (ptr) descriptors←v27256 ) ) == child←v13124) : 0 ) ) {
SOURCE(35908, 31)
         return((* (( (ptr) (*  (ptr) descriptors←v27256 ))+1) ));
         };
      descriptors←v27256 = (* (( (ptr) descriptors←v27256)+1) );
      goto lab←L100114;
      lab←L100111: ;
      };
SOURCE(35534, 405)
   return(childParts←v13168);
   }

static void SaveSelections←P1800(slice←v13228, parts←v13256, selectClass←v13284)
   word slice←v13228;
   word parts←v13256;
   word selectClass←v13284;
   {
   register ptr gf←c98340 =  (ptr) &globalframe;
   word children←v27384;
   /* SaveSelections: */ 
SOURCE(35954, 808)
SOURCE(36049, 10)
   children←v27384 = (* (( (ptr) XR←Narrow((* (( (ptr) slice←v13228)+1) ), (* (( (ptr) gf←c98340)+13) )))+4) );
SOURCE(36117, 155)
   {
      register word nextChildList←v27512;
      nextChildList←v27512 = children←v27384;
      lab←L100118: ;
      if ((nextChildList←v27512 != 0)) {
         }
      else {
         goto lab←L100115;
         };
SOURCE(36208, 64)
      {
         word pd219;
         pd219 = (* (( (ptr) (* (( (ptr) gf←c98340)+207)/* var←c91876 */  ))+20) );
         (void) ( *( (fPt) ((*  (ptr) pd219 ))))((*  (ptr) nextChildList←v27512 ), 0, selectClass←v13284, pd219);
         };
      nextChildList←v27512 = (* (( (ptr) nextChildList←v27512)+1) );
      goto lab←L100118;
      lab←L100115: ;
      };
SOURCE(36313, 449)
   if ((parts←v13256 != 0)) {
SOURCE(36331, 442)
      {
         word outlineParts←v27640;
         word childrenParts←v27668 = 0;
SOURCE(36364, 42)
         outlineParts←v27640 = XR←Narrow(parts←v13256, (* (( (ptr) gf←c98340)+21) ));
SOURCE(36448, 33)
         if ((outlineParts←v27640 == 0)) {
SOURCE(36475, 6)
            return;
            };
SOURCE(36483, 41)
         childrenParts←v27668 = (*  (ptr) outlineParts←v27640 );
SOURCE(36526, 236)
         {
            register word nextChildParts←v27796;
            nextChildParts←v27796 = childrenParts←v27668;
            lab←L100122: ;
            if ((nextChildParts←v27796 != 0)) {
               }
            else {
               goto lab←L100119;
               };
SOURCE(36635, 127)
            if (((*  (ptr) nextChildParts←v27796 ) != 0)) {
SOURCE(36668, 94)
               {
                  word pd220;
                  pd220 = (* (( (ptr) (* (( (ptr) gf←c98340)+207)/* var←c91876 */  ))+20) );
                  (void) ( *( (fPt) ((*  (ptr) pd220 ))))((*  (ptr) (*  (ptr) nextChildParts←v27796 ) ), (* (( (ptr) (*  (ptr) nextChildParts←v27796 ))+1)
                      ), selectClass←v13284, pd220);
                  };
               };
            nextChildParts←v27796 = (* (( (ptr) nextChildParts←v27796)+1) );
            goto lab←L100122;
            lab←L100119: ;
            };
         };
      };
   }

static word RemakeSelections←P1860(slice←v13344, selectClass←v13372)
   word slice←v13344;
   word selectClass←v13372;
   {
   register ptr gf←c98372 =  (ptr) &globalframe;
   word parts←v13416;
   word childD←v27924 = 0;
   word outlineParts←v27952;
   word partsFound←v27980 = 0;
   word ptr←v28008 = 0;
   word children←v28036;
   /* RemakeSelections: */ 
SOURCE(36780, 865)
SOURCE(36780, 865)
   parts←v13416 = 0;
SOURCE(36911, 49)
   outlineParts←v27952 = XR←NewObject(4, (* (( (ptr) gf←c98372)+21) ));
SOURCE(37018, 10)
   children←v28036 = (* (( (ptr) XR←Narrow((* (( (ptr) slice←v13344)+1) ), (* (( (ptr) gf←c98372)+13) )))+4) );
SOURCE(37086, 70)
   {
      W2 var←c93732;
      {
         word pd221;
         pd221 = (* (( (ptr) (* (( (ptr) gf←c98372)+214)/* var←c92996 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd221 ))))((word) (&var←c93732), pd221);
         };
      ptr←v28008 = var←c93732.f1;
      (*  (ptr) outlineParts←v27952 ) = var←c93732.f0;
      };
SOURCE(37158, 420)
   {
      register word nextChildren←v28248;
      nextChildren←v28248 = children←v28036;
      lab←L100126: ;
      if ((nextChildren←v28248 != 0)) {
         }
      else {
         goto lab←L100123;
         };
      {
         word nextChildPart←v28376;
SOURCE(37246, 88)
         {
            word pd222;
            pd222 = (* (( (ptr) (* (( (ptr) gf←c98372)+207)/* var←c91876 */  ))+21) );
            nextChildPart←v28376 = (word) ( *( (fPt) ((*  (ptr) pd222 ))))((*  (ptr) nextChildren←v28248 ), selectClass←v13372, pd222)
            ;
            };
SOURCE(37336, 136)
         if ((nextChildPart←v28376 == 0)) {
SOURCE(37362, 18)
            childD←v27924 = 0;
            }
         else {
SOURCE(37382, 71)
            {
               word pd223;
               pd223 = (* (( (ptr) (* (( (ptr) gf←c98372)+205)/* var←c91620 */  ))+8) );
               childD←v27924 = (word) ( *( (fPt) ((*  (ptr) pd223 ))))((*  (ptr) nextChildren←v28248 ), nextChildPart←v28376, pd223);
               };
SOURCE(37455, 17)
            partsFound←v27980 = 1;
            };
SOURCE(37477, 101)
         {
            W2 var←c93764;
            {
               word pd224;
               pd224 = (* (( (ptr) (* (( (ptr) gf←c98372)+214)/* var←c92996 */  ))+16) );
               (void) ( *( (fPt) ((*  (ptr) pd224 ))))((word) &var←c93764, childD←v27924, (*  (ptr) outlineParts←v27952 ), ptr←v28008, pd224)
               ;
               };
            ptr←v28008 = var←c93764.f1;
            (*  (ptr) outlineParts←v27952 ) = var←c93764.f0;
            };
         };
      nextChildren←v28248 = (* (( (ptr) nextChildren←v28248)+1) );
      goto lab←L100126;
      lab←L100123: ;
      };
SOURCE(37589, 56)
   if ((0 != partsFound←v27980)) {
SOURCE(37608, 26)
      parts←v13416 = outlineParts←v27952;
      }
   else {
SOURCE(37634, 11)
      parts←v13416 = 0;
      };
SOURCE(36780, 865)
   return(parts←v13416);
   }

static void Transform←P1920(slice←v13476, parts←v13504, transform←v13532, editConstraints←v13560, formal←c0948)
   word slice←v13476;
   word parts←v13504;
   word transform←v13532;
   word editConstraints←v13560;
   word formal←c0948;
   {
   W13 var←c98404;
   /* declaration of history←v13588 skipped */ 
   register ptr gf←c98436 =  (ptr) &globalframe;
   /* declaration of var←c93796 skipped */ 
   /* declaration of var←c93828 skipped */ 
   word outlineParts←v28420;
   word outlineData←v28448;
   (* (( (ptr) &var←c98404)+4)/* history←v13588 */  ) = formal←c0948;
   /* Transform: */ 
SOURCE(37651, 1925)
   {
      word tmpAddr225;
      tmpAddr225 = (word) (( (ptr) &var←c98404)+5)/* var←c93796 */ ;
      (*  (ptr) tmpAddr225 ) = ( ((word)  (fPt) RestChildProc←P6816) );
      (* (( (ptr) tmpAddr225) + 1) ) = 1;
      };
   {
      word tmpAddr226;
      tmpAddr226 = (word) (( (ptr) &var←c98404)+7)/* var←c93828 */ ;
      (*  (ptr) tmpAddr226 ) = ( ((word)  (fPt) FirstChildProc←P6756) );
      (* (( (ptr) tmpAddr226) + 1) ) = 1;
      };
SOURCE(37823, 42)
   outlineParts←v28420 = XR←Narrow(parts←v13504, (* (( (ptr) gf←c98436)+21) ));
SOURCE(37867, 45)
   outlineData←v28448 = XR←Narrow((* (( (ptr) slice←v13476)+1) ), (* (( (ptr) gf←c98436)+13) ));
SOURCE(37914, 401)
   if ((outlineParts←v28420 == 0)) {
SOURCE(37943, 148)
      {
         register word list←v28492;
         list←v28492 = (* (( (ptr) outlineData←v28448)+4) );
         lab←L100130: ;
         if ((list←v28492 != 0)) {
            }
         else {
            goto lab←L100127;
            };
SOURCE(38021, 70)
         {
            word pd227;
            pd227 = (* (( (ptr) (* (( (ptr) gf←c98436)+207)/* var←c91876 */  ))+22) );
            (void) ( *( (fPt) ((*  (ptr) pd227 ))))((*  (ptr) list←v28492 ), 0, transform←v13532, editConstraints←v13560, 0, pd227);
            };
         list←v28492 = (* (( (ptr) list←v28492)+1) );
         goto lab←L100130;
         lab←L100127: ;
         };
      }
   else {
SOURCE(38111, 204)
      {
         register word list←v28620;
         list←v28620 = (*  (ptr) outlineParts←v28420 );
         lab←L100134: ;
         if ((list←v28620 != 0)) {
            }
         else {
            goto lab←L100131;
            };
SOURCE(38203, 112)
         if (((*  (ptr) list←v28620 ) != 0)) {
SOURCE(38226, 89)
            {
               word pd228;
               pd228 = (* (( (ptr) (* (( (ptr) gf←c98436)+207)/* var←c91876 */  ))+22) );
               (void) ( *( (fPt) ((*  (ptr) pd228 ))))((*  (ptr) (*  (ptr) list←v28620 ) ), (* (( (ptr) (*  (ptr) list←v28620 ))+1) ), transform←v13532, editConstraints←v13560, 0, pd228)
               ;
               };
            };
         list←v28620 = (* (( (ptr) list←v28620)+1) );
         goto lab←L100134;
         lab←L100131: ;
         };
      };
SOURCE(38329, 27)
   {
      word pd229;
      pd229 = (* (( (ptr) (* (( (ptr) gf←c98436)+205)/* var←c91620 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd229 ))))(slice←v13476, pd229);
      };
SOURCE(38358, 137)
   if ((outlineParts←v28420 == 0) || (0 != (word) IsComplete←P2640(outlineParts←v28420))) {
SOURCE(38413, 82)
      {
         word pd230;
         pd230 = (* (( (ptr) (* (( (ptr) gf←c98436)+213)/* var←c92868 */  ))+37) );
         (* (( (ptr) outlineData←v28448)+1) ) = (word) ( *( (fPt) ((*  (ptr) pd230 ))))((* (( (ptr) outlineData←v28448)+1) ), transform←v13532, pd230)
         ;
         };
      };
SOURCE(38497, 1079)
   if (((* (( (ptr) outlineData←v28448)+2) ) != 0)) {
SOURCE(38532, 1046)
      {
         /* declaration of recentlyFilledChild←v28804 skipped */ 
         word foundFilledBox←v28832 = 0;
         /* declaration of screenStyle←v28860 skipped */ 
         /* declaration of loc←v28888 skipped */ 
SOURCE(39322, 26)
         (* (( (ptr) &var←c98404)+9)/* recentlyFilledChild←v28804 */  ) = 0;
SOURCE(39350, 41)
         (* (( (ptr) &var←c98404)+10)/* screenStyle←v28860 */  ) = 0;
SOURCE(39393, 22)
         (* (( (ptr) &var←c98404)+11) ) = 0;
         (* (( (ptr) &var←c98404)+12) ) = 0;
SOURCE(39418, 73)
         {
            word pd231;
            pd231 = (* (( (ptr) (* (( (ptr) gf←c98436)+204)/* var←c91588 */  ))+73) );
            foundFilledBox←v28832 = (word) ( *( (fPt) ((*  (ptr) pd231 ))))(slice←v13476, 1, (word) (( (bPt) &var←c98404)+28)/* var←c93828 */ , (* (
                  ( (ptr) gf←c98436)+32) ), pd231);
            };
SOURCE(39493, 83)
         if ((0 != foundFilledBox←v28832)) {
SOURCE(39516, 60)
            {
               word var←c93892;
               word pd232;
               pd232 = (* (( (ptr) (* (( (ptr) gf←c98436)+204)/* var←c91588 */  ))+73) );
               var←c93892 = (word) ( *( (fPt) ((*  (ptr) pd232 ))))(slice←v13476, 1, (word) (( (bPt) &var←c98404)+20)/* var←c93796 */ , (* (
                     ( (ptr) gf←c98436)+32) ), pd232);
               };
            };
         };
      };
   }

static word FirstChildProc←P6756(slice←v28964, formal←c98500)
   word slice←v28964;
   word formal←c98500;
   {
   register ptr gf←c98468 =  (ptr) &globalframe;
   word done←v29008;
   formal←c98500 = (formal←c98500 - 28);
   /* FirstChildProc: */ 
SOURCE(38534, 22)
SOURCE(38534, 22)
   done←v29008 = 0;
SOURCE(38621, 46)
   {
      W3 var←c93924;
      {
         word pd233;
         pd233 = (* (( (ptr) (* (( (ptr) gf←c98468)+205)/* var←c91620 */  ))+48) );
         (void) ( *( (fPt) ((*  (ptr) pd233 ))))((word) &var←c93924, slice←v28964, pd233);
         };
      (* (( (ptr) formal←c98500)+10) ) = var←c93924.f2;
      (*  (W2Pt) (( (ptr) formal←c98500)+11) ) = (*  (W2Pt) &var←c93924 );
      };
SOURCE(38669, 35)
   if (((* (( (ptr) formal←c98500)+11) ) == 0)) {
SOURCE(38690, 14)
      return(0);
      };
SOURCE(38732, 52)
   {
      word pd234;
      pd234 = (* (( (ptr) (* (( (ptr) gf←c98468)+205)/* var←c91620 */  ))+47) );
      (void) ( *( (fPt) ((*  (ptr) pd234 ))))(slice←v28964, (*  (W2Pt) (( (ptr) formal←c98500)+11) ), (* (( (ptr) formal←c98500)+10)
          ), (* (( (ptr) formal←c98500)+4) ), pd234);
      };
SOURCE(38817, 27)
   (* (( (ptr) formal←c98500)+9) ) = slice←v28964;
SOURCE(38885, 12)
   return(1);
   }

static word RestChildProc←P6816(slice←v29068, formal←c98564)
   word slice←v29068;
   word formal←c98564;
   {
   register ptr gf←c98532 =  (ptr) &globalframe;
   word done←v29112;
   formal←c98564 = (formal←c98564 - 20);
   /* RestChildProc: */ 
SOURCE(38922, 21)
SOURCE(38922, 21)
   done←v29112 = 0;
SOURCE(39008, 306)
   if ((slice←v29068 != (* (( (ptr) formal←c98564)+9) ))) {
SOURCE(39042, 274)
      {
         W3 siblingNodes←v29140;
         W2 resumeLoc←v29168;
SOURCE(39090, 83)
         {
            word pd235;
            pd235 = (* (( (ptr) (* (( (ptr) gf←c98532)+205)/* var←c91620 */  ))+49) );
            (void) ( *( (fPt) ((*  (ptr) pd235 ))))((word) &siblingNodes←v29140, (* (( (ptr) formal←c98564)+9) ), pd235);
            };
SOURCE(39175, 50)
         resumeLoc←v29168 = (*  (W2Pt) (( (ptr) &siblingNodes←v29140)+1) );
SOURCE(39227, 58)
         {
            word pd236;
            pd236 = (* (( (ptr) (* (( (ptr) gf←c98532)+205)/* var←c91620 */  ))+47) );
            (void) ( *( (fPt) ((*  (ptr) pd236 ))))(slice←v29068, resumeLoc←v29168, (* (( (ptr) formal←c98564)+10) ), (* (( (ptr) formal←c98564)+4)
                ), pd236);
            };
SOURCE(39287, 27)
         (* (( (ptr) formal←c98564)+9) ) = slice←v29068;
         };
      };
SOURCE(38922, 21)
   return(done←v29112);
   }

static word OneChildPartOnly←P1980(realParts←v13648)
   word realParts←v13648;
   {
   word theChild←v13692;
   /* OneChildPartOnly: */ 
SOURCE(39586, 285)
SOURCE(39586, 285)
   theChild←v13692 = 0;
SOURCE(39675, 196)
   {
      register word list←v29212;
      list←v29212 = (*  (ptr) realParts←v13648 );
      lab←L100138: ;
      if ((list←v29212 != 0)) {
         }
      else {
         goto lab←L100135;
         };
SOURCE(39764, 107)
      if (((*  (ptr) list←v29212 ) != 0)) {
SOURCE(39789, 82)
         if ((theChild←v13692 != 0)) {
SOURCE(39810, 40)
            return(0);
            }
         else {
SOURCE(39850, 21)
            theChild←v13692 = (*  (ptr) list←v29212 );
            };
         };
      list←v29212 = (* (( (ptr) list←v29212)+1) );
      goto lab←L100138;
      lab←L100135: ;
      };
SOURCE(39586, 285)
   return(theChild←v13692);
   }

static word Describe←P2040(sliceD←v13752, className←v13780)
   word sliceD←v13752;
   word className←v13780;
   {
   register ptr gf←c98596 =  (ptr) &globalframe;
   word rope←v13824;
   word realParts←v29340 = 0;
   word theChild←v29368 = 0;
   /* Describe: */ 
SOURCE(39889, 578)
SOURCE(39889, 578)
   rope←v13824 = 0;
SOURCE(40041, 44)
   if (((* (( (ptr) sliceD←v13752)+1) ) == 0)) {
SOURCE(40068, 17)
      return((* (( (ptr) gf←c98596)+33) ));
      };
SOURCE(40087, 32)
   realParts←v29340 = XR←Narrow((* (( (ptr) sliceD←v13752)+1) ), (* (( (ptr) gf←c98596)+21) ));
SOURCE(40121, 346)
   theChild←v29368 = (word) OneChildPartOnly←P1980(realParts←v29340);
   if ((theChild←v29368 != 0)) {
SOURCE(40176, 36)
      {
         word pd237;
         pd237 = (* (( (ptr) (* (( (ptr) gf←c98596)+207)/* var←c91876 */  ))+23) );
         rope←v13824 = (word) ( *( (fPt) ((*  (ptr) pd237 ))))(theChild←v29368, pd237);
         };
      }
   else {
SOURCE(40223, 177)
      {
         register word list←v29412;
         list←v29412 = (*  (ptr) realParts←v29340 );
         lab←L100142: ;
         if ((list←v29412 != 0)) {
            }
         else {
            goto lab←L100139;
            };
SOURCE(40312, 88)
         if (((*  (ptr) list←v29412 ) != 0)) {
SOURCE(40335, 65)
            {
               word pd238;
               pd238 = (* (( (ptr) (* (( (ptr) gf←c98596)+217)/* var←c93988 */  ))+6) );
               return((word) ( *( (fPt) ((*  (ptr) pd238 ))))((* (( (ptr) gf←c98596)+34) ), className←v13780, pd238));
               };
            };
         list←v29412 = (* (( (ptr) list←v29412)+1) );
         goto lab←L100142;
         lab←L100139: ;
         };
SOURCE(40411, 56)
      {
         word pd239;
         pd239 = (* (( (ptr) (* (( (ptr) gf←c98596)+217)/* var←c93988 */  ))+5) );
         rope←v13824 = (word) ( *( (fPt) ((*  (ptr) pd239 ))))((* (( (ptr) gf←c98596)+35) ), className←v13780, (* (( (ptr) gf←c98596)+36)
             ), 0, 0, pd239);
         };
      };
SOURCE(39889, 578)
   return(rope←v13824);
   }

static word DescribeHit←P2100(slice←v13884, hitData←v13912)
   word slice←v13884;
   word hitData←v13912;
   {
   register ptr gf←c98628 =  (ptr) &globalframe;
   word rope←v13972;
   word outlineData←v29540;
   word outlineHitData←v29568;
   word count←v29596 = 0;
   /* DescribeHit: */ 
SOURCE(40476, 808)
SOURCE(40476, 808)
   rope←v13972 = 0;
SOURCE(40564, 45)
   outlineData←v29540 = XR←Narrow((* (( (ptr) slice←v13884)+1) ), (* (( (ptr) gf←c98628)+13) ));
SOURCE(40611, 48)
   outlineHitData←v29568 = XR←Narrow(hitData←v13912, (* (( (ptr) gf←c98628)+30) ));
SOURCE(40677, 527)
   {
      register word children←v29640;
      children←v29640 = (* (( (ptr) outlineData←v29540)+4) );
      lab←L100146: ;
      if ((children←v29640 != 0)) {
         }
      else {
         goto lab←L100143;
         };
      {
         word child←v29768;
SOURCE(40765, 29)
         child←v29768 = (*  (ptr) children←v29640 );
SOURCE(40796, 386)
         if ((child←v29768 == (*  (ptr) outlineHitData←v29568 ))) {
SOURCE(40831, 353)
            {
               word clusterRope←v29812 = 0;
SOURCE(40857, 141)
               {
                  word pd240;
                  pd240 = (* (( (ptr) (* (( (ptr) gf←c98628)+218)/* var←c94020 */  ))+39) );
                  if ((0 != (word) ( *( (fPt) ((*  (ptr) pd240 ))))(slice←v13884, pd240))) {
SOURCE(40891, 59)
                     {
                        W2 var←c94052;
                        var←c94052.f0 = 5;
                        var←c94052.f1 = count←v29596;
                        {
                           word pd241;
                           pd241 = (* (( (ptr) (* (( (ptr) gf←c98628)+210)/* var←c92452 */  ))+63) );
                           clusterRope←v29812 = (word) ( *( (fPt) ((*  (ptr) pd241 ))))((* (( (ptr) gf←c98628)+38) ), var←c94052, pd241);
                           };
                        };
                     }
                  else {
SOURCE(40950, 48)
                     {
                        W2 var←c94084;
                        var←c94084.f0 = 5;
                        var←c94084.f1 = count←v29596;
                        {
                           word pd242;
                           pd242 = (* (( (ptr) (* (( (ptr) gf←c98628)+210)/* var←c92452 */  ))+63) );
                           clusterRope←v29812 = (word) ( *( (fPt) ((*  (ptr) pd242 ))))((* (( (ptr) gf←c98628)+39) ), var←c94084, pd242);
                           };
                        };
                     };
                  };
SOURCE(41000, 81)
               {
                  word pd243;
                  pd243 = (* (( (ptr) (* (( (ptr) gf←c98628)+204)/* var←c91588 */  ))+62) );
                  if ((0 == (word) ( *( (fPt) ((*  (ptr) pd243 ))))(child←v29768, pd243))) {
SOURCE(41037, 44)
                     {
                        word pd244;
                        pd244 = (* (( (ptr) (* (( (ptr) gf←c98628)+217)/* var←c93988 */  ))+6) );
                        clusterRope←v29812 = (word) ( *( (fPt) ((*  (ptr) pd244 ))))(clusterRope←v29812, (* (( (ptr) gf←c98628)+40) ), pd244);
                        };
                     };
                  };
SOURCE(41083, 91)
               {
                  word var←c94116;
                  {
                     word pd245;
                     pd245 = (* (( (ptr) (* (( (ptr) gf←c98628)+207)/* var←c91876 */  ))+24) );
                     var←c94116 = (word) ( *( (fPt) ((*  (ptr) pd245 ))))(child←v29768, (* (( (ptr) outlineHitData←v29568)+1) ), pd245);
                     };
                  {
                     word pd246;
                     pd246 = (* (( (ptr) (* (( (ptr) gf←c98628)+217)/* var←c93988 */  ))+6) );
                     rope←v13972 = (word) ( *( (fPt) ((*  (ptr) pd246 ))))(clusterRope←v29812, var←c94116, pd246);
                     };
                  };
SOURCE(41176, 6)
               return(rope←v13972);
               };
            };
SOURCE(41187, 17)
         count←v29596 = (count←v29596 + 1);
         };
      children←v29640 = (* (( (ptr) children←v29640)+1) );
      goto lab←L100146;
      lab←L100143: ;
      };
SOURCE(41215, 69)
   {
      word var←c0523;
      var←c0523 = (* (( (ptr) gf←c98628)+41) );
      (void) (XR←RaiseSignal((* (( (ptr) gf←c98628)+4)/* Problem←v5520 */  ), 0, (word) &var←c0523));
      };
SOURCE(40476, 808)
   return(rope←v13972);
   }

static void Fileout←P2160(slice←v14032, f←v14060)
   word slice←v14032;
   word f←v14060;
   {
   register ptr gf←c98660 =  (ptr) &globalframe;
   word outlineData←v29856;
   word count←v29884 = 0;
   /* Fileout: */ 
SOURCE(41290, 421)
SOURCE(41344, 45)
   outlineData←v29856 = XR←Narrow((* (( (ptr) slice←v14032)+1) ), (* (( (ptr) gf←c98660)+13) ));
SOURCE(41407, 110)
   {
      register word childList←v29928;
      childList←v29928 = (* (( (ptr) outlineData←v29856)+4) );
      lab←L100150: ;
      if ((childList←v29928 != 0)) {
         }
      else {
         goto lab←L100147;
         };
SOURCE(41500, 17)
      count←v29884 = (count←v29884 + 1);
      childList←v29928 = (* (( (ptr) childList←v29928)+1) );
      goto lab←L100150;
      lab←L100147: ;
      };
SOURCE(41528, 45)
   {
      W2 var←c94148;
      var←c94148.f0 = 5;
      var←c94148.f1 = count←v29884;
      {
         word pd247;
         pd247 = (* (( (ptr) (* (( (ptr) gf←c98660)+210)/* var←c92452 */  ))+61) );
         (void) ( *( (fPt) ((*  (ptr) pd247 ))))(f←v14060, (* (( (ptr) gf←c98660)+42) ), var←c94148, pd247);
         };
      };
SOURCE(41575, 136)
   {
      register word childList←v30056;
      childList←v30056 = (* (( (ptr) outlineData←v29856)+4) );
      lab←L100154: ;
      if ((childList←v30056 != 0)) {
         }
      else {
         goto lab←L100151;
         };
SOURCE(41668, 43)
      {
         word pd248;
         pd248 = (* (( (ptr) (* (( (ptr) gf←c98660)+207)/* var←c91876 */  ))+69) );
         (void) ( *( (fPt) ((*  (ptr) pd248 ))))(f←v14060, (*  (ptr) childList←v30056 ), pd248);
         };
      childList←v30056 = (* (( (ptr) childList←v30056)+1) );
      goto lab←L100154;
      lab←L100151: ;
      };
   }

static word Filein←P2220(f←v14120, version←v14148, router←v14176, camera←v14204)
   word f←v14120;
   word version←v14148;
   word router←v14176;
   word camera←v14204;
   {
   register ptr gf←c98692 =  (ptr) &globalframe;
   word children←v14248;
   word count←v30184 = 0;
   word someChild←v30212 = 0;
   word nextChild←v30240 = 0;
   word childList←v30268 = 0;
   word ptr←v30296 = 0;
   /* Filein: */ 
SOURCE(41774, 1239)
SOURCE(41774, 1239)
   children←v14248 = 0;
SOURCE(41973, 105)
   {
      word x249;
      word x251;
      if (((
         x249 = version←v14148,  *(float*)&x249
         ) >= (
         x251 = (*  (ptr) &fc250 ),  *(float*)&x251
         ))) {
SOURCE(42000, 40)
         {
            word pd252;
            pd252 = (* (( (ptr) (* (( (ptr) gf←c98692)+212)/* var←c92516 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd252 ))))(f←v14120, (* (( (ptr) gf←c98692)+43) ), pd252);
            };
         }
      else {
SOURCE(42040, 38)
         {
            word pd253;
            pd253 = (* (( (ptr) (* (( (ptr) gf←c98692)+212)/* var←c92516 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd253 ))))(f←v14120, (* (( (ptr) gf←c98692)+44) ), pd253);
            };
         };
      };
SOURCE(42080, 25)
   {
      word pd254;
      pd254 = (* (( (ptr) (* (( (ptr) gf←c98692)+212)/* var←c92516 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd254 ))))(f←v14120, 91, pd254);
      };
SOURCE(42107, 28)
   {
      word pd255;
      pd255 = (* (( (ptr) (* (( (ptr) gf←c98692)+212)/* var←c92516 */  ))+25) );
      count←v30184 = (word) ( *( (fPt) ((*  (ptr) pd255 ))))(f←v14120, pd255);
      };
SOURCE(42137, 25)
   {
      word pd256;
      pd256 = (* (( (ptr) (* (( (ptr) gf←c98692)+212)/* var←c92516 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd256 ))))(f←v14120, 93, pd256);
      };
SOURCE(42164, 849)
   if ((count←v30184 > 0)) {
SOURCE(42182, 45)
      {
         W2 var←c94180;
         {
            word pd257;
            pd257 = (* (( (ptr) (* (( (ptr) gf←c98692)+214)/* var←c92996 */  ))+20) );
            (void) ( *( (fPt) ((*  (ptr) pd257 ))))((word) (&var←c94180), pd257);
            };
         ptr←v30296 = var←c94180.f1;
         childList←v30268 = var←c94180.f0;
         };
SOURCE(42229, 664)
      {
         register word i←v30424 = 0;
         register word noName←c94212;
         noName←c94212 = count←v30184;
         if ((i←v30424 >= noName←c94212)) {
            goto lab←L100155;
            };
         lab←L100158: ;
SOURCE(42257, 107)
         {
            word pd258;
            word x259;
            word x260;
            pd258 = (* (( (ptr) (* (( (ptr) gf←c98692)+207)/* var←c91876 */  ))+70) );
            nextChild←v30240 = (word) ( *( (fPt) ((*  (ptr) pd258 ))))(f←v14120, version←v14148, router←v14176, camera←v14204,  ( ((
                  x259 = version←v14148,  *(float*)&x259
                  ) >= (
                  x260 = (*  (ptr) &fc101 ),  *(float*)&x260
                  )) ? 0 : (* (( (ptr) gf←c98692)+6)/* trajClass←v7480 */  ) ) , pd258);
            };
SOURCE(42427, 245)
         {
            word tc261;
            word tc262;
            word pd263;
            if ( ( (someChild←v30212 == 0) ? (nextChild←v30240 != 0) : 0 ) ) {
               pd263 = (* (( (ptr) (* (( (ptr) gf←c98692)+207)/* var←c91876 */  ))+6) );
               tc262 =  (word) ((word) ( *( (fPt) ((*  (ptr) pd263 ))))(nextChild←v30240, pd263) == (* (( (ptr) gf←c98692)+59) ));
               }
            else {
               tc262 =  (word) 0;
               };
            if (tc262) {
               tc261 =  (word) ((*  (ptr) XR←Narrow((* (( (ptr) nextChild←v30240)+1) ), (* (( (ptr) gf←c98692)+31) )) ) == 3);
               }
            else {
               tc261 =  (word) 0;
               };
            if (tc261) {
SOURCE(42558, 15)
               (* (( (ptr) gf←c98692)+5)/* fillColor←v7452 */  ) = 0;
SOURCE(42627, 45)
               (*  (ptr) XR←Narrow((* (( (ptr) nextChild←v30240)+1) ), (* (( (ptr) gf←c98692)+31) )) ) = 0;
               };
            };
SOURCE(42713, 180)
         if ((nextChild←v30240 != 0)) {
SOURCE(42737, 21)
            someChild←v30212 = nextChild←v30240;
SOURCE(42760, 64)
            {
               W2 var←c94244;
               {
                  word pd264;
                  pd264 = (* (( (ptr) (* (( (ptr) gf←c98692)+214)/* var←c92996 */  ))+21) );
                  (void) ( *( (fPt) ((*  (ptr) pd264 ))))((word) &var←c94244, nextChild←v30240, childList←v30268, ptr←v30296, pd264);
                  };
               ptr←v30296 = var←c94244.f1;
               childList←v30268 = var←c94244.f0;
               };
            }
         else {
SOURCE(42833, 60)
            (void) ComplainAboutFile←P2400(f←v14120, (* (( (ptr) gf←c98692)+45) ), (* (( (ptr) gf←c98692)+46) ), router←v14176);
            };
         i←v30424 = (i←v30424 + 1);
         if ((i←v30424 < noName←c94212)) {
            goto lab←L100158;
            };
         lab←L100155: ;
         };
SOURCE(42904, 17)
      return(childList←v30268);
      }
   else {
SOURCE(42930, 83)
      (void) ComplainAboutFile←P2400(f←v14120, (* (( (ptr) gf←c98692)+45) ), (* (( (ptr) gf←c98692)+47) ), router←v14176);
      };
SOURCE(41774, 1239)
   return(children←v14248);
   }

static void OutlineFileout←P2280(slice←v14392, f←v14420)
   word slice←v14392;
   word f←v14420;
   {
   register ptr gf←c98724 =  (ptr) &globalframe;
   word outlineData←v30468;
   /* OutlineFileout: */ 
SOURCE(43018, 393)
SOURCE(43079, 45)
   outlineData←v30468 = XR←Narrow((* (( (ptr) slice←v14392)+1) ), (* (( (ptr) gf←c98724)+13) ));
SOURCE(43126, 24)
   {
      word pd265;
      pd265 = (* (( (ptr) (* (( (ptr) gf←c98724)+210)/* var←c92452 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd265 ))))(f←v14420, (* (( (ptr) gf←c98724)+48) ), 0, 2147483647, pd265);
      };
SOURCE(43152, 47)
   {
      word pd266;
      pd266 = (* (( (ptr) (* (( (ptr) gf←c98724)+211)/* var←c92484 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd266 ))))(f←v14420, (* (( (ptr) outlineData←v30468)+1) ), pd266);
      };
SOURCE(43201, 18)
   {
      word pd267;
      pd267 = (* (( (ptr) (* (( (ptr) gf←c98724)+210)/* var←c92452 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd267 ))))(f←v14420, (* (( (ptr) gf←c98724)+49) ), 0, 2147483647, pd267);
      };
SOURCE(43221, 44)
   {
      word pd268;
      pd268 = (* (( (ptr) (* (( (ptr) gf←c98724)+211)/* var←c92484 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd268 ))))(f←v14420, (*  (ptr) outlineData←v30468 ), pd268);
      };
SOURCE(43268, 24)
   {
      word pd269;
      pd269 = (* (( (ptr) (* (( (ptr) gf←c98724)+210)/* var←c92452 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd269 ))))(f←v14420, (* (( (ptr) gf←c98724)+50) ), 0, 2147483647, pd269);
      };
SOURCE(43294, 70)
   {
      word pd270;
      pd270 = (* (( (ptr) (* (( (ptr) gf←c98724)+211)/* var←c92484 */  ))+8) );
      (void) ( *( (fPt) ((*  (ptr) pd270 ))))(f←v14420, (* (( (ptr) outlineData←v30468)+2) ), (* (( (ptr) outlineData←v30468)+3)
          ), pd270);
      };
SOURCE(43367, 16)
   {
      word pd271;
      pd271 = (* (( (ptr) (* (( (ptr) gf←c98724)+210)/* var←c92452 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd271 ))))(f←v14420, 10, pd271);
      };
SOURCE(43385, 26)
   {
      word pd272;
      pd272 = (* (( (ptr) (* (( (ptr) gf←c98724)+204)/* var←c91588 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd272 ))))(slice←v14392, f←v14420, pd272);
      };
   }

static word OutlineFilein←P2340(f←v14480, version←v14508, router←v14536, camera←v14564)
   word f←v14480;
   word version←v14508;
   word router←v14536;
   word camera←v14564;
   {
   register ptr gf←c98756 =  (ptr) &globalframe;
   word slice←v14608;
   word oddWrap←v30512 = 1;
   word fillColor←v30540 = 0;
   word fillText←v30568 = 0;
   word screenStyle←v30596 = 1;
   word childList←v30624 = 0;
   /* OutlineFilein: */ 
SOURCE(43417, 920)
SOURCE(43417, 920)
   slice←v14608 = 0;
SOURCE(43652, 64)
   if (((* (( (ptr) gf←c98756)+6)/* trajClass←v7480 */  ) == 0)) {
SOURCE(43674, 42)
      {
         word pd273;
         pd273 = (* (( (ptr) (* (( (ptr) gf←c98756)+205)/* var←c91620 */  ))+7) );
         (* (( (ptr) gf←c98756)+6)/* trajClass←v7480 */  ) = (word) ( *( (fPt) ((*  (ptr) pd273 ))))((* ((( (ptr) gf←c98756)+59)) ), pd273)
         ;
         };
      };
SOURCE(43718, 35)
   {
      word pd274;
      pd274 = (* (( (ptr) (* (( (ptr) gf←c98756)+212)/* var←c92516 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd274 ))))(f←v14480, (* (( (ptr) gf←c98756)+51) ), pd274);
      };
SOURCE(43755, 43)
   {
      word pd275;
      pd275 = (* (( (ptr) (* (( (ptr) gf←c98756)+212)/* var←c92516 */  ))+16) );
      fillColor←v30540 = (word) ( *( (fPt) ((*  (ptr) pd275 ))))(f←v14480, version←v14508, pd275);
      };
SOURCE(43800, 88)
   {
      word x276;
      word x277;
      if (((
         x276 = version←v14508,  *(float*)&x276
         ) >= (
         x277 = (*  (ptr) &fc101 ),  *(float*)&x277
         ))) {
SOURCE(43827, 28)
         {
            word pd278;
            pd278 = (* (( (ptr) (* (( (ptr) gf←c98756)+212)/* var←c92516 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd278 ))))(f←v14480, (* (( (ptr) gf←c98756)+52) ), pd278);
            };
SOURCE(43857, 31)
         {
            word pd279;
            pd279 = (* (( (ptr) (* (( (ptr) gf←c98756)+212)/* var←c92516 */  ))+24) );
            oddWrap←v30512 = (word) ( *( (fPt) ((*  (ptr) pd279 ))))(f←v14480, pd279);
            };
         };
      };
SOURCE(43893, 119)
   {
      word x280;
      word x282;
      if (((
         x280 = version←v14508,  *(float*)&x280
         ) >= (
         x282 = (*  (ptr) &fc281 ),  *(float*)&x282
         ))) {
SOURCE(43920, 34)
         {
            word pd283;
            pd283 = (* (( (ptr) (* (( (ptr) gf←c98756)+212)/* var←c92516 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd283 ))))(f←v14480, (* (( (ptr) gf←c98756)+53) ), pd283);
            };
SOURCE(43956, 56)
         {
            W2 var←c94276;
            {
               word pd284;
               pd284 = (* (( (ptr) (* (( (ptr) gf←c98756)+212)/* var←c92516 */  ))+18) );
               (void) ( *( (fPt) ((*  (ptr) pd284 ))))((word) &var←c94276, f←v14480, version←v14508, pd284);
               };
            screenStyle←v30596 = var←c94276.f1;
            fillText←v30568 = var←c94276.f0;
            };
         };
      };
SOURCE(44017, 145)
   {
      word x285;
      word x287;
      if (((
         x285 = version←v14508,  *(float*)&x285
         ) < (
         x287 = (*  (ptr) &fc286 ),  *(float*)&x287
         ))) {
SOURCE(44094, 35)
         {
            word pd288;
            pd288 = (* (( (ptr) (* (( (ptr) gf←c98756)+212)/* var←c92516 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd288 ))))(f←v14480, (* (( (ptr) gf←c98756)+54) ), pd288);
            };
SOURCE(44131, 31)
         {
            word var←c94308;
            word pd289;
            pd289 = (* (( (ptr) (* (( (ptr) gf←c98756)+212)/* var←c92516 */  ))+14) );
            var←c94308 = (word) ( *( (fPt) ((*  (ptr) pd289 ))))(f←v14480, pd289);
            };
         };
      };
SOURCE(44167, 55)
   {
      word pd290;
      pd290 = (* (( (ptr) (* (( (ptr) gf←c98756)+204)/* var←c91588 */  ))+21) );
      childList←v30624 = (word) ( *( (fPt) ((*  (ptr) pd290 ))))(f←v14480, version←v14508, router←v14536, camera←v14564, pd290)
      ;
      };
SOURCE(44224, 113)
   if ((childList←v30624 != 0)) {
SOURCE(44246, 91)
      slice←v14608 = (word) OutlineFromChildList←P180(childList←v30624, fillColor←v30540, oddWrap←v30512, fillText←v30568, screenStyle←v30596, version←v14508)
      ;
      };
SOURCE(43417, 920)
   return(slice←v14608);
   }

static void ComplainAboutFile←P2400(formal←c0949, className←v14696, complaint←v14724, router←v14752)
   word formal←c0949;
   word className←v14696;
   word complaint←v14724;
   word router←v14752;
   {
   W8 var←c98788;
   /* declaration of f←v14668 skipped */ 
   register ptr gf←c98820 =  (ptr) &globalframe;
   word of←v30752 = 0;
   /* declaration of fileName←v30780 skipped */ 
   W2 var←c0569;
   var←c98788.f4/* f←v14668 */  = formal←c0949;
   /* ComplainAboutFile: */ 
SOURCE(44343, 426)
SOURCE(44455, 25)
   var←c98788.f5/* fileName←v30780 */  = 0;
SOURCE(44482, 68)
SOURCE(44482, 68)
   {
      /* declaration of var←c01 skipped */ 
      var←c98788.f6/* var←c01 */  = (* (( (ptr) (* (( (ptr) gf←c98820)+219)/* var←c94340 */  ))+30) );
      {
         /* declaration of var←c02 skipped */ 
         {
            word var←c03;
            {
               word var←c0926;
               var←c0926 = (word) &var←c98788;
               var←c03 = (word) XR←Enable(( ((word)  (fPt) NoName←Q8472) ), ( ((word)  (fPt) NoName←Q8532) ), var←c0926);
               };
            if ((var←c03 == 2)) {
               goto lab←L100160;
               };
            };
         of←v30752 = var←c98788.f7/* var←c02 */ ;
         };
      };
   lab←L100160: ;
SOURCE(44567, 56)
   if ((var←c98788.f5/* fileName←v30780 */  == 0)) {
SOURCE(44588, 35)
      {
         word pd291;
         pd291 = (* (( (ptr) (* (( (ptr) gf←c98820)+219)/* var←c94340 */  ))+20) );
         (void) ( *( (fPt) ((*  (ptr) pd291 ))))((word) &var←c0569, of←v30752, pd291);
         };
      var←c98788.f5/* fileName←v30780 */  = var←c0569.f0;
      };
SOURCE(44625, 144)
   {
      word var←c94372;
      {
         word var←c94404;
         word var←c94436;
         var←c94404 = XR←NewObject(12, (* (( (ptr) gf←c98820)+29) ));
         var←c94436 = var←c94404;
         (*  (ptr) var←c94436 ) = 11;
         (* (( (ptr) var←c94436)+1) ) = var←c98788.f5/* fileName←v30780 */ ;
         (* (( (ptr) var←c94436)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c98820)+29) ));
         var←c94436 = (* (( (ptr) var←c94436)+2) );
         (*  (ptr) var←c94436 ) = 11;
         (* (( (ptr) var←c94436)+1) ) = className←v14696;
         (* (( (ptr) var←c94436)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c98820)+29) ));
         var←c94436 = (* (( (ptr) var←c94436)+2) );
         (*  (ptr) var←c94436 ) = 11;
         (* (( (ptr) var←c94436)+1) ) = complaint←v14724;
         var←c94372 = var←c94404;
         };
      {
         word pd292;
         pd292 = (* (( (ptr) (* (( (ptr) gf←c98820)+202)/* var←c91492 */  ))+13) );
         (void) ( *( (fPt) ((*  (ptr) pd292 ))))(router←v14752, 0, (* (( (ptr) gf←c98820)+57) ), (* (( (ptr) gf←c98820)+56) ), var←c94372, pd292)
         ;
         };
      };
   }

static word NoName←Q8472(formal←c0902)
   word formal←c0902;
   {
SOURCE(44482, 68)
   {
      word pd293;
      pd293 = (* (( (ptr) formal←c0902)+6) );
      (* (( (ptr) formal←c0902)+7) ) = (word) ( *( (fPt) ((*  (ptr) pd293 ))))((* ((( (ptr) formal←c0902)+4)) ), pd293);
      };
   return(0);
   }

static word IsEmptyParts←P2460(sliceD←v14812)
   word sliceD←v14812;
   {
   register ptr gf←c98852 =  (ptr) &globalframe;
   word var←c14856;
   word realParts←v30824;
   /* IsEmptyParts: */ 
SOURCE(44775, 153)
SOURCE(44775, 153)
   var←c14856 = 0;
SOURCE(44854, 46)
   realParts←v30824 = XR←Narrow((* (( (ptr) sliceD←v14812)+1) ), (* (( (ptr) gf←c98852)+21) ));
SOURCE(44902, 26)
   return((word) IsEmpty←P2520(realParts←v30824));
   }

static word IsEmpty←P2520(realParts←v14916)
   word realParts←v14916;
   {
   register ptr gf←c98884 =  (ptr) &globalframe;
   word var←c14960;
   /* IsEmpty: */ 
SOURCE(44934, 342)
SOURCE(44934, 342)
   var←c14960 = 0;
SOURCE(45008, 34)
   if ((realParts←v14916 == 0)) {
SOURCE(45030, 12)
      return(1);
      };
SOURCE(45084, 169)
   {
      register word list←v30868;
      list←v30868 = (*  (ptr) realParts←v14916 );
      lab←L100166: ;
      if ((list←v30868 != 0)) {
         }
      else {
         goto lab←L100163;
         };
SOURCE(45173, 80)
      {
         word tc294;
         word pd295;
         if (((*  (ptr) list←v30868 ) != 0)) {
            pd295 = (* (( (ptr) (* (( (ptr) gf←c98884)+207)/* var←c91876 */  ))+27) );
            tc294 =  (word) (0 == (word) ( *( (fPt) ((*  (ptr) pd295 ))))((*  (ptr) (list←v30868) ), pd295));
            }
         else {
            tc294 =  (word) 0;
            };
         if (tc294) {
SOURCE(45240, 13)
            return(0);
            };
         };
      list←v30868 = (* (( (ptr) list←v30868)+1) );
      goto lab←L100166;
      lab←L100163: ;
      };
SOURCE(45264, 12)
   return(1);
   }

static word IsCompleteParts←P2580(sliceD←v15020)
   word sliceD←v15020;
   {
   register ptr gf←c98916 =  (ptr) &globalframe;
   word var←c15064;
   word realParts←v30996;
   /* IsCompleteParts: */ 
SOURCE(45282, 159)
SOURCE(45282, 159)
   var←c15064 = 0;
SOURCE(45364, 46)
   realParts←v30996 = XR←Narrow((* (( (ptr) sliceD←v15020)+1) ), (* (( (ptr) gf←c98916)+21) ));
SOURCE(45412, 29)
   return((word) IsComplete←P2640(realParts←v30996));
   }

static word IsComplete←P2640(realParts←v15124)
   word realParts←v15124;
   {
   register ptr gf←c98948 =  (ptr) &globalframe;
   word var←c15168;
   /* IsComplete: */ 
SOURCE(45447, 348)
SOURCE(45447, 348)
   var←c15168 = 0;
SOURCE(45524, 35)
   if ((realParts←v15124 == 0)) {
SOURCE(45546, 13)
      return(0);
      };
SOURCE(45601, 171)
   {
      register word list←v31040;
      list←v31040 = (*  (ptr) realParts←v15124 );
      lab←L100170: ;
      if ((list←v31040 != 0)) {
         }
      else {
         goto lab←L100167;
         };
SOURCE(45690, 82)
      {
         word pd297;
         if (((*  (ptr) list←v31040 ) == 0)) { goto then0296;};
         pd297 = (* (( (ptr) (* (( (ptr) gf←c98948)+207)/* var←c91876 */  ))+28) );
         if ((0 == (word) ( *( (fPt) ((*  (ptr) pd297 ))))((*  (ptr) (list←v31040) ), pd297))) {
            then0296: ;
SOURCE(45759, 13)
            return(0);
            };
         };
      list←v31040 = (* (( (ptr) list←v31040)+1) );
      goto lab←L100170;
      lab←L100167: ;
      };
SOURCE(45783, 12)
   return(1);
   }

static word NewParts←P2700(slice←v15228, hitData←v15256, mode←v15284)
   word slice←v15228;
   word hitData←v15256;
   word mode←v15284;
   {
   register ptr gf←c98980 =  (ptr) &globalframe;
   word sliceD←v15340;
   word outlineData←v31168;
   word outlineHitData←v31196;
   word newParts←v31224;
   /* NewParts: */ 
SOURCE(45801, 1291)
SOURCE(45801, 1291)
   sliceD←v15340 = 0;
SOURCE(45912, 45)
   outlineData←v31168 = XR←Narrow((* (( (ptr) slice←v15228)+1) ), (* (( (ptr) gf←c98980)+13) ));
SOURCE(45959, 48)
   outlineHitData←v31196 = XR←Narrow(hitData←v15256, (* (( (ptr) gf←c98980)+30) ));
SOURCE(46009, 45)
   newParts←v31224 = XR←NewObject(4, (* (( (ptr) gf←c98980)+21) ));
SOURCE(46056, 1036)
   {
      word var←c94564;
      var←c94564 = mode←v15284;
      switch (var←c94564) {
         case 8: case 6: case 7: 
SOURCE(46098, 529)
            {
               word ptr←v31268 = 0;
SOURCE(46161, 66)
               {
                  W2 var←c94596;
                  {
                     word pd298;
                     pd298 = (* (( (ptr) (* (( (ptr) gf←c98980)+214)/* var←c92996 */  ))+15) );
                     (void) ( *( (fPt) ((*  (ptr) pd298 ))))((word) (&var←c94596), pd298);
                     };
                  ptr←v31268 = var←c94596.f1;
                  (*  (ptr) newParts←v31224 ) = var←c94596.f0;
                  };
SOURCE(46229, 305)
               {
                  register word children←v31396;
                  children←v31396 = (* (( (ptr) outlineData←v31168)+4) );
                  lab←L100174: ;
                  if ((children←v31396 != 0)) {
                     }
                  else {
                     goto lab←L100171;
                     };
                  {
                     word child←v31524;
                     word childD←v31552;
SOURCE(46317, 29)
                     child←v31524 = (*  (ptr) children←v31396 );
SOURCE(46348, 91)
                     {
                        word tc299;
                        word pd300;
                        if ((mode←v15284 == 8)) {
                           tc299 =  (word) 0;
                           }
                        else {
                           pd300 = (* (( (ptr) (* (( (ptr) gf←c98980)+207)/* var←c91876 */  ))+29) );
                           tc299 =  (word) ( *( (fPt) ((*  (ptr) pd300 ))))(child←v31524, 0, 6, pd300);
                           };
                        childD←v31552 = tc299;
                        };
SOURCE(46441, 93)
                     {
                        W2 var←c94628;
                        {
                           word pd301;
                           pd301 = (* (( (ptr) (* (( (ptr) gf←c98980)+214)/* var←c92996 */  ))+16) );
                           (void) ( *( (fPt) ((*  (ptr) pd301 ))))((word) &var←c94628, childD←v31552, (*  (ptr) newParts←v31224 ), ptr←v31268, pd301)
                           ;
                           };
                        ptr←v31268 = var←c94628.f1;
                        (*  (ptr) newParts←v31224 ) = var←c94628.f0;
                        };
                     };
                  children←v31396 = (* (( (ptr) children←v31396)+1) );
                  goto lab←L100174;
                  lab←L100171: ;
                  };
SOURCE(46545, 53)
               {
                  word pd302;
                  pd302 = (* (( (ptr) (* (( (ptr) gf←c98980)+205)/* var←c91620 */  ))+8) );
                  sliceD←v15340 = (word) ( *( (fPt) ((*  (ptr) pd302 ))))(slice←v15228, newParts←v31224, pd302);
                  };
               };
            break;
         default: 
SOURCE(46683, 329)
            {
               register word children←v31596;
               children←v31596 = (* (( (ptr) outlineData←v31168)+4) );
               lab←L100178: ;
               if ((children←v31596 != 0)) {
                  }
               else {
                  goto lab←L100175;
                  };
               {
                  word child←v31724;
SOURCE(46771, 29)
                  child←v31724 = (*  (ptr) children←v31596 );
SOURCE(46802, 210)
                  if ((child←v31724 == (*  (ptr) outlineHitData←v31196 ))) {
SOURCE(46837, 177)
                     {
                        word childD←v31768;
SOURCE(46839, 87)
                        {
                           word pd303;
                           pd303 = (* (( (ptr) (* (( (ptr) gf←c98980)+207)/* var←c91876 */  ))+29) );
                           childD←v31768 = (word) ( *( (fPt) ((*  (ptr) pd303 ))))(child←v31724, (* (( (ptr) outlineHitData←v31196)+1) ), mode←v15284, pd303)
                           ;
                           };
SOURCE(46929, 62)
                        {
                           word pd304;
                           pd304 = (* (( (ptr) (* (( (ptr) gf←c98980)+204)/* var←c91588 */  ))+82) );
                           sliceD←v15340 = (word) ( *( (fPt) ((*  (ptr) pd304 ))))(slice←v15228, childD←v31768, pd304);
                           };
SOURCE(47006, 6)
                        return(sliceD←v15340);
                        };
                     };
                  };
               children←v31596 = (* (( (ptr) children←v31596)+1) );
               goto lab←L100178;
               lab←L100175: ;
               };
SOURCE(47026, 66)
            {
               word var←c0604;
               var←c0604 = (* (( (ptr) gf←c98980)+60) );
               (void) (XR←RaiseSignal((* (( (ptr) gf←c98980)+4)/* Problem←v5520 */  ), 0, (word) &var←c0604));
               };
            break;
         };
      };
SOURCE(45801, 1291)
   return(sliceD←v15340);
   }

static word UnionParts←P2760(partsA←v15400, partsB←v15428)
   word partsA←v15400;
   word partsB←v15428;
   {
   register ptr gf←c99012 =  (ptr) &globalframe;
   word aPlusB←v15472;
   word realPartsA←v31812;
   word realPartsB←v31840;
   /* UnionParts: */ 
SOURCE(47101, 1331)
SOURCE(47101, 1331)
   aPlusB←v15472 = 0;
SOURCE(47214, 47)
   realPartsA←v31812 = XR←Narrow((* (( (ptr) partsA←v15400)+1) ), (* (( (ptr) gf←c99012)+21) ));
SOURCE(47263, 47)
   realPartsB←v31840 = XR←Narrow((* (( (ptr) partsB←v15428)+1) ), (* (( (ptr) gf←c99012)+21) ));
SOURCE(47312, 41)
   if (((* (( (ptr) partsA←v15400)+1) ) == 0)) {
SOURCE(47339, 14)
      return(partsB←v15428);
      };
SOURCE(47355, 41)
   if (((* (( (ptr) partsB←v15428)+1) ) == 0)) {
SOURCE(47382, 14)
      return(partsA←v15400);
      };
SOURCE(47398, 42)
   if ((0 != (word) IsEmpty←P2520(realPartsA←v31812))) {
SOURCE(47426, 14)
      return(partsB←v15428);
      };
SOURCE(47442, 42)
   if ((0 != (word) IsEmpty←P2520(realPartsB←v31840))) {
SOURCE(47470, 14)
      return(partsA←v15400);
      };
SOURCE(47486, 45)
   if ((0 != (word) IsComplete←P2640(realPartsA←v31812))) {
SOURCE(47517, 14)
      return(partsA←v15400);
      };
SOURCE(47533, 45)
   if ((0 != (word) IsComplete←P2640(realPartsB←v31840))) {
SOURCE(47564, 14)
      return(partsB←v15428);
      };
SOURCE(47580, 854)
   {
      word ptr←v31884 = 0;
      word union←v31912;
      word listA←v31940;
      word listB←v31968;
SOURCE(47616, 42)
      union←v31912 = XR←NewObject(4, (* (( (ptr) gf←c99012)+21) ));
SOURCE(47660, 7)
      listA←v31940 = (*  (ptr) realPartsA←v31812 );
SOURCE(47717, 7)
      listB←v31968 = (*  (ptr) realPartsB←v31840 );
SOURCE(47774, 63)
      {
         W2 var←c94692;
         {
            word pd305;
            pd305 = (* (( (ptr) (* (( (ptr) gf←c99012)+214)/* var←c92996 */  ))+15) );
            (void) ( *( (fPt) ((*  (ptr) pd305 ))))((word) (&var←c94692), pd305);
            };
         ptr←v31884 = var←c94692.f1;
         (*  (ptr) union←v31912 ) = var←c94692.f0;
         };
SOURCE(47839, 525)
      lab←L100181: ;
      if ((listA←v31940 != 0)) {
         }
      else {
         goto lab←L100179;
         };
SOURCE(47860, 461)
      if (((*  (ptr) listA←v31940 ) == 0)) {
SOURCE(47886, 98)
         {
            W2 var←c94724;
            {
               word pd306;
               pd306 = (* (( (ptr) (* (( (ptr) gf←c99012)+214)/* var←c92996 */  ))+16) );
               (void) ( *( (fPt) ((*  (ptr) pd306 ))))((word) &var←c94724, (*  (ptr) listB←v31968 ), (*  (ptr) union←v31912 ), ptr←v31884, pd306)
               ;
               };
            ptr←v31884 = var←c94724.f1;
            (*  (ptr) union←v31912 ) = var←c94724.f0;
            };
         }
      else {
SOURCE(47984, 337)
         if (((*  (ptr) listB←v31968 ) == 0)) {
SOURCE(48010, 98)
            {
               W2 var←c94756;
               {
                  word pd307;
                  pd307 = (* (( (ptr) (* (( (ptr) gf←c99012)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd307 ))))((word) &var←c94756, (*  (ptr) listA←v31940 ), (*  (ptr) union←v31912 ), ptr←v31884, pd307)
                  ;
                  };
               ptr←v31884 = var←c94756.f1;
               (*  (ptr) union←v31912 ) = var←c94756.f0;
               };
            }
         else {
SOURCE(48108, 215)
            {
               word newSeq←v32264;
SOURCE(48110, 73)
               {
                  word pd308;
                  pd308 = (* (( (ptr) (* (( (ptr) gf←c99012)+207)/* var←c91876 */  ))+30) );
                  newSeq←v32264 = (word) ( *( (fPt) ((*  (ptr) pd308 ))))((*  (ptr) listA←v31940 ), (*  (ptr) listB←v31968 ), pd308);
                  };
SOURCE(48185, 136)
               {
                  W2 var←c94820;
                  {
                     word var←c94788;
                     {
                        word pd309;
                        pd309 = (* (( (ptr) (* (( (ptr) gf←c99012)+207)/* var←c91876 */  ))+27) );
                        if ((0 != (word) ( *( (fPt) ((*  (ptr) pd309 ))))(newSeq←v32264, pd309))) {
                           var←c94788 = 0;
                           }
                        else {
                           var←c94788 = newSeq←v32264;
                           };
                        };
                     {
                        W2 var←c0623;
                        {
                           word pd310;
                           pd310 = (* (( (ptr) (* (( (ptr) gf←c99012)+214)/* var←c92996 */  ))+16) );
                           (void) ( *( (fPt) ((*  (ptr) pd310 ))))((word) &var←c0623, var←c94788, (*  (ptr) union←v31912 ), ptr←v31884, pd310);
                           };
                        var←c94820 = var←c0623;
                        };
                     };
                  ptr←v31884 = var←c94820.f1;
                  (*  (ptr) union←v31912 ) = var←c94820.f0;
                  };
               };
            };
         };
SOURCE(48326, 18)
      listA←v31940 = (* (( (ptr) listA←v31940)+1) );
SOURCE(48346, 18)
      listB←v31968 = (* (( (ptr) listB←v31968)+1) );
      goto lab←L100181;
      lab←L100179: ;
SOURCE(48375, 57)
      {
         word pd311;
         pd311 = (* (( (ptr) (* (( (ptr) gf←c99012)+205)/* var←c91620 */  ))+8) );
         aPlusB←v15472 = (word) ( *( (fPt) ((*  (ptr) pd311 ))))((*  (ptr) partsA←v15400 ), union←v31912, pd311);
         };
      };
SOURCE(47101, 1331)
   return(aPlusB←v15472);
   }

static word DifferenceParts←P2820(partsA←v15532, partsB←v15560)
   word partsA←v15532;
   word partsB←v15560;
   {
   register ptr gf←c99044 =  (ptr) &globalframe;
   word aMinusB←v15604;
   word realPartsA←v32308 = 0;
   word realPartsB←v32336 = 0;
   word diff←v32364 = 0;
   word listA←v32392 = 0;
   word listB←v32420 = 0;
   word ptr←v32448 = 0;
   /* DifferenceParts: */ 
SOURCE(48443, 1179)
SOURCE(48443, 1179)
   aMinusB←v15604 = 0;
SOURCE(48715, 79)
   if ((((* (( (ptr) partsA←v15532)+1) ) == 0) || (partsB←v15560 == 0)) || ((* (( (ptr) partsB←v15560)+1) ) == 0)) {
SOURCE(48780, 14)
      return(partsA←v15532);
      };
SOURCE(48796, 33)
   realPartsA←v32308 = XR←Narrow((* (( (ptr) partsA←v15532)+1) ), (* (( (ptr) gf←c99044)+21) ));
SOURCE(48831, 33)
   realPartsB←v32336 = XR←Narrow((* (( (ptr) partsB←v15560)+1) ), (* (( (ptr) gf←c99044)+21) ));
SOURCE(48866, 30)
   listA←v32392 = (*  (ptr) realPartsA←v32308 );
SOURCE(48898, 30)
   listB←v32420 = (*  (ptr) realPartsB←v32336 );
SOURCE(48930, 27)
   diff←v32364 = XR←NewObject(4, (* (( (ptr) gf←c99044)+21) ));
SOURCE(48959, 62)
   {
      W2 var←c94884;
      {
         word pd312;
         pd312 = (* (( (ptr) (* (( (ptr) gf←c99044)+214)/* var←c92996 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd312 ))))((word) (&var←c94884), pd312);
         };
      ptr←v32448 = var←c94884.f1;
      (*  (ptr) diff←v32364 ) = var←c94884.f0;
      };
SOURCE(49023, 531)
   lab←L100184: ;
   if ((listA←v32392 != 0)) {
      }
   else {
      goto lab←L100182;
      };
SOURCE(49044, 467)
   if (((*  (ptr) listA←v32392 ) == 0)) {
SOURCE(49070, 88)
      {
         W2 var←c94916;
         {
            word pd313;
            pd313 = (* (( (ptr) (* (( (ptr) gf←c99044)+214)/* var←c92996 */  ))+16) );
            (void) ( *( (fPt) ((*  (ptr) pd313 ))))((word) &var←c94916, 0, (*  (ptr) diff←v32364 ), ptr←v32448, pd313);
            };
         ptr←v32448 = var←c94916.f1;
         (*  (ptr) diff←v32364 ) = var←c94916.f0;
         };
      }
   else {
SOURCE(49158, 353)
      if ((listB←v32420 == 0) || ((*  (ptr) listB←v32420 ) == 0)) {
SOURCE(49199, 96)
         {
            W2 var←c94948;
            {
               word pd314;
               pd314 = (* (( (ptr) (* (( (ptr) gf←c99044)+214)/* var←c92996 */  ))+16) );
               (void) ( *( (fPt) ((*  (ptr) pd314 ))))((word) &var←c94948, (*  (ptr) listA←v32392 ), (*  (ptr) diff←v32364 ), ptr←v32448, pd314)
               ;
               };
            ptr←v32448 = var←c94948.f1;
            (*  (ptr) diff←v32364 ) = var←c94948.f0;
            };
         }
      else {
SOURCE(49295, 218)
         {
            word newSeq←v32744;
SOURCE(49297, 78)
            {
               word pd315;
               pd315 = (* (( (ptr) (* (( (ptr) gf←c99044)+207)/* var←c91876 */  ))+31) );
               newSeq←v32744 = (word) ( *( (fPt) ((*  (ptr) pd315 ))))((*  (ptr) listA←v32392 ), (*  (ptr) listB←v32420 ), pd315);
               };
SOURCE(49377, 134)
            {
               W2 var←c95012;
               {
                  word var←c94980;
                  {
                     word pd316;
                     pd316 = (* (( (ptr) (* (( (ptr) gf←c99044)+207)/* var←c91876 */  ))+27) );
                     if ((0 != (word) ( *( (fPt) ((*  (ptr) pd316 ))))(newSeq←v32744, pd316))) {
                        var←c94980 = 0;
                        }
                     else {
                        var←c94980 = newSeq←v32744;
                        };
                     };
                  {
                     W2 var←c0642;
                     {
                        word pd317;
                        pd317 = (* (( (ptr) (* (( (ptr) gf←c99044)+214)/* var←c92996 */  ))+16) );
                        (void) ( *( (fPt) ((*  (ptr) pd317 ))))((word) &var←c0642, var←c94980, (*  (ptr) diff←v32364 ), ptr←v32448, pd317);
                        };
                     var←c95012 = var←c0642;
                     };
                  };
               ptr←v32448 = var←c95012.f1;
               (*  (ptr) diff←v32364 ) = var←c95012.f0;
               };
            };
         };
      };
SOURCE(49516, 18)
   listA←v32392 = (* (( (ptr) listA←v32392)+1) );
SOURCE(49536, 18)
   listB←v32420 = (* (( (ptr) listB←v32420)+1) );
   goto lab←L100184;
   lab←L100182: ;
SOURCE(49565, 57)
   {
      word pd318;
      pd318 = (* (( (ptr) (* (( (ptr) gf←c99044)+205)/* var←c91620 */  ))+8) );
      aMinusB←v15604 = (word) ( *( (fPt) ((*  (ptr) pd318 ))))((*  (ptr) partsA←v15532 ), diff←v32364, pd318);
      };
SOURCE(48443, 1179)
   return(aMinusB←v15604);
   }

static void OutlineMovingParts←P2880(formal←c0655, slice←v15664, selectedParts←v15692, editConstraints←v15720, bezierDrag←v15748)
   word formal←c0655;
   word slice←v15664;
   word selectedParts←v15692;
   word editConstraints←v15720;
   W5 bezierDrag←v15748;
   {
   register ptr gf←c99076 =  (ptr) &globalframe;
   word background←v15792;
   word overlay←v15820;
   word rubber←v15848;
   word drag←v15876;
   word outlineData←v32788;
   word filled←v32816;
   /* OutlineMovingParts: */ 
SOURCE(49628, 416)
SOURCE(49628, 416)
   background←v15792 = 0;
SOURCE(49628, 416)
   overlay←v15820 = 0;
SOURCE(49628, 416)
   rubber←v15848 = 0;
SOURCE(49628, 416)
   drag←v15876 = 0;
SOURCE(49841, 45)
   outlineData←v32788 = XR←Narrow((* (( (ptr) slice←v15664)+1) ), (* (( (ptr) gf←c99076)+13) ));
SOURCE(49888, 68)
   filled←v32816 =  (unsigned)  ( ((* (( (ptr) outlineData←v32788)+1) ) != 0) ? 1 : ((* (( (ptr) outlineData←v32788)+2) ) != 0) ) ;
SOURCE(49958, 86)
   {
      W4 var←c95044;
      {
         word pd319;
         pd319 = (* (( (ptr) (* (( (ptr) gf←c99076)+204)/* var←c91588 */  ))+27) );
         (void) ( *( (fPt) ((*  (ptr) pd319 ))))((word) &var←c95044, slice←v15664, selectedParts←v15692, filled←v32816, editConstraints←v15720, bezierDrag←v15748, pd319)
         ;
         };
      background←v15792 = var←c95044.f0;
      overlay←v15820 = var←c95044.f1;
      rubber←v15848 = var←c95044.f2;
      drag←v15876 = var←c95044.f3;
      /* removed tail goto */ 
      };
   (*  (ptr) formal←c0655 ) = background←v15792;
   (* (( (ptr) formal←c0655)+1) ) = overlay←v15820;
   (* (( (ptr) formal←c0655)+2) ) = rubber←v15848;
   (* (( (ptr) formal←c0655)+3) ) = drag←v15876;
   return;
   }

static void MovingParts←P2940(formal←c0723, slice←v15936, selectedParts←v15964, treatAsAUnit←v15992, editConstraints←v16020, bezierDrag←v16048)
   word formal←c0723;
   word slice←v15936;
   word selectedParts←v15964;
   word treatAsAUnit←v15992;
   word editConstraints←v16020;
   W5 bezierDrag←v16048;
   {
   register ptr gf←c99108 =  (ptr) &globalframe;
   word background←v16092;
   word overlay←v16120;
   word rubber←v16148;
   word drag←v16176;
   word outlineData←v32860 = 0;
   word outlineParts←v32888;
   word bkgdParts←v32916 = 0;
   word overParts←v32944 = 0;
   word rubberParts←v32972 = 0;
   word dragParts←v33000 = 0;
   word bkgdSeq←v33028 = 0;
   word overSeq←v33056 = 0;
   word rubberSeq←v33084 = 0;
   word dragSeq←v33112 = 0;
   word bkgdPtr←v33140 = 0;
   word overPtr←v33168 = 0;
   word rubberPtr←v33196 = 0;
   word dragPtr←v33224 = 0;
   word children←v33252 = 0;
   word nullD←v33280;
   word forNow←v33308 = 1;
   /* MovingParts: */ 
SOURCE(50050, 3613)
SOURCE(50050, 3613)
   background←v16092 = 0;
SOURCE(50050, 3613)
   overlay←v16120 = 0;
SOURCE(50050, 3613)
   rubber←v16148 = 0;
SOURCE(50050, 3613)
   drag←v16176 = 0;
SOURCE(50317, 50)
   outlineParts←v32888 = XR←Narrow(selectedParts←v15964, (* (( (ptr) gf←c99108)+21) ));
SOURCE(50572, 45)
   nullD←v33280 = (* (( (ptr) slice←v15936)+11) );
SOURCE(50641, 84)
   if ((0 != (word) IsEmpty←P2520(outlineParts←v32888))) {
SOURCE(50673, 44)
      {
         word var←c95076;
         var←c95076 = nullD←v33280;
         drag←v16176 = nullD←v33280;
         rubber←v16148 = var←c95076;
         overlay←v16120 = var←c95076;
         background←v16092 = var←c95076;
         };
SOURCE(50719, 6)
      goto lab←L100186;
      };
SOURCE(50730, 138)
   if ((0 != (word) IsComplete←P2640(outlineParts←v32888))) {
SOURCE(50765, 37)
      {
         word var←c95108;
         var←c95108 = nullD←v33280;
         rubber←v16148 = nullD←v33280;
         overlay←v16120 = var←c95108;
         background←v16092 = var←c95108;
         };
SOURCE(50804, 56)
      {
         word pd320;
         pd320 = (* (( (ptr) (* (( (ptr) gf←c99108)+205)/* var←c91620 */  ))+8) );
         drag←v16176 = (word) ( *( (fPt) ((*  (ptr) pd320 ))))(slice←v15936, selectedParts←v15964, pd320);
         };
SOURCE(50862, 6)
      goto lab←L100186;
      };
SOURCE(50874, 32)
   bkgdParts←v32916 = XR←NewObject(4, (* (( (ptr) gf←c99108)+21) ));
SOURCE(50908, 32)
   overParts←v32944 = XR←NewObject(4, (* (( (ptr) gf←c99108)+21) ));
SOURCE(50942, 34)
   rubberParts←v32972 = XR←NewObject(4, (* (( (ptr) gf←c99108)+21) ));
SOURCE(50978, 32)
   dragParts←v33000 = XR←NewObject(4, (* (( (ptr) gf←c99108)+21) ));
SOURCE(51013, 71)
   {
      W2 var←c95268;
      {
         word pd321;
         pd321 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd321 ))))((word) (&var←c95268), pd321);
         };
      bkgdPtr←v33140 = var←c95268.f1;
      (*  (ptr) bkgdParts←v32916 ) = var←c95268.f0;
      };
SOURCE(51086, 71)
   {
      W2 var←c95300;
      {
         word pd322;
         pd322 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd322 ))))((word) (&var←c95300), pd322);
         };
      overPtr←v33168 = var←c95300.f1;
      (*  (ptr) overParts←v32944 ) = var←c95300.f0;
      };
SOURCE(51159, 75)
   {
      W2 var←c95332;
      {
         word pd323;
         pd323 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd323 ))))((word) (&var←c95332), pd323);
         };
      rubberPtr←v33196 = var←c95332.f1;
      (*  (ptr) rubberParts←v32972 ) = var←c95332.f0;
      };
SOURCE(51236, 71)
   {
      W2 var←c95364;
      {
         word pd324;
         pd324 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd324 ))))((word) (&var←c95364), pd324);
         };
      dragPtr←v33224 = var←c95364.f1;
      (*  (ptr) dragParts←v33000 ) = var←c95364.f0;
      };
SOURCE(51310, 32)
   outlineData←v32860 = XR←Narrow((* (( (ptr) slice←v15936)+1) ), (* (( (ptr) gf←c99108)+13) ));
SOURCE(51344, 31)
   children←v33252 = (* (( (ptr) outlineData←v32860)+4) );
SOURCE(51377, 2048)
   {
      register word list←v33520;
      list←v33520 = (*  (ptr) outlineParts←v32888 );
      lab←L100190: ;
      if ((list←v33520 != 0)) {
         }
      else {
         goto lab←L100187;
         };
SOURCE(51469, 1924)
      if (((*  (ptr) list←v33520 ) == 0)) {
SOURCE(51496, 108)
         {
            W2 var←c95396;
            {
               word pd325;
               pd325 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
               (void) ( *( (fPt) ((*  (ptr) pd325 ))))((word) &var←c95396, 0, (*  (ptr) rubberParts←v32972 ), rubberPtr←v33196, pd325);
               };
            rubberPtr←v33196 = var←c95396.f1;
            (*  (ptr) rubberParts←v32972 ) = var←c95396.f0;
            };
SOURCE(51606, 100)
         {
            W2 var←c95428;
            {
               word pd326;
               pd326 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
               (void) ( *( (fPt) ((*  (ptr) pd326 ))))((word) &var←c95428, 0, (*  (ptr) dragParts←v33000 ), dragPtr←v33224, pd326);
               };
            dragPtr←v33224 = var←c95428.f1;
            (*  (ptr) dragParts←v33000 ) = var←c95428.f0;
            };
SOURCE(51708, 610)
         if ((0 != treatAsAUnit←v15992)) {
SOURCE(51731, 57)
            {
               word pd327;
               pd327 = (* (( (ptr) (* (( (ptr) gf←c99108)+207)/* var←c91876 */  ))+29) );
               overSeq←v33056 = (word) ( *( (fPt) ((*  (ptr) pd327 ))))((*  (ptr) children←v33252 ), 0, 6, pd327);
               };
SOURCE(51813, 104)
            {
               W2 var←c95460;
               {
                  word pd328;
                  pd328 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd328 ))))((word) &var←c95460, overSeq←v33056, (*  (ptr) overParts←v32944 ), overPtr←v33168, pd328)
                  ;
                  };
               overPtr←v33168 = var←c95460.f1;
               (*  (ptr) overParts←v32944 ) = var←c95460.f0;
               };
SOURCE(51919, 100)
            {
               W2 var←c95492;
               {
                  word pd329;
                  pd329 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd329 ))))((word) &var←c95492, 0, (*  (ptr) bkgdParts←v32916 ), bkgdPtr←v33140, pd329);
                  };
               bkgdPtr←v33140 = var←c95492.f1;
               (*  (ptr) bkgdParts←v32916 ) = var←c95492.f0;
               };
            }
         else {
SOURCE(52030, 57)
            {
               word pd330;
               pd330 = (* (( (ptr) (* (( (ptr) gf←c99108)+207)/* var←c91876 */  ))+29) );
               bkgdSeq←v33028 = (word) ( *( (fPt) ((*  (ptr) pd330 ))))((*  (ptr) children←v33252 ), 0, 6, pd330);
               };
SOURCE(52112, 104)
            {
               W2 var←c95524;
               {
                  word pd331;
                  pd331 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd331 ))))((word) &var←c95524, bkgdSeq←v33028, (*  (ptr) bkgdParts←v32916 ), bkgdPtr←v33140, pd331)
                  ;
                  };
               bkgdPtr←v33140 = var←c95524.f1;
               (*  (ptr) bkgdParts←v32916 ) = var←c95524.f0;
               };
SOURCE(52218, 100)
            {
               W2 var←c95556;
               {
                  word pd332;
                  pd332 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd332 ))))((word) &var←c95556, 0, (*  (ptr) overParts←v32944 ), overPtr←v33168, pd332);
                  };
               overPtr←v33168 = var←c95556.f1;
               (*  (ptr) overParts←v32944 ) = var←c95556.f0;
               };
            };
         }
      else {
SOURCE(52332, 128)
         {
            W4 var←c95588;
            {
               word pd333;
               pd333 = (* (( (ptr) (* (( (ptr) gf←c99108)+207)/* var←c91876 */  ))+32) );
               (void) ( *( (fPt) ((*  (ptr) pd333 ))))((word) &var←c95588, (*  (ptr) (*  (ptr) list←v33520 ) ), (* (( (ptr) (*  (ptr) list←v33520 ))+1)
                   ), editConstraints←v16020, bezierDrag←v16048, pd333);
               };
            dragSeq←v33112 = var←c95588.f3;
            rubberSeq←v33084 = var←c95588.f2;
            overSeq←v33056 = var←c95588.f1;
            bkgdSeq←v33028 = var←c95588.f0;
            };
SOURCE(52493, 900)
         if (((0 != treatAsAUnit←v15992) || (0 != forNow←v33308))) {
SOURCE(52526, 100)
            {
               W2 var←c95620;
               {
                  word pd334;
                  pd334 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd334 ))))((word) &var←c95620, 0, (*  (ptr) bkgdParts←v32916 ), bkgdPtr←v33140, pd334);
                  };
               bkgdPtr←v33140 = var←c95620.f1;
               (*  (ptr) bkgdParts←v32916 ) = var←c95620.f0;
               };
SOURCE(52628, 104)
            {
               W2 var←c95652;
               {
                  word pd335;
                  pd335 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd335 ))))((word) &var←c95652, overSeq←v33056, (*  (ptr) overParts←v32944 ), overPtr←v33168, pd335)
                  ;
                  };
               overPtr←v33168 = var←c95652.f1;
               (*  (ptr) overParts←v32944 ) = var←c95652.f0;
               };
SOURCE(52734, 114)
            {
               W2 var←c95684;
               {
                  word pd336;
                  pd336 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd336 ))))((word) &var←c95684, rubberSeq←v33084, (*  (ptr) rubberParts←v32972 ), rubberPtr←v33196, pd336)
                  ;
                  };
               rubberPtr←v33196 = var←c95684.f1;
               (*  (ptr) rubberParts←v32972 ) = var←c95684.f0;
               };
SOURCE(52850, 104)
            {
               W2 var←c95716;
               {
                  word pd337;
                  pd337 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd337 ))))((word) &var←c95716, dragSeq←v33112, (*  (ptr) dragParts←v33000 ), dragPtr←v33224, pd337)
                  ;
                  };
               dragPtr←v33224 = var←c95716.f1;
               (*  (ptr) dragParts←v33000 ) = var←c95716.f0;
               };
            }
         else {
SOURCE(52965, 104)
            {
               W2 var←c95748;
               {
                  word pd338;
                  pd338 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd338 ))))((word) &var←c95748, overSeq←v33056, (*  (ptr) bkgdParts←v32916 ), bkgdPtr←v33140, pd338)
                  ;
                  };
               bkgdPtr←v33140 = var←c95748.f1;
               (*  (ptr) bkgdParts←v32916 ) = var←c95748.f0;
               };
SOURCE(53071, 100)
            {
               W2 var←c95780;
               {
                  word pd339;
                  pd339 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd339 ))))((word) &var←c95780, 0, (*  (ptr) overParts←v32944 ), overPtr←v33168, pd339);
                  };
               overPtr←v33168 = var←c95780.f1;
               (*  (ptr) overParts←v32944 ) = var←c95780.f0;
               };
SOURCE(53173, 114)
            {
               W2 var←c95812;
               {
                  word pd340;
                  pd340 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd340 ))))((word) &var←c95812, rubberSeq←v33084, (*  (ptr) rubberParts←v32972 ), rubberPtr←v33196, pd340)
                  ;
                  };
               rubberPtr←v33196 = var←c95812.f1;
               (*  (ptr) rubberParts←v32972 ) = var←c95812.f0;
               };
SOURCE(53289, 104)
            {
               W2 var←c95844;
               {
                  word pd341;
                  pd341 = (* (( (ptr) (* (( (ptr) gf←c99108)+214)/* var←c92996 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd341 ))))((word) &var←c95844, dragSeq←v33112, (*  (ptr) dragParts←v33000 ), dragPtr←v33224, pd341)
                  ;
                  };
               dragPtr←v33224 = var←c95844.f1;
               (*  (ptr) dragParts←v33000 ) = var←c95844.f0;
               };
            };
         };
SOURCE(53401, 24)
      children←v33252 = (* (( (ptr) children←v33252)+1) );
      list←v33520 = (* (( (ptr) list←v33520)+1) );
      goto lab←L100190;
      lab←L100187: ;
      };
SOURCE(53436, 58)
   {
      word pd342;
      pd342 = (* (( (ptr) (* (( (ptr) gf←c99108)+205)/* var←c91620 */  ))+8) );
      background←v16092 = (word) ( *( (fPt) ((*  (ptr) pd342 ))))(slice←v15936, bkgdParts←v32916, pd342);
      };
SOURCE(53496, 55)
   {
      word pd343;
      pd343 = (* (( (ptr) (* (( (ptr) gf←c99108)+205)/* var←c91620 */  ))+8) );
      overlay←v16120 = (word) ( *( (fPt) ((*  (ptr) pd343 ))))(slice←v15936, overParts←v32944, pd343);
      };
SOURCE(53553, 56)
   {
      word pd344;
      pd344 = (* (( (ptr) (* (( (ptr) gf←c99108)+205)/* var←c91620 */  ))+8) );
      rubber←v16148 = (word) ( *( (fPt) ((*  (ptr) pd344 ))))(slice←v15936, rubberParts←v32972, pd344);
      };
SOURCE(53611, 52)
   {
      word pd345;
      pd345 = (* (( (ptr) (* (( (ptr) gf←c99108)+205)/* var←c91620 */  ))+8) );
      drag←v16176 = (word) ( *( (fPt) ((*  (ptr) pd345 ))))(slice←v15936, dragParts←v33000, pd345);
      };
   /* removed tail goto */ 
   lab←L100186: ;
   (*  (ptr) formal←c0723 ) = background←v16092;
   (* (( (ptr) formal←c0723)+1) ) = overlay←v16120;
   (* (( (ptr) formal←c0723)+2) ) = rubber←v16148;
   (* (( (ptr) formal←c0723)+3) ) = drag←v16176;
   return;
   }

static word AugmentParts←P3000(sliceD←v16236, selectClass←v16264)
   word sliceD←v16236;
   word selectClass←v16264;
   {
   register ptr gf←c99140 =  (ptr) &globalframe;
   word more←v16308;
   word ptr←v33648 = 0;
   word outlineParts←v33676;
   word newParts←v33704 = 0;
   /* AugmentParts: */ 
SOURCE(53669, 748)
SOURCE(53669, 748)
   more←v16308 = 0;
SOURCE(53816, 49)
   outlineParts←v33676 = XR←Narrow((* (( (ptr) sliceD←v16236)+1) ), (* (( (ptr) gf←c99140)+21) ));
SOURCE(53891, 41)
   if ((outlineParts←v33676 == 0)) {
SOURCE(53918, 14)
      return(sliceD←v16236);
      };
SOURCE(53934, 31)
   newParts←v33704 = XR←NewObject(4, (* (( (ptr) gf←c99140)+21) ));
SOURCE(53967, 66)
   {
      W2 var←c95908;
      {
         word pd346;
         pd346 = (* (( (ptr) (* (( (ptr) gf←c99140)+214)/* var←c92996 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd346 ))))((word) (&var←c95908), pd346);
         };
      ptr←v33648 = var←c95908.f1;
      (*  (ptr) newParts←v33704 ) = var←c95908.f0;
      };
SOURCE(54035, 313)
   {
      register word nextParts←v33832;
      nextParts←v33832 = (*  (ptr) outlineParts←v33676 );
      lab←L100194: ;
      if ((nextParts←v33832 != 0)) {
         }
      else {
         goto lab←L100191;
         };
      {
         word nextPart←v33960;
SOURCE(54140, 43)
         nextPart←v33960 = (*  (ptr) nextParts←v33832 );
SOURCE(54185, 163)
         {
            W2 var←c95972;
            {
               word var←c95940;
               {
                  word pd347;
                  if ((nextPart←v33960 != 0)) {
                     pd347 = (* (( (ptr) (* (( (ptr) gf←c99140)+207)/* var←c91876 */  ))+33) );
                     var←c95940 = (word) ( *( (fPt) ((*  (ptr) pd347 ))))(nextPart←v33960, selectClass←v16264, pd347);
                     }
                  else {
                     var←c95940 = 0;
                     };
                  };
               {
                  W2 var←c0736;
                  {
                     word pd348;
                     pd348 = (* (( (ptr) (* (( (ptr) gf←c99140)+214)/* var←c92996 */  ))+16) );
                     (void) ( *( (fPt) ((*  (ptr) pd348 ))))((word) &var←c0736, var←c95940, (*  (ptr) newParts←v33704 ), ptr←v33648, pd348);
                     };
                  var←c95972 = var←c0736;
                  };
               };
            ptr←v33648 = var←c95972.f1;
            (*  (ptr) newParts←v33704 ) = var←c95972.f0;
            };
         };
      nextParts←v33832 = (* (( (ptr) nextParts←v33832)+1) );
      goto lab←L100194;
      lab←L100191: ;
      };
SOURCE(54359, 58)
   {
      word pd349;
      pd349 = (* (( (ptr) (* (( (ptr) gf←c99140)+205)/* var←c91620 */  ))+8) );
      more←v16308 = (word) ( *( (fPt) ((*  (ptr) pd349 ))))((*  (ptr) sliceD←v16236 ), newParts←v33704, pd349);
      };
SOURCE(53669, 748)
   return(more←v16308);
   }

static word AlterParts←P3060(sliceD←v16368, action←v16396)
   word sliceD←v16368;
   word action←v16396;
   {
   register ptr gf←c99172 =  (ptr) &globalframe;
   word alteredD←v16440;
   word outlineParts←v34004;
   word outlineData←v34032;
   word newParts←v34060;
   word childD←v34088;
   word child←v34116;
   /* AlterParts: */ 
SOURCE(54423, 1648)
SOURCE(54423, 1648)
   alteredD←v16440 = 0;
SOURCE(54527, 49)
   outlineParts←v34004 = XR←Narrow((* (( (ptr) sliceD←v16368)+1) ), (* (( (ptr) gf←c99172)+21) ));
SOURCE(54578, 52)
   outlineData←v34032 = XR←Narrow((* (( (ptr) (*  (ptr) sliceD←v16368 ))+1) ), (* (( (ptr) gf←c99172)+13) ));
SOURCE(54632, 45)
   newParts←v34060 = XR←NewObject(4, (* (( (ptr) gf←c99172)+21) ));
SOURCE(54679, 88)
   {
      word pd350;
      pd350 = (* (( (ptr) (* (( (ptr) gf←c99172)+204)/* var←c91588 */  ))+78) );
      childD←v34088 = (word) ( *( (fPt) ((*  (ptr) pd350 ))))((*  (ptr) sliceD←v16368 ), (* (( (ptr) sliceD←v16368)+1) ), 0, 0, pd350)
      ;
      };
SOURCE(54769, 27)
   child←v34116 = (*  (ptr) childD←v34088 );
SOURCE(54798, 1273)
SOURCE(54804, 1021)
   {
      word var←c96036;
      var←c96036 = action←v16396;
      if ((var←c96036 == (* (( (ptr) gf←c99172)+61) )) || (var←c96036 == (* (( (ptr) gf←c99172)+62) ))) {
SOURCE(54848, 44)
         if ((0 != (word) IsComplete←P2640(outlineParts←v34004))) {
SOURCE(54881, 11)
            return(0);
            };
SOURCE(54894, 419)
         {
            word pd352;
            pd352 = (* (( (ptr) (* (( (ptr) gf←c99172)+207)/* var←c91876 */  ))+28) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd352 ))))(childD←v34088, pd352))) {
SOURCE(54937, 378)
               {
                  word beforeEnt←v34160 = 0;
                  word ent←v34188 = 0;
                  word afterEnt←v34216 = 0;
SOURCE(54980, 95)
                  {
                     W4 var←c96068;
                     {
                        word pd353;
                        pd353 = (* (( (ptr) (* (( (ptr) gf←c99172)+214)/* var←c92996 */  ))+24) );
                        (void) ( *( (fPt) ((*  (ptr) pd353 ))))((word) &var←c96068, child←v34116, (* (( (ptr) outlineData←v34032)+4) ), pd353);
                        };
                     afterEnt←v34216 = var←c96068.f2;
                     ent←v34188 = var←c96068.f1;
                     beforeEnt←v34160 = var←c96068.f0;
                     };
SOURCE(55077, 236)
                  if ((action←v16396 == (* (( (ptr) gf←c99172)+61) ))) {
SOURCE(55103, 107)
                     {
                        word pd354;
                        if ((afterEnt←v34216 == 0)) {
                           alteredD←v16440 = 0;
                           }
                        else {
                           pd354 = (* (( (ptr) (* (( (ptr) gf←c99172)+204)/* var←c91588 */  ))+83) );
                           alteredD←v16440 = (word) ( *( (fPt) ((*  (ptr) pd354 ))))((*  (ptr) sliceD←v16368 ), (*  (ptr) afterEnt←v34216 ), pd354);
                           };
                        };
                     }
                  else {
SOURCE(55210, 103)
                     {
                        word pd355;
                        if ((beforeEnt←v34160 == 0)) {
                           alteredD←v16440 = 0;
                           }
                        else {
                           pd355 = (* (( (ptr) (* (( (ptr) gf←c99172)+204)/* var←c91588 */  ))+83) );
                           alteredD←v16440 = (word) ( *( (fPt) ((*  (ptr) pd355 ))))((*  (ptr) sliceD←v16368 ), (*  (ptr) beforeEnt←v34160 ), pd355)
                           ;
                           };
                        };
                     };
                  };
               }
            else {
SOURCE(55322, 12)
               goto lab←L100195;
               };
            };
         goto endif0351;
         };
      if ((var←c96036 == (* (( (ptr) gf←c99172)+63) ))) {
SOURCE(55350, 44)
         if ((0 != (word) IsComplete←P2640(outlineParts←v34004))) {
SOURCE(55383, 11)
            return(0);
            };
SOURCE(55396, 105)
         {
            word pd356;
            pd356 = (* (( (ptr) (* (( (ptr) gf←c99172)+207)/* var←c91876 */  ))+28) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd356 ))))(childD←v34088, pd356))) {
SOURCE(55439, 62)
               {
                  word pd357;
                  pd357 = (* (( (ptr) (* (( (ptr) gf←c99172)+207)/* var←c91876 */  ))+29) );
                  alteredD←v16440 = (word) ( *( (fPt) ((*  (ptr) pd357 ))))((*  (ptr) sliceD←v16368 ), 0, 6, pd357);
                  };
               }
            else {
SOURCE(55501, 12)
               goto lab←L100195;
               };
            };
         goto endif0351;
         };
      if ((var←c96036 == (* (( (ptr) gf←c99172)+64) ))) {
SOURCE(55538, 124)
         if ((0 != (word) IsComplete←P2640(outlineParts←v34004))) {
SOURCE(55571, 91)
            {
               word var←c96100;
               var←c96100 = (word) OutlineLastChild←P3180((*  (ptr) (sliceD←v16368) ));
               {
                  word pd358;
                  pd358 = (* (( (ptr) (* (( (ptr) gf←c99172)+204)/* var←c91588 */  ))+83) );
                  alteredD←v16440 = (word) ( *( (fPt) ((*  (ptr) pd358 ))))((*  (ptr) sliceD←v16368 ), var←c96100, pd358);
                  };
               };
            }
         else {
SOURCE(55662, 12)
            goto lab←L100195;
            };
         goto endif0351;
         };
      if ((var←c96036 == (* (( (ptr) gf←c99172)+65) ))) {
SOURCE(55700, 125)
         if ((0 != (word) IsComplete←P2640(outlineParts←v34004))) {
SOURCE(55733, 92)
            {
               word var←c96132;
               var←c96132 = (word) OutlineFirstChild←P3120((*  (ptr) (sliceD←v16368) ));
               {
                  word pd359;
                  pd359 = (* (( (ptr) (* (( (ptr) gf←c99172)+204)/* var←c91588 */  ))+83) );
                  alteredD←v16440 = (word) ( *( (fPt) ((*  (ptr) pd359 ))))((*  (ptr) sliceD←v16368 ), var←c96132, pd359);
                  };
               };
            }
         else {
SOURCE(55825, 12)
            goto lab←L100195;
            };
         goto endif0351;
         };
SOURCE(55853, 5)
      (void) XR←RaiseUnnamedError();
      goto endif0351;
      endif0351: ;
      };
   goto lab←L100196;
   lab←L100195: ;
SOURCE(55877, 191)
   {
      word alteredChildD←v34344;
SOURCE(55879, 70)
      {
         word pd360;
         pd360 = (* (( (ptr) (* (( (ptr) gf←c99172)+207)/* var←c91876 */  ))+34) );
         alteredChildD←v34344 = (word) ( *( (fPt) ((*  (ptr) pd360 ))))(childD←v34088, action←v16396, pd360);
         };
SOURCE(55951, 115)
      {
         word pd361;
         if ((alteredChildD←v34344 == 0)) {
            alteredD←v16440 = 0;
            }
         else {
            pd361 = (* (( (ptr) (* (( (ptr) gf←c99172)+204)/* var←c91588 */  ))+82) );
            alteredD←v16440 = (word) ( *( (fPt) ((*  (ptr) pd361 ))))((*  (ptr) sliceD←v16368 ), alteredChildD←v34344, pd361);
            };
         };
      };
   lab←L100196: ;
SOURCE(54423, 1648)
   return(alteredD←v16440);
   }

static word OutlineFirstChild←P3120(slice←v16500)
   word slice←v16500;
   {
   register ptr gf←c99204 =  (ptr) &globalframe;
   word child←v16544;
   word outlineData←v34388;
   /* OutlineFirstChild: */ 
SOURCE(56080, 147)
SOURCE(56080, 147)
   child←v16544 = 0;
SOURCE(56146, 45)
   outlineData←v34388 = XR←Narrow((* (( (ptr) slice←v16500)+1) ), (* (( (ptr) gf←c99204)+13) ));
SOURCE(56193, 34)
   child←v16544 = (*  (ptr) (* (( (ptr) outlineData←v34388)+4) ) );
SOURCE(56080, 147)
   return(child←v16544);
   }

static word OutlineLastChild←P3180(slice←v16604)
   word slice←v16604;
   {
   register ptr gf←c99236 =  (ptr) &globalframe;
   word child←v16648;
   word outlineData←v34432;
   /* OutlineLastChild: */ 
SOURCE(56233, 208)
SOURCE(56233, 208)
   child←v16648 = 0;
SOURCE(56298, 45)
   outlineData←v34432 = XR←Narrow((* (( (ptr) slice←v16604)+1) ), (* (( (ptr) gf←c99236)+13) ));
SOURCE(56345, 96)
   {
      register word list←v34476;
      list←v34476 = (* (( (ptr) outlineData←v34432)+4) );
      lab←L100200: ;
      if ((list←v34476 != 0)) {
         }
      else {
         goto lab←L100197;
         };
SOURCE(56423, 18)
      child←v16648 = (*  (ptr) list←v34476 );
      list←v34476 = (* (( (ptr) list←v34476)+1) );
      goto lab←L100200;
      lab←L100197: ;
      };
SOURCE(56233, 208)
   return(child←v16648);
   }

static void SetSelectedFields←P3240(sliceD←v16708, selected←v16736, selectClass←v16764)
   word sliceD←v16708;
   word selected←v16736;
   word selectClass←v16764;
   {
   register ptr gf←c99268 =  (ptr) &globalframe;
   word outlineParts←v34604;
   /* SetSelectedFields: */ 
SOURCE(56456, 424)
SOURCE(56562, 49)
   outlineParts←v34604 = XR←Narrow((* (( (ptr) sliceD←v16708)+1) ), (* (( (ptr) gf←c99268)+21) ));
SOURCE(56613, 33)
   if ((outlineParts←v34604 == 0)) {
SOURCE(56640, 6)
      return;
      };
SOURCE(56648, 232)
   {
      register word nextParts←v34648;
      nextParts←v34648 = (*  (ptr) outlineParts←v34604 );
      lab←L100204: ;
      if ((nextParts←v34648 != 0)) {
         }
      else {
         goto lab←L100201;
         };
      {
         word nextPart←v34776;
SOURCE(56753, 43)
         nextPart←v34776 = (*  (ptr) nextParts←v34648 );
SOURCE(56798, 82)
         if ((nextPart←v34776 != 0)) {
SOURCE(56819, 61)
            {
               word pd362;
               pd362 = (* (( (ptr) (* (( (ptr) gf←c99268)+207)/* var←c91876 */  ))+35) );
               (void) ( *( (fPt) ((*  (ptr) pd362 ))))(nextPart←v34776, selected←v16736, selectClass←v16764, pd362);
               };
            };
         };
      nextParts←v34648 = (* (( (ptr) nextParts←v34648)+1) );
      goto lab←L100204;
      lab←L100201: ;
      };
   }

static word PointsInDescriptor←P3300(sliceD←v17328)
   word sliceD←v17328;
   {
   register ptr gf←c99300 =  (ptr) &globalframe;
   word pointGen←v17372;
   word outlineParts←v34820;
   word descriptors←v34848 = 0;
   word childPointGen←v34876 = 0;
   word pointGenData←v34904 = 0;
   /* PointsInDescriptor: */ 
SOURCE(57545, 593)
SOURCE(57545, 593)
   pointGen←v17372 = 0;
SOURCE(57642, 49)
   outlineParts←v34820 = XR←Narrow((* (( (ptr) sliceD←v17328)+1) ), (* (( (ptr) gf←c99300)+21) ));
SOURCE(57796, 74)
   if ((outlineParts←v34820 == 0)) {
      descriptors←v34848 = 0;
      }
   else {
      descriptors←v34848 = (*  (ptr) outlineParts←v34820 );
      };
SOURCE(57872, 126)
   {
      word pd363;
      if ((descriptors←v34848 == 0) || ((*  (ptr) descriptors←v34848 ) == 0)) {
         childPointGen←v34876 = 0;
         }
      else {
         pd363 = (* (( (ptr) (* (( (ptr) gf←c99300)+207)/* var←c91876 */  ))+36) );
         childPointGen←v34876 = (word) ( *( (fPt) ((*  (ptr) pd363 ))))((*  (ptr) (descriptors←v34848) ), pd363);
         };
      };
SOURCE(58000, 72)
   {
      word var←c96164;
      var←c96164 = XR←NewObject(8, (* (( (ptr) gf←c99300)+23) ));
      (*  (ptr) var←c96164 ) = descriptors←v34848;
      (* (( (ptr) var←c96164)+1) ) = childPointGen←v34876;
      pointGenData←v34904 = var←c96164;
      };
SOURCE(58074, 64)
   {
      word var←c96196;
      var←c96196 = XR←NewObject(16, (* (( (ptr) gf←c99300)+22) ));
      (*  (ptr) var←c96196 ) = sliceD←v17328;
      (* (( (ptr) var←c96196)+3) ) = pointGenData←v34904;
      pointGen←v17372 = var←c96196;
      };
SOURCE(57545, 593)
   return(pointGen←v17372);
   }

static void WalkPointsInDescriptor←P3360(sliceD←v17432, walkProc←v17460)
   word sliceD←v17432;
   word walkProc←v17460;
   {
   register ptr gf←c99332 =  (ptr) &globalframe;
   word outlineParts←v35032;
   word descriptors←v35060 = 0;
   /* WalkPointsInDescriptor: */ 
SOURCE(58144, 462)
SOURCE(58235, 49)
   outlineParts←v35032 = XR←Narrow((* (( (ptr) sliceD←v17432)+1) ), (* (( (ptr) gf←c99332)+21) ));
SOURCE(58324, 33)
   if ((outlineParts←v35032 == 0)) {
SOURCE(58351, 6)
      return;
      };
SOURCE(58359, 38)
   descriptors←v35060 = (*  (ptr) outlineParts←v35032 );
SOURCE(58399, 207)
   {
      register word descriptors←v35188;
      descriptors←v35188 = (*  (ptr) outlineParts←v35032 );
      lab←L100208: ;
      if ((descriptors←v35188 != 0)) {
         }
      else {
         goto lab←L100205;
         };
SOURCE(58512, 94)
      if (((*  (ptr) descriptors←v35188 ) != 0)) {
SOURCE(58544, 62)
         {
            word pd364;
            pd364 = (* (( (ptr) (* (( (ptr) gf←c99332)+207)/* var←c91876 */  ))+37) );
            (void) ( *( (fPt) ((*  (ptr) pd364 ))))((*  (ptr) descriptors←v35188 ), walkProc←v17460, pd364);
            };
         };
      descriptors←v35188 = (* (( (ptr) descriptors←v35188)+1) );
      goto lab←L100208;
      lab←L100205: ;
      };
   }

static word PointPairsInDescriptor←P3420(sliceD←v17520)
   word sliceD←v17520;
   {
   register ptr gf←c99364 =  (ptr) &globalframe;
   word pointPairGen←v17564;
   word outlineParts←v35316;
   word descriptors←v35344 = 0;
   word childPointPairGen←v35372 = 0;
   word pointPairGenData←v35400 = 0;
   /* PointPairsInDescriptor: */ 
SOURCE(58621, 666)
SOURCE(58621, 666)
   pointPairGen←v17564 = 0;
SOURCE(58743, 49)
   outlineParts←v35316 = XR←Narrow((* (( (ptr) sliceD←v17520)+1) ), (* (( (ptr) gf←c99364)+21) ));
SOURCE(58913, 74)
   if ((outlineParts←v35316 == 0)) {
      descriptors←v35344 = 0;
      }
   else {
      descriptors←v35344 = (*  (ptr) outlineParts←v35316 );
      };
SOURCE(58989, 134)
   {
      word pd365;
      if ((descriptors←v35344 == 0) || ((*  (ptr) descriptors←v35344 ) == 0)) {
         childPointPairGen←v35372 = 0;
         }
      else {
         pd365 = (* (( (ptr) (* (( (ptr) gf←c99364)+207)/* var←c91876 */  ))+38) );
         childPointPairGen←v35372 = (word) ( *( (fPt) ((*  (ptr) pd365 ))))((*  (ptr) (descriptors←v35344) ), pd365);
         };
      };
SOURCE(59125, 84)
   {
      word var←c96228;
      var←c96228 = XR←NewObject(8, (* (( (ptr) gf←c99364)+20) ));
      (*  (ptr) var←c96228 ) = descriptors←v35344;
      (* (( (ptr) var←c96228)+1) ) = childPointPairGen←v35372;
      pointPairGenData←v35400 = var←c96228;
      };
SOURCE(59211, 76)
   {
      word var←c96260;
      var←c96260 = XR←NewObject(16, (* (( (ptr) gf←c99364)+19) ));
      (*  (ptr) var←c96260 ) = sliceD←v17520;
      (* (( (ptr) var←c96260)+3) ) = pointPairGenData←v35400;
      pointPairGen←v17564 = var←c96260;
      };
SOURCE(58621, 666)
   return(pointPairGen←v17564);
   }

static word SegmentsInDescriptor←P3480(sliceD←v17624)
   word sliceD←v17624;
   {
   register ptr gf←c99396 =  (ptr) &globalframe;
   word segGen←v17668;
   word outlineParts←v35528;
   word descriptors←v35556;
   /* SegmentsInDescriptor: */ 
SOURCE(59293, 705)
SOURCE(59293, 705)
   segGen←v17668 = 0;
SOURCE(59392, 49)
   outlineParts←v35528 = XR←Narrow((* (( (ptr) sliceD←v17624)+1) ), (* (( (ptr) gf←c99396)+21) ));
SOURCE(59443, 13)
   descriptors←v35556 =  ( (outlineParts←v35528 == 0) ? 0 : (*  (ptr) outlineParts←v35528 ) ) ;
SOURCE(59544, 454)
   if ((descriptors←v35556 != 0)) {
SOURCE(59568, 432)
      {
         word segGenData←v35684;
SOURCE(59570, 296)
         {
            word var←c96292;
            word var←c96324;
            {
               word pd366;
               if (((*  (ptr) descriptors←v35556 ) == 0)) {
                  var←c96292 = 0;
                  }
               else {
                  pd366 = (* (( (ptr) (* (( (ptr) gf←c99396)+207)/* var←c91876 */  ))+39) );
                  var←c96292 = (word) ( *( (fPt) ((*  (ptr) pd366 ))))((*  (ptr) (descriptors←v35556) ), pd366);
                  };
               };
            var←c96324 = XR←NewObject(8, (* (( (ptr) gf←c99396)+12) ));
            (*  (ptr) var←c96324 ) = descriptors←v35556;
            (* (( (ptr) var←c96324)+1) ) = var←c96292;
            segGenData←v35684 = var←c96324;
            };
SOURCE(59868, 130)
         {
            word var←c96356;
            var←c96356 = XR←NewObject(32, (* (( (ptr) gf←c99396)+10) ));
            (* (( (ptr) var←c96356)+1) ) = 9999;
            (* (( (ptr) var←c96356)+6) ) = sliceD←v17624;
            (* (( (ptr) var←c96356)+7) ) = segGenData←v35684;
            segGen←v17668 = var←c96356;
            };
         };
      };
SOURCE(59293, 705)
   return(segGen←v17668);
   }

static void NextSegment←P3540(formal←c0804, slice←v17728, segGen←v17756)
   word formal←c0804;
   word slice←v17728;
   word segGen←v17756;
   {
   register ptr gf←c99428 =  (ptr) &globalframe;
   word seg←v17800;
   word transform←v17828;
   word segGenData←v35728;
   word descriptors←v35756;
   /* NextSegment: */ 
SOURCE(60007, 814)
SOURCE(60007, 814)
   seg←v17800 = 0;
SOURCE(60007, 814)
   transform←v17828 = 0;
SOURCE(60148, 63)
   segGenData←v35728 = XR←Narrow((* (( (ptr) segGen←v17756)+7) ), (* (( (ptr) gf←c99428)+12) ));
SOURCE(60213, 13)
   descriptors←v35756 = (*  (ptr) segGenData←v35728 );
SOURCE(60271, 25)
   if (((* (( (ptr) segGen←v17756)+1) ) != 9999)) {
SOURCE(60296, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(60320, 501)
   lab←L100212: ;
SOURCE(60334, 250)
   if (((*  (ptr) descriptors←v35756 ) != 0)) {
SOURCE(60405, 85)
      {
         W2 var←c96388;
         {
            word pd367;
            pd367 = (* (( (ptr) (* (( (ptr) gf←c99428)+207)/* var←c91876 */  ))+43) );
            (void) ( *( (fPt) ((*  (ptr) pd367 ))))((word) &var←c96388, (*  (ptr) (*  (ptr) descriptors←v35756 ) ), (* (( (ptr) segGenData←v35728)+1)
                ), pd367);
            };
         transform←v17828 = var←c96388.f1;
         seg←v17800 = var←c96388.f0;
         };
SOURCE(60492, 57)
      if ((seg←v17800 != 0)) {
SOURCE(60510, 31)
         (*  (ptr) segGenData←v35728 ) = descriptors←v35756;
SOURCE(60543, 6)
         goto lab←L100209;
         };
SOURCE(60554, 30)
      descriptors←v35756 = (* (( (ptr) descriptors←v35756)+1) );
      };
SOURCE(60613, 92)
   lab←L100215: ;
   if ( ( (descriptors←v35756 != 0) ? ((*  (ptr) descriptors←v35756 ) == 0) : 0 ) ) {
      }
   else {
      goto lab←L100213;
      };
SOURCE(60667, 38)
   descriptors←v35756 = (* (( (ptr) descriptors←v35756)+1) );
   goto lab←L100215;
   lab←L100213: ;
SOURCE(60707, 42)
   if ((descriptors←v35756 == 0)) {
SOURCE(60733, 16)
      seg←v17800 = 0;
      transform←v17828 = 0;
      goto lab←L100209;
      };
SOURCE(60751, 70)
   {
      word pd368;
      pd368 = (* (( (ptr) (* (( (ptr) gf←c99428)+207)/* var←c91876 */  ))+39) );
      (* (( (ptr) segGenData←v35728)+1) ) = (word) ( *( (fPt) ((*  (ptr) pd368 ))))((*  (ptr) (descriptors←v35756) ), pd368);
      };
   goto lab←L100212;
   /* c2c skipped dead code */ 
   lab←L100209: ;
   (*  (ptr) formal←c0804 ) = seg←v17800;
   (* (( (ptr) formal←c0804)+1) ) = transform←v17828;
   return;
   }

static word WalkSegments←P3600(slice←v17888, walkProc←v17916)
   word slice←v17888;
   word walkProc←v17916;
   {
   register ptr gf←c99460 =  (ptr) &globalframe;
   word sliceD←v17960;
   word ptr←v35884 = 0;
   word outlineData←v35912;
   word newParts←v35940;
   /* WalkSegments: */ 
SOURCE(60861, 635)
SOURCE(60861, 635)
   sliceD←v17960 = 0;
SOURCE(60990, 45)
   outlineData←v35912 = XR←Narrow((* (( (ptr) slice←v17888)+1) ), (* (( (ptr) gf←c99460)+13) ));
SOURCE(61037, 45)
   newParts←v35940 = XR←NewObject(4, (* (( (ptr) gf←c99460)+21) ));
SOURCE(61084, 66)
   {
      W2 var←c96452;
      {
         word pd369;
         pd369 = (* (( (ptr) (* (( (ptr) gf←c99460)+214)/* var←c92996 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd369 ))))((word) (&var←c96452), pd369);
         };
      ptr←v35884 = var←c96452.f1;
      (*  (ptr) newParts←v35940 ) = var←c96452.f0;
      };
SOURCE(61152, 280)
   {
      register word children←v36068;
      children←v36068 = (* (( (ptr) outlineData←v35912)+4) );
      lab←L100219: ;
      if ((children←v36068 != 0)) {
         }
      else {
         goto lab←L100216;
         };
      {
         word child←v36196;
         word childD←v36224;
SOURCE(61240, 29)
         child←v36196 = (*  (ptr) children←v36068 );
SOURCE(61271, 66)
         {
            word pd370;
            pd370 = (* (( (ptr) (* (( (ptr) gf←c99460)+207)/* var←c91876 */  ))+40) );
            childD←v36224 = (word) ( *( (fPt) ((*  (ptr) pd370 ))))(child←v36196, walkProc←v17916, pd370);
            };
SOURCE(61339, 93)
         {
            W2 var←c96484;
            {
               word pd371;
               pd371 = (* (( (ptr) (* (( (ptr) gf←c99460)+214)/* var←c92996 */  ))+16) );
               (void) ( *( (fPt) ((*  (ptr) pd371 ))))((word) &var←c96484, childD←v36224, (*  (ptr) newParts←v35940 ), ptr←v35884, pd371)
               ;
               };
            ptr←v35884 = var←c96484.f1;
            (*  (ptr) newParts←v35940 ) = var←c96484.f0;
            };
         };
      children←v36068 = (* (( (ptr) children←v36068)+1) );
      goto lab←L100219;
      lab←L100216: ;
      };
SOURCE(61443, 53)
   {
      word pd372;
      pd372 = (* (( (ptr) (* (( (ptr) gf←c99460)+205)/* var←c91620 */  ))+8) );
      sliceD←v17960 = (word) ( *( (fPt) ((*  (ptr) pd372 ))))(slice←v17888, newParts←v35940, pd372);
      };
SOURCE(60861, 635)
   return(sliceD←v17960);
   }

static void NextPoint←P3660(formal←c0824, slice←v18020, pointGen←v18048)
   word formal←c0824;
   word slice←v18020;
   word pointGen←v18048;
   {
   register ptr gf←c99492 =  (ptr) &globalframe;
   W3 pointAndDone←v18092;
   word pgd←v36268;
   word descriptors←v36296;
   /* NextPoint: */ 
SOURCE(61502, 773)
SOURCE(61620, 56)
   pgd←v36268 = XR←Narrow((* (( (ptr) pointGen←v18048)+3) ), (* (( (ptr) gf←c99492)+23) ));
SOURCE(61678, 13)
   descriptors←v36296 = (*  (ptr) pgd←v36268 );
SOURCE(61729, 47)
   if ((descriptors←v36296 == 0)) {
SOURCE(61755, 21)
      pointAndDone←v18092.f0 = (*  (ptr) &fc373 );
      pointAndDone←v18092.f1 = (*  (ptr) &fc373 );
      pointAndDone←v18092.f2 = 1;
      goto lab←L100220;
      };
SOURCE(61778, 497)
   lab←L100223: ;
SOURCE(61792, 248)
   if (((*  (ptr) descriptors←v36296 ) != 0)) {
SOURCE(61865, 74)
      {
         word pd374;
         pd374 = (* (( (ptr) (* (( (ptr) gf←c99492)+207)/* var←c91876 */  ))+41) );
         (void) ( *( (fPt) ((*  (ptr) pd374 ))))((word) &pointAndDone←v18092, (*  (ptr) (*  (ptr) descriptors←v36296 ) ), (* (( (ptr) pgd←v36268)+1)
             ), pd374);
         };
SOURCE(61941, 64)
      if ((0 == pointAndDone←v18092.f2)) {
SOURCE(61973, 24)
         (*  (ptr) pgd←v36268 ) = descriptors←v36296;
SOURCE(61999, 6)
         goto lab←L100220;
         };
SOURCE(62010, 30)
      descriptors←v36296 = (* (( (ptr) descriptors←v36296)+1) );
      };
SOURCE(62069, 92)
   lab←L100226: ;
   if ( ( (descriptors←v36296 != 0) ? ((*  (ptr) descriptors←v36296 ) == 0) : 0 ) ) {
      }
   else {
      goto lab←L100224;
      };
SOURCE(62123, 38)
   descriptors←v36296 = (* (( (ptr) descriptors←v36296)+1) );
   goto lab←L100226;
   lab←L100224: ;
SOURCE(62163, 47)
   if ((descriptors←v36296 == 0)) {
SOURCE(62189, 21)
      pointAndDone←v18092.f0 = (*  (ptr) &fc373 );
      pointAndDone←v18092.f1 = (*  (ptr) &fc373 );
      pointAndDone←v18092.f2 = 1;
      goto lab←L100220;
      };
SOURCE(62212, 63)
   {
      word pd375;
      pd375 = (* (( (ptr) (* (( (ptr) gf←c99492)+207)/* var←c91876 */  ))+36) );
      (* (( (ptr) pgd←v36268)+1) ) = (word) ( *( (fPt) ((*  (ptr) pd375 ))))((*  (ptr) (descriptors←v36296) ), pd375);
      };
   goto lab←L100223;
   /* c2c skipped dead code */ 
   lab←L100220: ;
   (*  (W3Pt) formal←c0824 ) = pointAndDone←v18092;
   return;
   }

static void NextPointPair←P3720(formal←c0831, slice←v18152, pointPairGen←v18180)
   word formal←c0831;
   word slice←v18152;
   word pointPairGen←v18180;
   {
   register ptr gf←c99524 =  (ptr) &globalframe;
   W5 pointPairAndDone←v18224;
   word pgd←v36424;
   word descriptors←v36452;
   /* NextPointPair: */ 
SOURCE(62317, 817)
SOURCE(62442, 64)
   pgd←v36424 = XR←Narrow((* (( (ptr) pointPairGen←v18180)+3) ), (* (( (ptr) gf←c99524)+20) ));
SOURCE(62508, 13)
   descriptors←v36452 = (*  (ptr) pgd←v36424 );
SOURCE(62559, 54)
   if ((descriptors←v36452 == 0)) {
SOURCE(62585, 28)
      pointPairAndDone←v18224.f0 = (*  (ptr) &fc373 );
      pointPairAndDone←v18224.f1 = (*  (ptr) &fc373 );
      pointPairAndDone←v18224.f2 = (*  (ptr) &fc373 );
      pointPairAndDone←v18224.f3 = (*  (ptr) &fc373 );
      pointPairAndDone←v18224.f4 = 1;
      goto lab←L100227;
      };
SOURCE(62615, 519)
   lab←L100230: ;
SOURCE(62629, 259)
   if (((*  (ptr) descriptors←v36452 ) != 0)) {
SOURCE(62701, 82)
      {
         word pd376;
         pd376 = (* (( (ptr) (* (( (ptr) gf←c99524)+207)/* var←c91876 */  ))+42) );
         (void) ( *( (fPt) ((*  (ptr) pd376 ))))((word) &pointPairAndDone←v18224, (*  (ptr) (*  (ptr) descriptors←v36452 ) ), (* (
               ( (ptr) pgd←v36424)+1) ), pd376);
         };
SOURCE(62785, 68)
      if ((0 == pointPairAndDone←v18224.f4)) {
SOURCE(62821, 24)
         (*  (ptr) pgd←v36424 ) = descriptors←v36452;
SOURCE(62847, 6)
         goto lab←L100227;
         };
SOURCE(62858, 30)
      descriptors←v36452 = (* (( (ptr) descriptors←v36452)+1) );
      };
SOURCE(62917, 92)
   lab←L100233: ;
   if ( ( (descriptors←v36452 != 0) ? ((*  (ptr) descriptors←v36452 ) == 0) : 0 ) ) {
      }
   else {
      goto lab←L100231;
      };
SOURCE(62971, 38)
   descriptors←v36452 = (* (( (ptr) descriptors←v36452)+1) );
   goto lab←L100233;
   lab←L100231: ;
SOURCE(63011, 54)
   if ((descriptors←v36452 == 0)) {
SOURCE(63037, 28)
      pointPairAndDone←v18224.f0 = (*  (ptr) &fc373 );
      pointPairAndDone←v18224.f1 = (*  (ptr) &fc373 );
      pointPairAndDone←v18224.f2 = (*  (ptr) &fc373 );
      pointPairAndDone←v18224.f3 = (*  (ptr) &fc373 );
      pointPairAndDone←v18224.f4 = 1;
      goto lab←L100227;
      };
SOURCE(63067, 67)
   {
      word pd377;
      pd377 = (* (( (ptr) (* (( (ptr) gf←c99524)+207)/* var←c91876 */  ))+38) );
      (* (( (ptr) pgd←v36424)+1) ) = (word) ( *( (fPt) ((*  (ptr) pd377 ))))((*  (ptr) (descriptors←v36452) ), pd377);
      };
   goto lab←L100230;
   /* c2c skipped dead code */ 
   lab←L100227: ;
   (*  (W5Pt) formal←c0831 ) = pointPairAndDone←v18224;
   return;
   }

static void NoName←Q8532(formal←c0840, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0840;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0925 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0925)+210)/* var←c92452 */  ))+5) ))) {
      {
         word ec←v86228;
         word stream←v86256;
         word details←v86284;
         word msg←v86312;
         ec←v86228 = (*  (ptr) formal←c200003 );
         stream←v86256 = (* (( (ptr) formal←c200003)+1) );
         details←v86284 = (* (( (ptr) formal←c200003)+2) );
         msg←v86312 = (* (( (ptr) formal←c200003)+3) );
SOURCE(44527, 23)
         (* (( (ptr) formal←c200000)+5) ) = (* (( (ptr) gf←c0925)+55) );
SOURCE(44552, 9)
         (*  (ptr) formal←c0840 ) = 2;
         (* (( (ptr) formal←c0840)+1) ) = 2;
         return;
         };
      };
   (*  (ptr) formal←c0840 ) = 0;
   (* (( (ptr) formal←c0840)+1) ) = 0;
   return;
   }

/* file: GGOutlineImplA, module: GGOutlineImplA, compiled at: July 11, 1993 8:17:03 pm PDT */ 
extern void XR←install←GGOutlineImplA() {
   NoName←Q8412();
   }
extern void XR←run←GGOutlineImplA() { XR←Start(&globalframe); }