#help_index "Misc/TOS/God;God/TOS"

#define NIST_TIME_OFFSET	(tos_nist_offset-local_time_offset/CDATE_FREQ)
#define NIST_TIME_TO_SWITCH	3

#define GSRC_NIST_BEACON	0
#define GSRC_HOTBITS		1
#define GSRC_ANU_NIST		2
#define GSRC_GOOGLE		3
#define GSRC_RANDOM_ORG		4
#define GSRC_RANDOM_NUMBERS_INFO 5
#define GSRC_PASSWORD		6
#define GSRC_GENERATE_DATA	7
#define GSRC_VIRTUAL_NOTARY	8
#define GSRC_TIMER		9

#define GBP_SHORT	0
#define GBP_MEDIUM	1
#define GBP_LONG	2

class CRandExtDec5Form
{
  I64	timestamp;
  U8	rnd0[512]	format "$$DA-P,A=\"5 Decimal Digits from Hex:%s\"$$\n";
  U8	rnd1[512];
  U8	rnd2[512];
  U8	rnd3[512];
  U8	rnd4[512];
  U8	rnd5[512];
  U8	rnd6[512];
  U8	rnd7[512];
  U8	rnd8[512];
  U8	rnd9[512];
  U8	rndA[512];
  U8	rndB[512];
  I64	cert;
};

class CHexWordForm
{
  I64	timestamp;
  U8	rnd0[512]	format "$$DA-P,A=\"Hex Word Indices#0:%s\"$$\n";
  U8	rnd1[512]	format "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n";
  U8	rnd2[512]	format "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n";
  U8	rnd3[512]	format "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n";
  U8	rnd4[512]	format "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n";
  U8	rnd5[512]	format "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n";
  U8	rnd6[512]	format "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n";
  U8	rnd7[512]	format "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n";
  U8	rnd8[512]	format "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n";
  U8	rnd9[512]	format "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n";
  U8	rndA[512]	format "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n";
  U8	rndB[512]	format "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n";
  I64	cert;
};

class CNISTBeaconHexWordForm
{
  I64	timestamp	format "$$DA,A=\"TimeStamp:%d\"$$\n";
  U8	rnd0[512]	format "$$DA-P,A=\"Hex Word Indices#0:%s\"$$\n";
  U8	rnd1[512]	format "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n";
  U8	rnd2[512]	format "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n";
  U8	rnd3[512]	format "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n";
  U8	rnd4[512]	format "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n";
  U8	rnd5[512]	format "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n";
  U8	rnd6[512]	format "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n";
  U8	rnd7[512]	format "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n";
  U8	rnd8[512]	format "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n";
  U8	rnd9[512]	format "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n";
  U8	rndA[512]	format "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n";
  U8	rndB[512]	format "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n";
  I64	cert;
};

class CRandHex5Form
{
  I64	timestamp;
  U8	rnd0[512]	format "$$DA-P-TRM,LEN=5,"
	"A=\"Line (5-Digit Hex):%5s\"$$\n";
  U8	rnd1[512];
  U8	rnd2[512];
  U8	rnd3[512];
  U8	rnd4[512];
  U8	rnd5[512];
  U8	rnd6[512];
  U8	rnd7[512];
  U8	rnd8[512];
  U8	rnd9[512];
  U8	rndA[512];
  U8	rndB[512];
  I64	cert;
};

class CRandHex8Form
{
  I64	timestamp;
  U8	rnd0[512]	format "$$DA-P-TRM,LEN=8,"
	"A=\"Line (8-Digit Hex):%8s\"$$\n";
  U8	rnd1[512];
  U8	rnd2[512];
  U8	rnd3[512];
  U8	rnd4[512];
  U8	rnd5[512];
  U8	rnd6[512];
  U8	rnd7[512];
  U8	rnd8[512];
  U8	rnd9[512];
  U8	rndA[512];
  U8	rndB[512];
  I64	cert;
};

class CMoviesForm
{
  I64	timestamp;
  U8	rnd0[512]	format "$$DA-P,"
	"A=\"Movie#1-100 (2 Decimal Digits from Hex):%s\"$$\n";
  U8	rnd1[512];
  U8	rnd2[512];
  U8	rnd3[512];
  U8	rnd4[512];
  U8	rnd5[512];
  U8	rnd6[512];
  U8	rnd7[512];
  U8	rnd8[512];
  U8	rnd9[512];
  U8	rndA[512];
  U8	rndB[512];
  I64	cert;
};

class CPaintings100Form
{
  I64	timestamp;
  U8	rnd0[512]	format "$$DA-P,"
	"A=\"Painting#00-99 (2 Decimal Digits from Hex):%s\"$$\n";
  U8	rnd1[512];
  U8	rnd2[512];
  U8	rnd3[512];
  U8	rnd4[512];
  U8	rnd5[512];
  U8	rnd6[512];
  U8	rnd7[512];
  U8	rnd8[512];
  U8	rnd9[512];
  U8	rndA[512];
  U8	rndB[512];
  I64	cert;
};

class CPaintings1000Form
{
  I64	timestamp;
  U8	rnd0[512]	format "$$DA-P,"
	"A=\"Painting#000-999 (3 Decimal Digits from Hex):%s\"$$\n";
  U8	rnd1[512];
  U8	rnd2[512];
  U8	rnd3[512];
  U8	rnd4[512];
  U8	rnd5[512];
  U8	rnd6[512];
  U8	rnd7[512];
  U8	rnd8[512];
  U8	rnd9[512];
  U8	rndA[512];
  U8	rndB[512];
  I64	cert;
};

class CPoems100Form
{
  I64	timestamp;
  U8	rnd0[512]	format "$$DA-P,"
	"A=\"Poems#00-99 (2 Decimal Digits from Hex):%s\"$$\n";
  U8	rnd1[512];
  U8	rnd2[512];
  U8	rnd3[512];
  U8	rnd4[512];
  U8	rnd5[512];
  U8	rnd6[512];
  U8	rnd7[512];
  U8	rnd8[512];
  U8	rnd9[512];
  U8	rndA[512];
  U8	rndB[512];
  I64	cert;
};

class CMetallicaForm
{
  I64	timestamp;
  U8	rnd0[512]	format "$$DA-P,"
	"A=\"Song#1-99 (2 Decimal Digits from Hex):%s\"$$\n";
  U8	rnd1[512];
  U8	rnd2[512];
  U8	rnd3[512];
  U8	rnd4[512];
  U8	rnd5[512];
  U8	rnd6[512];
  U8	rnd7[512];
  U8	rnd8[512];
  U8	rnd9[512];
  U8	rndA[512];
  U8	rndB[512];
  I64	cert;
};

class CCertRandDec5Form
{
  I64	timestamp;
  U8	rnd0[512]	format "$$DA-P,A=\"Line (Dec):%s\"$$\n";
  U8	rnd1[512];
  U8	rnd2[512];
  U8	rnd3[512];
  U8	rnd4[512];
  U8	rnd5[512];
  U8	rnd6[512];
  U8	rnd7[512];
  U8	rnd8[512];
  U8	rnd9[512];
  U8	rndA[512];
  U8	rndB[512];
  I64	cert		format "$$DA,A=\"Certificate:%d\"$$\n";
};

class CGodVideoForm
{
  U8	title[STR_LEN]	format "$$DA-P,A=\"Title:%s\"$$\n";
  U8	serial[STR_LEN] format "$$DA-P-TRM,LEN=11,A=\"SerialNum:%11s\"$$\n";
  I64	min		format "$$DA,A=\"Minutes:%d\"$$\n";
  I64	sec		format "$$DA,A=\"Seconds:%d\"$$\n";
};

class CWebBibleForm
{
  U8	tag[STR_LEN]	format "$$DA-P,A=\"Tag Text:%s\"$$\n";
  U8	special[STR_LEN] format "$$DA-P,A=\"Bible Passage:%s\"$$\n";
  I64	min;
  I64	sec;
};

class CYouTubeForm
{
  U8	tag[STR_LEN]	format "$$DA-P,A=\"Title:%s\"$$\n";
  U8	special[STR_LEN] format "$$DA-P-TRM,LEN=11,A=\"SerialNum:%11s\"$$\n";
  I64	min		format "$$DA,A=\"Minutes:%d\"$$\n";
  I64	sec		format "$$DA,A=\"Seconds:%d\"$$\n";
};

class CImgurForm
{
  U8	tag[STR_LEN];
  U8	special[STR_LEN] format "$$DA-P,A=\"SerialNum:%s\"$$\n";
  I64	min		format "$$DA,A=\"Width:%d\"$$\n";
  I64	sec		format "$$DA,A=\"Height:%d\"$$\n";
};

class CWikipediaForm
{
  U8	tag[STR_LEN]	format "$$DA-P,A=\"Tag Text:%s\"$$\n";
  U8	special[STR_LEN] format "$$DA-P,A=\"Index:%s\"$$\n";
  I64	min;
  I64	sec;
};

class CWebBookMarkForm
{
  U8	tag[STR_LEN]	format "$$DA-P,A=\"Tag Text:%s\"$$\n";
  U8	special[STR_LEN];
  I64	min;
  I64	sec;
};

DefineLstLoad("ST_FAMLY_PHOTOS","Family1_58-78\0Family2_78-86\0"
	"Family3_86-99\0Family4_99\0");

class CFamilyPhotoForm
{
  I64	volume		format	"$$LS,D=\"ST_FAMLY_PHOTOS\"$$\n";
  I64	part		format	"$$DA,A=\"Part:%d\"$$\n";
  U8	picture[STR_LEN] format	"$$DA-P,A=\"Picture:%s\"$$\n";
  I64	width		format	"$$GREEN$$640x427 or 640x960$$FG$$\n"
				"$$DA,A=\"Width:%d\"$$\n";
  I64	height		format	"$$DA,A=\"Height:%d\"$$\n";
};

class CBlogImgForm
{
  U8	picture[STR_LEN] format "$$DA-P,A=\"Picture:%s\"$$\n";
  I64	width		format "$$DA,A=\"Width:%d\"$$\n";
  I64	height		format "$$DA,A=\"Height:%d\"$$\n";
};

class CBlogVideoForm
{
  U8	video[STR_LEN]	format "$$DA-P,A=\"Video:%s\"$$\n";
  Bool	big		format "$$CB,\"Big\"$$\n";
};

extern U0 FreshenBlog();
extern U0 GodBooksPassageU32(U32 rand_u32,U8 *files_find_mask,
	U8 *file_mask="*",I64 len=512,I64 verbosity=GBP_MEDIUM);
extern I64 GodHeaderIns(U8 *type=NULL);
extern U0 GodVideoDigits(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename);
extern U0 GodVideoU32(U32 rand_u32,U8 *filename);
extern U0 GodWebIdx(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename)
extern U0 GodWordBatch(CHexWordForm *gm,I64 radix,I64 digits);
extern U0 TOSBookLines(U8 *book_filename,I64 book_lines,U8 *st,I64 num_lines,
	I64 radix,Bool modulo,Bool plus_one);
extern U0 TOSGodDoodle(I64 god_src,CNISTBeaconHexWordForm *gm=NULL);