2 <!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
3 <html><head><title>Python: module ANSI</title>
4 </head><body bgcolor="#f0f0f8">
6 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
8 <td valign=bottom> <br>
9 <font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>ANSI</strong></big></big></font></td
10 ><td align=right valign=bottom
11 ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/noah/pexpect/trunk/pexpect/ANSI.py">/home/noah/pexpect/trunk/pexpect/ANSI.py</a></font></td></tr></table>
12 <p><tt>This implements an <a href="#ANSI">ANSI</a> terminal emulator as a subclass of <a href="screen.html#screen">screen</a>.<br>
14 $Id: <a href="#ANSI">ANSI</a>.py 491 2007-12-16 20:04:57Z noah $</tt></p>
16 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
17 <tr bgcolor="#aa55cc">
18 <td colspan=3 valign=bottom> <br>
19 <font color="#fffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
21 <tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
22 <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="FSM.html">FSM</a><br>
23 </td><td width="25%" valign=top><a href="copy.html">copy</a><br>
24 </td><td width="25%" valign=top><a href="screen.html">screen</a><br>
25 </td><td width="25%" valign=top><a href="string.html">string</a><br>
26 </td></tr></table></td></tr></table><p>
27 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
28 <tr bgcolor="#ee77aa">
29 <td colspan=3 valign=bottom> <br>
30 <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
32 <tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
34 <dt><font face="helvetica, arial"><a href="screen.html#screen">screen.screen</a>
37 <dt><font face="helvetica, arial"><a href="ANSI.html#term">term</a>
40 <dt><font face="helvetica, arial"><a href="ANSI.html#ANSI">ANSI</a>
47 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
48 <tr bgcolor="#ffc8d8">
49 <td colspan=3 valign=bottom> <br>
50 <font color="#000000" face="helvetica, arial"><a name="ANSI">class <strong>ANSI</strong></a>(<a href="ANSI.html#term">term</a>)</font></td></tr>
52 <tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
53 <td colspan=2><tt>This class encapsulates a generic terminal. It filters a stream and<br>
54 maintains the state of a <a href="screen.html#screen">screen</a> object.<br> </tt></td></tr>
56 <td width="100%"><dl><dt>Method resolution order:</dt>
57 <dd><a href="ANSI.html#ANSI">ANSI</a></dd>
58 <dd><a href="ANSI.html#term">term</a></dd>
59 <dd><a href="screen.html#screen">screen.screen</a></dd>
62 Methods defined here:<br>
63 <dl><dt><a name="ANSI-__init__"><strong>__init__</strong></a>(self, r<font color="#909090">=24</font>, c<font color="#909090">=80</font>)</dt></dl>
65 <dl><dt><a name="ANSI-flush"><strong>flush</strong></a>(self)</dt></dl>
67 <dl><dt><a name="ANSI-process"><strong>process</strong></a>(self, c)</dt></dl>
69 <dl><dt><a name="ANSI-process_list"><strong>process_list</strong></a>(self, l)</dt></dl>
71 <dl><dt><a name="ANSI-write"><strong>write</strong></a>(self, s)</dt></dl>
73 <dl><dt><a name="ANSI-write_ch"><strong>write_ch</strong></a>(self, ch)</dt><dd><tt>This puts a character at the current cursor position. cursor<br>
74 position if moved forward with wrap-around, but no scrolling is done if<br>
75 the cursor hits the lower-right corner of the <a href="screen.html#screen">screen</a>.</tt></dd></dl>
78 Methods inherited from <a href="screen.html#screen">screen.screen</a>:<br>
79 <dl><dt><a name="ANSI-__str__"><strong>__str__</strong></a>(self)</dt><dd><tt>This returns a printable representation of the <a href="screen.html#screen">screen</a>. The end of<br>
80 each <a href="screen.html#screen">screen</a> line is terminated by a newline.</tt></dd></dl>
82 <dl><dt><a name="ANSI-clear_all_tabs"><strong>clear_all_tabs</strong></a>(self)</dt><dd><tt>Clears all tabs.</tt></dd></dl>
84 <dl><dt><a name="ANSI-clear_tab"><strong>clear_tab</strong></a>(self)</dt><dd><tt>Clears tab at the current position.</tt></dd></dl>
86 <dl><dt><a name="ANSI-cr"><strong>cr</strong></a>(self)</dt><dd><tt>This moves the cursor to the beginning (col 1) of the current row.</tt></dd></dl>
88 <dl><dt><a name="ANSI-crlf"><strong>crlf</strong></a>(self)</dt><dd><tt>This advances the cursor with CRLF properties.<br>
89 The cursor will line wrap and the <a href="screen.html#screen">screen</a> may scroll.</tt></dd></dl>
91 <dl><dt><a name="ANSI-cursor_back"><strong>cursor_back</strong></a>(self, count<font color="#909090">=1</font>)</dt></dl>
93 <dl><dt><a name="ANSI-cursor_constrain"><strong>cursor_constrain</strong></a>(self)</dt><dd><tt>This keeps the cursor within the <a href="screen.html#screen">screen</a> area.</tt></dd></dl>
95 <dl><dt><a name="ANSI-cursor_down"><strong>cursor_down</strong></a>(self, count<font color="#909090">=1</font>)</dt></dl>
97 <dl><dt><a name="ANSI-cursor_force_position"><strong>cursor_force_position</strong></a>(self, r, c)</dt><dd><tt>Identical to Cursor Home.</tt></dd></dl>
99 <dl><dt><a name="ANSI-cursor_forward"><strong>cursor_forward</strong></a>(self, count<font color="#909090">=1</font>)</dt></dl>
101 <dl><dt><a name="ANSI-cursor_home"><strong>cursor_home</strong></a>(self, r<font color="#909090">=1</font>, c<font color="#909090">=1</font>)</dt></dl>
103 <dl><dt><a name="ANSI-cursor_restore_attrs"><strong>cursor_restore_attrs</strong></a>(self)</dt><dd><tt>Restores cursor position after a Save Cursor.</tt></dd></dl>
105 <dl><dt><a name="ANSI-cursor_save"><strong>cursor_save</strong></a>(self)</dt><dd><tt>Save current cursor position.</tt></dd></dl>
107 <dl><dt><a name="ANSI-cursor_save_attrs"><strong>cursor_save_attrs</strong></a>(self)</dt><dd><tt>Save current cursor position.</tt></dd></dl>
109 <dl><dt><a name="ANSI-cursor_unsave"><strong>cursor_unsave</strong></a>(self)</dt><dd><tt>Restores cursor position after a Save Cursor.</tt></dd></dl>
111 <dl><dt><a name="ANSI-cursor_up"><strong>cursor_up</strong></a>(self, count<font color="#909090">=1</font>)</dt></dl>
113 <dl><dt><a name="ANSI-cursor_up_reverse"><strong>cursor_up_reverse</strong></a>(self)</dt></dl>
115 <dl><dt><a name="ANSI-dump"><strong>dump</strong></a>(self)</dt><dd><tt>This returns a copy of the <a href="screen.html#screen">screen</a> as a string. This is similar to<br>
116 __str__ except that lines are not terminated with line feeds.</tt></dd></dl>
118 <dl><dt><a name="ANSI-erase_down"><strong>erase_down</strong></a>(self)</dt><dd><tt>Erases the <a href="screen.html#screen">screen</a> from the current line down to the bottom of the<br>
119 <a href="screen.html#screen">screen</a>.</tt></dd></dl>
121 <dl><dt><a name="ANSI-erase_end_of_line"><strong>erase_end_of_line</strong></a>(self)</dt><dd><tt>Erases from the current cursor position to the end of the current<br>
124 <dl><dt><a name="ANSI-erase_line"><strong>erase_line</strong></a>(self)</dt><dd><tt>Erases the entire current line.</tt></dd></dl>
126 <dl><dt><a name="ANSI-erase_screen"><strong>erase_screen</strong></a>(self)</dt><dd><tt>Erases the <a href="screen.html#screen">screen</a> with the background color.</tt></dd></dl>
128 <dl><dt><a name="ANSI-erase_start_of_line"><strong>erase_start_of_line</strong></a>(self)</dt><dd><tt>Erases from the current cursor position to the start of the current<br>
131 <dl><dt><a name="ANSI-erase_up"><strong>erase_up</strong></a>(self)</dt><dd><tt>Erases the <a href="screen.html#screen">screen</a> from the current line up to the top of the<br>
132 <a href="screen.html#screen">screen</a>.</tt></dd></dl>
134 <dl><dt><a name="ANSI-fill"><strong>fill</strong></a>(self, ch<font color="#909090">=' '</font>)</dt></dl>
136 <dl><dt><a name="ANSI-fill_region"><strong>fill_region</strong></a>(self, rs, cs, re, ce, ch<font color="#909090">=' '</font>)</dt></dl>
138 <dl><dt><a name="ANSI-get"><strong>get</strong></a>(self)</dt></dl>
140 <dl><dt><a name="ANSI-get_abs"><strong>get_abs</strong></a>(self, r, c)</dt></dl>
142 <dl><dt><a name="ANSI-get_region"><strong>get_region</strong></a>(self, rs, cs, re, ce)</dt><dd><tt>This returns a list of lines representing the region.</tt></dd></dl>
144 <dl><dt><a name="ANSI-insert"><strong>insert</strong></a>(self, ch)</dt></dl>
146 <dl><dt><a name="ANSI-insert_abs"><strong>insert_abs</strong></a>(self, r, c, ch)</dt><dd><tt>This inserts a character at (r,c). Everything under<br>
147 and to the right is shifted right one character.<br>
148 The last character of the line is lost.</tt></dd></dl>
150 <dl><dt><a name="ANSI-lf"><strong>lf</strong></a>(self)</dt><dd><tt>This moves the cursor down with scrolling.</tt></dd></dl>
152 <dl><dt><a name="ANSI-newline"><strong>newline</strong></a>(self)</dt><dd><tt>This is an alias for <a href="#ANSI-crlf">crlf</a>().</tt></dd></dl>
154 <dl><dt><a name="ANSI-pretty"><strong>pretty</strong></a>(self)</dt><dd><tt>This returns a copy of the <a href="screen.html#screen">screen</a> as a string with an ASCII text box<br>
155 around the <a href="screen.html#screen">screen</a> border. This is similar to __str__ except that it<br>
156 adds a box.</tt></dd></dl>
158 <dl><dt><a name="ANSI-put"><strong>put</strong></a>(self, ch)</dt><dd><tt>This puts a characters at the current cursor position.</tt></dd></dl>
160 <dl><dt><a name="ANSI-put_abs"><strong>put_abs</strong></a>(self, r, c, ch)</dt><dd><tt>Screen array starts at 1 index.</tt></dd></dl>
162 <dl><dt><a name="ANSI-scroll_constrain"><strong>scroll_constrain</strong></a>(self)</dt><dd><tt>This keeps the scroll region within the <a href="screen.html#screen">screen</a> region.</tt></dd></dl>
164 <dl><dt><a name="ANSI-scroll_down"><strong>scroll_down</strong></a>(self)</dt><dd><tt>Scroll display down one line.</tt></dd></dl>
166 <dl><dt><a name="ANSI-scroll_screen"><strong>scroll_screen</strong></a>(self)</dt><dd><tt>Enable scrolling for entire display.</tt></dd></dl>
168 <dl><dt><a name="ANSI-scroll_screen_rows"><strong>scroll_screen_rows</strong></a>(self, rs, re)</dt><dd><tt>Enable scrolling from row {start} to row {end}.</tt></dd></dl>
170 <dl><dt><a name="ANSI-scroll_up"><strong>scroll_up</strong></a>(self)</dt><dd><tt>Scroll display up one line.</tt></dd></dl>
172 <dl><dt><a name="ANSI-set_tab"><strong>set_tab</strong></a>(self)</dt><dd><tt>Sets a tab at the current position.</tt></dd></dl>
174 </td></tr></table> <p>
175 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
176 <tr bgcolor="#ffc8d8">
177 <td colspan=3 valign=bottom> <br>
178 <font color="#000000" face="helvetica, arial"><a name="term">class <strong>term</strong></a>(<a href="screen.html#screen">screen.screen</a>)</font></td></tr>
180 <tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
181 <td colspan=2><tt>This is a placeholder. <br>
182 In theory I might want to add other terminal types.<br> </tt></td></tr>
184 <td width="100%">Methods defined here:<br>
185 <dl><dt><a name="term-__init__"><strong>__init__</strong></a>(self, r<font color="#909090">=24</font>, c<font color="#909090">=80</font>)</dt></dl>
188 Methods inherited from <a href="screen.html#screen">screen.screen</a>:<br>
189 <dl><dt><a name="term-__str__"><strong>__str__</strong></a>(self)</dt><dd><tt>This returns a printable representation of the <a href="screen.html#screen">screen</a>. The end of<br>
190 each <a href="screen.html#screen">screen</a> line is terminated by a newline.</tt></dd></dl>
192 <dl><dt><a name="term-clear_all_tabs"><strong>clear_all_tabs</strong></a>(self)</dt><dd><tt>Clears all tabs.</tt></dd></dl>
194 <dl><dt><a name="term-clear_tab"><strong>clear_tab</strong></a>(self)</dt><dd><tt>Clears tab at the current position.</tt></dd></dl>
196 <dl><dt><a name="term-cr"><strong>cr</strong></a>(self)</dt><dd><tt>This moves the cursor to the beginning (col 1) of the current row.</tt></dd></dl>
198 <dl><dt><a name="term-crlf"><strong>crlf</strong></a>(self)</dt><dd><tt>This advances the cursor with CRLF properties.<br>
199 The cursor will line wrap and the <a href="screen.html#screen">screen</a> may scroll.</tt></dd></dl>
201 <dl><dt><a name="term-cursor_back"><strong>cursor_back</strong></a>(self, count<font color="#909090">=1</font>)</dt></dl>
203 <dl><dt><a name="term-cursor_constrain"><strong>cursor_constrain</strong></a>(self)</dt><dd><tt>This keeps the cursor within the <a href="screen.html#screen">screen</a> area.</tt></dd></dl>
205 <dl><dt><a name="term-cursor_down"><strong>cursor_down</strong></a>(self, count<font color="#909090">=1</font>)</dt></dl>
207 <dl><dt><a name="term-cursor_force_position"><strong>cursor_force_position</strong></a>(self, r, c)</dt><dd><tt>Identical to Cursor Home.</tt></dd></dl>
209 <dl><dt><a name="term-cursor_forward"><strong>cursor_forward</strong></a>(self, count<font color="#909090">=1</font>)</dt></dl>
211 <dl><dt><a name="term-cursor_home"><strong>cursor_home</strong></a>(self, r<font color="#909090">=1</font>, c<font color="#909090">=1</font>)</dt></dl>
213 <dl><dt><a name="term-cursor_restore_attrs"><strong>cursor_restore_attrs</strong></a>(self)</dt><dd><tt>Restores cursor position after a Save Cursor.</tt></dd></dl>
215 <dl><dt><a name="term-cursor_save"><strong>cursor_save</strong></a>(self)</dt><dd><tt>Save current cursor position.</tt></dd></dl>
217 <dl><dt><a name="term-cursor_save_attrs"><strong>cursor_save_attrs</strong></a>(self)</dt><dd><tt>Save current cursor position.</tt></dd></dl>
219 <dl><dt><a name="term-cursor_unsave"><strong>cursor_unsave</strong></a>(self)</dt><dd><tt>Restores cursor position after a Save Cursor.</tt></dd></dl>
221 <dl><dt><a name="term-cursor_up"><strong>cursor_up</strong></a>(self, count<font color="#909090">=1</font>)</dt></dl>
223 <dl><dt><a name="term-cursor_up_reverse"><strong>cursor_up_reverse</strong></a>(self)</dt></dl>
225 <dl><dt><a name="term-dump"><strong>dump</strong></a>(self)</dt><dd><tt>This returns a copy of the <a href="screen.html#screen">screen</a> as a string. This is similar to<br>
226 __str__ except that lines are not terminated with line feeds.</tt></dd></dl>
228 <dl><dt><a name="term-erase_down"><strong>erase_down</strong></a>(self)</dt><dd><tt>Erases the <a href="screen.html#screen">screen</a> from the current line down to the bottom of the<br>
229 <a href="screen.html#screen">screen</a>.</tt></dd></dl>
231 <dl><dt><a name="term-erase_end_of_line"><strong>erase_end_of_line</strong></a>(self)</dt><dd><tt>Erases from the current cursor position to the end of the current<br>
234 <dl><dt><a name="term-erase_line"><strong>erase_line</strong></a>(self)</dt><dd><tt>Erases the entire current line.</tt></dd></dl>
236 <dl><dt><a name="term-erase_screen"><strong>erase_screen</strong></a>(self)</dt><dd><tt>Erases the <a href="screen.html#screen">screen</a> with the background color.</tt></dd></dl>
238 <dl><dt><a name="term-erase_start_of_line"><strong>erase_start_of_line</strong></a>(self)</dt><dd><tt>Erases from the current cursor position to the start of the current<br>
241 <dl><dt><a name="term-erase_up"><strong>erase_up</strong></a>(self)</dt><dd><tt>Erases the <a href="screen.html#screen">screen</a> from the current line up to the top of the<br>
242 <a href="screen.html#screen">screen</a>.</tt></dd></dl>
244 <dl><dt><a name="term-fill"><strong>fill</strong></a>(self, ch<font color="#909090">=' '</font>)</dt></dl>
246 <dl><dt><a name="term-fill_region"><strong>fill_region</strong></a>(self, rs, cs, re, ce, ch<font color="#909090">=' '</font>)</dt></dl>
248 <dl><dt><a name="term-get"><strong>get</strong></a>(self)</dt></dl>
250 <dl><dt><a name="term-get_abs"><strong>get_abs</strong></a>(self, r, c)</dt></dl>
252 <dl><dt><a name="term-get_region"><strong>get_region</strong></a>(self, rs, cs, re, ce)</dt><dd><tt>This returns a list of lines representing the region.</tt></dd></dl>
254 <dl><dt><a name="term-insert"><strong>insert</strong></a>(self, ch)</dt></dl>
256 <dl><dt><a name="term-insert_abs"><strong>insert_abs</strong></a>(self, r, c, ch)</dt><dd><tt>This inserts a character at (r,c). Everything under<br>
257 and to the right is shifted right one character.<br>
258 The last character of the line is lost.</tt></dd></dl>
260 <dl><dt><a name="term-lf"><strong>lf</strong></a>(self)</dt><dd><tt>This moves the cursor down with scrolling.</tt></dd></dl>
262 <dl><dt><a name="term-newline"><strong>newline</strong></a>(self)</dt><dd><tt>This is an alias for <a href="#term-crlf">crlf</a>().</tt></dd></dl>
264 <dl><dt><a name="term-pretty"><strong>pretty</strong></a>(self)</dt><dd><tt>This returns a copy of the <a href="screen.html#screen">screen</a> as a string with an ASCII text box<br>
265 around the <a href="screen.html#screen">screen</a> border. This is similar to __str__ except that it<br>
266 adds a box.</tt></dd></dl>
268 <dl><dt><a name="term-put"><strong>put</strong></a>(self, ch)</dt><dd><tt>This puts a characters at the current cursor position.</tt></dd></dl>
270 <dl><dt><a name="term-put_abs"><strong>put_abs</strong></a>(self, r, c, ch)</dt><dd><tt>Screen array starts at 1 index.</tt></dd></dl>
272 <dl><dt><a name="term-scroll_constrain"><strong>scroll_constrain</strong></a>(self)</dt><dd><tt>This keeps the scroll region within the <a href="screen.html#screen">screen</a> region.</tt></dd></dl>
274 <dl><dt><a name="term-scroll_down"><strong>scroll_down</strong></a>(self)</dt><dd><tt>Scroll display down one line.</tt></dd></dl>
276 <dl><dt><a name="term-scroll_screen"><strong>scroll_screen</strong></a>(self)</dt><dd><tt>Enable scrolling for entire display.</tt></dd></dl>
278 <dl><dt><a name="term-scroll_screen_rows"><strong>scroll_screen_rows</strong></a>(self, rs, re)</dt><dd><tt>Enable scrolling from row {start} to row {end}.</tt></dd></dl>
280 <dl><dt><a name="term-scroll_up"><strong>scroll_up</strong></a>(self)</dt><dd><tt>Scroll display up one line.</tt></dd></dl>
282 <dl><dt><a name="term-set_tab"><strong>set_tab</strong></a>(self)</dt><dd><tt>Sets a tab at the current position.</tt></dd></dl>
284 </td></tr></table></td></tr></table><p>
285 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
286 <tr bgcolor="#eeaa77">
287 <td colspan=3 valign=bottom> <br>
288 <font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
290 <tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
291 <td width="100%"><dl><dt><a name="-BuildNumber"><strong>BuildNumber</strong></a>(fsm)</dt></dl>
292 <dl><dt><a name="-DoBack"><strong>DoBack</strong></a>(fsm)</dt></dl>
293 <dl><dt><a name="-DoBackOne"><strong>DoBackOne</strong></a>(fsm)</dt></dl>
294 <dl><dt><a name="-DoCursorRestore"><strong>DoCursorRestore</strong></a>(fsm)</dt></dl>
295 <dl><dt><a name="-DoCursorSave"><strong>DoCursorSave</strong></a>(fsm)</dt></dl>
296 <dl><dt><a name="-DoDown"><strong>DoDown</strong></a>(fsm)</dt></dl>
297 <dl><dt><a name="-DoDownOne"><strong>DoDownOne</strong></a>(fsm)</dt></dl>
298 <dl><dt><a name="-DoEnableScroll"><strong>DoEnableScroll</strong></a>(fsm)</dt></dl>
299 <dl><dt><a name="-DoErase"><strong>DoErase</strong></a>(fsm)</dt></dl>
300 <dl><dt><a name="-DoEraseDown"><strong>DoEraseDown</strong></a>(fsm)</dt></dl>
301 <dl><dt><a name="-DoEraseEndOfLine"><strong>DoEraseEndOfLine</strong></a>(fsm)</dt></dl>
302 <dl><dt><a name="-DoEraseLine"><strong>DoEraseLine</strong></a>(fsm)</dt></dl>
303 <dl><dt><a name="-DoForward"><strong>DoForward</strong></a>(fsm)</dt></dl>
304 <dl><dt><a name="-DoForwardOne"><strong>DoForwardOne</strong></a>(fsm)</dt></dl>
305 <dl><dt><a name="-DoHome"><strong>DoHome</strong></a>(fsm)</dt></dl>
306 <dl><dt><a name="-DoHomeOrigin"><strong>DoHomeOrigin</strong></a>(fsm)</dt></dl>
307 <dl><dt><a name="-DoMode"><strong>DoMode</strong></a>(fsm)</dt></dl>
308 <dl><dt><a name="-DoScrollRegion"><strong>DoScrollRegion</strong></a>(fsm)</dt></dl>
309 <dl><dt><a name="-DoUp"><strong>DoUp</strong></a>(fsm)</dt></dl>
310 <dl><dt><a name="-DoUpOne"><strong>DoUpOne</strong></a>(fsm)</dt></dl>
311 <dl><dt><a name="-DoUpReverse"><strong>DoUpReverse</strong></a>(fsm)</dt></dl>
312 <dl><dt><a name="-Emit"><strong>Emit</strong></a>(fsm)</dt></dl>
313 <dl><dt><a name="-Log"><strong>Log</strong></a>(fsm)</dt></dl>
314 <dl><dt><a name="-StartNumber"><strong>StartNumber</strong></a>(fsm)</dt></dl>