/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 11, 1993 8:13:22 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGRegistryImpl, module: GGRegistryImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3024986277,3347354163] GGRegistryImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q696();
static void GGRegistryImpl←P0();
static word LFNewLine←P60();
static void GGPropGet←P120();
static word GGPropList←P180();
static void GGPropRem←P240();
static void GGPropSet←P300();
static void GGGetTarget←P360();
static void GGSetTarget←P420();
static void GGValidateTarget←P480();
static void RegisterGG←P540();
static struct {unsigned f; char r[16];} string1 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\240\251\116\214\300\215\326\033\000\100\200\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\113\175\243\331\300\252\247\212\133\100\164\000\000"};
static struct {unsigned f; char r[36];} string5 = {2162721, "\006\014\000\001\060\001\064\001\070\001\074\001\100\100\001\100\124\001\100\130\001\100\134\001\100\140\001\100\144\001\100\150\001\000\000"};
static struct {unsigned f; char r[24];} string6 = {1310744, "\260\006\005\146\151\162\163\164\216\251\005\004\162\145\163\164\214\216\251\261\000\000\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\004\003\000"};
static struct {unsigned f; char r[48];} string8 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\363\223\326\161\300\017\164\046\072\104\350\005\004\162\145\163\164\214\216\257\300\363\223\326\161\300\017\164\046\072\104\350\261\000\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\100\200\000\000"};
static struct {unsigned f; char r[68];} string10 = {4325442, "\006\031\000\001\004\001\010\001\014\001\024\001\030\001\034\001\044\001\050\001\054\001\060\001\064\001\070\001\074\001\100\100\001\100\104\001\100\110\001\100\164\001\100\170\001\100\224\004\017\100\244\004\100\171\100\300\001\100\304\001\100\310\001\100\320\001\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\355\324\264\170\300\276\334\312\210\101\004\000\000"};
static struct {unsigned f; char r[4];} string12 = {131074, "\003\001\000"};
static struct {unsigned f; char r[20];} string13 = {1179668, "\260\006\005\146\151\162\163\164\217\005\004\162\145\163\164\214\217\261\000"};
static struct {unsigned f; char r[4];} string14 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string15 = {983056, "GetPropExternal"};
static struct {unsigned f; char r[4];} string16 = {131076, "\012\015\000"};
static struct {unsigned f; char r[20];} string17 = {1114132, "ListPropsExternal\000\000"};
static struct {unsigned f; char r[36];} string18 = {2162724, "No input focus in Gargoyle viewer\000\000"};
static struct {unsigned f; char r[12];} string19 = {655372, "RemoveProp\000"};
static struct {unsigned f; char r[4];} string20 = {65540, " \000\000"};
static struct {unsigned f; char r[8];} string21 = {458760, "SetProp"};
static struct {unsigned f; char r[32];} string22 = {1835040, "No input focus in any viewer\000\000\000"};
static struct {unsigned f; char r[24];} string23 = {1507352, "target viewer destroyed"};
static struct {unsigned f; char r[24];} string24 = {1310744, "target viewer iconic\000\000\000"};
static struct {unsigned f; char r[4];} string25 = {65540, "\012\000\000"};
static struct {unsigned f; char r[12];} string26 = {655372, "ActionArea\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\264\115\240\245\300\307\204\222\063\100\164\000\000"};
static struct {unsigned f; char r[8];} string28 = {458759, "\006\001@@\004O\377"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\345\207\354\240\300\306\063\246\015\100\150\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\355\324\264\170\300\276\334\312\210\100\150\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\263\272\165\301\300\364\117\256\374\100\150\000\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\240\251\116\214\300\215\326\033\000\100\150\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {
   word f0[28]; word f28; word f29; word f30; 
   word f31; word f32; word f33; word f34; 
   word f35; word f36; word f37; word f38; 
   word f39; word f40; word f41; word f42; 
   word f43; word f44; word f45; word f46; 
   word f47[7]; 
   } globalframe = {
   {0}, (word) RegisterGG←P540, 0, (word) GGValidateTarget←P480, 
   0, (word) GGSetTarget←P420, 0, (word) GGGetTarget←P360, 
   0, (word) GGPropSet←P300, 0, (word) GGPropRem←P240, 
   0, (word) GGPropList←P180, 0, (word) GGPropGet←P120, 
   0, (word) LFNewLine←P60, 0, (word) GGRegistryImpl←P0, 
   {0}
   };

static void NoName←Q696()
   {
   register ptr gf←c095 =  (ptr) &globalframe;
   word var←c20680;
   (* (( (ptr) gf←c095)+5) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c095)+6) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
   (* (( (ptr) gf←c095)+7) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c095)+8) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c095)+10) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string7);
   (* (( (ptr) gf←c095)+11) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
   (* (( (ptr) gf←c095)+12) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12);
   (* (( (ptr) gf←c095)+13) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string7);
   (* (( (ptr) gf←c095)+14) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string2);
   (*  (ptr) (( (bPt) gf←c095)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+14) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c095)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+5) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c095)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+14) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c095)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+5) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c095)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+14) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c095)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+5) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c095)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+14) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c095)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+5) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c095)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+5) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c095)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+5) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c095)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+5) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c095)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c095)+14) ), (word) &string26);
   (void) XR←DeclareGlobalFrame((word) "GGRegistryImpl", &globalframe, (word) XR←GetTypeIndex((word) &string27, 0, (word) &string28)
      , (word) (( (bPt) gf←c095)+184)/* var←c19848 */ );
   var←c20680 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string29)), 16);
   (* (( (ptr) gf←c095)+52)/* var←c20456 */  ) = var←c20680;
   (void) XR←ImportProcS(var←c20680, 67372289);
   var←c20680 = (word) XR←ImportInterface((word) "BiScrollers", (word) XR←GetTypeIndexS((word) (&string30)), 30);
   (* (( (ptr) gf←c095)+50)/* var←c19976 */  ) = var←c20680;
   (void) XR←ImportProcS(var←c20680, 67373825);
   var←c20680 = (word) XR←ImportInterface((word) "GGUserInput", (word) XR←GetTypeIndexS((word) (&string31)), 13);
   (* (( (ptr) gf←c095)+51)/* var←c20168 */  ) = var←c20680;
   (void) XR←ImportProcS(var←c20680, 263937);
   (void) XR←ImportProcS(var←c20680, 525058);
   var←c20680 = (word) XR←ImportInterface((word) "InputFocus", (word) XR←GetTypeIndexS((word) (&string32)), 6);
   (* (( (ptr) gf←c095)+49)/* var←c19912 */  ) = var←c20680;
   (void) XR←ImportProcS(var←c20680, 67108864);
   var←c20680 = (word) XR←ImportInterface((word) "PropRegistry", (word) XR←GetTypeIndexS((word) (&string33)), 2);
   (* (( (ptr) gf←c095)+53)/* var←c20648 */  ) = var←c20680;
   (void) XR←ImportProcS(var←c20680, 262145);
   var←c20680 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string34)), 43);
   (* (( (ptr) gf←c095)+48)/* var←c19880 */  ) = var←c20680;
   (void) XR←ImportProcS(var←c20680, 68419845);
   (void) XR←ImportProcS(var←c20680, 68160516);
   (void) XR←ImportProcS(var←c20680, 67900419);
   (void) XR←ImportProcS(var←c20680, 67373825);
   }

static void GGRegistryImpl←P0(formal←c021, formal←c020)
   word formal←c021;
   word formal←c020;
   {
   /* GGRegistryImpl: */ 
SOURCE(121, 3424)
SOURCE(3533, 12)
   (void) RegisterGG←P540();
   }

static word LFNewLine←P60(in←v3388)
   word in←v3388;
   {
   register ptr gf←c20712 =  (ptr) &globalframe;
   word out←v3432;
   /* LFNewLine: */ 
SOURCE(547, 294)
SOURCE(547, 294)
   out←v3432 = 0;
SOURCE(598, 243)
   if ((in←v3388 != 0)) {
SOURCE(613, 239)
      {
         word size←v3476;
SOURCE(615, 25)
         {
            word pd35;
            pd35 = (* (( (ptr) (* (( (ptr) gf←c20712)+48)/* var←c19880 */  ))+15) );
            size←v3476 = (word) ( *( (fPt) ((*  (ptr) pd35 ))))(in←v3388, pd35);
            };
SOURCE(642, 8)
         out←v3432 = in←v3388;
SOURCE(652, 189)
         {
            register word index←v3520;
            {
               word pd36;
               pd36 = (* (( (ptr) (* (( (ptr) gf←c20712)+48)/* var←c19880 */  ))+24) );
               index←v3520 = (word) ( *( (fPt) ((*  (ptr) pd36 ))))(in←v3388, 0, (* (( (ptr) gf←c20712)+17) ), pd36);
               };
            lab←L100003: ;
            if (( (int)index←v3520 !=  (int)size←v3476)) {
               }
            else {
               goto lab←L100000;
               };
SOURCE(780, 61)
            {
               word pd37;
               pd37 = (* (( (ptr) (* (( (ptr) gf←c20712)+48)/* var←c19880 */  ))+16) );
               out←v3432 = (word) ( *( (fPt) ((*  (ptr) pd37 ))))(out←v3432, index←v3520, 1, (* (( (ptr) gf←c20712)+26) ), pd37);
               };
            {
               word pd38;
               pd38 = (* (( (ptr) (* (( (ptr) gf←c20712)+48)/* var←c19880 */  ))+24) );
               index←v3520 = (word) ( *( (fPt) ((*  (ptr) pd38 ))))(in←v3388, (index←v3520 + 1), (* (( (ptr) gf←c20712)+17) ), pd38);
               };
            goto lab←L100003;
            lab←L100000: ;
            };
         };
      };
SOURCE(547, 294)
   return(out←v3432);
   }

static void GGPropGet←P120(formal←c042, key←v9172, doc←v9200, hint←v9228)
   word formal←c042;
   word key←v9172;
   word doc←v9200;
   word hint←v9228;
   {
   register ptr gf←c20744 =  (ptr) &globalframe;
   word prop←v9272;
   word error←v9300;
   word lor←v3564 = 0;
   word extRef←v3592 = 0;
   word ggData←v3620 = 0;
   word focus←v3648;
   word from←v3676;
   /* GGPropGet: */ 
SOURCE(859, 645)
SOURCE(859, 645)
   prop←v9272 = 0;
SOURCE(859, 645)
   error←v9300 = 0;
SOURCE(964, 52)
   {
      word pd39;
      pd39 = (* (( (ptr) (* (( (ptr) gf←c20744)+49)/* var←c19912 */  ))+4) );
      focus←v3648 = (word) ( *( (fPt) ((*  (ptr) pd39 ))))(pd39);
      };
SOURCE(1018, 53)
   from←v3676 =  ( (focus←v3648 != 0) ? (*  (ptr) focus←v3648 ) : 0 ) ;
SOURCE(1073, 38)
   if ((from←v3676 == 0)) {
SOURCE(1090, 21)
      error←v9300 = (* (( (ptr) gf←c20744)+23) );
      prop←v9272 = 0;
      goto lab←L100004;
      };
SOURCE(1113, 53)
   {
      word pd40;
      pd40 = (* (( (ptr) (* (( (ptr) gf←c20744)+50)/* var←c19976 */  ))+15) );
      ggData←v3620 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd40 ))))(from←v3676, pd40), (* (( (ptr) gf←c20744)+11) ));
      };
SOURCE(1168, 42)
   if ((ggData←v3620 == 0)) {
SOURCE(1187, 23)
      error←v9300 = (* (( (ptr) gf←c20744)+19) );
      prop←v9272 = 0;
      goto lab←L100004;
      };
SOURCE(1212, 53)
   {
      word var←c20040;
      var←c20040 = XR←NewObject(8, (* (( (ptr) gf←c20744)+12) ));
      (* (( (ptr) var←c20040)+1) ) = key←v9172;
      extRef←v3592 = var←c20040;
      };
SOURCE(1282, 64)
   {
      word var←c20072;
      {
         word var←c20104;
         word var←c20136;
         var←c20104 = XR←NewObject(8, (* (( (ptr) gf←c20744)+13) ));
         var←c20136 = var←c20104;
         (*  (ptr) var←c20136 ) = (* (( (ptr) gf←c20744)+16) );
         (* (( (ptr) var←c20136)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c20744)+13) ));
         var←c20136 = (* (( (ptr) var←c20136)+1) );
         (*  (ptr) var←c20136 ) = extRef←v3592;
         var←c20072 = var←c20104;
         };
      {
         word pd41;
         pd41 = (* (( (ptr) (* (( (ptr) gf←c20744)+51)/* var←c20168 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd41 ))))(ggData←v3620, var←c20072, pd41);
         };
      };
SOURCE(1348, 62)
   lab←L100007: ;
   if ((0 == (*  (ptr) extRef←v3592 ))) {
      }
   else {
      goto lab←L100005;
      };
SOURCE(1370, 40)
   {
      word pd42;
      pd42 = (* (( (ptr) (* (( (ptr) gf←c20744)+51)/* var←c20168 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd42 ))))(extRef←v3592, pd42);
      };
   goto lab←L100007;
   lab←L100005: ;
SOURCE(1412, 28)
   lor←v3564 = XR←Narrow((* (( (ptr) extRef←v3592)+1) ), (* (( (ptr) gf←c20744)+10) ));
SOURCE(1442, 27)
   prop←v9272 = (word) LFNewLine←P60((*  (ptr) (lor←v3564) ));
SOURCE(1471, 33)
   error←v9300 = (word) LFNewLine←P60((*  (ptr) ((* (( (ptr) lor←v3564)+1) )) ));
   /* removed tail goto */ 
   lab←L100004: ;
   (*  (ptr) formal←c042 ) = prop←v9272;
   (* (( (ptr) formal←c042)+1) ) = error←v9300;
   return;
   }

static word GGPropList←P180(doc←v9360, hint←v9388)
   word doc←v9360;
   word hint←v9388;
   {
   register ptr gf←c20776 =  (ptr) &globalframe;
   word props←v9432;
   word extRef←v3804 = 0;
   word ggData←v3832 = 0;
   word focus←v3860;
   word from←v3888;
   /* GGPropList: */ 
SOURCE(1510, 523)
SOURCE(1510, 523)
   props←v9432 = 0;
SOURCE(1598, 52)
   {
      word pd43;
      pd43 = (* (( (ptr) (* (( (ptr) gf←c20776)+49)/* var←c19912 */  ))+4) );
      focus←v3860 = (word) ( *( (fPt) ((*  (ptr) pd43 ))))(pd43);
      };
SOURCE(1652, 53)
   from←v3888 =  ( (focus←v3860 != 0) ? (*  (ptr) focus←v3860 ) : 0 ) ;
SOURCE(1707, 29)
   if ((from←v3888 == 0)) {
SOURCE(1724, 12)
      return(0);
      };
SOURCE(1738, 53)
   {
      word pd44;
      pd44 = (* (( (ptr) (* (( (ptr) gf←c20776)+50)/* var←c19976 */  ))+15) );
      ggData←v3832 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd44 ))))(from←v3888, pd44), (* (( (ptr) gf←c20776)+11) ));
      };
SOURCE(1793, 31)
   if ((ggData←v3832 == 0)) {
SOURCE(1812, 12)
      return(0);
      };
SOURCE(1826, 43)
   extRef←v3804 = XR←NewObject(8, (* (( (ptr) gf←c20776)+12) ));
SOURCE(1871, 66)
   {
      word var←c20232;
      {
         word var←c20264;
         word var←c20296;
         var←c20264 = XR←NewObject(8, (* (( (ptr) gf←c20776)+13) ));
         var←c20296 = var←c20264;
         (*  (ptr) var←c20296 ) = (* (( (ptr) gf←c20776)+18) );
         (* (( (ptr) var←c20296)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c20776)+13) ));
         var←c20296 = (* (( (ptr) var←c20296)+1) );
         (*  (ptr) var←c20296 ) = extRef←v3804;
         var←c20232 = var←c20264;
         };
      {
         word pd45;
         pd45 = (* (( (ptr) (* (( (ptr) gf←c20776)+51)/* var←c20168 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd45 ))))(ggData←v3832, var←c20232, pd45);
         };
      };
SOURCE(1939, 62)
   lab←L100010: ;
   if ((0 == (*  (ptr) extRef←v3804 ))) {
      }
   else {
      goto lab←L100008;
      };
SOURCE(1961, 40)
   {
      word pd46;
      pd46 = (* (( (ptr) (* (( (ptr) gf←c20776)+51)/* var←c20168 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd46 ))))(extRef←v3804, pd46);
      };
   goto lab←L100010;
   lab←L100008: ;
SOURCE(2003, 30)
   props←v9432 = XR←Narrow((* (( (ptr) extRef←v3804)+1) ), (* (( (ptr) gf←c20776)+8) ));
SOURCE(1510, 523)
   return(props←v9432);
   }

static void GGPropRem←P240(key←v9492, doc←v9520, hint←v9548, edited←v9576)
   word key←v9492;
   word doc←v9520;
   word hint←v9548;
   word edited←v9576;
   {
   register ptr gf←c20808 =  (ptr) &globalframe;
   word ggData←v3932 = 0;
   word focus←v3960;
   word from←v3988;
   /* GGPropRem: */ 
SOURCE(2039, 343)
SOURCE(2095, 52)
   {
      word pd47;
      pd47 = (* (( (ptr) (* (( (ptr) gf←c20808)+49)/* var←c19912 */  ))+4) );
      focus←v3960 = (word) ( *( (fPt) ((*  (ptr) pd47 ))))(pd47);
      };
SOURCE(2149, 53)
   from←v3988 =  ( (focus←v3960 != 0) ? (*  (ptr) focus←v3960 ) : 0 ) ;
SOURCE(2204, 23)
   if ((from←v3988 == 0)) {
SOURCE(2221, 6)
      return;
      };
SOURCE(2229, 53)
   {
      word pd48;
      pd48 = (* (( (ptr) (* (( (ptr) gf←c20808)+50)/* var←c19976 */  ))+15) );
      ggData←v3932 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd48 ))))(from←v3988, pd48), (* (( (ptr) gf←c20808)+11) ));
      };
SOURCE(2284, 25)
   if ((ggData←v3932 == 0)) {
SOURCE(2303, 6)
      return;
      };
SOURCE(2311, 71)
   {
      word var←c20328;
      {
         word var←c20360;
         word var←c20392;
         var←c20360 = XR←NewObject(8, (* (( (ptr) gf←c20808)+13) ));
         var←c20392 = var←c20360;
         (*  (ptr) var←c20392 ) = (* (( (ptr) gf←c20808)+20) );
         (* (( (ptr) var←c20392)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c20808)+13) ));
         var←c20392 = (* (( (ptr) var←c20392)+1) );
         {
            word pd49;
            pd49 = (* (( (ptr) (* (( (ptr) gf←c20808)+52)/* var←c20456 */  ))+9) );
            (*  (ptr) var←c20392 ) = (word) ( *( (fPt) ((*  (ptr) pd49 ))))(key←v9492, pd49);
            };
         var←c20328 = var←c20360;
         };
      {
         word pd50;
         pd50 = (* (( (ptr) (* (( (ptr) gf←c20808)+51)/* var←c20168 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd50 ))))(ggData←v3932, var←c20328, pd50);
         };
      };
   }

static void GGPropSet←P300(key←v9636, doc←v9664, hint←v9692, prop←v9720, edited←v9748)
   word key←v9636;
   word doc←v9664;
   word hint←v9692;
   word prop←v9720;
   word edited←v9748;
   {
   register ptr gf←c20840 =  (ptr) &globalframe;
   word keyVal←v4032 = 0;
   word ggData←v4060 = 0;
   word focus←v4088;
   word from←v4116;
   /* GGPropSet: */ 
SOURCE(2388, 421)
SOURCE(2463, 52)
   {
      word pd51;
      pd51 = (* (( (ptr) (* (( (ptr) gf←c20840)+49)/* var←c19912 */  ))+4) );
      focus←v4088 = (word) ( *( (fPt) ((*  (ptr) pd51 ))))(pd51);
      };
SOURCE(2517, 53)
   from←v4116 =  ( (focus←v4088 != 0) ? (*  (ptr) focus←v4088 ) : 0 ) ;
SOURCE(2572, 23)
   if ((from←v4116 == 0)) {
SOURCE(2589, 6)
      return;
      };
SOURCE(2597, 53)
   {
      word pd52;
      pd52 = (* (( (ptr) (* (( (ptr) gf←c20840)+50)/* var←c19976 */  ))+15) );
      ggData←v4060 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd52 ))))(from←v4116, pd52), (* (( (ptr) gf←c20840)+11) ));
      };
SOURCE(2652, 25)
   if ((ggData←v4060 == 0)) {
SOURCE(2671, 6)
      return;
      };
SOURCE(2679, 48)
   {
      word var←c20488;
      {
         word pd53;
         pd53 = (* (( (ptr) (* (( (ptr) gf←c20840)+52)/* var←c20456 */  ))+9) );
         var←c20488 = (word) ( *( (fPt) ((*  (ptr) pd53 ))))(key←v9636, pd53);
         };
      {
         word pd54;
         pd54 = (* (( (ptr) (* (( (ptr) gf←c20840)+48)/* var←c19880 */  ))+5) );
         keyVal←v4032 = (word) ( *( (fPt) ((*  (ptr) pd54 ))))(var←c20488, (* (( (ptr) gf←c20840)+21) ), prop←v9720, 0, 0, pd54);
         };
      };
SOURCE(2753, 56)
   {
      word var←c20520;
      {
         word var←c20552;
         word var←c20584;
         var←c20552 = XR←NewObject(8, (* (( (ptr) gf←c20840)+13) ));
         var←c20584 = var←c20552;
         (*  (ptr) var←c20584 ) = (* (( (ptr) gf←c20840)+22) );
         (* (( (ptr) var←c20584)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c20840)+13) ));
         var←c20584 = (* (( (ptr) var←c20584)+1) );
         (*  (ptr) var←c20584 ) = keyVal←v4032;
         var←c20520 = var←c20552;
         };
      {
         word pd55;
         pd55 = (* (( (ptr) (* (( (ptr) gf←c20840)+51)/* var←c20168 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd55 ))))(ggData←v4060, var←c20520, pd55);
         };
      };
   }

static void GGGetTarget←P360(formal←c080, doc←v9808, hint←v9836)
   word formal←c080;
   word doc←v9808;
   word hint←v9836;
   {
   word success←v9880;
   W2 t←v9908;
   /* GGGetTarget: */ 
SOURCE(2815, 58)
SOURCE(2815, 58)
   t←v9908.f0 = 0;
   t←v9908.f1 = 0;
SOURCE(2859, 14)
   success←v9880 = 1;
   /* removed tail goto */ 
   (*  (ptr) formal←c080 ) = success←v9880;
   (*  (W2Pt) (( (ptr) formal←c080)+1) ) = t←v9908;
   return;
   }

static void GGSetTarget←P420(formal←c086, doc←v9968, hint←v9996, t←v10024)
   word formal←c086;
   word doc←v9968;
   word hint←v9996;
   W2 t←v10024;
   {
   word success←v10068;
   word error←v10096;
   /* GGSetTarget: */ 
SOURCE(2894, 58)
SOURCE(2894, 58)
   error←v10096 = 0;
SOURCE(2938, 14)
   success←v10068 = 1;
   /* removed tail goto */ 
   (*  (ptr) formal←c086 ) = success←v10068;
   (* (( (ptr) formal←c086)+1) ) = error←v10096;
   return;
   }

static void GGValidateTarget←P480(formal←c093, doc←v10156, hint←v10184, t←v10212)
   word formal←c093;
   word doc←v10156;
   word hint←v10184;
   W2 t←v10212;
   {
   register ptr gf←c20872 =  (ptr) &globalframe;
   word success←v10256;
   word error←v10284;
   word v←v4160;
   /* GGValidateTarget: */ 
SOURCE(2973, 236)
SOURCE(2973, 236)
   error←v10284 = 0;
SOURCE(3027, 37)
   v←v4160 = XR←Narrow(doc←v10156, (* (( (ptr) gf←c20872)+7) ));
SOURCE(3066, 39)
   if ( ! ((* (( (bPt) v←v4160)+77) ) & 0100)) {
      success←v10256 =  (unsigned) ( ! ((* (( (bPt) v←v4160)+76) ) & 020));
      }
   else {
      success←v10256 =  (unsigned) 0;
      };
SOURCE(3107, 102)
   if ((0 == success←v10256)) {
SOURCE(3127, 82)
      if ((* (( (bPt) v←v4160)+77) ) & 0100) {
         error←v10284 = (* (( (ptr) gf←c20872)+24) );
         }
      else {
         error←v10284 = (* (( (ptr) gf←c20872)+25) );
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c093 ) = success←v10256;
   (* (( (ptr) formal←c093)+1) ) = error←v10284;
   return;
   }

static void RegisterGG←P540()
   {
   register ptr gf←c20904 =  (ptr) &globalframe;
   word class←v4204;
   /* RegisterGG: */ 
SOURCE(3213, 314)
SOURCE(3234, 70)
   class←v4204 = XR←NewObject(32, (* (( (ptr) gf←c20904)+6) ));
SOURCE(3306, 191)
   (*  (ptr) class←v4204 ) = (* (( (ptr) gf←c20904)+27) );
   (* (( (ptr) class←v4204)+1) ) = (word) (( (bPt) gf←c20904)+168)/* var←c19784 */ ;
   (* (( (ptr) class←v4204)+2) ) = (word) (( (bPt) gf←c20904)+144)/* var←c19688 */ ;
   (* (( (ptr) class←v4204)+3) ) = (word) (( (bPt) gf←c20904)+152)/* var←c19720 */ ;
   (* (( (ptr) class←v4204)+4) ) = (word) (( (bPt) gf←c20904)+160)/* var←c19752 */ ;
   (* (( (ptr) class←v4204)+5) ) = (word) (( (bPt) gf←c20904)+136)/* var←c19656 */ ;
   (* (( (ptr) class←v4204)+6) ) = (word) (( (bPt) gf←c20904)+128)/* var←c19624 */ ;
   (* (( (ptr) class←v4204)+7) ) = (word) (( (bPt) gf←c20904)+120)/* var←c19592 */ ;
SOURCE(3499, 28)
   {
      word pd56;
      pd56 = (* (( (ptr) (* (( (ptr) gf←c20904)+53)/* var←c20648 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd56 ))))(class←v4204, pd56);
      };
   }

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