From:	MERC::"uunet!VM1.NODAK.EDU!owner-anu-news" 27-APR-1993 11:31:19.11
To:	Multiple recipients of list ANU-NEWS <ANU-NEWS@VM1.NoDak.EDU>
CC:	
Subj:	BUG-fixes / EXTENSION  SHARE 4/7

-+-+-+-+-+-+-+-+ START OF PART 4 -+-+-+-+-+-+-+-+
X!`20`20`20`20`20`20`20`20`20`20`20`20`26`26`20(strchr(xfrbuf,`20':')`20<`20str
Vchr(xfrbuf,'`20')))`20
X!`20`20`20`20`20`20`20`20`20`20`20`20`7C`7C`20(strchr(xfrbuf,'`20')`20==`200))
V)
X!`20`20`20`20`20`20`20`20`20`20`20`20header_line`20=`20get_header_line(xfrbuf)
V;
X!`20`20`20`20`20`20`20`20`20if`20(check_header_line(filter,`20header_line))
V`20`20
X!`20`20`20`20`20`20`20`20`20`20`20`20fputs(xfrbuf,`20fpextract);`20`20`20/*
V`20processing`20recognized`20headerline`20*/
X!`20`20`20`20`20`20`20`20`20`7D
X!`20`20`20`20`20`20`20`7D
X!`20`20`20`20`20if`20(!header)`20`7B`20
X`20`20`20`20`20`20`20`20if`20(do_rotit)`20`7B
X`20`20`20`20`20`20`20`20`20`20char`20*a`20=`20xfrbuf;
X`20`20
X**************
X***`20634,640
X`20`20
X`20`20`20`20intparam("COPIES",SJC$_FILE_COPIES);
X`20`20`20`20boolparam("FEED",SJC$_PAGINATE,SJC$_NO_PAGINATE);
X-`20`20`20boolparam("HEADER",SJC$_PAGE_HEADER,SJC$_NO_PAGE_HEADER);
X`20`20`20`20boolparam("PASSALL",SJC$_PASSALL,SJC$_NO_PASSALL);
X`20`20`20`20setup_list`20=`200;
X`20`20`20`20while`20((s_val`20=`20cli$get_value(c$dsc("SETUP"),`26gvd,`26gvl))
V`20`26`201)`20`7B
X---`20768,773`20-----
X`20`20
X`20`20`20`20intparam("COPIES",SJC$_FILE_COPIES);
X`20`20`20`20boolparam("FEED",SJC$_PAGINATE,SJC$_NO_PAGINATE);
X`20`20`20`20boolparam("PASSALL",SJC$_PASSALL,SJC$_NO_PASSALL);
X`20`20`20`20setup_list`20=`200;
X`20`20`20`20while`20((s_val`20=`20cli$get_value(c$dsc("SETUP"),`26gvd,`26gvl))
V`20`26`201)`20`7B
X**************
X***`20814,820
X`20`20`20`20err_line(stat_output);
X`20`20`7D
X`20`20`0C
X!`20int`20submit_it(g,m)
X`20`20`20`20int`20g,`20m;
X`20`20`7B
X`20`20`20`20char`20full_name`5B256`5D,`20prompt`5B256`5D;
X---`20947,953`20-----
X`20`20`20`20err_line(stat_output);
X`20`20`7D
X`20`20`0C
X!`20int`20submit_it(g,m,filter)
X`20`20`20`20int`20g,`20m;
X`20`20`20`20unsigned`20int`20filter;
X`20`20`7B
X**************
X***`20816,821
X`20`20`0C
X`20`20int`20submit_it(g,m)
X`20`20`20`20int`20g,`20m;
X`20`20`7B
X`20`20`20`20char`20full_name`5B256`5D,`20prompt`5B256`5D;
X`20`20`20`20int`20i,`20del_file`20=`200;
X---`20949,955`20-----
X`20`20`0C
X`20`20int`20submit_it(g,m,filter)
X`20`20`20`20int`20g,`20m;
X+`20`20`20unsigned`20int`20filter;
X`20`20`7B
X`20`20`20`20char`20full_name`5B256`5D,`20prompt`5B256`5D;
X`20`20`20`20int`20i,`20del_file`20=`200;
X**************
X***`20828,834
X`20`20
X`20`20`20`20if`20(!(fp`20=`20do_open_item(g,m,"r",fp_open)))`20return`200;
X`20`20`20`20sprintf(prompt,"%s`20#%d,`20Print?`20`5BN`5D",ga`5Bg`5D->grp_name,
Vga`5Bg`5D->grp_ia`5Bm`5D.itm_num);
X!`20`20`20if`20((i`20=`20ask_confirm(prompt,'N'))`20`26`201)`20`7B
X`20`20`20`20`20`20FILE`20*fpw;
X`20`20`20`20`20`20int`20do_rotit`20=`200;
X`20`20`20`20`20`20char`20`20xfrbuf`5B512`5D,`20new_file_name`5B256`5D;
X---`20962,969`20-----
X`20`20
X`20`20`20`20if`20(!(fp`20=`20do_open_item(g,m,"r",fp_open)))`20return`200;
X`20`20`20`20sprintf(prompt,"%s`20#%d,`20Print?`20`5BN`5D",ga`5Bg`5D->grp_name,
Vga`5Bg`5D->grp_ia`5Bm`5D.itm_num);
X!`20`20`20if`20(((i`20=`20ask_confirm(prompt,'N'))`20`26`201)`20`7C`7C`20
X!`20`20`20`20`20`20`20((filter`20`26`20(1`20<<`20FILTER_SELECT_ALL))`20==`200)
V)`20`7B
X`20`20`20`20`20`20FILE`20*fpw;
X`20`20`20`20`20`20int`20do_rotit`20=`200;
X`20`20`20`20`20`20char`20`20xfrbuf`5B512`5D,`20new_file_name`5B256`5D;
X**************
X***`20832,837
X`20`20`20`20`20`20FILE`20*fpw;
X`20`20`20`20`20`20int`20do_rotit`20=`200;
X`20`20`20`20`20`20char`20`20xfrbuf`5B512`5D,`20new_file_name`5B256`5D;
X`20`20
X`20`20`20`20`20`20fgetname(fp,full_name);
X`20`20`20`20`20`20if`20(rot13_sw`20`7C`7C`20ga`5Bg`5D->grp_flags`20`26`20NEWS_
VM_RESTRICT_SET)`20`7B
X---`20967,974`20-----
X`20`20`20`20`20`20FILE`20*fpw;
X`20`20`20`20`20`20int`20do_rotit`20=`200;
X`20`20`20`20`20`20char`20`20xfrbuf`5B512`5D,`20new_file_name`5B256`5D;
X+`20`20`20`20`20char`20header;
X+`20`20`20`20`20int`20header_line;
X`20`20
X`20`20`20`20`20`20fgetname(fp,full_name);
X`20`20`20`20`20`20if`20((rot13_sw`20`7C`7C`20ga`5Bg`5D->grp_flags`20`26`20NEWS
V_M_RESTRICT_SET)`20`7C`7C
X**************
X***`20834,840
X`20`20`20`20`20`20char`20`20xfrbuf`5B512`5D,`20new_file_name`5B256`5D;
X`20`20
X`20`20`20`20`20`20fgetname(fp,full_name);
X!`20`20`20`20`20if`20(rot13_sw`20`7C`7C`20ga`5Bg`5D->grp_flags`20`26`20NEWS_M_
VRESTRICT_SET)`20`7B
X`20`20`20`20`20`20`20`20sprintf(new_file_name,"SYS$SCRATCH:NEWS_%X_%X_PRINT.TM
VP",getpid(),time(0));
X`20`20`20`20`20`20`20`20fpw`20=`20fopen(new_file_name,"w");
X`20`20`20`20`20`20`20`20while`20(fgets(xfrbuf,510,fp))`20`7B
X---`20971,978`20-----
X`20`20`20`20`20`20int`20header_line;
X`20`20
X`20`20`20`20`20`20fgetname(fp,full_name);
X!`20`20`20`20`20if`20((rot13_sw`20`7C`7C`20ga`5Bg`5D->grp_flags`20`26`20NEWS_M
V_RESTRICT_SET)`20`7C`7C
X!`20`20`20`20`20`20`20`20`20((filter`20`26`20(1`20<<`20FILTER_SELECT_ALL))`20=
V=`200))`20`7B
X`20`20`20`20`20`20`20`20sprintf(new_file_name,"SYS$SCRATCH:NEWS_%X_%X_PRINT.TM
VP",getpid(),time(0));
X`20`20`20`20`20`20`20`20fpw`20=`20fopen(new_file_name,"w");
X`20`20`20`20`20`20`20`20
X**************
X***`20837,842
X`20`20`20`20`20`20if`20(rot13_sw`20`7C`7C`20ga`5Bg`5D->grp_flags`20`26`20NEWS_
VM_RESTRICT_SET)`20`7B
X`20`20`20`20`20`20`20`20sprintf(new_file_name,"SYS$SCRATCH:NEWS_%X_%X_PRINT.TM
VP",getpid(),time(0));
X`20`20`20`20`20`20`20`20fpw`20=`20fopen(new_file_name,"w");
X`20`20`20`20`20`20`20`20while`20(fgets(xfrbuf,510,fp))`20`7B
X`20`20`20`20`20`20`20`20`20`20if`20(*xfrbuf`20==`20'\n')`20do_rotit`20=`20rot1
V3_sw;
X`20`20`20`20`20`20`20`20`20`20if`20(do_rotit)`20`7B
X---`20975,989`20-----
X`20`20`20`20`20`20`20`20`20`20((filter`20`26`20(1`20<<`20FILTER_SELECT_ALL))
V`20==`200))`20`7B
X`20`20`20`20`20`20`20`20sprintf(new_file_name,"SYS$SCRATCH:NEWS_%X_%X_PRINT.TM
VP",getpid(),time(0));
X`20`20`20`20`20`20`20`20fpw`20=`20fopen(new_file_name,"w");
X+`20`20`20`20`20`20`20
X+`20`20`20`20`20`20`20if`20((check_header_line(filter,`20FILTER_SELECT_XNEWS))
V)`20`7B
X+`20`20`20`20`20`20`20`20`20sprintf(xfrbuf,"X-NEWS:`20%s`20%s:`20%d",
X+`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20news_node,ga`5Bg`5D->grp_n
Vame,ga`5Bg`5D->grp_ia`5Bm`5D.itm_num);
X+`20`20`20`20`20`20`20`20`20fputs(xfrbuf,fpw);
X+`20`20`20`20`20`20`20`20`20fputs("\n",`20fpw);
X+`20`20`20`20`20`20`20`20`20`7D
X+`20`20`20`20`20`20`20header`20=`201;
X+`20`20`20`20`20`20`20header_line`20=`20-1;
X`20`20`20`20`20`20`20`20while`20(fgets(xfrbuf,510,fp))`20`7B
X`20`20`20`20`20`20`20`20`20`20if`20(*xfrbuf`20==`20'\n')`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20do_rotit`20=`20rot13_sw;
X**************
X***`20838,846
X`20`20`20`20`20`20`20`20sprintf(new_file_name,"SYS$SCRATCH:NEWS_%X_%X_PRINT.TM
VP",getpid(),time(0));
X`20`20`20`20`20`20`20`20fpw`20=`20fopen(new_file_name,"w");
X`20`20`20`20`20`20`20`20while`20(fgets(xfrbuf,510,fp))`20`7B
X!`20`20`20`20`20`20`20`20`20if`20(*xfrbuf`20==`20'\n')`20do_rotit`20=`20rot13_
Vsw;
X!`20`20`20`20`20`20`20`20`20if`20(do_rotit)`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20char`20*a`20=`20xfrbuf;
X`20`20
X`20`20`20`20`20`20`20`20`20`20`20`20while`20(*a)`20`7B
X`20`20`09`20`20`20`20if`20((*a`20>=`20'A')`20`26`26`20(*a`20<=`20'Z'))`20*a
V`20=`20((*a`20-`20'A'`20+`2013)`20%`2026)`20+`20'A';
X---`20985,1013`20-----
X`20`20`20`20`20`20`20`20header`20=`201;
X`20`20`20`20`20`20`20`20header_line`20=`20-1;
X`20`20`20`20`20`20`20`20while`20(fgets(xfrbuf,510,fp))`20`7B
X!`20`20`20`20`20`20`20`20`20if`20(*xfrbuf`20==`20'\n')`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20do_rotit`20=`20rot13_sw;
X!`20`20`20`20`20`20`20`20`20`20`20header`20=`200;
X!`20`20`20`20`20`20`20`20`20`20`20`7D
X!`20`20`20`20`20`20`20`20`20if`20(header)`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20if`20((filter`20`26`20(1`20<<`20FILTER_SELEC
VT_ALL))`20!=`200)
X!`20`20`20`20`20`20`20`20`20`20`20`20`20fputs(xfrbuf,fpw);`20`20`20`20`20`20
V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20ALL`20headerl
Vines`20*/
X!`20`20`20`20`20`20`20`20`20`20`20else`20if`20((filter`20`26`20(1`20<<`20FILTE
VR_SELECT_NONE))`20==`200)
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`7B`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20`20/*`20not`20NONE`20*/
X!`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20try`20to`20check`20if`20new`20hea
Vderline:`20headerline`20contains`20':'`20and`20*/
X!`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20the`20first`20occurence`20of`20a
V`20':'`20is`20before`20the`20first`20occurence`20`20*/
X!`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20of`20a`20'`20'`20(if`20there`20is
V`20a`20space)`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20`20`20`20*/
X!`20`20`20`20`20`20`20`20`20`20`20`20`20if`20((strchr(xfrbuf,`20':')`20!=`200)
V`20`26`26`20(((strchr(xfrbuf,'`20')`20!=`200)`20
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`26`26`20(strchr(xfrbuf,`20':')
V`20<`20strchr(xfrbuf,'`20')))`20
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7C`7C`20(strchr(xfrbuf,'`20')
V`20==`200)))
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20header_line`20=`20get_header_lin
Ve(xfrbuf);
X!`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(check_header_line(filter,`20head
Ver_line))`20`20
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20fputs(xfrbuf,`20fpw);`20`20`20/*
V`20processing`20recognized`20headerline`20*/
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X!`20`20`20`20`20`20`20`20`20`20`20`7D
X!`20`20`20`20`20`20`20`20`20else`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20if`20(do_rotit)`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20`20`20char`20*a`20=`20xfrbuf;
X`20`20
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20while`20(*a)`20`7B`20`20
X`20`20`20`20`09`20`20`20`20`20`20if`20((*a`20>=`20'A')`20`26`26`20(*a`20<=`20'
VZ'))`20*a`20=`20((*a`20-`20'A'`20+`2013)`20%`2026)`20+`20'A';
X**************
X***`20842,851
X`20`20`20`20`20`20`20`20`20`20if`20(do_rotit)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20char`20*a`20=`20xfrbuf;
X`20`20
X!`20`20`20`20`20`20`20`20`20`20`20while`20(*a)`20`7B
X!`20`09`20`20`20`20if`20((*a`20>=`20'A')`20`26`26`20(*a`20<=`20'Z'))`20*a`20=
V`20((*a`20-`20'A'`20+`2013)`20%`2026)`20+`20'A';
X!`20`09`20`20`20`20else`20if`20((*a`20>=`20'a')`20`26`26`20(*a`20<=`20'z'))
V`20*a`20=`20((*a`20-`20'a'`20+`2013)`20%`2026)`20+`20'a';
X!`20`09`20`20`20`20++a;
X`20`20`09`20`20`20`20`7D
X`20`20`09`20`20`7D
X`20`20`20`20`20`20`20`20`20`20fputs(xfrbuf,fpw);
X---`201009,1019`20-----
X`20`20`20`20`20`20`20`20`20`20`20`20if`20(do_rotit)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20char`20*a`20=`20xfrbuf;
X`20`20
X!`20`20`20`20`20`20`20`20`20`20`20`20`20while`20(*a)`20`7B`20`20
X!`20`20`20`09`20`20`20`20`20`20if`20((*a`20>=`20'A')`20`26`26`20(*a`20<=`20'Z'
V))`20*a`20=`20((*a`20-`20'A'`20+`2013)`20%`2026)`20+`20'A';
X!`20`09`20`20`20`20`20`20else`20if`20((*a`20>=`20'a')`20`26`26`20(*a`20<=`20'z
V'))`20*a`20=`20((*a`20-`20'a'`20+`2013)`20%`2026)`20+`20'a';
X!`20`09`20`20`20`20`20`20++a;
X!`20`09`20`20`20`20`20`20`7D`20`20
X`20`20`09`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20fputs(xfrbuf,fpw);
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X**************
X***`20847,854
X`20`20`09`20`20`20`20else`20if`20((*a`20>=`20'a')`20`26`26`20(*a`20<=`20'z'))
V`20*a`20=`20((*a`20-`20'a'`20+`2013)`20%`2026)`20+`20'a';
X`20`20`09`20`20`20`20++a;
X`20`20`09`20`20`20`20`7D
X!`20`09`20`20`7D
X!`20`20`20`20`20`20`20`20`20fputs(xfrbuf,fpw);
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20fclose(fpw);
X`20`20`20`20`20`20`20`20fclose(fp);
X---`201015,1022`20-----
X`20`20`09`20`20`20`20`20`20++a;
X`20`20`09`20`20`20`20`20`20`7D`20`20
X`20`20`09`20`20`20`20`7D
X!`20`20`20`20`20`20`20`20`20`20`20fputs(xfrbuf,fpw);
X!`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20fclose(fpw);
X`20`20`20`20`20`20`20`20fclose(fp);
X**************
X***`20968,973
X`20`20`20`20int`20og`20=`200,`20di,`20li,`20fi,`20i,`20sg,`20eg,`20g,`20j;
X`20`20`20`20unsigned`20short`20pdl;
X`20`20`20`20char`20pdv`5B132`5D;
X`20`20`20`20$DESCRIPTOR(pdd,pdv);
X`20`20
X`20`20`20`20if`20(!getnoterange())`20`7B`20err_line("No`20items`20selected");
V`20return;`20`7D
X---`201136,1142`20-----
X`20`20`20`20int`20og`20=`200,`20di,`20li,`20fi,`20i,`20sg,`20eg,`20g,`20j;
X`20`20`20`20unsigned`20short`20pdl;
X`20`20`20`20char`20pdv`5B132`5D;
X+`20`20`20unsigned`20int`20header_filter;
X`20`20`20`20$DESCRIPTOR(pdd,pdv);
X`20`20
X`20`20`20`20if`20(!getnoterange())`20`7B`20err_line("No`20items`20selected");
V`20return;`20`7D
X**************
X***`201005,1010
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`7D
X`20`20
X`20`20`20`20for`20(di`20=`200;`20(li`20=`20d_itm`5Bdi`5D.litm),`20(fi`20=`20d_
Vitm`5Bdi`5D.fitm)`20;`20++di)`20`7B
X`20`20`20`20`20`20if`20(print_directory`20`26`26`20(og`20!=`20d_itm`5Bdi`5D.ng
Vrp))`20`7B
X`20`20`20`20`20`20`20`20og`20=`20d_itm`5Bdi`5D.ngrp;
X---`201174,1181`20-----
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`7D
X`20`20
X+`20`20`20init_filter(`26header_filter);
X+`20
X`20`20`20`20for`20(di`20=`200;`20(li`20=`20d_itm`5Bdi`5D.litm),`20(fi`20=`20d_
Vitm`5Bdi`5D.fitm)`20;`20++di)`20`7B
X`20`20`20`20`20`20if`20(print_directory`20`26`26`20(og`20!=`20d_itm`5Bdi`5D.ng
Vrp))`20`7B
X`20`20`20`20`20`20`20`20og`20=`20d_itm`5Bdi`5D.ngrp;
X**************
X***`201044,1050
X`20`20`20`20`20`20`20`20fprintf(pdf,"`20`20`20`20`20`20`20`20`20`20`20`20Title
V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Lines`20Date
V\n");
X`20`20`20`20`20`20`20`20`7D
X`20`20
X!`20`20`20`20`20if`20((fi`20>`200)`20`26`26`20!li)`20apply_filter(d_itm`5Bdi
V`5D.ngrp,fi,func);
X`20`20`20`20`20`20else`20if`20(fi`20<`200)`20`7B
X`20`20`20`20`20`20`20`20for`20(i`20=`201;`20i`20<=`20ga`5Bd_itm`5Bdi`5D.ngrp
V`5D->grp_count;`20++i)
X`20`20`20`20`20`20`20`20`20`20apply_filter(d_itm`5Bdi`5D.ngrp,ga`5Bd_itm`5Bdi
V`5D.ngrp`5D->grp_ia`5Bi`5D.itm_num,func);
X---`201215,1221`20-----
X`20`20`20`20`20`20`20`20fprintf(pdf,"`20`20`20`20`20`20`20`20`20`20`20`20Title
V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Lines`20Date
V\n");
X`20`20`20`20`20`20`20`20`7D
X`20`20
X!`20`20`20`20`20if`20((fi`20>`200)`20`26`26`20!li)`20apply_filter(d_itm`5Bdi
V`5D.ngrp,fi,header_filter,func);
X`20`20`20`20`20`20else`20if`20(fi`20<`200)`20`7B
X`20`20`20`20`20`20`20`20for`20(i`20=`201;`20i`20<=`20ga`5Bd_itm`5Bdi`5D.ngrp
V`5D->grp_count;`20++i)
X`20`20`20`20`20`20`20`20`20`20apply_filter(d_itm`5Bdi`5D.ngrp,ga`5Bd_itm`5Bdi
V`5D.ngrp`5D->grp_ia`5Bi`5D.itm_num,
X**************
X***`201047,1053
+-+-+-+-+-+-+-+-  END  OF PART 4 +-+-+-+-+-+-+-+-
----------------------------------------------------------------------------
Radio Suisse Ltd,       Internet:  winter@vision.rs.ch
Laupenstrasse 18a                  postmaster@rs.ch
3008 Bern               PSI-Mail: +22846431062::WINTER     (public X.25)
Switzerland             X.400: C=CH; A=ARCOM; P=RS; O=DM; S=WINTER, G=MARTIN
----------------------------------------------------------------------------
