[1aee7d9] | 1 | $Id$ |
---|
| 2 | |
---|
[6794f72] | 3 | 1.2.1-pre-2 |
---|
| 4 | Refixed 'login or login' typo in help |
---|
| 5 | Fixed M-u description |
---|
| 6 | Removed 'first' and 'last' from basic command help |
---|
| 7 | Added M-N to basic key help |
---|
| 8 | Added M-D, M-u to basic key help |
---|
| 9 | Fixed a quoting problem in configure.in |
---|
| 10 | Changed top of help to use 'show' instead of M-x |
---|
[a9d0209] | 11 | Fixed a bug in the summary field for user-created aliases. |
---|
[1c7a4e0] | 12 | |
---|
[6794f72] | 13 | 1.2.1-pre-1 |
---|
[1aee7d9] | 14 | Added RCS Id strings to all files. |
---|
| 15 | 'show keymaps' shows details of all keymaps after summary list. |
---|
[b950088] | 16 | Added --no-move option to delete command. |
---|
| 17 | In particular, delete-and-always-move-down may now |
---|
| 18 | be implemented with |
---|
| 19 | '( delete --no-move ; next --skip-deleted )'. |
---|
| 20 | Folded the nextmsg and prevmsg commands and functions together into |
---|
| 21 | one command which takes arguments. |
---|
| 22 | Added '--filter <name>' option (eg, for next_personal), |
---|
| 23 | '--skip-deleted' option, and |
---|
| 24 | '--last-if-none'/'--first-if-none' options. |
---|
| 25 | Help updated accordingly. |
---|
| 26 | In particular, the 'personal' view is now used |
---|
| 27 | for 'next personal'. |
---|
| 28 | Updated examples/owlconf.erik with the above. |
---|
[855ebe7] | 29 | Fixed the annoying pagedown sometimes-not-working bug. |
---|
[7360fab] | 30 | Made owl_function_fast*filt return a string and not do the |
---|
| 31 | narrowing, to make it more general. |
---|
| 32 | Added a smartfilter command that creates a filter |
---|
| 33 | based on the current message and returns the name |
---|
| 34 | of the filter. |
---|
| 35 | Added --smart-filter and --smart-filter-instance options |
---|
| 36 | to the next and prev commands. |
---|
| 37 | Added M-C-n and M-C-p keybindings to "move to next message |
---|
| 38 | matching current" and "move to previous message |
---|
| 39 | matching current" |
---|
[d36f2cb] | 40 | Added variables edit:maxfillcols and edit:maxwrapcols which |
---|
| 41 | will limit how wide editing paragraphs may get before |
---|
[039213e] | 42 | they get wrapped. This is a max and may be narrower |
---|
| 43 | depending on the current size of the window. |
---|
| 44 | If 0, the max is unlimited. Default is 70 columns for |
---|
| 45 | edit:maxfillcols and unlimited for edit:maxwrapcols. |
---|
[d36f2cb] | 46 | Added smartzpunt command with key binding of "C-x k". |
---|
| 47 | This starts a zpunt command filled in with |
---|
| 48 | the proposed zpunt. |
---|
[8ee73f8d] | 49 | Fixed a memory reference bug in delete and undelete commands. |
---|
| 50 | Added support for perl to call directly back into owl. |
---|
| 51 | Changed the implementation of owl::command("...") to immediately |
---|
| 52 | call back into owl. This allows perl to get the return |
---|
| 53 | value of strings returned by owl commands. |
---|
| 54 | Added the getview command which returns the name of the current |
---|
| 55 | view's filter. |
---|
| 56 | Added the getvar command which returns the value of a variable. |
---|
| 57 | Added an example to examples/owlconf.erik which uses TAB to |
---|
| 58 | narrow and restore the view. |
---|
| 59 | Added an example to examples/owlconf.erik which uses M-c to |
---|
| 60 | color messages matching the current one green. |
---|
[1aee7d9] | 61 | |
---|
[7d4fbcd] | 62 | 1.2.0-pre-erikdevel-17 |
---|
| 63 | Integrated change to fix problem with popup blinking on new zephyrs. |
---|
| 64 | C-l and resizes will now refresh an open viewwin (eg, help). |
---|
| 65 | Updated doc/code.txt to include info about filters, commands, |
---|
| 66 | contexts, and keybindings. |
---|
| 67 | Ooops. "delete view" had accidentally been misbound to M-d. |
---|
| 68 | Switched the binding back to M-D. |
---|
| 69 | Exec commands cleaned up to not have buffer-size limitations |
---|
| 70 | and to not mess up spaces. exec also returns a string |
---|
| 71 | of the output now. |
---|
| 72 | |
---|
| 73 | 1.2.0-pre-erikdevel-16 |
---|
| 74 | Integrated changes from 1.1.3, and added docs for "zlocate -d" |
---|
| 75 | and new show commands. |
---|
| 76 | Show with arguments produces help on show. |
---|
| 77 | Fix a bug in readconfig caught by efence (where we'd try to read before |
---|
| 78 | the beginning of a string if it was empty). |
---|
| 79 | |
---|
| 80 | 1.1.2-erikdevel-15 |
---|
| 81 | The perl command doesn't do makemsg directly, but instead |
---|
| 82 | returns the string and it will get printed if it |
---|
| 83 | was run interactively. |
---|
| 84 | |
---|
| 85 | 1.1.2-erikdevel-14 |
---|
| 86 | *** NOTE: I probably missed some things here... |
---|
| 87 | New framework for command handling. |
---|
| 88 | New framework for keymap handling. |
---|
| 89 | Added commands for everything that is bound |
---|
| 90 | to a key (do 'show commands' to get the full list). |
---|
| 91 | Added 'multi' and '(' commands to allow multiple commands |
---|
| 92 | to be specified on a line. |
---|
| 93 | Added user keybindings with bindkey command. |
---|
| 94 | Added command aliases (eg, "alias foo bar"). |
---|
| 95 | Added undelete command that parallels the delete command. |
---|
| 96 | Added additional options to delete command. |
---|
| 97 | The reply command now takes arguments. |
---|
| 98 | Added 'edit:insert-text' command. |
---|
| 99 | Added 'show zpunts' to show active punt filters. |
---|
| 100 | Added 'show variable <name>' and 'show variables'. |
---|
| 101 | Added 'show command <name>' and 'show commands'. |
---|
| 102 | Added 'show keymap <name>' and 'show keymaps'. |
---|
| 103 | Added 'M-u' to undelete all messages in current view. |
---|
| 104 | Fixed dotsend so that the zephyr will still send if there |
---|
| 105 | is whitespace after the dot but not on the same line. |
---|
| 106 | This should resolve an issue where dotsend wouldn't work |
---|
| 107 | if you'd gone up and edited a zephyr. |
---|
| 108 | |
---|
| 109 | 1.1.3 |
---|
| 110 | 'show subs' and 'show subscriptions' are now the same as 'getsubs' |
---|
| 111 | zlocate now takes an optional -d argument |
---|
| 112 | 'show terminal' / 'show term' |
---|
| 113 | '>' / last doesn't set the last message at the top of the screen now |
---|
| 114 | implemented _followlast as an unsupported feature |
---|
| 115 | include 'default' in the 'show colors' list |
---|
| 116 | added help for 'zpunt' and 'zunpunt' |
---|
| 117 | changed the bug address in the startup message |
---|
| 118 | can now do 'show status' |
---|
| 119 | can now do 'show version' |
---|
| 120 | 'status' / 'show status' includes the owl version number now |
---|
| 121 | 'show terminal' includes whether the terminal can change colors |
---|
| 122 | fixed off by one bugs in paging / scrolling viewwin |
---|
| 123 | don't downcase the sender when getting the log name for personals |
---|
| 124 | support @owl::fields as well as @fields |
---|
| 125 | downcase class/inst filter names in auto filters |
---|
| 126 | |
---|
| 127 | 1.1.2 |
---|
| 128 | Fixed memory mishandling bug |
---|
| 129 | Fixed bug in redfining the filter attached to the current view |
---|
| 130 | M-n will narrow to message, instance on non-personal, class |
---|
| 131 | MESSAGE messages |
---|
| 132 | M-N behavies like M-n except that on class messages it narrows |
---|
| 133 | to class and instance |
---|
| 134 | line wrap earlier, to account for tabbing |
---|
| 135 | fixed typo in help |
---|
| 136 | 'status' command now displays info on terminal color support |
---|
| 137 | zephyr @ formatting is now case independant |
---|
| 138 | added support for color terminals |
---|
| 139 | zephyr @color(foo) now works |
---|
| 140 | 'D' for deleted messages is now not bold, unless it's the current |
---|
| 141 | message |
---|
| 142 | F1 displays the help screen |
---|
| 143 | added filter colors |
---|
| 144 | added the 'colorview' command |
---|
| 145 | added the 'show colors' command |
---|
| 146 | users who don't have a .zephyr.subs get a simpler format for |
---|
| 147 | incoming messages |
---|
| 148 | If colors are available 'show filters' will show a filter in the |
---|
| 149 | color associated with it. |
---|
| 150 | Added the zpunt and zunpunt commands |
---|
| 151 | Lines in the subs file starting with '-' are zpunted |
---|
| 152 | Include login/logout messages in auto user filters |
---|
| 153 | 'V' changes to the home view ('all' by default) |
---|
| 154 | |
---|
| 155 | 1.1.1 |
---|
| 156 | Fixed perl, aperl, and pperl commands to deal with quoting |
---|
| 157 | and spaces in a saner manner. |
---|
| 158 | Removed all owl_get_* methods for booleans and switched |
---|
| 159 | cases where they were used to owl_is_* |
---|
| 160 | Changes to owlconf.erik to use some new features. |
---|
| 161 | Increased the size of the help buffer (as it |
---|
| 162 | was overflowing and truncating the help message). |
---|
| 163 | Variables prefixed with a _ are not shown in help |
---|
| 164 | or by printallvars (and prefixed Not Yet Implemented |
---|
| 165 | variables with this). |
---|
| 166 | Fix typo in help |
---|
| 167 | include stdio.h in functions.c |
---|
| 168 | remove stale "q to quit" from bottom of info message |
---|
| 169 | fix downward scrolling more than a page |
---|
| 170 | use authentication for zlocate, by default |
---|
| 171 | fixed buffer over run in info command on long messages |
---|
| 172 | call 'perl <file>' from Makefile to avoid hardcoding perl paths |
---|
| 173 | in Makefile don't build owl_prototypes.h unless necessary |
---|
| 174 | store the time for admin messages |
---|
| 175 | display admin message time in 'info' command |
---|
| 176 | fixed an editwin M-> last character bug |
---|
| 177 | |
---|
| 178 | 1.1 |
---|
| 179 | reply is a normal function now |
---|
| 180 | 'R' does reply to sender |
---|
| 181 | 'T' tells you how many messages were marked for deletion |
---|
| 182 | local realm removed from login / logout messages |
---|
| 183 | added command history |
---|
| 184 | better runtime / starttime reporting in 'status' command |
---|
| 185 | leave the pointer near the current message after expunge |
---|
| 186 | C-l recenters editwin |
---|
| 187 | implemented zlocate |
---|
| 188 | @italic works the same as @i |
---|
| 189 | on reply only quote class / instance when necessary |
---|
| 190 | C-r allows you to edit the reply line |
---|
| 191 | don't use unecessary options in reply line |
---|
| 192 | display 'info' errors in msgwin, not popup |
---|
| 193 | impelemnted aexec, pexec commands |
---|
| 194 | the zsig now goes through ztext formatting |
---|
| 195 | messages have id numbers now |
---|
| 196 | 'info' prints the msgid |
---|
| 197 | added the 'filter' command |
---|
| 198 | added the 'view' command |
---|
| 199 | added the 'show filter' command |
---|
| 200 | added the 'viewclass' (and 'vc') commands |
---|
| 201 | added the 'viewuser' (and 'vu') commands |
---|
| 202 | M-n will filter to the current class or user |
---|
| 203 | 'v' starts a view command |
---|
| 204 | M-D will delete all messages in current view |
---|
| 205 | added the 'delete' (and 'del') command |
---|
| 206 | load-subs with no argument loads the default subs file |
---|
| 207 | '<truncated>' is now when the *current* message is truncated |
---|
| 208 | the reply-lockout filter (with default) specifices messages that |
---|
| 209 | cannot be replied to. |
---|
| 210 | in the configfile owl::receive_msg is run whenever a message is |
---|
| 211 | received |
---|
| 212 | added the beep command |
---|
| 213 | added the contributors file |
---|
| 214 | declare ZGetSubscriptions and ZGetLocations since the includes |
---|
| 215 | don't seem to |
---|
| 216 | fixed bug in displaying last line in popwin if no final '\n' |
---|
| 217 | 'T' uses the 'trash' filter now |
---|
| 218 | zaway_msg, zaway_msg_default and zaway are all user variables now. |
---|
| 219 | zsig variable overrides zsigproc |
---|
| 220 | If there's no appendtosepbar don't interfear with the sepbar |
---|
| 221 | Changed: owl_message_get_numlines will return 0 of m is NULL |
---|
| 222 | Added login messages to messages marked by owl_function_delete_automsgs |
---|
| 223 | Added owl_function_delete_by_id(id) which acts independent of view |
---|
| 224 | Added "-id <id>" option to delete command |
---|
| 225 | Fixed an arg checking bug in delete command |
---|
| 226 | Added owl::id to perl namespace with message id |
---|
| 227 | Fixed a memory corruption bug in readconfig.c (where right |
---|
| 228 | after the strdup to "out", we'd strcat a \n onto the end. |
---|
| 229 | This would be triggered whenever owl::format_msg returned |
---|
| 230 | a string not ending in a newline |
---|
| 231 | Added 'X' keybinding which expunges and then switches to |
---|
| 232 | a view defined by the variable "view_home" which defaults |
---|
| 233 | to "all" |
---|
| 234 | Consolidated readconfig.c somewhat to remove duplication. |
---|
| 235 | owl_config_execute now returns a string. |
---|
| 236 | Added an example config file that does vt-style formatting. |
---|
| 237 | (examples/owlconf.vtformat) |
---|
| 238 | Added the 'perl', 'aperl', and 'pperl' commands which will |
---|
| 239 | evaluate perl expressions. |
---|
| 240 | Fixed bug where pclose zsigproc would cause zombies |
---|
| 241 | Can set zsigproc or zsig to "" to disable |
---|
| 242 | Added support for multiple browsers (galeon and none were added). |
---|
| 243 | Configure with the "webbrowser" variable. |
---|
| 244 | Changing typewinsize height triggers resize event. |
---|
| 245 | Added zsig variable which will be used if no zsigproc and non-empty. |
---|
| 246 | Added "make test" rule to Makefile which will run regression tests, |
---|
| 247 | and added regression testing framework to tester |
---|
| 248 | Fixed codelist.pl to ignore static declarations. |
---|
| 249 | Added dict.c which contains string->ptr dictionary routines |
---|
| 250 | and the owl_dict type. |
---|
| 251 | These include regression tests. |
---|
| 252 | Overhaul/rewrite of variable handling. Variables are now managed |
---|
| 253 | in an owl_vardict (in g.vars) which contains a dictionary |
---|
| 254 | of owl_variable's. Each owl_variable has dispatch functions |
---|
| 255 | for validating values, setting it and getting it, |
---|
| 256 | and for setting it to and from string values. |
---|
| 257 | The variable.c file contains the list of variables. |
---|
| 258 | Stubs for the owl_global_<varname>_get functions and friends |
---|
| 259 | are generated from variable.c by stubgen.pl. |
---|
| 260 | The help.c messages for variables now calls into variable.c |
---|
| 261 | so all information about most variables is in one place. |
---|
| 262 | Cleaned out code from global.c and command.c that was made obselete |
---|
| 263 | by variable overhaul. |
---|
| 264 | The set command now takes a -q option to not log a message. |
---|
| 265 | Fixed a bug where set and print with no arguments would |
---|
| 266 | print "Undefined variable" in addition |
---|
| 267 | to running owl_function_printallvars. |
---|
| 268 | debug is now a variable that can be turned on and off. |
---|
| 269 | Fixed mail,inbox message parsing in examples/owlconf.erik |
---|
| 270 | Made zaway_msg and zaway_msg_default into variables |
---|
| 271 | Changed owl_function_makemsg and owl_function_debugmsg |
---|
| 272 | to use varargs (ie, so they can now take a format |
---|
| 273 | string with args). |
---|
| 274 | Don't allow " and \ characters in URLs with the "w" command. |
---|
| 275 | Removed lots of build warnings. |
---|
| 276 | Popwins are wider by default so help messages fit better. |
---|
| 277 | Added an atokenize_free function. |
---|
| 278 | Fixes to work with an older version of libzephyr. |
---|
| 279 | Added dependencies on header files to Makefile.in |
---|
| 280 | Added pageup and pagedown key bindings to message list |
---|
| 281 | Added pageup and pagedown to viewwin |
---|
| 282 | Added configfile section to doc/intro.txt (from example config file) |
---|
| 283 | Added appendtosepbar variable which may contain text which will |
---|
| 284 | be appended to the sepbar. This allows the configfile |
---|
| 285 | to put information about pings and logins into |
---|
| 286 | the sepbar. (It may be worth also providing a variable |
---|
| 287 | which enables this by default, but for now this allows |
---|
| 288 | for experimenting with what works well.) |
---|
| 289 | Added doc/code.txt which gives a brief overview of the code. |
---|
| 290 | Added tags makefile rule and added TAGS to distclean rule. |
---|
| 291 | |
---|
| 292 | 1.0.1 |
---|
| 293 | fix frees in loadsubs and loadloginsubs |
---|
| 294 | don't return in owl_free |
---|
| 295 | |
---|
| 296 | 1.0 |
---|
| 297 | 'print' and 'set' with no arguments prints all variables |
---|
| 298 | Added the 'unsubscribe' and 'unsub' command |
---|
| 299 | Renamed the 'unsub' command to 'unsuball' |
---|
| 300 | Added the 'getsubs' command which is like zctl ret |
---|
| 301 | Fixed bug in logging messages sent to more than one recipient |
---|
| 302 | Support '-C', '-O', and '-n' options to zwrite |
---|
| 303 | Fixed bug in owl_editwin_delete_char when there are no later chars |
---|
| 304 | after the cursor |
---|
| 305 | Make "more" and "truncated" work in the status bar |
---|
| 306 | enable printing of zsigproc and loginsubs variables |
---|
| 307 | only allow message scrolling if the message is actually off the |
---|
| 308 | screen |
---|
| 309 | 'T' will mark all automated message for deletion |
---|
| 310 | 'P' will go to the next personal message |
---|
| 311 | 'M-P' will go to the previous personal message |
---|
| 312 | replying to a login message goes to the user now |
---|
| 313 | added a status command |
---|
| 314 | added the intro doc to the release |
---|
| 315 | fixed off by one bug in viewwin |
---|
| 316 | added complete online help |
---|
| 317 | pass $owl::realm in configfile |
---|
| 318 | fixed editwin wordwrapping on the last line |
---|
| 319 | fixed editwin problem with key_right past the last char |
---|
| 320 | print an error and quit if the configfile can't be parsed |
---|
| 321 | got rid of owl_mainwin_calculate_topmsg |
---|
| 322 | fixed off by one error in calculating topmsg upwards |
---|
| 323 | you can now reply to an admin message |
---|
| 324 | don't display an error about keypress on window resize |
---|
| 325 | |
---|
| 326 | 0.11 |
---|
| 327 | fixed bug in viewing messages longer than the screen |
---|
| 328 | indicate in the sepbar if there is a non zero vert offset |
---|
| 329 | send on '.' on a line by itself |
---|
| 330 | added disable-ctrl-d variable |
---|
| 331 | fixed bug where C-k did not delete the last \n in the buffer |
---|
| 332 | make non-character meta keys work |
---|
| 333 | use ZSendNotice instead of ZSendList |
---|
| 334 | implemented <, >, M-< and M-> in viewwin |
---|
| 335 | removed the spaces at the bottom of viewwin |
---|
| 336 | added 'about' command |
---|
| 337 | fixed bug using 'M' with no current message |
---|
| 338 | changed message object to use char *'s to save on memory |
---|
| 339 | change malloc, realloc, strdup and free to use owl hooks so that |
---|
| 340 | debugging can be added |
---|
| 341 | |
---|
| 342 | 0.10.1 |
---|
| 343 | fixed a trailing space bug in the parser |
---|
| 344 | impelemented the "burning ears" feature |
---|
| 345 | have admin messages do ztext parsing |
---|
| 346 | fixed bug in reporting which M- key was pressed |
---|
| 347 | C-g will now cancel commands like C-c |
---|
| 348 | |
---|
| 349 | 0.10 |
---|
| 350 | implemented owl_function_full_redisplay(). |
---|
| 351 | C-l uses owl_function_full_redisplay(). |
---|
| 352 | when a popwin exists to a full redisplay. (fixes bug) |
---|
| 353 | improved the owl_editwin_process_char logic |
---|
| 354 | removed all unnecessary wrefresh's and replaced with wnoutrefesh |
---|
| 355 | owl_editwin_redisplay now takes an argument to optionally doupdate() |
---|
| 356 | improved the cut-and-paste speed by not doing a usleep the first |
---|
| 357 | time through the loop after getting a keypress. |
---|
| 358 | nuked typwin.c and associated stuff. It's useless now. |
---|
| 359 | added viewwin code for paging windows |
---|
| 360 | curly braces work for zephyr formatting |
---|
| 361 | @i in zephyr formatting will be displayed as underlined text |
---|
| 362 | turned off idlok |
---|
| 363 | implemented viewwin |
---|
| 364 | implemented viewwi in popwin for pageable popwins |
---|
| 365 | help, info now use pageable popwins |
---|
| 366 | bound 'M' to bring the current message up in a popwin |
---|
| 367 | return, space bar, 'b' and backspace now scroll within a message |
---|
| 368 | turned off resize message |
---|
| 369 | C-v and M-v page the main window |
---|
| 370 | implemented owl_message_is_mail |
---|
| 371 | some build cleanup |
---|
| 372 | |
---|
| 373 | |
---|
| 374 | 0.9 |
---|
| 375 | added owl_message_is_personal and have things use it |
---|
| 376 | added owl_message_is_private |
---|
| 377 | fixed 'print personalbell' and have 'set personalbell' |
---|
| 378 | print a message |
---|
| 379 | bold only on message_is_personal |
---|
| 380 | display the realm if not local |
---|
| 381 | implemented M-f, M-b, M-d, M-<, M-> in editwin |
---|
| 382 | implemnted word wrapping in editwin |
---|
| 383 | implemented M-q (paragraph-fill) in editwin |
---|
| 384 | fixed bug that caused owl to segfault logging a 'weird' class |
---|
| 385 | M-x is a keysym for ':' |
---|
| 386 | added smart bolding and userclue |
---|
| 387 | fixed a bug causing pings to beep even if rxping is off |
---|
| 388 | |
---|
| 389 | 0.8.1 |
---|
| 390 | fixed bug in logging code |
---|
| 391 | |
---|
| 392 | 0.8 |
---|
| 393 | implemented personal logging |
---|
| 394 | implemented class logging |
---|
| 395 | implemented resize of typewin |
---|
| 396 | fixed the backspace problem |
---|
| 397 | -v command line option prints the version number |
---|
| 398 | |
---|
| 399 | 0.7 |
---|
| 400 | load-subs will report error opening file |
---|
| 401 | skip comment lines in loadsubs and loadloginsubs |
---|
| 402 | changed internal references to rxping and txping |
---|
| 403 | fix replying to a blank instance |
---|
| 404 | added subscribe command |
---|
| 405 | subscribe to login messages from .anyone by default |
---|
| 406 | 'loginsubs' variarble controlls automated login messages |
---|
| 407 | redisplay the editwin after a resize |
---|
| 408 | leave the cursor in the editwin if active |
---|
| 409 | fix problems in the build system |
---|
| 410 | added displayoutgoing variable |
---|
| 411 | temporarily removed error printing for zlog in / out |
---|
| 412 | |
---|
| 413 | 0.61 |
---|
| 414 | fixed bug in "message sent to <foo>" for zwrite |
---|
| 415 | |
---|
| 416 | 0.6 |
---|
| 417 | help updated |
---|
| 418 | zaway key set to caps A |
---|
| 419 | support zephyring other realms |
---|
| 420 | rxping variable for receiving pings |
---|
| 421 | txping variable for sending pings |
---|
| 422 | function in place to resize typwin |
---|
| 423 | C-l to refresh |
---|
| 424 | personal bell variable |
---|
| 425 | beta message now an admin message |
---|
| 426 | |
---|
| 427 | 0.5 |
---|
| 428 | Added the debug command and flag |
---|
| 429 | Fixed bug in printing fields in info command |
---|
| 430 | Added owl_fmtext_append_ztext and use it |
---|
| 431 | Better formating for pings and login zephyrs |
---|
| 432 | make tester depends on proto |
---|