<div dir="ltr">In the case if FileGDB, which driver you use to read the FileGDB makes a big difference.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 20, 2022 at 8:59 AM Jon Morris <<a href="mailto:Jon.Morris@jbarisk.com">Jon.Morris@jbarisk.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div style="overflow-wrap: break-word;" lang="EN-GB">
<div class="gmail-m_7447080392467304531WordSection1">
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black">Hi Sean,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black">That seems to be the best option. I was testing on Shapefile initially, but after I posted, I tried a memory layer and got quite different results. Ultimately,
 our output format is determined by clients (it's usually Shapefile or File GDB), so we'll just have to let them know there are performance implications with some formats.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black">Thanks,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black">Jon<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black"><u></u> <u></u></span></p>
<div>
<div dir="ltr" style="direction:ltr"><table style="width:100%" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="vertical-align:top" align="left"><table style="font-size:0px" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="padding:10px 0px 0px;vertical-align:top" align="left"><table style="font-size:0px;color:rgb(74,74,73);font-style:normal;font-weight:700;white-space:nowrap" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:14.67px"><td style="padding:0px;vertical-align:top;font-family:Arial" align="left">e: <span style="font-family:remialcxesans;font-size:1px;color:rgb(255,255,255);line-height:1px">​</span></td><td style="padding:0px 0px 0px 4px;vertical-align:top;color:rgb(246,161,36);font-family:Arial;font-weight:400" align="left"><a href="mailto:Jon.Morris@jbarisk.com" id="gmail-m_7447080392467304531LPlnk689713" style="text-decoration:none;color:rgb(246,161,36)" target="_blank"><strong style="font-weight:400">Jon.Morris@jbarisk.com</strong></a></td></tr><tr style="font-size:14.67px"><td style="padding:0px;vertical-align:top;font-family:Arial" align="left">t: </td><td style="padding:0px 0px 0px 4px;vertical-align:top;color:rgb(246,161,36);font-family:Arial;font-weight:400" align="left"><a href="tel:+44%20(0)1756%20799919" id="gmail-m_7447080392467304531LPlnk689713" style="text-decoration:none;color:rgb(246,161,36)" target="_blank"><strong style="font-weight:400">+44 (0)1756 799919</strong></a></td></tr><tr style="font-size:0px"><td style="padding:0px;vertical-align:top" align="left"></td><td style="padding:0px 0px 0px 4px;vertical-align:top" align="left"></td></tr></tbody></table></td></tr></tbody></table></td></tr><tr style="color:rgb(0,0,1);font-size:14.67px;font-style:normal;font-weight:400;white-space:nowrap"><td style="vertical-align:top;font-family:Arial" align="left"><a href="http://www.jbarisk.com/" id="gmail-m_7447080392467304531LPlnk689713" title="Click to visit our website" style="text-decoration:none;color:rgb(246,161,36)" target="_blank"><strong style="font-weight:400">www.jbarisk.com</strong></a></td></tr><tr style="font-size:0px"><td style="vertical-align:top" align="left"><table style="font-size:0px" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="padding:10px 0px 0px;vertical-align:top" align="left"><table style="font-size:0px" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td rowspan="3" style="padding:0px 0px 5px;vertical-align:top" align="left"><table style="width:100%;font-size:0px" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="vertical-align:top" align="left"><table style="font-size:0px;line-height:normal" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="padding:10px 0px 15px;vertical-align:top" align="left"><img src="cid:17e7b027082bdeb55526" alt="" style="height: 52px; min-height: 52px; max-height: 52px; font-size: 0px;" height="52" border="0"></td></tr></tbody></table></td></tr><tr style="font-size:0px"><td style="vertical-align:top" align="left"><table style="font-size:0px" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="padding:0px 0px 12px;vertical-align:top" align="left"><table style="height:30px;font-size:0px" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="vertical-align:top" align="left"><table style="font-size:0px;line-height:normal" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="padding:0px 4px 5px 0px;vertical-align:top" align="left"><a href="https://www.facebook.com/TheFloodPeople" id="gmail-m_7447080392467304531LPlnk689713" style="text-decoration:none" target="_blank"><img src="cid:17e7b027082f0145e987" title="Facebook" alt="Facebook" style="width: 34px; min-width: 34px; max-width: 34px; font-size: 12px;" width="34" border="0"></a></td></tr></tbody></table></td><td style="vertical-align:top" align="left"><table style="font-size:0px;line-height:normal" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="padding:0px 4px 5px 0px;vertical-align:top" align="left"><a href="https://www.linkedin.com/company/jba-risk-management/" id="gmail-m_7447080392467304531LPlnk689713" style="text-decoration:none" target="_blank"><img src="cid:17e7b027082c653f27a8" title="LinkedIn" alt="LinkedIn" style="width: 34px; min-width: 34px; max-width: 34px; font-size: 12px;" width="34" border="0"></a></td></tr></tbody></table></td><td style="vertical-align:top" align="left"><table style="font-size:0px;line-height:normal" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="padding:0px 4px 5px 0px;vertical-align:top" align="left"><a href="https://twitter.com/JBARisk" id="gmail-m_7447080392467304531LPlnk689713" style="text-decoration:none" target="_blank"><img src="cid:17e7b02708288b25e999" title="Twitter" alt="Twitter" style="width: 34px; min-width: 34px; max-width: 34px; font-size: 12px;" width="34" border="0"></a></td></tr></tbody></table></td><td style="vertical-align:top" align="left"><table style="font-size:0px;line-height:normal" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="padding:0px 4px 5px 0px;vertical-align:top" align="left"><a href="https://www.youtube.com/channel/UC0iatom2jYbW96voW0rlpCw" id="gmail-m_7447080392467304531LPlnk689713" style="text-decoration:none" target="_blank"><img src="cid:17e7b0270827d81e635a" title="YouTube" alt="YouTube" style="width: 34px; min-width: 34px; max-width: 34px; font-size: 12px;" width="34" border="0"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td><td style="padding:0px"> </td></tr><tr style="font-size:0px"><td style="padding:0px"> </td></tr><tr style="font-size:0px"><td style="padding:0px"> </td></tr></tbody></table></td></tr></tbody></table></td></tr><tr style="font-size:0px"><td style="vertical-align:top" align="left"><table style="font-size:0px" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:0px"><td style="padding:7px 0px 5px;border-color:rgb(74,74,73) currentcolor currentcolor;border-style:solid none none;border-width:1px medium medium;vertical-align:top" align="left"><table style="white-space:normal;color:rgb(68,68,68);font-size:14.67px;font-family:Calibri,Arial,sans-serif;font-weight:400;font-style:normal;text-align:left;line-height:12px" cellspacing="0" cellpadding="0" border="0"><tbody><tr style="font-size:9px"><td style="font-family:Arial"><span style="background-color:rgb(255,255,255)">All JBA Risk Management's email messages contain confidential information and are intended only for the individual(s) named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail.</span><br><span style="background-color:rgb(255,255,255)">Please notify the sender immediately by email if you have received this email by mistake and delete this email from your system.</span> <br><span style="background-color:rgb(255,255,255)">JBA Risk Management Limited is registered in England, company number 07732946, 1 Broughton Park, Old Lane North, Broughton, Skipton, North Yorkshire, BD23 3FD, England</span><span style="color:rgb(0,0,1)">.</span><br></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div><div style="border-color:rgb(225,225,225) currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> gdal-dev <<a href="mailto:gdal-dev-bounces@lists.osgeo.org" target="_blank">gdal-dev-bounces@lists.osgeo.org</a>>
<b>On Behalf Of </b>Sean Gillies<br>
<b>Sent:</b> 20 January 2022 15:44<br>
<b>To:</b> <a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<b>Subject:</b> Re: [gdal-dev] Faster alternative to GetFeatureCount?<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border:1pt solid rgb(156,101,0);padding:2pt">
<p class="MsoNormal" style="line-height:13pt;background:rgb(255,235,156) none repeat scroll 0% 0%"><b><span style="color:rgb(156,101,0)">CAUTION:</span></b><span style="color:black"> This email originated from outside of JBA and
</span><b><span style="color:rgb(156,101,0)">contains one or more links and one or more attachments</span></b><span style="color:black">. DO NOT click links or open attachments unless you recognise the sender's email address and are absolutely certain that the content
 is safe.<br>
See the Phishing page on IMS on SP for more information about how to spot and report suspicious messages.<u></u><u></u></span></p>
</div>
<div>
<div style="border:1pt solid rgb(156,0,6);padding:2pt">
<p class="MsoNormal" style="line-height:13pt;background:rgb(255,199,206) none repeat scroll 0% 0%"><b><span style="color:rgb(156,0,6)">WARNING: This email contains one or more attachments with links within the attachment(s)</span></b><span style="color:black">. Please take extra care when handling
 the attachments.<u></u><u></u></span></p>
</div>
<div>
<div>
<div>
<div>
<p class="MsoNormal">Hi Jon,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">The performance of GetFeatureCount, filters, and GetNextFeature depends a lot on the data format. If your data is in Postgres, for example, these operations are super fast because the database keeps the number of rows (features) in memory
 and has highly optimized views of selected rows. If your data is in a CSV file, GDAL has to read every line to count the number of features and when getting filtered features has to read all the lines in between the ones you want. See
<a href="https://github.com/OSGeo/gdal/blob/master/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp#L1667" target="_blank">
https://github.com/OSGeo/gdal/blob/master/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp#L1667</a>.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Can you switch to a more optimized format?<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Thu, Jan 20, 2022 at 2:02 AM Jon Morris <<a href="mailto:Jon.Morris@jbarisk.com" target="_blank">Jon.Morris@jbarisk.com</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border-color:currentcolor currentcolor currentcolor rgb(204,204,204);border-style:none none none solid;border-width:medium medium medium 1pt;padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black">I'm writing applications using the GDAL Python bindings and when I profile for performance, GetFeatureCount frequently comes
 out near the top. I'm often using it to check whether a spatial or attribute filter has returned any features and don't need the full count. When the layer contains millions of features, there would be a big performance improvement if we could exit the count
 early.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black">Is there a better way of doing this? I've tried using GetNextFeature instead, but there must be quite a lot of overhead
 in that function as it is much slower. All I need to know is if the layer has has 0, 1 or >1 features, I don't need the actual count. Can anyone suggest the fastest way of doing this in Python? I'm using GDAL 3.3.1 at the moment but could upgrade if there
 is new functionality that would help.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black">Thanks,</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black">Jon</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black"> </span><u></u><u></u></p>
<p class="MsoNormal"><b><span style="font-family:"Arial",sans-serif;color:rgb(246,161,36)">Jon Morris</span></b><u></u><u></u></p>
<p class="MsoNormal"><b><span style="font-family:"Arial",sans-serif;color:rgb(74,74,73)">Software Developer</span></b><u></u><u></u></p>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black"> </span><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<table style="width:100%" width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:0cm" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:7.5pt 0cm 0cm" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:0cm" valign="top">
<p class="MsoNormal"><b><span style="font-family:"Arial",sans-serif;color:rgb(74,74,73)">e: <u></u><u></u></span></b></p>
</td>
<td style="padding:0cm 0cm 0cm 3pt" valign="top">
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:rgb(246,161,36)"><a href="mailto:Jon.Morris@jbarisk.com" target="_blank"><span style="color:rgb(246,161,36);text-decoration:none">Jon.Morris@jbarisk.com</span></a><u></u><u></u></span></p>
</td>
</tr>
<tr>
<td style="padding:0cm" valign="top">
<p class="MsoNormal"><b><span style="font-family:"Arial",sans-serif;color:rgb(74,74,73)">t: <u></u><u></u></span></b></p>
</td>
<td style="padding:0cm 0cm 0cm 3pt" valign="top">
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:rgb(246,161,36)"><a href="tel:+44%20(0)1756%20799919" target="_blank"><span style="color:rgb(246,161,36);text-decoration:none">+44 (0)1756 799919</span></a><u></u><u></u></span></p>
</td>
</tr>
<tr>
<td style="padding:0cm" valign="top"></td>
<td style="padding:0cm 0cm 0cm 3pt" valign="top"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style="padding:0cm" valign="top">
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:rgb(0,0,1)"><a href="http://www.jbarisk.com/" title="Click to visit our website" target="_blank"><span style="color:rgb(246,161,36);text-decoration:none">www.jbarisk.com</span></a><u></u><u></u></span></p>
</td>
</tr>
<tr>
<td style="padding:0cm" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:7.5pt 0cm 0cm" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td rowspan="3" style="padding:0cm 0cm 3.75pt" valign="top">
<table style="width:100%" width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:0cm" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:7.5pt 0cm 11.25pt" valign="top">
<p class="MsoNormal"><span style="font-size:1pt"><img style="width: 1.552in; height: 0.5416in;" id="gmail-m_7447080392467304531Picture_x0020_1" src="cid:17e7b0270814cff311" width="149" height="52" border="0"></span><span style="font-size:1pt"><u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style="padding:0cm" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:0cm 0cm 9pt" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:0cm" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:0cm 3pt 3.75pt 0cm" valign="top">
<p class="MsoNormal"><a href="https://www.facebook.com/TheFloodPeople" target="_blank"><span style="font-size:1pt;text-decoration:none"><img style="width: 0.3541in; height: 0.3541in;" id="gmail-m_7447080392467304531Picture_x0020_2" src="cid:17e7b0270815b16b22" alt="Facebook" width="34" height="34" border="0"></span></a><span style="font-size:1pt"><u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
</td>
<td style="padding:0cm" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:0cm 3pt 3.75pt 0cm" valign="top">
<p class="MsoNormal"><a href="https://www.linkedin.com/company/jba-risk-management/" target="_blank"><span style="font-size:1pt;text-decoration:none"><img style="width: 0.3541in; height: 0.3541in;" id="gmail-m_7447080392467304531Picture_x0020_3" src="cid:17e7b027081692e333" alt="LinkedIn" width="34" height="34" border="0"></span></a><span style="font-size:1pt"><u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
</td>
<td style="padding:0cm" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:0cm 3pt 3.75pt 0cm" valign="top">
<p class="MsoNormal"><a href="https://twitter.com/JBARisk" target="_blank"><span style="font-size:1pt;text-decoration:none"><img style="width: 0.3541in; height: 0.3541in;" id="gmail-m_7447080392467304531Picture_x0020_4" src="cid:17e7b0270827745b44" alt="Twitter" width="34" height="34" border="0"></span></a><span style="font-size:1pt"><u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
</td>
<td style="padding:0cm" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:0cm 3pt 3.75pt 0cm" valign="top">
<p class="MsoNormal"><a href="https://www.youtube.com/channel/UC0iatom2jYbW96voW0rlpCw" target="_blank"><span style="font-size:1pt;text-decoration:none"><img style="width: 0.3541in; height: 0.3541in;" id="gmail-m_7447080392467304531Picture_x0020_5" src="cid:17e7b027082855d355" alt="YouTube" width="34" height="34" border="0"></span></a><span style="font-size:1pt"><u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
<td style="padding:0cm">
<p class="MsoNormal"><span style="font-size:1pt"> <u></u><u></u></span></p>
</td>
</tr>
<tr>
<td style="padding:0cm">
<p class="MsoNormal"><span style="font-size:1pt"> <u></u><u></u></span></p>
</td>
</tr>
<tr>
<td style="padding:0cm">
<p class="MsoNormal"><span style="font-size:1pt"> <u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style="padding:0cm;border-color:currentcolor" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="border-color:windowtext currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:5.25pt 0cm 3.75pt" valign="top">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="padding:0cm">
<p class="MsoNormal" style="line-height:9pt"><span style="font-size:7pt;font-family:"Arial",sans-serif;color:rgb(68,68,68);background:white none repeat scroll 0% 0%">All JBA Risk Management's email messages contain confidential information and are intended only for the individual(s)
 named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail.</span><span style="font-size:7pt;font-family:"Arial",sans-serif;color:rgb(68,68,68)"><br>
<span style="background:white none repeat scroll 0% 0%">Please notify the sender immediately by email if you have received this email by mistake and delete this email from your system.</span>
<br>
<span style="background:white none repeat scroll 0% 0%">JBA Risk Management Limited is registered in England, company number 07732946, 1 Broughton Park, Old Lane North, Broughton, Skipton, North Yorkshire, BD23 3FD, England</span></span><span style="font-size:7pt;font-family:"Arial",sans-serif;color:rgb(0,0,1)">.</span><span style="font-size:7pt;font-family:"Arial",sans-serif;color:rgb(68,68,68)"><u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><br clear="all">
<br>
-- <u></u><u></u></p>
<div>
<p class="MsoNormal">Sean Gillies<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>

_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a><br>
</blockquote></div>