/* 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); }