Bapfel commited on
Commit
6a853d0
·
verified ·
1 Parent(s): b12491b

Chess Challenge submission by Bapfel

Browse files
Files changed (7) hide show
  1. README.md +26 -0
  2. config.json +20 -0
  3. model.safetensors +3 -0
  4. special_tokens_map.json +6 -0
  5. tokenizer.py +313 -0
  6. tokenizer_config.json +50 -0
  7. vocab.json +1731 -0
README.md ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ tags:
4
+ - chess
5
+ - llm-course
6
+ - chess-challenge
7
+ license: mit
8
+ ---
9
+
10
+ # Bapfel-chess-v2
11
+
12
+ Chess model submitted to the LLM Course Chess Challenge.
13
+
14
+ ## Submission Info
15
+
16
+ - **Submitted by**: [Bapfel](https://huggingface.co/Bapfel)
17
+ - **Parameters**: 1,040,448
18
+ - **Organization**: LLM-course
19
+
20
+ ## Model Details
21
+
22
+ - **Architecture**: Chess Transformer (GPT-style)
23
+ - **Vocab size**: 1729
24
+ - **Embedding dim**: 128
25
+ - **Layers**: 6
26
+ - **Heads**: 8
config.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "ChessForCausalLM"
4
+ ],
5
+ "bos_token_id": 1,
6
+ "dropout": 0.1,
7
+ "dtype": "float32",
8
+ "eos_token_id": 2,
9
+ "layer_norm_epsilon": 1e-05,
10
+ "model_type": "chess_transformer",
11
+ "n_ctx": 256,
12
+ "n_embd": 128,
13
+ "n_head": 8,
14
+ "n_inner": 384,
15
+ "n_layer": 6,
16
+ "pad_token_id": 0,
17
+ "tie_weights": true,
18
+ "transformers_version": "4.57.6",
19
+ "vocab_size": 1729
20
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1f278ab2e2953f676fdefe5a23bfbf66a414040d868a6ed1ca304bb91647f29b
3
+ size 4169208
special_tokens_map.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": "[BOS]",
3
+ "eos_token": "[EOS]",
4
+ "pad_token": "[PAD]",
5
+ "unk_token": "[UNK]"
6
+ }
tokenizer.py ADDED
@@ -0,0 +1,313 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Custom Chess Tokenizer for the Chess Challenge.
3
+
4
+ This tokenizer treats each move as a single token using the extended UCI notation
5
+ from the Lichess dataset (e.g., WPe2e4, BNg8f6).
6
+
7
+ The dataset format uses:
8
+ - W/B prefix for White/Black
9
+ - Piece letter: P=Pawn, N=Knight, B=Bishop, R=Rook, Q=Queen, K=King
10
+ - Source and destination squares (e.g., e2e4)
11
+ - Special suffixes: (x)=capture, (+)=check, (+*)=checkmate, (o)/(O)=castling
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import os
18
+ from pathlib import Path
19
+ from typing import Dict, List, Optional
20
+ import numpy as np
21
+ from transformers import PreTrainedTokenizer
22
+
23
+
24
+ class ChessTokenizer(PreTrainedTokenizer):
25
+ """
26
+ A custom tokenizer for chess moves using extended UCI notation.
27
+
28
+ This tokenizer maps each possible chess move to a unique token ID.
29
+ The vocabulary is built from the training dataset to ensure all moves
30
+ encountered during training have a corresponding token.
31
+
32
+ Example:
33
+ >>> tokenizer = ChessTokenizer()
34
+ >>> tokenizer.encode("WPe2e4 BPe7e5")
35
+ [1, 42, 87, 2] # [BOS, e2e4, e7e5, EOS]
36
+ """
37
+
38
+ model_input_names = ["input_ids", "attention_mask"]
39
+ vocab_files_names = {"vocab_file": "vocab.json"}
40
+
41
+ # Special tokens
42
+ PAD_TOKEN = "[PAD]"
43
+ BOS_TOKEN = "[BOS]"
44
+ EOS_TOKEN = "[EOS]"
45
+ UNK_TOKEN = "[UNK]"
46
+
47
+ def __init__(
48
+ self,
49
+ vocab_file: Optional[str] = None,
50
+ vocab: Optional[Dict[str, int]] = None,
51
+ **kwargs,
52
+ ):
53
+ """
54
+ Initialize the chess tokenizer.
55
+
56
+ Args:
57
+ vocab_file: Path to a JSON file containing the vocabulary mapping.
58
+ vocab: Dictionary mapping tokens to IDs (alternative to vocab_file).
59
+ **kwargs: Additional arguments passed to PreTrainedTokenizer.
60
+ """
61
+ # Initialize special tokens
62
+ self._pad_token = self.PAD_TOKEN
63
+ self._bos_token = self.BOS_TOKEN
64
+ self._eos_token = self.EOS_TOKEN
65
+ self._unk_token = self.UNK_TOKEN
66
+
67
+ # Remove any duplicate special-token entries passed through kwargs
68
+ # to avoid "multiple values for keyword" errors when loading from disk.
69
+ kwargs.pop("pad_token", None)
70
+ kwargs.pop("bos_token", None)
71
+ kwargs.pop("eos_token", None)
72
+ kwargs.pop("unk_token", None)
73
+
74
+ # Load or create vocabulary
75
+ if vocab is not None:
76
+ self._vocab = vocab
77
+ elif vocab_file is not None and os.path.exists(vocab_file):
78
+ with open(vocab_file, "r", encoding="utf-8") as f:
79
+ self._vocab = json.load(f)
80
+ else:
81
+ # Create a minimal vocabulary with just special tokens
82
+ # The full vocabulary should be built from the dataset
83
+ self._vocab = self._create_default_vocab()
84
+
85
+ # Create reverse mapping
86
+ self._ids_to_tokens = {v: k for k, v in self._vocab.items()}
87
+
88
+ # Call parent init AFTER setting up vocab
89
+ super().__init__(
90
+ pad_token=self._pad_token,
91
+ bos_token=self._bos_token,
92
+ eos_token=self._eos_token,
93
+ unk_token=self._unk_token,
94
+ **kwargs,
95
+ )
96
+
97
+ def _create_default_vocab(self) -> Dict[str, int]:
98
+ """
99
+ Create a minimal default vocabulary with just special tokens.
100
+
101
+ For the full vocabulary, use `build_vocab_from_dataset()`.
102
+ This minimal vocab is just a placeholder - you should build from data.
103
+ """
104
+ special_tokens = [self.PAD_TOKEN, self.BOS_TOKEN, self.EOS_TOKEN, self.UNK_TOKEN]
105
+ vocab = {token: idx for idx, token in enumerate(special_tokens)}
106
+ return vocab
107
+
108
+ @classmethod
109
+ def build_vocab_from_iterator(
110
+ cls,
111
+ iterator,
112
+ min_frequency: int = 1,
113
+ ) -> "ChessTokenizer":
114
+ """
115
+ Build a tokenizer vocabulary from an iterator of game strings.
116
+
117
+ Args:
118
+ iterator: An iterator yielding game strings (space-separated moves).
119
+ min_frequency: Minimum frequency for a token to be included.
120
+
121
+ Returns:
122
+ A ChessTokenizer with the built vocabulary.
123
+ """
124
+ from collections import Counter
125
+
126
+ token_counts = Counter()
127
+ l=[]
128
+ for game in iterator:
129
+ moves = game.strip().split()
130
+ l.append(len(moves))
131
+ token_counts.update(moves)
132
+ print(np.array(l).mean())
133
+ # Filter by frequency
134
+ tokens = [
135
+ token[1:] for token, count in token_counts.items()
136
+ if count >= min_frequency
137
+ ]
138
+
139
+ print(tokens)
140
+ # Sort for reproducibility
141
+ tokens = sorted(list(set(tokens)))
142
+ tokens2=["W","B","K","P","R","Q","N","(x)","(+)","(+*)","(o)","(O)","O", "O-O", "O-O-O"]
143
+ str1="abcdefgh"
144
+ for el in str1 :
145
+ for i in range(1,9) :
146
+ tokens.append(el+str(i))
147
+ special_tokens = [cls.PAD_TOKEN, cls.BOS_TOKEN, cls.EOS_TOKEN, cls.UNK_TOKEN]
148
+ vocab = {token: idx for idx, token in enumerate(special_tokens +tokens2+tokens)}
149
+
150
+ return cls(vocab=vocab)
151
+
152
+ @classmethod
153
+ def build_vocab_from_dataset(
154
+ cls,
155
+ dataset_name: str = "dlouapre/lichess_2025-01_1M",
156
+ split: str = "train",
157
+ column: str = "text",
158
+ min_frequency: int = 10,
159
+ max_samples: Optional[int] = 100000,
160
+ ) -> "ChessTokenizer":
161
+ """
162
+ Build a tokenizer vocabulary from a Hugging Face dataset.
163
+
164
+ Args:
165
+ dataset_name: Name of the dataset on Hugging Face Hub.
166
+ split: Dataset split to use.
167
+ column: Column containing the game strings.
168
+ min_frequency: Minimum frequency for a token to be included (default: 500).
169
+ max_samples: Maximum number of samples to process (default: 100k).
170
+
171
+ Returns:
172
+ A ChessTokenizer with the built vocabulary.
173
+ """
174
+ from datasets import load_dataset
175
+
176
+ dataset = load_dataset(dataset_name, split=split)
177
+
178
+ if max_samples is not None:
179
+ dataset = dataset.select(range(min(max_samples, len(dataset))))
180
+
181
+ def game_iterator():
182
+ for example in dataset:
183
+ yield example[column]
184
+
185
+ return cls.build_vocab_from_iterator(game_iterator(), min_frequency=min_frequency)
186
+
187
+ @property
188
+ def vocab_size(self) -> int:
189
+ """Return the size of the vocabulary."""
190
+ return len(self._vocab)
191
+
192
+ def get_vocab(self) -> Dict[str, int]:
193
+ """Return the vocabulary as a dictionary."""
194
+ return dict(self._vocab)
195
+
196
+ def _tokenize(self, text: str):
197
+ tokens = []
198
+
199
+ for move in text.strip().split():
200
+ if len(move) < 2 or move[0] not in ("W", "B"):
201
+ tokens.append(self.UNK_TOKEN)
202
+ continue
203
+
204
+ color = move[0]
205
+ core = move[1:]
206
+
207
+ tokens.append(color)
208
+
209
+ # Castling
210
+ if core in ("O", "O-O", "O-O-O"):
211
+ tokens.append(core)
212
+ continue
213
+
214
+ # Piece
215
+ piece = core[0]
216
+ rest = core[1:]
217
+
218
+ if piece in self._vocab:
219
+ tokens.append(piece)
220
+ else:
221
+ tokens.append(self.UNK_TOKEN)
222
+
223
+ # Squares (e2e4)
224
+ if len(rest) >= 4:
225
+ from_sq = rest[:2]
226
+ to_sq = rest[2:4]
227
+
228
+ tokens.append(from_sq if from_sq in self._vocab else self.UNK_TOKEN)
229
+ tokens.append(to_sq if to_sq in self._vocab else self.UNK_TOKEN)
230
+
231
+ suffix = rest[4:]
232
+ if suffix in self._vocab:
233
+ tokens.append(suffix)
234
+
235
+ return tokens
236
+
237
+
238
+ def _convert_token_to_id(self, token: str) -> int:
239
+ """Convert a token to its ID."""
240
+ return self._vocab.get(token, self._vocab.get(self.UNK_TOKEN, 0))
241
+
242
+ def _convert_id_to_token(self, index: int) -> str:
243
+ """Convert an ID to its token."""
244
+ return self._ids_to_tokens.get(index, self.UNK_TOKEN)
245
+
246
+ def convert_tokens_to_string(self, tokens: List[str]) -> str:
247
+ """Convert a list of tokens back to a string."""
248
+ # Filter out special tokens for cleaner output
249
+ special = {self.PAD_TOKEN, self.BOS_TOKEN, self.EOS_TOKEN, self.UNK_TOKEN}
250
+ return " ".join(t for t in tokens if t not in special)
251
+
252
+ def save_vocabulary(
253
+ self,
254
+ save_directory: str,
255
+ filename_prefix: Optional[str] = None,
256
+ ) -> tuple:
257
+ """
258
+ Save the vocabulary to a JSON file.
259
+
260
+ Args:
261
+ save_directory: Directory to save the vocabulary.
262
+ filename_prefix: Optional prefix for the filename.
263
+
264
+ Returns:
265
+ Tuple containing the path to the saved vocabulary file.
266
+ """
267
+ if not os.path.isdir(save_directory):
268
+ os.makedirs(save_directory, exist_ok=True)
269
+
270
+ vocab_file = os.path.join(
271
+ save_directory,
272
+ (filename_prefix + "-" if filename_prefix else "") + "vocab.json",
273
+ )
274
+
275
+ with open(vocab_file, "w", encoding="utf-8") as f:
276
+ json.dump(self._vocab, f, ensure_ascii=False, indent=2)
277
+
278
+ return (vocab_file,)
279
+
280
+
281
+ def count_vocab_from_dataset(
282
+ dataset_name: str = "dlouapre/lichess_2025-01_1M",
283
+ split: str = "train",
284
+ column: str = "text",
285
+ max_samples: Optional[int] = 10000,
286
+ ) -> Dict[str, int]:
287
+ """
288
+ Count token frequencies in a dataset (useful for vocabulary analysis).
289
+
290
+ Args:
291
+ dataset_name: Name of the dataset on Hugging Face Hub.
292
+ split: Dataset split to use.
293
+ column: Column containing the game strings.
294
+ max_samples: Maximum number of samples to process.
295
+
296
+ Returns:
297
+ Dictionary mapping tokens to their frequencies.
298
+ """
299
+ from collections import Counter
300
+ from datasets import load_dataset
301
+
302
+ dataset = load_dataset(dataset_name, split=split)
303
+
304
+ if max_samples is not None:
305
+ dataset = dataset.select(range(min(max_samples, len(dataset))))
306
+
307
+ token_counts = Counter()
308
+
309
+ for example in dataset:
310
+ moves = example[column].strip().split()
311
+ token_counts.update(moves)
312
+
313
+ return dict(token_counts)
tokenizer_config.json ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "[PAD]",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "1": {
12
+ "content": "[BOS]",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "2": {
20
+ "content": "[EOS]",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "3": {
28
+ "content": "[UNK]",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": true
34
+ }
35
+ },
36
+ "auto_map": {
37
+ "AutoTokenizer": [
38
+ "tokenizer.ChessTokenizer",
39
+ null
40
+ ]
41
+ },
42
+ "bos_token": "[BOS]",
43
+ "clean_up_tokenization_spaces": false,
44
+ "eos_token": "[EOS]",
45
+ "extra_special_tokens": {},
46
+ "model_max_length": 1000000000000000019884624838656,
47
+ "pad_token": "[PAD]",
48
+ "tokenizer_class": "ChessTokenizer",
49
+ "unk_token": "[UNK]"
50
+ }
vocab.json ADDED
@@ -0,0 +1,1731 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "[PAD]": 0,
3
+ "[BOS]": 1,
4
+ "[EOS]": 2,
5
+ "[UNK]": 3,
6
+ "W": 4,
7
+ "B": 5,
8
+ "K": 6,
9
+ "P": 7,
10
+ "R": 8,
11
+ "Q": 9,
12
+ "N": 10,
13
+ "(x)": 11,
14
+ "(+)": 12,
15
+ "(+*)": 13,
16
+ "(o)": 14,
17
+ "(O)": 15,
18
+ "O": 16,
19
+ "O-O": 17,
20
+ "O-O-O": 18,
21
+ "Ba3b2": 19,
22
+ "Ba4b3": 20,
23
+ "Ba4c2": 21,
24
+ "Ba5b6": 22,
25
+ "Ba6b7": 23,
26
+ "Bb2a3": 24,
27
+ "Bb2c1": 25,
28
+ "Bb2c3": 26,
29
+ "Bb2c3(x)": 27,
30
+ "Bb2d4": 28,
31
+ "Bb2d4(x)": 29,
32
+ "Bb2e5(x)": 30,
33
+ "Bb2f6(x)": 31,
34
+ "Bb2g7(x)": 32,
35
+ "Bb3a2": 33,
36
+ "Bb3c2": 34,
37
+ "Bb3d5": 35,
38
+ "Bb3d5(x)": 36,
39
+ "Bb3e6(x)": 37,
40
+ "Bb4a5": 38,
41
+ "Bb4c3(x)": 39,
42
+ "Bb4c3(x+)": 40,
43
+ "Bb4c5": 41,
44
+ "Bb4d2(x)": 42,
45
+ "Bb4d2(x+)": 43,
46
+ "Bb4d6": 44,
47
+ "Bb4e7": 45,
48
+ "Bb5a4": 46,
49
+ "Bb5c4": 47,
50
+ "Bb5c6(x)": 48,
51
+ "Bb5c6(x+)": 49,
52
+ "Bb5d3": 50,
53
+ "Bb5d7(x)": 51,
54
+ "Bb5d7(x+)": 52,
55
+ "Bb5e2": 53,
56
+ "Bb6c7": 54,
57
+ "Bb6d4(x)": 55,
58
+ "Bb7a6": 56,
59
+ "Bb7c6": 57,
60
+ "Bb7c6(x)": 58,
61
+ "Bb7c8": 59,
62
+ "Bb7d5": 60,
63
+ "Bb7d5(x)": 61,
64
+ "Bb7e4(x)": 62,
65
+ "Bb7f3(x)": 63,
66
+ "Bb7g2(x)": 64,
67
+ "Bc1a3": 65,
68
+ "Bc1b2": 66,
69
+ "Bc1d2": 67,
70
+ "Bc1d2(x)": 68,
71
+ "Bc1e3": 69,
72
+ "Bc1e3(x)": 70,
73
+ "Bc1f4": 71,
74
+ "Bc1f4(x)": 72,
75
+ "Bc1g5": 73,
76
+ "Bc1g5(x)": 74,
77
+ "Bc1h6": 75,
78
+ "Bc1h6(x)": 76,
79
+ "Bc2b3": 77,
80
+ "Bc2e4(x)": 78,
81
+ "Bc3d2": 79,
82
+ "Bc4a2": 80,
83
+ "Bc4b3": 81,
84
+ "Bc4b5": 82,
85
+ "Bc4b5(+)": 83,
86
+ "Bc4d3": 84,
87
+ "Bc4d5": 85,
88
+ "Bc4d5(x)": 86,
89
+ "Bc4e2": 87,
90
+ "Bc4e6(x)": 88,
91
+ "Bc4f7(x)": 89,
92
+ "Bc4f7(x+)": 90,
93
+ "Bc5a7": 91,
94
+ "Bc5b4": 92,
95
+ "Bc5b4(+)": 93,
96
+ "Bc5b6": 94,
97
+ "Bc5d4": 95,
98
+ "Bc5d4(x)": 96,
99
+ "Bc5d6": 97,
100
+ "Bc5e3(x)": 98,
101
+ "Bc5e7": 99,
102
+ "Bc5f2(x+)": 100,
103
+ "Bc6b5": 101,
104
+ "Bc6d5": 102,
105
+ "Bc6d5(x)": 103,
106
+ "Bc6d7": 104,
107
+ "Bc6e4(x)": 105,
108
+ "Bc6f3(x)": 106,
109
+ "Bc8a6": 107,
110
+ "Bc8b7": 108,
111
+ "Bc8d7": 109,
112
+ "Bc8d7(x)": 110,
113
+ "Bc8e6": 111,
114
+ "Bc8e6(x)": 112,
115
+ "Bc8f5": 113,
116
+ "Bc8f5(x)": 114,
117
+ "Bc8g4": 115,
118
+ "Bc8g4(x)": 116,
119
+ "Bc8h3": 117,
120
+ "Bc8h3(x)": 118,
121
+ "Bd2b4": 119,
122
+ "Bd2b4(x)": 120,
123
+ "Bd2c1": 121,
124
+ "Bd2c3": 122,
125
+ "Bd2c3(x)": 123,
126
+ "Bd2e1": 124,
127
+ "Bd2e3": 125,
128
+ "Bd2f4": 126,
129
+ "Bd2f4(x)": 127,
130
+ "Bd2g5": 128,
131
+ "Bd3a6(x)": 129,
132
+ "Bd3b1": 130,
133
+ "Bd3b5": 131,
134
+ "Bd3b5(x)": 132,
135
+ "Bd3c2": 133,
136
+ "Bd3c4": 134,
137
+ "Bd3c4(x)": 135,
138
+ "Bd3e2": 136,
139
+ "Bd3e4": 137,
140
+ "Bd3e4(x)": 138,
141
+ "Bd3f1": 139,
142
+ "Bd3f5": 140,
143
+ "Bd3f5(x)": 141,
144
+ "Bd3g6(x)": 142,
145
+ "Bd3h7(x+)": 143,
146
+ "Bd4e3": 144,
147
+ "Bd4f6(x)": 145,
148
+ "Bd5b3": 146,
149
+ "Bd5e6": 147,
150
+ "Bd5f3(x)": 148,
151
+ "Bd6b4": 149,
152
+ "Bd6c5": 150,
153
+ "Bd6c5(x)": 151,
154
+ "Bd6c7": 152,
155
+ "Bd6e5": 153,
156
+ "Bd6e5(x)": 154,
157
+ "Bd6e7": 155,
158
+ "Bd6f4": 156,
159
+ "Bd6f4(x)": 157,
160
+ "Bd6g3(x)": 158,
161
+ "Bd6h2(x+)": 159,
162
+ "Bd7b5": 160,
163
+ "Bd7b5(x)": 161,
164
+ "Bd7c6": 162,
165
+ "Bd7c6(x)": 163,
166
+ "Bd7c8": 164,
167
+ "Bd7e6": 165,
168
+ "Bd7e8": 166,
169
+ "Bd7f5": 167,
170
+ "Bd7f5(x)": 168,
171
+ "Bd7g4": 169,
172
+ "Be2b5": 170,
173
+ "Be2c4": 171,
174
+ "Be2c4(x)": 172,
175
+ "Be2d1": 173,
176
+ "Be2d3": 174,
177
+ "Be2f1": 175,
178
+ "Be2f3": 176,
179
+ "Be2f3(x)": 177,
180
+ "Be2g4": 178,
181
+ "Be2g4(x)": 179,
182
+ "Be2h5": 180,
183
+ "Be2h5(x)": 181,
184
+ "Be3a7(x)": 182,
185
+ "Be3b6(x)": 183,
186
+ "Be3c1": 184,
187
+ "Be3c5": 185,
188
+ "Be3c5(x)": 186,
189
+ "Be3d2": 187,
190
+ "Be3d4": 188,
191
+ "Be3d4(x)": 189,
192
+ "Be3f2": 190,
193
+ "Be3f4": 191,
194
+ "Be3f4(x)": 192,
195
+ "Be3g5": 193,
196
+ "Be3g5(x)": 194,
197
+ "Be3h6": 195,
198
+ "Be3h6(x)": 196,
199
+ "Be4d3": 197,
200
+ "Be4f3": 198,
201
+ "Be4f3(x)": 199,
202
+ "Be4g6": 200,
203
+ "Be5d6": 201,
204
+ "Be5f6": 202,
205
+ "Be5f6(x)": 203,
206
+ "Be5g3": 204,
207
+ "Be5g7": 205,
208
+ "Be6a2(x)": 206,
209
+ "Be6b3(x)": 207,
210
+ "Be6c4": 208,
211
+ "Be6c4(x)": 209,
212
+ "Be6d5": 210,
213
+ "Be6d5(x)": 211,
214
+ "Be6d7": 212,
215
+ "Be6f5": 213,
216
+ "Be6f5(x)": 214,
217
+ "Be6f7": 215,
218
+ "Be6g4": 216,
219
+ "Be6h3(x)": 217,
220
+ "Be7b4": 218,
221
+ "Be7c5": 219,
222
+ "Be7c5(x)": 220,
223
+ "Be7d6": 221,
224
+ "Be7d6(x)": 222,
225
+ "Be7d8": 223,
226
+ "Be7f6": 224,
227
+ "Be7f6(x)": 225,
228
+ "Be7f8": 226,
229
+ "Be7g5": 227,
230
+ "Be7g5(x)": 228,
231
+ "Be7h4": 229,
232
+ "Be7h4(x)": 230,
233
+ "Bf1b5": 231,
234
+ "Bf1b5(+)": 232,
235
+ "Bf1c4": 233,
236
+ "Bf1c4(x)": 234,
237
+ "Bf1d3": 235,
238
+ "Bf1d3(x)": 236,
239
+ "Bf1e2": 237,
240
+ "Bf1g2": 238,
241
+ "Bf1h3": 239,
242
+ "Bf3b7(x)": 240,
243
+ "Bf3c6(x)": 241,
244
+ "Bf3d5(x)": 242,
245
+ "Bf3e2": 243,
246
+ "Bf3e4": 244,
247
+ "Bf3e4(x)": 245,
248
+ "Bf3g2": 246,
249
+ "Bf3g4": 247,
250
+ "Bf4c7(x)": 248,
251
+ "Bf4d2": 249,
252
+ "Bf4d6": 250,
253
+ "Bf4d6(x)": 251,
254
+ "Bf4e3": 252,
255
+ "Bf4e5": 253,
256
+ "Bf4e5(x)": 254,
257
+ "Bf4g3": 255,
258
+ "Bf4g5": 256,
259
+ "Bf4h2": 257,
260
+ "Bf4h6": 258,
261
+ "Bf5c2(x)": 259,
262
+ "Bf5d3": 260,
263
+ "Bf5d3(x)": 261,
264
+ "Bf5d7": 262,
265
+ "Bf5e4": 263,
266
+ "Bf5e4(x)": 264,
267
+ "Bf5e6": 265,
268
+ "Bf5g4": 266,
269
+ "Bf5g6": 267,
270
+ "Bf6b2(x)": 268,
271
+ "Bf6c3(x)": 269,
272
+ "Bf6d4(x)": 270,
273
+ "Bf6e5": 271,
274
+ "Bf6e5(x)": 272,
275
+ "Bf6e7": 273,
276
+ "Bf6g5": 274,
277
+ "Bf6g7": 275,
278
+ "Bf8b4": 276,
279
+ "Bf8b4(+)": 277,
280
+ "Bf8c5": 278,
281
+ "Bf8c5(+)": 279,
282
+ "Bf8c5(x)": 280,
283
+ "Bf8d6": 281,
284
+ "Bf8d6(x)": 282,
285
+ "Bf8e7": 283,
286
+ "Bf8e7(x)": 284,
287
+ "Bf8g7": 285,
288
+ "Bf8h6": 286,
289
+ "Bg2b7(x)": 287,
290
+ "Bg2c6(x)": 288,
291
+ "Bg2d5(x)": 289,
292
+ "Bg2e4": 290,
293
+ "Bg2e4(x)": 291,
294
+ "Bg2f1": 292,
295
+ "Bg2f3": 293,
296
+ "Bg2f3(x)": 294,
297
+ "Bg2h3": 295,
298
+ "Bg3d6(x)": 296,
299
+ "Bg3e5": 297,
300
+ "Bg3e5(x)": 298,
301
+ "Bg3f2": 299,
302
+ "Bg3h2": 300,
303
+ "Bg3h4": 301,
304
+ "Bg4d1(x)": 302,
305
+ "Bg4d7": 303,
306
+ "Bg4e2(x)": 304,
307
+ "Bg4e6": 305,
308
+ "Bg4f3": 306,
309
+ "Bg4f3(x)": 307,
310
+ "Bg4f5": 308,
311
+ "Bg4h5": 309,
312
+ "Bg5d2": 310,
313
+ "Bg5d8(x)": 311,
314
+ "Bg5e3": 312,
315
+ "Bg5e7(x)": 313,
316
+ "Bg5f4": 314,
317
+ "Bg5f6": 315,
318
+ "Bg5f6(x)": 316,
319
+ "Bg5h4": 317,
320
+ "Bg5h6": 318,
321
+ "Bg6d3(x)": 319,
322
+ "Bg6e4(x)": 320,
323
+ "Bg6h7": 321,
324
+ "Bg7b2(x)": 322,
325
+ "Bg7c3(x)": 323,
326
+ "Bg7d4(x)": 324,
327
+ "Bg7e5": 325,
328
+ "Bg7e5(x)": 326,
329
+ "Bg7f6": 327,
330
+ "Bg7f6(x)": 328,
331
+ "Bg7f8": 329,
332
+ "Bg7h6": 330,
333
+ "Bg7h6(x)": 331,
334
+ "Bh3g2(x)": 332,
335
+ "Bh4e7(x)": 333,
336
+ "Bh4f6(x)": 334,
337
+ "Bh4g3": 335,
338
+ "Bh5f3(x)": 336,
339
+ "Bh5g6": 337,
340
+ "Bh6f8(x)": 338,
341
+ "Bh6g5": 339,
342
+ "Bh6g7": 340,
343
+ "Bh6g7(x)": 341,
344
+ "Kb1a1": 342,
345
+ "Kb1a2": 343,
346
+ "Kb1b2": 344,
347
+ "Kb1c1": 345,
348
+ "Kb1c2": 346,
349
+ "Kb2a3": 347,
350
+ "Kb2b3": 348,
351
+ "Kb2c2": 349,
352
+ "Kb2c3": 350,
353
+ "Kb3a4": 351,
354
+ "Kb3c2": 352,
355
+ "Kb3c4": 353,
356
+ "Kb6a5": 354,
357
+ "Kb6b5": 355,
358
+ "Kb6c5": 356,
359
+ "Kb6c6": 357,
360
+ "Kb6c7": 358,
361
+ "Kb7a6": 359,
362
+ "Kb7b6": 360,
363
+ "Kb7c6": 361,
364
+ "Kb7c7": 362,
365
+ "Kb8a7": 363,
366
+ "Kb8a8": 364,
367
+ "Kb8b7": 365,
368
+ "Kb8c7": 366,
369
+ "Kb8c8": 367,
370
+ "Kc1b1": 368,
371
+ "Kc1b2": 369,
372
+ "Kc1c2": 370,
373
+ "Kc1d1": 371,
374
+ "Kc1d2": 372,
375
+ "Kc2b1": 373,
376
+ "Kc2b2": 374,
377
+ "Kc2b3": 375,
378
+ "Kc2c3": 376,
379
+ "Kc2d2": 377,
380
+ "Kc2d3": 378,
381
+ "Kc3b2": 379,
382
+ "Kc3b3": 380,
383
+ "Kc3b4": 381,
384
+ "Kc3c4": 382,
385
+ "Kc3d2": 383,
386
+ "Kc3d3": 384,
387
+ "Kc3d4": 385,
388
+ "Kc4b5": 386,
389
+ "Kc4c5": 387,
390
+ "Kc4d5": 388,
391
+ "Kc5b4": 389,
392
+ "Kc5c4": 390,
393
+ "Kc5d4": 391,
394
+ "Kc5d6": 392,
395
+ "Kc6b5": 393,
396
+ "Kc6b6": 394,
397
+ "Kc6b7": 395,
398
+ "Kc6c5": 396,
399
+ "Kc6c7": 397,
400
+ "Kc6d5": 398,
401
+ "Kc6d6": 399,
402
+ "Kc6d7": 400,
403
+ "Kc7b6": 401,
404
+ "Kc7b7": 402,
405
+ "Kc7b8": 403,
406
+ "Kc7c6": 404,
407
+ "Kc7c8": 405,
408
+ "Kc7d6": 406,
409
+ "Kc7d7": 407,
410
+ "Kc7d8": 408,
411
+ "Kc8b7": 409,
412
+ "Kc8b8": 410,
413
+ "Kc8c7": 411,
414
+ "Kc8d7": 412,
415
+ "Kc8d8": 413,
416
+ "Kd1c1": 414,
417
+ "Kd1c2": 415,
418
+ "Kd1d2": 416,
419
+ "Kd1e1": 417,
420
+ "Kd1e2": 418,
421
+ "Kd2c1": 419,
422
+ "Kd2c2": 420,
423
+ "Kd2c3": 421,
424
+ "Kd2d1": 422,
425
+ "Kd2d3": 423,
426
+ "Kd2e1": 424,
427
+ "Kd2e2": 425,
428
+ "Kd2e3": 426,
429
+ "Kd3c2": 427,
430
+ "Kd3c3": 428,
431
+ "Kd3c4": 429,
432
+ "Kd3d2": 430,
433
+ "Kd3d4": 431,
434
+ "Kd3e2": 432,
435
+ "Kd3e3": 433,
436
+ "Kd3e4": 434,
437
+ "Kd4c3": 435,
438
+ "Kd4c4": 436,
439
+ "Kd4c5": 437,
440
+ "Kd4d5": 438,
441
+ "Kd4e3": 439,
442
+ "Kd4e4": 440,
443
+ "Kd4e5": 441,
444
+ "Kd5c4": 442,
445
+ "Kd5c5": 443,
446
+ "Kd5c6": 444,
447
+ "Kd5d4": 445,
448
+ "Kd5e4": 446,
449
+ "Kd5e6": 447,
450
+ "Kd6c5": 448,
451
+ "Kd6c6": 449,
452
+ "Kd6c7": 450,
453
+ "Kd6d5": 451,
454
+ "Kd6d7": 452,
455
+ "Kd6e5": 453,
456
+ "Kd6e6": 454,
457
+ "Kd6e7": 455,
458
+ "Kd7c6": 456,
459
+ "Kd7c7": 457,
460
+ "Kd7c8": 458,
461
+ "Kd7d6": 459,
462
+ "Kd7d8": 460,
463
+ "Kd7e6": 461,
464
+ "Kd7e7": 462,
465
+ "Kd7e8": 463,
466
+ "Kd8c7": 464,
467
+ "Kd8c8": 465,
468
+ "Kd8d7": 466,
469
+ "Kd8e7": 467,
470
+ "Kd8e8": 468,
471
+ "Ke1c1(O)": 469,
472
+ "Ke1d1": 470,
473
+ "Ke1d1(x)": 471,
474
+ "Ke1d2": 472,
475
+ "Ke1d2(x)": 473,
476
+ "Ke1e2": 474,
477
+ "Ke1e2(x)": 475,
478
+ "Ke1f1": 476,
479
+ "Ke1f2": 477,
480
+ "Ke1f2(x)": 478,
481
+ "Ke1g1(o)": 479,
482
+ "Ke2d1": 480,
483
+ "Ke2d2": 481,
484
+ "Ke2d3": 482,
485
+ "Ke2e1": 483,
486
+ "Ke2e3": 484,
487
+ "Ke2f1": 485,
488
+ "Ke2f2": 486,
489
+ "Ke2f3": 487,
490
+ "Ke3d2": 488,
491
+ "Ke3d3": 489,
492
+ "Ke3d4": 490,
493
+ "Ke3e2": 491,
494
+ "Ke3e4": 492,
495
+ "Ke3f2": 493,
496
+ "Ke3f3": 494,
497
+ "Ke3f4": 495,
498
+ "Ke4d3": 496,
499
+ "Ke4d4": 497,
500
+ "Ke4d5": 498,
501
+ "Ke4e3": 499,
502
+ "Ke4e5": 500,
503
+ "Ke4f3": 501,
504
+ "Ke4f4": 502,
505
+ "Ke4f5": 503,
506
+ "Ke5d4": 504,
507
+ "Ke5d5": 505,
508
+ "Ke5d6": 506,
509
+ "Ke5e4": 507,
510
+ "Ke5f4": 508,
511
+ "Ke5f5": 509,
512
+ "Ke5f6": 510,
513
+ "Ke6d5": 511,
514
+ "Ke6d6": 512,
515
+ "Ke6d7": 513,
516
+ "Ke6e5": 514,
517
+ "Ke6e7": 515,
518
+ "Ke6f5": 516,
519
+ "Ke6f6": 517,
520
+ "Ke6f7": 518,
521
+ "Ke7d6": 519,
522
+ "Ke7d7": 520,
523
+ "Ke7d8": 521,
524
+ "Ke7e6": 522,
525
+ "Ke7e8": 523,
526
+ "Ke7f6": 524,
527
+ "Ke7f7": 525,
528
+ "Ke7f8": 526,
529
+ "Ke8c8(O)": 527,
530
+ "Ke8d7": 528,
531
+ "Ke8d7(x)": 529,
532
+ "Ke8d8": 530,
533
+ "Ke8d8(x)": 531,
534
+ "Ke8e7": 532,
535
+ "Ke8e7(x)": 533,
536
+ "Ke8f7": 534,
537
+ "Ke8f7(x)": 535,
538
+ "Ke8f8": 536,
539
+ "Ke8g8(o)": 537,
540
+ "Kf1e1": 538,
541
+ "Kf1e2": 539,
542
+ "Kf1f2": 540,
543
+ "Kf1g1": 541,
544
+ "Kf1g2": 542,
545
+ "Kf2e1": 543,
546
+ "Kf2e2": 544,
547
+ "Kf2e3": 545,
548
+ "Kf2f1": 546,
549
+ "Kf2f3": 547,
550
+ "Kf2g1": 548,
551
+ "Kf2g2": 549,
552
+ "Kf2g3": 550,
553
+ "Kf3e2": 551,
554
+ "Kf3e3": 552,
555
+ "Kf3e4": 553,
556
+ "Kf3f2": 554,
557
+ "Kf3f4": 555,
558
+ "Kf3g2": 556,
559
+ "Kf3g3": 557,
560
+ "Kf3g4": 558,
561
+ "Kf4e3": 559,
562
+ "Kf4e4": 560,
563
+ "Kf4e5": 561,
564
+ "Kf4f3": 562,
565
+ "Kf4f5": 563,
566
+ "Kf4g3": 564,
567
+ "Kf4g4": 565,
568
+ "Kf4g5": 566,
569
+ "Kf5e4": 567,
570
+ "Kf5e5": 568,
571
+ "Kf5e6": 569,
572
+ "Kf5f4": 570,
573
+ "Kf5f6": 571,
574
+ "Kf5g4": 572,
575
+ "Kf5g5": 573,
576
+ "Kf5g6": 574,
577
+ "Kf6e5": 575,
578
+ "Kf6e6": 576,
579
+ "Kf6e7": 577,
580
+ "Kf6f5": 578,
581
+ "Kf6f7": 579,
582
+ "Kf6g5": 580,
583
+ "Kf6g6": 581,
584
+ "Kf6g7": 582,
585
+ "Kf7e6": 583,
586
+ "Kf7e7": 584,
587
+ "Kf7e8": 585,
588
+ "Kf7f6": 586,
589
+ "Kf7f8": 587,
590
+ "Kf7g6": 588,
591
+ "Kf7g7": 589,
592
+ "Kf7g8": 590,
593
+ "Kf8e7": 591,
594
+ "Kf8e8": 592,
595
+ "Kf8f7": 593,
596
+ "Kf8g7": 594,
597
+ "Kf8g8": 595,
598
+ "Kg1f1": 596,
599
+ "Kg1f1(x)": 597,
600
+ "Kg1f2": 598,
601
+ "Kg1f2(x)": 599,
602
+ "Kg1g2": 600,
603
+ "Kg1g2(x)": 601,
604
+ "Kg1h1": 602,
605
+ "Kg1h2": 603,
606
+ "Kg1h2(x)": 604,
607
+ "Kg2f1": 605,
608
+ "Kg2f2": 606,
609
+ "Kg2f3": 607,
610
+ "Kg2g1": 608,
611
+ "Kg2g3": 609,
612
+ "Kg2h1": 610,
613
+ "Kg2h2": 611,
614
+ "Kg2h3": 612,
615
+ "Kg3f2": 613,
616
+ "Kg3f3": 614,
617
+ "Kg3f4": 615,
618
+ "Kg3g2": 616,
619
+ "Kg3g4": 617,
620
+ "Kg3h2": 618,
621
+ "Kg3h3": 619,
622
+ "Kg3h4": 620,
623
+ "Kg4f3": 621,
624
+ "Kg4f4": 622,
625
+ "Kg4f5": 623,
626
+ "Kg4g3": 624,
627
+ "Kg4g5": 625,
628
+ "Kg4h3": 626,
629
+ "Kg4h5": 627,
630
+ "Kg5f4": 628,
631
+ "Kg5f5": 629,
632
+ "Kg5f6": 630,
633
+ "Kg5g4": 631,
634
+ "Kg5h4": 632,
635
+ "Kg6f5": 633,
636
+ "Kg6f6": 634,
637
+ "Kg6f7": 635,
638
+ "Kg6g5": 636,
639
+ "Kg6g7": 637,
640
+ "Kg6h5": 638,
641
+ "Kg6h6": 639,
642
+ "Kg6h7": 640,
643
+ "Kg7f6": 641,
644
+ "Kg7f7": 642,
645
+ "Kg7f8": 643,
646
+ "Kg7g6": 644,
647
+ "Kg7g8": 645,
648
+ "Kg7h6": 646,
649
+ "Kg7h7": 647,
650
+ "Kg7h8": 648,
651
+ "Kg8f7": 649,
652
+ "Kg8f7(x)": 650,
653
+ "Kg8f8": 651,
654
+ "Kg8f8(x)": 652,
655
+ "Kg8g7": 653,
656
+ "Kg8g7(x)": 654,
657
+ "Kg8h7": 655,
658
+ "Kg8h7(x)": 656,
659
+ "Kg8h8": 657,
660
+ "Kh1g1": 658,
661
+ "Kh1g2": 659,
662
+ "Kh1h2": 660,
663
+ "Kh2g1": 661,
664
+ "Kh2g2": 662,
665
+ "Kh2g3": 663,
666
+ "Kh2h1": 664,
667
+ "Kh2h3": 665,
668
+ "Kh3g2": 666,
669
+ "Kh3g3": 667,
670
+ "Kh3g4": 668,
671
+ "Kh3h2": 669,
672
+ "Kh3h4": 670,
673
+ "Kh4g3": 671,
674
+ "Kh4g5": 672,
675
+ "Kh4h5": 673,
676
+ "Kh5g4": 674,
677
+ "Kh5g6": 675,
678
+ "Kh5h4": 676,
679
+ "Kh6g5": 677,
680
+ "Kh6g6": 678,
681
+ "Kh6g7": 679,
682
+ "Kh6h5": 680,
683
+ "Kh6h7": 681,
684
+ "Kh7g6": 682,
685
+ "Kh7g7": 683,
686
+ "Kh7g8": 684,
687
+ "Kh7h6": 685,
688
+ "Kh7h8": 686,
689
+ "Kh8g7": 687,
690
+ "Kh8g8": 688,
691
+ "Kh8h7": 689,
692
+ "Na3b5": 690,
693
+ "Na3c2": 691,
694
+ "Na3c4": 692,
695
+ "Na4c3": 693,
696
+ "Na4c5": 694,
697
+ "Na4c5(x)": 695,
698
+ "Na5b3(x)": 696,
699
+ "Na5c4": 697,
700
+ "Na5c4(x)": 698,
701
+ "Na5c6": 699,
702
+ "Na6b4": 700,
703
+ "Na6c5": 701,
704
+ "Na6c7": 702,
705
+ "Nb1a3": 703,
706
+ "Nb1c3": 704,
707
+ "Nb1c3(x)": 705,
708
+ "Nb1d2": 706,
709
+ "Nb1d2(x)": 707,
710
+ "Nb3c5": 708,
711
+ "Nb3d2": 709,
712
+ "Nb3d4": 710,
713
+ "Nb4a6": 711,
714
+ "Nb4c2": 712,
715
+ "Nb4c2(x)": 713,
716
+ "Nb4c6": 714,
717
+ "Nb4d3": 715,
718
+ "Nb4d3(x)": 716,
719
+ "Nb4d5": 717,
720
+ "Nb5a3": 718,
721
+ "Nb5c3": 719,
722
+ "Nb5c7": 720,
723
+ "Nb5d4": 721,
724
+ "Nb5d6": 722,
725
+ "Nb5d6(+)": 723,
726
+ "Nb5d6(x)": 724,
727
+ "Nb6c4": 725,
728
+ "Nb6c4(x)": 726,
729
+ "Nb6d5": 727,
730
+ "Nb6d5(x)": 728,
731
+ "Nb6d7": 729,
732
+ "Nb8a6": 730,
733
+ "Nb8c6": 731,
734
+ "Nb8c6(x)": 732,
735
+ "Nb8d7": 733,
736
+ "Nb8d7(x)": 734,
737
+ "Nc2a1(x)": 735,
738
+ "Nc2e3": 736,
739
+ "Nc3a2": 737,
740
+ "Nc3a4": 738,
741
+ "Nc3b1": 739,
742
+ "Nc3b5": 740,
743
+ "Nc3b5(x)": 741,
744
+ "Nc3d1": 742,
745
+ "Nc3d1(x)": 743,
746
+ "Nc3d5": 744,
747
+ "Nc3d5(x)": 745,
748
+ "Nc3e2": 746,
749
+ "Nc3e2(x)": 747,
750
+ "Nc3e4": 748,
751
+ "Nc3e4(x)": 749,
752
+ "Nc4b2(x)": 750,
753
+ "Nc4d2": 751,
754
+ "Nc4d6": 752,
755
+ "Nc4e3": 753,
756
+ "Nc4e5": 754,
757
+ "Nc4e5(x)": 755,
758
+ "Nc5d3": 756,
759
+ "Nc5d3(x)": 757,
760
+ "Nc5d7": 758,
761
+ "Nc5e4": 759,
762
+ "Nc5e4(x)": 760,
763
+ "Nc5e6": 761,
764
+ "Nc6a5": 762,
765
+ "Nc6a7": 763,
766
+ "Nc6b4": 764,
767
+ "Nc6b4(x)": 765,
768
+ "Nc6b8": 766,
769
+ "Nc6d4": 767,
770
+ "Nc6d4(x)": 768,
771
+ "Nc6d8": 769,
772
+ "Nc6d8(x)": 770,
773
+ "Nc6e5": 771,
774
+ "Nc6e5(x)": 772,
775
+ "Nc6e7": 773,
776
+ "Nc6e7(x)": 774,
777
+ "Nc7a8(x)": 775,
778
+ "Nd1e3": 776,
779
+ "Nd2b1": 777,
780
+ "Nd2b3": 778,
781
+ "Nd2c4": 779,
782
+ "Nd2c4(x)": 780,
783
+ "Nd2e4": 781,
784
+ "Nd2e4(x)": 782,
785
+ "Nd2f1": 783,
786
+ "Nd2f3": 784,
787
+ "Nd2f3(x)": 785,
788
+ "Nd3b2(x)": 786,
789
+ "Nd3e5": 787,
790
+ "Nd3f4": 788,
791
+ "Nd4b3": 789,
792
+ "Nd4b3(x)": 790,
793
+ "Nd4b5": 791,
794
+ "Nd4c2(x)": 792,
795
+ "Nd4c6": 793,
796
+ "Nd4c6(x)": 794,
797
+ "Nd4e2": 795,
798
+ "Nd4e2(+)": 796,
799
+ "Nd4e2(x+)": 797,
800
+ "Nd4e6": 798,
801
+ "Nd4e6(x)": 799,
802
+ "Nd4f3": 800,
803
+ "Nd4f3(+)": 801,
804
+ "Nd4f3(x+)": 802,
805
+ "Nd4f5": 803,
806
+ "Nd4f5(x)": 804,
807
+ "Nd5b4": 805,
808
+ "Nd5b6": 806,
809
+ "Nd5c3": 807,
810
+ "Nd5c3(x)": 808,
811
+ "Nd5c7(x)": 809,
812
+ "Nd5e3": 810,
813
+ "Nd5e3(x)": 811,
814
+ "Nd5e7": 812,
815
+ "Nd5e7(+)": 813,
816
+ "Nd5e7(x)": 814,
817
+ "Nd5e7(x+)": 815,
818
+ "Nd5f4": 816,
819
+ "Nd5f4(x)": 817,
820
+ "Nd5f6": 818,
821
+ "Nd5f6(+)": 819,
822
+ "Nd5f6(x+)": 820,
823
+ "Nd6b7(x)": 821,
824
+ "Nd6e4": 822,
825
+ "Nd6f5": 823,
826
+ "Nd7b6": 824,
827
+ "Nd7b8": 825,
828
+ "Nd7c5": 826,
829
+ "Nd7c5(x)": 827,
830
+ "Nd7e5": 828,
831
+ "Nd7e5(x)": 829,
832
+ "Nd7f6": 830,
833
+ "Nd7f6(x)": 831,
834
+ "Nd7f8": 832,
835
+ "Ne1f3": 833,
836
+ "Ne2c3": 834,
837
+ "Ne2c3(x)": 835,
838
+ "Ne2d4": 836,
839
+ "Ne2d4(x)": 837,
840
+ "Ne2f4": 838,
841
+ "Ne2f4(x)": 839,
842
+ "Ne2g3": 840,
843
+ "Ne3c4": 841,
844
+ "Ne3d5": 842,
845
+ "Ne3f1(x)": 843,
846
+ "Ne3f5": 844,
847
+ "Ne3g4": 845,
848
+ "Ne4c3": 846,
849
+ "Ne4c3(x)": 847,
850
+ "Ne4c5": 848,
851
+ "Ne4c5(x)": 849,
852
+ "Ne4d2": 850,
853
+ "Ne4d2(x)": 851,
854
+ "Ne4d6": 852,
855
+ "Ne4d6(+)": 853,
856
+ "Ne4d6(x)": 854,
857
+ "Ne4f2(x)": 855,
858
+ "Ne4f6": 856,
859
+ "Ne4f6(+)": 857,
860
+ "Ne4f6(x+)": 858,
861
+ "Ne4g3": 859,
862
+ "Ne4g3(x)": 860,
863
+ "Ne4g5": 861,
864
+ "Ne4g5(x)": 862,
865
+ "Ne5c4": 863,
866
+ "Ne5c4(x)": 864,
867
+ "Ne5c6": 865,
868
+ "Ne5c6(x)": 866,
869
+ "Ne5d3": 867,
870
+ "Ne5d3(x)": 868,
871
+ "Ne5d7": 869,
872
+ "Ne5d7(x)": 870,
873
+ "Ne5f3": 871,
874
+ "Ne5f3(+)": 872,
875
+ "Ne5f3(x+)": 873,
876
+ "Ne5f7(x)": 874,
877
+ "Ne5g4": 875,
878
+ "Ne5g4(x)": 876,
879
+ "Ne5g6": 877,
880
+ "Ne5g6(x)": 878,
881
+ "Ne6d4": 879,
882
+ "Ne6f4": 880,
883
+ "Ne6f8(x)": 881,
884
+ "Ne7c6": 882,
885
+ "Ne7c6(x)": 883,
886
+ "Ne7c8": 884,
887
+ "Ne7d5": 885,
888
+ "Ne7d5(x)": 886,
889
+ "Ne7f5": 887,
890
+ "Ne7f5(x)": 888,
891
+ "Ne7g6": 889,
892
+ "Ne8d6": 890,
893
+ "Ne8f6": 891,
894
+ "Nf1e3": 892,
895
+ "Nf1g3": 893,
896
+ "Nf3d2": 894,
897
+ "Nf3d2(x)": 895,
898
+ "Nf3d4": 896,
899
+ "Nf3d4(x)": 897,
900
+ "Nf3e1": 898,
901
+ "Nf3e5": 899,
902
+ "Nf3e5(+)": 900,
903
+ "Nf3e5(x)": 901,
904
+ "Nf3g1": 902,
905
+ "Nf3g5": 903,
906
+ "Nf3g5(+)": 904,
907
+ "Nf3g5(x)": 905,
908
+ "Nf3h2": 906,
909
+ "Nf3h4": 907,
910
+ "Nf3h4(x)": 908,
911
+ "Nf4d3": 909,
912
+ "Nf4d5": 910,
913
+ "Nf4d5(x)": 911,
914
+ "Nf4e2(+)": 912,
915
+ "Nf4e6(x)": 913,
916
+ "Nf4h5": 914,
917
+ "Nf5d4": 915,
918
+ "Nf5d4(x)": 916,
919
+ "Nf5d6": 917,
920
+ "Nf5e3": 918,
921
+ "Nf5e3(x)": 919,
922
+ "Nf5e7": 920,
923
+ "Nf5e7(+)": 921,
924
+ "Nf5h4": 922,
925
+ "Nf6d5": 923,
926
+ "Nf6d5(x)": 924,
927
+ "Nf6d7": 925,
928
+ "Nf6d7(x)": 926,
929
+ "Nf6e4": 927,
930
+ "Nf6e4(x)": 928,
931
+ "Nf6e8": 929,
932
+ "Nf6g4": 930,
933
+ "Nf6g4(x)": 931,
934
+ "Nf6g8": 932,
935
+ "Nf6h5": 933,
936
+ "Nf6h5(x)": 934,
937
+ "Nf6h7": 935,
938
+ "Nf7h8(x)": 936,
939
+ "Nf8e6": 937,
940
+ "Nf8g6": 938,
941
+ "Ng1e2": 939,
942
+ "Ng1f3": 940,
943
+ "Ng1f3(x)": 941,
944
+ "Ng1h3": 942,
945
+ "Ng3e2": 943,
946
+ "Ng3e4": 944,
947
+ "Ng3e4(x)": 945,
948
+ "Ng3f5": 946,
949
+ "Ng3f5(x)": 947,
950
+ "Ng3h5": 948,
951
+ "Ng4e3": 949,
952
+ "Ng4e3(x)": 950,
953
+ "Ng4e5": 951,
954
+ "Ng4e5(x)": 952,
955
+ "Ng4f2(x)": 953,
956
+ "Ng4f6": 954,
957
+ "Ng4h6": 955,
958
+ "Ng5e4": 956,
959
+ "Ng5e4(x)": 957,
960
+ "Ng5e6": 958,
961
+ "Ng5e6(x)": 959,
962
+ "Ng5f3": 960,
963
+ "Ng5f7(x)": 961,
964
+ "Ng5h3": 962,
965
+ "Ng6e5": 963,
966
+ "Ng6e5(x)": 964,
967
+ "Ng6e7": 965,
968
+ "Ng6f4": 966,
969
+ "Ng6f4(x)": 967,
970
+ "Ng6h4": 968,
971
+ "Ng8e7": 969,
972
+ "Ng8f6": 970,
973
+ "Ng8f6(x)": 971,
974
+ "Ng8h6": 972,
975
+ "Nh2f3": 973,
976
+ "Nh2g4": 974,
977
+ "Nh3f2": 975,
978
+ "Nh3f4": 976,
979
+ "Nh3g5": 977,
980
+ "Nh4f3": 978,
981
+ "Nh4f5": 979,
982
+ "Nh4f5(x)": 980,
983
+ "Nh4g6(x)": 981,
984
+ "Nh5f4": 982,
985
+ "Nh5f4(x)": 983,
986
+ "Nh5f6": 984,
987
+ "Nh5g3(x)": 985,
988
+ "Nh6f5": 986,
989
+ "Nh6f7": 987,
990
+ "Nh6g4": 988,
991
+ "Nh7f6": 989,
992
+ "Nh7g5": 990,
993
+ "Pa2a1(Q)": 991,
994
+ "Pa2a3": 992,
995
+ "Pa2a4": 993,
996
+ "Pa2b3(x)": 994,
997
+ "Pa3a2": 995,
998
+ "Pa3a4": 996,
999
+ "Pa3b4(x)": 997,
1000
+ "Pa4a3": 998,
1001
+ "Pa4a5": 999,
1002
+ "Pa4b3(x)": 1000,
1003
+ "Pa4b5(x)": 1001,
1004
+ "Pa5a4": 1002,
1005
+ "Pa5a6": 1003,
1006
+ "Pa5b4(x)": 1004,
1007
+ "Pa5b6(x)": 1005,
1008
+ "Pa6a5": 1006,
1009
+ "Pa6a7": 1007,
1010
+ "Pa6b5(x)": 1008,
1011
+ "Pa7a5": 1009,
1012
+ "Pa7a6": 1010,
1013
+ "Pa7a8(Q)": 1011,
1014
+ "Pa7b6(x)": 1012,
1015
+ "Pb2a3(x)": 1013,
1016
+ "Pb2b1(Q)": 1014,
1017
+ "Pb2b3": 1015,
1018
+ "Pb2b4": 1016,
1019
+ "Pb2c3(x)": 1017,
1020
+ "Pb3a4(x)": 1018,
1021
+ "Pb3b2": 1019,
1022
+ "Pb3b4": 1020,
1023
+ "Pb3c4(x)": 1021,
1024
+ "Pb4a3(x)": 1022,
1025
+ "Pb4a5(x)": 1023,
1026
+ "Pb4b3": 1024,
1027
+ "Pb4b5": 1025,
1028
+ "Pb4c3(x)": 1026,
1029
+ "Pb4c5(x)": 1027,
1030
+ "Pb5a4(x)": 1028,
1031
+ "Pb5a6(x)": 1029,
1032
+ "Pb5b4": 1030,
1033
+ "Pb5b6": 1031,
1034
+ "Pb5c4(x)": 1032,
1035
+ "Pb5c6(x)": 1033,
1036
+ "Pb6a5(x)": 1034,
1037
+ "Pb6b5": 1035,
1038
+ "Pb6b7": 1036,
1039
+ "Pb6c5(x)": 1037,
1040
+ "Pb7a6(x)": 1038,
1041
+ "Pb7b5": 1039,
1042
+ "Pb7b6": 1040,
1043
+ "Pb7b8(Q)": 1041,
1044
+ "Pb7c6(x)": 1042,
1045
+ "Pc2b3(x)": 1043,
1046
+ "Pc2c1(Q)": 1044,
1047
+ "Pc2c3": 1045,
1048
+ "Pc2c4": 1046,
1049
+ "Pc2d3(x)": 1047,
1050
+ "Pc3b4(x)": 1048,
1051
+ "Pc3c2": 1049,
1052
+ "Pc3c4": 1050,
1053
+ "Pc3d4(x)": 1051,
1054
+ "Pc4b3(x)": 1052,
1055
+ "Pc4b5(x)": 1053,
1056
+ "Pc4c3": 1054,
1057
+ "Pc4c5": 1055,
1058
+ "Pc4d3(x)": 1056,
1059
+ "Pc4d5(x)": 1057,
1060
+ "Pc5b4(x)": 1058,
1061
+ "Pc5b6(x)": 1059,
1062
+ "Pc5c4": 1060,
1063
+ "Pc5c6": 1061,
1064
+ "Pc5d4(x)": 1062,
1065
+ "Pc5d6(x)": 1063,
1066
+ "Pc6b5(x)": 1064,
1067
+ "Pc6c5": 1065,
1068
+ "Pc6c7": 1066,
1069
+ "Pc6d5(x)": 1067,
1070
+ "Pc7b6(x)": 1068,
1071
+ "Pc7c5": 1069,
1072
+ "Pc7c6": 1070,
1073
+ "Pc7c8(Q)": 1071,
1074
+ "Pc7d6(x)": 1072,
1075
+ "Pd2c3(x)": 1073,
1076
+ "Pd2d3": 1074,
1077
+ "Pd2d4": 1075,
1078
+ "Pd3c4(x)": 1076,
1079
+ "Pd3d2": 1077,
1080
+ "Pd3d4": 1078,
1081
+ "Pd3e4(x)": 1079,
1082
+ "Pd4c3(x)": 1080,
1083
+ "Pd4c5(x)": 1081,
1084
+ "Pd4d3": 1082,
1085
+ "Pd4d5": 1083,
1086
+ "Pd4e3(x)": 1084,
1087
+ "Pd4e5(x)": 1085,
1088
+ "Pd5c4(x)": 1086,
1089
+ "Pd5c6(x)": 1087,
1090
+ "Pd5d4": 1088,
1091
+ "Pd5d6": 1089,
1092
+ "Pd5e4(x)": 1090,
1093
+ "Pd5e6(x)": 1091,
1094
+ "Pd6c5(x)": 1092,
1095
+ "Pd6d5": 1093,
1096
+ "Pd6d7": 1094,
1097
+ "Pd6e5(x)": 1095,
1098
+ "Pd7c6(x)": 1096,
1099
+ "Pd7d5": 1097,
1100
+ "Pd7d6": 1098,
1101
+ "Pd7d8(Q)": 1099,
1102
+ "Pe2e3": 1100,
1103
+ "Pe2e4": 1101,
1104
+ "Pe3d4(x)": 1102,
1105
+ "Pe3e2": 1103,
1106
+ "Pe3e4": 1104,
1107
+ "Pe3f4(x)": 1105,
1108
+ "Pe4d3(x)": 1106,
1109
+ "Pe4d5(x)": 1107,
1110
+ "Pe4e3": 1108,
1111
+ "Pe4e5": 1109,
1112
+ "Pe4f3(x)": 1110,
1113
+ "Pe4f5(x)": 1111,
1114
+ "Pe5d4(x)": 1112,
1115
+ "Pe5d6(x)": 1113,
1116
+ "Pe5e4": 1114,
1117
+ "Pe5e6": 1115,
1118
+ "Pe5f4(x)": 1116,
1119
+ "Pe5f6(x)": 1117,
1120
+ "Pe5f6(xE)": 1118,
1121
+ "Pe6d5(x)": 1119,
1122
+ "Pe6e5": 1120,
1123
+ "Pe6e7": 1121,
1124
+ "Pe6f5(x)": 1122,
1125
+ "Pe6f7(x+)": 1123,
1126
+ "Pe7d6(x)": 1124,
1127
+ "Pe7e5": 1125,
1128
+ "Pe7e6": 1126,
1129
+ "Pe7f6(x)": 1127,
1130
+ "Pf2e3(x)": 1128,
1131
+ "Pf2f3": 1129,
1132
+ "Pf2f4": 1130,
1133
+ "Pf2g3(x)": 1131,
1134
+ "Pf3e4(x)": 1132,
1135
+ "Pf3f2": 1133,
1136
+ "Pf3f4": 1134,
1137
+ "Pf3g4(x)": 1135,
1138
+ "Pf4e3(x)": 1136,
1139
+ "Pf4e5(x)": 1137,
1140
+ "Pf4f3": 1138,
1141
+ "Pf4f5": 1139,
1142
+ "Pf4g3(x)": 1140,
1143
+ "Pf4g5(x)": 1141,
1144
+ "Pf5e4(x)": 1142,
1145
+ "Pf5e6(x)": 1143,
1146
+ "Pf5f4": 1144,
1147
+ "Pf5f6": 1145,
1148
+ "Pf5g4(x)": 1146,
1149
+ "Pf5g6(x)": 1147,
1150
+ "Pf6e5(x)": 1148,
1151
+ "Pf6f5": 1149,
1152
+ "Pf6f7": 1150,
1153
+ "Pf6g5(x)": 1151,
1154
+ "Pf7e6(x)": 1152,
1155
+ "Pf7f5": 1153,
1156
+ "Pf7f6": 1154,
1157
+ "Pf7g6(x)": 1155,
1158
+ "Pg2f3(x)": 1156,
1159
+ "Pg2g1(Q)": 1157,
1160
+ "Pg2g3": 1158,
1161
+ "Pg2g4": 1159,
1162
+ "Pg2h3(x)": 1160,
1163
+ "Pg3f4(x)": 1161,
1164
+ "Pg3g2": 1162,
1165
+ "Pg3g4": 1163,
1166
+ "Pg3h4(x)": 1164,
1167
+ "Pg4f3(x)": 1165,
1168
+ "Pg4f5(x)": 1166,
1169
+ "Pg4g3": 1167,
1170
+ "Pg4g5": 1168,
1171
+ "Pg4h3(x)": 1169,
1172
+ "Pg4h5(x)": 1170,
1173
+ "Pg5f4(x)": 1171,
1174
+ "Pg5f6(x)": 1172,
1175
+ "Pg5g4": 1173,
1176
+ "Pg5g6": 1174,
1177
+ "Pg5h4(x)": 1175,
1178
+ "Pg5h6(x)": 1176,
1179
+ "Pg6f5(x)": 1177,
1180
+ "Pg6g5": 1178,
1181
+ "Pg6g7": 1179,
1182
+ "Pg6h5(x)": 1180,
1183
+ "Pg7f6(x)": 1181,
1184
+ "Pg7g5": 1182,
1185
+ "Pg7g6": 1183,
1186
+ "Pg7g8(Q)": 1184,
1187
+ "Pg7h6(x)": 1185,
1188
+ "Ph2g3(x)": 1186,
1189
+ "Ph2h1(Q)": 1187,
1190
+ "Ph2h3": 1188,
1191
+ "Ph2h4": 1189,
1192
+ "Ph3g4(x)": 1190,
1193
+ "Ph3h2": 1191,
1194
+ "Ph3h4": 1192,
1195
+ "Ph4g3(x)": 1193,
1196
+ "Ph4g5(x)": 1194,
1197
+ "Ph4h3": 1195,
1198
+ "Ph4h5": 1196,
1199
+ "Ph5g4(x)": 1197,
1200
+ "Ph5g6(x)": 1198,
1201
+ "Ph5h4": 1199,
1202
+ "Ph5h6": 1200,
1203
+ "Ph6g5(x)": 1201,
1204
+ "Ph6h5": 1202,
1205
+ "Ph6h7": 1203,
1206
+ "Ph7g6(x)": 1204,
1207
+ "Ph7h5": 1205,
1208
+ "Ph7h6": 1206,
1209
+ "Ph7h8(Q)": 1207,
1210
+ "Qa4b3": 1208,
1211
+ "Qa4c2": 1209,
1212
+ "Qa5b6": 1210,
1213
+ "Qa5c7": 1211,
1214
+ "Qa5d8": 1212,
1215
+ "Qb2a2(x)": 1213,
1216
+ "Qb3b7(x)": 1214,
1217
+ "Qb3c2": 1215,
1218
+ "Qb3d1": 1216,
1219
+ "Qb4b2(x)": 1217,
1220
+ "Qb6a5": 1218,
1221
+ "Qb6b2(x)": 1219,
1222
+ "Qb6c6": 1220,
1223
+ "Qb6c7": 1221,
1224
+ "Qb6d4(x)": 1222,
1225
+ "Qb6d8": 1223,
1226
+ "Qc2b3": 1224,
1227
+ "Qc2c3": 1225,
1228
+ "Qc2d2": 1226,
1229
+ "Qc2d3": 1227,
1230
+ "Qc2e2": 1228,
1231
+ "Qc2e4(x)": 1229,
1232
+ "Qc7a5": 1230,
1233
+ "Qc7b6": 1231,
1234
+ "Qc7b7": 1232,
1235
+ "Qc7c6": 1233,
1236
+ "Qc7d6": 1234,
1237
+ "Qc7d6(x)": 1235,
1238
+ "Qc7d7": 1236,
1239
+ "Qc7d8": 1237,
1240
+ "Qc7e5(x)": 1238,
1241
+ "Qc7e7": 1239,
1242
+ "Qd1a1(x)": 1240,
1243
+ "Qd1a4": 1241,
1244
+ "Qd1a4(+)": 1242,
1245
+ "Qd1b3": 1243,
1246
+ "Qd1c1": 1244,
1247
+ "Qd1c2": 1245,
1248
+ "Qd1d2": 1246,
1249
+ "Qd1d2(x)": 1247,
1250
+ "Qd1d3": 1248,
1251
+ "Qd1d3(x)": 1249,
1252
+ "Qd1d4": 1250,
1253
+ "Qd1d4(x)": 1251,
1254
+ "Qd1d5": 1252,
1255
+ "Qd1d5(x)": 1253,
1256
+ "Qd1d6(x)": 1254,
1257
+ "Qd1d8(x)": 1255,
1258
+ "Qd1d8(x+)": 1256,
1259
+ "Qd1e1": 1257,
1260
+ "Qd1e2": 1258,
1261
+ "Qd1e2(+)": 1259,
1262
+ "Qd1e2(x)": 1260,
1263
+ "Qd1f3": 1261,
1264
+ "Qd1f3(x)": 1262,
1265
+ "Qd1g4": 1263,
1266
+ "Qd1g4(x)": 1264,
1267
+ "Qd1h5": 1265,
1268
+ "Qd1h5(+)": 1266,
1269
+ "Qd1h5(x)": 1267,
1270
+ "Qd2c2": 1268,
1271
+ "Qd2c3": 1269,
1272
+ "Qd2d3": 1270,
1273
+ "Qd2e2": 1271,
1274
+ "Qd2e3": 1272,
1275
+ "Qd2e3(x)": 1273,
1276
+ "Qd2f2": 1274,
1277
+ "Qd2f4": 1275,
1278
+ "Qd2f4(x)": 1276,
1279
+ "Qd2g5": 1277,
1280
+ "Qd2h6(x)": 1278,
1281
+ "Qd3c2": 1279,
1282
+ "Qd3d2": 1280,
1283
+ "Qd3e2": 1281,
1284
+ "Qd3e3": 1282,
1285
+ "Qd3e4(x)": 1283,
1286
+ "Qd3f3": 1284,
1287
+ "Qd3g3": 1285,
1288
+ "Qd4d1": 1286,
1289
+ "Qd4d3": 1287,
1290
+ "Qd4e3": 1288,
1291
+ "Qd5a5": 1289,
1292
+ "Qd5d6": 1290,
1293
+ "Qd5d8": 1291,
1294
+ "Qd6c6": 1292,
1295
+ "Qd6c7": 1293,
1296
+ "Qd6d7": 1294,
1297
+ "Qd6e6": 1295,
1298
+ "Qd6e7": 1296,
1299
+ "Qd7c6": 1297,
1300
+ "Qd7c7": 1298,
1301
+ "Qd7d6": 1299,
1302
+ "Qd7e6": 1300,
1303
+ "Qd7e7": 1301,
1304
+ "Qd7f5": 1302,
1305
+ "Qd7g4": 1303,
1306
+ "Qd8a5": 1304,
1307
+ "Qd8a5(+)": 1305,
1308
+ "Qd8a8(x)": 1306,
1309
+ "Qd8b6": 1307,
1310
+ "Qd8b6(+)": 1308,
1311
+ "Qd8b8": 1309,
1312
+ "Qd8c7": 1310,
1313
+ "Qd8c8": 1311,
1314
+ "Qd8d1(x)": 1312,
1315
+ "Qd8d1(x+)": 1313,
1316
+ "Qd8d4": 1314,
1317
+ "Qd8d4(x)": 1315,
1318
+ "Qd8d5": 1316,
1319
+ "Qd8d5(x)": 1317,
1320
+ "Qd8d6": 1318,
1321
+ "Qd8d6(x)": 1319,
1322
+ "Qd8d7": 1320,
1323
+ "Qd8d7(x)": 1321,
1324
+ "Qd8e7": 1322,
1325
+ "Qd8e7(+)": 1323,
1326
+ "Qd8e7(x)": 1324,
1327
+ "Qd8e8": 1325,
1328
+ "Qd8f6": 1326,
1329
+ "Qd8f6(x)": 1327,
1330
+ "Qd8f8": 1328,
1331
+ "Qd8g5": 1329,
1332
+ "Qd8g5(x)": 1330,
1333
+ "Qd8h4": 1331,
1334
+ "Qd8h4(+)": 1332,
1335
+ "Qd8h4(x)": 1333,
1336
+ "Qe2c2": 1334,
1337
+ "Qe2c4": 1335,
1338
+ "Qe2c4(x)": 1336,
1339
+ "Qe2d1": 1337,
1340
+ "Qe2d2": 1338,
1341
+ "Qe2d3": 1339,
1342
+ "Qe2e3": 1340,
1343
+ "Qe2e3(x)": 1341,
1344
+ "Qe2e4": 1342,
1345
+ "Qe2e4(x)": 1343,
1346
+ "Qe2f2": 1344,
1347
+ "Qe2f3": 1345,
1348
+ "Qe2f3(x)": 1346,
1349
+ "Qe2g4": 1347,
1350
+ "Qe2h5": 1348,
1351
+ "Qe3e2": 1349,
1352
+ "Qe3f3": 1350,
1353
+ "Qe3g3": 1351,
1354
+ "Qe7c5": 1352,
1355
+ "Qe7c7": 1353,
1356
+ "Qe7d6": 1354,
1357
+ "Qe7d7": 1355,
1358
+ "Qe7d8": 1356,
1359
+ "Qe7e5": 1357,
1360
+ "Qe7e5(x)": 1358,
1361
+ "Qe7e6": 1359,
1362
+ "Qe7e6(x)": 1360,
1363
+ "Qe7f6": 1361,
1364
+ "Qe7f6(x)": 1362,
1365
+ "Qe7f7": 1363,
1366
+ "Qe7g5": 1364,
1367
+ "Qe7h4": 1365,
1368
+ "Qf3b7(x)": 1366,
1369
+ "Qf3d1": 1367,
1370
+ "Qf3d3": 1368,
1371
+ "Qf3d5(x)": 1369,
1372
+ "Qf3e2": 1370,
1373
+ "Qf3e3": 1371,
1374
+ "Qf3e4(x)": 1372,
1375
+ "Qf3f4": 1373,
1376
+ "Qf3f6(x)": 1374,
1377
+ "Qf3g3": 1375,
1378
+ "Qf3g4": 1376,
1379
+ "Qf3h3": 1377,
1380
+ "Qf3h5": 1378,
1381
+ "Qf6d8": 1379,
1382
+ "Qf6e5(x)": 1380,
1383
+ "Qf6e6": 1381,
1384
+ "Qf6e7": 1382,
1385
+ "Qf6f3(x)": 1383,
1386
+ "Qf6f5": 1384,
1387
+ "Qf6g5": 1385,
1388
+ "Qf6g6": 1386,
1389
+ "Qg3f3": 1387,
1390
+ "Qg3g4": 1388,
1391
+ "Qg3h4": 1389,
1392
+ "Qg4f3": 1390,
1393
+ "Qg4g3": 1391,
1394
+ "Qg5f6": 1392,
1395
+ "Qg5g6": 1393,
1396
+ "Qg6f6": 1394,
1397
+ "Qh5f3": 1395,
1398
+ "Ra1a2": 1396,
1399
+ "Ra1a3": 1397,
1400
+ "Ra1a6(x)": 1398,
1401
+ "Ra1a7(x)": 1399,
1402
+ "Ra1a8(x)": 1400,
1403
+ "Ra1b1": 1401,
1404
+ "Ra1c1": 1402,
1405
+ "Ra1c1(x)": 1403,
1406
+ "Ra1d1": 1404,
1407
+ "Ra1d1(x)": 1405,
1408
+ "Ra1e1": 1406,
1409
+ "Ra1e1(x)": 1407,
1410
+ "Ra1f1": 1408,
1411
+ "Ra1f1(x)": 1409,
1412
+ "Ra1g1": 1410,
1413
+ "Ra1h1": 1411,
1414
+ "Ra2a1(+)": 1412,
1415
+ "Ra2b2": 1413,
1416
+ "Ra8a1(x)": 1414,
1417
+ "Ra8a2(x)": 1415,
1418
+ "Ra8a6": 1416,
1419
+ "Ra8a6(x)": 1417,
1420
+ "Ra8a7": 1418,
1421
+ "Ra8b8": 1419,
1422
+ "Ra8c8": 1420,
1423
+ "Ra8c8(x)": 1421,
1424
+ "Ra8d8": 1422,
1425
+ "Ra8d8(x)": 1423,
1426
+ "Ra8e8": 1424,
1427
+ "Ra8e8(x)": 1425,
1428
+ "Ra8f8": 1426,
1429
+ "Ra8f8(x)": 1427,
1430
+ "Ra8g8": 1428,
1431
+ "Ra8h8": 1429,
1432
+ "Rb1a1": 1430,
1433
+ "Rb1b2": 1431,
1434
+ "Rb1b2(x)": 1432,
1435
+ "Rb1b3": 1433,
1436
+ "Rb1b7": 1434,
1437
+ "Rb1b7(x)": 1435,
1438
+ "Rb1c1": 1436,
1439
+ "Rb1d1": 1437,
1440
+ "Rb1e1": 1438,
1441
+ "Rb1f1": 1439,
1442
+ "Rb2a2(x)": 1440,
1443
+ "Rb7a7(x)": 1441,
1444
+ "Rb8a8": 1442,
1445
+ "Rb8b2": 1443,
1446
+ "Rb8b2(x)": 1444,
1447
+ "Rb8b6": 1445,
1448
+ "Rb8b7": 1446,
1449
+ "Rb8b7(x)": 1447,
1450
+ "Rb8c8": 1448,
1451
+ "Rb8d8": 1449,
1452
+ "Rb8e8": 1450,
1453
+ "Rb8f8": 1451,
1454
+ "Rc1a1": 1452,
1455
+ "Rc1b1": 1453,
1456
+ "Rc1c2": 1454,
1457
+ "Rc1c2(x)": 1455,
1458
+ "Rc1c3": 1456,
1459
+ "Rc1c3(x)": 1457,
1460
+ "Rc1c4(x)": 1458,
1461
+ "Rc1c5": 1459,
1462
+ "Rc1c5(x)": 1460,
1463
+ "Rc1c6(x)": 1461,
1464
+ "Rc1c7": 1462,
1465
+ "Rc1c7(x)": 1463,
1466
+ "Rc1c8(x)": 1464,
1467
+ "Rc1d1": 1465,
1468
+ "Rc1e1": 1466,
1469
+ "Rc1f1": 1467,
1470
+ "Rc2a2(x)": 1468,
1471
+ "Rc2b2(x)": 1469,
1472
+ "Rc7b7(x)": 1470,
1473
+ "Rc8a8": 1471,
1474
+ "Rc8b8": 1472,
1475
+ "Rc8c1(x)": 1473,
1476
+ "Rc8c1(x+)": 1474,
1477
+ "Rc8c2": 1475,
1478
+ "Rc8c2(x)": 1476,
1479
+ "Rc8c3": 1477,
1480
+ "Rc8c3(x)": 1478,
1481
+ "Rc8c4": 1479,
1482
+ "Rc8c4(x)": 1480,
1483
+ "Rc8c5": 1481,
1484
+ "Rc8c5(x)": 1482,
1485
+ "Rc8c6": 1483,
1486
+ "Rc8c6(x)": 1484,
1487
+ "Rc8c7": 1485,
1488
+ "Rc8c7(x)": 1486,
1489
+ "Rc8d8": 1487,
1490
+ "Rc8e8": 1488,
1491
+ "Rc8f8": 1489,
1492
+ "Rd1a1": 1490,
1493
+ "Rd1b1": 1491,
1494
+ "Rd1c1": 1492,
1495
+ "Rd1d2": 1493,
1496
+ "Rd1d2(x)": 1494,
1497
+ "Rd1d3": 1495,
1498
+ "Rd1d3(x)": 1496,
1499
+ "Rd1d4": 1497,
1500
+ "Rd1d4(x)": 1498,
1501
+ "Rd1d5": 1499,
1502
+ "Rd1d5(x)": 1500,
1503
+ "Rd1d6": 1501,
1504
+ "Rd1d6(x)": 1502,
1505
+ "Rd1d7": 1503,
1506
+ "Rd1d7(+)": 1504,
1507
+ "Rd1d7(x)": 1505,
1508
+ "Rd1d8(+)": 1506,
1509
+ "Rd1d8(x)": 1507,
1510
+ "Rd1d8(x+)": 1508,
1511
+ "Rd1e1": 1509,
1512
+ "Rd1e1(x)": 1510,
1513
+ "Rd1f1": 1511,
1514
+ "Rd1g1": 1512,
1515
+ "Rd1h1": 1513,
1516
+ "Rd2e2": 1514,
1517
+ "Rd7b7(x)": 1515,
1518
+ "Rd7c7": 1516,
1519
+ "Rd7e7": 1517,
1520
+ "Rd8a8": 1518,
1521
+ "Rd8b8": 1519,
1522
+ "Rd8c8": 1520,
1523
+ "Rd8d1(+)": 1521,
1524
+ "Rd8d1(x)": 1522,
1525
+ "Rd8d1(x+)": 1523,
1526
+ "Rd8d2": 1524,
1527
+ "Rd8d2(x)": 1525,
1528
+ "Rd8d3": 1526,
1529
+ "Rd8d3(x)": 1527,
1530
+ "Rd8d4": 1528,
1531
+ "Rd8d4(x)": 1529,
1532
+ "Rd8d5": 1530,
1533
+ "Rd8d5(x)": 1531,
1534
+ "Rd8d6": 1532,
1535
+ "Rd8d6(x)": 1533,
1536
+ "Rd8d7": 1534,
1537
+ "Rd8d7(x)": 1535,
1538
+ "Rd8e8": 1536,
1539
+ "Rd8f8": 1537,
1540
+ "Rd8g8": 1538,
1541
+ "Rd8h8": 1539,
1542
+ "Re1a1": 1540,
1543
+ "Re1b1": 1541,
1544
+ "Re1c1": 1542,
1545
+ "Re1d1": 1543,
1546
+ "Re1d1(x)": 1544,
1547
+ "Re1e2": 1545,
1548
+ "Re1e2(x)": 1546,
1549
+ "Re1e3": 1547,
1550
+ "Re1e3(x)": 1548,
1551
+ "Re1e4": 1549,
1552
+ "Re1e4(x)": 1550,
1553
+ "Re1e5": 1551,
1554
+ "Re1e5(x)": 1552,
1555
+ "Re1e6": 1553,
1556
+ "Re1e6(x)": 1554,
1557
+ "Re1e7": 1555,
1558
+ "Re1e7(x)": 1556,
1559
+ "Re1e8(+)": 1557,
1560
+ "Re1e8(x)": 1558,
1561
+ "Re1e8(x+)": 1559,
1562
+ "Re1f1": 1560,
1563
+ "Re1g1": 1561,
1564
+ "Re1h1": 1562,
1565
+ "Re2d2": 1563,
1566
+ "Re2e3": 1564,
1567
+ "Re3f3": 1565,
1568
+ "Re3g3": 1566,
1569
+ "Re7d7": 1567,
1570
+ "Re8b8": 1568,
1571
+ "Re8c8": 1569,
1572
+ "Re8d8": 1570,
1573
+ "Re8d8(x)": 1571,
1574
+ "Re8e1(+)": 1572,
1575
+ "Re8e1(x)": 1573,
1576
+ "Re8e1(x+)": 1574,
1577
+ "Re8e2": 1575,
1578
+ "Re8e2(x)": 1576,
1579
+ "Re8e3": 1577,
1580
+ "Re8e3(x)": 1578,
1581
+ "Re8e4": 1579,
1582
+ "Re8e4(x)": 1580,
1583
+ "Re8e5": 1581,
1584
+ "Re8e5(x)": 1582,
1585
+ "Re8e6": 1583,
1586
+ "Re8e6(x)": 1584,
1587
+ "Re8e7": 1585,
1588
+ "Re8e7(x)": 1586,
1589
+ "Re8f8": 1587,
1590
+ "Re8g8": 1588,
1591
+ "Rf1a1": 1589,
1592
+ "Rf1a1(x)": 1590,
1593
+ "Rf1b1": 1591,
1594
+ "Rf1c1": 1592,
1595
+ "Rf1c1(x)": 1593,
1596
+ "Rf1d1": 1594,
1597
+ "Rf1d1(x)": 1595,
1598
+ "Rf1e1": 1596,
1599
+ "Rf1e1(+)": 1597,
1600
+ "Rf1e1(x)": 1598,
1601
+ "Rf1f2": 1599,
1602
+ "Rf1f2(x)": 1600,
1603
+ "Rf1f3": 1601,
1604
+ "Rf1f3(x)": 1602,
1605
+ "Rf1f4": 1603,
1606
+ "Rf1f4(x)": 1604,
1607
+ "Rf1f5(x)": 1605,
1608
+ "Rf1f6(x)": 1606,
1609
+ "Rf1f7": 1607,
1610
+ "Rf1f7(x)": 1608,
1611
+ "Rf1f8(x+)": 1609,
1612
+ "Rf1g1": 1610,
1613
+ "Rf1h1": 1611,
1614
+ "Rf2e2": 1612,
1615
+ "Rf3g3": 1613,
1616
+ "Rf3h3": 1614,
1617
+ "Rf6g6": 1615,
1618
+ "Rf7e7": 1616,
1619
+ "Rf7f8": 1617,
1620
+ "Rf8a8": 1618,
1621
+ "Rf8a8(x)": 1619,
1622
+ "Rf8b8": 1620,
1623
+ "Rf8c8": 1621,
1624
+ "Rf8c8(x)": 1622,
1625
+ "Rf8d8": 1623,
1626
+ "Rf8d8(x)": 1624,
1627
+ "Rf8e8": 1625,
1628
+ "Rf8e8(+)": 1626,
1629
+ "Rf8e8(x)": 1627,
1630
+ "Rf8f1(x+)": 1628,
1631
+ "Rf8f2(x)": 1629,
1632
+ "Rf8f3(x)": 1630,
1633
+ "Rf8f4": 1631,
1634
+ "Rf8f4(x)": 1632,
1635
+ "Rf8f5": 1633,
1636
+ "Rf8f5(x)": 1634,
1637
+ "Rf8f6": 1635,
1638
+ "Rf8f6(x)": 1636,
1639
+ "Rf8f7": 1637,
1640
+ "Rf8f7(x)": 1638,
1641
+ "Rf8g8": 1639,
1642
+ "Rf8h8": 1640,
1643
+ "Rg1e1": 1641,
1644
+ "Rg1f1": 1642,
1645
+ "Rg1g2": 1643,
1646
+ "Rg1g3": 1644,
1647
+ "Rg1h1": 1645,
1648
+ "Rg8f8": 1646,
1649
+ "Rg8g6": 1647,
1650
+ "Rg8g7": 1648,
1651
+ "Rg8h8": 1649,
1652
+ "Rh1c1": 1650,
1653
+ "Rh1d1": 1651,
1654
+ "Rh1e1": 1652,
1655
+ "Rh1f1": 1653,
1656
+ "Rh1g1": 1654,
1657
+ "Rh1h2": 1655,
1658
+ "Rh1h3": 1656,
1659
+ "Rh1h5(x)": 1657,
1660
+ "Rh8c8": 1658,
1661
+ "Rh8d8": 1659,
1662
+ "Rh8e8": 1660,
1663
+ "Rh8f8": 1661,
1664
+ "Rh8g8": 1662,
1665
+ "Rh8h6": 1663,
1666
+ "Rh8h7": 1664,
1667
+ "a1": 1665,
1668
+ "a2": 1666,
1669
+ "a3": 1667,
1670
+ "a4": 1668,
1671
+ "a5": 1669,
1672
+ "a6": 1670,
1673
+ "a7": 1671,
1674
+ "a8": 1672,
1675
+ "b1": 1673,
1676
+ "b2": 1674,
1677
+ "b3": 1675,
1678
+ "b4": 1676,
1679
+ "b5": 1677,
1680
+ "b6": 1678,
1681
+ "b7": 1679,
1682
+ "b8": 1680,
1683
+ "c1": 1681,
1684
+ "c2": 1682,
1685
+ "c3": 1683,
1686
+ "c4": 1684,
1687
+ "c5": 1685,
1688
+ "c6": 1686,
1689
+ "c7": 1687,
1690
+ "c8": 1688,
1691
+ "d1": 1689,
1692
+ "d2": 1690,
1693
+ "d3": 1691,
1694
+ "d4": 1692,
1695
+ "d5": 1693,
1696
+ "d6": 1694,
1697
+ "d7": 1695,
1698
+ "d8": 1696,
1699
+ "e1": 1697,
1700
+ "e2": 1698,
1701
+ "e3": 1699,
1702
+ "e4": 1700,
1703
+ "e5": 1701,
1704
+ "e6": 1702,
1705
+ "e7": 1703,
1706
+ "e8": 1704,
1707
+ "f1": 1705,
1708
+ "f2": 1706,
1709
+ "f3": 1707,
1710
+ "f4": 1708,
1711
+ "f5": 1709,
1712
+ "f6": 1710,
1713
+ "f7": 1711,
1714
+ "f8": 1712,
1715
+ "g1": 1713,
1716
+ "g2": 1714,
1717
+ "g3": 1715,
1718
+ "g4": 1716,
1719
+ "g5": 1717,
1720
+ "g6": 1718,
1721
+ "g7": 1719,
1722
+ "g8": 1720,
1723
+ "h1": 1721,
1724
+ "h2": 1722,
1725
+ "h3": 1723,
1726
+ "h4": 1724,
1727
+ "h5": 1725,
1728
+ "h6": 1726,
1729
+ "h7": 1727,
1730
+ "h8": 1728
1731
+ }