/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 28, 1993 10:17:46 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: ImagerFDBuildImpl, module: ImagerFDBuildImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2751379270,2423337292] ImagerFDBuildImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef W6 *W6Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {W8 f; W4 r;} W12;
typedef struct {W8 f; W8 r;} W16;
typedef struct {word f0, f1;} W2;
typedef struct {W16 f; W2 r;} W18;
typedef W12 *W12Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W16 f; W4 r;} W20;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
typedef W4 *W4Pt;
typedef struct {W16 f; W12 r;} W28;
typedef struct {word f0, f1, f2, f3, f4;} W5;
static float fc1 = 0.02;
#define SOURCE(p, l) /* source p, l */
static float fc52 = 1.0;
static float fc54 = 10000.0;
static float fc58 = 0.5;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc82 = 0.0;
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
static float fc133 = -10000.0;
#define FMAX(x, y, tx, ty)  ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
#define INEG(x)  ( (word) ( - ((int) (word) (x)) ) )
static void NoName←Q9564();
static void ImagerFDBuildImpl←P0();
static word CompareReal←P60();
static word Create←P120();
static void Insert←P180();
static void Inner←P3540();
static word FetchList←P240();
static void StoreList←P300();
static word RealAssocCompare←P360();
static void CountReal←P420();
static void Inner←P3600();
static word FindCommonReals←P480();
static word EachEntry←P3708();
static word RealAssocOrderCompare←P3816();
static word CloseEnough←P3876();
static word GetRealCode←P540();
static word BuildSetArrayTable←P600();
static word EachChar←P4176();
static word Compatible←P660();
static void ForEachRun←P720();
static word CommonItemsFromSetArrayTable←P780();
static void UpdateTypefaceTab←P4524();
static void EachRun←P4584();
static word StuffTypefaceIndex←P4644();
static word GetTypefaceIndex←P840();
static word GetPlacementCode←P900();
static word FDTypefaceDataFromCanonicalizedFDTable←P960();
static word StuffCharInfoRunSeq←P4896();
static void EachRun←P4956();
static void NoteCharInfoRun←P5604();
static void CharInfoFromCD←P5016();
static word RawHash←P1020();
static word CharacterDescriptionHash←P1080();
static word CharacterDescriptionEqual←P1140();
static word CharacterDescriptionsHash←P1200();
static word CharacterDescriptionsEqual←P1260();
static word TransformationHash←P1320();
static word TransformationEqual←P1380();
static word CharInfoRunHash←P1440();
static word CharInfoRunEqual←P1500();
static void MapCharacterDescriptions←P1560();
static word EachPair←P6048();
static word NonNilT←P1620();
static void Canonicalize←P1680();
static word CanonicalizeTypefaceCell←P6156();
static void UpdateTF←P6684();
static word CanonicalizeTransformation←P6216();
static void UpdateTransformation←P6792();
static word CanonicalizeCharacterDescription←P6276();
static void UpdateCD←P6852();
static word CanonicalizeCharacterDescriptions←P6336();
static void UpdateCDS←P6912();
static word TransformationIndex←P6396();
static word CDsInOrder←P6456();
static word SortCharacterDescriptions←P6516();
static word CanonicalizeEachCharacterDescriptionList←P6576();
static word SortTransformations←P1740();
static word SortedInsert←P7404();
static void Debug←P1800();
static word NoName←Q9624();
static word FactoredCompare←P1860();
static word Read←P1920();
static word FDTableFromFDTypefaceData←P1980();
static void Write←P2040();
static void WriteFDTypefaceData←P2100();
static void WriteFDTypefaceDataToStream←P2160();
static void PutExtents←P2220();
static void PutRealSeq←P2280();
static void PutTransformationSeq←P2340();
static void PutTransformation←P2400();
static void PutTypefaceCellSeq←P2460();
static void PutCharInfoRunSeq←P2520();
static void PutTypefaceCell←P2580();
static void PutOverflowCharInfoSeq←P2640();
static void PutVerboseCharInfo←P2700();
static void PutVEC←P2760();
static void PutPropList←P2820();
static void PutCharInfoRun←P2880();
static void PutCharRuns←P2940();
static void PutCARD32←P3120();
static void PutBYTE←P3180();
static void PutCount←P3240();
static void PutIdentifier←P3300();
static void PutInteger←P3360();
static void PutREAL←P3480();
static void NoName←Q9684();
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\243\376\267\106\300\220\161\061\114\102\124\000\000"};
static struct {unsigned f; char r[4];} string3 = {131074, "\003\006\000"};
static struct {unsigned f; char r[28];} string4 = {1769500, "\205\210\241\000\100\377\216\205\210\241\000\100\377\216\257\300\142\157\367\061\300\243\052\073\037\100\164"};
static struct {unsigned f; char r[8];} string5 = {393222, "\010\000\004A\000\001\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\142\157\367\061\300\243\052\073\037\100\214\000\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\004\007\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\142\157\367\061\300\243\052\073\037\100\164\000\000"};
static struct {unsigned f; char r[4];} string9 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\142\157\367\061\300\243\052\073\037\100\200\000\000"};
static struct {unsigned f; char r[4];} string11 = {196611, "\004L\003"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\243\376\267\106\300\220\161\061\114\100\354\000\000"};
static struct {unsigned f; char r[4];} string13 = {131074, "\003\002\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\243\376\267\106\300\220\161\061\114\101\004\000\000"};
static struct {unsigned f; char r[20];} string15 = {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[16];} string16 = {851984, "\257\300\107\202\306\250\300\217\000\064\076\100\200\000\000"};
static struct {unsigned f; char r[24];} string17 = {1310744, "\205\210\241\000\100\377\216\257\300\142\157\367\061\300\243\052\073\037\100\164\000\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\243\376\267\106\300\220\161\061\114\101\210\000\000"};
static struct {unsigned f; char r[4];} string19 = {196611, "\004A\377"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\107\202\306\250\300\217\000\064\076\100\324\000\000"};
static struct {unsigned f; char r[12];} string21 = {524296, "\011\000\004\000\040\000\004\001\000\000\000"};
static struct {unsigned f; char r[4];} string22 = {65540, "\242\000\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\107\202\306\250\300\217\000\064\076\100\340\000\000"};
static struct {unsigned f; char r[4];} string24 = {131074, "\004\013\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\107\202\306\250\300\217\000\064\076\100\164\000\000"};
static struct {unsigned f; char r[36];} string26 = {2228258, "\006\015\020\001\024\001\030\001\034\001\040\001\044\001\050\001\054\001\060\001\064\001\070\001\074\001\100\100\010\000\004\101\000\001\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\107\202\306\250\300\217\000\064\076\100\260\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\107\202\306\250\300\217\000\064\076\100\214\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\107\202\306\250\300\217\000\064\076\101\050\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\107\202\306\250\300\217\000\064\076\100\274\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\107\202\306\250\300\217\000\064\076\100\230\000\000"};
static struct {unsigned f; char r[4];} string32 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\107\202\306\250\300\217\000\064\076\101\064\000\000"};
static struct {unsigned f; char r[48];} string34 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\107\202\306\250\300\217\000\064\076\101\064\005\004\162\145\163\164\214\216\257\300\107\202\306\250\300\217\000\064\076\101\064\261\000\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\164\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\243\376\267\106\300\220\161\061\114\110\014\000\000"};
static struct {unsigned f; char r[16];} string37 = {851984, "\257\300\243\376\267\106\300\220\161\061\114\102\140\000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\243\376\267\106\300\220\161\061\114\100\164\000\000"};
static struct {unsigned f; char r[4];} string39 = {196611, "\004@\300"};
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\107\202\306\250\300\217\000\064\076\100\150\000\000"};
static struct {unsigned f; char r[16];} string41 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string42 = {851984, "\257\300\223\215\300\016\300\070\141\304\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\041\257\203\366\300\322\161\356\007\100\150\000\000"};
static struct {unsigned f; char r[16];} string45 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string46 = {851984, "\257\300\072\337\114\355\300\232\070\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string47 = {851984, "\257\300\144\364\322\150\300\206\136\277\046\100\150\000\000"};
static struct {unsigned f; char r[16];} string48 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string49 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string50 = {851984, "\257\300\242\221\264\046\300\105\142\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string51 = {851984, "\257\300\142\157\367\061\300\243\052\073\037\100\150\000\000"};
static struct {
   word f0[166]; 
   } globalframe = {
   {0}
   };

static void NoName←Q9564()
   {
   register ptr gf←c0697 =  (ptr) &globalframe;
   word var←c49880;
   (* (( (ptr) gf←c0697)+4)/* extentTolerance←v3280 */  ) = (*  (ptr) &fc1 );
   (* (( (ptr) gf←c0697)+152) ) = ( ((word)  (fPt) ImagerFDBuildImpl←P0) );
   (* (( (ptr) gf←c0697)+150) ) = ( ((word)  (fPt) CompareReal←P60) );
   (* (( (ptr) gf←c0697)+148) ) = ( ((word)  (fPt) Create←P120) );
   (* (( (ptr) gf←c0697)+146) ) = ( ((word)  (fPt) Insert←P180) );
   (* (( (ptr) gf←c0697)+144) ) = ( ((word)  (fPt) FetchList←P240) );
   (* (( (ptr) gf←c0697)+142) ) = ( ((word)  (fPt) StoreList←P300) );
   (* (( (ptr) gf←c0697)+140) ) = ( ((word)  (fPt) RealAssocCompare←P360) );
   (* (( (ptr) gf←c0697)+138) ) = ( ((word)  (fPt) CountReal←P420) );
   (* (( (ptr) gf←c0697)+136) ) = ( ((word)  (fPt) FindCommonReals←P480) );
   (* (( (ptr) gf←c0697)+134) ) = ( ((word)  (fPt) GetRealCode←P540) );
   (* (( (ptr) gf←c0697)+132) ) = ( ((word)  (fPt) BuildSetArrayTable←P600) );
   (* (( (ptr) gf←c0697)+130) ) = ( ((word)  (fPt) Compatible←P660) );
   (* (( (ptr) gf←c0697)+128) ) = ( ((word)  (fPt) ForEachRun←P720) );
   (* (( (ptr) gf←c0697)+126) ) = ( ((word)  (fPt) CommonItemsFromSetArrayTable←P780) );
   (* (( (ptr) gf←c0697)+124) ) = ( ((word)  (fPt) GetTypefaceIndex←P840) );
   (* (( (ptr) gf←c0697)+122) ) = ( ((word)  (fPt) GetPlacementCode←P900) );
   (* (( (ptr) gf←c0697)+120) ) = ( ((word)  (fPt) FDTypefaceDataFromCanonicalizedFDTable←P960) );
   (* (( (ptr) gf←c0697)+118) ) = ( ((word)  (fPt) RawHash←P1020) );
   (* (( (ptr) gf←c0697)+116) ) = ( ((word)  (fPt) CharacterDescriptionHash←P1080) );
   (* (( (ptr) gf←c0697)+114) ) = ( ((word)  (fPt) CharacterDescriptionEqual←P1140) );
   (* (( (ptr) gf←c0697)+112) ) = ( ((word)  (fPt) CharacterDescriptionsHash←P1200) );
   (* (( (ptr) gf←c0697)+110) ) = ( ((word)  (fPt) CharacterDescriptionsEqual←P1260) );
   (* (( (ptr) gf←c0697)+108) ) = ( ((word)  (fPt) TransformationHash←P1320) );
   (* (( (ptr) gf←c0697)+106) ) = ( ((word)  (fPt) TransformationEqual←P1380) );
   (* (( (ptr) gf←c0697)+104) ) = ( ((word)  (fPt) CharInfoRunHash←P1440) );
   (* (( (ptr) gf←c0697)+102) ) = ( ((word)  (fPt) CharInfoRunEqual←P1500) );
   (* (( (ptr) gf←c0697)+100) ) = ( ((word)  (fPt) MapCharacterDescriptions←P1560) );
   (* (( (ptr) gf←c0697)+98) ) = ( ((word)  (fPt) NonNilT←P1620) );
   (* (( (ptr) gf←c0697)+96) ) = ( ((word)  (fPt) Canonicalize←P1680) );
   (* (( (ptr) gf←c0697)+94) ) = ( ((word)  (fPt) SortTransformations←P1740) );
   (* (( (ptr) gf←c0697)+92) ) = ( ((word)  (fPt) Debug←P1800) );
   (* (( (ptr) gf←c0697)+90) ) = ( ((word)  (fPt) FactoredCompare←P1860) );
   (* (( (ptr) gf←c0697)+88) ) = ( ((word)  (fPt) Read←P1920) );
   (* (( (ptr) gf←c0697)+86) ) = ( ((word)  (fPt) FDTableFromFDTypefaceData←P1980) );
   (* (( (ptr) gf←c0697)+84) ) = ( ((word)  (fPt) Write←P2040) );
   (* (( (ptr) gf←c0697)+82) ) = ( ((word)  (fPt) WriteFDTypefaceData←P2100) );
   (* (( (ptr) gf←c0697)+80) ) = ( ((word)  (fPt) WriteFDTypefaceDataToStream←P2160) );
   (* (( (ptr) gf←c0697)+78) ) = ( ((word)  (fPt) PutExtents←P2220) );
   (* (( (ptr) gf←c0697)+76) ) = ( ((word)  (fPt) PutRealSeq←P2280) );
   (* (( (ptr) gf←c0697)+74) ) = ( ((word)  (fPt) PutTransformationSeq←P2340) );
   (* (( (ptr) gf←c0697)+72) ) = ( ((word)  (fPt) PutTransformation←P2400) );
   (* (( (ptr) gf←c0697)+70) ) = ( ((word)  (fPt) PutTypefaceCellSeq←P2460) );
   (* (( (ptr) gf←c0697)+68) ) = ( ((word)  (fPt) PutCharInfoRunSeq←P2520) );
   (* (( (ptr) gf←c0697)+66) ) = ( ((word)  (fPt) PutTypefaceCell←P2580) );
   (* (( (ptr) gf←c0697)+64) ) = ( ((word)  (fPt) PutOverflowCharInfoSeq←P2640) );
   (* (( (ptr) gf←c0697)+62) ) = ( ((word)  (fPt) PutVerboseCharInfo←P2700) );
   (* (( (ptr) gf←c0697)+60) ) = ( ((word)  (fPt) PutVEC←P2760) );
   (* (( (ptr) gf←c0697)+58) ) = ( ((word)  (fPt) PutPropList←P2820) );
   (* (( (ptr) gf←c0697)+56) ) = ( ((word)  (fPt) PutCharInfoRun←P2880) );
   (* (( (ptr) gf←c0697)+54) ) = ( ((word)  (fPt) PutCharRuns←P2940) );
   (* (( (ptr) gf←c0697)+52) ) = ( ((word)  (fPt) PutCARD32←P3120) );
   (* (( (ptr) gf←c0697)+50) ) = ( ((word)  (fPt) PutBYTE←P3180) );
   (* (( (ptr) gf←c0697)+48) ) = ( ((word)  (fPt) PutCount←P3240) );
   (* (( (ptr) gf←c0697)+46) ) = ( ((word)  (fPt) PutIdentifier←P3300) );
   (* (( (ptr) gf←c0697)+44) ) = ( ((word)  (fPt) PutInteger←P3360) );
   (* (( (ptr) gf←c0697)+42) ) = ( ((word)  (fPt) PutREAL←P3480) );
   (* (( (ptr) gf←c0697)+9) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
   (* (( (ptr) gf←c0697)+11) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0697)+13) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0697)+16) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
   (* (( (ptr) gf←c0697)+17) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0697)+18) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13);
   (* (( (ptr) gf←c0697)+19) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string9);
   (* (( (ptr) gf←c0697)+20) ) = (word) XR←GetTypeIndex((word) &string15, 0, (word) &string9);
   (* (( (ptr) gf←c0697)+21) ) = (word) XR←GetTypeIndexS((word) (&string16));
   (* (( (ptr) gf←c0697)+23) ) = (word) XR←GetTypeIndex((word) &string17, 0, (word) &string5);
   (* (( (ptr) gf←c0697)+24) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19);
   (* (( (ptr) gf←c0697)+25) ) = (word) XR←GetTypeIndex((word) &string20, 0, (word) &string21);
   (* (( (ptr) gf←c0697)+26) ) = (word) XR←GetTypeIndexS((word) (&string22));
   (* (( (ptr) gf←c0697)+27) ) = (word) XR←GetTypeIndex((word) &string23, 0, (word) &string24);
   (* (( (ptr) gf←c0697)+28) ) = (word) XR←GetTypeIndex((word) &string25, 0, (word) &string26);
   (* (( (ptr) gf←c0697)+30) ) = (word) XR←GetTypeIndex((word) &string27, 0, (word) &string21);
   (* (( (ptr) gf←c0697)+31) ) = (word) XR←GetTypeIndex((word) &string28, 0, (word) &string21);
   (* (( (ptr) gf←c0697)+32) ) = (word) XR←GetTypeIndex((word) &string29, 0, (word) &string21);
   (* (( (ptr) gf←c0697)+33) ) = (word) XR←GetTypeIndexS((word) (&string30));
   (* (( (ptr) gf←c0697)+34) ) = (word) XR←GetTypeIndex((word) &string31, 0, (word) &string32);
   (* (( (ptr) gf←c0697)+35) ) = (word) XR←GetTypeIndex((word) &string33, 0, (word) &string3);
   (* (( (ptr) gf←c0697)+36) ) = (word) XR←GetTypeIndex((word) &string34, 0, (word) &string9);
   (* (( (ptr) gf←c0697)+37) ) = (word) XR←GetTypeIndexS((word) (&string35));
   (* (( (ptr) gf←c0697)+38) ) = (word) XR←GetTypeIndex((word) &string36, 0, (word) &string21);
   (* (( (ptr) gf←c0697)+40) ) = (word) XR←GetTypeIndex((word) &string37, 0, (word) &string21);
   (void) XR←DeclareGlobalFrame((word) "ImagerFDBuildImpl", &globalframe, (word) XR←GetTypeIndex((word) &string38, 0, (word) &string39)
      , (word) (( (bPt) gf←c0697)+608)/* var←c43192 */ );
   var←c49880 = (word) XR←ImportInterface((word) "ImagerFDTypeface", (word) XR←GetTypeIndexS((word) (&string40)), 2);
   (* (( (ptr) gf←c0697)+161)/* var←c48792 */  ) = var←c49880;
   (void) XR←ImportProcS(var←c49880, 67371009);
   var←c49880 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string41)), 16);
   (* (( (ptr) gf←c0697)+163)/* var←c49560 */  ) = var←c49880;
   (void) XR←ImportProcS(var←c49880, 67372289);
   var←c49880 = (word) XR←ImportInterface((word) "CardTab", (word) XR←GetTypeIndexS((word) (&string42)), 12);
   (* (( (ptr) gf←c0697)+156)/* var←c43448 */  ) = var←c49880;
   (void) XR←ImportProcS(var←c49880, 67896835);
   (void) XR←ImportProcS(var←c49880, 67635458);
   (void) XR←ImportProcS(var←c49880, 67896579);
   (void) XR←ImportProcS(var←c49880, 134742786);
   (void) XR←ImportProcS(var←c49880, 788995);
   (void) XR←ImportProcS(var←c49880, 67371265);
   var←c49880 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string43)), 55);
   (* (( (ptr) gf←c0697)+154)/* var←c43224 */  ) = var←c49880;
   (void) XR←ImportProcS(var←c49880, 67645698);
   (void) XR←ImportProcS(var←c49880, 402927105);
   (void) XR←ImportProcS(var←c49880, 67371777);
   var←c49880 = (word) XR←ImportInterface((word) "ImagerSys", (word) XR←GetTypeIndexS((word) (&string44)), 15);
   (* (( (ptr) gf←c0697)+160)/* var←c48760 */  ) = var←c49880;
   (void) XR←ImportProcS(var←c49880, 67374593);
   (void) XR←ImportProcS(var←c49880, 67373313);
   var←c49880 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string45)), 103);
   (* (( (ptr) gf←c0697)+162)/* var←c48824 */  ) = var←c49880;
   (void) XR←ImportProcS(var←c49880, 1071364);
   (void) XR←ImportProcS(var←c49880, 528642);
   (void) XR←ImportProcS(var←c49880, 530434);
   var←c49880 = (word) XR←ImportInterface((word) "SymTab", (word) XR←GetTypeIndexS((word) (&string46)), 13);
   (* (( (ptr) gf←c0697)+159)/* var←c47480 */  ) = var←c49880;
   (void) XR←ImportProcS(var←c49880, 789251);
   (void) XR←ImportProcS(var←c49880, 67633410);
   var←c49880 = (word) XR←ImportInterface((word) "List", (word) XR←GetTypeIndexS((word) (&string47)), 28);
   (* (( (ptr) gf←c0697)+157)/* var←c44088 */  ) = var←c49880;
   (void) XR←ImportProcS(var←c49880, 67375873);
   (void) XR←ImportProcS(var←c49880, 67639810);
   (void) XR←ImportProcS(var←c49880, 67639042);
   var←c49880 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string48)), 11);
   (* (( (ptr) gf←c0697)+155)/* var←c43352 */  ) = var←c49880;
   (void) XR←ImportProcS(var←c49880, 67371521);
   (void) XR←ImportProcS(var←c49880, 67633154);
   (void) XR←ImportProcS(var←c49880, 67371265);
   var←c49880 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string49)), 43);
   (* (( (ptr) gf←c0697)+164)/* var←c49848 */  ) = var←c49880;
   (void) XR←ImportProcS(var←c49880, 67373825);
   var←c49880 = (word) XR←ImportInterface((word) "RefTab", (word) XR←GetTypeIndexS((word) (&string50)), 16);
   (* (( (ptr) gf←c0697)+158)/* var←c44792 */  ) = var←c49880;
   (void) XR←ImportProcS(var←c49880, 67371521);
   (void) XR←ImportProcS(var←c49880, 134742786);
   (void) XR←ImportProcS(var←c49880, 788995);
   (void) XR←ImportProcS(var←c49880, 67896835);
   (void) XR←ImportProcS(var←c49880, 67635458);
   (void) XR←ImportProcS(var←c49880, 67895555);
   var←c49880 = (word) XR←ExportInterface((word) "ImagerFDBuild", (word) XR←GetTypeIndexS((word) (&string51)), 11);
   (* (( (ptr) gf←c0697)+165)/* var←c49912 */  ) = var←c49880;
   (void) XR←ExportProcS(var←c49880, (word) (( (bPt) gf←c0697)+592)/* var←c43128 */ , 67108864, (word) "Create");
   (void) XR←ExportProcS(var←c49880, (word) (( (bPt) gf←c0697)+584)/* var←c43096 */ , 3670275, (word) "Insert");
   (void) XR←ExportProcS(var←c49880, (word) (( (bPt) gf←c0697)+336)/* var←c42104 */ , 524802, (word) "Write");
   (void) XR←ExportProcS(var←c49880, (word) (( (bPt) gf←c0697)+352)/* var←c42168 */ , 67371777, (word) "Read");
   (void) XR←ExportProcS(var←c49880, (word) (( (bPt) gf←c0697)+576)/* var←c43064 */ , 67634178, (word) "FetchList");
   (void) XR←ExportProcS(var←c49880, (word) (( (bPt) gf←c0697)+568)/* var←c43032 */ , 787715, (word) "StoreList");
   (void) XR←ExportProcS(var←c49880, (word) (( (bPt) gf←c0697)+384)/* var←c42296 */ , 263681, (word) "Canonicalize");
   (void) XR←ExportVar(var←c49880, 7, (word) (( (bPt) gf←c0697)+164)/* var←c41400 */ );
   (void) XR←ExportProcS(var←c49880, (word) (( (bPt) gf←c0697)+480)/* var←c42680 */ , 67373057, (word) "FDTypefaceDataFromCanonicalizedFDTable")
   ;
   (void) XR←ExportProcS(var←c49880, (word) (( (bPt) gf←c0697)+344)/* var←c42136 */ , 67373313, (word) "FDTableFromFDTypefaceData")
   ;
   (void) XR←ExportProcS(var←c49880, (word) (( (bPt) gf←c0697)+328)/* var←c42072 */ , 526850, (word) "WriteFDTypefaceData");
   }

static void ImagerFDBuildImpl←P0(formal←c086, formal←c078)
   word formal←c086;
   word formal←c078;
   {
   register ptr gf←c49944 =  (ptr) &globalframe;
   /* ImagerFDBuildImpl: */ 
SOURCE(1259, 33413)
   /* moved to installation proc */ 
SOURCE(1891, 39)
   {
      word x53;
      word x55;
      *(float*)(( (ptr) gf←c49944)+5)/* escapementTolerance←v3308 */  = (
         x53 = (*  (ptr) &fc52 ),  *(float*)&x53
         ) / (
         x55 = (*  (ptr) &fc54 ),  *(float*)&x55
         );
      };
SOURCE(19376, 56)
   {
      word pd56;
      pd56 = (* (( (ptr) (* (( (ptr) gf←c49944)+154)/* var←c43224 */  ))+7) );
      (* (( (ptr) gf←c49944)+6)/* identity←v4288 */  ) = (word) ( *( (fPt) ((*  (ptr) pd56 ))))((*  (ptr) (&fc52) ), pd56);
      };
SOURCE(24584, 89)
   {
      W6 var←c43256;
      word var←c43288;
      {
         word pd57;
         pd57 = (* (( (ptr) (* (( (ptr) gf←c49944)+154)/* var←c43224 */  ))+50) );
         (void) ( *( (fPt) ((*  (ptr) pd57 ))))((word) &var←c43256, (* (( (ptr) gf←c49944)+6)/* identity←v4288 */  ), pd57);
         };
      var←c43288 = XR←NewObject(28, (* (( (ptr) gf←c49944)+9) ));
      (*  (W6Pt) var←c43288 ) = var←c43256;
      (* (( (ptr) gf←c49944)+7)/* nullFactored←v4484 */  ) = var←c43288;
      };
SOURCE(33950, 53)
   {
      word var←c43320;
      word a←v21436;
      a←v21436 = (*  (ptr) &fc58 );
SOURCE(34074, 93)
      {
         register word i←v21464 = 0;
         lab←L100003: ;
         {
            word b←v21492;
            {
               word x59;
               word x60;
               word x61;
               *(float*)&b←v21492 = ((
                  x59 = a←v21436,  *(float*)&x59
                  ) + (
                  x60 = a←v21436,  *(float*)&x60
                  )) + (
                  x61 = (*  (ptr) &fc58 ),  *(float*)&x61
                  );
               };
SOURCE(34120, 40)
            {
               word x62;
               word pd63;
               pd63 = (* (( (ptr) (* (( (ptr) gf←c49944)+155)/* var←c43352 */  ))+5) );
               if (((
                  x62 = b←v21492,  *(float*)&x62
                  ) == (float)(int)(word) ( *( (fPt) ((*  (ptr) pd63 ))))(b←v21492, pd63))) {
SOURCE(34150, 10)
                  var←c43320 = a←v21436;
                  goto lab←L100004;
                  };
               };
SOURCE(34162, 5)
            a←v21436 = b←v21492;
            };
         if ((i←v21464 >= 999)) {
            goto lab←L100000;
            };
         i←v21464 = (i←v21464 + 1);
         goto lab←L100003;
         lab←L100000: ;
         };
SOURCE(34178, 5)
      (void) XR←RaiseUnnamedError();
      lab←L100004: ;
      (* (( (ptr) gf←c49944)+8)/* largestFlonumFraction←v5296 */  ) = var←c43320;
      };
   }

static word CompareReal←P60(a←v5564, b←v5592)
   word a←v5564;
   word b←v5592;
   {
   word var←c5636;
   /* CompareReal: */ 
SOURCE(1673, 139)
SOURCE(1736, 76)
   {
      word x64;
      word x65;
      word x66;
      word x67;
      word idx68;
      return((
         idx68 = (word)  ( ((
            x64 = a←v5564,  *(float*)&x64
            ) < (
            x65 = b←v5592,  *(float*)&x65
            )) ? 0 :  ( ((
            x66 = a←v5564,  *(float*)&x66
            ) == (
            x67 = b←v5592,  *(float*)&x67
            )) ? 1 : 2 )  ) ,
         BCK(idx68, 3)
         ));
      };
   }

static word Create←P120()
   {
   register ptr gf←c49976 =  (ptr) &globalframe;
   word var←c5696;
   /* Create: */ 
SOURCE(1983, 97)
SOURCE(2025, 55)
   {
      word var←c43416;
      word var←c43480;
      {
         word pd69;
         pd69 = (* (( (ptr) (* (( (ptr) gf←c49976)+156)/* var←c43448 */  ))+5) );
         var←c43416 = (word) ( *( (fPt) ((*  (ptr) pd69 ))))(17, pd69);
         };
      var←c43480 = XR←NewObject(12, (* (( (ptr) gf←c49976)+13) ));
      (*  (ptr) var←c43480 ) = var←c43416;
      return(var←c43480);
      };
   }

static void Insert←P180(fdTable←v5756, code←v5784, formal←c0826)
   word fdTable←v5756;
   word code←v5784;
   W12 formal←c0826;
   {
   W18 var←c50008;
   /* declaration of cd←v5812 skipped */ 
   register ptr gf←c50040 =  (ptr) &globalframe;
   /* declaration of var←c43512 skipped */ 
   (*  (W12Pt) (( (ptr) &var←c50008)+4)/* cd←v5812 */  ) = formal←c0826;
   /* Insert: */ 
SOURCE(2084, 372)
   {
      word tmpAddr70;
      tmpAddr70 = (word) (( (ptr) &var←c50008)+16)/* var←c43512 */ ;
      (*  (ptr) tmpAddr70 ) = ( ((word)  (fPt) Inner←P3540) );
      (* (( (ptr) tmpAddr70) + 1) ) = 1;
      };
SOURCE(2353, 60)
   {
      word pd71;
      pd71 = (* (( (ptr) (* (( (ptr) gf←c50040)+156)/* var←c43448 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd71 ))))((*  (ptr) fdTable←v5756 ), code←v5784, (word) (( (bPt) &var←c50008)+64)/* var←c43512 */ , pd71)
      ;
      };
SOURCE(2415, 41)
   (* (( (ptr) fdTable←v5756)+2) ) = 0;
   }

static void Inner←P3540(formal←c0106, found←v33352, val←v33380, formal←c50104)
   word formal←c0106;
   word found←v33352;
   word val←v33380;
   word formal←c50104;
   {
   register ptr gf←c50072 =  (ptr) &globalframe;
   word op←v33424;
   word new←v33452;
   word newCDs←v11308;
   formal←c50104 = (formal←c50104 - 64);
   /* Inner: */ 
SOURCE(2168, 182)
SOURCE(2168, 182)
   op←v33424 = 0;
SOURCE(2168, 182)
   new←v33452 = 0;
SOURCE(2200, 125)
   {
      word var←c43544;
      word var←c43608;
      word var←c43640;
      {
         word var←c43576;
         var←c43576 = XR←NewObject(48, (* (( (ptr) gf←c50072)+17) ));
         (*  (W12Pt) var←c43576 ) = (*  (W12Pt) (( (ptr) formal←c50104)+4) );
         var←c43544 = var←c43576;
         };
      var←c43608 = XR←Narrow(val←v33380, (* (( (ptr) gf←c50072)+16) ));
      var←c43640 = XR←NewObject(8, (* (( (ptr) gf←c50072)+16) ));
      (*  (ptr) var←c43640 ) = var←c43544;
      (* (( (ptr) var←c43640)+1) ) = var←c43608;
      newCDs←v11308 = var←c43640;
      };
SOURCE(2327, 23)
   op←v33424 = 1;
   new←v33452 = newCDs←v11308;
   /* removed tail goto */ 
   (*  (ptr) formal←c0106 ) = op←v33424;
   (* (( (ptr) formal←c0106)+1) ) = new←v33452;
   return;
   }

static word FetchList←P240(fdTable←v5872, code←v5900)
   word fdTable←v5872;
   word code←v5900;
   {
   register ptr gf←c50136 =  (ptr) &globalframe;
   word var←c5944;
   /* FetchList: */ 
SOURCE(2462, 148)
SOURCE(2552, 58)
   {
      word var←c0786;
      {
         W2 var←c0110;
         word var←c0785;
         {
            word pd72;
            pd72 = (* (( (ptr) (* (( (ptr) gf←c50136)+156)/* var←c43448 */  ))+7) );
            (void) ( *( (fPt) ((*  (ptr) pd72 ))))((word) &var←c0110, (*  (ptr) fdTable←v5872 ), code←v5900, pd72);
            };
         var←c0785 = var←c0110.f1;
         var←c0786 = XR←Narrow(var←c0785, (* (( (ptr) gf←c50136)+16) ));
         };
      return(var←c0786);
      };
   }

static void StoreList←P300(fdTable←v6004, code←v6032, cds←v6060)
   word fdTable←v6004;
   word code←v6032;
   word cds←v6060;
   {
   register ptr gf←c50168 =  (ptr) &globalframe;
   /* StoreList: */ 
SOURCE(2614, 188)
SOURCE(2700, 59)
   {
      word var←c43704;
      word pd73;
      pd73 = (* (( (ptr) (* (( (ptr) gf←c50168)+156)/* var←c43448 */  ))+9) );
      var←c43704 = (word) ( *( (fPt) ((*  (ptr) pd73 ))))((*  (ptr) fdTable←v6004 ), code←v6032, cds←v6060, pd73);
      };
SOURCE(2761, 41)
   (* (( (ptr) fdTable←v6004)+2) ) = 0;
   }

static word RealAssocCompare←P360(ref1←v32116, ref2←v32144)
   word ref1←v32116;
   word ref2←v32144;
   {
   register ptr gf←c50200 =  (ptr) &globalframe;
   word var←c32188;
   word a←v11352;
   word b←v11380;
   /* RealAssocCompare: */ 
SOURCE(2917, 190)
SOURCE(2956, 31)
   a←v11352 = XR←Narrow(ref1←v32116, (* (( (ptr) gf←c50200)+18) ));
SOURCE(2989, 31)
   b←v11380 = XR←Narrow(ref2←v32144, (* (( (ptr) gf←c50200)+18) ));
SOURCE(3022, 85)
   {
      word var←c43768;
      word a←v41324;
      word b←v41352;
      a←v41324 = (* (( (ptr) b←v11380)+1) );
      b←v41352 = (* (( (ptr) a←v11352)+1) );
      {
         word idx74;
         var←c43768 = (
            idx74 = (word)  ( (a←v41324 == b←v41352) ? 1 :  ( (a←v41324 > b←v41352) ? 2 : 0 )  ) ,
            BCK(idx74, 3)
            );
         };
      return(var←c43768);
      };
   }

static void CountReal←P420(realTab←v6232, formal←c0827)
   word realTab←v6232;
   word formal←c0827;
   {
   W7 var←c50232;
   /* declaration of real←v6260 skipped */ 
   register ptr gf←c50264 =  (ptr) &globalframe;
   /* declaration of var←c43800 skipped */ 
   var←c50232.f4/* real←v6260 */  = formal←c0827;
   /* CountReal: */ 
SOURCE(3110, 293)
   {
      word tmpAddr75;
      tmpAddr75 = (word) (( (ptr) &var←c50232)+5)/* var←c43800 */ ;
      (*  (ptr) tmpAddr75 ) = ( ((word)  (fPt) Inner←P3600) );
      (* (( (ptr) tmpAddr75) + 1) ) = 1;
      };
SOURCE(3341, 62)
   {
      word pd76;
      pd76 = (* (( (ptr) (* (( (ptr) gf←c50264)+156)/* var←c43448 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd76 ))))(realTab←v6232, var←c50232.f4/* real←v6260 */ , (word) (( (bPt) &var←c50232)+20)/* var←c43800 */ , pd76)
      ;
      };
   }

static void Inner←P3600(formal←c0133, found←v34008, val←v34036, formal←c50328)
   word formal←c0133;
   word found←v34008;
   word val←v34036;
   word formal←c50328;
   {
   register ptr gf←c50296 =  (ptr) &globalframe;
   word op←v34080;
   word new←v34108;
   formal←c50328 = (formal←c50328 - 20);
   /* Inner: */ 
SOURCE(3161, 174)
SOURCE(3161, 174)
   op←v34080 = 0;
SOURCE(3161, 174)
   new←v34108 = 0;
SOURCE(3193, 142)
   if ((0 != found←v34008)) {
SOURCE(3207, 54)
      {
         word c←v11492;
SOURCE(3209, 30)
         c←v11492 = XR←Narrow(val←v34036, (* (( (ptr) gf←c50296)+18) ));
SOURCE(3241, 20)
         (* (( (ptr) c←v11492)+1) ) = ((* (( (ptr) c←v11492)+1) ) + 1);
         };
      }
   else {
SOURCE(3270, 65)
      {
         word var←c43896;
         {
            word var←c43864;
            var←c43864 = XR←NewObject(12, (* (( (ptr) gf←c50296)+18) ));
            (*  (ptr) var←c43864 ) = (* (( (ptr) formal←c50328)+4) );
            (* (( (ptr) var←c43864)+1) ) = 1;
            var←c43896 = var←c43864;
            };
         op←v34080 = 1;
         new←v34108 = var←c43896;
         goto lab←L100007;
         };
      };
   /* removed tail goto */ 
   lab←L100007: ;
   (*  (ptr) formal←c0133 ) = op←v34080;
   (* (( (ptr) formal←c0133)+1) ) = new←v34108;
   return;
   }

static word FindCommonReals←P480(realTab←v6404, formal←c0828, max←v6460)
   word realTab←v6404;
   word formal←c0828;
   word max←v6460;
   {
   W12 var←c50360;
   /* declaration of tolerance←v6432 skipped */ 
   register ptr gf←c50392 =  (ptr) &globalframe;
   word var←c6504;
   /* declaration of var←c43928 skipped */ 
   /* declaration of var←c43960 skipped */ 
   /* declaration of var←c43992 skipped */ 
   /* declaration of list←v11548 skipped */ 
   word ans←v11576;
   (* (( (ptr) &var←c50360)+4)/* tolerance←v6432 */  ) = formal←c0828;
   /* FindCommonReals: */ 
SOURCE(3526, 1759)
   {
      word tmpAddr77;
      tmpAddr77 = (word) (( (ptr) &var←c50360)+5)/* var←c43928 */ ;
      (*  (ptr) tmpAddr77 ) = ( ((word)  (fPt) CloseEnough←P3876) );
      (* (( (ptr) tmpAddr77) + 1) ) = 1;
      };
   {
      word tmpAddr78;
      tmpAddr78 = (word) (( (ptr) &var←c50360)+7)/* var←c43960 */ ;
      (*  (ptr) tmpAddr78 ) = ( ((word)  (fPt) RealAssocOrderCompare←P3816) );
      (* (( (ptr) tmpAddr78) + 1) ) = 1;
      };
   {
      word tmpAddr79;
      tmpAddr79 = (word) (( (ptr) &var←c50360)+9)/* var←c43992 */ ;
      (*  (ptr) tmpAddr79 ) = ( ((word)  (fPt) EachEntry←P3708) );
      (* (( (ptr) tmpAddr79) + 1) ) = 1;
      };
SOURCE(3637, 6)
   (* (( (ptr) &var←c50360)+11)/* list←v11548 */  ) = 0;
SOURCE(3666, 38)
   ans←v11576 = XR←NewObject(8, (* (( (ptr) gf←c50392)+19) ));
SOURCE(3771, 49)
   {
      word var←c44056;
      word pd80;
      pd80 = (* (( (ptr) (* (( (ptr) gf←c50392)+156)/* var←c43448 */  ))+13) );
      var←c44056 = (word) ( *( (fPt) ((*  (ptr) pd80 ))))(realTab←v6404, (word) (( (bPt) &var←c50360)+36)/* var←c43992 */ , pd80)
      ;
      };
SOURCE(3822, 953)
   {
      word x81;
      word x83;
      if (((
         x81 = (* (( (ptr) &var←c50360)+4)/* tolerance←v6432 */  ),  *(float*)&x81
         ) != (
         x83 = (*  (ptr) &fc82 ),  *(float*)&x83
         ))) {
SOURCE(3846, 931)
         {
            word new←v11744 = 0;
            word clusterStart←v11772 = 0;
SOURCE(4211, 64)
            {
               word pd84;
               pd84 = (* (( (ptr) (* (( (ptr) gf←c50392)+157)/* var←c44088 */  ))+27) );
               (* (( (ptr) &var←c50360)+11)/* list←v11548 */  ) = (word) ( *( (fPt) ((*  (ptr) pd84 ))))((* (( (ptr) &var←c50360)+11)/* list←v11548 */  ), (word) (
                     ( (bPt) &var←c50360)+28)/* var←c43960 */ , pd84);
               };
SOURCE(4277, 390)
            {
               register word tail←v12112;
               tail←v12112 = (* (( (ptr) &var←c50360)+11)/* list←v11548 */  );
               lab←L100011: ;
               if ((tail←v12112 != 0)) {
                  }
               else {
                  goto lab←L100008;
                  };
               {
                  word this←v12252;
SOURCE(4341, 40)
                  this←v12252 = XR←Narrow((*  (ptr) tail←v12112 ), (* (( (ptr) gf←c50392)+18) ));
SOURCE(4383, 284)
                  if ((clusterStart←v11772 == 0)) {
SOURCE(4411, 19)
                     clusterStart←v11772 = this←v12252;
                     }
                  else {
SOURCE(4439, 228)
                     if ((0 != (word) CloseEnough←P3876((*  (ptr) this←v12252 ), (*  (ptr) clusterStart←v11772 ), (word) (( (bPt) &var←c50360)+20)
                        /* var←c43928 */ ))) {
SOURCE(4491, 35)
                        (* (( (ptr) this←v12252)+2) ) = (* (( (ptr) clusterStart←v11772)+2) );
SOURCE(4528, 27)
                        (* (( (ptr) clusterStart←v11772)+2) ) = this←v12252;
SOURCE(4557, 49)
                        (* (( (ptr) clusterStart←v11772)+1) ) = ((* (( (ptr) clusterStart←v11772)+1) ) + (* (( (ptr) this←v12252)+1) ));
                        }
                     else {
SOURCE(4617, 29)
                        {
                           word var←c44120;
                           var←c44120 = XR←NewObject(8, (* (( (ptr) gf←c50392)+20) ));
                           (*  (ptr) var←c44120 ) = clusterStart←v11772;
                           (* (( (ptr) var←c44120)+1) ) = new←v11744;
                           new←v11744 = var←c44120;
                           };
SOURCE(4648, 19)
                        clusterStart←v11772 = this←v12252;
                        };
                     };
                  };
               tail←v12112 = (* (( (ptr) tail←v12112)+1) );
               goto lab←L100011;
               lab←L100008: ;
               };
SOURCE(4684, 78)
            if ((clusterStart←v11772 != 0)) {
SOURCE(4712, 29)
               {
                  word var←c44152;
                  var←c44152 = XR←NewObject(8, (* (( (ptr) gf←c50392)+20) ));
                  (*  (ptr) var←c44152 ) = clusterStart←v11772;
                  (* (( (ptr) var←c44152)+1) ) = new←v11744;
                  new←v11744 = var←c44152;
                  };
SOURCE(4743, 19)
               clusterStart←v11772 = 0;
               };
SOURCE(4765, 10)
            (* (( (ptr) &var←c50360)+11)/* list←v11548 */  ) = new←v11744;
            };
         };
      };
SOURCE(4780, 59)
   {
      word pd85;
      pd85 = (* (( (ptr) (* (( (ptr) gf←c50392)+157)/* var←c44088 */  ))+27) );
      (* (( (ptr) &var←c50360)+11)/* list←v11548 */  ) = (word) ( *( (fPt) ((*  (ptr) pd85 ))))((* (( (ptr) &var←c50360)+11)/* list←v11548 */  ), (word) (
            ( (bPt) gf←c50392)+560)/* var←c43000 */ , pd85);
      };
SOURCE(4841, 34)
   {
      word pd86;
      pd86 = (* (( (ptr) (* (( (ptr) gf←c50392)+156)/* var←c43448 */  ))+5) );
      (*  (ptr) ans←v11576 ) = (word) ( *( (fPt) ((*  (ptr) pd86 ))))(17, pd86);
      };
SOURCE(4877, 64)
   {
      word var←c44184;
      {
         word var←c44216;
         word var←c44248;
         word var←c44280;
         {
            word pd87;
            word x88;
            word idx89;
            pd87 = (* (( (ptr) (* (( (ptr) gf←c50392)+157)/* var←c44088 */  ))+23) );
            var←c44216 = (
               idx89 = (word) (x88 = (word) ( *( (fPt) ((*  (ptr) pd87 ))))((* ((( (ptr) &var←c50360)+11)/* list←v11548 */ ) ), pd87),
                  MIN((int)(word), x88, (max←v6460 + 1))),
               SGNCK(idx89)
               );
            };
         var←c44248 = ((word) var←c44216 << 2);
         var←c44280 = XR←NewObject((4 + var←c44248), (* (( (ptr) gf←c50392)+21) ));
         (*  (ptr) var←c44280 ) = var←c44216;
         var←c44184 = var←c44280;
         };
      (* (( (ptr) ans←v11576)+1) ) = var←c44184;
      };
SOURCE(4943, 318)
   {
      register word i←v12404 = 0;
      register word noName←c44312;
      noName←c44312 = (*  (ptr) (* (( (ptr) ans←v11576)+1) ) );
      if ((i←v12404 >= noName←c44312)) {
         goto lab←L100012;
         };
      lab←L100015: ;
      {
         word r←v12448;
SOURCE(4991, 37)
         r←v12448 = XR←Narrow((*  (ptr) (* (( (ptr) &var←c50360)+11)/* list←v11548 */  ) ), (* (( (ptr) gf←c50392)+18) ));
SOURCE(5030, 27)
         {
            word var←c44344;
            var←c44344 = (* (( (ptr) ans←v11576)+1) );
            {
               word limit90;
               (* ((( (ptr) var←c44344)+1)+(
                     limit90 = (*  (ptr) var←c44344 ),
                     BCK(i←v12404, limit90)
                     )) ) = (*  (ptr) r←v12448 );
               };
            };
SOURCE(5059, 170)
         {
            register word a←v12504;
            word var←c44376;
            a←v12504 = r←v12448;
            lab←L100019: ;
            if ((a←v12504 != 0)) {
               }
            else {
               goto lab←L100016;
               };
SOURCE(5112, 117)
            {
               word pd91;
               {
                  word var←c44408;
                  var←c44408 = XR←NewObject(12, (* (( (ptr) gf←c50392)+18) ));
                  (*  (ptr) var←c44408 ) = (*  (ptr) r←v12448 );
                  (* (( (ptr) var←c44408)+1) ) = i←v12404;
                  var←c44376 = var←c44408;
                  };
               pd91 = (* (( (ptr) (* (( (ptr) gf←c50392)+156)/* var←c43448 */  ))+10) );
               if ((0 == (word) ( *( (fPt) ((*  (ptr) pd91 ))))((*  (ptr) ans←v11576 ), (*  (ptr) a←v12504 ), var←c44376, pd91))) {
SOURCE(5229, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            a←v12504 = (* (( (ptr) a←v12504)+2) );
            goto lab←L100019;
            lab←L100016: ;
            };
SOURCE(5245, 16)
         (* (( (ptr) &var←c50360)+11)/* list←v11548 */  ) = (* (( (ptr) (* (( (ptr) &var←c50360)+11)/* list←v11548 */  ))+1) );
         };
      i←v12404 = (i←v12404 + 1);
      if ((i←v12404 < noName←c44312)) {
         goto lab←L100015;
         };
      lab←L100012: ;
      };
SOURCE(5272, 13)
   return(ans←v11576);
   }

static word EachEntry←P3708(key←v34180, val←v34208, formal←c50456)
   word key←v34180;
   word val←v34208;
   word formal←c50456;
   {
   register ptr gf←c50424 =  (ptr) &globalframe;
   word quit←v34252;
   formal←c50456 = (formal←c50456 - 36);
   /* EachEntry: */ 
SOURCE(3706, 60)
SOURCE(3706, 60)
   quit←v34252 = 0;
SOURCE(3744, 22)
   {
      word var←c44440;
      var←c44440 = XR←NewObject(8, (* (( (ptr) gf←c50424)+20) ));
      (*  (ptr) var←c44440 ) = val←v34208;
      (* (( (ptr) var←c44440)+1) ) = (* (( (ptr) formal←c50456)+11) );
      (* (( (ptr) formal←c50456)+11) ) = var←c44440;
      };
SOURCE(3706, 60)
   return(quit←v34252);
   }

static word RealAssocOrderCompare←P3816(ref1←v34312, ref2←v34340, formal←c50520)
   word ref1←v34312;
   word ref2←v34340;
   word formal←c50520;
   {
   register ptr gf←c50488 =  (ptr) &globalframe;
   word var←c34384;
   word a←v12308;
   word b←v12336;
   formal←c50520 = (formal←c50520 - 28);
   /* RealAssocOrderCompare: */ 
SOURCE(3911, 42)
SOURCE(3955, 31)
   a←v12308 = XR←Narrow(ref1←v34312, (* (( (ptr) gf←c50488)+18) ));
SOURCE(3988, 31)
   b←v12336 = XR←Narrow(ref2←v34340, (* (( (ptr) gf←c50488)+18) ));
SOURCE(4021, 65)
   return((word) CompareReal←P60((*  (ptr) b←v12336 ), (*  (ptr) a←v12308 )));
   }

static word CloseEnough←P3876(a←v12012, b←v12040, formal←c50552)
   word a←v12012;
   word b←v12040;
   word formal←c50552;
   {
   word var←c12084;
   formal←c50552 = (formal←c50552 - 20);
   /* CloseEnough: */ 
SOURCE(4089, 19)
SOURCE(4139, 36)
   {
      word x92;
      word x93;
      word x94;
      word x95;
      if (( (unsigned) ((
         x92 = a←v12012,  *(float*)&x92
         ) > (
         x93 = (*  (ptr) &fc82 ),  *(float*)&x93
         )) !=  (unsigned) ((
         x94 = b←v12040,  *(float*)&x94
         ) > (
         x95 = (*  (ptr) &fc82 ),  *(float*)&x95
         )))) {
SOURCE(4161, 14)
         return(0);
         };
      };
SOURCE(4177, 31)
   {
      float tf96;
      word x97;
      word x98;
      word x99;
      return( (unsigned) (FABS(((
            x97 = a←v12012,  *(float*)&x97
            ) - (
            x98 = b←v12040,  *(float*)&x98
            )), tf96) <= (
         x99 = (* (( (ptr) formal←c50552)+4) ),  *(float*)&x99
         )));
      };
   }

static word GetRealCode←P540(commonReals←v6564, real←v6592)
   word commonReals←v6564;
   word real←v6592;
   {
   register ptr gf←c50584 =  (ptr) &globalframe;
   word var←c6636;
   word found←v12560;
   word val←v12588 = 0;
   /* GetRealCode: */ 
SOURCE(5289, 245)
SOURCE(5387, 77)
   {
      W2 var←c44504;
      {
         word pd100;
         pd100 = (* (( (ptr) (* (( (ptr) gf←c50584)+156)/* var←c43448 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd100 ))))((word) &var←c44504, (*  (ptr) commonReals←v6564 ), real←v6592, pd100);
         };
      val←v12588 = var←c44504.f1;
      found←v12560 = var←c44504.f0;
      };
SOURCE(5466, 68)
   {
      word idx101;
      if ((0 != found←v12560)) {
         return((
            idx101 = (* (( (ptr) XR←Narrow(val←v12588, (* (( (ptr) gf←c50584)+18) )))+1) ),
            SGNCK(idx101)
            ));
         }
      else {
         return( (word) -1);
         };
      };
   }

static word BuildSetArrayTable←P600(fdTable←v6752)
   word fdTable←v6752;
   {
   W7 var←c50616;
   register ptr gf←c50648 =  (ptr) &globalframe;
   word var←c6796;
   /* declaration of var←c44568 skipped */ 
   /* declaration of setArrayTable←v12656 skipped */ 
   /* BuildSetArrayTable: */ 
SOURCE(5676, 491)
   {
      word tmpAddr102;
      tmpAddr102 = (word) (( (ptr) &var←c50616)+4)/* var←c44568 */ ;
      (*  (ptr) tmpAddr102 ) = ( ((word)  (fPt) EachChar←P4176) );
      (* (( (ptr) tmpAddr102) + 1) ) = 1;
      };
SOURCE(5748, 52)
   var←c50616.f6/* setArrayTable←v12656 */  = XR←NewObject(1024, (* (( (ptr) gf←c50648)+11) ));
SOURCE(6087, 56)
   {
      word var←c44632;
      word pd103;
      pd103 = (* (( (ptr) (* (( (ptr) gf←c50648)+156)/* var←c43448 */  ))+13) );
      var←c44632 = (word) ( *( (fPt) ((*  (ptr) pd103 ))))((*  (ptr) fdTable←v6752 ), (word) (( (bPt) &var←c50616)+16)/* var←c44568 */ , pd103)
      ;
      };
SOURCE(6145, 22)
   return(var←c50616.f6/* setArrayTable←v12656 */ );
   }

static word EachChar←P4176(key←v34540, val←v34568, formal←c50712)
   word key←v34540;
   word val←v34568;
   word formal←c50712;
   {
   register ptr gf←c50680 =  (ptr) &globalframe;
   word quit←v34612;
   word set←v12728;
   word code←v12756;
   formal←c50712 = (formal←c50712 - 16);
   /* EachChar: */ 
SOURCE(5802, 280)
SOURCE(5802, 280)
   quit←v34612 = 0;
SOURCE(5839, 24)
   {
      word idx104;
      set←v12728 = (
         idx104 = (word) ((word) key←v34540 >> 8),
         BCK(idx104, 256)
         );
      };
SOURCE(5865, 24)
   code←v12756 = (key←v34540 & 0377);
SOURCE(5891, 105)
   if (((* (( (ptr) (* (( (ptr) formal←c50712)+6) ))+set←v12728) ) == 0)) {
SOURCE(5924, 72)
      (* (( (ptr) (* (( (ptr) formal←c50712)+6) ))+set←v12728) ) = XR←NewObject(1024, (* (( (ptr) gf←c50680)+23) ));
      };
SOURCE(5998, 39)
   if (((* (( (ptr) (* (( (ptr) (* (( (ptr) formal←c50712)+6) ))+set←v12728) ))+code←v12756) ) != 0)) {
SOURCE(6037, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(6044, 38)
   (* (( (ptr) (* (( (ptr) (* (( (ptr) formal←c50712)+6) ))+set←v12728) ))+code←v12756) ) = XR←Narrow(val←v34568, (* (( (ptr) gf←c50680)+16)
       ));
SOURCE(5802, 280)
   return(quit←v34612);
   }

static word Compatible←P660(a←v6856, b←v6884)
   word a←v6856;
   word b←v6884;
   {
   word var←c6928;
   /* Compatible: */ 
SOURCE(6173, 442)
SOURCE(6239, 350)
   lab←L100022: ;
   if ( (  ( (a←v6856 != 0) ? (b←v6884 != 0) : 0 )  ? (a←v6856 != b←v6884) : 0 ) ) {
      }
   else {
      goto lab←L100020;
      };
   {
      word ac←v12816;
      word bc←v12844;
SOURCE(6282, 34)
      ac←v12816 = (*  (ptr) a←v6856 );
SOURCE(6318, 34)
      bc←v12844 = (*  (ptr) b←v6884 );
SOURCE(6354, 27)
      if ((a←v6856 == b←v6884)) {
SOURCE(6368, 13)
         return(1);
         };
SOURCE(6383, 182)
      if ((((((*  (ptr) ac←v12816 ) != (*  (ptr) bc←v12844 )) || ((* (( (ptr) ac←v12816)+1) ) != (* (( (ptr) bc←v12844)+1) ))) || ( (int)(* (
         ( (ptr) ac←v12816)+2) ) !=  (int)(* (( (ptr) bc←v12844)+2) ))) || ((* (( (ptr) ac←v12816)+3) ) != (* (( (ptr) bc←v12844)+3)
       ))) || ((* (( (ptr) ac←v12816)+10) ) != (* (( (ptr) bc←v12844)+10) ))) {
SOURCE(6551, 14)
         return(0);
         };
SOURCE(6567, 10)
      a←v6856 = (* (( (ptr) a←v6856)+1) );
SOURCE(6579, 10)
      b←v6884 = (* (( (ptr) b←v6884)+1) );
      };
   goto lab←L100022;
   lab←L100020: ;
SOURCE(6600, 15)
   return( (unsigned) (a←v6856 == b←v6884));
   }

static void ForEachRun←P720(setArrayTable←v7104, runProc←v7132)
   word setArrayTable←v7104;
   word runProc←v7132;
   {
   word prevCDS←v12888 = 0;
   word startCode←v12916 =  (word) -1;
   word finalCode←v12944 = 0;
   word constant←v12972 = 0;
   /* ForEachRun: */ 
SOURCE(6677, 886)
SOURCE(6859, 704)
   {
      register word set←v13016 = 0;
      lab←L100026: ;
SOURCE(6890, 673)
      if (((* (( (ptr) setArrayTable←v7104)+set←v13016) ) != 0)) {
SOURCE(6923, 645)
         {
            word t←v13060;
SOURCE(6925, 63)
            t←v13060 = (* (( (ptr) setArrayTable←v7104)+set←v13016) );
SOURCE(6990, 444)
            {
               register word code←v13132 = 0;
               lab←L100030: ;
               {
                  word cds←v13176;
SOURCE(7016, 36)
                  cds←v13176 = (* (( (ptr) t←v13060)+code←v13132) );
SOURCE(7054, 186)
                  if ((0 == (word) Compatible←P660(cds←v13176, prevCDS←v12888))) {
SOURCE(7093, 147)
                     if ((startCode←v12916 <= finalCode←v12944)) {
SOURCE(7126, 44)
                        (void) ( *( (fPt) ((*  (ptr) runProc←v7132 ))))(startCode←v12916, (finalCode←v12944 + 1), constant←v12972, runProc←v7132)
                        ;
SOURCE(7172, 21)
                        startCode←v12916 =  (word) -1;
SOURCE(7195, 13)
                        finalCode←v12944 = 0;
SOURCE(7210, 13)
                        prevCDS←v12888 = 0;
SOURCE(7225, 15)
                        constant←v12972 = 1;
                        };
                     };
SOURCE(7248, 186)
                  if ((cds←v13176 != 0)) {
SOURCE(7266, 170)
                     {
                        word card←v13220;
SOURCE(7268, 25)
                        card←v13220 = (((word) set←v13016 << 8) + code←v13132);
SOURCE(7295, 56)
                        if ( ( (prevCDS←v12888 != 0) ? (prevCDS←v12888 != cds←v13176) : 0 ) ) {
SOURCE(7335, 16)
                           constant←v12972 = 0;
                           };
SOURCE(7353, 13)
                        prevCDS←v12888 = cds←v13176;
SOURCE(7368, 32)
                        startCode←v12916 = (MIN( (unsigned) , startCode←v12916, card←v13220));
SOURCE(7402, 32)
                        finalCode←v12944 = (MAX( (unsigned) , finalCode←v12944, card←v13220));
                        };
                     };
                  };
               if ((code←v13132 >= 255)) {
                  goto lab←L100027;
                  };
               code←v13132 = (code←v13132 + 1);
               goto lab←L100030;
               lab←L100027: ;
               };
SOURCE(7448, 115)
            if ((startCode←v12916 <= finalCode←v12944)) {
SOURCE(7481, 44)
               (void) ( *( (fPt) ((*  (ptr) runProc←v7132 ))))(startCode←v12916, (finalCode←v12944 + 1), constant←v12972, runProc←v7132)
               ;
SOURCE(7527, 21)
               startCode←v12916 =  (word) -1;
SOURCE(7550, 13)
               finalCode←v12944 = 0;
               };
            };
         };
      if ((set←v13016 >= 255)) {
         goto lab←L100023;
         };
      set←v13016 = (set←v13016 + 1);
      goto lab←L100026;
      lab←L100023: ;
      };
   }

static word CommonItemsFromSetArrayTable←P780(formal←c0829)
   word formal←c0829;
   {
   W20 var←c50744;
   /* declaration of setArrayTable←v7472 skipped */ 
   register ptr gf←c50776 =  (ptr) &globalframe;
   word var←c7516;
   /* declaration of var←c44696 skipped */ 
   /* declaration of var←c44728 skipped */ 
   /* declaration of var←c44760 skipped */ 
   /* declaration of leftExtentCount←v13264 skipped */ 
   /* declaration of rightExtentCount←v13292 skipped */ 
   /* declaration of descentCount←v13320 skipped */ 
   /* declaration of ascentCount←v13348 skipped */ 
   /* declaration of escapementCount←v13376 skipped */ 
   /* declaration of typefaceTab←v13404 skipped */ 
   /* declaration of placementTab←v13432 skipped */ 
   /* declaration of result←v13460 skipped */ 
   /* declaration of nTypefaceCells←v13488 skipped */ 
   (* (( (ptr) &var←c50744)+4)/* setArrayTable←v7472 */  ) = formal←c0829;
   /* CommonItemsFromSetArrayTable: */ 
SOURCE(7886, 2498)
   {
      word tmpAddr105;
      tmpAddr105 = (word) (( (ptr) &var←c50744)+5)/* var←c44696 */ ;
      (*  (ptr) tmpAddr105 ) = ( ((word)  (fPt) StuffTypefaceIndex←P4644) );
      (* (( (ptr) tmpAddr105) + 1) ) = 1;
      };
   {
      word tmpAddr106;
      tmpAddr106 = (word) (( (ptr) &var←c50744)+7)/* var←c44728 */ ;
      (*  (ptr) tmpAddr106 ) = ( ((word)  (fPt) EachRun←P4584) );
      (* (( (ptr) tmpAddr106) + 1) ) = 1;
      };
   {
      word tmpAddr107;
      tmpAddr107 = (word) (( (ptr) &var←c50744)+9)/* var←c44760 */ ;
      (*  (ptr) tmpAddr107 ) = ( ((word)  (fPt) UpdateTypefaceTab←P4524) );
      (* (( (ptr) tmpAddr107) + 1) ) = 1;
      };
SOURCE(7978, 43)
   {
      word pd108;
      pd108 = (* (( (ptr) (* (( (ptr) gf←c50776)+156)/* var←c43448 */  ))+5) );
      (* (( (ptr) &var←c50744)+11)/* leftExtentCount←v13264 */  ) = (word) ( *( (fPt) ((*  (ptr) pd108 ))))(17, pd108);
      };
SOURCE(8023, 44)
   {
      word pd109;
      pd109 = (* (( (ptr) (* (( (ptr) gf←c50776)+156)/* var←c43448 */  ))+5) );
      (* (( (ptr) &var←c50744)+12)/* rightExtentCount←v13292 */  ) = (word) ( *( (fPt) ((*  (ptr) pd109 ))))(17, pd109);
      };
SOURCE(8069, 40)
   {
      word pd110;
      pd110 = (* (( (ptr) (* (( (ptr) gf←c50776)+156)/* var←c43448 */  ))+5) );
      (* (( (ptr) &var←c50744)+13)/* descentCount←v13320 */  ) = (word) ( *( (fPt) ((*  (ptr) pd110 ))))(17, pd110);
      };
SOURCE(8111, 39)
   {
      word pd111;
      pd111 = (* (( (ptr) (* (( (ptr) gf←c50776)+156)/* var←c43448 */  ))+5) );
      (* (( (ptr) &var←c50744)+14)/* ascentCount←v13348 */  ) = (word) ( *( (fPt) ((*  (ptr) pd111 ))))(17, pd111);
      };
SOURCE(8152, 43)
   {
      word pd112;
      pd112 = (* (( (ptr) (* (( (ptr) gf←c50776)+156)/* var←c43448 */  ))+5) );
      (* (( (ptr) &var←c50744)+15)/* escapementCount←v13376 */  ) = (word) ( *( (fPt) ((*  (ptr) pd112 ))))(17, pd112);
      };
SOURCE(8197, 41)
   {
      word pd113;
      pd113 = (* (( (ptr) (* (( (ptr) gf←c50776)+158)/* var←c44792 */  ))+5) );
      (* (( (ptr) &var←c50744)+16)/* typefaceTab←v13404 */  ) = (word) ( *( (fPt) ((*  (ptr) pd113 ))))(17, 0, 0, pd113);
      };
SOURCE(8240, 94)
   {
      word pd114;
      pd114 = (* (( (ptr) (* (( (ptr) gf←c50776)+158)/* var←c44792 */  ))+5) );
      (* (( (ptr) &var←c50744)+17)/* placementTab←v13432 */  ) = (word) ( *( (fPt) ((*  (ptr) pd114 ))))(17, (word) (( (bPt) gf←c50776)+424)
         /* var←c42456 */ , (word) (( (bPt) gf←c50776)+432)/* var←c42488 */ , pd114);
      };
SOURCE(8336, 41)
   (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ) = XR←NewObject(36, (* (( (ptr) gf←c50776)+24) ));
SOURCE(8379, 23)
   (* (( (ptr) &var←c50744)+19)/* nTypefaceCells←v13488 */  ) = 0;
SOURCE(9526, 34)
   (void) ForEachRun←P720((* (( (ptr) &var←c50744)+4)/* setArrayTable←v7472 */  ), (word) (( (bPt) &var←c50744)+28)/* var←c44728 */ )
   ;
SOURCE(9562, 75)
   (*  (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ) ) = (word) FindCommonReals←P480((* (( (ptr) &var←c50744)+11)
      /* leftExtentCount←v13264 */  ), (* (( (ptr) gf←c50776)+4)/* extentTolerance←v3280 */  ), 254);
SOURCE(9639, 72)
   (* (( (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ))+1) ) = (word) FindCommonReals←P480((* (( (ptr) &var←c50744)+12)
      /* rightExtentCount←v13292 */  ), (* (( (ptr) gf←c50776)+4)/* extentTolerance←v3280 */  ), 255);
SOURCE(9713, 64)
   (* (( (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ))+2) ) = (word) FindCommonReals←P480((* (( (ptr) &var←c50744)+13)
      /* descentCount←v13320 */  ), (* (( (ptr) gf←c50776)+4)/* extentTolerance←v3280 */  ), 255);
SOURCE(9779, 62)
   (* (( (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ))+3) ) = (word) FindCommonReals←P480((* (( (ptr) &var←c50744)+14)
      /* ascentCount←v13348 */  ), (* (( (ptr) gf←c50776)+4)/* extentTolerance←v3280 */  ), 255);
SOURCE(9843, 74)
   (* (( (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ))+4) ) = (word) FindCommonReals←P480((* (( (ptr) &var←c50744)+15)
      /* escapementCount←v13376 */  ), (* (( (ptr) gf←c50776)+5)/* escapementTolerance←v3308 */  ), 255);
SOURCE(9919, 58)
   {
      word var←c44856;
      {
         word var←c44888;
         word var←c44920;
         word var←c44952;
         {
            word idx115;
            var←c44888 = (
               idx115 = (* (( (ptr) &var←c50744)+19)/* nTypefaceCells←v13488 */  ),
               BCK(idx115, 67108863)
               );
            };
         var←c44920 = ((word) var←c44888 << 2);
         var←c44952 = XR←NewObject((4 + var←c44920), (* (( (ptr) gf←c50776)+25) ));
         (*  (ptr) var←c44952 ) = var←c44888;
         var←c44856 = var←c44952;
         };
      (* (( (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ))+7) ) = var←c44856;
      };
SOURCE(9979, 61)
   {
      word var←c44984;
      word pd116;
      pd116 = (* (( (ptr) (* (( (ptr) gf←c50776)+158)/* var←c44792 */  ))+13) );
      var←c44984 = (word) ( *( (fPt) ((*  (ptr) pd116 ))))((* (( (ptr) &var←c50744)+16)/* typefaceTab←v13404 */  ), (word) (( (bPt) &var←c50744)+20)
         /* var←c44696 */ , pd116);
      };
SOURCE(10042, 32)
   (* (( (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ))+8) ) = (* (( (ptr) &var←c50744)+16)/* typefaceTab←v13404 */  );
SOURCE(10076, 53)
   (* (( (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ))+5) ) = (word) SortTransformations←P1740((* ((( (ptr) &var←c50744)+17)
      /* placementTab←v13432 */ ) ));
SOURCE(10131, 89)
   {
      word pd117;
      pd117 = (* (( (ptr) (* (( (ptr) gf←c50776)+158)/* var←c44792 */  ))+5) );
      (* (( (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ))+6) ) = (word) ( *( (fPt) ((*  (ptr) pd117 ))))(17, (word) (
            ( (bPt) gf←c50776)+424)/* var←c42456 */ , (word) (( (bPt) gf←c50776)+432)/* var←c42488 */ , pd117);
      };
SOURCE(10222, 135)
   {
      register word i←v13732 = 0;
      register word noName←c45016;
      noName←c45016 = (*  (ptr) (* (( (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ))+5) ) );
      if ((i←v13732 >= noName←c45016)) {
         goto lab←L100031;
         };
      lab←L100034: ;
SOURCE(10267, 90)
      {
         word var←c45144;
         {
            word var←c45048;
            {
               word var←c45080;
               var←c45080 = XR←NewObject(4, (* (( (ptr) gf←c50776)+26) ));
               (*  (ptr) var←c45080 ) = i←v13732;
               var←c45048 = var←c45080;
               };
            {
               word var←c45112;
               word var←c0787;
               {
                  word limit118;
                  var←c45112 = (* (( (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ))+5) );
                  var←c0787 = (* (( (ptr) (* ((( (ptr) var←c45112)+1)+(
                           limit118 = (*  (ptr) var←c45112 ),
                           BCK(i←v13732, limit118)
                           )) ))+6) );
                  };
               {
                  word pd119;
                  pd119 = (* (( (ptr) (* (( (ptr) gf←c50776)+158)/* var←c44792 */  ))+10) );
                  var←c45144 = (word) ( *( (fPt) ((*  (ptr) pd119 ))))((* (( (ptr) (* (( (ptr) &var←c50744)+18)/* result←v13460 */  ))+6) ), var←c0787, var←c45048, pd119)
                  ;
                  };
               };
            };
         };
      i←v13732 = (i←v13732 + 1);
      if ((i←v13732 < noName←c45016)) {
         goto lab←L100034;
         };
      lab←L100031: ;
      };
SOURCE(10368, 16)
   return((* (( (ptr) &var←c50744)+18)/* result←v13460 */  ));
   }

static void UpdateTypefaceTab←P4524(formal←c0236, found←v34684, val←v34712, formal←c50840)
   word formal←c0236;
   word found←v34684;
   word val←v34712;
   word formal←c50840;
   {
   register ptr gf←c50808 =  (ptr) &globalframe;
   word op←v34756;
   word new←v34784;
   formal←c50840 = (formal←c50840 - 36);
   /* UpdateTypefaceTab: */ 
SOURCE(8404, 143)
SOURCE(8404, 143)
   op←v34756 = 0;
SOURCE(8404, 143)
   new←v34784 = 0;
SOURCE(8447, 100)
   if ((0 == found←v34684)) {
SOURCE(8467, 31)
      {
         word var←c45176;
         var←c45176 = XR←NewObject(4, (* (( (ptr) gf←c50808)+26) ));
         (*  (ptr) var←c45176 ) = (* (( (ptr) formal←c50840)+19) );
         new←v34784 = var←c45176;
         };
SOURCE(8500, 10)
      op←v34756 = 1;
SOURCE(8512, 35)
      (* (( (ptr) formal←c50840)+19) ) = ((* (( (ptr) formal←c50840)+19) ) + 1);
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0236 ) = op←v34756;
   (* (( (ptr) formal←c0236)+1) ) = new←v34784;
   return;
   }

static void EachRun←P4584(start←v13648, end←v13676, constant←v13704, formal←c50904)
   word start←v13648;
   word end←v13676;
   word constant←v13704;
   word formal←c50904;
   {
   register ptr gf←c50872 =  (ptr) &globalframe;
   word set←v13776;
   word a←v13804;
   word base←v13832;
   formal←c50904 = (formal←c50904 - 28);
   /* EachRun: */ 
SOURCE(8555, 829)
SOURCE(8608, 26)
   {
      word idx120;
      set←v13776 = (
         idx120 = (word) ((word) start←v13648 >> 8),
         BCK(idx120, 256)
         );
      };
SOURCE(8636, 63)
   a←v13804 = (* (( (ptr) (* (( (ptr) formal←c50904)+4) ))+set←v13776) );
SOURCE(8701, 22)
   base←v13832 = ((word) set←v13776 << 8);
SOURCE(8725, 30)
   if ((0 != constant←v13704)) {
SOURCE(8742, 13)
      end←v13676 = (start←v13648 + 1);
      };
SOURCE(8757, 627)
   {
      register word c←v13904;
      register word noName←c45208;
      c←v13904 = start←v13648;
      noName←c45208 = end←v13676;
      if ((c←v13904 >= noName←c45208)) {
         goto lab←L100036;
         };
      lab←L100039: ;
SOURCE(8788, 596)
      {
         register word tail←v13948;
         tail←v13948 = (* (( (ptr) a←v13804)+BCK((c←v13904 - base←v13832), 256)) );
         lab←L100043: ;
         if ((tail←v13948 != 0)) {
            }
         else {
            goto lab←L100040;
            };
         {
            word cd←v13992;
            word placement←v14020;
SOURCE(8865, 37)
            cd←v13992 = (*  (ptr) tail←v13948 );
SOURCE(8904, 49)
            placement←v14020 = (word) NonNilT←P1620((* ((( (ptr) cd←v13992)+10)) ));
SOURCE(8955, 78)
            {
               word pd121;
               pd121 = (* (( (ptr) (* (( (ptr) gf←c50872)+158)/* var←c44792 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd121 ))))((* (( (ptr) formal←c50904)+16) ), (*  (ptr) cd←v13992 ), (word) (( (bPt) formal←c50904)+36)
                  , pd121);
               };
SOURCE(9035, 67)
            {
               word var←c45240;
               word pd122;
               pd122 = (* (( (ptr) (* (( (ptr) gf←c50872)+158)/* var←c44792 */  ))+10) );
               var←c45240 = (word) ( *( (fPt) ((*  (ptr) pd122 ))))((* (( (ptr) formal←c50904)+17) ), placement←v14020, placement←v14020, pd122)
               ;
               };
SOURCE(9104, 49)
            (void) CountReal←P420((* (( (ptr) formal←c50904)+11) ), (* (( (ptr) cd←v13992)+6) ));
SOURCE(9155, 51)
            (void) CountReal←P420((* (( (ptr) formal←c50904)+12) ), (* (( (ptr) cd←v13992)+7) ));
SOURCE(9208, 43)
            (void) CountReal←P420((* (( (ptr) formal←c50904)+13) ), (* (( (ptr) cd←v13992)+8) ));
SOURCE(9253, 41)
            (void) CountReal←P420((* (( (ptr) formal←c50904)+14) ), (* (( (ptr) cd←v13992)+9) ));
SOURCE(9296, 43)
            (void) CountReal←P420((* (( (ptr) formal←c50904)+15) ), (* (( (ptr) cd←v13992)+4) ));
SOURCE(9341, 43)
            (void) CountReal←P420((* (( (ptr) formal←c50904)+15) ), (* (( (ptr) cd←v13992)+5) ));
            };
         tail←v13948 = (* (( (ptr) tail←v13948)+1) );
         goto lab←L100043;
         lab←L100040: ;
         };
      c←v13904 = (c←v13904 + 1);
      if ((c←v13904 < noName←c45208)) {
         goto lab←L100039;
         };
      lab←L100036: ;
      };
   }

static word StuffTypefaceIndex←P4644(key←v34844, val←v34872, formal←c50968)
   word key←v34844;
   word val←v34872;
   word formal←c50968;
   {
   register ptr gf←c50936 =  (ptr) &globalframe;
   word quit←v34916;
   word index←v14064;
   formal←c50968 = (formal←c50968 - 20);
   /* StuffTypefaceIndex: */ 
SOURCE(9407, 114)
SOURCE(9407, 114)
   quit←v34916 = 0;
SOURCE(9453, 28)
   index←v14064 = XR←Narrow(val←v34872, (* (( (ptr) gf←c50936)+26) ));
SOURCE(9483, 38)
   {
      word var←c45272;
      var←c45272 = (* (( (ptr) (* (( (ptr) formal←c50968)+18) ))+7) );
      {
         word idx123;
         word limit124;
         (* ((( (ptr) var←c45272)+1)+(
               idx123 = (*  (ptr) index←v14064 ),
               limit124 = (*  (ptr) var←c45272 ),
               BCK(idx123, limit124)
               )) ) = XR←Narrow(key←v34844, (* (( (ptr) gf←c50936)+27) ));
         };
      };
SOURCE(9407, 114)
   return(quit←v34916);
   }

static word GetTypefaceIndex←P840(common←v7576, typefaceCell←v7604)
   word common←v7576;
   word typefaceCell←v7604;
   {
   register ptr gf←c51000 =  (ptr) &globalframe;
   word var←c7648;
   word i←v14120;
   /* GetTypefaceIndex: */ 
SOURCE(10388, 186)
SOURCE(10489, 71)
   {
      W2 var←c0258;
      word var←c0788;
      {
         word pd125;
         pd125 = (* (( (ptr) (* (( (ptr) gf←c51000)+158)/* var←c44792 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd125 ))))((word) &var←c0258, (* (( (ptr) common←v7576)+8) ), typefaceCell←v7604, pd125);
         };
      var←c0788 = var←c0258.f1;
      i←v14120 = XR←Narrow(var←c0788, (* (( (ptr) gf←c51000)+26) ));
      };
SOURCE(10562, 12)
   {
      word idx126;
      return((
         idx126 = (*  (ptr) i←v14120 ),
         SGNCK(idx126)
         ));
      };
   }

static word GetPlacementCode←P900(common←v7708, m←v7736)
   word common←v7708;
   word m←v7736;
   {
   register ptr gf←c51032 =  (ptr) &globalframe;
   word var←c7780;
   word i←v14176;
   /* GetPlacementCode: */ 
SOURCE(10578, 170)
SOURCE(10665, 70)
   {
      word var←c45304;
      W2 var←c0264;
      word var←c0789;
      var←c45304 = (word) NonNilT←P1620(m←v7736);
      {
         word pd127;
         pd127 = (* (( (ptr) (* (( (ptr) gf←c51032)+158)/* var←c44792 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd127 ))))((word) &var←c0264, (* (( (ptr) common←v7708)+6) ), var←c45304, pd127);
         };
      var←c0789 = var←c0264.f1;
      i←v14176 = XR←Narrow(var←c0789, (* (( (ptr) gf←c51032)+26) ));
      };
SOURCE(10737, 11)
   {
      word idx128;
      return((
         idx128 = (*  (ptr) i←v14176 ),
         SGNCK(idx128)
         ));
      };
   }

static word FDTypefaceDataFromCanonicalizedFDTable←P960(formal←c0830)
   word formal←c0830;
   {
   W20 var←c51064;
   /* declaration of fdTable←v7840 skipped */ 
   register ptr gf←c51096 =  (ptr) &globalframe;
   /* declaration of data←v7884 skipped */ 
   /* declaration of var←c45336 skipped */ 
   /* declaration of var←c45368 skipped */ 
   /* declaration of var←c45400 skipped */ 
   /* declaration of nt←v14232 skipped */ 
   /* declaration of setArrayTable←v14260 skipped */ 
   /* declaration of common←v14288 skipped */ 
   /* declaration of lastRuns←v14316 skipped */ 
   /* declaration of charInfoRunTab←v14344 skipped */ 
   /* declaration of nCharInfoRuns←v14372 skipped */ 
   /* declaration of overflowList←v14456 skipped */ 
   /* declaration of nOver←v14484 skipped */ 
   (* (( (ptr) &var←c51064)+4)/* fdTable←v7840 */  ) = formal←c0830;
   /* FDTypefaceDataFromCanonicalizedFDTable: */ 
SOURCE(10754, 5937)
   {
      word tmpAddr129;
      tmpAddr129 = (word) (( (ptr) &var←c51064)+6)/* var←c45336 */ ;
      (*  (ptr) tmpAddr129 ) = ( ((word)  (fPt) CharInfoFromCD←P5016) );
      (* (( (ptr) tmpAddr129) + 1) ) = 1;
      };
   {
      word tmpAddr130;
      tmpAddr130 = (word) (( (ptr) &var←c51064)+8)/* var←c45368 */ ;
      (*  (ptr) tmpAddr130 ) = ( ((word)  (fPt) EachRun←P4956) );
      (* (( (ptr) tmpAddr130) + 1) ) = 1;
      };
   {
      word tmpAddr131;
      tmpAddr131 = (word) (( (ptr) &var←c51064)+10)/* var←c45400 */ ;
      (*  (ptr) tmpAddr131 ) = ( ((word)  (fPt) StuffCharInfoRunSeq←P4896) );
      (* (( (ptr) tmpAddr131) + 1) ) = 1;
      };
SOURCE(10754, 5937)
   (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ) = 0;
SOURCE(10850, 50)
   (* (( (ptr) &var←c51064)+12)/* nt←v14232 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) &var←c51064)+4)/* fdTable←v7840 */  ))+2)
    ) );
SOURCE(10902, 58)
   (* (( (ptr) &var←c51064)+13)/* setArrayTable←v14260 */  ) = (word) BuildSetArrayTable←P600((* ((( (ptr) &var←c51064)+4)/* fdTable←v7840 */ ) ))
   ;
SOURCE(10962, 65)
   (* (( (ptr) &var←c51064)+14)/* common←v14288 */  ) = (word) CommonItemsFromSetArrayTable←P780((* ((( (ptr) &var←c51064)+13)
      /* setArrayTable←v14260 */ ) ));
SOURCE(11029, 24)
   (* (( (ptr) &var←c51064)+15)/* lastRuns←v14316 */  ) = 0;
SOURCE(11055, 90)
   {
      word pd132;
      pd132 = (* (( (ptr) (* (( (ptr) gf←c51096)+158)/* var←c44792 */  ))+5) );
      (* (( (ptr) &var←c51064)+16)/* charInfoRunTab←v14344 */  ) = (word) ( *( (fPt) ((*  (ptr) pd132 ))))(17, (word) (( (bPt) gf←c51096)+408)
         /* var←c42392 */ , (word) (( (bPt) gf←c51096)+416)/* var←c42424 */ , pd132);
      };
SOURCE(11147, 22)
   (* (( (ptr) &var←c51064)+17)/* nCharInfoRuns←v14372 */  ) = 0;
SOURCE(14046, 14)
   (* (( (ptr) &var←c51064)+18)/* overflowList←v14456 */  ) = 0;
SOURCE(14091, 14)
   (* (( (ptr) &var←c51064)+19)/* nOver←v14484 */  ) = 0;
SOURCE(15525, 19)
   (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ) = XR←NewObject(1088, (* (( (ptr) gf←c51096)+28) ));
SOURCE(15546, 59)
   (*  (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ) ) = (*  (ptr) &fc133 );
   (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+1) ) = (*  (ptr) &fc133 );
   (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+2) ) = (*  (ptr) &fc133 );
   (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+3) ) = (*  (ptr) &fc133 );
SOURCE(15607, 34)
   (void) ForEachRun←P720((* (( (ptr) &var←c51064)+13)/* setArrayTable←v14260 */  ), (word) (( (bPt) &var←c51064)+32)/* var←c45368 */ )
   ;
SOURCE(15643, 59)
   {
      word var←c45464;
      {
         word var←c45496;
         word var←c45528;
         word var←c45560;
         {
            word idx134;
            var←c45496 = (
               idx134 = (* (( (ptr) &var←c51064)+17)/* nCharInfoRuns←v14372 */  ),
               BCK(idx134, 67108863)
               );
            };
         var←c45528 = ((word) var←c45496 << 2);
         var←c45560 = XR←NewObject((4 + var←c45528), (* (( (ptr) gf←c51096)+30) ));
         (*  (ptr) var←c45560 ) = var←c45496;
         var←c45464 = var←c45560;
         };
      (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+13) ) = var←c45464;
      };
SOURCE(15704, 65)
   {
      word var←c45592;
      word pd135;
      pd135 = (* (( (ptr) (* (( (ptr) gf←c51096)+158)/* var←c44792 */  ))+13) );
      var←c45592 = (word) ( *( (fPt) ((*  (ptr) pd135 ))))((* (( (ptr) &var←c51064)+16)/* charInfoRunTab←v14344 */  ), (word) (
            ( (bPt) &var←c51064)+40)/* var←c45400 */ , pd135);
      };
SOURCE(15771, 70)
   (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+9) ) = (* (( (ptr) (* (( (ptr) &var←c51064)+4)/* fdTable←v7840 */  ))+2)
    );
SOURCE(15843, 55)
   (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+4) ) = (* (( (ptr) (*  (ptr) (* (( (ptr) &var←c51064)+14)/* common←v14288 */  ) ))+1)
    );
SOURCE(15900, 57)
   (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+5) ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c51064)+14)/* common←v14288 */  ))+1)
       ))+1) );
SOURCE(15959, 49)
   (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+6) ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c51064)+14)/* common←v14288 */  ))+2)
       ))+1) );
SOURCE(16010, 47)
   (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+7) ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c51064)+14)/* common←v14288 */  ))+3)
       ))+1) );
SOURCE(16059, 55)
   (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+8) ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c51064)+14)/* common←v14288 */  ))+4)
       ))+1) );
SOURCE(16116, 39)
   (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+10) ) = (* (( (ptr) (* (( (ptr) &var←c51064)+14)/* common←v14288 */  ))+7)
    );
SOURCE(16157, 81)
   {
      word var←c45624;
      {
         word var←c45656;
         word var←c45688;
         word var←c45720;
         {
            word idx136;
            var←c45656 = (
               idx136 = (*  (ptr) (* (( (ptr) (* (( (ptr) &var←c51064)+14)/* common←v14288 */  ))+5) ) ),
               BCK(idx136, 67108863)
               );
            };
         var←c45688 = ((word) var←c45656 << 2);
         var←c45720 = XR←NewObject((4 + var←c45688), (* (( (ptr) gf←c51096)+31) ));
         (*  (ptr) var←c45720 ) = var←c45656;
         var←c45624 = var←c45720;
         };
      (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+11) ) = var←c45624;
      };
SOURCE(16240, 102)
   {
      register word i←v14860 = 0;
      register word noName←c45752;
      noName←c45752 = (*  (ptr) (* (( (ptr) (* (( (ptr) &var←c51064)+14)/* common←v14288 */  ))+5) ) );
      if ((i←v14860 >= noName←c45752)) {
         goto lab←L100044;
         };
      lab←L100047: ;
SOURCE(16285, 57)
      {
         word var←c45816;
         word var←c45784;
         var←c45816 = (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+11) );
         {
            word limit137;
            word limit138;
            var←c45784 = (* (( (ptr) (* (( (ptr) &var←c51064)+14)/* common←v14288 */  ))+5) );
            (* ((( (ptr) var←c45816)+1)+(
                  limit137 = (*  (ptr) var←c45816 ),
                  BCK(i←v14860, limit137)
                  )) ) = (* (( (ptr) (* ((( (ptr) var←c45784)+1)+(
                     limit138 = (*  (ptr) var←c45784 ),
                     BCK(i←v14860, limit138)
                     )) ))+6) );
            };
         };
      i←v14860 = (i←v14860 + 1);
      if ((i←v14860 < noName←c45752)) {
         goto lab←L100047;
         };
      lab←L100044: ;
      };
SOURCE(16353, 32)
   (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+14) ) = (* (( (ptr) (* (( (ptr) &var←c51064)+4)/* fdTable←v7840 */  ))+1)
    );
SOURCE(16387, 61)
   {
      word var←c45848;
      {
         word var←c45880;
         word var←c45912;
         word var←c45944;
         {
            word idx139;
            var←c45880 = (
               idx139 = (* (( (ptr) &var←c51064)+19)/* nOver←v14484 */  ),
               BCK(idx139, 67108863)
               );
            };
         var←c45912 = ((word) var←c45880 << 2);
         var←c45944 = XR←NewObject((4 + var←c45912), (* (( (ptr) gf←c51096)+32) ));
         (*  (ptr) var←c45944 ) = var←c45880;
         var←c45848 = var←c45944;
         };
      (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+12) ) = var←c45848;
      };
SOURCE(16450, 131)
   {
      register word i←v14904;
      i←v14904 = (* (( (ptr) &var←c51064)+19)/* nOver←v14484 */  );
      if ((0 >= i←v14904)) {
         goto lab←L100048;
         };
      i←v14904 = (i←v14904 - 1);
      lab←L100051: ;
SOURCE(16499, 48)
      {
         word var←c45976;
         var←c45976 = (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+12) );
         {
            word limit140;
            (* ((( (ptr) var←c45976)+1)+(
                  limit140 = (*  (ptr) var←c45976 ),
                  BCK(i←v14904, limit140)
                  )) ) = (*  (ptr) (* (( (ptr) &var←c51064)+18)/* overflowList←v14456 */  ) );
            };
         };
SOURCE(16549, 32)
      (* (( (ptr) &var←c51064)+18)/* overflowList←v14456 */  ) = (* (( (ptr) (* (( (ptr) &var←c51064)+18)/* overflowList←v14456 */  ))+1)
       );
      if ((0 >= i←v14904)) {
         goto lab←L100048;
         };
      i←v14904 = (i←v14904 - 1);
      goto lab←L100051;
      lab←L100048: ;
      };
SOURCE(16592, 99)
   {
      word x141;
      word x142;
      if (((
         x141 = (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+3) ),  *(float*)&x141
         ) <  - (
         x142 = (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+2) ),  *(float*)&x142
         ))) {
SOURCE(16652, 39)
         (*  (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ) ) = (*  (ptr) &fc82 );
         (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+1) ) = (*  (ptr) &fc82 );
         (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+2) ) = (*  (ptr) &fc82 );
         (* (( (ptr) (* (( (ptr) &var←c51064)+5)/* data←v7884 */  ))+3) ) = (*  (ptr) &fc82 );
         };
      };
SOURCE(10754, 5937)
   return((* (( (ptr) &var←c51064)+5)/* data←v7884 */  ));
   }

static word StuffCharInfoRunSeq←P4896(key←v35724, val←v35752, formal←c51160)
   word key←v35724;
   word val←v35752;
   word formal←c51160;
   {
   register ptr gf←c51128 =  (ptr) &globalframe;
   word quit←v35796;
   word charInfoRun←v14948;
   word refInt←v14976;
   formal←c51160 = (formal←c51160 - 40);
   /* StuffCharInfoRunSeq: */ 
SOURCE(11171, 160)
SOURCE(11171, 160)
   quit←v35796 = 0;
SOURCE(11218, 38)
   charInfoRun←v14948 = XR←Narrow(key←v35724, (* (( (ptr) gf←c51128)+33) ));
SOURCE(11258, 29)
   refInt←v14976 = XR←Narrow(val←v35752, (* (( (ptr) gf←c51128)+26) ));
SOURCE(11289, 42)
   {
      word var←c46008;
      var←c46008 = (* (( (ptr) (* (( (ptr) formal←c51160)+5) ))+13) );
      {
         word idx143;
         word limit144;
         (* ((( (ptr) var←c46008)+1)+(
               idx143 = (*  (ptr) refInt←v14976 ),
               limit144 = (*  (ptr) var←c46008 ),
               BCK(idx143, limit144)
               )) ) = charInfoRun←v14948;
         };
      };
SOURCE(11171, 160)
   return(quit←v35796);
   }

static void EachRun←P4956(start←v14588, end←v14616, constant←v14644, formal←c51256)
   word start←v14588;
   word end←v14616;
   word constant←v14644;
   word formal←c51256;
   {
   W6 var←c51192;
   register ptr gf←c51224 =  (ptr) &globalframe;
   /* declaration of var←c46040 skipped */ 
   word set←v15032;
   word a←v15060;
   word base←v15088;
   word charRunCell←v15116;
   word charInfoRunSeq←v15144;
   formal←c51256 = (formal←c51256 - 32);
   var←c51192.f0 = formal←c51256;
   /* EachRun: */ 
SOURCE(11336, 2696)
   {
      word tmpAddr145;
      tmpAddr145 = (word) (( (ptr) &var←c51192)+4)/* var←c46040 */ ;
      (*  (ptr) tmpAddr145 ) = ( ((word)  (fPt) NoteCharInfoRun←P5604) );
      (* (( (ptr) tmpAddr145) + 1) ) = 1;
      };
SOURCE(11389, 26)
   {
      word idx146;
      set←v15032 = (
         idx146 = (word) ((word) start←v14588 >> 8),
         BCK(idx146, 256)
         );
      };
SOURCE(11417, 63)
   a←v15060 = (* (( (ptr) (* (( (ptr) formal←c51256)+13) ))+set←v15032) );
SOURCE(11482, 22)
   base←v15088 = ((word) set←v15032 << 8);
SOURCE(11506, 44)
   {
      word var←c46072;
      word var←c46104;
      word var←c46136;
      {
         word idx147;
         var←c46072 = (
            idx147 = (* (( (ptr) formal←c51256)+12) ),
            BCK(idx147, 33554431)
            );
         };
      var←c46104 = ((word) var←c46072 << 3);
      var←c46136 = XR←NewObject((16 + var←c46104), (* (( (ptr) gf←c51224)+34) ));
      (* (( (ptr) var←c46136)+3) ) = var←c46072;
      charRunCell←v15116 = var←c46136;
      };
SOURCE(11552, 59)
   {
      word var←c46168;
      word var←c46200;
      word var←c46232;
      {
         word idx148;
         var←c46168 = (
            idx148 = (* (( (ptr) formal←c51256)+12) ),
            BCK(idx148, 67108863)
            );
         };
      var←c46200 = ((word) var←c46168 << 2);
      var←c46232 = XR←NewObject((4 + var←c46200), (* (( (ptr) gf←c51224)+30) ));
      (*  (ptr) var←c46232 ) = var←c46168;
      charInfoRunSeq←v15144 = var←c46232;
      };
SOURCE(11632, 27)
   (* (( (ptr) charRunCell←v15116)+1) ) = BCK((start←v14588 - base←v15088), 256);
SOURCE(11661, 27)
   {
      word idx149;
      (* (( (ptr) charRunCell←v15116)+2) ) = (
         idx149 = (word) ((end←v14616 - 1) - base←v15088),
         BCK(idx149, 256)
         );
      };
SOURCE(11690, 120)
   if (((* ((( (ptr) (* (( (ptr) formal←c51256)+5) ))+16)+set←v15032) ) == 0)) {
SOURCE(11723, 49)
      {
         word var←c46264;
         var←c46264 = charRunCell←v15116;
         (* (( (ptr) formal←c51256)+15) ) = charRunCell←v15116;
         (* ((( (ptr) (* (( (ptr) formal←c51256)+5) ))+16)+set←v15032) ) = var←c46264;
         };
      }
   else {
SOURCE(11772, 38)
      {
         word var←c46296;
         var←c46296 = charRunCell←v15116;
         (*  (ptr) (* (( (ptr) formal←c51256)+15) ) ) = charRunCell←v15116;
         (* (( (ptr) formal←c51256)+15) ) = var←c46296;
         };
      };
SOURCE(11841, 1293)
   if ((0 != constant←v14644)) {
SOURCE(11858, 578)
      {
         word i←v15216 = 0;
SOURCE(11872, 552)
         {
            register word tail←v15260;
            tail←v15260 = (* (( (ptr) a←v15060)+BCK((start←v14588 - base←v15088), 256)) );
            lab←L100055: ;
            if ((tail←v15260 != 0)) {
               }
            else {
               goto lab←L100052;
               };
            {
               word cd←v15304;
               word charInfoRun←v15332;
               word var←c46360;
               word var←c0790;
SOURCE(11953, 37)
               cd←v15304 = (*  (ptr) tail←v15260 );
SOURCE(11992, 56)
               charInfoRun←v15332 = XR←NewObject(28, (* (( (ptr) gf←c51224)+33) ));
               (* (( (ptr) charInfoRun←v15332)+3) ) = 1;
SOURCE(12050, 83)
               lab←L100058: ;
               var←c46360 = (* (( (ptr) (* (( (ptr) formal←c51256)+4) ))+2) );
               {
                  word limit150;
                  var←c0790 = (* ((( (ptr) var←c46360)+1)+(
                        limit150 = (*  (ptr) var←c46360 ),
                        BCK(i←v15216, limit150)
                        )) );
                  };
               if (((* (( (ptr) cd←v15304)+1) ) != var←c0790)) {
                  }
               else {
                  goto lab←L100056;
                  };
SOURCE(12116, 17)
               i←v15216 = (i←v15216 + 1);
               goto lab←L100058;
               lab←L100056: ;
SOURCE(12135, 72)
               {
                  word var←c46392;
                  var←c46392 = (word) GetTypefaceIndex←P840((* (( (ptr) formal←c51256)+14) ), (*  (ptr) cd←v15304 ));
                  {
                     word limit151;
                     (* (( (W2Pt) (( (ptr) charRunCell←v15116)+4))+(
                           limit151 = (* (( (ptr) charRunCell←v15116)+3) ),
                           BCK(i←v15216, limit151)
                           )) ).f0 = var←c46392;
                     };
                  };
SOURCE(12209, 31)
               {
                  word limit152;
                  (* ((( (ptr) charInfoRunSeq←v15144)+1)+(
                        limit152 = (*  (ptr) charInfoRunSeq←v15144 ),
                        BCK(i←v15216, limit152)
                        )) ) = charInfoRun←v15332;
                  };
SOURCE(12242, 40)
               (*  (ptr) charInfoRun←v15332 ) = (* (( (ptr) cd←v15304)+2) );
SOURCE(12284, 26)
               (* (( (ptr) charInfoRun←v15332)+1) ) = (* (( (ptr) cd←v15304)+3) );
SOURCE(12312, 66)
               (* (( (ptr) charInfoRun←v15332)+2) ) = (word) GetPlacementCode←P900((* (( (ptr) formal←c51256)+14) ), (* (( (ptr) cd←v15304)+10)
                   ));
SOURCE(12388, 36)
SOURCE(12389, 35)
               {
                  W3 var←c46424;
                  (void) CharInfoFromCD←P5016((word) &var←c46424, cd←v15304, (word) (( (bPt) formal←c51256)+24));
                  {
                     word limit153;
                     (* (( (W3Pt) (( (ptr) charInfoRun←v15332)+4))+(
                           limit153 = (* (( (ptr) charInfoRun←v15332)+3) ),
                           BCK(0, limit153)
                           )) ) = var←c46424;
                     };
                  };
               };
            tail←v15260 = (* (( (ptr) tail←v15260)+1) );
            goto lab←L100055;
            lab←L100052: ;
            };
         };
      }
   else {
SOURCE(12445, 689)
      {
         register word c←v15388;
         register word noName←c46456;
         c←v15388 = start←v14588;
         noName←c46456 = end←v14616;
         if ((c←v15388 >= noName←c46456)) {
            goto lab←L100059;
            };
         lab←L100062: ;
         {
            word i←v15432 = 0;
SOURCE(12488, 646)
            {
               register word tail←v15476;
               tail←v15476 = (* (( (ptr) a←v15060)+BCK((c←v15388 - base←v15088), 256)) );
               lab←L100066: ;
               if ((tail←v15476 != 0)) {
                  }
               else {
                  goto lab←L100063;
                  };
               {
                  word cd←v15520;
                  word charInfoSeq←v15548 = 0;
                  word var←c46488;
                  word var←c0791;
SOURCE(12565, 37)
                  cd←v15520 = (*  (ptr) tail←v15476 );
SOURCE(12643, 83)
                  lab←L100069: ;
                  var←c46488 = (* (( (ptr) (* (( (ptr) formal←c51256)+4) ))+2) );
                  {
                     word limit154;
                     var←c0791 = (* ((( (ptr) var←c46488)+1)+(
                           limit154 = (*  (ptr) var←c46488 ),
                           BCK(i←v15432, limit154)
                           )) );
                     };
                  if (((* (( (ptr) cd←v15520)+1) ) != var←c0791)) {
                     }
                  else {
                     goto lab←L100067;
                     };
SOURCE(12709, 17)
                  i←v15432 = (i←v15432 + 1);
                  goto lab←L100069;
                  lab←L100067: ;
SOURCE(12728, 350)
                  {
                     word limit155;
                     if (((* ((( (ptr) charInfoRunSeq←v15144)+1)+(
                           limit155 = (*  (ptr) charInfoRunSeq←v15144 ),
                           BCK(i←v15432, limit155)
                           )) ) == 0)) {
SOURCE(12762, 72)
                        {
                           word var←c46520;
                           var←c46520 = (word) GetTypefaceIndex←P840((* (( (ptr) formal←c51256)+14) ), (*  (ptr) cd←v15520 ));
                           {
/*1*/   word limit156;
/*1*/   (* (( (W2Pt) (( (ptr) charRunCell←v15116)+4))+(
/*1*/         limit156 = (* (( (ptr) charRunCell←v15116)+3) ),
/*1*/         BCK(i←v15432, limit156)
/*1*/         )) ).f0 = var←c46520;
/*1*/   };
                           };
SOURCE(12836, 64)
                        {
                           word var←c46552;
                           {
/*1*/   word var←c46584;
/*1*/   word var←c46616;
/*1*/   word var←c46648;
/*1*/   var←c46584 = BCK((end←v14616 - start←v14588), 22369621);
/*1*/   var←c46616 = ((word) var←c46584 * 12);
/*1*/   var←c46648 = XR←NewObject((16 + var←c46616), (* (( (ptr) gf←c51224)+33) ));
/*1*/   (* (( (ptr) var←c46648)+3) ) = var←c46584;
/*1*/   var←c46552 = var←c46648;
/*1*/   };
                           charInfoSeq←v15548 = var←c46552;
                           {
/*1*/   word limit157;
/*1*/   (* ((( (ptr) charInfoRunSeq←v15144)+1)+(
/*1*/         limit157 = (*  (ptr) charInfoRunSeq←v15144 ),
/*1*/         BCK(i←v15432, limit157)
/*1*/         )) ) = var←c46552;
/*1*/   };
                           };
SOURCE(12902, 40)
                        (*  (ptr) charInfoSeq←v15548 ) = (* (( (ptr) cd←v15520)+2) );
SOURCE(12944, 26)
                        (* (( (ptr) charInfoSeq←v15548)+1) ) = (* (( (ptr) cd←v15520)+3) );
SOURCE(12972, 66)
                        (* (( (ptr) charInfoSeq←v15548)+2) ) = (word) GetPlacementCode←P900((* (( (ptr) formal←c51256)+14) ), (* (( (ptr) cd←v15520)+10)
                            ));
                        }
                     else {
SOURCE(13047, 31)
                        {
                           word limit158;
                           charInfoSeq←v15548 = (* ((( (ptr) charInfoRunSeq←v15144)+1)+(
/*1*/      limit158 = (*  (ptr) charInfoRunSeq←v15144 ),
/*1*/      BCK(i←v15432, limit158)
/*1*/      )) );
                           };
                        };
                     };
SOURCE(13088, 46)
SOURCE(13090, 44)
                  {
                     W3 var←c46680;
                     (void) CharInfoFromCD←P5016((word) &var←c46680, cd←v15520, (word) (( (bPt) formal←c51256)+24));
                     {
                        word var←c46712;
                        var←c46712 = (c←v15388 - start←v14588);
                        {
                           word limit159;
                           (* (( (W3Pt) (( (ptr) charInfoSeq←v15548)+4))+(
/*1*/      limit159 = (* (( (ptr) charInfoSeq←v15548)+3) ),
/*1*/      BCK(var←c46712, limit159)
/*1*/      )) ) = var←c46680;
                           };
                        };
                     };
                  };
               tail←v15476 = (* (( (ptr) tail←v15476)+1) );
               goto lab←L100066;
               lab←L100063: ;
               };
            };
         c←v15388 = (c←v15388 + 1);
         if ((c←v15388 < noName←c46456)) {
            goto lab←L100062;
            };
         lab←L100059: ;
         };
      };
SOURCE(13158, 286)
   {
      register word i←v15604 = 0;
      if ((i←v15604 >= (* (( (ptr) formal←c51256)+12) ))) {
         goto lab←L100070;
         };
      lab←L100073: ;
SOURCE(13183, 261)
      {
         word limit160;
         if (((* ((( (ptr) charInfoRunSeq←v15144)+1)+(
               limit160 = (*  (ptr) charInfoRunSeq←v15144 ),
               BCK(i←v15604, limit160)
               )) ) != 0)) {
SOURCE(13215, 231)
SOURCE(13363, 81)
            {
               word pd161;
               word limit162;
               pd161 = (* (( (ptr) (* (( (ptr) gf←c51224)+158)/* var←c44792 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd161 ))))((* (( (ptr) formal←c51256)+16) ), (* ((( (ptr) charInfoRunSeq←v15144)+1)+(
                        limit162 = (*  (ptr) charInfoRunSeq←v15144 ),
                        BCK(i←v15604, limit162)
                        )) ), (word) (( (bPt) &var←c51192)+16)/* var←c46040 */ , pd161);
               };
            };
         };
      i←v15604 = (i←v15604 + 1);
      if ((i←v15604 < (* (( (ptr) formal←c51256)+12) ))) {
         goto lab←L100073;
         };
      lab←L100070: ;
      };
SOURCE(13458, 157)
   {
      register word i←v15692 = 0;
      if ((i←v15692 >= (* (( (ptr) formal←c51256)+12) ))) {
         goto lab←L100074;
         };
      lab←L100077: ;
SOURCE(13483, 132)
      {
         word limit163;
         if (((* ((( (ptr) charInfoRunSeq←v15144)+1)+(
               limit163 = (*  (ptr) charInfoRunSeq←v15144 ),
               BCK(i←v15692, limit163)
               )) ) != 0)) {
SOURCE(13517, 59)
            {
               word limit164;
               word limit165;
               (* (( (W2Pt) (( (ptr) charRunCell←v15116)+4))+(
                     limit164 = (* (( (ptr) charRunCell←v15116)+3) ),
                     BCK(0, limit164)
                     )) ).f0 = (* (( (W2Pt) (( (ptr) charRunCell←v15116)+4))+(
                     limit165 = (* (( (ptr) charRunCell←v15116)+3) ),
                     BCK(i←v15692, limit165)
                     )) ).f0;
               };
SOURCE(13578, 37)
            {
               word limit166;
               word limit167;
               (* ((( (ptr) charInfoRunSeq←v15144)+1)+(
                     limit166 = (*  (ptr) charInfoRunSeq←v15144 ),
                     BCK(0, limit166)
                     )) ) = (* ((( (ptr) charInfoRunSeq←v15144)+1)+(
                     limit167 = (*  (ptr) charInfoRunSeq←v15144 ),
                     BCK(i←v15692, limit167)
                     )) );
               };
SOURCE(13617, 4)
            goto lab←L100075;
            };
         };
      i←v15692 = (i←v15692 + 1);
      if ((i←v15692 < (* (( (ptr) formal←c51256)+12) ))) {
         goto lab←L100077;
         };
      lab←L100074: ;
      lab←L100075: ;
      };
SOURCE(13635, 32)
   {
      word limit168;
      if (((* ((( (ptr) charInfoRunSeq←v15144)+1)+(
            limit168 = (*  (ptr) charInfoRunSeq←v15144 ),
            BCK(0, limit168)
            )) ) == 0)) {
SOURCE(13667, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
SOURCE(13716, 157)
   {
      register word i←v15736 = 0;
      if ((i←v15736 >= (* (( (ptr) formal←c51256)+12) ))) {
         goto lab←L100078;
         };
      lab←L100081: ;
SOURCE(13741, 132)
      {
         word limit169;
         if (((* ((( (ptr) charInfoRunSeq←v15144)+1)+(
               limit169 = (*  (ptr) charInfoRunSeq←v15144 ),
               BCK(i←v15736, limit169)
               )) ) == 0)) {
SOURCE(13775, 59)
            {
               word limit170;
               word limit171;
               (* (( (W2Pt) (( (ptr) charRunCell←v15116)+4))+(
                     limit170 = (* (( (ptr) charRunCell←v15116)+3) ),
                     BCK(i←v15736, limit170)
                     )) ).f0 = (* (( (W2Pt) (( (ptr) charRunCell←v15116)+4))+(
                     limit171 = (* (( (ptr) charRunCell←v15116)+3) ),
                     BCK(0, limit171)
                     )) ).f0;
               };
SOURCE(13836, 37)
            {
               word limit172;
               word limit173;
               (* ((( (ptr) charInfoRunSeq←v15144)+1)+(
                     limit172 = (*  (ptr) charInfoRunSeq←v15144 ),
                     BCK(i←v15736, limit172)
                     )) ) = (* ((( (ptr) charInfoRunSeq←v15144)+1)+(
                     limit173 = (*  (ptr) charInfoRunSeq←v15144 ),
                     BCK(0, limit173)
                     )) );
               };
            };
         };
      i←v15736 = (i←v15736 + 1);
      if ((i←v15736 < (* (( (ptr) formal←c51256)+12) ))) {
         goto lab←L100081;
         };
      lab←L100078: ;
      };
SOURCE(13887, 145)
   {
      register word i←v15780 = 0;
      if ((i←v15780 >= (* (( (ptr) formal←c51256)+12) ))) {
         goto lab←L100082;
         };
      lab←L100085: ;
      {
         word refInt←v15824;
SOURCE(13912, 77)
         {
            W2 var←c0348;
            word var←c0792;
            {
               word pd174;
               word limit175;
               pd174 = (* (( (ptr) (* (( (ptr) gf←c51224)+158)/* var←c44792 */  ))+7) );
               (void) ( *( (fPt) ((*  (ptr) pd174 ))))((word) &var←c0348, (* (( (ptr) formal←c51256)+16) ), (* ((( (ptr) charInfoRunSeq←v15144)+1)
                     +(
                        limit175 = (*  (ptr) charInfoRunSeq←v15144 ),
                        BCK(i←v15780, limit175)
                        )) ), pd174);
               };
            var←c0792 = var←c0348.f1;
            refInt←v15824 = XR←Narrow(var←c0792, (* (( (ptr) gf←c51224)+26) ));
            };
SOURCE(13991, 41)
         {
            word limit176;
            word idx177;
            (* (( (W2Pt) (( (ptr) charRunCell←v15116)+4))+(
                  limit176 = (* (( (ptr) charRunCell←v15116)+3) ),
                  BCK(i←v15780, limit176)
                  )) ).f1 = (
               idx177 = (*  (ptr) refInt←v15824 ),
               SGNCK(idx177)
               );
            };
         };
      i←v15780 = (i←v15780 + 1);
      if ((i←v15780 < (* (( (ptr) formal←c51256)+12) ))) {
         goto lab←L100085;
         };
      lab←L100082: ;
      };
   }

static void NoteCharInfoRun←P5604(formal←c0354, found←v37152, val←v37180, formal←c51320)
   word formal←c0354;
   word found←v37152;
   word val←v37180;
   word formal←c51320;
   {
   register ptr gf←c51288 =  (ptr) &globalframe;
   word op←v37224;
   word new←v37252;
   formal←c51320 = (formal←c51320 - 16);
   /* NoteCharInfoRun: */ 
SOURCE(13217, 39)
SOURCE(13217, 39)
   op←v37224 = 0;
SOURCE(13217, 39)
   new←v37252 = 0;
SOURCE(13258, 97)
   if ((0 == found←v37152)) {
SOURCE(13278, 10)
      op←v37224 = 1;
SOURCE(13290, 30)
      {
         word var←c46744;
         var←c46744 = XR←NewObject(4, (* (( (ptr) gf←c51288)+26) ));
         (*  (ptr) var←c46744 ) = (* (( (ptr) (*  (ptr) formal←c51320 ))+17) );
         new←v37252 = var←c46744;
         };
SOURCE(13322, 33)
      (* (( (ptr) (*  (ptr) formal←c51320 ))+17) ) = ((* (( (ptr) (*  (ptr) formal←c51320 ))+17) ) + 1);
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0354 ) = op←v37224;
   (* (( (ptr) formal←c0354)+1) ) = new←v37252;
   return;
   }

static void CharInfoFromCD←P5016(formal←c0368, cd←v14788, formal←c51384)
   word formal←c0368;
   word cd←v14788;
   word formal←c51384;
   {
   register ptr gf←c51352 =  (ptr) &globalframe;
   W3 var←c14832;
   word codeLeftExtent←v15880;
   word codeRightExtent←v15908;
   word codeDescent←v15936;
   word codeAscent←v15964;
   word codeEscapementX←v15992;
   word codeEscapementY←v16020;
   formal←c51384 = (formal←c51384 - 24);
   /* CharInfoFromCD: */ 
SOURCE(14107, 1412)
SOURCE(14178, 76)
   codeLeftExtent←v15880 = (word) GetRealCode←P540((*  (ptr) (* (( (ptr) formal←c51384)+14) ) ), (* (( (ptr) cd←v14788)+6) ))
   ;
SOURCE(14256, 79)
   codeRightExtent←v15908 = (word) GetRealCode←P540((* (( (ptr) (* (( (ptr) formal←c51384)+14) ))+1) ), (* (( (ptr) cd←v14788)+7)
       ));
SOURCE(14337, 67)
   codeDescent←v15936 = (word) GetRealCode←P540((* (( (ptr) (* (( (ptr) formal←c51384)+14) ))+2) ), (* (( (ptr) cd←v14788)+8)
       ));
SOURCE(14406, 64)
   codeAscent←v15964 = (word) GetRealCode←P540((* (( (ptr) (* (( (ptr) formal←c51384)+14) ))+3) ), (* (( (ptr) cd←v14788)+9)
       ));
SOURCE(14472, 71)
   codeEscapementX←v15992 = (word) GetRealCode←P540((* (( (ptr) (* (( (ptr) formal←c51384)+14) ))+4) ), (* (( (ptr) cd←v14788)+4)
       ));
SOURCE(14545, 71)
   codeEscapementY←v16020 = (word) GetRealCode←P540((* (( (ptr) (* (( (ptr) formal←c51384)+14) ))+4) ), (* (( (ptr) cd←v14788)+5)
       ));
SOURCE(14618, 85)
   {
      word x178;
      float tf179;
      float tf180;
      word x181;
      float tf182;
      (*  (ptr) (* (( (ptr) formal←c51384)+5) ) ) = (
         tf182 = FMAX((
               x178 = (*  (ptr) (* (( (ptr) formal←c51384)+5) ) ),  *(float*)&x178
               ), (
               x181 = (* (( (ptr) cd←v14788)+6) ),  *(float*)&x181
               ), tf179, tf180),  *(word*)&tf182
         );
      };
SOURCE(14705, 88)
   {
      word x183;
      float tf184;
      float tf185;
      word x186;
      float tf187;
      (* (( (ptr) (* (( (ptr) formal←c51384)+5) ))+1) ) = (
         tf187 = FMAX((
               x183 = (* (( (ptr) (* (( (ptr) formal←c51384)+5) ))+1) ),  *(float*)&x183
               ), (
               x186 = (* (( (ptr) cd←v14788)+7) ),  *(float*)&x186
               ), tf184, tf185),  *(word*)&tf187
         );
      };
SOURCE(14795, 76)
   {
      word x188;
      float tf189;
      float tf190;
      word x191;
      float tf192;
      (* (( (ptr) (* (( (ptr) formal←c51384)+5) ))+2) ) = (
         tf192 = FMAX((
               x188 = (* (( (ptr) (* (( (ptr) formal←c51384)+5) ))+2) ),  *(float*)&x188
               ), (
               x191 = (* (( (ptr) cd←v14788)+8) ),  *(float*)&x191
               ), tf189, tf190),  *(word*)&tf192
         );
      };
SOURCE(14873, 73)
   {
      word x193;
      float tf194;
      float tf195;
      word x196;
      float tf197;
      (* (( (ptr) (* (( (ptr) formal←c51384)+5) ))+3) ) = (
         tf197 = FMAX((
               x193 = (* (( (ptr) (* (( (ptr) formal←c51384)+5) ))+3) ),  *(float*)&x193
               ), (
               x196 = (* (( (ptr) cd←v14788)+9) ),  *(float*)&x196
               ), tf194, tf195),  *(word*)&tf197
         );
      };
SOURCE(14948, 571)
   {
      word tc198;
      word x199;
      word x200;
      word x201;
      word x202;
      if (( (int)(x199 = MIN((int)(word), codeEscapementY←v16020, codeEscapementX←v15992),
         x200 = MIN((int)(word), x199, codeLeftExtent←v15880),
         x201 = MIN((int)(word), x200, codeRightExtent←v15908),
         x202 = MIN((int)(word), x201, codeDescent←v15936),
         MIN((int)(word), x202, codeAscent←v15964)) >=  (int)0)) {
         tc198 =  (word) ((* (( (ptr) cd←v14788)+11) ) == 0);
         }
      else {
         tc198 =  (word) 0;
         };
      if (tc198) {
SOURCE(15081, 178)
         var←c14832.f0 = 0;
         var←c14832.f1 = (((word) (((word) (((word) BCK(codeLeftExtent←v15880, 256) << 8) + BCK(codeRightExtent←v15908, 256)) << 8) + 
         BCK(codeDescent←v15936, 256)) << 8) + BCK(codeAscent←v15964, 256));
         var←c14832.f2 = (((word) BCK(codeEscapementX←v15992, 256) << 24) + BCK(codeEscapementY←v16020, 256));
         /* removed tail goto */ 
         }
      else {
SOURCE(15266, 253)
         {
            word overflowIndex←v16064;
            word vc←v16092;
SOURCE(15268, 36)
            overflowIndex←v16064 = (* (( (ptr) formal←c51384)+19) );
SOURCE(15306, 121)
            vc←v16092 = XR←NewObject(28, (* (( (ptr) gf←c51352)+35) ));
            (*  (W4Pt) vc←v16092 ) = (*  (W4Pt) (( (ptr) cd←v14788)+6) );
            (*  (W2Pt) (( (ptr) vc←v16092)+4) ) = (*  (W2Pt) (( (ptr) cd←v14788)+4) );
            (* (( (ptr) vc←v16092)+6) ) = (* (( (ptr) cd←v14788)+11) );
SOURCE(15429, 37)
            {
               word var←c46840;
               var←c46840 = XR←NewObject(8, (* (( (ptr) gf←c51352)+36) ));
               (*  (ptr) var←c46840 ) = vc←v16092;
               (* (( (ptr) var←c46840)+1) ) = (* (( (ptr) formal←c51384)+18) );
               (* (( (ptr) formal←c51384)+18) ) = var←c46840;
               };
SOURCE(15468, 15)
            (* (( (ptr) formal←c51384)+19) ) = ((* (( (ptr) formal←c51384)+19) ) + 1);
SOURCE(15485, 34)
            {
               W3 var←c46904;
               W2 var←c46872;
               var←c46872.f0 = 1;
               var←c46872.f1 = overflowIndex←v16064;
               (*  (W2Pt) (word) &var←c46904 ) = var←c46872;
               (* (( (ptr) (word) &var←c46904) + 2) ) = 0;
               var←c14832 = var←c46904;
               /* removed tail goto */ 
               };
            };
         };
      };
   (*  (W3Pt) formal←c0368 ) = var←c14832;
   return;
   }

static word RawHash←P1020(p←v7944, bytes←v7972)
   word p←v7944;
   word bytes←v7972;
   {
   word hash←v8028;
   /* RawHash: */ 
SOURCE(16697, 217)
SOURCE(16697, 217)
   hash←v8028 = 31415;
SOURCE(16807, 107)
   if ((p←v7944 != 0)) {
SOURCE(16823, 91)
      lab←L100090: ;
      bytes←v7972 = (bytes←v7972 - 4);
      if (( (int)bytes←v7972 >=  (int)0)) {
         }
      else {
         goto lab←L100088;
         };
SOURCE(16867, 27)
      hash←v8028 = ((hash←v8028 + ((word) hash←v8028 << 7)) + (*  (ptr) p←v7944 ));
SOURCE(16896, 18)
      p←v7944 = (p←v7944 + 4);
      goto lab←L100090;
      lab←L100088: ;
      };
SOURCE(16697, 217)
   return(hash←v8028);
   }

static word CharacterDescriptionHash←P1080(key←v32248)
   word key←v32248;
   {
   register ptr gf←c51416 =  (ptr) &globalframe;
   word var←c32292;
   word a←v16136;
   word hash←v16164;
   /* CharacterDescriptionHash: */ 
SOURCE(16929, 178)
SOURCE(16983, 37)
   a←v16136 = XR←Narrow(key←v32248, (* (( (ptr) gf←c51416)+17) ));
SOURCE(17022, 69)
   hash←v16164 = (word) RawHash←P1020(a←v16136, 48);
SOURCE(17093, 14)
   return(hash←v16164);
   }

static word CharacterDescriptionEqual←P1140(key1←v32352, key2←v32380)
   word key1←v32352;
   word key2←v32380;
   {
   register ptr gf←c51448 =  (ptr) &globalframe;
   word var←c32424;
   word a1←v16208;
   word a2←v16236;
   /* CharacterDescriptionEqual: */ 
SOURCE(17111, 149)
SOURCE(17159, 39)
   a1←v16208 = XR←Narrow(key1←v32352, (* (( (ptr) gf←c51448)+17) ));
SOURCE(17200, 39)
   a2←v16236 = XR←Narrow(key2←v32380, (* (( (ptr) gf←c51448)+17) ));
SOURCE(17241, 19)
   return( (unsigned) XR←EqualWords(a1←v16208, a2←v16236, 12));
   }

static word CharacterDescriptionsHash←P1200(key←v32484)
   word key←v32484;
   {
   register ptr gf←c51480 =  (ptr) &globalframe;
   word var←c32528;
   word c←v16280;
   W2 a←v16308;
   word p←v16336;
   word hash←v16364;
   /* CharacterDescriptionsHash: */ 
SOURCE(17264, 265)
SOURCE(17319, 38)
   c←v16280 = XR←Narrow(key←v32484, (* (( (ptr) gf←c51480)+16) ));
SOURCE(17359, 42)
   a←v16308.f0 = (*  (ptr) c←v16280 );
   a←v16308.f1 = (* (( (ptr) c←v16280)+1) );
SOURCE(17403, 43)
   p←v16336 = (word) &a←v16308;
SOURCE(17448, 65)
   hash←v16364 = (word) RawHash←P1020(p←v16336, 8);
SOURCE(17515, 14)
   return(hash←v16364);
   }

static word CharacterDescriptionsEqual←P1260(key1←v32588, key2←v32616)
   word key1←v32588;
   word key2←v32616;
   {
   register ptr gf←c51512 =  (ptr) &globalframe;
   word var←c32660;
   word a1←v16564;
   word a2←v16592;
   /* CharacterDescriptionsEqual: */ 
SOURCE(17533, 152)
SOURCE(17582, 40)
   a1←v16564 = XR←Narrow(key1←v32588, (* (( (ptr) gf←c51512)+16) ));
SOURCE(17624, 40)
   a2←v16592 = XR←Narrow(key2←v32616, (* (( (ptr) gf←c51512)+16) ));
SOURCE(17666, 19)
   return( (unsigned) XR←EqualWords(a1←v16564, a2←v16592, 2));
   }

static word TransformationHash←P1320(key←v32720)
   word key←v32720;
   {
   register ptr gf←c51544 =  (ptr) &globalframe;
   word var←c32764;
   word m←v16636;
   /* TransformationHash: */ 
SOURCE(17689, 332)
SOURCE(17737, 31)
   m←v16636 = XR←Narrow(key←v32720, (* (( (ptr) gf←c51544)+37) ));
SOURCE(17770, 251)
   if ((m←v16636 == 0)) {
SOURCE(17786, 17)
      return(13);
      }
   else {
SOURCE(17803, 218)
      {
         W6 a←v16680;
         word p←v16708;
         word hash←v16736;
SOURCE(17805, 86)
         {
            float tf203;
            word x204;
            float tf205;
            a←v16680.f0 = (
               tf205 = FABS((
                     x204 = (*  (ptr) m←v16636 ),  *(float*)&x204
                     ), tf203),  *(word*)&tf205
               );
            };
         {
            float tf206;
            word x207;
            float tf208;
            a←v16680.f1 = (
               tf208 = FABS((
                     x207 = (* (( (ptr) m←v16636)+1) ),  *(float*)&x207
                     ), tf206),  *(word*)&tf208
               );
            };
         {
            float tf209;
            word x210;
            float tf211;
            a←v16680.f2 = (
               tf211 = FABS((
                     x210 = (* (( (ptr) m←v16636)+2) ),  *(float*)&x210
                     ), tf209),  *(word*)&tf211
               );
            };
         {
            float tf212;
            word x213;
            float tf214;
            a←v16680.f3 = (
               tf214 = FABS((
                     x213 = (* (( (ptr) m←v16636)+3) ),  *(float*)&x213
                     ), tf212),  *(word*)&tf214
               );
            };
         {
            float tf215;
            word x216;
            float tf217;
            a←v16680.f4 = (
               tf217 = FABS((
                     x216 = (* (( (ptr) m←v16636)+4) ),  *(float*)&x216
                     ), tf215),  *(word*)&tf217
               );
            };
         {
            float tf218;
            word x219;
            float tf220;
            a←v16680.f5 = (
               tf220 = FABS((
                     x219 = (* (( (ptr) m←v16636)+5) ),  *(float*)&x219
                     ), tf218),  *(word*)&tf220
               );
            };
SOURCE(17893, 44)
         p←v16708 = (word) &a←v16680;
SOURCE(17939, 66)
         hash←v16736 = (word) RawHash←P1020(p←v16708, 24);
SOURCE(18007, 14)
         return(hash←v16736);
         };
      };
   }

static word TransformationEqual←P1380(key1←v32824, key2←v32852)
   word key1←v32824;
   word key2←v32852;
   {
   register ptr gf←c51576 =  (ptr) &globalframe;
   word var←c32896;
   word a1←v16900;
   word a2←v16928;
   /* TransformationEqual: */ 
SOURCE(18028, 179)
SOURCE(18070, 33)
   a1←v16900 = XR←Narrow(key1←v32824, (* (( (ptr) gf←c51576)+37) ));
SOURCE(18105, 33)
   a2←v16928 = XR←Narrow(key2←v32852, (* (( (ptr) gf←c51576)+37) ));
SOURCE(18140, 67)
   {
      word tc221;
      word pd222;
      if ( ( (a1←v16900 == 0) ? (a2←v16928 == 0) : 0 ) ) {
         tc221 =  (word)  (unsigned) 1;
         }
      else {
         pd222 = (* (( (ptr) (* (( (ptr) gf←c51576)+154)/* var←c43224 */  ))+53) );
         tc221 =  (word)  (unsigned) (0 != (word) ( *( (fPt) ((*  (ptr) pd222 ))))(a1←v16900, a2←v16928, pd222));
         };
      return(tc221);
      };
   }

static word CharInfoRunHash←P1440(key←v32956)
   word key←v32956;
   {
   register ptr gf←c51608 =  (ptr) &globalframe;
   word var←c33000;
   word charInfoRun←v16972;
   word hash←v17000;
   /* CharInfoRunHash: */ 
SOURCE(18211, 189)
SOURCE(18256, 38)
   charInfoRun←v16972 = XR←Narrow(key←v32956, (* (( (ptr) gf←c51608)+33) ));
SOURCE(18296, 88)
   {
      word idx223;
      hash←v17000 = (word) RawHash←P1020(charInfoRun←v16972, (((word) (
            idx223 = (* (( (ptr) charInfoRun←v16972)+3) ),
            BCK(idx223, 22369619)
            ) * 12) + 16));
      };
SOURCE(18386, 14)
   return(hash←v17000);
   }

static word CharInfoRunEqual←P1500(key1←v33060, key2←v33088)
   word key1←v33060;
   word key2←v33088;
   {
   register ptr gf←c51640 =  (ptr) &globalframe;
   word var←c33132;
   word a1←v17044;
   word a2←v17072;
   /* CharInfoRunEqual: */ 
SOURCE(18404, 623)
SOURCE(18451, 30)
   a1←v17044 = XR←Narrow(key1←v33060, (* (( (ptr) gf←c51640)+33) ));
SOURCE(18483, 30)
   a2←v17072 = XR←Narrow(key2←v33088, (* (( (ptr) gf←c51640)+33) ));
SOURCE(18515, 146)
   if (((((* (( (ptr) a1←v17044)+3) ) != (* (( (ptr) a2←v17072)+3) )) || ( (int)(*  (ptr) a1←v17044 ) !=  (int)(*  (ptr) a2←v17072 ))) || ((* (
      ( (ptr) a1←v17044)+1) ) != (* (( (ptr) a2←v17072)+1) ))) || ((* (( (ptr) a1←v17044)+2) ) != (* (( (ptr) a2←v17072)+2) ))) {
SOURCE(18647, 14)
      return(0);
      };
SOURCE(18663, 319)
   {
      register word i←v17116 = 0;
      register word noName←c47032;
      noName←c47032 = (* (( (ptr) a1←v17044)+3) );
      if ((i←v17116 >= noName←c47032)) {
         goto lab←L100091;
         };
      lab←L100094: ;
      {
         W3 c1←v17160;
         W3 c2←v17188;
SOURCE(18693, 20)
         {
            word limit224;
            c1←v17160 = (* (( (W3Pt) (( (ptr) a1←v17044)+4))+(
                  limit224 = (* (( (ptr) a1←v17044)+3) ),
                  BCK(i←v17116, limit224)
                  )) );
            };
SOURCE(18715, 20)
         {
            word limit225;
            c2←v17188 = (* (( (W3Pt) (( (ptr) a2←v17072)+4))+(
                  limit225 = (* (( (ptr) a2←v17072)+3) ),
                  BCK(i←v17116, limit225)
                  )) );
            };
SOURCE(18737, 245)
         {
            word var←c47064;
            var←c47064 = c1←v17160.f0;
            if ((var←c47064 == 0)) {
SOURCE(18772, 95)
               {
                  word var←c47096;
                  var←c47096 = c2←v17188.f0;
                  if ((var←c47096 == 0)) {
SOURCE(18807, 30)
                     if ( ! XR←EqualWords(&c1←v17160, &c2←v17188, 3)) {
SOURCE(18823, 14)
                        return(0);
                        };
                     }
                  else {
SOURCE(18853, 14)
                     return(0);
                     };
                  };
               }
            else {
               if ((var←c47064 == 1)) {
SOURCE(18885, 97)
                  {
                     word var←c47128;
                     var←c47128 = c2←v17188.f0;
                     if ((var←c47128 == 1)) {
SOURCE(18922, 30)
                        if ( ! XR←EqualWords(&c1←v17160, &c2←v17188, 2)) {
SOURCE(18938, 14)
                           return(0);
                           };
                        }
                     else {
SOURCE(18968, 14)
                        return(0);
                        };
                     };
                  }
               else {
SOURCE(18998, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         };
      i←v17116 = (i←v17116 + 1);
      if ((i←v17116 < noName←c47032)) {
         goto lab←L100094;
         };
      lab←L100091: ;
      };
SOURCE(19014, 13)
   return(1);
   }

static void MapCharacterDescriptions←P1560(fdTable←v8088, formal←c0831)
   word fdTable←v8088;
   word formal←c0831;
   {
   W7 var←c51672;
   /* declaration of proc←v8116 skipped */ 
   register ptr gf←c51704 =  (ptr) &globalframe;
   /* declaration of var←c47160 skipped */ 
   var←c51672.f4/* proc←v8116 */  = formal←c0831;
   /* MapCharacterDescriptions: */ 
SOURCE(19033, 337)
   {
      word tmpAddr226;
      tmpAddr226 = (word) (( (ptr) &var←c51672)+5)/* var←c47160 */ ;
      (*  (ptr) tmpAddr226 ) = ( ((word)  (fPt) EachPair←P6048) );
      (* (( (ptr) tmpAddr226) + 1) ) = 1;
      };
SOURCE(19314, 56)
   {
      word var←c47192;
      word pd227;
      pd227 = (* (( (ptr) (* (( (ptr) gf←c51704)+156)/* var←c43448 */  ))+13) );
      var←c47192 = (word) ( *( (fPt) ((*  (ptr) pd227 ))))((*  (ptr) fdTable←v8088 ), (word) (( (bPt) &var←c51672)+20)/* var←c47160 */ , pd227)
      ;
      };
   }

static word EachPair←P6048(key←v38076, val←v38104, formal←c51768)
   word key←v38076;
   word val←v38104;
   word formal←c51768;
   {
   register ptr gf←c51736 =  (ptr) &globalframe;
   word quit←v38148;
   formal←c51768 = (formal←c51768 - 20);
   /* EachPair: */ 
SOURCE(19157, 143)
SOURCE(19157, 143)
   quit←v38148 = 0;
SOURCE(19194, 106)
   {
      register word tail←v17276;
      tail←v17276 = XR←Narrow(val←v38104, (* (( (ptr) gf←c51736)+16) ));
      lab←L100098: ;
      if ((tail←v17276 != 0)) {
         }
      else {
         goto lab←L100095;
         };
SOURCE(19271, 29)
      {
         word pd228;
         pd228 = (* (( (ptr) formal←c51768)+4) );
         (*  (ptr) tail←v17276 ) = (word) ( *( (fPt) ((*  (ptr) pd228 ))))((*  (ptr) (tail←v17276) ), pd228);
         };
      tail←v17276 = (* (( (ptr) tail←v17276)+1) );
      goto lab←L100098;
      lab←L100095: ;
      };
SOURCE(19157, 143)
   return(quit←v38148);
   }

static word NonNilT←P1620(m←v8280)
   word m←v8280;
   {
   register ptr gf←c51800 =  (ptr) &globalframe;
   word var←c8324;
   /* NonNilT: */ 
SOURCE(19434, 104)
SOURCE(19497, 41)
   if ((m←v8280 == 0)) {
      return((* (( (ptr) gf←c51800)+6)/* identity←v4288 */  ));
      }
   else {
      return(m←v8280);
      };
   }

static void Canonicalize←P1680(formal←c0832)
   word formal←c0832;
   {
   W28 var←c51832;
   /* declaration of fdTable←v8384 skipped */ 
   register ptr gf←c51864 =  (ptr) &globalframe;
   /* declaration of var←c47224 skipped */ 
   /* declaration of var←c47256 skipped */ 
   /* declaration of var←c47288 skipped */ 
   /* declaration of var←c47320 skipped */ 
   /* declaration of var←c47352 skipped */ 
   /* declaration of var←c47384 skipped */ 
   /* declaration of var←c47416 skipped */ 
   /* declaration of var←c47448 skipped */ 
   /* declaration of mTab←v17320 skipped */ 
   /* declaration of charToDeviceTab←v17348 skipped */ 
   /* declaration of cdTab←v17376 skipped */ 
   /* declaration of tfTab←v17404 skipped */ 
   /* declaration of cdsTab←v17516 skipped */ 
   /* declaration of ftSeq←v17572 skipped */ 
   /* declaration of cdCells←v17656 skipped */ 
   (* (( (ptr) &var←c51832)+4)/* fdTable←v8384 */  ) = formal←c0832;
   /* Canonicalize: */ 
SOURCE(19542, 4768)
   {
      word tmpAddr229;
      tmpAddr229 = (word) (( (ptr) &var←c51832)+5)/* var←c47224 */ ;
      (*  (ptr) tmpAddr229 ) = ( ((word)  (fPt) CanonicalizeEachCharacterDescriptionList←P6576) );
      (* (( (ptr) tmpAddr229) + 1) ) = 1;
      };
   {
      word tmpAddr230;
      tmpAddr230 = (word) (( (ptr) &var←c51832)+7)/* var←c47256 */ ;
      (*  (ptr) tmpAddr230 ) = ( ((word)  (fPt) SortCharacterDescriptions←P6516) );
      (* (( (ptr) tmpAddr230) + 1) ) = 1;
      };
   {
      word tmpAddr231;
      tmpAddr231 = (word) (( (ptr) &var←c51832)+9)/* var←c47288 */ ;
      (*  (ptr) tmpAddr231 ) = ( ((word)  (fPt) CDsInOrder←P6456) );
      (* (( (ptr) tmpAddr231) + 1) ) = 1;
      };
   {
      word tmpAddr232;
      tmpAddr232 = (word) (( (ptr) &var←c51832)+11)/* var←c47320 */ ;
      (*  (ptr) tmpAddr232 ) = ( ((word)  (fPt) TransformationIndex←P6396) );
      (* (( (ptr) tmpAddr232) + 1) ) = 1;
      };
   {
      word tmpAddr233;
      tmpAddr233 = (word) (( (ptr) &var←c51832)+13)/* var←c47352 */ ;
      (*  (ptr) tmpAddr233 ) = ( ((word)  (fPt) CanonicalizeCharacterDescriptions←P6336) );
      (* (( (ptr) tmpAddr233) + 1) ) = 1;
      };
   {
      word tmpAddr234;
      tmpAddr234 = (word) (( (ptr) &var←c51832)+15)/* var←c47384 */ ;
      (*  (ptr) tmpAddr234 ) = ( ((word)  (fPt) CanonicalizeCharacterDescription←P6276) );
      (* (( (ptr) tmpAddr234) + 1) ) = 1;
      };
   {
      word tmpAddr235;
      tmpAddr235 = (word) (( (ptr) &var←c51832)+17)/* var←c47416 */ ;
      (*  (ptr) tmpAddr235 ) = ( ((word)  (fPt) CanonicalizeTransformation←P6216) );
      (* (( (ptr) tmpAddr235) + 1) ) = 1;
      };
   {
      word tmpAddr236;
      tmpAddr236 = (word) (( (ptr) &var←c51832)+19)/* var←c47448 */ ;
      (*  (ptr) tmpAddr236 ) = ( ((word)  (fPt) CanonicalizeTypefaceCell←P6156) );
      (* (( (ptr) tmpAddr236) + 1) ) = 1;
      };
SOURCE(19591, 86)
   {
      word pd237;
      pd237 = (* (( (ptr) (* (( (ptr) gf←c51864)+158)/* var←c44792 */  ))+5) );
      (* (( (ptr) &var←c51832)+21)/* mTab←v17320 */  ) = (word) ( *( (fPt) ((*  (ptr) pd237 ))))(17, (word) (( (bPt) gf←c51864)+424)
         /* var←c42456 */ , (word) (( (bPt) gf←c51864)+432)/* var←c42488 */ , pd237);
      };
SOURCE(19679, 45)
   {
      word pd238;
      pd238 = (* (( (ptr) (* (( (ptr) gf←c51864)+158)/* var←c44792 */  ))+5) );
      (* (( (ptr) &var←c51832)+22)/* charToDeviceTab←v17348 */  ) = (word) ( *( (fPt) ((*  (ptr) pd238 ))))(17, 0, 0, pd238);
      };
SOURCE(19726, 99)
   {
      word pd239;
      pd239 = (* (( (ptr) (* (( (ptr) gf←c51864)+158)/* var←c44792 */  ))+5) );
      (* (( (ptr) &var←c51832)+23)/* cdTab←v17376 */  ) = (word) ( *( (fPt) ((*  (ptr) pd239 ))))(17, (word) (( (bPt) gf←c51864)+456)
         /* var←c42584 */ , (word) (( (bPt) gf←c51864)+464)/* var←c42616 */ , pd239);
      };
SOURCE(19827, 46)
   {
      word pd240;
      pd240 = (* (( (ptr) (* (( (ptr) gf←c51864)+159)/* var←c47480 */  ))+5) );
      (* (( (ptr) &var←c51832)+24)/* tfTab←v17404 */  ) = (word) ( *( (fPt) ((*  (ptr) pd240 ))))(17, 0, pd240);
      };
SOURCE(21447, 102)
   {
      word pd241;
      pd241 = (* (( (ptr) (* (( (ptr) gf←c51864)+158)/* var←c44792 */  ))+5) );
      (* (( (ptr) &var←c51832)+25)/* cdsTab←v17516 */  ) = (word) ( *( (fPt) ((*  (ptr) pd241 ))))(17, (word) (( (bPt) gf←c51864)+440)
         /* var←c42520 */ , (word) (( (bPt) gf←c51864)+448)/* var←c42552 */ , pd241);
      };
SOURCE(21911, 24)
   (* (( (ptr) &var←c51832)+26)/* ftSeq←v17572 */  ) = 0;
SOURCE(22162, 31)
   (* (( (ptr) &var←c51832)+27)/* cdCells←v17656 */  ) = 0;
SOURCE(23828, 67)
   (void) MapCharacterDescriptions←P1560((* (( (ptr) &var←c51832)+4)/* fdTable←v8384 */  ), (word) (( (bPt) &var←c51832)+60)
      /* var←c47384 */ );
SOURCE(23897, 44)
   (* (( (ptr) &var←c51832)+26)/* ftSeq←v17572 */  ) = (word) SortTransformations←P1740((* ((( (ptr) &var←c51832)+22)/* charToDeviceTab←v17348 */ ) ))
   ;
SOURCE(23943, 39)
   {
      word var←c47512;
      word var←c47544;
      word var←c47576;
      {
         word idx242;
         var←c47512 = (
            idx242 = (*  (ptr) (* (( (ptr) &var←c51832)+26)/* ftSeq←v17572 */  ) ),
            BCK(idx242, 67108863)
            );
         };
      var←c47544 = ((word) var←c47512 << 2);
      var←c47576 = XR←NewObject((4 + var←c47544), (* (( (ptr) gf←c51864)+38) ));
      (*  (ptr) var←c47576 ) = var←c47512;
      (* (( (ptr) &var←c51832)+27)/* cdCells←v17656 */  ) = var←c47576;
      };
SOURCE(23984, 73)
   {
      word var←c47608;
      word pd243;
      pd243 = (* (( (ptr) (* (( (ptr) gf←c51864)+156)/* var←c43448 */  ))+13) );
      var←c47608 = (word) ( *( (fPt) ((*  (ptr) pd243 ))))((*  (ptr) (* (( (ptr) &var←c51832)+4)/* fdTable←v8384 */  ) ), (word) (
            ( (bPt) &var←c51832)+28)/* var←c47256 */ , pd243);
      };
SOURCE(24059, 88)
   {
      word var←c47640;
      word pd244;
      pd244 = (* (( (ptr) (* (( (ptr) gf←c51864)+156)/* var←c43448 */  ))+13) );
      var←c47640 = (word) ( *( (fPt) ((*  (ptr) pd244 ))))((*  (ptr) (* (( (ptr) &var←c51832)+4)/* fdTable←v8384 */  ) ), (word) (
            ( (bPt) &var←c51832)+20)/* var←c47224 */ , pd244);
      };
SOURCE(24149, 75)
   {
      word var←c47672;
      {
         word var←c47704;
         word var←c47736;
         word var←c47768;
         {
            word idx245;
            var←c47704 = (
               idx245 = (*  (ptr) (* (( (ptr) &var←c51832)+26)/* ftSeq←v17572 */  ) ),
               BCK(idx245, 67108863)
               );
            };
         var←c47736 = ((word) var←c47704 << 2);
         var←c47768 = XR←NewObject((4 + var←c47736), (* (( (ptr) gf←c51864)+31) ));
         (*  (ptr) var←c47768 ) = var←c47704;
         var←c47672 = var←c47768;
         };
      (* (( (ptr) (* (( (ptr) &var←c51832)+4)/* fdTable←v8384 */  ))+2) ) = var←c47672;
      };
SOURCE(24226, 84)
   {
      register word i←v18512 = 0;
      register word noName←c47800;
      noName←c47800 = (*  (ptr) (* (( (ptr) &var←c51832)+26)/* ftSeq←v17572 */  ) );
      if ((i←v18512 >= noName←c47800)) {
         goto lab←L100099;
         };
      lab←L100102: ;
SOURCE(24259, 51)
      {
         word var←c47832;
         var←c47832 = (* (( (ptr) (* (( (ptr) &var←c51832)+4)/* fdTable←v8384 */  ))+2) );
         {
            word limit246;
            word limit247;
            (* ((( (ptr) var←c47832)+1)+(
                  limit246 = (*  (ptr) var←c47832 ),
                  BCK(i←v18512, limit246)
                  )) ) = (* (( (ptr) (* ((( (ptr) (* (( (ptr) &var←c51832)+26)/* ftSeq←v17572 */  ))+1)+(
                     limit247 = (*  (ptr) (* (( (ptr) &var←c51832)+26)/* ftSeq←v17572 */  ) ),
                     BCK(i←v18512, limit247)
                     )) ))+6) );
            };
         };
      i←v18512 = (i←v18512 + 1);
      if ((i←v18512 < noName←c47800)) {
         goto lab←L100102;
         };
      lab←L100099: ;
      };
   }

static word CanonicalizeTypefaceCell←P6156(formal←c0833, formal←c51960)
   word formal←c0833;
   word formal←c51960;
   {
   W7 var←c51896;
   /* declaration of typefaceCell←v17816 skipped */ 
   register ptr gf←c51928 =  (ptr) &globalframe;
   word var←c17860;
   /* declaration of var←c47864 skipped */ 
   formal←c51960 = (formal←c51960 - 76);
   var←c51896.f4/* typefaceCell←v17816 */  = formal←c0833;
   var←c51896.f0 = formal←c51960;
   /* CanonicalizeTypefaceCell: */ 
SOURCE(19875, 732)
   {
      word tmpAddr248;
      tmpAddr248 = (word) (( (ptr) &var←c51896)+5)/* var←c47864 */ ;
      (*  (ptr) tmpAddr248 ) = ( ((word)  (fPt) UpdateTF←P6684) );
      (* (( (ptr) tmpAddr248) + 1) ) = 1;
      };
SOURCE(20240, 199)
   if (((* (( (ptr) var←c51896.f4/* typefaceCell←v17816 */ )+1) ) != 0)) {
SOURCE(20278, 50)
      (*  (ptr) var←c51896.f4/* typefaceCell←v17816 */  ) = (* (( (ptr) (* (( (ptr) var←c51896.f4/* typefaceCell←v17816 */ )+1)
          ))+2) );
SOURCE(20330, 55)
      (* (( (ptr) var←c51896.f4/* typefaceCell←v17816 */ )+2) ) = (* (( (ptr) (* (( (ptr) var←c51896.f4/* typefaceCell←v17816 */ )+1)
          ))+4) );
SOURCE(20387, 52)
      (* (( (ptr) var←c51896.f4/* typefaceCell←v17816 */ )+3) ) = (*  (ptr) (*  (ptr) (* (( (ptr) var←c51896.f4/* typefaceCell←v17816 */ )+1)
       ) ) );
      };
SOURCE(20444, 36)
   if (((*  (ptr) var←c51896.f4/* typefaceCell←v17816 */  ) == 0)) {
SOURCE(20480, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(20515, 69)
   {
      word pd249;
      pd249 = (* (( (ptr) (* (( (ptr) gf←c51928)+159)/* var←c47480 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd249 ))))((* (( (ptr) formal←c51960)+24) ), (*  (ptr) var←c51896.f4/* typefaceCell←v17816 */  ), (word) (
            ( (bPt) &var←c51896)+20)/* var←c47864 */ , pd249);
      };
SOURCE(20586, 21)
   return(var←c51896.f4/* typefaceCell←v17816 */ );
   }

static void UpdateTF←P6684(formal←c0465, found←v38472, val←v38500, formal←c52024)
   word formal←c0465;
   word found←v38472;
   word val←v38500;
   word formal←c52024;
   {
   register ptr gf←c51992 =  (ptr) &globalframe;
   word op←v38544;
   word new←v38572;
   formal←c52024 = (formal←c52024 - 20);
   /* UpdateTF: */ 
SOURCE(19962, 270)
SOURCE(19962, 270)
   op←v38544 = 0;
SOURCE(19962, 270)
   new←v38572 = 0;
SOURCE(19996, 236)
   if ((0 == found←v38472)) {
SOURCE(20014, 34)
      op←v38544 = 1;
      new←v38572 = (* (( (ptr) formal←c52024)+4) );
      goto lab←L100103;
      }
   else {
SOURCE(20048, 186)
      {
         word canon←v18600;
SOURCE(20050, 33)
         canon←v18600 = XR←Narrow(val←v38500, (* (( (ptr) gf←c51992)+27) ));
SOURCE(20085, 35)
         if ((canon←v18600 == (* (( (ptr) formal←c52024)+4) ))) {
SOURCE(20114, 6)
            goto lab←L100103;
            };
SOURCE(20122, 85)
         if ( ( ((* (( (ptr) canon←v18600)+1) ) == 0) ? ((* (( (ptr) (* (( (ptr) formal←c52024)+4) ))+1) ) != 0) : 0 ) ) {
SOURCE(20185, 22)
            (*  (W4Pt) canon←v18600 ) = (*  (W4Pt) (* (( (ptr) formal←c52024)+4) ) );
            };
SOURCE(20212, 20)
         (* (( (ptr) formal←c52024)+4) ) = canon←v18600;
         };
      };
   /* removed tail goto */ 
   lab←L100103: ;
   (*  (ptr) formal←c0465 ) = op←v38544;
   (* (( (ptr) formal←c0465)+1) ) = new←v38572;
   return;
   }

static word CanonicalizeTransformation←P6216(formal←c0834, formal←c52120)
   word formal←c0834;
   word formal←c52120;
   {
   W7 var←c52056;
   /* declaration of m←v17920 skipped */ 
   register ptr gf←c52088 =  (ptr) &globalframe;
   word var←c17964;
   /* declaration of var←c47896 skipped */ 
   formal←c52120 = (formal←c52120 - 68);
   var←c52056.f4/* m←v17920 */  = formal←c0834;
   var←c52056.f0 = formal←c52120;
   /* CanonicalizeTransformation: */ 
SOURCE(20612, 273)
   {
      word tmpAddr250;
      tmpAddr250 = (word) (( (ptr) &var←c52056)+5)/* var←c47896 */ ;
      (*  (ptr) tmpAddr250 ) = ( ((word)  (fPt) UpdateTransformation←P6792) );
      (* (( (ptr) tmpAddr250) + 1) ) = 1;
      };
SOURCE(20796, 14)
   var←c52056.f4/* m←v17920 */  = (word) NonNilT←P1620(var←c52056.f4/* m←v17920 */ );
SOURCE(20812, 60)
   {
      word pd251;
      pd251 = (* (( (ptr) (* (( (ptr) gf←c52088)+158)/* var←c44792 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd251 ))))((* (( (ptr) formal←c52120)+21) ), var←c52056.f4/* m←v17920 */ , (word) (( (bPt) &var←c52056)+20)
         /* var←c47896 */ , pd251);
      };
SOURCE(20874, 11)
   return(var←c52056.f4/* m←v17920 */ );
   }

static void UpdateTransformation←P6792(formal←c0473, found←v38916, val←v38944, formal←c52184)
   word formal←c0473;
   word found←v38916;
   word val←v38944;
   word formal←c52184;
   {
   register ptr gf←c52152 =  (ptr) &globalframe;
   word op←v38988;
   word new←v39016;
   formal←c52184 = (formal←c52184 - 20);
   /* UpdateTransformation: */ 
SOURCE(20694, 99)
SOURCE(20694, 99)
   op←v38988 = 0;
SOURCE(20694, 99)
   new←v39016 = 0;
SOURCE(20740, 53)
   if ((0 != found←v38916)) {
SOURCE(20754, 21)
      (* (( (ptr) formal←c52184)+4) ) = XR←Narrow(val←v38944, (* (( (ptr) gf←c52152)+37) ));
      }
   else {
SOURCE(20775, 18)
      op←v38988 = 1;
      new←v39016 = (* (( (ptr) formal←c52184)+4) );
      goto lab←L100104;
      };
   /* removed tail goto */ 
   lab←L100104: ;
   (*  (ptr) formal←c0473 ) = op←v38988;
   (* (( (ptr) formal←c0473)+1) ) = new←v39016;
   return;
   }

static word CanonicalizeCharacterDescription←P6276(formal←c0835, formal←c52280)
   word formal←c0835;
   word formal←c52280;
   {
   W7 var←c52216;
   /* declaration of cd←v18024 skipped */ 
   register ptr gf←c52248 =  (ptr) &globalframe;
   word var←c18068;
   /* declaration of var←c47928 skipped */ 
   formal←c52280 = (formal←c52280 - 60);
   var←c52216.f4/* cd←v18024 */  = formal←c0835;
   var←c52216.f0 = formal←c52280;
   /* CanonicalizeCharacterDescription: */ 
SOURCE(20888, 554)
   {
      word tmpAddr252;
      tmpAddr252 = (word) (( (ptr) &var←c52216)+5)/* var←c47928 */ ;
      (*  (ptr) tmpAddr252 ) = ( ((word)  (fPt) UpdateCD←P6852) );
      (* (( (ptr) tmpAddr252) + 1) ) = 1;
      };
SOURCE(21086, 61)
   (* (( (ptr) var←c52216.f4/* cd←v18024 */ )+1) ) = (word) CanonicalizeTransformation←P6216((* (( (ptr) var←c52216.f4/* cd←v18024 */ )+1)
       ), (word) (( (bPt) formal←c52280)+68));
SOURCE(21149, 69)
   {
      word var←c47960;
      word pd253;
      pd253 = (* (( (ptr) (* (( (ptr) gf←c52248)+158)/* var←c44792 */  ))+10) );
      var←c47960 = (word) ( *( (fPt) ((*  (ptr) pd253 ))))((* (( (ptr) formal←c52280)+22) ), (* (( (ptr) var←c52216.f4/* cd←v18024 */ )+1)
          ), (* (( (ptr) var←c52216.f4/* cd←v18024 */ )+1) ), pd253);
      };
SOURCE(21220, 59)
   (*  (ptr) var←c52216.f4/* cd←v18024 */  ) = (word) CanonicalizeTypefaceCell←P6156((*  (ptr) var←c52216.f4/* cd←v18024 */  ), (word) (
         ( (bPt) formal←c52280)+76));
SOURCE(21281, 96)
   (* (( (ptr) var←c52216.f4/* cd←v18024 */ )+10) ) = (word) CanonicalizeTransformation←P6216( ( ((* (( (ptr) var←c52216.f4/* cd←v18024 */ )+10)
       ) == 0) ? (* (( (ptr) gf←c52248)+6)/* identity←v4288 */  ) : (* (( (ptr) var←c52216.f4/* cd←v18024 */ )+10) ) ) , (word) (
         ( (bPt) formal←c52280)+68));
SOURCE(21379, 50)
   {
      word pd254;
      pd254 = (* (( (ptr) (* (( (ptr) gf←c52248)+158)/* var←c44792 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd254 ))))((* (( (ptr) formal←c52280)+23) ), var←c52216.f4/* cd←v18024 */ , (word) (( (bPt) &var←c52216)+20)
         /* var←c47928 */ , pd254);
      };
SOURCE(21431, 11)
   return(var←c52216.f4/* cd←v18024 */ );
   }

static void UpdateCD←P6852(formal←c0482, found←v39076, val←v39104, formal←c52344)
   word formal←c0482;
   word found←v39076;
   word val←v39104;
   word formal←c52344;
   {
   register ptr gf←c52312 =  (ptr) &globalframe;
   word op←v39148;
   word new←v39176;
   formal←c52344 = (formal←c52344 - 20);
   /* UpdateCD: */ 
SOURCE(20989, 92)
SOURCE(20989, 92)
   op←v39148 = 0;
SOURCE(20989, 92)
   new←v39176 = 0;
SOURCE(21023, 58)
   if ((0 != found←v39076)) {
SOURCE(21039, 17)
      (* (( (ptr) formal←c52344)+4) ) = XR←Narrow(val←v39104, (* (( (ptr) gf←c52312)+17) ));
      }
   else {
SOURCE(21063, 18)
      op←v39148 = 1;
      new←v39176 = (* (( (ptr) formal←c52344)+4) );
      goto lab←L100105;
      };
   /* removed tail goto */ 
   lab←L100105: ;
   (*  (ptr) formal←c0482 ) = op←v39148;
   (* (( (ptr) formal←c0482)+1) ) = new←v39176;
   return;
   }

static word CanonicalizeCharacterDescriptions←P6336(formal←c0836, formal←c52440)
   word formal←c0836;
   word formal←c52440;
   {
   W7 var←c52376;
   /* declaration of cds←v18128 skipped */ 
   register ptr gf←c52408 =  (ptr) &globalframe;
   word var←c18172;
   /* declaration of var←c47992 skipped */ 
   formal←c52440 = (formal←c52440 - 52);
   var←c52376.f4/* cds←v18128 */  = formal←c0836;
   var←c52376.f0 = formal←c52440;
   /* CanonicalizeCharacterDescriptions: */ 
SOURCE(21551, 355)
   {
      word tmpAddr255;
      tmpAddr255 = (word) (( (ptr) &var←c52376)+5)/* var←c47992 */ ;
      (*  (ptr) tmpAddr255 ) = ( ((word)  (fPt) UpdateCDS←P6912) );
      (* (( (ptr) tmpAddr255) + 1) ) = 1;
      };
SOURCE(21751, 30)
   if ((var←c52376.f4/* cds←v18128 */  == 0)) {
SOURCE(21769, 12)
      return(0);
      };
SOURCE(21783, 54)
   (* (( (ptr) var←c52376.f4/* cds←v18128 */ )+1) ) = (word) CanonicalizeCharacterDescriptions←P6336((* (( (ptr) var←c52376.f4/* cds←v18128 */ )+1)
       ), (word) (( (bPt) formal←c52440)+52));
SOURCE(21839, 53)
   {
      word pd256;
      pd256 = (* (( (ptr) (* (( (ptr) gf←c52408)+158)/* var←c44792 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd256 ))))((* (( (ptr) formal←c52440)+25) ), var←c52376.f4/* cds←v18128 */ , (word) (( (bPt) &var←c52376)+20)
         /* var←c47992 */ , pd256);
      };
SOURCE(21894, 12)
   return(var←c52376.f4/* cds←v18128 */ );
   }

static void UpdateCDS←P6912(formal←c0490, found←v39236, val←v39264, formal←c52504)
   word formal←c0490;
   word found←v39236;
   word val←v39264;
   word formal←c52504;
   {
   register ptr gf←c52472 =  (ptr) &globalframe;
   word op←v39308;
   word new←v39336;
   formal←c52504 = (formal←c52504 - 20);
   /* UpdateCDS: */ 
SOURCE(21656, 92)
SOURCE(21656, 92)
   op←v39308 = 0;
SOURCE(21656, 92)
   new←v39336 = 0;
SOURCE(21691, 57)
   if ((0 != found←v39236)) {
SOURCE(21705, 23)
      (* (( (ptr) formal←c52504)+4) ) = XR←Narrow(val←v39264, (* (( (ptr) gf←c52472)+16) ));
      }
   else {
SOURCE(21728, 20)
      op←v39308 = 1;
      new←v39336 = (* (( (ptr) formal←c52504)+4) );
      goto lab←L100106;
      };
   /* removed tail goto */ 
   lab←L100106: ;
   (*  (ptr) formal←c0490 ) = op←v39308;
   (* (( (ptr) formal←c0490)+1) ) = new←v39336;
   return;
   }

static word TransformationIndex←P6396(m←v18232, formal←c52536)
   word m←v18232;
   word formal←c52536;
   {
   word var←c18276;
   formal←c52536 = (formal←c52536 - 44);
   /* TransformationIndex: */ 
SOURCE(21937, 130)
SOURCE(22001, 66)
   {
      register word i←v18776 = 0;
      register word noName←c48024;
      noName←c48024 = (*  (ptr) (* (( (ptr) formal←c52536)+26) ) );
      if ((i←v18776 >= noName←c48024)) {
         goto lab←L100107;
         };
      lab←L100110: ;
SOURCE(22034, 33)
      {
         word limit257;
         if (((* (( (ptr) (* ((( (ptr) (* (( (ptr) formal←c52536)+26) ))+1)+(
                  limit257 = (*  (ptr) (* (( (ptr) formal←c52536)+26) ) ),
                  BCK(i←v18776, limit257)
                  )) ))+6) ) == m←v18232)) {
SOURCE(22057, 10)
            return(i←v18776);
            };
         };
      i←v18776 = (i←v18776 + 1);
      if ((i←v18776 < noName←c48024)) {
         goto lab←L100110;
         };
      lab←L100107: ;
      };
SOURCE(22078, 5)
   (void) XR←RaiseUnnamedError();
   }

static word CDsInOrder←P6456(cds←v18440, formal←c52568)
   word cds←v18440;
   word formal←c52568;
   {
   word var←c18484;
   word i←v18820 = 0;
   formal←c52568 = (formal←c52568 - 36);
   /* CDsInOrder: */ 
SOURCE(22195, 296)
SOURCE(22272, 185)
   {
      register word tail←v18864;
      tail←v18864 = cds←v18440;
      lab←L100114: ;
      if ((tail←v18864 != 0)) {
         }
      else {
         goto lab←L100111;
         };
SOURCE(22341, 116)
      lab←L100117: ;
SOURCE(22344, 38)
      if ((i←v18820 >= (*  (ptr) (* (( (ptr) formal←c52568)+26) ) ))) {
SOURCE(22368, 14)
         return(0);
         };
SOURCE(22384, 55)
      {
         word limit258;
         if (((* (( (ptr) (*  (ptr) tail←v18864 ))+1) ) == (* (( (ptr) (* ((( (ptr) (* (( (ptr) formal←c52568)+26) ))+1)+(
                  limit258 = (*  (ptr) (* (( (ptr) formal←c52568)+26) ) ),
                  BCK(i←v18820, limit258)
                  )) ))+6) ))) {
SOURCE(22430, 9)
            i←v18820 = (i←v18820 + 1);
SOURCE(22441, 4)
            goto lab←L100116;
            };
         };
SOURCE(22448, 9)
      i←v18820 = (i←v18820 + 1);
      goto lab←L100117;
      lab←L100116: ;
      tail←v18864 = (* (( (ptr) tail←v18864)+1) );
      goto lab←L100114;
      lab←L100111: ;
      };
SOURCE(22477, 14)
   return(1);
   }

static word SortCharacterDescriptions←P6516(key←v38208, val←v38236, formal←c52632)
   word key←v38208;
   word val←v38236;
   word formal←c52632;
   {
   register ptr gf←c52600 =  (ptr) &globalframe;
   word quit←v38280;
   word cds←v18908;
   word result←v18936 = 0;
   formal←c52632 = (formal←c52632 - 28);
   /* SortCharacterDescriptions: */ 
SOURCE(22494, 1005)
SOURCE(22494, 1005)
   quit←v38280 = 0;
SOURCE(22548, 40)
   cds←v18908 = XR←Narrow(val←v38236, (* (( (ptr) gf←c52600)+16) ));
SOURCE(22627, 30)
   if ((0 != (word) CDsInOrder←P6456(cds←v18908, (word) (( (bPt) formal←c52632)+36)))) {
SOURCE(22651, 6)
      return(quit←v38280);
      };
SOURCE(22659, 51)
   {
      register word i←v18980 = 0;
      register word noName←c48056;
      noName←c48056 = (*  (ptr) (* (( (ptr) formal←c52632)+27) ) );
      if ((i←v18980 >= noName←c48056)) {
         goto lab←L100118;
         };
      lab←L100121: ;
SOURCE(22694, 16)
      {
         word limit259;
         (* ((( (ptr) (* (( (ptr) formal←c52632)+27) ))+1)+(
               limit259 = (*  (ptr) (* (( (ptr) formal←c52632)+27) ) ),
               BCK(i←v18980, limit259)
               )) ) = 0;
         };
      i←v18980 = (i←v18980 + 1);
      if ((i←v18980 < noName←c48056)) {
         goto lab←L100121;
         };
      lab←L100118: ;
      };
SOURCE(22721, 206)
   {
      register word tail←v19024;
      tail←v19024 = cds←v18908;
      lab←L100125: ;
      if ((tail←v19024 != 0)) {
         }
      else {
         goto lab←L100122;
         };
      {
         word j←v19068;
SOURCE(22790, 53)
         j←v19068 = (word) TransformationIndex←P6396((* (( (ptr) (*  (ptr) tail←v19024 ))+1) ), (word) (( (bPt) formal←c52632)+44)
            );
SOURCE(22845, 82)
         {
            word var←c48088;
            var←c48088 = XR←NewObject(8, (* (( (ptr) gf←c52600)+16) ));
            (*  (ptr) var←c48088 ) = (*  (ptr) tail←v19024 );
            {
               word limit260;
               (* (( (ptr) var←c48088)+1) ) = (* ((( (ptr) (* (( (ptr) formal←c52632)+27) ))+1)+(
                     limit260 = (*  (ptr) (* (( (ptr) formal←c52632)+27) ) ),
                     BCK(j←v19068, limit260)
                     )) );
               };
            {
               word limit261;
               (* ((( (ptr) (* (( (ptr) formal←c52632)+27) ))+1)+(
                     limit261 = (*  (ptr) (* (( (ptr) formal←c52632)+27) ) ),
                     BCK(j←v19068, limit261)
                     )) ) = var←c48088;
               };
            };
         };
      tail←v19024 = (* (( (ptr) tail←v19024)+1) );
      goto lab←L100125;
      lab←L100122: ;
      };
SOURCE(22982, 442)
   {
      register word i←v19112;
      i←v19112 = (*  (ptr) (* (( (ptr) formal←c52632)+27) ) );
      if ((0 >= i←v19112)) {
         goto lab←L100126;
         };
      i←v19112 = (i←v19112 - 1);
      lab←L100129: ;
      {
         word cell←v19156;
SOURCE(23028, 40)
         {
            word limit262;
            cell←v19156 = (* ((( (ptr) (* (( (ptr) formal←c52632)+27) ))+1)+(
                  limit262 = (*  (ptr) (* (( (ptr) formal←c52632)+27) ) ),
                  BCK(i←v19112, limit262)
                  )) );
            };
SOURCE(23070, 354)
         if ((cell←v19156 != 0)) {
SOURCE(23091, 74)
            lab←L100132: ;
            if ( ( ((* (( (ptr) cell←v19156)+1) ) != 0) ? ((*  (ptr) cell←v19156 ) == (*  (ptr) (* (( (ptr) cell←v19156)+1) ) )) : 0 ) ) {
               }
            else {
               goto lab←L100130;
               };
SOURCE(23149, 16)
            cell←v19156 = (* (( (ptr) cell←v19156)+1) );
            goto lab←L100132;
            lab←L100130: ;
SOURCE(23176, 205)
            if (((* (( (ptr) cell←v19156)+1) ) != 0)) {
SOURCE(23200, 188)
               {
                  word tieBreaker←v19200;
SOURCE(23202, 61)
                  {
                     W2 var←c0512;
                     (*  (ptr) (word) &var←c0512 ) = key←v38208;
                     (* (( (ptr) (word) &var←c0512) + 1) ) = cell←v19156;
                     {
                        word var←c0513;
                        (void) (XR←RaiseSignal((word) (( (bPt) gf←c52600)+164)/* var←c41400 */ , (word) &var←c0513, (word) &var←c0512));
                        tieBreaker←v19200 = var←c0513;
                        };
                     };
SOURCE(23265, 69)
                  {
                     word var←c48120;
                     var←c48120 = XR←NewObject(8, (* (( (ptr) gf←c52600)+16) ));
                     (*  (ptr) var←c48120 ) = tieBreaker←v19200;
                     cell←v19156 = var←c48120;
                     };
SOURCE(23336, 45)
                  {
                     word limit263;
                     if (((* (( (ptr) (*  (ptr) cell←v19156 ))+1) ) != (* (( (ptr) (* ((( (ptr) (* (( (ptr) formal←c52632)+26) ))+1)+(
/*1*/   limit263 = (*  (ptr) (* (( (ptr) formal←c52632)+26) ) ),
/*1*/   BCK(i←v19112, limit263)
/*1*/   )) ))+6) ))) {
SOURCE(23381, 5)
                        (void) XR←RaiseUnnamedError();
                        };
                     };
                  };
               };
SOURCE(23391, 18)
            (* (( (ptr) cell←v19156)+1) ) = result←v18936;
SOURCE(23411, 13)
            result←v18936 = cell←v19156;
            };
         };
      if ((0 >= i←v19112)) {
         goto lab←L100126;
         };
      i←v19112 = (i←v19112 - 1);
      goto lab←L100129;
      lab←L100126: ;
      };
SOURCE(23438, 61)
   {
      word var←c48152;
      word pd264;
      pd264 = (* (( (ptr) (* (( (ptr) gf←c52600)+156)/* var←c43448 */  ))+9) );
      var←c48152 = (word) ( *( (fPt) ((*  (ptr) pd264 ))))((*  (ptr) (* (( (ptr) formal←c52632)+4) ) ), key←v38208, result←v18936, pd264)
      ;
      };
SOURCE(22494, 1005)
   return(quit←v38280);
   }

static word CanonicalizeEachCharacterDescriptionList←P6576(key←v38340, val←v38368, formal←c52696)
   word key←v38340;
   word val←v38368;
   word formal←c52696;
   {
   register ptr gf←c52664 =  (ptr) &globalframe;
   word quit←v38412;
   word cds←v19244;
   W2 var←c0520;
   word var←c0793;
   formal←c52696 = (formal←c52696 - 20);
   /* CanonicalizeEachCharacterDescriptionList: */ 
SOURCE(23504, 316)
SOURCE(23504, 316)
   quit←v38412 = 0;
SOURCE(23573, 40)
   cds←v19244 = XR←Narrow(val←v38368, (* (( (ptr) gf←c52664)+16) ));
SOURCE(23615, 205)
   {
      word pd265;
      pd265 = (* (( (ptr) (* (( (ptr) gf←c52664)+158)/* var←c44792 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd265 ))))((word) &var←c0520, (* (( (ptr) formal←c52696)+25) ), cds←v19244, pd265);
      };
   var←c0793 = var←c0520.f0;
   if ((0 == var←c0793)) {
SOURCE(23667, 155)
      {
         word canon←v19288;
SOURCE(23669, 69)
         canon←v19288 = (word) CanonicalizeCharacterDescriptions←P6336(cds←v19244, (word) (( (bPt) formal←c52696)+52));
SOURCE(23740, 80)
         if ((canon←v19288 != cds←v19244)) {
SOURCE(23760, 60)
            {
               word var←c48184;
               word pd266;
               pd266 = (* (( (ptr) (* (( (ptr) gf←c52664)+156)/* var←c43448 */  ))+9) );
               var←c48184 = (word) ( *( (fPt) ((*  (ptr) pd266 ))))((*  (ptr) (* (( (ptr) formal←c52696)+4) ) ), key←v38340, canon←v19288, pd266)
               ;
               };
            };
         };
      };
SOURCE(23504, 316)
   return(quit←v38412);
   }

static word SortTransformations←P1740(mTab←v8632)
   word mTab←v8632;
   {
   W8 var←c52728;
   register ptr gf←c52760 =  (ptr) &globalframe;
   word var←c8676;
   /* declaration of var←c48216 skipped */ 
   word n←v19332;
   /* declaration of ftSeq←v19360 skipped */ 
   /* declaration of len←v19388 skipped */ 
   /* SortTransformations: */ 
SOURCE(24676, 802)
   {
      word tmpAddr267;
      tmpAddr267 = (word) (( (ptr) &var←c52728)+4)/* var←c48216 */ ;
      (*  (ptr) tmpAddr267 ) = ( ((word)  (fPt) SortedInsert←P7404) );
      (* (( (ptr) tmpAddr267) + 1) ) = 1;
      };
SOURCE(24747, 29)
   {
      word pd268;
      word idx269;
      pd268 = (* (( (ptr) (* (( (ptr) gf←c52760)+158)/* var←c44792 */  ))+6) );
      n←v19332 = (
         idx269 = (word) ( *( (fPt) ((*  (ptr) pd268 ))))(mTab←v8632, pd268),
         SGNCK(idx269)
         );
      };
SOURCE(24778, 43)
   {
      word var←c48248;
      word var←c48280;
      word var←c48312;
      var←c48248 = BCK(n←v19332, 67108863);
      var←c48280 = ((word) var←c48248 << 2);
      var←c48312 = XR←NewObject((4 + var←c48280), (* (( (ptr) gf←c52760)+40) ));
      (*  (ptr) var←c48312 ) = var←c48248;
      var←c52728.f6/* ftSeq←v19360 */  = var←c48312;
      };
SOURCE(24823, 12)
   var←c52728.f7/* len←v19388 */  = 0;
SOURCE(25413, 48)
   {
      word var←c48344;
      word pd270;
      pd270 = (* (( (ptr) (* (( (ptr) gf←c52760)+158)/* var←c44792 */  ))+13) );
      var←c48344 = (word) ( *( (fPt) ((*  (ptr) pd270 ))))(mTab←v8632, (word) (( (bPt) &var←c52728)+16)/* var←c48216 */ , pd270)
      ;
      };
SOURCE(25463, 15)
   return(var←c52728.f6/* ftSeq←v19360 */ );
   }

static word SortedInsert←P7404(key←v39396, val←v39424, formal←c52824)
   word key←v39396;
   word val←v39424;
   word formal←c52824;
   {
   register ptr gf←c52792 =  (ptr) &globalframe;
   word quit←v39468;
   word m←v19460;
   word f←v19488;
   formal←c52824 = (formal←c52824 - 16);
   /* SortedInsert: */ 
SOURCE(24837, 571)
SOURCE(24837, 571)
   quit←v39468 = 0;
SOURCE(24877, 31)
   m←v19460 = XR←Narrow(val←v39424, (* (( (ptr) gf←c52792)+37) ));
SOURCE(24910, 103)
   if ((m←v19460 == 0)) {
      f←v19488 = (* (( (ptr) gf←c52792)+7)/* nullFactored←v4484 */  );
      }
   else {
      {
         W6 var←c48376;
         word var←c48408;
         {
            word pd271;
            pd271 = (* (( (ptr) (* (( (ptr) gf←c52792)+154)/* var←c43224 */  ))+50) );
            (void) ( *( (fPt) ((*  (ptr) pd271 ))))((word) &var←c48376, m←v19460, pd271);
            };
         var←c48408 = XR←NewObject(28, (* (( (ptr) gf←c52792)+9) ));
         (*  (W6Pt) var←c48408 ) = var←c48376;
         (* (( (ptr) var←c48408)+6) ) = m←v19460;
         f←v19488 = var←c48408;
         };
      };
SOURCE(25015, 135)
   {
      register word i←v19532 = 0;
      register word noName←c48440;
      noName←c48440 = (* (( (ptr) formal←c52824)+7) );
      if ((i←v19532 >= noName←c48440)) {
         goto lab←L100133;
         };
      lab←L100136: ;
      {
         word t←v19576;
SOURCE(25041, 22)
         {
            word limit272;
            t←v19576 = (* ((( (ptr) (* (( (ptr) formal←c52824)+6) ))+1)+(
                  limit272 = (*  (ptr) (* (( (ptr) formal←c52824)+6) ) ),
                  BCK(i←v19532, limit272)
                  )) );
            };
SOURCE(25065, 85)
         {
            word var←c48472;
            var←c48472 = (word) FactoredCompare←P1860(f←v19488, t←v19576);
            switch (var←c48472) {
               case 0: 
SOURCE(25108, 12)
                  {
                     word limit273;
                     (* ((( (ptr) (* (( (ptr) formal←c52824)+6) ))+1)+(
                           limit273 = (*  (ptr) (* (( (ptr) formal←c52824)+6) ) ),
                           BCK(i←v19532, limit273)
                           )) ) = f←v19488;
                     };
SOURCE(25122, 5)
                  f←v19488 = t←v19576;
                  break;
               case 1: 
SOURCE(25139, 11)
                  (void) Debug←P1800(f←v19488, t←v19576);
                  break;
               case 2: 
                  break;
               default: 
SOURCE(25363, 5)
                  (void) XR←RaiseUnnamedError();
                  break;
               };
            };
         };
      i←v19532 = (i←v19532 + 1);
      if ((i←v19532 < noName←c48440)) {
         goto lab←L100136;
         };
      lab←L100133: ;
      };
SOURCE(25379, 14)
   {
      word idx274;
      word limit275;
      (* ((( (ptr) (* (( (ptr) formal←c52824)+6) ))+1)+(
            idx274 = (* (( (ptr) formal←c52824)+7) ),
            limit275 = (*  (ptr) (* (( (ptr) formal←c52824)+6) ) ),
            BCK(idx274, limit275)
            )) ) = f←v19488;
      };
SOURCE(25395, 13)
   (* (( (ptr) formal←c52824)+7) ) = ((* (( (ptr) formal←c52824)+7) ) + 1);
SOURCE(24837, 571)
   return(quit←v39468);
   }

static void Debug←P1800(a←v8736, b←v8764)
   word a←v8736;
   word b←v8764;
   {
   W4 var←c52856;
   /* Debug: */ 
SOURCE(25482, 46)
SOURCE(25510, 18)
SOURCE(25510, 18)
   {
      word var←c01;
      {
         word var←c0794;
         var←c0794 = (word) &var←c52856;
         var←c01 = (word) XR←Enable(( ((word)  (fPt) NoName←Q9624) ), ( ((word)  (fPt) NoName←Q9684) ), var←c0794);
         };
      /* removed trivial cond node */ 
      };
   }

static word NoName←Q9624(formal←c0775)
   word formal←c0775;
   {
SOURCE(25538, 6)
   (void) XR←RaiseUnnamedError();
   /* removed dead code */ 
   }

static word FactoredCompare←P1860(b←v8840, a←v8868)
   word b←v8840;
   word a←v8868;
   {
   register ptr gf←c52888 =  (ptr) &globalframe;
   word c←v8912;
   word var←c48504;
   word s←v41152;
   word t←v41180;
   word var←c48536;
   word s←v41076;
   word t←v41104;
   word var←c48568;
   word s←v41000;
   word t←v41028;
   word var←c48600;
   word s←v40924;
   word t←v40952;
   word var←c48632;
   word s←v40848;
   word t←v40876;
   word var←c48664;
   word s←v40772;
   word t←v40800;
   word var←c48696;
   word s←v40696;
   word t←v40724;
   word var←c48728;
   word s←v40620;
   word t←v40648;
   /* FactoredCompare: */ 
SOURCE(25548, 828)
SOURCE(25548, 828)
   c←v8912 = 0;
SOURCE(25726, 59)
   if ((a←v8868 == 0)) {
SOURCE(25742, 43)
      {
         word idx276;
         return((
            idx276 = (word)  ( (b←v8840 == 0) ? 1 : 2 ) ,
            BCK(idx276, 3)
            ));
         };
      };
SOURCE(25787, 29)
   if ((b←v8840 == 0)) {
SOURCE(25803, 13)
      return(0);
      };
SOURCE(25818, 291)
   {
      float tf277;
      word x278;
      float tf279;
      float tf280;
      float tf281;
      word x282;
      float tf283;
      s←v41152 = (
         tf283 = FMAX(FABS((
                  x278 = (* (( (ptr) a←v8868)+1) ),  *(float*)&x278
                  ), tf277), FABS((
                  x282 = (* (( (ptr) a←v8868)+2) ),  *(float*)&x282
                  ), tf281), tf279, tf280),  *(word*)&tf283
         );
      };
   {
      float tf284;
      word x285;
      float tf286;
      float tf287;
      float tf288;
      word x289;
      float tf290;
      t←v41180 = (
         tf290 = FMAX(FABS((
                  x285 = (* (( (ptr) b←v8840)+1) ),  *(float*)&x285
                  ), tf284), FABS((
                  x289 = (* (( (ptr) b←v8840)+2) ),  *(float*)&x289
                  ), tf288), tf286, tf287),  *(word*)&tf290
         );
      };
SOURCE(25681, 21)
   c←v8912 = (word) CompareReal←P60(s←v41152, t←v41180);
SOURCE(25704, 19)
   var←c48504 =  (unsigned) (c←v8912 != 1);
   if ((0 != var←c48504)
   ) { goto then0291;};
   {
      word x292;
      word x293;
      *(float*)&s←v41076 = (
         x292 = (*  (ptr) a←v8868 ),  *(float*)&x292
         ) + (
         x293 = (* (( (ptr) a←v8868)+3) ),  *(float*)&x293
         );
      };
   {
      word x294;
      word x295;
      *(float*)&t←v41104 = (
         x294 = (*  (ptr) b←v8840 ),  *(float*)&x294
         ) + (
         x295 = (* (( (ptr) b←v8840)+3) ),  *(float*)&x295
         );
      };
SOURCE(25681, 21)
   c←v8912 = (word) CompareReal←P60(s←v41076, t←v41104);
SOURCE(25704, 19)
   var←c48536 =  (unsigned) (c←v8912 != 1);
   if ((0 != var←c48536)
   ) { goto then0291;};
   s←v41000 = (* (( (ptr) a←v8868)+1) );
   t←v41028 = (* (( (ptr) b←v8840)+1) );
SOURCE(25681, 21)
   c←v8912 = (word) CompareReal←P60(s←v41000, t←v41028);
SOURCE(25704, 19)
   var←c48568 =  (unsigned) (c←v8912 != 1);
   if ((0 != var←c48568)
   ) { goto then0291;};
   s←v40924 = (* (( (ptr) a←v8868)+2) );
   t←v40952 = (* (( (ptr) b←v8840)+2) );
SOURCE(25681, 21)
   c←v8912 = (word) CompareReal←P60(s←v40924, t←v40952);
SOURCE(25704, 19)
   var←c48600 =  (unsigned) (c←v8912 != 1);
   if ((0 != var←c48600)
   ) { goto then0291;};
   s←v40848 = (*  (ptr) a←v8868 );
   t←v40876 = (*  (ptr) b←v8840 );
SOURCE(25681, 21)
   c←v8912 = (word) CompareReal←P60(s←v40848, t←v40876);
SOURCE(25704, 19)
   var←c48632 =  (unsigned) (c←v8912 != 1);
   if ((0 != var←c48632)
   ) { goto then0291;};
   s←v40772 = (* (( (ptr) a←v8868)+3) );
   t←v40800 = (* (( (ptr) b←v8840)+3) );
SOURCE(25681, 21)
   c←v8912 = (word) CompareReal←P60(s←v40772, t←v40800);
SOURCE(25704, 19)
   var←c48664 =  (unsigned) (c←v8912 != 1);
   if ((0 != var←c48664)
   ) { goto then0291;};
   s←v40696 = (* (( (ptr) a←v8868)+4) );
   t←v40724 = (* (( (ptr) b←v8840)+4) );
SOURCE(25681, 21)
   c←v8912 = (word) CompareReal←P60(s←v40696, t←v40724);
SOURCE(25704, 19)
   var←c48696 =  (unsigned) (c←v8912 != 1);
   if ((0 != var←c48696)
   ) { goto then0291;};
   s←v40620 = (* (( (ptr) a←v8868)+5) );
   t←v40648 = (* (( (ptr) b←v8840)+5) );
SOURCE(25681, 21)
   c←v8912 = (word) CompareReal←P60(s←v40620, t←v40648);
SOURCE(25704, 19)
   var←c48728 =  (unsigned) (c←v8912 != 1);
   if (((0 != var←c48728)
   )) {
      then0291: ;
SOURCE(26103, 6)
      return(c←v8912);
      };
SOURCE(26111, 58)
   {
      word pd296;
      pd296 = (* (( (ptr) (* (( (ptr) gf←c52888)+154)/* var←c43224 */  ))+53) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd296 ))))((* (( (ptr) a←v8868)+6) ), (* (( (ptr) b←v8840)+6) ), pd296))) {
SOURCE(26156, 13)
         return(1);
         };
      };
SOURCE(26171, 205)
   return(2);
   }

static word Read←P1920(filename←v8972)
   word filename←v8972;
   {
   register ptr gf←c52920 =  (ptr) &globalframe;
   word fdTable←v9016;
   word stream←v19796;
   word data←v19824;
   /* Read: */ 
SOURCE(26379, 228)
SOURCE(26379, 228)
   fdTable←v9016 = 0;
SOURCE(26450, 63)
   {
      word pd297;
      pd297 = (* (( (ptr) (* (( (ptr) gf←c52920)+160)/* var←c48760 */  ))+13) );
      stream←v19796 = (word) ( *( (fPt) ((*  (ptr) pd297 ))))(filename←v8972, pd297);
      };
SOURCE(26515, 31)
   {
      word pd298;
      pd298 = (* (( (ptr) (* (( (ptr) gf←c52920)+161)/* var←c48792 */  ))+4) );
      data←v19824 = (word) ( *( (fPt) ((*  (ptr) pd298 ))))(stream←v19796, pd298);
      };
SOURCE(26548, 41)
   fdTable←v9016 = (word) FDTableFromFDTypefaceData←P1980(data←v19824);
SOURCE(26591, 16)
   {
      word pd299;
      pd299 = (* (( (ptr) (* (( (ptr) gf←c52920)+162)/* var←c48824 */  ))+28) );
      (void) ( *( (fPt) ((*  (ptr) pd299 ))))(stream←v19796, 0, pd299);
      };
SOURCE(26379, 228)
   return(fdTable←v9016);
   }

static word FDTableFromFDTypefaceData←P1980(data←v9076)
   word data←v9076;
   {
   word var←c9120;
   word fdTable←v19868;
   /* FDTableFromFDTypefaceData: */ 
SOURCE(26613, 1588)
SOURCE(26687, 27)
   fdTable←v19868 = (word) Create←P120();
SOURCE(26716, 1430)
   {
      register word set←v19912 = 0;
      lab←L100152: ;
SOURCE(26747, 1399)
      {
         register word charRuns←v19956;
         charRuns←v19956 = (* ((( (ptr) data←v9076)+16)+set←v19912) );
         lab←L100156: ;
         if ((charRuns←v19956 != 0)) {
            }
         else {
            goto lab←L100153;
            };
         {
            word offset←v20000;
SOURCE(26830, 24)
            offset←v20000 = ((word) set←v19912 << 8);
SOURCE(26856, 1290)
            {
               register word tc←v20044 = 0;
               register word noName←c48856;
               noName←c48856 = (* (( (ptr) charRuns←v19956)+3) );
               if ((tc←v20044 >= noName←c48856)) {
                  goto lab←L100157;
                  };
               lab←L100160: ;
               {
                  W2 charRunEntry←v20088;
                  word charInfoRun←v20116;
                  W12 cdr←v20144;
                  word delta←v20172;
                  word i←v20200 = 0;
SOURCE(26891, 41)
                  {
                     word limit300;
                     charRunEntry←v20088 = (* (( (W2Pt) (( (ptr) charRuns←v19956)+4))+(
                           limit300 = (* (( (ptr) charRuns←v19956)+3) ),
                           BCK(tc←v20044, limit300)
                           )) );
                     };
SOURCE(26934, 77)
                  {
                     word var←c48888;
                     var←c48888 = (* (( (ptr) data←v9076)+13) );
                     {
                        word idx301;
                        word limit302;
                        charInfoRun←v20116 = (* ((( (ptr) var←c48888)+1)+(
/*1*/   idx301 = (word) charRunEntry←v20088.f1,
/*1*/   limit302 = (*  (ptr) var←c48888 ),
/*1*/   BCK(idx301, limit302)
/*1*/   )) );
                        };
                     };
SOURCE(27013, 323)
                  {
                     word var←c48952;
                     var←c48952 = (* (( (ptr) data←v9076)+10) );
                     {
                        word idx303;
                        word limit304;
                        (*  (ptr) &cdr←v20144 ) = (* ((( (ptr) var←c48952)+1)+(
/*1*/   idx303 = (word) charRunEntry←v20088.f0,
/*1*/   limit304 = (*  (ptr) var←c48952 ),
/*1*/   BCK(idx303, limit304)
/*1*/   )) );
                        };
                     };
                  {
                     word var←c48984;
                     var←c48984 = (* (( (ptr) data←v9076)+9) );
                     {
                        word limit305;
                        (* (( (ptr) &cdr←v20144)+1) ) = (* ((( (ptr) var←c48984)+1)+(
/*1*/   limit305 = (*  (ptr) var←c48984 ),
/*1*/   BCK(tc←v20044, limit305)
/*1*/   )) );
                        };
                     };
                  (* (( (ptr) &cdr←v20144)+2) ) = (*  (ptr) charInfoRun←v20116 );
                  (* (( (ptr) &cdr←v20144)+3) ) = (* (( (ptr) charInfoRun←v20116)+1) );
                  (* (( (ptr) &cdr←v20144)+4) ) = (*  (ptr) &fc82 );
                  (* (( (ptr) &cdr←v20144)+5) ) = (*  (ptr) &fc82 );
                  (* (( (ptr) &cdr←v20144)+6) ) = (*  (ptr) &fc82 );
                  (* (( (ptr) &cdr←v20144)+7) ) = (*  (ptr) &fc82 );
                  (* (( (ptr) &cdr←v20144)+8) ) = (*  (ptr) &fc82 );
                  (* (( (ptr) &cdr←v20144)+9) ) = (*  (ptr) &fc82 );
                  {
                     word var←c49016;
                     var←c49016 = (* (( (ptr) data←v9076)+11) );
                     {
                        word idx306;
                        word limit307;
                        (* (( (ptr) &cdr←v20144)+10) ) = (* ((( (ptr) var←c49016)+1)+(
/*1*/   idx306 = (* (( (ptr) charInfoRun←v20116)+2) ),
/*1*/   limit307 = (*  (ptr) var←c49016 ),
/*1*/   BCK(idx306, limit307)
/*1*/   )) );
                        };
                     };
                  (* (( (ptr) &cdr←v20144)+11) ) = 0;
SOURCE(27338, 50)
                  delta←v20172 =  ( ((* (( (ptr) charInfoRun←v20116)+3) ) == 1) ? 0 : 1 ) ;
SOURCE(27402, 744)
                  {
                     register word code←v20244;
                     register word noName←c49048;
                     code←v20244 = (* (( (ptr) charRuns←v19956)+1) );
                     noName←c49048 = (* (( (ptr) charRuns←v19956)+2) );
                     if ((code←v20244 > noName←c49048)) {
                        goto lab←L100161;
                        };
                     lab←L100164: ;
SOURCE(27450, 625)
                     {
                        W3 var←c49080;
                        {
                           word limit308;
                           var←c49080 = (* (( (W3Pt) (( (ptr) charInfoRun←v20116)+4))+(
/*1*/      limit308 = (* (( (ptr) charInfoRun←v20116)+3) ),
/*1*/      BCK(i←v20200, limit308)
/*1*/      )) );
                           };
                        {
                           word var←c49336;
                           var←c49336 = var←c49080.f0;
                           if ((var←c49336 == 0)) {
/*1*/   {
/*1*/      W3 info←v20288;
/*1*/      info←v20288 = var←c49080;
SOURCE(27508, 59)
/*1*/      {
/*1*/         word var←c49112;
/*1*/         var←c49112 = (* (( (ptr) data←v9076)+8) );
/*1*/         {
/*1*/            word idx309;
/*1*/            word limit310;
/*1*/            (* (( (ptr) &cdr←v20144)+4) ) = (* ((( (ptr) var←c49112)+1)+(
/*1*/                  idx309 = (word)  (unsigned) (* (( (bPt) &info←v20288)+8) ),
/*1*/                  limit310 = (*  (ptr) var←c49112 ),
/*1*/                  BCK(idx309, limit310)
/*1*/                  )) );
/*1*/            };
/*1*/         };
SOURCE(27569, 59)
/*1*/      {
/*1*/         word var←c49144;
/*1*/         var←c49144 = (* (( (ptr) data←v9076)+8) );
/*1*/         {
/*1*/            word idx311;
/*1*/            word limit312;
/*1*/            (* (( (ptr) &cdr←v20144)+5) ) = (* ((( (ptr) var←c49144)+1)+(
/*1*/                  idx311 = (word) ( (((unsigned)(* (( (ptr) &info←v20288)+2) ) << 8) >> 8) ),
/*1*/                  limit312 = (*  (ptr) var←c49144 ),
/*1*/                  BCK(idx311, limit312)
/*1*/                  )) );
/*1*/            };
/*1*/         };
SOURCE(27630, 64)
/*1*/      {
/*1*/         word var←c49176;
/*1*/         var←c49176 = (* (( (ptr) data←v9076)+4) );
/*1*/         {
/*1*/            word idx313;
/*1*/            word limit314;
/*1*/            (* (( (ptr) &cdr←v20144)+6) ) = (* ((( (ptr) var←c49176)+1)+(
/*1*/                  idx313 = (word)  (unsigned) (* (( (bPt) &info←v20288)+4) ),
/*1*/                  limit314 = (*  (ptr) var←c49176 ),
/*1*/                  BCK(idx313, limit314)
/*1*/                  )) );
/*1*/            };
/*1*/         };
SOURCE(27696, 67)
/*1*/      {
/*1*/         word var←c49208;
/*1*/         var←c49208 = (* (( (ptr) data←v9076)+5) );
/*1*/         {
/*1*/            word idx315;
/*1*/            word limit316;
/*1*/            (* (( (ptr) &cdr←v20144)+7) ) = (* ((( (ptr) var←c49208)+1)+(
/*1*/                  idx315 = (word)  (unsigned) (* (( (bPt) &info←v20288)+5) ),
/*1*/                  limit316 = (*  (ptr) var←c49208 ),
/*1*/                  BCK(idx315, limit316)
/*1*/                  )) );
/*1*/            };
/*1*/         };
SOURCE(27765, 55)
/*1*/      {
/*1*/         word var←c49240;
/*1*/         var←c49240 = (* (( (ptr) data←v9076)+6) );
/*1*/         {
/*1*/            word idx317;
/*1*/            word limit318;
/*1*/            (* (( (ptr) &cdr←v20144)+8) ) = (* ((( (ptr) var←c49240)+1)+(
/*1*/                  idx317 = (word)  (unsigned) (* (( (bPt) &info←v20288)+6) ),
/*1*/                  limit318 = (*  (ptr) var←c49240 ),
/*1*/                  BCK(idx317, limit318)
/*1*/                  )) );
/*1*/            };
/*1*/         };
SOURCE(27822, 52)
/*1*/      {
/*1*/         word var←c49272;
/*1*/         var←c49272 = (* (( (ptr) data←v9076)+7) );
/*1*/         {
/*1*/            word idx319;
/*1*/            word limit320;
/*1*/            (* (( (ptr) &cdr←v20144)+9) ) = (* ((( (ptr) var←c49272)+1)+(
/*1*/                  idx319 = (word)  (unsigned) (* (( (bPt) &info←v20288)+7) ),
/*1*/                  limit320 = (*  (ptr) var←c49272 ),
/*1*/                  BCK(idx319, limit320)
/*1*/                  )) );
/*1*/            };
/*1*/         };
SOURCE(27876, 18)
/*1*/      (* (( (ptr) &cdr←v20144)+11) ) = 0;
/*1*/      };
/*1*/   }
                           else {
/*1*/   if ((var←c49336 == 1)) {
/*1*/      {
/*1*/         W2 info←v20332;
/*1*/         info←v20332 = (*  (W2Pt) &var←c49080 );
SOURCE(27925, 152)
/*1*/         {
/*1*/            word v←v20376;
SOURCE(27927, 65)
/*1*/            {
/*1*/               word var←c49304;
/*1*/               var←c49304 = (* (( (ptr) data←v9076)+12) );
/*1*/               {
/*1*/                  word idx321;
/*1*/                  word limit322;
/*1*/                  v←v20376 = (* ((( (ptr) var←c49304)+1)+(
/*1*/                        idx321 = (word) info←v20332.f1,
/*1*/                        limit322 = (*  (ptr) var←c49304 ),
/*1*/                        BCK(idx321, limit322)
/*1*/                        )) );
/*1*/                  };
/*1*/               };
SOURCE(27994, 29)
/*1*/            (*  (W2Pt) (( (ptr) &cdr←v20144)+4) ) = (*  (W2Pt) (( (ptr) v←v20376)+4) );
SOURCE(28025, 23)
/*1*/            (*  (W4Pt) (( (ptr) &cdr←v20144)+6) ) = (*  (W4Pt) v←v20376 );
SOURCE(28050, 25)
/*1*/            (* (( (ptr) &cdr←v20144)+11) ) = (* (( (ptr) v←v20376)+6) );
/*1*/            };
/*1*/         };
/*1*/      }
/*1*/   else {
SOURCE(28091, 5)
/*1*/      (void) XR←RaiseUnnamedError();
/*1*/      };
/*1*/   };
                           };
                        };
SOURCE(28098, 33)
                     (void) Insert←P180(fdTable←v19868, (offset←v20000 + code←v20244), cdr←v20144);
SOURCE(28133, 13)
                     i←v20200 = SGNCK((i←v20200 + delta←v20172));
                     if ((code←v20244 >= noName←c49048)) {
                        goto lab←L100161;
                        };
                     code←v20244 = (code←v20244 + 1);
                     goto lab←L100164;
                     lab←L100161: ;
                     };
                  };
               tc←v20044 = (tc←v20044 + 1);
               if ((tc←v20044 < noName←c48856)) {
                  goto lab←L100160;
                  };
               lab←L100157: ;
               };
            };
         charRuns←v19956 = (*  (ptr) charRuns←v19956 );
         goto lab←L100156;
         lab←L100153: ;
         };
      if ((set←v19912 >= 255)) {
         goto lab←L100149;
         };
      set←v19912 = (set←v19912 + 1);
      goto lab←L100152;
      lab←L100149: ;
      };
SOURCE(28184, 17)
   return(fdTable←v19868);
   }

static void Write←P2040(fdTable←v9180, filename←v9208)
   word fdTable←v9180;
   word filename←v9208;
   {
   /* Write: */ 
SOURCE(28204, 164)
SOURCE(28267, 21)
   (void) Canonicalize←P1680(fdTable←v9180);
SOURCE(28290, 78)
   {
      word var←c49368;
      var←c49368 = (word) FDTypefaceDataFromCanonicalizedFDTable←P960(fdTable←v9180);
      (void) WriteFDTypefaceData←P2100(var←c49368, filename←v9208);
      };
   }

static void WriteFDTypefaceData←P2100(data←v9268, filename←v9296)
   word data←v9268;
   word filename←v9296;
   {
   register ptr gf←c52952 =  (ptr) &globalframe;
   word stream←v20420;
   /* WriteFDTypefaceData: */ 
SOURCE(28374, 213)
SOURCE(28462, 64)
   {
      word pd323;
      pd323 = (* (( (ptr) (* (( (ptr) gf←c52952)+160)/* var←c48760 */  ))+18) );
      stream←v20420 = (word) ( *( (fPt) ((*  (ptr) pd323 ))))(filename←v9296, pd323);
      };
SOURCE(28528, 41)
   (void) WriteFDTypefaceDataToStream←P2160(data←v9268, stream←v20420);
SOURCE(28571, 16)
   {
      word pd324;
      pd324 = (* (( (ptr) (* (( (ptr) gf←c52952)+162)/* var←c48824 */  ))+28) );
      (void) ( *( (fPt) ((*  (ptr) pd324 ))))(stream←v20420, 0, pd324);
      };
   }

static void WriteFDTypefaceDataToStream←P2160(data←v9356, stream←v9384)
   word data←v9356;
   word stream←v9384;
   {
   word nSets←v20464 = 0;
   /* WriteFDTypefaceDataToStream: */ 
SOURCE(28593, 1030)
SOURCE(28679, 27)
   (void) PutCARD32←P3120(stream←v9384, 436038147);
SOURCE(28723, 36)
   (void) PutExtents←P2220(stream←v9384, (*  (W4Pt) data←v9356 ));
SOURCE(28774, 42)
   (void) PutRealSeq←P2280(stream←v9384, (* (( (ptr) data←v9356)+4) ));
SOURCE(28818, 43)
   (void) PutRealSeq←P2280(stream←v9384, (* (( (ptr) data←v9356)+5) ));
SOURCE(28863, 39)
   (void) PutRealSeq←P2280(stream←v9384, (* (( (ptr) data←v9356)+6) ));
SOURCE(28904, 38)
   (void) PutRealSeq←P2280(stream←v9384, (* (( (ptr) data←v9356)+7) ));
SOURCE(28944, 42)
   (void) PutRealSeq←P2280(stream←v9384, (* (( (ptr) data←v9356)+8) ));
SOURCE(28988, 62)
   (void) PutTransformationSeq←P2340(stream←v9384, (* (( (ptr) data←v9356)+9) ));
SOURCE(29052, 48)
   (void) PutTypefaceCellSeq←P2460(stream←v9384, (* (( (ptr) data←v9356)+10) ));
SOURCE(29102, 59)
   (void) PutTransformationSeq←P2340(stream←v9384, (* (( (ptr) data←v9356)+11) ));
SOURCE(29163, 46)
   (void) PutCharInfoRunSeq←P2520(stream←v9384, (* (( (ptr) data←v9356)+13) ));
SOURCE(29211, 56)
   (void) PutOverflowCharInfoSeq←P2640(stream←v9384, (* (( (ptr) data←v9356)+12) ));
SOURCE(29269, 34)
   (void) PutPropList←P2820(stream←v9384, (* (( (ptr) data←v9356)+14) ));
SOURCE(29305, 108)
   {
      register word c←v20508 = 0;
      lab←L100168: ;
      {
         word charRuns←v20552;
SOURCE(29334, 37)
         charRuns←v20552 = (* ((( (ptr) data←v9356)+16)+c←v20508) );
SOURCE(29373, 40)
         if ((charRuns←v20552 != 0)) {
SOURCE(29398, 15)
            nSets←v20464 = (nSets←v20464 + 1);
            };
         };
      if ((c←v20508 >= 255)) {
         goto lab←L100165;
         };
      c←v20508 = (c←v20508 + 1);
      goto lab←L100168;
      lab←L100165: ;
      };
SOURCE(29427, 23)
   (void) PutCount←P3240(stream←v9384, nSets←v20464);
SOURCE(29452, 171)
   {
      register word c←v20596 = 0;
      lab←L100172: ;
      {
         word charRuns←v20640;
SOURCE(29481, 37)
         charRuns←v20640 = (* ((( (ptr) data←v9356)+16)+c←v20596) );
SOURCE(29520, 103)
         if ((charRuns←v20640 != 0)) {
SOURCE(29545, 19)
            (void) PutCount←P3240(stream←v9384, c←v20596);
SOURCE(29581, 29)
            (void) PutCharRuns←P2940(stream←v9384, charRuns←v20640);
            };
         };
      if ((c←v20596 >= 255)) {
         goto lab←L100169;
         };
      c←v20596 = (c←v20596 + 1);
      goto lab←L100172;
      lab←L100169: ;
      };
   }

static void PutExtents←P2220(stream←v9444, extents←v9472)
   word stream←v9444;
   W4 extents←v9472;
   {
   /* PutExtents: */ 
SOURCE(29641, 209)
SOURCE(29710, 35)
   (void) PutREAL←P3480(stream←v9444, extents←v9472.f0);
SOURCE(29747, 36)
   (void) PutREAL←P3480(stream←v9444, extents←v9472.f1);
SOURCE(29785, 32)
   (void) PutREAL←P3480(stream←v9444, extents←v9472.f2);
SOURCE(29819, 31)
   (void) PutREAL←P3480(stream←v9444, extents←v9472.f3);
   }

static void PutRealSeq←P2280(stream←v9532, s←v9560)
   word stream←v9532;
   word s←v9560;
   {
   /* PutRealSeq: */ 
SOURCE(29856, 157)
SOURCE(29909, 24)
   (void) PutCount←P3240(stream←v9532, (*  (ptr) s←v9560 ));
SOURCE(29935, 78)
   {
      register word i←v20684 = 0;
      register word noName←c49400;
      noName←c49400 = (*  (ptr) s←v9560 );
      if ((i←v20684 >= noName←c49400)) {
         goto lab←L100173;
         };
      lab←L100176: ;
SOURCE(29979, 21)
      {
         word limit325;
         (void) PutREAL←P3480(stream←v9532, (* ((( (ptr) s←v9560)+1)+(
                  limit325 = (*  (ptr) s←v9560 ),
                  BCK(i←v20684, limit325)
                  )) ));
         };
      i←v20684 = (i←v20684 + 1);
      if ((i←v20684 < noName←c49400)) {
         goto lab←L100176;
         };
      lab←L100173: ;
      };
   }

static void PutTransformationSeq←P2340(stream←v9620, s←v9648)
   word stream←v9620;
   word s←v9648;
   {
   /* PutTransformationSeq: */ 
SOURCE(30028, 187)
SOURCE(30101, 24)
   (void) PutCount←P3240(stream←v9620, (*  (ptr) s←v9648 ));
SOURCE(30127, 88)
   {
      register word i←v20728 = 0;
      register word noName←c49432;
      noName←c49432 = (*  (ptr) s←v9648 );
      if ((i←v20728 >= noName←c49432)) {
         goto lab←L100177;
         };
      lab←L100180: ;
SOURCE(30171, 31)
      {
         word limit326;
         (void) PutTransformation←P2400(stream←v9620, (* ((( (ptr) s←v9648)+1)+(
                  limit326 = (*  (ptr) s←v9648 ),
                  BCK(i←v20728, limit326)
                  )) ));
         };
      i←v20728 = (i←v20728 + 1);
      if ((i←v20728 < noName←c49432)) {
         goto lab←L100180;
         };
      lab←L100177: ;
      };
   }

static void PutTransformation←P2400(stream←v9708, m←v9736)
   word stream←v9708;
   word m←v9736;
   {
   /* PutTransformation: */ 
SOURCE(30230, 261)
SOURCE(30297, 194)
   if ((m←v9736 == 0)) {
SOURCE(30313, 25)
      (void) PutCount←P3240(stream←v9708, 0);
      }
   else {
SOURCE(30340, 19)
      (void) PutCount←P3240(stream←v9708, 6);
SOURCE(30361, 20)
      (void) PutREAL←P3480(stream←v9708, (*  (ptr) m←v9736 ));
SOURCE(30383, 20)
      (void) PutREAL←P3480(stream←v9708, (* (( (ptr) m←v9736)+1) ));
SOURCE(30405, 20)
      (void) PutREAL←P3480(stream←v9708, (* (( (ptr) m←v9736)+2) ));
SOURCE(30427, 20)
      (void) PutREAL←P3480(stream←v9708, (* (( (ptr) m←v9736)+3) ));
SOURCE(30449, 20)
      (void) PutREAL←P3480(stream←v9708, (* (( (ptr) m←v9736)+4) ));
SOURCE(30471, 20)
      (void) PutREAL←P3480(stream←v9708, (* (( (ptr) m←v9736)+5) ));
      };
   }

static void PutTypefaceCellSeq←P2460(stream←v9796, s←v9824)
   word stream←v9796;
   word s←v9824;
   {
   /* PutTypefaceCellSeq: */ 
SOURCE(30500, 181)
SOURCE(30569, 24)
   (void) PutCount←P3240(stream←v9796, (*  (ptr) s←v9824 ));
SOURCE(30595, 86)
   {
      register word i←v20772 = 0;
      register word noName←c49464;
      noName←c49464 = (*  (ptr) s←v9824 );
      if ((i←v20772 >= noName←c49464)) {
         goto lab←L100181;
         };
      lab←L100184: ;
SOURCE(30639, 29)
      {
         word limit327;
         (void) PutTypefaceCell←P2580(stream←v9796, (* ((( (ptr) s←v9824)+1)+(
                  limit327 = (*  (ptr) s←v9824 ),
                  BCK(i←v20772, limit327)
                  )) ));
         };
      i←v20772 = (i←v20772 + 1);
      if ((i←v20772 < noName←c49464)) {
         goto lab←L100184;
         };
      lab←L100181: ;
      };
   }

static void PutCharInfoRunSeq←P2520(stream←v9884, s←v9912)
   word stream←v9884;
   word s←v9912;
   {
   /* PutCharInfoRunSeq: */ 
SOURCE(30696, 178)
SOURCE(30763, 24)
   (void) PutCount←P3240(stream←v9884, (*  (ptr) s←v9912 ));
SOURCE(30789, 85)
   {
      register word i←v20816 = 0;
      register word noName←c49496;
      noName←c49496 = (*  (ptr) s←v9912 );
      if ((i←v20816 >= noName←c49496)) {
         goto lab←L100185;
         };
      lab←L100188: ;
SOURCE(30833, 28)
      {
         word limit328;
         (void) PutCharInfoRun←P2880(stream←v9884, (* ((( (ptr) s←v9912)+1)+(
                  limit328 = (*  (ptr) s←v9912 ),
                  BCK(i←v20816, limit328)
                  )) ));
         };
      i←v20816 = (i←v20816 + 1);
      if ((i←v20816 < noName←c49496)) {
         goto lab←L100188;
         };
      lab←L100185: ;
      };
   }

static void PutTypefaceCell←P2580(stream←v9972, s←v10000)
   word stream←v9972;
   word s←v10000;
   {
   register ptr gf←c52984 =  (ptr) &globalframe;
   /* PutTypefaceCell: */ 
SOURCE(30889, 185)
SOURCE(30952, 41)
   (void) PutCARD32←P3120(stream←v9972, (* (( (ptr) s←v10000)+2) ));
SOURCE(30995, 33)
   (void) PutIdentifier←P3300(stream←v9972, (*  (ptr) s←v10000 ));
SOURCE(31030, 44)
   {
      word var←c49528;
      {
         word pd329;
         pd329 = (* (( (ptr) (* (( (ptr) gf←c52984)+163)/* var←c49560 */  ))+9) );
         var←c49528 = (word) ( *( (fPt) ((*  (ptr) pd329 ))))((* ((( (ptr) s←v10000)+3)) ), pd329);
         };
      (void) PutIdentifier←P3300(stream←v9972, var←c49528);
      };
   }

static void PutOverflowCharInfoSeq←P2640(stream←v10060, s←v10088)
   word stream←v10060;
   word s←v10088;
   {
   /* PutOverflowCharInfoSeq: */ 
SOURCE(31080, 192)
SOURCE(31157, 24)
   (void) PutCount←P3240(stream←v10060, (*  (ptr) s←v10088 ));
SOURCE(31183, 89)
   {
      register word i←v20860 = 0;
      register word noName←c49592;
      noName←c49592 = (*  (ptr) s←v10088 );
      if ((i←v20860 >= noName←c49592)) {
         goto lab←L100189;
         };
      lab←L100192: ;
SOURCE(31227, 32)
      {
         word limit330;
         (void) PutVerboseCharInfo←P2700(stream←v10060, (* ((( (ptr) s←v10088)+1)+(
                  limit330 = (*  (ptr) s←v10088 ),
                  BCK(i←v20860, limit330)
                  )) ));
         };
      i←v20860 = (i←v20860 + 1);
      if ((i←v20860 < noName←c49592)) {
         goto lab←L100192;
         };
      lab←L100189: ;
      };
   }

static void PutVerboseCharInfo←P2700(stream←v10148, s←v10176)
   word stream←v10148;
   word s←v10176;
   {
   /* PutVerboseCharInfo: */ 
SOURCE(31287, 161)
SOURCE(31356, 29)
   (void) PutExtents←P2220(stream←v10148, (*  (W4Pt) s←v10176 ));
SOURCE(31387, 28)
   (void) PutVEC←P2760(stream←v10148, (*  (W2Pt) (( (ptr) s←v10176)+4) ));
SOURCE(31417, 31)
   (void) PutPropList←P2820(stream←v10148, (* (( (ptr) s←v10176)+6) ));
   }

static void PutVEC←P2760(stream←v10236, v←v10264)
   word stream←v10236;
   W2 v←v10264;
   {
   /* PutVEC: */ 
SOURCE(31454, 95)
SOURCE(31507, 20)
   (void) PutREAL←P3480(stream←v10236, v←v10264.f0);
SOURCE(31529, 20)
   (void) PutREAL←P3480(stream←v10236, v←v10264.f1);
   }

static void PutPropList←P2820(stream←v10324, props←v10352)
   word stream←v10324;
   word props←v10352;
   {
   /* PutPropList: */ 
SOURCE(31555, 109)
SOURCE(31619, 45)
   if ((props←v10352 == 0)) {
SOURCE(31639, 25)
      (void) PutCount←P3240(stream←v10324, 0);
      }
   else {
SOURCE(31664, 5)
      (void) XR←RaiseUnnamedError();
      };
   }

static void PutCharInfoRun←P2880(stream←v10412, charInfoRun←v10440)
   word stream←v10412;
   word charInfoRun←v10440;
   {
   /* PutCharInfoRun: */ 
SOURCE(31692, 806)
SOURCE(31763, 43)
   (void) PutInteger←P3360(stream←v10412, (*  (ptr) charInfoRun←v10440 ));
SOURCE(31808, 83)
   (void) PutBYTE←P3180(stream←v10412, (((word) ( (((unsigned)(* (( (ptr) charInfoRun←v10440)+1) ) << 1) >> 1) ) << 1) +  (unsigned) (*((int*)charInfoRun←v10440 + 1)<0)))
   ;
SOURCE(31893, 43)
   (void) PutCount←P3240(stream←v10412, (* (( (ptr) charInfoRun←v10440)+2) ));
SOURCE(31938, 34)
   (void) PutCount←P3240(stream←v10412, (* (( (ptr) charInfoRun←v10440)+3) ));
SOURCE(31974, 524)
   {
      register word i←v20904 = 0;
      register word noName←c49624;
      noName←c49624 = (* (( (ptr) charInfoRun←v10440)+3) );
      if ((i←v20904 >= noName←c49624)) {
         goto lab←L100193;
         };
      lab←L100196: ;
SOURCE(32028, 436)
      {
         W3 var←c49656;
         {
            word limit331;
            var←c49656 = (* (( (W3Pt) (( (ptr) charInfoRun←v10440)+4))+(
                  limit331 = (* (( (ptr) charInfoRun←v10440)+3) ),
                  BCK(i←v20904, limit331)
                  )) );
            };
         {
            word var←c49688;
            var←c49688 = var←c49656.f0;
            if ((var←c49688 == 0)) {
               {
                  W3 info←v20948;
                  info←v20948 = var←c49656;
SOURCE(32086, 32)
                  (void) PutBYTE←P3180(stream←v10412,  (unsigned) (* (( (bPt) &info←v20948)+4) ));
SOURCE(32167, 33)
                  (void) PutBYTE←P3180(stream←v10412,  (unsigned) (* (( (bPt) &info←v20948)+5) ));
SOURCE(32202, 29)
                  (void) PutBYTE←P3180(stream←v10412,  (unsigned) (* (( (bPt) &info←v20948)+6) ));
SOURCE(32233, 28)
                  (void) PutBYTE←P3180(stream←v10412,  (unsigned) (* (( (bPt) &info←v20948)+7) ));
SOURCE(32263, 33)
                  (void) PutBYTE←P3180(stream←v10412,  (unsigned) (* (( (bPt) &info←v20948)+8) ));
SOURCE(32298, 33)
                  (void) PutBYTE←P3180(stream←v10412, ( (((unsigned)(* (( (ptr) &info←v20948)+2) ) << 8) >> 8) ));
                  };
               }
            else {
               if ((var←c49688 == 1)) {
                  {
                     W2 info←v20992;
                     info←v20992 = (*  (W2Pt) &var←c49656 );
SOURCE(32364, 20)
                     (void) PutBYTE←P3180(stream←v10412, 255);
SOURCE(32428, 36)
                     (void) PutCount←P3240(stream←v10412, info←v20992.f1);
                     };
                  }
               else {
SOURCE(32480, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         };
      i←v20904 = (i←v20904 + 1);
      if ((i←v20904 < noName←c49624)) {
         goto lab←L100196;
         };
      lab←L100193: ;
      };
   }

static void PutCharRuns←P2940(stream←v10500, charRuns←v10528)
   word stream←v10500;
   word charRuns←v10528;
   {
   word count←v21036 = 0;
   /* PutCharRuns: */ 
SOURCE(32513, 532)
SOURCE(32592, 78)
   {
      register word tail←v21080;
      tail←v21080 = charRuns←v10528;
      lab←L100200: ;
      if ((tail←v21080 != 0)) {
         }
      else {
         goto lab←L100197;
         };
SOURCE(32653, 17)
      count←v21036 = (count←v21036 + 1);
      tail←v21080 = (*  (ptr) tail←v21080 );
      goto lab←L100200;
      lab←L100197: ;
      };
SOURCE(32681, 23)
   (void) PutCount←P3240(stream←v10500, count←v21036);
SOURCE(32706, 339)
   {
      register word this←v21124;
      this←v21124 = charRuns←v10528;
      lab←L100204: ;
      if ((this←v21124 != 0)) {
         }
      else {
         goto lab←L100201;
         };
SOURCE(32782, 24)
      (void) PutBYTE←P3180(stream←v10500, (* (( (ptr) this←v21124)+1) ));
SOURCE(32808, 24)
      (void) PutBYTE←P3180(stream←v10500, (* (( (ptr) this←v21124)+2) ));
SOURCE(32834, 189)
      {
         register word i←v21168 = 0;
         register word noName←c49720;
         noName←c49720 = (* (( (ptr) this←v21124)+3) );
         if ((i←v21168 >= noName←c49720)) {
            goto lab←L100205;
            };
         lab←L100208: ;
         {
            W2 charRunEntry←v21212;
SOURCE(32864, 36)
            {
               word limit332;
               charRunEntry←v21212 = (* (( (W2Pt) (( (ptr) this←v21124)+4))+(
                     limit332 = (* (( (ptr) this←v21124)+3) ),
                     BCK(i←v21168, limit332)
                     )) );
               };
SOURCE(32917, 44)
            (void) PutCount←P3240(stream←v10500, charRunEntry←v21212.f0);
SOURCE(32963, 47)
            (void) PutCount←P3240(stream←v10500, charRunEntry←v21212.f1);
            };
         i←v21168 = (i←v21168 + 1);
         if ((i←v21168 < noName←c49720)) {
            goto lab←L100208;
            };
         lab←L100205: ;
         };
      this←v21124 = (*  (ptr) this←v21124 );
      goto lab←L100204;
      lab←L100201: ;
      };
   }

static void PutCARD32←P3120(stream←v10708, card←v10736)
   word stream←v10708;
   word card←v10736;
   {
   register ptr gf←c53016 =  (ptr) &globalframe;
   word ln←v21256;
   /* PutCARD32: */ 
SOURCE(33149, 196)
SOURCE(33203, 34)
   ln←v21256 = card←v10736;
SOURCE(33239, 25)
   {
      word pd333;
      pd333 = (* (( (ptr) (* (( (ptr) gf←c53016)+162)/* var←c48824 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd333 ))))(stream←v10708,  (unsigned) ((unsigned)ln←v21256 >> 24), pd333);
      };
SOURCE(33266, 25)
   {
      word pd334;
      pd334 = (* (( (ptr) (* (( (ptr) gf←c53016)+162)/* var←c48824 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd334 ))))(stream←v10708,  (unsigned) (((unsigned)ln←v21256 << 8) >> 24), pd334);
      };
SOURCE(33293, 25)
   {
      word pd335;
      pd335 = (* (( (ptr) (* (( (ptr) gf←c53016)+162)/* var←c48824 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd335 ))))(stream←v10708,  (unsigned) (((unsigned)ln←v21256 << 16) >> 24), pd335);
      };
SOURCE(33320, 25)
   {
      word pd336;
      pd336 = (* (( (ptr) (* (( (ptr) gf←c53016)+162)/* var←c48824 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd336 ))))(stream←v10708,  (unsigned) (ln←v21256 & 0377), pd336);
      };
   }

static void PutBYTE←P3180(stream←v10796, byte←v10824)
   word stream←v10796;
   word byte←v10824;
   {
   register ptr gf←c53048 =  (ptr) &globalframe;
   /* PutBYTE: */ 
SOURCE(33351, 74)
SOURCE(33401, 24)
   {
      word pd337;
      pd337 = (* (( (ptr) (* (( (ptr) gf←c53048)+162)/* var←c48824 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd337 ))))(stream←v10796, byte←v10824, pd337);
      };
   }

static void PutCount←P3240(stream←v10884, count←v10912)
   word stream←v10884;
   word count←v10912;
   {
   register ptr gf←c53080 =  (ptr) &globalframe;
   W5 c←v21300;
   word k←v21328 = 0;
   word i←v21356;
   /* PutCount: */ 
SOURCE(33431, 264)
SOURCE(33483, 32)
   XR←FillWords(&c←v21300, 5, 0);
SOURCE(33529, 15)
   i←v21356 = count←v10912;
SOURCE(33546, 67)
   lab←L100211: ;
SOURCE(33549, 24)
   (* (( (ptr) &c←v21300)+BCK(k←v21328, 5)) ) = ((i←v21356 & 0177) + 128);
SOURCE(33575, 9)
   k←v21328 = (k←v21328 + 1);
SOURCE(33586, 11)
   i←v21356 = ((word) i←v21356 >> 7);
SOURCE(33599, 14)
   if ((i←v21356 == 0)) {
SOURCE(33613, 4)
      goto lab←L100210;
      };
   goto lab←L100211;
   lab←L100210: ;
SOURCE(33628, 15)
   {
      word idx338;
      c←v21300.f0 = (
         idx338 = (word) (c←v21300.f0 - 128),
         BCK(idx338, 256)
         );
      };
SOURCE(33645, 50)
   lab←L100214: ;
   if ((k←v21328 != 0)) {
      }
   else {
      goto lab←L100212;
      };
SOURCE(33660, 9)
   k←v21328 = SGNCK((k←v21328 - 1));
SOURCE(33671, 24)
   {
      word byte←v41276;
      byte←v41276 = (* (( (ptr) &c←v21300)+BCK(k←v21328, 5)) );
      {
         word pd339;
         pd339 = (* (( (ptr) (* (( (ptr) gf←c53080)+162)/* var←c48824 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd339 ))))(stream←v10884, byte←v41276, pd339);
         };
      };
   goto lab←L100214;
   lab←L100212: ;
   }

static void PutIdentifier←P3300(stream←v10972, s←v11000)
   word stream←v10972;
   word s←v11000;
   {
   register ptr gf←c53112 =  (ptr) &globalframe;
   /* PutIdentifier: */ 
SOURCE(33710, 106)
SOURCE(33763, 30)
   {
      word var←c49816;
      {
         word pd340;
         word idx341;
         pd340 = (* (( (ptr) (* (( (ptr) gf←c53112)+164)/* var←c49848 */  ))+15) );
         var←c49816 = (
            idx341 = (word) ( *( (fPt) ((*  (ptr) pd340 ))))(s←v11000, pd340),
            SGNCK(idx341)
            );
         };
      (void) PutCount←P3240(stream←v10972, var←c49816);
      };
SOURCE(33795, 21)
   {
      word pd342;
      pd342 = (* (( (ptr) (* (( (ptr) gf←c53112)+162)/* var←c48824 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd342 ))))(stream←v10972, s←v11000, 0, 2147483647, pd342);
      };
   }

static void PutInteger←P3360(stream←v11060, int←v11088)
   word stream←v11060;
   word int←v11088;
   {
   /* PutInteger: */ 
SOURCE(33822, 122)
SOURCE(33873, 71)
   {
      word idx343;
      (void) PutCount←P3240(stream←v11060,  ( ( (int)int←v11088 <  (int)0) ? (((word) (
            idx343 = (word) INEG(int←v11088),
            SGNCK(idx343)
            ) << 1) - 1) : ((word) SGNCK(int←v11088) << 1) ) );
      };
   }

static void PutREAL←P3480(stream←v11208, real←v11236)
   word stream←v11208;
   word real←v11236;
   {
   register ptr gf←c53144 =  (ptr) &globalframe;
   word neg←v21520;
   word exponent←v21548 = 0;
   word significand←v21576;
   /* PutREAL: */ 
SOURCE(34230, 442)
SOURCE(34280, 20)
   {
      word x344;
      word x345;
      neg←v21520 =  (unsigned) ((
         x344 = real←v11236,  *(float*)&x344
         ) < (
         x345 = (*  (ptr) &fc82 ),  *(float*)&x345
         ));
      };
SOURCE(34339, 16)
   {
      float tf346;
      word x347;
      float tf348;
      real←v11236 = (
         tf348 = FABS((
               x347 = real←v11236,  *(float*)&x347
               ), tf346),  *(word*)&tf348
         );
      };
SOURCE(34357, 91)
   lab←L100217: ;
   {
      word x349;
      word x350;
      if (((
         x349 = real←v11236,  *(float*)&x349
         ) > (
         x350 = (* (( (ptr) gf←c53144)+8)/* largestFlonumFraction←v5296 */  ),  *(float*)&x350
         ))) {
         }
      else {
         goto lab←L100215;
         };
      };
SOURCE(34395, 28)
   {
      word pd351;
      pd351 = (* (( (ptr) (* (( (ptr) gf←c53144)+155)/* var←c43352 */  ))+4) );
      real←v11236 = (word) ( *( (fPt) ((*  (ptr) pd351 ))))(real←v11236,  (word) -1, pd351);
      };
SOURCE(34425, 23)
   exponent←v21548 = (exponent←v21548 + 1);
   goto lab←L100217;
   lab←L100215: ;
SOURCE(34459, 101)
   {
      word var←c0795;
      lab←L100220: ;
      {
         word x354;
         word x355;
         {
            word pd352;
            pd352 = (* (( (ptr) (* (( (ptr) gf←c53144)+155)/* var←c43352 */  ))+6) );
            significand←v21576 = (word) ( *( (fPt) ((*  (ptr) pd352 ))))(real←v11236, pd352);
            };
         {
            float tf353;
            var←c0795 = (
               tf353 = (float)(int)significand←v21576,  *(word*)&tf353
               );
            };
         if (((
            x354 = real←v11236,  *(float*)&x354
            ) != (
            x355 = var←c0795,  *(float*)&x355
            ))) {
            }
         else {
            goto lab←L100218;
            };
         };
SOURCE(34508, 27)
      {
         word pd356;
         pd356 = (* (( (ptr) (* (( (ptr) gf←c53144)+155)/* var←c43352 */  ))+4) );
         real←v11236 = (word) ( *( (fPt) ((*  (ptr) pd356 ))))(real←v11236, 1, pd356);
         };
SOURCE(34537, 23)
      exponent←v21548 = (exponent←v21548 - 1);
      goto lab←L100220;
      lab←L100218: ;
      };
SOURCE(34571, 38)
   if ((0 != neg←v21520)) {
SOURCE(34583, 26)
      significand←v21576 = INEG(significand←v21576);
      };
SOURCE(34611, 31)
   (void) PutInteger←P3360(stream←v11208, significand←v21576);
SOURCE(34644, 28)
   (void) PutInteger←P3360(stream←v11208, exponent←v21548);
   }

static void NoName←Q9684(formal←c0696, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0696;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   if ((formal←c200001 == XR←Aborted)) {
SOURCE(25528, 8)
      (*  (ptr) formal←c0696 ) = 2;
      (* (( (ptr) formal←c0696)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0696 ) = 0;
   (* (( (ptr) formal←c0696)+1) ) = 0;
   return;
   }

/* file: ImagerFDBuildImpl, module: ImagerFDBuildImpl, compiled at: July 28, 1993 10:17:44 am PDT */ 
extern void XR←install←ImagerFDBuildImpl() {
   NoName←Q9564();
   }
extern void XR←run←ImagerFDBuildImpl() { XR←Start(&globalframe); }