Proving Distributed Algorithms by Combining Refinement and Local Computations
Identifieur interne : 001F96 ( Main/Curation ); précédent : 001F95; suivant : 001F97Proving Distributed Algorithms by Combining Refinement and Local Computations
Auteurs : Mohamed Tounsi [France] ; Mohamed Mosbah [France] ; Dominique Méry [France]Source :
English descriptors
Abstract
Distributed algorithms are considered to be very complex to design and to prove; our paper contributes to the design of correct-by-construction distributed algorithms. The main idea relies upon the development of distributed algorithms following a top/down approach, which is clearly well known in earlier works of Dijkstra, and to use refinement for proving the correctness of the resulting algorithms. However, the link between the problem and the first model remains to be expressed and the refinement is a real help to justify in a very progressive way the choices of design. We propose in this work a framework combining local computations models and refinement to prove the correctness of a large class of distributed algorithms. Local computations models define abstract computing processes for solving problems by distributed algorithms and can be integrated into a the Event-B modelling language to define proof-based patterns for the design of distributed algorithms. We illustrate our approach by examples like the leader election protocol or the distributed coloring algorithm. Our proposal is integrated into an environment called ViSiDiA.
Url:
Links toward previous steps (curation, corpus...)
- to stream Hal, to step Corpus: Pour aller vers cette notice dans l'étape Curation :003E41
- to stream Hal, to step Curation: Pour aller vers cette notice dans l'étape Curation :003E41
- to stream Hal, to step Checkpoint: Pour aller vers cette notice dans l'étape Curation :001A46
- to stream Main, to step Merge: Pour aller vers cette notice dans l'étape Curation :002039
Links to Exploration step
Hal:hal-00644187Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en">Proving Distributed Algorithms by Combining Refinement and Local Computations</title>
<author><name sortKey="Tounsi, Mohamed" sort="Tounsi, Mohamed" uniqKey="Tounsi M" first="Mohamed" last="Tounsi">Mohamed Tounsi</name>
<affiliation wicri:level="1"><hal:affiliation type="laboratory" xml:id="struct-3102" status="VALID"><orgName>Laboratoire Bordelais de Recherche en Informatique</orgName>
<orgName type="acronym">LaBRI</orgName>
<desc><address><addrLine>Domaine Universitaire 351, cours de la Libération 33405 Talence Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.labri.fr</ref>
</desc>
<listRelation><relation active="#struct-91134" type="direct"></relation>
<relation active="#struct-92972" type="direct"></relation>
<relation active="#struct-300366" type="direct"></relation>
<relation name="UMR5800" active="#struct-441569" type="direct"></relation>
</listRelation>
<tutelles><tutelle active="#struct-91134" type="direct"><org type="institution" xml:id="struct-91134" status="OLD"><orgName>Université Bordeaux Segalen - Bordeaux 2</orgName>
<desc><address><addrLine>146 rue Léo Saignat - 33076 Bordeaux cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.univ-bordeauxsegalen.fr/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-92972" type="direct"><org type="institution" xml:id="struct-92972" status="OLD"><orgName>Université Sciences et Technologies - Bordeaux 1</orgName>
<desc><address><addrLine>351 cours de la Libération - 33405 Talence cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.u-bordeaux1.fr</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300366" type="direct"><org type="institution" xml:id="struct-300366" status="VALID"><orgName>École Nationale Supérieure d'Électronique, Informatique et Radiocommunications de Bordeaux (ENSEIRB)</orgName>
<desc><address><country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle name="UMR5800" active="#struct-441569" type="direct"><org type="institution" xml:id="struct-441569" status="VALID"><idno type="IdRef">02636817X</idno>
<idno type="ISNI">0000000122597504</idno>
<orgName>Centre National de la Recherche Scientifique</orgName>
<orgName type="acronym">CNRS</orgName>
<date type="start">1939-10-19</date>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://www.cnrs.fr/</ref>
</desc>
</org>
</tutelle>
</tutelles>
</hal:affiliation>
<country>France</country>
</affiliation>
</author>
<author><name sortKey="Mosbah, Mohamed" sort="Mosbah, Mohamed" uniqKey="Mosbah M" first="Mohamed" last="Mosbah">Mohamed Mosbah</name>
<affiliation wicri:level="1"><hal:affiliation type="laboratory" xml:id="struct-3102" status="VALID"><orgName>Laboratoire Bordelais de Recherche en Informatique</orgName>
<orgName type="acronym">LaBRI</orgName>
<desc><address><addrLine>Domaine Universitaire 351, cours de la Libération 33405 Talence Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.labri.fr</ref>
</desc>
<listRelation><relation active="#struct-91134" type="direct"></relation>
<relation active="#struct-92972" type="direct"></relation>
<relation active="#struct-300366" type="direct"></relation>
<relation name="UMR5800" active="#struct-441569" type="direct"></relation>
</listRelation>
<tutelles><tutelle active="#struct-91134" type="direct"><org type="institution" xml:id="struct-91134" status="OLD"><orgName>Université Bordeaux Segalen - Bordeaux 2</orgName>
<desc><address><addrLine>146 rue Léo Saignat - 33076 Bordeaux cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.univ-bordeauxsegalen.fr/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-92972" type="direct"><org type="institution" xml:id="struct-92972" status="OLD"><orgName>Université Sciences et Technologies - Bordeaux 1</orgName>
<desc><address><addrLine>351 cours de la Libération - 33405 Talence cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.u-bordeaux1.fr</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300366" type="direct"><org type="institution" xml:id="struct-300366" status="VALID"><orgName>École Nationale Supérieure d'Électronique, Informatique et Radiocommunications de Bordeaux (ENSEIRB)</orgName>
<desc><address><country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle name="UMR5800" active="#struct-441569" type="direct"><org type="institution" xml:id="struct-441569" status="VALID"><idno type="IdRef">02636817X</idno>
<idno type="ISNI">0000000122597504</idno>
<orgName>Centre National de la Recherche Scientifique</orgName>
<orgName type="acronym">CNRS</orgName>
<date type="start">1939-10-19</date>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://www.cnrs.fr/</ref>
</desc>
</org>
</tutelle>
</tutelles>
</hal:affiliation>
<country>France</country>
</affiliation>
</author>
<author><name sortKey="Mery, Dominique" sort="Mery, Dominique" uniqKey="Mery D" first="Dominique" last="Méry">Dominique Méry</name>
<affiliation wicri:level="1"><hal:affiliation type="researchteam" xml:id="struct-140234" status="OLD"><orgName>Proof-oriented development of computer-based systems</orgName>
<orgName type="acronym">MOSEL</orgName>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://mosel.loria.fr/</ref>
</desc>
<listRelation><relation active="#struct-160" type="direct"></relation>
<relation name="UMR7503" active="#struct-441569" type="indirect"></relation>
<relation active="#struct-300009" type="indirect"></relation>
<relation active="#struct-300291" type="indirect"></relation>
<relation active="#struct-300292" type="indirect"></relation>
<relation active="#struct-300293" type="indirect"></relation>
</listRelation>
<tutelles><tutelle active="#struct-160" type="direct"><org type="laboratory" xml:id="struct-160" status="OLD"><orgName>Laboratoire Lorrain de Recherche en Informatique et ses Applications</orgName>
<orgName type="acronym">LORIA</orgName>
<desc><address><addrLine>Campus Scientifique BP 239 54506 Vandoeuvre-lès-Nancy Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.loria.fr</ref>
</desc>
<listRelation><relation name="UMR7503" active="#struct-441569" type="direct"></relation>
<relation active="#struct-300009" type="direct"></relation>
<relation active="#struct-300291" type="direct"></relation>
<relation active="#struct-300292" type="direct"></relation>
<relation active="#struct-300293" type="direct"></relation>
</listRelation>
</org>
</tutelle>
<tutelle name="UMR7503" active="#struct-441569" type="indirect"><org type="institution" xml:id="struct-441569" status="VALID"><idno type="IdRef">02636817X</idno>
<idno type="ISNI">0000000122597504</idno>
<orgName>Centre National de la Recherche Scientifique</orgName>
<orgName type="acronym">CNRS</orgName>
<date type="start">1939-10-19</date>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://www.cnrs.fr/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300009" type="indirect"><org type="institution" xml:id="struct-300009" status="VALID"><orgName>Institut National de Recherche en Informatique et en Automatique</orgName>
<orgName type="acronym">Inria</orgName>
<desc><address><addrLine>Domaine de VoluceauRocquencourt - BP 10578153 Le Chesnay Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.inria.fr/en/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300291" type="indirect"><org type="institution" xml:id="struct-300291" status="OLD"><orgName>Université Henri Poincaré - Nancy 1</orgName>
<orgName type="acronym">UHP</orgName>
<date type="end">2011-12-31</date>
<desc><address><addrLine>24-30 rue Lionnois, BP 60120, 54 003 NANCY cedex, France</addrLine>
<country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300292" type="indirect"><org type="institution" xml:id="struct-300292" status="OLD"><orgName>Université Nancy 2</orgName>
<date type="end">2011-12-31</date>
<desc><address><addrLine>91 avenue de la Libération, BP 454, 54001 Nancy cedex</addrLine>
<country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300293" type="indirect"><org type="institution" xml:id="struct-300293" status="OLD"><orgName>Institut National Polytechnique de Lorraine</orgName>
<orgName type="acronym">INPL</orgName>
<date type="end">2011-12-31</date>
<desc><address><country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
</tutelles>
</hal:affiliation>
<country>France</country>
<placeName><settlement type="city">Nancy</settlement>
<region type="region" nuts="2">Grand Est</region>
<region type="old region" nuts="2">Lorraine (région)</region>
</placeName>
<orgName type="university">Université Nancy 2</orgName>
<orgName type="institution" wicri:auto="newGroup">Université de Lorraine</orgName>
<placeName><settlement type="city">Nancy</settlement>
<region type="region" nuts="2">Grand Est</region>
<region type="old region" nuts="2">Lorraine (région)</region>
</placeName>
<orgName type="university">Institut national polytechnique de Lorraine</orgName>
<orgName type="institution" wicri:auto="newGroup">Université de Lorraine</orgName>
</affiliation>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">HAL</idno>
<idno type="RBID">Hal:hal-00644187</idno>
<idno type="halId">hal-00644187</idno>
<idno type="halUri">https://hal.archives-ouvertes.fr/hal-00644187</idno>
<idno type="url">https://hal.archives-ouvertes.fr/hal-00644187</idno>
<date when="2011-11-20">2011-11-20</date>
<idno type="wicri:Area/Hal/Corpus">003E41</idno>
<idno type="wicri:Area/Hal/Curation">003E41</idno>
<idno type="wicri:Area/Hal/Checkpoint">001A46</idno>
<idno type="wicri:explorRef" wicri:stream="Hal" wicri:step="Checkpoint">001A46</idno>
<idno type="wicri:Area/Main/Merge">002039</idno>
<idno type="wicri:Area/Main/Curation">001F96</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en">Proving Distributed Algorithms by Combining Refinement and Local Computations</title>
<author><name sortKey="Tounsi, Mohamed" sort="Tounsi, Mohamed" uniqKey="Tounsi M" first="Mohamed" last="Tounsi">Mohamed Tounsi</name>
<affiliation wicri:level="1"><hal:affiliation type="laboratory" xml:id="struct-3102" status="VALID"><orgName>Laboratoire Bordelais de Recherche en Informatique</orgName>
<orgName type="acronym">LaBRI</orgName>
<desc><address><addrLine>Domaine Universitaire 351, cours de la Libération 33405 Talence Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.labri.fr</ref>
</desc>
<listRelation><relation active="#struct-91134" type="direct"></relation>
<relation active="#struct-92972" type="direct"></relation>
<relation active="#struct-300366" type="direct"></relation>
<relation name="UMR5800" active="#struct-441569" type="direct"></relation>
</listRelation>
<tutelles><tutelle active="#struct-91134" type="direct"><org type="institution" xml:id="struct-91134" status="OLD"><orgName>Université Bordeaux Segalen - Bordeaux 2</orgName>
<desc><address><addrLine>146 rue Léo Saignat - 33076 Bordeaux cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.univ-bordeauxsegalen.fr/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-92972" type="direct"><org type="institution" xml:id="struct-92972" status="OLD"><orgName>Université Sciences et Technologies - Bordeaux 1</orgName>
<desc><address><addrLine>351 cours de la Libération - 33405 Talence cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.u-bordeaux1.fr</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300366" type="direct"><org type="institution" xml:id="struct-300366" status="VALID"><orgName>École Nationale Supérieure d'Électronique, Informatique et Radiocommunications de Bordeaux (ENSEIRB)</orgName>
<desc><address><country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle name="UMR5800" active="#struct-441569" type="direct"><org type="institution" xml:id="struct-441569" status="VALID"><idno type="IdRef">02636817X</idno>
<idno type="ISNI">0000000122597504</idno>
<orgName>Centre National de la Recherche Scientifique</orgName>
<orgName type="acronym">CNRS</orgName>
<date type="start">1939-10-19</date>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://www.cnrs.fr/</ref>
</desc>
</org>
</tutelle>
</tutelles>
</hal:affiliation>
<country>France</country>
</affiliation>
</author>
<author><name sortKey="Mosbah, Mohamed" sort="Mosbah, Mohamed" uniqKey="Mosbah M" first="Mohamed" last="Mosbah">Mohamed Mosbah</name>
<affiliation wicri:level="1"><hal:affiliation type="laboratory" xml:id="struct-3102" status="VALID"><orgName>Laboratoire Bordelais de Recherche en Informatique</orgName>
<orgName type="acronym">LaBRI</orgName>
<desc><address><addrLine>Domaine Universitaire 351, cours de la Libération 33405 Talence Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.labri.fr</ref>
</desc>
<listRelation><relation active="#struct-91134" type="direct"></relation>
<relation active="#struct-92972" type="direct"></relation>
<relation active="#struct-300366" type="direct"></relation>
<relation name="UMR5800" active="#struct-441569" type="direct"></relation>
</listRelation>
<tutelles><tutelle active="#struct-91134" type="direct"><org type="institution" xml:id="struct-91134" status="OLD"><orgName>Université Bordeaux Segalen - Bordeaux 2</orgName>
<desc><address><addrLine>146 rue Léo Saignat - 33076 Bordeaux cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.univ-bordeauxsegalen.fr/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-92972" type="direct"><org type="institution" xml:id="struct-92972" status="OLD"><orgName>Université Sciences et Technologies - Bordeaux 1</orgName>
<desc><address><addrLine>351 cours de la Libération - 33405 Talence cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.u-bordeaux1.fr</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300366" type="direct"><org type="institution" xml:id="struct-300366" status="VALID"><orgName>École Nationale Supérieure d'Électronique, Informatique et Radiocommunications de Bordeaux (ENSEIRB)</orgName>
<desc><address><country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle name="UMR5800" active="#struct-441569" type="direct"><org type="institution" xml:id="struct-441569" status="VALID"><idno type="IdRef">02636817X</idno>
<idno type="ISNI">0000000122597504</idno>
<orgName>Centre National de la Recherche Scientifique</orgName>
<orgName type="acronym">CNRS</orgName>
<date type="start">1939-10-19</date>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://www.cnrs.fr/</ref>
</desc>
</org>
</tutelle>
</tutelles>
</hal:affiliation>
<country>France</country>
</affiliation>
</author>
<author><name sortKey="Mery, Dominique" sort="Mery, Dominique" uniqKey="Mery D" first="Dominique" last="Méry">Dominique Méry</name>
<affiliation wicri:level="1"><hal:affiliation type="researchteam" xml:id="struct-140234" status="OLD"><orgName>Proof-oriented development of computer-based systems</orgName>
<orgName type="acronym">MOSEL</orgName>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://mosel.loria.fr/</ref>
</desc>
<listRelation><relation active="#struct-160" type="direct"></relation>
<relation name="UMR7503" active="#struct-441569" type="indirect"></relation>
<relation active="#struct-300009" type="indirect"></relation>
<relation active="#struct-300291" type="indirect"></relation>
<relation active="#struct-300292" type="indirect"></relation>
<relation active="#struct-300293" type="indirect"></relation>
</listRelation>
<tutelles><tutelle active="#struct-160" type="direct"><org type="laboratory" xml:id="struct-160" status="OLD"><orgName>Laboratoire Lorrain de Recherche en Informatique et ses Applications</orgName>
<orgName type="acronym">LORIA</orgName>
<desc><address><addrLine>Campus Scientifique BP 239 54506 Vandoeuvre-lès-Nancy Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.loria.fr</ref>
</desc>
<listRelation><relation name="UMR7503" active="#struct-441569" type="direct"></relation>
<relation active="#struct-300009" type="direct"></relation>
<relation active="#struct-300291" type="direct"></relation>
<relation active="#struct-300292" type="direct"></relation>
<relation active="#struct-300293" type="direct"></relation>
</listRelation>
</org>
</tutelle>
<tutelle name="UMR7503" active="#struct-441569" type="indirect"><org type="institution" xml:id="struct-441569" status="VALID"><idno type="IdRef">02636817X</idno>
<idno type="ISNI">0000000122597504</idno>
<orgName>Centre National de la Recherche Scientifique</orgName>
<orgName type="acronym">CNRS</orgName>
<date type="start">1939-10-19</date>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://www.cnrs.fr/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300009" type="indirect"><org type="institution" xml:id="struct-300009" status="VALID"><orgName>Institut National de Recherche en Informatique et en Automatique</orgName>
<orgName type="acronym">Inria</orgName>
<desc><address><addrLine>Domaine de VoluceauRocquencourt - BP 10578153 Le Chesnay Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.inria.fr/en/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300291" type="indirect"><org type="institution" xml:id="struct-300291" status="OLD"><orgName>Université Henri Poincaré - Nancy 1</orgName>
<orgName type="acronym">UHP</orgName>
<date type="end">2011-12-31</date>
<desc><address><addrLine>24-30 rue Lionnois, BP 60120, 54 003 NANCY cedex, France</addrLine>
<country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300292" type="indirect"><org type="institution" xml:id="struct-300292" status="OLD"><orgName>Université Nancy 2</orgName>
<date type="end">2011-12-31</date>
<desc><address><addrLine>91 avenue de la Libération, BP 454, 54001 Nancy cedex</addrLine>
<country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300293" type="indirect"><org type="institution" xml:id="struct-300293" status="OLD"><orgName>Institut National Polytechnique de Lorraine</orgName>
<orgName type="acronym">INPL</orgName>
<date type="end">2011-12-31</date>
<desc><address><country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
</tutelles>
</hal:affiliation>
<country>France</country>
<placeName><settlement type="city">Nancy</settlement>
<region type="region" nuts="2">Grand Est</region>
<region type="old region" nuts="2">Lorraine (région)</region>
</placeName>
<orgName type="university">Université Nancy 2</orgName>
<orgName type="institution" wicri:auto="newGroup">Université de Lorraine</orgName>
<placeName><settlement type="city">Nancy</settlement>
<region type="region" nuts="2">Grand Est</region>
<region type="old region" nuts="2">Lorraine (région)</region>
</placeName>
<orgName type="university">Institut national polytechnique de Lorraine</orgName>
<orgName type="institution" wicri:auto="newGroup">Université de Lorraine</orgName>
</affiliation>
</author>
</analytic>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc><textClass><keywords scheme="mix" xml:lang="en"><term>Event-B</term>
<term>Local computations</term>
<term>Proof-based pattern</term>
<term>distributed algorithms</term>
</keywords>
</textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en">Distributed algorithms are considered to be very complex to design and to prove; our paper contributes to the design of correct-by-construction distributed algorithms. The main idea relies upon the development of distributed algorithms following a top/down approach, which is clearly well known in earlier works of Dijkstra, and to use refinement for proving the correctness of the resulting algorithms. However, the link between the problem and the first model remains to be expressed and the refinement is a real help to justify in a very progressive way the choices of design. We propose in this work a framework combining local computations models and refinement to prove the correctness of a large class of distributed algorithms. Local computations models define abstract computing processes for solving problems by distributed algorithms and can be integrated into a the Event-B modelling language to define proof-based patterns for the design of distributed algorithms. We illustrate our approach by examples like the leader election protocol or the distributed coloring algorithm. Our proposal is integrated into an environment called ViSiDiA.</div>
</front>
</TEI>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Wicri/Lorraine/explor/InforLorV4/Data/Main/Curation
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 001F96 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Main/Curation/biblio.hfd -nk 001F96 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Wicri/Lorraine |area= InforLorV4 |flux= Main |étape= Curation |type= RBID |clé= Hal:hal-00644187 |texte= Proving Distributed Algorithms by Combining Refinement and Local Computations }}
![]() | This area was generated with Dilib version V0.6.33. | ![]() |