%apply;capitalize(self.first_name) %apply;capitalize(self.surname)%if(occ!=0) (%occ;)%end; - #%index;

%include;css %include;js_perso_accesskey
%( %) %include;tools %let;l_version;7.00 - gwmr%in; %let;l_nbd; %if;(is_dead and computable_death_age and birth_date.day != "" and birth_date.prec = "" and death_date.day != "" and death_date.prec = "") %if;(death_date.julian_day > birth_date.julian_day) %expr(death_date.julian_day - birth_date.julian_day) %else;0%end; %elseif;(computable_age and has_birth_date and birth_date.day != "" and birth_date.prec = "") %if;(today.julian_day > birth_date.julian_day) %expr(today.julian_day - birth_date.julian_day) %else;0%end; %end; %in; %let;birth_symbol;%if;(bvar.birth_symbol != "")%bvar.birth_symbol;%else;°%end;%in; %let;death_symbol;%if;(bvar.death_symbol != "")%bvar.death_symbol;%else;†%end;%in; %let;l_child;%if;(bvar.always_surname = "yes" and evar.always_surname != "no")child%else;child_name%end;%in; %let;l_hh;%if;(sex=0)[him/her]0%elseif;(sex=1)[him/her]1%else;0%end;%in; %let;l_maxlev0;%if;(evar.maxlev != "" and evar.maxlev > 0)%evar.maxlev;%elseif;(bvar.maxlev != "")%bvar.maxlev;%else;1%end;%in; %let;l_maxlev;%if;(has_children and max_desc_level > 1 and l_maxlev0 > max_desc_level)%max_desc_level;%else;%l_maxlev0;%end;%in; %let;l_ref;%if;browsing_with_sosa_ref;%sosa_ref.index;%else;%index;%end;%in; %let;l_url;%if;(evar.wide!="");wide=%evar.wide;%end;%if;(evar.maxlev!="");maxlev=%l_maxlev;%end;%if;(evar.asclev!="");asclev=%evar.asclev;%end;%if;(evar.image!="");image=%evar.image;%end;%if;(evar.spouse!="");spouse=%evar.spouse;%end;%if;(evar.age!="");age=%evar.age;%end;;%in; %let;l_on1;target="_blank"%in; %let;l_ldates; %if;wizard; %if;(evar.del="on") class="nobr del" target="ifr" onclick="javascript:deleted(this);" href="%prefix;m=DEL_IND_OK;i=%nn; %else; class="nobr" %l_on1 href="%prefix;m=MOD_IND;i=%nn; %end; %else; href="#%nn; %end; %in; %let;l_ldates1; %if;wizard; %if;(evar.del="on") [delete::person/persons]0%nn; %else; [modify::person/persons]0%nn; %end; %end; %in; %let;l_lmarriage1; %if;(evar.del="on" and wizard) class="del" target="ifr" onclick="javascript:deleted(this);" href="%prefix;m=DEL_FAM_OK;%nn; %elseif;(wizard) %l_on1;%sp; href="%prefix;m=MOD_FAM;%nn; %else; href="#%nn; %end; %in; %let;l_lmarriage2; %if;(not cancel_links) %if;(evar.del="on" and wizard) [delete::family/families]0%nn; %elseif;(wizard) [modify::family/families]0%nn; %end; %end; %in; %define;chg_evt_fam_ord(xx) [*modify family %s event order:::xx]0 %end; %define;menu()
%if;wizard; ⟔%(⇱%) ↺ [*modify::person/persons]0%nn; ⇳ [*invert::event/events]1%(
[*modify person event order]0%) %if;(is_male or is_female) 👫 [*add::family/families]0%nn; %else; 👫 [*add::family/families]0 ([male/female/neuter]0)%nn; 👫 [*add::family/families]0 ([male/female/neuter]1)%nn; %end; %foreach;family; %if;(family_cnt>1) ⇪ [*invert::family/families]1 %expr(family_cnt-1) [and] %family_cnt; %end; %if;(family_cnt < 4) %let;a_k;%if;(family_cnt = 1)F%elseif;(family_cnt = 2)G%elseif;(family_cnt = 3)H%end;%in; ↺ [*modify::family/families]0 %if;(nb_families>1)%family_cnt;%end;%nn; %else; ↺ [*modify::family/families]0 %family_cnt;%nn; %end; ⇳ [*invert::event/events]1 [family/families]0 %if;(nb_families>1)%family_cnt;%end;%(
%apply;chg_evt_fam_ord(family_cnt)%) %end; %if;has_children; 👦👧 [*change children's names] %end; %if;(bvar.history_diff="yes" and has_history) ≏ [*last diff] ∴ [*history] %end; %if;(bvar.can_send_image != "no" and not has_portrait_url and first_name != "?" and surname != "?") 🎴 [*send::image/images]0%nn; %if;(auto_image_file_name != "")[*delete::image/images]0%end; %end; %if;has_possible_duplications; [*merge::possible duplications] (oc=%occ;) %end; ⨇ [*merge]0%nn; %nn; %if;(evar.del="on")[*user/password/cancel]2 [delete]%else;[*delete]%end;%nn; %if;(bvar.setup_link != "no") %let;l1;%if;(bvar.setup_http != "")%bvar.setup_http;%else;http://localhost:2316/%end;%in; %let;l2;%if;(has_sosa)s%sosa.v;%else;i%index;%end;%apply;initial(first_name_key)%apply;initial(surname_key)-%base.name;%in; %let;l_gwu;%l1;gwu?opt=check;anon=%base.name;;nn=on;c=%in;
| %if;(has_parents or has_children) %if;(version = l_version) Gwstp %else; Gwsetup (need to be running) %end; %if;has_parents; A%l2;.gw%nn; AWS%l2;.gw%nn; %end; %if;(has_parents and has_children) AD%l2;.gw%nn; %if;(has_sosa and sosa_ref.index != index) %let;l3;As1%apply;initial(sosa_ref.first_name_key)%apply;initial(sosa_ref.surname_key)D%l2;%in; %l3;.gw%nn; %end; %end; %if;has_children; D%l2;.gw%nn; %end; S-%surname_key;-%base.name;.gw%nn; %end; %end; %end;
%end; %define;buttons()
%apply;sosainfo() %if;((bvar.access_by_key!="yes" and evar.iz!="") or (bvar.access_by_key="yes" and evar.nz!="" and evar.pz!="")) X
%end; %if;(evar.spouse="off")👫%else;👤%end;
🎂 %if;(bvar.event_age!="on") %if;(bvar.no_image_for_visitor != "yes" or friend or wizard)
🎴 %end; %end; %if;(bvar.wide!="on")
%if;(evar.wide!="on")⚊%else;⚋%end; %end; %if;(wizard and bvar.misc!="yes")
%if;(evar.misc!="yes")M%else;M%end; %end;
%end; %define;init_count(prev_count) %reset_count; %for;i;0;prev_count; %incr_count; %end; %end; %define;a_title1(z1,z2) %nl; [father/mother]0%sp; %if;(z1.father.death_date.year != "" and z1.father.death_date.prec = "" and z2 >= z1.father.death_date.year) %death_symbol;%nn; -%expr(z2 - z1.father.death_date.year) %elseif;(z1.father.birth_date.year != "" and z1.father.birth_date.prec = "" and z2 > z1.father.birth_date.year) %expr(z2 - z1.father.birth_date.year)%nn; %else; ?%nn; %end; %nl; [father/mother]1%sp; %if;(z1.mother.death_date.year != "" and z1.mother.death_date.prec = "" and z2 >= z1.mother.death_date.year) %death_symbol;%nn; -%expr(z2 - z1.mother.death_date.year) %elseif;(z1.mother.birth_date.year != "" and z1.mother.birth_date.prec = "" and z2 > z1.mother.birth_date.year) %expr(z2 - z1.mother.birth_date.year)%nn; %else; ?%nn; %end; %nl; %end; %define;a_title2(z1,z2) %if;("z1" = "self" or "z1" = "spouse" or "z1" = "child" or "z1" = "ancestor") %if;(z1.has_families) %foreach;z1.family; [spouse/spouses]0%sp; %if;(spouse.death_date.year != "" and spouse.death_date.prec = "" and z2 >= spouse.death_date.year) %death_symbol;%nn; -%expr(z2 - spouse.death_date.year) %elseif;(spouse.birth_date.year != "" and spouse.birth_date.prec = "" and z2 > spouse.birth_date.year) %expr(z2 - spouse.birth_date.year)%nn; %else; ?%nn; %end; %nl; %end; %end; %end; %end; %define;a_title(xx) title="%nn; %if;(evar.del != "on") %if;xx.has_parents; %if;(xx.birth_date.year != "" and xx.birth_date.prec != ".." and xx.birth_date.prec != "|") %let;l1;%xx.birth_date.year;%in; %birth_symbol; %l1; %apply;a_title1("xx",l1) %end; %if;(xx.death_date.year != "" and xx.death_date.prec != ".." and xx.death_date.prec != "|") %let;l1;%xx.death_date.year;%in; %death_symbol; %l1; %if;(xx.computable_death_age) (%xx.death_age;)%end;%nn; %apply;a_title1("xx",l1) %apply;a_title2("xx",l1) %end; %if;(xx.computable_age) %let;l1;%today.year;%in; %birth_symbol; %l1; (%xx.age;)%nn; %apply;a_title1("xx",l1) %apply;a_title2("xx",l1) %end; %elseif;xx.has_families; %if;(xx.death_date.year != "" and xx.death_date.prec != ".." and xx.death_date.prec != "|") %let;l1;%xx.death_date.year;%in; %death_symbol;%l1; %if;(xx.computable_death_age) (%xx.death_age;)%end;%nn; %nl;%apply;a_title2("xx",l1) %end; %if;(xx.computable_age) %let;l1;%today.year;%in; %birth_symbol; %l1; (%xx.age;)%nn; %apply;a_title2("xx",l1) %end; %elseif;(xx.computable_death_age) %death_symbol; %xx.death_age;%nl; %elseif;(xx.computable_age) %birth_symbol; %xx.age;%nl; %end; %end;%nl; %l_ldates1;" %end; %define;link_dates(xx) %if;(not cancel_links) %sp;%nn; %if;(xx.dates!="")%xx.dates;%else;-%end;%else;%xx.dates;%end; %end; %define;link_marriage(xx) %if;(not cancel_links) %let;l1;%marriage_date.year;%in; %let;marriage_date_place; %if;(marriage_date.day != "")%marriage_date.day;/%end; %if;(marriage_date.month != "")%marriage_date.month;/%end; %if;(marriage_date.year != "")%marriage_date.year;%end;%nl; %if;(marriage_place != "")%marriage_place;%end;%nl;%nl; %in; %let;him;%nn; %if;(evar.del != "on") [him/her]0%sp; %if;(xx.computable_marriage_age) %xx.marriage_age; %else; ? [years old]%nn; %end; %if;(marriage_date.year != "" and marriage_date.prec != ".." and marriage_date.prec != "|" and xx.has_parents) %apply;a_title1("xx",l1) %else; %nl; %end; %end; %in; %let;her;%nn; %if;(evar.del != "on") [him/her]1%sp; %if;(xx.spouse.computable_marriage_age) %xx.spouse.marriage_age; %else; ? [years old]%nn; %end; %if;(marriage_date.year != "" and marriage_date.prec != ".." and marriage_date.prec != "|" and xx.spouse.has_parents) %apply;a_title1("xx.spouse",l1) %else; %nl; %end; %end; %in; %if;(on_marriage_date != "")&%marriage_date.prec;%marriage_date.year;%else;&%end; %foreach;event; %if;(event.has_spouse and spouse.index = event.spouse.index) %if;(event.name = [divorce event])-%nn; %if;event.has_date;%event.date.prec;%event.date.year;%end; %elseif;(event.name = [separate event])-%nn; %if;event.has_date;%event.date.prec;%event.date.year;%end; %end; %end; %end; %else; &%if;(on_marriage_date != "")%marriage_date.prec;%marriage_date.year;%end; %foreach;event; %if;(event.has_spouse and spouse.index = event.spouse.index) %if;(event.name = [divorce event])-%nn; %if;event.has_date;%event.date.prec;%event.date.year;%end; %elseif;(event.name = [separate event])-%nn; %if;event.has_date;%event.date.prec;%event.date.year;%end; %end; %end; %end; %end; %end; %define;link_name(xx) %if;(cancel_links or xx.is_restricted) %xx;%nn; %else; %xx;%nn; %end; %end; %define;link_name1(xx,yy,zz) %if;(cancel_links or xx.is_restricted) %yy;%nn; %else; %yy;%nn; %end; %end; %define;link_image(xx) %end; %define;somebody(xx) %apply;link_name("xx") %xx.title; %apply;link_dates("xx") %end; %define;somebody1(xx,yy,zz) %apply;link_name1("xx","yy","zz") %xx.title; %apply;link_dates("xx") %end; %define;child_long_info(curlev,maxlev) %let;next_chi;chi_%if;(nb_children != child_cnt)%family_cnt;_%expr(child_cnt + 1)%else;1_1%end;%in; %apply;somebody1%with; child%and; %l_child;%and; %if;(curlev = 1)id="chi_%family_cnt;_%child_cnt;"%if;(child.has_sosa) name="sosa" %end;%sp; onkeypress="javascript:return acc_key(this,event,'sib_1','spo_%family_cnt;','%next_chi;','child_%child.index;','0','0','0');" %end; %end; %if;(has_families) %(%if;(evar.image!="off") %foreach;family; %if;(evar.spouse != "off")
%if;(spouse.has_image)%apply;link_image("spouse")
%end; %apply;somebody("spouse")
%end; %if;(curlev < maxlev) %if;(has_children) %foreach;child;
%if;(child.has_image)%apply;link_image("child")
%end; %apply;child_long_info(curlev+1,maxlev)
%end; %end; %end; %end; %else; %end;%) %foreach;family; %if;(evar.spouse != "off") %if;(self.sex = 0) %apply;link_marriage("self") %else; %apply;link_marriage("self.spouse") %end; %sp;%apply;somebody("spouse") %end; %if;(curlev < maxlev) %if;(has_children)

%foreach;child;
1. %apply;child_long_info(curlev+1,maxlev)
%end;

%end; %end; %end; %end; %end; %define;children_list() %if;has_children; %(%if;(evar.image!="off") %foreach;child;
%if;(has_image)%apply;link_image("self")
%end; %apply;child_long_info(1,l_maxlev)
%end; %else; %end;%)

%foreach;child;
1. %apply;child_long_info(1,l_maxlev)
%end;

%end; %end; %define;advanced(z1,z2) %if;(not cancel_links and bvar.hide_advanced_request != "yes") %let;x1; %prefix;m=H;v=advanced;focus=z1;birth1_yyyy=%birth_date.year;;death2_yyyy=%death_date.year;;z1=%nn; %in; z2%nn; %else; z2%nn; %end; %end; %define;content_family(xx,yy) %(%if;(evar.image!="off")
%if;(xx.has_image)%apply;link_image("xx")
%end; %xx;%xx.title; %xx.dates;
%if;(xx.sex = 0) %apply;link_marriage("xx") %else; %apply;link_marriage("xx.spouse") %end;
%if;(yy.has_image)%apply;link_image("yy")
%end; %apply;somebody1%with;yy%and;yy%and;%end;
%else; %end;%) %let;next_spo;spo_%if;(nb_families != family_cnt)%expr(family_cnt + 1)%else;1%end;%in; %if;(xx.sex = 0) %apply;link_marriage("xx") %else; %apply;link_marriage("xx.spouse") %end;%sp; %apply;somebody1%with; yy%and; yy%and; id="spo_%family_cnt;" onkeypress="javascript:return acc_key(this,event,'sib_1','%next_spo;','chi_%family_cnt;_1','spouse_%spouse.index;','0','0','f%family.index;');" %end; %apply;children_list() %end; %define;parents(z1,z2,z3) %foreach;ancestor_level(z1) %if;(level = z1) %foreach;ancestor; %if;(ancestor.anc_sosa = z3 or ancestor.anc_sosa = z3 + 1) %let;l_sosa;%ancestor.anc_sosa;%in z2 %if;(ancestor.has_siblings)♦ %elseif;(ancestor.has_parents)◊ %elseif;(wizard and not cancel_links) – %else;– %end; %apply;link_name1%with; ancestor%and; ancestor%and; id="par_%l_sosa;"%sp; onkeypress="javascript:return acc_key(this,event,'sib_1','spo_1','chi_1_1','ancestor_%ancestor.index;','add_par_%l_sosa;','par_%l_sosa;','par_%l_sosa;');" %end; %apply;link_dates("ancestor")
%end; %end; %end; %end; %end; %define;consang() %if;(has_parents) %reset_count; %foreach;ancestor_level %foreach;ancestor %if;(ancestor.same != "")%incr_count;%end; %end; %end; %if;(has_consanguinity or count != 0) %if;(cancel_links) [consanguinity][:] %consanguinity; %else; [consanguinity][:] %consanguinity; %end; %end; %end; %end; %define;implex() %if;(has_parents) %reset_count; %foreach;ancestor_level %foreach;ancestor %if;(ancestor.same != "")%incr_count;%end; %end; %end; %if;(count != 0) %if;(not cancel_links), %count; %if;(count=1)[implex/implexes]0%else[implex/implexes]1%end; %else;, %count; %if;(count=1)[implex/implexes]0%else[implex/implexes]1%end; %end; %end; %end; %end; %define;anc_families() %if;has_parents;
[up to] %apply;ascmax()%apply;implex()
%let;l1;%apply;min(max_anc_level,5)%in; [*ancestor/ancestors]1 %if;(not cancel_links) %if;(max_anc_level>3) %let;l2;%if;(max_anc_level<6)%expr(max_anc_level+1)%else;5%end;%in; %for;i;1;l2; %if;(i=1 or i=2) %else; %if;(i<10) %end;%i; %end; %end; %end; [*ascendants tree]%nn; [*horizontal tree]%nn; [*table] [*ancestor/ancestors]1%nn; [*long display]%nn; [*age at death]%nn; [*surnames branch]%nn; Menu [tools] [ancestor/ancestors]1%nn; %end;
%if(evar.asclev=3 or evar.asclev="") %if;father.has_parents;%apply;parents(3," ",4)%end; %apply;parents(2,"",2) %if;mother.has_parents;%apply;parents(3," ",6)%end; %elseif;(evar.asclev>3) %if;father.has_parents; %if;father.father.has_parents;%apply;parents(4," ",8)%end; %apply;parents(3," ",4) %if;father.mother.has_parents;%apply;parents(4," ",10)%end; %end; %apply;parents(2,"",2) %if;mother.has_parents; %if;mother.father.has_parents;%apply;parents(4," ",12)%end; %apply;parents(3," ",6) %if;mother.mother.has_parents;%apply;parents(4," ",14)%end; %end; %end;
%apply;consang()
%if;(father.nb_children > 1 or mother.nb_children > 1)[*full siblings]%else;[*relationship]%end; %if;(not cancel_links) [*relationship computing] 👪 %if;(browsing_with_sosa_ref) %if;(sosa_ref.index != "" and sosa_ref.index != index) [*shortest path] ♆%nn; %end; %end; [*family time line]%nn; %if;(has_parents) %if;(father.has_siblings or mother.has_siblings) [*uncles and aunts]%nn; %end; %end; %if;has_nephews_or_nieces; [*a nephew/a niece]4%nn; %end; %end;
%if;(father.nb_children > 1 or mother.nb_children > 1)

%foreach;father.child;
1. %if;is_self;%end; %let;next_sib;sib_%expr(child_cnt + 1)%in; %apply;link_name1%with; child%and; %l_child;%and; id="sib_%child_cnt;"%sp; onkeypress="javascript:return acc_key(this,event,'%next_sib;','spo_1','chi_1_1','child_%child.index;','0','0','0');" %end; %if;is_self;%end; %apply;link_dates("child")
%end;

%foreach;father.family; %if;(spouse.index != mother.index) %if;has_children;

1. %apply;on_side(father)
   [with] %apply;somebody("spouse")[:]
%foreach;child;
2. %if;is_self;%end; %let;next_sib;sib_%expr(child_cnt + 1)%in; %apply;link_name1%with; child%and; %l_child;%and; %end; %if;is_self;%end; %apply;link_dates("child")
%end;

%end; %end; %end; %foreach;mother.family; %if;(spouse.index != father.index) %if;has_children;

1. %apply;on_side(mother)
   [with] %apply;somebody("spouse")[:]
%foreach;child;
2. %if;is_self;%end; %let;next_sib;sib_%expr(child_cnt + 1)%in; %apply;link_name1%with; child%and; %l_child;%and; %end; %if;is_self;%end; %apply;link_dates("child")
%end;

%end; %end; %end;
%end; %elseif;(wizard and not cancel_links and first_name != "?" and surname != "?")
[*add::parents]
%end; %end; %define;lex(xx,yy) %if;(yy = 0)[xx]0%elseif;(yy = 1)[xx]1%else;[xx]2%end; %end; %define;relations_tree(z1) %reset_count; %reset_count; %end; %define;relation_computing(himxx, herxx, typexx) %let;l_rt; %if;("typexx" = "") %if;(relation_type = [godfather/godmother/godparents]2 or relation_type = [godfather/godmother/godparents]1 or relation_type = [godfather/godmother/godparents]0) godfather/godmother/godparents%nn; %elseif;(relation_type = [adoptive father/adoptive mother/adoptive parents]2 or relation_type = [adoptive father/adoptive mother/adoptive parents]1 or relation_type = [adoptive father/adoptive mother/adoptive parents]0) adoptive father/adoptive mother/adoptive parents%nn; %elseif;(relation_type = [recognizing father/recognizing mother/recognizing parents]2 or relation_type = [recognizing father/recognizing mother/recognizing parents]1 or relation_type = [recognizing father/recognizing mother/recognizing parents]0) recognizing father/recognizing mother/recognizing parents%nn; %elseif;(relation_type = [candidate father/candidate mother/candidate parents]2 or relation_type = [candidate father/candidate mother/candidate parents]1 or relation_type = [candidate father/candidate mother/candidate parents]0) candidate father/candidate mother/candidate parents%nn; %elseif;(relation_type = [foster father/foster mother/foster parents]2 or relation_type = [foster father/foster mother/foster parents]1 or relation_type = [foster father/foster mother/foster parents]0) foster father/foster mother/foster parents%nn; %end; %else; *%nn; %end; %in; %let;l_rt0;%if;(l_rt != "*")%apply;lex(l_rt,0)%else;typexx%end;%in; %let;l_rt1;%if;(l_rt != "*")%apply;lex(l_rt,1)%else;typexx%end;%in; %if;(not cancel_links) %reset_count; •%nn; %nn; %else;%if;not is_first;,%sp;%end; %end; %end; %define;age_at(xx) [age at %s birth date:::xx]%nn; %end; %define;link_s(z1,z2) %if;cancel_links;z2%nn; %else; %let;x1; %prefix;m=S;z1=%nn; %in; z2%nn; %end; %end; %define;nb_days(xx) %apply;nth%with; /31/28/31/30/31/30/31/31/30/31/30/31%and; xx%end; %end; %define;compute_age1(z1,z2,z3) 31)title="%l_nbd; [days old]" %end;>%if;(z1 > 0) %if;(z1 = 1)[one year old]%else;z1 [years old]%end; %if;(z2 > 0 or z3 > 0), %end; %end; %if;(z2 > 0) %if;(z2 = 1)[one month old]%else;z2 [months old]%end; %if;(z3 > 0), %end; %end; %if;(z3 > 0) %if;(z3 = 1)[one day old]%else;z3 [days old]%end; %end; %end; %define;compute_age(z1,z2) %( test for z1.year has been done before call %) %let;l1;%apply;nb_days(z2.month)%in; %if;(z1.month!="" and z2.month!="" and z1.month > z2.month) %if;(z1.day!="" and z2.day!="" and z1.day >= z2.day) %apply;compute_age1(z1.year - z2.year,z1.month - z2.month,z1.day - z2.day) %else; %apply;compute_age1(z1.year - z2.year,z1.month - z2.month - 1,l1 + z1.day - z2.day) %end; %end; %if;(z1.month!="" and z2.month!="" and z1.month = z2.month) %if;(z1.day!="" and z2.day!="" and z1.day >= z2.day) %apply;compute_age1(z1.year - z2.year,0,z1.day - z2.day) %elseif;(z1.year > z2.year) %apply;compute_age1(z1.year - z2.year - 1,11,l1 + z1.day - z2.day) %end; %end; %if;(z1.month!="" and z2.month!="" and z1.month < z2.month and z1.year > z2.year) %if;(z1.day!="" and z2.day!="" and z1.day >= z2.day) %apply;compute_age1(z1.year - z2.year - 1,12 + z1.month - z2.month,z1.day - z2.day) %else; %apply;compute_age1(z1.year - z2.year - 1,11 + z1.month - z2.month,l1 + z1.day - z2.day) %end; %end; %end; %define;on_edate(z1) %if;((bvar.event_age != "yes" and evar.age !="on") and event.age != "")%sp;%z1.on_date; %else;%sp;%z1.on_date; %end; %if;((bvar.event_age = "yes" or evar.age = "on") and event.age != "") • %event.age;%nn; %elseif;(event.name = [birth] and computable_age) %elseif;(event.age != "" and event.name = [death]) %end; %end; %define;curr_age() %foreach;event; %if;(event.name=[death] and has_death_date and has_birth_date) %if;(death_date.prec="" and birth_date.prec="" and death_date.year!="" and birth_date.year!="" and death_date.year >= birth_date.year)%apply;compute_age("death_date","birth_date")%else;%event.age;%end; %end; %end; %if;(computable_age) %if;(birth_date.year!= "" and today.year >= birth_date.year and l_nbd != "")%apply;compute_age("today","birth_date")%else;%age;%end; %if;birthday; ([happy birthday to you!])%end; %if;(version = l_version and today = birth_date.date)[today]%end; %end; %end; %define;timeline_tree(z1) %reset_count; %foreach;event; %if;(event.has_witnesses)%incr_count;%end; %end; %if;(count > 1) %reset_count;
[*tree of witnesses] %reset_count;
%end; %end; %define;event_tree(z1) %reset_count;
└ %reset_count; %end; %define;birth_event() %let;parents_age; %if;has_parents; %apply;a_of_b%with; %if(is_male)[*son/daughter/child]0%elseif;(is_female)[*son/daughter/child]1%else;[*son/daughter/child]2%end; %and; %if;(bvar.event_age!="yes" and evar.age!="on")%nl;%end; %father; %if;(father_age_at_birth != ""), %if;(bvar.event_age="yes" or evar.age="on")%father_age_at_birth;%else;%father_age_at_birth;%end;%if;(bvar.event_age="yes" or evar.age="on"),%end; %end; %if;(bvar.event_age!="yes" and evar.age!="on")%nl;%else;%sp;[and]%sp;%end; %mother; %if;(mother_age_at_birth != ""), %if;(bvar.event_age="yes" or evar.age="on")%mother_age_at_birth;%else;%mother_age_at_birth;%end; %end; %end; %end; %in; %if;(bvar.event_age!="yes" and evar.age!="on")%apply;capitalize(event.name)%else;%apply;capitalize(event.name)%end; %if;event.has_date;%apply;on_edate("event")%end; %if;event.has_place; • %apply;advanced("birth_place",event.place)%end; %if;((bvar.event_age = "yes" or evar.age="on") and has_parents)
└ %parents_age;. %end; %end; %define;baptism_event() %apply;capitalize(event.name) %if;event.has_date;%apply;on_edate("event")%end; %if;event.has_place; • %apply;advanced("bapt_place",event.place)%end; %end; %define;death_event() %apply;capitalize(event.name) %if;event.has_date;%apply;on_edate("event")%end; %if;event.has_place; • %apply;advanced("death_place",event.place)%end; %if;has_linked_page.DEATH;
  %linked_page.DEATH;
%end; %end; %define;burial_event() %apply;capitalize(event.name) %if;event.has_date;%apply;on_edate("event")%end; %if;event.has_place; • %apply;advanced("burial_place",event.place)%end; %end; %define;marriage_event() %if;(evar.spouse="off")%apply;capitalize(event.name) %else;%apply;capitalize(event.name)%end; %if;(event.has_spouse and evar.spouse!="off") [with] %event.spouse;%end; %if;event.has_date;%apply;on_edate("event")%end; %if;event.has_place; • %apply;advanced("marriage_place",event.place)%end; %end; %define;other_event() %if;(evar.spouse="off")%if;(event.name=[no mention])[*relation/relations]0%else;%apply;capitalize(event.name)%end; %else;%if;(event.name=[no mention])[*relation/relations]0%else;%apply;capitalize(event.name)%end;%end; %if;(event.has_spouse and evar.spouse!="off" and event.name!=[divorce event] and event.name!=[separate event] and event.name!=[annulation]) [with] %event.spouse;%end; %if;event.has_date;%apply;on_edate("event")%end; %if;event.has_place; • %event.place;%end; %end; %define;one_event(z1) %if;("z1" = [birth])%apply;birth_event() %elseif;("z1" = [baptism])%apply;baptism_event() %elseif;("z1" = [death])%apply;death_event() %elseif;("z1" = [burial])%apply;burial_event() %elseif;("z1" = [marriage/marriages]0)%apply;marriage_event() %else;%apply;other_event() %end; %if;event.has_witnesses; %apply;event_tree(l_ref)%nn; %reset_count;%foreach;event_witness;%incr_count;%end; %if;(count>1)[witness/witnesses]1%else;[witness/witnesses]0%end;[:] %foreach;event_witness; %if;(not is_first and not cancel_links)%sp;%end; %if;(count>1)%apply;relation_computing("event_witness","",[witness/witnesses]0)%end; %apply;somebody("event_witness") %end; %end; %if;event.has_note;
%event.note;
%end; %end; %define;witness_at_event(xx) [*witness at %s of:::xx]%nn; %end; %define;timeline()
%if;has_occupation; %apply;advanced%with;occu%and;%apply;capitalize(occupation)%end%nn; %end; %if;(has_linked_pages and has_linked_page.OCCU) %if;has_occupation;, %end;%linked_page.OCCU; %end;
%foreach;event;
%apply;one_event(event.name)
%end; %if;not cancel_links;%apply;timeline_tree(l_ref)%end; %end; %define;descmax() %if;has_children; %foreach;descendant_level; %if;(max_desc_level > 1 and level = max_desc_level) %if;(level!= 1 and level!=0)[up to] %number_of_descendants;%nn; %sp;à %level; [generation/generations]1 %end; %end; %end; %end; %end; %define;desc(xx) %foreach;descendant_level; %if;(level = xx)%number_of_descendants;%end; %end; %end; %define;ascmax() %foreach;ancestor_level; %if;(level = max_anc_level) %number_of_ancestors; à %level; %if;(level = "1") [generation/generations]0%else; [generation/generations]1%end; %end; %end; %end; %define;asc(xx) %foreach;ancestor_level; %if;(level = xx)%number_of_ancestors;%end; %end; %end; %define;nav_with_sosa_ref(xx) √ %end; %define;sosainfo() %if;not cancel_links; %if;(sosa=1)[*Sosa] 1 %elseif;(has_sosa and sosa != 1) %let;l_sosa_ref;%apply;a_of_b%with;%and;%apply;link_name("sosa_ref")%end;%in; [*Sosa] %sosa; %l_sosa_ref; %end; %if;(not browsing_with_sosa_ref or sosa_ref.index!=index) %apply;nav_with_sosa_ref%with;%self;%end; %end; %end; %end; %( %) %include;hed
%message_to_wizard; %if;(evar.del = "on")

# [*delete::] [person/persons]0 (-) [or] [family/families]0 (&)

%if;(wizard and bvar.can_kill_ancestors="yes")

/!\ can_kill_ancestors=yes %nn; %self; /!\ [delete::ancestor/ancestors]0 /!\ can_kill_ancestors=yes /!\

%end; %end;
%( %)

# %if;(has_public_name) %apply;link_s("n",public_name) %else; %if;cancel_links;%first_name;%else;%first_name;%end; %end; %sp; %if;has_qualifiers;%qualifier; %end; %if;cancel_links;%surname; %else;%surname; %end; %apply;link_dates("self")

%if;(has_image and evar.image!="off")
%end;

%if;has_nobility_titles;
%foreach;nobility_title;%nobility_title;
%end; %end; %if;(has_linked_pages and has_linked_page.HEAD)%linked_page.HEAD;
%end; %if;has_qualifiers;
%apply;lazy_print("") %foreach;qualifier; %if;not is_first; %if;(lazy_printed)/%end; %lazy_force; %apply;link_s("n",qualifier)%nn; %end; %end; %end; %if;has_aliases; %apply;lazy_print("") %if;(has_qualifiers)
%end; %nn; %foreach;alias; %if;(lazy_printed)/%end; %lazy_force; %apply;link_s("n",alias)%nn; %end; %end; %if;(has_public_name or has_qualifiers) %if;(has_aliases or has_qualifiers)
%end; %apply;link_s("p",first_name)%sp; %apply;link_s("n",surname) %end; %if;has_first_names_aliases; %apply;lazy_print("")
%foreach;first_name_alias; %if;(lazy_printed)/%end; %lazy_force; %apply;advanced("first_name",first_name_alias)%nn; %end; %end; %if;has_surnames_aliases; %apply;lazy_print("")
%foreach;surname_alias; %if;(lazy_printed)/%end; %lazy_force; %apply;link_s("n",surname_alias)%nn; %end; %end;
%if;(is_dead and computable_death_age)[*age at death][:] %apply;curr_age()%end; %if;(not is_dead and computable_age)[*age][:] %apply;curr_age()%end;

%apply;timeline() %if;(bvar.timeline="yes") %include;timeline %end; %( %) %( %) %if;(has_relations)
%reset_count; %foreach;relation;%if;(has_relation_him or has_relation_her)%incr_count;%end;%end; %foreach;related;%incr_count;%end; %foreach;event_witness_relation;%incr_count;%end; %let;cnt;%count;%in;
%if;(not cancel_links and cnt>1)%apply;relations_tree(l_ref)%end[*relation/relations]1%if;(not cancel_links and cnt>1)
%end; %foreach;relation;
%if;(has_relation_him and has_relation_her) %apply;relation_computing("relation_him", "relation_her", "") %apply;capitalize(relation_type)[:] %apply;somebody("relation_him") %sp;[and]%sp;%apply;somebody("relation_her"). %end; %if;(has_relation_him and not has_relation_her) %apply;relation_computing("relation_him", "", "") %apply;capitalize(relation_type)[:] %apply;somebody("relation_him"). %end; %if;(not has_relation_him and has_relation_her) %apply;relation_computing("", "relation_her", "") %apply;capitalize(relation_type)[:] %apply;somebody("relation_her"). %end;
%end; %foreach;related;
%apply;relation_computing("related", "", related_type) %apply;capitalize(related_type)[:] %apply;somebody("related").
%end; %foreach;event_witness_relation;
%apply;relation_computing("event_witness_relation.person","",[witness/witnesses]0)%sp; %apply;a_of_b%with;[*witness/witnesses]0%and; %apply;a_of_b%with;%event_witness_relation.event.name;%and;%end;%end; %apply;somebody("event_witness_relation.person")%if;(event_witness_relation.event.spouse = "").%end; %if;(event_witness_relation.event.spouse != "") %sp;%if;(event_witness_relation.event.has_date)%sp;&%event_witness_relation.event.date.year; %else;& %end; %apply;somebody("event_witness_relation.event.spouse"). %end;%nn;
%end; %end;
%if;(has_notes or has_linked_page.BNOTE or has_linked_page.NOTE)
%if;(has_linked_pages and not cancel_links)%end;[*note/notes]1%if;(has_linked_pages and not cancel_links)*%end;%if;(has_linked_pages and not cancel_links)%end;
%if;(has_linked_page.BNOTE) %linked_page.BNOTE; %end; %notes; %if;(has_linked_page.NOTE) %linked_page.NOTE; %end;
%end;
%if;has_families; %foreach;family() %if;has_comment;

## [*marriage with] %spouse;

%comment;
%end; %end; %end; %apply;lazy_print%with;

## [*source/sources]1

%end; %if;(has_sources or has_linked_page.BIBLIO) %if;(has_linked_page.BIBLIO)%lazy_force;
- %linked_page.BIBLIO;
%end; %foreach;source; %if;(source_type = [person/persons]0 or source_type = [family/families]0) %lazy_force;
- %apply;capitalize(source_type)[:] %source;
%end; %end; %end; %foreach;event() %if;event.has_src; %lazy_force;
- %apply;capitalize(event.name) %if;(event.has_spouse) [with] %event.spouse;%end;[:] %event.src;
%end; %end; %if;lazy_printed;

%end; %( %) %( %)

%apply;anc_families() %if;has_families;
%if;not has_children;

## %if;(nb_families>1)[*spouse/spouses]1%else;[*spouse/spouses]0%end;

%elseif;has_children; %apply;descmax()
%let;lv;%if;(evar.maxlev!="")%evar.maxlev;%elseif(bvar.maxlev!="")%bvar.maxlev;%else;1%end;%in; [*descendants] %if;(not cancel_links) %if;(max_desc_level>1) %let;l2;%expr(max_desc_level+1)%in; %for;i;1;l2; %if;(i<10) %end;%i; %end; %end; [*descendants tree]%nn; %let;l1;%apply;min(max_desc_level,5)%in; [*descendant tree view]%nn; [*table] [descendants]%nn; [*long display]%nn; Menu [tools] [descendants]%nn; %end; %end;
%foreach;family;
%if;(wizard and not cancel_links and family_cnt != 1) %if;(family_cnt != 1) ^ %if;(family.father.index = prev_family.father.index and family.mother.index = prev_family.mother.index) %nn; [*merge::] %end; %end; %end;
%(⇳%) %apply;content_family("self","spouse") %if;(evar.opt = "from" and wizard)(%origin_file;)%nl;%end; %if;(evar.image="on" and nb_families > 1)

%end; %end;
%else; %if;(wizard and not cancel_links)
%if;((first_name = "?" or surname = "?") and (nb_families != 0 or has_parents)) %elseif;(is_male or is_female) 👫 [*add::family/families]0%nn;
%end;
%end; %end; %( %) %( %) %if;(not cancel_links and wizard and (evar.misc = "yes" or bvar.misc = "yes"))

- index #%index;
- wikitext

%misc_names;
%end; %if;(evar.del="on")
%end;
%if;(not cancel_links) %apply;menu() %apply;buttons() %base_trailer; %include;copyr %end; %include;js