385 lines
20 KiB
HTML
385 lines
20 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
|
<title>MagickCore: paint.c File Reference</title>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
|
</head><body>
|
|
<!-- Generated by Doxygen 1.5.4 -->
|
|
<div class="nav">
|
|
<a class="el" href="dir_b44b349db36f8365f5234e57d3038770.html">magick</a></div>
|
|
<h1>paint.c File Reference</h1>
|
|
<p>
|
|
<code>#include "<a class="el" href="studio_8h-source.html">magick/studio.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="color_8h-source.html">magick/color.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="color-private_8h-source.html">magick/color-private.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="colorspace-private_8h-source.html">magick/colorspace-private.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="composite_8h-source.html">magick/composite.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="composite-private_8h-source.html">magick/composite-private.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="draw_8h-source.html">magick/draw.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="draw-private_8h-source.html">magick/draw-private.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="exception_8h-source.html">magick/exception.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="exception-private_8h-source.html">magick/exception-private.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="gem_8h-source.html">magick/gem.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="monitor_8h-source.html">magick/monitor.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="paint_8h-source.html">magick/paint.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="pixel-private_8h-source.html">magick/pixel-private.h</a>"</code><br>
|
|
<code>#include "<a class="el" href="string___8h-source.html">magick/string_.h</a>"</code><br>
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><td></td></tr>
|
|
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="paint_8c.html#cfa270f28f898afb804b5dea031520f9">MaxStacksize</a> (1UL << 15)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="paint_8c.html#5a1fd20d59e97853266a92a93e977e98">PushSegmentStack</a>(up, left, right, delta)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="paint_8c.html#4b2a315d07771c8de790bc9814bc138b">OilPaintImageTag</a> "OilPaint/<a class="el" href="struct__Image.html">Image</a>"</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="paint_8c.html#61ae299360cc4d6f4b4d63ca603cf062">OpaquePaintImageTag</a> "Opaque/<a class="el" href="struct__Image.html">Image</a>"</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="paint_8c.html#3f6e481350da54eae0687965cd44131c">TransparentPaintImageTag</a> "Transparent/<a class="el" href="struct__Image.html">Image</a>"</td></tr>
|
|
|
|
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">MagickExport <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="paint_8c.html#d99677c36212373a036ea07a2c964fe1">FloodfillPaintImage</a> (<a class="el" href="struct__Image.html">Image</a> *image, const <a class="el" href="magick-type_8h.html#19a96edeeb9d37072c4ce9f862d19ba8">ChannelType</a> channel, const <a class="el" href="struct__DrawInfo.html">DrawInfo</a> *draw_info, const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *target, const long x_offset, const long y_offset, const <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> invert)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">MagickExport <a class="el" href="struct__Image.html">Image</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="paint_8c.html#e06456ce85c74646053ee8671435a30a">OilPaintImage</a> (const <a class="el" href="struct__Image.html">Image</a> *image, const double radius, <a class="el" href="struct__ExceptionInfo.html">ExceptionInfo</a> *exception)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">MagickExport <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="paint_8c.html#9edbda7b11ad082c0648c52213556720">OpaquePaintImage</a> (<a class="el" href="struct__Image.html">Image</a> *image, const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *target, const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *fill, const <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> invert)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">MagickExport <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="paint_8c.html#3d7cf7b63072a20196c7de316d1d58a9">OpaquePaintImageChannel</a> (<a class="el" href="struct__Image.html">Image</a> *image, const <a class="el" href="magick-type_8h.html#19a96edeeb9d37072c4ce9f862d19ba8">ChannelType</a> channel, const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *target, const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *fill, const <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> invert)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">MagickExport <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="paint_8c.html#0e1af0bd460223ca0a8d1b00f48d7bf3">TransparentPaintImage</a> (<a class="el" href="struct__Image.html">Image</a> *image, const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *target, const <a class="el" href="magick-type_8h.html#564764e59a8480d672edfe65cf2f7b35">Quantum</a> opacity, const <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> invert)</td></tr>
|
|
|
|
</table>
|
|
<hr><h2>Define Documentation</h2>
|
|
<a class="anchor" name="cfa270f28f898afb804b5dea031520f9"></a><!-- doxytag: member="paint.c::MaxStacksize" ref="cfa270f28f898afb804b5dea031520f9" args="" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MaxStacksize (1UL << 15) </td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="4b2a315d07771c8de790bc9814bc138b"></a><!-- doxytag: member="paint.c::OilPaintImageTag" ref="4b2a315d07771c8de790bc9814bc138b" args="" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define OilPaintImageTag "OilPaint/<a class="el" href="struct__Image.html">Image</a>" </td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="61ae299360cc4d6f4b4d63ca603cf062"></a><!-- doxytag: member="paint.c::OpaquePaintImageTag" ref="61ae299360cc4d6f4b4d63ca603cf062" args="" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define OpaquePaintImageTag "Opaque/<a class="el" href="struct__Image.html">Image</a>" </td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="5a1fd20d59e97853266a92a93e977e98"></a><!-- doxytag: member="paint.c::PushSegmentStack" ref="5a1fd20d59e97853266a92a93e977e98" args="(up, left, right, delta)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define PushSegmentStack </td>
|
|
<td>(</td>
|
|
<td class="paramtype">up, <tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">left, <tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">right, <tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">delta </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
|
|
<span class="keywordflow">if</span> (s >= (segment_stack+<a class="code" href="deprecate_8c.html#cfa270f28f898afb804b5dea031520f9">MaxStacksize</a>)) \
|
|
<a class="code" href="exception-private_8h.html#dfbfb7f8f36dcb772ee7684cc5ab6619">ThrowBinaryException</a>(<a class="code" href="exception_8h.html#0e0f0f1661d7aeb71ed9698bff6c6383d4b4b97e2b363e36a194a88221f30beb">DrawError</a>,<span class="stringliteral">"SegmentStackOverflow"</span>,image->filename) \
|
|
<span class="keywordflow">else</span> \
|
|
{ \
|
|
<span class="keywordflow">if</span> ((((up)+(delta)) >= 0) && (((up)+(delta)) < (<span class="keywordtype">long</span>) image->rows)) \
|
|
{ \
|
|
s->x1=(double) (left); \
|
|
s->y1=(double) (up); \
|
|
s->x2=(double) (right); \
|
|
s->y2=(double) (delta); \
|
|
s++; \
|
|
} \
|
|
} \
|
|
}
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="3f6e481350da54eae0687965cd44131c"></a><!-- doxytag: member="paint.c::TransparentPaintImageTag" ref="3f6e481350da54eae0687965cd44131c" args="" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define TransparentPaintImageTag "Transparent/<a class="el" href="struct__Image.html">Image</a>" </td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
|
|
</div>
|
|
</div><p>
|
|
<hr><h2>Function Documentation</h2>
|
|
<a class="anchor" name="d99677c36212373a036ea07a2c964fe1"></a><!-- doxytag: member="paint.c::FloodfillPaintImage" ref="d99677c36212373a036ea07a2c964fe1" args="(Image *image, const ChannelType channel, const DrawInfo *draw_info, const MagickPixelPacket *target, const long x_offset, const long y_offset, const MagickBooleanType invert)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">MagickExport <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> FloodfillPaintImage </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct__Image.html">Image</a> * </td>
|
|
<td class="paramname"> <em>image</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="magick-type_8h.html#19a96edeeb9d37072c4ce9f862d19ba8">ChannelType</a> </td>
|
|
<td class="paramname"> <em>channel</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="struct__DrawInfo.html">DrawInfo</a> * </td>
|
|
<td class="paramname"> <em>draw_info</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> * </td>
|
|
<td class="paramname"> <em>target</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const long </td>
|
|
<td class="paramname"> <em>x_offset</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const long </td>
|
|
<td class="paramname"> <em>y_offset</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> </td>
|
|
<td class="paramname"> <em>invert</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="e06456ce85c74646053ee8671435a30a"></a><!-- doxytag: member="paint.c::OilPaintImage" ref="e06456ce85c74646053ee8671435a30a" args="(const Image *image, const double radius, ExceptionInfo *exception)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">MagickExport <a class="el" href="struct__Image.html">Image</a>* OilPaintImage </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="struct__Image.html">Image</a> * </td>
|
|
<td class="paramname"> <em>image</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const double </td>
|
|
<td class="paramname"> <em>radius</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct__ExceptionInfo.html">ExceptionInfo</a> * </td>
|
|
<td class="paramname"> <em>exception</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="9edbda7b11ad082c0648c52213556720"></a><!-- doxytag: member="paint.c::OpaquePaintImage" ref="9edbda7b11ad082c0648c52213556720" args="(Image *image, const MagickPixelPacket *target, const MagickPixelPacket *fill, const MagickBooleanType invert)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">MagickExport <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> OpaquePaintImage </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct__Image.html">Image</a> * </td>
|
|
<td class="paramname"> <em>image</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> * </td>
|
|
<td class="paramname"> <em>target</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> * </td>
|
|
<td class="paramname"> <em>fill</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> </td>
|
|
<td class="paramname"> <em>invert</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="3d7cf7b63072a20196c7de316d1d58a9"></a><!-- doxytag: member="paint.c::OpaquePaintImageChannel" ref="3d7cf7b63072a20196c7de316d1d58a9" args="(Image *image, const ChannelType channel, const MagickPixelPacket *target, const MagickPixelPacket *fill, const MagickBooleanType invert)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">MagickExport <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> OpaquePaintImageChannel </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct__Image.html">Image</a> * </td>
|
|
<td class="paramname"> <em>image</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="magick-type_8h.html#19a96edeeb9d37072c4ce9f862d19ba8">ChannelType</a> </td>
|
|
<td class="paramname"> <em>channel</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> * </td>
|
|
<td class="paramname"> <em>target</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> * </td>
|
|
<td class="paramname"> <em>fill</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> </td>
|
|
<td class="paramname"> <em>invert</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="0e1af0bd460223ca0a8d1b00f48d7bf3"></a><!-- doxytag: member="paint.c::TransparentPaintImage" ref="0e1af0bd460223ca0a8d1b00f48d7bf3" args="(Image *image, const MagickPixelPacket *target, const Quantum opacity, const MagickBooleanType invert)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">MagickExport <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> TransparentPaintImage </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct__Image.html">Image</a> * </td>
|
|
<td class="paramname"> <em>image</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> * </td>
|
|
<td class="paramname"> <em>target</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="magick-type_8h.html#564764e59a8480d672edfe65cf2f7b35">Quantum</a> </td>
|
|
<td class="paramname"> <em>opacity</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="magick-type_8h.html#c740cbce6e8928a679ae3767b49428dd">MagickBooleanType</a> </td>
|
|
<td class="paramname"> <em>invert</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
|
|
</div>
|
|
</div><p>
|
|
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 26 14:50:30 2008 for MagickCore by
|
|
<a href="http://www.doxygen.org/index.html">
|
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.4 </small></address>
|
|
</body>
|
|
</html>
|