/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: July 11, 1993 8:16:29 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGSequenceImpl, module: GGSequenceImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2857756349,3865378101] GGSequenceImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
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;} W5;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define IOP2(op, x, y) ( (word) ((x) op (y)) )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc520 = 0.0;
static void NoName←Q10440();
static void GGSequenceImpl←P0();
static word CreateFromSegments←P60();
static word CreateJointToJoint←P120();
static word CreateEmpty←P180();
static word CreateComplete←P240();
static word CreateFromJoint←P300();
static word CreateFromSegment←P360();
static word CreateSimpleFromSegment←P420();
static word CreateFromControlPoint←P480();
static word Copy←P540();
static word CreateEmptySeq←P600();
static void CopyInto←P660();
static void FillInJoints←P720();
static void FillInControlPoints←P780();
static void TrimSelectedParts←P840();
static void TrimSelectedJointSegments←P900();
static word SomeSelectedJoint←P6480();
static void TrimSelectedControlPointSegments←P960();
static word SomeSelectedCP←P6588();
static void AddNonSelectedJointSegments←P1020();
static word SomeSelectedJoint←P6744();
static void AddNonSelectedControlPointSegments←P1080();
static word SomeSelectedCP←P6852();
static void AddConstrained←P1140();
static word SomeSelectedConstrainer←P7008();
static void AddNewBezier←P1200();
static void DDifference←P1260();
static void DDifferenceSeq←P1320();
static word FindPartsInList←P1380();
static word NewBitMatrixFromSeq←P1440();
static word NewBitMatrix←P1500();
static word NewBitVector←P1560();
static void SetAllBits←P1620();
static word SomeSegCPInSeq←P1680();
static word Union←P1740();
static word Difference←P1800();
static word Intersection←P1860();
static void TrajMovingParts←P1920();
static word FindRubberFromSelected←P1980();
static word Augment←P2040();
static word AugmentClosed←P2100();
static word IsObsolete←P2160();
static word IsEmpty←P2220();
static word IsComplete←P2280();
static word IsConstrained←P2340();
static word Overlap←P2400();
static word CountSegments←P2460();
static word CountJoints←P2520();
static word CountControlPoints←P2580();
static word ContainsSegment←P2640();
static word ContainsSomeSegment←P2700();
static word ContainsSegmentParts←P2760();
static word FirstSegment←P2820();
static word FirstSegNum←P2880();
static word LastSegNum←P2940();
static word ContainsJoint←P3000();
static word FirstJointNum←P3060();
static word LastJointNum←P3120();
static word LastSegAndJoint←P3180();
static word FollowingJoint←P3240();
static void UnpackOnePointSequence←P3300();
static word UnpackOneSegmentSequence←P3360();
static void UnpackSimpleSequence←P3420();
static void RunsInSequence←P3480();
static void RunsInSequenceOpen←P3540();
static void RunsInSequenceClosed←P3600();
static word ControlPointsOnly←P3660();
static word NextSequence←P3720();
static word FirstRun←P3780();
static word FirstTransitionInRun←P3840();
static word AppendToList←P3900();
static void ConsiderJoint←P3960();
static void ConsiderSegment←P4020();
static void ControlPointsTrue←P4080();
static word NATsInInterval←P4140();
static word NextNAT←P4200();
static word SegmentsInTraj←P4260();
static word WalkSegmentsInTraj←P4320();
static word WalkSegmentsInSequence←P4380();
static word CountSegmentsInSequence←P4440();
static word AddEmUp←P9852();
static void NextSegmentAndIndex←P4500();
static word SegmentsInSequence←P4560();
static word OrderedSegmentsInSequence←P4620();
static word NextSegment←P4680();
static word ControlPointsInSequence←P4740();
static void WalkControlPointsInSequence←P4800();
static void NextControlPoint←P4860();
static void NextSegNumAndCPNum←P4920();
static word JointsInSequence←P4980();
static void WalkJointPositionsInSequence←P5040();
static void WalkJointsInSequence←P5100();
static word JointsInTraj←P5160();
static word NextJoint←P5220();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\050\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\007\000"};
static struct {unsigned f; char r[4];} string3 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\160\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\004\011\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\174\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\012\121\313\233\300\012\365\115\261\100\230\000\000"};
static struct {unsigned f; char r[12];} string10 = {524296, "\011\000\004\000\040\000\004\001\000\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\012\121\313\233\300\012\365\115\261\100\214\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\106\354\000\000"};
static struct {unsigned f; char r[8];} string13 = {262148, "\004\200@\034\000\000\000"};
static struct {unsigned f; char r[16];} string14 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\144\000\000"};
static struct {unsigned f; char r[4];} string16 = {196611, "\004@\321"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\252\125\346\275\300\346\144\375\065\106\274\000\000"};
static struct {unsigned f; char r[48];} string18 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\247\365\203\234\300\047\265\225\046\107\050\005\004\162\145\163\164\214\216\257\300\247\365\203\234\300\047\265\225\046\107\050\261\000\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\261\002\056\176\300\055\321\222\125\100\200\000\000"};
static struct {unsigned f; char r[20];} string20 = {1114132, "Broken invariant.\000\000"};
static struct {unsigned f; char r[36];} string21 = {2228260, "there is no break in the sequence.\000"};
static struct {unsigned f; char r[40];} string22 = {2359336, "the first run begins with a segment.\000\000\000"};
static struct {unsigned f; char r[20];} string23 = {1048596, "Broken invariant\000\000\000"};
static struct {unsigned f; char r[8];} string24 = {458760, "Outline"};
static struct {unsigned f; char r[8];} string25 = {262152, "Traj\000\000\000"};
static struct {unsigned f; char r[8];} string26 = {393224, "Bezier\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\252\125\346\275\300\346\144\375\065\100\164\000\000"};
static struct {unsigned f; char r[8];} string28 = {458759, "\006\001@P\004@\177"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\322\334\347\304\300\124\107\000\027\100\150\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\301\241\007\150\300\032\111\265\237\100\150\000\000"};
static struct {unsigned f; char r[8];} string31 = {1195856741, "quence"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\261\002\056\176\300\055\321\222\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300U$)\337\300Xo9\243@t\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\050\310\006\072\300\004\273\314\121\100\150\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\370\132\042\205\300\045\133\011\125\100\150\000\000"};
static struct {
word f0[27]; word f27; word f28; word f29;
word f30; word f31; word f32; word f33;
word f34; word f35; word f36; word f37;
word f38; word f39; word f40; word f41;
word f42; word f43; word f44; word f45;
word f46; word f47; word f48; word f49;
word f50; word f51; word f52; word f53;
word f54; word f55; word f56; word f57;
word f58; 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; word f167; word f168; word f169;
word f170; word f171; word f172; word f173;
word f174; word f175; word f176; word f177;
word f178; word f179; word f180; word f181;
word f182; word f183; word f184; word f185;
word f186; word f187; word f188; word f189;
word f190; word f191; word f192; word f193;
word f194; word f195; word f196; word f197;
word f198; word f199; word f200; word f201;
word f202[9];
} globalframe = {
{0}, (word) NextJoint←P5220, 0, (word) JointsInTraj←P5160,
0, (word) WalkJointsInSequence←P5100, 0, (word) WalkJointPositionsInSequence←P5040,
0, (word) JointsInSequence←P4980, 0, (word) NextSegNumAndCPNum←P4920,
0, (word) NextControlPoint←P4860, 0, (word) WalkControlPointsInSequence←P4800,
0, (word) ControlPointsInSequence←P4740, 0, (word) NextSegment←P4680,
0, (word) OrderedSegmentsInSequence←P4620, 0, (word) SegmentsInSequence←P4560,
0, (word) NextSegmentAndIndex←P4500, 0, (word) CountSegmentsInSequence←P4440,
0, (word) WalkSegmentsInSequence←P4380, 0, (word) WalkSegmentsInTraj←P4320,
0, (word) SegmentsInTraj←P4260, 0, (word) NextNAT←P4200,
0, (word) NATsInInterval←P4140, 0, (word) ControlPointsTrue←P4080,
0, (word) ConsiderSegment←P4020, 0, (word) ConsiderJoint←P3960,
0, (word) AppendToList←P3900, 0, (word) FirstTransitionInRun←P3840,
0, (word) FirstRun←P3780, 0, (word) NextSequence←P3720,
0, (word) ControlPointsOnly←P3660, 0, (word) RunsInSequenceClosed←P3600,
0, (word) RunsInSequenceOpen←P3540, 0, (word) RunsInSequence←P3480,
0, (word) UnpackSimpleSequence←P3420, 0, (word) UnpackOneSegmentSequence←P3360,
0, (word) UnpackOnePointSequence←P3300, 0, (word) FollowingJoint←P3240,
0, (word) LastSegAndJoint←P3180, 0, (word) LastJointNum←P3120,
0, (word) FirstJointNum←P3060, 0, (word) ContainsJoint←P3000,
0, (word) LastSegNum←P2940, 0, (word) FirstSegNum←P2880,
0, (word) FirstSegment←P2820, 0, (word) ContainsSegmentParts←P2760,
0, (word) ContainsSomeSegment←P2700, 0, (word) ContainsSegment←P2640,
0, (word) CountControlPoints←P2580, 0, (word) CountJoints←P2520,
0, (word) CountSegments←P2460, 0, (word) Overlap←P2400,
0, (word) IsConstrained←P2340, 0, (word) IsComplete←P2280,
0, (word) IsEmpty←P2220, 0, (word) IsObsolete←P2160,
0, (word) AugmentClosed←P2100, 0, (word) Augment←P2040,
0, (word) FindRubberFromSelected←P1980, 0, (word) TrajMovingParts←P1920,
0, (word) Intersection←P1860, 0, (word) Difference←P1800,
0, (word) Union←P1740, 0, (word) SomeSegCPInSeq←P1680,
0, (word) SetAllBits←P1620, 0, (word) NewBitVector←P1560,
0, (word) NewBitMatrix←P1500, 0, (word) NewBitMatrixFromSeq←P1440,
0, (word) FindPartsInList←P1380, 0, (word) DDifferenceSeq←P1320,
0, (word) DDifference←P1260, 0, (word) AddNewBezier←P1200,
0, (word) AddConstrained←P1140, 0, (word) AddNonSelectedControlPointSegments←P1080,
0, (word) AddNonSelectedJointSegments←P1020, 0, (word) TrimSelectedControlPointSegments←P960,
0, (word) TrimSelectedJointSegments←P900, 0, (word) TrimSelectedParts←P840,
0, (word) FillInControlPoints←P780, 0, (word) FillInJoints←P720,
0, (word) CopyInto←P660, 0, (word) CreateEmptySeq←P600,
0, (word) Copy←P540, 0, (word) CreateFromControlPoint←P480,
0, (word) CreateSimpleFromSegment←P420, 0, (word) CreateFromSegment←P360,
0, (word) CreateFromJoint←P300, 0, (word) CreateComplete←P240,
0, (word) CreateEmpty←P180, 0, (word) CreateJointToJoint←P120,
0, (word) CreateFromSegments←P60, 0, (word) GGSequenceImpl←P0,
{0}
};
static void NoName←Q10440()
{
register ptr gf←c01103 = (ptr) &globalframe;
word var←c59052;
(* (( (ptr) gf←c01103)+5) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c01103)+6) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
(* (( (ptr) gf←c01103)+9) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
(* (( (ptr) gf←c01103)+10) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
(* (( (ptr) gf←c01103)+11) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
(* (( (ptr) gf←c01103)+12) ) = (word) XR←GetTypeIndexS((word) (&string11));
(* (( (ptr) gf←c01103)+13) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13);
(* (( (ptr) gf←c01103)+15) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string4);
(* (( (ptr) gf←c01103)+16) ) = (word) XR←GetTypeIndex((word) &string15, 0, (word) &string16);
(* (( (ptr) gf←c01103)+17) ) = (word) XR←GetTypeIndexS((word) (&string17));
(* (( (ptr) gf←c01103)+18) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string8);
(* (( (ptr) gf←c01103)+19) ) = (word) XR←GetTypeIndex((word) &string19, 0, (word) &string4);
(* (ptr) (( (bPt) gf←c01103)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01103)+15) ), (word) &string20);
(* (ptr) (( (bPt) gf←c01103)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01103)+15) ), (word) &string21);
(* (ptr) (( (bPt) gf←c01103)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01103)+15) ), (word) &string22);
(* (ptr) (( (bPt) gf←c01103)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01103)+15) ), (word) &string23);
(* (ptr) (( (bPt) gf←c01103)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01103)+6) ), (word) &string24);
(* (ptr) (( (bPt) gf←c01103)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01103)+6) ), (word) &string25);
(* (ptr) (( (bPt) gf←c01103)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01103)+6) ), (word) &string26);
(void) XR←DeclareGlobalFrame((word) "GGSequenceImpl", &globalframe, (word) XR←GetTypeIndex((word) &string27, 0, (word) &string28)
, (word) (( (bPt) gf←c01103)+804)/* var←c43340 */ );
var←c59052 = (word) XR←ImportInterface((word) "Feedback", (word) XR←GetTypeIndexS((word) (&string29)), 25);
(* (( (ptr) gf←c01103)+203)/* var←c43372 */ ) = var←c59052;
var←c59052 = (word) XR←ImportInterface((word) "GGParent", (word) XR←GetTypeIndexS((word) (&string30)), 83);
(* (( (ptr) gf←c01103)+206)/* var←c49388 */ ) = var←c59052;
(void) XR←ImportProcS(var←c59052, 67653890);
var←c59052 = (word) XR←ImportInterface((word) &string31, (word) XR←GetTypeIndexS((word) (&string32)), 58);
(* (( (ptr) gf←c01103)+207)/* var←c49644 */ ) = var←c59052;
(void) XR←ImportProcS(var←c59052, 67376641);
(void) XR←ImportProcS(var←c59052, 67381761);
(void) XR←ImportProcS(var←c59052, 67380225);
var←c59052 = (word) XR←ImportInterface((word) "GGSlice", (word) XR←GetTypeIndexS((word) (&string33)), 128);
(* (( (ptr) gf←c01103)+208)/* var←c50668 */ ) = var←c59052;
(void) XR←ImportProcS(var←c59052, 67634178);
var←c59052 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string34)), 73);
(* (( (ptr) gf←c01103)+205)/* var←c49356 */ ) = var←c59052;
(void) XR←ImportProcS(var←c59052, 67371521);
var←c59052 = (word) XR←ImportInterface((word) "GGTraj", (word) XR←GetTypeIndexS((word) (&string35)), 55);
(* (( (ptr) gf←c01103)+204)/* var←c43500 */ ) = var←c59052;
(void) XR←ImportProcS(var←c59052, 134749442);
(void) XR←ImportProcS(var←c59052, 67639810);
(void) XR←ImportProcS(var←c59052, 67640066);
(void) XR←ImportProcS(var←c59052, 67643138);
(void) XR←ImportProcS(var←c59052, 67642882);
(void) XR←ImportProcS(var←c59052, 67639554);
(void) XR←ImportProcS(var←c59052, 67643394);
(void) XR←ImportProcS(var←c59052, 67379713);
(void) XR←ImportProcS(var←c59052, 67380225);
var←c59052 = (word) XR←ImportInterface((word) "GGUtility", (word) XR←GetTypeIndexS((word) (&string36)), 42);
(* (( (ptr) gf←c01103)+209)/* var←c54860 */ ) = var←c59052;
(void) XR←ImportProcS(var←c59052, 67378689);
var←c59052 = (word) XR←ExportInterface((word) &string31, (word) XR←GetTypeIndexS((word) (&string32)), 58);
(* (( (ptr) gf←c01103)+210)/* var←c59084 */ ) = var←c59052;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+796)/* var←c43308 */ , 67895299, (word) "CreateFromSegments")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+788)/* var←c43276 */ , 67895555, (word) "CreateJointToJoint")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+780)/* var←c43244 */ , 67371521, (word) "CreateEmpty");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+772)/* var←c43212 */ , 67371777, (word) "CreateComplete");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+764)/* var←c43180 */ , 67634178, (word) "CreateFromJoint");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+756)/* var←c43148 */ , 67634434, (word) "CreateFromSegment")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+748)/* var←c43116 */ , 67634690, (word) "CreateSimpleFromSegment")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+740)/* var←c43084 */ , 67897091, (word) "CreateFromControlPoint")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+732)/* var←c43052 */ , 67373057, (word) "Copy");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+716)/* var←c42988 */ , 526594, (word) "CopyInto");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+708)/* var←c42956 */ , 264705, (word) "FillInJoints");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+700)/* var←c42924 */ , 264961, (word) "FillInControlPoints")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+692)/* var←c42892 */ , 527362, (word) "TrimSelectedParts");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+684)/* var←c42860 */ , 527618, (word) "TrimSelectedJointSegments")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+676)/* var←c42828 */ , 527874, (word) "TrimSelectedControlPointSegments")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+636)/* var←c42668 */ , 528130, (word) "DDifference");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+572)/* var←c42412 */ , 67637250, (word) "Union");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+564)/* var←c42380 */ , 67637506, (word) "Difference");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+556)/* var←c42348 */ , 67637762, (word) "Intersection");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+548)/* var←c42316 */ , 270537476, (word) "TrajMovingParts");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+532)/* var←c42252 */ , 67900419, (word) "Augment");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+508)/* var←c42156 */ , 67376385, (word) "IsEmpty");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+500)/* var←c42124 */ , 67376641, (word) "IsComplete");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+492)/* var←c42092 */ , 68163332, (word) "IsConstrained");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+484)/* var←c42060 */ , 67639298, (word) "Overlap");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+404)/* var←c41740 */ , 67639554, (word) "ContainsJoint");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+452)/* var←c41932 */ , 67639810, (word) "ContainsSegment");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+444)/* var←c41900 */ , 67377921, (word) "ContainsSomeSegment")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+436)/* var←c41868 */ , 67640322, (word) "ContainsSegmentParts")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+380)/* var←c41644 */ , 67640578, (word) "LastSegAndJoint");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+364)/* var←c41580 */ , 268705281, (word) "UnpackOnePointSequence")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+356)/* var←c41548 */ , 67378945, (word) "UnpackOneSegmentSequence")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+348)/* var←c41516 */ , 671621122, (word) "UnpackSimpleSequence")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+340)/* var←c41484 */ , 134488321, (word) "RunsInSequence");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+308)/* var←c41356 */ , 67379713, (word) "NextSequence");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+300)/* var←c41324 */ , 67379969, (word) "FirstRun");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+236)/* var←c41068 */ , 67380225, (word) "SegmentsInTraj");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+228)/* var←c41036 */ , 67642626, (word) "WalkSegmentsInTraj")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+196)/* var←c40908 */ , 67642882, (word) "SegmentsInSequence")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+220)/* var←c41004 */ , 67905283, (word) "WalkSegmentsInSequence")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+212)/* var←c40972 */ , 67643394, (word) "CountSegmentsInSequence")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+188)/* var←c40876 */ , 67643650, (word) "OrderedSegmentsInSequence")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+180)/* var←c40844 */ , 67381761, (word) "NextSegment");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+204)/* var←c40940 */ , 134490881, (word) "NextSegmentAndIndex")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+172)/* var←c40812 */ , 67644418, (word) "ControlPointsInSequence")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+164)/* var←c40780 */ , 797955, (word) "WalkControlPointsInSequence")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+156)/* var←c40748 */ , 201600513, (word) "NextControlPoint")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+148)/* var←c40716 */ , 201600769, (word) "NextSegNumAndCPNum")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+140)/* var←c40684 */ , 67383553, (word) "JointsInSequence");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+124)/* var←c40620 */ , 799235, (word) "WalkJointsInSequence")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+132)/* var←c40652 */ , 799491, (word) "WalkJointPositionsInSequence")
;
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+116)/* var←c40588 */ , 67384321, (word) "JointsInTraj");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+396)/* var←c41708 */ , 67384577, (word) "FirstJointNum");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+388)/* var←c41676 */ , 67646978, (word) "LastJointNum");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+420)/* var←c41804 */ , 67385089, (word) "FirstSegNum");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+412)/* var←c41772 */ , 67647490, (word) "LastSegNum");
(void) XR←ExportProcS(var←c59052, (word) (( (bPt) gf←c01103)+108)/* var←c40556 */ , 67385601, (word) "NextJoint");
}
static void GGSequenceImpl←P0(formal←c0102, formal←c0101)
word formal←c0102;
word formal←c0101;
{
register ptr gf←c59116 = (ptr) &globalframe;
/* GGSequenceImpl: */
SOURCE(172, 45725)
SOURCE(1987, 24)
(* (( (ptr) gf←c59116)+4)/* Problem←v3952 */ ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c59116)+203)/* var←c43372 */ ))+28)
) );
}
static word CreateFromSegments←P60(traj←v6584, startSeg←v6612, endSeg←v6640)
word traj←v6584;
word startSeg←v6612;
word endSeg←v6640;
{
register ptr gf←c59148 = (ptr) &globalframe;
word seq←v6684;
word segCount←v18576;
word temp←v18604;
/* CreateFromSegments: */
SOURCE(2049, 1201)
SOURCE(2049, 1201)
seq←v6684 = 0;
SOURCE(2171, 61)
if ((startSeg←v6612 >= (* (( (ptr) traj←v6584)+1) )) || (endSeg←v6640 >= (* (( (ptr) traj←v6584)+1) ))) {
SOURCE(2232, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(2239, 74)
if ((startSeg←v6612 == endSeg←v6640)) {
SOURCE(2266, 39)
seq←v6684 = (word) CreateFromSegment←P360(traj←v6584, startSeg←v6612);
SOURCE(2307, 6)
return(seq←v6684);
};
SOURCE(2316, 307)
if (((* (ptr) traj←v6584 ) == 2)) {
SOURCE(2343, 76)
if ((startSeg←v6612 > endSeg←v6640)) {
SOURCE(2370, 15)
temp←v18604 = startSeg←v6612;
SOURCE(2387, 17)
startSeg←v6612 = endSeg←v6640;
SOURCE(2406, 13)
endSeg←v6640 = temp←v18604;
};
SOURCE(2422, 32)
{
word idx37;
segCount←v18576 = (
idx37 = (word) ((endSeg←v6640 - startSeg←v6612) + 1),
SGNCK(idx37)
);
};
}
else {
SOURCE(2465, 85)
if ((startSeg←v6612 == ((endSeg←v6640 + 1) % (* (( (ptr) traj←v6584)+1) )))) {
SOURCE(2516, 26)
seq←v6684 = (word) CreateComplete←P240(traj←v6584);
SOURCE(2544, 6)
return(seq←v6684);
};
SOURCE(2553, 70)
{
word idx38;
segCount←v18576 = (
idx38 = (word) (IOP2( % , (int)((endSeg←v6640 - startSeg←v6612) + (* (( (ptr) traj←v6584)+1) )), (int)(* (( (ptr) traj←v6584)+1)
)) + 1),
SGNCK(idx38)
);
};
};
SOURCE(2628, 288)
{
word var←c43404;
word var←c43436;
word var←c43532;
word var←c43564;
var←c43404 = (word) NewBitVector←P1560((* ((( (ptr) traj←v6584)+1)) ));
{
word var←c43468;
{
word pd39;
pd39 = (* (( (ptr) (* (( (ptr) gf←c59148)+204)/* var←c43500 */ ))+40) );
var←c43468 = ((word) ( *( (fPt) ((* (ptr) pd39 ))))(traj←v6584, pd39) + 1);
};
var←c43436 = (word) NewBitVector←P1560(var←c43468);
};
var←c43532 = (word) NewBitMatrix←P1500(traj←v6584);
var←c43564 = XR←NewObject(24, (* (( (ptr) gf←c59148)+5) ));
(* (ptr) var←c43564 ) = var←c43404;
(* (( (ptr) var←c43564)+1) ) = var←c43436;
(* (( (ptr) var←c43564)+2) ) = var←c43532;
(* (( (ptr) var←c43564)+3) ) = segCount←v18576;
seq←v6684 = var←c43564;
};
SOURCE(2918, 332)
if ((startSeg←v6612 < endSeg←v6640)) {
SOURCE(2946, 58)
{
register word i←v18648;
register word noName←c43596;
i←v18648 = startSeg←v6612;
noName←c43596 = endSeg←v6640;
if ((i←v18648 > noName←c43596)) {
goto lab←L100000;
};
lab←L100003: ;
SOURCE(2982, 22)
{
word var←c43628;
var←c43628 = (* (ptr) seq←v6684 );
{
word limit40;
word xs41;
xs41 = (word) (
limit40 = (* (ptr) var←c43628 ),
BCK(i←v18648, limit40)
);
(* (bPt) ((( (bPt) var←c43628)+4) + ((word) xs41 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs41 & 7)+1));
};
};
if ((i←v18648 >= noName←c43596)) {
goto lab←L100000;
};
i←v18648 = (i←v18648 + 1);
goto lab←L100003;
lab←L100000: ;
};
SOURCE(3015, 17)
(void) FillInJoints←P720(seq←v6684);
SOURCE(3034, 24)
(void) FillInControlPoints←P780(seq←v6684);
}
else {
SOURCE(3069, 65)
{
register word i←v18692;
register word noName←c43660;
i←v18692 = startSeg←v6612;
noName←c43660 = (* (( (ptr) traj←v6584)+1) );
if ((i←v18692 >= noName←c43660)) {
goto lab←L100004;
};
lab←L100007: ;
SOURCE(3112, 22)
{
word var←c43692;
var←c43692 = (* (ptr) seq←v6684 );
{
word limit42;
word xs43;
xs43 = (word) (
limit42 = (* (ptr) var←c43692 ),
BCK(i←v18692, limit42)
);
(* (bPt) ((( (bPt) var←c43692)+4) + ((word) xs43 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs43 & 7)+1));
};
};
i←v18692 = (i←v18692 + 1);
if ((i←v18692 < noName←c43660)) {
goto lab←L100007;
};
lab←L100004: ;
};
SOURCE(3145, 51)
{
register word i←v18736 = 0;
register word noName←c43724;
noName←c43724 = endSeg←v6640;
if ((i←v18736 > noName←c43724)) {
goto lab←L100008;
};
lab←L100011: ;
SOURCE(3174, 22)
{
word var←c43756;
var←c43756 = (* (ptr) seq←v6684 );
{
word limit44;
word xs45;
xs45 = (word) (
limit44 = (* (ptr) var←c43756 ),
BCK(i←v18736, limit44)
);
(* (bPt) ((( (bPt) var←c43756)+4) + ((word) xs45 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs45 & 7)+1));
};
};
if ((i←v18736 >= noName←c43724)) {
goto lab←L100008;
};
i←v18736 = (i←v18736 + 1);
goto lab←L100011;
lab←L100008: ;
};
SOURCE(3207, 17)
(void) FillInJoints←P720(seq←v6684);
SOURCE(3226, 24)
(void) FillInControlPoints←P780(seq←v6684);
};
SOURCE(2049, 1201)
return(seq←v6684);
}
static word CreateJointToJoint←P120(traj←v6744, startJoint←v6772, endJoint←v6800)
word traj←v6744;
word startJoint←v6772;
word endJoint←v6800;
{
register ptr gf←c59180 = (ptr) &globalframe;
word seq←v6844;
word temp←v18780;
word hiJoint←v18808;
/* CreateJointToJoint: */
SOURCE(3259, 1450)
SOURCE(3259, 1450)
seq←v6844 = 0;
SOURCE(3384, 34)
{
word pd46;
pd46 = (* (( (ptr) (* (( (ptr) gf←c59180)+204)/* var←c43500 */ ))+40) );
hiJoint←v18808 = (word) ( *( (fPt) ((* (ptr) pd46 ))))(traj←v6744, pd46);
};
SOURCE(3420, 103)
if ( ( ( ((* (ptr) traj←v6744 ) == 2) ? (startJoint←v6772 == 0) : 0 ) ? (endJoint←v6800 == hiJoint←v18808) : 0 ) ) {
SOURCE(3489, 26)
seq←v6844 = (word) CreateComplete←P240(traj←v6744);
SOURCE(3517, 6)
return(seq←v6844);
};
SOURCE(3526, 1154)
if (((* (ptr) traj←v6744 ) == 2) || (startJoint←v6772 < endJoint←v6800)) {
SOURCE(3578, 88)
if ((startJoint←v6772 > endJoint←v6800)) {
SOURCE(3609, 17)
temp←v18780 = startJoint←v6772;
SOURCE(3628, 21)
startJoint←v6772 = endJoint←v6800;
SOURCE(3651, 15)
endJoint←v6800 = temp←v18780;
};
SOURCE(3669, 45)
if ((endJoint←v6800 > hiJoint←v18808)) {
SOURCE(3714, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(3721, 267)
{
word var←c43788;
word var←c43820;
word var←c43852;
word var←c43884;
var←c43788 = (word) NewBitVector←P1560((* ((( (ptr) traj←v6744)+1)) ));
var←c43820 = (word) NewBitVector←P1560((hiJoint←v18808 + 1));
var←c43852 = (word) NewBitMatrix←P1500(traj←v6744);
var←c43884 = XR←NewObject(24, (* (( (ptr) gf←c59180)+5) ));
(* (ptr) var←c43884 ) = var←c43788;
(* (( (ptr) var←c43884)+1) ) = var←c43820;
(* (( (ptr) var←c43884)+2) ) = var←c43852;
(* (( (ptr) var←c43884)+3) ) = (endJoint←v6800 - startJoint←v6772);
{
word idx47;
(* (( (ptr) var←c43884)+4) ) = (
idx47 = (word) ((endJoint←v6800 - startJoint←v6772) + 1),
SGNCK(idx47)
);
};
seq←v6844 = var←c43884;
};
SOURCE(3990, 84)
{
register word i←v18852;
register word noName←c43916;
i←v18852 = startJoint←v6772;
noName←c43916 = endJoint←v6800;
if ((i←v18852 >= noName←c43916)) {
goto lab←L100012;
};
lab←L100015: ;
SOURCE(4030, 22)
{
word var←c43948;
var←c43948 = (* (ptr) seq←v6844 );
{
word limit48;
word xs49;
xs49 = (word) (
limit48 = (* (ptr) var←c43948 ),
BCK(i←v18852, limit48)
);
(* (bPt) ((( (bPt) var←c43948)+4) + ((word) xs49 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs49 & 7)+1));
};
};
SOURCE(4054, 20)
{
word var←c43980;
var←c43980 = (* (( (ptr) seq←v6844)+1) );
{
word limit50;
word xs51;
xs51 = (word) (
limit50 = (* (ptr) var←c43980 ),
BCK(i←v18852, limit50)
);
(* (bPt) ((( (bPt) var←c43980)+4) + ((word) xs51 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs51 & 7)+1));
};
};
i←v18852 = (i←v18852 + 1);
if ((i←v18852 < noName←c43916)) {
goto lab←L100015;
};
lab←L100012: ;
};
SOURCE(4085, 27)
{
word var←c44012;
var←c44012 = (* (( (ptr) seq←v6844)+1) );
{
word limit52;
word xs53;
xs53 = (word) (
limit52 = (* (ptr) var←c44012 ),
BCK(endJoint←v6800, limit52)
);
(* (bPt) ((( (bPt) var←c44012)+4) + ((word) xs53 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs53 & 7)+1));
};
};
}
else {
SOURCE(4123, 78)
if ((startJoint←v6772 == endJoint←v6800)) {
SOURCE(4154, 39)
seq←v6844 = (word) CreateFromJoint←P300(traj←v6744, startJoint←v6772);
SOURCE(4195, 6)
return(seq←v6844);
};
SOURCE(4204, 261)
{
word var←c44044;
word var←c44076;
word var←c44108;
word var←c44140;
var←c44044 = (word) NewBitVector←P1560((* ((( (ptr) traj←v6744)+1)) ));
var←c44076 = (word) NewBitVector←P1560((hiJoint←v18808 + 1));
var←c44108 = (word) NewBitMatrix←P1500(traj←v6744);
var←c44140 = XR←NewObject(24, (* (( (ptr) gf←c59180)+5) ));
(* (ptr) var←c44140 ) = var←c44044;
(* (( (ptr) var←c44140)+1) ) = var←c44076;
(* (( (ptr) var←c44140)+2) ) = var←c44108;
(* (( (ptr) var←c44140)+3) ) = (((* (( (ptr) traj←v6744)+1) ) - startJoint←v6772) + endJoint←v6800);
{
word idx54;
(* (( (ptr) var←c44140)+4) ) = (
idx54 = (word) ((((* (( (ptr) traj←v6744)+1) ) - startJoint←v6772) + endJoint←v6800) + 1),
SGNCK(idx54)
);
};
seq←v6844 = var←c44140;
};
SOURCE(4467, 89)
{
register word i←v18896;
register word noName←c44172;
i←v18896 = startJoint←v6772;
noName←c44172 = (* (( (ptr) traj←v6744)+1) );
if ((i←v18896 >= noName←c44172)) {
goto lab←L100016;
};
lab←L100019: ;
SOURCE(4512, 22)
{
word var←c44204;
var←c44204 = (* (ptr) seq←v6844 );
{
word limit55;
word xs56;
xs56 = (word) (
limit55 = (* (ptr) var←c44204 ),
BCK(i←v18896, limit55)
);
(* (bPt) ((( (bPt) var←c44204)+4) + ((word) xs56 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs56 & 7)+1));
};
};
SOURCE(4536, 20)
{
word var←c44236;
var←c44236 = (* (( (ptr) seq←v6844)+1) );
{
word limit57;
word xs58;
xs58 = (word) (
limit57 = (* (ptr) var←c44236 ),
BCK(i←v18896, limit57)
);
(* (bPt) ((( (bPt) var←c44236)+4) + ((word) xs58 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs58 & 7)+1));
};
};
i←v18896 = (i←v18896 + 1);
if ((i←v18896 < noName←c44172)) {
goto lab←L100019;
};
lab←L100016: ;
};
SOURCE(4567, 75)
{
register word i←v18940 = 0;
register word noName←c44268;
noName←c44268 = endJoint←v6800;
if ((i←v18940 >= noName←c44268)) {
goto lab←L100020;
};
lab←L100023: ;
SOURCE(4598, 22)
{
word var←c44300;
var←c44300 = (* (ptr) seq←v6844 );
{
word limit59;
word xs60;
xs60 = (word) (
limit59 = (* (ptr) var←c44300 ),
BCK(i←v18940, limit59)
);
(* (bPt) ((( (bPt) var←c44300)+4) + ((word) xs60 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs60 & 7)+1));
};
};
SOURCE(4622, 20)
{
word var←c44332;
var←c44332 = (* (( (ptr) seq←v6844)+1) );
{
word limit61;
word xs62;
xs62 = (word) (
limit61 = (* (ptr) var←c44332 ),
BCK(i←v18940, limit61)
);
(* (bPt) ((( (bPt) var←c44332)+4) + ((word) xs62 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs62 & 7)+1));
};
};
i←v18940 = (i←v18940 + 1);
if ((i←v18940 < noName←c44268)) {
goto lab←L100023;
};
lab←L100020: ;
};
SOURCE(4653, 27)
{
word var←c44364;
var←c44364 = (* (( (ptr) seq←v6844)+1) );
{
word limit63;
word xs64;
xs64 = (word) (
limit63 = (* (ptr) var←c44364 ),
BCK(endJoint←v6800, limit63)
);
(* (bPt) ((( (bPt) var←c44364)+4) + ((word) xs64 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs64 & 7)+1));
};
};
};
SOURCE(4685, 24)
(void) FillInControlPoints←P780(seq←v6844);
SOURCE(3259, 1450)
return(seq←v6844);
}
static word CreateEmpty←P180(traj←v6904)
word traj←v6904;
{
register ptr gf←c59212 = (ptr) &globalframe;
word seq←v6948;
/* CreateEmpty: */
SOURCE(4745, 273)
SOURCE(4745, 273)
seq←v6948 = 0;
SOURCE(4816, 202)
{
word var←c44396;
word var←c44428;
word var←c44492;
word var←c44524;
var←c44396 = (word) NewBitVector←P1560((* ((( (ptr) traj←v6904)+1)) ));
{
word var←c44460;
{
word pd65;
pd65 = (* (( (ptr) (* (( (ptr) gf←c59212)+204)/* var←c43500 */ ))+40) );
var←c44460 = ((word) ( *( (fPt) ((* (ptr) pd65 ))))(traj←v6904, pd65) + 1);
};
var←c44428 = (word) NewBitVector←P1560(var←c44460);
};
var←c44492 = (word) NewBitMatrix←P1500(traj←v6904);
var←c44524 = XR←NewObject(24, (* (( (ptr) gf←c59212)+5) ));
(* (ptr) var←c44524 ) = var←c44396;
(* (( (ptr) var←c44524)+1) ) = var←c44428;
(* (( (ptr) var←c44524)+2) ) = var←c44492;
seq←v6948 = var←c44524;
};
SOURCE(4745, 273)
return(seq←v6948);
}
static word CreateComplete←P240(traj←v7008)
word traj←v7008;
{
register ptr gf←c59244 = (ptr) &globalframe;
word seq←v7052;
word jointCount←v18984;
/* CreateComplete: */
SOURCE(5024, 565)
SOURCE(5024, 565)
seq←v7052 = 0;
SOURCE(5098, 46)
{
word pd66;
pd66 = (* (( (ptr) (* (( (ptr) gf←c59244)+204)/* var←c43500 */ ))+40) );
jointCount←v18984 = ((word) ( *( (fPt) ((* (ptr) pd66 ))))(traj←v7008, pd66) + 1);
};
SOURCE(5146, 237)
{
word var←c44556;
word var←c44588;
word var←c44620;
word var←c44652;
var←c44556 = (word) NewBitVector←P1560((* ((( (ptr) traj←v7008)+1)) ));
var←c44588 = (word) NewBitVector←P1560(jointCount←v18984);
var←c44620 = (word) NewBitMatrix←P1500(traj←v7008);
var←c44652 = XR←NewObject(24, (* (( (ptr) gf←c59244)+5) ));
(* (ptr) var←c44652 ) = var←c44556;
(* (( (ptr) var←c44652)+1) ) = var←c44588;
(* (( (ptr) var←c44652)+2) ) = var←c44620;
(* (( (ptr) var←c44652)+3) ) = (* (( (ptr) traj←v7008)+1) );
(* (( (ptr) var←c44652)+4) ) = jointCount←v18984;
seq←v7052 = var←c44652;
};
SOURCE(5385, 93)
{
register word i←v19028 = 0;
register word noName←c44684;
{
word pd67;
pd67 = (* (( (ptr) (* (( (ptr) gf←c59244)+204)/* var←c43500 */ ))+38) );
noName←c44684 = (word) ( *( (fPt) ((* (ptr) pd67 ))))(traj←v7008, pd67);
};
if ((i←v19028 > noName←c44684)) {
goto lab←L100024;
};
lab←L100027: ;
SOURCE(5434, 22)
{
word var←c44716;
var←c44716 = (* (ptr) seq←v7052 );
{
word limit68;
word xs69;
xs69 = (word) (
limit68 = (* (ptr) var←c44716 ),
BCK(i←v19028, limit68)
);
(* (bPt) ((( (bPt) var←c44716)+4) + ((word) xs69 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs69 & 7)+1));
};
};
SOURCE(5458, 20)
{
word var←c44748;
var←c44748 = (* (( (ptr) seq←v7052)+1) );
{
word limit70;
word xs71;
xs71 = (word) (
limit70 = (* (ptr) var←c44748 ),
BCK(i←v19028, limit70)
);
(* (bPt) ((( (bPt) var←c44748)+4) + ((word) xs71 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs71 & 7)+1));
};
};
if ((i←v19028 >= noName←c44684)) {
goto lab←L100024;
};
i←v19028 = (i←v19028 + 1);
goto lab←L100027;
lab←L100024: ;
};
SOURCE(5489, 31)
{
word var←c44780;
word var←c44812;
var←c44780 = (jointCount←v18984 - 1);
var←c44812 = (* (( (ptr) seq←v7052)+1) );
{
word limit72;
word xs73;
xs73 = (word) (
limit72 = (* (ptr) var←c44812 ),
BCK(var←c44780, limit72)
);
(* (bPt) ((( (bPt) var←c44812)+4) + ((word) xs73 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs73 & 7)+1));
};
};
SOURCE(5565, 24)
(void) FillInControlPoints←P780(seq←v7052);
SOURCE(5024, 565)
return(seq←v7052);
}
static word CreateFromJoint←P300(traj←v7112, jointNum←v7140)
word traj←v7112;
word jointNum←v7140;
{
word seq←v7184;
/* CreateFromJoint: */
SOURCE(5625, 162)
SOURCE(5625, 162)
seq←v7184 = 0;
SOURCE(5715, 23)
seq←v7184 = (word) CreateEmpty←P180(traj←v7112);
SOURCE(5740, 27)
{
word var←c44844;
var←c44844 = (* (( (ptr) seq←v7184)+1) );
{
word limit74;
word xs75;
xs75 = (word) (
limit74 = (* (ptr) var←c44844 ),
BCK(jointNum←v7140, limit74)
);
(* (bPt) ((( (bPt) var←c44844)+4) + ((word) xs75 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs75 & 7)+1));
};
};
SOURCE(5769, 18)
(* (( (ptr) seq←v7184)+4) ) = 1;
SOURCE(5625, 162)
return(seq←v7184);
}
static word CreateFromSegment←P360(traj←v7244, segNum←v7272)
word traj←v7244;
word segNum←v7272;
{
word seq←v7316;
/* CreateFromSegment: */
SOURCE(5793, 205)
SOURCE(5793, 205)
seq←v7316 = 0;
SOURCE(5883, 23)
seq←v7316 = (word) CreateEmpty←P180(traj←v7244);
SOURCE(5908, 27)
{
word var←c44876;
var←c44876 = (* (ptr) seq←v7316 );
{
word limit76;
word xs77;
xs77 = (word) (
limit76 = (* (ptr) var←c44876 ),
BCK(segNum←v7272, limit76)
);
(* (bPt) ((( (bPt) var←c44876)+4) + ((word) xs77 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs77 & 7)+1));
};
};
SOURCE(5937, 16)
(* (( (ptr) seq←v7316)+3) ) = 1;
SOURCE(5955, 17)
(void) FillInJoints←P720(seq←v7316);
SOURCE(5974, 24)
(void) FillInControlPoints←P780(seq←v7316);
SOURCE(5793, 205)
return(seq←v7316);
}
static word CreateSimpleFromSegment←P420(traj←v7376, segNum←v7404)
word traj←v7376;
word segNum←v7404;
{
word seq←v7448;
/* CreateSimpleFromSegment: */
SOURCE(6034, 166)
SOURCE(6034, 166)
seq←v7448 = 0;
SOURCE(6130, 23)
seq←v7448 = (word) CreateEmpty←P180(traj←v7376);
SOURCE(6155, 27)
{
word var←c44908;
var←c44908 = (* (ptr) seq←v7448 );
{
word limit78;
word xs79;
xs79 = (word) (
limit78 = (* (ptr) var←c44908 ),
BCK(segNum←v7404, limit78)
);
(* (bPt) ((( (bPt) var←c44908)+4) + ((word) xs79 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs79 & 7)+1));
};
};
SOURCE(6184, 16)
(* (( (ptr) seq←v7448)+3) ) = 1;
SOURCE(6034, 166)
return(seq←v7448);
}
static word CreateFromControlPoint←P480(traj←v7508, segNum←v7536, controlPointNum←v7564)
word traj←v7508;
word segNum←v7536;
word controlPointNum←v7564;
{
word seq←v7608;
/* CreateFromControlPoint: */
SOURCE(6206, 218)
SOURCE(6206, 218)
seq←v7608 = 0;
SOURCE(6323, 23)
seq←v7608 = (word) CreateEmpty←P180(traj←v7508);
SOURCE(6348, 49)
{
word var←c44972;
{
word var←c44940;
var←c44940 = (* (( (ptr) seq←v7608)+2) );
{
word limit80;
var←c44972 = (* ((( (ptr) var←c44940)+1)+(
limit80 = (* (ptr) var←c44940 ),
BCK(segNum←v7536, limit80)
)) );
};
};
{
word limit81;
word xs82;
xs82 = (word) (
limit81 = (* (ptr) var←c44972 ),
BCK(controlPointNum←v7564, limit81)
);
(* (bPt) ((( (bPt) var←c44972)+4) + ((word) xs82 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs82 & 7)+1));
};
};
SOURCE(6399, 25)
(* (( (ptr) seq←v7608)+5) ) = 1;
SOURCE(6206, 218)
return(seq←v7608);
}
static word Copy←P540(seq←v7668)
word seq←v7668;
{
register ptr gf←c59276 = (ptr) &globalframe;
word copy←v7712;
/* Copy: */
SOURCE(6430, 667)
SOURCE(6430, 667)
copy←v7712 = 0;
SOURCE(6495, 27)
if ((seq←v7668 == 0)) {
SOURCE(6511, 11)
return(0);
};
SOURCE(6524, 244)
{
word var←c45004;
word var←c45036;
word var←c45068;
word var←c45100;
var←c45004 = (word) NewBitVector←P1560((* (ptr) ((* (ptr) seq←v7668 )) ));
var←c45036 = (word) NewBitVector←P1560((* (ptr) ((* (( (ptr) seq←v7668)+1) )) ));
var←c45068 = (word) NewBitMatrixFromSeq←P1440(seq←v7668);
var←c45100 = XR←NewObject(24, (* (( (ptr) gf←c59276)+5) ));
(* (ptr) var←c45100 ) = var←c45004;
(* (( (ptr) var←c45100)+1) ) = var←c45036;
(* (( (ptr) var←c45100)+2) ) = var←c45068;
(* (( (ptr) var←c45100)+3) ) = (* (( (ptr) seq←v7668)+3) );
(* (( (ptr) var←c45100)+4) ) = (* (( (ptr) seq←v7668)+4) );
(* (( (ptr) var←c45100)+5) ) = (* (( (ptr) seq←v7668)+5) );
copy←v7712 = var←c45100;
};
SOURCE(6770, 73)
{
register word i←v19072 = 0;
register word noName←c45132;
noName←c45132 = (* (ptr) (* (ptr) seq←v7668 ) );
if ((i←v19072 >= noName←c45132)) {
goto lab←L100028;
};
lab←L100031: ;
SOURCE(6809, 34)
{
word var←c45196;
var←c45196 = (* (ptr) copy←v7712 );
{
word var←c45164;
var←c45164 = (* (ptr) seq←v7668 );
{
word limit83;
word limit84;
word xs85;
word x86;
xs85 = (word) (
limit84 = (* (ptr) var←c45196 ),
BCK(i←v19072, limit84)
);
x86 = (word) ((( (bPt) var←c45196)+4) + ((word) xs85 >> 3));
xs85 = 8 - ((word) (xs85 & 7)+1);
(* (bPt) x86 ) = ((* (bPt) x86 ) & ( ~ ((unsigned) 1 << xs85))) | (((XR←ExtractField(var←c45164, 32 + (word) (
limit83 = (* (ptr) var←c45164 ),
BCK(i←v19072, limit83)
), 1))) << xs85);
};
};
};
i←v19072 = (i←v19072 + 1);
if ((i←v19072 < noName←c45132)) {
goto lab←L100031;
};
lab←L100028: ;
};
SOURCE(6854, 67)
{
register word i←v19116 = 0;
register word noName←c45228;
noName←c45228 = (* (ptr) (* (( (ptr) seq←v7668)+1) ) );
if ((i←v19116 >= noName←c45228)) {
goto lab←L100032;
};
lab←L100035: ;
SOURCE(6891, 30)
{
word var←c45292;
var←c45292 = (* (( (ptr) copy←v7712)+1) );
{
word var←c45260;
var←c45260 = (* (( (ptr) seq←v7668)+1) );
{
word limit87;
word limit88;
word xs89;
word x90;
xs89 = (word) (
limit88 = (* (ptr) var←c45292 ),
BCK(i←v19116, limit88)
);
x90 = (word) ((( (bPt) var←c45292)+4) + ((word) xs89 >> 3));
xs89 = 8 - ((word) (xs89 & 7)+1);
(* (bPt) x90 ) = ((* (bPt) x90 ) & ( ~ ((unsigned) 1 << xs89))) | (((XR←ExtractField(var←c45260, 32 + (word) (
limit87 = (* (ptr) var←c45260 ),
BCK(i←v19116, limit87)
), 1))) << xs89);
};
};
};
i←v19116 = (i←v19116 + 1);
if ((i←v19116 < noName←c45228)) {
goto lab←L100035;
};
lab←L100032: ;
};
SOURCE(6932, 165)
{
register word i←v19160 = 0;
register word noName←c45324;
noName←c45324 = (* (ptr) (* (( (ptr) seq←v7668)+2) ) );
if ((i←v19160 >= noName←c45324)) {
goto lab←L100036;
};
lab←L100039: ;
{
word cpCount←v19204;
word var←c45356;
SOURCE(6976, 39)
{
word limit91;
var←c45356 = (* (( (ptr) seq←v7668)+2) );
cpCount←v19204 = (* (ptr) (* ((( (ptr) var←c45356)+1)+(
limit91 = (* (ptr) var←c45356 ),
BCK(i←v19160, limit91)
)) ) );
};
SOURCE(7017, 80)
{
register word j←v19248 = 0;
register word noName←c45388;
noName←c45388 = cpCount←v19204;
if ((j←v19248 >= noName←c45388)) {
goto lab←L100040;
};
lab←L100043: ;
SOURCE(7047, 50)
{
word var←c45516;
{
word var←c45484;
var←c45484 = (* (( (ptr) copy←v7712)+2) );
{
word limit92;
var←c45516 = (* ((( (ptr) var←c45484)+1)+(
limit92 = (* (ptr) var←c45484 ),
BCK(i←v19160, limit92)
)) );
};
};
{
word var←c45452;
{
word var←c45420;
var←c45420 = (* (( (ptr) seq←v7668)+2) );
{
word limit93;
var←c45452 = (* ((( (ptr) var←c45420)+1)+(
/*1*/ limit93 = (* (ptr) var←c45420 ),
/*1*/ BCK(i←v19160, limit93)
/*1*/ )) );
};
};
{
word limit94;
word limit95;
word xs96;
word x97;
xs96 = (word) (
limit95 = (* (ptr) var←c45516 ),
BCK(j←v19248, limit95)
);
x97 = (word) ((( (bPt) var←c45516)+4) + ((word) xs96 >> 3));
xs96 = 8 - ((word) (xs96 & 7)+1);
(* (bPt) x97 ) = ((* (bPt) x97 ) & ( ~ ((unsigned) 1 << xs96))) | (((XR←ExtractField(var←c45452, 32 + (word) (
/*1*/ limit94 = (* (ptr) var←c45452 ),
/*1*/ BCK(j←v19248, limit94)
/*1*/ ), 1))) << xs96);
};
};
};
j←v19248 = (j←v19248 + 1);
if ((j←v19248 < noName←c45388)) {
goto lab←L100043;
};
lab←L100040: ;
};
};
i←v19160 = (i←v19160 + 1);
if ((i←v19160 < noName←c45324)) {
goto lab←L100039;
};
lab←L100036: ;
};
SOURCE(6430, 667)
return(copy←v7712);
}
static word CreateEmptySeq←P600(seq←v7772)
word seq←v7772;
{
register ptr gf←c59308 = (ptr) &globalframe;
word copy←v7816;
/* CreateEmptySeq: */
SOURCE(7121, 305)
SOURCE(7121, 305)
copy←v7816 = 0;
SOURCE(7197, 27)
if ((seq←v7772 == 0)) {
SOURCE(7213, 11)
return(0);
};
SOURCE(7226, 200)
{
word var←c45548;
word var←c45580;
word var←c45612;
word var←c45644;
var←c45548 = (word) NewBitVector←P1560((* (ptr) ((* (ptr) seq←v7772 )) ));
var←c45580 = (word) NewBitVector←P1560((* (ptr) ((* (( (ptr) seq←v7772)+1) )) ));
var←c45612 = (word) NewBitMatrixFromSeq←P1440(seq←v7772);
var←c45644 = XR←NewObject(24, (* (( (ptr) gf←c59308)+5) ));
(* (ptr) var←c45644 ) = var←c45548;
(* (( (ptr) var←c45644)+1) ) = var←c45580;
(* (( (ptr) var←c45644)+2) ) = var←c45612;
copy←v7816 = var←c45644;
};
SOURCE(7121, 305)
return(copy←v7816);
}
static void CopyInto←P660(to←v7876, from←v7904)
word to←v7876;
word from←v7904;
{
/* CopyInto: */
SOURCE(7434, 482)
SOURCE(7493, 196)
{
register word i←v19292 = 0;
register word noName←c45676;
noName←c45676 = (* (ptr) (* (ptr) from←v7904 ) );
if ((i←v19292 >= noName←c45676)) {
goto lab←L100044;
};
lab←L100047: ;
{
word cpCount←v19336;
word var←c45708;
SOURCE(7533, 40)
{
word limit98;
var←c45708 = (* (( (ptr) from←v7904)+2) );
cpCount←v19336 = (* (ptr) (* ((( (ptr) var←c45708)+1)+(
limit98 = (* (ptr) var←c45708 ),
BCK(i←v19292, limit98)
)) ) );
};
SOURCE(7575, 33)
{
word var←c45772;
var←c45772 = (* (ptr) to←v7876 );
{
word var←c45740;
var←c45740 = (* (ptr) from←v7904 );
{
word limit99;
word limit100;
word xs101;
word x102;
xs101 = (word) (
limit100 = (* (ptr) var←c45772 ),
BCK(i←v19292, limit100)
);
x102 = (word) ((( (bPt) var←c45772)+4) + ((word) xs101 >> 3));
xs101 = 8 - ((word) (xs101 & 7)+1);
(* (bPt) x102 ) = ((* (bPt) x102 ) & ( ~ ((unsigned) 1 << xs101))) | (((XR←ExtractField(var←c45740, 32 + (word) (
/*1*/ limit99 = (* (ptr) var←c45740 ),
/*1*/ BCK(i←v19292, limit99)
/*1*/ ), 1))) << xs101);
};
};
};
SOURCE(7610, 79)
{
register word j←v19380 = 0;
register word noName←c45804;
noName←c45804 = cpCount←v19336;
if ((j←v19380 >= noName←c45804)) {
goto lab←L100048;
};
lab←L100051: ;
SOURCE(7640, 49)
{
word var←c45932;
{
word var←c45900;
var←c45900 = (* (( (ptr) to←v7876)+2) );
{
word limit103;
var←c45932 = (* ((( (ptr) var←c45900)+1)+(
limit103 = (* (ptr) var←c45900 ),
BCK(i←v19292, limit103)
)) );
};
};
{
word var←c45868;
{
word var←c45836;
var←c45836 = (* (( (ptr) from←v7904)+2) );
{
word limit104;
var←c45868 = (* ((( (ptr) var←c45836)+1)+(
/*1*/ limit104 = (* (ptr) var←c45836 ),
/*1*/ BCK(i←v19292, limit104)
/*1*/ )) );
};
};
{
word limit105;
word limit106;
word xs107;
word x108;
xs107 = (word) (
limit106 = (* (ptr) var←c45932 ),
BCK(j←v19380, limit106)
);
x108 = (word) ((( (bPt) var←c45932)+4) + ((word) xs107 >> 3));
xs107 = 8 - ((word) (xs107 & 7)+1);
(* (bPt) x108 ) = ((* (bPt) x108 ) & ( ~ ((unsigned) 1 << xs107))) | (((XR←ExtractField(var←c45868, 32 + (word) (
/*1*/ limit105 = (* (ptr) var←c45868 ),
/*1*/ BCK(j←v19380, limit105)
/*1*/ ), 1))) << xs107);
};
};
};
j←v19380 = (j←v19380 + 1);
if ((j←v19380 < noName←c45804)) {
goto lab←L100051;
};
lab←L100048: ;
};
};
i←v19292 = (i←v19292 + 1);
if ((i←v19292 < noName←c45676)) {
goto lab←L100047;
};
lab←L100044: ;
};
SOURCE(7731, 67)
{
register word i←v19424 = 0;
register word noName←c45964;
noName←c45964 = (* (ptr) (* (( (ptr) from←v7904)+1) ) );
if ((i←v19424 >= noName←c45964)) {
goto lab←L100052;
};
lab←L100055: ;
SOURCE(7769, 29)
{
word var←c46028;
var←c46028 = (* (( (ptr) to←v7876)+1) );
{
word var←c45996;
var←c45996 = (* (( (ptr) from←v7904)+1) );
{
word limit109;
word limit110;
word xs111;
word x112;
xs111 = (word) (
limit110 = (* (ptr) var←c46028 ),
BCK(i←v19424, limit110)
);
x112 = (word) ((( (bPt) var←c46028)+4) + ((word) xs111 >> 3));
xs111 = 8 - ((word) (xs111 & 7)+1);
(* (bPt) x112 ) = ((* (bPt) x112 ) & ( ~ ((unsigned) 1 << xs111))) | (((XR←ExtractField(var←c45996, 32 + (word) (
limit109 = (* (ptr) var←c45996 ),
BCK(i←v19424, limit109)
), 1))) << xs111);
};
};
};
i←v19424 = (i←v19424 + 1);
if ((i←v19424 < noName←c45964)) {
goto lab←L100055;
};
lab←L100052: ;
};
SOURCE(7809, 27)
(* (( (ptr) to←v7876)+3) ) = (* (( (ptr) from←v7904)+3) );
SOURCE(7838, 45)
(* (( (ptr) to←v7876)+5) ) = (* (( (ptr) from←v7904)+5) );
SOURCE(7885, 31)
(* (( (ptr) to←v7876)+4) ) = (* (( (ptr) from←v7904)+4) );
}
static void FillInJoints←P720(seq←v7964)
word seq←v7964;
{
word jointCount←v19468 = 0;
/* FillInJoints: */
SOURCE(7922, 731)
SOURCE(7990, 29)
if (((* (( (ptr) seq←v7964)+3) ) == 0)) {
SOURCE(8013, 6)
return;
};
SOURCE(8077, 385)
if (((* (ptr) (* (( (ptr) seq←v7964)+1) ) ) == (* (ptr) (* (ptr) seq←v7964 ) ))) {
SOURCE(8140, 131)
{
register word i←v19512 = 0;
register word noName←c46060;
word var←c46092;
noName←c46060 = (* (ptr) (* (ptr) seq←v7964 ) );
if ((i←v19512 >= noName←c46060)) {
goto lab←L100056;
};
lab←L100059: ;
SOURCE(8179, 92)
{
word limit113;
var←c46092 = (* (ptr) seq←v7964 );
if (XR←ExtractField(var←c46092, 32 + (word) (
limit113 = (* (ptr) var←c46092 ),
BCK(i←v19512, limit113)
), 1)) {
SOURCE(8204, 20)
{
word var←c46124;
var←c46124 = (* (( (ptr) seq←v7964)+1) );
{
word limit114;
word xs115;
xs115 = (word) (
limit114 = (* (ptr) var←c46124 ),
BCK(i←v19512, limit114)
);
(* (bPt) ((( (bPt) var←c46124)+4) + ((word) xs115 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs115 & 7)+1));
};
};
SOURCE(8226, 45)
{
word var←c46156;
word var←c46188;
var←c46156 = ((i←v19512 + 1) % (* (ptr) (* (ptr) seq←v7964 ) ));
var←c46188 = (* (( (ptr) seq←v7964)+1) );
{
word limit116;
word xs117;
xs117 = (word) (
limit116 = (* (ptr) var←c46188 ),
BCK(var←c46156, limit116)
);
(* (bPt) ((( (bPt) var←c46188)+4) + ((word) xs117 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs117 & 7)+1));
};
};
};
};
i←v19512 = (i←v19512 + 1);
if ((i←v19512 < noName←c46060)) {
goto lab←L100059;
};
lab←L100056: ;
};
}
else {
SOURCE(8291, 171)
if (((* (ptr) (* (( (ptr) seq←v7964)+1) ) ) == ((* (ptr) (* (ptr) seq←v7964 ) ) + 1))) {
SOURCE(8354, 108)
{
register word i←v19556 = 0;
register word noName←c46220;
word var←c46252;
noName←c46220 = (* (ptr) (* (ptr) seq←v7964 ) );
if ((i←v19556 >= noName←c46220)) {
goto lab←L100060;
};
lab←L100063: ;
SOURCE(8393, 69)
{
word limit118;
var←c46252 = (* (ptr) seq←v7964 );
if (XR←ExtractField(var←c46252, 32 + (word) (
limit118 = (* (ptr) var←c46252 ),
BCK(i←v19556, limit118)
), 1)) {
SOURCE(8418, 20)
{
word var←c46284;
var←c46284 = (* (( (ptr) seq←v7964)+1) );
{
word limit119;
word xs120;
xs120 = (word) (
limit119 = (* (ptr) var←c46284 ),
BCK(i←v19556, limit119)
);
(* (bPt) ((( (bPt) var←c46284)+4) + ((word) xs120 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs120 & 7)+1));
};
};
SOURCE(8440, 22)
{
word var←c46316;
word var←c46348;
var←c46316 = (i←v19556 + 1);
var←c46348 = (* (( (ptr) seq←v7964)+1) );
{
word limit121;
word xs122;
xs122 = (word) (
limit121 = (* (ptr) var←c46348 ),
BCK(var←c46316, limit121)
);
(* (bPt) ((( (bPt) var←c46348)+4) + ((word) xs122 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs122 & 7)+1));
};
};
};
};
i←v19556 = (i←v19556 + 1);
if ((i←v19556 < noName←c46220)) {
goto lab←L100063;
};
lab←L100060: ;
};
}
else {
SOURCE(8481, 5)
(void) XR←RaiseUnnamedError();
};
};
SOURCE(8529, 86)
{
register word i←v19600 = 0;
register word noName←c46380;
word var←c46412;
noName←c46380 = (* (ptr) (* (( (ptr) seq←v7964)+1) ) );
if ((i←v19600 >= noName←c46380)) {
goto lab←L100064;
};
lab←L100067: ;
SOURCE(8566, 49)
{
word limit123;
var←c46412 = (* (( (ptr) seq←v7964)+1) );
if (XR←ExtractField(var←c46412, 32 + (word) (
limit123 = (* (ptr) var←c46412 ),
BCK(i←v19600, limit123)
), 1)) {
SOURCE(8588, 27)
jointCount←v19468 = (jointCount←v19468 + 1);
};
};
i←v19600 = (i←v19600 + 1);
if ((i←v19600 < noName←c46380)) {
goto lab←L100067;
};
lab←L100064: ;
};
SOURCE(8626, 27)
(* (( (ptr) seq←v7964)+4) ) = jointCount←v19468;
}
static void FillInControlPoints←P780(seq←v8024)
word seq←v8024;
{
word cpCount←v19644;
/* FillInControlPoints: */
SOURCE(8659, 759)
SOURCE(8908, 29)
if (((* (( (ptr) seq←v8024)+3) ) == 0)) {
SOURCE(8931, 6)
return;
};
SOURCE(8996, 25)
(* (( (ptr) seq←v8024)+5) ) = 0;
SOURCE(9023, 395)
{
register word i←v19688 = 0;
register word noName←c46444;
noName←c46444 = (* (ptr) (* (ptr) seq←v8024 ) );
if ((i←v19688 >= noName←c46444)) {
goto lab←L100068;
};
lab←L100071: ;
{
word var←c46476;
word var←c46508;
SOURCE(9062, 34)
{
word limit124;
var←c46476 = (* (( (ptr) seq←v8024)+2) );
cpCount←v19644 = (* (ptr) (* ((( (ptr) var←c46476)+1)+(
limit124 = (* (ptr) var←c46476 ),
BCK(i←v19688, limit124)
)) ) );
};
SOURCE(9098, 320)
{
word limit125;
var←c46508 = (* (ptr) seq←v8024 );
if (XR←ExtractField(var←c46508, 32 + (word) (
limit125 = (* (ptr) var←c46508 ),
BCK(i←v19688, limit125)
), 1)) {
SOURCE(9124, 131)
{
register word j←v19732 = 0;
register word noName←c46540;
noName←c46540 = cpCount←v19644;
if ((j←v19732 >= noName←c46540)) {
goto lab←L100072;
};
lab←L100075: ;
SOURCE(9174, 30)
{
word var←c46604;
{
word var←c46572;
var←c46572 = (* (( (ptr) seq←v8024)+2) );
{
word limit126;
var←c46604 = (* ((( (ptr) var←c46572)+1)+(
/*1*/ limit126 = (* (ptr) var←c46572 ),
/*1*/ BCK(i←v19688, limit126)
/*1*/ )) );
};
};
{
word limit127;
word xs128;
xs128 = (word) (
limit127 = (* (ptr) var←c46604 ),
BCK(j←v19732, limit127)
);
(* (bPt) ((( (bPt) var←c46604)+4) + ((word) xs128 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs128 & 7)+1));
};
};
SOURCE(9206, 49)
(* (( (ptr) seq←v8024)+5) ) = ((* (( (ptr) seq←v8024)+5) ) + 1);
j←v19732 = (j←v19732 + 1);
if ((j←v19732 < noName←c46540)) {
goto lab←L100075;
};
lab←L100072: ;
};
}
else {
SOURCE(9275, 143)
{
register word j←v19776 = 0;
register word noName←c46636;
word var←c46700;
noName←c46636 = cpCount←v19644;
if ((j←v19776 >= noName←c46636)) {
goto lab←L100076;
};
lab←L100079: ;
SOURCE(9337, 81)
{
word limit130;
{
word var←c46668;
var←c46668 = (* (( (ptr) seq←v8024)+2) );
{
word limit129;
var←c46700 = (* ((( (ptr) var←c46668)+1)+(
/*1*/ limit129 = (* (ptr) var←c46668 ),
/*1*/ BCK(i←v19688, limit129)
/*1*/ )) );
};
};
if (XR←ExtractField(var←c46700, 32 + (word) (
limit130 = (* (ptr) var←c46700 ),
BCK(j←v19776, limit130)
), 1)) {
SOURCE(9369, 49)
(* (( (ptr) seq←v8024)+5) ) = ((* (( (ptr) seq←v8024)+5) ) + 1);
};
};
j←v19776 = (j←v19776 + 1);
if ((j←v19776 < noName←c46636)) {
goto lab←L100079;
};
lab←L100076: ;
};
};
};
};
i←v19688 = (i←v19688 + 1);
if ((i←v19688 < noName←c46444)) {
goto lab←L100071;
};
lab←L100068: ;
};
}
static void TrimSelectedParts←P840(trimDescriptor←v8084, selectedList←v8112)
word trimDescriptor←v8084;
word selectedList←v8112;
{
register ptr gf←c59340 = (ptr) &globalframe;
word seq←v19820;
word selSeq←v19848;
/* TrimSelectedParts: */
SOURCE(9445, 803)
SOURCE(9553, 45)
seq←v19820 = XR←Narrow((* (( (ptr) trimDescriptor←v8084)+1) ), (* (( (ptr) gf←c59340)+5) ));
SOURCE(9600, 71)
selSeq←v19848 = (word) FindPartsInList←P1380((* (ptr) trimDescriptor←v8084 ), selectedList←v8112);
SOURCE(9673, 27)
if ((selSeq←v19848 == 0)) {
SOURCE(9694, 6)
return;
};
SOURCE(9743, 352)
{
register word i←v19892 = 0;
register word noName←c46732;
noName←c46732 = (* (ptr) (* (ptr) seq←v19820 ) );
if ((i←v19892 >= noName←c46732)) {
goto lab←L100080;
};
lab←L100083: ;
{
word var←c47020;
word var←c47052;
SOURCE(9782, 194)
{
register word j←v19936 = 0;
register word noName←c46796;
word var←c46764;
word var←c46860;
word var←c46924;
{
word limit131;
var←c46764 = (* (( (ptr) seq←v19820)+2) );
noName←c46796 = (* (ptr) (* ((( (ptr) var←c46764)+1)+(
limit131 = (* (ptr) var←c46764 ),
BCK(i←v19892, limit131)
)) ) );
};
if ((j←v19936 >= noName←c46796)) {
goto lab←L100084;
};
lab←L100087: ;
SOURCE(9829, 147)
{
word tc132;
word limit134;
word limit136;
{
word var←c46828;
var←c46828 = (* (( (ptr) selSeq←v19848)+2) );
{
word limit133;
var←c46860 = (* ((( (ptr) var←c46828)+1)+(
limit133 = (* (ptr) var←c46828 ),
BCK(i←v19892, limit133)
)) );
};
};
if (XR←ExtractField(var←c46860, 32 + (word) (
limit134 = (* (ptr) var←c46860 ),
BCK(j←v19936, limit134)
), 1)) {
{
word var←c46892;
var←c46892 = (* (( (ptr) seq←v19820)+2) );
{
word limit135;
var←c46924 = (* ((( (ptr) var←c46892)+1)+(
/*1*/ limit135 = (* (ptr) var←c46892 ),
/*1*/ BCK(i←v19892, limit135)
/*1*/ )) );
};
};
tc132 = (word) XR←ExtractField(var←c46924, 32 + (word) (
limit136 = (* (ptr) var←c46924 ),
BCK(j←v19936, limit136)
), 1);
}
else {
tc132 = (word) 0;
};
if (tc132) {
SOURCE(9894, 31)
{
word var←c46988;
{
word var←c46956;
var←c46956 = (* (( (ptr) seq←v19820)+2) );
{
word limit137;
var←c46988 = (* ((( (ptr) var←c46956)+1)+(
/*1*/ limit137 = (* (ptr) var←c46956 ),
/*1*/ BCK(i←v19892, limit137)
/*1*/ )) );
};
};
{
word limit138;
word xs139;
xs139 = (word) (
limit138 = (* (ptr) var←c46988 ),
BCK(j←v19936, limit138)
);
(* (bPt) ((( (bPt) var←c46988)+4) + ((word) xs139 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs139 & 7)+1));
};
};
SOURCE(9927, 49)
{
word idx140;
(* (( (ptr) seq←v19820)+5) ) = (
idx140 = (word) ((* (( (ptr) seq←v19820)+5) ) - 1),
SGNCK(idx140)
);
};
};
};
j←v19936 = (j←v19936 + 1);
if ((j←v19936 < noName←c46796)) {
goto lab←L100087;
};
lab←L100084: ;
};
SOURCE(9990, 105)
{
word tc141;
word limit142;
word limit143;
var←c47020 = (* (ptr) selSeq←v19848 );
if (XR←ExtractField(var←c47020, 32 + (word) (
limit142 = (* (ptr) var←c47020 ),
BCK(i←v19892, limit142)
), 1)) {
var←c47052 = (* (ptr) seq←v19820 );
tc141 = (word) XR←ExtractField(var←c47052, 32 + (word) (
limit143 = (* (ptr) var←c47052 ),
BCK(i←v19892, limit143)
), 1);
}
else {
tc141 = (word) 0;
};
if (tc141) {
SOURCE(10039, 23)
{
word var←c47084;
var←c47084 = (* (ptr) seq←v19820 );
{
word limit144;
word xs145;
xs145 = (word) (
limit144 = (* (ptr) var←c47084 ),
BCK(i←v19892, limit144)
);
(* (bPt) ((( (bPt) var←c47084)+4) + ((word) xs145 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs145 & 7)+1));
};
};
SOURCE(10064, 31)
{
word idx146;
(* (( (ptr) seq←v19820)+3) ) = (
idx146 = (word) ((* (( (ptr) seq←v19820)+3) ) - 1),
SGNCK(idx146)
);
};
};
};
};
i←v19892 = (i←v19892 + 1);
if ((i←v19892 < noName←c46732)) {
goto lab←L100083;
};
lab←L100080: ;
};
SOURCE(10109, 139)
{
register word i←v19980 = 0;
register word noName←c47116;
word var←c47148;
word var←c47180;
noName←c47116 = (* (ptr) (* (( (ptr) seq←v19820)+1) ) );
if ((i←v19980 >= noName←c47116)) {
goto lab←L100088;
};
lab←L100091: ;
SOURCE(10146, 102)
{
word tc147;
word limit148;
word limit149;
var←c47148 = (* (( (ptr) selSeq←v19848)+1) );
if (XR←ExtractField(var←c47148, 32 + (word) (
limit148 = (* (ptr) var←c47148 ),
BCK(i←v19980, limit148)
), 1)) {
var←c47180 = (* (( (ptr) seq←v19820)+1) );
tc147 = (word) XR←ExtractField(var←c47180, 32 + (word) (
limit149 = (* (ptr) var←c47180 ),
BCK(i←v19980, limit149)
), 1);
}
else {
tc147 = (word) 0;
};
if (tc147) {
SOURCE(10191, 21)
{
word var←c47212;
var←c47212 = (* (( (ptr) seq←v19820)+1) );
{
word limit150;
word xs151;
xs151 = (word) (
limit150 = (* (ptr) var←c47212 ),
BCK(i←v19980, limit150)
);
(* (bPt) ((( (bPt) var←c47212)+4) + ((word) xs151 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs151 & 7)+1));
};
};
SOURCE(10214, 34)
{
word idx152;
(* (( (ptr) seq←v19820)+4) ) = (
idx152 = (word) ((* (( (ptr) seq←v19820)+4) ) - 1),
SGNCK(idx152)
);
};
};
};
i←v19980 = (i←v19980 + 1);
if ((i←v19980 < noName←c47116)) {
goto lab←L100091;
};
lab←L100088: ;
};
}
static void TrimSelectedJointSegments←P900(formal←c01187, selectedList←v8284)
word formal←c01187;
word selectedList←v8284;
{
W8 var←c59372;
/* declaration of trimDescriptor←v8256 skipped */
register ptr gf←c59404 = (ptr) &globalframe;
/* declaration of var←c47244 skipped */
word seq←v20052;
/* declaration of selSeq←v20080 skipped */
var←c59372.f4/* trimDescriptor←v8256 */ = formal←c01187;
/* TrimSelectedJointSegments: */
SOURCE(10266, 601)
{
word tmpAddr153;
tmpAddr153 = (word) (( (ptr) &var←c59372)+5)/* var←c47244 */ ;
(* (ptr) tmpAddr153 ) = ( ((word) (fPt) SomeSelectedJoint←P6480) );
(* (( (ptr) tmpAddr153) + 1) ) = 1;
};
SOURCE(10530, 45)
seq←v20052 = XR←Narrow((* (( (ptr) var←c59372.f4/* trimDescriptor←v8256 */ )+1) ), (* (( (ptr) gf←c59404)+5) ));
SOURCE(10577, 71)
var←c59372.f7/* selSeq←v20080 */ = (word) FindPartsInList←P1380((* (ptr) var←c59372.f4/* trimDescriptor←v8256 */ ), selectedList←v8284)
;
SOURCE(10650, 27)
if ((var←c59372.f7/* selSeq←v20080 */ == 0)) {
SOURCE(10671, 6)
return;
};
SOURCE(10721, 146)
{
register word i←v20228 = 0;
register word noName←c47276;
word var←c47308;
noName←c47276 = (* (ptr) (* (ptr) seq←v20052 ) );
if ((i←v20228 >= noName←c47276)) {
goto lab←L100092;
};
lab←L100095: ;
SOURCE(10760, 107)
{
word tc154;
word limit155;
var←c47308 = (* (ptr) seq←v20052 );
if (XR←ExtractField(var←c47308, 32 + (word) (
limit155 = (* (ptr) var←c47308 ),
BCK(i←v20228, limit155)
), 1)) {
tc154 = (word) (0 != (word) SomeSelectedJoint←P6480(i←v20228, (word) (( (bPt) &var←c59372)+20)/* var←c47244 */ ));
}
else {
tc154 = (word) 0;
};
if (tc154) {
SOURCE(10811, 23)
{
word var←c47340;
var←c47340 = (* (ptr) seq←v20052 );
{
word limit156;
word xs157;
xs157 = (word) (
limit156 = (* (ptr) var←c47340 ),
BCK(i←v20228, limit156)
);
(* (bPt) ((( (bPt) var←c47340)+4) + ((word) xs157 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs157 & 7)+1));
};
};
SOURCE(10836, 31)
{
word idx158;
(* (( (ptr) seq←v20052)+3) ) = (
idx158 = (word) ((* (( (ptr) seq←v20052)+3) ) - 1),
SGNCK(idx158)
);
};
};
};
i←v20228 = (i←v20228 + 1);
if ((i←v20228 < noName←c47276)) {
goto lab←L100095;
};
lab←L100092: ;
};
}
static word SomeSelectedJoint←P6480(i←v20156, formal←c59468)
word i←v20156;
word formal←c59468;
{
register ptr gf←c59436 = (ptr) &globalframe;
word var←c20200;
formal←c59468 = (formal←c59468 - 20);
/* SomeSelectedJoint: */
SOURCE(10382, 143)
SOURCE(10434, 91)
{
word var←c01166;
word var←c47404;
{
word limit159;
var←c47404 = (* (( (ptr) (* (( (ptr) formal←c59468)+7) ))+1) );
if (XR←ExtractField(var←c47404, 32 + (word) (
limit159 = (* (ptr) var←c47404 ),
BCK(i←v20156, limit159)
), 1)) {
var←c01166 = (unsigned) 1;
}
else {
{
word var←c47436;
word var←c47468;
{
word pd160;
pd160 = (* (( (ptr) (* (( (ptr) gf←c59436)+204)/* var←c43500 */ ))+44) );
var←c47436 = (word) ( *( (fPt) ((* (ptr) pd160 ))))((* (ptr) (* (( (ptr) formal←c59468)+4) ) ), i←v20156, pd160);
};
var←c47468 = (* (( (ptr) (* (( (ptr) formal←c59468)+7) ))+1) );
{
word limit161;
var←c01166 = (unsigned) XR←ExtractField(var←c47468, 32 + (word) (
limit161 = (* (ptr) var←c47468 ),
BCK(var←c47436, limit161)
), 1);
};
};
};
};
return(var←c01166);
};
}
static void TrimSelectedControlPointSegments←P960(trimDescriptor←v8428, selectedList←v8456)
word trimDescriptor←v8428;
word selectedList←v8456;
{
W7 var←c59500;
register ptr gf←c59532 = (ptr) &globalframe;
/* declaration of var←c47500 skipped */
word seq←v20300;
/* declaration of selSeq←v20328 skipped */
/* TrimSelectedControlPointSegments: */
SOURCE(10885, 629)
{
word tmpAddr162;
tmpAddr162 = (word) (( (ptr) &var←c59500)+4)/* var←c47500 */ ;
(* (ptr) tmpAddr162 ) = ( ((word) (fPt) SomeSelectedCP←P6588) );
(* (( (ptr) tmpAddr162) + 1) ) = 1;
};
SOURCE(11183, 45)
seq←v20300 = XR←Narrow((* (( (ptr) trimDescriptor←v8428)+1) ), (* (( (ptr) gf←c59532)+5) ));
SOURCE(11230, 71)
var←c59500.f6/* selSeq←v20328 */ = (word) FindPartsInList←P1380((* (ptr) trimDescriptor←v8428 ), selectedList←v8456);
SOURCE(11303, 27)
if ((var←c59500.f6/* selSeq←v20328 */ == 0)) {
SOURCE(11324, 6)
return;
};
SOURCE(11371, 143)
{
register word i←v20476 = 0;
register word noName←c47532;
word var←c47564;
noName←c47532 = (* (ptr) (* (ptr) seq←v20300 ) );
if ((i←v20476 >= noName←c47532)) {
goto lab←L100096;
};
lab←L100099: ;
SOURCE(11410, 104)
{
word tc163;
word limit164;
var←c47564 = (* (ptr) seq←v20300 );
if (XR←ExtractField(var←c47564, 32 + (word) (
limit164 = (* (ptr) var←c47564 ),
BCK(i←v20476, limit164)
), 1)) {
tc163 = (word) (0 != (word) SomeSelectedCP←P6588(i←v20476, (word) (( (bPt) &var←c59500)+16)/* var←c47500 */ ));
}
else {
tc163 = (word) 0;
};
if (tc163) {
SOURCE(11458, 23)
{
word var←c47596;
var←c47596 = (* (ptr) seq←v20300 );
{
word limit165;
word xs166;
xs166 = (word) (
limit165 = (* (ptr) var←c47596 ),
BCK(i←v20476, limit165)
);
(* (bPt) ((( (bPt) var←c47596)+4) + ((word) xs166 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs166 & 7)+1));
};
};
SOURCE(11483, 31)
{
word idx167;
(* (( (ptr) seq←v20300)+3) ) = (
idx167 = (word) ((* (( (ptr) seq←v20300)+3) ) - 1),
SGNCK(idx167)
);
};
};
};
i←v20476 = (i←v20476 + 1);
if ((i←v20476 < noName←c47532)) {
goto lab←L100099;
};
lab←L100096: ;
};
}
static word SomeSelectedCP←P6588(i←v20404, formal←c59564)
word i←v20404;
word formal←c59564;
{
word var←c20448;
formal←c59564 = (formal←c59564 - 16);
/* SomeSelectedCP: */
SOURCE(11008, 170)
SOURCE(11057, 97)
{
register word j←v20520 = 0;
register word noName←c47660;
word var←c47628;
word var←c47724;
{
word limit168;
var←c47628 = (* (( (ptr) (* (( (ptr) formal←c59564)+6) ))+2) );
noName←c47660 = (* (ptr) (* ((( (ptr) var←c47628)+1)+(
limit168 = (* (ptr) var←c47628 ),
BCK(i←v20404, limit168)
)) ) );
};
if ((j←v20520 >= noName←c47660)) {
goto lab←L100100;
};
lab←L100103: ;
SOURCE(11107, 47)
{
word limit170;
{
word var←c47692;
var←c47692 = (* (( (ptr) (* (( (ptr) formal←c59564)+6) ))+2) );
{
word limit169;
var←c47724 = (* ((( (ptr) var←c47692)+1)+(
limit169 = (* (ptr) var←c47692 ),
BCK(i←v20404, limit169)
)) );
};
};
if (XR←ExtractField(var←c47724, 32 + (word) (
limit170 = (* (ptr) var←c47724 ),
BCK(j←v20520, limit170)
), 1)) {
SOURCE(11142, 12)
return(1);
};
};
j←v20520 = (j←v20520 + 1);
if ((j←v20520 < noName←c47660)) {
goto lab←L100103;
};
lab←L100100: ;
};
SOURCE(11165, 13)
return(0);
}
static void AddNonSelectedJointSegments←P1020(formal←c01188, formal←c01189)
word formal←c01188;
word formal←c01189;
{
W8 var←c59596;
/* declaration of descriptor←v8600 skipped */
/* declaration of selected←v8628 skipped */
register ptr gf←c59628 = (ptr) &globalframe;
/* declaration of var←c47756 skipped */
word seq←v20592;
var←c59596.f4/* descriptor←v8600 */ = formal←c01188;
var←c59596.f5/* selected←v8628 */ = formal←c01189;
/* AddNonSelectedJointSegments: */
SOURCE(11532, 530)
{
word tmpAddr171;
tmpAddr171 = (word) (( (ptr) &var←c59596)+6)/* var←c47756 */ ;
(* (ptr) tmpAddr171 ) = ( ((word) (fPt) SomeSelectedJoint←P6744) );
(* (( (ptr) tmpAddr171) + 1) ) = 1;
};
SOURCE(11769, 41)
seq←v20592 = XR←Narrow((* (( (ptr) var←c59596.f4/* descriptor←v8600 */ )+1) ), (* (( (ptr) gf←c59628)+5) ));
SOURCE(11812, 29)
if ((var←c59596.f5/* selected←v8628 */ == 0)) {
SOURCE(11835, 6)
return;
};
SOURCE(11884, 178)
{
register word i←v20740 = 0;
register word noName←c47788;
word var←c47820;
word var←c47852;
noName←c47788 = (* (ptr) (* (ptr) seq←v20592 ) );
if ((i←v20740 >= noName←c47788)) {
goto lab←L100104;
};
lab←L100107: ;
SOURCE(11923, 139)
{
word tc172;
word tc173;
word limit174;
word limit175;
var←c47820 = (* (ptr) seq←v20592 );
if ( ! XR←ExtractField(var←c47820, 32 + (word) (
limit174 = (* (ptr) var←c47820 ),
BCK(i←v20740, limit174)
), 1)) {
var←c47852 = (* (ptr) var←c59596.f5/* selected←v8628 */ );
tc173 = (word) ! XR←ExtractField(var←c47852, 32 + (word) (
limit175 = (* (ptr) var←c47852 ),
BCK(i←v20740, limit175)
), 1);
}
else {
tc173 = (word) 0;
};
if (tc173) {
tc172 = (word) (0 != (word) SomeSelectedJoint←P6744(i←v20740, (word) (( (bPt) &var←c59596)+24)/* var←c47756 */ ));
}
else {
tc172 = (word) 0;
};
if (tc172) {
SOURCE(12007, 22)
{
word var←c47884;
var←c47884 = (* (ptr) seq←v20592 );
{
word limit176;
word xs177;
xs177 = (word) (
limit176 = (* (ptr) var←c47884 ),
BCK(i←v20740, limit176)
);
(* (bPt) ((( (bPt) var←c47884)+4) + ((word) xs177 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs177 & 7)+1));
};
};
SOURCE(12031, 31)
(* (( (ptr) seq←v20592)+3) ) = ((* (( (ptr) seq←v20592)+3) ) + 1);
};
};
i←v20740 = (i←v20740 + 1);
if ((i←v20740 < noName←c47788)) {
goto lab←L100107;
};
lab←L100104: ;
};
}
static word SomeSelectedJoint←P6744(i←v20668, formal←c59692)
word i←v20668;
word formal←c59692;
{
register ptr gf←c59660 = (ptr) &globalframe;
word var←c20712;
formal←c59692 = (formal←c59692 - 24);
/* SomeSelectedJoint: */
SOURCE(11621, 143)
SOURCE(11673, 91)
{
word var←c01167;
word var←c47948;
{
word limit178;
var←c47948 = (* (( (ptr) (* (( (ptr) formal←c59692)+5) ))+1) );
if (XR←ExtractField(var←c47948, 32 + (word) (
limit178 = (* (ptr) var←c47948 ),
BCK(i←v20668, limit178)
), 1)) {
var←c01167 = (unsigned) 1;
}
else {
{
word var←c47980;
word var←c48012;
{
word pd179;
pd179 = (* (( (ptr) (* (( (ptr) gf←c59660)+204)/* var←c43500 */ ))+44) );
var←c47980 = (word) ( *( (fPt) ((* (ptr) pd179 ))))((* (ptr) (* (( (ptr) formal←c59692)+4) ) ), i←v20668, pd179);
};
var←c48012 = (* (( (ptr) (* (( (ptr) formal←c59692)+5) ))+1) );
{
word limit180;
var←c01167 = (unsigned) XR←ExtractField(var←c48012, 32 + (word) (
limit180 = (* (ptr) var←c48012 ),
BCK(var←c47980, limit180)
), 1);
};
};
};
};
return(var←c01167);
};
}
static void AddNonSelectedControlPointSegments←P1080(descriptor←v8688, formal←c01190)
word descriptor←v8688;
word formal←c01190;
{
W7 var←c59724;
/* declaration of selected←v8716 skipped */
register ptr gf←c59756 = (ptr) &globalframe;
/* declaration of var←c48044 skipped */
word seq←v20812;
var←c59724.f4/* selected←v8716 */ = formal←c01190;
/* AddNonSelectedControlPointSegments: */
SOURCE(12080, 562)
{
word tmpAddr181;
tmpAddr181 = (word) (( (ptr) &var←c59724)+5)/* var←c48044 */ ;
(* (ptr) tmpAddr181 ) = ( ((word) (fPt) SomeSelectedCP←P6852) );
(* (( (ptr) tmpAddr181) + 1) ) = 1;
};
SOURCE(12355, 41)
seq←v20812 = XR←Narrow((* (( (ptr) descriptor←v8688)+1) ), (* (( (ptr) gf←c59756)+5) ));
SOURCE(12398, 29)
if ((var←c59724.f4/* selected←v8716 */ == 0)) {
SOURCE(12421, 6)
return;
};
SOURCE(12467, 175)
{
register word i←v20960 = 0;
register word noName←c48076;
word var←c48108;
word var←c48140;
noName←c48076 = (* (ptr) (* (ptr) seq←v20812 ) );
if ((i←v20960 >= noName←c48076)) {
goto lab←L100108;
};
lab←L100111: ;
SOURCE(12506, 136)
{
word tc182;
word tc183;
word limit184;
word limit185;
var←c48108 = (* (ptr) seq←v20812 );
if ( ! XR←ExtractField(var←c48108, 32 + (word) (
limit184 = (* (ptr) var←c48108 ),
BCK(i←v20960, limit184)
), 1)) {
var←c48140 = (* (ptr) var←c59724.f4/* selected←v8716 */ );
tc183 = (word) ! XR←ExtractField(var←c48140, 32 + (word) (
limit185 = (* (ptr) var←c48140 ),
BCK(i←v20960, limit185)
), 1);
}
else {
tc183 = (word) 0;
};
if (tc183) {
tc182 = (word) (0 != (word) SomeSelectedCP←P6852(i←v20960, (word) (( (bPt) &var←c59724)+20)/* var←c48044 */ ));
}
else {
tc182 = (word) 0;
};
if (tc182) {
SOURCE(12587, 22)
{
word var←c48172;
var←c48172 = (* (ptr) seq←v20812 );
{
word limit186;
word xs187;
xs187 = (word) (
limit186 = (* (ptr) var←c48172 ),
BCK(i←v20960, limit186)
);
(* (bPt) ((( (bPt) var←c48172)+4) + ((word) xs187 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs187 & 7)+1));
};
};
SOURCE(12611, 31)
(* (( (ptr) seq←v20812)+3) ) = ((* (( (ptr) seq←v20812)+3) ) + 1);
};
};
i←v20960 = (i←v20960 + 1);
if ((i←v20960 < noName←c48076)) {
goto lab←L100111;
};
lab←L100108: ;
};
}
static word SomeSelectedCP←P6852(i←v20888, formal←c59788)
word i←v20888;
word formal←c59788;
{
word var←c20932;
formal←c59788 = (formal←c59788 - 20);
/* SomeSelectedCP: */
SOURCE(12176, 174)
SOURCE(12225, 101)
{
register word j←v21004 = 0;
register word noName←c48236;
word var←c48204;
word var←c48300;
{
word limit188;
var←c48204 = (* (( (ptr) (* (( (ptr) formal←c59788)+4) ))+2) );
noName←c48236 = (* (ptr) (* ((( (ptr) var←c48204)+1)+(
limit188 = (* (ptr) var←c48204 ),
BCK(i←v20888, limit188)
)) ) );
};
if ((j←v21004 >= noName←c48236)) {
goto lab←L100112;
};
lab←L100115: ;
SOURCE(12277, 49)
{
word limit190;
{
word var←c48268;
var←c48268 = (* (( (ptr) (* (( (ptr) formal←c59788)+4) ))+2) );
{
word limit189;
var←c48300 = (* ((( (ptr) var←c48268)+1)+(
limit189 = (* (ptr) var←c48268 ),
BCK(i←v20888, limit189)
)) );
};
};
if (XR←ExtractField(var←c48300, 32 + (word) (
limit190 = (* (ptr) var←c48300 ),
BCK(j←v21004, limit190)
), 1)) {
SOURCE(12314, 12)
return(1);
};
};
j←v21004 = (j←v21004 + 1);
if ((j←v21004 < noName←c48236)) {
goto lab←L100115;
};
lab←L100112: ;
};
SOURCE(12337, 13)
return(0);
}
static void AddConstrained←P1140(formal←c01191, formal←c01192)
word formal←c01191;
word formal←c01192;
{
W8 var←c59820;
/* declaration of descriptor←v8776 skipped */
/* declaration of selected←v8804 skipped */
register ptr gf←c59852 = (ptr) &globalframe;
/* declaration of var←c48332 skipped */
word seq←v21076;
var←c59820.f4/* descriptor←v8776 */ = formal←c01191;
var←c59820.f5/* selected←v8804 */ = formal←c01192;
/* AddConstrained: */
SOURCE(12660, 942)
{
word tmpAddr191;
tmpAddr191 = (word) (( (ptr) &var←c59820)+6)/* var←c48332 */ ;
(* (ptr) tmpAddr191 ) = ( ((word) (fPt) SomeSelectedConstrainer←P7008) );
(* (( (ptr) tmpAddr191) + 1) ) = 1;
};
SOURCE(13259, 41)
seq←v21076 = XR←Narrow((* (( (ptr) var←c59820.f4/* descriptor←v8776 */ )+1) ), (* (( (ptr) gf←c59852)+5) ));
SOURCE(13302, 29)
if ((var←c59820.f5/* selected←v8804 */ == 0)) {
SOURCE(13325, 6)
return;
};
SOURCE(13352, 250)
{
register word i←v21224 = 0;
register word noName←c48364;
word var←c48396;
word var←c48428;
noName←c48364 = (* (ptr) (* (ptr) seq←v21076 ) );
if ((i←v21224 >= noName←c48364)) {
goto lab←L100116;
};
lab←L100119: ;
SOURCE(13391, 211)
{
word tc192;
word tc193;
word tc194;
word pd195;
word limit196;
word limit197;
pd195 = (* (( (ptr) (* (( (ptr) gf←c59852)+204)/* var←c43500 */ ))+29) );
if (((* (ptr) (* (ptr) ( *( (fPt) ((* (ptr) pd195 ))))((* (ptr) var←c59820.f4/* descriptor←v8776 */ ), i←v21224, pd195)
) ) == (* (( (ptr) gf←c59852)+26) ))) {
var←c48396 = (* (ptr) seq←v21076 );
tc194 = (word) ! XR←ExtractField(var←c48396, 32 + (word) (
limit196 = (* (ptr) var←c48396 ),
BCK(i←v21224, limit196)
), 1);
}
else {
tc194 = (word) 0;
};
if (tc194) {
var←c48428 = (* (ptr) var←c59820.f5/* selected←v8804 */ );
tc193 = (word) ! XR←ExtractField(var←c48428, 32 + (word) (
limit197 = (* (ptr) var←c48428 ),
BCK(i←v21224, limit197)
), 1);
}
else {
tc193 = (word) 0;
};
if (tc193) {
tc192 = (word) (0 != (word) SomeSelectedConstrainer←P7008(i←v21224, (word) (( (bPt) &var←c59820)+24)/* var←c48332 */ ));
}
else {
tc192 = (word) 0;
};
if (tc192) {
SOURCE(13547, 22)
{
word var←c48460;
var←c48460 = (* (ptr) seq←v21076 );
{
word limit198;
word xs199;
xs199 = (word) (
limit198 = (* (ptr) var←c48460 ),
BCK(i←v21224, limit198)
);
(* (bPt) ((( (bPt) var←c48460)+4) + ((word) xs199 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs199 & 7)+1));
};
};
SOURCE(13571, 31)
(* (( (ptr) seq←v21076)+3) ) = ((* (( (ptr) seq←v21076)+3) ) + 1);
};
};
i←v21224 = (i←v21224 + 1);
if ((i←v21224 < noName←c48364)) {
goto lab←L100119;
};
lab←L100116: ;
};
}
static word SomeSelectedConstrainer←P7008(i←v21152, formal←c59916)
word i←v21152;
word formal←c59916;
{
register ptr gf←c59884 = (ptr) &globalframe;
word var←c21196;
word previous←v21268;
word following←v21296;
word var←c48524;
word var←c48588;
formal←c59916 = (formal←c59916 - 24);
/* SomeSelectedConstrainer: */
SOURCE(12736, 518)
SOURCE(12820, 57)
{
word pd200;
pd200 = (* (( (ptr) (* (( (ptr) gf←c59884)+204)/* var←c43500 */ ))+42) );
previous←v21268 = (word) ( *( (fPt) ((* (ptr) pd200 ))))((* (ptr) (* (( (ptr) formal←c59916)+4) ) ), i←v21152, pd200);
};
SOURCE(12879, 59)
{
word pd201;
pd201 = (* (( (ptr) (* (( (ptr) gf←c59884)+204)/* var←c43500 */ ))+43) );
following←v21296 = (word) ( *( (fPt) ((* (ptr) pd201 ))))((* (ptr) (* (( (ptr) formal←c59916)+4) ) ), i←v21152, pd201);
};
SOURCE(12940, 147)
{
word tc202;
word tc203;
word pd204;
word limit206;
if (( (int)previous←v21268 != (int) (word) -1)) {
pd204 = (* (( (ptr) (* (( (ptr) gf←c59884)+204)/* var←c43500 */ ))+29) );
tc203 = (word) ((* (ptr) (* (ptr) ( *( (fPt) ((* (ptr) pd204 ))))((* (ptr) (* (( (ptr) formal←c59916)+4) ) ), SGNCK(
previous←v21268), pd204) ) ) == (* (( (ptr) gf←c59884)+26) ));
}
else {
tc203 = (word) 0;
};
if (tc203) {
{
word var←c48492;
var←c48492 = (* (( (ptr) (* (( (ptr) formal←c59916)+5) ))+2) );
{
word limit205;
var←c48524 = (* ((( (ptr) var←c48492)+1)+(
limit205 = (* (ptr) var←c48492 ),
BCK(previous←v21268, limit205)
)) );
};
};
tc202 = (word) XR←ExtractField(var←c48524, 32 + (word) (
limit206 = (* (ptr) var←c48524 ),
BCK(1, limit206)
), 1);
}
else {
tc202 = (word) 0;
};
if (tc202) {
SOURCE(13075, 12)
return(1);
};
};
SOURCE(13089, 150)
{
word tc207;
word tc208;
word pd209;
word limit211;
if (( (int)following←v21296 != (int) (word) -1)) {
pd209 = (* (( (ptr) (* (( (ptr) gf←c59884)+204)/* var←c43500 */ ))+29) );
tc208 = (word) ((* (ptr) (* (ptr) ( *( (fPt) ((* (ptr) pd209 ))))((* (ptr) (* (( (ptr) formal←c59916)+4) ) ), SGNCK(
following←v21296), pd209) ) ) == (* (( (ptr) gf←c59884)+26) ));
}
else {
tc208 = (word) 0;
};
if (tc208) {
{
word var←c48556;
var←c48556 = (* (( (ptr) (* (( (ptr) formal←c59916)+5) ))+2) );
{
word limit210;
var←c48588 = (* ((( (ptr) var←c48556)+1)+(
limit210 = (* (ptr) var←c48556 ),
BCK(following←v21296, limit210)
)) );
};
};
tc207 = (word) XR←ExtractField(var←c48588, 32 + (word) (
limit211 = (* (ptr) var←c48588 ),
BCK(0, limit211)
), 1);
}
else {
tc207 = (word) 0;
};
if (tc207) {
SOURCE(13227, 12)
return(1);
};
};
SOURCE(13241, 13)
return(0);
}
static void AddNewBezier←P1200(seq←v8864, selected←v8892, segNum←v8920)
word seq←v8864;
word selected←v8892;
word segNum←v8920;
{
word var←c48620;
word var←c48652;
/* AddNewBezier: */
SOURCE(13620, 253)
SOURCE(13694, 29)
if ((selected←v8892 == 0)) {
SOURCE(13717, 6)
return;
};
SOURCE(13744, 129)
{
word tc212;
word limit213;
word limit214;
var←c48620 = (* (ptr) seq←v8864 );
if ( ! XR←ExtractField(var←c48620, 32 + (word) (
limit213 = (* (ptr) var←c48620 ),
BCK(segNum←v8920, limit213)
), 1)) {
var←c48652 = (* (ptr) selected←v8892 );
tc212 = (word) ! XR←ExtractField(var←c48652, 32 + (word) (
limit214 = (* (ptr) var←c48652 ),
BCK(segNum←v8920, limit214)
), 1);
}
else {
tc212 = (word) 0;
};
if (tc212) {
SOURCE(13813, 27)
{
word var←c48684;
var←c48684 = (* (ptr) seq←v8864 );
{
word limit215;
word xs216;
xs216 = (word) (
limit215 = (* (ptr) var←c48684 ),
BCK(segNum←v8920, limit215)
);
(* (bPt) ((( (bPt) var←c48684)+4) + ((word) xs216 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs216 & 7)+1));
};
};
SOURCE(13842, 31)
(* (( (ptr) seq←v8864)+3) ) = ((* (( (ptr) seq←v8864)+3) ) + 1);
};
};
}
static void DDifference←P1260(mutable←v8980, negative←v9008)
word mutable←v8980;
word negative←v9008;
{
register ptr gf←c59948 = (ptr) &globalframe;
/* DDifference: */
SOURCE(13882, 232)
SOURCE(13948, 49)
if (((* (( (ptr) (* (ptr) mutable←v8980 ))+1) ) != (* (( (ptr) (* (ptr) negative←v9008 ))+1) ))) {
SOURCE(13997, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(14030, 84)
{
word var←c48716;
word var←c48748;
var←c48716 = XR←Narrow((* (( (ptr) mutable←v8980)+1) ), (* (( (ptr) gf←c59948)+5) ));
var←c48748 = XR←Narrow((* (( (ptr) negative←v9008)+1) ), (* (( (ptr) gf←c59948)+5) ));
(void) DDifferenceSeq←P1320(var←c48716, var←c48748);
};
}
static void DDifferenceSeq←P1320(mutSeq←v9068, negSeq←v9096)
word mutSeq←v9068;
word negSeq←v9096;
{
word hiJoint←v21340;
/* DDifferenceSeq: */
SOURCE(14120, 677)
SOURCE(14195, 345)
{
register word i←v21384 = 0;
register word noName←c48780;
noName←c48780 = (* (ptr) (* (ptr) mutSeq←v9068 ) );
if ((i←v21384 >= noName←c48780)) {
goto lab←L100120;
};
lab←L100123: ;
{
word cpCount←v21428;
word var←c48812;
SOURCE(14237, 42)
{
word limit217;
var←c48812 = (* (( (ptr) mutSeq←v9068)+2) );
cpCount←v21428 = (* (ptr) (* ((( (ptr) var←c48812)+1)+(
limit217 = (* (ptr) var←c48812 ),
BCK(i←v21384, limit217)
)) ) );
};
SOURCE(14281, 66)
{
word var←c48908;
word var←c48844;
var←c48908 = (* (ptr) mutSeq←v9068 );
{
word limit218;
word limit223;
word xs224;
var←c48844 = (* (ptr) mutSeq←v9068 );
if (XR←ExtractField(var←c48844, 32 + (word) (
limit218 = (* (ptr) var←c48844 ),
BCK(i←v21384, limit218)
), 1)) {
{
word var←c48876;
var←c48876 = (* (ptr) negSeq←v9096 );
{
word limit219;
word limit220;
word xs221;
word x222;
xs221 = (word) (
limit220 = (* (ptr) var←c48908 ),
BCK(i←v21384, limit220)
);
x222 = (word) ((( (bPt) var←c48908)+4) + ((word) xs221 >> 3));
xs221 = 8 - ((word) (xs221 & 7)+1);
(* (bPt) x222 ) = ((* (bPt) x222 ) & ( ~ ((unsigned) 1 << xs221))) | ((( ! XR←ExtractField(var←c48876, 32 + (word) (
/*1*/ limit219 = (* (ptr) var←c48876 ),
/*1*/ BCK(i←v21384, limit219)
/*1*/ ), 1))) << xs221);
};
};
}
else {
xs224 = (word) (
limit223 = (* (ptr) var←c48908 ),
BCK(i←v21384, limit223)
);
(* (bPt) ((( (bPt) var←c48908)+4) + ((word) xs224 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs224 & 7)+1));
};
};
};
SOURCE(14349, 120)
{
register word j←v21472 = 0;
register word noName←c48940;
noName←c48940 = cpCount←v21428;
if ((j←v21472 >= noName←c48940)) {
goto lab←L100124;
};
lab←L100127: ;
SOURCE(14379, 90)
{
word var←c49132;
word var←c49004;
{
word var←c49100;
var←c49100 = (* (( (ptr) mutSeq←v9068)+2) );
{
word limit225;
var←c49132 = (* ((( (ptr) var←c49100)+1)+(
limit225 = (* (ptr) var←c49100 ),
BCK(i←v21384, limit225)
)) );
};
};
{
word limit227;
word limit233;
word xs234;
{
word var←c48972;
var←c48972 = (* (( (ptr) mutSeq←v9068)+2) );
{
word limit226;
var←c49004 = (* ((( (ptr) var←c48972)+1)+(
/*1*/ limit226 = (* (ptr) var←c48972 ),
/*1*/ BCK(i←v21384, limit226)
/*1*/ )) );
};
};
if (XR←ExtractField(var←c49004, 32 + (word) (
limit227 = (* (ptr) var←c49004 ),
BCK(j←v21472, limit227)
), 1)) {
{
word var←c49036;
word var←c49068;
{
word limit228;
var←c49036 = (* (( (ptr) negSeq←v9096)+2) );
var←c49068 = (* ((( (ptr) var←c49036)+1)+(
/*1*/ limit228 = (* (ptr) var←c49036 ),
/*1*/ BCK(i←v21384, limit228)
/*1*/ )) );
};
{
word limit229;
word limit230;
word xs231;
word x232;
xs231 = (word) (
/*1*/ limit230 = (* (ptr) var←c49132 ),
/*1*/ BCK(j←v21472, limit230)
/*1*/ );
x232 = (word) ((( (bPt) var←c49132)+4) + ((word) xs231 >> 3));
xs231 = 8 - ((word) (xs231 & 7)+1);
(* (bPt) x232 ) = ((* (bPt) x232 ) & ( ~ ((unsigned) 1 << xs231))) | ((( ! XR←ExtractField(var←c49068, 32 + (word) (
/*1*/ limit229 = (* (ptr) var←c49068 ),
/*1*/ BCK(j←v21472, limit229)
/*1*/ ), 1))) << xs231);
};
};
}
else {
xs234 = (word) (
limit233 = (* (ptr) var←c49132 ),
BCK(j←v21472, limit233)
);
(* (bPt) ((( (bPt) var←c49132)+4) + ((word) xs234 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs234 & 7)+1));
};
};
};
j←v21472 = (j←v21472 + 1);
if ((j←v21472 < noName←c48940)) {
goto lab←L100127;
};
lab←L100124: ;
};
SOURCE(14480, 60)
{
word var←c49228;
word var←c49164;
var←c49228 = (* (( (ptr) mutSeq←v9068)+1) );
{
word limit235;
word limit240;
word xs241;
var←c49164 = (* (( (ptr) mutSeq←v9068)+1) );
if (XR←ExtractField(var←c49164, 32 + (word) (
limit235 = (* (ptr) var←c49164 ),
BCK(i←v21384, limit235)
), 1)) {
{
word var←c49196;
var←c49196 = (* (( (ptr) negSeq←v9096)+1) );
{
word limit236;
word limit237;
word xs238;
word x239;
xs238 = (word) (
limit237 = (* (ptr) var←c49228 ),
BCK(i←v21384, limit237)
);
x239 = (word) ((( (bPt) var←c49228)+4) + ((word) xs238 >> 3));
xs238 = 8 - ((word) (xs238 & 7)+1);
(* (bPt) x239 ) = ((* (bPt) x239 ) & ( ~ ((unsigned) 1 << xs238))) | ((( ! XR←ExtractField(var←c49196, 32 + (word) (
/*1*/ limit236 = (* (ptr) var←c49196 ),
/*1*/ BCK(i←v21384, limit236)
/*1*/ ), 1))) << xs238);
};
};
}
else {
xs241 = (word) (
limit240 = (* (ptr) var←c49228 ),
BCK(i←v21384, limit240)
);
(* (bPt) ((( (bPt) var←c49228)+4) + ((word) xs241 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs241 & 7)+1));
};
};
};
};
i←v21384 = (i←v21384 + 1);
if ((i←v21384 < noName←c48780)) {
goto lab←L100123;
};
lab←L100120: ;
};
SOURCE(14551, 29)
{
word idx242;
hiJoint←v21340 = (
idx242 = (word) ((* (ptr) (* (( (ptr) mutSeq←v9068)+1) ) ) - 1),
SGNCK(idx242)
);
};
SOURCE(14582, 78)
{
word var←c49324;
word var←c49260;
var←c49324 = (* (( (ptr) mutSeq←v9068)+1) );
{
word limit243;
word limit248;
word xs249;
var←c49260 = (* (( (ptr) mutSeq←v9068)+1) );
if (XR←ExtractField(var←c49260, 32 + (word) (
limit243 = (* (ptr) var←c49260 ),
BCK(hiJoint←v21340, limit243)
), 1)) {
{
word var←c49292;
var←c49292 = (* (( (ptr) negSeq←v9096)+1) );
{
word limit244;
word limit245;
word xs246;
word x247;
xs246 = (word) (
limit245 = (* (ptr) var←c49324 ),
BCK(hiJoint←v21340, limit245)
);
x247 = (word) ((( (bPt) var←c49324)+4) + ((word) xs246 >> 3));
xs246 = 8 - ((word) (xs246 & 7)+1);
(* (bPt) x247 ) = ((* (bPt) x247 ) & ( ~ ((unsigned) 1 << xs246))) | ((( ! XR←ExtractField(var←c49292, 32 + (word) (
/*1*/ limit244 = (* (ptr) var←c49292 ),
/*1*/ BCK(hiJoint←v21340, limit244)
/*1*/ ), 1))) << xs246);
};
};
}
else {
xs249 = (word) (
limit248 = (* (ptr) var←c49324 ),
BCK(hiJoint←v21340, limit248)
);
(* (bPt) ((( (bPt) var←c49324)+4) + ((word) xs249 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs249 & 7)+1));
};
};
};
SOURCE(14662, 39)
(* (( (ptr) mutSeq←v9068)+3) ) = (word) CountSegments←P2460(mutSeq←v9068);
SOURCE(14703, 39)
(* (( (ptr) mutSeq←v9068)+4) ) = (word) CountJoints←P2520(mutSeq←v9068);
SOURCE(14744, 53)
(* (( (ptr) mutSeq←v9068)+5) ) = (word) CountControlPoints←P2580(mutSeq←v9068);
}
static word FindPartsInList←P1380(traj←v9156, selectedList←v9184)
word traj←v9156;
word selectedList←v9184;
{
register ptr gf←c59980 = (ptr) &globalframe;
word trajParts←v9312;
word trajD←v21516 = 0;
/* FindPartsInList: */
SOURCE(14803, 530)
SOURCE(14803, 530)
trajParts←v9312 = 0;
SOURCE(14943, 368)
{
register word sliceDList←v21560;
sliceDList←v21560 = selectedList←v9184;
lab←L100131: ;
if ((sliceDList←v21560 != 0)) {
}
else {
goto lab←L100128;
};
{
word sliceD←v21688;
SOURCE(15041, 42)
sliceD←v21688 = (* (ptr) sliceDList←v21560 );
SOURCE(15085, 179)
{
word pd250;
word pd251;
word pd252;
pd250 = (* (( (ptr) (* (( (ptr) gf←c59980)+205)/* var←c49356 */ ))+6) );
if (((word) ( *( (fPt) ((* (ptr) pd250 ))))((* (ptr) (sliceD←v21688) ), pd250) == (* (( (ptr) gf←c59980)+25) ))) {
trajD←v21516 = sliceD←v21688;
}
else {
pd251 = (* (( (ptr) (* (( (ptr) gf←c59980)+205)/* var←c49356 */ ))+6) );
if (((word) ( *( (fPt) ((* (ptr) pd251 ))))((* (ptr) (sliceD←v21688) ), pd251) == (* (( (ptr) gf←c59980)+24) ))) {
pd252 = (* (( (ptr) (* (( (ptr) gf←c59980)+206)/* var←c49388 */ ))+85) );
trajD←v21516 = (word) ( *( (fPt) ((* (ptr) pd252 ))))(sliceD←v21688, traj←v9156, pd252);
}
else {
trajD←v21516 = 0;
};
};
};
SOURCE(15266, 45)
if ((trajD←v21516 != 0)) {
SOURCE(15284, 27)
return(XR←Narrow((* (( (ptr) trajD←v21516)+1) ), (* (( (ptr) gf←c59980)+5) )));
};
};
sliceDList←v21560 = (* (( (ptr) sliceDList←v21560)+1) );
goto lab←L100131;
lab←L100128: ;
};
SOURCE(15322, 11)
return(0);
}
static word NewBitMatrixFromSeq←P1440(seq←v9372)
word seq←v9372;
{
register ptr gf←c60012 = (ptr) &globalframe;
word bitMatrix←v9416;
/* NewBitMatrixFromSeq: */
SOURCE(15339, 258)
SOURCE(15339, 258)
bitMatrix←v9416 = 0;
SOURCE(15417, 52)
{
word var←c49452;
word var←c49484;
word var←c49516;
{
word idx253;
var←c49452 = (
idx253 = (* (ptr) (* (( (ptr) seq←v9372)+2) ) ),
BCK(idx253, 67108863)
);
};
var←c49484 = ((word) var←c49452 << 2);
var←c49516 = XR←NewObject((4 + var←c49484), (* (( (ptr) gf←c60012)+11) ));
(* (ptr) var←c49516 ) = var←c49452;
bitMatrix←v9416 = var←c49516;
};
SOURCE(15471, 126)
{
register word j←v21732 = 0;
register word noName←c49548;
noName←c49548 = (* (ptr) (* (( (ptr) seq←v9372)+2) ) );
if ((j←v21732 >= noName←c49548)) {
goto lab←L100132;
};
lab←L100135: ;
SOURCE(15544, 53)
{
word var←c49580;
{
word var←c49612;
word var←c01168;
{
word limit254;
var←c49612 = (* (( (ptr) seq←v9372)+2) );
var←c01168 = (* (ptr) (* ((( (ptr) var←c49612)+1)+(
limit254 = (* (ptr) var←c49612 ),
BCK(j←v21732, limit254)
)) ) );
};
var←c49580 = (word) NewBitVector←P1560(var←c01168);
};
{
word limit255;
(* ((( (ptr) bitMatrix←v9416)+1)+(
limit255 = (* (ptr) bitMatrix←v9416 ),
BCK(j←v21732, limit255)
)) ) = var←c49580;
};
};
j←v21732 = (j←v21732 + 1);
if ((j←v21732 < noName←c49548)) {
goto lab←L100135;
};
lab←L100132: ;
};
SOURCE(15339, 258)
return(bitMatrix←v9416);
}
static word NewBitMatrix←P1500(traj←v9476)
word traj←v9476;
{
register ptr gf←c60044 = (ptr) &globalframe;
word bitMatrix←v9520;
word j←v21776 = 0;
word segGen←v21804;
/* NewBitMatrix: */
SOURCE(15648, 360)
SOURCE(15648, 360)
bitMatrix←v9520 = 0;
SOURCE(15731, 58)
{
word pd256;
pd256 = (* (( (ptr) (* (( (ptr) gf←c60044)+207)/* var←c49644 */ ))+40) );
segGen←v21804 = (word) ( *( (fPt) ((* (ptr) pd256 ))))(traj←v9476, pd256);
};
SOURCE(15791, 44)
{
word var←c49676;
word var←c49708;
word var←c49740;
{
word idx257;
var←c49676 = (
idx257 = (* (( (ptr) traj←v9476)+1) ),
BCK(idx257, 67108863)
);
};
var←c49708 = ((word) var←c49676 << 2);
var←c49740 = XR←NewObject((4 + var←c49708), (* (( (ptr) gf←c60044)+11) ));
(* (ptr) var←c49740 ) = var←c49676;
bitMatrix←v9520 = var←c49740;
};
SOURCE(15837, 171)
{
register word seg←v21848;
{
word pd258;
pd258 = (* (( (ptr) (* (( (ptr) gf←c60044)+207)/* var←c49644 */ ))+46) );
seg←v21848 = (word) ( *( (fPt) ((* (ptr) pd258 ))))(segGen←v21804, pd258);
};
lab←L100139: ;
if ((seg←v21848 != 0)) {
}
else {
goto lab←L100136;
};
SOURCE(15938, 61)
{
word var←c49772;
{
word var←c49804;
{
word pd259;
pd259 = (* (( (ptr) (* (ptr) seg←v21848 ))+17) );
var←c49804 = (word) ( *( (fPt) ((* (ptr) pd259 ))))(seg←v21848, pd259);
};
var←c49772 = (word) NewBitVector←P1560(var←c49804);
};
{
word limit260;
(* ((( (ptr) bitMatrix←v9520)+1)+(
limit260 = (* (ptr) bitMatrix←v9520 ),
BCK(j←v21776, limit260)
)) ) = var←c49772;
};
};
SOURCE(16001, 7)
j←v21776 = (j←v21776 + 1);
{
word pd261;
pd261 = (* (( (ptr) (* (( (ptr) gf←c60044)+207)/* var←c49644 */ ))+46) );
seg←v21848 = (word) ( *( (fPt) ((* (ptr) pd261 ))))(segGen←v21804, pd261);
};
goto lab←L100139;
lab←L100136: ;
};
SOURCE(15648, 360)
return(bitMatrix←v9520);
}
static word NewBitVector←P1560(length←v9580)
word length←v9580;
{
register ptr gf←c60076 = (ptr) &globalframe;
word bitVec←v9624;
/* NewBitVector: */
SOURCE(16023, 126)
SOURCE(16023, 126)
bitVec←v9624 = 0;
SOURCE(16088, 34)
{
word var←c49836;
word var←c49868;
word var←c49900;
var←c49836 = BCK(length←v9580, 2147483647);
var←c49868 = ((word) ((word) (var←c49836 + 31) >> 5) << 2);
var←c49900 = XR←NewObject((4 + var←c49868), (* (( (ptr) gf←c60076)+12) ));
(* (ptr) var←c49900 ) = var←c49836;
bitVec←v9624 = var←c49900;
};
SOURCE(16124, 25)
(void) SetAllBits←P1620(bitVec←v9624, 0);
SOURCE(16023, 126)
return(bitVec←v9624);
}
static void SetAllBits←P1620(bitVec←v9684, bool←v9712)
word bitVec←v9684;
word bool←v9712;
{
/* SetAllBits: */
SOURCE(16154, 102)
SOURCE(16207, 49)
{
register word i←v21892 = 0;
register word noName←c49932;
noName←c49932 = (* (ptr) bitVec←v9684 );
if ((i←v21892 >= noName←c49932)) {
goto lab←L100140;
};
lab←L100143: ;
SOURCE(16240, 16)
{
word limit262;
word xs263;
word x264;
xs263 = (word) (
limit262 = (* (ptr) bitVec←v9684 ),
BCK(i←v21892, limit262)
);
x264 = (word) ((( (bPt) bitVec←v9684)+4) + ((word) xs263 >> 3));
xs263 = 8 - ((word) (xs263 & 7)+1);
(* (bPt) x264 ) = ((* (bPt) x264 ) & ( ~ ((unsigned) 1 << xs263))) | (((bool←v9712 & 1)) << xs263);
};
i←v21892 = (i←v21892 + 1);
if ((i←v21892 < noName←c49932)) {
goto lab←L100143;
};
lab←L100140: ;
};
}
static word SomeSegCPInSeq←P1680(segNum←v9772, seq←v9800)
word segNum←v9772;
word seq←v9800;
{
word var←c9844;
word cpCount←v21936;
word var←c49964;
/* SomeSegCPInSeq: */
SOURCE(16271, 219)
SOURCE(16341, 44)
{
word limit265;
var←c49964 = (* (( (ptr) seq←v9800)+2) );
cpCount←v21936 = (* (ptr) (* ((( (ptr) var←c49964)+1)+(
limit265 = (* (ptr) var←c49964 ),
BCK(segNum←v9772, limit265)
)) ) );
};
SOURCE(16387, 79)
{
register word j←v21980 = 0;
register word noName←c49996;
word var←c50060;
noName←c49996 = cpCount←v21936;
if ((j←v21980 >= noName←c49996)) {
goto lab←L100144;
};
lab←L100147: ;
SOURCE(16417, 49)
{
word limit267;
{
word var←c50028;
var←c50028 = (* (( (ptr) seq←v9800)+2) );
{
word limit266;
var←c50060 = (* ((( (ptr) var←c50028)+1)+(
limit266 = (* (ptr) var←c50028 ),
BCK(segNum←v9772, limit266)
)) );
};
};
if (XR←ExtractField(var←c50060, 32 + (word) (
limit267 = (* (ptr) var←c50060 ),
BCK(j←v21980, limit267)
), 1)) {
SOURCE(16454, 12)
return(1);
};
};
j←v21980 = (j←v21980 + 1);
if ((j←v21980 < noName←c49996)) {
goto lab←L100147;
};
lab←L100144: ;
};
SOURCE(16477, 13)
return(0);
}
static word Union←P1740(a←v9904, b←v9932)
word a←v9904;
word b←v9932;
{
register ptr gf←c60108 = (ptr) &globalframe;
word union←v9976;
word hiJoint←v22024;
word uSeq←v22052 = 0;
word aSeq←v22080;
word aTraj←v22108;
word bSeq←v22136;
word bTraj←v22164;
/* Union: */
SOURCE(16496, 1215)
SOURCE(16496, 1215)
union←v9976 = 0;
SOURCE(16607, 33)
aSeq←v22080 = XR←Narrow((* (( (ptr) a←v9904)+1) ), (* (( (ptr) gf←c60108)+5) ));
SOURCE(16642, 38)
aTraj←v22108 = XR←Narrow((* (( (ptr) (* (ptr) a←v9904 ))+1) ), (* (( (ptr) gf←c60108)+13) ));
SOURCE(16682, 33)
bSeq←v22136 = XR←Narrow((* (( (ptr) b←v9932)+1) ), (* (( (ptr) gf←c60108)+5) ));
SOURCE(16717, 38)
bTraj←v22164 = XR←Narrow((* (( (ptr) (* (ptr) b←v9932 ))+1) ), (* (( (ptr) gf←c60108)+13) ));
SOURCE(16757, 22)
if ((aTraj←v22108 != bTraj←v22164)) {
SOURCE(16779, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(16786, 28)
if ((aSeq←v22080 == 0)) {
SOURCE(16805, 9)
return(b←v9932);
};
SOURCE(16834, 28)
if ((bSeq←v22136 == 0)) {
SOURCE(16853, 9)
return(a←v9904);
};
SOURCE(16882, 31)
if ((0 != (word) IsEmpty←P2220(aSeq←v22080))) {
SOURCE(16904, 9)
return(b←v9932);
};
SOURCE(16933, 31)
if ((0 != (word) IsEmpty←P2220(bSeq←v22136))) {
SOURCE(16955, 9)
return(a←v9904);
};
SOURCE(16984, 34)
if ((0 != (word) IsComplete←P2280(aSeq←v22080))) {
SOURCE(17009, 9)
return(a←v9904);
};
SOURCE(17038, 34)
if ((0 != (word) IsComplete←P2280(bSeq←v22136))) {
SOURCE(17063, 9)
return(b←v9932);
};
SOURCE(17092, 25)
uSeq←v22052 = (word) CreateEmpty←P180(aTraj←v22108);
SOURCE(17119, 308)
{
register word i←v22208 = 0;
register word noName←c50092;
noName←c50092 = (* (ptr) (* (ptr) uSeq←v22052 ) );
if ((i←v22208 >= noName←c50092)) {
goto lab←L100148;
};
lab←L100151: ;
{
word cpCount←v22252;
word var←c50124;
SOURCE(17159, 40)
{
word limit268;
var←c50124 = (* (( (ptr) aSeq←v22080)+2) );
cpCount←v22252 = (* (ptr) (* ((( (ptr) var←c50124)+1)+(
limit268 = (* (ptr) var←c50124 ),
BCK(i←v22208, limit268)
)) ) );
};
SOURCE(17201, 55)
{
word var←c50220;
word var←c50156;
var←c50220 = (* (ptr) uSeq←v22052 );
{
word limit269;
word limit270;
word xs271;
var←c50156 = (* (ptr) aSeq←v22080 );
if (XR←ExtractField(var←c50156, 32 + (word) (
limit269 = (* (ptr) var←c50156 ),
BCK(i←v22208, limit269)
), 1)) {
xs271 = (word) (
limit270 = (* (ptr) var←c50220 ),
BCK(i←v22208, limit270)
);
(* (bPt) ((( (bPt) var←c50220)+4) + ((word) xs271 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs271 & 7)+1));
}
else {
{
word var←c50188;
var←c50188 = (* (ptr) bSeq←v22136 );
{
word limit272;
word limit273;
word xs274;
word x275;
xs274 = (word) (
limit273 = (* (ptr) var←c50220 ),
BCK(i←v22208, limit273)
);
x275 = (word) ((( (bPt) var←c50220)+4) + ((word) xs274 >> 3));
xs274 = 8 - ((word) (xs274 & 7)+1);
(* (bPt) x275 ) = ((* (bPt) x275 ) & ( ~ ((unsigned) 1 << xs274))) | (((XR←ExtractField(var←c50188, 32 + (word) (
/*1*/ limit272 = (* (ptr) var←c50188 ),
/*1*/ BCK(i←v22208, limit272)
/*1*/ ), 1))) << xs274);
};
};
};
};
};
SOURCE(17258, 109)
{
register word j←v22296 = 0;
register word noName←c50252;
noName←c50252 = cpCount←v22252;
if ((j←v22296 >= noName←c50252)) {
goto lab←L100152;
};
lab←L100155: ;
SOURCE(17288, 79)
{
word var←c50444;
word var←c50316;
{
word var←c50412;
var←c50412 = (* (( (ptr) uSeq←v22052)+2) );
{
word limit276;
var←c50444 = (* ((( (ptr) var←c50412)+1)+(
limit276 = (* (ptr) var←c50412 ),
BCK(i←v22208, limit276)
)) );
};
};
{
word limit278;
word limit279;
word xs280;
{
word var←c50284;
var←c50284 = (* (( (ptr) aSeq←v22080)+2) );
{
word limit277;
var←c50316 = (* ((( (ptr) var←c50284)+1)+(
/*1*/ limit277 = (* (ptr) var←c50284 ),
/*1*/ BCK(i←v22208, limit277)
/*1*/ )) );
};
};
if (XR←ExtractField(var←c50316, 32 + (word) (
limit278 = (* (ptr) var←c50316 ),
BCK(j←v22296, limit278)
), 1)) {
xs280 = (word) (
limit279 = (* (ptr) var←c50444 ),
BCK(j←v22296, limit279)
);
(* (bPt) ((( (bPt) var←c50444)+4) + ((word) xs280 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs280 & 7)+1));
}
else {
{
word var←c50380;
{
word var←c50348;
var←c50348 = (* (( (ptr) bSeq←v22136)+2) );
{
/*1*/ word limit281;
/*1*/ var←c50380 = (* ((( (ptr) var←c50348)+1)+(
/*1*/ limit281 = (* (ptr) var←c50348 ),
/*1*/ BCK(i←v22208, limit281)
/*1*/ )) );
/*1*/ };
};
{
word limit282;
word limit283;
word xs284;
word x285;
xs284 = (word) (
/*1*/ limit283 = (* (ptr) var←c50444 ),
/*1*/ BCK(j←v22296, limit283)
/*1*/ );
x285 = (word) ((( (bPt) var←c50444)+4) + ((word) xs284 >> 3));
xs284 = 8 - ((word) (xs284 & 7)+1);
(* (bPt) x285 ) = ((* (bPt) x285 ) & ( ~ ((unsigned) 1 << xs284))) | (((XR←ExtractField(var←c50380, 32 + (word) (
/*1*/ limit282 = (* (ptr) var←c50380 ),
/*1*/ BCK(j←v22296, limit282)
/*1*/ ), 1))) << xs284);
};
};
};
};
};
j←v22296 = (j←v22296 + 1);
if ((j←v22296 < noName←c50252)) {
goto lab←L100155;
};
lab←L100152: ;
};
SOURCE(17378, 49)
{
word var←c50540;
word var←c50476;
var←c50540 = (* (( (ptr) uSeq←v22052)+1) );
{
word limit286;
word limit287;
word xs288;
var←c50476 = (* (( (ptr) aSeq←v22080)+1) );
if (XR←ExtractField(var←c50476, 32 + (word) (
limit286 = (* (ptr) var←c50476 ),
BCK(i←v22208, limit286)
), 1)) {
xs288 = (word) (
limit287 = (* (ptr) var←c50540 ),
BCK(i←v22208, limit287)
);
(* (bPt) ((( (bPt) var←c50540)+4) + ((word) xs288 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs288 & 7)+1));
}
else {
{
word var←c50508;
var←c50508 = (* (( (ptr) bSeq←v22136)+1) );
{
word limit289;
word limit290;
word xs291;
word x292;
xs291 = (word) (
limit290 = (* (ptr) var←c50540 ),
BCK(i←v22208, limit290)
);
x292 = (word) ((( (bPt) var←c50540)+4) + ((word) xs291 >> 3));
xs291 = 8 - ((word) (xs291 & 7)+1);
(* (bPt) x292 ) = ((* (bPt) x292 ) & ( ~ ((unsigned) 1 << xs291))) | (((XR←ExtractField(var←c50508, 32 + (word) (
/*1*/ limit289 = (* (ptr) var←c50508 ),
/*1*/ BCK(i←v22208, limit289)
/*1*/ ), 1))) << xs291);
};
};
};
};
};
};
i←v22208 = (i←v22208 + 1);
if ((i←v22208 < noName←c50092)) {
goto lab←L100151;
};
lab←L100148: ;
};
SOURCE(17438, 27)
{
word idx293;
hiJoint←v22024 = (
idx293 = (word) ((* (ptr) (* (( (ptr) uSeq←v22052)+1) ) ) - 1),
SGNCK(idx293)
);
};
SOURCE(17467, 67)
{
word var←c50636;
word var←c50572;
var←c50636 = (* (( (ptr) uSeq←v22052)+1) );
{
word limit294;
word limit295;
word xs296;
var←c50572 = (* (( (ptr) aSeq←v22080)+1) );
if (XR←ExtractField(var←c50572, 32 + (word) (
limit294 = (* (ptr) var←c50572 ),
BCK(hiJoint←v22024, limit294)
), 1)) {
xs296 = (word) (
limit295 = (* (ptr) var←c50636 ),
BCK(hiJoint←v22024, limit295)
);
(* (bPt) ((( (bPt) var←c50636)+4) + ((word) xs296 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs296 & 7)+1));
}
else {
{
word var←c50604;
var←c50604 = (* (( (ptr) bSeq←v22136)+1) );
{
word limit297;
word limit298;
word xs299;
word x300;
xs299 = (word) (
limit298 = (* (ptr) var←c50636 ),
BCK(hiJoint←v22024, limit298)
);
x300 = (word) ((( (bPt) var←c50636)+4) + ((word) xs299 >> 3));
xs299 = 8 - ((word) (xs299 & 7)+1);
(* (bPt) x300 ) = ((* (bPt) x300 ) & ( ~ ((unsigned) 1 << xs299))) | (((XR←ExtractField(var←c50604, 32 + (word) (
/*1*/ limit297 = (* (ptr) var←c50604 ),
/*1*/ BCK(hiJoint←v22024, limit297)
/*1*/ ), 1))) << xs299);
};
};
};
};
};
SOURCE(17536, 35)
(* (( (ptr) uSeq←v22052)+3) ) = (word) CountSegments←P2460(uSeq←v22052);
SOURCE(17573, 35)
(* (( (ptr) uSeq←v22052)+4) ) = (word) CountJoints←P2520(uSeq←v22052);
SOURCE(17610, 49)
(* (( (ptr) uSeq←v22052)+5) ) = (word) CountControlPoints←P2580(uSeq←v22052);
SOURCE(17661, 50)
{
word pd301;
pd301 = (* (( (ptr) (* (( (ptr) gf←c60108)+208)/* var←c50668 */ ))+8) );
union←v9976 = (word) ( *( (fPt) ((* (ptr) pd301 ))))((* (ptr) a←v9904 ), uSeq←v22052, pd301);
};
SOURCE(16496, 1215)
return(union←v9976);
}
static word Difference←P1800(a←v10036, b←v10064)
word a←v10036;
word b←v10064;
{
register ptr gf←c60140 = (ptr) &globalframe;
word aMinusB←v10108;
word hiJoint←v22340;
word dSeq←v22368 = 0;
word aSeq←v22396;
word aTraj←v22424;
word bSeq←v22452;
word bTraj←v22480;
/* Difference: */
SOURCE(17717, 909)
SOURCE(17717, 909)
aMinusB←v10108 = 0;
SOURCE(17835, 33)
aSeq←v22396 = XR←Narrow((* (( (ptr) a←v10036)+1) ), (* (( (ptr) gf←c60140)+5) ));
SOURCE(17870, 38)
aTraj←v22424 = XR←Narrow((* (( (ptr) (* (ptr) a←v10036 ))+1) ), (* (( (ptr) gf←c60140)+13) ));
SOURCE(17910, 33)
bSeq←v22452 = XR←Narrow((* (( (ptr) b←v10064)+1) ), (* (( (ptr) gf←c60140)+5) ));
SOURCE(17945, 38)
bTraj←v22480 = XR←Narrow((* (( (ptr) (* (ptr) b←v10064 ))+1) ), (* (( (ptr) gf←c60140)+13) ));
SOURCE(17985, 25)
dSeq←v22368 = (word) CreateEmpty←P180(aTraj←v22424);
SOURCE(18012, 323)
{
register word i←v22524 = 0;
register word noName←c50700;
noName←c50700 = (* (ptr) (* (ptr) aSeq←v22396 ) );
if ((i←v22524 >= noName←c50700)) {
goto lab←L100156;
};
lab←L100159: ;
{
word cpCount←v22568;
word var←c50732;
SOURCE(18052, 40)
{
word limit302;
var←c50732 = (* (( (ptr) aSeq←v22396)+2) );
cpCount←v22568 = (* (ptr) (* ((( (ptr) var←c50732)+1)+(
limit302 = (* (ptr) var←c50732 ),
BCK(i←v22524, limit302)
)) ) );
};
SOURCE(18094, 60)
{
word var←c50828;
word var←c50764;
var←c50828 = (* (ptr) dSeq←v22368 );
{
word limit303;
word limit308;
word xs309;
var←c50764 = (* (ptr) aSeq←v22396 );
if (XR←ExtractField(var←c50764, 32 + (word) (
limit303 = (* (ptr) var←c50764 ),
BCK(i←v22524, limit303)
), 1)) {
{
word var←c50796;
var←c50796 = (* (ptr) bSeq←v22452 );
{
word limit304;
word limit305;
word xs306;
word x307;
xs306 = (word) (
limit305 = (* (ptr) var←c50828 ),
BCK(i←v22524, limit305)
);
x307 = (word) ((( (bPt) var←c50828)+4) + ((word) xs306 >> 3));
xs306 = 8 - ((word) (xs306 & 7)+1);
(* (bPt) x307 ) = ((* (bPt) x307 ) & ( ~ ((unsigned) 1 << xs306))) | ((( ! XR←ExtractField(var←c50796, 32 + (word) (
/*1*/ limit304 = (* (ptr) var←c50796 ),
/*1*/ BCK(i←v22524, limit304)
/*1*/ ), 1))) << xs306);
};
};
}
else {
xs309 = (word) (
limit308 = (* (ptr) var←c50828 ),
BCK(i←v22524, limit308)
);
(* (bPt) ((( (bPt) var←c50828)+4) + ((word) xs309 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs309 & 7)+1));
};
};
};
SOURCE(18156, 114)
{
register word j←v22612 = 0;
register word noName←c50860;
noName←c50860 = cpCount←v22568;
if ((j←v22612 >= noName←c50860)) {
goto lab←L100160;
};
lab←L100163: ;
SOURCE(18186, 84)
{
word var←c51052;
word var←c50924;
{
word var←c51020;
var←c51020 = (* (( (ptr) dSeq←v22368)+2) );
{
word limit310;
var←c51052 = (* ((( (ptr) var←c51020)+1)+(
limit310 = (* (ptr) var←c51020 ),
BCK(i←v22524, limit310)
)) );
};
};
{
word limit312;
word limit318;
word xs319;
{
word var←c50892;
var←c50892 = (* (( (ptr) aSeq←v22396)+2) );
{
word limit311;
var←c50924 = (* ((( (ptr) var←c50892)+1)+(
/*1*/ limit311 = (* (ptr) var←c50892 ),
/*1*/ BCK(i←v22524, limit311)
/*1*/ )) );
};
};
if (XR←ExtractField(var←c50924, 32 + (word) (
limit312 = (* (ptr) var←c50924 ),
BCK(j←v22612, limit312)
), 1)) {
{
word var←c50956;
word var←c50988;
{
word limit313;
var←c50956 = (* (( (ptr) bSeq←v22452)+2) );
var←c50988 = (* ((( (ptr) var←c50956)+1)+(
/*1*/ limit313 = (* (ptr) var←c50956 ),
/*1*/ BCK(i←v22524, limit313)
/*1*/ )) );
};
{
word limit314;
word limit315;
word xs316;
word x317;
xs316 = (word) (
/*1*/ limit315 = (* (ptr) var←c51052 ),
/*1*/ BCK(j←v22612, limit315)
/*1*/ );
x317 = (word) ((( (bPt) var←c51052)+4) + ((word) xs316 >> 3));
xs316 = 8 - ((word) (xs316 & 7)+1);
(* (bPt) x317 ) = ((* (bPt) x317 ) & ( ~ ((unsigned) 1 << xs316))) | ((( ! XR←ExtractField(var←c50988, 32 + (word) (
/*1*/ limit314 = (* (ptr) var←c50988 ),
/*1*/ BCK(j←v22612, limit314)
/*1*/ ), 1))) << xs316);
};
};
}
else {
xs319 = (word) (
limit318 = (* (ptr) var←c51052 ),
BCK(j←v22612, limit318)
);
(* (bPt) ((( (bPt) var←c51052)+4) + ((word) xs319 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs319 & 7)+1));
};
};
};
j←v22612 = (j←v22612 + 1);
if ((j←v22612 < noName←c50860)) {
goto lab←L100163;
};
lab←L100160: ;
};
SOURCE(18281, 54)
{
word var←c51148;
word var←c51084;
var←c51148 = (* (( (ptr) dSeq←v22368)+1) );
{
word limit320;
word limit325;
word xs326;
var←c51084 = (* (( (ptr) aSeq←v22396)+1) );
if (XR←ExtractField(var←c51084, 32 + (word) (
limit320 = (* (ptr) var←c51084 ),
BCK(i←v22524, limit320)
), 1)) {
{
word var←c51116;
var←c51116 = (* (( (ptr) bSeq←v22452)+1) );
{
word limit321;
word limit322;
word xs323;
word x324;
xs323 = (word) (
limit322 = (* (ptr) var←c51148 ),
BCK(i←v22524, limit322)
);
x324 = (word) ((( (bPt) var←c51148)+4) + ((word) xs323 >> 3));
xs323 = 8 - ((word) (xs323 & 7)+1);
(* (bPt) x324 ) = ((* (bPt) x324 ) & ( ~ ((unsigned) 1 << xs323))) | ((( ! XR←ExtractField(var←c51116, 32 + (word) (
/*1*/ limit321 = (* (ptr) var←c51116 ),
/*1*/ BCK(i←v22524, limit321)
/*1*/ ), 1))) << xs323);
};
};
}
else {
xs326 = (word) (
limit325 = (* (ptr) var←c51148 ),
BCK(i←v22524, limit325)
);
(* (bPt) ((( (bPt) var←c51148)+4) + ((word) xs326 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs326 & 7)+1));
};
};
};
};
i←v22524 = (i←v22524 + 1);
if ((i←v22524 < noName←c50700)) {
goto lab←L100159;
};
lab←L100156: ;
};
SOURCE(18346, 27)
{
word idx327;
hiJoint←v22340 = (
idx327 = (word) ((* (ptr) (* (( (ptr) dSeq←v22368)+1) ) ) - 1),
SGNCK(idx327)
);
};
SOURCE(18375, 72)
{
word var←c51244;
word var←c51180;
var←c51244 = (* (( (ptr) dSeq←v22368)+1) );
{
word limit328;
word limit333;
word xs334;
var←c51180 = (* (( (ptr) aSeq←v22396)+1) );
if (XR←ExtractField(var←c51180, 32 + (word) (
limit328 = (* (ptr) var←c51180 ),
BCK(hiJoint←v22340, limit328)
), 1)) {
{
word var←c51212;
var←c51212 = (* (( (ptr) bSeq←v22452)+1) );
{
word limit329;
word limit330;
word xs331;
word x332;
xs331 = (word) (
limit330 = (* (ptr) var←c51244 ),
BCK(hiJoint←v22340, limit330)
);
x332 = (word) ((( (bPt) var←c51244)+4) + ((word) xs331 >> 3));
xs331 = 8 - ((word) (xs331 & 7)+1);
(* (bPt) x332 ) = ((* (bPt) x332 ) & ( ~ ((unsigned) 1 << xs331))) | ((( ! XR←ExtractField(var←c51212, 32 + (word) (
/*1*/ limit329 = (* (ptr) var←c51212 ),
/*1*/ BCK(hiJoint←v22340, limit329)
/*1*/ ), 1))) << xs331);
};
};
}
else {
xs334 = (word) (
limit333 = (* (ptr) var←c51244 ),
BCK(hiJoint←v22340, limit333)
);
(* (bPt) ((( (bPt) var←c51244)+4) + ((word) xs334 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs334 & 7)+1));
};
};
};
SOURCE(18449, 35)
(* (( (ptr) dSeq←v22368)+3) ) = (word) CountSegments←P2460(dSeq←v22368);
SOURCE(18486, 35)
(* (( (ptr) dSeq←v22368)+4) ) = (word) CountJoints←P2520(dSeq←v22368);
SOURCE(18523, 49)
(* (( (ptr) dSeq←v22368)+5) ) = (word) CountControlPoints←P2580(dSeq←v22368);
SOURCE(18574, 52)
{
word pd335;
pd335 = (* (( (ptr) (* (( (ptr) gf←c60140)+208)/* var←c50668 */ ))+8) );
aMinusB←v10108 = (word) ( *( (fPt) ((* (ptr) pd335 ))))((* (ptr) a←v10036 ), dSeq←v22368, pd335);
};
SOURCE(17717, 909)
return(aMinusB←v10108);
}
static word Intersection←P1860(a←v10168, b←v10196)
word a←v10168;
word b←v10196;
{
register ptr gf←c60172 = (ptr) &globalframe;
word intersection←v10240;
word hiJoint←v22656;
word iSeq←v22684 = 0;
word aSeq←v22712;
word aTraj←v22740;
word bSeq←v22768;
word bTraj←v22796;
/* Intersection: */
SOURCE(18632, 1184)
SOURCE(18632, 1184)
intersection←v10240 = 0;
SOURCE(18757, 33)
aSeq←v22712 = XR←Narrow((* (( (ptr) a←v10168)+1) ), (* (( (ptr) gf←c60172)+5) ));
SOURCE(18792, 38)
aTraj←v22740 = XR←Narrow((* (( (ptr) (* (ptr) a←v10168 ))+1) ), (* (( (ptr) gf←c60172)+13) ));
SOURCE(18832, 33)
bSeq←v22768 = XR←Narrow((* (( (ptr) b←v10196)+1) ), (* (( (ptr) gf←c60172)+5) ));
SOURCE(18867, 38)
bTraj←v22796 = XR←Narrow((* (( (ptr) (* (ptr) b←v10196 ))+1) ), (* (( (ptr) gf←c60172)+13) ));
SOURCE(18907, 22)
if ((aTraj←v22740 != bTraj←v22796)) {
SOURCE(18929, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(18936, 25)
iSeq←v22684 = (word) CreateEmpty←P180(aTraj←v22740);
SOURCE(18963, 86)
if ((aSeq←v22712 == 0) || (0 != (word) IsEmpty←P2220(aSeq←v22712))) {
SOURCE(18999, 50)
{
word pd336;
pd336 = (* (( (ptr) (* (( (ptr) gf←c60172)+208)/* var←c50668 */ ))+8) );
return((word) ( *( (fPt) ((* (ptr) pd336 ))))((* (ptr) a←v10168 ), iSeq←v22684, pd336));
};
};
SOURCE(19051, 86)
if ((bSeq←v22768 == 0) || (0 != (word) IsEmpty←P2220(bSeq←v22768))) {
SOURCE(19087, 50)
{
word pd337;
pd337 = (* (( (ptr) (* (( (ptr) gf←c60172)+208)/* var←c50668 */ ))+8) );
return((word) ( *( (fPt) ((* (ptr) pd337 ))))((* (ptr) a←v10168 ), iSeq←v22684, pd337));
};
};
SOURCE(19139, 55)
if ( ( (0 != (word) IsComplete←P2280(aSeq←v22712)) ? (0 != (word) IsComplete←P2280(bSeq←v22768)) : 0 ) ) {
SOURCE(19185, 9)
return(a←v10168);
};
SOURCE(19214, 310)
{
register word i←v22840 = 0;
register word noName←c51340;
noName←c51340 = (* (ptr) (* (ptr) aSeq←v22712 ) );
if ((i←v22840 >= noName←c51340)) {
goto lab←L100164;
};
lab←L100167: ;
{
word cpCount←v22884;
word var←c51372;
SOURCE(19254, 40)
{
word limit338;
var←c51372 = (* (( (ptr) aSeq←v22712)+2) );
cpCount←v22884 = (* (ptr) (* ((( (ptr) var←c51372)+1)+(
limit338 = (* (ptr) var←c51372 ),
BCK(i←v22840, limit338)
)) ) );
};
SOURCE(19296, 56)
{
word var←c51468;
word var←c51404;
var←c51468 = (* (ptr) iSeq←v22684 );
{
word limit339;
word limit344;
word xs345;
var←c51404 = (* (ptr) aSeq←v22712 );
if (XR←ExtractField(var←c51404, 32 + (word) (
limit339 = (* (ptr) var←c51404 ),
BCK(i←v22840, limit339)
), 1)) {
{
word var←c51436;
var←c51436 = (* (ptr) bSeq←v22768 );
{
word limit340;
word limit341;
word xs342;
word x343;
xs342 = (word) (
limit341 = (* (ptr) var←c51468 ),
BCK(i←v22840, limit341)
);
x343 = (word) ((( (bPt) var←c51468)+4) + ((word) xs342 >> 3));
xs342 = 8 - ((word) (xs342 & 7)+1);
(* (bPt) x343 ) = ((* (bPt) x343 ) & ( ~ ((unsigned) 1 << xs342))) | (((XR←ExtractField(var←c51436, 32 + (word) (
/*1*/ limit340 = (* (ptr) var←c51436 ),
/*1*/ BCK(i←v22840, limit340)
/*1*/ ), 1))) << xs342);
};
};
}
else {
xs345 = (word) (
limit344 = (* (ptr) var←c51468 ),
BCK(i←v22840, limit344)
);
(* (bPt) ((( (bPt) var←c51468)+4) + ((word) xs345 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs345 & 7)+1));
};
};
};
SOURCE(19354, 109)
{
register word j←v22928 = 0;
register word noName←c51500;
noName←c51500 = cpCount←v22884;
if ((j←v22928 >= noName←c51500)) {
goto lab←L100168;
};
lab←L100171: ;
SOURCE(19384, 79)
{
word var←c51692;
word var←c51564;
{
word var←c51660;
var←c51660 = (* (( (ptr) iSeq←v22684)+2) );
{
word limit346;
var←c51692 = (* ((( (ptr) var←c51660)+1)+(
limit346 = (* (ptr) var←c51660 ),
BCK(i←v22840, limit346)
)) );
};
};
{
word limit348;
word limit354;
word xs355;
{
word var←c51532;
var←c51532 = (* (( (ptr) aSeq←v22712)+2) );
{
word limit347;
var←c51564 = (* ((( (ptr) var←c51532)+1)+(
/*1*/ limit347 = (* (ptr) var←c51532 ),
/*1*/ BCK(i←v22840, limit347)
/*1*/ )) );
};
};
if (XR←ExtractField(var←c51564, 32 + (word) (
limit348 = (* (ptr) var←c51564 ),
BCK(j←v22928, limit348)
), 1)) {
{
word var←c51628;
{
word var←c51596;
var←c51596 = (* (( (ptr) bSeq←v22768)+2) );
{
/*1*/ word limit349;
/*1*/ var←c51628 = (* ((( (ptr) var←c51596)+1)+(
/*1*/ limit349 = (* (ptr) var←c51596 ),
/*1*/ BCK(i←v22840, limit349)
/*1*/ )) );
/*1*/ };
};
{
word limit350;
word limit351;
word xs352;
word x353;
xs352 = (word) (
/*1*/ limit351 = (* (ptr) var←c51692 ),
/*1*/ BCK(j←v22928, limit351)
/*1*/ );
x353 = (word) ((( (bPt) var←c51692)+4) + ((word) xs352 >> 3));
xs352 = 8 - ((word) (xs352 & 7)+1);
(* (bPt) x353 ) = ((* (bPt) x353 ) & ( ~ ((unsigned) 1 << xs352))) | (((XR←ExtractField(var←c51628, 32 + (word) (
/*1*/ limit350 = (* (ptr) var←c51628 ),
/*1*/ BCK(j←v22928, limit350)
/*1*/ ), 1))) << xs352);
};
};
}
else {
xs355 = (word) (
limit354 = (* (ptr) var←c51692 ),
BCK(j←v22928, limit354)
);
(* (bPt) ((( (bPt) var←c51692)+4) + ((word) xs355 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs355 & 7)+1));
};
};
};
j←v22928 = (j←v22928 + 1);
if ((j←v22928 < noName←c51500)) {
goto lab←L100171;
};
lab←L100168: ;
};
SOURCE(19474, 50)
{
word var←c51788;
word var←c51724;
var←c51788 = (* (( (ptr) iSeq←v22684)+1) );
{
word limit356;
word limit361;
word xs362;
var←c51724 = (* (( (ptr) aSeq←v22712)+1) );
if (XR←ExtractField(var←c51724, 32 + (word) (
limit356 = (* (ptr) var←c51724 ),
BCK(i←v22840, limit356)
), 1)) {
{
word var←c51756;
var←c51756 = (* (( (ptr) bSeq←v22768)+1) );
{
word limit357;
word limit358;
word xs359;
word x360;
xs359 = (word) (
limit358 = (* (ptr) var←c51788 ),
BCK(i←v22840, limit358)
);
x360 = (word) ((( (bPt) var←c51788)+4) + ((word) xs359 >> 3));
xs359 = 8 - ((word) (xs359 & 7)+1);
(* (bPt) x360 ) = ((* (bPt) x360 ) & ( ~ ((unsigned) 1 << xs359))) | (((XR←ExtractField(var←c51756, 32 + (word) (
/*1*/ limit357 = (* (ptr) var←c51756 ),
/*1*/ BCK(i←v22840, limit357)
/*1*/ ), 1))) << xs359);
};
};
}
else {
xs362 = (word) (
limit361 = (* (ptr) var←c51788 ),
BCK(i←v22840, limit361)
);
(* (bPt) ((( (bPt) var←c51788)+4) + ((word) xs362 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs362 & 7)+1));
};
};
};
};
i←v22840 = (i←v22840 + 1);
if ((i←v22840 < noName←c51340)) {
goto lab←L100167;
};
lab←L100164: ;
};
SOURCE(19535, 27)
{
word idx363;
hiJoint←v22656 = (
idx363 = (word) ((* (ptr) (* (( (ptr) iSeq←v22684)+1) ) ) - 1),
SGNCK(idx363)
);
};
SOURCE(19564, 68)
{
word var←c51884;
word var←c51820;
var←c51884 = (* (( (ptr) iSeq←v22684)+1) );
{
word limit364;
word limit369;
word xs370;
var←c51820 = (* (( (ptr) aSeq←v22712)+1) );
if (XR←ExtractField(var←c51820, 32 + (word) (
limit364 = (* (ptr) var←c51820 ),
BCK(hiJoint←v22656, limit364)
), 1)) {
{
word var←c51852;
var←c51852 = (* (( (ptr) bSeq←v22768)+1) );
{
word limit365;
word limit366;
word xs367;
word x368;
xs367 = (word) (
limit366 = (* (ptr) var←c51884 ),
BCK(hiJoint←v22656, limit366)
);
x368 = (word) ((( (bPt) var←c51884)+4) + ((word) xs367 >> 3));
xs367 = 8 - ((word) (xs367 & 7)+1);
(* (bPt) x368 ) = ((* (bPt) x368 ) & ( ~ ((unsigned) 1 << xs367))) | (((XR←ExtractField(var←c51852, 32 + (word) (
/*1*/ limit365 = (* (ptr) var←c51852 ),
/*1*/ BCK(hiJoint←v22656, limit365)
/*1*/ ), 1))) << xs367);
};
};
}
else {
xs370 = (word) (
limit369 = (* (ptr) var←c51884 ),
BCK(hiJoint←v22656, limit369)
);
(* (bPt) ((( (bPt) var←c51884)+4) + ((word) xs370 >> 3)) ) &= ~((unsigned) 1 << 8 - ((word) (xs370 & 7)+1));
};
};
};
SOURCE(19634, 35)
(* (( (ptr) iSeq←v22684)+3) ) = (word) CountSegments←P2460(iSeq←v22684);
SOURCE(19671, 35)
(* (( (ptr) iSeq←v22684)+4) ) = (word) CountJoints←P2520(iSeq←v22684);
SOURCE(19708, 49)
(* (( (ptr) iSeq←v22684)+5) ) = (word) CountControlPoints←P2580(iSeq←v22684);
SOURCE(19759, 57)
{
word pd371;
pd371 = (* (( (ptr) (* (( (ptr) gf←c60172)+208)/* var←c50668 */ ))+8) );
intersection←v10240 = (word) ( *( (fPt) ((* (ptr) pd371 ))))((* (ptr) a←v10168 ), iSeq←v22684, pd371);
};
SOURCE(18632, 1184)
return(intersection←v10240);
}
static void TrajMovingParts←P1920(formal←c0545, slice←v10300, parts←v10328, editConstraints←v10356, bezierDrag←v10384)
word formal←c0545;
word slice←v10300;
word parts←v10328;
word editConstraints←v10356;
W5 bezierDrag←v10384;
{
register ptr gf←c60204 = (ptr) &globalframe;
word background←v10428;
word overlay←v10456;
word rubber←v10484;
word drag←v10512;
word seq←v22972;
word traj←v23000;
/* TrajMovingParts: */
SOURCE(19822, 461)
SOURCE(19822, 461)
background←v10428 = 0;
SOURCE(19822, 461)
overlay←v10456 = 0;
SOURCE(19822, 461)
rubber←v10484 = 0;
SOURCE(19822, 461)
drag←v10512 = 0;
SOURCE(20008, 30)
seq←v22972 = XR←Narrow(parts←v10328, (* (( (ptr) gf←c60204)+5) ));
SOURCE(20040, 35)
traj←v23000 = XR←Narrow((* (( (ptr) slice←v10300)+1) ), (* (( (ptr) gf←c60204)+13) ));
SOURCE(20077, 16)
background←v10428 = 0;
SOURCE(20095, 16)
drag←v10512 = (word) Copy←P540(seq←v22972);
SOURCE(20113, 74)
rubber←v10484 = (word) FindRubberFromSelected←P1980(slice←v10300, parts←v10328, editConstraints←v10356, bezierDrag←v10384)
;
SOURCE(20189, 30)
overlay←v10456 = (word) CreateComplete←P240(traj←v23000);
SOURCE(20221, 29)
(void) DDifferenceSeq←P1320(overlay←v10456, drag←v10512);
SOURCE(20252, 31)
(void) DDifferenceSeq←P1320(overlay←v10456, rubber←v10484);
/* removed tail goto */
(* (ptr) formal←c0545 ) = background←v10428;
(* (( (ptr) formal←c0545)+1) ) = overlay←v10456;
(* (( (ptr) formal←c0545)+2) ) = rubber←v10484;
(* (( (ptr) formal←c0545)+3) ) = drag←v10512;
return;
}
static word FindRubberFromSelected←P1980(slice←v10572, parts←v10600, editConstraints←v10628, bezierDrag←v10656)
word slice←v10572;
word parts←v10600;
word editConstraints←v10628;
W5 bezierDrag←v10656;
{
register ptr gf←c60236 = (ptr) &globalframe;
word rubber←v10700;
word rubberBabbyBuggyBumper←v23044 = 0;
word trajParts←v23072;
word trajData←v23100;
/* FindRubberFromSelected: */
SOURCE(20289, 720)
SOURCE(20289, 720)
rubber←v10700 = 0;
SOURCE(20489, 36)
trajParts←v23072 = XR←Narrow(parts←v10600, (* (( (ptr) gf←c60236)+5) ));
SOURCE(20527, 39)
trajData←v23100 = XR←Narrow((* (( (ptr) slice←v10572)+1) ), (* (( (ptr) gf←c60236)+13) ));
SOURCE(20568, 30)
rubber←v10700 = (word) CreateEmpty←P180(trajData←v23100);
SOURCE(20600, 67)
{
word pd372;
pd372 = (* (( (ptr) (* (( (ptr) gf←c60236)+208)/* var←c50668 */ ))+8) );
rubberBabbyBuggyBumper←v23044 = (word) ( *( (fPt) ((* (ptr) pd372 ))))(slice←v10572, rubber←v10700, pd372);
};
SOURCE(20669, 69)
(void) AddNonSelectedControlPointSegments←P1080(rubberBabbyBuggyBumper←v23044, trajParts←v23072);
SOURCE(20740, 62)
(void) AddNonSelectedJointSegments←P1020(rubberBabbyBuggyBumper←v23044, trajParts←v23072);
SOURCE(20804, 80)
if ((editConstraints←v10628 != 0)) {
SOURCE(20835, 49)
(void) AddConstrained←P1140(rubberBabbyBuggyBumper←v23044, trajParts←v23072);
};
SOURCE(20886, 123)
if ( ( (0 != bezierDrag←v10656.f0) ? (trajData←v23100 == (* (( (ptr) bezierDrag←v10656.f3)+1) )) : 0 ) ) {
SOURCE(20956, 53)
(void) AddNewBezier←P1200(rubber←v10700, trajParts←v23072, bezierDrag←v10656.f2);
};
SOURCE(20289, 720)
return(rubber←v10700);
}
static word Augment←P2040(descriptor←v10760, trajEnd←v10788, extend←v10816)
word descriptor←v10760;
word trajEnd←v10788;
word extend←v10816;
{
register ptr gf←c60268 = (ptr) &globalframe;
word bigger←v10860;
word seq←v23144;
word traj←v23172;
/* Augment: */
SOURCE(21046, 1869)
SOURCE(21046, 1869)
bigger←v10860 = 0;
SOURCE(21161, 41)
seq←v23144 = XR←Narrow((* (( (ptr) descriptor←v10760)+1) ), (* (( (ptr) gf←c60268)+5) ));
SOURCE(21204, 46)
traj←v23172 = XR←Narrow((* (( (ptr) (* (ptr) descriptor←v10760 ))+1) ), (* (( (ptr) gf←c60268)+13) ));
SOURCE(21252, 98)
if (((* (ptr) traj←v23172 ) == 1) || ((* (ptr) traj←v23172 ) == 0)) {
SOURCE(21300, 42)
bigger←v10860 = (word) AugmentClosed←P2100(descriptor←v10760, extend←v10816);
SOURCE(21344, 6)
return(bigger←v10860);
};
SOURCE(21355, 26)
bigger←v10860 = (word) CreateEmpty←P180(traj←v23172);
SOURCE(21383, 30)
(* (( (ptr) bigger←v10860)+3) ) = (* (( (ptr) seq←v23144)+3) );
SOURCE(21415, 48)
(* (( (ptr) bigger←v10860)+5) ) = (* (( (ptr) seq←v23144)+5) );
SOURCE(21465, 34)
(* (( (ptr) bigger←v10860)+4) ) = (* (( (ptr) seq←v23144)+4) );
SOURCE(21501, 1414)
if ((trajEnd←v10788 == 1)) {
{
word var←c52268;
word var←c52300;
SOURCE(21524, 234)
{
register word i←v23216 = 0;
register word noName←c51916;
noName←c51916 = (* (ptr) (* (ptr) seq←v23144 ) );
if ((i←v23216 >= noName←c51916)) {
goto lab←L100173;
};
lab←L100176: ;
{
word cpCount←v23260;
word var←c51948;
SOURCE(21563, 39)
{
word limit373;
var←c51948 = (* (( (ptr) seq←v23144)+2) );
cpCount←v23260 = (* (ptr) (* ((( (ptr) var←c51948)+1)+(
limit373 = (* (ptr) var←c51948 ),
BCK(i←v23216, limit373)
)) ) );
};
SOURCE(21604, 36)
{
word var←c52012;
var←c52012 = (* (ptr) bigger←v10860 );
{
word var←c51980;
var←c51980 = (* (ptr) seq←v23144 );
{
word limit374;
word limit375;
word xs376;
word x377;
xs376 = (word) (
limit375 = (* (ptr) var←c52012 ),
BCK(i←v23216, limit375)
);
x377 = (word) ((( (bPt) var←c52012)+4) + ((word) xs376 >> 3));
xs376 = 8 - ((word) (xs376 & 7)+1);
(* (bPt) x377 ) = ((* (bPt) x377 ) & ( ~ ((unsigned) 1 << xs376))) | (((XR←ExtractField(var←c51980, 32 + (word) (
/*1*/ limit374 = (* (ptr) var←c51980 ),
/*1*/ BCK(i←v23216, limit374)
/*1*/ ), 1))) << xs376);
};
};
};
SOURCE(21642, 32)
{
word var←c52076;
var←c52076 = (* (( (ptr) bigger←v10860)+1) );
{
word var←c52044;
var←c52044 = (* (( (ptr) seq←v23144)+1) );
{
word limit378;
word limit379;
word xs380;
word x381;
xs380 = (word) (
limit379 = (* (ptr) var←c52076 ),
BCK(i←v23216, limit379)
);
x381 = (word) ((( (bPt) var←c52076)+4) + ((word) xs380 >> 3));
xs380 = 8 - ((word) (xs380 & 7)+1);
(* (bPt) x381 ) = ((* (bPt) x381 ) & ( ~ ((unsigned) 1 << xs380))) | (((XR←ExtractField(var←c52044, 32 + (word) (
/*1*/ limit378 = (* (ptr) var←c52044 ),
/*1*/ BCK(i←v23216, limit378)
/*1*/ ), 1))) << xs380);
};
};
};
SOURCE(21676, 82)
{
register word j←v23304 = 0;
register word noName←c52108;
noName←c52108 = cpCount←v23260;
if ((j←v23304 >= noName←c52108)) {
goto lab←L100177;
};
lab←L100180: ;
SOURCE(21706, 52)
{
word var←c52236;
{
word var←c52204;
var←c52204 = (* (( (ptr) bigger←v10860)+2) );
{
word limit382;
var←c52236 = (* ((( (ptr) var←c52204)+1)+(
/*1*/ limit382 = (* (ptr) var←c52204 ),
/*1*/ BCK(i←v23216, limit382)
/*1*/ )) );
};
};
{
word var←c52172;
{
word var←c52140;
var←c52140 = (* (( (ptr) seq←v23144)+2) );
{
/*1*/ word limit383;
/*1*/ var←c52172 = (* ((( (ptr) var←c52140)+1)+(
/*1*/ limit383 = (* (ptr) var←c52140 ),
/*1*/ BCK(i←v23216, limit383)
/*1*/ )) );
/*1*/ };
};
{
word limit384;
word limit385;
word xs386;
word x387;
xs386 = (word) (
/*1*/ limit385 = (* (ptr) var←c52236 ),
/*1*/ BCK(j←v23304, limit385)
/*1*/ );
x387 = (word) ((( (bPt) var←c52236)+4) + ((word) xs386 >> 3));
xs386 = 8 - ((word) (xs386 & 7)+1);
(* (bPt) x387 ) = ((* (bPt) x387 ) & ( ~ ((unsigned) 1 << xs386))) | (((XR←ExtractField(var←c52172, 32 + (word) (
/*1*/ limit384 = (* (ptr) var←c52172 ),
/*1*/ BCK(j←v23304, limit384)
/*1*/ ), 1))) << xs386);
};
};
};
j←v23304 = (j←v23304 + 1);
if ((j←v23304 < noName←c52108)) {
goto lab←L100180;
};
lab←L100177: ;
};
};
i←v23216 = (i←v23216 + 1);
if ((i←v23216 < noName←c51916)) {
goto lab←L100176;
};
lab←L100173: ;
};
SOURCE(21778, 476)
{
word limit388;
var←c52268 = ((* (ptr) (* (( (ptr) seq←v23144)+1) ) ) - 1);
var←c52300 = (* (( (ptr) seq←v23144)+1) );
if (XR←ExtractField(var←c52300, 32 + (word) (
limit388 = (* (ptr) var←c52300 ),
BCK(var←c52268, limit388)
), 1)) {
SOURCE(21846, 40)
{
word var←c52332;
word var←c52364;
var←c52332 = ((* (ptr) (* (( (ptr) seq←v23144)+1) ) ) - 1);
var←c52364 = (* (( (ptr) bigger←v10860)+1) );
{
word limit389;
word xs390;
xs390 = (word) (
limit389 = (* (ptr) var←c52364 ),
BCK(var←c52332, limit389)
);
(* (bPt) ((( (bPt) var←c52364)+4) + ((word) xs390 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs390 & 7)+1));
};
};
SOURCE(21920, 334)
if ((0 != extend←v10816)) {
SOURCE(21937, 40)
{
word var←c52396;
var←c52396 = (* (ptr) bigger←v10860 );
{
word idx391;
word limit392;
word xs393;
xs393 = (word) (
idx391 = (* (ptr) (* (ptr) seq←v23144 ) ),
limit392 = (* (ptr) var←c52396 ),
BCK(idx391, limit392)
);
(* (bPt) ((( (bPt) var←c52396)+4) + ((word) xs393 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs393 & 7)+1));
};
};
SOURCE(21979, 36)
{
word var←c52428;
var←c52428 = (* (( (ptr) bigger←v10860)+1) );
{
word idx394;
word limit395;
word xs396;
xs396 = (word) (
idx394 = (* (ptr) (* (( (ptr) seq←v23144)+1) ) ),
limit395 = (* (ptr) var←c52428 ),
BCK(idx394, limit395)
);
(* (bPt) ((( (bPt) var←c52428)+4) + ((word) xs396 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs396 & 7)+1));
};
};
SOURCE(22017, 56)
{
word var←c52460;
var←c52460 = (* (( (ptr) bigger←v10860)+2) );
{
word idx397;
word limit398;
(void) SetAllBits←P1620((* ((( (ptr) var←c52460)+1)+(
/*1*/ idx397 = (* (ptr) (* (ptr) seq←v23144 ) ),
/*1*/ limit398 = (* (ptr) var←c52460 ),
/*1*/ BCK(idx397, limit398)
/*1*/ )) ), 1);
};
};
SOURCE(22075, 37)
(* (( (ptr) bigger←v10860)+3) ) = ((* (( (ptr) bigger←v10860)+3) ) + 1);
SOURCE(22114, 41)
(* (( (ptr) bigger←v10860)+4) ) = ((* (( (ptr) bigger←v10860)+4) ) + 1);
SOURCE(22157, 97)
{
word var←c52492;
word var←c01169;
{
word idx399;
word limit400;
var←c52492 = (* (( (ptr) bigger←v10860)+2) );
var←c01169 = (* (ptr) (* ((( (ptr) var←c52492)+1)+(
/*1*/ idx399 = (* (ptr) (* (ptr) seq←v23144 ) ),
/*1*/ limit400 = (* (ptr) var←c52492 ),
/*1*/ BCK(idx399, limit400)
/*1*/ )) ) );
};
{
word idx401;
(* (( (ptr) bigger←v10860)+5) ) = (
idx401 = (word) ((* (( (ptr) bigger←v10860)+5) ) + var←c01169),
SGNCK(idx401)
);
};
};
};
};
};
};
}
else {
{
word var←c53004;
SOURCE(22269, 242)
{
register word i←v23348 = 0;
register word noName←c52524;
noName←c52524 = (* (ptr) (* (ptr) seq←v23144 ) );
if ((i←v23348 >= noName←c52524)) {
goto lab←L100181;
};
lab←L100184: ;
{
word cpCount←v23392;
word var←c52556;
SOURCE(22308, 39)
{
word limit402;
var←c52556 = (* (( (ptr) seq←v23144)+2) );
cpCount←v23392 = (* (ptr) (* ((( (ptr) var←c52556)+1)+(
limit402 = (* (ptr) var←c52556 ),
BCK(i←v23348, limit402)
)) ) );
};
SOURCE(22349, 38)
{
word var←c52620;
word var←c52652;
var←c52620 = (i←v23348 + 1);
var←c52652 = (* (ptr) bigger←v10860 );
{
word var←c52588;
var←c52588 = (* (ptr) seq←v23144 );
{
word limit403;
word limit404;
word xs405;
word x406;
xs405 = (word) (
limit404 = (* (ptr) var←c52652 ),
BCK(var←c52620, limit404)
);
x406 = (word) ((( (bPt) var←c52652)+4) + ((word) xs405 >> 3));
xs405 = 8 - ((word) (xs405 & 7)+1);
(* (bPt) x406 ) = ((* (bPt) x406 ) & ( ~ ((unsigned) 1 << xs405))) | (((XR←ExtractField(var←c52588, 32 + (word) (
/*1*/ limit403 = (* (ptr) var←c52588 ),
/*1*/ BCK(i←v23348, limit403)
/*1*/ ), 1))) << xs405);
};
};
};
SOURCE(22389, 36)
{
word var←c52748;
word var←c52780;
var←c52748 = (i←v23348 + 2);
var←c52780 = (* (( (ptr) bigger←v10860)+1) );
{
word var←c52684;
word var←c52716;
var←c52684 = (i←v23348 + 1);
var←c52716 = (* (( (ptr) seq←v23144)+1) );
{
word limit407;
word limit408;
word xs409;
word x410;
xs409 = (word) (
limit408 = (* (ptr) var←c52780 ),
BCK(var←c52748, limit408)
);
x410 = (word) ((( (bPt) var←c52780)+4) + ((word) xs409 >> 3));
xs409 = 8 - ((word) (xs409 & 7)+1);
(* (bPt) x410 ) = ((* (bPt) x410 ) & ( ~ ((unsigned) 1 << xs409))) | (((XR←ExtractField(var←c52716, 32 + (word) (
/*1*/ limit407 = (* (ptr) var←c52716 ),
/*1*/ BCK(var←c52684, limit407)
/*1*/ ), 1))) << xs409);
};
};
};
SOURCE(22427, 84)
{
register word j←v23436 = 0;
register word noName←c52812;
noName←c52812 = cpCount←v23392;
if ((j←v23436 >= noName←c52812)) {
goto lab←L100185;
};
lab←L100188: ;
SOURCE(22457, 54)
{
word var←c52972;
{
word var←c52908;
word var←c52940;
var←c52908 = (i←v23348 + 1);
var←c52940 = (* (( (ptr) bigger←v10860)+2) );
{
word limit411;
var←c52972 = (* ((( (ptr) var←c52940)+1)+(
/*1*/ limit411 = (* (ptr) var←c52940 ),
/*1*/ BCK(var←c52908, limit411)
/*1*/ )) );
};
};
{
word var←c52876;
{
word var←c52844;
var←c52844 = (* (( (ptr) seq←v23144)+2) );
{
/*1*/ word limit412;
/*1*/ var←c52876 = (* ((( (ptr) var←c52844)+1)+(
/*1*/ limit412 = (* (ptr) var←c52844 ),
/*1*/ BCK(i←v23348, limit412)
/*1*/ )) );
/*1*/ };
};
{
word limit413;
word limit414;
word xs415;
word x416;
xs415 = (word) (
/*1*/ limit414 = (* (ptr) var←c52972 ),
/*1*/ BCK(j←v23436, limit414)
/*1*/ );
x416 = (word) ((( (bPt) var←c52972)+4) + ((word) xs415 >> 3));
xs415 = 8 - ((word) (xs415 & 7)+1);
(* (bPt) x416 ) = ((* (bPt) x416 ) & ( ~ ((unsigned) 1 << xs415))) | (((XR←ExtractField(var←c52876, 32 + (word) (
/*1*/ limit413 = (* (ptr) var←c52876 ),
/*1*/ BCK(j←v23436, limit413)
/*1*/ ), 1))) << xs415);
};
};
};
j←v23436 = (j←v23436 + 1);
if ((j←v23436 < noName←c52812)) {
goto lab←L100188;
};
lab←L100185: ;
};
};
i←v23348 = (i←v23348 + 1);
if ((i←v23348 < noName←c52524)) {
goto lab←L100184;
};
lab←L100181: ;
};
SOURCE(22531, 384)
{
word limit417;
var←c53004 = (* (( (ptr) seq←v23144)+1) );
if (XR←ExtractField(var←c53004, 32 + (word) (
limit417 = (* (ptr) var←c53004 ),
BCK(0, limit417)
), 1)) {
SOURCE(22582, 23)
{
word var←c53036;
var←c53036 = (* (( (ptr) bigger←v10860)+1) );
{
word limit418;
word xs419;
xs419 = (word) (
limit418 = (* (ptr) var←c53036 ),
BCK(1, limit418)
);
(* (bPt) ((( (bPt) var←c53036)+4) + ((word) xs419 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs419 & 7)+1));
};
};
SOURCE(22639, 276)
if ((0 != extend←v10816)) {
SOURCE(22656, 25)
{
word var←c53068;
var←c53068 = (* (ptr) bigger←v10860 );
{
word limit420;
word xs421;
xs421 = (word) (
limit420 = (* (ptr) var←c53068 ),
BCK(0, limit420)
);
(* (bPt) ((( (bPt) var←c53068)+4) + ((word) xs421 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs421 & 7)+1));
};
};
SOURCE(22683, 23)
{
word var←c53100;
var←c53100 = (* (( (ptr) bigger←v10860)+1) );
{
word limit422;
word xs423;
xs423 = (word) (
limit422 = (* (ptr) var←c53100 ),
BCK(0, limit422)
);
(* (bPt) ((( (bPt) var←c53100)+4) + ((word) xs423 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs423 & 7)+1));
};
};
SOURCE(22708, 41)
{
word var←c53132;
var←c53132 = (* (( (ptr) bigger←v10860)+2) );
{
word limit424;
(void) SetAllBits←P1620((* ((( (ptr) var←c53132)+1)+(
/*1*/ limit424 = (* (ptr) var←c53132 ),
/*1*/ BCK(0, limit424)
/*1*/ )) ), 1);
};
};
SOURCE(22751, 37)
(* (( (ptr) bigger←v10860)+3) ) = ((* (( (ptr) bigger←v10860)+3) ) + 1);
SOURCE(22790, 41)
(* (( (ptr) bigger←v10860)+4) ) = ((* (( (ptr) bigger←v10860)+4) ) + 1);
SOURCE(22833, 82)
{
word var←c53164;
word var←c01170;
{
word limit425;
var←c53164 = (* (( (ptr) bigger←v10860)+2) );
var←c01170 = (* (ptr) (* ((( (ptr) var←c53164)+1)+(
/*1*/ limit425 = (* (ptr) var←c53164 ),
/*1*/ BCK(0, limit425)
/*1*/ )) ) );
};
{
word idx426;
(* (( (ptr) bigger←v10860)+5) ) = (
idx426 = (word) ((* (( (ptr) bigger←v10860)+5) ) + var←c01170),
SGNCK(idx426)
);
};
};
};
};
};
};
};
SOURCE(21046, 1869)
return(bigger←v10860);
}
static word AugmentClosed←P2100(descriptor←v10920, extend←v10948)
word descriptor←v10920;
word extend←v10948;
{
register ptr gf←c60300 = (ptr) &globalframe;
word bigger←v10992;
word seq←v23480;
word traj←v23508;
/* AugmentClosed: */
SOURCE(22928, 1137)
SOURCE(22928, 1137)
bigger←v10992 = 0;
SOURCE(23024, 41)
seq←v23480 = XR←Narrow((* (( (ptr) descriptor←v10920)+1) ), (* (( (ptr) gf←c60300)+5) ));
SOURCE(23067, 46)
traj←v23508 = XR←Narrow((* (( (ptr) (* (ptr) descriptor←v10920 ))+1) ), (* (( (ptr) gf←c60300)+13) ));
{
word var←c53676;
word var←c53708;
SOURCE(23115, 278)
{
word var←c53196;
word var←c53228;
word var←c53260;
word var←c53292;
var←c53196 = (word) NewBitVector←P1560(((* (ptr) (* (ptr) seq←v23480 ) ) + 1));
var←c53228 = (word) NewBitVector←P1560((* (ptr) ((* (( (ptr) seq←v23480)+1) )) ));
var←c53260 = (word) NewBitMatrix←P1500(traj←v23508);
var←c53292 = XR←NewObject(24, (* (( (ptr) gf←c60300)+5) ));
(* (ptr) var←c53292 ) = var←c53196;
(* (( (ptr) var←c53292)+1) ) = var←c53228;
(* (( (ptr) var←c53292)+2) ) = var←c53260;
(* (( (ptr) var←c53292)+3) ) = (* (( (ptr) seq←v23480)+3) );
(* (( (ptr) var←c53292)+4) ) = (* (( (ptr) seq←v23480)+4) );
(* (( (ptr) var←c53292)+5) ) = (* (( (ptr) seq←v23480)+5) );
bigger←v10992 = var←c53292;
};
SOURCE(23395, 234)
{
register word i←v23552 = 0;
register word noName←c53324;
noName←c53324 = (* (ptr) (* (ptr) seq←v23480 ) );
if ((i←v23552 >= noName←c53324)) {
goto lab←L100189;
};
lab←L100192: ;
{
word cpCount←v23596;
word var←c53356;
SOURCE(23434, 39)
{
word limit427;
var←c53356 = (* (( (ptr) seq←v23480)+2) );
cpCount←v23596 = (* (ptr) (* ((( (ptr) var←c53356)+1)+(
limit427 = (* (ptr) var←c53356 ),
BCK(i←v23552, limit427)
)) ) );
};
SOURCE(23475, 36)
{
word var←c53420;
var←c53420 = (* (ptr) bigger←v10992 );
{
word var←c53388;
var←c53388 = (* (ptr) seq←v23480 );
{
word limit428;
word limit429;
word xs430;
word x431;
xs430 = (word) (
limit429 = (* (ptr) var←c53420 ),
BCK(i←v23552, limit429)
);
x431 = (word) ((( (bPt) var←c53420)+4) + ((word) xs430 >> 3));
xs430 = 8 - ((word) (xs430 & 7)+1);
(* (bPt) x431 ) = ((* (bPt) x431 ) & ( ~ ((unsigned) 1 << xs430))) | (((XR←ExtractField(var←c53388, 32 + (word) (
/*1*/ limit428 = (* (ptr) var←c53388 ),
/*1*/ BCK(i←v23552, limit428)
/*1*/ ), 1))) << xs430);
};
};
};
SOURCE(23513, 32)
{
word var←c53484;
var←c53484 = (* (( (ptr) bigger←v10992)+1) );
{
word var←c53452;
var←c53452 = (* (( (ptr) seq←v23480)+1) );
{
word limit432;
word limit433;
word xs434;
word x435;
xs434 = (word) (
limit433 = (* (ptr) var←c53484 ),
BCK(i←v23552, limit433)
);
x435 = (word) ((( (bPt) var←c53484)+4) + ((word) xs434 >> 3));
xs434 = 8 - ((word) (xs434 & 7)+1);
(* (bPt) x435 ) = ((* (bPt) x435 ) & ( ~ ((unsigned) 1 << xs434))) | (((XR←ExtractField(var←c53452, 32 + (word) (
/*1*/ limit432 = (* (ptr) var←c53452 ),
/*1*/ BCK(i←v23552, limit432)
/*1*/ ), 1))) << xs434);
};
};
};
SOURCE(23547, 82)
{
register word j←v23640 = 0;
register word noName←c53516;
noName←c53516 = cpCount←v23596;
if ((j←v23640 >= noName←c53516)) {
goto lab←L100193;
};
lab←L100196: ;
SOURCE(23577, 52)
{
word var←c53644;
{
word var←c53612;
var←c53612 = (* (( (ptr) bigger←v10992)+2) );
{
word limit436;
var←c53644 = (* ((( (ptr) var←c53612)+1)+(
/*1*/ limit436 = (* (ptr) var←c53612 ),
/*1*/ BCK(i←v23552, limit436)
/*1*/ )) );
};
};
{
word var←c53580;
{
word var←c53548;
var←c53548 = (* (( (ptr) seq←v23480)+2) );
{
word limit437;
var←c53580 = (* ((( (ptr) var←c53548)+1)+(
/*1*/ limit437 = (* (ptr) var←c53548 ),
/*1*/ BCK(i←v23552, limit437)
/*1*/ )) );
};
};
{
word limit438;
word limit439;
word xs440;
word x441;
xs440 = (word) (
limit439 = (* (ptr) var←c53644 ),
BCK(j←v23640, limit439)
);
x441 = (word) ((( (bPt) var←c53644)+4) + ((word) xs440 >> 3));
xs440 = 8 - ((word) (xs440 & 7)+1);
(* (bPt) x441 ) = ((* (bPt) x441 ) & ( ~ ((unsigned) 1 << xs440))) | (((XR←ExtractField(var←c53580, 32 + (word) (
/*1*/ limit438 = (* (ptr) var←c53580 ),
/*1*/ BCK(j←v23640, limit438)
/*1*/ ), 1))) << xs440);
};
};
};
j←v23640 = (j←v23640 + 1);
if ((j←v23640 < noName←c53516)) {
goto lab←L100196;
};
lab←L100193: ;
};
};
i←v23552 = (i←v23552 + 1);
if ((i←v23552 < noName←c53324)) {
goto lab←L100192;
};
lab←L100189: ;
};
SOURCE(23671, 394)
{
word limit442;
var←c53676 = ((* (ptr) (* (( (ptr) seq←v23480)+1) ) ) - 1);
var←c53708 = (* (( (ptr) seq←v23480)+1) );
if (XR←ExtractField(var←c53708, 32 + (word) (
limit442 = (* (ptr) var←c53708 ),
BCK(var←c53676, limit442)
), 1)) {
SOURCE(23739, 40)
{
word var←c53740;
word var←c53772;
var←c53740 = ((* (ptr) (* (( (ptr) seq←v23480)+1) ) ) - 1);
var←c53772 = (* (( (ptr) bigger←v10992)+1) );
{
word limit443;
word xs444;
xs444 = (word) (
limit443 = (* (ptr) var←c53772 ),
BCK(var←c53740, limit443)
);
(* (bPt) ((( (bPt) var←c53772)+4) + ((word) xs444 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs444 & 7)+1));
};
};
SOURCE(23813, 252)
if ((0 != extend←v10948)) {
SOURCE(23830, 40)
{
word var←c53804;
var←c53804 = (* (ptr) bigger←v10992 );
{
word idx445;
word limit446;
word xs447;
xs447 = (word) (
idx445 = (* (ptr) (* (ptr) seq←v23480 ) ),
limit446 = (* (ptr) var←c53804 ),
BCK(idx445, limit446)
);
(* (bPt) ((( (bPt) var←c53804)+4) + ((word) xs447 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs447 & 7)+1));
};
};
SOURCE(23872, 56)
{
word var←c53836;
var←c53836 = (* (( (ptr) bigger←v10992)+2) );
{
word idx448;
word limit449;
(void) SetAllBits←P1620((* ((( (ptr) var←c53836)+1)+(
/*1*/ idx448 = (* (ptr) (* (ptr) seq←v23480 ) ),
/*1*/ limit449 = (* (ptr) var←c53836 ),
/*1*/ BCK(idx448, limit449)
/*1*/ )) ), 1);
};
};
SOURCE(23930, 37)
(* (( (ptr) bigger←v10992)+3) ) = ((* (( (ptr) bigger←v10992)+3) ) + 1);
SOURCE(23969, 96)
{
word var←c53868;
word var←c01171;
{
word idx450;
word limit451;
var←c53868 = (* (( (ptr) bigger←v10992)+2) );
var←c01171 = (* (ptr) (* ((( (ptr) var←c53868)+1)+(
idx450 = (* (ptr) (* (ptr) seq←v23480 ) ),
limit451 = (* (ptr) var←c53868 ),
BCK(idx450, limit451)
)) ) );
};
{
word idx452;
(* (( (ptr) bigger←v10992)+5) ) = (
idx452 = (word) ((* (( (ptr) bigger←v10992)+5) ) + var←c01171),
SGNCK(idx452)
);
};
};
};
};
};
};
SOURCE(22928, 1137)
return(bigger←v10992);
}
static word IsObsolete←P2160(seq←v11052)
word seq←v11052;
{
word var←c11096;
/* IsObsolete: */
SOURCE(24078, 25)
SOURCE(24138, 5)
(void) XR←RaiseUnnamedError();
}
static word IsEmpty←P2220(seq←v11156)
word seq←v11156;
{
word var←c11200;
/* IsEmpty: */
SOURCE(24150, 147)
SOURCE(24207, 90)
{
word tc453;
if ((seq←v11156 == 0)) {
tc453 = (word) (unsigned) 1;
}
else {
if ( ( ((* (( (ptr) seq←v11156)+4) ) == 0) ? ((* (( (ptr) seq←v11156)+3) ) == 0) : 0 ) ) {
tc453 = (word) (unsigned) ((* (( (ptr) seq←v11156)+5) ) == 0);
}
else {
tc453 = (word) (unsigned) 0;
};
};
return(tc453);
};
}
static word IsComplete←P2280(seq←v11260)
word seq←v11260;
{
word var←c11304;
/* IsComplete: */
SOURCE(24303, 149)
SOURCE(24363, 89)
{
word tc454;
if ( ( (seq←v11260 != 0) ? ((* (( (ptr) seq←v11260)+3) ) == (* (ptr) (* (ptr) seq←v11260 ) )) : 0 ) ) {
tc454 = (word) (unsigned) ((* (( (ptr) seq←v11260)+4) ) == (* (ptr) (* (( (ptr) seq←v11260)+1) ) ));
}
else {
tc454 = (word) (unsigned) 0;
};
return(tc454);
};
}
static word IsConstrained←P2340(descriptor←v11364, segNum←v11392, cPNum←v11420, editConstraints←v11448)
word descriptor←v11364;
word segNum←v11392;
word cPNum←v11420;
word editConstraints←v11448;
{
register ptr gf←c60332 = (ptr) &globalframe;
word var←c11492;
word seq←v23684;
word previous←v23712;
word following←v23740;
/* IsConstrained: */
SOURCE(24458, 771)
SOURCE(24588, 41)
seq←v23684 = XR←Narrow((* (( (ptr) descriptor←v11364)+1) ), (* (( (ptr) gf←c60332)+5) ));
SOURCE(24657, 551)
{
word tc455;
word pd456;
pd456 = (* (( (ptr) (* (( (ptr) gf←c60332)+204)/* var←c43500 */ ))+29) );
if (((* (ptr) (* (ptr) ( *( (fPt) ((* (ptr) pd456 ))))((* (ptr) descriptor←v11364 ), segNum←v11392, pd456) ) ) == (* (
( (ptr) gf←c60332)+26) ))) {
tc455 = (word) (editConstraints←v11448 != 0);
}
else {
tc455 = (word) 0;
};
if (tc455) {
SOURCE(24761, 447)
if ((cPNum←v11420 == 0)) {
{
word var←c53932;
SOURCE(24781, 62)
{
word pd457;
pd457 = (* (( (ptr) (* (( (ptr) gf←c60332)+204)/* var←c43500 */ ))+42) );
previous←v23712 = (word) ( *( (fPt) ((* (ptr) pd457 ))))((* (ptr) descriptor←v11364 ), segNum←v11392, pd457);
};
SOURCE(24845, 143)
{
word tc458;
word tc459;
word pd460;
word limit462;
if (( (int)previous←v23712 != (int) (word) -1)) {
pd460 = (* (( (ptr) (* (( (ptr) gf←c60332)+204)/* var←c43500 */ ))+29) );
tc459 = (word) ((* (ptr) (* (ptr) ( *( (fPt) ((* (ptr) pd460 ))))((* (ptr) descriptor←v11364 ), SGNCK(previous←v23712)
, pd460) ) ) == (* (( (ptr) gf←c60332)+26) ));
}
else {
tc459 = (word) 0;
};
if (tc459) {
{
word var←c53900;
var←c53900 = (* (( (ptr) seq←v23684)+2) );
{
word limit461;
var←c53932 = (* ((( (ptr) var←c53900)+1)+(
/*1*/ limit461 = (* (ptr) var←c53900 ),
/*1*/ BCK(previous←v23712, limit461)
/*1*/ )) );
};
};
tc458 = (word) XR←ExtractField(var←c53932, 32 + (word) (
limit462 = (* (ptr) var←c53932 ),
BCK(1, limit462)
), 1);
}
else {
tc458 = (word) 0;
};
if (tc458) {
SOURCE(24975, 13)
return(1);
};
};
};
}
else {
{
word var←c53996;
SOURCE(24997, 64)
{
word pd463;
pd463 = (* (( (ptr) (* (( (ptr) gf←c60332)+204)/* var←c43500 */ ))+43) );
following←v23740 = (word) ( *( (fPt) ((* (ptr) pd463 ))))((* (ptr) descriptor←v11364 ), segNum←v11392, pd463);
};
SOURCE(25063, 145)
{
word tc464;
word tc465;
word pd466;
word limit468;
if (( (int)following←v23740 != (int) (word) -1)) {
pd466 = (* (( (ptr) (* (( (ptr) gf←c60332)+204)/* var←c43500 */ ))+29) );
tc465 = (word) ((* (ptr) (* (ptr) ( *( (fPt) ((* (ptr) pd466 ))))((* (ptr) descriptor←v11364 ), SGNCK(following←v23740)
, pd466) ) ) == (* (( (ptr) gf←c60332)+26) ));
}
else {
tc465 = (word) 0;
};
if (tc465) {
{
word var←c53964;
var←c53964 = (* (( (ptr) seq←v23684)+2) );
{
word limit467;
var←c53996 = (* ((( (ptr) var←c53964)+1)+(
/*1*/ limit467 = (* (ptr) var←c53964 ),
/*1*/ BCK(following←v23740, limit467)
/*1*/ )) );
};
};
tc464 = (word) XR←ExtractField(var←c53996, 32 + (word) (
limit468 = (* (ptr) var←c53996 ),
BCK(0, limit468)
), 1);
}
else {
tc464 = (word) 0;
};
if (tc464) {
SOURCE(25196, 12)
return(1);
};
};
};
};
};
};
SOURCE(25216, 13)
return(0);
}
static word Overlap←P2400(descriptor1←v11552, descriptor2←v11580)
word descriptor1←v11552;
word descriptor2←v11580;
{
register ptr gf←c60364 = (ptr) &globalframe;
word var←c11624;
word hiSegment←v23784;
word hiJoint←v23812;
word seq1←v23840;
word traj1←v23868;
word seq2←v23896;
word traj2←v23924;
/* Overlap: */
SOURCE(25235, 793)
SOURCE(25344, 43)
seq1←v23840 = XR←Narrow((* (( (ptr) descriptor1←v11552)+1) ), (* (( (ptr) gf←c60364)+5) ));
SOURCE(25389, 48)
traj1←v23868 = XR←Narrow((* (( (ptr) (* (ptr) descriptor1←v11552 ))+1) ), (* (( (ptr) gf←c60364)+13) ));
SOURCE(25439, 43)
seq2←v23896 = XR←Narrow((* (( (ptr) descriptor2←v11580)+1) ), (* (( (ptr) gf←c60364)+5) ));
SOURCE(25484, 48)
traj2←v23924 = XR←Narrow((* (( (ptr) (* (ptr) descriptor2←v11580 ))+1) ), (* (( (ptr) gf←c60364)+13) ));
SOURCE(25534, 22)
if ((traj1←v23868 != traj2←v23924)) {
SOURCE(25556, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(25563, 29)
hiSegment←v23784 = (* (ptr) (* (ptr) seq1←v23840 ) );
SOURCE(25594, 90)
{
register word i←v23968 = 0;
register word noName←c54028;
word var←c54060;
word var←c54092;
noName←c54028 = hiSegment←v23784;
if ((i←v23968 >= noName←c54028)) {
goto lab←L100197;
};
lab←L100200: ;
SOURCE(25626, 58)
{
word tc469;
word limit470;
word limit471;
var←c54060 = (* (ptr) seq1←v23840 );
if (XR←ExtractField(var←c54060, 32 + (word) (
limit470 = (* (ptr) var←c54060 ),
BCK(i←v23968, limit470)
), 1)) {
var←c54092 = (* (ptr) seq2←v23896 );
tc469 = (word) XR←ExtractField(var←c54092, 32 + (word) (
limit471 = (* (ptr) var←c54092 ),
BCK(i←v23968, limit471)
), 1);
}
else {
tc469 = (word) 0;
};
if (tc469) {
SOURCE(25672, 12)
return(1);
};
};
i←v23968 = (i←v23968 + 1);
if ((i←v23968 < noName←c54028)) {
goto lab←L100200;
};
lab←L100197: ;
};
SOURCE(25695, 25)
hiJoint←v23812 = (* (ptr) (* (( (ptr) seq1←v23840)+1) ) );
SOURCE(25722, 84)
{
register word i←v24012 = 0;
register word noName←c54124;
word var←c54156;
word var←c54188;
noName←c54124 = hiJoint←v23812;
if ((i←v24012 >= noName←c54124)) {
goto lab←L100201;
};
lab←L100204: ;
SOURCE(25752, 54)
{
word tc472;
word limit473;
word limit474;
var←c54156 = (* (( (ptr) seq1←v23840)+1) );
if (XR←ExtractField(var←c54156, 32 + (word) (
limit473 = (* (ptr) var←c54156 ),
BCK(i←v24012, limit473)
), 1)) {
var←c54188 = (* (( (ptr) seq2←v23896)+1) );
tc472 = (word) XR←ExtractField(var←c54188, 32 + (word) (
limit474 = (* (ptr) var←c54188 ),
BCK(i←v24012, limit474)
), 1);
}
else {
tc472 = (word) 0;
};
if (tc472) {
SOURCE(25794, 12)
return(1);
};
};
i←v24012 = (i←v24012 + 1);
if ((i←v24012 < noName←c54124)) {
goto lab←L100204;
};
lab←L100201: ;
};
SOURCE(25817, 178)
{
register word i←v24056 = 0;
register word noName←c54220;
noName←c54220 = hiSegment←v23784;
if ((i←v24056 >= noName←c54220)) {
goto lab←L100205;
};
lab←L100208: ;
{
word cpCount←v24100;
word var←c54252;
SOURCE(25849, 40)
{
word limit475;
var←c54252 = (* (( (ptr) seq1←v23840)+2) );
cpCount←v24100 = (* (ptr) (* ((( (ptr) var←c54252)+1)+(
limit475 = (* (ptr) var←c54252 ),
BCK(i←v24056, limit475)
)) ) );
};
SOURCE(25891, 104)
{
register word j←v24144 = 0;
register word noName←c54284;
word var←c54348;
word var←c54412;
noName←c54284 = cpCount←v24100;
if ((j←v24144 >= noName←c54284)) {
goto lab←L100209;
};
lab←L100212: ;
SOURCE(25921, 74)
{
word tc476;
word limit478;
word limit480;
{
word var←c54316;
var←c54316 = (* (( (ptr) seq1←v23840)+2) );
{
word limit477;
var←c54348 = (* ((( (ptr) var←c54316)+1)+(
limit477 = (* (ptr) var←c54316 ),
BCK(i←v24056, limit477)
)) );
};
};
if (XR←ExtractField(var←c54348, 32 + (word) (
limit478 = (* (ptr) var←c54348 ),
BCK(j←v24144, limit478)
), 1)) {
{
word var←c54380;
var←c54380 = (* (( (ptr) seq2←v23896)+2) );
{
word limit479;
var←c54412 = (* ((( (ptr) var←c54380)+1)+(
/*1*/ limit479 = (* (ptr) var←c54380 ),
/*1*/ BCK(i←v24056, limit479)
/*1*/ )) );
};
};
tc476 = (word) XR←ExtractField(var←c54412, 32 + (word) (
limit480 = (* (ptr) var←c54412 ),
BCK(j←v24144, limit480)
), 1);
}
else {
tc476 = (word) 0;
};
if (tc476) {
SOURCE(25983, 12)
return(1);
};
};
j←v24144 = (j←v24144 + 1);
if ((j←v24144 < noName←c54284)) {
goto lab←L100212;
};
lab←L100209: ;
};
};
i←v24056 = (i←v24056 + 1);
if ((i←v24056 < noName←c54220)) {
goto lab←L100208;
};
lab←L100205: ;
};
SOURCE(26015, 13)
return(0);
}
static word CountSegments←P2460(seq←v11684)
word seq←v11684;
{
word segCount←v11728;
word hiSegment←v24188;
/* CountSegments: */
SOURCE(26034, 183)
SOURCE(26034, 183)
segCount←v11728 = 0;
SOURCE(26103, 33)
hiSegment←v24188 = (* (ptr) (* (ptr) seq←v11684 ) );
SOURCE(26138, 79)
{
register word i←v24232 = 0;
register word noName←c54444;
word var←c54476;
noName←c54444 = hiSegment←v24188;
if ((i←v24232 >= noName←c54444)) {
goto lab←L100213;
};
lab←L100216: ;
SOURCE(26170, 47)
{
word limit481;
var←c54476 = (* (ptr) seq←v11684 );
if (XR←ExtractField(var←c54476, 32 + (word) (
limit481 = (* (ptr) var←c54476 ),
BCK(i←v24232, limit481)
), 1)) {
SOURCE(26194, 23)
segCount←v11728 = (segCount←v11728 + 1);
};
};
i←v24232 = (i←v24232 + 1);
if ((i←v24232 < noName←c54444)) {
goto lab←L100216;
};
lab←L100213: ;
};
SOURCE(26034, 183)
return(segCount←v11728);
}
static word CountJoints←P2520(seq←v11788)
word seq←v11788;
{
word jointCount←v11832;
word hiJoint←v24276;
/* CountJoints: */
SOURCE(26232, 179)
SOURCE(26232, 179)
jointCount←v11832 = 0;
SOURCE(26301, 29)
hiJoint←v24276 = (* (ptr) (* (( (ptr) seq←v11788)+1) ) );
SOURCE(26332, 79)
{
register word i←v24320 = 0;
register word noName←c54508;
word var←c54540;
noName←c54508 = hiJoint←v24276;
if ((i←v24320 >= noName←c54508)) {
goto lab←L100217;
};
lab←L100220: ;
SOURCE(26362, 49)
{
word limit482;
var←c54540 = (* (( (ptr) seq←v11788)+1) );
if (XR←ExtractField(var←c54540, 32 + (word) (
limit482 = (* (ptr) var←c54540 ),
BCK(i←v24320, limit482)
), 1)) {
SOURCE(26384, 27)
jointCount←v11832 = (jointCount←v11832 + 1);
};
};
i←v24320 = (i←v24320 + 1);
if ((i←v24320 < noName←c54508)) {
goto lab←L100220;
};
lab←L100217: ;
};
SOURCE(26232, 179)
return(jointCount←v11832);
}
static word CountControlPoints←P2580(seq←v11892)
word seq←v11892;
{
word count←v11936;
word hiSegment←v24364;
/* CountControlPoints: */
SOURCE(26426, 258)
SOURCE(26426, 258)
count←v11936 = 0;
SOURCE(26497, 33)
hiSegment←v24364 = (* (ptr) (* (ptr) seq←v11892 ) );
SOURCE(26532, 152)
{
register word i←v24408 = 0;
register word noName←c54572;
noName←c54572 = hiSegment←v24364;
if ((i←v24408 >= noName←c54572)) {
goto lab←L100221;
};
lab←L100224: ;
{
word cpCount←v24452;
word var←c54604;
SOURCE(26564, 39)
{
word limit483;
var←c54604 = (* (( (ptr) seq←v11892)+2) );
cpCount←v24452 = (* (ptr) (* ((( (ptr) var←c54604)+1)+(
limit483 = (* (ptr) var←c54604 ),
BCK(i←v24408, limit483)
)) ) );
};
SOURCE(26605, 79)
{
register word j←v24496 = 0;
register word noName←c54636;
word var←c54700;
noName←c54636 = cpCount←v24452;
if ((j←v24496 >= noName←c54636)) {
goto lab←L100225;
};
lab←L100228: ;
SOURCE(26635, 49)
{
word limit485;
{
word var←c54668;
var←c54668 = (* (( (ptr) seq←v11892)+2) );
{
word limit484;
var←c54700 = (* ((( (ptr) var←c54668)+1)+(
limit484 = (* (ptr) var←c54668 ),
BCK(i←v24408, limit484)
)) );
};
};
if (XR←ExtractField(var←c54700, 32 + (word) (
limit485 = (* (ptr) var←c54700 ),
BCK(j←v24496, limit485)
), 1)) {
SOURCE(26667, 17)
count←v11936 = (count←v11936 + 1);
};
};
j←v24496 = (j←v24496 + 1);
if ((j←v24496 < noName←c54636)) {
goto lab←L100228;
};
lab←L100225: ;
};
};
i←v24408 = (i←v24408 + 1);
if ((i←v24408 < noName←c54572)) {
goto lab←L100224;
};
lab←L100221: ;
};
SOURCE(26426, 258)
return(count←v11936);
}
static word ContainsSegment←P2640(seq←v11996, segNum←v12024)
word seq←v11996;
word segNum←v12024;
{
word var←c12068;
/* ContainsSegment: */
SOURCE(26708, 106)
SOURCE(26786, 28)
{
word var←c01172;
{
word var←c54732;
var←c54732 = (* (ptr) seq←v11996 );
{
word limit486;
var←c01172 = (unsigned) XR←ExtractField(var←c54732, 32 + (word) (
limit486 = (* (ptr) var←c54732 ),
BCK(segNum←v12024, limit486)
), 1);
};
};
return(var←c01172);
};
}
static word ContainsSomeSegment←P2700(seq←v12128)
word seq←v12128;
{
word var←c12172;
/* ContainsSomeSegment: */
SOURCE(26820, 93)
SOURCE(26889, 24)
return( (unsigned) ((* (( (ptr) seq←v12128)+3) ) > 0));
}
static word ContainsSegmentParts←P2760(seq←v12232, segNum←v12260)
word seq←v12232;
word segNum←v12260;
{
register ptr gf←c60396 = (ptr) &globalframe;
word var←c12304;
/* ContainsSegmentParts: */
SOURCE(26919, 348)
SOURCE(27002, 265)
{
word var←c01173;
word var←c54796;
word var←c54828;
word var←c54892;
{
word limit487;
word pd489;
word limit490;
word limit491;
if ((seq←v12232 != 0)) {
var←c54796 = (* (ptr) seq←v12232 );
if (XR←ExtractField(var←c54796, 32 + (word) (
limit487 = (* (ptr) var←c54796 ),
BCK(segNum←v12260, limit487)
), 1)) { goto then0488;};
var←c54828 = (* (( (ptr) seq←v12232)+2) );
pd489 = (* (( (ptr) (* (( (ptr) gf←c60396)+209)/* var←c54860 */ ))+34) );
if ((0 == (word) ( *( (fPt) ((* (ptr) pd489 ))))((* (((( (ptr) var←c54828)+1)+(
limit490 = (* (ptr) var←c54828 ),
BCK(segNum←v12260, limit490)
))) ), pd489))) { goto then0488;};
var←c54892 = (* (( (ptr) seq←v12232)+1) );
if (XR←ExtractField(var←c54892, 32 + (word) (
limit491 = (* (ptr) var←c54892 ),
BCK(segNum←v12260, limit491)
), 1)) {
then0488: ;
var←c01173 = (unsigned) 1;
}
else {
{
word var←c54924;
word var←c54956;
var←c54924 = ( ((* (ptr) (* (ptr) seq←v12232 ) ) != (* (ptr) (* (( (ptr) seq←v12232)+1) ) )) ? (segNum←v12260 + 1) : ((segNum←v12260 +
1) % (* (ptr) (* (ptr) seq←v12232 ) )) ) ;
var←c54956 = (* (( (ptr) seq←v12232)+1) );
{
word limit492;
var←c01173 = (unsigned) XR←ExtractField(var←c54956, 32 + (word) (
limit492 = (* (ptr) var←c54956 ),
BCK(var←c54924, limit492)
), 1);
};
};
};
}
else {
var←c01173 = (unsigned) 0;
};
};
return(var←c01173);
};
}
static word FirstSegment←P2820(seq←v12364)
word seq←v12364;
{
register ptr gf←c60428 = (ptr) &globalframe;
word index←v12408;
word hiSegment←v24540;
/* FirstSegment: */
SOURCE(27273, 625)
SOURCE(27334, 33)
hiSegment←v24540 = (* (ptr) (* (ptr) seq←v12364 ) );
SOURCE(27369, 529)
if (((* (ptr) (* (ptr) seq←v12364 ) ) != (* (ptr) (* (( (ptr) seq←v12364)+1) ) ))) {
SOURCE(27436, 166)
{
register word i←v24584 = 0;
register word noName←c54988;
word var←c55020;
noName←c54988 = hiSegment←v24540;
if ((i←v24584 >= noName←c54988)) {
goto lab←L100229;
};
lab←L100233: ;
SOURCE(27468, 24)
{
word limit493;
var←c55020 = (* (ptr) seq←v12364 );
if (XR←ExtractField(var←c55020, 32 + (word) (
limit493 = (* (ptr) var←c55020 ),
BCK(i←v24584, limit493)
), 1)) {
SOURCE(27492, 10)
goto lab←L100232;
};
};
i←v24584 = (i←v24584 + 1);
if ((i←v24584 < noName←c54988)) {
goto lab←L100233;
};
goto lab←L100229;
lab←L100232: ;
SOURCE(27520, 9)
index←v12408 = i←v24584;
goto lab←L100230;
lab←L100229: ;
SOURCE(27543, 59)
{
word var←c0724;
var←c0724 = (* (( (ptr) gf←c60428)+22) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c60428)+4)/* Problem←v3952 */ ), 0, (word) &var←c0724));
};
lab←L100230: ;
};
}
else {
SOURCE(27622, 276)
{
register word i←v24628 = 0;
register word noName←c55052;
noName←c55052 = hiSegment←v24540;
if ((i←v24628 >= noName←c55052)) {
goto lab←L100234;
};
lab←L100238: ;
{
word var←c55084;
word var←c55116;
word var←c55148;
word var←c55180;
word var←c55212;
SOURCE(27654, 78)
{
word tc494;
word limit495;
word limit496;
var←c55084 = IOP2( % , (int)((i←v24628 - 1) + hiSegment←v24540), (int)hiSegment←v24540);
var←c55116 = (* (ptr) seq←v12364 );
if ( ! XR←ExtractField(var←c55116, 32 + (word) (
limit495 = (* (ptr) var←c55116 ),
BCK(var←c55084, limit495)
), 1)) {
var←c55148 = (* (( (ptr) seq←v12364)+1) );
tc494 = (word) XR←ExtractField(var←c55148, 32 + (word) (
limit496 = (* (ptr) var←c55148 ),
BCK(i←v24628, limit496)
), 1);
}
else {
tc494 = (word) 0;
};
if (tc494) {
SOURCE(27732, 10)
goto lab←L100237;
};
};
SOURCE(27744, 46)
{
word tc497;
word limit498;
word limit499;
var←c55180 = (* (( (ptr) seq←v12364)+1) );
if ( ! XR←ExtractField(var←c55180, 32 + (word) (
limit498 = (* (ptr) var←c55180 ),
BCK(i←v24628, limit498)
), 1)) {
var←c55212 = (* (ptr) seq←v12364 );
tc497 = (word) XR←ExtractField(var←c55212, 32 + (word) (
limit499 = (* (ptr) var←c55212 ),
BCK(i←v24628, limit499)
), 1);
}
else {
tc497 = (word) 0;
};
if (tc497) {
SOURCE(27790, 10)
goto lab←L100237;
};
};
};
i←v24628 = (i←v24628 + 1);
if ((i←v24628 < noName←c55052)) {
goto lab←L100238;
};
goto lab←L100234;
lab←L100237: ;
SOURCE(27818, 9)
index←v12408 = i←v24628;
goto lab←L100235;
lab←L100234: ;
SOURCE(27841, 57)
{
word var←c0732;
var←c0732 = (* (( (ptr) gf←c60428)+21) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c60428)+4)/* Problem←v3952 */ ), 0, (word) &var←c0732));
};
lab←L100235: ;
};
};
SOURCE(27273, 625)
return(index←v12408);
}
static word FirstSegNum←P2880(run←v12468)
word run←v12468;
{
register ptr gf←c60460 = (ptr) &globalframe;
word var←c12512;
/* FirstSegNum: */
SOURCE(27916, 229)
SOURCE(27976, 35)
if (((* (( (ptr) run←v12468)+3) ) == 0)) {
SOURCE(28001, 10)
return( (word) -1);
};
SOURCE(28013, 44)
{
word pd500;
pd500 = (* (( (ptr) (* (( (ptr) gf←c60460)+207)/* var←c49644 */ ))+26) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd500 ))))(run←v12468, pd500))) {
SOURCE(28048, 9)
return(0);
};
};
SOURCE(28112, 33)
return((word) FirstTransitionInRun←P3840(run←v12468));
}
static word LastSegNum←P2940(run←v12572, firstSegNum←v12600)
word run←v12572;
word firstSegNum←v12600;
{
word lastNum←v12644;
/* LastSegNum: */
SOURCE(28151, 292)
SOURCE(28237, 35)
if (( (int)firstSegNum←v12600 == (int) (word) -1)) {
SOURCE(28262, 10)
return( (word) -1);
};
SOURCE(28274, 169)
if (((* (ptr) (* (ptr) run←v12572 ) ) != (* (ptr) (* (( (ptr) run←v12572)+1) ) ))) {
SOURCE(28314, 47)
lastNum←v12644 = ((firstSegNum←v12600 + (* (( (ptr) run←v12572)+3) )) - 1);
}
else {
SOURCE(28361, 82)
lastNum←v12644 = IOP2( % , (int)(((firstSegNum←v12600 + (* (( (ptr) run←v12572)+3) )) - 1) + (* (ptr) (* (ptr) run←v12572 ) )), (int)(* (ptr) (* (ptr) run←v12572 ) ))
;
};
SOURCE(28151, 292)
return(lastNum←v12644);
}
static word ContainsJoint←P3000(seq←v12704, jointNum←v12732)
word seq←v12704;
word jointNum←v12732;
{
word var←c12776;
/* ContainsJoint: */
SOURCE(28449, 106)
SOURCE(28527, 28)
{
word var←c01174;
{
word var←c55276;
var←c55276 = (* (( (ptr) seq←v12704)+1) );
{
word limit501;
var←c01174 = (unsigned) XR←ExtractField(var←c55276, 32 + (word) (
limit501 = (* (ptr) var←c55276 ),
BCK(jointNum←v12732, limit501)
), 1);
};
};
return(var←c01174);
};
}
static word FirstJointNum←P3060(run←v12836)
word run←v12836;
{
register ptr gf←c60492 = (ptr) &globalframe;
word var←c12880;
word firstSeg←v24672;
word nextJoint←v24700;
word var←c55308;
word var←c55340;
word var←c55372;
/* FirstJointNum: */
SOURCE(28561, 530)
SOURCE(28649, 37)
if (((* (( (ptr) run←v12836)+4) ) == 0)) {
SOURCE(28676, 10)
return( (word) -1);
};
SOURCE(28688, 36)
firstSeg←v24672 = (word) FirstTransitionInRun←P3840(run←v12836);
SOURCE(28726, 365)
{
word limit502;
var←c55308 = (* (( (ptr) run←v12836)+1) );
if (XR←ExtractField(var←c55308, 32 + (word) (
limit502 = (* (ptr) var←c55308 ),
BCK(firstSeg←v24672, limit502)
), 1)) {
SOURCE(28755, 22)
return(firstSeg←v24672);
}
else {
SOURCE(28779, 312)
if (((* (ptr) (* (ptr) run←v12836 ) ) != (* (ptr) (* (( (ptr) run←v12836)+1) ) ))) {
SOURCE(28847, 98)
{
word limit503;
var←c55340 = (firstSeg←v24672 + 1);
var←c55372 = (* (( (ptr) run←v12836)+1) );
if (XR←ExtractField(var←c55372, 32 + (word) (
limit503 = (* (ptr) var←c55372 ),
BCK(var←c55340, limit503)
), 1)) {
SOURCE(28880, 26)
return(SGNCK((firstSeg←v24672 + 1)));
}
else {
SOURCE(28906, 39)
{
word var←c0749;
var←c0749 = (* (( (ptr) gf←c60492)+20) );
(void) XR←RaiseError((* (( (ptr) gf←c60492)+4)/* Problem←v3952 */ ), (word) &var←c0749);
};
};
};
}
else {
{
word var←c55404;
SOURCE(28956, 41)
{
word idx504;
nextJoint←v24700 = (
idx504 = (word) FollowingJoint←P3240(run←v12836, firstSeg←v24672),
SGNCK(idx504)
);
};
SOURCE(28999, 92)
{
word limit505;
var←c55404 = (* (( (ptr) run←v12836)+1) );
if (XR←ExtractField(var←c55404, 32 + (word) (
limit505 = (* (ptr) var←c55404 ),
BCK(nextJoint←v24700, limit505)
), 1)) {
SOURCE(29029, 23)
return(nextJoint←v24700);
}
else {
SOURCE(29052, 39)
{
word var←c0751;
var←c0751 = (* (( (ptr) gf←c60492)+20) );
(void) XR←RaiseError((* (( (ptr) gf←c60492)+4)/* Problem←v3952 */ ), (word) &var←c0751);
};
};
};
};
};
};
};
}
static word LastJointNum←P3120(run←v12940, firstJointNum←v12968)
word run←v12940;
word firstJointNum←v12968;
{
word lastNum←v13012;
/* LastJointNum: */
SOURCE(29103, 330)
SOURCE(29193, 37)
if (( (int)firstJointNum←v12968 == (int) (word) -1)) {
SOURCE(29220, 10)
return( (word) -1);
};
SOURCE(29232, 201)
if (((* (ptr) (* (ptr) run←v12940 ) ) != (* (ptr) (* (( (ptr) run←v12940)+1) ) ))) {
SOURCE(29297, 50)
lastNum←v13012 = ((firstJointNum←v12968 + (* (( (ptr) run←v12940)+4) )) - 1);
}
else {
SOURCE(29347, 86)
lastNum←v13012 = IOP2( % , (int)(((firstJointNum←v12968 + (* (( (ptr) run←v12940)+4) )) - 1) + (* (ptr) (* (ptr) run←v12940 ) )), (int)(* (ptr) (* (ptr) run←v12940 ) ))
;
};
SOURCE(29103, 330)
return(lastNum←v13012);
}
static word LastSegAndJoint←P3180(traj←v13072, trajEnd←v13100)
word traj←v13072;
word trajEnd←v13100;
{
word segAndJoint←v13144;
/* LastSegAndJoint: */
SOURCE(29439, 459)
SOURCE(29439, 459)
segAndJoint←v13144 = 0;
SOURCE(29540, 31)
segAndJoint←v13144 = (word) CreateEmpty←P180(traj←v13072);
SOURCE(29573, 325)
if (((* (ptr) traj←v13072 ) == 2)) {
SOURCE(29600, 26)
(* (( (ptr) segAndJoint←v13144)+4) ) = 1;
SOURCE(29628, 24)
(* (( (ptr) segAndJoint←v13144)+3) ) = 1;
SOURCE(29654, 244)
if ((trajEnd←v13100 == 0)) {
SOURCE(29677, 30)
{
word var←c55436;
var←c55436 = (* (ptr) segAndJoint←v13144 );
{
word limit506;
word xs507;
xs507 = (word) (
limit506 = (* (ptr) var←c55436 ),
BCK(0, limit506)
);
(* (bPt) ((( (bPt) var←c55436)+4) + ((word) xs507 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs507 & 7)+1));
};
};
SOURCE(29709, 28)
{
word var←c55468;
var←c55468 = (* (( (ptr) segAndJoint←v13144)+1) );
{
word limit508;
word xs509;
xs509 = (word) (
limit508 = (* (ptr) var←c55468 ),
BCK(0, limit508)
);
(* (bPt) ((( (bPt) var←c55468)+4) + ((word) xs509 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs509 & 7)+1));
};
};
}
else {
SOURCE(29746, 154)
{
word hiSegment←v24744;
SOURCE(29748, 70)
{
word idx510;
hiSegment←v24744 = (
idx510 = (word) ((* (ptr) (* (ptr) segAndJoint←v13144 ) ) - 1),
SGNCK(idx510)
);
};
SOURCE(29820, 38)
{
word var←c55500;
var←c55500 = (* (ptr) segAndJoint←v13144 );
{
word limit511;
word xs512;
xs512 = (word) (
limit511 = (* (ptr) var←c55500 ),
BCK(hiSegment←v24744, limit511)
);
(* (bPt) ((( (bPt) var←c55500)+4) + ((word) xs512 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs512 & 7)+1));
};
};
SOURCE(29860, 38)
{
word var←c55532;
word var←c55564;
var←c55532 = (hiSegment←v24744 + 1);
var←c55564 = (* (( (ptr) segAndJoint←v13144)+1) );
{
word limit513;
word xs514;
xs514 = (word) (
limit513 = (* (ptr) var←c55564 ),
BCK(var←c55532, limit513)
);
(* (bPt) ((( (bPt) var←c55564)+4) + ((word) xs514 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs514 & 7)+1));
};
};
};
};
}
else {
SOURCE(29910, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(29439, 459)
return(segAndJoint←v13144);
}
static word FollowingJoint←P3240(seq←v13204, index←v13232)
word seq←v13204;
word index←v13232;
{
word nextIndex←v13276;
word open←v24788;
word segCount←v24816;
/* FollowingJoint: */
SOURCE(29921, 277)
SOURCE(30009, 44)
open←v24788 = (unsigned) ((* (ptr) (* (ptr) seq←v13204 ) ) != (* (ptr) (* (( (ptr) seq←v13204)+1) ) ));
SOURCE(30055, 32)
segCount←v24816 = (* (ptr) (* (ptr) seq←v13204 ) );
SOURCE(30089, 109)
if ((0 != open←v24788)) {
SOURCE(30102, 60)
if ((index←v13232 == segCount←v24816)) {
nextIndex←v13276 = (word) -1;
}
else {
nextIndex←v13276 = (index←v13232 + 1);
};
}
else {
SOURCE(30162, 36)
nextIndex←v13276 = ((index←v13232 + 1) % segCount←v24816);
};
SOURCE(29921, 277)
return(nextIndex←v13276);
}
static void UnpackOnePointSequence←P3300(formal←c0786, seq←v13336)
word formal←c0786;
word seq←v13336;
{
word isACP←v13380;
word segNum←v13408;
word cpNum←v13436;
word jointNum←v13464;
word hiSegment←v24860;
word hiJoint←v24888;
/* UnpackOnePointSequence: */
SOURCE(30204, 476)
SOURCE(30313, 33)
hiSegment←v24860 = (* (ptr) (* (ptr) seq←v13336 ) );
SOURCE(30348, 29)
hiJoint←v24888 = (* (ptr) (* (( (ptr) seq←v13336)+1) ) );
SOURCE(30379, 116)
{
register word i←v24932 = 0;
register word noName←c55596;
word var←c55628;
noName←c55596 = hiJoint←v24888;
if ((i←v24932 >= noName←c55596)) {
goto lab←L100240;
};
lab←L100243: ;
SOURCE(30409, 86)
{
word limit515;
var←c55628 = (* (( (ptr) seq←v13336)+1) );
if (XR←ExtractField(var←c55628, 32 + (word) (
limit515 = (* (ptr) var←c55628 ),
BCK(i←v24932, limit515)
), 1)) {
SOURCE(30433, 13)
isACP←v13380 = 0;
SOURCE(30448, 12)
segNum←v13408 = 999;
SOURCE(30462, 11)
cpNum←v13436 = 999;
SOURCE(30475, 12)
jointNum←v13464 = i←v24932;
SOURCE(30489, 6)
goto lab←L100239;
};
};
i←v24932 = (i←v24932 + 1);
if ((i←v24932 < noName←c55596)) {
goto lab←L100243;
};
lab←L100240: ;
};
SOURCE(30508, 172)
{
register word i←v24976 = 0;
register word noName←c55660;
noName←c55660 = hiSegment←v24860;
if ((i←v24976 >= noName←c55660)) {
goto lab←L100244;
};
lab←L100247: ;
SOURCE(30540, 140)
{
register word j←v25020 = 0;
register word noName←c55724;
word var←c55692;
word var←c55788;
{
word limit516;
var←c55692 = (* (( (ptr) seq←v13336)+2) );
noName←c55724 = (* (ptr) (* ((( (ptr) var←c55692)+1)+(
limit516 = (* (ptr) var←c55692 ),
BCK(i←v24976, limit516)
)) ) );
};
if ((j←v25020 >= noName←c55724)) {
goto lab←L100248;
};
lab←L100251: ;
SOURCE(30587, 93)
{
word limit518;
{
word var←c55756;
var←c55756 = (* (( (ptr) seq←v13336)+2) );
{
word limit517;
var←c55788 = (* ((( (ptr) var←c55756)+1)+(
limit517 = (* (ptr) var←c55756 ),
BCK(i←v24976, limit517)
)) );
};
};
if (XR←ExtractField(var←c55788, 32 + (word) (
limit518 = (* (ptr) var←c55788 ),
BCK(j←v25020, limit518)
), 1)) {
SOURCE(30621, 12)
isACP←v13380 = 1;
SOURCE(30635, 10)
segNum←v13408 = i←v24976;
SOURCE(30647, 9)
cpNum←v13436 = j←v25020;
SOURCE(30658, 14)
jointNum←v13464 = 999;
SOURCE(30674, 6)
goto lab←L100239;
};
};
j←v25020 = (j←v25020 + 1);
if ((j←v25020 < noName←c55724)) {
goto lab←L100251;
};
lab←L100248: ;
};
i←v24976 = (i←v24976 + 1);
if ((i←v24976 < noName←c55660)) {
goto lab←L100247;
};
lab←L100244: ;
};
SOURCE(30702, 5)
(void) XR←RaiseUnnamedError();
lab←L100239: ;
(* (ptr) formal←c0786 ) = isACP←v13380;
(* (( (ptr) formal←c0786)+1) ) = segNum←v13408;
(* (( (ptr) formal←c0786)+2) ) = cpNum←v13436;
(* (( (ptr) formal←c0786)+3) ) = jointNum←v13464;
return;
}
static word UnpackOneSegmentSequence←P3360(seq←v13524)
word seq←v13524;
{
word segNum←v13568;
word hiSegment←v25064;
/* UnpackOneSegmentSequence: */
SOURCE(30713, 192)
SOURCE(30794, 33)
hiSegment←v25064 = (* (ptr) (* (ptr) seq←v13524 ) );
SOURCE(30829, 76)
{
register word i←v25108 = 0;
register word noName←c55820;
word var←c55852;
noName←c55820 = hiSegment←v25064;
if ((i←v25108 >= noName←c55820)) {
goto lab←L100252;
};
lab←L100255: ;
SOURCE(30861, 44)
{
word limit519;
var←c55852 = (* (ptr) seq←v13524 );
if (XR←ExtractField(var←c55852, 32 + (word) (
limit519 = (* (ptr) var←c55852 ),
BCK(i←v25108, limit519)
), 1)) {
SOURCE(30887, 10)
segNum←v13568 = i←v25108;
SOURCE(30899, 6)
return(segNum←v13568);
};
};
i←v25108 = (i←v25108 + 1);
if ((i←v25108 < noName←c55820)) {
goto lab←L100255;
};
lab←L100252: ;
};
SOURCE(30918, 5)
(void) XR←RaiseUnnamedError();
}
static void UnpackSimpleSequence←P3420(formal←c0827, slice←v13628, parts←v13656)
word formal←c0827;
word slice←v13628;
word parts←v13656;
{
register ptr gf←c60524 = (ptr) &globalframe;
word success←v13700;
word partType←v13728;
word traj←v13756;
word joint←v13784;
word jointNum←v13812;
W2 cp←v13840;
word cpNum←v13868;
word seg←v13896;
word segNum←v13924;
word jointFound←v25152 = 0;
word cpFound←v25180 = 0;
word segFound←v25208 = 0;
word seq←v25236;
word seqTraj←v25264;
word hiSegment←v25292;
word hiJoint←v25320;
/* UnpackSimpleSequence: */
SOURCE(30929, 1468)
SOURCE(30929, 1468)
success←v13700 = 0;
SOURCE(30929, 1468)
partType←v13728 = 0;
SOURCE(30929, 1468)
traj←v13756 = 0;
SOURCE(30929, 1468)
joint←v13784 = 0;
SOURCE(30929, 1468)
jointNum←v13812 = 999;
SOURCE(30929, 1468)
cp←v13840.f0 = (* (ptr) &fc520 );
cp←v13840.f1 = (* (ptr) &fc520 );
SOURCE(30929, 1468)
cpNum←v13868 = 999;
SOURCE(30929, 1468)
seg←v13896 = 0;
SOURCE(30929, 1468)
segNum←v13924 = 999;
SOURCE(31242, 30)
seq←v25236 = XR←Narrow(parts←v13656, (* (( (ptr) gf←c60524)+5) ));
SOURCE(31274, 38)
seqTraj←v25264 = XR←Narrow((* (( (ptr) slice←v13628)+1) ), (* (( (ptr) gf←c60524)+13) ));
SOURCE(31314, 33)
hiSegment←v25292 = (* (ptr) (* (ptr) seq←v25236 ) );
SOURCE(31349, 29)
hiJoint←v25320 = (* (ptr) (* (( (ptr) seq←v25236)+1) ) );
SOURCE(31380, 14)
traj←v13756 = seqTraj←v25264;
SOURCE(31396, 186)
{
register word i←v25364 = 0;
register word noName←c55884;
word var←c55916;
noName←c55884 = hiJoint←v25320;
if ((i←v25364 >= noName←c55884)) {
goto lab←L100257;
};
lab←L100260: ;
SOURCE(31426, 156)
{
word limit521;
var←c55916 = (* (( (ptr) seq←v25236)+1) );
if (XR←ExtractField(var←c55916, 32 + (word) (
limit521 = (* (ptr) var←c55916 ),
BCK(i←v25364, limit521)
), 1)) {
SOURCE(31450, 43)
if ((0 != jointFound←v25152)) {
SOURCE(31470, 15)
success←v13700 = 0;
SOURCE(31487, 6)
goto lab←L100256;
};
SOURCE(31496, 12)
jointNum←v13812 = i←v25364;
SOURCE(31510, 35)
{
word pd522;
pd522 = (* (( (ptr) (* (( (ptr) gf←c60524)+204)/* var←c43500 */ ))+31) );
joint←v13784 = (word) ( *( (fPt) ((* (ptr) pd522 ))))(slice←v13628, i←v25364, pd522);
};
SOURCE(31547, 17)
jointFound←v25152 = 1;
SOURCE(31566, 16)
partType←v13728 = 1;
};
};
i←v25364 = (i←v25364 + 1);
if ((i←v25364 < noName←c55884)) {
goto lab←L100260;
};
lab←L100257: ;
};
SOURCE(31595, 359)
{
register word i←v25408 = 0;
register word noName←c55948;
noName←c55948 = hiSegment←v25292;
if ((i←v25408 >= noName←c55948)) {
goto lab←L100261;
};
lab←L100264: ;
{
word thisSeg←v25452;
word cpCount←v25480;
word var←c55980;
SOURCE(31627, 48)
{
word pd523;
pd523 = (* (( (ptr) (* (( (ptr) gf←c60524)+204)/* var←c43500 */ ))+29) );
thisSeg←v25452 = (word) ( *( (fPt) ((* (ptr) pd523 ))))(slice←v13628, i←v25408, pd523);
};
SOURCE(31677, 39)
{
word limit524;
var←c55980 = (* (( (ptr) seq←v25236)+2) );
cpCount←v25480 = (* (ptr) (* ((( (ptr) var←c55980)+1)+(
limit524 = (* (ptr) var←c55980 ),
BCK(i←v25408, limit524)
)) ) );
};
SOURCE(31718, 236)
{
register word j←v25524 = 0;
register word noName←c56012;
word var←c56076;
noName←c56012 = cpCount←v25480;
if ((j←v25524 >= noName←c56012)) {
goto lab←L100265;
};
lab←L100268: ;
SOURCE(31748, 206)
{
word limit526;
{
word var←c56044;
var←c56044 = (* (( (ptr) seq←v25236)+2) );
{
word limit525;
var←c56076 = (* ((( (ptr) var←c56044)+1)+(
limit525 = (* (ptr) var←c56044 ),
BCK(i←v25408, limit525)
)) );
};
};
if (XR←ExtractField(var←c56076, 32 + (word) (
limit526 = (* (ptr) var←c56076 ),
BCK(j←v25524, limit526)
), 1)) {
SOURCE(31782, 40)
if ((0 != cpFound←v25180)) {
SOURCE(31799, 15)
success←v13700 = 0;
SOURCE(31816, 6)
goto lab←L100256;
};
SOURCE(31825, 10)
segNum←v13924 = i←v25408;
SOURCE(31837, 13)
seg←v13896 = thisSeg←v25452;
SOURCE(31852, 9)
cpNum←v13868 = j←v25524;
SOURCE(31863, 50)
{
word pd527;
pd527 = (* (( (ptr) (* (ptr) thisSeg←v25452 ))+16) );
(void) ( *( (fPt) ((* (ptr) pd527 ))))((word) &cp←v13840, thisSeg←v25452, cpNum←v13868, pd527);
};
SOURCE(31915, 14)
cpFound←v25180 = 1;
SOURCE(31931, 23)
partType←v13728 = 2;
};
};
j←v25524 = (j←v25524 + 1);
if ((j←v25524 < noName←c56012)) {
goto lab←L100268;
};
lab←L100265: ;
};
};
i←v25408 = (i←v25408 + 1);
if ((i←v25408 < noName←c55948)) {
goto lab←L100264;
};
lab←L100261: ;
};
SOURCE(31976, 55)
if (((0 != jointFound←v25152) && (0 != cpFound←v25180))) {
SOURCE(32008, 15)
success←v13700 = 0;
SOURCE(32025, 6)
goto lab←L100256;
};
SOURCE(32034, 186)
{
register word i←v25568 = 0;
register word noName←c56108;
word var←c56140;
noName←c56108 = hiSegment←v25292;
if ((i←v25568 >= noName←c56108)) {
goto lab←L100269;
};
lab←L100272: ;
SOURCE(32066, 154)
{
word limit528;
var←c56140 = (* (ptr) seq←v25236 );
if (XR←ExtractField(var←c56140, 32 + (word) (
limit528 = (* (ptr) var←c56140 ),
BCK(i←v25568, limit528)
), 1)) {
SOURCE(32092, 41)
if ((0 != segFound←v25208)) {
SOURCE(32110, 15)
success←v13700 = 0;
SOURCE(32127, 6)
goto lab←L100256;
};
SOURCE(32136, 10)
segNum←v13924 = i←v25568;
SOURCE(32148, 35)
{
word pd529;
pd529 = (* (( (ptr) (* (( (ptr) gf←c60524)+204)/* var←c43500 */ ))+29) );
seg←v13896 = (word) ( *( (fPt) ((* (ptr) pd529 ))))(slice←v13628, i←v25568, pd529);
};
SOURCE(32185, 15)
segFound←v25208 = 1;
SOURCE(32202, 18)
partType←v13728 = 3;
};
};
i←v25568 = (i←v25568 + 1);
if ((i←v25568 < noName←c56108)) {
goto lab←L100272;
};
lab←L100269: ;
};
SOURCE(32233, 84)
if (((0 != jointFound←v25152) && (0 != segFound←v25208)) || ((0 != cpFound←v25180) && (0 != segFound←v25208))) {
SOURCE(32294, 15)
success←v13700 = 0;
SOURCE(32311, 6)
goto lab←L100256;
};
SOURCE(32320, 56)
if ( ( ( (0 == jointFound←v25152) ? (0 == cpFound←v25180) : 0 ) ? (0 == segFound←v25208) : 0 ) ) {
SOURCE(32376, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(32383, 14)
success←v13700 = 1;
/* removed tail goto */
lab←L100256: ;
(* (ptr) formal←c0827 ) = success←v13700;
(* (( (ptr) formal←c0827)+1) ) = partType←v13728;
(* (( (ptr) formal←c0827)+2) ) = traj←v13756;
(* (( (ptr) formal←c0827)+3) ) = joint←v13784;
(* (( (ptr) formal←c0827)+4) ) = jointNum←v13812;
(* (W2Pt) (( (ptr) formal←c0827)+5) ) = cp←v13840;
(* (( (ptr) formal←c0827)+7) ) = cpNum←v13868;
(* (( (ptr) formal←c0827)+8) ) = seg←v13896;
(* (( (ptr) formal←c0827)+9) ) = segNum←v13924;
return;
}
static void RunsInSequence←P3480(formal←c0835, seq←v13984)
word formal←c0835;
word seq←v13984;
{
word seqGen←v14028;
word runCount←v14056;
/* RunsInSequence: */
SOURCE(32402, 262)
SOURCE(32402, 262)
seqGen←v14028 = 0;
SOURCE(32502, 162)
if (((* (ptr) (* (ptr) seq←v13984 ) ) != (* (ptr) (* (( (ptr) seq←v13984)+1) ) ))) {
SOURCE(32568, 50)
{
W2 var←c56172;
(void) RunsInSequenceOpen←P3540((word) &var←c56172, seq←v13984);
runCount←v14056 = var←c56172.f1;
seqGen←v14028 = var←c56172.f0;
};
}
else {
SOURCE(32618, 46)
{
W2 var←c56204;
(void) RunsInSequenceClosed←P3600((word) &var←c56204, seq←v13984);
runCount←v14056 = var←c56204.f1;
seqGen←v14028 = var←c56204.f0;
};
};
/* removed tail goto */
(* (ptr) formal←c0835 ) = seqGen←v14028;
(* (( (ptr) formal←c0835)+1) ) = runCount←v14056;
return;
}
static void RunsInSequenceOpen←P3540(formal←c0853, seq←v14116)
word formal←c0853;
word seq←v14116;
{
register ptr gf←c60556 = (ptr) &globalframe;
word seqGen←v14160;
word runCount←v14188;
word in←v25612 = 0;
word thisSeq←v25640 = 0;
word hiSegment←v25668;
word hiJoint←v25696;
/* RunsInSequenceOpen: */
SOURCE(32670, 732)
SOURCE(32670, 732)
seqGen←v14160 = 0;
SOURCE(32805, 35)
{
word idx530;
hiSegment←v25668 = (
idx530 = (word) ((* (ptr) (* (ptr) seq←v14116 ) ) - 1),
SGNCK(idx530)
);
};
SOURCE(32872, 28)
hiJoint←v25696 = (hiSegment←v25668 + 1);
SOURCE(32902, 42)
seqGen←v14160 = XR←NewObject(4, (* (( (ptr) gf←c60556)+19) ));
SOURCE(32946, 12)
runCount←v14188 = 0;
SOURCE(32960, 27)
if ((0 != (word) IsEmpty←P2220(seq←v14116))) {
SOURCE(32981, 6)
goto lab←L100274;
};
SOURCE(32989, 228)
{
register word i←v25740 = 0;
register word noName←c56268;
noName←c56268 = hiSegment←v25668;
if ((i←v25740 > noName←c56268)) {
goto lab←L100275;
};
lab←L100278: ;
SOURCE(33021, 96)
{
W4 var←c56300;
(void) ConsiderJoint←P3960((word) &var←c56300, in←v25612, (* (ptr) seqGen←v14160 ), seq←v14116, thisSeq←v25640, runCount←v14188
, i←v25740);
runCount←v14188 = var←c56300.f3;
thisSeq←v25640 = var←c56300.f2;
(* (ptr) seqGen←v14160 ) = var←c56300.f1;
in←v25612 = var←c56300.f0;
};
SOURCE(33119, 98)
{
W4 var←c56332;
(void) ConsiderSegment←P4020((word) &var←c56332, in←v25612, (* (ptr) seqGen←v14160 ), seq←v14116, thisSeq←v25640, runCount←v14188
, i←v25740);
runCount←v14188 = var←c56332.f3;
thisSeq←v25640 = var←c56332.f2;
(* (ptr) seqGen←v14160 ) = var←c56332.f1;
in←v25612 = var←c56332.f0;
};
if ((i←v25740 >= noName←c56268)) {
goto lab←L100275;
};
i←v25740 = (i←v25740 + 1);
goto lab←L100278;
lab←L100275: ;
};
SOURCE(33228, 102)
{
W4 var←c56364;
(void) ConsiderJoint←P3960((word) &var←c56364, in←v25612, (* (ptr) seqGen←v14160 ), seq←v14116, thisSeq←v25640, runCount←v14188
, hiJoint←v25696);
runCount←v14188 = var←c56364.f3;
thisSeq←v25640 = var←c56364.f2;
(* (ptr) seqGen←v14160 ) = var←c56364.f1;
in←v25612 = var←c56364.f0;
};
SOURCE(33332, 70)
if ((0 != in←v25612)) {
SOURCE(33343, 59)
{
word var←c56396;
{
word var←c56428;
var←c56428 = XR←NewObject(8, (* (( (ptr) gf←c60556)+18) ));
(* (ptr) var←c56428 ) = thisSeq←v25640;
var←c56396 = var←c56428;
};
(* (ptr) seqGen←v14160 ) = (word) AppendToList←P3900((* (ptr) seqGen←v14160 ), var←c56396);
};
};
/* removed tail goto */
lab←L100274: ;
(* (ptr) formal←c0853 ) = seqGen←v14160;
(* (( (ptr) formal←c0853)+1) ) = runCount←v14188;
return;
}
static void RunsInSequenceClosed←P3600(formal←c0869, seq←v14248)
word formal←c0869;
word seq←v14248;
{
register ptr gf←c60588 = (ptr) &globalframe;
word seqGen←v14292;
word runCount←v14320;
word segCount←v25784;
word in←v25812 = 0;
word thisSeq←v25840 = 0;
word start←v25868;
word natGen←v25896 = 0;
/* RunsInSequenceClosed: */
SOURCE(33408, 741)
SOURCE(33408, 741)
seqGen←v14292 = 0;
SOURCE(33507, 32)
segCount←v25784 = (* (ptr) (* (ptr) seq←v14248 ) );
SOURCE(33613, 42)
seqGen←v14292 = XR←NewObject(4, (* (( (ptr) gf←c60588)+19) ));
SOURCE(33657, 12)
runCount←v14320 = 0;
SOURCE(33671, 37)
if ((0 != (word) ControlPointsOnly←P3660(seq←v14248))) {
SOURCE(33702, 6)
goto lab←L100279;
};
SOURCE(33710, 33)
start←v25868 = (word) FirstTransitionInRun←P3840(seq←v14248);
SOURCE(33745, 10)
in←v25812 = 0;
SOURCE(33757, 50)
natGen←v25896 = (word) NATsInInterval←P4140(start←v25868, segCount←v25784, segCount←v25784);
SOURCE(33809, 259)
{
register word i←v25940;
i←v25940 = (word) NextNAT←P4200(natGen←v25896);
lab←L100283: ;
if (( (int)i←v25940 != (int) (word) -1)) {
}
else {
goto lab←L100280;
};
SOURCE(33872, 96)
{
W4 var←c56492;
(void) ConsiderJoint←P3960((word) &var←c56492, in←v25812, (* (ptr) seqGen←v14292 ), seq←v14248, thisSeq←v25840, runCount←v14320
, SGNCK(i←v25940));
runCount←v14320 = var←c56492.f3;
thisSeq←v25840 = var←c56492.f2;
(* (ptr) seqGen←v14292 ) = var←c56492.f1;
in←v25812 = var←c56492.f0;
};
SOURCE(33970, 98)
{
W4 var←c56524;
(void) ConsiderSegment←P4020((word) &var←c56524, in←v25812, (* (ptr) seqGen←v14292 ), seq←v14248, thisSeq←v25840, runCount←v14320
, SGNCK(i←v25940));
runCount←v14320 = var←c56524.f3;
thisSeq←v25840 = var←c56524.f2;
(* (ptr) seqGen←v14292 ) = var←c56524.f1;
in←v25812 = var←c56524.f0;
};
i←v25940 = (word) NextNAT←P4200(natGen←v25896);
goto lab←L100283;
lab←L100280: ;
};
SOURCE(34079, 70)
if ((0 != in←v25812)) {
SOURCE(34090, 59)
{
word var←c56556;
{
word var←c56588;
var←c56588 = XR←NewObject(8, (* (( (ptr) gf←c60588)+18) ));
(* (ptr) var←c56588 ) = thisSeq←v25840;
var←c56556 = var←c56588;
};
(* (ptr) seqGen←v14292 ) = (word) AppendToList←P3900((* (ptr) seqGen←v14292 ), var←c56556);
};
};
/* removed tail goto */
lab←L100279: ;
(* (ptr) formal←c0869 ) = seqGen←v14292;
(* (( (ptr) formal←c0869)+1) ) = runCount←v14320;
return;
}
static word ControlPointsOnly←P3660(seq←v14380)
word seq←v14380;
{
word var←c14424;
/* ControlPointsOnly: */
SOURCE(34155, 119)
SOURCE(34215, 59)
{
word tc531;
if ( ( (seq←v14380 != 0) ? ((* (( (ptr) seq←v14380)+4) ) == 0) : 0 ) ) {
tc531 = (word) (unsigned) ((* (( (ptr) seq←v14380)+3) ) == 0);
}
else {
tc531 = (word) (unsigned) 0;
};
return(tc531);
};
}
static word NextSequence←P3720(seqGen←v14484)
word seqGen←v14484;
{
word seq←v14528;
/* NextSequence: */
SOURCE(34280, 177)
SOURCE(34280, 177)
seq←v14528 = 0;
SOURCE(34363, 37)
if (((* (ptr) seqGen←v14484 ) == 0)) {
SOURCE(34389, 11)
return(0);
};
SOURCE(34402, 23)
seq←v14528 = (* (ptr) (* (ptr) seqGen←v14484 ) );
SOURCE(34427, 30)
(* (ptr) seqGen←v14484 ) = (* (( (ptr) (* (ptr) seqGen←v14484 ))+1) );
SOURCE(34280, 177)
return(seq←v14528);
}
static word FirstRun←P3780(seq←v14588)
word seq←v14588;
{
word runParts←v14632;
word runCount←v25984;
word seqGen←v26012 = 0;
/* FirstRun: */
SOURCE(34463, 218)
SOURCE(34463, 218)
runParts←v14632 = 0;
SOURCE(34578, 40)
{
W2 var←c56620;
(void) RunsInSequence←P3480((word) &var←c56620, seq←v14588);
runCount←v25984 = var←c56620.f1;
seqGen←v26012 = var←c56620.f0;
};
SOURCE(34620, 61)
if ((runCount←v25984 == 0)) {
runParts←v14632 = 0;
}
else {
runParts←v14632 = (word) NextSequence←P3720(seqGen←v26012);
};
SOURCE(34463, 218)
return(runParts←v14632);
}
static word FirstTransitionInRun←P3840(seq←v14692)
word seq←v14692;
{
register ptr gf←c60620 = (ptr) &globalframe;
word transitionNum←v14736;
word hiSegment←v26056;
/* FirstTransitionInRun: */
SOURCE(34687, 754)
SOURCE(34764, 35)
{
word idx532;
hiSegment←v26056 = (
idx532 = (word) ((* (ptr) (* (ptr) seq←v14692 ) ) - 1),
SGNCK(idx532)
);
};
SOURCE(34832, 609)
if (((* (ptr) (* (ptr) seq←v14692 ) ) != (* (ptr) (* (( (ptr) seq←v14692)+1) ) ))) {
{
word var←c56748;
word var←c56780;
SOURCE(34899, 98)
{
register word i←v26100 = 0;
register word noName←c56652;
noName←c56652 = hiSegment←v26056;
if ((i←v26100 > noName←c56652)) {
goto lab←L100284;
};
lab←L100287: ;
{
word var←c56684;
word var←c56716;
SOURCE(34931, 31)
{
word limit533;
var←c56684 = (* (( (ptr) seq←v14692)+1) );
if (XR←ExtractField(var←c56684, 32 + (word) (
limit533 = (* (ptr) var←c56684 ),
BCK(i←v26100, limit533)
), 1)) {
SOURCE(34953, 9)
return(i←v26100);
};
};
SOURCE(34964, 33)
{
word limit534;
var←c56716 = (* (ptr) seq←v14692 );
if (XR←ExtractField(var←c56716, 32 + (word) (
limit534 = (* (ptr) var←c56716 ),
BCK(i←v26100, limit534)
), 1)) {
SOURCE(34988, 9)
return(i←v26100);
};
};
};
if ((i←v26100 >= noName←c56652)) {
goto lab←L100284;
};
i←v26100 = (i←v26100 + 1);
goto lab←L100287;
lab←L100284: ;
};
SOURCE(35008, 51)
{
word limit535;
var←c56748 = (hiSegment←v26056 + 1);
var←c56780 = (* (( (ptr) seq←v14692)+1) );
if (XR←ExtractField(var←c56780, 32 + (word) (
limit535 = (* (ptr) var←c56780 ),
BCK(var←c56748, limit535)
), 1)) {
SOURCE(35040, 19)
return((hiSegment←v26056 + 1));
};
};
SOURCE(35061, 57)
{
word var←c0889;
var←c0889 = (* (( (ptr) gf←c60620)+21) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c60620)+4)/* Problem←v3952 */ ), 0, (word) &var←c0889));
};
};
}
else {
SOURCE(35129, 312)
{
register word i←v26144 = 0;
register word noName←c56812;
noName←c56812 = hiSegment←v26056;
if ((i←v26144 > noName←c56812)) {
goto lab←L100288;
};
lab←L100292: ;
{
word var←c56844;
word var←c56876;
word var←c56908;
word var←c56940;
word var←c56972;
SOURCE(35161, 91)
{
word tc536;
word limit537;
word limit538;
var←c56844 = IOP2( % , (int)((i←v26144 - 1) + (* (ptr) (* (ptr) seq←v14692 ) )), (int)(* (ptr) (* (ptr) seq←v14692 ) ))
;
var←c56876 = (* (ptr) seq←v14692 );
if ( ! XR←ExtractField(var←c56876, 32 + (word) (
limit537 = (* (ptr) var←c56876 ),
BCK(var←c56844, limit537)
), 1)) {
var←c56908 = (* (( (ptr) seq←v14692)+1) );
tc536 = (word) XR←ExtractField(var←c56908, 32 + (word) (
limit538 = (* (ptr) var←c56908 ),
BCK(i←v26144, limit538)
), 1);
}
else {
tc536 = (word) 0;
};
if (tc536) {
SOURCE(35252, 15)
goto lab←L100291;
};
};
SOURCE(35269, 46)
{
word tc539;
word limit540;
word limit541;
var←c56940 = (* (( (ptr) seq←v14692)+1) );
if ( ! XR←ExtractField(var←c56940, 32 + (word) (
limit540 = (* (ptr) var←c56940 ),
BCK(i←v26144, limit540)
), 1)) {
var←c56972 = (* (ptr) seq←v14692 );
tc539 = (word) XR←ExtractField(var←c56972, 32 + (word) (
limit541 = (* (ptr) var←c56972 ),
BCK(i←v26144, limit541)
), 1);
}
else {
tc539 = (word) 0;
};
if (tc539) {
SOURCE(35315, 15)
goto lab←L100291;
};
};
};
if ((i←v26144 >= noName←c56812)) {
goto lab←L100288;
};
i←v26144 = (i←v26144 + 1);
goto lab←L100292;
/* c2c skipped dead code */
lab←L100291: ;
SOURCE(35353, 17)
transitionNum←v14736 = i←v26144;
goto lab←L100289;
lab←L100288: ;
SOURCE(35384, 57)
{
word var←c0897;
var←c0897 = (* (( (ptr) gf←c60620)+21) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c60620)+4)/* Problem←v3952 */ ), 0, (word) &var←c0897));
};
lab←L100289: ;
};
};
SOURCE(34687, 754)
return(transitionNum←v14736);
}
static word AppendToList←P3900(list1←v14796, list2←v14824)
word list1←v14796;
word list2←v14824;
{
register ptr gf←c60652 = (ptr) &globalframe;
word result←v14952;
word pos←v26188 = 0;
word newCell←v26216 = 0;
/* AppendToList: */
SOURCE(35459, 381)
SOURCE(35459, 381)
result←v14952 = 0;
SOURCE(35604, 33)
if ((list1←v14796 == 0)) {
SOURCE(35624, 13)
return(list2←v14824);
};
SOURCE(35639, 31)
{
word var←c57004;
var←c57004 = XR←NewObject(8, (* (( (ptr) gf←c60652)+18) ));
(* (ptr) var←c57004 ) = (* (ptr) list1←v14796 );
result←v14952 = var←c57004;
};
SOURCE(35672, 12)
pos←v26188 = result←v14952;
SOURCE(35686, 126)
{
register word l←v26428;
l←v26428 = (* (( (ptr) list1←v14796)+1) );
lab←L100296: ;
if ((l←v26428 != 0)) {
}
else {
goto lab←L100293;
};
SOURCE(35749, 28)
{
word var←c57036;
var←c57036 = XR←NewObject(8, (* (( (ptr) gf←c60652)+18) ));
(* (ptr) var←c57036 ) = (* (ptr) l←v26428 );
newCell←v26216 = var←c57036;
};
SOURCE(35779, 18)
(* (( (ptr) pos←v26188)+1) ) = newCell←v26216;
SOURCE(35799, 13)
pos←v26188 = newCell←v26216;
l←v26428 = (* (( (ptr) l←v26428)+1) );
goto lab←L100296;
lab←L100293: ;
};
SOURCE(35823, 17)
(* (( (ptr) pos←v26188)+1) ) = list2←v14824;
SOURCE(35459, 381)
return(result←v14952);
}
static void ConsiderJoint←P3960(formal←c0924, in←v15096, list←v15124, seq←v15152, thisSeq←v15180, runCount←v15208, i←v15236)
word formal←c0924;
word in←v15096;
word list←v15124;
word seq←v15152;
word thisSeq←v15180;
word runCount←v15208;
word i←v15236;
{
register ptr gf←c60684 = (ptr) &globalframe;
word newIn←v15364;
word newList←v15392;
word newThisSeq←v15420;
word newCount←v15448;
/* ConsiderJoint: */
SOURCE(35846, 735)
SOURCE(35846, 735)
newList←v15392 = 0;
SOURCE(35846, 735)
newThisSeq←v15420 = 0;
{
word var←c57068;
word var←c57100;
word var←c57196;
word var←c57260;
SOURCE(36053, 10)
newIn←v15364 = in←v15096;
SOURCE(36065, 14)
newList←v15392 = list←v15124;
SOURCE(36081, 20)
newThisSeq←v15420 = thisSeq←v15180;
SOURCE(36103, 19)
newCount←v15448 = runCount←v15208;
{
word tc542;
word limit543;
var←c57068 = (* (( (ptr) seq←v15152)+1) );
if ( ! XR←ExtractField(var←c57068, 32 + (word) (
limit543 = (* (ptr) var←c57068 ),
BCK(i←v15236, limit543)
), 1)) {
tc542 = (word) (0 == in←v15096);
}
else {
tc542 = (word) 0;
};
if (tc542) {
}
else {
{
word tc544;
word limit545;
var←c57100 = (* (( (ptr) seq←v15152)+1) );
if ( ! XR←ExtractField(var←c57100, 32 + (word) (
limit545 = (* (ptr) var←c57100 ),
BCK(i←v15236, limit545)
), 1)) {
tc544 = (word) (0 != in←v15096);
}
else {
tc544 = (word) 0;
};
if (tc544) {
SOURCE(36207, 13)
newIn←v15364 = 0;
SOURCE(36222, 48)
{
word var←c57132;
{
word var←c57164;
var←c57164 = XR←NewObject(8, (* (( (ptr) gf←c60684)+18) ));
(* (ptr) var←c57164 ) = thisSeq←v15180;
var←c57132 = var←c57164;
};
newList←v15392 = (word) AppendToList←P3900(list←v15124, var←c57132);
};
SOURCE(36272, 16)
newThisSeq←v15420 = 0;
}
else {
{
word tc546;
word limit547;
var←c57196 = (* (( (ptr) seq←v15152)+1) );
if (XR←ExtractField(var←c57196, 32 + (word) (
limit547 = (* (ptr) var←c57196 ),
BCK(i←v15236, limit547)
), 1)) {
tc546 = (word) (0 == in←v15096);
}
else {
tc546 = (word) 0;
};
if (tc546) {
SOURCE(36321, 12)
newIn←v15364 = 1;
SOURCE(36335, 32)
newThisSeq←v15420 = (word) CreateEmptySeq←P600(seq←v15152);
SOURCE(36369, 23)
newCount←v15448 = (newCount←v15448 + 1);
SOURCE(36394, 27)
{
word var←c57228;
var←c57228 = (* (( (ptr) newThisSeq←v15420)+1) );
{
/*1*/ word limit548;
/*1*/ word xs549;
/*1*/ xs549 = (word) (
/*1*/ limit548 = (* (ptr) var←c57228 ),
/*1*/ BCK(i←v15236, limit548)
/*1*/ );
/*1*/ (* (bPt) ((( (bPt) var←c57228)+4) + ((word) xs549 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs549 & 7)+1));
/*1*/ };
};
SOURCE(36423, 49)
(* (( (ptr) newThisSeq←v15420)+4) ) = ((* (( (ptr) newThisSeq←v15420)+4) ) + 1);
}
else {
{
word tc550;
word limit551;
var←c57260 = (* (( (ptr) seq←v15152)+1) );
if (XR←ExtractField(var←c57260, 32 + (word) (
/*1*/ limit551 = (* (ptr) var←c57260 ),
/*1*/ BCK(i←v15236, limit551)
/*1*/ ), 1)) {
/*1*/ tc550 = (word) (0 != in←v15096);
/*1*/ }
else {
/*1*/ tc550 = (word) 0;
/*1*/ };
if (tc550) {
SOURCE(36503, 27)
/*1*/ {
/*1*/ word var←c57292;
/*1*/ var←c57292 = (* (( (ptr) newThisSeq←v15420)+1) );
/*1*/ {
/*1*/ word limit552;
/*1*/ word xs553;
/*1*/ xs553 = (word) (
/*1*/ limit552 = (* (ptr) var←c57292 ),
/*1*/ BCK(i←v15236, limit552)
/*1*/ );
/*1*/ (* (bPt) ((( (bPt) var←c57292)+4) + ((word) xs553 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs553 & 7)+1));
/*1*/ };
/*1*/ };
SOURCE(36532, 49)
/*1*/ (* (( (ptr) newThisSeq←v15420)+4) ) = ((* (( (ptr) newThisSeq←v15420)+4) ) + 1);
/*1*/ }
else {
SOURCE(36597, 5)
/*1*/ (void) XR←RaiseUnnamedError();
/*1*/ };
};
};
};
};
};
};
};
};
/* removed tail goto */
(* (ptr) formal←c0924 ) = newIn←v15364;
(* (( (ptr) formal←c0924)+1) ) = newList←v15392;
(* (( (ptr) formal←c0924)+2) ) = newThisSeq←v15420;
(* (( (ptr) formal←c0924)+3) ) = newCount←v15448;
return;
}
static void ConsiderSegment←P4020(formal←c0943, in←v15592, list←v15620, seq←v15648, thisSeq←v15676, runCount←v15704, i←v15732)
word formal←c0943;
word in←v15592;
word list←v15620;
word seq←v15648;
word thisSeq←v15676;
word runCount←v15704;
word i←v15732;
{
register ptr gf←c60716 = (ptr) &globalframe;
word newIn←v15860;
word newList←v15888;
word newThisSeq←v15916;
word newCount←v15944;
/* ConsiderSegment: */
SOURCE(36608, 809)
SOURCE(36608, 809)
newList←v15888 = 0;
SOURCE(36608, 809)
newThisSeq←v15916 = 0;
{
word var←c57324;
word var←c57356;
word var←c57452;
word var←c57516;
SOURCE(36817, 10)
newIn←v15860 = in←v15592;
SOURCE(36829, 14)
newList←v15888 = list←v15620;
SOURCE(36845, 20)
newThisSeq←v15916 = thisSeq←v15676;
SOURCE(36867, 19)
newCount←v15944 = runCount←v15704;
{
word tc554;
word limit555;
var←c57324 = (* (ptr) seq←v15648 );
if ( ! XR←ExtractField(var←c57324, 32 + (word) (
limit555 = (* (ptr) var←c57324 ),
BCK(i←v15732, limit555)
), 1)) {
tc554 = (word) (0 == in←v15592);
}
else {
tc554 = (word) 0;
};
if (tc554) {
}
else {
{
word tc556;
word limit557;
var←c57356 = (* (ptr) seq←v15648 );
if ( ! XR←ExtractField(var←c57356, 32 + (word) (
limit557 = (* (ptr) var←c57356 ),
BCK(i←v15732, limit557)
), 1)) {
tc556 = (word) (0 != in←v15592);
}
else {
tc556 = (word) 0;
};
if (tc556) {
SOURCE(36975, 13)
newIn←v15860 = 0;
SOURCE(36990, 48)
{
word var←c57388;
{
word var←c57420;
var←c57420 = XR←NewObject(8, (* (( (ptr) gf←c60716)+18) ));
(* (ptr) var←c57420 ) = thisSeq←v15676;
var←c57388 = var←c57420;
};
newList←v15888 = (word) AppendToList←P3900(list←v15620, var←c57388);
};
SOURCE(37040, 16)
newThisSeq←v15916 = 0;
}
else {
{
word tc558;
word limit559;
var←c57452 = (* (ptr) seq←v15648 );
if (XR←ExtractField(var←c57452, 32 + (word) (
limit559 = (* (ptr) var←c57452 ),
BCK(i←v15732, limit559)
), 1)) {
tc558 = (word) (0 == in←v15592);
}
else {
tc558 = (word) 0;
};
if (tc558) {
SOURCE(37091, 12)
newIn←v15860 = 1;
SOURCE(37105, 32)
newThisSeq←v15916 = (word) CreateEmptySeq←P600(seq←v15648);
SOURCE(37139, 23)
newCount←v15944 = (newCount←v15944 + 1);
SOURCE(37164, 29)
{
word var←c57484;
var←c57484 = (* (ptr) newThisSeq←v15916 );
{
/*1*/ word limit560;
/*1*/ word xs561;
/*1*/ xs561 = (word) (
/*1*/ limit560 = (* (ptr) var←c57484 ),
/*1*/ BCK(i←v15732, limit560)
/*1*/ );
/*1*/ (* (bPt) ((( (bPt) var←c57484)+4) + ((word) xs561 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs561 & 7)+1));
/*1*/ };
};
SOURCE(37195, 45)
(* (( (ptr) newThisSeq←v15916)+3) ) = ((* (( (ptr) newThisSeq←v15916)+3) ) + 1);
SOURCE(37242, 32)
(void) ControlPointsTrue←P4080(newThisSeq←v15916, i←v15732);
}
else {
{
word tc562;
word limit563;
var←c57516 = (* (ptr) seq←v15648 );
if (XR←ExtractField(var←c57516, 32 + (word) (
/*1*/ limit563 = (* (ptr) var←c57516 ),
/*1*/ BCK(i←v15732, limit563)
/*1*/ ), 1)) {
/*1*/ tc562 = (word) (0 != in←v15592);
/*1*/ }
else {
/*1*/ tc562 = (word) 0;
/*1*/ };
if (tc562) {
SOURCE(37307, 29)
/*1*/ {
/*1*/ word var←c57548;
/*1*/ var←c57548 = (* (ptr) newThisSeq←v15916 );
/*1*/ {
/*1*/ word limit564;
/*1*/ word xs565;
/*1*/ xs565 = (word) (
/*1*/ limit564 = (* (ptr) var←c57548 ),
/*1*/ BCK(i←v15732, limit564)
/*1*/ );
/*1*/ (* (bPt) ((( (bPt) var←c57548)+4) + ((word) xs565 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs565 & 7)+1));
/*1*/ };
/*1*/ };
SOURCE(37338, 45)
/*1*/ (* (( (ptr) newThisSeq←v15916)+3) ) = ((* (( (ptr) newThisSeq←v15916)+3) ) + 1);
SOURCE(37385, 32)
/*1*/ (void) ControlPointsTrue←P4080(newThisSeq←v15916, i←v15732);
/*1*/ }
else {
SOURCE(37433, 5)
/*1*/ (void) XR←RaiseUnnamedError();
/*1*/ };
};
};
};
};
};
};
};
};
/* removed tail goto */
(* (ptr) formal←c0943 ) = newIn←v15860;
(* (( (ptr) formal←c0943)+1) ) = newList←v15888;
(* (( (ptr) formal←c0943)+2) ) = newThisSeq←v15916;
(* (( (ptr) formal←c0943)+3) ) = newCount←v15944;
return;
}
static void ControlPointsTrue←P4080(seq←v16088, segNum←v16116)
word seq←v16088;
word segNum←v16116;
{
word cpCount←v26556;
word var←c57580;
/* ControlPointsTrue: */
SOURCE(37444, 263)
SOURCE(37502, 44)
{
word limit566;
var←c57580 = (* (( (ptr) seq←v16088)+2) );
cpCount←v26556 = (* (ptr) (* ((( (ptr) var←c57580)+1)+(
limit566 = (* (ptr) var←c57580 ),
BCK(segNum←v16116, limit566)
)) ) );
};
SOURCE(37548, 159)
{
register word j←v26600 = 0;
register word noName←c57612;
word var←c57644;
word var←c57676;
noName←c57612 = cpCount←v26556;
if ((j←v26600 >= noName←c57612)) {
goto lab←L100299;
};
lab←L100302: ;
SOURCE(37578, 129)
{
word limit568;
{
word limit567;
var←c57644 = (* (( (ptr) seq←v16088)+2) );
var←c57676 = (* ((( (ptr) var←c57644)+1)+(
limit567 = (* (ptr) var←c57644 ),
BCK(segNum←v16116, limit567)
)) );
};
if ( ! XR←ExtractField(var←c57676, 32 + (word) (
limit568 = (* (ptr) var←c57676 ),
BCK(j←v26600, limit568)
), 1)) {
SOURCE(37621, 35)
{
word var←c57740;
{
word var←c57708;
var←c57708 = (* (( (ptr) seq←v16088)+2) );
{
word limit569;
var←c57740 = (* ((( (ptr) var←c57708)+1)+(
limit569 = (* (ptr) var←c57708 ),
BCK(segNum←v16116, limit569)
)) );
};
};
{
word limit570;
word xs571;
xs571 = (word) (
limit570 = (* (ptr) var←c57740 ),
BCK(j←v26600, limit570)
);
(* (bPt) ((( (bPt) var←c57740)+4) + ((word) xs571 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs571 & 7)+1));
};
};
SOURCE(37658, 49)
(* (( (ptr) seq←v16088)+5) ) = ((* (( (ptr) seq←v16088)+5) ) + 1);
};
};
j←v26600 = (j←v26600 + 1);
if ((j←v26600 < noName←c57612)) {
goto lab←L100302;
};
lab←L100299: ;
};
}
static word NATsInInterval←P4140(start←v16288, length←v16316, mod←v16344)
word start←v16288;
word length←v16316;
word mod←v16344;
{
register ptr gf←c60748 = (ptr) &globalframe;
word natGen←v16388;
/* NATsInInterval: */
SOURCE(37835, 152)
SOURCE(37835, 152)
natGen←v16388 = 0;
SOURCE(37917, 70)
{
word var←c57772;
var←c57772 = XR←NewObject(12, (* (( (ptr) gf←c60748)+17) ));
(* (ptr) var←c57772 ) = length←v16316;
(* (( (ptr) var←c57772)+1) ) = start←v16288;
(* (( (ptr) var←c57772)+2) ) = mod←v16344;
natGen←v16388 = var←c57772;
};
SOURCE(37835, 152)
return(natGen←v16388);
}
static word NextNAT←P4200(natGen←v16448)
word natGen←v16448;
{
word nextNAT←v16492;
/* NextNAT: */
SOURCE(37993, 200)
SOURCE(38057, 34)
if (((* (ptr) natGen←v16448 ) == 0)) {
SOURCE(38081, 10)
return( (word) -1);
};
SOURCE(38093, 29)
{
word idx572;
(* (ptr) natGen←v16448 ) = (
idx572 = (word) ((* (ptr) natGen←v16448 ) - 1),
SGNCK(idx572)
);
};
SOURCE(38124, 21)
nextNAT←v16492 = (* (( (ptr) natGen←v16448)+1) );
SOURCE(38147, 46)
(* (( (ptr) natGen←v16448)+1) ) = (((* (( (ptr) natGen←v16448)+1) ) + 1) % (* (( (ptr) natGen←v16448)+2) ));
SOURCE(37993, 200)
return(nextNAT←v16492);
}
static word SegmentsInTraj←P4260(traj←v16552)
word traj←v16552;
{
register ptr gf←c60780 = (ptr) &globalframe;
word segGen←v16596;
/* SegmentsInTraj: */
SOURCE(38199, 195)
SOURCE(38199, 195)
segGen←v16596 = 0;
SOURCE(38284, 110)
{
word var←c57804;
var←c57804 = XR←NewObject(32, (* (( (ptr) gf←c60780)+16) ));
(* (ptr) var←c57804 ) = traj←v16552;
(* (( (ptr) var←c57804)+1) ) = (* (( (ptr) traj←v16552)+1) );
(* (( (ptr) var←c57804)+5) ) = 1;
segGen←v16596 = var←c57804;
};
SOURCE(38199, 195)
return(segGen←v16596);
}
static word WalkSegmentsInTraj←P4320(traj←v16656, walkProc←v16684)
word traj←v16656;
word walkProc←v16684;
{
register ptr gf←c60812 = (ptr) &globalframe;
word aborted←v16728;
word seg←v26644 = 0;
/* WalkSegmentsInTraj: */
SOURCE(38400, 271)
SOURCE(38400, 271)
aborted←v16728 = 0;
SOURCE(38526, 145)
{
register word i←v26688 = 0;
register word noName←c57836;
{
word pd573;
pd573 = (* (( (ptr) (* (( (ptr) gf←c60812)+204)/* var←c43500 */ ))+38) );
noName←c57836 = (word) ( *( (fPt) ((* (ptr) pd573 ))))(traj←v16656, pd573);
};
if ((i←v26688 > noName←c57836)) {
goto lab←L100303;
};
lab←L100306: ;
SOURCE(38575, 38)
{
word pd574;
pd574 = (* (( (ptr) (* (( (ptr) gf←c60812)+204)/* var←c43500 */ ))+30) );
seg←v26644 = (word) ( *( (fPt) ((* (ptr) pd574 ))))(traj←v16656, i←v26688, pd574);
};
SOURCE(38615, 32)
aborted←v16728 = (word) ( *( (fPt) ((* (ptr) walkProc←v16684 ))))(traj←v16656, seg←v26644, i←v26688, walkProc←v16684);
SOURCE(38649, 22)
if ((0 != aborted←v16728)) {
SOURCE(38665, 6)
return(aborted←v16728);
};
if ((i←v26688 >= noName←c57836)) {
goto lab←L100303;
};
i←v26688 = (i←v26688 + 1);
goto lab←L100306;
lab←L100303: ;
};
SOURCE(38400, 271)
return(aborted←v16728);
}
static word WalkSegmentsInSequence←P4380(traj←v16788, seq←v16816, walkProc←v16844)
word traj←v16788;
word seq←v16816;
word walkProc←v16844;
{
register ptr gf←c60844 = (ptr) &globalframe;
word aborted←v16888;
word seg←v26732 = 0;
word done←v26760 = 0;
word toGo←v26788;
word segCount←v26816;
word index←v26844 = 0;
word touched←v26872 = 0;
/* WalkSegmentsInSequence: */
SOURCE(38685, 602)
SOURCE(38685, 602)
aborted←v16888 = 0;
SOURCE(38851, 49)
toGo←v26788 = ( (seq←v16816 == 0) ? 0 : (* (( (ptr) seq←v16816)+3) ) ) ;
SOURCE(38902, 29)
segCount←v26816 = (* (( (ptr) traj←v16788)+1) );
SOURCE(38958, 329)
{
register word i←v26916 = 1;
register word noName←c57868;
noName←c57868 = toGo←v26788;
if ((i←v26916 > noName←c57868)) {
goto lab←L100307;
};
lab←L100310: ;
{
word var←c57900;
SOURCE(38985, 153)
lab←L100313: ;
{
word limit575;
var←c57900 = (* (ptr) seq←v16816 );
if ( ! XR←ExtractField(var←c57900, 32 + (word) (
limit575 = (* (ptr) var←c57900 ),
BCK(index←v26844, limit575)
), 1)) {
}
else {
goto lab←L100311;
};
};
SOURCE(39014, 32)
index←v26844 = ((index←v26844 + 1) % segCount←v26816);
SOURCE(39048, 21)
touched←v26872 = (touched←v26872 + 1);
SOURCE(39071, 67)
if ((touched←v26872 >= segCount←v26816)) {
SOURCE(39099, 39)
{
word var←c0983;
var←c0983 = (* (( (ptr) gf←c60844)+23) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c60844)+4)/* Problem←v3952 */ ), 0, (word) &var←c0983));
};
};
goto lab←L100313;
lab←L100311: ;
SOURCE(39149, 42)
{
word pd576;
pd576 = (* (( (ptr) (* (( (ptr) gf←c60844)+204)/* var←c43500 */ ))+30) );
seg←v26732 = (word) ( *( (fPt) ((* (ptr) pd576 ))))(traj←v16788, index←v26844, pd576);
};
SOURCE(39193, 36)
aborted←v16888 = (word) ( *( (fPt) ((* (ptr) walkProc←v16844 ))))(traj←v16788, seg←v26732, index←v26844, walkProc←v16844)
;
SOURCE(39231, 22)
if ((0 != aborted←v16888)) {
SOURCE(39247, 6)
return(aborted←v16888);
};
SOURCE(39255, 32)
index←v26844 = ((index←v26844 + 1) % segCount←v26816);
};
if ((i←v26916 >= noName←c57868)) {
goto lab←L100307;
};
i←v26916 = (i←v26916 + 1);
goto lab←L100310;
lab←L100307: ;
};
SOURCE(38685, 602)
return(aborted←v16888);
}
static word CountSegmentsInSequence←P4440(traj←v16948, seq←v16976)
word traj←v16948;
word seq←v16976;
{
W7 var←c60876;
/* declaration of count←v17020 skipped */
/* declaration of var←c57932 skipped */
/* CountSegmentsInSequence: */
SOURCE(39302, 265)
{
word tmpAddr577;
tmpAddr577 = (word) (( (ptr) &var←c60876)+5)/* var←c57932 */ ;
(* (ptr) tmpAddr577 ) = ( ((word) (fPt) AddEmUp←P9852) );
(* (( (ptr) tmpAddr577) + 1) ) = 1;
};
SOURCE(39509, 9)
var←c60876.f4/* count←v17020 */ = 0;
SOURCE(39520, 47)
{
word var←c57964;
var←c57964 = (word) WalkSegmentsInSequence←P4380(traj←v16948, seq←v16976, (word) (( (bPt) &var←c60876)+20)/* var←c57932 */ )
;
};
SOURCE(39302, 265)
return(var←c60876.f4/* count←v17020 */ );
}
static word AddEmUp←P9852(traj←v27036, seg←v27064, index←v27092, formal←c60908)
word traj←v27036;
word seg←v27064;
word index←v27092;
word formal←c60908;
{
word done←v27136;
formal←c60908 = (formal←c60908 - 20);
/* AddEmUp: */
SOURCE(39397, 107)
SOURCE(39397, 107)
done←v27136 = 0;
SOURCE(39487, 17)
(* (( (ptr) formal←c60908)+4) ) = ((* (( (ptr) formal←c60908)+4) ) + 1);
SOURCE(39397, 107)
return(done←v27136);
}
static void NextSegmentAndIndex←P4500(formal←c0999, segGen←v17080)
word formal←c0999;
word segGen←v17080;
{
register ptr gf←c60940 = (ptr) &globalframe;
W2 next←v17124;
word segCount←v27164;
word seq←v27192;
/* NextSegmentAndIndex: */
SOURCE(39573, 733)
SOURCE(39573, 733)
next←v17124.f0 = 0;
next←v17124.f1 = 0;
SOURCE(39680, 27)
seq←v27192 = (* (( (ptr) segGen←v17080)+4) );
SOURCE(39709, 42)
if (((* (( (ptr) segGen←v17080)+1) ) == 0)) {
SOURCE(39733, 18)
next←v17124.f0 = 0;
next←v17124.f1 = 999;
goto lab←L100314;
};
SOURCE(39753, 48)
{
word pd578;
pd578 = (* (( (ptr) (* (( (ptr) gf←c60940)+204)/* var←c43500 */ ))+38) );
segCount←v27164 = ((word) ( *( (fPt) ((* (ptr) pd578 ))))((* (ptr) (segGen←v17080) ), pd578) + 1);
};
SOURCE(39803, 285)
if ((0 == (* (( (ptr) segGen←v17080)+5) ))) {
SOURCE(39893, 195)
{
word var←c58028;
lab←L100317: ;
{
word idx579;
word limit580;
var←c58028 = (* (ptr) seq←v27192 );
if ( ! XR←ExtractField(var←c58028, 32 + (word) (
idx579 = (* (( (ptr) segGen←v17080)+2) ),
limit580 = (* (ptr) var←c58028 ),
BCK(idx579, limit580)
), 1)) {
}
else {
goto lab←L100315;
};
};
SOURCE(39929, 46)
(* (( (ptr) segGen←v17080)+2) ) = (((* (( (ptr) segGen←v17080)+2) ) + 1) % segCount←v27164);
SOURCE(39977, 35)
(* (( (ptr) segGen←v17080)+3) ) = ((* (( (ptr) segGen←v17080)+3) ) + 1);
SOURCE(40014, 74)
if (((* (( (ptr) segGen←v17080)+3) ) >= segCount←v27164)) {
SOURCE(40049, 39)
{
word var←c0998;
var←c0998 = (* (( (ptr) gf←c60940)+23) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c60940)+4)/* Problem←v3952 */ ), 0, (word) &var←c0998));
};
};
goto lab←L100317;
lab←L100315: ;
};
};
SOURCE(40102, 61)
{
word pd581;
pd581 = (* (( (ptr) (* (( (ptr) gf←c60940)+204)/* var←c43500 */ ))+30) );
next←v17124.f0 = (word) ( *( (fPt) ((* (ptr) pd581 ))))((* (ptr) segGen←v17080 ), (* (( (ptr) segGen←v17080)+2) ), pd581)
;
};
SOURCE(40165, 25)
next←v17124.f1 = (* (( (ptr) segGen←v17080)+2) );
SOURCE(40192, 46)
(* (( (ptr) segGen←v17080)+2) ) = (((* (( (ptr) segGen←v17080)+2) ) + 1) % segCount←v27164);
SOURCE(40240, 35)
(* (( (ptr) segGen←v17080)+3) ) = ((* (( (ptr) segGen←v17080)+3) ) + 1);
SOURCE(40277, 29)
{
word idx582;
(* (( (ptr) segGen←v17080)+1) ) = (
idx582 = (word) ((* (( (ptr) segGen←v17080)+1) ) - 1),
SGNCK(idx582)
);
};
/* removed tail goto */
lab←L100314: ;
(* (W2Pt) formal←c0999 ) = next←v17124;
return;
}
static word SegmentsInSequence←P4560(traj←v17184, seq←v17212)
word traj←v17184;
word seq←v17212;
{
register ptr gf←c60972 = (ptr) &globalframe;
word segGen←v17256;
/* SegmentsInSequence: */
SOURCE(40312, 389)
SOURCE(40312, 389)
segGen←v17256 = 0;
SOURCE(40416, 63)
if ((0 != (word) IsComplete←P2280(seq←v17212))) {
SOURCE(40442, 29)
segGen←v17256 = (word) SegmentsInTraj←P4260(traj←v17184);
SOURCE(40473, 6)
return(segGen←v17256);
};
SOURCE(40484, 217)
{
word var←c58060;
var←c58060 = XR←NewObject(32, (* (( (ptr) gf←c60972)+16) ));
if ((seq←v17212 == 0)) {
(* (ptr) var←c58060 ) = 0;
}
else {
(* (ptr) var←c58060 ) = traj←v17184;
};
if ((seq←v17212 == 0)) {
(* (( (ptr) var←c58060)+1) ) = 0;
}
else {
(* (( (ptr) var←c58060)+1) ) = (* (( (ptr) seq←v17212)+3) );
};
(* (( (ptr) var←c58060)+4) ) = seq←v17212;
segGen←v17256 = var←c58060;
};
SOURCE(40312, 389)
return(segGen←v17256);
}
static word OrderedSegmentsInSequence←P4620(traj←v17316, seq←v17344)
word traj←v17316;
word seq←v17344;
{
register ptr gf←c61004 = (ptr) &globalframe;
word segGen←v17388;
/* OrderedSegmentsInSequence: */
SOURCE(40707, 390)
SOURCE(40707, 390)
segGen←v17388 = 0;
SOURCE(40818, 52)
if ((0 != (word) IsComplete←P2280(seq←v17344))) {
SOURCE(40842, 28)
return((word) SegmentsInTraj←P4260(traj←v17316));
};
SOURCE(40872, 225)
{
word var←c58124;
word var←c58156;
if (((* (( (ptr) seq←v17344)+3) ) == 0)) {
var←c58124 = 0;
}
else {
var←c58124 = (word) FirstSegment←P2820(seq←v17344);
};
var←c58156 = XR←NewObject(32, (* (( (ptr) gf←c61004)+16) ));
(* (ptr) var←c58156 ) = traj←v17316;
(* (( (ptr) var←c58156)+1) ) = (* (( (ptr) seq←v17344)+3) );
(* (( (ptr) var←c58156)+2) ) = var←c58124;
(* (( (ptr) var←c58156)+4) ) = seq←v17344;
segGen←v17388 = var←c58156;
};
SOURCE(40707, 390)
return(segGen←v17388);
}
static word NextSegment←P4680(segGen←v17448)
word segGen←v17448;
{
register ptr gf←c61036 = (ptr) &globalframe;
word next←v17492;
word segCount←v27236;
word seq←v27264;
/* NextSegment: */
SOURCE(41103, 683)
SOURCE(41103, 683)
next←v17492 = 0;
SOURCE(41198, 27)
seq←v27264 = (* (( (ptr) segGen←v17448)+4) );
SOURCE(41227, 35)
if (((* (( (ptr) segGen←v17448)+1) ) == 0)) {
SOURCE(41251, 11)
return(0);
};
SOURCE(41264, 48)
{
word pd583;
pd583 = (* (( (ptr) (* (( (ptr) gf←c61036)+204)/* var←c43500 */ ))+38) );
segCount←v27236 = ((word) ( *( (fPt) ((* (ptr) pd583 ))))((* (ptr) (segGen←v17448) ), pd583) + 1);
};
SOURCE(41314, 285)
if ((0 == (* (( (ptr) segGen←v17448)+5) ))) {
SOURCE(41404, 195)
{
word var←c58188;
lab←L100320: ;
{
word idx584;
word limit585;
var←c58188 = (* (ptr) seq←v27264 );
if ( ! XR←ExtractField(var←c58188, 32 + (word) (
idx584 = (* (( (ptr) segGen←v17448)+2) ),
limit585 = (* (ptr) var←c58188 ),
BCK(idx584, limit585)
), 1)) {
}
else {
goto lab←L100318;
};
};
SOURCE(41440, 46)
(* (( (ptr) segGen←v17448)+2) ) = (((* (( (ptr) segGen←v17448)+2) ) + 1) % segCount←v27236);
SOURCE(41488, 35)
(* (( (ptr) segGen←v17448)+3) ) = ((* (( (ptr) segGen←v17448)+3) ) + 1);
SOURCE(41525, 74)
if (((* (( (ptr) segGen←v17448)+3) ) >= segCount←v27236)) {
SOURCE(41560, 39)
{
word var←c01014;
var←c01014 = (* (( (ptr) gf←c61036)+23) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c61036)+4)/* Problem←v3952 */ ), 0, (word) &var←c01014));
};
};
goto lab←L100320;
lab←L100318: ;
};
};
SOURCE(41613, 57)
{
word pd586;
pd586 = (* (( (ptr) (* (( (ptr) gf←c61036)+204)/* var←c43500 */ ))+30) );
next←v17492 = (word) ( *( (fPt) ((* (ptr) pd586 ))))((* (ptr) segGen←v17448 ), (* (( (ptr) segGen←v17448)+2) ), pd586);
};
SOURCE(41672, 46)
(* (( (ptr) segGen←v17448)+2) ) = (((* (( (ptr) segGen←v17448)+2) ) + 1) % segCount←v27236);
SOURCE(41720, 35)
(* (( (ptr) segGen←v17448)+3) ) = ((* (( (ptr) segGen←v17448)+3) ) + 1);
SOURCE(41757, 29)
{
word idx587;
(* (( (ptr) segGen←v17448)+1) ) = (
idx587 = (word) ((* (( (ptr) segGen←v17448)+1) ) - 1),
SGNCK(idx587)
);
};
SOURCE(41103, 683)
return(next←v17492);
}
static word ControlPointsInSequence←P4740(traj←v17552, seq←v17580)
word traj←v17552;
word seq←v17580;
{
register ptr gf←c61068 = (ptr) &globalframe;
word cpGen←v17624;
/* ControlPointsInSequence: */
SOURCE(41792, 254)
SOURCE(41792, 254)
cpGen←v17624 = 0;
SOURCE(41905, 141)
{
word var←c58220;
var←c58220 = XR←NewObject(20, (* (( (ptr) gf←c61068)+10) ));
(* (ptr) var←c58220 ) = traj←v17552;
(* (( (ptr) var←c58220)+1) ) = seq←v17580;
if ((seq←v17580 == 0)) {
(* (( (ptr) var←c58220)+2) ) = 0;
}
else {
(* (( (ptr) var←c58220)+2) ) = (* (( (ptr) seq←v17580)+5) );
};
cpGen←v17624 = var←c58220;
};
SOURCE(41792, 254)
return(cpGen←v17624);
}
static void WalkControlPointsInSequence←P4800(traj←v17684, seq←v17712, walkProc←v17740)
word traj←v17684;
word seq←v17712;
word walkProc←v17740;
{
register ptr gf←c61100 = (ptr) &globalframe;
word hiSegment←v27308;
word seg←v27336 = 0;
word done←v27364 = 0;
/* WalkControlPointsInSequence: */
SOURCE(42052, 398)
SOURCE(42155, 35)
{
word idx588;
hiSegment←v27308 = (
idx588 = (word) ((* (ptr) (* (ptr) seq←v17712 ) ) - 1),
SGNCK(idx588)
);
};
SOURCE(42226, 224)
{
register word i←v27408 = 0;
register word noName←c58252;
noName←c58252 = hiSegment←v27308;
if ((i←v27408 > noName←c58252)) {
goto lab←L100321;
};
lab←L100324: ;
SOURCE(42258, 192)
{
register word j←v27452 = 0;
register word noName←c58316;
word var←c58284;
word var←c58380;
{
word limit589;
var←c58284 = (* (( (ptr) seq←v17712)+2) );
noName←c58316 = (* (ptr) (* ((( (ptr) var←c58284)+1)+(
limit589 = (* (ptr) var←c58284 ),
BCK(i←v27408, limit589)
)) ) );
};
if ((j←v27452 >= noName←c58316)) {
goto lab←L100325;
};
lab←L100328: ;
SOURCE(42305, 145)
{
word limit591;
{
word var←c58348;
var←c58348 = (* (( (ptr) seq←v17712)+2) );
{
word limit590;
var←c58380 = (* ((( (ptr) var←c58348)+1)+(
limit590 = (* (ptr) var←c58348 ),
BCK(i←v27408, limit590)
)) );
};
};
if (XR←ExtractField(var←c58380, 32 + (word) (
limit591 = (* (ptr) var←c58380 ),
BCK(j←v27452, limit591)
), 1)) {
SOURCE(42339, 38)
{
word pd592;
pd592 = (* (( (ptr) (* (( (ptr) gf←c61100)+204)/* var←c43500 */ ))+30) );
seg←v27336 = (word) ( *( (fPt) ((* (ptr) pd592 ))))(traj←v17684, i←v27408, pd592);
};
SOURCE(42379, 50)
{
W2 var←c58412;
{
word pd593;
pd593 = (* (( (ptr) (* (ptr) seg←v27336 ))+16) );
(void) ( *( (fPt) ((* (ptr) pd593 ))))((word) &var←c58412, seg←v27336, j←v27452, pd593);
};
done←v27364 = (word) ( *( (fPt) ((* (ptr) walkProc←v17740 ))))(var←c58412, walkProc←v17740);
};
SOURCE(42431, 19)
if ((0 != done←v27364)) {
SOURCE(42444, 6)
return;
};
};
};
j←v27452 = (j←v27452 + 1);
if ((j←v27452 < noName←c58316)) {
goto lab←L100328;
};
lab←L100325: ;
};
if ((i←v27408 >= noName←c58252)) {
goto lab←L100321;
};
i←v27408 = (i←v27408 + 1);
goto lab←L100324;
lab←L100321: ;
};
}
static void NextControlPoint←P4860(formal←c01049, cpGen←v17800)
word formal←c01049;
word cpGen←v17800;
{
register ptr gf←c61132 = (ptr) &globalframe;
W3 next←v17844;
/* NextControlPoint: */
SOURCE(42477, 757)
SOURCE(42571, 663)
if (((* (( (ptr) cpGen←v17800)+2) ) == 0)) {
SOURCE(42594, 27)
next←v17844.f0 = (* (ptr) &fc520 );
next←v17844.f1 = (* (ptr) &fc520 );
next←v17844.f2 = 1;
goto lab←L100329;
}
else {
SOURCE(42621, 615)
{
word trajParts←v27496;
word seg←v27524 = 0;
word segIndex←v27552;
word cpIndex←v27580;
word hiSegment←v27608;
SOURCE(42623, 32)
trajParts←v27496 = (* (( (ptr) cpGen←v17800)+1) );
SOURCE(42671, 30)
segIndex←v27552 = (* (( (ptr) cpGen←v17800)+3) );
SOURCE(42703, 28)
cpIndex←v27580 = (* (( (ptr) cpGen←v17800)+4) );
SOURCE(42733, 39)
hiSegment←v27608 = (* (ptr) (* (ptr) trajParts←v27496 ) );
SOURCE(42774, 344)
{
register word i←v27652;
register word noName←c58476;
i←v27652 = segIndex←v27552;
noName←c58476 = hiSegment←v27608;
if ((i←v27652 >= noName←c58476)) {
goto lab←L100330;
};
lab←L100334: ;
SOURCE(42813, 124)
{
register word j←v27696;
register word noName←c58540;
word var←c58508;
word var←c58604;
j←v27696 = cpIndex←v27580;
{
word limit594;
var←c58508 = (* (( (ptr) trajParts←v27496)+2) );
noName←c58540 = (* (ptr) (* ((( (ptr) var←c58508)+1)+(
limit594 = (* (ptr) var←c58508 ),
BCK(i←v27652, limit594)
)) ) );
};
if ((j←v27696 >= noName←c58540)) {
goto lab←L100335;
};
lab←L100338: ;
SOURCE(42872, 65)
{
word limit596;
{
word var←c58572;
var←c58572 = (* (( (ptr) trajParts←v27496)+2) );
{
word limit595;
var←c58604 = (* ((( (ptr) var←c58572)+1)+(
/*1*/ limit595 = (* (ptr) var←c58572 ),
/*1*/ BCK(i←v27652, limit595)
/*1*/ )) );
};
};
if (XR←ExtractField(var←c58604, 32 + (word) (
limit596 = (* (ptr) var←c58604 ),
BCK(j←v27696, limit596)
), 1)) {
SOURCE(42912, 12)
segIndex←v27552 = i←v27652;
SOURCE(42926, 11)
cpIndex←v27580 = j←v27696;
SOURCE(42939, 10)
goto lab←L100333;
};
};
j←v27696 = (j←v27696 + 1);
if ((j←v27696 < noName←c58540)) {
goto lab←L100338;
};
lab←L100335: ;
};
SOURCE(42963, 11)
cpIndex←v27580 = 0;
i←v27652 = (i←v27652 + 1);
if ((i←v27652 < noName←c58476)) {
goto lab←L100334;
};
goto lab←L100330;
lab←L100333: ;
SOURCE(42994, 51)
{
word pd597;
pd597 = (* (( (ptr) (* (( (ptr) gf←c61132)+204)/* var←c43500 */ ))+30) );
seg←v27524 = (word) ( *( (fPt) ((* (ptr) pd597 ))))((* (ptr) cpGen←v17800 ), segIndex←v27552, pd597);
};
SOURCE(43047, 52)
{
word pd598;
pd598 = (* (( (ptr) (* (ptr) seg←v27524 ))+16) );
(void) ( *( (fPt) ((* (ptr) pd598 ))))((word) &next←v17844, seg←v27524, cpIndex←v27580, pd598);
};
SOURCE(43101, 17)
next←v17844.f2 = 0;
goto lab←L100331;
lab←L100330: ;
SOURCE(43135, 5)
(void) XR←RaiseUnnamedError();
lab←L100331: ;
};
SOURCE(43151, 25)
(* (( (ptr) cpGen←v17800)+3) ) = segIndex←v27552;
SOURCE(43178, 27)
(* (( (ptr) cpGen←v17800)+4) ) = (cpIndex←v27580 + 1);
SOURCE(43207, 27)
{
word idx599;
(* (( (ptr) cpGen←v17800)+2) ) = (
idx599 = (word) ((* (( (ptr) cpGen←v17800)+2) ) - 1),
SGNCK(idx599)
);
};
};
};
/* removed tail goto */
lab←L100329: ;
(* (W3Pt) formal←c01049 ) = next←v17844;
return;
}
static void NextSegNumAndCPNum←P4920(formal←c01065, cpGen←v17904)
word formal←c01065;
word cpGen←v17904;
{
word segNum←v17948;
word cpNum←v17976;
word done←v18004;
/* NextSegNumAndCPNum: */
SOURCE(43243, 654)
SOURCE(43351, 546)
if (((* (( (ptr) cpGen←v17904)+2) ) == 0)) {
SOURCE(43374, 24)
segNum←v17948 = 0;
cpNum←v17976 = 0;
done←v18004 = 1;
goto lab←L100339;
}
else {
SOURCE(43398, 501)
{
word seq←v27740;
word segIndex←v27768;
word cpIndex←v27796;
word hiSegment←v27824;
SOURCE(43400, 26)
seq←v27740 = (* (( (ptr) cpGen←v17904)+1) );
SOURCE(43428, 30)
segIndex←v27768 = (* (( (ptr) cpGen←v17904)+3) );
SOURCE(43460, 28)
cpIndex←v27796 = (* (( (ptr) cpGen←v17904)+4) );
SOURCE(43490, 33)
hiSegment←v27824 = (* (ptr) (* (ptr) seq←v27740 ) );
SOURCE(43525, 256)
{
register word i←v27868;
register word noName←c58636;
i←v27868 = segIndex←v27768;
noName←c58636 = hiSegment←v27824;
if ((i←v27868 >= noName←c58636)) {
goto lab←L100340;
};
lab←L100344: ;
SOURCE(43564, 112)
{
register word j←v27912;
register word noName←c58700;
word var←c58668;
word var←c58764;
j←v27912 = cpIndex←v27796;
{
word limit600;
var←c58668 = (* (( (ptr) seq←v27740)+2) );
noName←c58700 = (* (ptr) (* ((( (ptr) var←c58668)+1)+(
limit600 = (* (ptr) var←c58668 ),
BCK(i←v27868, limit600)
)) ) );
};
if ((j←v27912 >= noName←c58700)) {
goto lab←L100345;
};
lab←L100348: ;
SOURCE(43617, 59)
{
word limit602;
{
word var←c58732;
var←c58732 = (* (( (ptr) seq←v27740)+2) );
{
word limit601;
var←c58764 = (* ((( (ptr) var←c58732)+1)+(
/*1*/ limit601 = (* (ptr) var←c58732 ),
/*1*/ BCK(i←v27868, limit601)
/*1*/ )) );
};
};
if (XR←ExtractField(var←c58764, 32 + (word) (
limit602 = (* (ptr) var←c58764 ),
BCK(j←v27912, limit602)
), 1)) {
SOURCE(43651, 12)
segIndex←v27768 = i←v27868;
SOURCE(43665, 11)
cpIndex←v27796 = j←v27912;
SOURCE(43678, 10)
goto lab←L100343;
};
};
j←v27912 = (j←v27912 + 1);
if ((j←v27912 < noName←c58700)) {
goto lab←L100348;
};
lab←L100345: ;
};
SOURCE(43702, 11)
cpIndex←v27796 = 0;
i←v27868 = (i←v27868 + 1);
if ((i←v27868 < noName←c58636)) {
goto lab←L100344;
};
goto lab←L100340;
lab←L100343: ;
SOURCE(43733, 17)
segNum←v17948 = segIndex←v27768;
SOURCE(43752, 15)
cpNum←v17976 = cpIndex←v27796;
SOURCE(43769, 12)
done←v18004 = 0;
goto lab←L100341;
lab←L100340: ;
SOURCE(43798, 5)
(void) XR←RaiseUnnamedError();
lab←L100341: ;
};
SOURCE(43814, 25)
(* (( (ptr) cpGen←v17904)+3) ) = segIndex←v27768;
SOURCE(43841, 27)
(* (( (ptr) cpGen←v17904)+4) ) = (cpIndex←v27796 + 1);
SOURCE(43870, 27)
{
word idx603;
(* (( (ptr) cpGen←v17904)+2) ) = (
idx603 = (word) ((* (( (ptr) cpGen←v17904)+2) ) - 1),
SGNCK(idx603)
);
};
};
};
/* removed tail goto */
lab←L100339: ;
(* (ptr) formal←c01065 ) = segNum←v17948;
(* (( (ptr) formal←c01065)+1) ) = cpNum←v17976;
(* (( (ptr) formal←c01065)+2) ) = done←v18004;
return;
}
static word JointsInSequence←P4980(seq←v18064)
word seq←v18064;
{
register ptr gf←c61164 = (ptr) &globalframe;
word jointGen←v18108;
/* JointsInSequence: */
SOURCE(43906, 299)
SOURCE(43906, 299)
jointGen←v18108 = 0;
SOURCE(43992, 213)
{
word var←c58796;
var←c58796 = XR←NewObject(20, (* (( (ptr) gf←c61164)+9) ));
if ((seq←v18064 == 0)) {
(* (( (ptr) var←c58796)+1) ) = 0;
}
else {
(* (( (ptr) var←c58796)+1) ) = (* (( (ptr) seq←v18064)+4) );
};
(* (( (ptr) var←c58796)+3) ) = seq←v18064;
jointGen←v18108 = var←c58796;
};
SOURCE(43906, 299)
return(jointGen←v18108);
}
static void WalkJointPositionsInSequence←P5040(traj←v18168, seq←v18196, walkProc←v18224)
word traj←v18168;
word seq←v18196;
word walkProc←v18224;
{
register ptr gf←c61196 = (ptr) &globalframe;
W2 jointPos←v27956;
word done←v27984 = 0;
word toGo←v28012;
word hiJoint←v28040;
word index←v28068 = 0;
/* WalkJointPositionsInSequence: */
SOURCE(44211, 501)
SOURCE(44352, 51)
toGo←v28012 = ( (seq←v18196 == 0) ? 0 : (* (( (ptr) seq←v18196)+4) ) ) ;
SOURCE(44405, 29)
hiJoint←v28040 = (* (ptr) (* (( (ptr) seq←v18196)+1) ) );
SOURCE(44452, 260)
{
register word i←v28112 = 1;
register word noName←c58828;
noName←c58828 = toGo←v28012;
if ((i←v28112 > noName←c58828)) {
goto lab←L100349;
};
lab←L100352: ;
{
word var←c58860;
SOURCE(44479, 63)
lab←L100355: ;
{
word tc604;
word limit605;
var←c58860 = (* (( (ptr) seq←v18196)+1) );
if ( ! XR←ExtractField(var←c58860, 32 + (word) (
limit605 = (* (ptr) var←c58860 ),
BCK(index←v28068, limit605)
), 1)) {
tc604 = (word) (index←v28068 <= hiJoint←v28040);
}
else {
tc604 = (word) 0;
};
if (tc604) {
}
else {
goto lab←L100353;
};
};
SOURCE(44525, 17)
index←v28068 = (index←v28068 + 1);
goto lab←L100355;
lab←L100353: ;
SOURCE(44553, 24)
if ((index←v28068 > hiJoint←v28040)) {
SOURCE(44577, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(44584, 48)
{
word pd606;
pd606 = (* (( (ptr) (* (( (ptr) gf←c61196)+204)/* var←c43500 */ ))+33) );
(void) ( *( (fPt) ((* (ptr) pd606 ))))((word) &jointPos←v27956, traj←v18168, index←v28068, pd606);
};
SOURCE(44634, 38)
done←v27984 = (word) ( *( (fPt) ((* (ptr) walkProc←v18224 ))))(traj←v18168, jointPos←v27956, index←v28068, walkProc←v18224)
;
SOURCE(44674, 19)
if ((0 != done←v27984)) {
SOURCE(44687, 6)
return;
};
SOURCE(44695, 17)
index←v28068 = (index←v28068 + 1);
};
if ((i←v28112 >= noName←c58828)) {
goto lab←L100349;
};
i←v28112 = (i←v28112 + 1);
goto lab←L100352;
lab←L100349: ;
};
}
static void WalkJointsInSequence←P5100(traj←v18284, seq←v18312, walkProc←v18340)
word traj←v18284;
word seq←v18312;
word walkProc←v18340;
{
register ptr gf←c61228 = (ptr) &globalframe;
W2 jointPos←v28156;
word done←v28184 = 0;
word toGo←v28212;
word hiJoint←v28240;
word index←v28268 = 0;
/* WalkJointsInSequence: */
SOURCE(44727, 480)
SOURCE(44860, 51)
toGo←v28212 = ( (seq←v18312 == 0) ? 0 : (* (( (ptr) seq←v18312)+4) ) ) ;
SOURCE(44913, 29)
hiJoint←v28240 = (* (ptr) (* (( (ptr) seq←v18312)+1) ) );
SOURCE(44960, 247)
{
register word i←v28312 = 1;
register word noName←c58892;
noName←c58892 = toGo←v28212;
if ((i←v28312 > noName←c58892)) {
goto lab←L100356;
};
lab←L100359: ;
{
word var←c58924;
SOURCE(44987, 63)
lab←L100362: ;
{
word tc607;
word limit608;
var←c58924 = (* (( (ptr) seq←v18312)+1) );
if ( ! XR←ExtractField(var←c58924, 32 + (word) (
limit608 = (* (ptr) var←c58924 ),
BCK(index←v28268, limit608)
), 1)) {
tc607 = (word) (index←v28268 <= hiJoint←v28240);
}
else {
tc607 = (word) 0;
};
if (tc607) {
}
else {
goto lab←L100360;
};
};
SOURCE(45033, 17)
index←v28268 = (index←v28268 + 1);
goto lab←L100362;
lab←L100360: ;
SOURCE(45061, 24)
if ((index←v28268 > hiJoint←v28240)) {
SOURCE(45085, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(45092, 48)
{
word pd609;
pd609 = (* (( (ptr) (* (( (ptr) gf←c61228)+204)/* var←c43500 */ ))+33) );
(void) ( *( (fPt) ((* (ptr) pd609 ))))((word) &jointPos←v28156, traj←v18284, index←v28268, pd609);
};
SOURCE(45142, 25)
done←v28184 = (word) ( *( (fPt) ((* (ptr) walkProc←v18340 ))))(jointPos←v28156, walkProc←v18340);
SOURCE(45169, 19)
if ((0 != done←v28184)) {
SOURCE(45182, 6)
return;
};
SOURCE(45190, 17)
index←v28268 = (index←v28268 + 1);
};
if ((i←v28312 >= noName←c58892)) {
goto lab←L100356;
};
i←v28312 = (i←v28312 + 1);
goto lab←L100359;
lab←L100356: ;
};
}
static word JointsInTraj←P5160(traj←v18400)
word traj←v18400;
{
register ptr gf←c61260 = (ptr) &globalframe;
word jointGen←v18444;
/* JointsInTraj: */
SOURCE(45222, 229)
SOURCE(45222, 229)
jointGen←v18444 = 0;
SOURCE(45304, 147)
{
word var←c58956;
word var←c58988;
{
word pd610;
pd610 = (* (( (ptr) (* (( (ptr) gf←c61260)+204)/* var←c43500 */ ))+40) );
var←c58956 = ((word) ( *( (fPt) ((* (ptr) pd610 ))))(traj←v18400, pd610) + 1);
};
var←c58988 = XR←NewObject(20, (* (( (ptr) gf←c61260)+9) ));
(* (( (ptr) var←c58988)+1) ) = var←c58956;
(* (( (ptr) var←c58988)+4) ) = 1;
jointGen←v18444 = var←c58988;
};
SOURCE(45222, 229)
return(jointGen←v18444);
}
static word NextJoint←P5220(jointGen←v18504)
word jointGen←v18504;
{
word next←v18548;
word seq←v28356;
word index←v28384;
/* NextJoint: */
SOURCE(45457, 440)
SOURCE(45531, 29)
seq←v28356 = (* (( (ptr) jointGen←v18504)+3) );
SOURCE(45562, 27)
index←v28384 = (* (( (ptr) jointGen←v18504)+2) );
SOURCE(45591, 36)
if (((* (( (ptr) jointGen←v18504)+1) ) == 0)) {
SOURCE(45617, 10)
return( (word) -1);
};
SOURCE(45629, 202)
if ((0 != (* (( (ptr) jointGen←v18504)+4) ))) {
SOURCE(45660, 12)
next←v18548 = index←v28384;
}
else {
SOURCE(45681, 152)
{
word hiJoint←v28428;
word var←c59020;
SOURCE(45683, 29)
hiJoint←v28428 = (* (ptr) (* (( (ptr) seq←v28356)+1) ) );
SOURCE(45714, 63)
lab←L100365: ;
{
word tc611;
word limit612;
var←c59020 = (* (( (ptr) seq←v28356)+1) );
if ( ! XR←ExtractField(var←c59020, 32 + (word) (
limit612 = (* (ptr) var←c59020 ),
BCK(index←v28384, limit612)
), 1)) {
tc611 = (word) (index←v28384 <= hiJoint←v28428);
}
else {
tc611 = (word) 0;
};
if (tc611) {
}
else {
goto lab←L100363;
};
};
SOURCE(45760, 17)
index←v28384 = (index←v28384 + 1);
goto lab←L100365;
lab←L100363: ;
SOURCE(45788, 24)
if ((index←v28384 > hiJoint←v28428)) {
SOURCE(45812, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(45819, 12)
next←v18548 = index←v28384;
};
};
SOURCE(45836, 26)
(* (( (ptr) jointGen←v18504)+2) ) = (index←v28384 + 1);
SOURCE(45864, 33)
{
word idx613;
(* (( (ptr) jointGen←v18504)+1) ) = (
idx613 = (word) ((* (( (ptr) jointGen←v18504)+1) ) - 1),
SGNCK(idx613)
);
};
SOURCE(45457, 440)
return(next←v18548);
}
/* file: GGSequenceImpl, module: GGSequenceImpl, compiled at: July 11, 1993 8:16:24 pm PDT */
extern void XR←install←GGSequenceImpl() {
NoName←Q10440();
}
extern void XR←run←GGSequenceImpl() { XR←Start(&globalframe); }