<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.Shkpostityyli17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 70.85pt 2.0cm;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1548763964;
        mso-list-type:hybrid;
        mso-list-template-ids:650575432 -1896326302 67829763 67829765 67829761 67829763 67829765 67829761 67829763 67829765;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-font-family:Calibri;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FI" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">ogr2ogr creates these ids:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><![if !supportLists]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span></span><![endif]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">for point data node_id becomes ”osm_id”<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><![if !supportLists]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span></span><![endif]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">for linestrings way_id becomes “osm_id”<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><![if !supportLists]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span></span><![endif]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">for multilinestrings relation_id becomes “osm_id”<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><![if !supportLists]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span></span><![endif]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">for other relations relation_id becomes “osm_id”<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><![if !supportLists]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span></span><![endif]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">for polygons which come from relations relation_id becomes “osm_id” and osm_way_id is null<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><![if !supportLists]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span></span><![endif]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">for polygons which come from ways the way_id becomes osm_way_id and osm_id is null<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">GDAL cannot write ids of the way polygons and relation polygons into the same ID field because there would be duplicate
 ids (same numbers coming from way_id and relation_id). <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Historically GDAL wrote way polygons into layer named ”polygons” and relation polygons into ”multipolygons” and both had
 just “osm_id”. It was perhaps more clear when it comes to ids but more fuzzy for users to find polygons from two different tables. Remember that in the OSM model a way polygon must be converted into relation polygon if user wants to make a hole into the polygon.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">If I understand right you consider that instead of having now in the multipolygon layer relation_id as osm_id and way_id
 as osm_way_id it would be better to have way_id as osm_id and relation_id as osm_relation_id.  Perhaps yes, but for my mind the difference is not huge.
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">I guess that when the developer of the OSM driver stopped using the “polygons” layer they made the driver to write also
 the way polygons into the existing “multipolygons” layer. That layer already had osm_id so a new field osm_way_id was simply added into that layer.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">If you can prove that there are some general use cases where renaming the id fields of the multipolygons layer would be
 a big improvement, please file a feature request.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">-Jukka Rahkonen-<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">Djordje Spasic wrote:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">Re: [gdal-dev] osm_id vs osm_way_id?<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<div id="yui_3_16_0_ym19_1_1480613000241_52464">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">Hi Jukka,<o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1480613000241_55712">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><br>
<br>
<o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1480613000241_55707">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">As always thank you for the useful share of knowledge!!<br>
<br>
<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" id="yui_3_16_0_ym19_1_1480613000241_53294">
<div id="yui_3_16_0_ym19_1_1480613000241_53271">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:gray">> IDs are unique only for nodes/ways/relations but not across the elements. I<br id="yui_3_16_0_ym19_1_1480613000241_53282">
do not think that renaming osm_id into relation_id (and probably osm_id of<br id="yui_3_16_0_ym19_1_1480613000241_53283">
points into node_id, or?) and osm_way_id into way_id to follow the native<br id="yui_3_16_0_ym19_1_1480613000241_53284">
model would make things very much more clear.</span><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><br>
<br>
<o:p></o:p></span></p>
</div>
</blockquote>
<div id="yui_3_16_0_ym19_1_1480613000241_53196">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">I was only questioning why can't "osm_way_id" be renamed to "osm_relation_id". The "osm_id" would remain the same.<br>
<br>
<o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1480613000241_53479">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">Of course I am not a developer, I was just thinking out loud, and hopping that somebody might explain to me, why is there the "osm_way_id"
 key.<br>
I could totally be wrong.<br>
<br>
<o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1480613000241_53206">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><br>
<br>
<o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1480613000241_53457">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">All three examples you've sent me:<br>
<br>
<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" id="yui_3_16_0_ym19_1_1480613000241_52698">
<div id="yui_3_16_0_ym19_1_1480613000241_52697">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><a href="http://www.openstreetmap.org/api/0.6/node/389960161">http://www.openstreetmap.org/api/0.6/node/389960161</a><br>
<a href="http://www.openstreetmap.org/api/0.6/way/34028339">http://www.openstreetmap.org/api/0.6/way/34028339</a>
<a href="http://www.openstreetmap.org/api/0.6/relation/125519">http://www.openstreetmap.org/api/0.6/relation/125519</a><br>
<br>
<o:p></o:p></span></p>
</div>
</blockquote>
<div id="yui_3_16_0_ym19_1_1480613000241_52882">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">Show the id of three different elements: An id of a node, of a way, and of a relation.<br>
<br>
What makes it confusing (at least to me) is why did developers of the GDAL OSM driver decided to use a separate key(field) to depict the closed ways?<br>
<br>
I understand that and ESRI shapefile can not differentiate between a closed way and a relation (for example: a relation consisted of two closed ways). So they had to "group" both closed ways and relation into a single shapefile geometry type (multi)polygons/polylines.
 But still, if they wanted to differentiate between these two elements, it's more logical (at least to me) that a relation should have gotten a separate key(field), instead of a close way. A relation is higher in the hierarchy of OSM elements, and can contain
 different elements (a node and a way, three ways, fours nodes...).<br>
<br>
I am just thinking out loud, nothing more.<o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1480613000241_53629">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">I can definitively be wrong, and I am eager to learn more about the OSM in general.<br>
<br>
<o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1480613000241_55686">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><br>
<br>
<o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1480613000241_52463">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><br>
----------------------------<o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1480613000241_52451">
<div id="yui_3_16_0_ym19_1_1480613000241_52450">
<div id="yui_3_16_0_ym19_1_1480613000241_52449">
<div id="yui_3_16_0_ym19_1_1480613000241_52452">
<p class="MsoNormal" style="background:white"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">On Thursday, December 1, 2016 11:03 PM, jratike80 <</span><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><a href="mailto:jukka.rahkonen@maanmittauslaitos.fi"><span lang="EN-US">jukka.rahkonen@maanmittauslaitos.fi</span></a></span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">>
 wrote:</span><span lang="EN-US" style="font-family:"Helvetica",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span lang="EN-US" style="font-family:"Helvetica",sans-serif;color:black"><o:p> </o:p></span></p>
<div id="yui_3_16_0_ym19_1_1480613000241_52448">
<p class="MsoNormal" style="background:white"><span style="font-family:"Helvetica",sans-serif;color:black">georges wrote<br>
> Hello,<br>
> I am converting an .osm file to shapefile, and there is one thing that I<br>
> do not understand:<br>
> <br>
> What is the difference between: osm_id and osm_way_id fields (keys)?<br>
> <br>
> They are defined in osmconf.ini file, but only for [multipolygons].<br>
> Here is an explanation from the osmconf.ini file:<br>
> <br>
> # note: for multipolygons, osm_id=yes instanciates a osm_id field for the<br>
> id of relations<br>
> # and a osm_way_id field for the id of closed ways. Both fields are<br>
> exclusively set.<br>
> Does that mean that osm_way_id will be used to represent the osm id number<br>
> of a closed way, while osm_id will only be used for to represent the osm<br>
> id number of relations?<br>
> <br>
> It's a bit confusing concept.<br>
> <br>
> What makes the closed ways so special so that they need to have their own<br>
> special field (osm_way_id)?<br>
> Why wasn't there a separate field for relations instead: like:<br>
> osm_relation_id, while closed ways would use the osm_id.<br>
> <br>
> Thank you for the reply.<br>
<br>
Indeed, OSM data model is a bit confusing concept. You can read about it<br>
from <a href="https://wiki.openstreetmap.org/wiki/Elements." target="_blank">https://wiki.openstreetmap.org/wiki/Elements.
</a>Simple, small polygons<br>
are usually modeled as a one continuous, closed ring. That makes one "way"<br>
and the ID for it is found from way_id. All the other polygons are modeled<br>
as relations which are collections of ways and they have "relation_id" in<br>
the data as you can see<br>
<br>
node_id <a href="http://www.openstreetmap.org/api/0.6/node/389960161" target="_blank" id="yui_3_16_0_ym19_1_1480613000241_52453">
http://www.openstreetmap.org/api/0.6/node/389960161</a><br>
way_id  <a href="http://www.openstreetmap.org/api/0.6/way/34028339" target="_blank" id="yui_3_16_0_ym19_1_1480613000241_52454">
http://www.openstreetmap.org/api/0.6/way/34028339</a><o:p></o:p></span></p>
<div id="yqtfd62353">
<p class="MsoNormal" style="background:white"><span style="font-family:"Helvetica",sans-serif;color:black"><br>
relation_id <o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span style="font-family:"Helvetica",sans-serif;color:black"><a href="http://www.openstreetmap.org/api/0.6/relation/125519" target="_blank" id="yui_3_16_0_ym19_1_1480613000241_53691">http://www.openstreetmap.org/api/0.6/relation/125519</a><br>
<br>
IDs are unique only for nodes/ways/relations but not across the elements. I<br>
do not think that renaming osm_id into relation_id (and probably osm_id of<br>
points into node_id, or?) and osm_way_id into way_id to follow the native<br>
model would make things very much more clear.<br>
<br>
-Jukka Rahkonen-<br>
<br>
--<br>
View this message in context: <a href="http://osgeo-org.1560.x6.nabble.com/gdal-dev-osm-id-vs-osm-way-id-tp5298287p5298304.html" target="_blank" id="yui_3_16_0_ym19_1_1480613000241_52460">
http://osgeo-org.1560.x6.nabble.com/gdal-dev-osm-id-vs-osm-way-id-tp5298287p5298304.html</a><br>
Sent from the GDAL - Dev mailing list archive at Nabble.com.<br>
_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>