/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 11, 1993 8:04:43 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGUtilityImplA, module: GGUtilityImplA */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [4096598413,2730533387] GGUtilityImplA";
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 struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W2 r;} W10;
typedef W2 *W2Pt;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc110 = 360.0;
static float fc112 = -90.0;
static float fc115 = 2.0;
static float fc139 = 0.5;
static float fc170 = 1.0;
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static float fc222 = 512.0;
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
static float fc229 = 72.0;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc248 = 1.0E-3;
static float fc267 = 9207.29;
static void NoName←Q4476();
static void GGUtilityImplA←P0();
static void StartFeatureDataList←P60();
static void AddFeatureData←P120();
static word CopyFeatureDataList←P180();
static word FeatureDataNconc←P240();
static void StartSequenceList←P300();
static void AddSequence←P360();
static word AppendSequenceList←P420();
static word DeleteSequenceFromList←P480();
static void FindSequenceAndNeighbors←P540();
static void StartSliceDescriptorList←P600();
static void AddSliceDescriptor←P660();
static word AppendSliceDescriptorList←P720();
static word DeleteSliceDescriptorFromList←P780();
static void FindSliceDescriptorAndNeighbors←P840();
static word CopySliceDescriptorList←P900();
static word AllFalse←P960();
static word AllTrue←P1020();
static word CopyPattern←P1080();
static word EquivalentPatterns←P1140();
static void HSVFromColor←P1200();
static word ChangeHue←P1260();
static word ColorToRope←P1320();
static word ColorFromRope←P1380();
static word ColorToRGBRope←P1440();
static word NoName←Q4536();
static word ColorToCMYKRope←P1500();
static word NoName←Q4596();
static word ColorToIntensityRope←P1560();
static word NoName←Q4656();
static word ColorToNameRope←P1620();
static word NoName←Q4716();
static word PolygonInCircle←P1680();
static word Box←P1740();
static word Circle←P1800();
static word KnotchedLine←P1860();
static word DescribeTraj←P1920();
static word DescribeJoint←P1980();
static word DescribeControlPoint←P2040();
static word DescribeSegment←P2100();
static word DescribeInterior←P2160();
static word DescribeSequence←P2220();
static word DescribeColor←P2280();
static word SpecialColorAsRGBAndNameRope←P2340();
static word ColorAsRGBAndNameRope←P2400();
static word ColorAsCMYKAndNameRope←P2460();
static word ColorAsIntensityAndNameRope←P2520();
static word ScalarButtonValuesToRope←P2580();
static void ScalarButtonValuesFromRope←P2640();
static word FactoredTransformationToRope←P2700();
static word FactoredTransformationFromRope←P2760();
static word Create←P2820();
static void Insert←P2880();
static word Lookup←P2940();
static word FindRadius←P4296();
static void Remove←P3000();
static word FindRadius←P4356();
static void RemoveAll←P3060();
static void DrawCachedCircle←P3120();
static void DoDrawCachedCircle←P4416();
static void Init←P3180();
static void NoName←Q4776();
static void NoName←Q4836();
static void NoName←Q4896();
static void NoName←Q4956();
static struct {unsigned f; char r[48];} string1 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\247\365\203\234\300\047\265\225\046\107\270\005\004\162\145\163\164\214\216\257\300\247\365\203\234\300\047\265\225\046\107\270\261\000\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\003\000"};
static struct {unsigned f; char r[48];} string3 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\247\365\203\234\300\047\265\225\046\100\310\005\004\162\145\163\164\214\216\257\300\247\365\203\234\300\047\265\225\046\100\310\261\000\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\371\314\343\307\300\031\056\017\130\100\310\000\000"};
static struct {unsigned f; char r[16];} string5 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string6 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\346\140\152\135\300\203\202\276\373\100\164\000\000"};
static struct {unsigned f; char r[4];} string8 = {65540, "\256\000\000"};
static struct {unsigned f; char r[44];} string9 = {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];} string10 = {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];} string11 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\106\354\000\000"};
static struct {unsigned f; char r[8];} string12 = {262148, "\004\200@\034\000\000\000"};
static struct {unsigned f; char r[4];} string13 = {131076, "\216\251\000"};
static struct {unsigned f; char r[24];} string14 = {1310744, "Couldn't add segment\000\000\000"};
static struct {unsigned f; char r[8];} string15 = {262152, "none\000\000\000"};
static struct {unsigned f; char r[4];} string16 = {196612, "Set"};
static struct {unsigned f; char r[16];} string17 = {983056, "Intensity: none"};
static struct {unsigned f; char r[20];} string18 = {1048596, "Intensity: %1.3f\000\000\000"};
static struct {unsigned f; char r[32];} string19 = {1835040, "a %g-segment open trajectory\000\000\000"};
static struct {unsigned f; char r[20];} string20 = {1179668, "a %g-segment fence\000"};
static struct {unsigned f; char r[20];} string21 = {1114132, "a %g-segment hole\000\000"};
static struct {unsigned f; char r[4];} string22 = {4, "\000\000\000"};
static struct {unsigned f; char r[20];} string23 = {1048596, "end joint %g on \000\000\000"};
static struct {unsigned f; char r[16];} string24 = {786448, "joint %g on \000\000\000"};
static struct {unsigned f; char r[24];} string25 = {1310744, "control point %g on \000\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "a segment on \000\000"};
static struct {unsigned f; char r[16];} string27 = {983056, " segment %g on "};
static struct {unsigned f; char r[20];} string28 = {1048596, "The interior of \000\000\000"};
static struct {unsigned f; char r[24];} string29 = {1376280, "one or more parts of \000\000"};
static struct {unsigned f; char r[40];} string30 = {2555944, "an unknown constant color operator type"};
static struct {unsigned f; char r[12];} string31 = {655372, "CMYK: none\000"};
static struct {unsigned f; char r[32];} string32 = {1966112, "an unknown constant color type\000"};
static struct {unsigned f; char r[16];} string33 = {983056, "a sampled black"};
static struct {unsigned f; char r[16];} string34 = {983056, "a sampled color"};
static struct {unsigned f; char r[24];} string35 = {1376280, "an unknown color type\000\000"};
static struct {unsigned f; char r[20];} string36 = {1179668, "%g  Name: %g %g %g\000"};
static struct {unsigned f; char r[32];} string37 = {1900576, "CMYK: %1.3f %1.3f %1.3f %1.3f\000\000"};
static struct {unsigned f; char r[20];} string38 = {1179668, "No equivalent RGB \000"};
static struct {unsigned f; char r[8];} string39 = {262152, "None\000\000\000"};
static struct {unsigned f; char r[20];} string40 = {1245204, "%g  CNS: %g  %g  %g"};
static struct {unsigned f; char r[12];} string41 = {589836, "RGB: none\000\000"};
static struct {unsigned f; char r[24];} string42 = {1441816, "RGB: %1.3f %1.3f %1.3f\000"};
static struct {unsigned f; char r[12];} string43 = {524300, "GGCircle\000\000\000"};
static struct {unsigned f; char r[12];} string44 = {524300, "Gargoyle\000\000\000"};
static struct {unsigned f; char r[8];} string45 = {458760, "9207.29"};
static struct {unsigned f; char r[16];} string46 = {851984, "\257\300\364\055\041\215\300\242\300\242\013\100\164\000\000"};
static struct {unsigned f; char r[16];} string47 = {851981, "\006\003\020\001\024\001\100\140\010\000\004\040\001\000\000"};
static struct {unsigned f; char r[16];} string48 = {851984, "\257\300\006<7[\300;CV\364@h\000\000"};
static struct {unsigned f; char r[16];} string49 = {851984, "\257\300\174\131\015\150\300\275\305\273\253\100\150\000\000"};
static struct {unsigned f; char r[16];} string50 = {851984, "\257\300\322\334\347\304\300\124\107\000\027\100\150\000\000"};
static struct {unsigned f; char r[16];} string51 = {851984, "\257\300\161\264\233\303\300\026\075\022\161\100\150\000\000"};
static struct {unsigned f; char r[16];} string52 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string53 = {851984, "\257\300IKM\275\300Y\0222&@h\000\000"};
static struct {unsigned f; char r[16];} string54 = {851984, "\257\300\051\007\005\263\300\114\137\366\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string55 = {851984, "\257\300\231\005\151\136\300\275\231\323\274\100\150\000\000"};
static struct {unsigned f; char r[16];} string56 = {851984, "\257\300\311\023\117\300\300\337\236\305\170\100\150\000\000"};
static struct {unsigned f; char r[16];} string57 = {851984, "\257\300\236\155\220\261\300\040\017\026\014\100\150\000\000"};
static struct {unsigned f; char r[16];} string58 = {851984, "\257\300\045\215\147\016\300\153\043\150\276\100\150\000\000"};
static struct {unsigned f; char r[16];} string59 = {851984, "\257\300\043\211\212\366\300\343\003\307\242\100\150\000\000"};
static struct {unsigned f; char r[16];} string60 = {851984, "\257\300\235\036\354\311\300\234\133\201\260\100\150\000\000"};
static struct {unsigned f; char r[16];} string61 = {851984, "\257\300U$)\337\300Xo9\243@t\000\000"};
static struct {unsigned f; char r[16];} string62 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string63 = {851984, "\257\300\050\310\006\072\300\004\273\314\121\100\150\000\000"};
static struct {unsigned f; char r[16];} string64 = {851984, "\257\300\104\154\010\164\300\126\073\363\036\100\150\000\000"};
static struct {unsigned f; char r[8];} string65 = {1195857268, "ility"};
static struct {unsigned f; char r[16];} string66 = {851984, "\257\300\370\132\042\205\300\045\133\011\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string67 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string68 = {851984, "\257\300\170\064\225\306\300\207\372\245\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string69 = {851984, "\257\300\353\300\316\013\300\313\011\345\022\100\150\000\000"};
static struct {unsigned f; char r[16];} string70 = {851984, "\257\300ZT?\010\300\370;=;@h\000\000"};
static struct {unsigned f; char r[16];} string71 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"};
static struct {unsigned f; char r[16];} string72 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string73 = {851984, "\257\300\310\176\216\233\300\117\017\254\077\100\150\000\000"};
static struct {unsigned f; char r[16];} string74 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string75 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string76 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string77 = {851984, "\257\300\004\142\347\110\300\363\053\254\345\100\150\000\000"};
static struct {unsigned f; char r[16];} string78 = {851984, "\257\300\375\202\245\011\300\112\022\046\301\100\150\000\000"};
static struct {unsigned f; char r[16];} string79 = {851984, "\257\300\117\226\235\122\300\152\234\262\021\100\150\000\000"};
static struct {unsigned f; char r[16];} string80 = {851984, "\257\300\346\140\152\135\300\203\202\276\373\100\150\000\000"};
static struct {
   word f0[59]; word f59; word f60; word f61; 
   word f62; word f63; word f64; word f65; 
   word f66; word f67; word f68; word f69; 
   word f70; word f71; 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[31]; 
   } globalframe = {
   {0}, (word) Init←P3180, 0, (word) DrawCachedCircle←P3120, 
   0, (word) RemoveAll←P3060, 0, (word) Remove←P3000, 
   0, (word) Lookup←P2940, 0, (word) Insert←P2880, 
   0, (word) Create←P2820, 0, (word) FactoredTransformationFromRope←P2760, 
   0, (word) FactoredTransformationToRope←P2700, 0, (word) ScalarButtonValuesFromRope←P2640, 
   0, (word) ScalarButtonValuesToRope←P2580, 0, (word) ColorAsIntensityAndNameRope←P2520, 
   0, (word) ColorAsCMYKAndNameRope←P2460, 0, (word) ColorAsRGBAndNameRope←P2400, 
   0, (word) SpecialColorAsRGBAndNameRope←P2340, 0, (word) DescribeColor←P2280, 
   0, (word) DescribeSequence←P2220, 0, (word) DescribeInterior←P2160, 
   0, (word) DescribeSegment←P2100, 0, (word) DescribeControlPoint←P2040, 
   0, (word) DescribeJoint←P1980, 0, (word) DescribeTraj←P1920, 
   0, (word) KnotchedLine←P1860, 0, (word) Circle←P1800, 
   0, (word) Box←P1740, 0, (word) PolygonInCircle←P1680, 
   0, (word) ColorToNameRope←P1620, 0, (word) ColorToIntensityRope←P1560, 
   0, (word) ColorToCMYKRope←P1500, 0, (word) ColorToRGBRope←P1440, 
   0, (word) ColorFromRope←P1380, 0, (word) ColorToRope←P1320, 
   0, (word) ChangeHue←P1260, 0, (word) HSVFromColor←P1200, 
   0, (word) EquivalentPatterns←P1140, 0, (word) CopyPattern←P1080, 
   0, (word) AllTrue←P1020, 0, (word) AllFalse←P960, 
   0, (word) CopySliceDescriptorList←P900, 0, (word) FindSliceDescriptorAndNeighbors←P840, 
   0, (word) DeleteSliceDescriptorFromList←P780, 0, (word) AppendSliceDescriptorList←P720, 
   0, (word) AddSliceDescriptor←P660, 0, (word) StartSliceDescriptorList←P600, 
   0, (word) FindSequenceAndNeighbors←P540, 0, (word) DeleteSequenceFromList←P480, 
   0, (word) AppendSequenceList←P420, 0, (word) AddSequence←P360, 
   0, (word) StartSequenceList←P300, 0, (word) FeatureDataNconc←P240, 
   0, (word) CopyFeatureDataList←P180, 0, (word) AddFeatureData←P120, 
   0, (word) StartFeatureDataList←P60, 0, (word) GGUtilityImplA←P0, 
   {0}
   };

static void NoName←Q4476()
   {
   register ptr gf←c0516 =  (ptr) &globalframe;
   word var←c55680;
   (* (( (ptr) gf←c0516)+8) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0516)+9) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
   (* (( (ptr) gf←c0516)+10) ) = (word) XR←GetTypeIndexS((word) (&string4));
   (* (( (ptr) gf←c0516)+13) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0516)+14) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string6);
   (* (( (ptr) gf←c0516)+15) ) = (word) XR←GetTypeIndexS((word) (&string8));
   (* (( (ptr) gf←c0516)+17) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
   (* (( (ptr) gf←c0516)+21) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12);
   (* (( (ptr) gf←c0516)+23) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string6);
   (*  (ptr) (( (bPt) gf←c0516)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0516)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0516)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+23) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0516)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0516)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0516)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0516)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0516)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0516)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0516)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0516)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0516)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0516)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0516)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0516)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0516)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0516)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0516)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0516)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0516)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0516)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0516)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0516)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c0516)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c0516)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c0516)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string39);
   (*  (ptr) (( (bPt) gf←c0516)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string40);
   (*  (ptr) (( (bPt) gf←c0516)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string41);
   (*  (ptr) (( (bPt) gf←c0516)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string42);
   (*  (ptr) (( (bPt) gf←c0516)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+23) ), (word) &string43);
   (*  (ptr) (( (bPt) gf←c0516)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+23) ), (word) &string44);
   (*  (ptr) (( (bPt) gf←c0516)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0516)+13) ), (word) &string45);
   (void) XR←DeclareGlobalFrame((word) "GGUtilityImplA", &globalframe, (word) XR←GetTypeIndex((word) &string46, 0, (word) &string47)
      , (word) (( (bPt) gf←c0516)+660)/* var←c50464 */ );
   var←c55680 = (word) XR←ImportInterface((word) "CodeTimer", (word) XR←GetTypeIndexS((word) (&string48)), 21);
   (* (( (ptr) gf←c0516)+195)/* var←c55616 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67371777);
   var←c55680 = (word) XR←ImportInterface((word) "ColorFns", (word) XR←GetTypeIndexS((word) (&string49)), 54);
   (* (( (ptr) gf←c0516)+169)/* var←c51488 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 202113537);
   (void) XR←ImportProcS(var←c55680, 202113281);
   (void) XR←ImportProcS(var←c55680, 202113025);
   var←c55680 = (word) XR←ImportInterface((word) "Feedback", (word) XR←GetTypeIndexS((word) (&string50)), 25);
   (* (( (ptr) gf←c0516)+174)/* var←c51808 */  ) = var←c55680;
   var←c55680 = (word) XR←ImportInterface((word) "FunctionCache", (word) XR←GetTypeIndexS((word) (&string51)), 14);
   (* (( (ptr) gf←c0516)+189)/* var←c54816 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67371777);
   (void) XR←ImportProcS(var←c55680, 68158980);
   (void) XR←ImportProcS(var←c55680, 135005443);
   (void) XR←ImportProcS(var←c55680, 1311237);
   (void) XR←ImportProcS(var←c55680, 67112192);
   var←c55680 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string52)), 24);
   (* (( (ptr) gf←c0516)+185)/* var←c52832 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 68681990);
   var←c55680 = (word) XR←ImportInterface((word) "GGCircles", (word) XR←GetTypeIndexS((word) (&string53)), 29);
   (* (( (ptr) gf←c0516)+193)/* var←c55168 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67896066);
   var←c55680 = (word) XR←ImportInterface((word) "GGColorOps", (word) XR←GetTypeIndexS((word) (&string54)), 5);
   (* (( (ptr) gf←c0516)+177)/* var←c52032 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67371265);
   (void) XR←ImportProcS(var←c55680, 134479873);
   (void) XR←ImportProcS(var←c55680, 67372033);
   (void) XR←ImportProcS(var←c55680, 268698369);
   var←c55680 = (word) XR←ImportInterface((word) "GGCoreOps", (word) XR←GetTypeIndexS((word) (&string55)), 37);
   (* (( (ptr) gf←c0516)+176)/* var←c51872 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 201596417);
   var←c55680 = (word) XR←ImportInterface((word) "GGOutline", (word) XR←GetTypeIndexS((word) (&string56)), 19);
   (* (( (ptr) gf←c0516)+183)/* var←c52736 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67633410);
   var←c55680 = (word) XR←ImportInterface((word) "GGParseIn", (word) XR←GetTypeIndexS((word) (&string57)), 26);
   (* (( (ptr) gf←c0516)+173)/* var←c51776 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67375361);
   (void) XR←ImportProcS(var←c55680, 201857026);
   (void) XR←ImportProcS(var←c55680, 67636226);
   var←c55680 = (word) XR←ImportInterface((word) "GGParseOut", (word) XR←GetTypeIndexS((word) (&string58)), 15);
   (* (( (ptr) gf←c0516)+171)/* var←c51712 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 526082);
   (void) XR←ImportProcS(var←c55680, 1051908);
   (void) XR←ImportProcS(var←c55680, 524802);
   var←c55680 = (word) XR←ImportInterface((word) "GGSegment", (word) XR←GetTypeIndexS((word) (&string59)), 47);
   (* (( (ptr) gf←c0516)+182)/* var←c52608 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 527362);
   (void) XR←ImportProcS(var←c55680, 68419843);
   var←c55680 = (word) XR←ImportInterface((word) "GGShapes", (word) XR←GetTypeIndexS((word) (&string60)), 20);
   (* (( (ptr) gf←c0516)+194)/* var←c55200 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 526594);
   var←c55680 = (word) XR←ImportInterface((word) "GGSlice", (word) XR←GetTypeIndexS((word) (&string61)), 128);
   (* (( (ptr) gf←c0516)+187)/* var←c52928 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 68169730);
   (void) XR←ImportProcS(var←c55680, 67905795);
   var←c55680 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string62)), 73);
   (* (( (ptr) gf←c0516)+184)/* var←c52800 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 1060868);
   (void) XR←ImportProcS(var←c55680, 1325317);
   (void) XR←ImportProcS(var←c55680, 67901699);
   (void) XR←ImportProcS(var←c55680, 1062148);
   var←c55680 = (word) XR←ImportInterface((word) "GGTraj", (word) XR←GetTypeIndexS((word) (&string63)), 55);
   (* (( (ptr) gf←c0516)+181)/* var←c52480 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67639554);
   (void) XR←ImportProcS(var←c55680, 67379969);
   (void) XR←ImportProcS(var←c55680, 67643650);
   (void) XR←ImportProcS(var←c55680, 787203);
   (void) XR←ImportProcS(var←c55680, 68157956);
   (void) XR←ImportProcS(var←c55680, 67633153);
   var←c55680 = (word) XR←ImportInterface((word) "GGTransform", (word) XR←GetTypeIndexS((word) (&string64)), 7);
   (* (( (ptr) gf←c0516)+186)/* var←c52896 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67108864);
   var←c55680 = (word) XR←ImportInterface((word) &string65, (word) XR←GetTypeIndexS((word) (&string66)), 42);
   (* (( (ptr) gf←c0516)+172)/* var←c51744 */  ) = var←c55680;
   var←c55680 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string67)), 84);
   (* (( (ptr) gf←c0516)+175)/* var←c51840 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 1853957);
   (void) XR←ImportProcS(var←c55680, 526338);
   (void) XR←ImportProcS(var←c55680, 540674);
   (void) XR←ImportProcS(var←c55680, 1326338);
   (void) XR←ImportProcS(var←c55680, 536578);
   var←c55680 = (word) XR←ImportInterface((word) "ImagerBackdoor", (word) XR←GetTypeIndexS((word) (&string68)), 42);
   (* (( (ptr) gf←c0516)+167)/* var←c50496 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 268700417);
   (void) XR←ImportProcS(var←c55680, 67641602);
   var←c55680 = (word) XR←ImportInterface((word) "ImagerBitmapContext", (word) XR←GetTypeIndexS((word) (&string69)), 8);
   (* (( (ptr) gf←c0516)+192)/* var←c55072 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 524802);
   (void) XR←ImportProcS(var←c55680, 69206278);
   var←c55680 = (word) XR←ImportInterface((word) "ImagerColor", (word) XR←GetTypeIndexS((word) (&string70)), 32);
   (* (( (ptr) gf←c0516)+168)/* var←c51456 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67372801);
   (void) XR←ImportProcS(var←c55680, 67898625);
   (void) XR←ImportProcS(var←c55680, 67372033);
   (void) XR←ImportProcS(var←c55680, 201592321);
   var←c55680 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string71)), 60);
   (* (( (ptr) gf←c0516)+191)/* var←c54944 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 68161027);
   (void) XR←ImportProcS(var←c55680, 68685571);
   var←c55680 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string72)), 103);
   (* (( (ptr) gf←c0516)+170)/* var←c51680 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67910402);
   (void) XR←ImportProcS(var←c55680, 67648770);
   (void) XR←ImportProcS(var←c55680, 68958724);
   (void) XR←ImportProcS(var←c55680, 67640578);
   (void) XR←ImportProcS(var←c55680, 67641090);
   (void) XR←ImportProcS(var←c55680, 67378689);
   var←c55680 = (word) XR←ImportInterface((word) "NamedColors", (word) XR←GetTypeIndexS((word) (&string73)), 4);
   (* (( (ptr) gf←c0516)+178)/* var←c52320 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 68158210);
   var←c55680 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string74)), 11);
   (* (( (ptr) gf←c0516)+190)/* var←c54880 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67371521);
   (void) XR←ImportProcS(var←c55680, 67371265);
   var←c55680 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string75)), 36);
   (* (( (ptr) gf←c0516)+179)/* var←c52352 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 67373313);
   (void) XR←ImportProcS(var←c55680, 67372801);
   var←c55680 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string76)), 43);
   (* (( (ptr) gf←c0516)+188)/* var←c53376 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 68419845);
   (void) XR←ImportProcS(var←c55680, 67633666);
   var←c55680 = (word) XR←ImportInterface((word) "Vectors2d", (word) XR←GetTypeIndexS((word) (&string77)), 21);
   (* (( (ptr) gf←c0516)+180)/* var←c52448 */  ) = var←c55680;
   (void) XR←ImportProcS(var←c55680, 135268098);
   (void) XR←ImportProcS(var←c55680, 135006210);
   (void) XR←ImportProcS(var←c55680, 135267842);
   var←c55680 = (word) XR←ExportInterface((word) "GGDescribe", (word) XR←GetTypeIndexS((word) (&string78)), 11);
   (* (( (ptr) gf←c0516)+196)/* var←c55712 */  ) = var←c55680;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+484)/* var←c49760 */ , 67371265, (word) "ColorToRope");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+476)/* var←c49728 */ , 67371521, (word) "ColorFromRope");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+468)/* var←c49696 */ , 67371777, (word) "ColorToRGBRope");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+460)/* var←c49664 */ , 67372033, (word) "ColorToCMYKRope");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+444)/* var←c49600 */ , 67372289, (word) "ColorToNameRope");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+316)/* var←c49088 */ , 67897091, (word) "ScalarButtonValuesToRope")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+308)/* var←c49056 */ , 201590785, (word) "ScalarButtonValuesFromRope")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+300)/* var←c49024 */ , 67373313, (word) "FactoredTransformationToRope")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+292)/* var←c48992 */ , 67373569, (word) "FactoredTransformationFromRope")
   ;
   var←c55680 = (word) XR←ExportInterface((word) &string65, (word) XR←GetTypeIndexS((word) (&string66)), 42);
   (* (( (ptr) gf←c0516)+196)/* var←c55712 */  ) = var←c55680;
   (void) XR←ExportVar(var←c55680, 0, (word) (( (bPt) gf←c0516)+24)/* version←v6808 */ );
   (void) XR←ExportVar(var←c55680, 1, (word) (( (bPt) gf←c0516)+20)/* versionRope←v6780 */ );
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+652)/* var←c50432 */ , 134218240, (word) "StartFeatureDataList")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+644)/* var←c50400 */ , 135004931, (word) "AddFeatureData");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+636)/* var←c50368 */ , 67372033, (word) "CopyFeatureDataList")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+628)/* var←c50336 */ , 67634434, (word) "FeatureDataNconc");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+620)/* var←c50304 */ , 134219264, (word) "StartSequenceList")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+612)/* var←c50272 */ , 135005955, (word) "AddSequence");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+604)/* var←c50240 */ , 67635202, (word) "AppendSequenceList")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+596)/* var←c50208 */ , 67635458, (word) "DeleteSequenceFromList")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+580)/* var←c50144 */ , 134220544, (word) "StartSliceDescriptorList")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+572)/* var←c50112 */ , 135007235, (word) "AddSliceDescriptor")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+564)/* var←c50080 */ , 67636482, (word) "AppendSliceDescriptorList")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+556)/* var←c50048 */ , 67636738, (word) "DeleteSliceDescriptorFromList")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+540)/* var←c49984 */ , 67374849, (word) "CopySliceDescriptorList")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+532)/* var←c49952 */ , 67378689, (word) "AllFalse");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+524)/* var←c49920 */ , 67378945, (word) "AllTrue");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+492)/* var←c49792 */ , 67641346, (word) "ChangeHue");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+516)/* var←c49888 */ , 67379457, (word) "CopyPattern");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+508)/* var←c49856 */ , 67641858, (word) "EquivalentPatterns")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+404)/* var←c49440 */ , 67379969, (word) "DescribeTraj");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+356)/* var←c49248 */ , 67380225, (word) "DescribeColor");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+364)/* var←c49280 */ , 67380481, (word) "DescribeSequence");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+388)/* var←c49376 */ , 67905027, (word) "DescribeControlPoint")
   ;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+396)/* var←c49408 */ , 67643138, (word) "DescribeJoint");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+380)/* var←c49344 */ , 67643394, (word) "DescribeSegment");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+372)/* var←c49312 */ , 67381505, (word) "DescribeInterior");
   var←c55680 = (word) XR←ExportInterface((word) "GGBuiltinShapes", (word) XR←GetTypeIndexS((word) (&string79)), 4);
   (* (( (ptr) gf←c0516)+196)/* var←c55712 */  ) = var←c55680;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+436)/* var←c49568 */ , 68419588, (word) "PolygonInCircle");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+420)/* var←c49504 */ , 68157699, (word) "Circle");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+428)/* var←c49536 */ , 68157955, (word) "Box");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+412)/* var←c49472 */ , 68420355, (word) "KnotchedLine");
   var←c55680 = (word) XR←ExportInterface((word) "GGCircleCache", (word) XR←GetTypeIndexS((word) (&string80)), 6);
   (* (( (ptr) gf←c0516)+196)/* var←c55712 */  ) = var←c55680;
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+284)/* var←c48960 */ , 67108864, (word) "Create");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+276)/* var←c48928 */ , 524546, (word) "Insert");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+268)/* var←c48896 */ , 67633666, (word) "Lookup");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+260)/* var←c48864 */ , 525058, (word) "Remove");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+252)/* var←c48832 */ , 263169, (word) "RemoveAll");
   (void) XR←ExportProcS(var←c55680, (word) (( (bPt) gf←c0516)+244)/* var←c48800 */ , 1049859, (word) "DrawCachedCircle");
   }

static void GGUtilityImplA←P0(formal←c097, formal←c096)
   word formal←c097;
   word formal←c096;
   {
   register ptr gf←c55744 =  (ptr) &globalframe;
   /* GGUtilityImplA: */ 
SOURCE(525, 21104)
SOURCE(18888, 66)
   {
      word pd81;
      pd81 = (* (( (ptr) (* (( (ptr) gf←c55744)+167)/* var←c50496 */  ))+37) );
      (* (( (ptr) gf←c55744)+4)/* alignmentColor←v6556 */  ) = (word) ( *( (fPt) ((*  (ptr) pd81 ))))(51765, 0, pd81);
      };
SOURCE(21623, 6)
   (void) Init←P3180();
   }

static void StartFeatureDataList←P60(formal←c0100)
   word formal←c0100;
   {
   word entityList←v7004;
   word ptr←v7032;
   /* StartFeatureDataList: */ 
SOURCE(2193, 110)
SOURCE(2193, 110)
   entityList←v7004 = 0;
SOURCE(2193, 110)
   ptr←v7032 = 0;
SOURCE(2281, 22)
   entityList←v7004 = 0;
   ptr←v7032 = 0;
   /* removed tail goto */ 
   (*  (ptr) formal←c0100 ) = entityList←v7004;
   (* (( (ptr) formal←c0100)+1) ) = ptr←v7032;
   return;
   }

static void AddFeatureData←P120(formal←c0109, entity←v7176, entityList←v7204, ptr←v7232)
   word formal←c0109;
   word entity←v7176;
   word entityList←v7204;
   word ptr←v7232;
   {
   register ptr gf←c55776 =  (ptr) &globalframe;
   word newList←v7360;
   word newPtr←v7388;
   /* AddFeatureData: */ 
SOURCE(2309, 319)
SOURCE(2309, 319)
   newList←v7360 = 0;
SOURCE(2309, 319)
   newPtr←v7388 = 0;
SOURCE(2448, 180)
   if ((ptr←v7232 == 0)) {
SOURCE(2468, 29)
      if ((entityList←v7204 != 0)) {
SOURCE(2497, 5)
         (void) XR←RaiseUnnamedError();
         };
SOURCE(2504, 36)
      {
         word var←c50528;
         {
            word var←c50560;
            var←c50560 = XR←NewObject(8, (* (( (ptr) gf←c55776)+8) ));
            (*  (ptr) var←c50560 ) = entity←v7176;
            var←c50528 = var←c50560;
            };
         newList←v7360 = var←c50528;
         newPtr←v7388 = var←c50528;
         };
SOURCE(2542, 6)
      goto lab←L100001;
      }
   else {
SOURCE(2559, 20)
      newList←v7360 = entityList←v7204;
SOURCE(2581, 28)
      {
         word var←c50592;
         var←c50592 = XR←NewObject(8, (* (( (ptr) gf←c55776)+8) ));
         (*  (ptr) var←c50592 ) = entity←v7176;
         (* (( (ptr) ptr←v7232)+1) ) = var←c50592;
         };
SOURCE(2611, 17)
      newPtr←v7388 = (* (( (ptr) ptr←v7232)+1) );
      };
   /* removed tail goto */ 
   lab←L100001: ;
   (*  (ptr) formal←c0109 ) = newList←v7360;
   (* (( (ptr) formal←c0109)+1) ) = newPtr←v7388;
   return;
   }

static word CopyFeatureDataList←P180(l←v7532)
   word l←v7532;
   {
   register ptr gf←c55808 =  (ptr) &globalframe;
   word copyList←v7660;
   word z←v16188 = 0;
   /* CopyFeatureDataList: */ 
SOURCE(2637, 273)
SOURCE(2637, 273)
   copyList←v7660 = 0;
SOURCE(2769, 27)
   if ((l←v7532 == 0)) {
SOURCE(2785, 11)
      return(0);
      };
SOURCE(2798, 29)
   {
      word var←c50624;
      var←c50624 = XR←NewObject(8, (* (( (ptr) gf←c55808)+8) ));
      (*  (ptr) var←c50624 ) = (*  (ptr) l←v7532 );
      copyList←v7660 = var←c50624;
      };
SOURCE(2829, 12)
   z←v16188 = copyList←v7660;
SOURCE(2843, 67)
   lab←L100004: ;
   l←v7532 = (* (( (ptr) l←v7532)+1) );
   if ((l←v7532 != 0)) {
      }
   else {
      goto lab←L100002;
      };
SOURCE(2871, 27)
   {
      word var←c50656;
      var←c50656 = XR←NewObject(8, (* (( (ptr) gf←c55808)+8) ));
      (*  (ptr) var←c50656 ) = (*  (ptr) l←v7532 );
      (* (( (ptr) z←v16188)+1) ) = var←c50656;
      };
SOURCE(2900, 10)
   z←v16188 = (* (( (ptr) z←v16188)+1) );
   goto lab←L100004;
   lab←L100002: ;
SOURCE(2637, 273)
   return(copyList←v7660);
   }

static word FeatureDataNconc←P240(l1←v7804, l2←v7832)
   word l1←v7804;
   word l2←v7832;
   {
   word bigList←v7960;
   word z←v16316;
   /* FeatureDataNconc: */ 
SOURCE(2925, 226)
SOURCE(2925, 226)
   bigList←v7960 = 0;
SOURCE(3028, 3)
   z←v16316 = l1←v7804;
SOURCE(3057, 26)
   if ((z←v16316 == 0)) {
SOURCE(3073, 10)
      return(l2←v7832);
      };
SOURCE(3085, 32)
   lab←L100007: ;
   if (((* (( (ptr) z←v16316)+1) ) != 0)) {
      }
   else {
      goto lab←L100005;
      };
SOURCE(3107, 10)
   z←v16316 = (* (( (ptr) z←v16316)+1) );
   goto lab←L100007;
   lab←L100005: ;
SOURCE(3128, 11)
   (* (( (ptr) z←v16316)+1) ) = l2←v7832;
SOURCE(3141, 10)
   return(l1←v7804);
   }

static void StartSequenceList←P300(formal←c0121)
   word formal←c0121;
   {
   word entityList←v8104;
   word ptr←v8132;
   /* StartSequenceList: */ 
SOURCE(3158, 104)
SOURCE(3158, 104)
   entityList←v8104 = 0;
SOURCE(3158, 104)
   ptr←v8132 = 0;
SOURCE(3240, 22)
   entityList←v8104 = 0;
   ptr←v8132 = 0;
   /* removed tail goto */ 
   (*  (ptr) formal←c0121 ) = entityList←v8104;
   (* (( (ptr) formal←c0121)+1) ) = ptr←v8132;
   return;
   }

static void AddSequence←P360(formal←c0130, entity←v8276, entityList←v8304, ptr←v8332)
   word formal←c0130;
   word entity←v8276;
   word entityList←v8304;
   word ptr←v8332;
   {
   register ptr gf←c55840 =  (ptr) &globalframe;
   word newList←v8460;
   word newPtr←v8488;
   /* AddSequence: */ 
SOURCE(3268, 307)
SOURCE(3268, 307)
   newList←v8460 = 0;
SOURCE(3268, 307)
   newPtr←v8488 = 0;
SOURCE(3395, 180)
   if ((ptr←v8332 == 0)) {
SOURCE(3415, 29)
      if ((entityList←v8304 != 0)) {
SOURCE(3444, 5)
         (void) XR←RaiseUnnamedError();
         };
SOURCE(3451, 36)
      {
         word var←c50688;
         {
            word var←c50720;
            var←c50720 = XR←NewObject(8, (* (( (ptr) gf←c55840)+9) ));
            (*  (ptr) var←c50720 ) = entity←v8276;
            var←c50688 = var←c50720;
            };
         newList←v8460 = var←c50688;
         newPtr←v8488 = var←c50688;
         };
SOURCE(3489, 6)
      goto lab←L100009;
      }
   else {
SOURCE(3506, 20)
      newList←v8460 = entityList←v8304;
SOURCE(3528, 28)
      {
         word var←c50752;
         var←c50752 = XR←NewObject(8, (* (( (ptr) gf←c55840)+9) ));
         (*  (ptr) var←c50752 ) = entity←v8276;
         (* (( (ptr) ptr←v8332)+1) ) = var←c50752;
         };
SOURCE(3558, 17)
      newPtr←v8488 = (* (( (ptr) ptr←v8332)+1) );
      };
   /* removed tail goto */ 
   lab←L100009: ;
   (*  (ptr) formal←c0130 ) = newList←v8460;
   (* (( (ptr) formal←c0130)+1) ) = newPtr←v8488;
   return;
   }

static word AppendSequenceList←P420(list1←v8632, list2←v8660)
   word list1←v8632;
   word list2←v8660;
   {
   register ptr gf←c55872 =  (ptr) &globalframe;
   word result←v8788;
   word pos←v16444 = 0;
   word newCell←v16472 = 0;
   /* AppendSequenceList: */ 
SOURCE(3584, 389)
SOURCE(3584, 389)
   result←v8788 = 0;
SOURCE(3738, 33)
   if ((list1←v8632 == 0)) {
SOURCE(3758, 13)
      return(list2←v8660);
      };
SOURCE(3773, 31)
   {
      word var←c50784;
      var←c50784 = XR←NewObject(8, (* (( (ptr) gf←c55872)+9) ));
      (*  (ptr) var←c50784 ) = (*  (ptr) list1←v8632 );
      result←v8788 = var←c50784;
      };
SOURCE(3806, 12)
   pos←v16444 = result←v8788;
SOURCE(3820, 125)
   {
      register word l←v16684;
      l←v16684 = (* (( (ptr) list1←v8632)+1) );
      lab←L100013: ;
      if ((l←v16684 != 0)) {
         }
      else {
         goto lab←L100010;
         };
SOURCE(3882, 28)
      {
         word var←c50816;
         var←c50816 = XR←NewObject(8, (* (( (ptr) gf←c55872)+9) ));
         (*  (ptr) var←c50816 ) = (*  (ptr) l←v16684 );
         newCell←v16472 = var←c50816;
         };
SOURCE(3912, 18)
      (* (( (ptr) pos←v16444)+1) ) = newCell←v16472;
SOURCE(3932, 13)
      pos←v16444 = newCell←v16472;
      l←v16684 = (* (( (ptr) l←v16684)+1) );
      goto lab←L100013;
      lab←L100010: ;
      };
SOURCE(3956, 17)
   (* (( (ptr) pos←v16444)+1) ) = list2←v8660;
SOURCE(3584, 389)
   return(result←v8788);
   }

static word DeleteSequenceFromList←P480(seq←v8932, seqList←v8960)
   word seq←v8932;
   word seqList←v8960;
   {
   word smallerList←v9088;
   word beforeEnt←v16812 = 0;
   word ent←v16840 = 0;
   word afterEnt←v16868 = 0;
   word found←v16896 = 0;
   /* DeleteSequenceFromList: */ 
SOURCE(4008, 401)
SOURCE(4008, 401)
   smallerList←v9088 = 0;
SOURCE(4196, 74)
   {
      W4 var←c50848;
      (void) FindSequenceAndNeighbors←P540((word) &var←c50848, seq←v8932, seqList←v8960);
      found←v16896 = var←c50848.f3;
      afterEnt←v16868 = var←c50848.f2;
      ent←v16840 = var←c50848.f1;
      beforeEnt←v16812 = var←c50848.f0;
      };
SOURCE(4272, 33)
   if ((0 == found←v16896)) {
SOURCE(4290, 15)
      return(seqList←v8960);
      };
SOURCE(4307, 102)
   if ((beforeEnt←v16812 == 0)) {
SOURCE(4331, 28)
      smallerList←v9088 = afterEnt←v16868;
      }
   else {
SOURCE(4361, 25)
      (* (( (ptr) beforeEnt←v16812)+1) ) = afterEnt←v16868;
SOURCE(4388, 21)
      smallerList←v9088 = seqList←v8960;
      };
SOURCE(4008, 401)
   return(smallerList←v9088);
   }

static void FindSequenceAndNeighbors←P540(formal←c0156, entity←v9232, entityList←v9260)
   word formal←c0156;
   word entity←v9232;
   word entityList←v9260;
   {
   word beforeEnt←v9388;
   word ent←v9416;
   word afterEnt←v9444;
   word found←v9472;
   word lastE←v17024 = 0;
   word eList←v17052;
   /* FindSequenceAndNeighbors: */ 
SOURCE(4451, 420)
SOURCE(4451, 420)
   beforeEnt←v9388 = 0;
SOURCE(4451, 420)
   ent←v9416 = 0;
SOURCE(4451, 420)
   afterEnt←v9444 = 0;
SOURCE(4451, 420)
   found←v9472 = 0;
SOURCE(4640, 7)
   eList←v17052 = entityList←v9260;
SOURCE(4678, 26)
   if ((eList←v17052 == 0)) {
SOURCE(4698, 6)
      goto lab←L100014;
      };
SOURCE(4706, 165)
   lab←L100017: ;
   if ((eList←v17052 != 0)) {
      }
   else {
      goto lab←L100015;
      };
SOURCE(4727, 106)
   if (((*  (ptr) eList←v17052 ) == entity←v9232)) {
SOURCE(4758, 17)
      beforeEnt←v9388 = lastE←v17024;
SOURCE(4777, 11)
      ent←v9416 = eList←v17052;
SOURCE(4790, 21)
      afterEnt←v9444 = (* (( (ptr) eList←v17052)+1) );
SOURCE(4813, 12)
      found←v9472 = 1;
SOURCE(4827, 6)
      goto lab←L100014;
      };
SOURCE(4838, 13)
   lastE←v17024 = eList←v17052;
SOURCE(4853, 18)
   eList←v17052 = (* (( (ptr) eList←v17052)+1) );
   goto lab←L100017;
   lab←L100015: ;
   /* removed tail goto */ 
   lab←L100014: ;
   (*  (ptr) formal←c0156 ) = beforeEnt←v9388;
   (* (( (ptr) formal←c0156)+1) ) = ent←v9416;
   (* (( (ptr) formal←c0156)+2) ) = afterEnt←v9444;
   (* (( (ptr) formal←c0156)+3) ) = found←v9472;
   return;
   }

static void StartSliceDescriptorList←P600(formal←c0159)
   word formal←c0159;
   {
   word entityList←v9616;
   word ptr←v9644;
   /* StartSliceDescriptorList: */ 
SOURCE(4886, 118)
SOURCE(4886, 118)
   entityList←v9616 = 0;
SOURCE(4886, 118)
   ptr←v9644 = 0;
SOURCE(4982, 22)
   entityList←v9616 = 0;
   ptr←v9644 = 0;
   /* removed tail goto */ 
   (*  (ptr) formal←c0159 ) = entityList←v9616;
   (* (( (ptr) formal←c0159)+1) ) = ptr←v9644;
   return;
   }

static void AddSliceDescriptor←P660(formal←c0168, entity←v9788, entityList←v9816, ptr←v9844)
   word formal←c0168;
   word entity←v9788;
   word entityList←v9816;
   word ptr←v9844;
   {
   register ptr gf←c55904 =  (ptr) &globalframe;
   word newList←v9972;
   word newPtr←v10000;
   /* AddSliceDescriptor: */ 
SOURCE(5010, 335)
SOURCE(5010, 335)
   newList←v9972 = 0;
SOURCE(5010, 335)
   newPtr←v10000 = 0;
SOURCE(5165, 180)
   if ((ptr←v9844 == 0)) {
SOURCE(5185, 29)
      if ((entityList←v9816 != 0)) {
SOURCE(5214, 5)
         (void) XR←RaiseUnnamedError();
         };
SOURCE(5221, 36)
      {
         word var←c50880;
         {
            word var←c50912;
            var←c50912 = XR←NewObject(8, (* (( (ptr) gf←c55904)+9) ));
            (*  (ptr) var←c50912 ) = entity←v9788;
            var←c50880 = var←c50912;
            };
         newList←v9972 = var←c50880;
         newPtr←v10000 = var←c50880;
         };
SOURCE(5259, 6)
      goto lab←L100019;
      }
   else {
SOURCE(5276, 20)
      newList←v9972 = entityList←v9816;
SOURCE(5298, 28)
      {
         word var←c50944;
         var←c50944 = XR←NewObject(8, (* (( (ptr) gf←c55904)+9) ));
         (*  (ptr) var←c50944 ) = entity←v9788;
         (* (( (ptr) ptr←v9844)+1) ) = var←c50944;
         };
SOURCE(5328, 17)
      newPtr←v10000 = (* (( (ptr) ptr←v9844)+1) );
      };
   /* removed tail goto */ 
   lab←L100019: ;
   (*  (ptr) formal←c0168 ) = newList←v9972;
   (* (( (ptr) formal←c0168)+1) ) = newPtr←v10000;
   return;
   }

static word AppendSliceDescriptorList←P720(list1←v10144, list2←v10172)
   word list1←v10144;
   word list2←v10172;
   {
   register ptr gf←c55936 =  (ptr) &globalframe;
   word result←v10300;
   word pos←v17264 = 0;
   word newCell←v17292 = 0;
   /* AppendSliceDescriptorList: */ 
SOURCE(5354, 431)
SOURCE(5354, 431)
   result←v10300 = 0;
SOURCE(5543, 33)
   if ((list1←v10144 == 0)) {
SOURCE(5563, 13)
      return(list2←v10172);
      };
SOURCE(5578, 31)
   {
      word var←c50976;
      var←c50976 = XR←NewObject(8, (* (( (ptr) gf←c55936)+9) ));
      (*  (ptr) var←c50976 ) = (*  (ptr) list1←v10144 );
      result←v10300 = var←c50976;
      };
SOURCE(5611, 12)
   pos←v17264 = result←v10300;
SOURCE(5625, 132)
   {
      register word l←v17504;
      l←v17504 = (* (( (ptr) list1←v10144)+1) );
      lab←L100023: ;
      if ((l←v17504 != 0)) {
         }
      else {
         goto lab←L100020;
         };
SOURCE(5694, 28)
      {
         word var←c51008;
         var←c51008 = XR←NewObject(8, (* (( (ptr) gf←c55936)+9) ));
         (*  (ptr) var←c51008 ) = (*  (ptr) l←v17504 );
         newCell←v17292 = var←c51008;
         };
SOURCE(5724, 18)
      (* (( (ptr) pos←v17264)+1) ) = newCell←v17292;
SOURCE(5744, 13)
      pos←v17264 = newCell←v17292;
      l←v17504 = (* (( (ptr) l←v17504)+1) );
      goto lab←L100023;
      lab←L100020: ;
      };
SOURCE(5768, 17)
   (* (( (ptr) pos←v17264)+1) ) = list2←v10172;
SOURCE(5354, 431)
   return(result←v10300);
   }

static word DeleteSliceDescriptorFromList←P780(sliceD←v10444, sliceDList←v10472)
   word sliceD←v10444;
   word sliceDList←v10472;
   {
   word smallerList←v10600;
   word beforeEnt←v17632 = 0;
   word ent←v17660 = 0;
   word afterEnt←v17688 = 0;
   word found←v17716 = 0;
   /* DeleteSliceDescriptorFromList: */ 
SOURCE(5791, 461)
SOURCE(5791, 461)
   smallerList←v10600 = 0;
SOURCE(6020, 87)
   {
      W4 var←c51040;
      (void) FindSliceDescriptorAndNeighbors←P840((word) &var←c51040, sliceD←v10444, sliceDList←v10472);
      found←v17716 = var←c51040.f3;
      afterEnt←v17688 = var←c51040.f2;
      ent←v17660 = var←c51040.f1;
      beforeEnt←v17632 = var←c51040.f0;
      };
SOURCE(6109, 36)
   if ((0 == found←v17716)) {
SOURCE(6127, 18)
      return(sliceDList←v10472);
      };
SOURCE(6147, 105)
   if ((beforeEnt←v17632 == 0)) {
SOURCE(6171, 28)
      smallerList←v10600 = afterEnt←v17688;
      }
   else {
SOURCE(6201, 25)
      (* (( (ptr) beforeEnt←v17632)+1) ) = afterEnt←v17688;
SOURCE(6228, 24)
      smallerList←v10600 = sliceDList←v10472;
      };
SOURCE(5791, 461)
   return(smallerList←v10600);
   }

static void FindSliceDescriptorAndNeighbors←P840(formal←c0194, sliceD←v10744, sliceDList←v10772)
   word formal←c0194;
   word sliceD←v10744;
   word sliceDList←v10772;
   {
   word beforeEnt←v10900;
   word ent←v10928;
   word afterEnt←v10956;
   word found←v10984;
   word lastE←v17844 = 0;
   word eList←v17872;
   /* FindSliceDescriptorAndNeighbors: */ 
SOURCE(6261, 462)
SOURCE(6261, 462)
   beforeEnt←v10900 = 0;
SOURCE(6261, 462)
   ent←v10928 = 0;
SOURCE(6261, 462)
   afterEnt←v10956 = 0;
SOURCE(6261, 462)
   found←v10984 = 0;
SOURCE(6485, 7)
   eList←v17872 = sliceDList←v10772;
SOURCE(6530, 26)
   if ((eList←v17872 == 0)) {
SOURCE(6550, 6)
      goto lab←L100024;
      };
SOURCE(6558, 165)
   lab←L100027: ;
   if ((eList←v17872 != 0)) {
      }
   else {
      goto lab←L100025;
      };
SOURCE(6579, 106)
   if (((*  (ptr) eList←v17872 ) == sliceD←v10744)) {
SOURCE(6610, 17)
      beforeEnt←v10900 = lastE←v17844;
SOURCE(6629, 11)
      ent←v10928 = eList←v17872;
SOURCE(6642, 21)
      afterEnt←v10956 = (* (( (ptr) eList←v17872)+1) );
SOURCE(6665, 12)
      found←v10984 = 1;
SOURCE(6679, 6)
      goto lab←L100024;
      };
SOURCE(6690, 13)
   lastE←v17844 = eList←v17872;
SOURCE(6705, 18)
   eList←v17872 = (* (( (ptr) eList←v17872)+1) );
   goto lab←L100027;
   lab←L100025: ;
   /* removed tail goto */ 
   lab←L100024: ;
   (*  (ptr) formal←c0194 ) = beforeEnt←v10900;
   (* (( (ptr) formal←c0194)+1) ) = ent←v10928;
   (* (( (ptr) formal←c0194)+2) ) = afterEnt←v10956;
   (* (( (ptr) formal←c0194)+3) ) = found←v10984;
   return;
   }

static word CopySliceDescriptorList←P900(l1←v11128)
   word l1←v11128;
   {
   register ptr gf←c55968 =  (ptr) &globalframe;
   word val←v11256;
   word z←v18084 = 0;
   /* CopySliceDescriptorList: */ 
SOURCE(6738, 316)
SOURCE(6738, 316)
   val←v11256 = 0;
SOURCE(6882, 9)
   val←v11256 = 0;
SOURCE(6893, 28)
   if ((l1←v11128 == 0)) {
SOURCE(6910, 11)
      return(val←v11256);
      };
SOURCE(6923, 25)
   {
      word var←c51072;
      var←c51072 = XR←NewObject(8, (* (( (ptr) gf←c55968)+9) ));
      (*  (ptr) var←c51072 ) = (*  (ptr) l1←v11128 );
      (* (( (ptr) var←c51072)+1) ) = val←v11256;
      val←v11256 = var←c51072;
      };
SOURCE(6950, 7)
   z←v18084 = val←v11256;
SOURCE(6959, 73)
   lab←L100030: ;
   l1←v11128 = (* (( (ptr) l1←v11128)+1) );
   if ((l1←v11128 != 0)) {
      }
   else {
      goto lab←L100028;
      };
SOURCE(6989, 31)
   {
      word var←c51104;
      var←c51104 = XR←NewObject(8, (* (( (ptr) gf←c55968)+9) ));
      (*  (ptr) var←c51104 ) = (*  (ptr) l1←v11128 );
      (* (( (ptr) var←c51104)+1) ) = (* (( (ptr) z←v18084)+1) );
      (* (( (ptr) z←v18084)+1) ) = var←c51104;
      };
SOURCE(7022, 10)
   z←v18084 = (* (( (ptr) z←v18084)+1) );
   goto lab←L100030;
   lab←L100028: ;
SOURCE(7043, 11)
   return(val←v11256);
   }

static word AllFalse←P960(bitvec←v11400)
   word bitvec←v11400;
   {
   word var←c11444;
   /* AllFalse: */ 
SOURCE(7073, 155)
SOURCE(7134, 71)
   {
      register word i←v18212 = 0;
      register word noName←c51136;
      noName←c51136 = (*  (ptr) bitvec←v11400 );
      if ((i←v18212 >= noName←c51136)) {
         goto lab←L100031;
         };
      lab←L100034: ;
SOURCE(7167, 38)
      {
         word limit82;
         if (( (unsigned) XR←ExtractField(bitvec←v11400, 32 + (word) (
               limit82 = (*  (ptr) bitvec←v11400 ),
               BCK(i←v18212, limit82)
               ), 1) == 1)) {
SOURCE(7192, 13)
            return(0);
            };
         };
      i←v18212 = (i←v18212 + 1);
      if ((i←v18212 < noName←c51136)) {
         goto lab←L100034;
         };
      lab←L100031: ;
      };
SOURCE(7216, 12)
   return(1);
   }

static word AllTrue←P1020(bitvec←v11504)
   word bitvec←v11504;
   {
   word var←c11548;
   /* AllTrue: */ 
SOURCE(7234, 155)
SOURCE(7294, 72)
   {
      register word i←v18256 = 0;
      register word noName←c51168;
      noName←c51168 = (*  (ptr) bitvec←v11504 );
      if ((i←v18256 >= noName←c51168)) {
         goto lab←L100035;
         };
      lab←L100038: ;
SOURCE(7327, 39)
      {
         word limit83;
         if (( (unsigned) XR←ExtractField(bitvec←v11504, 32 + (word) (
               limit83 = (*  (ptr) bitvec←v11504 ),
               BCK(i←v18256, limit83)
               ), 1) == 0)) {
SOURCE(7353, 13)
            return(0);
            };
         };
      i←v18256 = (i←v18256 + 1);
      if ((i←v18256 < noName←c51168)) {
         goto lab←L100038;
         };
      lab←L100035: ;
      };
SOURCE(7377, 12)
   return(1);
   }

static word CopyPattern←P1080(pattern←v11608)
   word pattern←v11608;
   {
   register ptr gf←c56000 =  (ptr) &globalframe;
   word new←v11652;
   /* CopyPattern: */ 
SOURCE(7396, 226)
SOURCE(7396, 226)
   new←v11652 = 0;
SOURCE(7481, 31)
   if ((pattern←v11608 == 0)) {
SOURCE(7501, 11)
      return(0);
      };
SOURCE(7514, 41)
   {
      word var←c51200;
      word var←c51232;
      word var←c51264;
      {
         word idx84;
         var←c51200 = (
            idx84 = (*  (ptr) pattern←v11608 ),
            BCK(idx84, 67108863)
            );
         };
      var←c51232 = ((word) var←c51200 << 2);
      var←c51264 = XR←NewObject((4 + var←c51232), (* (( (ptr) gf←c56000)+10) ));
      (*  (ptr) var←c51264 ) = var←c51200;
      new←v11652 = var←c51264;
      };
SOURCE(7557, 65)
   {
      register word index←v18300 = 0;
      register word noName←c51296;
      noName←c51296 = (*  (ptr) pattern←v11608 );
      if ((index←v18300 >= noName←c51296)) {
         goto lab←L100039;
         };
      lab←L100042: ;
SOURCE(7595, 27)
      {
         word limit85;
         word limit86;
         (* ((( (ptr) new←v11652)+1)+(
               limit85 = (*  (ptr) new←v11652 ),
               BCK(index←v18300, limit85)
               )) ) = (* ((( (ptr) pattern←v11608)+1)+(
               limit86 = (*  (ptr) pattern←v11608 ),
               BCK(index←v18300, limit86)
               )) );
         };
      index←v18300 = (index←v18300 + 1);
      if ((index←v18300 < noName←c51296)) {
         goto lab←L100042;
         };
      lab←L100039: ;
      };
SOURCE(7396, 226)
   return(new←v11652);
   }

static word EquivalentPatterns←P1140(p1←v11712, p2←v11740)
   word p1←v11712;
   word p2←v11740;
   {
   word var←c11784;
   /* EquivalentPatterns: */ 
SOURCE(7637, 210)
SOURCE(7637, 210)
   var←c11784 = 0;
SOURCE(7721, 37)
   if (((*  (ptr) p1←v11712 ) != (*  (ptr) p2←v11740 ))) {
SOURCE(7745, 13)
      return(0);
      };
SOURCE(7760, 64)
   {
      register word i←v18344 = 0;
      register word noName←c51328;
      noName←c51328 = (*  (ptr) p1←v11712 );
      if ((i←v18344 >= noName←c51328)) {
         goto lab←L100043;
         };
      lab←L100046: ;
SOURCE(7789, 35)
      {
         word limit87;
         word x88;
         word limit89;
         word x90;
         if (((
            x88 = (* ((( (ptr) p1←v11712)+1)+(
                  limit87 = (*  (ptr) p1←v11712 ),
                  BCK(i←v18344, limit87)
                  )) ),  *(float*)&x88
            ) != (
            x90 = (* ((( (ptr) p2←v11740)+1)+(
                  limit89 = (*  (ptr) p2←v11740 ),
                  BCK(i←v18344, limit89)
                  )) ),  *(float*)&x90
            ))) {
SOURCE(7811, 13)
            return(0);
            };
         };
      i←v18344 = (i←v18344 + 1);
      if ((i←v18344 < noName←c51328)) {
         goto lab←L100046;
         };
      lab←L100043: ;
      };
SOURCE(7835, 12)
   return(1);
   }

static void HSVFromColor←P1200(formal←c0227, color←v11844)
   word formal←c0227;
   word color←v11844;
   {
   register ptr gf←c56032 =  (ptr) &globalframe;
   W3 var←c11888;
   /* HSVFromColor: */ 
SOURCE(7904, 167)
SOURCE(7973, 98)
   {
      W3 var←c51520;
      {
         W3 var←c51392;
         {
            word var←c51424;
            {
               word pd91;
               pd91 = (* (( (ptr) (* (( (ptr) gf←c56032)+168)/* var←c51456 */  ))+8) );
               var←c51424 = (word) ( *( (fPt) ((*  (ptr) pd91 ))))(color←v11844, pd91);
               };
            {
               word pd92;
               pd92 = (* (( (ptr) (* (( (ptr) gf←c56032)+168)/* var←c51456 */  ))+18) );
               (void) ( *( (fPt) ((*  (ptr) pd92 ))))((word) &var←c51392, var←c51424, pd92);
               };
            };
         {
            W3 var←c0226;
            {
               word pd93;
               pd93 = (* (( (ptr) (* (( (ptr) gf←c56032)+169)/* var←c51488 */  ))+4) );
               (void) ( *( (fPt) ((*  (ptr) pd93 ))))((word) &var←c0226, var←c51392, pd93);
               };
            var←c51520 = var←c0226;
            };
         };
      var←c11888 = var←c51520;
      /* removed tail goto */ 
      };
   (*  (W3Pt) formal←c0227 ) = var←c11888;
   return;
   }

static word ChangeHue←P1260(startColor←v11948, hueFrom←v11976)
   word startColor←v11948;
   word hueFrom←v11976;
   {
   register ptr gf←c56064 =  (ptr) &globalframe;
   word var←c12020;
   /* ChangeHue: */ 
SOURCE(8077, 367)
SOURCE(8156, 247)
   {
      word var←c51552;
      var←c51552 = startColor←v11948;
      if ((var←c51552 == 0)) {
         goto lab←L100048;
         };
      if (((*  (ptr) var←c51552 ) == 0)) {
         {
            word startColor←v18388;
            startColor←v18388 = var←c51552;
SOURCE(8213, 190)
            {
               word var←c51584;
               var←c51584 = hueFrom←v11976;
               if ((var←c51584 == 0)) {
                  goto lab←L100049;
                  };
               if (((*  (ptr) var←c51584 ) == 0)) {
                  {
                     word hueFrom←v18432;
                     hueFrom←v18432 = var←c51584;
SOURCE(8264, 141)
                     {
                        W3 hsv←v18476;
                        W3 var←c0237;
SOURCE(8266, 44)
                        (void) HSVFromColor←P1200((word) &hsv←v18476, startColor←v18388);
SOURCE(8312, 31)
                        (void) HSVFromColor←P1200((word) &var←c0237, hueFrom←v18432);
                        hsv←v18476.f0 = var←c0237.f0;
SOURCE(8345, 58)
                        {
                           W3 var←c0239;
                           W3 var←c51648;
                           {
/*1*/   word pd94;
/*1*/   pd94 = (* (( (ptr) (* (( (ptr) gf←c56064)+169)/* var←c51488 */  ))+5) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd94 ))))((word) &var←c0239, hsv←v18476, pd94);
/*1*/   };
                           var←c51648 = var←c0239;
                           {
/*1*/   word pd95;
/*1*/   pd95 = (* (( (ptr) (* (( (ptr) gf←c56064)+168)/* var←c51456 */  ))+17) );
/*1*/   return((word) ( *( (fPt) ((*  (ptr) pd95 ))))(var←c51648, pd95));
/*1*/   };
                           };
                        };
                     };
                  }
               else {
                  lab←L100049: ;
                  };
               };
            };
         }
      else {
         lab←L100048: ;
         };
      };
SOURCE(8426, 18)
   return(startColor←v11948);
   }

static word ColorToRope←P1320(color←v12080)
   word color←v12080;
   {
   register ptr gf←c56096 =  (ptr) &globalframe;
   word rope←v12124;
   word stream←v18520 = 0;
   /* ColorToRope: */ 
SOURCE(8450, 182)
SOURCE(8450, 182)
   rope←v12124 = 0;
SOURCE(8546, 17)
   {
      word pd96;
      pd96 = (* (( (ptr) (* (( (ptr) gf←c56096)+170)/* var←c51680 */  ))+34) );
      stream←v18520 = (word) ( *( (fPt) ((*  (ptr) pd96 ))))(0, pd96);
      };
SOURCE(8565, 36)
   {
      word pd97;
      pd97 = (* (( (ptr) (* (( (ptr) gf←c56096)+171)/* var←c51712 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd97 ))))(stream←v18520, color←v12080, pd97);
      };
SOURCE(8603, 29)
   {
      word pd98;
      pd98 = (* (( (ptr) (* (( (ptr) gf←c56096)+170)/* var←c51680 */  ))+35) );
      rope←v12124 = (word) ( *( (fPt) ((*  (ptr) pd98 ))))(stream←v18520, 1, pd98);
      };
SOURCE(8450, 182)
   return(rope←v12124);
   }

static word ColorFromRope←P1380(rope←v12184)
   word rope←v12184;
   {
   register ptr gf←c56128 =  (ptr) &globalframe;
   word color←v12228;
   word stream←v18564 = 0;
   word version←v18592;
   /* ColorFromRope: */ 
SOURCE(8638, 200)
SOURCE(8638, 200)
   color←v12228 = 0;
SOURCE(8736, 33)
   version←v18592 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c56128)+172)/* var←c51744 */  ))+4) ) );
SOURCE(8771, 21)
   {
      word pd99;
      pd99 = (* (( (ptr) (* (( (ptr) gf←c56128)+170)/* var←c51680 */  ))+33) );
      stream←v18564 = (word) ( *( (fPt) ((*  (ptr) pd99 ))))(rope←v12184, 0, pd99);
      };
SOURCE(8794, 44)
   {
      word pd100;
      pd100 = (* (( (ptr) (* (( (ptr) gf←c56128)+173)/* var←c51776 */  ))+16) );
      color←v12228 = (word) ( *( (fPt) ((*  (ptr) pd100 ))))(stream←v18564, version←v18592, pd100);
      };
SOURCE(8638, 200)
   return(color←v12228);
   }

static word ColorToRGBRope←P1440(formal←c0596)
   word formal←c0596;
   {
   W6 var←c56160;
   /* declaration of color←v12288 skipped */ 
   register ptr gf←c56192 =  (ptr) &globalframe;
   /* declaration of rope←v12332 skipped */ 
   var←c56160.f4/* color←v12288 */  = formal←c0596;
   /* ColorToRGBRope: */ 
SOURCE(8844, 388)
SOURCE(8844, 388)
   var←c56160.f5/* rope←v12332 */  = 0;
SOURCE(8922, 310)
SOURCE(8924, 270)
   {
      word var←c01;
      {
         word var←c0578;
         var←c0578 = (word) &var←c56160;
         var←c01 = (word) XR←Enable(( ((word)  (fPt) NoName←Q4536) ), ( ((word)  (fPt) NoName←Q4956) ), var←c0578);
         };
      if ((var←c01 == 2)) {
         goto lab←L100050;
         };
      };
   goto lab←L100054;
   lab←L100050: ;
SOURCE(9211, 18)
   var←c56160.f5/* rope←v12332 */  = (* (( (ptr) gf←c56192)+51) );
   lab←L100054: ;
SOURCE(8844, 388)
   return(var←c56160.f5/* rope←v12332 */ );
   }

static word NoName←Q4536(formal←c0532)
   word formal←c0532;
   {
   register ptr gf←c0531 =  (ptr) &globalframe;
SOURCE(8977, 51)
   {
      word constantColor←v18636;
      word red←v18664;
      word green←v18692;
      word blue←v18720;
SOURCE(8977, 51)
      if (((* (( (ptr) formal←c0532)+4) ) == 0)) {
         goto lab←L100053;
         };
      if (((*  (ptr) (* (( (ptr) formal←c0532)+4) ) ) == 0)) {
         goto lab←L100053;
         };
      (void) XR←RaiseError(XR←NarrowFault, 0);
      lab←L100053: ;
      constantColor←v18636 = (* (( (ptr) formal←c0532)+4) );
SOURCE(9054, 54)
      {
         W3 var←c51904;
         {
            word pd101;
            pd101 = (* (( (ptr) (* (( (ptr) gf←c0531)+176)/* var←c51872 */  ))+34) );
            (void) ( *( (fPt) ((*  (ptr) pd101 ))))((word) &var←c51904, constantColor←v18636, pd101);
            };
         blue←v18720 = var←c51904.f2;
         green←v18692 = var←c51904.f1;
         red←v18664 = var←c51904.f0;
         };
SOURCE(9110, 84)
      {
         W2 var←c51936;
         W2 var←c51968;
         W2 var←c52000;
         var←c51936.f0 = 8;
         var←c51936.f1 = red←v18664;
         var←c51968.f0 = 8;
         var←c51968.f1 = green←v18692;
         var←c52000.f0 = 8;
         var←c52000.f1 = blue←v18720;
         {
            word pd102;
            pd102 = (* (( (ptr) (* (( (ptr) gf←c0531)+170)/* var←c51680 */  ))+62) );
            (* (( (ptr) formal←c0532)+5) ) = (word) ( *( (fPt) ((*  (ptr) pd102 ))))((* (( (ptr) gf←c0531)+52) ), var←c51936, var←c51968, var←c52000, pd102)
            ;
            };
         };
      };
   return(0);
   }

static word ColorToCMYKRope←P1500(formal←c0597)
   word formal←c0597;
   {
   W6 var←c56224;
   /* declaration of color←v12392 skipped */ 
   register ptr gf←c56256 =  (ptr) &globalframe;
   /* declaration of rope←v12436 skipped */ 
   var←c56224.f4/* color←v12392 */  = formal←c0597;
   /* ColorToCMYKRope: */ 
SOURCE(9236, 527)
SOURCE(9236, 527)
   var←c56224.f5/* rope←v12436 */  = 0;
SOURCE(9315, 448)
SOURCE(9317, 407)
   {
      word var←c02;
      {
         word var←c0579;
         var←c0579 = (word) &var←c56224;
         var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q4596) ), ( ((word)  (fPt) NoName←Q4896) ), var←c0579);
         };
      if ((var←c02 == 3)) {
         goto lab←L100055;
         };
      };
   goto lab←L100059;
   lab←L100055: ;
SOURCE(9741, 19)
   var←c56224.f5/* rope←v12436 */  = (* (( (ptr) gf←c56256)+41) );
   lab←L100059: ;
SOURCE(9236, 527)
   return(var←c56224.f5/* rope←v12436 */ );
   }

static word NoName←Q4596(formal←c0535)
   word formal←c0535;
   {
   register ptr gf←c0534 =  (ptr) &globalframe;
SOURCE(9370, 51)
   {
      word constantColor←v18764;
      word cyan←v18792;
      word magenta←v18820;
      word yellow←v18848;
      word black←v18876;
SOURCE(9370, 51)
      if (((* (( (ptr) formal←c0535)+4) ) == 0)) {
         goto lab←L100058;
         };
      if (((*  (ptr) (* (( (ptr) formal←c0535)+4) ) ) == 0)) {
         goto lab←L100058;
         };
      (void) XR←RaiseError(XR←NarrowFault, 0);
      lab←L100058: ;
      constantColor←v18764 = (* (( (ptr) formal←c0535)+4) );
SOURCE(9459, 63)
      if ( ( (constantColor←v18764 == 0) ?  ! 1 :  ! ((* (( (ptr) constantColor←v18764)+1) ) == 0) ) ) {
SOURCE(9522, 10)
         return(3);
         };
SOURCE(9534, 70)
      {
         W4 var←c52064;
         {
            word pd103;
            pd103 = (* (( (ptr) (* (( (ptr) gf←c0534)+177)/* var←c52032 */  ))+7) );
            (void) ( *( (fPt) ((*  (ptr) pd103 ))))((word) &var←c52064, constantColor←v18764, pd103);
            };
         black←v18876 = var←c52064.f3;
         yellow←v18848 = var←c52064.f2;
         magenta←v18820 = var←c52064.f1;
         cyan←v18792 = var←c52064.f0;
         };
SOURCE(9606, 118)
      {
         word var←c52096;
         {
            word var←c52128;
            word var←c52160;
            var←c52128 = XR←NewObject(12, (* (( (ptr) gf←c0534)+17) ));
            var←c52160 = var←c52128;
            (*  (ptr) var←c52160 ) = 8;
            (* (( (ptr) var←c52160)+1) ) = cyan←v18792;
            (* (( (ptr) var←c52160)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c0534)+17) ));
            var←c52160 = (* (( (ptr) var←c52160)+2) );
            (*  (ptr) var←c52160 ) = 8;
            (* (( (ptr) var←c52160)+1) ) = magenta←v18820;
            (* (( (ptr) var←c52160)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c0534)+17) ));
            var←c52160 = (* (( (ptr) var←c52160)+2) );
            (*  (ptr) var←c52160 ) = 8;
            (* (( (ptr) var←c52160)+1) ) = yellow←v18848;
            (* (( (ptr) var←c52160)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c0534)+17) ));
            var←c52160 = (* (( (ptr) var←c52160)+2) );
            (*  (ptr) var←c52160 ) = 8;
            (* (( (ptr) var←c52160)+1) ) = black←v18876;
            var←c52096 = var←c52128;
            };
         {
            word pd104;
            pd104 = (* (( (ptr) (* (( (ptr) gf←c0534)+170)/* var←c51680 */  ))+65) );
            (* (( (ptr) formal←c0535)+5) ) = (word) ( *( (fPt) ((*  (ptr) pd104 ))))((* (( (ptr) gf←c0534)+47) ), var←c52096, pd104);
            };
         };
      };
   return(0);
   }

static word ColorToIntensityRope←P1560(formal←c0598)
   word formal←c0598;
   {
   W6 var←c56288;
   /* declaration of color←v12496 skipped */ 
   register ptr gf←c56320 =  (ptr) &globalframe;
   /* declaration of rope←v12540 skipped */ 
   var←c56288.f4/* color←v12496 */  = formal←c0598;
   /* ColorToIntensityRope: */ 
SOURCE(9767, 354)
SOURCE(9767, 354)
   var←c56288.f5/* rope←v12540 */  = 0;
SOURCE(9851, 270)
SOURCE(9853, 224)
   {
      word var←c03;
      {
         word var←c0580;
         var←c0580 = (word) &var←c56288;
         var←c03 = (word) XR←Enable(( ((word)  (fPt) NoName←Q4656) ), ( ((word)  (fPt) NoName←Q4836) ), var←c0580);
         };
      if ((var←c03 == 4)) {
         goto lab←L100060;
         };
      };
   goto lab←L100064;
   lab←L100060: ;
SOURCE(10094, 24)
   var←c56288.f5/* rope←v12540 */  = (* (( (ptr) gf←c56320)+27) );
   lab←L100064: ;
SOURCE(9767, 354)
   return(var←c56288.f5/* rope←v12540 */ );
   }

static word NoName←Q4656(formal←c0538)
   word formal←c0538;
   {
   register ptr gf←c0537 =  (ptr) &globalframe;
SOURCE(9906, 51)
   {
      word constantColor←v18920;
      word intensity←v18948;
SOURCE(9906, 51)
      if (((* (( (ptr) formal←c0538)+4) ) == 0)) {
         goto lab←L100063;
         };
      if (((*  (ptr) (* (( (ptr) formal←c0538)+4) ) ) == 0)) {
         goto lab←L100063;
         };
      (void) XR←RaiseError(XR←NarrowFault, 0);
      lab←L100063: ;
      constantColor←v18920 = (* (( (ptr) formal←c0538)+4) );
SOURCE(9959, 60)
      {
         word pd105;
         pd105 = (* (( (ptr) (* (( (ptr) gf←c0537)+177)/* var←c52032 */  ))+8) );
         intensity←v18948 = (word) ( *( (fPt) ((*  (ptr) pd105 ))))(constantColor←v18920, pd105);
         };
SOURCE(10021, 56)
      {
         W2 var←c52192;
         var←c52192.f0 = 8;
         var←c52192.f1 = intensity←v18948;
         {
            word pd106;
            pd106 = (* (( (ptr) (* (( (ptr) gf←c0537)+170)/* var←c51680 */  ))+63) );
            (* (( (ptr) formal←c0538)+5) ) = (word) ( *( (fPt) ((*  (ptr) pd106 ))))((* (( (ptr) gf←c0537)+28) ), var←c52192, pd106);
            };
         };
      };
   return(0);
   }

static word ColorToNameRope←P1620(formal←c0599)
   word formal←c0599;
   {
   W6 var←c56352;
   /* declaration of color←v12600 skipped */ 
   register ptr gf←c56384 =  (ptr) &globalframe;
   /* declaration of rope←v12644 skipped */ 
   var←c56352.f4/* color←v12600 */  = formal←c0599;
   /* ColorToNameRope: */ 
SOURCE(10125, 367)
SOURCE(10125, 367)
   var←c56352.f5/* rope←v12644 */  = 0;
SOURCE(10204, 288)
SOURCE(10206, 253)
   {
      word var←c04;
      {
         word var←c0581;
         var←c0581 = (word) &var←c56352;
         var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q4716) ), ( ((word)  (fPt) NoName←Q4776) ), var←c0581);
         };
      if ((var←c04 == 5)) {
         goto lab←L100065;
         };
      };
   goto lab←L100069;
   lab←L100065: ;
SOURCE(10476, 13)
   var←c56352.f5/* rope←v12644 */  = (* (( (ptr) gf←c56384)+25) );
   lab←L100069: ;
SOURCE(10125, 367)
   return(var←c56352.f5/* rope←v12644 */ );
   }

static word NoName←Q4716(formal←c0541)
   word formal←c0541;
   {
   register ptr gf←c0540 =  (ptr) &globalframe;
SOURCE(10259, 51)
   {
      word constantColor←v18992;
      word red←v19020;
      word green←v19048;
      word blue←v19076;
SOURCE(10259, 51)
      if (((* (( (ptr) formal←c0541)+4) ) == 0)) {
         goto lab←L100068;
         };
      if (((*  (ptr) (* (( (ptr) formal←c0541)+4) ) ) == 0)) {
         goto lab←L100068;
         };
      (void) XR←RaiseError(XR←NarrowFault, 0);
      lab←L100068: ;
      constantColor←v18992 = (* (( (ptr) formal←c0541)+4) );
SOURCE(10336, 54)
      {
         W3 var←c52224;
         {
            word pd107;
            pd107 = (* (( (ptr) (* (( (ptr) gf←c0540)+176)/* var←c51872 */  ))+34) );
            (void) ( *( (fPt) ((*  (ptr) pd107 ))))((word) &var←c52224, constantColor←v18992, pd107);
            };
         blue←v19076 = var←c52224.f2;
         green←v19048 = var←c52224.f1;
         red←v19020 = var←c52224.f0;
         };
SOURCE(10392, 67)
      {
         W3 var←c52256;
         {
            W3 var←c0285;
            {
               W3 var←c52288;
               var←c52288.f0 = red←v19020;
               var←c52288.f1 = green←v19048;
               var←c52288.f2 = blue←v19076;
               {
                  word pd108;
                  pd108 = (* (( (ptr) (* (( (ptr) gf←c0540)+169)/* var←c51488 */  ))+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd108 ))))((word) &var←c0285, var←c52288, pd108);
                  };
               };
            var←c52256 = var←c0285;
            };
         {
            word pd109;
            pd109 = (* (( (ptr) (* (( (ptr) gf←c0540)+178)/* var←c52320 */  ))+7) );
            (* (( (ptr) formal←c0541)+5) ) = (word) ( *( (fPt) ((*  (ptr) pd109 ))))(var←c52256, 2, pd109);
            };
         };
      };
   return(0);
   }

static word PolygonInCircle←P1680(sideCount←v12704, origin←v12732, radius←v12760, defaults←v12788)
   word sideCount←v12704;
   W2 origin←v12732;
   word radius←v12760;
   word defaults←v12788;
   {
   register ptr gf←c56416 =  (ptr) &globalframe;
   word outline←v12832;
   word traj←v19120 = 0;
   word theta0←v19148;
   word theta←v19176;
   word deltaTheta←v19204;
   word sin←v19232;
   word cos←v19260;
   W2 lastPoint←v19288;
   W2 thisPoint←v19316;
   word success←v19344;
   word seg←v19372 = 0;
   /* PolygonInCircle: */ 
SOURCE(10495, 1477)
SOURCE(10495, 1477)
   outline←v12832 = 0;
SOURCE(10735, 33)
   if ((sideCount←v12704 == 0)) {
SOURCE(10757, 11)
      return(0);
      };
SOURCE(10770, 28)
   {
      word x111;
      *(float*)&deltaTheta←v19204 = (
         x111 = (*  (ptr) &fc110 ),  *(float*)&x111
         ) / (float)(unsigned)sideCount←v12704;
      };
SOURCE(10800, 31)
   {
      word x113;
      word x114;
      word x116;
      *(float*)&theta0←v19148 = (
         x113 = (*  (ptr) &fc112 ),  *(float*)&x113
         ) + ((
         x114 = deltaTheta←v19204,  *(float*)&x114
         ) / (
         x116 = (*  (ptr) &fc115 ),  *(float*)&x116
         ));
      };
SOURCE(10833, 28)
   {
      word pd117;
      pd117 = (* (( (ptr) (* (( (ptr) gf←c56416)+179)/* var←c52352 */  ))+11) );
      sin←v19232 = (word) ( *( (fPt) ((*  (ptr) pd117 ))))(theta0←v19148, pd117);
      };
SOURCE(10863, 28)
   {
      word pd118;
      pd118 = (* (( (ptr) (* (( (ptr) gf←c56416)+179)/* var←c52352 */  ))+13) );
      cos←v19260 = (word) ( *( (fPt) ((*  (ptr) pd118 ))))(theta0←v19148, pd118);
      };
SOURCE(10893, 70)
   {
      W2 var←c52384;
      {
         W2 var←c0303;
         {
            W2 var←c52416;
            var←c52416.f0 = cos←v19260;
            var←c52416.f1 = sin←v19232;
            {
               word pd119;
               pd119 = (* (( (ptr) (* (( (ptr) gf←c56416)+180)/* var←c52448 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd119 ))))((word) &var←c0303, var←c52416, radius←v12760, pd119);
               };
            };
         var←c52384 = var←c0303;
         };
      {
         W2 var←c0304;
         {
            word pd120;
            pd120 = (* (( (ptr) (* (( (ptr) gf←c56416)+180)/* var←c52448 */  ))+10) );
            (void) ( *( (fPt) ((*  (ptr) pd120 ))))((word) &var←c0304, var←c52384, origin←v12732, pd120);
            };
         thisPoint←v19316 = var←c0304;
         };
      };
SOURCE(10965, 35)
   {
      word pd121;
      pd121 = (* (( (ptr) (* (( (ptr) gf←c56416)+181)/* var←c52480 */  ))+4) );
      traj←v19120 = (word) ( *( (fPt) ((*  (ptr) pd121 ))))(thisPoint←v19316, pd121);
      };
SOURCE(11002, 21)
   lastPoint←v19288 = thisPoint←v19316;
SOURCE(11025, 418)
   {
      register word i←v19416 = 1;
      register word noName←c52512;
      noName←c52512 = sideCount←v12704;
      if ((i←v19416 >= noName←c52512)) {
         goto lab←L100070;
         };
      lab←L100073: ;
SOURCE(11057, 29)
      {
         word x122;
         word x123;
         *(float*)&theta←v19176 = (
            x122 = theta0←v19148,  *(float*)&x122
            ) + ((float)(unsigned)i←v19416 * (
            x123 = deltaTheta←v19204,  *(float*)&x123
            ));
         };
SOURCE(11088, 27)
      {
         word pd124;
         pd124 = (* (( (ptr) (* (( (ptr) gf←c56416)+179)/* var←c52352 */  ))+11) );
         sin←v19232 = (word) ( *( (fPt) ((*  (ptr) pd124 ))))(theta←v19176, pd124);
         };
SOURCE(11117, 27)
      {
         word pd125;
         pd125 = (* (( (ptr) (* (( (ptr) gf←c56416)+179)/* var←c52352 */  ))+13) );
         cos←v19260 = (word) ( *( (fPt) ((*  (ptr) pd125 ))))(theta←v19176, pd125);
         };
SOURCE(11146, 70)
      {
         W2 var←c52544;
         {
            W2 var←c0309;
            {
               W2 var←c52576;
               var←c52576.f0 = cos←v19260;
               var←c52576.f1 = sin←v19232;
               {
                  word pd126;
                  pd126 = (* (( (ptr) (* (( (ptr) gf←c56416)+180)/* var←c52448 */  ))+12) );
                  (void) ( *( (fPt) ((*  (ptr) pd126 ))))((word) &var←c0309, var←c52576, radius←v12760, pd126);
                  };
               };
            var←c52544 = var←c0309;
            };
         {
            W2 var←c0310;
            {
               word pd127;
               pd127 = (* (( (ptr) (* (( (ptr) gf←c56416)+180)/* var←c52448 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd127 ))))((word) &var←c0310, var←c52544, origin←v12732, pd127);
               };
            thisPoint←v19316 = var←c0310;
            };
         };
SOURCE(11218, 51)
      {
         word pd128;
         pd128 = (* (( (ptr) (* (( (ptr) gf←c56416)+182)/* var←c52608 */  ))+5) );
         seg←v19372 = (word) ( *( (fPt) ((*  (ptr) pd128 ))))(lastPoint←v19288, thisPoint←v19316, 0, pd128);
         };
SOURCE(11271, 36)
      {
         word pd129;
         pd129 = (* (( (ptr) (* (( (ptr) gf←c56416)+182)/* var←c52608 */  ))+16) );
         (void) ( *( (fPt) ((*  (ptr) pd129 ))))(seg←v19372, defaults←v12788, pd129);
         };
SOURCE(11309, 46)
      {
         word pd130;
         pd130 = (* (( (ptr) (* (( (ptr) gf←c56416)+181)/* var←c52480 */  ))+6) );
         success←v19344 = (word) ( *( (fPt) ((*  (ptr) pd130 ))))(traj←v19120, 1, seg←v19372, 0, pd130);
         };
SOURCE(11357, 63)
      if ((0 == success←v19344)) {
SOURCE(11377, 43)
         {
            word var←c0311;
            var←c0311 = (* (( (ptr) gf←c56416)+24) );
            (void) (XR←RaiseSignal((word) (( (bPt) gf←c56416)+224), 0, (word) &var←c0311));
            };
         };
SOURCE(11422, 21)
      lastPoint←v19288 = thisPoint←v19316;
      i←v19416 = (i←v19416 + 1);
      if ((i←v19416 < noName←c52512)) {
         goto lab←L100073;
         };
      lab←L100070: ;
      };
SOURCE(11454, 28)
   {
      word pd131;
      pd131 = (* (( (ptr) (* (( (ptr) gf←c56416)+179)/* var←c52352 */  ))+11) );
      sin←v19232 = (word) ( *( (fPt) ((*  (ptr) pd131 ))))(theta0←v19148, pd131);
      };
SOURCE(11484, 28)
   {
      word pd132;
      pd132 = (* (( (ptr) (* (( (ptr) gf←c56416)+179)/* var←c52352 */  ))+13) );
      cos←v19260 = (word) ( *( (fPt) ((*  (ptr) pd132 ))))(theta0←v19148, pd132);
      };
SOURCE(11514, 70)
   {
      W2 var←c52640;
      {
         W2 var←c0314;
         {
            W2 var←c52672;
            var←c52672.f0 = cos←v19260;
            var←c52672.f1 = sin←v19232;
            {
               word pd133;
               pd133 = (* (( (ptr) (* (( (ptr) gf←c56416)+180)/* var←c52448 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd133 ))))((word) &var←c0314, var←c52672, radius←v12760, pd133);
               };
            };
         var←c52640 = var←c0314;
         };
      {
         W2 var←c0315;
         {
            word pd134;
            pd134 = (* (( (ptr) (* (( (ptr) gf←c56416)+180)/* var←c52448 */  ))+10) );
            (void) ( *( (fPt) ((*  (ptr) pd134 ))))((word) &var←c0315, var←c52640, origin←v12732, pd134);
            };
         thisPoint←v19316 = var←c0315;
         };
      };
SOURCE(11586, 51)
   {
      word pd135;
      pd135 = (* (( (ptr) (* (( (ptr) gf←c56416)+182)/* var←c52608 */  ))+5) );
      seg←v19372 = (word) ( *( (fPt) ((*  (ptr) pd135 ))))(lastPoint←v19288, thisPoint←v19316, 0, pd135);
      };
SOURCE(11639, 36)
   {
      word pd136;
      pd136 = (* (( (ptr) (* (( (ptr) gf←c56416)+182)/* var←c52608 */  ))+16) );
      (void) ( *( (fPt) ((*  (ptr) pd136 ))))(seg←v19372, defaults←v12788, pd136);
      };
SOURCE(11677, 38)
   {
      word pd137;
      pd137 = (* (( (ptr) (* (( (ptr) gf←c56416)+181)/* var←c52480 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd137 ))))(traj←v19120, seg←v19372, 0, pd137);
      };
SOURCE(11717, 71)
   {
      word var←c52704;
      {
         word pd138;
         pd138 = (* (( (ptr) (* (( (ptr) gf←c56416)+168)/* var←c51456 */  ))+11) );
         var←c52704 = (word) ( *( (fPt) ((*  (ptr) pd138 ))))((*  (ptr) (&fc139) ), pd138);
         };
      {
         word pd140;
         pd140 = (* (( (ptr) (* (( (ptr) gf←c56416)+183)/* var←c52736 */  ))+5) );
         outline←v12832 = (word) ( *( (fPt) ((*  (ptr) pd140 ))))(traj←v19120, var←c52704, pd140);
         };
      };
SOURCE(11790, 112)
   {
      word var←c52768;
      {
         word pd141;
         pd141 = (* (( (ptr) (* (( (ptr) gf←c56416)+184)/* var←c52800 */  ))+29) );
         var←c52768 = (* (( (ptr) ( *( (fPt) ((*  (ptr) pd141 ))))(outline←v12832, 0, 7, pd141))+1) );
         };
      {
         word pd142;
         pd142 = (* (( (ptr) (* (( (ptr) gf←c56416)+184)/* var←c52800 */  ))+57) );
         (void) ( *( (fPt) ((*  (ptr) pd142 ))))(outline←v12832, var←c52768, (* (( (ptr) defaults←v12788)+1) ), 0, pd142);
         };
      };
SOURCE(11904, 68)
   {
      word pd143;
      pd143 = (* (( (ptr) (* (( (ptr) gf←c56416)+184)/* var←c52800 */  ))+61) );
      (void) ( *( (fPt) ((*  (ptr) pd143 ))))(outline←v12832, 0, (* (( (ptr) defaults←v12788)+8) ), (* (( (ptr) gf←c56416)+26) ), 0, pd143)
      ;
      };
SOURCE(10495, 1477)
   return(outline←v12832);
   }

static word Box←P1740(origin←v12892, sideLength←v12920, defaults←v12948)
   W2 origin←v12892;
   word sideLength←v12920;
   word defaults←v12948;
   {
   register ptr gf←c56448 =  (ptr) &globalframe;
   word slice←v12992;
   word halfSide←v19460;
   word box←v19488;
   word sliceD←v19516;
   word completeSliceD←v19544;
   /* Box: */ 
SOURCE(11978, 515)
SOURCE(11978, 515)
   slice←v12992 = 0;
SOURCE(12079, 31)
   {
      word x144;
      word x145;
      *(float*)&halfSide←v19460 = (
         x144 = sideLength←v12920,  *(float*)&x144
         ) / (
         x145 = (*  (ptr) &fc115 ),  *(float*)&x145
         );
      };
SOURCE(12112, 128)
   {
      word pd146;
      word x147;
      word x148;
      float tf149;
      word x150;
      word x151;
      float tf152;
      word x153;
      word x154;
      float tf155;
      word x156;
      word x157;
      float tf158;
      pd146 = (* (( (ptr) (* (( (ptr) gf←c56448)+185)/* var←c52832 */  ))+5) );
      box←v19488 = (word) ( *( (fPt) ((*  (ptr) pd146 ))))((
            tf149 = (
               x147 = origin←v12892.f0,  *(float*)&x147
               ) - (
               x148 = halfSide←v19460,  *(float*)&x148
               ),  *(word*)&tf149
            ), (
            tf152 = (
               x150 = origin←v12892.f1,  *(float*)&x150
               ) - (
               x151 = halfSide←v19460,  *(float*)&x151
               ),  *(word*)&tf152
            ), (
            tf155 = (
               x153 = origin←v12892.f0,  *(float*)&x153
               ) + (
               x154 = halfSide←v19460,  *(float*)&x154
               ),  *(word*)&tf155
            ), (
            tf158 = (
               x156 = origin←v12892.f1,  *(float*)&x156
               ) + (
               x157 = halfSide←v19460,  *(float*)&x157
               ),  *(word*)&tf158
            ), 0, 0, pd146);
      };
SOURCE(12242, 80)
   {
      word var←c52864;
      {
         word pd159;
         pd159 = (* (( (ptr) (* (( (ptr) gf←c56448)+186)/* var←c52896 */  ))+4) );
         var←c52864 = (word) ( *( (fPt) ((*  (ptr) pd159 ))))(pd159);
         };
      {
         word pd160;
         pd160 = (* (( (ptr) (* (( (ptr) gf←c56448)+187)/* var←c52928 */  ))+45) );
         sliceD←v19516 = (word) ( *( (fPt) ((*  (ptr) pd160 ))))(box←v19488, 2, var←c52864, pd160);
         };
      };
SOURCE(12324, 79)
   {
      word pd161;
      pd161 = (* (( (ptr) (* (( (ptr) gf←c56448)+184)/* var←c52800 */  ))+29) );
      completeSliceD←v19544 = (word) ( *( (fPt) ((*  (ptr) pd161 ))))((*  (ptr) sliceD←v19516 ), 0, 6, pd161);
      };
SOURCE(12405, 20)
   slice←v12992 = (*  (ptr) sliceD←v19516 );
SOURCE(12427, 66)
   {
      word pd162;
      pd162 = (* (( (ptr) (* (( (ptr) gf←c56448)+184)/* var←c52800 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd162 ))))(slice←v12992, (* (( (ptr) completeSliceD←v19544)+1) ), defaults←v12948, 0, pd162)
      ;
      };
SOURCE(11978, 515)
   return(slice←v12992);
   }

static word Circle←P1800(origin←v13052, radius←v13080, defaults←v13108)
   W2 origin←v13052;
   word radius←v13080;
   word defaults←v13108;
   {
   register ptr gf←c56480 =  (ptr) &globalframe;
   word slice←v13152;
   W2 outerPoint←v19588;
   word sliceD←v19616;
   word completeSliceD←v19644;
   /* Circle: */ 
SOURCE(12499, 391)
SOURCE(12499, 391)
   slice←v13152 = 0;
SOURCE(12599, 49)
   {
      word x163;
      word x164;
      *(float*)&outerPoint←v19588.f0 = (
         x163 = origin←v13052.f0,  *(float*)&x163
         ) + (
         x164 = radius←v13080,  *(float*)&x164
         );
      };
   outerPoint←v19588.f1 = origin←v13052.f1;
SOURCE(12650, 69)
   {
      word pd165;
      pd165 = (* (( (ptr) (* (( (ptr) gf←c56480)+187)/* var←c52928 */  ))+52) );
      sliceD←v19616 = (word) ( *( (fPt) ((*  (ptr) pd165 ))))(origin←v13052, outerPoint←v19588, pd165);
      };
SOURCE(12721, 79)
   {
      word pd166;
      pd166 = (* (( (ptr) (* (( (ptr) gf←c56480)+184)/* var←c52800 */  ))+29) );
      completeSliceD←v19644 = (word) ( *( (fPt) ((*  (ptr) pd166 ))))((*  (ptr) sliceD←v19616 ), 0, 6, pd166);
      };
SOURCE(12802, 20)
   slice←v13152 = (*  (ptr) sliceD←v19616 );
SOURCE(12824, 66)
   {
      word pd167;
      pd167 = (* (( (ptr) (* (( (ptr) gf←c56480)+184)/* var←c52800 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd167 ))))(slice←v13152, (* (( (ptr) completeSliceD←v19644)+1) ), defaults←v13108, 0, pd167)
      ;
      };
SOURCE(12499, 391)
   return(slice←v13152);
   }

static word KnotchedLine←P1860(p0←v13212, p1←v13240, segmentCount←v13268)
   W2 p0←v13212;
   W2 p1←v13240;
   word segmentCount←v13268;
   {
   register ptr gf←c56512 =  (ptr) &globalframe;
   word outline←v13312;
   W2 delta←v19688;
   W2 lastPoint←v19716;
   W2 thisPoint←v19744;
   word traj←v19772 = 0;
   word seg←v19800 = 0;
   word success←v19828;
   /* KnotchedLine: */ 
SOURCE(12896, 819)
SOURCE(12896, 819)
   outline←v13312 = 0;
SOURCE(13071, 64)
   {
      W2 var←c52992;
      {
         word pd168;
         pd168 = (* (( (ptr) (* (( (ptr) gf←c56512)+180)/* var←c52448 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd168 ))))((word) &var←c52992, p1←v13240, p0←v13212, pd168);
         };
      {
         W2 var←c0346;
         {
            word pd169;
            word x171;
            float tf172;
            pd169 = (* (( (ptr) (* (( (ptr) gf←c56512)+180)/* var←c52448 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd169 ))))((word) &var←c0346, var←c52992, (
                  tf172 = (
                     x171 = (*  (ptr) &fc170 ),  *(float*)&x171
                     ) / (float)(unsigned)segmentCount←v13268,  *(word*)&tf172
                  ), pd169);
            };
         delta←v19688 = var←c0346;
         };
      };
SOURCE(13137, 14)
   lastPoint←v19716 = p0←v13212;
SOURCE(13153, 35)
   {
      word pd173;
      pd173 = (* (( (ptr) (* (( (ptr) gf←c56512)+181)/* var←c52480 */  ))+4) );
      traj←v19772 = (word) ( *( (fPt) ((*  (ptr) pd173 ))))(lastPoint←v19716, pd173);
      };
SOURCE(13190, 261)
   {
      register word noName←c53024 = 1;
      register word noName←c53056;
      noName←c53056 = segmentCount←v13268;
      if ((noName←c53024 >= noName←c53056)) {
         goto lab←L100074;
         };
      lab←L100077: ;
SOURCE(13219, 43)
      {
         word pd174;
         pd174 = (* (( (ptr) (* (( (ptr) gf←c56512)+180)/* var←c52448 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd174 ))))((word) &thisPoint←v19744, lastPoint←v19716, delta←v19688, pd174);
         };
SOURCE(13264, 51)
      {
         word pd175;
         pd175 = (* (( (ptr) (* (( (ptr) gf←c56512)+182)/* var←c52608 */  ))+5) );
         seg←v19800 = (word) ( *( (fPt) ((*  (ptr) pd175 ))))(lastPoint←v19716, thisPoint←v19744, 0, pd175);
         };
SOURCE(13317, 46)
      {
         word pd176;
         pd176 = (* (( (ptr) (* (( (ptr) gf←c56512)+181)/* var←c52480 */  ))+6) );
         success←v19828 = (word) ( *( (fPt) ((*  (ptr) pd176 ))))(traj←v19772, 1, seg←v19800, 0, pd176);
         };
SOURCE(13365, 63)
      if ((0 == success←v19828)) {
SOURCE(13385, 43)
         {
            word var←c0350;
            var←c0350 = (* (( (ptr) gf←c56512)+24) );
            (void) (XR←RaiseSignal((word) (( (bPt) gf←c56512)+224), 0, (word) &var←c0350));
            };
         };
SOURCE(13430, 21)
      lastPoint←v19716 = thisPoint←v19744;
      noName←c53024 = (noName←c53024 + 1);
      if ((noName←c53024 < noName←c53056)) {
         goto lab←L100077;
         };
      lab←L100074: ;
      };
SOURCE(13462, 14)
   thisPoint←v19744 = p1←v13240;
SOURCE(13478, 51)
   {
      word pd177;
      pd177 = (* (( (ptr) (* (( (ptr) gf←c56512)+182)/* var←c52608 */  ))+5) );
      seg←v19800 = (word) ( *( (fPt) ((*  (ptr) pd177 ))))(lastPoint←v19716, thisPoint←v19744, 0, pd177);
      };
SOURCE(13531, 46)
   {
      word pd178;
      pd178 = (* (( (ptr) (* (( (ptr) gf←c56512)+181)/* var←c52480 */  ))+6) );
      success←v19828 = (word) ( *( (fPt) ((*  (ptr) pd178 ))))(traj←v19772, 1, seg←v19800, 0, pd178);
      };
SOURCE(13579, 63)
   if ((0 == success←v19828)) {
SOURCE(13599, 43)
      {
         word var←c0351;
         var←c0351 = (* (( (ptr) gf←c56512)+24) );
         (void) (XR←RaiseSignal((word) (( (bPt) gf←c56512)+224), 0, (word) &var←c0351));
         };
      };
SOURCE(13644, 71)
   {
      word var←c53088;
      {
         word pd179;
         pd179 = (* (( (ptr) (* (( (ptr) gf←c56512)+168)/* var←c51456 */  ))+11) );
         var←c53088 = (word) ( *( (fPt) ((*  (ptr) pd179 ))))((*  (ptr) (&fc139) ), pd179);
         };
      {
         word pd180;
         pd180 = (* (( (ptr) (* (( (ptr) gf←c56512)+183)/* var←c52736 */  ))+5) );
         outline←v13312 = (word) ( *( (fPt) ((*  (ptr) pd180 ))))(traj←v19772, var←c53088, pd180);
         };
      };
SOURCE(12896, 819)
   return(outline←v13312);
   }

static word DescribeTraj←P1920(traj←v13372)
   word traj←v13372;
   {
   register ptr gf←c56544 =  (ptr) &globalframe;
   word text←v13416;
   word trajData←v19872;
   /* DescribeTraj: */ 
SOURCE(13720, 378)
SOURCE(13720, 378)
   text←v13416 = 0;
SOURCE(13789, 38)
   trajData←v19872 = XR←Narrow((* (( (ptr) traj←v13372)+1) ), (* (( (ptr) gf←c56544)+21) ));
SOURCE(13829, 269)
   {
      word var←c53120;
      var←c53120 = (*  (ptr) trajData←v19872 );
      switch (var←c53120) {
         case 2: 
            {
               W2 var←c53152;
               var←c53152.f0 = 5;
               var←c53152.f1 = (* (( (ptr) trajData←v19872)+1) );
               {
                  word pd181;
                  pd181 = (* (( (ptr) (* (( (ptr) gf←c56544)+170)/* var←c51680 */  ))+63) );
                  text←v13416 = (word) ( *( (fPt) ((*  (ptr) pd181 ))))((* (( (ptr) gf←c56544)+29) ), var←c53152, pd181);
                  };
               };
            break;
         case 0: 
            {
               W2 var←c53184;
               var←c53184.f0 = 5;
               var←c53184.f1 = (* (( (ptr) trajData←v19872)+1) );
               {
                  word pd182;
                  pd182 = (* (( (ptr) (* (( (ptr) gf←c56544)+170)/* var←c51680 */  ))+63) );
                  text←v13416 = (word) ( *( (fPt) ((*  (ptr) pd182 ))))((* (( (ptr) gf←c56544)+30) ), var←c53184, pd182);
                  };
               };
            break;
         case 1: 
            {
               W2 var←c53216;
               var←c53216.f0 = 5;
               var←c53216.f1 = (* (( (ptr) trajData←v19872)+1) );
               {
                  word pd183;
                  pd183 = (* (( (ptr) (* (( (ptr) gf←c56544)+170)/* var←c51680 */  ))+63) );
                  text←v13416 = (word) ( *( (fPt) ((*  (ptr) pd183 ))))((* (( (ptr) gf←c56544)+31) ), var←c53216, pd183);
                  };
               };
            break;
         default: 
            text←v13416 = (* (( (ptr) gf←c56544)+32) );
            break;
         };
      };
SOURCE(13720, 378)
   return(text←v13416);
   }

static word DescribeJoint←P1980(traj←v13476, jointNum←v13504)
   word traj←v13476;
   word jointNum←v13504;
   {
   register ptr gf←c56576 =  (ptr) &globalframe;
   word text←v13548;
   word trajData←v19916;
   word end←v19944 = 0;
   /* DescribeJoint: */ 
SOURCE(14104, 451)
SOURCE(14104, 451)
   text←v13548 = 0;
SOURCE(14189, 38)
   trajData←v19916 = XR←Narrow((* (( (ptr) traj←v13476)+1) ), (* (( (ptr) gf←c56576)+21) ));
SOURCE(14248, 39)
   {
      word pd184;
      pd184 = (* (( (ptr) (* (( (ptr) gf←c56576)+181)/* var←c52480 */  ))+45) );
      end←v19944 = (word) ( *( (fPt) ((*  (ptr) pd184 ))))(traj←v13476, jointNum←v13504, pd184);
      };
SOURCE(14289, 130)
   if ((0 != end←v19944)) {
SOURCE(14301, 64)
      {
         W2 var←c53248;
         var←c53248.f0 = 5;
         var←c53248.f1 = jointNum←v13504;
         {
            word pd185;
            pd185 = (* (( (ptr) (* (( (ptr) gf←c56576)+170)/* var←c51680 */  ))+63) );
            text←v13548 = (word) ( *( (fPt) ((*  (ptr) pd185 ))))((* (( (ptr) gf←c56576)+33) ), var←c53248, pd185);
            };
         };
      }
   else {
SOURCE(14365, 54)
      {
         W2 var←c53280;
         var←c53280.f0 = 5;
         var←c53280.f1 = jointNum←v13504;
         {
            word pd186;
            pd186 = (* (( (ptr) (* (( (ptr) gf←c56576)+170)/* var←c51680 */  ))+63) );
            text←v13548 = (word) ( *( (fPt) ((*  (ptr) pd186 ))))((* (( (ptr) gf←c56576)+34) ), var←c53280, pd186);
            };
         };
      };
SOURCE(14421, 134)
   {
      word var←c53312;
      {
         word var←c53344;
         {
            word tc187;
            word tc188;
            word pd189;
            word idx190;
            pd189 = (* (( (ptr) (* (( (ptr) gf←c56576)+181)/* var←c52480 */  ))+39) );
            if (((word) ( *( (fPt) ((*  (ptr) pd189 ))))(traj←v13476, pd189) == jointNum←v13504)) {
               tc188 =  (word) ((*  (ptr) trajData←v19916 ) == 2);
               }
            else {
               tc188 =  (word) 0;
               };
            if (tc188) {
               tc187 =  (word) (jointNum←v13504 - 1);
               }
            else {
               tc187 =  (word) jointNum←v13504;
               };
            var←c53344 = (
               idx190 = (word) tc187,
               SGNCK(idx190)
               );
            };
         var←c53312 = (word) DescribeSegment←P2100(traj←v13476, var←c53344);
         };
      {
         word pd191;
         pd191 = (* (( (ptr) (* (( (ptr) gf←c56576)+188)/* var←c53376 */  ))+6) );
         text←v13548 = (word) ( *( (fPt) ((*  (ptr) pd191 ))))(text←v13548, var←c53312, pd191);
         };
      };
SOURCE(14104, 451)
   return(text←v13548);
   }

static word DescribeControlPoint←P2040(traj←v13608, segNum←v13636, cpNum←v13664)
   word traj←v13608;
   word segNum←v13636;
   word cpNum←v13664;
   {
   register ptr gf←c56608 =  (ptr) &globalframe;
   word text←v13708;
   /* DescribeControlPoint: */ 
SOURCE(14561, 205)
SOURCE(14561, 205)
   text←v13708 = 0;
SOURCE(14663, 103)
   {
      word var←c53408;
      word var←c53472;
      {
         W2 var←c53440;
         var←c53440.f0 = 5;
         var←c53440.f1 = cpNum←v13664;
         {
            word pd192;
            pd192 = (* (( (ptr) (* (( (ptr) gf←c56608)+170)/* var←c51680 */  ))+63) );
            var←c53408 = (word) ( *( (fPt) ((*  (ptr) pd192 ))))((* (( (ptr) gf←c56608)+35) ), var←c53440, pd192);
            };
         };
      var←c53472 = (word) DescribeSegment←P2100(traj←v13608, segNum←v13636);
      {
         word pd193;
         pd193 = (* (( (ptr) (* (( (ptr) gf←c56608)+188)/* var←c53376 */  ))+6) );
         text←v13708 = (word) ( *( (fPt) ((*  (ptr) pd193 ))))(var←c53408, var←c53472, pd193);
         };
      };
SOURCE(14561, 205)
   return(text←v13708);
   }

static word DescribeSegment←P2100(traj←v13768, segNum←v13796)
   word traj←v13768;
   word segNum←v13796;
   {
   register ptr gf←c56640 =  (ptr) &globalframe;
   word text←v13840;
   /* DescribeSegment: */ 
SOURCE(14772, 355)
SOURCE(14772, 355)
   text←v13840 = 0;
SOURCE(14857, 270)
   if ((segNum←v13796 == 2147483647)) {
SOURCE(14882, 61)
      {
         word var←c53504;
         var←c53504 = (word) DescribeTraj←P1920(traj←v13768);
         {
            word pd194;
            pd194 = (* (( (ptr) (* (( (ptr) gf←c56640)+188)/* var←c53376 */  ))+6) );
            text←v13840 = (word) ( *( (fPt) ((*  (ptr) pd194 ))))((* (( (ptr) gf←c56640)+36) ), var←c53504, pd194);
            };
         };
      }
   else {
SOURCE(14943, 186)
      {
         word seg←v19988;
SOURCE(14945, 48)
         {
            word pd195;
            pd195 = (* (( (ptr) (* (( (ptr) gf←c56640)+181)/* var←c52480 */  ))+29) );
            seg←v19988 = (word) ( *( (fPt) ((*  (ptr) pd195 ))))(traj←v13768, segNum←v13796, pd195);
            };
SOURCE(14995, 132)
         {
            word var←c53536;
            word var←c53568;
            word var←c53632;
            {
               word pd196;
               pd196 = (* (( (ptr) (*  (ptr) seg←v19988 ))+11) );
               var←c53536 = (word) ( *( (fPt) ((*  (ptr) pd196 ))))(seg←v19988, 1, 1, 1, 0, pd196);
               };
            {
               W2 var←c53600;
               var←c53600.f0 = 5;
               var←c53600.f1 = segNum←v13796;
               {
                  word pd197;
                  pd197 = (* (( (ptr) (* (( (ptr) gf←c56640)+170)/* var←c51680 */  ))+63) );
                  var←c53568 = (word) ( *( (fPt) ((*  (ptr) pd197 ))))((* (( (ptr) gf←c56640)+37) ), var←c53600, pd197);
                  };
               };
            var←c53632 = (word) DescribeTraj←P1920(traj←v13768);
            {
               word pd198;
               pd198 = (* (( (ptr) (* (( (ptr) gf←c56640)+188)/* var←c53376 */  ))+5) );
               text←v13840 = (word) ( *( (fPt) ((*  (ptr) pd198 ))))(var←c53536, var←c53568, var←c53632, 0, 0, pd198);
               };
            };
         };
      };
SOURCE(14772, 355)
   return(text←v13840);
   }

static word DescribeInterior←P2160(traj←v13900)
   word traj←v13900;
   {
   register ptr gf←c56672 =  (ptr) &globalframe;
   word text←v13944;
   /* DescribeInterior: */ 
SOURCE(15136, 131)
SOURCE(15136, 131)
   text←v13944 = 0;
SOURCE(15209, 58)
   {
      word var←c53664;
      var←c53664 = (word) DescribeTraj←P1920(traj←v13900);
      {
         word pd199;
         pd199 = (* (( (ptr) (* (( (ptr) gf←c56672)+188)/* var←c53376 */  ))+6) );
         text←v13944 = (word) ( *( (fPt) ((*  (ptr) pd199 ))))((* (( (ptr) gf←c56672)+38) ), var←c53664, pd199);
         };
      };
SOURCE(15136, 131)
   return(text←v13944);
   }

static word DescribeSequence←P2220(sliceD←v14004)
   word sliceD←v14004;
   {
   register ptr gf←c56704 =  (ptr) &globalframe;
   word text←v14048;
   /* DescribeSequence: */ 
SOURCE(15273, 157)
SOURCE(15273, 157)
   text←v14048 = 0;
SOURCE(15359, 71)
   {
      word var←c53696;
      var←c53696 = (word) DescribeTraj←P1920((*  (ptr) (sliceD←v14004) ));
      {
         word pd200;
         pd200 = (* (( (ptr) (* (( (ptr) gf←c56704)+188)/* var←c53376 */  ))+6) );
         text←v14048 = (word) ( *( (fPt) ((*  (ptr) pd200 ))))((* (( (ptr) gf←c56704)+39) ), var←c53696, pd200);
         };
      };
SOURCE(15273, 157)
   return(text←v14048);
   }

static word DescribeColor←P2280(color←v14108)
   word color←v14108;
   {
   register ptr gf←c56736 =  (ptr) &globalframe;
   word rope←v14152;
   /* DescribeColor: */ 
SOURCE(15436, 1062)
SOURCE(15436, 1062)
   rope←v14152 = 0;
SOURCE(15515, 983)
   {
      word var←c53728;
      var←c53728 = color←v14108;
      if ((var←c53728 == 0)) {
         goto lab←L100078;
         };
      {
         word var←c53856;
         var←c53856 = (*  (ptr) var←c53728 );
         if ((var←c53856 == 0)) {
            {
               word constantColor←v20032;
               constantColor←v20032 = var←c53728;
SOURCE(15582, 661)
               {
                  word op←v20076 = 0;
                  word colorType←v20104;
SOURCE(15648, 48)
                  {
                     W2 var←c53760;
                     {
                        word pd202;
                        pd202 = (* (( (ptr) (* (( (ptr) gf←c56736)+177)/* var←c52032 */  ))+4) );
                        (void) ( *( (fPt) ((*  (ptr) pd202 ))))((word) &var←c53760, color←v14108, pd202);
                        };
                     op←v20076 = var←c53760.f1;
                     colorType←v20104 = var←c53760.f0;
                     };
SOURCE(15698, 543)
                  if ((op←v20076 != 0)) {
SOURCE(15713, 327)
                     {
                        word var←c53792;
                        {
                           word pd203;
                           pd203 = (* (( (ptr) (* (( (ptr) gf←c56736)+177)/* var←c52032 */  ))+5) );
                           var←c53792 = (word) ( *( (fPt) ((*  (ptr) pd203 ))))(op←v20076, pd203);
                           };
                        switch (var←c53792) {
                           case 0: case 1: case 2: 
SOURCE(15795, 41)
/*1*/   rope←v14152 = (word) ColorAsIntensityAndNameRope←P2520(color←v14108);
/*1*/   break;
                           case 3: case 4: case 5: case 9: case 6: 
SOURCE(15892, 35)
/*1*/   rope←v14152 = (word) ColorAsRGBAndNameRope←P2400(color←v14108);
/*1*/   break;
                           case 7: 
SOURCE(15937, 36)
/*1*/   rope←v14152 = (word) ColorAsCMYKAndNameRope←P2460(color←v14108);
/*1*/   break;
                           default: 
SOURCE(15986, 54)
/*1*/   rope←v14152 = (* (( (ptr) gf←c56736)+40) );
/*1*/   break;
                           };
                        };
                     }
                  else {
SOURCE(16040, 201)
                     {
                        word var←c53824;
                        var←c53824 = colorType←v20104;
                        if ((var←c53824 == 1)) {
SOURCE(16081, 107)
                           {
/*1*/   word special←v20148;
SOURCE(16083, 57)
/*1*/   if ((constantColor←v20032 == 0)) {
/*1*/      goto lab←L100079;
/*1*/      };
/*1*/   if (((* (( (ptr) constantColor←v20032)+1) ) == 1)) {
/*1*/      goto lab←L100079;
/*1*/      };
/*1*/   (void) XR←RaiseError(XR←NarrowFault, 0);
/*1*/   lab←L100079: ;
/*1*/   special←v20148 = constantColor←v20032;
SOURCE(16142, 44)
/*1*/   rope←v14152 = (word) SpecialColorAsRGBAndNameRope←P2340(special←v20148);
/*1*/   };
                           }
                        else {
SOURCE(16202, 39)
                           rope←v14152 = (* (( (ptr) gf←c56736)+42) );
                           };
                        };
                     };
                  };
               };
            goto endif0201;
            };
         if ( ( ((*  (ptr) var←c53728 ) == 0) ? ((* (( (ptr) var←c53728)+1) ) == 1) : 0 ) ) {
            {
               word special←v20192;
               special←v20192 = var←c53728;
SOURCE(16286, 20)
               rope←v14152 = (* (( (ptr) special←v20192)+3) );
               };
            goto endif0201;
            };
         if ((var←c53856 == 2)) {
            {
               word sampledBlack←v20236;
               sampledBlack←v20236 = var←c53728;
SOURCE(16353, 24)
               rope←v14152 = (* (( (ptr) gf←c56736)+43) );
               };
            goto endif0201;
            };
         if ((var←c53856 == 1)) {
            {
               word sampledColor←v20280;
               sampledColor←v20280 = var←c53728;
SOURCE(16426, 24)
               rope←v14152 = (* (( (ptr) gf←c56736)+44) );
               };
            goto endif0201;
            };
         lab←L100078: ;
SOURCE(16468, 30)
         rope←v14152 = (* (( (ptr) gf←c56736)+45) );
         goto endif0201;
         endif0201: ;
         };
      };
SOURCE(15436, 1062)
   return(rope←v14152);
   }

static word SpecialColorAsRGBAndNameRope←P2340(color←v14212)
   word color←v14212;
   {
   register ptr gf←c56768 =  (ptr) &globalframe;
   word rope←v14256;
   /* SpecialColorAsRGBAndNameRope: */ 
SOURCE(16507, 384)
SOURCE(16507, 384)
   rope←v14256 = 0;
SOURCE(16601, 290)
   if ((color←v14212 != 0)) {
SOURCE(16619, 259)
      {
         word var←c53888;
         {
            word var←c53920;
            word var←c53952;
            var←c53920 = XR←NewObject(12, (* (( (ptr) gf←c56768)+17) ));
            var←c53952 = var←c53920;
            (*  (ptr) var←c53952 ) = 11;
            if (((* (( (ptr) color←v14212)+5) ) == 0)) {
               (* (( (ptr) var←c53952)+1) ) = (* (( (ptr) gf←c56768)+48) );
               }
            else {
               (* (( (ptr) var←c53952)+1) ) = (word) ColorToRGBRope←P1440((* ((( (ptr) color←v14212)+5)) ));
               };
            (* (( (ptr) var←c53952)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56768)+17) ));
            var←c53952 = (* (( (ptr) var←c53952)+2) );
            (*  (ptr) var←c53952 ) = 11;
            (* (( (ptr) var←c53952)+1) ) = (* (( (ptr) color←v14212)+3) );
            (* (( (ptr) var←c53952)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56768)+17) ));
            var←c53952 = (* (( (ptr) var←c53952)+2) );
            (*  (ptr) var←c53952 ) = 11;
            (* (( (ptr) var←c53952)+1) ) = (word) ColorToCMYKRope←P1500((* ((( (ptr) color←v14212)+5)) ));
            (* (( (ptr) var←c53952)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56768)+17) ));
            var←c53952 = (* (( (ptr) var←c53952)+2) );
            (*  (ptr) var←c53952 ) = 11;
            (* (( (ptr) var←c53952)+1) ) = (word) ColorToIntensityRope←P1560((* ((( (ptr) color←v14212)+5)) ));
            var←c53888 = var←c53920;
            };
         {
            word pd204;
            pd204 = (* (( (ptr) (* (( (ptr) gf←c56768)+170)/* var←c51680 */  ))+65) );
            rope←v14256 = (word) ( *( (fPt) ((*  (ptr) pd204 ))))((* (( (ptr) gf←c56768)+46) ), var←c53888, pd204);
            };
         };
      }
   else {
SOURCE(16878, 13)
      rope←v14256 = (* (( (ptr) gf←c56768)+49) );
      };
SOURCE(16507, 384)
   return(rope←v14256);
   }

static word ColorAsRGBAndNameRope←P2400(color←v14316)
   word color←v14316;
   {
   register ptr gf←c56800 =  (ptr) &globalframe;
   word rope←v14360;
   word cc←v20324;
   /* ColorAsRGBAndNameRope: */ 
SOURCE(16897, 322)
SOURCE(16897, 322)
   rope←v14360 = 0;
SOURCE(16977, 40)
   if ((color←v14316 == 0)) {
      goto lab←L100080;
      };
   if (((*  (ptr) color←v14316 ) == 0)) {
      goto lab←L100080;
      };
   (void) XR←RaiseError(XR←NarrowFault, 0);
   lab←L100080: ;
   cc←v20324 = color←v14316;
SOURCE(17019, 200)
   if ((cc←v20324 != 0)) {
SOURCE(17034, 172)
      {
         word var←c54080;
         {
            word var←c54112;
            word var←c54144;
            var←c54112 = XR←NewObject(12, (* (( (ptr) gf←c56800)+17) ));
            var←c54144 = var←c54112;
            (*  (ptr) var←c54144 ) = 11;
            (* (( (ptr) var←c54144)+1) ) = (word) ColorToRGBRope←P1440(cc←v20324);
            (* (( (ptr) var←c54144)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56800)+17) ));
            var←c54144 = (* (( (ptr) var←c54144)+2) );
            (*  (ptr) var←c54144 ) = 11;
            (* (( (ptr) var←c54144)+1) ) = (word) ColorToNameRope←P1620(cc←v20324);
            (* (( (ptr) var←c54144)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56800)+17) ));
            var←c54144 = (* (( (ptr) var←c54144)+2) );
            (*  (ptr) var←c54144 ) = 11;
            (* (( (ptr) var←c54144)+1) ) = (word) ColorToCMYKRope←P1500(cc←v20324);
            (* (( (ptr) var←c54144)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56800)+17) ));
            var←c54144 = (* (( (ptr) var←c54144)+2) );
            (*  (ptr) var←c54144 ) = 11;
            (* (( (ptr) var←c54144)+1) ) = (word) ColorToIntensityRope←P1560(cc←v20324);
            var←c54080 = var←c54112;
            };
         {
            word pd205;
            pd205 = (* (( (ptr) (* (( (ptr) gf←c56800)+170)/* var←c51680 */  ))+65) );
            rope←v14360 = (word) ( *( (fPt) ((*  (ptr) pd205 ))))((* (( (ptr) gf←c56800)+50) ), var←c54080, pd205);
            };
         };
      }
   else {
SOURCE(17206, 13)
      rope←v14360 = (* (( (ptr) gf←c56800)+49) );
      };
SOURCE(16897, 322)
   return(rope←v14360);
   }

static word ColorAsCMYKAndNameRope←P2460(color←v14420)
   word color←v14420;
   {
   register ptr gf←c56832 =  (ptr) &globalframe;
   word rope←v14464;
   word cc←v20368;
   /* ColorAsCMYKAndNameRope: */ 
SOURCE(17225, 323)
SOURCE(17225, 323)
   rope←v14464 = 0;
SOURCE(17306, 40)
   if ((color←v14420 == 0)) {
      goto lab←L100081;
      };
   if (((*  (ptr) color←v14420 ) == 0)) {
      goto lab←L100081;
      };
   (void) XR←RaiseError(XR←NarrowFault, 0);
   lab←L100081: ;
   cc←v20368 = color←v14420;
SOURCE(17348, 200)
   if ((cc←v20368 != 0)) {
SOURCE(17363, 172)
      {
         word var←c54304;
         {
            word var←c54336;
            word var←c54368;
            var←c54336 = XR←NewObject(12, (* (( (ptr) gf←c56832)+17) ));
            var←c54368 = var←c54336;
            (*  (ptr) var←c54368 ) = 11;
            (* (( (ptr) var←c54368)+1) ) = (word) ColorToCMYKRope←P1500(cc←v20368);
            (* (( (ptr) var←c54368)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56832)+17) ));
            var←c54368 = (* (( (ptr) var←c54368)+2) );
            (*  (ptr) var←c54368 ) = 11;
            (* (( (ptr) var←c54368)+1) ) = (word) ColorToNameRope←P1620(cc←v20368);
            (* (( (ptr) var←c54368)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56832)+17) ));
            var←c54368 = (* (( (ptr) var←c54368)+2) );
            (*  (ptr) var←c54368 ) = 11;
            (* (( (ptr) var←c54368)+1) ) = (word) ColorToRGBRope←P1440(cc←v20368);
            (* (( (ptr) var←c54368)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56832)+17) ));
            var←c54368 = (* (( (ptr) var←c54368)+2) );
            (*  (ptr) var←c54368 ) = 11;
            (* (( (ptr) var←c54368)+1) ) = (word) ColorToIntensityRope←P1560(cc←v20368);
            var←c54304 = var←c54336;
            };
         {
            word pd206;
            pd206 = (* (( (ptr) (* (( (ptr) gf←c56832)+170)/* var←c51680 */  ))+65) );
            rope←v14464 = (word) ( *( (fPt) ((*  (ptr) pd206 ))))((* (( (ptr) gf←c56832)+50) ), var←c54304, pd206);
            };
         };
      }
   else {
SOURCE(17535, 13)
      rope←v14464 = (* (( (ptr) gf←c56832)+49) );
      };
SOURCE(17225, 323)
   return(rope←v14464);
   }

static word ColorAsIntensityAndNameRope←P2520(color←v14524)
   word color←v14524;
   {
   register ptr gf←c56864 =  (ptr) &globalframe;
   word rope←v14568;
   word cc←v20412;
   /* ColorAsIntensityAndNameRope: */ 
SOURCE(17554, 328)
SOURCE(17554, 328)
   rope←v14568 = 0;
SOURCE(17640, 40)
   if ((color←v14524 == 0)) {
      goto lab←L100082;
      };
   if (((*  (ptr) color←v14524 ) == 0)) {
      goto lab←L100082;
      };
   (void) XR←RaiseError(XR←NarrowFault, 0);
   lab←L100082: ;
   cc←v20412 = color←v14524;
SOURCE(17682, 200)
   if ((cc←v20412 != 0)) {
SOURCE(17697, 172)
      {
         word var←c54528;
         {
            word var←c54560;
            word var←c54592;
            var←c54560 = XR←NewObject(12, (* (( (ptr) gf←c56864)+17) ));
            var←c54592 = var←c54560;
            (*  (ptr) var←c54592 ) = 11;
            (* (( (ptr) var←c54592)+1) ) = (word) ColorToIntensityRope←P1560(cc←v20412);
            (* (( (ptr) var←c54592)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56864)+17) ));
            var←c54592 = (* (( (ptr) var←c54592)+2) );
            (*  (ptr) var←c54592 ) = 11;
            (* (( (ptr) var←c54592)+1) ) = (word) ColorToNameRope←P1620(cc←v20412);
            (* (( (ptr) var←c54592)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56864)+17) ));
            var←c54592 = (* (( (ptr) var←c54592)+2) );
            (*  (ptr) var←c54592 ) = 11;
            (* (( (ptr) var←c54592)+1) ) = (word) ColorToRGBRope←P1440(cc←v20412);
            (* (( (ptr) var←c54592)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c56864)+17) ));
            var←c54592 = (* (( (ptr) var←c54592)+2) );
            (*  (ptr) var←c54592 ) = 11;
            (* (( (ptr) var←c54592)+1) ) = (word) ColorToCMYKRope←P1500(cc←v20412);
            var←c54528 = var←c54560;
            };
         {
            word pd207;
            pd207 = (* (( (ptr) (* (( (ptr) gf←c56864)+170)/* var←c51680 */  ))+65) );
            rope←v14568 = (word) ( *( (fPt) ((*  (ptr) pd207 ))))((* (( (ptr) gf←c56864)+50) ), var←c54528, pd207);
            };
         };
      }
   else {
SOURCE(17869, 13)
      rope←v14568 = (* (( (ptr) gf←c56864)+49) );
      };
SOURCE(17554, 328)
   return(rope←v14568);
   }

static word ScalarButtonValuesToRope←P2580(names←v14628, values←v14656, on←v14684)
   word names←v14628;
   word values←v14656;
   word on←v14684;
   {
   register ptr gf←c56896 =  (ptr) &globalframe;
   word rope←v14980;
   word stream←v20456 = 0;
   /* ScalarButtonValuesToRope: */ 
SOURCE(17888, 265)
SOURCE(17888, 265)
   rope←v14980 = 0;
SOURCE(18042, 17)
   {
      word pd208;
      pd208 = (* (( (ptr) (* (( (ptr) gf←c56896)+170)/* var←c51680 */  ))+34) );
      stream←v20456 = (word) ( *( (fPt) ((*  (ptr) pd208 ))))(0, pd208);
      };
SOURCE(18061, 61)
   {
      word pd209;
      pd209 = (* (( (ptr) (* (( (ptr) gf←c56896)+171)/* var←c51712 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd209 ))))(stream←v20456, names←v14628, values←v14656, on←v14684, pd209);
      };
SOURCE(18124, 29)
   {
      word pd210;
      pd210 = (* (( (ptr) (* (( (ptr) gf←c56896)+170)/* var←c51680 */  ))+35) );
      rope←v14980 = (word) ( *( (fPt) ((*  (ptr) pd210 ))))(stream←v20456, 1, pd210);
      };
SOURCE(17888, 265)
   return(rope←v14980);
   }

static void ScalarButtonValuesFromRope←P2640(formal←c0442, rope←v15040)
   word formal←c0442;
   word rope←v15040;
   {
   register ptr gf←c56928 =  (ptr) &globalframe;
   word names←v15084;
   word values←v15112;
   word on←v15140;
   word stream←v20500 = 0;
   word version←v20528;
   /* ScalarButtonValuesFromRope: */ 
SOURCE(18159, 285)
SOURCE(18159, 285)
   names←v15084 = 0;
SOURCE(18159, 285)
   values←v15112 = 0;
SOURCE(18159, 285)
   on←v15140 = 0;
SOURCE(18315, 33)
   version←v20528 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c56928)+172)/* var←c51744 */  ))+4) ) );
SOURCE(18350, 21)
   {
      word pd211;
      pd211 = (* (( (ptr) (* (( (ptr) gf←c56928)+170)/* var←c51680 */  ))+33) );
      stream←v20500 = (word) ( *( (fPt) ((*  (ptr) pd211 ))))(rope←v15040, 0, pd211);
      };
SOURCE(18373, 71)
   {
      W3 var←c54752;
      {
         word pd212;
         pd212 = (* (( (ptr) (* (( (ptr) gf←c56928)+173)/* var←c51776 */  ))+28) );
         (void) ( *( (fPt) ((*  (ptr) pd212 ))))((word) &var←c54752, stream←v20500, version←v20528, pd212);
         };
      on←v15140 = var←c54752.f2;
      values←v15112 = var←c54752.f1;
      names←v15084 = var←c54752.f0;
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0442 ) = names←v15084;
   (* (( (ptr) formal←c0442)+1) ) = values←v15112;
   (* (( (ptr) formal←c0442)+2) ) = on←v15140;
   return;
   }

static word FactoredTransformationToRope←P2700(transform←v15452)
   word transform←v15452;
   {
   register ptr gf←c56960 =  (ptr) &globalframe;
   word rope←v15496;
   word f←v20572;
   /* FactoredTransformationToRope: */ 
SOURCE(18450, 224)
SOURCE(18450, 224)
   rope←v15496 = 0;
SOURCE(18571, 23)
   {
      word pd213;
      pd213 = (* (( (ptr) (* (( (ptr) gf←c56960)+170)/* var←c51680 */  ))+34) );
      f←v20572 = (word) ( *( (fPt) ((*  (ptr) pd213 ))))(0, pd213);
      };
SOURCE(18596, 52)
   {
      word pd214;
      pd214 = (* (( (ptr) (* (( (ptr) gf←c56960)+171)/* var←c51712 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd214 ))))(f←v20572, transform←v15452, pd214);
      };
SOURCE(18650, 24)
   {
      word pd215;
      pd215 = (* (( (ptr) (* (( (ptr) gf←c56960)+170)/* var←c51680 */  ))+35) );
      rope←v15496 = (word) ( *( (fPt) ((*  (ptr) pd215 ))))(f←v20572, 1, pd215);
      };
SOURCE(18450, 224)
   return(rope←v15496);
   }

static word FactoredTransformationFromRope←P2760(rope←v15556)
   word rope←v15556;
   {
   register ptr gf←c56992 =  (ptr) &globalframe;
   word transform←v15600;
   word f←v20616;
   /* FactoredTransformationFromRope: */ 
SOURCE(18680, 203)
SOURCE(18680, 203)
   transform←v15600 = 0;
SOURCE(18803, 27)
   {
      word pd216;
      pd216 = (* (( (ptr) (* (( (ptr) gf←c56992)+170)/* var←c51680 */  ))+33) );
      f←v20616 = (word) ( *( (fPt) ((*  (ptr) pd216 ))))(rope←v15556, 0, pd216);
      };
SOURCE(18832, 51)
   {
      word pd217;
      pd217 = (* (( (ptr) (* (( (ptr) gf←c56992)+173)/* var←c51776 */  ))+21) );
      transform←v15600 = (word) ( *( (fPt) ((*  (ptr) pd217 ))))(f←v20616, pd217);
      };
SOURCE(18680, 203)
   return(transform←v15600);
   }

static word Create←P2820()
   {
   register ptr gf←c57024 =  (ptr) &globalframe;
   word var←c15660;
   /* Create: */ 
SOURCE(18957, 80)
SOURCE(19000, 37)
   {
      word pd218;
      pd218 = (* (( (ptr) (* (( (ptr) gf←c57024)+189)/* var←c54816 */  ))+17) );
      return((word) ( *( (fPt) ((*  (ptr) pd218 ))))(pd218));
      };
   }

static void Insert←P2880(x←v15720, radius←v15748)
   word x←v15720;
   word radius←v15748;
   {
   register ptr gf←c57056 =  (ptr) &globalframe;
   /* Insert: */ 
SOURCE(19043, 1067)
SOURCE(19092, 1018)
   {
      word x219;
      word x220;
      word x221;
      word x223;
      if (((word) Lookup←P2940(x←v15720, radius←v15748) != 0) ||  ( ((
         x219 = radius←v15748,  *(float*)&x219
         ) < (
         x220 = (*  (ptr) &fc170 ),  *(float*)&x220
         )) ? 1 : ((
         x221 = radius←v15748,  *(float*)&x221
         ) > (
         x223 = (*  (ptr) &fc222 ),  *(float*)&x223
         )) ) ) {
SOURCE(19152, 12)
         return;
         }
      else {
SOURCE(19164, 948)
         {
            word context←v20660 = 0;
            word argument←v20688;
            word circle←v20716 = 0;
            word dummySize←v20744 = 0;
            word side←v20772;
            word bitmap←v20800;
            word cachedCircle←v20828;
SOURCE(19191, 39)
            argument←v20688 = XR←NewObject(4, (* (( (ptr) gf←c57056)+15) ));
            (*  (ptr) argument←v20688 ) = radius←v15748;
SOURCE(19281, 38)
            {
               word pd224;
               word x225;
               word x226;
               float tf227;
               pd224 = (* (( (ptr) (* (( (ptr) gf←c57056)+190)/* var←c54880 */  ))+5) );
               side←v20772 = IOP2( * ,  (int)2,  (int)((word) ( *( (fPt) ((*  (ptr) pd224 ))))((
                        tf227 = (
                           x225 = radius←v15748,  *(float*)&x225
                           ) + (
                           x226 = (*  (ptr) &fc170 ),  *(float*)&x226
                           ),  *(word*)&tf227
                        ), pd224) + 1));
               };
SOURCE(19343, 63)
            {
               W4 var←c54912;
               var←c54912.f0 = 0;
               var←c54912.f1 = 0;
               var←c54912.f2 = side←v20772;
               var←c54912.f3 = side←v20772;
               {
                  word pd228;
                  pd228 = (* (( (ptr) (* (( (ptr) gf←c57056)+191)/* var←c54944 */  ))+19) );
                  bitmap←v20800 = (word) ( *( (fPt) ((*  (ptr) pd228 ))))(var←c54912, 1, 0, pd228);
                  };
               };
SOURCE(19408, 88)
            cachedCircle←v20828 = XR←NewObject(12, (* (( (ptr) gf←c57056)+14) ));
            (*  (ptr) cachedCircle←v20828 ) = bitmap←v20800;
            (* (( (ptr) cachedCircle←v20828)+1) ) = side←v20772;
            (* (( (ptr) cachedCircle←v20828)+2) ) = side←v20772;
SOURCE(19498, 145)
            {
               W2 var←c55008;
               W2 var←c55040;
               var←c55008.f0 = side←v20772;
               var←c55008.f1 = side←v20772;
               var←c55040.f0 = (*  (ptr) &fc229 );
               var←c55040.f1 = (*  (ptr) &fc229 );
               {
                  word pd230;
                  pd230 = (* (( (ptr) (* (( (ptr) gf←c57056)+192)/* var←c55072 */  ))+5) );
                  context←v20660 = (word) ( *( (fPt) ((*  (ptr) pd230 ))))(var←c55008, 13, var←c55040, 1, 1, 0, pd230);
                  };
               };
SOURCE(19645, 46)
            {
               word pd231;
               pd231 = (* (( (ptr) (* (( (ptr) gf←c57056)+192)/* var←c55072 */  ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd231 ))))(context←v20660, bitmap←v20800, pd231);
               };
SOURCE(19693, 30)
            {
               word pd232;
               pd232 = (* (( (ptr) (* (( (ptr) gf←c57056)+175)/* var←c51840 */  ))+52) );
               (void) ( *( (fPt) ((*  (ptr) pd232 ))))(context←v20660, (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c57056)+175)/* var←c51840 */  ))+55)
                   ) ), pd232);
               };
SOURCE(19725, 56)
            {
               W4 var←c55104;
               {
                  word pd233;
                  pd233 = (* (( (ptr) (* (( (ptr) gf←c57056)+167)/* var←c50496 */  ))+15) );
                  (void) ( *( (fPt) ((*  (ptr) pd233 ))))((word) &var←c55104, context←v20660, pd233);
                  };
               {
                  word pd234;
                  pd234 = (* (( (ptr) (* (( (ptr) gf←c57056)+175)/* var←c51840 */  ))+65) );
                  (void) ( *( (fPt) ((*  (ptr) pd234 ))))(context←v20660, var←c55104, pd234);
                  };
               };
SOURCE(19783, 32)
            {
               word pd235;
               pd235 = (* (( (ptr) (* (( (ptr) gf←c57056)+175)/* var←c51840 */  ))+52) );
               (void) ( *( (fPt) ((*  (ptr) pd235 ))))(context←v20660, (* (( (ptr) gf←c57056)+4)/* alignmentColor←v6556 */  ), pd235);
               };
SOURCE(19817, 27)
            {
               word pd236;
               pd236 = (* (( (ptr) (* (( (ptr) gf←c57056)+175)/* var←c51840 */  ))+68) );
               (void) ( *( (fPt) ((*  (ptr) pd236 ))))(context←v20660, (*  (ptr) &fc170 ), pd236);
               };
SOURCE(19846, 70)
            {
               W2 var←c55136;
               {
                  float tf237;
                  var←c55136.f0 = (
                     tf237 = (float)(int)IOP2( / ,  (int)side←v20772,  (int)2),  *(word*)&tf237
                     );
                  };
               {
                  float tf238;
                  var←c55136.f1 = (
                     tf238 = (float)(int)IOP2( / ,  (int)side←v20772,  (int)2),  *(word*)&tf238
                     );
                  };
               {
                  word pd239;
                  pd239 = (* (( (ptr) (* (( (ptr) gf←c57056)+193)/* var←c55168 */  ))+7) );
                  circle←v20716 = (word) ( *( (fPt) ((*  (ptr) pd239 ))))(var←c55136, radius←v15748, pd239);
                  };
               };
SOURCE(19918, 49)
            {
               word pd240;
               pd240 = (* (( (ptr) (* (( (ptr) gf←c57056)+194)/* var←c55200 */  ))+13) );
               (void) ( *( (fPt) ((*  (ptr) pd240 ))))(context←v20660, circle←v20716, pd240);
               };
SOURCE(19969, 141)
            {
               word var←c55232;
               {
                  W2 var←c55264;
                  var←c55264.f0 = side←v20772;
                  var←c55264.f1 = side←v20772;
                  {
                     word pd241;
                     pd241 = (* (( (ptr) (* (( (ptr) gf←c57056)+191)/* var←c54944 */  ))+18) );
                     var←c55232 = ((word) ( *( (fPt) ((*  (ptr) pd241 ))))(var←c55264, 1, 0, pd241) + 2);
                     };
                  };
               {
                  word pd242;
                  pd242 = (* (( (ptr) (* (( (ptr) gf←c57056)+189)/* var←c54816 */  ))+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd242 ))))(x←v15720, argument←v20688, cachedCircle←v20828, var←c55232, (* (( (ptr) gf←c57056)+53)
                      ), pd242);
                  };
               };
            };
         };
      };
   }

static word Lookup←P2940(x←v15808, formal←c0600)
   word x←v15808;
   word formal←c0600;
   {
   W7 var←c57088;
   /* declaration of radius←v15836 skipped */ 
   register ptr gf←c57120 =  (ptr) &globalframe;
   word var←c15880;
   /* declaration of var←c55296 skipped */ 
   word value←v20912 = 0;
   word ok←v20940;
   var←c57088.f4/* radius←v15836 */  = formal←c0600;
   /* Lookup: */ 
SOURCE(20119, 343)
   {
      word tmpAddr243;
      tmpAddr243 = (word) (( (ptr) &var←c57088)+5)/* var←c55296 */ ;
      (*  (ptr) tmpAddr243 ) = ( ((word)  (fPt) FindRadius←P4296) );
      (* (( (ptr) tmpAddr243) + 1) ) = 1;
      };
SOURCE(20336, 82)
   {
      W2 var←c55328;
      {
         word pd244;
         pd244 = (* (( (ptr) (* (( (ptr) gf←c57120)+189)/* var←c54816 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd244 ))))((word) &var←c55328, x←v15808, (word) (( (bPt) &var←c57088)+20)/* var←c55296 */ , (* (
               ( (ptr) gf←c57120)+53) ), pd244);
         };
      ok←v20940 = var←c55328.f1;
      value←v20912 = var←c55328.f0;
      };
SOURCE(20420, 42)
   if ((0 != ok←v20940)) {
      return(XR←Narrow(value←v20912, (* (( (ptr) gf←c57120)+14) )));
      }
   else {
      return(0);
      };
   }

static word FindRadius←P4296(argument←v46924, formal←c57184)
   word argument←v46924;
   word formal←c57184;
   {
   register ptr gf←c57152 =  (ptr) &globalframe;
   word good←v46968;
   word arg←v20984;
   formal←c57184 = (formal←c57184 - 20);
   /* FindRadius: */ 
SOURCE(20191, 116)
SOURCE(20233, 39)
   arg←v20984 = (*  (ptr) XR←Narrow(argument←v46924, (* (( (ptr) gf←c57152)+15) )) );
SOURCE(20274, 33)
   {
      float tf245;
      word x246;
      word x247;
      word x249;
      return( (unsigned) (FABS(((
            x246 = arg←v20984,  *(float*)&x246
            ) - (
            x247 = (* (( (ptr) formal←c57184)+4) ),  *(float*)&x247
            )), tf245) < (
         x249 = (*  (ptr) &fc248 ),  *(float*)&x249
         )));
      };
   }

static void Remove←P3000(x←v15940, formal←c0601)
   word x←v15940;
   word formal←c0601;
   {
   W7 var←c57216;
   /* declaration of radius←v15968 skipped */ 
   register ptr gf←c57248 =  (ptr) &globalframe;
   /* declaration of var←c55392 skipped */ 
   var←c57216.f4/* radius←v15968 */  = formal←c0601;
   /* Remove: */ 
SOURCE(20468, 254)
   {
      word tmpAddr250;
      tmpAddr250 = (word) (( (ptr) &var←c57216)+5)/* var←c55392 */ ;
      (*  (ptr) tmpAddr250 ) = ( ((word)  (fPt) FindRadius←P4356) );
      (* (( (ptr) tmpAddr250) + 1) ) = 1;
      };
SOURCE(20639, 83)
   {
      word var←c55424;
      word pd251;
      pd251 = (* (( (ptr) (* (( (ptr) gf←c57248)+189)/* var←c54816 */  ))+10) );
      var←c55424 = (word) ( *( (fPt) ((*  (ptr) pd251 ))))(x←v15940, (word) (( (bPt) &var←c57216)+20)/* var←c55392 */ , 1, (* (
            ( (ptr) gf←c57248)+53) ), pd251);
      };
   }

static word FindRadius←P4356(argument←v47248, formal←c57312)
   word argument←v47248;
   word formal←c57312;
   {
   register ptr gf←c57280 =  (ptr) &globalframe;
   word good←v47292;
   word arg←v21084;
   formal←c57312 = (formal←c57312 - 20);
   /* FindRadius: */ 
SOURCE(20517, 117)
SOURCE(20559, 39)
   arg←v21084 = (*  (ptr) XR←Narrow(argument←v47248, (* (( (ptr) gf←c57280)+15) )) );
SOURCE(20600, 34)
   {
      float tf252;
      word x253;
      word x254;
      word x255;
      return( (unsigned) (FABS(((
            x253 = arg←v21084,  *(float*)&x253
            ) - (
            x254 = (* (( (ptr) formal←c57312)+4) ),  *(float*)&x254
            )), tf252) < (
         x255 = (*  (ptr) &fc248 ),  *(float*)&x255
         )));
      };
   }

static void RemoveAll←P3060(x←v16028)
   word x←v16028;
   {
   register ptr gf←c57344 =  (ptr) &globalframe;
   word list←v21140;
   /* RemoveAll: */ 
SOURCE(20728, 292)
SOURCE(20766, 6)
   {
      word pd256;
      pd256 = (* (( (ptr) (* (( (ptr) gf←c57344)+189)/* var←c54816 */  ))+10) );
      list←v21140 = (word) ( *( (fPt) ((*  (ptr) pd256 ))))(x←v16028, (* (( (ptr) (* (( (ptr) gf←c57344)+189)/* var←c54816 */  ))+7)
          ), 2147483647, (* (( (ptr) gf←c57344)+53) ), pd256);
      };
SOURCE(20902, 118)
   lab←L100086: ;
   if ((list←v21140 != 0)) {
      }
   else {
      goto lab←L100084;
      };
SOURCE(20920, 100)
   {
      word pd257;
      pd257 = (* (( (ptr) (* (( (ptr) gf←c57344)+189)/* var←c54816 */  ))+10) );
      list←v21140 = (word) ( *( (fPt) ((*  (ptr) pd257 ))))(x←v16028, (* (( (ptr) (* (( (ptr) gf←c57344)+189)/* var←c54816 */  ))+7)
          ), 2147483647, (* (( (ptr) gf←c57344)+53) ), pd257);
      };
   goto lab←L100086;
   lab←L100084: ;
   }

static void DrawCachedCircle←P3120(formal←c0602, formal←c0603, formal←c0604)
   word formal←c0602;
   W2 formal←c0603;
   word formal←c0604;
   {
   W10 var←c57376;
   /* declaration of context←v16088 skipped */ 
   /* declaration of point←v16116 skipped */ 
   /* declaration of circle←v16144 skipped */ 
   register ptr gf←c57408 =  (ptr) &globalframe;
   /* declaration of var←c55456 skipped */ 
   (* (( (ptr) &var←c57376)+4)/* context←v16088 */  ) = formal←c0602;
   (*  (W2Pt) (( (ptr) &var←c57376)+5)/* point←v16116 */  ) = formal←c0603;
   (* (( (ptr) &var←c57376)+7)/* circle←v16144 */  ) = formal←c0604;
   /* DrawCachedCircle: */ 
SOURCE(21035, 371)
   {
      word tmpAddr258;
      tmpAddr258 = (word) (( (ptr) &var←c57376)+8)/* var←c55456 */ ;
      (*  (ptr) tmpAddr258 ) = ( ((word)  (fPt) DoDrawCachedCircle←P4416) );
      (* (( (ptr) tmpAddr258) + 1) ) = 1;
      };
SOURCE(21364, 42)
   {
      word pd259;
      pd259 = (* (( (ptr) (* (( (ptr) gf←c57408)+175)/* var←c51840 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd259 ))))((* (( (ptr) &var←c57376)+4)/* context←v16088 */  ), (word) (( (bPt) &var←c57376)+32)
         /* var←c55456 */ , pd259);
      };
   }

static void DoDrawCachedCircle←P4416(formal←c57472)
   word formal←c57472;
   {
   register ptr gf←c57440 =  (ptr) &globalframe;
   formal←c57472 = (formal←c57472 - 32);
   /* DoDrawCachedCircle: */ 
SOURCE(21124, 235)
SOURCE(21153, 30)
   {
      word pd260;
      pd260 = (* (( (ptr) (* (( (ptr) gf←c57440)+175)/* var←c51840 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd260 ))))((* (( (ptr) formal←c57472)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c57440)+175)
            /* var←c51840 */  ))+54) ) ), pd260);
      };
SOURCE(21185, 174)
   {
      word var←c55488;
      word var←c55520;
      {
         word pd261;
         float tf262;
         pd261 = (* (( (ptr) (* (( (ptr) gf←c57440)+190)/* var←c54880 */  ))+6) );
         var←c55488 = (
            tf262 = (float)(int)((word) ( *( (fPt) ((*  (ptr) pd261 ))))((* ((( (ptr) formal←c57472)+5)) ), pd261) - IOP2( / ,  (int)(* (
                  ( (ptr) (* (( (ptr) formal←c57472)+7) ))+1) ),  (int)2)),  *(word*)&tf262
            );
         };
      {
         word pd263;
         float tf264;
         pd263 = (* (( (ptr) (* (( (ptr) gf←c57440)+190)/* var←c54880 */  ))+6) );
         var←c55520 = (
            tf264 = (float)(int)((word) ( *( (fPt) ((*  (ptr) pd263 ))))((* ((( (ptr) formal←c57472)+6)) ), pd263) - IOP2( / ,  (int)(* (
                  ( (ptr) (* (( (ptr) formal←c57472)+7) ))+2) ),  (int)2)),  *(word*)&tf264
            );
         };
      {
         W2 var←c55552;
         W2 var←c55584;
         var←c55552.f0 = (* (( (ptr) (* (( (ptr) formal←c57472)+7) ))+2) );
         var←c55552.f1 = 0;
         var←c55584.f0 = var←c55488;
         var←c55584.f1 = var←c55520;
         {
            word pd265;
            pd265 = (* (( (ptr) (* (( (ptr) gf←c57440)+175)/* var←c51840 */  ))+78) );
            (void) ( *( (fPt) ((*  (ptr) pd265 ))))((* (( (ptr) formal←c57472)+4) ), (*  (ptr) (* (( (ptr) formal←c57472)+7) ) ), var←c55552, 13, var←c55584, pd265)
            ;
            };
         };
      };
   }

static void Init←P3180()
   {
   register ptr gf←c57504 =  (ptr) &globalframe;
   /* Init: */ 
SOURCE(21412, 152)
SOURCE(21430, 37)
   {
      word var←c55648;
      word pd266;
      pd266 = (* (( (ptr) (* (( (ptr) gf←c57504)+195)/* var←c55616 */  ))+7) );
      var←c55648 = (word) ( *( (fPt) ((*  (ptr) pd266 ))))((* ((( (ptr) gf←c57504)+54)) ), pd266);
      };
SOURCE(21470, 23)
   (* (( (ptr) gf←c57504)+5)/* versionRope←v6780 */  ) = (* (( (ptr) gf←c57504)+55) );
SOURCE(21547, 17)
   (* (( (ptr) gf←c57504)+6)/* version←v6808 */  ) = (*  (ptr) &fc267 );
   }

static void NoName←Q4776(formal←c0500, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0500;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0574 =  (ptr) &globalframe;
   if ((formal←c200013 == (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0574)+174)/* var←c51808 */  ))+28) ) )) || (formal←c200013 == (*  (ptr) (* (
      ( (ptr) (* (( (ptr) gf←c0574)+175)/* var←c51840 */  ))+6) ) ))) {
SOURCE(10247, 10)
      (*  (ptr) formal←c0500 ) = 2;
      (* (( (ptr) formal←c0500)+1) ) = 5;
      return;
      };
   (*  (ptr) formal←c0500 ) = 0;
   (* (( (ptr) formal←c0500)+1) ) = 0;
   return;
   }

static void NoName←Q4836(formal←c0505, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0505;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0575 =  (ptr) &globalframe;
   if ((formal←c200009 == (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0575)+174)/* var←c51808 */  ))+28) ) )) || (formal←c200009 == (*  (ptr) (* (
      ( (ptr) (* (( (ptr) gf←c0575)+175)/* var←c51840 */  ))+6) ) ))) {
SOURCE(9894, 10)
      (*  (ptr) formal←c0505 ) = 2;
      (* (( (ptr) formal←c0505)+1) ) = 4;
      return;
      };
   (*  (ptr) formal←c0505 ) = 0;
   (* (( (ptr) formal←c0505)+1) ) = 0;
   return;
   }

static void NoName←Q4896(formal←c0510, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0510;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0576 =  (ptr) &globalframe;
   if ((formal←c200005 == (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0576)+174)/* var←c51808 */  ))+28) ) )) || (formal←c200005 == (*  (ptr) (* (
      ( (ptr) (* (( (ptr) gf←c0576)+175)/* var←c51840 */  ))+6) ) ))) {
SOURCE(9358, 10)
      (*  (ptr) formal←c0510 ) = 2;
      (* (( (ptr) formal←c0510)+1) ) = 3;
      return;
      };
   (*  (ptr) formal←c0510 ) = 0;
   (* (( (ptr) formal←c0510)+1) ) = 0;
   return;
   }

static void NoName←Q4956(formal←c0515, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0515;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0577 =  (ptr) &globalframe;
   if ((formal←c200001 == (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0577)+174)/* var←c51808 */  ))+28) ) )) || (formal←c200001 == (*  (ptr) (* (
      ( (ptr) (* (( (ptr) gf←c0577)+175)/* var←c51840 */  ))+6) ) ))) {
SOURCE(8965, 10)
      (*  (ptr) formal←c0515 ) = 2;
      (* (( (ptr) formal←c0515)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0515 ) = 0;
   (* (( (ptr) formal←c0515)+1) ) = 0;
   return;
   }

/* file: GGUtilityImplA, module: GGUtilityImplA, compiled at: July 11, 1993 8:04:41 pm PDT */ 
extern void XR←install←GGUtilityImplA() {
   NoName←Q4476();
   }
extern void XR←run←GGUtilityImplA() { XR←Start(&globalframe); }