@ -0,0 +1,19 @@ | |||
# | |||
# Student makefile for Cache Lab | |||
# Note: requires a 64-bit x86-64 system | |||
# | |||
CC = gcc | |||
CFLAGS = -g -Wall -Werror -std=c99 -m64 | |||
all: csim | |||
csim: csim.c cachelab.c cachelab.h | |||
$(CC) $(CFLAGS) -o csim csim.c cachelab.c -lm | |||
# | |||
# Clean the src dirctory | |||
# | |||
clean: | |||
rm -rf *.o | |||
rm -f *.tar | |||
rm -f csim |
@ -0,0 +1,27 @@ | |||
This is the handout directory for the CS:APP Cache Lab. | |||
************************ | |||
Running the autograders: | |||
************************ | |||
Before running the autograders, compile your code: | |||
linux> make | |||
Check the correctness of your simulator: | |||
linux> ./test-csim | |||
****** | |||
Files: | |||
****** | |||
# You will modifying and handing in the file | |||
csim.c Your cache simulator | |||
# Tools for evaluating your simulator and transpose function | |||
Makefile Builds the simulator and tools | |||
README This file | |||
cachelab.c Required helper functions | |||
cachelab.h Required header file | |||
csim-ref* The executable reference cache simulator | |||
test-csim* Tests your cache simulator | |||
traces/ Trace files used by test-csim.c |
@ -0,0 +1,83 @@ | |||
/* | |||
* cachelab.c - Cache Lab helper functions | |||
*/ | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
#include <assert.h> | |||
#include "cachelab.h" | |||
#include <time.h> | |||
trans_func_t func_list[MAX_TRANS_FUNCS]; | |||
int func_counter = 0; | |||
/* | |||
* printSummary - Summarize the cache simulation statistics. Student cache simulators | |||
* must call this function in order to be properly autograded. | |||
*/ | |||
void printSummary(int hits, int misses, int evictions) | |||
{ | |||
printf("hits:%d misses:%d evictions:%d\n", hits, misses, evictions); | |||
FILE* output_fp = fopen(".csim_results", "w"); | |||
assert(output_fp); | |||
fprintf(output_fp, "%d %d %d\n", hits, misses, evictions); | |||
fclose(output_fp); | |||
} | |||
/* | |||
* initMatrix - Initialize the given matrix | |||
*/ | |||
void initMatrix(int M, int N, int A[N][M], int B[M][N]) | |||
{ | |||
int i, j; | |||
srand(time(NULL)); | |||
for (i = 0; i < N; i++){ | |||
for (j = 0; j < M; j++){ | |||
// A[i][j] = i+j; /* The matrix created this way is symmetric */ | |||
A[i][j]=rand(); | |||
B[j][i]=rand(); | |||
} | |||
} | |||
} | |||
void randMatrix(int M, int N, int A[N][M]) { | |||
int i, j; | |||
srand(time(NULL)); | |||
for (i = 0; i < N; i++){ | |||
for (j = 0; j < M; j++){ | |||
// A[i][j] = i+j; /* The matrix created this way is symmetric */ | |||
A[i][j]=rand(); | |||
} | |||
} | |||
} | |||
/* | |||
* correctTrans - baseline transpose function used to evaluate correctness | |||
*/ | |||
void correctTrans(int M, int N, int A[N][M], int B[M][N]) | |||
{ | |||
int i, j, tmp; | |||
for (i = 0; i < N; i++){ | |||
for (j = 0; j < M; j++){ | |||
tmp = A[i][j]; | |||
B[j][i] = tmp; | |||
} | |||
} | |||
} | |||
/* | |||
* registerTransFunction - Add the given trans function into your list | |||
* of functions to be tested | |||
*/ | |||
void registerTransFunction(void (*trans)(int M, int N, int[N][M], int[M][N]), | |||
char* desc) | |||
{ | |||
func_list[func_counter].func_ptr = trans; | |||
func_list[func_counter].description = desc; | |||
func_list[func_counter].correct = 0; | |||
func_list[func_counter].num_hits = 0; | |||
func_list[func_counter].num_misses = 0; | |||
func_list[func_counter].num_evictions =0; | |||
func_counter++; | |||
} |
@ -0,0 +1,37 @@ | |||
/* | |||
* cachelab.h - Prototypes for Cache Lab helper functions | |||
*/ | |||
#ifndef CACHELAB_TOOLS_H | |||
#define CACHELAB_TOOLS_H | |||
#define MAX_TRANS_FUNCS 100 | |||
typedef struct trans_func{ | |||
void (*func_ptr)(int M,int N,int[N][M],int[M][N]); | |||
char* description; | |||
char correct; | |||
unsigned int num_hits; | |||
unsigned int num_misses; | |||
unsigned int num_evictions; | |||
} trans_func_t; | |||
/* | |||
* printSummary - This function provides a standard way for your cache | |||
* simulator * to display its final hit and miss statistics | |||
*/ | |||
void printSummary(int hits, /* number of hits */ | |||
int misses, /* number of misses */ | |||
int evictions); /* number of evictions */ | |||
/* Fill the matrix with data */ | |||
void initMatrix(int M, int N, int A[N][M], int B[M][N]); | |||
/* The baseline trans function that produces correct results. */ | |||
void correctTrans(int M, int N, int A[N][M], int B[M][N]); | |||
/* Add the given function to the function list */ | |||
void registerTransFunction( | |||
void (*trans)(int M,int N,int[N][M],int[M][N]), char* desc); | |||
#endif /* CACHELAB_TOOLS_H */ |
@ -0,0 +1,7 @@ | |||
#include "cachelab.h" | |||
int main() | |||
{ | |||
printSummary(0, 0, 0); | |||
return 0; | |||
} |
@ -0,0 +1,5 @@ | |||
L 10,4 | |||
S 18,4 | |||
L 20,4 | |||
S 28,4 | |||
S 50,4 |
@ -0,0 +1,596 @@ | |||
S 00600aa0,1 | |||
I 004005b6,5 | |||
I 004005bb,5 | |||
I 004005c0,5 | |||
S 7ff000398,8 | |||
I 0040051e,1 | |||
S 7ff000390,8 | |||
I 0040051f,3 | |||
I 00400522,4 | |||
S 7ff000378,8 | |||
I 00400526,4 | |||
S 7ff000370,8 | |||
I 0040052a,7 | |||
S 7ff000384,4 | |||
I 00400531,2 | |||
I 00400581,4 | |||
L 7ff000384,4 | |||
I 00400585,2 | |||
I 00400533,7 | |||
S 7ff000388,4 | |||
I 0040053a,2 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a20,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a60,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a24,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a70,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a28,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a80,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a2c,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a90,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040057d,4 | |||
M 7ff000384,4 | |||
I 00400581,4 | |||
L 7ff000384,4 | |||
I 00400585,2 | |||
I 00400533,7 | |||
S 7ff000388,4 | |||
I 0040053a,2 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a30,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a64,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a34,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a74,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a38,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a84,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a3c,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a94,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040057d,4 | |||
M 7ff000384,4 | |||
I 00400581,4 | |||
L 7ff000384,4 | |||
I 00400585,2 | |||
I 00400533,7 | |||
S 7ff000388,4 | |||
I 0040053a,2 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a40,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a68,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a44,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a78,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a48,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a88,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a4c,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a98,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040057d,4 | |||
M 7ff000384,4 | |||
I 00400581,4 | |||
L 7ff000384,4 | |||
I 00400585,2 | |||
I 00400533,7 | |||
S 7ff000388,4 | |||
I 0040053a,2 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a50,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a6c,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a54,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a7c,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a58,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a8c,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040053c,3 | |||
L 7ff000384,4 | |||
I 0040053f,2 | |||
I 00400541,4 | |||
I 00400545,3 | |||
I 00400548,4 | |||
L 7ff000378,8 | |||
I 0040054c,3 | |||
L 7ff000388,4 | |||
I 0040054f,2 | |||
I 00400551,3 | |||
L 00600a5c,4 | |||
I 00400554,3 | |||
S 7ff00038c,4 | |||
I 00400557,3 | |||
L 7ff000388,4 | |||
I 0040055a,2 | |||
I 0040055c,4 | |||
I 00400560,3 | |||
I 00400563,4 | |||
L 7ff000370,8 | |||
I 00400567,3 | |||
L 7ff000384,4 | |||
I 0040056a,3 | |||
I 0040056d,3 | |||
L 7ff00038c,4 | |||
I 00400570,3 | |||
S 00600a9c,4 | |||
I 00400573,4 | |||
M 7ff000388,4 | |||
I 00400577,4 | |||
L 7ff000388,4 | |||
I 0040057b,2 | |||
I 0040057d,4 | |||
M 7ff000384,4 | |||
I 00400581,4 | |||
L 7ff000384,4 | |||
I 00400585,2 | |||
I 00400587,1 | |||
L 7ff000390,8 | |||
I 00400588,1 | |||
L 7ff000398,8 | |||
I 004005c5,7 | |||
L 00600aa0,1 |
@ -0,0 +1,7 @@ | |||
L 10,1 | |||
M 20,1 | |||
L 22,1 | |||
S 18,1 | |||
L 110,1 | |||
L 210,1 | |||
M 12,1 |
@ -0,0 +1,16 @@ | |||
L 0,1 | |||
L 1,1 | |||
L 2,1 | |||
L 3,1 | |||
S 4,1 | |||
L 5,1 | |||
S 6,1 | |||
L 7,1 | |||
S 8,1 | |||
L 9,1 | |||
S a,1 | |||
L b,1 | |||
S c,1 | |||
L d,1 | |||
S e,1 | |||
M f,1 |