#define RULE_OP_MANGLE_NOOP1		':' // does nothing
#define RULE_OP_MANGLE_NOOP2		' ' // does nothing
#define RULE_OP_MANGLE_LREST		'l' // lower case all chars
#define RULE_OP_MANGLE_UREST		'u' // upper case all chars
#define RULE_OP_MANGLE_LREST_UFIRST	'c' // lower case all chars, upper case 1st
#define RULE_OP_MANGLE_UREST_LFIRST	'C' // upper case all chars, lower case 1st
#define RULE_OP_MANGLE_TREST		't' // switch the case of each char
#define RULE_OP_MANGLE_TOGGLE_AT	'T' // switch the case of each char on pos N
#define RULE_OP_MANGLE_REVERSE		'r' // reverse word
#define RULE_OP_MANGLE_DUPEWORD		'd' // append word to itself
#define RULE_OP_MANGLE_DUPEWORD_TIMES	'p' // append word to itself N times
#define RULE_OP_MANGLE_REFLECT		'f' // reflect word (append reversed word)
#define RULE_OP_MANGLE_ROTATE_LEFT	'{' // rotate the word left.  ex: hello -> elloh
#define RULE_OP_MANGLE_ROTATE_RIGHT	'}' // rotate the word right. ex: hello -> ohell
#define RULE_OP_MANGLE_APPEND		'$' // append char X
#define RULE_OP_MANGLE_PREPEND		'^' // prepend char X
#define RULE_OP_MANGLE_DELETE_FIRST	'[' // delete first char of word
#define RULE_OP_MANGLE_DELETE_LAST	']' // delete last char of word
#define RULE_OP_MANGLE_DELETE_AT	'D' // delete char of word at pos N
#define RULE_OP_MANGLE_EXTRACT		'x' // delete X chars of word at pos N
#define RULE_OP_MANGLE_INSERT		'i' // insert char X at pos N
#define RULE_OP_MANGLE_OVERSTRIKE	'o' // overwrite with char X at pos N
#define RULE_OP_MANGLE_TRUNCATE_AT	'\''// cut the word at pos N
#define RULE_OP_MANGLE_REPLACE		's' // replace all chars X with char Y
#define RULE_OP_MANGLE_PURGECHAR	'@' // -- not implemented --
#define RULE_OP_MANGLE_DUPECHAR_FIRST	'z' // prepend first char of word to itself. ex: hello -> hhello
#define RULE_OP_MANGLE_DUPECHAR_LAST	'Z' // append last char of word to itself.   ex: hello -> helloo
#define RULE_OP_MANGLE_DUPECHAR_ALL	'q' // duplicate all chars. ex: hello -> hheelllloo

/* hashcat only */

#define RULE_OP_MANGLE_SWITCH_FIRST	'k' // switches the first 2 chars. ex: hello -> ehllo
#define RULE_OP_MANGLE_SWITCH_LAST	'K' // switches the last 2 chars.  ex: hello -> helol
#define RULE_OP_MANGLE_SWITCH_AT	'*' // switches the the chars at pos N. 
#define RULE_OP_MANGLE_CHR_SHIFTL	'L' // bitwise shift left char at pos N.  ex: hello0 -> hello`
#define RULE_OP_MANGLE_CHR_SHIFTR	'R' // bitwise shift right char at pos N. ex: hello` -> hello0
#define RULE_OP_MANGLE_CHR_INCR		'+' // bytewise increase at pos N. ex: hello0 -> hello1
#define RULE_OP_MANGLE_CHR_DECR		'-' // bytewise decreate at pos N. ex: hello1 -> hello0
#define RULE_OP_MANGLE_REPLACE_NP1      '.' // -- not implemented --
#define RULE_OP_MANGLE_REPLACE_NM1      ',' // -- not implemented --
#define RULE_OP_MANGLE_DUPEBLOCK_FIRST  'y' // -- not implemented --
#define RULE_OP_MANGLE_DUPEBLOCK_LAST   'Y' // -- not implemented --

