home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Black Box 4
/
BlackBox.cdr
/
editors
/
tde150.arj
/
GLOBAL.H
< prev
next >
Wrap
C/C++ Source or Header
|
1992-04-01
|
21KB
|
326 lines
/******************* start of original comments ********************/
/*
* Written by Douglas Thomson (1989/1990)
*
* This source code is released into the public domain.
*/
/********************* end of original comments ********************/
/*
* New editor name: tde, the Thomson-Davis Editor.
* Author: Frank Davis
* Date: June 5, 1991
*
* This modification of Douglas Thomson's code is released into the
* public domain, Frank Davis. You may distribute it freely.
*
* See "tdestr.h" for a description of these variables. C requires global
* variables to be declared "extern" in all modules except one. This file
* is included in ed.c and it should not be included in any other module.
*/
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#ifdef __TURBOC__
#include <stdlib.h>
#elif __MSC__
#include <stdlib.h>
#if defined( toupper )
#undef toupper
#endif
#endif
displays g_display;
status_infos g_status;
boyer_moore_type bm;
CEH ceh;
mode_infos mode = {
0, /* initial color scheme */
FALSE, /* sync mode? */
TRUE, /* sync semaphore must be TRUE - DO NOT CHANGE */
FALSE, /* recording mode */
TRUE, /* insert mode */
TRUE, /* indent mode */
8, /* tab size */
FALSE, /* use backup files - flag is not used */
FALSE, /* enhanced keyboard flag */
SMALL_INS, /* default cursor size == small insert and large overstrike */
"<======= End of File =======>", /* eof message */
TRUE, /* default TRUE = do not write ^Z at end of file */
CRLF, /* default write <cr><lf> at eol */
TRUE, /* default remove trailing space on edited lines */
FALSE, /* default show eol character is off */
FALSE, /* default word wrap mode is off */
0, /* default left margin - add 1 to margins for display */
2, /* default paragraph begin */
71, /* default right margin */
FALSE, /* default backup mode */
TRUE /* default ruler mode */
};
/*
* do_it is an array of pointers to functions that return void with an argument
* that is a pointer to a window. Is that right???
*/
#define NUM_FUNCS 118
void (* (do_it[NUM_FUNCS]))( WINDOW * ) = {
insert_overwrite, /* regular text keys 0 */
get_help, /* Help 1 */
insert_newline, /* Rturn 2 */
next_line, /* NextLine 3 */
beg_next_line, /* BegNextLine 4 */
move_down, /* LineDown 5 */
move_up, /* LineUp 6 */
move_right, /* CharRight 7 */
move_left, /* CharLeft 8 */
scroll_right, /* ScrollRight 9 */
scroll_left, /* ScrollLeft 10 */
word_right, /* WordRight 11 */
word_left, /* WordLeft 12 */
page_down, /* ScreenDown 13 */
page_up, /* ScreenUp 14 */
goto_end_file, /* EndOfFile 15 */
goto_top_file, /* TopOfFile 16 */
goto_bottom, /* BotOfScreen 17 */
goto_top, /* TopOfScreen 18 */
goto_right, /* EndOfLine 19 */
home, /* BegOfLine 20 */
goto_line, /* JumpToLine 21 */
center_window, /* CenterWindow 22 */
center_window, /* CenterLine 23 */
horizontal_screen_right, /* HorizontalScreenRight 24 */
horizontal_screen_left, /* HorizontalScreenLeft 25 */
scroll_down, /* ScrollDnLine 26 */
scroll_up, /* ScrollUpLine 27 */
fixed_scroll_up, /* FixedScrollUp 28 */
fixed_scroll_down, /* FixedScrollDn 29 */
toggle_overwrite, /* ToggleOverWrite 30 */
toggle_indent, /* ToggleIndent 31 */
toggle_ww, /* ToggleWordWrap 32 */
toggle_crlf, /* ToggleCRLF 33 */
toggle_trailing, /* ToggleTrailing 34 */
toggle_z, /* ToggleZ 35 */
toggle_eol, /* ToggleEol 36 */
toggle_sync, /* ToggleSync 37 */
toggle_ruler, /* ToggleRuler 38 */
set_tabstop, /* SetTabs 39 */
set_left_margin, /* SetLeftMargin 40 */
set_right_margin, /* SetRightMargin 41 */
set_paragraph_margin, /* SetParagraphMargin 42 */
format_paragraph, /* FormatParagraph 43 */
format_paragraph, /* FormatText 44 */
left_justify, /* LeftJustify 45 */
right_justify, /* RightJustify 46 */
center_justify, /* CenterJustify 47 */
tab_key, /* Tab 48 */
backtab, /* BackTab 49 */
match_pair, /* ParenBalance 50 */
back_space, /* BackSpace 51 */
char_del_under, /* DeleteChar 52 */
char_del_under, /* StreamDeleteChar 53 */
line_kill, /* DeleteLine 54 */
eol_kill, /* DelEndOfLine 55 */
word_delete, /* WordDelete 56 */
insert_newline, /* AddLine 57 */
insert_newline, /* SplitLine 58 */
join_line, /* JoinLine 59 */
dup_line, /* DuplicateLine 60 */
undo_line, /* AbortCommand 61 */
undo_line, /* UndoLine 62 */
undo, /* UndoDelete 63 */
toggle_search_case, /* ToggleSearchCase 64 */
find_string, /* FindForward 65 */
find_string, /* FindBackward 66 */
find_string, /* RepeatFindForward1 67 */
find_string, /* RepeatFindForward2 68 */
find_string, /* RepeatFindBackward1 69 */
find_string, /* RepeatFindBackward2 70 */
replace_string, /* ReplaceForward 71 */
replace_string, /* ReplaceBackward 72 */
mark_block, /* MarkBlock 73 */
mark_block, /* MarkLine 74 */
mark_block, /* MarkStream 75 */
unmark_block, /* UnMarkBlock 76 */
move_copy_delete_overlay_block, /* FillBlock 77 */
move_copy_delete_overlay_block, /* NumberBlock 78 */
move_copy_delete_overlay_block, /* CopyBlock 79 */
move_copy_delete_overlay_block, /* KopyBlock 80 */
move_copy_delete_overlay_block, /* MoveBlock 81 */
move_copy_delete_overlay_block, /* OverlayBlock 82 */
move_copy_delete_overlay_block, /* DeleteBlock 83 */
block_write, /* BlockToFile 84 */
block_print, /* PrintBlock 85 */
block_expand_tabs, /* BlockExpandTabs 86 */
block_trim_trailing, /* BlockTrimTrailing 87 */
block_convert_case, /* BlockUpperCase 88 */
block_convert_case, /* BlockLowerCase 89 */
block_convert_case, /* BlockStripHiBit 90 */
edit_another_file, /* EditFile 91 */
dir_help, /* DirList 92 */
file_file, /* File 93 */
save_file, /* Save 94 */
save_as_file, /* SaveAs 95 */
change_fattr, /* SetFileAttributes 96 */
edit_next_file, /* EditNextFile 97 */
redraw_screen, /* RedrawScreen 98 */
size_window, /* SizeWindow 99 */
split_horizontal, /* SplitHorizontal 100 */
split_vertical, /* SplitVertical 101 */
next_window, /* NextWindow 102 */
prev_window, /* PreviousWindow 103 */
zoom_window, /* ZoomWindow 104 */
next_hidden_window, /* NextHiddenWindow 105 */
set_marker, /* SetMark1 106 */
set_marker, /* SetMark2 107 */
set_marker, /* SetMark3 108 */
goto_marker, /* GotoMark1 109 */
goto_marker, /* GotoMark2 110 */
goto_marker, /* GotoMark3 111 */
record_on_off, /* RecordMacro 112 */
play_back, /* PlayBack 113 */
save_strokes, /* SaveMacro 114 */
load_strokes, /* LoadMacro 115 */
clear_macros, /* ClearAllMacros 116 */
quit /* Quit 117 */
};
/*
* set the 256 keys to FS (First Stroke)
* set the 500 stroke buffer keys to SK (Stroke Key) and SN (Stroke Next)
*/
#define FS STROKE_LIMIT+1
#define SK MAX_KEYS+1
#define SN STROKE_LIMIT+1
MACRO macro = {
/* 16 rows of 16 = 256 = MAX_KEYS */
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS, FS,
/* 102.4 rows of 10 = 1024 = STROKE_LIMIT */
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN, SK, SN,
SK, SN, SK, SN, SK, SN, SK, SN
};