home *** CD-ROM | disk | FTP | other *** search
/ Shareware 1 2 the Maxx / sw_1.zip / sw_1 / EDITORS / TDE20.ZIP / GLOBAL.H < prev    next >
C/C++ Source or Header  |  1992-06-05  |  21KB  |  334 lines

  1. /*******************  start of original comments  ********************/
  2. /*
  3.  * Written by Douglas Thomson (1989/1990)
  4.  *
  5.  * This source code is released into the public domain.
  6.  */
  7. /*********************  end of original comments   ********************/
  8.  
  9. /*
  10.  * New editor name:  tde, the Thomson-Davis Editor.
  11.  * Author:           Frank Davis
  12.  * Date:             June 5, 1991
  13.  *
  14.  * This modification of Douglas Thomson's code is released into the
  15.  * public domain, Frank Davis.  You may distribute it freely.
  16.  *
  17.  * See "tdestr.h" for a description of these variables. C requires global
  18.  *  variables to be declared "extern" in all modules except one.  This file
  19.  *  is included in ed.c and it should not be included in any other module.
  20.  */
  21.  
  22. #include <stdio.h>
  23. #include <string.h>
  24. #include <ctype.h>
  25. #include <conio.h>
  26. #ifdef __TURBOC__
  27.    #include <stdlib.h>
  28. #elif __MSC__
  29.    #include <stdlib.h>
  30.    #if defined( toupper )
  31.        #undef toupper
  32.    #endif
  33. #endif
  34.  
  35. displays g_display;
  36.  
  37. status_infos g_status;
  38.  
  39. boyer_moore_type bm;
  40.  
  41. CEH ceh;
  42.  
  43. SORT sort;
  44.  
  45. mode_infos mode = {
  46.    0,           /* initial color scheme */
  47.    FALSE,       /* sync mode? */
  48.    TRUE,        /* sync semaphore must be TRUE - DO NOT CHANGE */
  49.    FALSE,       /* macro recording mode must be FALSE - DO NOT CHANGE */
  50.    TRUE,        /* insert mode */
  51.    TRUE,        /* indent mode */
  52.    8,           /* tab size */
  53.    TRUE,        /* default smart tab mode */
  54.    FALSE,       /* enhanced keyboard flag - set in main.c, video_config( ) */
  55.    SMALL_INS,   /* default cursor size == small insert and large overstrike */
  56.    "<=======   End of File   =======>",       /* eof message */
  57.    TRUE,        /* default TRUE = do not write ^Z at end of file */
  58.    CRLF,        /* default write <cr><lf> at eol */
  59.    TRUE,        /* default remove trailing space on edited lines */
  60.    FALSE,       /* default show eol character is off */
  61.    NO_WRAP,     /* default word wrap mode is off */
  62.    0,           /* default left margin - add 1 to margins for display */
  63.    2,           /* default paragraph begin */
  64.    71,          /* default right margin */
  65.    FALSE,       /* default backup mode */
  66.    TRUE,        /* default ruler mode */
  67.    MM_DD_YY,    /* default date style */
  68.    _12_HOUR     /* default time style */
  69. };
  70.  
  71. /*
  72.  * do_it is an array of pointers to functions that return int with an argument
  73.  * that is a pointer to a window.  Is that right???
  74.  */
  75.  
  76. #define NUM_FUNCS          122
  77.  
  78. int  (* (do_it[NUM_FUNCS]))( WINDOW * ) = {
  79.    insert_overwrite,                /*   regular text keys        0  */
  80.    get_help,                        /*   Help                     1  */
  81.    insert_newline,                  /*   Rturn                    2  */
  82.    next_line,                       /*   NextLine                 3  */
  83.    beg_next_line,                   /*   BegNextLine              4  */
  84.    move_down,                       /*   LineDown                 5  */
  85.    move_up,                         /*   LineUp                   6  */
  86.    move_right,                      /*   CharRight                7  */
  87.    move_left,                       /*   CharLeft                 8  */
  88.    scroll_right,                    /*   ScrollRight              9  */
  89.    scroll_left,                     /*   ScrollLeft              10  */
  90.    word_right,                      /*   WordRight               11  */
  91.    word_left,                       /*   WordLeft                12  */
  92.    page_down,                       /*   ScreenDown              13  */
  93.    page_up,                         /*   ScreenUp                14  */
  94.    goto_end_file,                   /*   EndOfFile               15  */
  95.    goto_top_file,                   /*   TopOfFile               16  */
  96.    goto_bottom,                     /*   BotOfScreen             17  */
  97.    goto_top,                        /*   TopOfScreen             18  */
  98.    goto_eol,                        /*   EndOfLine               19  */
  99.    home,                            /*   BegOfLine               20  */
  100.    goto_line,                       /*   JumpToLine              21  */
  101.    center_window,                   /*   CenterWindow            22  */
  102.    center_window,                   /*   CenterLine              23  */
  103.    horizontal_screen_right,         /*   HorizontalScreenRight   24  */
  104.    horizontal_screen_left,          /*   HorizontalScreenLeft    25  */
  105.    scroll_down,                     /*   ScrollDnLine            26  */
  106.    scroll_up,                       /*   ScrollUpLine            27  */
  107.    fixed_scroll_up,                 /*   FixedScrollUp           28  */
  108.    fixed_scroll_down,               /*   FixedScrollDn           29  */
  109.    toggle_overwrite,                /*   ToggleOverWrite         30  */
  110.    toggle_smart_tabs,               /*   ToggleSmartTabs         31  */
  111.    toggle_indent,                   /*   ToggleIndent            32  */
  112.    toggle_ww,                       /*   ToggleWordWrap          33  */
  113.    toggle_crlf,                     /*   ToggleCRLF              34  */
  114.    toggle_trailing,                 /*   ToggleTrailing          35  */
  115.    toggle_z,                        /*   ToggleZ                 36  */
  116.    toggle_eol,                      /*   ToggleEol               37  */
  117.    toggle_sync,                     /*   ToggleSync              38  */
  118.    toggle_ruler,                    /*   ToggleRuler             39  */
  119.    set_tabstop,                     /*   SetTabs                 40  */
  120.    set_left_margin,                 /*   SetLeftMargin           41  */
  121.    set_right_margin,                /*   SetRightMargin          42  */
  122.    set_paragraph_margin,            /*   SetParagraphMargin      43  */
  123.    format_paragraph,                /*   FormatParagraph         44  */
  124.    format_paragraph,                /*   FormatText              45  */
  125.    left_justify,                    /*   LeftJustify             46  */
  126.    right_justify,                   /*   RightJustify            47  */
  127.    center_justify,                  /*   CenterJustify           48  */
  128.    tab_key,                         /*   Tab                     49  */
  129.    backtab,                         /*   BackTab                 50  */
  130.    match_pair,                      /*   ParenBalance            51  */
  131.    back_space,                      /*   BackSpace               52  */
  132.    char_del_under,                  /*   DeleteChar              53  */
  133.    char_del_under,                  /*   StreamDeleteChar        54  */
  134.    line_kill,                       /*   DeleteLine              55  */
  135.    eol_kill,                        /*   DelEndOfLine            56  */
  136.    word_delete,                     /*   WordDelete              57  */
  137.    insert_newline,                  /*   AddLine                 58  */
  138.    insert_newline,                  /*   SplitLine               59  */
  139.    join_line,                       /*   JoinLine                60  */
  140.    dup_line,                        /*   DuplicateLine           61  */
  141.    undo_line,                       /*   AbortCommand            62  */
  142.    undo_line,                       /*   UndoLine                63  */
  143.    undo,                            /*   UndoDelete              64  */
  144.    toggle_search_case,              /*   ToggleSearchCase        65  */
  145.    find_string,                     /*   FindForward             66  */
  146.    find_string,                     /*   FindBackward            67  */
  147.    find_string,                     /*   RepeatFindForward1      68  */
  148.    find_string,                     /*   RepeatFindForward2      69  */
  149.    find_string,                     /*   RepeatFindBackward1     70  */
  150.    find_string,                     /*   RepeatFindBackward2     71  */
  151.    replace_string,                  /*   ReplaceForward          72  */
  152.    replace_string,                  /*   ReplaceBackward         73  */
  153.    mark_block,                      /*   MarkBlock               74  */
  154.    mark_block,                      /*   MarkLine                75  */
  155.    mark_block,                      /*   MarkStream              76  */
  156.    unmark_block,                    /*   UnMarkBlock             77  */
  157.    move_copy_delete_overlay_block,  /*   FillBlock               78  */
  158.    move_copy_delete_overlay_block,  /*   NumberBlock             79  */
  159.    move_copy_delete_overlay_block,  /*   CopyBlock               80  */
  160.    move_copy_delete_overlay_block,  /*   KopyBlock               81  */
  161.    move_copy_delete_overlay_block,  /*   MoveBlock               82  */
  162.    move_copy_delete_overlay_block,  /*   OverlayBlock            83  */
  163.    move_copy_delete_overlay_block,  /*   DeleteBlock             84  */
  164.    block_write,                     /*   BlockToFile             85  */
  165.    block_print,                     /*   PrintBlock              86  */
  166.    block_expand_tabs,               /*   BlockExpandTabs         87  */
  167.    block_trim_trailing,             /*   BlockTrimTrailing       88  */
  168.    block_convert_case,              /*   BlockUpperCase          89  */
  169.    block_convert_case,              /*   BlockLowerCase          90  */
  170.    block_convert_case,              /*   BlockStripHiBit         91  */
  171.    sort_box_block,                  /*   SortBoxBlock            92  */
  172.    date_time_stamp,                 /*   DateTimeStamp           93  */
  173.    edit_another_file,               /*   EditFile                94  */
  174.    dir_help,                        /*   DirList                 95  */
  175.    file_file,                       /*   File                    96  */
  176.    save_file,                       /*   Save                    97  */
  177.    save_as_file,                    /*   SaveAs                  98  */
  178.    change_fattr,                    /*   SetFileAttributes       99  */
  179.    edit_next_file,                  /*   EditNextFile           100  */
  180.    redraw_screen,                   /*   RedrawScreen           101  */
  181.    size_window,                     /*   SizeWindow             102  */
  182.    split_horizontal,                /*   SplitHorizontal        103  */
  183.    split_vertical,                  /*   SplitVertical          104  */
  184.    next_window,                     /*   NextWindow             105  */
  185.    prev_window,                     /*   PreviousWindow         106  */
  186.    zoom_window,                     /*   ZoomWindow             107  */
  187.    next_hidden_window,              /*   NextHiddenWindow       108  */
  188.    set_marker,                      /*   SetMark1               109  */
  189.    set_marker,                      /*   SetMark2               110  */
  190.    set_marker,                      /*   SetMark3               111  */
  191.    goto_marker,                     /*   GotoMark1              112  */
  192.    goto_marker,                     /*   GotoMark2              113  */
  193.    goto_marker,                     /*   GotoMark3              114  */
  194.    record_on_off,                   /*   RecordMacro            115  */
  195.    play_back,                       /*   PlayBack               116  */
  196.    save_strokes,                    /*   SaveMacro              117  */
  197.    load_strokes,                    /*   LoadMacro              118  */
  198.    clear_macros,                    /*   ClearAllMacros         119  */
  199.    pause,                           /*   Pause                  120  */
  200.    quit                             /*   Quit                   121  */
  201. };
  202.  
  203. /*
  204.  * set the 256 possible function keys to FS (First Stroke)
  205.  * set the 1024 stroke buffer keys to SK (Stroke Key) and SN (Stroke Next)
  206.  */
  207. #define         FS      STROKE_LIMIT+1
  208. #define         SK      MAX_KEYS+1
  209. #define         SN      STROKE_LIMIT+1
  210.  
  211. MACRO macro = {
  212.                /* 16 rows of 16 = 256 = MAX_KEYS */
  213.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  214.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  215.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  216.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  217.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  218.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  219.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  220.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  221.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  222.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  223.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  224.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  225.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  226.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  227.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  228.    FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
  229.                  /* 102.4 rows of 10 = 1024 = STROKE_LIMIT */
  230. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  231. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  232. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  233. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  234. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  235. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  236. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  237. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  238. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  239. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  240. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  241. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  242. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  243. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  244. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  245. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  246. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  247. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  248. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  249. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  250. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  251. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  252. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  253. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  254. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  255. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  256. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  257. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  258. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  259. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  260. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  261. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  262. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  263. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  264. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  265. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  266. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  267. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  268. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  269. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  270. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  271. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  272. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  273. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  274. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  275. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  276. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  277. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  278. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  279. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  280. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  281. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  282. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  283. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  284. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  285. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  286. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  287. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  288. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  289. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  290. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  291. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  292. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  293. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  294. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  295. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  296. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  297. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  298. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  299. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  300. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  301. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  302. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  303. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  304. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  305. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  306. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  307. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  308. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  309. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  310. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  311. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  312. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  313. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  314. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  315. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  316. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  317. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  318. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  319. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  320. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  321. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  322. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  323. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  324. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  325. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  326. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  327. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  328. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  329. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  330. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  331. SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
  332. SK, SN, SK, SN, SK, SN, SK, SN
  333. };
  334.