/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 11, 1993 8:03:22 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGHistoryImpl, module: GGHistoryImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2894736571,2162247208] GGHistoryImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W8 f; W5 r;} W13;
typedef struct {W16 f; W13 r;} W29;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {W8 f; W4 r;} W12;
typedef struct {W16 f; W12 r;} W28;
typedef struct {W8 f; W2 r;} W10;
typedef struct {W16 f; W10 r;} W26;
typedef W26 *W26Pt;
typedef W28 *W28Pt;
typedef struct {W8 f; W6 r;} W14;
typedef struct {W16 f; W14 r;} W30;
typedef struct {W8 f; W3 r;} W11;
typedef struct {W16 f; W11 r;} W27;
typedef W27 *W27Pt;
typedef struct {W16 f; W16 r;} W32;
typedef struct {W32 f; W4 r;} W36;
#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)) )
static void NoName←Q4608();
static void GGHistoryImpl←P0();
static word NewCurrent←P60();
static void PushCurrent←P120();
static word SetSliceIndex←P2904();
static word MarkSlices←P3012();
static word TopHistory←P3120();
static void KillAdvanceCapture←P180();
static word NoName←Q4668();
static void KillAdvanceCaptureInternal←P240();
static word DiscardAction←P300();
static void DoAdvanceCapture←P360();
static word NoName←Q4728();
static word CaptureAction←P420();
static void NewCapture←P480();
static word NoName←Q4788();
static void Capture←P540();
static void Uncapture←P600();
static word Create←P660();
static void SetCurrent←P720();
static void GetCurrent←P780();
static void DescendASlice←P840();
static void WalkSlicesInEvent←P900();
static void SetHistory←P960();
static word GetHistory←P1020();
static void Push←P1080();
static void Note←P1140();
static void Undo←P1200();
static void ResetHistory←P1260();
static word NoName←Q4848();
static void ResetEvent←P1320();
static word AddSliceToUnlink←P4044();
static void UnlinkListedSlices←P1380();
static void Reset←P1440();
static word Empty←P1500();
static void UndoN←P1560();
static word Reselect←P4296();
static void CapTool←P1620();
static word BuildTool←P1680();
static void EventNumberButton←P1740();
static void HistorySizeButton←P1800();
static void SynchShow←P1860();
static void DoShow←P1920();
static word NoName←Q4908();
static void SynchUndo←P1980();
static void DoUndo←P2040();
static word NoName←Q4968();
static void SynchGetSize←P2100();
static void DoGetSize←P2160();
static void SynchSetSize←P2220();
static void DoSetSize←P2280();
static word NoName←Q5028();
static void ClearTool←P2340();
static word BuildButton←P2400();
static void DataFieldButton←P2460();
static void BuildDataFieldPair←P2520();
static word GetInt←P2580();
static word NoName←Q5088();
static void SetInt←P2640();
static void HRule←P2700();
static void NoName←Q5148();
static void NoName←Q5208();
static void NoName←Q5268();
static void NoName←Q5328();
static void NoName←Q5388();
static void NoName←Q5448();
static void NoName←Q5508();
static void NoName←Q5568();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\122\207\370\054\300\315\202\135\375\100\200\000\000"};
static struct {unsigned f; char r[12];} string2 = {589833, "\007\000\040\003\004\036\004\016\014\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\252\050\175\356\300\250\337\044\120\100\164\000\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\004\017\000"};
static struct {unsigned f; char r[16];} string5 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string6 = {65537, "\001\000\000"};
static struct {unsigned f; char r[20];} string7 = {1179668, "\260\006\005\146\151\162\163\164\217\005\004\162\145\163\164\214\217\261\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\252\050\175\356\300\250\337\044\120\100\200\000\000"};
static struct {unsigned f; char r[4];} string10 = {131074, "\003\007\000"};
static struct {unsigned f; char r[4];} string11 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\252\043\023\037\300\070\056\113\065\100\164\000\000"};
static struct {unsigned f; char r[4];} string13 = {131074, "\004\005\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\100\200\000\000"};
static struct {unsigned f; char r[68];} string15 = {4325442, "\006\031\000\001\004\001\010\001\014\001\024\001\030\001\034\001\044\001\050\001\054\001\060\001\064\001\070\001\074\001\100\100\001\100\104\001\100\110\001\100\164\001\100\170\001\100\224\004\017\100\244\004\100\171\100\300\001\100\304\001\100\310\001\100\320\001\000"};
static struct {unsigned f; char r[48];} string16 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\252\043\023\037\300\070\056\113\065\100\214\005\004\162\145\163\164\214\216\257\300\252\043\023\037\300\070\056\113\065\100\214\261\000\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\324\000\000"};
static struct {unsigned f; char r[32];} string18 = {1966110, "\006\015\000\001\004\001\010\001\034\001\040\001\044\001\050\001\054\001\060\001\064\001\074\001\100\110\001\100\130\001\000"};
static struct {unsigned f; char r[48];} string19 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\252\043\023\037\300\070\056\113\065\100\164\005\004\162\145\163\164\214\216\257\300\252\043\023\037\300\070\056\113\065\100\164\261\000\000\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\252\043\023\037\300\070\056\113\065\100\214\000\000"};
static struct {unsigned f; char r[4];} string21 = {131074, "\003\001\000"};
static struct {unsigned f; char r[44];} string22 = {2752556, "\260\006\005\146\151\162\163\164\257\300\015\277\004\146\300\034\367\146\045\112\114\005\004\162\145\163\164\214\257\300\015\277\004\146\300\034\367\146\045\112\114\261\000"};
static struct {unsigned f; char r[28];} string23 = {1572888, "\006\002\000\007\000\040\016\000\003\001\000\000\000\000\014\014\000\014\014\014\014\000\010\001\000\000\000"};
static struct {unsigned f; char r[48];} string24 = {2883632, "Undo %g event%g.  Actually undid %g event%g.\000\000\000"};
static struct {unsigned f; char r[20];} string25 = {1114132, "UndoN Placeholder\000\000"};
static struct {unsigned f; char r[8];} string26 = {458760, "advance"};
static struct {unsigned f; char r[16];} string27 = {917520, "Set scale unit\000"};
static struct {unsigned f; char r[8];} string28 = {262152, "Undo\000\000\000"};
static struct {unsigned f; char r[8];} string29 = {458760, "Motion:"};
static struct {unsigned f; char r[12];} string30 = {524300, "Feedback\000\000\000"};
static struct {unsigned f; char r[12];} string31 = {589836, "Transform\000\000"};
static struct {unsigned f; char r[20];} string32 = {1048596, "PaintEntireScene\000\000\000"};
static struct {unsigned f; char r[12];} string33 = {589836, "Complaint\000\000"};
static struct {unsigned f; char r[40];} string34 = {2490408, "No entries on the history list to Undo\000"};
static struct {unsigned f; char r[16];} string35 = {917520, "GGHistory for \000"};
static struct {unsigned f; char r[40];} string36 = {2359336, "GGHistory tool for %g already exists\000\000\000"};
static struct {unsigned f; char r[4];} string37 = {65540, "s\000\000"};
static struct {unsigned f; char r[16];} string38 = {983056, "%g  %g object%g"};
static struct {unsigned f; char r[8];} string39 = {262152, "Show\000\000\000"};
static struct {unsigned f; char r[32];} string40 = {1900576, "since Gargoyle event number: \000\000"};
static struct {unsigned f; char r[4];} string41 = {196612, "Get"};
static struct {unsigned f; char r[4];} string42 = {196612, "Set"};
static struct {unsigned f; char r[16];} string43 = {917520, "history size: \000"};
static struct {unsigned f; char r[8];} string44 = {262152, "Text\000\000\000"};
static struct {unsigned f; char r[16];} string45 = {851984, "%g  no object\000\000"};
static struct {unsigned f; char r[12];} string46 = {720908, "HistoryShow"};
static struct {unsigned f; char r[8];} string47 = {393224, "%g\011%g\012\000"};
static struct {unsigned f; char r[12];} string48 = {720908, "HistoryUndo"};
static struct {unsigned f; char r[92];} string49 = {5963868, "Please fill in the \042since Gargoyle event number\042 field with a positive integer event number"};
static struct {unsigned f; char r[16];} string50 = {917520, "HistoryGetSize\000"};
static struct {unsigned f; char r[16];} string51 = {917520, "HistorySetSize\000"};
static struct {unsigned f; char r[72];} string52 = {4456520, "Please fill in the \042history size\042 field with a positive integer size\000\000\000"};
static struct {unsigned f; char r[16];} string53 = {851984, "\257\300\254\212\054\273\300\200\341\106\050\100\164\000\000"};
static struct {unsigned f; char r[16];} string54 = {851981, "\006\003\060\001\070\001\100\220\010\000\004\035\001\000\000"};
static struct {unsigned f; char r[16];} string55 = {851984, "\257\300\301\241\007\150\300\032\111\265\237\100\150\000\000"};
static struct {unsigned f; char r[16];} string56 = {851984, "\257\300\212\210\334\132\300\036\362\033\164\100\150\000\000"};
static struct {unsigned f; char r[16];} string57 = {851984, "\257\300\176\323\376\273\300\203\041\251\010\100\150\000\000"};
static struct {unsigned f; char r[16];} string58 = {851984, "\257\300\322\334\347\304\300\124\107\000\027\100\150\000\000"};
static struct {unsigned f; char r[16];} string59 = {851984, "\257\300\223\031\346\162\300\275\253\133\335\100\150\000\000"};
static struct {unsigned f; char r[16];} string60 = {851984, "\257\300\003\033\274\104\300\263\246\312\006\100\150\000\000"};
static struct {unsigned f; char r[8];} string61 = {1195853929, "story"};
static struct {unsigned f; char r[16];} string62 = {851984, "\257\300\252\050\175\356\300\250\337\044\120\100\150\000\000"};
static struct {unsigned f; char r[16];} string63 = {851984, "\257\300\347\101\365\007\300\150\102\366\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string64 = {851984, "\257\300\011\245\206\305\300\112\326\356\245\100\150\000\000"};
static struct {unsigned f; char r[16];} string65 = {851984, "\257\300U$)\337\300Xo9\243@t\000\000"};
static struct {unsigned f; char r[16];} string66 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string67 = {851984, "\257\300\206\055\004\241\300\261\334\001\116\100\150\000\000"};
static struct {unsigned f; char r[16];} string68 = {851984, "\257\300\370\132\042\205\300\045\133\011\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string69 = {851984, "\257\300\356\024\243\250\300\175\157\203\227\100\150\000\000"};
static struct {unsigned f; char r[16];} string70 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string71 = {851984, "\257\300\234\045\277\356\300\323\171\341\105\100\150\000\000"};
static struct {unsigned f; char r[16];} string72 = {851984, "\257\300\240\236\274\315\300\111\163\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string73 = {851984, "\257\300\242\221\264\046\300\105\142\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string74 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string75 = {851984, "\257\300\117\004\011\134\300\015\100\060\362\100\150\000\000"};
static struct {unsigned f; char r[16];} string76 = {851984, "\257\300\360\202\255\211\300\267\057\343\102\100\150\000\000"};
static struct {unsigned f; char r[16];} string77 = {851984, "\257\300\351\360\047\051\300\272\273\201\332\100\150\000\000"};
static struct {unsigned f; char r[16];} string78 = {851984, "\257\300\354\332\367\333\300\361\203\205\173\100\150\000\000"};
static struct {unsigned f; char r[16];} string79 = {851984, "\257\300\177\015\147\234\300\177\160\240\356\100\150\000\000"};
static struct {unsigned f; char r[16];} string80 = {851984, "\257\300\045\005\337\143\300\252\356\334\244\100\150\000\000"};
static struct {unsigned f; char r[16];} string81 = {851984, "\257\300\252\043\023\037\300\070\056\113\065\100\150\000\000"};
static struct {unsigned f; char r[20];} string82 = {1245204, "\211\007\006Change\300\252#\023\037\3008.K5"};
static struct {unsigned f; char r[28];} string83 = {1769500, "\211\017\016HistoryToolObj\300\252#\023\037\3008.K5"};
static struct {
   word f0[9]; word f9; word f10; word f11; 
   word f12; word f13; word f14[54]; 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[28]; 
   } globalframe = {
   {0}, (word) 1, (word) 1, (word) 1, 
   0, (word) 2, {0}, (word) HRule←P2700, 
   0, (word) SetInt←P2640, 0, (word) GetInt←P2580, 
   0, (word) BuildDataFieldPair←P2520, 0, (word) DataFieldButton←P2460, 
   0, (word) BuildButton←P2400, 0, (word) ClearTool←P2340, 
   0, (word) DoSetSize←P2280, 0, (word) SynchSetSize←P2220, 
   0, (word) DoGetSize←P2160, 0, (word) SynchGetSize←P2100, 
   0, (word) DoUndo←P2040, 0, (word) SynchUndo←P1980, 
   0, (word) DoShow←P1920, 0, (word) SynchShow←P1860, 
   0, (word) HistorySizeButton←P1800, 0, (word) EventNumberButton←P1740, 
   0, (word) BuildTool←P1680, 0, (word) CapTool←P1620, 
   0, (word) UndoN←P1560, 0, (word) Empty←P1500, 
   0, (word) Reset←P1440, 0, (word) UnlinkListedSlices←P1380, 
   0, (word) ResetEvent←P1320, 0, (word) ResetHistory←P1260, 
   0, (word) Undo←P1200, 0, (word) Note←P1140, 
   0, (word) Push←P1080, 0, (word) GetHistory←P1020, 
   0, (word) SetHistory←P960, 0, (word) WalkSlicesInEvent←P900, 
   0, (word) DescendASlice←P840, 0, (word) GetCurrent←P780, 
   0, (word) SetCurrent←P720, 0, (word) Create←P660, 
   0, (word) Uncapture←P600, 0, (word) Capture←P540, 
   0, (word) NewCapture←P480, 0, (word) CaptureAction←P420, 
   0, (word) DoAdvanceCapture←P360, 0, (word) DiscardAction←P300, 
   0, (word) KillAdvanceCaptureInternal←P240, 0, (word) KillAdvanceCapture←P180, 
   0, (word) PushCurrent←P120, 0, (word) NewCurrent←P60, 
   0, (word) GGHistoryImpl←P0, {0}
   };

static void NoName←Q4608()
   {
   register ptr gf←c0465 =  (ptr) &globalframe;
   word var←c52720;
   (* (( (ptr) gf←c0465)+15) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0465)+16) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0465)+19) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0465)+20) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0465)+22) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
   (* (( (ptr) gf←c0465)+24) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string6);
   (* (( (ptr) gf←c0465)+28) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13);
   (* (( (ptr) gf←c0465)+29) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string15);
   (* (( (ptr) gf←c0465)+31) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string8);
   (* (( (ptr) gf←c0465)+32) ) = (word) XR←GetTypeIndex((word) &string17, 0, (word) &string18);
   (* (( (ptr) gf←c0465)+33) ) = (word) XR←GetTypeIndex((word) &string19, 0, (word) &string8);
   (* (( (ptr) gf←c0465)+34) ) = (word) XR←GetTypeIndex((word) &string20, 0, (word) &string21);
   (* (( (ptr) gf←c0465)+35) ) = (word) XR←GetTypeIndex((word) &string22, 0, (word) &string23);
   (*  (ptr) (( (bPt) gf←c0465)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0465)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0465)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0465)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0465)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0465)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0465)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+24) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0465)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0465)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+24) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0465)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+24) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0465)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0465)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0465)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c0465)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c0465)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c0465)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string39);
   (*  (ptr) (( (bPt) gf←c0465)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string40);
   (*  (ptr) (( (bPt) gf←c0465)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string41);
   (*  (ptr) (( (bPt) gf←c0465)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string42);
   (*  (ptr) (( (bPt) gf←c0465)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string43);
   (*  (ptr) (( (bPt) gf←c0465)+224) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+24) ), (word) &string44);
   (*  (ptr) (( (bPt) gf←c0465)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string45);
   (*  (ptr) (( (bPt) gf←c0465)+232) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+24) ), (word) &string46);
   (*  (ptr) (( (bPt) gf←c0465)+236) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string47);
   (*  (ptr) (( (bPt) gf←c0465)+240) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+24) ), (word) &string48);
   (*  (ptr) (( (bPt) gf←c0465)+244) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string49);
   (*  (ptr) (( (bPt) gf←c0465)+248) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+24) ), (word) &string50);
   (*  (ptr) (( (bPt) gf←c0465)+252) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+24) ), (word) &string51);
   (*  (ptr) (( (bPt) gf←c0465)+256) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0465)+19) ), (word) &string52);
   (void) XR←DeclareGlobalFrame((word) "GGHistoryImpl", &globalframe, (word) XR←GetTypeIndex((word) &string53, 0, (word) &string54)
      , (word) (( (bPt) gf←c0465)+632)/* var←c48944 */ );
   var←c52720 = (word) XR←ImportInterface((word) "GGParent", (word) XR←GetTypeIndexS((word) (&string55)), 83);
   (* (( (ptr) gf←c0465)+168)/* var←c50544 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 68175108);
   var←c52720 = (word) XR←ImportInterface((word) "CedarProcess", (word) XR←GetTypeIndexS((word) (&string56)), 10);
   (* (( (ptr) gf←c0465)+166)/* var←c49744 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 262145);
   (void) XR←ImportProcS(var←c52720, 68420355);
   (void) XR←ImportProcS(var←c52720, 134743298);
   (void) XR←ImportProcS(var←c52720, 263681);
   (void) XR←ImportProcS(var←c52720, 67372033);
   var←c52720 = (word) XR←ImportInterface((word) "Containers", (word) XR←GetTypeIndexS((word) (&string57)), 5);
   (* (( (ptr) gf←c0465)+178)/* var←c51728 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 524802);
   (void) XR←ImportProcS(var←c52720, 524546);
   (void) XR←ImportProcS(var←c52720, 74711042);
   var←c52720 = (word) XR←ImportInterface((word) "Feedback", (word) XR←GetTypeIndexS((word) (&string58)), 25);
   (* (( (ptr) gf←c0465)+175)/* var←c51472 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 1575429);
   (void) XR←ImportProcS(var←c52720, 1050628);
   var←c52720 = (word) XR←ImportInterface((word) "GGCaret", (word) XR←GetTypeIndexS((word) (&string59)), 13);
   (* (( (ptr) gf←c0465)+172)/* var←c51344 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 264449);
   (void) XR←ImportProcS(var←c52720, 525570);
   var←c52720 = (word) XR←ImportInterface((word) "GGEvent", (word) XR←GetTypeIndexS((word) (&string60)), 38);
   (* (( (ptr) gf←c0465)+179)/* var←c52048 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 531458);
   var←c52720 = (word) XR←ImportInterface((word) &string61, (word) XR←GetTypeIndexS((word) (&string62)), 20);
   (* (( (ptr) gf←c0465)+170)/* var←c50992 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 526338);
   (void) XR←ImportProcS(var←c52720, 262657);
   (void) XR←ImportProcS(var←c52720, 134480129);
   (void) XR←ImportProcS(var←c52720, 526082);
   (void) XR←ImportProcS(var←c52720, 67633154);
   (void) XR←ImportProcS(var←c52720, 67374081);
   (void) XR←ImportProcS(var←c52720, 267009);
   var←c52720 = (word) XR←ImportInterface((word) "GGScene", (word) XR←GetTypeIndexS((word) (&string63)), 50);
   (* (( (ptr) gf←c0465)+161)/* var←c49008 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 68164356);
   (void) XR←ImportProcS(var←c52720, 68165636);
   var←c52720 = (word) XR←ImportInterface((word) "GGSelect", (word) XR←GetTypeIndexS((word) (&string64)), 23);
   (* (( (ptr) gf←c0465)+174)/* var←c51408 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 525570);
   (void) XR←ImportProcS(var←c52720, 264705);
   var←c52720 = (word) XR←ImportInterface((word) "GGSlice", (word) XR←GetTypeIndexS((word) (&string65)), 128);
   (* (( (ptr) gf←c0465)+171)/* var←c51088 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 279297);
   var←c52720 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string66)), 73);
   (* (( (ptr) gf←c0465)+164)/* var←c49488 */  ) = var←c52720;
   var←c52720 = (word) XR←ImportInterface((word) "GGState", (word) XR←GetTypeIndexS((word) (&string67)), 119);
   (* (( (ptr) gf←c0465)+173)/* var←c51376 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 550146);
   (void) XR←ImportProcS(var←c52720, 549122);
   var←c52720 = (word) XR←ImportInterface((word) "GGUtility", (word) XR←GetTypeIndexS((word) (&string68)), 42);
   (* (( (ptr) gf←c0465)+165)/* var←c49616 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 135008515);
   (void) XR←ImportProcS(var←c52720, 793091);
   (void) XR←ImportProcS(var←c52720, 134748418);
   (void) XR←ImportProcS(var←c52720, 269057);
   (void) XR←ImportProcS(var←c52720, 134221824);
   var←c52720 = (word) XR←ImportInterface((word) "GGWindow", (word) XR←GetTypeIndexS((word) (&string69)), 12);
   (* (( (ptr) gf←c0465)+176)/* var←c51504 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 1572870);
   var←c52720 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string70)), 103);
   (* (( (ptr) gf←c0465)+162)/* var←c49072 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 799490);
   (void) XR←ImportProcS(var←c52720, 67388417);
   (void) XR←ImportProcS(var←c52720, 67640578);
   (void) XR←ImportProcS(var←c52720, 67641090);
   (void) XR←ImportProcS(var←c52720, 2111493);
   (void) XR←ImportProcS(var←c52720, 67378689);
   (void) XR←ImportProcS(var←c52720, 67648770);
   (void) XR←ImportProcS(var←c52720, 68958724);
   (void) XR←ImportProcS(var←c52720, 67910402);
   var←c52720 = (word) XR←ImportInterface((word) "MBQueue", (word) XR←GetTypeIndexS((word) (&string71)), 8);
   (* (( (ptr) gf←c0465)+160)/* var←c48976 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 76546825);
   (void) XR←ImportProcS(var←c52720, 67371265);
   var←c52720 = (word) XR←ImportInterface((word) "Process", (word) XR←GetTypeIndexS((word) (&string72)), 22);
   (* (( (ptr) gf←c0465)+167)/* var←c49872 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 4864);
   var←c52720 = (word) XR←ImportInterface((word) "RefTab", (word) XR←GetTypeIndexS((word) (&string73)), 16);
   (* (( (ptr) gf←c0465)+169)/* var←c50640 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 134742786);
   var←c52720 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string74)), 43);
   (* (( (ptr) gf←c0465)+163)/* var←c49200 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 67633666);
   (void) XR←ImportProcS(var←c52720, 67898627);
   (void) XR←ImportProcS(var←c52720, 67896323);
   var←c52720 = (word) XR←ImportInterface((word) "Rules", (word) XR←GetTypeIndexS((word) (&string75)), 3);
   (* (( (ptr) gf←c0465)+184)/* var←c52688 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 74973187);
   var←c52720 = (word) XR←ImportInterface((word) "SlackProcess", (word) XR←GetTypeIndexS((word) (&string76)), 26);
   (* (( (ptr) gf←c0465)+180)/* var←c52080 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 1573638);
   var←c52720 = (word) XR←ImportInterface((word) "TEditOps", (word) XR←GetTypeIndexS((word) (&string77)), 12);
   (* (( (ptr) gf←c0465)+181)/* var←c52240 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 67372033);
   (void) XR←ImportProcS(var←c52720, 525570);
   var←c52720 = (word) XR←ImportInterface((word) "ViewerOps", (word) XR←GetTypeIndexS((word) (&string78)), 43);
   (* (( (ptr) gf←c0465)+177)/* var←c51536 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 532482);
   (void) XR←ImportProcS(var←c52720, 74973699);
   (void) XR←ImportProcS(var←c52720, 1049348);
   (void) XR←ImportProcS(var←c52720, 1051652);
   var←c52720 = (word) XR←ImportInterface((word) "ViewerSpecs", (word) XR←GetTypeIndexS((word) (&string79)), 24);
   (* (( (ptr) gf←c0465)+183)/* var←c52560 */  ) = var←c52720;
   var←c52720 = (word) XR←ImportInterface((word) "ViewerTools", (word) XR←GetTypeIndexS((word) (&string80)), 12);
   (* (( (ptr) gf←c0465)+182)/* var←c52496 */  ) = var←c52720;
   (void) XR←ImportProcS(var←c52720, 524802);
   (void) XR←ImportProcS(var←c52720, 788227);
   var←c52720 = (word) XR←ExportInterface((word) &string61, (word) XR←GetTypeIndexS((word) (&string62)), 20);
   (* (( (ptr) gf←c0465)+185)/* var←c52752 */  ) = var←c52720;
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+624)/* var←c48912 */ , 67633154, (word) "NewCurrent");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+528)/* var←c48528 */ , 134480129, (word) "GetCurrent");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+616)/* var←c48880 */ , 262657, (word) "PushCurrent");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+568)/* var←c48688 */ , 525058, (word) "NewCapture");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+608)/* var←c48848 */ , 263169, (word) "KillAdvanceCapture");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+584)/* var←c48752 */ , 263425, (word) "DoAdvanceCapture");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+480)/* var←c48336 */ , 787971, (word) "Note");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+472)/* var←c48304 */ , 526082, (word) "Undo");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+424)/* var←c48112 */ , 526338, (word) "UndoN");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+544)/* var←c48592 */ , 67373313, (word) "Create");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+536)/* var←c48560 */ , 526850, (word) "SetCurrent");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+504)/* var←c48432 */ , 527106, (word) "SetHistory");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+496)/* var←c48400 */ , 67374081, (word) "GetHistory");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+488)/* var←c48368 */ , 527618, (word) "Push");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+440)/* var←c48176 */ , 265729, (word) "Reset");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+464)/* var←c48272 */ , 265985, (word) "ResetHistory");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+432)/* var←c48144 */ , 67375105, (word) "Empty");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+408)/* var←c48048 */ , 67637506, (word) "BuildTool");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+416)/* var←c48080 */ , 528898, (word) "CapTool");
   (void) XR←ExportProcS(var←c52720, (word) (( (bPt) gf←c0465)+320)/* var←c47696 */ , 267009, (word) "ClearTool");
   var←c52720 = (word) XR←ExportInterface((word) "GGHistoryTypes", (word) XR←GetTypeIndexS((word) (&string81)), 2);
   (* (( (ptr) gf←c0465)+186)/* var←c52784 */  ) = var←c52720;
   (void) XR←ExportType((word) "Change", (word) XR←GetTypeIndexS((word) (&string82)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
      );
   (void) XR←ExportType((word) "HistoryToolObj", (word) XR←GetTypeIndexS((word) (&string83)), (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4)
      );
   }

static void GGHistoryImpl←P0(formal←c0101, formal←c0100)
   word formal←c0101;
   word formal←c0100;
   {
   register ptr gf←c52816 =  (ptr) &globalframe;
   /* GGHistoryImpl: */ 
SOURCE(355, 22814)
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
SOURCE(23175, 39)
   {
      word pd84;
      pd84 = (* (( (ptr) (* (( (ptr) gf←c52816)+160)/* var←c48976 */  ))+5) );
      (* (( (ptr) gf←c52816)+14)/* queue←v5884 */  ) = (word) ( *( (fPt) ((*  (ptr) pd84 ))))(1, pd84);
      };
   }

static word NewCurrent←P60(name←v6008, ggData←v6036)
   word name←v6008;
   word ggData←v6036;
   {
   register ptr gf←c52848 =  (ptr) &globalframe;
   word var←c6080;
   /* NewCurrent: */ 
SOURCE(1739, 1261)
SOURCE(1739, 1261)
   var←c6080 = 0;
SOURCE(1881, 1119)
   if ((0 != (* (( (ptr) gf←c52848)+8)/* noHistory←v4428 */  ))) {
SOURCE(1899, 12)
      return(var←c6080);
      }
   else {
SOURCE(1911, 1094)
      {
         word count←v10268;
         word nameAndCount←v10296;
         word var←c49232;
         word var←c49264;
SOURCE(1913, 69)
         {
            word pd85;
            word idx86;
            pd85 = (* (( (ptr) (* (( (ptr) gf←c52848)+161)/* var←c49008 */  ))+36) );
            count←v10268 = (
               idx86 = (word) ( *( (fPt) ((*  (ptr) pd85 ))))((* (( (ptr) ggData←v6036)+11) ), 0, 0, 0, pd85),
               SGNCK(idx86)
               );
            };
SOURCE(1984, 186)
         if (( (int)count←v10268 ==  (int)0)) {
            {
               W2 var←c49040;
               var←c49040.f0 = 11;
               var←c49040.f1 = name←v6008;
               {
                  word pd87;
                  pd87 = (* (( (ptr) (* (( (ptr) gf←c52848)+162)/* var←c49072 */  ))+63) );
                  nameAndCount←v10296 = (word) ( *( (fPt) ((*  (ptr) pd87 ))))((* (( (ptr) gf←c52848)+57) ), var←c49040, pd87);
                  };
               };
            }
         else {
            {
               W2 var←c49104;
               W2 var←c49136;
               W2 var←c49168;
               var←c49104.f0 = 11;
               var←c49104.f1 = name←v6008;
               var←c49136.f0 = 5;
               var←c49136.f1 = count←v10268;
               var←c49168.f0 = 11;
               if (( (int)count←v10268 >  (int)1)) {
                  var←c49168.f1 = (* (( (ptr) gf←c52848)+49) );
                  }
               else {
                  var←c49168.f1 = 0;
                  };
               {
                  word pd88;
                  pd88 = (* (( (ptr) (* (( (ptr) gf←c52848)+162)/* var←c49072 */  ))+62) );
                  nameAndCount←v10296 = (word) ( *( (fPt) ((*  (ptr) pd88 ))))((* (( (ptr) gf←c52848)+50) ), var←c49104, var←c49136, var←c49168, pd88)
                  ;
                  };
               };
            };
SOURCE(2172, 828)
         if ((0 != (* (( (ptr) gf←c52848)+9)/* tempCapture←v4456 */  ))) {
            {
               word pd89;
               word pd92;
               word pd94;
               word pd95;
               pd89 = (* (( (ptr) (* (( (ptr) gf←c52848)+163)/* var←c49200 */  ))+8) );
               if ((0 != (word) ( *( (fPt) ((*  (ptr) pd89 ))))((* (( (ptr) gf←c52848)+43) ), name←v6008, 0, pd89))) { goto then090;};
               {
                  word pd91;
                  pd91 = (* (( (ptr) (* (( (ptr) gf←c52848)+163)/* var←c49200 */  ))+17) );
                  var←c49232 = (word) ( *( (fPt) ((*  (ptr) pd91 ))))(name←v6008, 0, 7, pd91);
                  };
               pd92 = (* (( (ptr) (* (( (ptr) gf←c52848)+163)/* var←c49200 */  ))+8) );
               if ((0 != (word) ( *( (fPt) ((*  (ptr) pd92 ))))((* (( (ptr) gf←c52848)+41) ), var←c49232, 0, pd92))) { goto then090;};
               {
                  word pd93;
                  pd93 = (* (( (ptr) (* (( (ptr) gf←c52848)+163)/* var←c49200 */  ))+17) );
                  var←c49264 = (word) ( *( (fPt) ((*  (ptr) pd93 ))))(name←v6008, 0, 4, pd93);
                  };
               pd94 = (* (( (ptr) (* (( (ptr) gf←c52848)+163)/* var←c49200 */  ))+8) );
               if ((0 != (word) ( *( (fPt) ((*  (ptr) pd94 ))))((* (( (ptr) gf←c52848)+40) ), var←c49264, 0, pd94))) { goto then090;};
               pd95 = (* (( (ptr) (* (( (ptr) gf←c52848)+163)/* var←c49200 */  ))+8) );
               if ((0 != (word) ( *( (fPt) ((*  (ptr) pd95 ))))((* (( (ptr) gf←c52848)+39) ), name←v6008, 0, pd95))) {
                  then090: ;
SOURCE(2521, 26)
                  (void) KillAdvanceCapture←P180(ggData←v6036);
SOURCE(2620, 40)
                  {
                     word var←c49296;
                     var←c49296 = (word) Create←P660(nameAndCount←v10296);
                     (void) SetCurrent←P720(ggData←v6036, var←c49296);
                     };
SOURCE(2662, 32)
                  {
                     word var←c0533;
                     W2 var←c0114;
                     (void) GetCurrent←P780((word) &var←c0114, ggData←v6036);
                     var←c0533 = var←c0114.f0;
                     return(var←c0533);
                     };
                  }
               else {
SOURCE(2712, 24)
                  (void) NewCapture←P480(name←v6008, ggData←v6036);
SOURCE(2802, 11)
                  return(0);
                  };
               };
            }
         else {
SOURCE(2827, 26)
            (void) KillAdvanceCapture←P180(ggData←v6036);
SOURCE(2926, 40)
            {
               word var←c49360;
               var←c49360 = (word) Create←P660(nameAndCount←v10296);
               (void) SetCurrent←P720(ggData←v6036, var←c49360);
               };
SOURCE(2968, 32)
            {
               word var←c0534;
               W2 var←c0116;
               (void) GetCurrent←P780((word) &var←c0116, ggData←v6036);
               var←c0534 = var←c0116.f0;
               return(var←c0534);
               };
            };
         };
      };
   }

static void PushCurrent←P120(ggData←v6140)
   word ggData←v6140;
   {
   W9 var←c52880;
   register ptr gf←c52912 =  (ptr) &globalframe;
   /* declaration of var←c49424 skipped */ 
   /* declaration of var←c49456 skipped */ 
   /* PushCurrent: */ 
SOURCE(3012, 1618)
   {
      word tmpAddr96;
      tmpAddr96 = (word) (( (ptr) &var←c52880)+4)/* var←c49424 */ ;
      (*  (ptr) tmpAddr96 ) = ( ((word)  (fPt) MarkSlices←P3012) );
      (* (( (ptr) tmpAddr96) + 1) ) = 1;
      };
   {
      word tmpAddr97;
      tmpAddr97 = (word) (( (ptr) &var←c52880)+6)/* var←c49456 */ ;
      (*  (ptr) tmpAddr97 ) = ( ((word)  (fPt) SetSliceIndex←P2904) );
      (* (( (ptr) tmpAddr97) + 1) ) = 1;
      };
SOURCE(3100, 1530)
   if ((0 != (* (( (ptr) gf←c52912)+8)/* noHistory←v4428 */  ))) {
SOURCE(3118, 12)
      return;
      }
   else {
SOURCE(3130, 1530)
      {
         word event←v10340;
         W2 var←c0121;
SOURCE(3132, 46)
         (void) GetCurrent←P780((word) &var←c0121, ggData←v6140);
         event←v10340 = var←c0121.f0;
SOURCE(3180, 45)
         if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c52912)+164)/* var←c49488 */  ))+5) ) ))) {
SOURCE(3209, 16)
            (void) (XR←RaiseSignal((word) (( (bPt) gf←c52912)+260), 0, 0));
            };
SOURCE(3227, 1403)
         if ((event←v10340 != 0)) {
SOURCE(3245, 1412)
            {
               word oldTail←v10412 = 0;
               word tail←v10440 = 0;
               /* declaration of newIndex←v10468 skipped */ 
SOURCE(3429, 45)
               (* (( (ptr) &var←c52880)+8)/* newIndex←v10468 */  ) = ((* (( (ptr) ggData←v6140)+43) ) + 1);
SOURCE(3502, 39)
               (void) WalkSlicesInEvent←P900(event←v10340, (word) (( (bPt) &var←c52880)+24)/* var←c49456 */ );
SOURCE(3689, 22)
               (* (( (ptr) event←v10340)+1) ) = (* (( (ptr) &var←c52880)+8)/* newIndex←v10468 */  );
SOURCE(3713, 32)
               {
                  word var←c49520;
                  var←c49520 = (word) GetHistory←P1020(ggData←v6140);
                  (void) Push←P1080(event←v10340, var←c49520);
                  };
SOURCE(3747, 38)
               (* (( (ptr) ggData←v6140)+43) ) = (* (( (ptr) &var←c52880)+8)/* newIndex←v10468 */  );
SOURCE(3829, 25)
               tail←v10440 = (word) GetHistory←P1020(ggData←v6140);
SOURCE(3885, 100)
               {
                  register word noName←c49552 = 0;
                  register word noName←c49584;
                  noName←c49584 = (* (( (ptr) ggData←v6140)+42) );
                  if (( (int)noName←c49552 >=  (int)noName←c49584)) {
                     goto lab←L100000;
                     };
                  lab←L100003: ;
SOURCE(3924, 61)
                  if ((tail←v10440 == 0)) {
SOURCE(3941, 10)
                     goto lab←L100001;
                     }
                  else {
SOURCE(3953, 14)
                     oldTail←v10412 = tail←v10440;
SOURCE(3969, 16)
                     tail←v10440 = (* (( (ptr) tail←v10440)+1) );
                     };
                  noName←c49552 = (noName←c49552 + 1);
                  if (( (int)noName←c49552 <  (int)noName←c49584)) {
                     goto lab←L100003;
                     };
                  lab←L100000: ;
                  lab←L100001: ;
                  };
SOURCE(3999, 631)
               if ( ( (tail←v10440 != 0) ? ((*  (ptr) tail←v10440 ) != 0) : 0 ) ) {
SOURCE(4035, 619)
                  {
                     word sliceList←v10728 = 0;
                     word ptr←v10756 = 0;
SOURCE(4292, 45)
                     {
                        W2 var←c49648;
                        {
                           word pd98;
                           pd98 = (* (( (ptr) (* (( (ptr) gf←c52912)+165)/* var←c49616 */  ))+20) );
                           (void) ( *( (fPt) ((*  (ptr) pd98 ))))((word) (&var←c49648), pd98);
                           };
                        ptr←v10756 = var←c49648.f1;
                        sliceList←v10728 = var←c49648.f0;
                        };
SOURCE(4340, 56)
                     {
                        word var←c49680;
                        word pd99;
                        pd99 = (* (( (ptr) (* (( (ptr) gf←c52912)+161)/* var←c49008 */  ))+31) );
                        var←c49680 = (word) ( *( (fPt) ((*  (ptr) pd99 ))))((* (( (ptr) ggData←v6140)+11) ), 0, (word) (( (bPt) &var←c52880)+16)/* var←c49424 */ , 0, pd99)
                        ;
                        };
SOURCE(4399, 129)
                     {
                        register word tailEvents←v10988;
                        tailEvents←v10988 = tail←v10440;
                        lab←L100007: ;
                        if ((tailEvents←v10988 != 0)) {
                           }
                        else {
                           goto lab←L100004;
                           };
SOURCE(4484, 44)
                        (void) ResetEvent←P1320((*  (ptr) tailEvents←v10988 ), sliceList←v10728, ptr←v10756);
                        tailEvents←v10988 = (* (( (ptr) tailEvents←v10988)+1) );
                        goto lab←L100007;
                        lab←L100004: ;
                        };
SOURCE(4539, 18)
                     (* (( (ptr) oldTail←v10412)+1) ) = 0;
SOURCE(4601, 29)
                     (void) UnlinkListedSlices←P1380(sliceList←v10728);
                     };
                  };
               };
            };
         };
      };
   }

static word SetSliceIndex←P2904(slice←v10544, formal←c52944)
   word slice←v10544;
   word formal←c52944;
   {
   word done←v10588;
   formal←c52944 = (formal←c52944 - 24);
   /* SetSliceIndex: */ 
SOURCE(3247, 21)
SOURCE(3247, 21)
   done←v10588 = 0;
SOURCE(3315, 27)
   (* (( (ptr) slice←v10544)+20) ) = (* (( (ptr) formal←c52944)+8) );
SOURCE(3247, 21)
   return(done←v10588);
   }

static word MarkSlices←P3012(slice←v10832, formal←c53008)
   word slice←v10832;
   word formal←c53008;
   {
   W6 var←c52976;
   word done←v10876;
   /* declaration of var←c49712 skipped */ 
   formal←c53008 = (formal←c53008 - 16);
   var←c52976.f0 = formal←c53008;
   /* MarkSlices: */ 
SOURCE(4062, 18)
   {
      word tmpAddr100;
      tmpAddr100 = (word) (( (ptr) &var←c52976)+4)/* var←c49712 */ ;
      (*  (ptr) tmpAddr100 ) = ( ((word)  (fPt) TopHistory←P3120) );
      (* (( (ptr) tmpAddr100) + 1) ) = 1;
      };
SOURCE(4062, 18)
   done←v10876 = 0;
SOURCE(4224, 32)
   (void) DescendASlice←P840(slice←v10832, (word) (( (bPt) &var←c52976)+16)/* var←c49712 */ );
SOURCE(4062, 18)
   return(done←v10876);
   }

static word TopHistory←P3120(slice←v11192, formal←c53040)
   word slice←v11192;
   word formal←c53040;
   {
   word done←v11236;
   formal←c53040 = (formal←c53040 - 16);
   /* TopHistory: */ 
SOURCE(4127, 18)
SOURCE(4127, 18)
   done←v11236 = 0;
SOURCE(4192, 27)
   (* (( (ptr) slice←v11192)+20) ) = (* (( (ptr) (*  (ptr) formal←c53040 ))+8) );
SOURCE(4127, 18)
   return(done←v11236);
   }

static void KillAdvanceCapture←P180(formal←c0568)
   word formal←c0568;
   {
   W5 var←c53072;
   /* declaration of ggData←v6200 skipped */ 
   register ptr gf←c53104 =  (ptr) &globalframe;
   var←c53072.f4/* ggData←v6200 */  = formal←c0568;
   /* KillAdvanceCapture: */ 
SOURCE(4667, 116)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c53104)+16)/* LOCK←v3952 */ ));
SOURCE(4726, 57)
   {
      word var←c0535;
      var←c0535 = (word) &var←c53072;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q4668) ), ( ((word)  (fPt) NoName←Q5568) ), var←c0535);
      };
SOURCE(4667, 116)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c53104)+16)/* LOCK←v3952 */ ));
   return;
   }

static word NoName←Q4668(formal←c0473)
   word formal←c0473;
   {
SOURCE(4749, 34)
   (void) KillAdvanceCaptureInternal←P240((* ((( (ptr) formal←c0473)+4)) ));
   return(0);
   }

static void KillAdvanceCaptureInternal←P240(ggData←v6260)
   word ggData←v6260;
   {
   register ptr gf←c53136 =  (ptr) &globalframe;
   word advanceProcess←v11264;
   word advanceEvent←v11292;
   /* KillAdvanceCaptureInternal: */ 
SOURCE(4789, 764)
SOURCE(4852, 68)
   advanceProcess←v11264 = (* (( (ptr) ggData←v6260)+46) );
SOURCE(4922, 56)
   advanceEvent←v11292 = (* (( (ptr) ggData←v6260)+47) );
SOURCE(4980, 45)
   if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c53136)+164)/* var←c49488 */  ))+5) ) ))) {
SOURCE(5009, 16)
      (void) (XR←RaiseSignal((word) (( (bPt) gf←c53136)+260), 0, 0));
      };
SOURCE(5027, 526)
   if (((* (( (ptr) ggData←v6260)+46) ) != 0)) {
SOURCE(5071, 35)
      (* (( (ptr) ggData←v6260)+46) ) = 0;
SOURCE(5108, 33)
      (* (( (ptr) ggData←v6260)+47) ) = 0;
SOURCE(5143, 86)
      {
         word pd101;
         pd101 = (* (( (ptr) (* (( (ptr) gf←c53136)+166)/* var←c49744 */  ))+8) );
         if (((word) ( *( (fPt) ((*  (ptr) pd101 ))))(advanceProcess←v11264, pd101) == 3)) {
SOURCE(5195, 34)
            {
               word pd102;
               pd102 = (* (( (ptr) (* (( (ptr) gf←c53136)+166)/* var←c49744 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd102 ))))(advanceProcess←v11264, pd102);
               };
            };
         };
SOURCE(5231, 59)
      {
         W2 var←c49776;
         {
            word pd103;
            pd103 = (* (( (ptr) (* (( (ptr) gf←c53136)+166)/* var←c49744 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd103 ))))((word) &var←c49776, advanceProcess←v11264, 1, pd103);
            };
         };
SOURCE(5292, 97)
      {
         word tc104;
         word pd105;
         if ((advanceEvent←v11292 != 0)) {
            pd105 = (* (( (ptr) (* (( (ptr) gf←c53136)+163)/* var←c49200 */  ))+8) );
            tc104 =  (word) (0 == (word) ( *( (fPt) ((*  (ptr) pd105 ))))((*  (ptr) advanceEvent←v11292 ), (* (( (ptr) gf←c53136)+38)
                ), 0, pd105));
            }
         else {
            tc104 =  (word) 0;
            };
         if (tc104) {
SOURCE(5373, 16)
            (void) (XR←RaiseSignal((word) (( (bPt) gf←c53136)+264), 0, 0));
            };
         };
SOURCE(5410, 143)
      if ((advanceEvent←v11292 != 0)) {
SOURCE(5435, 118)
         {
            word var←c49840;
            {
               W3 var←c49808;
               var←c49808.f0 = (* (( (ptr) gf←c53136)+13)/* tryPriority←v4708 */  );
               var←c49808.f1 = 1;
               var←c49808.f2 = 0;
               {
                  word pd106;
                  pd106 = (* (( (ptr) (* (( (ptr) gf←c53136)+166)/* var←c49744 */  ))+7) );
                  var←c49840 = (word) ( *( (fPt) ((*  (ptr) pd106 ))))((word) (( (bPt) gf←c53136)+592)/* var←c48784 */ , advanceEvent←v11292, var←c49808, pd106)
                  ;
                  };
               };
            };
         };
      };
   }

static word DiscardAction←P300(data←v19920)
   word data←v19920;
   {
   register ptr gf←c53168 =  (ptr) &globalframe;
   word results←v19964;
   word advanceEvent←v11336;
   /* DiscardAction: */ 
SOURCE(5717, 341)
SOURCE(5717, 341)
   results←v19964 = 0;
SOURCE(5762, 41)
   advanceEvent←v11336 = XR←Narrow(data←v19920, (* (( (ptr) gf←c53168)+28) ));
SOURCE(5805, 97)
   {
      word tc107;
      word pd108;
      if ((advanceEvent←v11336 != 0)) {
         pd108 = (* (( (ptr) (* (( (ptr) gf←c53168)+163)/* var←c49200 */  ))+8) );
         tc107 =  (word) (0 == (word) ( *( (fPt) ((*  (ptr) pd108 ))))((*  (ptr) advanceEvent←v11336 ), (* (( (ptr) gf←c53168)+38)
             ), 0, pd108));
         }
      else {
         tc107 =  (word) 0;
         };
      if (tc107) {
SOURCE(5886, 16)
         (void) (XR←RaiseSignal((word) (( (bPt) gf←c53168)+264), 0, 0));
         };
      };
SOURCE(5923, 135)
   if ((advanceEvent←v11336 != 0)) {
SOURCE(5950, 46)
      {
         word pd109;
         pd109 = (* (( (ptr) (* (( (ptr) gf←c53168)+166)/* var←c49744 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd109 ))))(1, pd109);
         };
SOURCE(5998, 15)
      {
         word pd110;
         pd110 = (* (( (ptr) (* (( (ptr) gf←c53168)+167)/* var←c49872 */  ))+23) );
         (void) ( *( (fPt) ((*  (ptr) pd110 ))))(pd110);
         };
SOURCE(6015, 43)
      {
         word pd111;
         pd111 = (* (( (ptr) (* (( (ptr) gf←c53168)+165)/* var←c49616 */  ))+31) );
         (void) ( *( (fPt) ((*  (ptr) pd111 ))))(advanceEvent←v11336, pd111);
         };
      };
SOURCE(5717, 341)
   return(results←v19964);
   }

static void DoAdvanceCapture←P360(formal←c0569)
   word formal←c0569;
   {
   W5 var←c53200;
   /* declaration of ggData←v6320 skipped */ 
   register ptr gf←c53232 =  (ptr) &globalframe;
   var←c53200.f4/* ggData←v6320 */  = formal←c0569;
   /* DoAdvanceCapture: */ 
SOURCE(6112, 459)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c53232)+16)/* LOCK←v3952 */ ));
SOURCE(6169, 402)
   {
      word var←c01;
      {
         word var←c0536;
         var←c0536 = (word) &var←c53200;
         var←c01 = (word) XR←Enable(( ((word)  (fPt) NoName←Q4728) ), ( ((word)  (fPt) NoName←Q5508) ), var←c0536);
         };
      if ((var←c01 == 1)) {
         goto lab←L03;
         };
      };
SOURCE(6112, 459)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c53232)+16)/* LOCK←v3952 */ ));
   return;
   lab←L03: ;
   return;
   }

static word NoName←Q4728(formal←c0478)
   word formal←c0478;
   {
   register ptr gf←c0477 =  (ptr) &globalframe;
SOURCE(6192, 379)
   if ((0 != (* (( (ptr) gf←c0477)+8)/* noHistory←v4428 */  ))) {
SOURCE(6210, 12)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0477)+16)/* LOCK←v3952 */ ));
      return(1);
      }
   else {
SOURCE(6224, 45)
      if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0477)+164)/* var←c49488 */  ))+5) ) ))) {
SOURCE(6253, 16)
         (void) (XR←RaiseSignal((word) (( (bPt) gf←c0477)+260), 0, 0));
         };
SOURCE(6271, 76)
      if (((* (( (ptr) (* (( (ptr) formal←c0478)+4) ))+46) ) != 0)) {
SOURCE(6313, 34)
         (void) KillAdvanceCaptureInternal←P240((* ((( (ptr) formal←c0478)+4)) ));
         };
SOURCE(6382, 47)
      (* (( (ptr) (* (( (ptr) formal←c0478)+4) ))+47) ) = (word) Create←P660((* ((( (ptr) gf←c0477)+38)) ));
SOURCE(6431, 140)
      {
         W3 var←c49904;
         var←c49904.f0 = (* (( (ptr) gf←c0477)+13)/* tryPriority←v4708 */  );
         var←c49904.f1 = 1;
         var←c49904.f2 = 0;
         {
            word pd112;
            pd112 = (* (( (ptr) (* (( (ptr) gf←c0477)+166)/* var←c49744 */  ))+7) );
            (* (( (ptr) (* (( (ptr) formal←c0478)+4) ))+46) ) = (word) ( *( (fPt) ((*  (ptr) pd112 ))))((word) (( (bPt) gf←c0477)+576)
               /* var←c48720 */ , (* (( (ptr) formal←c0478)+4) ), var←c49904, pd112);
            };
         };
      };
   return(0);
   }

static word CaptureAction←P420(data←v20056)
   word data←v20056;
   {
   register ptr gf←c53264 =  (ptr) &globalframe;
   word results←v20100;
   word ggData←v11380;
   /* CaptureAction: */ 
SOURCE(6723, 239)
SOURCE(6723, 239)
   results←v20100 = 0;
SOURCE(6768, 29)
   ggData←v11380 = XR←Narrow(data←v20056, (* (( (ptr) gf←c53264)+29) ));
SOURCE(6799, 45)
   if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c53264)+164)/* var←c49488 */  ))+5) ) ))) {
SOURCE(6828, 16)
      (void) (XR←RaiseSignal((word) (( (bPt) gf←c53264)+260), 0, 0));
      };
SOURCE(6846, 46)
   {
      word pd113;
      pd113 = (* (( (ptr) (* (( (ptr) gf←c53264)+166)/* var←c49744 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd113 ))))(1, pd113);
      };
SOURCE(6894, 15)
   {
      word pd114;
      pd114 = (* (( (ptr) (* (( (ptr) gf←c53264)+167)/* var←c49872 */  ))+23) );
      (void) ( *( (fPt) ((*  (ptr) pd114 ))))(pd114);
      };
SOURCE(6911, 51)
   (void) Capture←P540(ggData←v11380, (* (( (ptr) ggData←v11380)+47) ), 0);
SOURCE(6723, 239)
   return(results←v20100);
   }

static void NewCapture←P480(formal←c0570, formal←c0571)
   word formal←c0570;
   word formal←c0571;
   {
   W6 var←c53296;
   /* declaration of name←v6380 skipped */ 
   /* declaration of ggData←v6408 skipped */ 
   register ptr gf←c53328 =  (ptr) &globalframe;
   var←c53296.f4/* name←v6380 */  = formal←c0570;
   var←c53296.f5/* ggData←v6408 */  = formal←c0571;
   /* NewCapture: */ 
SOURCE(6968, 1146)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c53328)+16)/* LOCK←v3952 */ ));
SOURCE(7036, 1078)
   {
      word var←c02;
      {
         word var←c0537;
         var←c0537 = (word) &var←c53296;
         var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q4788) ), ( ((word)  (fPt) NoName←Q5448) ), var←c0537);
         };
      if ((var←c02 == 1)) {
         goto lab←L05;
         };
      };
SOURCE(6968, 1146)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c53328)+16)/* LOCK←v3952 */ ));
   return;
   lab←L05: ;
   return;
   }

static word NoName←Q4788(formal←c0482)
   word formal←c0482;
   {
   register ptr gf←c0481 =  (ptr) &globalframe;
SOURCE(7059, 1055)
   if ((0 != (* (( (ptr) gf←c0481)+8)/* noHistory←v4428 */  ))) {
SOURCE(7077, 12)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0481)+16)/* LOCK←v3952 */ ));
      return(1);
      }
   else {
SOURCE(7089, 1030)
      {
         word count←v11424;
         word nameAndCount←v11452;
SOURCE(7091, 69)
         {
            word pd115;
            word idx116;
            pd115 = (* (( (ptr) (* (( (ptr) gf←c0481)+161)/* var←c49008 */  ))+36) );
            count←v11424 = (
               idx116 = (word) ( *( (fPt) ((*  (ptr) pd115 ))))((* (( (ptr) (* (( (ptr) formal←c0482)+5) ))+11) ), 0, 0, 0, pd115),
               SGNCK(idx116)
               );
            };
SOURCE(7162, 186)
         if (( (int)count←v11424 ==  (int)0)) {
            {
               W2 var←c49936;
               var←c49936.f0 = 11;
               var←c49936.f1 = (* (( (ptr) formal←c0482)+4) );
               {
                  word pd117;
                  pd117 = (* (( (ptr) (* (( (ptr) gf←c0481)+162)/* var←c49072 */  ))+63) );
                  nameAndCount←v11452 = (word) ( *( (fPt) ((*  (ptr) pd117 ))))((* (( (ptr) gf←c0481)+57) ), var←c49936, pd117);
                  };
               };
            }
         else {
            {
               W2 var←c49968;
               W2 var←c50000;
               W2 var←c50032;
               var←c49968.f0 = 11;
               var←c49968.f1 = (* (( (ptr) formal←c0482)+4) );
               var←c50000.f0 = 5;
               var←c50000.f1 = count←v11424;
               var←c50032.f0 = 11;
               if (( (int)count←v11424 >  (int)1)) {
                  var←c50032.f1 = (* (( (ptr) gf←c0481)+49) );
                  }
               else {
                  var←c50032.f1 = 0;
                  };
               {
                  word pd118;
                  pd118 = (* (( (ptr) (* (( (ptr) gf←c0481)+162)/* var←c49072 */  ))+62) );
                  nameAndCount←v11452 = (word) ( *( (fPt) ((*  (ptr) pd118 ))))((* (( (ptr) gf←c0481)+50) ), var←c49968, var←c50000, var←c50032, pd118)
                  ;
                  };
               };
            };
SOURCE(7350, 45)
         if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0481)+164)/* var←c49488 */  ))+5) ) ))) {
SOURCE(7379, 16)
            (void) (XR←RaiseSignal((word) (( (bPt) gf←c0481)+260), 0, 0));
            };
SOURCE(7397, 717)
         if (((* (( (ptr) (* (( (ptr) formal←c0482)+5) ))+46) ) != 0)) {
SOURCE(7439, 561)
            {
               word advanceStatus←v11496;
               W2 var←c0166;
SOURCE(7441, 114)
               {
                  word pd119;
                  pd119 = (* (( (ptr) (* (( (ptr) gf←c0481)+166)/* var←c49744 */  ))+9) );
                  (void) ( *( (fPt) ((*  (ptr) pd119 ))))((word) &var←c0166, (* (( (ptr) (* (( (ptr) formal←c0482)+5) ))+46) ), 1, pd119);
                  };
               advanceStatus←v11496 = var←c0166.f0;
SOURCE(7557, 348)
               {
                  word var←c50064;
                  var←c50064 = advanceStatus←v11496;
                  if ((var←c50064 == 0)) {
SOURCE(7593, 47)
                     (*  (ptr) (* (( (ptr) (* (( (ptr) formal←c0482)+5) ))+47) ) ) = nameAndCount←v11452;
SOURCE(7642, 47)
                     (void) SetCurrent←P720((* (( (ptr) formal←c0482)+5) ), (* (( (ptr) (* (( (ptr) formal←c0482)+5) ))+47) ));
                     }
                  else {
                     if ((var←c50064 == 1)) {
SOURCE(7815, 40)
                        {
                           word var←c50096;
                           var←c50096 = (word) Create←P660(nameAndCount←v11452);
                           (void) SetCurrent←P720((* (( (ptr) formal←c0482)+5) ), var←c50096);
                           };
SOURCE(7857, 48)
                        {
                           word var←c50128;
                           W2 var←c0170;
                           (void) GetCurrent←P780((word) &var←c0170, (* (( (ptr) formal←c0482)+5) ));
                           var←c50128 = var←c0170.f0;
                           (void) Capture←P540((* (( (ptr) formal←c0482)+5) ), var←c50128, 0);
                           };
                        }
                     else {
SOURCE(7921, 5)
                        (void) XR←RaiseUnnamedError();
                        };
                     };
                  };
SOURCE(7928, 35)
               (* (( (ptr) (* (( (ptr) formal←c0482)+5) ))+46) ) = 0;
SOURCE(7965, 33)
               (* (( (ptr) (* (( (ptr) formal←c0482)+5) ))+47) ) = 0;
               };
            }
         else {
SOURCE(8024, 40)
            {
               word var←c50160;
               var←c50160 = (word) Create←P660(nameAndCount←v11452);
               (void) SetCurrent←P720((* (( (ptr) formal←c0482)+5) ), var←c50160);
               };
SOURCE(8066, 48)
            {
               word var←c50192;
               W2 var←c0173;
               (void) GetCurrent←P780((word) &var←c0173, (* (( (ptr) formal←c0482)+5) ));
               var←c50192 = var←c0173.f0;
               (void) Capture←P540((* (( (ptr) formal←c0482)+5) ), var←c50192, 0);
               };
            };
         };
      };
   return(0);
   }

static void Capture←P540(ggData←v6468, currentEvent←v6496, copyAll←v6524)
   word ggData←v6468;
   word currentEvent←v6496;
   word copyAll←v6524;
   {
   register ptr gf←c53360 =  (ptr) &globalframe;
   /* Capture: */ 
SOURCE(8126, 396)
SOURCE(8212, 310)
   if ((currentEvent←v6496 != 0)) {
SOURCE(8237, 287)
      {
         word captureRef←v11540 = 0;
         word virginList←v11568 = 0;
         word virginMap←v11596 = 0;
SOURCE(8321, 73)
         {
            W2 var←c50224;
            {
               word pd120;
               pd120 = (* (( (ptr) (* (( (ptr) gf←c53360)+165)/* var←c49616 */  ))+29) );
               (void) ( *( (fPt) ((*  (ptr) pd120 ))))((word) &var←c50224, (* (( (ptr) ggData←v6468)+11) ), copyAll←v6524, pd120);
               };
            virginMap←v11596 = var←c50224.f1;
            virginList←v11568 = var←c50224.f0;
            };
SOURCE(8396, 83)
         {
            word var←c50256;
            var←c50256 = XR←NewObject(16, (* (( (ptr) gf←c53360)+15) ));
            (*  (ptr) var←c50256 ) = 2;
            (* (( (ptr) var←c50256)+1) ) = (* (( (ptr) ggData←v6468)+11) );
            (* (( (ptr) var←c50256)+2) ) = virginList←v11568;
            (* (( (ptr) var←c50256)+3) ) = virginMap←v11596;
            captureRef←v11540 = var←c50256;
            };
SOURCE(8481, 41)
         (void) Note←P1140(currentEvent←v6496, (word) (( (bPt) gf←c53360)+552)/* var←c48624 */ , captureRef←v11540);
         };
      };
   }

static void Uncapture←P600(historyData←v6584, currentEvent←v6612)
   word historyData←v6584;
   word currentEvent←v6612;
   {
   register ptr gf←c53392 =  (ptr) &globalframe;
   /* Uncapture: */ 
SOURCE(8531, 268)
SOURCE(8605, 194)
   if ((0 != (* (( (ptr) gf←c53392)+8)/* noHistory←v4428 */  ))) {
SOURCE(8623, 12)
      return;
      }
   else {
SOURCE(8635, 166)
      {
         word captureData←v11736 = 0;
SOURCE(8670, 34)
         if ((historyData←v6584 == 0)) {
            goto lab←L100014;
            };
         if (((*  (ptr) historyData←v6584 ) == 2)) {
            goto lab←L100014;
            };
         (void) XR←RaiseError(XR←NarrowFault, 0);
         lab←L100014: ;
         captureData←v11736 = historyData←v6584;
SOURCE(8706, 93)
         {
            word pd121;
            pd121 = (* (( (ptr) (* (( (ptr) gf←c53392)+165)/* var←c49616 */  ))+30) );
            (void) ( *( (fPt) ((*  (ptr) pd121 ))))((* (( (ptr) captureData←v11736)+1) ), (* (( (ptr) captureData←v11736)+2) ), (* (( (ptr) captureData←v11736)+3)
                ), pd121);
            };
         };
      };
   }

static word Create←P660(name←v6684)
   word name←v6684;
   {
   register ptr gf←c53424 =  (ptr) &globalframe;
   word var←c6728;
   /* Create: */ 
SOURCE(8808, 146)
SOURCE(8873, 81)
   if ((0 != (* (( (ptr) gf←c53424)+8)/* noHistory←v4428 */  ))) {
      return(0);
      }
   else {
      {
         word var←c50320;
         word var←c50416;
         var←c50320 = XR←NewObject(8, (* (( (ptr) gf←c53424)+31) ));
         {
            word var←c50384;
            var←c50384 = var←c50320;
            };
         var←c50416 = XR←NewObject(12, (* (( (ptr) gf←c53424)+28) ));
         (*  (ptr) var←c50416 ) = name←v6684;
         (* (( (ptr) var←c50416)+1) ) =  (word) -1;
         (* (( (ptr) var←c50416)+2) ) = var←c50320;
         return(var←c50416);
         };
      };
   }

static void SetCurrent←P720(ggData←v6788, event←v6816)
   word ggData←v6788;
   word event←v6816;
   {
   register ptr gf←c53456 =  (ptr) &globalframe;
   /* SetCurrent: */ 
SOURCE(8960, 179)
SOURCE(9057, 45)
   if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c53456)+164)/* var←c49488 */  ))+5) ) ))) {
SOURCE(9086, 16)
      (void) (XR←RaiseSignal((word) (( (bPt) gf←c53456)+260), 0, 0));
      };
SOURCE(9104, 35)
   (* (( (ptr) ggData←v6788)+44) ) = event←v6816;
   }

static void GetCurrent←P780(formal←c0198, ggData←v6876)
   word formal←c0198;
   word ggData←v6876;
   {
   word event←v6920;
   word index←v6948;
   /* GetCurrent: */ 
SOURCE(9145, 151)
SOURCE(9145, 151)
   event←v6920 = 0;
SOURCE(9232, 64)
   event←v6920 = (* (( (ptr) ggData←v6876)+44) );
   index←v6948 = (* (( (ptr) ggData←v6876)+43) );
   /* removed tail goto */ 
   (*  (ptr) formal←c0198 ) = event←v6920;
   (* (( (ptr) formal←c0198)+1) ) = index←v6948;
   return;
   }

static void DescendASlice←P840(slice←v7008, walkProc←v7036)
   word slice←v7008;
   word walkProc←v7036;
   {
   register ptr gf←c53488 =  (ptr) &globalframe;
   /* DescendASlice: */ 
SOURCE(9302, 134)
SOURCE(9366, 20)
   {
      word var←c50512;
      var←c50512 = (word) ( *( (fPt) ((*  (ptr) walkProc←v7036 ))))(slice←v7008, walkProc←v7036);
      };
SOURCE(9388, 48)
   {
      word var←c50576;
      word pd122;
      pd122 = (* (( (ptr) (* (( (ptr) gf←c53488)+168)/* var←c50544 */  ))+73) );
      var←c50576 = (word) ( *( (fPt) ((*  (ptr) pd122 ))))(slice←v7008, 2, walkProc←v7036, 0, pd122);
      };
   }

static void WalkSlicesInEvent←P900(event←v7096, walkProc←v7124)
   word event←v7096;
   word walkProc←v7124;
   {
   register ptr gf←c53520 =  (ptr) &globalframe;
   /* WalkSlicesInEvent: */ 
SOURCE(9442, 928)
SOURCE(9517, 853)
   if ((event←v7096 != 0)) {
SOURCE(9535, 835)
      {
         register word subevents←v11792;
         subevents←v11792 = (* (( (ptr) event←v7096)+2) );
         lab←L100019: ;
         if ((subevents←v11792 != 0)) {
            }
         else {
            goto lab←L100016;
            };
SOURCE(9624, 746)
         if (((*  (ptr) subevents←v11792 ) != 0)) {
SOURCE(9652, 785)
            {
               word subevent←v11920;
               word historyData←v11948;
SOURCE(9654, 36)
               subevent←v11920 = (*  (ptr) subevents←v11792 );
SOURCE(9692, 46)
               historyData←v11948 = (* (( (ptr) subevent←v11920)+1) );
SOURCE(9740, 630)
               {
                  word var←c50608;
                  var←c50608 = historyData←v11948;
                  if ((var←c50608 == 0)) {
                     goto lab←L100020;
                     };
                  {
                     word var←c50704;
                     var←c50704 = (*  (ptr) var←c50608 );
                     switch (var←c50704) {
                        case 2: 
                           {
/*1*/   word captureRef←v12004;
/*1*/   captureRef←v12004 = var←c50608;
SOURCE(9805, 436)
/*1*/   {
/*1*/      register word capturedSlices←v12060;
/*1*/      capturedSlices←v12060 = (* (( (ptr) captureRef←v12004)+2) );
/*1*/      lab←L100024: ;
/*1*/      if ((capturedSlices←v12060 != 0)) {
/*1*/         }
/*1*/      else {
/*1*/         goto lab←L100021;
/*1*/         };
/*1*/      {
/*1*/         word found←v12188 = 0;
/*1*/         word nextVal←v12216 = 0;
/*1*/         word nextSlice←v12244;
SOURCE(9947, 39)
/*1*/         nextSlice←v12244 = (*  (ptr) capturedSlices←v12060 );
SOURCE(9988, 64)
/*1*/         {
/*1*/            W2 var←c50672;
/*1*/            {
/*1*/               word pd123;
/*1*/               pd123 = (* (( (ptr) (* (( (ptr) gf←c53520)+169)/* var←c50640 */  ))+7) );
/*1*/               (void) ( *( (fPt) ((*  (ptr) pd123 ))))((word) &var←c50672, (* (( (ptr) captureRef←v12004)+3) ), nextSlice←v12244, pd123)
/*1*/               ;
/*1*/               };
/*1*/            nextVal←v12216 = var←c50672.f1;
/*1*/            found←v12188 = var←c50672.f0;
/*1*/            };
SOURCE(10054, 62)
/*1*/         if (((*  (ptr) nextSlice←v12244 ) != 0)) {
SOURCE(10082, 34)
/*1*/            (void) DescendASlice←P840(nextSlice←v12244, walkProc←v7124);
/*1*/            };
SOURCE(10118, 123)
/*1*/         if ((0 != found←v12188)) {
SOURCE(10132, 111)
/*1*/            {
/*1*/               word nextOriginal←v12300;
SOURCE(10134, 37)
/*1*/               nextOriginal←v12300 = XR←Narrow(nextVal←v12216, (* (( (ptr) gf←c53520)+32) ));
SOURCE(10173, 68)
/*1*/               if (((*  (ptr) nextOriginal←v12300 ) != 0)) {
SOURCE(10204, 37)
/*1*/                  (void) DescendASlice←P840(nextOriginal←v12300, walkProc←v7124);
/*1*/                  };
/*1*/               };
/*1*/            };
/*1*/         };
/*1*/      capturedSlices←v12060 = (* (( (ptr) capturedSlices←v12060)+1) );
/*1*/      goto lab←L100024;
/*1*/      lab←L100021: ;
/*1*/      };
/*1*/   };
                           break;
                        case 0: 
                           {
/*1*/   word propsRef←v12344;
/*1*/   propsRef←v12344 = var←c50608;
SOURCE(10298, 72)
/*1*/   if (((*  (ptr) (* (( (ptr) propsRef←v12344)+2) ) ) != 0)) {
SOURCE(10331, 39)
/*1*/      (void) DescendASlice←P840((* (( (ptr) propsRef←v12344)+2) ), walkProc←v7124);
/*1*/      };
/*1*/   };
                           break;
                        case 1: 
                           {
/*1*/   word stateRef←v12400;
/*1*/   stateRef←v12400 = var←c50608;
/*1*/   };
                           break;
                        default: 
                           lab←L100020: ;
SOURCE(10430, 5)
                           (void) XR←RaiseUnnamedError();
                           break;
                        };
                     };
                  };
               };
            };
         subevents←v11792 = (* (( (ptr) subevents←v11792)+1) );
         goto lab←L100019;
         lab←L100016: ;
         };
      };
   }

static void SetHistory←P960(ggData←v7184, list←v7212)
   word ggData←v7184;
   word list←v7212;
   {
   register ptr gf←c53552 =  (ptr) &globalframe;
   /* SetHistory: */ 
SOURCE(10453, 146)
SOURCE(10526, 45)
   if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c53552)+164)/* var←c49488 */  ))+5) ) ))) {
SOURCE(10555, 16)
      (void) (XR←RaiseSignal((word) (( (bPt) gf←c53552)+260), 0, 0));
      };
SOURCE(10573, 26)
   (* (( (ptr) ggData←v7184)+41) ) = list←v7212;
   }

static word GetHistory←P1020(ggData←v7356)
   word ggData←v7356;
   {
   word var←c7400;
   /* GetHistory: */ 
SOURCE(10605, 103)
SOURCE(10681, 27)
   return((* (( (ptr) ggData←v7356)+41) ));
   }

static void Push←P1080(event←v7544, list←v7572)
   word event←v7544;
   word list←v7572;
   {
   register ptr gf←c53584 =  (ptr) &globalframe;
   /* Push: */ 
SOURCE(10714, 397)
SOURCE(10786, 45)
   if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c53584)+164)/* var←c49488 */  ))+5) ) ))) {
SOURCE(10815, 16)
      (void) (XR←RaiseSignal((word) (( (bPt) gf←c53584)+260), 0, 0));
      };
SOURCE(10833, 278)
   if ( ( (event←v7544 != 0) ? ((* (( (ptr) event←v7544)+2) ) != 0) : 0 ) ) {
SOURCE(10875, 238)
      {
         word tempEvent←v12456 = 0;
         word newList←v12484;
         word temp←v12512;
SOURCE(10902, 9)
         newList←v12484 = XR←NewObject(8, (* (( (ptr) gf←c53584)+33) ));
         {
            word var←c50768;
            var←c50768 = newList←v12484;
            (*  (ptr) var←c50768 ) = event←v7544;
            };
SOURCE(10947, 6)
         temp←v12512 = (* (( (ptr) list←v7572)+1) );
SOURCE(10987, 19)
         (* (( (ptr) list←v7572)+1) ) = newList←v12484;
SOURCE(11008, 19)
         (* (( (ptr) newList←v12484)+1) ) = temp←v12512;
SOURCE(11030, 22)
         tempEvent←v12456 = (*  (ptr) list←v7572 );
SOURCE(11054, 28)
         (*  (ptr) list←v7572 ) = (*  (ptr) (* (( (ptr) list←v7572)+1) ) );
SOURCE(11084, 27)
         (*  (ptr) (* (( (ptr) list←v7572)+1) ) ) = tempEvent←v12456;
         };
      };
   }

static void Note←P1140(event←v7716, historyProc←v7744, historyData←v7772)
   word event←v7716;
   word historyProc←v7744;
   word historyData←v7772;
   {
   register ptr gf←c53616 =  (ptr) &globalframe;
   /* Note: */ 
SOURCE(11120, 399)
SOURCE(11215, 26)
   if ((event←v7716 == 0)) {
SOURCE(11235, 6)
      return;
      };
SOURCE(11243, 45)
   if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c53616)+164)/* var←c49488 */  ))+5) ) ))) {
SOURCE(11272, 16)
      (void) (XR←RaiseSignal((word) (( (bPt) gf←c53616)+260), 0, 0));
      };
SOURCE(11290, 141)
   if ( (  (  ( (0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c53616)+164)/* var←c49488 */  ))+4) ) )) ? ((* (( (ptr) event←v7716)+2)
    ) != 0) : 0 )  ? ((*  (ptr) (* (( (ptr) event←v7716)+2) ) ) != 0) : 0 )  ? ((*  (ptr) (* (( (ptr) (*  (ptr) (* (( (ptr) event←v7716)+2)
       ) ))+1) ) ) == 2) : 0 ) ) {
SOURCE(11425, 6)
      return;
      };
SOURCE(11433, 86)
   {
      word var←c50800;
      word var←c50864;
      {
         word var←c50832;
         var←c50832 = XR←NewObject(8, (* (( (ptr) gf←c53616)+34) ));
         (*  (ptr) var←c50832 ) = XR←CheckProc(historyProc←v7744);
         (* (( (ptr) var←c50832)+1) ) = historyData←v7772;
         var←c50800 = var←c50832;
         };
      var←c50864 = XR←NewObject(8, (* (( (ptr) gf←c53616)+31) ));
      (*  (ptr) var←c50864 ) = var←c50800;
      (* (( (ptr) var←c50864)+1) ) = (* (( (ptr) event←v7716)+2) );
      (* (( (ptr) event←v7716)+2) ) = var←c50864;
      };
   }

static void Undo←P1200(historyEvent←v7844, currentEvent←v7872)
   word historyEvent←v7844;
   word currentEvent←v7872;
   {
   register ptr gf←c53648 =  (ptr) &globalframe;
   /* Undo: */ 
SOURCE(11525, 346)
SOURCE(11604, 31)
   if ((historyEvent←v7844 == 0)) {
SOURCE(11629, 6)
      return;
      };
SOURCE(11637, 45)
   if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c53648)+164)/* var←c49488 */  ))+5) ) ))) {
SOURCE(11666, 16)
      (void) (XR←RaiseSignal((word) (( (bPt) gf←c53648)+260), 0, 0));
      };
SOURCE(11684, 187)
   {
      register word nextSubs←v12724;
      nextSubs←v12724 = (* (( (ptr) historyEvent←v7844)+2) );
      lab←L100028: ;
      if ((nextSubs←v12724 != 0)) {
         }
      else {
         goto lab←L100025;
         };
      {
         word sub←v12852;
SOURCE(11777, 30)
         sub←v12852 = (*  (ptr) nextSubs←v12724 );
SOURCE(11809, 62)
         if ((sub←v12852 != 0)) {
SOURCE(11825, 46)
            {
               word pd124;
               pd124 = (*  (ptr) sub←v12852 );
               (void) ( *( (fPt) ((*  (ptr) pd124 ))))((* (( (ptr) sub←v12852)+1) ), currentEvent←v7872, pd124);
               };
            };
         };
      nextSubs←v12724 = (* (( (ptr) nextSubs←v12724)+1) );
      goto lab←L100028;
      lab←L100025: ;
      };
   }

static void ResetHistory←P1260(formal←c0572)
   word formal←c0572;
   {
   W5 var←c53680;
   /* declaration of ggData←v7932 skipped */ 
   register ptr gf←c53712 =  (ptr) &globalframe;
   var←c53680.f4/* ggData←v7932 */  = formal←c0572;
   /* ResetHistory: */ 
SOURCE(11886, 550)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c53712)+16)/* LOCK←v3952 */ ));
SOURCE(11939, 497)
   {
      word var←c0538;
      var←c0538 = (word) &var←c53680;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q4848) ), ( ((word)  (fPt) NoName←Q5388) ), var←c0538);
      };
SOURCE(11886, 550)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c53712)+16)/* LOCK←v3952 */ ));
   return;
   }

static word NoName←Q4848(formal←c0495)
   word formal←c0495;
   {
   register ptr gf←c0494 =  (ptr) &globalframe;
SOURCE(11962, 16)
   {
      word sliceList←v12896 = 0;
      word ptr←v12924 = 0;
SOURCE(11993, 45)
      {
         W2 var←c50896;
         {
            word pd125;
            pd125 = (* (( (ptr) (* (( (ptr) gf←c0494)+165)/* var←c49616 */  ))+20) );
            (void) ( *( (fPt) ((*  (ptr) pd125 ))))((word) (&var←c50896), pd125);
            };
         ptr←v12924 = var←c50896.f1;
         sliceList←v12896 = var←c50896.f0;
         };
SOURCE(12040, 34)
      (void) KillAdvanceCaptureInternal←P240((* ((( (ptr) formal←c0495)+4)) ));
SOURCE(12076, 168)
      {
         register word historyEventList←v13052;
         historyEventList←v13052 = (* (( (ptr) (* (( (ptr) formal←c0495)+4) ))+41) );
         lab←L100034: ;
         if ((historyEventList←v13052 != 0)) {
            }
         else {
            goto lab←L100031;
            };
SOURCE(12194, 50)
         (void) ResetEvent←P1320((*  (ptr) historyEventList←v13052 ), sliceList←v12896, ptr←v12924);
         historyEventList←v13052 = (* (( (ptr) historyEventList←v13052)+1) );
         goto lab←L100034;
         lab←L100031: ;
         };
SOURCE(12255, 29)
      (void) UnlinkListedSlices←P1380(sliceList←v12896);
SOURCE(12308, 31)
      (* (( (ptr) (* (( (ptr) formal←c0495)+4) ))+41) ) = XR←NewObject(8, (* (( (ptr) gf←c0494)+33) ));
      {
         word var←c50960;
         var←c50960 = (* (( (ptr) (* (( (ptr) formal←c0495)+4) ))+41) );
         };
SOURCE(12341, 31)
      (* (( (ptr) (* (( (ptr) formal←c0495)+4) ))+43) ) = 0;
SOURCE(12374, 33)
      (* (( (ptr) (* (( (ptr) formal←c0495)+4) ))+44) ) = 0;
SOURCE(12409, 27)
      {
         word pd126;
         pd126 = (* (( (ptr) (* (( (ptr) gf←c0494)+170)/* var←c50992 */  ))+23) );
         (void) ( *( (fPt) ((*  (ptr) pd126 ))))((* ((( (ptr) formal←c0495)+4)) ), pd126);
         };
      };
   return(0);
   }

static void ResetEvent←P1320(event←v7992, formal←c0573, formal←c0574)
   word event←v7992;
   word formal←c0573;
   word formal←c0574;
   {
   W9 var←c53744;
   /* declaration of sliceList←v8020 skipped */ 
   /* declaration of ptr←v8048 skipped */ 
   /* declaration of var←c51024 skipped */ 
   (* (( (ptr) &var←c53744)+4)/* sliceList←v8020 */  ) = formal←c0573;
   (* (( (ptr) &var←c53744)+5)/* ptr←v8048 */  ) = formal←c0574;
   /* ResetEvent: */ 
SOURCE(12442, 552)
   {
      word tmpAddr127;
      tmpAddr127 = (word) (( (ptr) &var←c53744)+6)/* var←c51024 */ ;
      (*  (ptr) tmpAddr127 ) = ( ((word)  (fPt) AddSliceToUnlink←P4044) );
      (* (( (ptr) tmpAddr127) + 1) ) = 1;
      };
SOURCE(12517, 477)
   if ((event←v7992 != 0)) {
SOURCE(12535, 461)
      {
         /* declaration of index←v13208 skipped */ 
SOURCE(12726, 24)
         (* (( (ptr) &var←c53744)+8)/* index←v13208 */  ) = (* (( (ptr) event←v7992)+1) );
SOURCE(12752, 42)
         (void) WalkSlicesInEvent←P900(event←v7992, (word) (( (bPt) &var←c53744)+24)/* var←c51024 */ );
SOURCE(12797, 165)
         {
            register word subeventList←v13356;
            subeventList←v13356 = (* (( (ptr) event←v7992)+2) );
            lab←L100038: ;
            if ((subeventList←v13356 != 0)) {
               }
            else {
               goto lab←L100035;
               };
SOURCE(12895, 67)
            if (((*  (ptr) subeventList←v13356 ) != 0)) {
SOURCE(12926, 36)
               (* (( (ptr) (*  (ptr) subeventList←v13356 ))+1) ) = 0;
               };
            subeventList←v13356 = (* (( (ptr) subeventList←v13356)+1) );
            goto lab←L100038;
            lab←L100035: ;
            };
SOURCE(12973, 21)
         (* (( (ptr) event←v7992)+2) ) = 0;
         };
      };
   }

static word AddSliceToUnlink←P4044(slice←v13284, formal←c53808)
   word slice←v13284;
   word formal←c53808;
   {
   register ptr gf←c53776 =  (ptr) &globalframe;
   word done←v13328;
   formal←c53808 = (formal←c53808 - 24);
   /* AddSliceToUnlink: */ 
SOURCE(12537, 24)
SOURCE(12537, 24)
   done←v13328 = 0;
SOURCE(12608, 112)
   if ( ( ((*  (ptr) slice←v13284 ) != 0) ? ( (int)(* (( (ptr) slice←v13284)+20) ) <=  (int)(* (( (ptr) formal←c53808)+8) )) : 0 ) ) {
SOURCE(12660, 60)
      {
         W2 var←c51056;
         {
            word pd128;
            pd128 = (* (( (ptr) (* (( (ptr) gf←c53776)+165)/* var←c49616 */  ))+21) );
            (void) ( *( (fPt) ((*  (ptr) pd128 ))))((word) &var←c51056, slice←v13284, (* (( (ptr) formal←c53808)+4) ), (* (( (ptr) formal←c53808)+5)
                ), pd128);
            };
         (* (( (ptr) formal←c53808)+5) ) = var←c51056.f1;
         (* (( (ptr) formal←c53808)+4) ) = var←c51056.f0;
         };
      };
SOURCE(12537, 24)
   return(done←v13328);
   }

static void UnlinkListedSlices←P1380(sliceList←v8192)
   word sliceList←v8192;
   {
   register ptr gf←c53840 =  (ptr) &globalframe;
   /* UnlinkListedSlices: */ 
SOURCE(13003, 177)
SOURCE(13059, 121)
   if ((0 != (* (( (ptr) gf←c53840)+11)/* doUnlink←v4512 */  ))) {
SOURCE(13076, 104)
      {
         register word slices←v13484;
         slices←v13484 = sliceList←v8192;
         lab←L100042: ;
         if ((slices←v13484 != 0)) {
            }
         else {
            goto lab←L100039;
            };
SOURCE(13147, 33)
         {
            word pd129;
            pd129 = (* (( (ptr) (* (( (ptr) gf←c53840)+171)/* var←c51088 */  ))+71) );
            (void) ( *( (fPt) ((*  (ptr) pd129 ))))((*  (ptr) (slices←v13484) ), pd129);
            };
         slices←v13484 = (* (( (ptr) slices←v13484)+1) );
         goto lab←L100042;
         lab←L100039: ;
         };
      };
   }

static void Reset←P1440(event←v8336)
   word event←v8336;
   {
   /* Reset: */ 
SOURCE(13253, 104)
SOURCE(13298, 59)
   if ((event←v8336 != 0)) {
SOURCE(13318, 21)
      (* (( (ptr) event←v8336)+2) ) = 0;
SOURCE(13341, 16)
      (*  (ptr) event←v8336 ) = 0;
      };
   }

static word Empty←P1500(event←v8396)
   word event←v8396;
   {
   word var←c8440;
   /* Empty: */ 
SOURCE(13366, 102)
SOURCE(13426, 42)
   {
      word tc130;
      if ((event←v8396 == 0)) {
         tc130 =  (word)  (unsigned) 1;
         }
      else {
         tc130 =  (word)  (unsigned) ((* (( (ptr) event←v8396)+2) ) == 0);
         };
      return(tc130);
      };
   }

static void UndoN←P1560(formal←c0575, N←v8528)
   word formal←c0575;
   word N←v8528;
   {
   W7 var←c53872;
   /* declaration of ggData←v8500 skipped */ 
   register ptr gf←c53904 =  (ptr) &globalframe;
   /* declaration of var←c51120 skipped */ 
   var←c53872.f4/* ggData←v8500 */  = formal←c0575;
   /* UndoN: */ 
SOURCE(13472, 1743)
   {
      word tmpAddr131;
      tmpAddr131 = (word) (( (ptr) &var←c53872)+5)/* var←c51120 */ ;
      (*  (ptr) tmpAddr131 ) = ( ((word)  (fPt) Reselect←P4296) );
      (* (( (ptr) tmpAddr131) + 1) ) = 1;
      };
SOURCE(13524, 1691)
   if ((0 != (* (( (ptr) gf←c53904)+8)/* noHistory←v4428 */  ))) {
SOURCE(13542, 12)
      return;
      }
   else {
SOURCE(13554, 1663)
      {
         word title←v13640 = 0;
         word actualCount←v13668 = 0;
         word currentEvent←v13696 = 0;
         word list←v13724;
SOURCE(13670, 6)
         {
            word pd132;
            pd132 = (* (( (ptr) (* (( (ptr) gf←c53904)+170)/* var←c50992 */  ))+16) );
            list←v13724 = (word) ( *( (fPt) ((*  (ptr) pd132 ))))(var←c53872.f4/* ggData←v8500 */ , pd132);
            };
SOURCE(13729, 1486)
         if ( ( (list←v13724 != 0) ? ((*  (ptr) list←v13724 ) != 0) : 0 ) ) {
SOURCE(13792, 56)
            {
               word pd133;
               pd133 = (* (( (ptr) (* (( (ptr) gf←c53904)+170)/* var←c50992 */  ))+4) );
               currentEvent←v13696 = (word) ( *( (fPt) ((*  (ptr) pd133 ))))((* (( (ptr) gf←c53904)+37) ), var←c53872.f4/* ggData←v8500 */ , pd133)
               ;
               };
SOURCE(13850, 35)
            (void) Capture←P540(var←c53872.f4/* ggData←v8500 */ , currentEvent←v13696, 1);
SOURCE(13932, 162)
            {
               register word noName←c51152 = 0;
               register word noName←c51184;
               noName←c51184 = N←v8528;
               if (( (int)noName←c51152 >=  (int)noName←c51184)) {
                  goto lab←L100043;
                  };
               lab←L100046: ;
SOURCE(13950, 144)
               if ( ( (list←v13724 != 0) ? ((*  (ptr) list←v13724 ) != 0) : 0 ) ) {
SOURCE(13988, 59)
                  {
                     word pd134;
                     pd134 = (* (( (ptr) (* (( (ptr) gf←c53904)+170)/* var←c50992 */  ))+11) );
                     (void) ( *( (fPt) ((*  (ptr) pd134 ))))((*  (ptr) list←v13724 ), 0, pd134);
                     };
SOURCE(14049, 16)
                  list←v13724 = (* (( (ptr) list←v13724)+1) );
SOURCE(14067, 27)
                  actualCount←v13668 = (actualCount←v13668 + 1);
                  };
               noName←c51152 = (noName←c51152 + 1);
               if (( (int)noName←c51152 <  (int)noName←c51184)) {
                  goto lab←L100046;
                  };
               lab←L100043: ;
               };
SOURCE(14108, 232)
            {
               word var←c51216;
               W2 var←c0275;
               {
                  word var←c51248;
                  {
                     word var←c51280;
                     word var←c51312;
                     var←c51280 = XR←NewObject(12, (* (( (ptr) gf←c53904)+35) ));
                     var←c51312 = var←c51280;
                     (*  (ptr) var←c51312 ) = 5;
                     (* (( (ptr) var←c51312)+1) ) = N←v8528;
                     (* (( (ptr) var←c51312)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c53904)+35) ));
                     var←c51312 = (* (( (ptr) var←c51312)+2) );
                     (*  (ptr) var←c51312 ) = 11;
                     if (( (int)N←v8528 >  (int)1)) {
                        (* (( (ptr) var←c51312)+1) ) = (* (( (ptr) gf←c53904)+49) );
                        }
                     else {
                        (* (( (ptr) var←c51312)+1) ) = 0;
                        };
                     (* (( (ptr) var←c51312)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c53904)+35) ));
                     var←c51312 = (* (( (ptr) var←c51312)+2) );
                     (*  (ptr) var←c51312 ) = 5;
                     (* (( (ptr) var←c51312)+1) ) = actualCount←v13668;
                     (* (( (ptr) var←c51312)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c53904)+35) ));
                     var←c51312 = (* (( (ptr) var←c51312)+2) );
                     (*  (ptr) var←c51312 ) = 11;
                     if (( (int)actualCount←v13668 >  (int)1)) {
                        (* (( (ptr) var←c51312)+1) ) = (* (( (ptr) gf←c53904)+49) );
                        }
                     else {
                        (* (( (ptr) var←c51312)+1) ) = 0;
                        };
                     var←c51248 = var←c51280;
                     };
                  {
                     word pd135;
                     pd135 = (* (( (ptr) (* (( (ptr) gf←c53904)+162)/* var←c49072 */  ))+65) );
                     var←c51216 = (word) ( *( (fPt) ((*  (ptr) pd135 ))))((* (( (ptr) gf←c53904)+36) ), var←c51248, pd135);
                     };
                  };
               {
                  word pd136;
                  pd136 = (* (( (ptr) (* (( (ptr) gf←c53904)+170)/* var←c50992 */  ))+5) );
                  (void) ( *( (fPt) ((*  (ptr) pd136 ))))((word) &var←c0275, var←c53872.f4/* ggData←v8500 */ , pd136);
                  };
               (*  (ptr) var←c0275.f0 ) = var←c51216;
               title←v13640 = var←c51216;
               };
SOURCE(14342, 29)
            {
               word pd137;
               pd137 = (* (( (ptr) (* (( (ptr) gf←c53904)+170)/* var←c50992 */  ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd137 ))))(var←c53872.f4/* ggData←v8500 */ , pd137);
               };
SOURCE(14373, 32)
            {
               word pd138;
               pd138 = (* (( (ptr) (* (( (ptr) gf←c53904)+172)/* var←c51344 */  ))+9) );
               (void) ( *( (fPt) ((*  (ptr) pd138 ))))((* (( (ptr) var←c53872.f4/* ggData←v8500 */ )+13) ), 0, pd138);
               };
SOURCE(14426, 33)
            {
               word pd139;
               pd139 = (* (( (ptr) (* (( (ptr) gf←c53904)+172)/* var←c51344 */  ))+13) );
               (void) ( *( (fPt) ((*  (ptr) pd139 ))))((* ((( (ptr) var←c53872.f4/* ggData←v8500 */ )+13)) ), pd139);
               };
SOURCE(14484, 37)
            {
               word pd140;
               pd140 = (* (( (ptr) (* (( (ptr) gf←c53904)+173)/* var←c51376 */  ))+101) );
               (void) ( *( (fPt) ((*  (ptr) pd140 ))))(var←c53872.f4/* ggData←v8500 */ , 0, pd140);
               };
SOURCE(14546, 35)
            {
               word pd141;
               pd141 = (* (( (ptr) (* (( (ptr) gf←c53904)+173)/* var←c51376 */  ))+105) );
               (void) ( *( (fPt) ((*  (ptr) pd141 ))))(var←c53872.f4/* ggData←v8500 */ , 8, pd141);
               };
SOURCE(14612, 44)
            {
               word pd142;
               pd142 = (* (( (ptr) (* (( (ptr) gf←c53904)+174)/* var←c51408 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd142 ))))((* ((( (ptr) var←c53872.f4/* ggData←v8500 */ )+11)) ), pd142);
               };
SOURCE(14689, 217)
SOURCE(14829, 75)
            if ((0 != (* (( (ptr) gf←c53904)+10)/* doSelections←v4484 */  ))) {
SOURCE(14850, 54)
               {
                  word var←c51440;
                  word pd143;
                  pd143 = (* (( (ptr) (* (( (ptr) gf←c53904)+161)/* var←c49008 */  ))+31) );
                  var←c51440 = (word) ( *( (fPt) ((*  (ptr) pd143 ))))((* (( (ptr) var←c53872.f4/* ggData←v8500 */ )+11) ), 0, (word) (( (bPt) &var←c53872)+20)
                     /* var←c51120 */ , 0, pd143);
                  };
               };
SOURCE(14911, 58)
            {
               word pd144;
               pd144 = (* (( (ptr) (* (( (ptr) gf←c53904)+175)/* var←c51472 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd144 ))))((* (( (ptr) var←c53872.f4/* ggData←v8500 */ )+3) ), 0, (* (( (ptr) gf←c53904)+42)
                   ), title←v13640, pd144);
               };
SOURCE(14971, 141)
            {
               word pd145;
               pd145 = (* (( (ptr) (* (( (ptr) gf←c53904)+176)/* var←c51504 */  ))+4) );
               (void) ( *( (fPt) ((*  (ptr) pd145 ))))((* (( (ptr) gf←c53904)+44) ), var←c53872.f4/* ggData←v8500 */ , 0, 1, 0, 0, pd145)
               ;
               };
            }
         else {
SOURCE(15121, 94)
            {
               word pd146;
               pd146 = (* (( (ptr) (* (( (ptr) gf←c53904)+175)/* var←c51472 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd146 ))))((* (( (ptr) var←c53872.f4/* ggData←v8500 */ )+3) ), 0, (* (( (ptr) gf←c53904)+45)
                   ), (* (( (ptr) gf←c53904)+46) ), pd146);
               };
            };
         };
      };
   }

static word Reselect←P4296(slice←v13928, formal←c53968)
   word slice←v13928;
   word formal←c53968;
   {
   register ptr gf←c53936 =  (ptr) &globalframe;
   word done←v13972;
   formal←c53968 = (formal←c53968 - 20);
   /* Reselect: */ 
SOURCE(14695, 16)
SOURCE(14695, 16)
   done←v13972 = 0;
SOURCE(14758, 68)
   {
      word pd147;
      pd147 = (* (( (ptr) (* (( (ptr) gf←c53936)+174)/* var←c51408 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd147 ))))(slice←v13928, (* (( (ptr) (* (( (ptr) formal←c53968)+4) ))+11) ), pd147);
      };
SOURCE(14695, 16)
   return(done←v13972);
   }

static void CapTool←P1620(caption←v8604, ggData←v8632)
   word caption←v8604;
   word ggData←v8632;
   {
   register ptr gf←c54000 =  (ptr) &globalframe;
   word tool←v14000;
   /* CapTool: */ 
SOURCE(15252, 291)
SOURCE(15314, 39)
   tool←v14000 = (* (( (ptr) ggData←v8632)+45) );
SOURCE(15355, 188)
   if ((tool←v14000 != 0)) {
SOURCE(15372, 173)
      {
         word container←v14044;
SOURCE(15374, 55)
         container←v14044 = (* (( (ptr) (*  (ptr) tool←v14000 ))+7) );
SOURCE(15431, 55)
         {
            word pd148;
            pd148 = (* (( (ptr) (* (( (ptr) gf←c54000)+163)/* var←c49200 */  ))+6) );
            (* (( (ptr) container←v14044)+13) ) = (word) ( *( (fPt) ((*  (ptr) pd148 ))))((* (( (ptr) gf←c54000)+47) ), caption←v8604, pd148)
            ;
            };
SOURCE(15488, 55)
         {
            word pd149;
            pd149 = (* (( (ptr) (* (( (ptr) gf←c54000)+177)/* var←c51536 */  ))+16) );
            (void) ( *( (fPt) ((*  (ptr) pd149 ))))(container←v14044, 3, 1, 0, pd149);
            };
         };
      };
   }

static word BuildTool←P1680(caption←v8692, ggData←v8720)
   word caption←v8692;
   word ggData←v8720;
   {
   register ptr gf←c54032 =  (ptr) &globalframe;
   word var←c8764;
   word openHeight←v14088 = 120;
   word viewer←v14116 = 0;
   word tool←v14144 = 0;
   word layout←v14172 = 0;
   word name←v14200;
   /* BuildTool: */ 
SOURCE(15552, 1704)
SOURCE(15731, 56)
   {
      word pd150;
      pd150 = (* (( (ptr) (* (( (ptr) gf←c54032)+163)/* var←c49200 */  ))+6) );
      name←v14200 = (word) ( *( (fPt) ((*  (ptr) pd150 ))))((* (( (ptr) gf←c54032)+47) ), caption←v8692, pd150);
      };
SOURCE(15789, 86)
   if (((* (( (ptr) ggData←v8720)+45) ) == 0)) {
      viewer←v14116 = 0;
      }
   else {
      viewer←v14116 = (* (( (ptr) (*  (ptr) (* (( (ptr) ggData←v8720)+45) ) ))+7) );
      };
SOURCE(15877, 294)
   if ( ( (viewer←v14116 != 0) ?  ( ( ! ((* (( (bPt) viewer←v14116)+77) ) & 0100)) ?  ! ((* (( (bPt) viewer←v14116)+77) ) & 02) : 0 )  : 0 ) ) {
SOURCE(15983, 48)
      if ((* (( (bPt) viewer←v14116)+76) ) & 020) {
SOURCE(16005, 26)
         {
            word pd151;
            pd151 = (* (( (ptr) (* (( (ptr) gf←c54032)+177)/* var←c51536 */  ))+7) );
            (void) ( *( (fPt) ((*  (ptr) pd151 ))))(viewer←v14116, 0, 1, 1, pd151);
            };
         };
SOURCE(16033, 108)
      {
         W2 var←c51568;
         var←c51568.f0 = 11;
         var←c51568.f1 = caption←v8692;
         {
            word pd152;
            pd152 = (* (( (ptr) (* (( (ptr) gf←c54032)+175)/* var←c51472 */  ))+14) );
            (void) ( *( (fPt) ((*  (ptr) pd152 ))))((* (( (ptr) ggData←v8720)+3) ), 0, (* (( (ptr) gf←c54032)+45) ), (* (( (ptr) gf←c54032)+48)
                ), var←c51568, pd152);
            };
         };
SOURCE(16143, 28)
      return((* (( (ptr) ggData←v8720)+45) ));
      };
SOURCE(16176, 26)
   tool←v14144 = XR←NewObject(16, (* (( (ptr) gf←c54032)+16) ));
SOURCE(16204, 37)
   {
      word var←c51632;
      {
         word var←c51664;
         var←c51664 = XR←NewObject(32, (* (( (ptr) gf←c54032)+22) ));
         (*  (ptr) var←c51664 ) = 5;
         (* (( (ptr) var←c51664)+1) ) = 5;
         (* (( (ptr) var←c51664)+2) ) = 5;
         (* (( (ptr) var←c51664)+3) ) = 5;
         (* (( (ptr) var←c51664)+4) ) = 15;
         (* (( (ptr) var←c51664)+5) ) = 5;
         (* (( (ptr) var←c51664)+6) ) = 5;
         var←c51632 = var←c51664;
         };
      (*  (ptr) tool←v14144 ) = var←c51632;
      layout←v14172 = var←c51632;
      };
SOURCE(16243, 112)
   {
      W28 var←c51696;
      W29 var←c0295;
      XR←FillWords(&(* (W26Pt) (&var←c51696)), 26, 0);
      (* (( (ptr) &var←c51696)+13) ) = name←v14200;
      (* (( (ptr) &var←c51696)+17) ) =  (word) -1;
      (* (( (ptr) &var←c51696)+18) ) = 2;
      (* (( (ptr) &var←c51696)+19) ) = 419430400;
      (* (( (ptr) &var←c51696)+26) ) = ggData←v8720;
      (* (( (ptr) &var←c51696)+27) ) = 27;
      (*  (W28Pt) (word) &var←c0295 ) = var←c51696;
      (* (( (ptr) (word) &var←c0295) + 28) ) = 1;
      {
         word pd153;
         pd153 = (* (( (ptr) (* (( (ptr) gf←c54032)+178)/* var←c51728 */  ))+4) );
         (* (( (ptr) layout←v14172)+7) ) = (word) ( *( (fPt) ((*  (ptr) pd153 ))))((word) (&var←c0295), pd153);
         };
      };
SOURCE(16357, 51)
   {
      word var←c51760;
      var←c51760 = (word) BuildButton←P2400(layout←v14172, (* (( (ptr) gf←c54032)+51) ), (word) (( (bPt) gf←c54032)+384)/* var←c47952 */ , ggData←v8720, 0, 1
         , 0);
      };
SOURCE(16410, 51)
   {
      word var←c51792;
      var←c51792 = (word) BuildButton←P2400(layout←v14172, (* (( (ptr) gf←c54032)+40) ), (word) (( (bPt) gf←c54032)+368)/* var←c47888 */ , ggData←v8720, 0, 1
         , 0);
      };
SOURCE(16463, 117)
   {
      W2 var←c51824;
      (void) BuildDataFieldPair←P2520((word) &var←c51824, layout←v14172, (* (( (ptr) gf←c54032)+52) ), (word) (( (bPt) gf←c54032)+400)
         /* var←c48016 */ , ggData←v8720, 1);
      (* (( (ptr) tool←v14144)+1) ) = var←c51824.f1;
      };
SOURCE(16582, 62)
   (* (( (ptr) layout←v14172)+2) ) = ((* (( (ptr) layout←v14172)+2) ) + IOP2( / ,  (int)(* (( (ptr) layout←v14172)+5) ),  (int)2)
   );
SOURCE(16646, 53)
   {
      word var←c51856;
      var←c51856 = (word) BuildButton←P2400(layout←v14172, (* (( (ptr) gf←c54032)+53) ), (word) (( (bPt) gf←c54032)+352)/* var←c47824 */ , ggData←v8720, 0, 1
         , 0);
      };
SOURCE(16701, 53)
   {
      word var←c51888;
      var←c51888 = (word) BuildButton←P2400(layout←v14172, (* (( (ptr) gf←c54032)+54) ), (word) (( (bPt) gf←c54032)+336)/* var←c47760 */ , ggData←v8720, 0, 1
         , 0);
      };
SOURCE(16756, 98)
   {
      W2 var←c51920;
      (void) BuildDataFieldPair←P2520((word) &var←c51920, layout←v14172, (* (( (ptr) gf←c54032)+55) ), (word) (( (bPt) gf←c54032)+392)
         /* var←c47984 */ , ggData←v8720, 1);
      (* (( (ptr) tool←v14144)+2) ) = var←c51920.f1;
      };
SOURCE(16856, 13)
   (void) HRule←P2700(layout←v14172, 1, 1, 1);
SOURCE(16871, 199)
   {
      W28 var←c51952;
      W30 var←c0305;
      (*  (ptr) (word) &var←c0305 ) = (* (( (ptr) gf←c54032)+56) );
      XR←FillWords(&(* (W27Pt) (&var←c51952)), 27, 0);
      (* (( (ptr) &var←c51952)+1) ) = (*  (ptr) layout←v14172 );
      (* (( (ptr) &var←c51952)+2) ) = (* (( (ptr) layout←v14172)+2) );
      (* (( (ptr) &var←c51952)+3) ) = 200;
      (* (( (ptr) &var←c51952)+4) ) = 700;
      (* (( (ptr) &var←c51952)+17) ) =  (word) -1;
      (* (( (ptr) &var←c51952)+18) ) = 1;
      (* (( (ptr) &var←c51952)+19) ) = 1358954496;
      (* (( (ptr) &var←c51952)+22) ) = (* (( (ptr) layout←v14172)+7) );
      (* (( (ptr) &var←c51952)+27) ) = 27;
      (*  (W28Pt) (( (ptr) (word) &var←c0305) + 1) ) = (var←c51952
      );
      (* (( (ptr) (word) &var←c0305) + 29) ) = 0;
      {
         word pd154;
         pd154 = (* (( (ptr) (* (( (ptr) gf←c54032)+177)/* var←c51536 */  ))+6) );
         (* (( (ptr) tool←v14144)+3) ) = (word) ( *( (fPt) ((*  (ptr) pd154 ))))((word) (&var←c0305), pd154);
         };
      };
SOURCE(17072, 56)
   {
      word pd155;
      pd155 = (* (( (ptr) (* (( (ptr) gf←c54032)+178)/* var←c51728 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd155 ))))((* (( (ptr) layout←v14172)+7) ), (* (( (ptr) tool←v14144)+3) ), pd155);
      };
SOURCE(17130, 56)
   {
      word pd156;
      pd156 = (* (( (ptr) (* (( (ptr) gf←c54032)+178)/* var←c51728 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd156 ))))((* (( (ptr) layout←v14172)+7) ), (* (( (ptr) tool←v14144)+3) ), pd156);
      };
SOURCE(17188, 53)
   {
      word pd157;
      pd157 = (* (( (ptr) (* (( (ptr) gf←c54032)+177)/* var←c51536 */  ))+36) );
      (void) ( *( (fPt) ((*  (ptr) pd157 ))))((* (( (ptr) layout←v14172)+7) ), openHeight←v14088, pd157);
      };
SOURCE(17243, 13)
   return(tool←v14144);
   }

static void EventNumberButton←P1740(parent←v20160, clientData←v20188, mouseButton←v20216, shift←v20244, control←v20272)
   word parent←v20160;
   word clientData←v20188;
   word mouseButton←v20216;
   word shift←v20244;
   word control←v20272;
   {
   register ptr gf←c54064 =  (ptr) &globalframe;
   word ggData←v14244;
   word tool←v14272;
   /* EventNumberButton: */ 
SOURCE(17262, 170)
SOURCE(17304, 35)
   ggData←v14244 = XR←Narrow(clientData←v20188, (* (( (ptr) gf←c54064)+29) ));
SOURCE(17341, 39)
   tool←v14272 = (* (( (ptr) ggData←v14244)+45) );
SOURCE(17382, 50)
   (void) DataFieldButton←P2460((* (( (ptr) tool←v14272)+1) ),  (unsigned) (mouseButton←v20216 != 0));
   }

static void HistorySizeButton←P1800(parent←v20332, clientData←v20360, mouseButton←v20388, shift←v20416, control←v20444)
   word parent←v20332;
   word clientData←v20360;
   word mouseButton←v20388;
   word shift←v20416;
   word control←v20444;
   {
   register ptr gf←c54096 =  (ptr) &globalframe;
   word ggData←v14316;
   word tool←v14344;
   /* HistorySizeButton: */ 
SOURCE(17438, 166)
SOURCE(17480, 35)
   ggData←v14316 = XR←Narrow(clientData←v20360, (* (( (ptr) gf←c54096)+29) ));
SOURCE(17517, 39)
   tool←v14344 = (* (( (ptr) ggData←v14316)+45) );
SOURCE(17558, 46)
   (void) DataFieldButton←P2460((* (( (ptr) tool←v14344)+2) ),  (unsigned) (mouseButton←v20388 != 0));
   }

static void SynchShow←P1860(parent←v20504, clientData←v20532, mouseButton←v20560, shift←v20588, control←v20616)
   word parent←v20504;
   word clientData←v20532;
   word mouseButton←v20560;
   word shift←v20588;
   word control←v20616;
   {
   register ptr gf←c54128 =  (ptr) &globalframe;
   word ggData←v14388;
   word handle←v14416;
   word event←v14444;
   /* SynchShow: */ 
SOURCE(17610, 259)
SOURCE(17644, 35)
   ggData←v14388 = XR←Narrow(clientData←v20532, (* (( (ptr) gf←c54128)+29) ));
SOURCE(17681, 40)
   handle←v14416 = (* (( (ptr) ggData←v14388)+48) );
SOURCE(17723, 7)
   {
      word var←c52016;
      event←v14444 = XR←NewObject(8, (* (( (ptr) gf←c54128)+20) ));
      var←c52016 = event←v14444;
      (*  (ptr) var←c52016 ) = (* (( (ptr) gf←c54128)+58) );
      };
SOURCE(17764, 36)
   {
      word pd158;
      pd158 = (* (( (ptr) (* (( (ptr) gf←c54128)+179)/* var←c52048 */  ))+32) );
      (void) ( *( (fPt) ((*  (ptr) pd158 ))))(ggData←v14388, event←v14444, pd158);
      };
SOURCE(17809, 60)
   {
      word pd159;
      pd159 = (* (( (ptr) (* (( (ptr) gf←c54128)+180)/* var←c52080 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd159 ))))(handle←v14416, (word) (( (bPt) gf←c54128)+376)/* var←c47920 */ , event←v14444, ggData←v14388, 0,  (word) -1, pd159)
      ;
      };
   }

static void DoShow←P1920(clientData←v8824, inputAction←v8852)
   word clientData←v8824;
   word inputAction←v8852;
   {
   W7 var←c54160;
   register ptr gf←c54192 =  (ptr) &globalframe;
   word ggData←v14584;
   word tool←v14612;
   word num←v14640 = 0;
   /* declaration of stop←v14668 skipped */ 
   word h←v14696;
   word list←v14724;
   W2 var←c0337;
   /* DoShow: */ 
SOURCE(17875, 646)
SOURCE(17932, 35)
   ggData←v14584 = XR←Narrow(clientData←v8824, (* (( (ptr) gf←c54192)+29) ));
SOURCE(17969, 39)
   tool←v14612 = (* (( (ptr) ggData←v14584)+45) );
SOURCE(18010, 18)
   var←c54160.f4/* stop←v14668 */  = 0;
SOURCE(18030, 23)
   {
      word pd160;
      pd160 = (* (( (ptr) (* (( (ptr) gf←c54192)+162)/* var←c49072 */  ))+34) );
      h←v14696 = (word) ( *( (fPt) ((*  (ptr) pd160 ))))(0, pd160);
      };
SOURCE(18055, 6)
   {
      word pd161;
      pd161 = (* (( (ptr) (* (( (ptr) gf←c54192)+170)/* var←c50992 */  ))+16) );
      list←v14724 = (word) ( *( (fPt) ((*  (ptr) pd161 ))))(ggData←v14584, pd161);
      };
SOURCE(18114, 40)
   {
      word pd162;
      pd162 = (* (( (ptr) (* (( (ptr) gf←c54192)+170)/* var←c50992 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd162 ))))((word) &var←c0337, ggData←v14584, pd162);
      };
   num←v14640 = var←c0337.f1;
SOURCE(18180, 56)
SOURCE(18180, 56)
   {
      /* declaration of var←c03 skipped */ 
      var←c54160.f5/* var←c03 */  = (* (( (ptr) tool←v14612)+1) );
      {
         /* declaration of var←c04 skipped */ 
         {
            word var←c05;
            {
               word var←c0539;
               var←c0539 = (word) &var←c54160;
               var←c05 = (word) XR←Enable(( ((word)  (fPt) NoName←Q4908) ), ( ((word)  (fPt) NoName←Q5328) ), var←c0539);
               };
            if ((var←c05 == 2)) {
               goto lab←L100048;
               };
            };
         var←c54160.f4/* stop←v14668 */  = var←c54160.f6/* var←c04 */ ;
         };
      };
   lab←L100048: ;
SOURCE(18308, 143)
   lab←L100053: ;
   if ( (  ( ( (int)num←v14640 >  (int)var←c54160.f4/* stop←v14668 */ ) ? (list←v14724 != 0) : 0 )  ? ((*  (ptr) list←v14724 ) != 0) : 0 ) ) {
      }
   else {
      goto lab←L100051;
      };
SOURCE(18360, 60)
   {
      W2 var←c52112;
      W2 var←c52144;
      W2 var←c0540;
      var←c52112.f0 = 5;
      var←c52112.f1 = num←v14640;
      var←c52144.f0 = 11;
      var←c52144.f1 = (*  (ptr) (*  (ptr) list←v14724 ) );
      (*  (ptr) (word) &var←c0540 ) = 0;
      (* (( (ptr) (word) &var←c0540) + 1) ) = 0;
      {
         word pd163;
         pd163 = (* (( (ptr) (* (( (ptr) gf←c54192)+162)/* var←c49072 */  ))+60) );
         (void) ( *( (fPt) ((*  (ptr) pd163 ))))(h←v14696, (* (( (ptr) gf←c54192)+59) ), var←c52112, var←c52144, var←c0540, pd163)
         ;
         };
      };
SOURCE(18422, 11)
   num←v14640 = (num←v14640 - 1);
SOURCE(18435, 16)
   list←v14724 = (* (( (ptr) list←v14724)+1) );
   goto lab←L100053;
   lab←L100051: ;
SOURCE(18462, 59)
   {
      word var←c52208;
      {
         word pd164;
         pd164 = (* (( (ptr) (* (( (ptr) gf←c54192)+162)/* var←c49072 */  ))+35) );
         var←c52208 = (word) ( *( (fPt) ((*  (ptr) pd164 ))))(h←v14696, 1, pd164);
         };
      {
         word pd165;
         pd165 = (* (( (ptr) (* (( (ptr) gf←c54192)+181)/* var←c52240 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd165 ))))((* (( (ptr) tool←v14612)+3) ), var←c52208, pd165);
         };
      };
   }

static word NoName←Q4908(formal←c0508)
   word formal←c0508;
   {
SOURCE(18180, 56)
   (* (( (ptr) formal←c0508)+6) ) = (word) GetInt←P2580((* ((( (ptr) formal←c0508)+5)) ));
   return(0);
   }

static void SynchUndo←P1980(parent←v20676, clientData←v20704, mouseButton←v20732, shift←v20760, control←v20788)
   word parent←v20676;
   word clientData←v20704;
   word mouseButton←v20732;
   word shift←v20760;
   word control←v20788;
   {
   register ptr gf←c54224 =  (ptr) &globalframe;
   word ggData←v14852;
   word handle←v14880;
   word event←v14908;
   /* SynchUndo: */ 
SOURCE(18527, 259)
SOURCE(18561, 35)
   ggData←v14852 = XR←Narrow(clientData←v20704, (* (( (ptr) gf←c54224)+29) ));
SOURCE(18598, 40)
   handle←v14880 = (* (( (ptr) ggData←v14852)+48) );
SOURCE(18640, 7)
   {
      word var←c52304;
      event←v14908 = XR←NewObject(8, (* (( (ptr) gf←c54224)+20) ));
      var←c52304 = event←v14908;
      (*  (ptr) var←c52304 ) = (* (( (ptr) gf←c54224)+60) );
      };
SOURCE(18681, 36)
   {
      word pd166;
      pd166 = (* (( (ptr) (* (( (ptr) gf←c54224)+179)/* var←c52048 */  ))+32) );
      (void) ( *( (fPt) ((*  (ptr) pd166 ))))(ggData←v14852, event←v14908, pd166);
      };
SOURCE(18726, 60)
   {
      word pd167;
      pd167 = (* (( (ptr) (* (( (ptr) gf←c54224)+180)/* var←c52080 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd167 ))))(handle←v14880, (word) (( (bPt) gf←c54224)+360)/* var←c47856 */ , event←v14908, ggData←v14852, 0,  (word) -1, pd167)
      ;
      };
   }

static void DoUndo←P2040(clientData←v8940, inputAction←v8968)
   word clientData←v8940;
   word inputAction←v8968;
   {
   W6 var←c54256;
   register ptr gf←c54288 =  (ptr) &globalframe;
   word ggData←v15048;
   /* DoUndo: */ 
SOURCE(18792, 560)
SOURCE(18849, 35)
   ggData←v15048 = XR←Narrow(clientData←v8940, (* (( (ptr) gf←c54288)+29) ));
SOURCE(18886, 466)
SOURCE(18888, 39)
   {
      word tool←v15092;
      word num←v15120;
      W2 var←c0355;
      word stop←v15148;
      word back←v15176;
SOURCE(18888, 39)
      tool←v15092 = (* (( (ptr) ggData←v15048)+45) );
SOURCE(18929, 45)
      {
         word pd168;
         pd168 = (* (( (ptr) (* (( (ptr) gf←c54288)+170)/* var←c50992 */  ))+5) );
         (void) ( *( (fPt) ((*  (ptr) pd168 ))))((word) &var←c0355, ggData←v15048, pd168);
         };
      num←v15120 = var←c0355.f1;
SOURCE(19000, 51)
      {
         /* declaration of var←c06 skipped */ 
         var←c54256.f4/* var←c06 */  = (* (( (ptr) tool←v15092)+1) );
         {
            /* declaration of var←c07 skipped */ 
            {
               word var←c08;
               {
                  word var←c0541;
                  var←c0541 = (word) &var←c54256;
                  var←c08 = (word) XR←Enable(( ((word)  (fPt) NoName←Q4968) ), ( ((word)  (fPt) NoName←Q5268) ), var←c0541);
                  };
               if ((var←c08 == 3)) {
                  goto lab←L100054;
                  };
               };
            stop←v15148 = var←c54256.f5/* var←c07 */ ;
            };
         };
SOURCE(19118, 20)
      back←v15176 = (num←v15120 - stop←v15148);
SOURCE(19140, 46)
      if (( (int)back←v15176 >  (int)0)) {
SOURCE(19157, 29)
         {
            word pd169;
            pd169 = (* (( (ptr) (* (( (ptr) gf←c54288)+170)/* var←c50992 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd169 ))))(ggData←v15048, back←v15176, pd169);
            };
         };
      };
   goto lab←L100057;
   lab←L100054: ;
SOURCE(19201, 149)
   {
      word pd170;
      pd170 = (* (( (ptr) (* (( (ptr) gf←c54288)+175)/* var←c51472 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd170 ))))((* (( (ptr) ggData←v15048)+3) ), 0, (* (( (ptr) gf←c54288)+45) ), (* (( (ptr) gf←c54288)+61)
          ), pd170);
      };
   lab←L100057: ;
   }

static word NoName←Q4968(formal←c0511)
   word formal←c0511;
   {
SOURCE(19000, 51)
   (* (( (ptr) formal←c0511)+5) ) = (word) GetInt←P2580((* ((( (ptr) formal←c0511)+4)) ));
   return(0);
   }

static void SynchGetSize←P2100(parent←v20848, clientData←v20876, mouseButton←v20904, shift←v20932, control←v20960)
   word parent←v20848;
   word clientData←v20876;
   word mouseButton←v20904;
   word shift←v20932;
   word control←v20960;
   {
   register ptr gf←c54320 =  (ptr) &globalframe;
   word ggData←v15220;
   word handle←v15248;
   word event←v15276;
   /* SynchGetSize: */ 
SOURCE(19359, 268)
SOURCE(19396, 35)
   ggData←v15220 = XR←Narrow(clientData←v20876, (* (( (ptr) gf←c54320)+29) ));
SOURCE(19433, 40)
   handle←v15248 = (* (( (ptr) ggData←v15220)+48) );
SOURCE(19475, 7)
   {
      word var←c52368;
      event←v15276 = XR←NewObject(8, (* (( (ptr) gf←c54320)+20) ));
      var←c52368 = event←v15276;
      (*  (ptr) var←c52368 ) = (* (( (ptr) gf←c54320)+62) );
      };
SOURCE(19519, 36)
   {
      word pd171;
      pd171 = (* (( (ptr) (* (( (ptr) gf←c54320)+179)/* var←c52048 */  ))+32) );
      (void) ( *( (fPt) ((*  (ptr) pd171 ))))(ggData←v15220, event←v15276, pd171);
      };
SOURCE(19564, 63)
   {
      word pd172;
      pd172 = (* (( (ptr) (* (( (ptr) gf←c54320)+180)/* var←c52080 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd172 ))))(handle←v15248, (word) (( (bPt) gf←c54320)+344)/* var←c47792 */ , event←v15276, ggData←v15220, 0,  (word) -1, pd172)
      ;
      };
   }

static void DoGetSize←P2160(clientData←v9052, inputAction←v9080)
   word clientData←v9052;
   word inputAction←v9080;
   {
   register ptr gf←c54352 =  (ptr) &globalframe;
   word ggData←v15416;
   word tool←v15444;
   /* DoGetSize: */ 
SOURCE(19633, 182)
SOURCE(19693, 35)
   ggData←v15416 = XR←Narrow(clientData←v9052, (* (( (ptr) gf←c54352)+29) ));
SOURCE(19730, 39)
   tool←v15444 = (* (( (ptr) ggData←v15416)+45) );
SOURCE(19771, 44)
   (void) SetInt←P2640((* (( (ptr) tool←v15444)+2) ), (* (( (ptr) ggData←v15416)+42) ));
   }

static void SynchSetSize←P2220(parent←v21020, clientData←v21048, mouseButton←v21076, shift←v21104, control←v21132)
   word parent←v21020;
   word clientData←v21048;
   word mouseButton←v21076;
   word shift←v21104;
   word control←v21132;
   {
   register ptr gf←c54384 =  (ptr) &globalframe;
   word ggData←v15488;
   word handle←v15516;
   word event←v15544;
   /* SynchSetSize: */ 
SOURCE(19821, 268)
SOURCE(19858, 35)
   ggData←v15488 = XR←Narrow(clientData←v21048, (* (( (ptr) gf←c54384)+29) ));
SOURCE(19895, 40)
   handle←v15516 = (* (( (ptr) ggData←v15488)+48) );
SOURCE(19937, 7)
   {
      word var←c52432;
      event←v15544 = XR←NewObject(8, (* (( (ptr) gf←c54384)+20) ));
      var←c52432 = event←v15544;
      (*  (ptr) var←c52432 ) = (* (( (ptr) gf←c54384)+63) );
      };
SOURCE(19981, 36)
   {
      word pd173;
      pd173 = (* (( (ptr) (* (( (ptr) gf←c54384)+179)/* var←c52048 */  ))+32) );
      (void) ( *( (fPt) ((*  (ptr) pd173 ))))(ggData←v15488, event←v15544, pd173);
      };
SOURCE(20026, 63)
   {
      word pd174;
      pd174 = (* (( (ptr) (* (( (ptr) gf←c54384)+180)/* var←c52080 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd174 ))))(handle←v15516, (word) (( (bPt) gf←c54384)+328)/* var←c47728 */ , event←v15544, ggData←v15488, 0,  (word) -1, pd174)
      ;
      };
   }

static void DoSetSize←P2280(clientData←v9164, inputAction←v9192)
   word clientData←v9164;
   word inputAction←v9192;
   {
   W6 var←c54416;
   register ptr gf←c54448 =  (ptr) &globalframe;
   word ggData←v15684;
   /* DoSetSize: */ 
SOURCE(20095, 436)
SOURCE(20155, 35)
   ggData←v15684 = XR←Narrow(clientData←v9164, (* (( (ptr) gf←c54448)+29) ));
SOURCE(20192, 339)
SOURCE(20194, 39)
   {
      word tool←v15728;
      word num←v15756;
SOURCE(20194, 39)
      tool←v15728 = (* (( (ptr) ggData←v15684)+45) );
SOURCE(20235, 46)
      {
         /* declaration of var←c09 skipped */ 
         var←c54416.f4/* var←c09 */  = (* (( (ptr) tool←v15728)+2) );
         {
            /* declaration of var←c010 skipped */ 
            {
               word var←c011;
               {
                  word var←c0542;
                  var←c0542 = (word) &var←c54416;
                  var←c011 = (word) XR←Enable(( ((word)  (fPt) NoName←Q5028) ), ( ((word)  (fPt) NoName←Q5208) ), var←c0542);
                  };
               if ((var←c011 == 4)) {
                  goto lab←L100058;
                  };
               };
            num←v15756 = var←c54416.f5/* var←c010 */ ;
            };
         };
SOURCE(20292, 50)
      if (( (int)num←v15756 <=  (int)0)) {
         (* (( (ptr) ggData←v15684)+42) ) = 1;
         }
      else {
         (* (( (ptr) ggData←v15684)+42) ) = num←v15756;
         };
SOURCE(20344, 44)
      (void) SetInt←P2640((* (( (ptr) tool←v15728)+2) ), (* (( (ptr) ggData←v15684)+42) ));
      };
   goto lab←L100061;
   lab←L100058: ;
SOURCE(20403, 126)
   {
      word pd175;
      pd175 = (* (( (ptr) (* (( (ptr) gf←c54448)+175)/* var←c51472 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd175 ))))((* (( (ptr) ggData←v15684)+3) ), 0, (* (( (ptr) gf←c54448)+45) ), (* (( (ptr) gf←c54448)+64)
          ), pd175);
      };
   lab←L100061: ;
   }

static word NoName←Q5028(formal←c0516)
   word formal←c0516;
   {
SOURCE(20235, 46)
   (* (( (ptr) formal←c0516)+5) ) = (word) GetInt←P2580((* ((( (ptr) formal←c0516)+4)) ));
   return(0);
   }

static void ClearTool←P2340(ggData←v9276)
   word ggData←v9276;
   {
   register ptr gf←c54480 =  (ptr) &globalframe;
   word tool←v15800;
   /* ClearTool: */ 
SOURCE(20538, 199)
SOURCE(20582, 40)
   tool←v15800 = (* (( (ptr) ggData←v9276)+45) );
SOURCE(20624, 113)
   if ((tool←v15800 != 0)) {
SOURCE(20643, 45)
      {
         word pd176;
         pd176 = (* (( (ptr) (* (( (ptr) gf←c54480)+181)/* var←c52240 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd176 ))))((* (( (ptr) tool←v15800)+3) ), 0, pd176);
         };
SOURCE(20690, 47)
      {
         word pd177;
         pd177 = (* (( (ptr) (* (( (ptr) gf←c54480)+181)/* var←c52240 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd177 ))))((* (( (ptr) tool←v15800)+1) ), 0, pd177);
         };
      };
   }

static word BuildButton←P2400(info←v9336, name←v9364, proc←v9392, clientData←v9420, fork←v9448, gapAfter←v9476, border←v9504)
   word info←v9336;
   word name←v9364;
   word proc←v9392;
   word clientData←v9420;
   word fork←v9448;
   word gapAfter←v9476;
   word border←v9504;
   {
   register ptr gf←c54512 =  (ptr) &globalframe;
   word button←v9560;
   /* BuildButton: */ 
SOURCE(20747, 525)
SOURCE(20747, 525)
   button←v9560 = 0;
SOURCE(20952, 192)
   {
      W28 var←c52464;
      W36 var←c0396;
      (*  (ptr) (word) &var←c0396 ) = (* (( (ptr) gf←c54512)+14)/* queue←v5884 */  );
      XR←FillWords(&(* (W27Pt) (&var←c52464)), 27, 0);
      (* (( (ptr) &var←c52464)+1) ) = (*  (ptr) info←v9336 );
      (* (( (ptr) &var←c52464)+2) ) = (* (( (ptr) info←v9336)+2) );
      (* (( (ptr) &var←c52464)+13) ) = name←v9364;
      (* (( (ptr) &var←c52464)+17) ) =  (word) -1;
      (* (( (ptr) &var←c52464)+18) ) = 1;
      (* (( (ptr) &var←c52464)+19) ) = (((word)  (unsigned) (border←v9504 & 1) << 27) + 1358954496);
      (* (( (ptr) &var←c52464)+22) ) = (* (( (ptr) info←v9336)+7) );
      (* (( (ptr) &var←c52464)+27) ) = 27;
      (*  (W28Pt) (( (ptr) (word) &var←c0396) + 1) ) = var←c52464;
      (* (( (ptr) (word) &var←c0396) + 29) ) = proc←v9392;
      (* (( (ptr) (word) &var←c0396) + 30) ) = clientData←v9420;
      (* (( (ptr) (word) &var←c0396) + 31) ) = 0;
      (* (( (ptr) (word) &var←c0396) + 32) ) = 0;
      (* (( (ptr) (word) &var←c0396) + 33) ) = 0;
      (* (( (ptr) (word) &var←c0396) + 34) ) = 0;
      (* (( (ptr) (word) &var←c0396) + 35) ) = 0;
      {
         word pd178;
         pd178 = (* (( (ptr) (* (( (ptr) gf←c54512)+160)/* var←c48976 */  ))+7) );
         button←v9560 = (word) ( *( (fPt) ((*  (ptr) pd178 ))))((word) (&var←c0396), pd178);
         };
      };
SOURCE(21146, 43)
   (*  (ptr) info←v9336 ) = ((*  (ptr) info←v9336 ) + (* (( (ptr) button←v9560)+3) ));
SOURCE(21191, 63)
   if ((0 != gapAfter←v9476)) {
SOURCE(21208, 46)
      (*  (ptr) info←v9336 ) = ((*  (ptr) info←v9336 ) + (* (( (ptr) info←v9336)+6) ));
      };
SOURCE(21256, 16)
   return(button←v9560);
   }

static void DataFieldButton←P2460(arg←v9620, clear←v9648)
   word arg←v9620;
   word clear←v9648;
   {
   register ptr gf←c54544 =  (ptr) &globalframe;
   /* DataFieldButton: */ 
SOURCE(21278, 177)
SOURCE(21345, 47)
   if ((0 != clear←v9648)) {
SOURCE(21359, 33)
      {
         word pd179;
         pd179 = (* (( (ptr) (* (( (ptr) gf←c54544)+182)/* var←c52496 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd179 ))))(arg←v9620, 0, 1, pd179);
         };
      };
SOURCE(21421, 34)
   {
      word pd180;
      pd180 = (* (( (ptr) (* (( (ptr) gf←c54544)+182)/* var←c52496 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd180 ))))(arg←v9620, 0, pd180);
      };
   }

static void BuildDataFieldPair←P2520(formal←c0408, info←v9708, buttonRope←v9736, buttonProc←v9764, clientData←v9792, lines←v9820)
   word formal←c0408;
   word info←v9708;
   word buttonRope←v9736;
   word buttonProc←v9764;
   word clientData←v9792;
   word lines←v9820;
   {
   register ptr gf←c54576 =  (ptr) &globalframe;
   word button←v9876;
   word arg←v9904;
   /* BuildDataFieldPair: */ 
SOURCE(21512, 739)
SOURCE(21512, 739)
   button←v9876 = 0;
SOURCE(21512, 739)
   arg←v9904 = 0;
SOURCE(21740, 122)
   button←v9876 = (word) BuildButton←P2400(info←v9708, buttonRope←v9736, buttonProc←v9764, clientData←v9792, 0, 0
      , 0);
SOURCE(21864, 248)
   {
      W28 var←c52528;
      W30 var←c0407;
      (*  (ptr) (word) &var←c0407 ) = (* (( (ptr) gf←c54576)+56) );
      XR←FillWords(&(* (W27Pt) (&var←c52528)), 27, 0);
      (* (( (ptr) &var←c52528)+1) ) = (*  (ptr) info←v9708 );
      (* (( (ptr) &var←c52528)+2) ) = ((* (( (ptr) info←v9708)+2) ) + 1);
      (* (( (ptr) &var←c52528)+3) ) = (((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c54576)+183)/* var←c52560 */  ))+18) ) ) - (*  (ptr) info←v9708 )) - 5);
      (* (( (ptr) &var←c52528)+4) ) = IOP2( * ,  (int)(* (( (ptr) info←v9708)+4) ),  (int)lines←v9820);
      (* (( (ptr) &var←c52528)+17) ) =  (word) -1;
      (* (( (ptr) &var←c52528)+18) ) = 1;
      (* (( (ptr) &var←c52528)+19) ) = 285212672;
      (* (( (ptr) &var←c52528)+22) ) = (* (( (ptr) info←v9708)+7) );
      (* (( (ptr) &var←c52528)+27) ) = 27;
      (*  (W28Pt) (( (ptr) (word) &var←c0407) + 1) ) = (var←c52528
      );
      (* (( (ptr) (word) &var←c0407) + 29) ) = 0;
      {
         word pd181;
         pd181 = (* (( (ptr) (* (( (ptr) gf←c54576)+177)/* var←c51536 */  ))+6) );
         arg←v9904 = (word) ( *( (fPt) ((*  (ptr) pd181 ))))((word) (&var←c0407), pd181);
         };
      };
SOURCE(22114, 60)
   (* (( (ptr) info←v9708)+2) ) = ((* (( (ptr) info←v9708)+2) ) + IOP2( * ,  (int)(* (( (ptr) info←v9708)+4) ),  (int)lines←v9820)
   );
SOURCE(22176, 30)
   (*  (ptr) info←v9708 ) = (* (( (ptr) info←v9708)+1) );
SOURCE(22208, 43)
   {
      word pd182;
      pd182 = (* (( (ptr) (* (( (ptr) gf←c54576)+178)/* var←c51728 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd182 ))))((* (( (ptr) info←v9708)+7) ), arg←v9904, pd182);
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0408 ) = button←v9876;
   (* (( (ptr) formal←c0408)+1) ) = arg←v9904;
   return;
   }

static word GetInt←P2580(arg←v9964)
   word arg←v9964;
   {
   W7 var←c54608;
   register ptr gf←c54640 =  (ptr) &globalframe;
   word num←v10008;
   /* GetInt: */ 
SOURCE(22257, 238)
SOURCE(22319, 176)
SOURCE(22321, 47)
   {
      word rope←v15888;
      /* declaration of h←v15916 skipped */ 
SOURCE(22321, 47)
      {
         word pd183;
         pd183 = (* (( (ptr) (* (( (ptr) gf←c54640)+181)/* var←c52240 */  ))+8) );
         rope←v15888 = (word) ( *( (fPt) ((*  (ptr) pd183 ))))(arg←v9964, pd183);
         };
SOURCE(22370, 27)
      {
         word pd184;
         pd184 = (* (( (ptr) (* (( (ptr) gf←c54640)+162)/* var←c49072 */  ))+33) );
         var←c54608.f4/* h←v15916 */  = (word) ( *( (fPt) ((*  (ptr) pd184 ))))(rope←v15888, 0, pd184);
         };
SOURCE(22399, 48)
      {
         /* declaration of var←c012 skipped */ 
         var←c54608.f5/* var←c012 */  = (* (( (ptr) (* (( (ptr) gf←c54640)+162)/* var←c49072 */  ))+72) );
         {
            /* declaration of var←c013 skipped */ 
            {
               word var←c014;
               {
                  word var←c0543;
                  var←c0543 = (word) &var←c54608;
                  var←c014 = (word) XR←Enable(( ((word)  (fPt) NoName←Q5088) ), ( ((word)  (fPt) NoName←Q5148) ), var←c0543);
                  };
               if ((var←c014 == 5)) {
                  goto lab←L100063;
                  };
               };
            num←v10008 = var←c54608.f6/* var←c013 */ ;
            };
         };
      };
   goto lab←L100066;
   lab←L100063: ;
SOURCE(22477, 16)
   (void) (XR←RaiseSignal((word) (( (bPt) gf←c54640)+268), 0, 0));
   lab←L100066: ;
SOURCE(22257, 238)
   return(num←v10008);
   }

static word NoName←Q5088(formal←c0522)
   word formal←c0522;
   {
SOURCE(22399, 48)
   {
      word pd185;
      pd185 = (* (( (ptr) formal←c0522)+5) );
      (* (( (ptr) formal←c0522)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd185 ))))((* ((( (ptr) formal←c0522)+4)) ), pd185);
      };
   return(0);
   }

static void SetInt←P2640(arg←v10068, num←v10096)
   word arg←v10068;
   word num←v10096;
   {
   register ptr gf←c54672 =  (ptr) &globalframe;
   word h←v15960;
   /* SetInt: */ 
SOURCE(22499, 153)
SOURCE(22554, 23)
   {
      word pd186;
      pd186 = (* (( (ptr) (* (( (ptr) gf←c54672)+162)/* var←c49072 */  ))+34) );
      h←v15960 = (word) ( *( (fPt) ((*  (ptr) pd186 ))))(0, pd186);
      };
SOURCE(22579, 23)
   {
      W2 var←c52592;
      var←c52592.f0 = 5;
      var←c52592.f1 = num←v10096;
      {
         word pd187;
         pd187 = (* (( (ptr) (* (( (ptr) gf←c54672)+162)/* var←c49072 */  ))+55) );
         (void) ( *( (fPt) ((*  (ptr) pd187 ))))(h←v15960, var←c52592, pd187);
         };
      };
SOURCE(22604, 48)
   {
      word var←c52624;
      {
         word pd188;
         pd188 = (* (( (ptr) (* (( (ptr) gf←c54672)+162)/* var←c49072 */  ))+35) );
         var←c52624 = (word) ( *( (fPt) ((*  (ptr) pd188 ))))(h←v15960, 1, pd188);
         };
      {
         word pd189;
         pd189 = (* (( (ptr) (* (( (ptr) gf←c54672)+181)/* var←c52240 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd189 ))))(arg←v10068, var←c52624, pd189);
         };
      };
   }

static void HRule←P2700(info←v10156, thickness←v10184, gapAbove←v10212, gapBelow←v10240)
   word info←v10156;
   word thickness←v10184;
   word gapAbove←v10212;
   word gapBelow←v10240;
   {
   register ptr gf←c54704 =  (ptr) &globalframe;
   word rule←v16004 = 0;
   /* HRule: */ 
SOURCE(22658, 511)
SOURCE(22765, 73)
   if ((0 != gapAbove←v10212)) {
SOURCE(22782, 56)
      (* (( (ptr) info←v10156)+2) ) = ((* (( (ptr) info←v10156)+2) ) + IOP2( * ,  (int)(* (( (ptr) info←v10156)+5) ),  (int)2));
      };
SOURCE(22840, 141)
   {
      W28 var←c52656;
      W30 var←c0424;
      XR←FillWords(&(* (W27Pt) (&var←c52656)), 27, 0);
      (* (( (ptr) &var←c52656)+2) ) = (* (( (ptr) info←v10156)+2) );
      (* (( (ptr) &var←c52656)+3) ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c54704)+183)/* var←c52560 */  ))+18) ) );
      (* (( (ptr) &var←c52656)+4) ) = SGNCK(thickness←v10184);
      (* (( (ptr) &var←c52656)+17) ) =  (word) -1;
      (* (( (ptr) &var←c52656)+18) ) = 1;
      (* (( (ptr) &var←c52656)+19) ) = 1493172224;
      (* (( (ptr) &var←c52656)+22) ) = (* (( (ptr) info←v10156)+7) );
      (* (( (ptr) &var←c52656)+27) ) = 27;
      (*  (W28Pt) (word) &var←c0424 ) = var←c52656;
      (* (( (ptr) (word) &var←c0424) + 28) ) = 0;
      (* (( (ptr) (word) &var←c0424) + 29) ) = 0;
      {
         word pd190;
         pd190 = (* (( (ptr) (* (( (ptr) gf←c54704)+184)/* var←c52688 */  ))+4) );
         rule←v16004 = (word) ( *( (fPt) ((*  (ptr) pd190 ))))((word) (&var←c0424), pd190);
         };
      };
SOURCE(22983, 62)
   {
      word pd191;
      pd191 = (* (( (ptr) (* (( (ptr) gf←c54704)+178)/* var←c51728 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd191 ))))((* (( (ptr) info←v10156)+7) ), rule←v16004, pd191);
      };
SOURCE(23047, 47)
   (* (( (ptr) info←v10156)+2) ) = ((* (( (ptr) info←v10156)+2) ) + thickness←v10184);
SOURCE(23096, 73)
   if ((0 != gapBelow←v10240)) {
SOURCE(23113, 56)
      (* (( (ptr) info←v10156)+2) ) = ((* (( (ptr) info←v10156)+2) ) + IOP2( * ,  (int)(* (( (ptr) info←v10156)+5) ),  (int)2));
      };
   }

static void NoName←Q5148(formal←c0429, formal←c200028, formal←c200029, formal←c200030, formal←c200031)
   word formal←c0429;
   word formal←c200028;
   word formal←c200029;
   word formal←c200030;
   word formal←c200031;
   {
   register ptr gf←c0525 =  (ptr) &globalframe;
   if ((formal←c200029 == (* (( (ptr) (* (( (ptr) gf←c0525)+162)/* var←c49072 */  ))+5) )) || (formal←c200029 == (* (( (ptr) (* (
         ( (ptr) gf←c0525)+162)/* var←c49072 */  ))+4) ))) {
SOURCE(22447, 12)
      (*  (ptr) formal←c0429 ) = 2;
      (* (( (ptr) formal←c0429)+1) ) = 5;
      return;
      };
   (*  (ptr) formal←c0429 ) = 0;
   (* (( (ptr) formal←c0429)+1) ) = 0;
   return;
   }

static void NoName←Q5208(formal←c0434, formal←c200024, formal←c200025, formal←c200026, formal←c200027)
   word formal←c0434;
   word formal←c200024;
   word formal←c200025;
   word formal←c200026;
   word formal←c200027;
   {
   register ptr gf←c0526 =  (ptr) &globalframe;
   if ((formal←c200025 == (word) (( (bPt) gf←c0526)+268))) {
SOURCE(20281, 9)
      (*  (ptr) formal←c0434 ) = 2;
      (* (( (ptr) formal←c0434)+1) ) = 4;
      return;
      };
   (*  (ptr) formal←c0434 ) = 0;
   (* (( (ptr) formal←c0434)+1) ) = 0;
   return;
   }

static void NoName←Q5268(formal←c0439, formal←c200020, formal←c200021, formal←c200022, formal←c200023)
   word formal←c0439;
   word formal←c200020;
   word formal←c200021;
   word formal←c200022;
   word formal←c200023;
   {
   register ptr gf←c0527 =  (ptr) &globalframe;
   if ((formal←c200021 == (word) (( (bPt) gf←c0527)+268))) {
SOURCE(19051, 9)
      (*  (ptr) formal←c0439 ) = 2;
      (* (( (ptr) formal←c0439)+1) ) = 3;
      return;
      };
   (*  (ptr) formal←c0439 ) = 0;
   (* (( (ptr) formal←c0439)+1) ) = 0;
   return;
   }

static void NoName←Q5328(formal←c0444, formal←c200016, formal←c200017, formal←c200018, formal←c200019)
   word formal←c0444;
   word formal←c200016;
   word formal←c200017;
   word formal←c200018;
   word formal←c200019;
   {
   register ptr gf←c0528 =  (ptr) &globalframe;
   if ((formal←c200017 == (word) (( (bPt) gf←c0528)+268))) {
SOURCE(18228, 8)
      (* (( (ptr) formal←c200016)+4) ) = 0;
SOURCE(18238, 9)
      (*  (ptr) formal←c0444 ) = 2;
      (* (( (ptr) formal←c0444)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0444 ) = 0;
   (* (( (ptr) formal←c0444)+1) ) = 0;
   return;
   }

static void NoName←Q5388(formal←c0449, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0449;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0529 =  (ptr) &globalframe;
   if ((formal←c200013 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0529)+16)/* LOCK←v3952 */ ));
      };
   (*  (ptr) formal←c0449 ) = 0;
   (* (( (ptr) formal←c0449)+1) ) = 0;
   return;
   }

static void NoName←Q5448(formal←c0454, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0454;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0530 =  (ptr) &globalframe;
   if ((formal←c200009 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0530)+16)/* LOCK←v3952 */ ));
      };
   (*  (ptr) formal←c0454 ) = 0;
   (* (( (ptr) formal←c0454)+1) ) = 0;
   return;
   }

static void NoName←Q5508(formal←c0459, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0459;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0531 =  (ptr) &globalframe;
   if ((formal←c200005 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0531)+16)/* LOCK←v3952 */ ));
      };
   (*  (ptr) formal←c0459 ) = 0;
   (* (( (ptr) formal←c0459)+1) ) = 0;
   return;
   }

static void NoName←Q5568(formal←c0464, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0464;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0532 =  (ptr) &globalframe;
   if ((formal←c200001 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0532)+16)/* LOCK←v3952 */ ));
      };
   (*  (ptr) formal←c0464 ) = 0;
   (* (( (ptr) formal←c0464)+1) ) = 0;
   return;
   }

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