From 1f1405391c51eaf44b3e93bfe4c18c8a3c80fb51 Mon Sep 17 00:00:00 2001 From: JGZ_YES Date: Thu, 23 Jul 2026 13:21:11 +0800 Subject: [PATCH] Initial commit: Oraset B-5 with C++ style features --- Makefile | 26 + bin/oraset.exe | Bin 0 -> 101547 bytes bin/oraset_new.exe | Bin 0 -> 110619 bytes src/main.c | 2425 +++++++++++++++++ test.ora | 64 + test2.ora | 43 + test_func.ora | 6 + website/.DS_Store | Bin 0 -> 8196 bytes website/css/style.css | 174 ++ website/docs/api.php | 48 + website/docs/index.php | 377 +++ website/docs/md/getting-started.md | 99 + website/docs/md/language.md | 212 ++ website/docs/md/snake.md | 133 + website/docs/md/tutorial.md | 220 ++ website/download.php | 115 + website/download/.DS_Store | Bin 0 -> 10244 bytes website/download/adn/hello-world.orp | 35 + website/download/deb/.DS_Store | Bin 0 -> 6148 bytes website/download/deb/Oraset-Re+4.0.0-Beta.deb | Bin 0 -> 7986 bytes .../download/deb/Oraset-Re+4.0.0-Release.deb | Bin 0 -> 8584 bytes ...raset-Re+4.0.1-Beta(..26_.6_12)-source.deb | Bin 0 -> 11100 bytes .../deb/Oraset-Re+4.0.1-BetaN(+AU).deb | Bin 0 -> 12882 bytes website/download/exe/.DS_Store | Bin 0 -> 6148 bytes website/download/exe/Oraset-Re+4.0.0-Beta.exe | Bin 0 -> 98363 bytes .../download/exe/Oraset-Re+4.0.0-Release.exe | Bin 0 -> 97993 bytes .../exe/Oraset-Re+4.0.1-Beta(..26_.6_12).exe | Bin 0 -> 108072 bytes .../exe/Oraset-Re+4.0.1-BetaN(+AU).exe | Bin 0 -> 97993 bytes website/download/pkg/.DS_Store | Bin 0 -> 6148 bytes website/download/pkg/Oraset-Re+4.0.0-Beta.pkg | Bin 0 -> 9099 bytes .../download/pkg/Oraset-Re+4.0.0-Release.pkg | Bin 0 -> 10986 bytes .../pkg/Oraset-Re+4.0.1-Beta(..26_.6_12).pkg | Bin 0 -> 14385 bytes .../pkg/Oraset-Re+4.0.1-BetaN(+AU).pkg | Bin 0 -> 15427 bytes .../Oraset-Re+4.0.1-Release(adn+1.0.0).pkg | Bin 0 -> 35605 bytes ...aset-Re+4.0.1-Release(adn+1.0.100+fix).pkg | Bin 0 -> 30209 bytes website/download/sh/install-linux.sh | 105 + website/download/sh/install.sh | 115 + website/download/source/.DS_Store | Bin 0 -> 8196 bytes ...0.1-Release(adn+1.0.100+fix)-source.tar.gz | Bin 0 -> 20545 bytes .../source/Oraset-Re+4.0.0-Beta-source.tar.gz | Bin 0 -> 3666 bytes .../Oraset-Re+4.0.0-Release-source.tar.gz | Bin 0 -> 4635 bytes ...et-Re+4.0.1-Beta(..26_.6_12)-source.tar.gz | Bin 0 -> 5657 bytes .../Oraset-Re+4.0.1-BetaN(+AU)-source.tar.gz | Bin 0 -> 8065 bytes .../.DS_Store | Bin 0 -> 6148 bytes .../Makefile | 25 + .../src/main.c | 1214 +++++++++ website/download/version.txt | 1 + website/inc/std.oinc | 157 ++ website/index.php | 97 + website/releases.php | 256 ++ 50 files changed, 5947 insertions(+) create mode 100644 Makefile create mode 100644 bin/oraset.exe create mode 100644 bin/oraset_new.exe create mode 100644 src/main.c create mode 100644 test.ora create mode 100644 test2.ora create mode 100644 test_func.ora create mode 100644 website/.DS_Store create mode 100644 website/css/style.css create mode 100644 website/docs/api.php create mode 100644 website/docs/index.php create mode 100644 website/docs/md/getting-started.md create mode 100644 website/docs/md/language.md create mode 100644 website/docs/md/snake.md create mode 100644 website/docs/md/tutorial.md create mode 100644 website/download.php create mode 100644 website/download/.DS_Store create mode 100644 website/download/adn/hello-world.orp create mode 100644 website/download/deb/.DS_Store create mode 100644 website/download/deb/Oraset-Re+4.0.0-Beta.deb create mode 100644 website/download/deb/Oraset-Re+4.0.0-Release.deb create mode 100644 website/download/deb/Oraset-Re+4.0.1-Beta(..26_.6_12)-source.deb create mode 100644 website/download/deb/Oraset-Re+4.0.1-BetaN(+AU).deb create mode 100644 website/download/exe/.DS_Store create mode 100644 website/download/exe/Oraset-Re+4.0.0-Beta.exe create mode 100644 website/download/exe/Oraset-Re+4.0.0-Release.exe create mode 100644 website/download/exe/Oraset-Re+4.0.1-Beta(..26_.6_12).exe create mode 100644 website/download/exe/Oraset-Re+4.0.1-BetaN(+AU).exe create mode 100644 website/download/pkg/.DS_Store create mode 100644 website/download/pkg/Oraset-Re+4.0.0-Beta.pkg create mode 100644 website/download/pkg/Oraset-Re+4.0.0-Release.pkg create mode 100644 website/download/pkg/Oraset-Re+4.0.1-Beta(..26_.6_12).pkg create mode 100644 website/download/pkg/Oraset-Re+4.0.1-BetaN(+AU).pkg create mode 100644 website/download/pkg/Oraset-Re+4.0.1-Release(adn+1.0.0).pkg create mode 100644 website/download/pkg/Oraset-Re+4.0.1-Release(adn+1.0.100+fix).pkg create mode 100644 website/download/sh/install-linux.sh create mode 100644 website/download/sh/install.sh create mode 100644 website/download/source/.DS_Store create mode 100644 website/download/source/Oraset-Re+1.0.1-Release(adn+1.0.100+fix)-source.tar.gz create mode 100644 website/download/source/Oraset-Re+4.0.0-Beta-source.tar.gz create mode 100644 website/download/source/Oraset-Re+4.0.0-Release-source.tar.gz create mode 100644 website/download/source/Oraset-Re+4.0.1-Beta(..26_.6_12)-source.tar.gz create mode 100644 website/download/source/Oraset-Re+4.0.1-BetaN(+AU)-source.tar.gz create mode 100644 website/download/source/Oraset-Re+4.0.1-BetaN(+AU)-source/.DS_Store create mode 100644 website/download/source/Oraset-Re+4.0.1-BetaN(+AU)-source/Makefile create mode 100644 website/download/source/Oraset-Re+4.0.1-BetaN(+AU)-source/src/main.c create mode 100644 website/download/version.txt create mode 100644 website/inc/std.oinc create mode 100644 website/index.php create mode 100644 website/releases.php diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8558a60 --- /dev/null +++ b/Makefile @@ -0,0 +1,26 @@ +CC = gcc +CFLAGS = -Wall -Wextra -O2 -std=c11 +BINDIR = bin + +TARGET = $(BINDIR)/oraset + +SRCS = src/main.c + +all: $(TARGET) + +$(TARGET): $(SRCS) + @mkdir -p $(BINDIR) + $(CC) $(CFLAGS) -o $(TARGET) $(SRCS) + +clean: + rm -f $(TARGET) + rm -rf $(BINDIR) + +pkg: all + rm -rf pkg-root + mkdir -p pkg-root/usr/local/bin + cp bin/oraset pkg-root/usr/local/bin/oraset + chmod +x pkg-root/usr/local/bin/oraset + pkgbuild --root pkg-root --identifier com.oraset.lang --version B-5 --install-location / Oraset-B5.pkg + +.PHONY: all clean pkg \ No newline at end of file diff --git a/bin/oraset.exe b/bin/oraset.exe new file mode 100644 index 0000000000000000000000000000000000000000..5cbcade058b31f71851eb3c15c8ae3775ae6aa79 GIT binary patch literal 101547 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

@d%~&vc|VKAZb1s&d+ax*IjFzUxHbdMFo^%o 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 literal 0 HcmV?d00001 diff --git a/bin/oraset_new.exe b/bin/oraset_new.exe new file mode 100644 index 0000000000000000000000000000000000000000..1c95557edda11852f970283dada303df9b764163 GIT binary patch literal 110619 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
;Eh5Hy4s_BBpA4oEtmS1l%| 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 +#include +#include +#include +#include +#include +#include + +#ifdef _WIN32 + #include + #include + #define OS_WINDOWS 1 +#else + #include + #include + #include + #define OS_WINDOWS 0 +#endif + +#define VERSION "B-5" +#define MAX_TOKENS 8192 +#define MAX_VARS 512 +#define MAX_LINE 8192 +#define MAX_STRING 2048 +#define MAX_ARRAY_SIZE 1024 + +typedef enum { + TOKEN_EOF, + TOKEN_IDENTIFIER, + TOKEN_STRING, + TOKEN_NUMBER, + TOKEN_PRINT, + TOKEN_VAR, + TOKEN_IF, + TOKEN_WHILE, + TOKEN_FOR, + TOKEN_FUNCTION, + TOKEN_RETURN, + TOKEN_ELSE, + TOKEN_LPAREN, + TOKEN_RPAREN, + TOKEN_LBRACE, + TOKEN_RBRACE, + TOKEN_LBRACKET, + TOKEN_RBRACKET, + TOKEN_COMMA, + TOKEN_SEMICOLON, + TOKEN_ASSIGN, + TOKEN_PLUS, + TOKEN_MINUS, + TOKEN_MULTIPLY, + TOKEN_DIVIDE, + TOKEN_EQUAL, + TOKEN_NOT_EQUAL, + TOKEN_GREATER, + TOKEN_LESS, + TOKEN_AND, + TOKEN_OR, + TOKEN_NOT, + TOKEN_GREATER_EQUAL, + TOKEN_LESS_EQUAL, + TOKEN_MODULO, + TOKEN_PLUS_ASSIGN, + TOKEN_MINUS_ASSIGN, + TOKEN_MULTIPLY_ASSIGN, + TOKEN_DIVIDE_ASSIGN, + TOKEN_MODULO_ASSIGN, + TOKEN_INCREMENT, + TOKEN_DECREMENT, + TOKEN_COLON, + TOKEN_DOT, + TOKEN_ARROW, + TOKEN_SWITCH, + TOKEN_CASE, + TOKEN_DEFAULT, + TOKEN_BREAK, + TOKEN_CONTINUE, + TOKEN_DO, + TOKEN_STRUCT, + TOKEN_TYPEDEF, + TOKEN_ENUM, + TOKEN_GOTO, + TOKEN_BIT_AND, + TOKEN_BIT_OR, + TOKEN_BIT_XOR, + TOKEN_BIT_NOT, + TOKEN_SHIFT_LEFT, + TOKEN_SHIFT_RIGHT, + TOKEN_NEW, + TOKEN_DELETE, + TOKEN_TRY, + TOKEN_CATCH, + TOKEN_THROW, + TOKEN_ASTERISK, + TOKEN_LABEL +} OraTokenType; + +typedef struct { + OraTokenType type; + char value[MAX_STRING]; + int line; +} Token; + +typedef enum { + VAL_NUMBER, + VAL_STRING, + VAL_ARRAY, + VAL_STRUCT, + VAL_ENUM, + VAL_POINTER +} ValueType; + +typedef struct { + ValueType type; + double num_value; + char str_value[MAX_STRING]; + double arr_value[MAX_ARRAY_SIZE]; + int arr_size; + int struct_type; + int pointer_target; +} Value; + +typedef struct { + char name[64]; + Value value; +} Variable; + +typedef struct { + char name[64]; + int param_count; + char params[8][64]; + int body_start; + int body_end; +} Function; + +typedef struct { + char name[64]; + char fields[16][64]; + int field_count; +} StructType; + +typedef struct { + char name[64]; + char values[16][64]; + int value_count; +} EnumType; + +typedef struct { + char name[64]; + int token_index; +} Label; + +Token tokens[MAX_TOKENS]; +int token_count = 0; +int current_token = 0; +Variable vars[MAX_VARS]; +int var_count = 0; +Function funcs[MAX_VARS]; +int func_count = 0; +StructType structs[MAX_VARS]; +int struct_count = 0; +EnumType enums[MAX_VARS]; +int enum_count = 0; +Label labels[MAX_VARS]; +int label_count = 0; +int print_newline = 1; +int current_line = 1; +int in_for_loop_update = 0; +int in_repl = 0; +int loop_depth = 0; +int switch_active = 0; + +int match(OraTokenType type); +Value* find_variable(const char* name); + +static const struct { + const char* name; + OraTokenType type; +} keywords[] = { + {"echo", TOKEN_PRINT}, + {"let", TOKEN_VAR}, + {"if", TOKEN_IF}, + {"else", TOKEN_ELSE}, + {"while", TOKEN_WHILE}, + {"for", TOKEN_FOR}, + {"proc", TOKEN_FUNCTION}, + {"return", TOKEN_RETURN}, + {"switch", TOKEN_SWITCH}, + {"case", TOKEN_CASE}, + {"default", TOKEN_DEFAULT}, + {"break", TOKEN_BREAK}, + {"continue", TOKEN_CONTINUE}, + {"do", TOKEN_DO}, + {"struct", TOKEN_STRUCT}, + {"typedef", TOKEN_TYPEDEF}, + {"enum", TOKEN_ENUM}, + {"goto", TOKEN_GOTO}, + {"new", TOKEN_NEW}, + {"delete", TOKEN_DELETE}, + {"try", TOKEN_TRY}, + {"catch", TOKEN_CATCH}, + {"throw", TOKEN_THROW}, + {NULL, TOKEN_EOF} +}; + +void error(const char* msg, ...) { + va_list args; + va_start(args, msg); + fprintf(stderr, "[Error at line %d] ", current_line); + vfprintf(stderr, msg, args); + fprintf(stderr, "\n"); + va_end(args); + if (in_repl) return; + exit(1); +} + +static const char* get_string_value() { + if (match(TOKEN_STRING)) { + return tokens[current_token - 1].value; + } else if (match(TOKEN_IDENTIFIER)) { + const char* name = tokens[current_token - 1].value; + Value* v = find_variable(name); + if (!v || v->type != VAL_STRING) { + error("Expected string variable: %s", name); + } + return v->str_value; + } + error("Expected string"); + return ""; +} + +static void skip_whitespace_and_comments(const char** p) { + while (**p) { + if (**p == ' ' || **p == '\t' || **p == '\r') { + (*p)++; + } else if (**p == '\n') { + (*p)++; + current_line++; + } else if (**p == '#' || (**p == '/' && *(*p+1) == '/')) { + while (**p && **p != '\n') (*p)++; + } else if (**p == '/' && *(*p+1) == '*') { + (*p) += 2; + while (**p && !(*(*p) == '*' && *(*p+1) == '/')) { + if (**p == '\n') current_line++; + (*p)++; + } + if (**p) (*p) += 2; + } else { + break; + } + } +} + +static void add_token(OraTokenType type, const char* value) { + if (token_count >= MAX_TOKENS) { + error("Too many tokens (max %d)", MAX_TOKENS); + } + tokens[token_count].type = type; + strncpy(tokens[token_count].value, value, MAX_STRING - 1); + tokens[token_count].value[MAX_STRING - 1] = '\0'; + tokens[token_count].line = current_line; + token_count++; +} + +void tokenize(const char* source) { + token_count = 0; + current_line = 1; + const char* p = source; + + while (1) { + skip_whitespace_and_comments(&p); + if (!*p) break; + + if (*p == '"') { + p++; + char buf[MAX_STRING]; + int i = 0; + while (*p && *p != '"' && i < MAX_STRING - 1) { + if (*p == '\\' && *(p+1)) { + p++; + switch (*p) { + case 'n': buf[i++] = '\n'; break; + case 't': buf[i++] = '\t'; break; + case 'r': buf[i++] = '\r'; break; + case '\\': buf[i++] = '\\'; break; + case '"': buf[i++] = '"'; break; + case '0': buf[i++] = '\0'; break; + default: buf[i++] = *p; break; + } + } else { + buf[i++] = *p; + } + p++; + } + buf[i] = '\0'; + if (*p != '"') error("Unterminated string literal"); + p++; + add_token(TOKEN_STRING, buf); + continue; + } + + if (*p == '\'') { + p++; + char buf[MAX_STRING]; + int i = 0; + while (*p && *p != '\'' && i < MAX_STRING - 1) { + if (*p == '\\' && *(p+1)) { + p++; + switch (*p) { + case 'n': buf[i++] = '\n'; break; + case 't': buf[i++] = '\t'; break; + case 'r': buf[i++] = '\r'; break; + case '\\': buf[i++] = '\\'; break; + case '\'': buf[i++] = '\''; break; + default: buf[i++] = *p; break; + } + } else { + buf[i++] = *p; + } + p++; + } + buf[i] = '\0'; + if (*p != '\'') error("Unterminated string literal"); + p++; + add_token(TOKEN_STRING, buf); + continue; + } + + if (isdigit(*p) || (*p == '.' && isdigit(*(p+1)))) { + char buf[64]; + int i = 0; + int dot_count = 0; + while ((isdigit(*p) || (*p == '.' && dot_count < 1)) && i < 63) { + if (*p == '.') dot_count++; + buf[i++] = *p++; + } + buf[i] = '\0'; + add_token(TOKEN_NUMBER, buf); + continue; + } + + if (isalpha(*p) || *p == '_') { + char buf[64]; + int i = 0; + while ((isalnum(*p) || *p == '_') && i < 63) { + buf[i++] = *p++; + } + buf[i] = '\0'; + + int j; + for (j = 0; keywords[j].name; j++) { + if (strcmp(buf, keywords[j].name) == 0) { + add_token(keywords[j].type, buf); + break; + } + } + if (!keywords[j].name) { + if (*p == ':') { + strncpy(labels[label_count].name, buf, 63); + labels[label_count].token_index = token_count + 1; + label_count++; + add_token(TOKEN_LABEL, buf); + p++; + } else { + add_token(TOKEN_IDENTIFIER, buf); + } + } + continue; + } + + if (*p == '=' && *(p+1) == '=') { add_token(TOKEN_EQUAL, "=="); p += 2; continue; } + if (*p == '!' && *(p+1) == '=') { add_token(TOKEN_NOT_EQUAL, "!="); p += 2; continue; } + if (*p == '&' && *(p+1) == '&') { add_token(TOKEN_AND, "&&"); p += 2; continue; } + if (*p == '|' && *(p+1) == '|') { add_token(TOKEN_OR, "||"); p += 2; continue; } + if (*p == '>' && *(p+1) == '=') { add_token(TOKEN_GREATER_EQUAL, ">="); p += 2; continue; } + if (*p == '<' && *(p+1) == '=') { add_token(TOKEN_LESS_EQUAL, "<="); p += 2; continue; } + if (*p == '+' && *(p+1) == '=') { add_token(TOKEN_PLUS_ASSIGN, "+="); p += 2; continue; } + if (*p == '-' && *(p+1) == '=') { add_token(TOKEN_MINUS_ASSIGN, "-="); p += 2; continue; } + if (*p == '*' && *(p+1) == '=') { add_token(TOKEN_MULTIPLY_ASSIGN, "*="); p += 2; continue; } + if (*p == '/' && *(p+1) == '=') { add_token(TOKEN_DIVIDE_ASSIGN, "/="); p += 2; continue; } + if (*p == '%' && *(p+1) == '=') { add_token(TOKEN_MODULO_ASSIGN, "%="); p += 2; continue; } + if (*p == '+' && *(p+1) == '+') { add_token(TOKEN_INCREMENT, "++"); p += 2; continue; } + if (*p == '-' && *(p+1) == '-') { add_token(TOKEN_DECREMENT, "--"); p += 2; continue; } + if (*p == '-' && *(p+1) == '>') { add_token(TOKEN_ARROW, "->"); p += 2; continue; } + if (*p == '<' && *(p+1) == '<') { add_token(TOKEN_SHIFT_LEFT, "<<"); p += 2; continue; } + if (*p == '>' && *(p+1) == '>') { add_token(TOKEN_SHIFT_RIGHT, ">>"); p += 2; continue; } + + switch (*p) { + case '&': add_token(TOKEN_BIT_AND, "&"); break; + case '|': add_token(TOKEN_BIT_OR, "|"); break; + case '^': add_token(TOKEN_BIT_XOR, "^"); break; + case '~': add_token(TOKEN_BIT_NOT, "~"); break; + case '(': add_token(TOKEN_LPAREN, "("); break; + case ')': add_token(TOKEN_RPAREN, ")"); break; + case '{': add_token(TOKEN_LBRACE, "{"); break; + case '}': add_token(TOKEN_RBRACE, "}"); break; + case '[': add_token(TOKEN_LBRACKET, "["); break; + case ']': add_token(TOKEN_RBRACKET, "]"); break; + case ',': add_token(TOKEN_COMMA, ","); break; + case ';': add_token(TOKEN_SEMICOLON, ";"); break; + case '=': add_token(TOKEN_ASSIGN, "="); break; + case '>': add_token(TOKEN_GREATER, ">"); break; + case '<': add_token(TOKEN_LESS, "<"); break; + case '+': add_token(TOKEN_PLUS, "+"); break; + case '-': add_token(TOKEN_MINUS, "-"); break; + case '*': add_token(TOKEN_MULTIPLY, "*"); break; + case '/': add_token(TOKEN_DIVIDE, "/"); break; + case '%': add_token(TOKEN_MODULO, "%"); break; + case '!': add_token(TOKEN_NOT, "!"); break; + case ':': add_token(TOKEN_COLON, ":"); break; + case '.': add_token(TOKEN_DOT, "."); break; + default: error("Unknown character: '%c'", *p); + } + p++; + } + + add_token(TOKEN_EOF, ""); +} + +Token peek() { return tokens[current_token]; } +Token advance() { return tokens[current_token++]; } + +int match(OraTokenType type) { + if (peek().type == type) { + if (tokens[current_token].line > 0) { + current_line = tokens[current_token].line; + } + advance(); + return 1; + } + return 0; +} + +void consume(OraTokenType type, const char* msg) { + if (!match(type)) { + error("%s (got '%s')", msg, peek().value); + } +} + +double evaluate(); +int execute_statement(); +int update_oraset(const char* target_version); + +Value* find_variable(const char* name) { + for (int i = var_count - 1; i >= 0; i--) { + if (strcmp(vars[i].name, name) == 0) { + return &vars[i].value; + } + } + return NULL; +} + +int find_function(const char* name) { + for (int i = func_count - 1; i >= 0; i--) { + if (strcmp(funcs[i].name, name) == 0) { + return i; + } + } + return -1; +} + +int find_struct(const char* name) { + for (int i = struct_count - 1; i >= 0; i--) { + if (strcmp(structs[i].name, name) == 0) { + return i; + } + } + return -1; +} + +int find_enum(const char* name) { + for (int i = enum_count - 1; i >= 0; i--) { + if (strcmp(enums[i].name, name) == 0) { + return i; + } + } + return -1; +} + +int find_label(const char* name) { + for (int i = label_count - 1; i >= 0; i--) { + if (strcmp(labels[i].name, name) == 0) { + return i; + } + } + return -1; +} + +double parse_array_access(Value* arr, int index) { + if (arr->type != VAL_ARRAY) { + error("Cannot index non-array value"); + } + if (index < 0 || index >= arr->arr_size) { + error("Array index out of bounds: %d", index); + } + return arr->arr_value[index]; +} + +double parse_primary(); + +double parse_call(const char* func_name) { + consume(TOKEN_LPAREN, "Expected '(' after function name"); + + if (strcmp(func_name, "abs") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return fabs(val); + } else if (strcmp(func_name, "sqrt") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return sqrt(val); + } else if (strcmp(func_name, "sin") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return sin(val); + } else if (strcmp(func_name, "cos") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return cos(val); + } else if (strcmp(func_name, "tan") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return tan(val); + } else if (strcmp(func_name, "random") == 0) { + if (match(TOKEN_RPAREN)) { + return (double)rand() / RAND_MAX; + } + double max = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return fmod((double)rand(), max); + } else if (strcmp(func_name, "size") == 0) { + if (match(TOKEN_STRING)) { + const char* str = tokens[current_token - 1].value; + consume(TOKEN_RPAREN, "Expected ')'"); + return strlen(str); + } + error("Expected string argument for size()"); + } else if (strcmp(func_name, "to_num") == 0) { + if (match(TOKEN_STRING)) { + const char* str = tokens[current_token - 1].value; + consume(TOKEN_RPAREN, "Expected ')'"); + return atof(str); + } + error("Expected string argument for to_num()"); + } else if (strcmp(func_name, "to_str") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + char buf[MAX_STRING]; + sprintf(buf, "%g", val); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].value.str_value, buf, MAX_STRING - 1); + vars[i].value.str_value[MAX_STRING - 1] = '\0'; + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].value.str_value, buf, MAX_STRING - 1); + vars[var_count].value.str_value[MAX_STRING - 1] = '\0'; + vars[var_count].value.type = VAL_STRING; + var_count++; + return 0; + } else if (strcmp(func_name, "input") == 0) { + const char* prompt = ""; + if (match(TOKEN_STRING)) { + prompt = tokens[current_token - 1].value; + } + consume(TOKEN_RPAREN, "Expected ')'"); + + printf("%s", prompt); + fflush(stdout); + + char input[MAX_STRING]; + if (fgets(input, MAX_STRING, stdin) == NULL) { + error("Failed to read input"); + } + + input[strcspn(input, "\n")] = '\0'; + + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__input_result") == 0) { + strncpy(vars[i].value.str_value, input, MAX_STRING - 1); + vars[i].value.str_value[MAX_STRING - 1] = '\0'; + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__input_result", 63); + strncpy(vars[var_count].value.str_value, input, MAX_STRING - 1); + vars[var_count].value.str_value[MAX_STRING - 1] = '\0'; + vars[var_count].value.type = VAL_STRING; + var_count++; + return 0; + } else if (strcmp(func_name, "int") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return (int)val; + } else if (strcmp(func_name, "float") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return val; + } else if (strcmp(func_name, "floor") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return floor(val); + } else if (strcmp(func_name, "ceil") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return ceil(val); + } else if (strcmp(func_name, "round") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return round(val); + } else if (strcmp(func_name, "pow") == 0) { + double base = evaluate(); + consume(TOKEN_COMMA, "Expected ','"); + double exp = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return pow(base, exp); + } else if (strcmp(func_name, "log") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return log(val); + } else if (strcmp(func_name, "time") == 0) { + consume(TOKEN_RPAREN, "Expected ')'"); + return (double)time(NULL); + } else if (strcmp(func_name, "array") == 0) { + int size = (int)evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_arr_result") == 0) { + vars[i].value.type = VAL_ARRAY; + vars[i].value.arr_size = size; + for (int j = 0; j < size; j++) { + vars[i].value.arr_value[j] = 0; + } + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_arr_result", 63); + vars[var_count].value.type = VAL_ARRAY; + vars[var_count].value.arr_size = size; + for (int j = 0; j < size; j++) { + vars[var_count].value.arr_value[j] = 0; + } + var_count++; + return 0; + } else if (strcmp(func_name, "arrlen") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + Value* v = find_variable(name); + if (!v || v->type != VAL_ARRAY) { + error("'%s' is not an array", name); + } + consume(TOKEN_RPAREN, "Expected ')'"); + return v->arr_size; + } else if (strcmp(func_name, "exit") == 0) { + int code = (int)evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + exit(code); + } else if (strcmp(func_name, "assert") == 0) { + double cond = evaluate(); + consume(TOKEN_COMMA, "Expected ','"); + if (match(TOKEN_STRING)) { + const char* msg = tokens[current_token - 1].value; + consume(TOKEN_RPAREN, "Expected ')'"); + if (cond == 0) { + error("Assertion failed: %s", msg); + } + } else { + consume(TOKEN_RPAREN, "Expected ')'"); + if (cond == 0) { + error("Assertion failed"); + } + } + return 1; + } else if (strcmp(func_name, "strcmp") == 0) { + const char* str1 = get_string_value(); + consume(TOKEN_COMMA, "Expected ','"); + const char* str2 = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + return strcmp(str1, str2); + } else if (strcmp(func_name, "strcpy") == 0) { + const char* src = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].value.str_value, src, MAX_STRING - 1); + vars[i].value.str_value[MAX_STRING - 1] = '\0'; + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].value.str_value, src, MAX_STRING - 1); + vars[var_count].value.str_value[MAX_STRING - 1] = '\0'; + vars[var_count].value.type = VAL_STRING; + var_count++; + return 0; + } else if (strcmp(func_name, "strcat") == 0) { + const char* str1 = get_string_value(); + consume(TOKEN_COMMA, "Expected ','"); + const char* str2 = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].value.str_value, str1, MAX_STRING - 1); + strncat(vars[i].value.str_value, str2, MAX_STRING - strlen(vars[i].value.str_value) - 1); + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].value.str_value, str1, MAX_STRING - 1); + strncat(vars[var_count].value.str_value, str2, MAX_STRING - strlen(vars[var_count].value.str_value) - 1); + vars[var_count].value.type = VAL_STRING; + var_count++; + return 0; + } else if (strcmp(func_name, "sizeof") == 0) { + consume(TOKEN_IDENTIFIER, "Expected variable name"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_RPAREN, "Expected ')'"); + Value* v = find_variable(name); + if (!v) error("Undefined variable: %s", name); + if (v->type == VAL_STRING) { + return strlen(v->str_value); + } else if (v->type == VAL_ARRAY) { + return v->arr_size; + } + return sizeof(double); + } else if (strcmp(func_name, "malloc") == 0) { + int size = (int)evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_arr_result") == 0) { + vars[i].value.type = VAL_ARRAY; + vars[i].value.arr_size = size; + for (int j = 0; j < size; j++) { + vars[i].value.arr_value[j] = 0; + } + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_arr_result", 63); + vars[var_count].value.type = VAL_ARRAY; + vars[var_count].value.arr_size = size; + for (int j = 0; j < size; j++) { + vars[var_count].value.arr_value[j] = 0; + } + var_count++; + return 0; + } else if (strcmp(func_name, "memcpy") == 0) { + consume(TOKEN_IDENTIFIER, "Expected destination array"); + const char* dest_name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + consume(TOKEN_IDENTIFIER, "Expected source array"); + const char* src_name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + int count = (int)evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + Value* dest = find_variable(dest_name); + Value* src = find_variable(src_name); + if (!dest || dest->type != VAL_ARRAY) error("Invalid destination array"); + if (!src || src->type != VAL_ARRAY) error("Invalid source array"); + for (int i = 0; i < count && i < dest->arr_size && i < src->arr_size; i++) { + dest->arr_value[i] = src->arr_value[i]; + } + return 0; + } else if (strcmp(func_name, "memcmp") == 0) { + consume(TOKEN_IDENTIFIER, "Expected first array"); + const char* name1 = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + consume(TOKEN_IDENTIFIER, "Expected second array"); + const char* name2 = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + int count = (int)evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + Value* arr1 = find_variable(name1); + Value* arr2 = find_variable(name2); + if (!arr1 || arr1->type != VAL_ARRAY) error("Invalid first array"); + if (!arr2 || arr2->type != VAL_ARRAY) error("Invalid second array"); + for (int i = 0; i < count && i < arr1->arr_size && i < arr2->arr_size; i++) { + if (arr1->arr_value[i] != arr2->arr_value[i]) { + return arr1->arr_value[i] - arr2->arr_value[i]; + } + } + return 0; + } else { + int func_idx = find_function(func_name); + if (func_idx >= 0) { + int saved_var_count = var_count; + for (int i = 0; i < funcs[func_idx].param_count; i++) { + if (i > 0) consume(TOKEN_COMMA, "Expected ','"); + strncpy(vars[var_count].name, funcs[func_idx].params[i], 63); + vars[var_count].value.num_value = evaluate(); + vars[var_count].value.type = VAL_NUMBER; + var_count++; + } + consume(TOKEN_RPAREN, "Expected ')'"); + + int saved_token = current_token; + current_token = funcs[func_idx].body_start; + while (current_token < funcs[func_idx].body_end && peek().type != TOKEN_EOF) { + if (execute_statement() == 1) break; + } + current_token = saved_token; + + double result = 0; + for (int i = var_count - 1; i >= 0; i--) { + if (strcmp(vars[i].name, "__return_value") == 0) { + result = vars[i].value.num_value; + break; + } + } + var_count = saved_var_count; + return result; + } + error("Undefined function: %s", func_name); + } + return 0; +} + +double parse_primary() { + if (match(TOKEN_NUMBER)) { + return atof(tokens[current_token - 1].value); + } + if (match(TOKEN_STRING)) { + error("Cannot use string directly in expression"); + } + if (match(TOKEN_IDENTIFIER)) { + const char* name = tokens[current_token - 1].value; + if (peek().type == TOKEN_LPAREN) { + return parse_call(name); + } + if (peek().type == TOKEN_LBRACKET) { + Value* v = find_variable(name); + if (!v) error("Undefined variable: %s", name); + advance(); + int index = (int)evaluate(); + consume(TOKEN_RBRACKET, "Expected ']'"); + return parse_array_access(v, index); + } + if (peek().type == TOKEN_DOT) { + Value* v = find_variable(name); + if (!v) error("Undefined variable: %s", name); + if (v->type != VAL_STRUCT) { + error("Cannot access field of non-struct variable"); + } + advance(); + consume(TOKEN_IDENTIFIER, "Expected field name"); + const char* field_name = tokens[current_token - 1].value; + int struct_idx = v->struct_type; + for (int i = 0; i < structs[struct_idx].field_count; i++) { + if (strcmp(structs[struct_idx].fields[i], field_name) == 0) { + return (double)i; + } + } + error("Undefined field: %s", field_name); + } + Value* v = find_variable(name); + if (!v) error("Undefined variable: %s", name); + if (v->type == VAL_STRING) { + error("Cannot use string variable in numeric expression"); + } + return v->num_value; + } + if (match(TOKEN_LPAREN)) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return val; + } + error("Expected expression (got '%s')", peek().value); + return 0; +} + +double parse_unary() { + if (match(TOKEN_NOT)) { + return parse_unary() == 0 ? 1 : 0; + } + if (match(TOKEN_MINUS)) { + return -parse_unary(); + } + if (match(TOKEN_PLUS)) { + return parse_unary(); + } + if (match(TOKEN_BIT_NOT)) { + return ~(int)parse_unary(); + } + return parse_primary(); +} + +double parse_factor() { + double left = parse_unary(); + while (match(TOKEN_MULTIPLY) || match(TOKEN_DIVIDE) || match(TOKEN_MODULO)) { + OraTokenType op = tokens[current_token - 1].type; + double right = parse_unary(); + if (op == TOKEN_MULTIPLY) left *= right; + else if (op == TOKEN_DIVIDE) { + if (right == 0) error("Division by zero"); + left /= right; + } else { + if (right == 0) error("Modulo by zero"); + left = fmod(left, right); + } + } + return left; +} + +double parse_term() { + double left = parse_factor(); + while (match(TOKEN_PLUS) || match(TOKEN_MINUS)) { + OraTokenType op = tokens[current_token - 1].type; + double right = parse_factor(); + if (op == TOKEN_PLUS) left += right; + else left -= right; + } + return left; +} + +double parse_shift() { + double left = parse_term(); + while (match(TOKEN_SHIFT_LEFT) || match(TOKEN_SHIFT_RIGHT)) { + OraTokenType op = tokens[current_token - 1].type; + double right = parse_term(); + if (op == TOKEN_SHIFT_LEFT) left = (int)left << (int)right; + else left = (int)left >> (int)right; + } + return left; +} + +double parse_bit_and() { + double left = parse_shift(); + while (match(TOKEN_BIT_AND)) { + double right = parse_shift(); + left = (int)left & (int)right; + } + return left; +} + +double parse_bit_xor() { + double left = parse_bit_and(); + while (match(TOKEN_BIT_XOR)) { + double right = parse_bit_and(); + left = (int)left ^ (int)right; + } + return left; +} + +double parse_bit_or() { + double left = parse_bit_xor(); + while (match(TOKEN_BIT_OR)) { + double right = parse_bit_xor(); + left = (int)left | (int)right; + } + return left; +} + +double parse_comparison() { + double left = parse_bit_or(); + while (1) { + if (match(TOKEN_EQUAL)) { + double right = parse_bit_or(); + left = (left == right) ? 1 : 0; + } else if (match(TOKEN_NOT_EQUAL)) { + double right = parse_bit_or(); + left = (left != right) ? 1 : 0; + } else if (match(TOKEN_GREATER)) { + double right = parse_bit_or(); + left = (left > right) ? 1 : 0; + } else if (match(TOKEN_LESS)) { + double right = parse_bit_or(); + left = (left < right) ? 1 : 0; + } else if (match(TOKEN_GREATER_EQUAL)) { + double right = parse_bit_or(); + left = (left >= right) ? 1 : 0; + } else if (match(TOKEN_LESS_EQUAL)) { + double right = parse_bit_or(); + left = (left <= right) ? 1 : 0; + } else { + break; + } + } + return left; +} + +double parse_logic_and() { + double left = parse_comparison(); + while (match(TOKEN_AND)) { + double right = parse_comparison(); + left = (left != 0 && right != 0) ? 1 : 0; + } + return left; +} + +double parse_logic_or() { + double left = parse_logic_and(); + while (match(TOKEN_OR)) { + double right = parse_logic_and(); + left = (left != 0 || right != 0) ? 1 : 0; + } + return left; +} + +double evaluate() { + return parse_logic_or(); +} + +void execute_print() { + consume(TOKEN_LPAREN, "Expected '(' after print"); + int first = 1; + int newline = print_newline; + + while (!match(TOKEN_RPAREN)) { + if (!first) consume(TOKEN_COMMA, "Expected ',' between arguments"); + + if (match(TOKEN_STRING)) { + const char* str = tokens[current_token - 1].value; + if (strcmp(str, "nel") == 0) { + newline = 0; + first = 0; + continue; + } + if (!first) printf(" "); + printf("%s", str); + } else if (match(TOKEN_NUMBER)) { + if (!first) printf(" "); + printf("%s", tokens[current_token - 1].value); + } else if (match(TOKEN_BIT_NOT) || match(TOKEN_MINUS) || match(TOKEN_PLUS) || match(TOKEN_NOT)) { + current_token--; + double val = evaluate(); + if (!first) printf(" "); + printf("%g", val); + } else if (match(TOKEN_IDENTIFIER)) { + const char* name = tokens[current_token - 1].value; + if (peek().type == TOKEN_PLUS || peek().type == TOKEN_MINUS || + peek().type == TOKEN_MULTIPLY || peek().type == TOKEN_DIVIDE || + peek().type == TOKEN_MODULO || peek().type == TOKEN_BIT_AND || + peek().type == TOKEN_BIT_OR || peek().type == TOKEN_BIT_XOR || + peek().type == TOKEN_SHIFT_LEFT || peek().type == TOKEN_SHIFT_RIGHT) { + current_token--; + double val = evaluate(); + if (!first) printf(" "); + printf("%g", val); + } else if (peek().type == TOKEN_BIT_NOT) { + current_token--; + double val = evaluate(); + if (!first) printf(" "); + printf("%g", val); + } else if (peek().type == TOKEN_LBRACKET) { + Value* v = find_variable(name); + if (!v) error("Undefined variable: %s", name); + advance(); + int index = (int)evaluate(); + consume(TOKEN_RBRACKET, "Expected ']'"); + if (!first) printf(" "); + printf("%g", parse_array_access(v, index)); + } else if (peek().type == TOKEN_LPAREN) { + int func_idx = find_function(name); + if (func_idx >= 0) { + consume(TOKEN_LPAREN, "Expected '('"); + int saved_var_count = var_count; + for (int i = 0; i < funcs[func_idx].param_count; i++) { + if (i > 0) consume(TOKEN_COMMA, "Expected ','"); + strncpy(vars[var_count].name, funcs[func_idx].params[i], 63); + vars[var_count].value.num_value = evaluate(); + vars[var_count].value.type = VAL_NUMBER; + var_count++; + } + consume(TOKEN_RPAREN, "Expected ')'"); + + int saved_token = current_token; + current_token = funcs[func_idx].body_start; + while (current_token < funcs[func_idx].body_end && peek().type != TOKEN_EOF) { + execute_statement(); + } + current_token = saved_token; + var_count = saved_var_count; + + for (int i = var_count - 1; i >= 0; i--) { + if (strcmp(vars[i].name, "__return_value") == 0) { + if (!first) printf(" "); + printf("%g", vars[i].value.num_value); + break; + } + } + } else { + if (!first) printf(" "); + printf("%g", parse_call(name)); + } + } else { + int found = 0; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + if (!first) printf(" "); + if (vars[i].value.type == VAL_STRING) { + printf("%s", vars[i].value.str_value); + } else if (vars[i].value.type == VAL_ARRAY) { + printf("["); + for (int j = 0; j < vars[i].value.arr_size; j++) { + if (j > 0) printf(", "); + printf("%g", vars[i].value.arr_value[j]); + } + printf("]"); + } else { + printf("%g", vars[i].value.num_value); + } + found = 1; + break; + } + } + if (!found) error("Undefined variable: %s", name); + } + } else { + error("Unexpected token in print: '%s'", peek().value); + } + first = 0; + } + + if (newline) { + printf("\n"); + } + fflush(stdout); +} + +void execute_var() { + consume(TOKEN_IDENTIFIER, "Expected variable name"); + const char* name = tokens[current_token - 1].value; + + if (var_count >= MAX_VARS) { + error("Too many variables (max %d)", MAX_VARS); + } + + Variable* v = &vars[var_count]; + strncpy(v->name, name, 63); + v->name[63] = '\0'; + var_count++; + + if (match(TOKEN_ASSIGN)) { + if (match(TOKEN_STRING)) { + strncpy(v->value.str_value, tokens[current_token - 1].value, MAX_STRING - 1); + v->value.str_value[MAX_STRING - 1] = '\0'; + v->value.type = VAL_STRING; + v->value.num_value = 0; + } else if (match(TOKEN_LBRACKET)) { + v->value.type = VAL_ARRAY; + v->value.arr_size = 0; + while (!match(TOKEN_RBRACKET)) { + if (v->value.arr_size > 0) consume(TOKEN_COMMA, "Expected ',' between array elements"); + v->value.arr_value[v->value.arr_size++] = evaluate(); + if (v->value.arr_size >= MAX_ARRAY_SIZE) { + error("Array size exceeds maximum (%d)", MAX_ARRAY_SIZE); + } + } + } else { + v->value.num_value = evaluate(); + v->value.type = VAL_NUMBER; + v->value.str_value[0] = '\0'; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_arr_result") == 0) { + v->value.type = vars[i].value.type; + v->value.arr_size = vars[i].value.arr_size; + for (int j = 0; j < vars[i].value.arr_size; j++) { + v->value.arr_value[j] = vars[i].value.arr_value[j]; + } + break; + } + } + } + } else { + v->value.type = VAL_NUMBER; + v->value.num_value = 0; + v->value.str_value[0] = '\0'; + } + if (!in_for_loop_update) { + consume(TOKEN_SEMICOLON, "Expected ';' after variable declaration"); + } +} + +static void skip_block() { + int depth = 1; + while (depth > 0 && peek().type != TOKEN_EOF) { + Token t = advance(); + if (t.type == TOKEN_LBRACE) depth++; + if (t.type == TOKEN_RBRACE) depth--; + } +} + +int execute_if() { + consume(TOKEN_LPAREN, "Expected '(' after 'if'"); + double cond = evaluate(); + consume(TOKEN_RPAREN, "Expected ')' after condition"); + + if (match(TOKEN_LBRACE)) { + if (cond != 0) { + while (!match(TOKEN_RBRACE) && peek().type != TOKEN_EOF) { + int result = execute_statement(); + if (result == 2 || result == 3) { + return result; + } + } + } else { + skip_block(); + } + } else { + if (cond != 0) { + int result = execute_statement(); + if (result == 2 || result == 3) { + return result; + } + } else { + while (peek().type != TOKEN_SEMICOLON && peek().type != TOKEN_EOF) { + advance(); + } + consume(TOKEN_SEMICOLON, "Expected ';'"); + } + } + + if (match(TOKEN_ELSE)) { + if (match(TOKEN_LBRACE)) { + if (cond == 0) { + while (!match(TOKEN_RBRACE) && peek().type != TOKEN_EOF) { + int result = execute_statement(); + if (result == 2 || result == 3) { + return result; + } + } + } else { + skip_block(); + } + } else { + if (cond == 0) { + int result = execute_statement(); + if (result == 2 || result == 3) { + return result; + } + } else { + while (peek().type != TOKEN_SEMICOLON && peek().type != TOKEN_EOF) { + advance(); + } + consume(TOKEN_SEMICOLON, "Expected ';'"); + } + } + } + return 0; +} + +void execute_while() { + consume(TOKEN_LPAREN, "Expected '(' after 'while'"); + + int cond_start = current_token; + evaluate(); + consume(TOKEN_RPAREN, "Expected ')' after condition"); + consume(TOKEN_LBRACE, "Expected '{' after while condition"); + + int body_start = current_token; + skip_block(); + int body_end = current_token; + + int saved_loop_depth = loop_depth; + loop_depth++; + + while (1) { + current_token = cond_start; + current_line = tokens[cond_start].line; + double cond = evaluate(); + + if (cond == 0) { + current_token = body_end; + break; + } + + current_token = body_start; + while (current_token < body_end && peek().type != TOKEN_EOF && peek().type != TOKEN_RBRACE) { + int result = execute_statement(); + if (result == 2) { + break; + } + if (result == 3) { + break; + } + if (result == 1) { + loop_depth = saved_loop_depth; + return; + } + } + } + + loop_depth = saved_loop_depth; +} + +void execute_for() { + consume(TOKEN_LPAREN, "Expected '(' after 'for'"); + + int init_start = current_token; + while (peek().type != TOKEN_SEMICOLON && peek().type != TOKEN_EOF) { + advance(); + } + consume(TOKEN_SEMICOLON, "Expected ';'"); + + int cond_start = current_token; + while (peek().type != TOKEN_SEMICOLON && peek().type != TOKEN_EOF) { + advance(); + } + consume(TOKEN_SEMICOLON, "Expected ';'"); + + int update_start = current_token; + while (peek().type != TOKEN_RPAREN && peek().type != TOKEN_EOF) { + advance(); + } + consume(TOKEN_RPAREN, "Expected ')'"); + consume(TOKEN_LBRACE, "Expected '{'"); + + int body_start = current_token; + skip_block(); + int body_end = current_token; + + int saved_token = current_token; + current_token = init_start; + in_for_loop_update = 1; + while (peek().type != TOKEN_SEMICOLON && peek().type != TOKEN_EOF) { + execute_statement(); + } + in_for_loop_update = 0; + current_token = saved_token; + + int saved_loop_depth = loop_depth; + loop_depth++; + + while (1) { + double cond = 0; + int temp_token = cond_start; + current_token = cond_start; + current_line = tokens[cond_start].line; + + int paren_count = 0; + while (temp_token < token_count) { + if (tokens[temp_token].type == TOKEN_LPAREN) paren_count++; + if (tokens[temp_token].type == TOKEN_RPAREN) paren_count--; + if (tokens[temp_token].type == TOKEN_SEMICOLON && paren_count == 0) break; + temp_token++; + } + + cond = evaluate(); + + if (cond == 0) { + break; + } + + current_token = body_start; + while (current_token < body_end && peek().type != TOKEN_EOF) { + int result = execute_statement(); + if (result == 2) { + loop_depth = saved_loop_depth; + return; + } + if (result == 1) { + loop_depth = saved_loop_depth; + return; + } + } + + current_token = update_start; + in_for_loop_update = 1; + while (peek().type != TOKEN_RPAREN && peek().type != TOKEN_EOF) { + execute_statement(); + } + in_for_loop_update = 0; + } + + loop_depth = saved_loop_depth; +} + +extern int in_for_loop_update; + +void execute_function() { + consume(TOKEN_IDENTIFIER, "Expected function name"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_LPAREN, "Expected '(' after function name"); + + int func_idx = func_count; + strncpy(funcs[func_idx].name, name, 63); + funcs[func_idx].param_count = 0; + + while (!match(TOKEN_RPAREN)) { + if (funcs[func_idx].param_count > 0) consume(TOKEN_COMMA, "Expected ','"); + consume(TOKEN_IDENTIFIER, "Expected parameter name"); + strncpy(funcs[func_idx].params[funcs[func_idx].param_count], + tokens[current_token - 1].value, 63); + funcs[func_idx].param_count++; + if (funcs[func_idx].param_count >= 8) { + error("Too many parameters (max 8)"); + } + } + + consume(TOKEN_LBRACE, "Expected '{'"); + funcs[func_idx].body_start = current_token; + + skip_block(); + funcs[func_idx].body_end = current_token; + func_count++; +} + +void execute_switch() { + consume(TOKEN_LPAREN, "Expected '('"); + double switch_val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + consume(TOKEN_LBRACE, "Expected '{'"); + + int saved_switch_active = switch_active; + switch_active = 1; + + int body_start = current_token; + skip_block(); + int body_end = current_token; + + int saved_token = current_token; + current_token = body_start; + + int should_execute = 0; + while (current_token < body_end && peek().type != TOKEN_EOF) { + if (match(TOKEN_CASE)) { + double case_val = evaluate(); + consume(TOKEN_COLON, "Expected ':' after case"); + if (!should_execute && case_val == switch_val) { + should_execute = 1; + } + } else if (match(TOKEN_DEFAULT)) { + consume(TOKEN_COLON, "Expected ':' after default"); + if (!should_execute) { + should_execute = 1; + } + } else { + if (should_execute) { + int result = execute_statement(); + if (result == 2) { + break; + } + } else { + advance(); + } + } + } + + current_token = saved_token; + switch_active = saved_switch_active; +} + +void execute_do_while() { + consume(TOKEN_LBRACE, "Expected '{'"); + + int body_start = current_token; + skip_block(); + int body_end = current_token; + + consume(TOKEN_WHILE, "Expected 'while'"); + consume(TOKEN_LPAREN, "Expected '('"); + + int cond_start = current_token; + evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + consume(TOKEN_SEMICOLON, "Expected ';'"); + + int saved_loop_depth = loop_depth; + loop_depth++; + + current_token = body_start; + while (current_token < body_end && peek().type != TOKEN_EOF && peek().type != TOKEN_RBRACE) { + int result = execute_statement(); + if (result == 2) { + break; + } + if (result == 3) { + break; + } + if (result == 1) { + loop_depth = saved_loop_depth; + return; + } + } + + while (1) { + current_token = cond_start; + current_line = tokens[cond_start].line; + double cond = evaluate(); + + if (cond == 0) { + break; + } + + current_token = body_start; + while (current_token < body_end && peek().type != TOKEN_EOF && peek().type != TOKEN_RBRACE) { + int result = execute_statement(); + if (result == 2) { + break; + } + if (result == 3) { + break; + } + if (result == 1) { + loop_depth = saved_loop_depth; + return; + } + } + } + + loop_depth = saved_loop_depth; +} + +void execute_struct() { + consume(TOKEN_IDENTIFIER, "Expected struct name"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_LBRACE, "Expected '{'"); + + int struct_idx = struct_count; + strncpy(structs[struct_idx].name, name, 63); + structs[struct_idx].field_count = 0; + + while (peek().type != TOKEN_RBRACE && peek().type != TOKEN_EOF) { + if (peek().type == TOKEN_SEMICOLON) { + advance(); + continue; + } + consume(TOKEN_IDENTIFIER, "Expected field name"); + strncpy(structs[struct_idx].fields[structs[struct_idx].field_count], + tokens[current_token - 1].value, 63); + structs[struct_idx].field_count++; + if (structs[struct_idx].field_count >= 16) { + error("Too many fields in struct (max 16)"); + } + if (peek().type == TOKEN_SEMICOLON) { + advance(); + } + } + + consume(TOKEN_RBRACE, "Expected '}'"); + struct_count++; + if (match(TOKEN_SEMICOLON)) { + } +} + +void execute_enum() { + consume(TOKEN_IDENTIFIER, "Expected enum name"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_LBRACE, "Expected '{'"); + + int enum_idx = enum_count; + strncpy(enums[enum_idx].name, name, 63); + enums[enum_idx].value_count = 0; + + while (peek().type != TOKEN_RBRACE && peek().type != TOKEN_EOF) { + consume(TOKEN_IDENTIFIER, "Expected enum value"); + strncpy(enums[enum_idx].values[enums[enum_idx].value_count], + tokens[current_token - 1].value, 63); + enums[enum_idx].value_count++; + if (enums[enum_idx].value_count >= 16) { + error("Too many values in enum (max 16)"); + } + if (match(TOKEN_COMMA)) { + continue; + } + break; + } + + consume(TOKEN_RBRACE, "Expected '}'"); + enum_count++; + if (match(TOKEN_SEMICOLON)) { + } +} + +void execute_typedef() { + consume(TOKEN_IDENTIFIER, "Expected original type"); + const char* orig_type = tokens[current_token - 1].value; + consume(TOKEN_IDENTIFIER, "Expected new type name"); + const char* new_name = tokens[current_token - 1].value; + consume(TOKEN_SEMICOLON, "Expected ';'"); + + int struct_idx = find_struct(orig_type); + if (struct_idx >= 0) { + strncpy(structs[struct_count].name, new_name, 63); + structs[struct_count].field_count = structs[struct_idx].field_count; + for (int i = 0; i < structs[struct_idx].field_count; i++) { + strncpy(structs[struct_count].fields[i], structs[struct_idx].fields[i], 63); + } + struct_count++; + } else { + int enum_idx = find_enum(orig_type); + if (enum_idx >= 0) { + strncpy(enums[enum_count].name, new_name, 63); + enums[enum_count].value_count = enums[enum_idx].value_count; + for (int i = 0; i < enums[enum_idx].value_count; i++) { + strncpy(enums[enum_count].values[i], enums[enum_idx].values[i], 63); + } + enum_count++; + } + } +} + +void execute_goto() { + consume(TOKEN_IDENTIFIER, "Expected label name"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_SEMICOLON, "Expected ';'"); + + int label_idx = find_label(name); + if (label_idx < 0) { + error("Undefined label: %s", name); + } + current_token = labels[label_idx].token_index; +} + +void execute_new() { + consume(TOKEN_IDENTIFIER, "Expected type name"); + const char* type_name = tokens[current_token - 1].value; + consume(TOKEN_SEMICOLON, "Expected ';'"); + + int struct_idx = find_struct(type_name); + if (struct_idx >= 0) { + strncpy(vars[var_count].name, "__tmp_struct_result", 63); + vars[var_count].value.type = VAL_STRUCT; + vars[var_count].value.struct_type = struct_idx; + var_count++; + } +} + +void execute_delete() { + consume(TOKEN_IDENTIFIER, "Expected variable name"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_SEMICOLON, "Expected ';'"); + + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + for (int j = i; j < var_count - 1; j++) { + vars[j] = vars[j + 1]; + } + var_count--; + return; + } + } + error("Undefined variable: %s", name); +} + +void execute_try_catch() { + consume(TOKEN_LBRACE, "Expected '{'"); + + int try_start = current_token; + skip_block(); + int try_end = current_token; + + consume(TOKEN_CATCH, "Expected 'catch'"); + consume(TOKEN_LPAREN, "Expected '('"); + consume(TOKEN_IDENTIFIER, "Expected exception variable name"); + const char* exc_name = tokens[current_token - 1].value; + consume(TOKEN_RPAREN, "Expected ')'"); + consume(TOKEN_LBRACE, "Expected '{'"); + + int catch_start = current_token; + skip_block(); + int catch_end = current_token; + + int saved_var_count = var_count; + + current_token = try_start; + while (current_token < try_end && peek().type != TOKEN_EOF && peek().type != TOKEN_RBRACE) { + int result = execute_statement(); + if (result == 1) { + var_count = saved_var_count; + return; + } + } + + var_count = saved_var_count; +} + +void execute_throw() { + evaluate(); + consume(TOKEN_SEMICOLON, "Expected ';'"); +} + +void execute_return() { + if (peek().type == TOKEN_SEMICOLON || peek().type == TOKEN_RBRACE) { + consume(TOKEN_SEMICOLON, "Expected ';' after return"); + return; + } + double val = evaluate(); + consume(TOKEN_SEMICOLON, "Expected ';' after return"); + for (int i = var_count - 1; i >= 0; i--) { + if (strcmp(vars[i].name, "__return_value") == 0) { + vars[i].value.num_value = val; + vars[i].value.type = VAL_NUMBER; + return; + } + } + strncpy(vars[var_count].name, "__return_value", 63); + vars[var_count].value.num_value = val; + vars[var_count].value.type = VAL_NUMBER; + var_count++; +} + +int execute_statement() { + Token t = peek(); + + switch (t.type) { + case TOKEN_PRINT: + advance(); + execute_print(); + consume(TOKEN_SEMICOLON, "Expected ';' after print"); + return 0; + + case TOKEN_VAR: + advance(); + execute_var(); + return 0; + + case TOKEN_IF: + advance(); + return execute_if(); + + case TOKEN_WHILE: + advance(); + execute_while(); + return 0; + + case TOKEN_FOR: + advance(); + execute_for(); + return 0; + + case TOKEN_FUNCTION: + advance(); + execute_function(); + return 0; + + case TOKEN_SWITCH: + advance(); + execute_switch(); + return 0; + + case TOKEN_DO: + advance(); + execute_do_while(); + return 0; + + case TOKEN_BREAK: + advance(); + consume(TOKEN_SEMICOLON, "Expected ';' after break"); + if (loop_depth == 0 && !switch_active) { + error("break outside loop or switch"); + } + return 2; + + case TOKEN_CONTINUE: + advance(); + consume(TOKEN_SEMICOLON, "Expected ';' after continue"); + if (loop_depth == 0) { + error("continue outside loop"); + } + return 3; + + case TOKEN_RETURN: + advance(); + execute_return(); + return 1; + + case TOKEN_STRUCT: + advance(); + execute_struct(); + return 0; + + case TOKEN_ENUM: + advance(); + execute_enum(); + return 0; + + case TOKEN_TYPEDEF: + advance(); + execute_typedef(); + return 0; + + case TOKEN_GOTO: + advance(); + execute_goto(); + return 0; + + case TOKEN_NEW: + advance(); + execute_new(); + return 0; + + case TOKEN_DELETE: + advance(); + execute_delete(); + return 0; + + case TOKEN_TRY: + advance(); + execute_try_catch(); + return 0; + + case TOKEN_THROW: + advance(); + execute_throw(); + return 0; + + case TOKEN_LABEL: + advance(); + return 0; + + case TOKEN_IDENTIFIER: { + advance(); + if (match(TOKEN_ASSIGN)) { + const char* name = tokens[current_token - 2].value; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + if (match(TOKEN_STRING)) { + strncpy(vars[i].value.str_value, tokens[current_token - 1].value, MAX_STRING - 1); + vars[i].value.str_value[MAX_STRING - 1] = '\0'; + vars[i].value.type = VAL_STRING; + } else if (match(TOKEN_LBRACKET)) { + vars[i].value.type = VAL_ARRAY; + vars[i].value.arr_size = 0; + while (!match(TOKEN_RBRACKET)) { + if (vars[i].value.arr_size > 0) consume(TOKEN_COMMA, "Expected ','"); + vars[i].value.arr_value[vars[i].value.arr_size++] = evaluate(); + } + } else { + vars[i].value.num_value = evaluate(); + vars[i].value.type = VAL_NUMBER; + } + if (!in_for_loop_update) { + consume(TOKEN_SEMICOLON, "Expected ';' after assignment"); + } + return 0; + } + } + error("Undefined variable: %s", name); + } else if (match(TOKEN_PLUS_ASSIGN)) { + const char* name = tokens[current_token - 2].value; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + if (vars[i].value.type == VAL_STRING) { + const char* str = tokens[current_token].value; + strncat(vars[i].value.str_value, str, MAX_STRING - strlen(vars[i].value.str_value) - 1); + } else { + vars[i].value.num_value += evaluate(); + } + if (!in_for_loop_update) { + consume(TOKEN_SEMICOLON, "Expected ';' after assignment"); + } + return 0; + } + } + error("Undefined variable: %s", name); + } else if (match(TOKEN_MINUS_ASSIGN)) { + const char* name = tokens[current_token - 2].value; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + vars[i].value.num_value -= evaluate(); + if (!in_for_loop_update) { + consume(TOKEN_SEMICOLON, "Expected ';' after assignment"); + } + return 0; + } + } + error("Undefined variable: %s", name); + } else if (match(TOKEN_MULTIPLY_ASSIGN)) { + const char* name = tokens[current_token - 2].value; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + vars[i].value.num_value *= evaluate(); + if (!in_for_loop_update) { + consume(TOKEN_SEMICOLON, "Expected ';' after assignment"); + } + return 0; + } + } + error("Undefined variable: %s", name); + } else if (match(TOKEN_DIVIDE_ASSIGN)) { + const char* name = tokens[current_token - 2].value; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + double right = evaluate(); + if (right == 0) error("Division by zero"); + vars[i].value.num_value /= right; + if (!in_for_loop_update) { + consume(TOKEN_SEMICOLON, "Expected ';' after assignment"); + } + return 0; + } + } + error("Undefined variable: %s", name); + } else if (match(TOKEN_MODULO_ASSIGN)) { + const char* name = tokens[current_token - 2].value; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + double right = evaluate(); + if (right == 0) error("Modulo by zero"); + vars[i].value.num_value = fmod(vars[i].value.num_value, right); + if (!in_for_loop_update) { + consume(TOKEN_SEMICOLON, "Expected ';' after assignment"); + } + return 0; + } + } + error("Undefined variable: %s", name); + } else if (match(TOKEN_INCREMENT)) { + const char* name = tokens[current_token - 2].value; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + vars[i].value.num_value++; + if (!in_for_loop_update) { + consume(TOKEN_SEMICOLON, "Expected ';' after increment"); + } + return 0; + } + } + error("Undefined variable: %s", name); + } else if (match(TOKEN_DECREMENT)) { + const char* name = tokens[current_token - 2].value; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + vars[i].value.num_value--; + if (!in_for_loop_update) { + consume(TOKEN_SEMICOLON, "Expected ';' after decrement"); + } + return 0; + } + } + error("Undefined variable: %s", name); + } else if (peek().type == TOKEN_LBRACKET) { + const char* name = tokens[current_token - 1].value; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + advance(); + int index = (int)evaluate(); + consume(TOKEN_RBRACKET, "Expected ']'"); + if (match(TOKEN_ASSIGN)) { + vars[i].value.arr_value[index] = evaluate(); + if (!in_for_loop_update) { + consume(TOKEN_SEMICOLON, "Expected ';'"); + } + } else { + printf("%g\n", vars[i].value.arr_value[index]); + } + return 0; + } + } + error("Undefined variable: %s", name); + } else if (peek().type == TOKEN_LPAREN) { + const char* name = tokens[current_token - 1].value; + int func_idx = find_function(name); + if (func_idx >= 0) { + consume(TOKEN_LPAREN, "Expected '('"); + int saved_var_count = var_count; + for (int i = 0; i < funcs[func_idx].param_count; i++) { + if (i > 0) consume(TOKEN_COMMA, "Expected ','"); + strncpy(vars[var_count].name, funcs[func_idx].params[i], 63); + vars[var_count].value.num_value = evaluate(); + vars[var_count].value.type = VAL_NUMBER; + var_count++; + } + consume(TOKEN_RPAREN, "Expected ')'"); + consume(TOKEN_SEMICOLON, "Expected ';'"); + + int saved_token = current_token; + current_token = funcs[func_idx].body_start; + while (current_token < funcs[func_idx].body_end && peek().type != TOKEN_EOF) { + if (execute_statement() == 1) break; + } + current_token = saved_token; + var_count = saved_var_count; + return 0; + } + + parse_call(name); + consume(TOKEN_SEMICOLON, "Expected ';'"); + return 0; + } + error("Unexpected identifier: %s", tokens[current_token - 1].value); + return 0; + } + + case TOKEN_EOF: + break; + + default: + error("Unexpected token: %s", t.value); + } + return 0; +} + +void parse_config(const char* source) { + print_newline = 1; + const char* p = source; + + while (*p) { + if (*p == ' ' || *p == '\t' || *p == '\r') { + p++; + continue; + } + if (*p == '\n') break; + if (*p == '#') { + while (*p && *p != '\n') p++; + continue; + } + if (*p == 's' && *(p+1) == 'g' && *(p+2) == '<') { + p += 3; + while (*p && *p != '>') { + if (strncmp(p, "nel", 3) == 0) { + print_newline = 0; + break; + } + p++; + } + break; + } + break; + } +} + +char* strip_config(const char* source) { + const char* p = source; + + while (*p) { + if (*p == ' ' || *p == '\t' || *p == '\r') { + p++; + continue; + } + if (*p == '\n') { + return strdup(source); + } + if (*p == '#') { + while (*p && *p != '\n') p++; + if (*p == '\n') p++; + continue; + } + if (*p == 's' && *(p+1) == 'g' && *(p+2) == '<') { + const char* start = p; + while (*p && *p != '\n') p++; + if (*p == '\n') p++; + + size_t prefix_len = start - source; + size_t suffix_len = strlen(p); + char* result = malloc(prefix_len + suffix_len + 1); + if (!result) error("Out of memory"); + + memcpy(result, source, prefix_len); + memcpy(result + prefix_len, p, suffix_len + 1); + return result; + } + return strdup(source); + } + return strdup(source); +} + +void run(const char* source) { + static int rand_seeded = 0; + if (!rand_seeded) { + srand(time(NULL)); + rand_seeded = 1; + } + + parse_config(source); + char* clean_source = strip_config(source); + tokenize(clean_source); + current_token = 0; + + while (peek().type != TOKEN_EOF) { + execute_statement(); + } + + free(clean_source); +} + +void run_file(const char* path) { + FILE* f = fopen(path, "r"); + if (!f) { + error("Cannot open file: %s", path); + } + + fseek(f, 0, SEEK_END); + long size = ftell(f); + if (size < 0) { + fclose(f); + error("Cannot read file: %s", path); + } + fseek(f, 0, SEEK_SET); + + char* source = malloc(size + 1); + if (!source) { + fclose(f); + error("Out of memory"); + } + + size_t read = fread(source, 1, size, f); + fclose(f); + source[read] = '\0'; + + run(source); + free(source); +} + +void run_repl() { + in_repl = 1; + printf("Oraset B-5 REPL\n"); + printf("Type 'exit' or 'quit' to exit.\n"); + printf("> "); + + char line[MAX_LINE]; + while (fgets(line, MAX_LINE, stdin)) { + line[strcspn(line, "\n")] = '\0'; + + if (strcmp(line, "exit") == 0 || strcmp(line, "quit") == 0) { + break; + } + if (strcmp(line, "") == 0) { + printf("> "); + continue; + } + + char* source = malloc(strlen(line) + 2); + strcpy(source, line); + strcat(source, "\n"); + + static int rand_seeded = 0; + if (!rand_seeded) { + srand(time(NULL)); + rand_seeded = 1; + } + + parse_config(source); + char* clean_source = strip_config(source); + tokenize(clean_source); + current_token = 0; + + while (peek().type != TOKEN_EOF) { + execute_statement(); + } + + free(clean_source); + free(source); + printf("> "); + } + + printf("\n"); + in_repl = 0; +} + +#define VERSION_URL "https://oraset.parlz.com/download/version.txt" +#define DOWNLOAD_BASE "https://oraset.parlz.com/download" + +static char* http_get(const char* url) { +#ifdef _WIN32 + HINTERNET hInternet = InternetOpenA("Oraset", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); + if (!hInternet) return NULL; + + HINTERNET hUrl = InternetOpenUrlA(hInternet, url, NULL, 0, INTERNET_FLAG_RELOAD, 0); + if (!hUrl) { + InternetCloseHandle(hInternet); + return NULL; + } + + char* buffer = malloc(4096); + if (!buffer) { + InternetCloseHandle(hUrl); + InternetCloseHandle(hInternet); + return NULL; + } + + DWORD total_read = 0; + DWORD bytes_read; + char temp[1024]; + + while (InternetReadFile(hUrl, temp, sizeof(temp), &bytes_read) && bytes_read > 0) { + if (total_read + bytes_read >= 4095) { + char* new_buf = realloc(buffer, total_read + bytes_read + 4096); + if (!new_buf) { + free(buffer); + InternetCloseHandle(hUrl); + InternetCloseHandle(hInternet); + return NULL; + } + buffer = new_buf; + } + memcpy(buffer + total_read, temp, bytes_read); + total_read += bytes_read; + } + buffer[total_read] = '\0'; + + InternetCloseHandle(hUrl); + InternetCloseHandle(hInternet); + return buffer; +#else + char cmd[512]; + snprintf(cmd, sizeof(cmd), "curl -s \"%s\" 2>/dev/null", url); + FILE* fp = popen(cmd, "r"); + if (!fp) return NULL; + + char* buffer = malloc(4096); + if (!buffer) { + pclose(fp); + return NULL; + } + + size_t total_read = 0; + size_t bytes_read; + char temp[1024]; + + while ((bytes_read = fread(temp, 1, sizeof(temp), fp)) > 0) { + if (total_read + bytes_read >= 4095) { + char* new_buf = realloc(buffer, total_read + bytes_read + 4096); + if (!new_buf) { + free(buffer); + pclose(fp); + return NULL; + } + buffer = new_buf; + } + memcpy(buffer + total_read, temp, bytes_read); + total_read += bytes_read; + } + buffer[total_read] = '\0'; + pclose(fp); + return buffer; +#endif +} + +static int download_file(const char* url, const char* dest_path) { +#ifdef _WIN32 + HINTERNET hInternet = InternetOpenA("Oraset", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); + if (!hInternet) return -1; + + HINTERNET hUrl = InternetOpenUrlA(hInternet, url, NULL, 0, INTERNET_FLAG_RELOAD, 0); + if (!hUrl) { + InternetCloseHandle(hInternet); + return -1; + } + + FILE* fp = fopen(dest_path, "wb"); + if (!fp) { + InternetCloseHandle(hUrl); + InternetCloseHandle(hInternet); + return -1; + } + + char temp[4096]; + DWORD bytes_read; + + while (InternetReadFile(hUrl, temp, sizeof(temp), &bytes_read) && bytes_read > 0) { + fwrite(temp, 1, bytes_read, fp); + } + + fclose(fp); + InternetCloseHandle(hUrl); + InternetCloseHandle(hInternet); + return 0; +#else + char cmd[1024]; + snprintf(cmd, sizeof(cmd), "curl -L -o \"%s\" \"%s\" 2>/dev/null", dest_path, url); + return system(cmd); +#endif +} + +static void get_system_info(char* os, char* ext) { +#ifdef _WIN32 + strcpy(os, "windows"); + strcpy(ext, ".exe"); +#elif defined(__APPLE__) + strcpy(os, "macos"); + strcpy(ext, ".pkg"); +#elif defined(__linux__) + strcpy(os, "linux"); + strcpy(ext, ".tar.gz"); +#else + strcpy(os, "unknown"); + strcpy(ext, ".tar.gz"); +#endif +} + +static int compare_versions(const char* v1, const char* v2) { + int major1 = 0, minor1 = 0, patch1 = 0, major2 = 0, minor2 = 0, patch2 = 0; + char suffix1[64] = "", suffix2[64] = ""; + + sscanf(v1, "%d.%d.%d-%63s", &major1, &minor1, &patch1, suffix1); + sscanf(v2, "%d.%d.%d-%63s", &major2, &minor2, &patch2, suffix2); + + if (major1 != major2) return major1 - major2; + if (minor1 != minor2) return minor1 - minor2; + if (patch1 != patch2) return patch1 - patch2; + + int s1 = (strstr(suffix1, "Release") || strlen(suffix1) == 0) ? 3 : + (strstr(suffix1, "Beta") ? 2 : 1); + int s2 = (strstr(suffix2, "Release") || strlen(suffix2) == 0) ? 3 : + (strstr(suffix2, "Beta") ? 2 : 1); + return s1 - s2; +} + +static void trim_newline(char* str) { + int len = strlen(str); + while (len > 0 && (str[len-1] == '\n' || str[len-1] == '\r')) { + str[--len] = '\0'; + } +} + +int update_oraset(const char* target_version) { + printf("Checking for updates...\n"); + + char* version_info = http_get(VERSION_URL); + if (!version_info) { + fprintf(stderr, "Error: Cannot fetch version information.\n"); + fprintf(stderr, "Please check your internet connection.\n"); + return 1; + } + + trim_newline(version_info); + char latest_version[128]; + strncpy(latest_version, version_info, sizeof(latest_version) - 1); + free(version_info); + + printf("Current version: %s\n", VERSION); + printf("Latest version: %s\n", latest_version); + + const char* version_to_install = target_version ? target_version : latest_version; + + if (target_version) { + printf("Target version specified: %s\n", version_to_install); + } + + char os[32], ext[16]; + get_system_info(os, ext); + printf("Detected OS: %s\n", os); + + char download_url[512]; + char filename[128]; + + if (strcmp(os, "windows") == 0) { + snprintf(filename, sizeof(filename), "Oraset-B5%s", ext); + snprintf(download_url, sizeof(download_url), "%s/exe/%s", DOWNLOAD_BASE, filename); + } else if (strcmp(os, "macos") == 0) { + snprintf(filename, sizeof(filename), "Oraset-B5%s", ext); + snprintf(download_url, sizeof(download_url), "%s/pkg/%s", DOWNLOAD_BASE, filename); + } else { + snprintf(filename, sizeof(filename), "Oraset-B5%s", ext); + snprintf(download_url, sizeof(download_url), "%s/deb/%s", DOWNLOAD_BASE, filename); + } + + printf("Downloading: %s\n", download_url); + + char temp_path[512]; +#ifdef _WIN32 + char temp_dir[MAX_PATH]; + GetTempPathA(MAX_PATH, temp_dir); + snprintf(temp_path, sizeof(temp_path), "%s%s", temp_dir, filename); +#else + snprintf(temp_path, sizeof(temp_path), "/tmp/%s", filename); +#endif + + if (download_file(download_url, temp_path) != 0) { + fprintf(stderr, "Error: Failed to download update.\n"); + return 1; + } + + printf("Downloaded to: %s\n", temp_path); + +#ifdef _WIN32 + printf("Please run the installer: %s\n", temp_path); +#else + if (strcmp(os, "macos") == 0) { + printf("Installing package...\n"); + char cmd[1024]; + snprintf(cmd, sizeof(cmd), "sudo installer -pkg \"%s\" -target /", temp_path); + system(cmd); + } else if (strcmp(os, "linux") == 0) { + printf("Extracting...\n"); + char cmd[1024]; + snprintf(cmd, sizeof(cmd), "cd /tmp && tar -xzf \"%s\" && sudo cp oraset /usr/local/bin/", temp_path); + system(cmd); + } + printf("Installation complete!\n"); +#endif + + return 0; +} + +int main(int argc, char** argv) { + if (argc == 1) { + printf("Oraset B-5\n"); + printf("Usage: oraset [options] + + \ No newline at end of file diff --git a/website/docs/md/getting-started.md b/website/docs/md/getting-started.md new file mode 100644 index 0000000..352cce3 --- /dev/null +++ b/website/docs/md/getting-started.md @@ -0,0 +1,99 @@ +# 入门指南 + +本指南将帮助您快速安装和配置 Oraset 编程语言 B-5 版本环境,并运行您的第一个程序。 + +## 安装 Oraset + +### macOS + +```bash +curl https://oraset.parlz.com/download/sh/install.sh | bash +``` + +### Linux + +```bash +curl https://oraset.parlz.com/download/sh/install-linux.sh | bash +``` + +或手动下载 oraset.deb,然后运行: +```bash +sudo dpkg -i oraset.deb +``` + +### Windows + +下载 oraset.exe 并添加到系统 PATH。 + +## 验证安装 + +```bash +oraset -v +``` + +应该显示:"B-5" + +## 运行第一个程序 + +### 步骤 1:创建脚本文件 + +创建一个名为 `hello.ora` 的文件,内容如下: + +```oraset +print("Hello, World!"); +``` + +### 步骤 2:运行脚本 + +```bash +oraset hello.ora +``` + +输出: + +``` +Hello, World! +``` + +## 交互模式 + +Oraset B-5 支持 REPL 交互模式: + +```bash +oraset -i +``` + +或 + +```bash +oraset --interactive +``` + +进入交互模式后,您可以直接输入代码并立即看到结果: + +``` +Oraset B-5 REPL +Type 'exit' or 'quit' to exit. +> var x = 10 +> print(x) +10 +> exit +``` + +## 常见问题 + +### Q: 命令找不到? + +A: 确保 oraset 已添加到系统 PATH,并重新打开终端。 + +### Q: 如何退出交互模式? + +A: 输入 `exit` 或 `quit` 即可退出。 + +### Q: 脚本执行完成后自动退出? + +A: 是的,脚本执行完成后自动退出,无需手动操作。 + +--- + +Oraset Project © 2026 \ No newline at end of file diff --git a/website/docs/md/language.md b/website/docs/md/language.md new file mode 100644 index 0000000..e6b7ac1 --- /dev/null +++ b/website/docs/md/language.md @@ -0,0 +1,212 @@ +# 语言参考 + +Oraset 编程语言 B-5 版本的完整语法参考文档,包含变量、数据类型、运算符和控制流等核心特性。 + +## 变量 + +### 声明变量 + +```oraset +var x = 10; +var name = "test"; +var pi = 3.14; +var flag; +``` + +### 修改变量 + +```oraset +x = 20; +name = "new name"; +``` + +### 复合赋值 + +```oraset +x += 5; +x -= 3; +x *= 2; +x /= 2; +x %= 3; +``` + +### 自增自减 + +```oraset +x++; +x--; +``` + +## 数据类型 + +- **数字**:整数和浮点数,如 `42`、`3.14` +- **字符串**:用双引号或单引号包围,如 `"Hello"`、`'World'` +- **数组**:用方括号定义,如 `[1, 2, 3]` + +## 数组 + +### 创建数组 + +```oraset +var arr = [10, 20, 30, 40, 50]; +var empty = array(5); +``` + +### 访问数组元素 + +```oraset +print(arr[0]); +arr[2] = 35; +``` + +### 数组长度 + +```oraset +var len = arrlen(arr); +``` + +## 运算符 + +### 算术运算符 + +```oraset ++ // 加法 +- // 减法 +* // 乘法 +/ // 除法 +% // 取模 +``` + +### 比较运算符 + +```oraset +== // 等于 +!= // 不等于 +> // 大于 +< // 小于 +>= // 大于等于 +<= // 小于等于 +``` + +### 逻辑运算符 + +```oraset +&& // 逻辑与 +|| // 逻辑或 +! // 逻辑非 +``` + +## 输出 + +### print 函数 + +```oraset +print("Hello"); // 输出并换行 +print("No newline", "nel"); // 输出不换行 +print("A", "B", 123); // 多个参数用空格分隔 +print(arr); // 打印数组 +``` + +## 控制流 + +### 条件语句 + +```oraset +if (x > 10) { + print("x is big"); +} else { + print("x is small"); +} +``` + +### 循环语句 + +```oraset +while (x < 100) { + print(x); + x++; +} + +for (var i = 0; i < 10; i++) { + print(i); +} +``` + +### 函数定义 + +```oraset +function add(a, b) { + return a + b; +} + +add(5, 3); +``` + +## 内置函数 + +### 数学函数 + +```oraset +abs(x) // 绝对值 +sqrt(x) // 平方根 +sin(x) // 正弦 +cos(x) // 余弦 +tan(x) // 正切 +pow(x, y) // x的y次方 +log(x) // 自然对数 +floor(x) // 向下取整 +ceil(x) // 向上取整 +round(x) // 四舍五入 +int(x) // 转为整数 +float(x) // 转为浮点数 +rand() // 0-1随机数 +rand(n) // 0-n随机数 +time() // 当前时间戳 +``` + +### 字符串函数 + +```oraset +len(str) // 字符串长度 +num(str) // 字符串转数字 +str(num) // 数字转字符串 +``` + +### 数组函数 + +```oraset +array(size) // 创建指定大小的数组 +arrlen(arr) // 获取数组长度 +``` + +### 输入函数 + +```oraset +input() // 读取用户输入 +input("提示:") // 带提示的输入 +``` + +## 文件配置 + +### sg 语法 + +```oraset +sg +print("All lines no newline"); +print("Still same line"); +``` + +`sg` 设置整个文件的 print 默认不换行。 + +## 注释 + +```oraset +# 单行注释 +// 单行注释 +/* 多行 + 注释 */ +``` + +--- + +Oraset Project © 2026 \ No newline at end of file diff --git a/website/docs/md/snake.md b/website/docs/md/snake.md new file mode 100644 index 0000000..91f0eac --- /dev/null +++ b/website/docs/md/snake.md @@ -0,0 +1,133 @@ +# 贪吃蛇游戏 + +这是一个用 Oraset B-5 编写的控制台贪吃蛇游戏! + +## 游戏说明 + +使用方向键控制蛇的移动方向,吃食物得分。 + +## 运行方法 + +```bash +oraset examples/snake.ora +``` + +## 代码 + +```oraset +// snake.ora - 贪吃蛇游戏 +// 使用 w/a/s/d 或方向键控制 +// Oraset B-5 版本 - 使用数组存储蛇的位置 + +var width = 40; +var height = 20; +var speed = 150; +var game_over = 0; +var score = 0; + +var snake_x = [10, 9, 8]; +var snake_y = [10, 10, 10]; +var snake_len = 3; + +var food_x = 25; +var food_y = 10; + +var direction = 1; +var next_direction = 1; + +function generate_food() { + food_x = int(rand() * (width - 4)) + 2; + food_y = int(rand() * (height - 4)) + 2; +} + +generate_food(); + +while (game_over == 0) { + direction = next_direction; + + var new_head_x = snake_x[0]; + var new_head_y = snake_y[0]; + + if (direction == 0) new_head_y--; + if (direction == 1) new_head_x++; + if (direction == 2) new_head_y++; + if (direction == 3) new_head_x--; + + if (new_head_x <= 0 || new_head_x >= width - 1 || + new_head_y <= 0 || new_head_y >= height - 1) { + game_over = 1; + break; + } + + var i = 0; + while (i < snake_len) { + if (new_head_x == snake_x[i] && new_head_y == snake_y[i]) { + game_over = 1; + break; + } + i++; + } + if (game_over == 1) break; + + if (new_head_x == food_x && new_head_y == food_y) { + score++; + snake_len++; + generate_food(); + } + + i = snake_len - 1; + while (i > 0) { + snake_x[i] = snake_x[i - 1]; + snake_y[i] = snake_y[i - 1]; + i--; + } + + snake_x[0] = new_head_x; + snake_y[0] = new_head_y; + + var y = 0; + while (y < height) { + var x = 0; + while (x < width) { + var is_snake = 0; + var is_food = 0; + + i = 0; + while (i < snake_len) { + if (x == snake_x[i] && y == snake_y[i]) { + is_snake = 1; + break; + } + i++; + } + + if (x == food_x && y == food_y) { + is_food = 1; + } + + if (is_snake == 1) { + print("O", "nel"); + } else if (is_food == 1) { + print("*", "nel"); + } else if (x == 0 || x == width - 1 || y == 0 || y == height - 1) { + print("-", "nel"); + } else { + print(" ", "nel"); + } + x++; + } + print(""); + y++; + } + + print("分数:", score, " | 长度:", snake_len); + print("w=上 a=左 s=下 d=右"); +} + +print("游戏结束! 最终分数:", score); +``` + +## 注意事项 + +这个版本使用了 Oraset B-5 的数组功能,代码更加简洁高效。 +蛇的身体现在存储在数组中,可以无限增长。 \ No newline at end of file diff --git a/website/docs/md/tutorial.md b/website/docs/md/tutorial.md new file mode 100644 index 0000000..d74a2e3 --- /dev/null +++ b/website/docs/md/tutorial.md @@ -0,0 +1,220 @@ +# 教程 + +通过实际示例学习 Oraset 编程语言 B-5 版本,从基础输出到循环和条件判断。 + +## 示例 1:基本输出 + +```oraset +// hello.ora +print("Welcome to Oraset B-5!"); +print("This is my first program."); +``` + +输出: + +``` +Welcome to Oraset B-5! +This is my first program. +``` + +## 示例 2:变量和计算 + +```oraset +// calc.ora +var a = 10; +var b = 20; +var sum = a + b; +print("The sum is:", sum); +``` + +输出: + +``` +The sum is: 30 +``` + +## 示例 3:条件判断 + +```oraset +// grade.ora +var score = 85; +if (score >= 60) { + print("Pass!"); +} else { + print("Fail!"); +} +``` + +输出: + +``` +Pass! +``` + +## 示例 4:循环 + +```oraset +// loop.ora +var i = 1; +while (i <= 5) { + print("Count:", i); + i++; +} +``` + +输出: + +``` +Count: 1 +Count: 2 +Count: 3 +Count: 4 +Count: 5 +``` + +## 示例 5:不换行输出 + +```oraset +// inline.ora +print("Loading", "nel"); +print("."); +print("."); +print(" Done!"); +``` + +输出: + +``` +Loading... + Done! +``` + +## 示例 6:文件级配置 + +```oraset +// no_newline.ora +sg +print("All"); +print("on"); +print("same"); +print("line"); +``` + +输出: + +``` +Allonsameline +``` + +## 示例 7:数组 + +```oraset +// array.ora +var arr = [10, 20, 30, 40, 50]; +print("Array:", arr); +print("First element:", arr[0]); +print("Array length:", arrlen(arr)); + +arr[2] = 35; +print("Modified array:", arr); +``` + +输出: + +``` +Array: [10, 20, 30, 40, 50] +First element: 10 +Array length: 5 +Modified array: [10, 20, 35, 40, 50] +``` + +## 示例 8:复合赋值 + +```oraset +// compound.ora +var x = 10; +x += 5; +print("x += 5:", x); +x *= 2; +print("x *= 2:", x); +x -= 3; +print("x -= 3:", x); +``` + +输出: + +``` +x += 5: 15 +x *= 2: 30 +x -= 3: 27 +``` + +## 示例 9:函数 + +```oraset +// function.ora +function add(a, b) { + return a + b; +} + +function multiply(a, b) { + return a * b; +} + +var result = add(5, 3); +print("5 + 3 =", result); + +result = multiply(4, 6); +print("4 * 6 =", result); +``` + +输出: + +``` +5 + 3 = 8 +4 * 6 = 24 +``` + +## 示例 10:数学函数 + +```oraset +// math.ora +var pi = 3.14159; +print("sin(pi/2) =", sin(pi/2)); +print("sqrt(16) =", sqrt(16)); +print("abs(-42) =", abs(-42)); +print("pow(2, 8) =", pow(2, 8)); +print("rand() =", rand()); +``` + +输出: + +``` +sin(pi/2) = 1 +sqrt(16) = 4 +abs(-42) = 42 +pow(2, 8) = 256 +rand() = 0.123456 +``` + +## 练习题 + +### 练习 1 + +编写一个程序,计算 1 到 10 的和。 + +### 练习 2 + +编写一个程序,判断一个数是奇数还是偶数。 + +### 练习 3 + +编写一个程序,输出 99 乘法表的一行。 + +### 练习 4 + +编写一个程序,使用数组存储 5 个数字,然后计算它们的平均值。 + +--- + +Oraset Project © 2026 \ No newline at end of file diff --git a/website/download.php b/website/download.php new file mode 100644 index 0000000..1bb4dcd --- /dev/null +++ b/website/download.php @@ -0,0 +1,115 @@ + + + + + + 下载 Oraset + + + +

+ + +
+

下载

+ +

最新版本:B-5

+

构建日期: 2026.7.22 | 全新升级版本

+ +

源码下载

+

如果您想从源码编译 Oraset:

+ +

编译方法:

+
make
+ +
+ +

macOS B-5

+

PKG 安装包

+ +
wget https://oraset.parlz.com/download/pkg/Oraset-B5.pkg
+sudo installer -pkg Oraset-B5.pkg -target /
+ +
+ +

历史版本

+
    +
  • Re+4.0.1-BetaN(+AU) - 2026.6.12 新增自动更新功能 +
    源码下载 +
  • +
  • Re+4.0.1-Beta - 2026.6.12 测试版本 +
    源码下载 +
  • +
  • Re+4.0.0-Release - 2026年早期稳定版本 +
    源码下载 +
  • +
  • Re+4.0.0-Beta - 2026年早期测试版本 +
    源码下载 +
  • +
+ +

系统要求

+
    +
  • Windows 10/11 (64位)
  • +
  • macOS 10.15+
  • +
  • Linux x86_64
  • +
+ +
+

Oraset Project © 2026

+
+
+ + + + \ No newline at end of file diff --git a/website/download/.DS_Store b/website/download/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..db7751216e0d6a34e4657aebe08a558a657e6ac1 GIT binary patch literal 10244 zcmeHM&2QX96n}3MS}$pdlP1t61zFt-QlmCaL&S$rmu(S52qk2rkkFQ`?VW5)9M58V zleQt!p5X*{{s69=khtW?g)8EM_!HpD3Eq4-8}EiDDs5?_8OihBym>SB{QP_4nK1xh zrB%NI-~fO{myq@;$__}PUR*t?pe@5Bk=g_Iy^woUvU_}u!60A|FbEg~3<3s$rvm}{ zW{YGEC~0zofI+|@u!n${9~`=bENj_TQcfL|$t?iMelp8Mx?KE|bcBIqSwoUVNz1YZtlQN!zEw@#w3Src z_@*c=avpk_?s`iB+p5_k*Ljq>LBwL&AgD8Px%F`n)%jM1x1xF?+g4SDRV)^3_Sx<2 zsn;hboGUZ0?Myh^Z%mOseRXDMr)Z6qF2A)Zt-wtMXp{6=`}jfxoFo zgTH2@`Q5g&@f4pQICc7kL3?QU%+Sct=;(_tojo@;etx`WpYdFOy%CG&yv{=&SHc#% z*@%OBwdwjn)L2g0-Lx9qXEl4c%XNX(Kkb+n?={J1q+^iXy%#eU$^Pb6R}+>l@6%Um z_F&@2JPhY~5~Kl-R&FJP@@&dBW}{V3cibd|=bEA_Sz>WQvZu}RiW|pn)L@l+w?o%s z;apVVY05X21D{9g$p>Y(RGg2Q=(2R}PX%JB{6VI?suUYaN&zU9-&CqKl9{x`(yq5F z^~H!stXL|~tC}Ls{ukjL_z;$09qz-|@GX1?Kf+J&8~g!(;Yqad0$#*vd>gOf`}h$q zppPMbjxlblE(+P(enpkD9KRq)>*D?QRFmhu^!ndJJ`;|221lU;fp8?wvMJQUf-&L3y8i_d}hWOU~Cy=nhwll(zs_je@^)!g2h+z*}G z&*kR!4%t7G-5o}D`HH*9UVsGFx~Tq57u8RY4~G`S;CFum3Sx7yKP+;-$0Rs%V|u6% z88_d92d#q+3Xw;%{ON?qQN9Pc7u^*o1F%VppqN4-pkRpL5~Q>wO7o#p5O>)h4k|89 zZV)gCJi`d|sb_b@`Tx8B{{R0O9-(=3gMdNcFa)swM)ig`?#qr)x*Le)utV1!xi||{{zlf3jzQD literal 0 HcmV?d00001 diff --git a/website/download/adn/hello-world.orp b/website/download/adn/hello-world.orp new file mode 100644 index 0000000..f5197ae --- /dev/null +++ b/website/download/adn/hello-world.orp @@ -0,0 +1,35 @@ +# Oraset Package (.orp) +# 包名:hello-world +# 版本:1.0.0 +# 描述:一个简单的 Hello World 示例包,包含 Lua 代码 + +version: 1.0.0 +name: hello-world +description: A simple Hello World example package with Lua code +author: Oraset Team +license: MIT + +# Lua 代码部分 +lua: +-- 这是一个 Lua 脚本示例 +print("Hello from Lua!") +print("这个包已经成功安装") + +-- 定义一个简单的函数 +function greet(name) + return "Hello, " .. name .. "!" +end + +-- 调用函数 +print(greet("Oraset")) + +-- 数学计算 +print("计算结果: 2 + 3 = " .. (2 + 3)) + +-- 循环示例 +print("数字 1 到 5:") +for i = 1, 5 do + print(" " .. i) +end + +print("Lua 代码执行完成!") \ No newline at end of file diff --git a/website/download/deb/.DS_Store b/website/download/deb/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e5a40528ff008a3b1e309dc0aa949535a16e6203 GIT binary patch literal 6148 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 literal 0 HcmV?d00001 diff --git a/website/download/deb/Oraset-Re+4.0.0-Release.deb b/website/download/deb/Oraset-Re+4.0.0-Release.deb new file mode 100644 index 0000000000000000000000000000000000000000..38b43cb8b106a1812af7d65a4d6579b642b4b921 GIT binary patch literal 8584 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 U!%nC2Ryx`X0$C^Z;?R5lA4&}(R{#J2 literal 0 HcmV?d00001 diff --git a/website/download/deb/Oraset-Re+4.0.1-Beta(..26_.6_12)-source.deb b/website/download/deb/Oraset-Re+4.0.1-Beta(..26_.6_12)-source.deb new file mode 100644 index 0000000000000000000000000000000000000000..1c5b07f889fd00f961b7523e13c32a1084805919 GIT binary patch literal 11100 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 literal 0 HcmV?d00001 diff --git a/website/download/deb/Oraset-Re+4.0.1-BetaN(+AU).deb b/website/download/deb/Oraset-Re+4.0.1-BetaN(+AU).deb new file mode 100644 index 0000000000000000000000000000000000000000..1b80751a15cfd4f0bd36e2cc1aa92c9195c4759c GIT binary patch literal 12882 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 C)~7N6 literal 0 HcmV?d00001 diff --git a/website/download/exe/.DS_Store b/website/download/exe/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3eec7f1254113824ad5349eed70cbde9b3da3fe0 GIT binary patch literal 6148 zcmeHKO-lnY5PeyDsCenIAV?4o73t!NcwU!!@KQnXtgY^?Q1Amh?r-p?_y_e(CRV!J zRZmi61|~0=WG2~{u#*6A#q)gz^Z<0Jg2^U}6(aqj4N0P&x5aj^wb*Q$ z7z4(DF|Y;oTF^^a& zvWMc-m8h;RJ~5oS)9&NAJYuD&?r>pd#)&h#_(E}EcG`Uy4woxhX$%+x%M5I2vnTog zto{AJ>|`xtz!>;f47kqdYEU!3tyGPZ{_CXT4W5 literal 0 HcmV?d00001 diff --git a/website/download/exe/Oraset-Re+4.0.0-Beta.exe b/website/download/exe/Oraset-Re+4.0.0-Beta.exe new file mode 100644 index 0000000000000000000000000000000000000000..b2c78173baf32485f177a91e7e91239af6a3503f GIT binary patch literal 98363 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 literal 0 HcmV?d00001 diff --git a/website/download/exe/Oraset-Re+4.0.0-Release.exe b/website/download/exe/Oraset-Re+4.0.0-Release.exe new file mode 100644 index 0000000000000000000000000000000000000000..1016e029ae6d115d64e8429a33c2ed635cd28f56 GIT binary patch literal 97993 zcmeFadwf*Yx%fSkWFUcr9W~LYAfv{XRK>(AQ$e#~f;%|TSU^!x(P#?QDuo$E<&rov zl6}U3wACJMZM7FqYilp(9E+f$Nq}6yO9-ukXhpp3?VuuB2#DtQeb(NSnE*ZK{QtiB zz|7w3@~me)xAm;Gp0%d#npRJ)$K%Q4|GQibqU|as#3LAzT`Q_ z!CPK^@*;mtQ#~GFSmSf(*BpxaRkB-`X9r07OETRQr(AE1=c#<>QGNE(yf5p0ca5hd z>-Esb>J1*xxI+_pH~MNk`7Vk_$o7m6-?Au7#*Rn$5QL=f^dtMv@A1qTfAfvu8%eAb zBK(E_0`qbHXZ=-sJZ<9_I0d(kBBPD}0`ph=&-$x|&Ew}gl@D#0~xn~4LUl>}vTHu9mQ}6_R z&ko8-f4k)+^H(kK7Tj{%9Sz8jB*PRwY4D?3;GK7Y zdN<^=-YxfmN*esAmU0(Vs`n@4bBM5QN}To<#q~s9 zd9>fF#abyLFYz`l_B2(xe7C>t@ra<-#6Q+zKUA&w-gr)0@EGy7aA8eV+p}T-s(J=` ztzWi!JfVbd8g&vyGx!Xd6fB+0lXX?OBz}{}c#jtI(@>(cRNnf+ry0@pv#!1VhU@g% z`gQvC`VH%(-}+i<*S>mSU_cui^mxo*`9w?mck1zwdTEdzRc*%dT>BP^kwm#Qf{xym zS1#49@!(uj)l=1{ug>G$Fx#!40mDcZ{pRa|0qfJBfI*wtsl}I3&1$WXo)ujUO$JJH z+iL{-N2RyPqFX3#m^s!T>7(`VIa1Dd1zBB+JiN@vez_|9<(_9@U-N{zYa&yOhWd$y zx3_shJq9syuJ%lQS!45ok&u1|=*nYGF23xZ%w?XT6?Hd^^c}{ z0BD}K{Vk6tn1C~FTKocPuTdTT`$OQ@ze4aUZ3c_P(PnY_UGP=!Wv5BEwHAhV>BpKi z9#3=vNK69+?*+h*P8iT)r>pnU0_s7QJtSM#0a{v|;S{}$tWeT-6}TA5(pl=O=xV+a z!mtp)c2O&s$TyPmN}As~1r+0Lixz|$&O3{edh#-_(a>YGzmsddO%`%xm>a^=YvOy6 zV;?1!E_^}ymKq~+VI*ek>#sBWt>>g{a;i5J*c+Z^n4LxT_#IC%@iv$!ARa#UTK(he#4wO zE@akJhRiw=YsML7O@Cs{r9X2OkCrcd6z%Cn(~P9=?LR;wbE{!?Sid<}sCZq!qBq4# z28$(X{IyP*>Kig(z5t|v>2N3#2Wv;dzdQ^4XBy`Fpi^xB5!{VLO)&;ZTjiPP50B1z zD+rIudMk>QxNk zhCdTe2^Tl7l`ekGe{IEbkx$j2)8#aEg$t*IHN^Sz-$D-f{0nT;5!y-CJT96qmeqO} z%W8k&8)OkcgdtXCw7=lav$BvFuf;b}Aq!k~QEmC3$n1)*21EJlia+f>rK+=mM21II z4hF&%N^FJskV8zVoSf!0lkxy`mzbIQ8O)B$Bu*S3IXb#lHMguFx>o95v^0@WsH6$x z_E=D|K7%NB&Y?ZVpeB5OT2q5njJHLwI%(~gc!L%{2f^-&|3#|vmpc7O$V;w5ULO7h z@~RO%-3Zn*(?|r=rRGITf0a-zxu|!=pGr47E1{mT6zx0mU?7bC{u9EHk{m;Iu-!US z`45qA9$xZNN+t^3f*sbb16amyL=`~q;iXFz+`JsTg@}20_TJw}vnpGQuL3`({SIdc zX$7_|9L?(Aq{t-q&9w{@Cq+)D1Gh*+$YLpUwXULKrc{n=DeNnUf;#zMfEwe1I#xgx z9vRfgp`gBT7^rV3to|;HcC`OqE%p^K!_$%XxtP3x4eoTDfJj`jML} zoQ!MTjFCdNizQ=%lM!??3MJzkk}=lFIMdB2l8hqB80KUg>t>9Sj4$?)@i9*{KJY82 zaZNI|OUB=v49m^HAHbiL4E%7ZvDwWyPBNa93=$;cSvR9hGFm0WbTWSJW*j9Mcaf1= zNb!|!sw}oxH%jVtq~7bM9wVujO6nz~e%DPck<{}fwTjf~Zt97WI#yCo%m^bAgx`5K zMeq!N`p<0fO%K2JC)8=RE%^l8NiH~`d92>OlGwanyo`+JB>rH+=eYvU2RA6&U9ozh zfw%Wrag=IJaVo7PbYHn*uFHZuiSy-vSX-}qWY8{snukMSJ$g8-szYGm{xH!nl8*a> z_am-L(y^J0c_Dm0$ASjpk`=j}IkU8sQo|F&QpLECr7LGesNyjtzwB_<6vM8zZC~eKqn16 zMpYIrJo2~@uv^-D?{kL-0{U>DZw*ix$N<7B!PyDl_b$gzw7l6}oc=0UxGpL1!Z=Tj zhPJfLzKC8pL;rs|^~GU0la{5~@6)Vf#2-|dTI@+$V$OPa1AAV{YCusx;~S>FllD*W zpX(KMN_Soc4?rmKkPLIuSQ9uwl(C1G-795bkj?snC#qZ>Z^HNZFKRpi^|JW!G?=9C zM~^ws{%a4YD?767D@B*_)~{(43*W_zj8z$lKcv(~mVu6|ZyJ{DR5iZjBTG z@@hb)rto0M!?)KcqfqL=ImP;U8qVk1Qr|^x>)nmoRow!;J2k?3o1#uj3a@O9tG2FB zS2vhRrWPf97uOvoD&t;O+F;gvVV#v#+=?#w;+V)$d$i)3{yo~&HP#;OC}5ncdZ3N3 zvFgG^$t&q@p{I502b2-t0 zHr3jPbSl2Wx*dZMcHC2#c@7^f(8|)#?Aru^G(cN;zeWvJU3f!Sif>!L&VmU);cTOJ zR*iM1g42trD^%?AA#jcrIBH~DmWFd}7M$GzXScxVci^-P!g*7Q4dU|(Z>_3PxLiNT zDCQd?^!sUoNl;3a%}qX|B8ch0Vn=T9Q>BxkeTE=cGDT<(5@U-Y{Vy3 zChmTqbj4r7rpcI;@SVmOX~t#9v44?+$y_U09#&+MzK>W{k$TGgxr};_@qZc*30;h} zsQMMPhpE-kJ=9ANAkOHTEPY;px$_e&_zTU-f*;?dng$ZHB-Jucc4-zOBi8syvTmn* z#&R!In6+EuLX>_>h9yDTIzeF;z9iiVx9-{0MgNV%5S`cUAevP6`Xm?VmP-NJB0%}? zu{Pl7NO!06mhgT1a44s`P-F?mRCC9!_4`)M z#+z~d1M_9VkCx5xg?C|s<|xq_0{n4SC=?#BKVSG zYejTD;Sr8>U$V?)8-wDdI018;a4-}>7Ff|XBeRmYFb%8e68f*e zb~PD13hSh}WABctu1<}!e$N=<7_-F8-G({2S_(MDDedB9pa^vj)i?``K^`E=zKI=J9BMp)B&KeDzwy>mSu?bgg`OmL6|p z-1VR1aXJPC%lx#OcI2mB-b%Wc_Nzf|H`_^r7BEI@RtMveYqZl2-n(ug<>1{wAu7r~ zlvGr6#!E?aEw`$3PigjB_**HTbw3?jQzRr<0e0YZLR!8*#S5fUB)vho4`e_?A_Y&8 z$U_!plfIv1W85b_^}RSn$5P8;o|PwS6iHuIHpYLX5NS)YF@8iI0>^5(Mw(9tQ7te5_i8tBkg7&6w0r9e*}!C`c$y4kKI zJ$v%mysI90$VkE9Jnv?yq~4#Q!zx8~Pa#SnbSgrhw)mnS^kq|lw+o$$F4nx&PPFG$r-9V76cd^MzRud0N7g-KA z=Jh#4Zqb%%I%VdKI1HK6_Mn0R2n^94sU=a>EW_O8tuo9BXzhUw=oF)y zqEON|iHWBW>N@uA626hNb;$Jkix(*X8yu(OJk?0MHJ;+BF=^}O*oz%VQmxWrq+09F@(tbCxKyrD_5lkjV8U$Ky>MVA| z{@m)o(Zwh!a&_J%auq4+^0hKt$zN;gyrIn#kKlIYqR4ZpvR3yEyy8WuerkAYDz8=c z?9u~|qEfw3iJ}f|l29rQ<$s~gO<6@pM2>Pmv|BZIqAfRO<((Qi|4>3@C_N(be!964 zT6~mLQ-sgU0s!qkq`y*bkak*}rKEI{Lq9Fvo=(DL_`fw78RXz@<8(y=OErUh*3l2d zWe0wTr0sAl1B-m^)}DyU+G<3XZ1t%5`3u4?a$4RIQLm%IOrhykcgd+oDhQ0E!S2k= ztvp-GY|QL;OZ?U;v6aOV#fo<8t1yZ>I-7|%D?Jh{+pV|BO;7cjcMTcM&7@i;a~)U8 ze#}aMk$KG%Fz%|2vqB>PJ@4X2`W8*pp&&jW4-{anlU~J4MB%Fa=_~l2n=hC93lcv$R@XF}Lr+sB!C@ z_$(E*Hje0;>Ef~^a-#hMW_vgg?+N?O?x^iGlA}9}if$tr?&z0zpMhhHXe!?bd>;8H zTLw$TDFfKG*W2g3C6QsCs3`!JpZJ2H6rMF0{%$lnvx zigiDe^SjIV_(8F|4?mB^x1e@Zu)MO?{EUblR^k?yk3-sc2$%bTyBYx2mOIc)Z5-`a zwQ1uN2IIg0{1;t&{W|t?#ys)>rtv44c5QjTKl8qZcY7hsQ1M>LF~zztNueGh>}*cR43*C{%o&m#EFWi;&>c{&lRl#`W5C)- zgv-Y{o!vWElHVYw*4%A9PNuc#cKX%W>V#d^8x7}8U5*^>r4en#amWwiKY3~;<@PejpThcfn%2Uc@wdAYY5U4wUGDVl93zrFHF@8js$*qm9NJ<85~j zGeD3!6}=&EH{qQIV}7K}m?Wn`w3XKh{7IfBsQbVbJcp7?`a`B|-OO;{jQt_=fF%6v zHU|;fUU*M1F(p5kI3{svp02Ixt@R#=9`M&CMud`Q1hm*T8rJR?1&bc2#!Cdb+60|f z2)KwTBnm{9OxdM(Ta}JlAK@73tC=!DF4gkMv@AXTH{pN6cT%jzQ?(s>^ss~jfE5N@ z9@Gy6!%G2V+X-e37ojP|b>@B}VdM|I9_>Up*NwaIysgn1&*DD2kh;oVCXR{sY4J~J z6(*QnBk#@E;`7NAlDCiza;?beNZf)gPWE*S9U#1EL zy0sM_k(4I$SInZFSYo%c=iZ6|lD$aRenH>C24fC00W`FwV__yRwUr16!qVTQJ#c?k z8;__qpmLg^z2BpaO4WuCR*MdU*`dUle(bm)rs#Zc9$n8*Oz97KKg}I(nEMeM>#}Tg zNweaB65jOM4MMDBQMm~UT{Zo*=CNLs1s@60CF4Re>P*Y}gIWYCTF<1+dW`3^p>@CU z2WG*;n)~2koPCgzE#cD`HDcvW0L113NXUUA-Lt!r#G%%TG7 z+U3||0V)1P;)=Yz9e7uArY6B?-pqVpz~8)o%9Km|T1-smB*xA*ZMjB)N!X6IJN-Te zjEe~gyQ>ka{yNAG4sg!+ImstAVsR>K_sc|R5)#`Mo-k>Qq{laqQq{MHbuy3DEJK3| zh*uLPL^k#xq^rz8h^T@!aS(_&(2yp4i^>@2O|4gU zvCmm$R^t$jg&U=et`aHpczXOu!`n62K`QdJ@|>MUUMJCBK;xNsX63orb0kgSGYK2f zq&?K8t!lHUk?PdOGJ32>r1rU_2|iA`(|<`HJtRF}%FiR+dXyseKt|prJlJm}j!F;> zwdqh+u?FF=>aI&1Hr<$JleQdp30qq_V>w?LUqqOo8aw!1r@vZE;sM0)#J%#6@EusD zL@gX)$b<*}YmI>&nf|+cegf#){VSz?z_o=d6rUq)X&(Q45d0>=1JXa?@^>{ISDRed zG8|TW_D;@&!55I0dSCHP`0kgy7!{S!D11X{fN?SNSv)$2jMVQ3?VZDqxR5>dp!lz@ z92C0s!{3s=#!AR{Wx@U)&x7?{A+l! zfWBoY=g7<8$r67kdD^Q>Wej|0pmfzrXr37J81F`Wd-!}KapvbLY0^`C30)E+2mVeJ z{=n-7!*UTG0g(e!@DV{1ki{g}Ft_z=In4ES=o;RLK<^*Y_^caPY@8A+pG(R)UF?-b06nvC% zWTl=`j7|M^h*gbGEE$U7633#$53 zCk_D@bP?PbJ`vY3;SI1xp%+I|1`~*r*ybpT*bAg}`3iYMH!`!fYh|+H$S3oc$cG8v$BU(V;kQ&|b?UVY z*Au=zl@)1B__}$*6h)qa)lc&*tS(FYWlKqeAz-=r2Fo}}cmtjJZ@VPp>B}TI3 zM^K}8Tt=Q8dbEek4(P#3Kw$HNr?Tlm&*w?|JlN5q1KSsE$y^F0YBRegi_8zL{RSQQv%uVXhHsWP-+uOwyY1O4Yo zeZ=nnMt?|d41@mgpmg0(fW=F;78E$9Ug5!;5 zTfIdKJjR*oN#)-4p;6IpkT~n=thxe4jR(v!gXQyaXc&xS^*y#~+!tuJOzvN!(^@#YytC&Fr*FX5s$sMyU;1^~n5XQ8Gi*%#+x&xh#vZRG>@q z!SZ_D>~oeaHbeWJ1Ir>|wu_ARkNgF_S}Z9n=+jIV(>O`@qmCEdC{XRiKI#UW-|;jF zy0LQMmC2A9EH|VxmDt_SZsBMirN$vb7z^nSIdQuOu9>u5_%k`rhh-Jl(7=j7$J;d0>9# z)}KDKe&hp}C@WKBq@GCAJDvJ>QlqyPdTqh0Yl_U<2T~8D*U$Wl4X+Cuw98&kQ~wo3 z{R4r1ZROf5>L;%nh;tg1$Pc)jpS;Iwc=x5oru~wJDac1oVtRSB!)rj#>E+>x;&}=^ z*NZ?+FAq!~xAdL8>-`Qnj|p$G&c7B|)5}wvIPW>7yfZJy?*O277LAsU2T(SUw*X=! zjtOscNV@wP2TG^gKP8)L8Liq=(QkGL0qH0p@*)>t4&{B2p1JrzS#3o=aJm^k9zxl7 z@!{~#O&vypBBx9>vj!x`UX5dM|D1co^t@&?dOPj4&tSG5Hb-zyF#rsZ=m-7vT4TJ45t z+j087b}{kck&V%N{2ndd$~-5SxVBIatkbo+b*u$O+cdQX_?m3XRjk+dwl|3q`&mfj zTzbo6RM4B=Sr(M#O*yDOjD*@3azT#2rl9#st=V7u?8`4Xf6X6Aa}J)NKv(!wraogE zqxbqf;W7qbqoO}_GDARrZlpl(^qf(P1#7KK&SCenyLR7BKC$Atq2$CL)p=PV>W{Wn z8qxg)dW+{y{D{qU=8n{pt#a~y#c`k!GIs_sFBJzWIRCYD68jtjCT{1B+GJq~ixA;s zanQ=Woz(-CMxa~VcDxM!Iz0ew%OOp&BD*h7-kiso=?}How*Xob-@dd?t#bD373+8l zn%5RCy%0jS36t{mXbKB+Z6R3PeN52oKFu?X8MSP1Xt91u=nOCze=XL*OE7V1eyfmF zi|wW5+GM!gt9Ry=pJ@d4E%2utI*GoCzAAG~hSc!h!0goUO@fj0%dANVie zF&`6NXDwy$rD{rq$?2ciQ$jWTgZ4j5rOS030jkdx^ zxsZ1U<5Z|(r-#?9>X6&^9PYa#>3tkS< ze|B~_i5}g5lWuOTH8(S0gufr%e+Ngskjd!&$>AGn5{rtf+G-MWu?+(lhOVIbQMB!7 zecuLARxS1i0c8Xuy`oo-9=M~%>rGR#iGpRTX?=>w&$q`Z{1wyC~2McXSOA#6xOzE{Jh?l$s507iL9k$}d7!#!;M>}i-r6lT*tA?Z z5P8i=EZLoyc@UpTi?J4=#AL;32q^1Qh@MfgzoJ_l%VzSVM@%-5(qN!nOLmF4R&)#T zSXET=Hlm!tvFFZ+8t~;7G!c<(d(@CR%)?k%GKafi=f@Nju*QOsyO&( zv_MoqTk$u*fK8CK7Y-*Q^~sV^(RZ*fa`%Tb+I56a$k^Y(@vg%e@1`Zgqr@*{h>`%F zEVX%{M>ekLm}`5qn7Cw0kDPvKu|1TK4kV}MI4aON)mxdmT=?fuL>&fA!_<<023ftL z4b5|P(4~+TTcp}@NVD<_>5~Ii02+ZVEqaMd6Y8>zYX6b)O5cxcOO7Q9bEtiKnEHa3 zYuc)$iHvEp!)ydO@JuUf5RcokL6l^cVeX!mEID6~e&FQ_jX~1(;?HDgEAR*D+w0Jm z8RaOi5W^vm78@`2B27Tq`VF=e3)`h&t}V`_!b7Tr!(y7^72v?!ercF#;dz3OQ#(@Q za0^SSt@x`5VK!y$Z)8e_uVJvs!7?%!%Gen%MV!zR`&IUV4Kdf>^Yin7l3*8oZ0jPPua;M^3NVI<-dXPv$p=I-wiR8x-C_{_S%a3-j)QjdvVD0%ZRZ|Vfa zmm&7OHt>b`XXh*Xe)#+}Jw0WeqQiQ(E^XkQS`j9#2Mu$V+MU0SC7l?JiE(*j&3L}8 z+}$!UI6ObS7r6;|MzU_NzM5g1C5+-wvaa7+dx>Dav`Tws=H5ngdYL(;#NO{1k3-=9 z`csjCgZAA@;-J;^vef3r*7SO;p3w1X+su~@^Yx(F8ImxLt)jk2+e$gHttYN14py`U zdbO37n7hOk`FfYGycD&Q(DXsE7JG$)j>g5-@tC}l;0f{Wh#PVJI|&Mi{g%AwM_#kL zVq@y0q5OsX=4NlZDfY98V)3?RyF|}$`{Uibs{xQ5DDe=YJFB@pBRybuz~IJKbR2q= zQmlEW5~l->cV0+&F~g4nL*QwvhOeoFklfrc+=zC0wHLa9WGw**BX@Yw-YEse;WwO7 zaLc?->BOX&{N2@QBro+7?xVJ}tUppd_22jb`d+=DI86{ORtJ?E_2}Jx1}fQxVu>|J zQ9`!T2aGIY#6O2!_83x?yd|b^%6ZxGG@lSF$Y?FAc zf6ek|T=vFnf)FUu^ayZ(i&$5cZLVJpqR))g1?%4DifTd|TS5_MCDnA(aaFckW$ z{pacV`#NMYq{VCbZ2DlB7H=V6p<2j#aGD+GC=3SIUzU9!SEgO$h$eVTIhj^lBPnN3 z9g;45u|D6WdLVYgpdlfM7MHzGxEOnPu)KFS6mtDGRqr|K;SfeXQPT{CkIbyCUz2YC z1B2wyEgN4|FRI$h!q*QY;6!ugcXe|iXmFdvy@3&x620eg#&%8 zKWVWMuz25;d=W}5{*@wGj@`|-;v?gEyvMwha$~5ww-d6K@Q`}LkDMlA z{C(;vjg#;G`5jpk@`B{za6)JA00ffX}O{UqqZ>z|# z>Yo-Xa*}#gZ~G~iwpZ@{q^`tY7n+!xFc!59yY=?|vBtbtzT4Q?XteJ?C0NnUsZZ9E z+S~V!)nzeiUYnEGe@aES*&ca6G35-R9V3NZQ_es+J!)mt8KZlH=IcaNX?6X{%X5Ne z8?IHLTWOAVS-Y;b^n-VK>$#D6rsuT}uNo!Q4HQ^i7;3&iz~p1J+|E7~Rf zTYF4~AgX_kJk@72Kx_Gw-e|GSgS`{+I8yK4{xIFU#o27oVx3fAt@1Q+$MtCcSBqyQ zrWfmh-evXJlbA(ru%d%_J;km)EK&cH*?uZ*NBrbl3!xnSNKffm9|rxek9N>^qXV&H z?Ds5=-dfC}HbH;_Np8NAqFb_yW?UF}hj7Aw`BY}#q0Bf!eTe5qD@@gwDi5SWoCZL_{CYybFuHOv*6i>27YX`(O@ zz5CeMN;DML#NS&~n7o2ApUG^j<*3?rI}e1lm>hx%nmy5XG&b9{*c;S>Tk*c7!^B76 zsVBUKbwG3Doo&&M3#cC~cq8?k3tt_RRM8QmU}A4i-K|k%zQ6Xg;cH3<3zVi*l(G-?V~*FO@;dNq8aRgYAb%~Pz~zn+KWVt?++$NkBIjLSzpsG-_*QQ znZyHL`rjAbc0ifxJ~79#tJZ$tl!}hZqM6nh`_qH`@aT&)Yi!UwSATQA!)mq%G5c=;yR~XMqg!PYP^v9)YRpf{%Frk z@e@_rh&|_mv|lI*{W?5ex$ZcA(f#Am=ly4dUk9*tha3TW+o5|J!E04J8PDp2ENtto zNh(*yBg3?VxebMCENbNbkw#s+ooiZeYH!qDlkJ$y9k2E{OiiXg+blW0sjhIvuSt8F z62e*yaJ$ZtSLwI%pEhyC#$JmiJ9b1@!=x=&&JE)2_&-wap-ee8l3CWz?7u|GA7bxB zqU|YZI5L4-A@O5XAEOcMODp}iy;wWPPN7)#Hucs-DTETo?OjG^dnbt*`U~EE@~vY8 zA6X`K@J5DXa+8ZvbZz-DREoB%rM;HRxEYEZr=0SSwUxgj-~J&VgLCriYOK78^s2UaPb1GQ zJe%E(=7VbcnQ9XBCx1M0|EG$><$yi7ut8eBn259F4R{H)$N}-@ixN+(3bL$N5O`Xl zvh*lc0ErzhpC9?Y(eN7EPQ_Rc(cAYaGL z7F&G~ZmlNWwQ+f5~-j)#QojvRf5G2XOg`=ZoD1E?Cm& z0UvRrhE~%N-A}kB$0)dOi7W{dm@kw5>(OLe;>RJ9gO5<>kpA1Vz^|DAiY5xyCa+^x zN!nfjAZfd{q0SRNmM6x-;X(uLg?4F~{mbrJ^DVn%ZWn{A z8dKg zKE!q{{w*+U$)8f`DqLXA{iMeeXMrmU;2(v+7CbnBvXr>2ONEG zr%#K&I@sjQe75qD&zA8nb81b3LO-dg+HTLFp1^#@1tjty1EYN*8A8FtqmHt(XI~I- z?9S3swcif&(K32$G^}H*{xnn^!z89e7&F{KR*PTbN||i)ga~1o5F~8IFIqo`q8{s> z3!RQ%pI%X_&zH%~9BUqY4`Ofp@wQNcdP|E4<|w~DZMLvuV(sh$uv#gqTx*uy3pB@$ zq_OzhA(_y|o<%0g4)HJHb%+$%6Uk#zbuL}8$`polS573IDxCNh1B#TNI9H4PlDcA3 zoSCQ+L$y|!#bL#Cn4jTq7H`D`m}BjF6R=yD5Z5MVdPKODsx>&K8LkR1l`1wkPdVWc zyrZrWMB2=;cRL-8j0j*-*>)pUK|-z9EP_l*l4w=>qsH&=(w3tkGcy_zzG^$ya)ipO zw=XWQcGSCpC2d=#^oJGJVs|4bhgIm43fE;-_+4J)NjYfXSCHRwCa^AapA@ciaM$8L z1YR}=u^{$;58_$p`CXnCpG0Af6|>FQZu$4UQLwQF2ij5F_K(H}3pVN;CE2}94{X+2 zmIIF?SLJ@UQKpETcVIqo_prhyu?WoRIY=YrPlKUs#PzGX+C%LH-F)czJz89rxPt|Z zO;4rCXl^DzJ~E3nVim?^&G`qNxK%`g@lhF_Y?6NCFbcIwr!SNh1Gg{~!cRLgg%tfq z4JoX}#jW~R6~4m)uKgBNQ#MIL;{2@sLkaG&_e|7Qp1>p4k85ux@<6!V7R$R4BX#g% znVTTuN>r>{<+h5S0LB>(7g0-j#=LT*U=I?n#Xn=Vs;e*z`vV@uSeHx~VysKw07^Yj z6j09KB}*r;wQrsI7U>g67Xz&X%{A!Ox;M$$$cC%ZDH*UG({BHs7DPC(T9V}`+Cxra zdT5s&Ehl5K;1lmzozq6GnqK>xSRse!3LRHDF-ab?zv-nM5e9n`q9v2f_$NZ%c-tBu z30lo&TbB8>XWHx)0#tjk$37?zXx%+5TSVpb@s3*ug;>%>t7(r;%p8fT^`73bUp4-;&-)?;fS1j15-` z0!=UF$@GE8#rwE}@OCbTQga9)+>>+w*5tYlMzk~6<-%S;LuDv}WHR1zGFYx~2cj%% z=}^ypmLf`Of=b_fGY9o;w+PjjgUE}2V6TunhyI7ZO#CQIPMe(lel%|Gp<$#CvI!!L zSMXevl8_y0gO>Y*tv8!Fy ziIf@)RW)#g{R*=6u54YaP}O+?XE!snN}R>)SXJp}W+wALKc)RY70+3bzJ_i;+k4RrniOEoX4oR&gl_%bl$BQ8J%%4Do?5 z)@Zl{YzYc({9e`e)Gq~JHQExYm8dp?c6?bknfGISXSrRYd~Sp{~a>lB9^YI zEpbmt;O>%I^W|FeHSK|uWT;49Qx^TyTh$jz-dGlDc)Pa!-JEI3Gfu4YzFU*XMKieI zf)QiiXRHEaFwQVL7kpngyK2oh>dbeDZ5eXrJ*$_3ubw!%HrkO_8*R_i!I^ES*9|X1 z)NA$;M2_Y4hgcQD=`_jYjU@@f!T!Fmt0pm0xssjeX~^6o^Y8iPvfj7oHqPx3@1CLI zzj#!3AOUID!OZqNW~v866-2?|Tz8oIK?zwVGRO$LweSt2p{q8T7fa-`)^$G8e+H8{ zhrdb?Ck&ajWH;BEV4*Bh2=$Dpl~)^Bzu*(8uA56r0Fi2Mg@Cd?B_(R3sl2+tn+tYH zuG^)bpDJC_%nHnO>c>aW<01TW=F7|$WV);;DuP(YG9F<{r9rZv=UVe6_5)CH!nTMC zR}1HoH%=H$$~e=C?s!!@;x^eMm1e3Ga_McroE4u$!ZTW?CH0eXYB{87Ln z6e~_7Zb+NAdS=7-T;ZnuZ9rBHaCKOuQMqI8y+`7U67K(p%UO3}2NSb@ z_|kwKV^9|RA(Xe^mJ0xgJURewR{$i%x{}hWfBi>*FBc)I?{g9zC7pni_N zcTHsn2;5&|8Yt~ci1KIFs#19GNQ#J!Ua`U3B_dQTr#zr=WMzO7K$$;s2ErPbd3g}RHqktiBx`W;$AN7G6}zeK>pg9C zoeXGa?a-D#gcQnUoM?pnFZvJ3k!zjBq$^!){>bC0&UHnehU)QaV?U%?kg0UN{Ki+OOAvcwPqy*O@V;#E0j4TTY8fSDz z+jC8)ed`On${@U)4I5=#ZP`J6qX7ZX1HtkV?SWo-NB>1BV4c9^yB@^=m*SERhbKZ0 zmr;~=d2#(l8rv*p2>drDr&YFSVqd^yBZCE|Vivfw?k;9(eEU7axc>tY2HNkPv(pz+}KFArfKZD79S(5srCd;p0 z`V=Y#b1l9fwGv7uZY!UW8h7MThW+!vexgZ`2yN9Br~pf{#z517K=?x(Hi6{_R?AVz zI@L}431B*Q#HGfo;MOg;&BH=PX~}Efz*A-%gP5Yc^2bPqtwe7KN%S)UC>@^58ZKpq z=Mcf4sFi$ zV(K`M(CsTZu9(WZ8P`j+Ff}$1eZWDS%mxvAp z=c1MIFEL!;HCM#W0p|srLQ7B#vlXcQf+gawyd0f9xdZGN>$UiUsD6y8?Q}Y;KR=er z(z0H$p07EC=;rCs_r?az-zdcla;Cw%1GG+3W?v4bRa^g7Mjc0SCETDIcSk^YIrd<7 zEFBp#d#vwLg!ToQoU}R9wZ}HdCQN)97*IiWzE{d!(={=?m4|q66XO!x2Ne13LW**) z0ekceI+!#WuPd#)8UCc@N+7IwfWo4Lox`iB;}qy-OB!G@hA4TI^A+)rsmo0m00=*t=Q{fBj&FphLU#?1yg74TRO4{-^-)L zXVV%*>h+fE2Lg`!pv9sjs)MkfJ&QPTJvz{N4+TC}?=o94Z7p^VbhEz3Xfd-C)swP@ zxxq@2RBLW4O_CIk{@b`VAB{BsTi9@0=|q1=k6=tE6%YE{|})MBq|&0RGuIU$qVV4CQm7#c^uf6SPM zl~C%f#de_@b-;*i=AkyQON({$z(m`+Rmus5_9{|ZtxfW7Zh%DgR`3$@XOKjk|GurR z)j?#y1S(tORpEX?NCsW|=YVj=M={w__W{%lizwDRzR)r8$`2+UwnR+R!!_F4o14q@ z=oe${$&8#KlQ`bb92uO0ZYYXCWAhO*L30MVX?9Aa0@7iXfdv*^6axC8R-I0*KJ6E6 z`pFyc4&oPx&|sM3w}XR#Q3~KH5ikbzC78ImyuQ|Se%q#w`RS=nf3ljjepe*D?{q~- zy5zFM{1?6DIQu97#w^wTOzuH?)B!eQTnc{3(l8(E%urI=*w?+Xc&VnH82P^wa`hl=2>_m+!1C5c$`B}y*W4P2JOAaPa0BI|Zh4MI1 z^O>X05Ie}IQCVja3(u+ro1m;|$s|Epa?{pZmJT@9eIk|y(=I(y7F-Kjs6Qw8tW%T? zVu^B})1^A|ed`m6MqN}{$4H`da+@_8yF|eE?{p5*%9S#z)dP-+rCA~~Kn5eKD>eQ& zO~#P98?$Qv$uT-}NuDn}$Bp(nlYiwuBMoA7#HEJFv!UM{)=j;=if0xIg&(p-TqeXv zrj2i3gk-6alK`KTCi6#1Y?8KF(veA4&=n2toY0tJyvKxVr^=fBlFTDzT3V0ZI7(a- z*cy4UCe{;S2Set}#lAn$0MBnQcV;i+tWDZ-xxOAxOy;pTU@Bw}8sK4ZMz55v>r9VI zSYK<&=S7^Vqtku0KVmyiO)Y4cIb^lA;%9UTftw?$5f=4P(r3$04-D#GUA|+ykHHcc z$(e+Jt~VNLN^04C^;QO3#+=8{Q^azPl6|$(g3!uLFKG4> zob27GS9Dagv&Q0(KsR5NZTDHCfwl*y=@2h3DOkXlN-&;MqLU%;t#%Z1 zBsL&hF>iILfnq9!4AFl`e+S45j#^Ca^LM>~`F`PnQm>;)6)a^Ku1hX(@c!677hN67 z!+XK~2t2%vWRb@paS#E?MbRy9fecZWxptYxF0K7;c2(I`&$NkA*07@KATceu|0;S-LpBI}2G>5?p*` z9$?Rq;peh4aZ%nzZWsVoZh>VP{Otu|b)gwzz^GfzsN11E@F++sEg4h5@SGBxgK*WKwf+XNFl~1Q~WCUTQ3Jg(Z_k`d|$TPm6_PM{1A9b)=HdZ zpnJjbsfw&3f=sl-PsYNd-5XJN$%{{W-sA1yDybvvS!E}==T#EE+<;u>mSeu6#a2T% z1a2bX<`HhjA5&RPjGr5?r&M8JOTxEhg1Y=I{E2db<5bCPhX&od<(B*YNGUwxTCQIH zFCMwob=}2$ncKMdFL~)W`7FAcy4Hiu2&wNL%7~T6*m7|}^qp~r*SWLt`Wv|aZ;n(= zj+v)g&I$J>e3z+5EX7G}CEjpUq zfi2)u#e;LfnsZlVw#+!^VJ4WHs(P$;bSL^{!Lp!4-CRJOhD}ByZzBO3&b^^r+h)$p_E5wcYREdJx9nxXfV zr_Wy|?&h?r9HZh#Q@DF<@CK|zFj2;F!4AW_8@Je$H(8!;|HL17b=giCq2Mh4iuimcesJ|{n6)R!)BEk zX1$zitdxsGn-otIz8{_dtCB?{&Hw;wj};pgx1t?BmtA*GSu>8JR*x(V(!z^?+i)HZ z#-wjJt<>j7ex4S>a*_s0FPfMZ!dSYUWc@hsIgPebFT&3u``g^LYc$L&F&gf1;uBsE ze6@I#IOeY!4PQyfOoNpieU=`$fkS_n=P${H6P5%ofemh?7E`wcB`zIc^?;8ZzbX&hbasl#Nd{5$MV*NXUlb%$8|{=!c>Fhen}kT;_D=11@pVA z4@wC#7kpHgtShTcp7A6TiL%;&U7MWvf)>4>TpW3B&S8pwd?-2hLnb28_YZ~w10ij) zl^T;}RtM!l4GjT%VW=i?lmtnzZXHfxo`?^?vEV!{8{{2s{KDN5KG6~Ka-}l;Z6k(3 zA|{N$fd$*9n!)juVwefo3!aW|UsjkpR_PNL=7gcvl!Fp|0MkCznN1OWup=#+gTdI& zI!0O_$QG;hUn9 zo;w?Xj{G-r`Vmh9rEfB-g&msQr0?+1)VhB@g@0b^cLVss6Mn4Z*sa*gTrq{$yQ)?cBpZjv|s z%B&M(eoU76TB0^z=kwN*_OE@MAo2b)n7oA$jrGJ0kCpf)iPu<9yv8pDWzm!kTI@?e z8OcRu@x4p0PEH+WJj^YLaZu>zq9+b7Mc>H_pH`c!8SM(a5$FvM3B(wrS4KZ5xaJ{TKH7T&MLejz=0*3TywS8aH*Nm9dY>(E-_Z#WeDJHZBV5Om_HH^cGi(E_kz+X^*(Vu%2O>30x%e zdl!lNgF+cjV6b-({;bBl0^fw!0b}%iT>o~E-XGMpwVTXW*Z2Vy-8WWe z`;+_D21W$UoTW>G$;R+-kl?G0tg<60~pmgr|btTXrJ- z{j3P=CWv{5zc#ROVHF1xzn}!O3xdLl`;kzGHYbcw>|S4VU}WTK;0@NwF4L+m`6d_Z zS+ReMHCRXx8cqmZzrMvvUS1kB-`KJ++i@NJ%-ZY{C%%e!cMK#8Ug1k5%&HjQUyJuZMD6*F zt8qo-hD^nuVDbw87ItFl%YqfXQ<4uJ^)mBW^B8lO{1S}ciLDeLww1}lL@KB2trm_1 zljbKBcj{|vIm9_Kx@T-f?_ssEuR-m3#S{x>Y4KIm#%X3!e|uk?wTPQKICl72b(t1_ zlN@F7)xs+ltiz*s8S2RNNBQ&$F?$EnD)R$wb=9|g zpgOmx3MjiujZKR1^1iy74}Hxm(9f0$j0%~U#!}bO zvA&k#aJH>f@}jLeN)|4~sg?qfPY;<;$|xS^{9kY6q|`UFY(?5$%O!@~*~=Y^lcN)L zPvld0n++mezdKTX#QM@WzEo{RcWt0|p|5FzC&GeW284>A=IZ6m47J$hg(s!`*o69h zq+tWSNDvdgbzE)y`2rhkl}|B<0v@?}I@USiaguny`jGcP_Pcxktjzz^?+fr-J(}}l z@OvPv5m{dfj7fmIByrVz9B3?frT4+T_}lq)}`w#RG1>w9L~a z=`-sNK~+s&xy{8{r5GH4xzEV= zHZB*(>)C6NF+kl{`g#appNf{Ur6Auy^X76tTLrbIrRLktwyv6a$b3q96j}JY_bVVh zjjTQreAy$n*k4_TD_&TW;L<*<##YeMo+09mgVEuW;ysaRjr<_XU87ra)tudNRMnLS zjjf%zo|KK?FU7l}AkGeXAXsOplj|DKdq>_vq$^1c1zlTtQsy#yDolLECiV~hLy&NcgYP`CzzlCjfsi-}0FHN%M7?M3H^*iiL zoz-pc@(Wde0y#TKiB{`#_6@o`Y==9)k>${%S|=`B)S4r|aE&#gmnh);3eEDP7+~p! z7Q38>=<_N*N)`<#YO#NiLc~QAg&|z*5?(oQx{4o}d@xg%9V977IDM#mqSHAxVp^y} zsz-}?u~X8|iAvUE1>YR_#bCvrDC-A$CjApC_MAP(OJ^hDV+oM;ZCE=GB1T`4V7 zInE`Ahw*bvjplJxeUSAbOi5M~F)60b_s$1GFx?E@Ai`3P@FHT)L_1Tfu~qdAMoc1} zoa$MOh{3?4fuyTjUhMCwfk?qGR`6rxO;nIjpV$o~z-7Bam62rG&zJB2*WS0l$90tV zj$XE6n?#8dVnS#(!HyLYD~jTW67pDSwYHS#vC&Gl@_?h&?vb?dYIoUP$#S3|(g03K zsR-$fX+v28fdDqu4+8bC%@0JN)ZC_^1_-`1mkLNBP;RTzz%`H7_y5i7oY`4Dtn2ny z?#;1}X3jU?e6RWDeRdB28Ow|0?l^ezb5-awuj9YQ#_vdP=s<~`b02kr=X~zgiu-0s zit+nZ`%R~=(V{9=;qSlj$3evI{~|w2)W3S^oxgq;D#CO4;q0jkTCe0a;Vi6Gqjpr{ z15x5obuoXY-}+sJCK!7=YwmltaDK4)x!jsyb9Qb10(3QW?(O&sypy0G$)FzdZu}pg z((SSAZ}2^a%`~&b7eMZRu5jKtpZf+@EP2m@ugg$9#}qTR8C#1NeCc%@58puf{R{2_ z1cN4gA4LK$MO%9j5qfvcMg*l~+JOH1HLrs1|M;9#`_z_ak#~A}@$fq`eYx=a67OgK zm*KBu{@?CUjaN=>8A9Jj_U)Bns|=fDc$o~(lVPO{e}>M9@_k>1&&u#=8Gc%ZkIC>M z8Q#l7#s9~Dd^cKU??TO4@}fqNZgow4jRpPB@Ev}sbZT8xoI@m0|EPK`$c1K^ZCmrb?cRCC~FE&nn;l zD`7U5Oc&ThEXR_=?7(O;<+9=Nbi9zvq*=}_jOWtJXgVwGTP@Mn$Y%`C__az4Rd#<@K{^ zOHL$-USQ~8;2t-Z@$k3SZwg_$f0c^Gw> zBT3iHxv_)?+}_aG(73JFO}VkW%X)J7TL|>JS8mDEYgUZ)=VK$to)HOmX0l|+{2Kx{ zRSHe-Rnwu!3(+qO-(IqsiETRnOcWu{5m1yGz~ZI= zuHJDtW;!565p1};Y}*9Wge5!H638dVvMCq-37MpLY@YvipSD%H&7qx?1@G>rM^sIQLH|V#aQ2{8$g>jo+<>Ac{I40Kz=NiN+E{U z1u4|v!EaF*_5Iy#N($A8a_zX>4xC{WkM&oOk5VhMC11Z~U?5B~#-$_j=*SEr|p* z!GSH=z-TNVNM{1cF?hwcJlZ&Fmji*l$y{MPmbz`+%^l>KAv>HE9S9oPf}5wlCZ?&V zlGFJjxl94HRL%p*!YJB=gd1p_+%ie^Lg}8(yW@!rOq9yRc|{<1Eo9=El&&RP5)DG? zrSlCX3n<5XsQ1(OBrU);6G#u;Goqp3PI6VCfDXVdP%YV#y((}p>829&fC549lo|)& ztRh@IaOza)eMrI<5Yl}o?qieoeceF;8%0R>g}Cd}P*y68G7Ui_rau2p^XrrJs*@r+mH=c|>`+{UvUqb)J-u;v0POmh$=1W40_rw-m4R`L&=)cuyj12aPcJ=Wrhe|9eSSz#1j( z_aRIG_CIh_p7VjH=zUh=5u9Kjz_W@|e)45lJ()(M!i#_}3K8_=&9P7>{;_vGd-G?G z55Bwpfv?>B>w_PRY;60+&DFp9-4DES+ru|B-La>io(Y?_Cq#I0P=uRhSS!QxWhhed zcS^^2WWKaL*2y%E#P6dpI9uvc{1xBZgB&~f2O>Q5B@y0zl800GHMCIr+<9>x-uLZC zcRR*l zg(=L;#r4$vCm#9qvya|z?Z=+@)@y&!aovp{d#UZ;&Uw7)1CKoT_1Ztbb4w_5BvHTS zxM~(uHZPR?FHF~b_Or*{xBKV6y!ppfJd0zIoU06JhodAUWmII@c=@4C9js^2yet4Ks<=>4Y-4d z)9eKFz`ewD^6h*P-hO0@ilQ}}V*LBuJ%^C~P>BTnI; zZewf!aS9)3giR2qa0V|fWf7$8jG=9QB30wwbYK5N||yE$$PDqa9$)*D>}y z#S#7q?w1fRBCLEpW9<8|1;WShi;@k9&mjCK+?x?!K=>QnS0T=BhWV6P5OE4)A;uzzXAxGQ_qz-6I)s&B_zB_xgxG>&S;Vmi$?$e7n?xM14zm#MDa0cP z>5I?zAwGq04)-C%DSYE@lqceY2ia3QA?txB-2N1pw_eT&fB76?_6NG~>*$&$x zo<+E`19~7nh45RrpG2J90^h+si}(V6CB~MagQR-VmO`< zcLDKvgoAPLL7c*#QP=_T2*Qu#p)2CE2%8Jodqq5m@a?$2OmKv!aL*x*!8m&m_X)(O z5&jwO7YGO8*a7H;_!Pq5n+EO+fFpbsJIb37pGSDTSb4O`%&(QPb2*IKSCWr zoc%HIa6du#2zPz}<%oC?Vb7nSeLy^dFjz!+5gcI-_X)(O5PlZ-^N7zPJc)ZAajZYH zX523jKEhjZFCdO}XLcvrRXU$thavaupkQC(S6U4^i=s;0JyVo0y6 zen(wZZN(v00xyG8TLB!2|4zbRDsN8GCp!N4Lq2%#BJn0uwg;4K3SaVFQXYx3j$|eo zR9=cdWYXull**}OkY!P^ri!g;t!%6qEU|AX{FP_1R~}l!>LzR0`q65(=KC@a;ZZ42 z{_>cuZXYG!2s@C;N&1bp1rSg+){kC|_XMYv< z+keAaw&Ahb#;VUGAvanxu!lGog~@g~8uVK(c76;FiOaljV4BHt8gqcWV5;e#@KRE9G$d|HOzmEkXBxZzuZ z&g*2@B*UN#du2EzLnY6oe4du!M`iew44;wV2^s!Sh9_mX;W@$gA{lO$VWSMMmtm_6 zJ7qW^!$BF|EyIEg-zvj*%J4lhJS@Ya3_l^mCuR7Q48J17ugUN^8GcuWKa}A=$?&8M zD^Z4Y)yeQ88E%$ggA8}dFet-YWY{OeK^fjH!-5RoD#Hh4sLJ7GKM;2R|J@JjE84K9 zSa3twslqN(Dk}F`x+}u8QCA9P->=x?7D5p$LuYW@JK~+Oe1Y%rV{A;%U75sq%59IO z6DhX^^B#g>&m}H5b{Ko4ssjty*yF;ENGbWBS79-8!UD4^s=Kg*m84b9zRW)Cw1%*| z&;F<;>K6LbqnuYFJQ;WS9_MZ>dbv6FiJEB2b+hbiHGQc(gxE_vCG6j83A!V^q<`eq68*<{~ zIc%Iw3Lu*Tbi^&tz9BYr^6c$+rp0_WJ;Cm!cxFgqK7=Q1@H(+<)+rp!x{UpyfZ%-v z+LooAIIN{GCpMNJaoovdfw8}4PF%$P9Ch!J92g)=PD{FU@}CRbo@1|&0#8BsM{1~`np zr&?ekV=Z>8M~kc)|?m`A7-ztp&eDcPr@#*fuixTEMr$v3|7j(rrRihpej=VL@ZAa3 z)w~?OY=M_8aHcFUgEbw{sw++vr;EknOmVh2S3FUiFTPk@D6$XLeJJoDHjA|--~@}2 z;$Sh$F$0eWA8&s=^7z2xfg_Daf=41p29IQqOdXj%QamzqWcJA1k@+JFN7&K2qk*H1 zM}tQrM+c8)k4_z(K3Y6Fb9DCT+|l`?3rE?fMn5(4sbilyQ_8$d=X5QA?Fv@OGu86H z!49!c*R%*Boa6xfdi)jmi=e#>{w=Wp)%_Y)!3&etSeW4e*d$_DaAy@$7o8{Yu%ye@ z?&UV}_#=y4W zA=*U7+eh0{$)S;W91tYt3$ghAZS;N=rVkiKy{2jpJ{?Mud{FkoXezA&M;mxhR$oN ze+oS-?q2g1WU3edR&ThiKjiH0!ZgVD+}6|QM0$JLScMN5ZE1svyiA=f(LRRNGR}=k z3nTSJGVbOXG1*-auah+U`n$tUG}I1Oofv^~5*!w3>Fw)i>4Xq_oVIWzjF2yVKPX?P}=@ zwL2oiSsudfesBwQMVyxIHm9|>r5i}sHnDX}W9;0{)-R0_?I9tfY(oiJOJ~226?;WV zGUVsUKx1c@q?uWru5cGSXIT`dqpJ(ELUJ`;zFglDO1&KsShKUGuVZhRo$KMYghKsY z{eXv^p8mc)JssV9oR(fFb)JU<*Y51u(;s&Fqm&H!!&ng4?81=_EBSmcnT+2VZb6<4 zJYb|h+D_V`;MglYFwyUX3nP_X=z-gM`dbxvlLuDVJrVXQ52}y>y~u+`TH2gwdrvR? zvcEgj*U{6>UTvoKhWq+^yQA!454^jlzt_2?AD+|M(bdt%UgIUTbm9eIr>|pAd!N(U z(-VoZ-|-UR7=8O%dZ9>fcy|~+NoH#ecZYX(giwLmB_3*LC?Xv;-~oHXkhZI*tz-A? z>{1U*mh9*bwS`0MG7s9(-51^y?seLBBS)B*PL#dYOYe#FIW2qo*=7&avbU$BjS7WV z&6c*dUbe+cjpD6kxKw{9`PH>e+zBsVB)OSw^-=^`l&aGcK~1A-AL7nZ@8QTYi}v-x zCMcpSyd-X{Ugy^Co_*c$)d;B)ZH0AuqODl!(Ef&s&aEFN8|_6q!f8?l`^vMW7& zGF!BzeK)(xgoQf$+SoP|*4oD!Jcv-pY{*)>I@r}qqx9Vo>h5EWOCz;*M%gt!l(t*? z(P;K}qpo$bCNH4}ok7QL-aw=9quuOUFHIVJH@bl^+wQ@`0}*QKT3VxQhX*A)w0CeP z+1&xt?=+L5zNB4d((c{8;c$dCd(iMepVQoUZSyV?3=M8~UzA>WH?! z18QCGVGyvtTa{yH4;&tj+R=sD@%qKE;0dTx3hf3HEz%OY6&@k|i!7xvZ!|IcZjXdJ z!%+xE^rGx0Gnr&*bXsqBA_G0W>}D^KDq1guMyEx77j^o2oV}=v!6i_3_x5ygq?WQs zq92W-HHxxU4@1@jya==+} z0=z+pMBDp!x3WDRSa{#|*4xo{ki;DWFlM`#PJH*Y^tHoiP1LJLS%;Yz4Yl-+`T$_6|VM#cEjp5{PCc+iPL^Ms53yMA%K&xB(-DBvG~Yb}L0#9S-V5!o6MW z4g&$^^p6woG!ls}?*XW?c7#K4zqslNSMUFN0 zb@a76C`mTxCADp&Q80$+4hE(eayIW`F%LmB_0)TzjM_Vsr3h1rOg$j#Pu zjkC9-#X&PT>ZNpJveVxkY3b-~fp@Z`m!gL5G(Qo8@Vo6qG3Y~0paB^l+VA%vNkwks zeGyC9DeWD|is9*)mn5|&8?&?r7LMB4BS)-JmhsZ4Y7K>`fkwlof3! z^_wi`rD(UMb`?W1O3r)9a+-m5v8_YYcnktDzv^qb6{THR9+5Z;wC@e|vV$IoPfqWVlT%tfFeayKDu1FTr!BphJkh95PE6%< zgsdrNqJB_wtDFOK-~iQ;D$bQZw?_B1M3|U3asU^j23abd)=VZvOAK;3LC)`MXnU=I zriNA4tyOWon!qY6tDW66(Z6OVtE{fVmKlDZI2rI@wHhYY11jq@KrIynG{jg-s8f`Q zw}&H11Gt{H37u>KTU4*BYr}#;^#{*o>@RR{U=W-4znvYZi4MDZ22jA-$af^HkzhQ_ zzasLA!?f_g)=>7b4L`u&v#Mt0?+Vs@9gk@VoGJOS0kXY({dQTP;#^jD;kgy(ol|x8 ztIytY_Qo2BUs2DhYA;@oMYhds{ra2MS7CLqs=A`8_NGhMuD`UpW8?LgR=mFEx=Yto zY=qZTRCH{lNX>TSy8hD2*RQ|s(sMgD-u$W?UWL8z?Q9Rws|bBv$HvM{SUo(qVoU8t zd}(z3d+`$6C9l4u?m{dkp94-EpmNp)Y%B7u zOIgRpt0C*l*QzWqfLwUPjWr;wsHph$*{`4g4G6vQhsY&-b0CK2O2p5poTe212Md{M zt+?tXR&m*7Beyq>-#RkVcw^^fmsM6Ea~p7p_6?M$9PO&DU~&leCvkK7)!#;};(PS? zBE?>!Kgj;_^&eybTF{`5g`||bMYk|=9SMwd1TqaYvI-iSQjXjuc;)i@!iyfJ(v5_;J9JxAqZS&5%;s;0Y zqriqJ3tfMg&Ue?O__^RUJFjW<{bo?Sy0I-+a3-$V&VNBDvfSmdP&x7Y{cUt=!+~p? z?h;%X?J>1P15FLvmFxZX8u`Dl;%~r!;OAH@_zH|C5mxbSXOEb84*}J|8JsTzC$J38Pk|Fz!ak(wS`@*;GB{g-Gq(({ z8-X*k3{F3A8kgbqcHm4egY!6Wip%i&3!<|O&ffxuoxOCK{uns3%h0KYQ%o&`a}jW| z%iz%GpBI+FX$MXK)qrXoiO<*_fNbUv^4ErxsWFgf-|zadjEhB!_vF+s;&vGKAvWJj!X#qfqV!Y`J^ z8Rj?`2!y-T%hR0EI*oS;!+gsED#LBwH7;LvLKZHSrILrARCy?Mw?#FJ|MW)K&xABNC& z1IRuAI>pNuw_#Quc!TQBdtlNHo`PKSDi?=*5s=^#BN_a>hnLvkR>_O!`Yv)!!Is>r zy1axur2F3kYc0oAe^hyCc}m9Egr~|&Q?3A;l1r7v5m;B01@$22rOM(Xz#$4%6`S$* zECWf|`52(W&Nz*gk2k!YM)jUkTz8^lkl+tWuK=FJSYmNMoK_aAfWb>HCC@D2LY@P7 z|1=)UB~~X-Bj^ZuN*Li$*}16YDPw0j|N5Gi2M2LsVlv^0!|1151QPbaNUxlIA!9pLnPpl0M$1!3<@4iNPa2{BPmoo}Q@$(+>zBZpG3qjYNX`OFwg8g}Cx(+s zRI7zw=mCN*aZW>s@+F|tSg%?M+ddx#4wZ^`old#W>T;(R#Jp6wQ<;i#r`2QgQfcxk8JKK&ay~?#w0w*-H6prju0uY8gON{wTbmw&1?$9GwP%}ICd!yAqN=yF6H4tz?QSBmXIHF=p%xtnw89AfGv8EJIS$(OZ9rR6%9dP zRT^iQm+JMZA&l_w%|IyW^<)XYL6@NK$M-%j|9dc*fq&UEUytX{Nszx)^8$ibL4yUA zOM9lELo#;~4k7C6bZn@3mFpR03$Piw3;UpOOD<)fdTk$SC1_UTU1~JwYWqwUCJW_9 zgZMJTvMoRmq?hxJI%UIhGay-B6Ivdu5~_n5eC2f!slnwb-(r)7+krC!x8Y@~OUKh< z3`K**7vFU{r4!Iv&}hNDl=n93(kU~pQ{yOP7quV)BIejmm0)lMCHR207zQ$hQUBD6 z3wJB5G1VljQEp5^Nc({^sPy8w4gwN1AnyWXLDHd;#)*f3v>P~o21xc=WqHE+HXwD| z6-2c*LLRCq_kz@Ags896DGMzjUw_slctn*2*>Jg*WB@p#C85^FtWm0_Jmk0Y7`)Tx zl}fL`4$_qLGG(DBTdy+xj_fOo%Btn)$eQxFmWR&na1P{f+=%Kc#c3Xl33(Q;DgTJl znO~xJkcX47My?m=aJ6bMD4AU%mu-#TK|Ya}6YyDse4kRvT5KiOknLd>L_{fl#FELQtnD@II~o{A#2Kg+BX_W4dYV%&Jpb!DWqdT-*>69pf?7^+;cd# z-}NELXr=5PX|_~Vfk|=62!zmZ^dP^u2UeJUph&^F&=Lomv!Fx!Sya!xOWBalRi+AA zRe?^bjU=sp_%Do<;DEHqvZ?STx(iY|Zxw3S~hUB5b zh5^K=bj^!=gFHg`Mmu7tUL_Zm7nPDIFB4Tc@&VyfPhr$F^RAtmHS7o5VegP zf&Wo$!XTc6Z_ud8ywsk{N_=Bh`^HI=2%eO0Y}URp3n9^3Ec_n?|{QxRZ|G^kAO@YkY5lT4bk4hDU-#HLJlfR?>f^Ko6{CEYYA~w zwdpt7VuWM1$f~Afw8cgeg-pz=BFKUBE(yk_Mi%!L;#Y+(dT@z%=ahW}9kNf=s~EeT zvg+%M*+;$k0GXgZcpcI_R79-|P&Y)SR8>)?Ws|d{tAK<5z*)S;z16c}S+9EyWSN~> z+J>(K&ivbz*C~sMT*N(QwNhuyVzTev1T}><>~XmAsAk~czqD9Mdnm^(k7;X^H3r)S zO@sFeP0RJ&AkSKW6Zt#;ifcC@g9hYIKmxxf=};y%21r&yDjA(kno8yi%*b^QaM-hc z%I^eZ3P6Z0Te)eXbDt^;fZ3yf%o~tT08)I1ALmIx2H)w2d;yS!cPU7AhuCJES7Sex zZQQ{}DMjFMUnN%TYj~QzU*#gm-vPqj?T7pWAcF>E0g&MD`*D5+NaQ_!NHvD!!D$6i zJ|@b7%CzZhddW>qbiO6yaMj0Yy(;FY1vM^J)Q6*EEiL^|fsh!lslpEGpg@K;V!(SRyF7lzl)(_)j@H za?C%g{IDF3tb@;M`;Z09OWEh7w$I`%(&x4AbPBGiyM*v>%J9{Ua`LG054R8L-fRkk zr!%el{0elhhVzhRmTHZk(YovNksaSFF02lEUXQ2>Oi7aEE2ykXrU>`weY5Pzs zcqZ)g(hBTTzXJRG#t(o_D9A``|M6c?)ogE3l8Cv$TC?&yann&4l{!!^Qn) z`wHx{9+kqsE`gT;_IuugPh>&&>@xQGC~)Q#j;>827fCn=Inj0dE>)W-MR-e{jCn|^ z7hXwi`i-^*(J?Pon}XUJG&U|j(tC}z2GO|AYPvoHP3a3|e5Jx{AUIQX48N9{L%;3I zMcOj<3qT@@4u@O>UJBx^W(ZznLt3#Gc{w`%C>zep6uc2FV+iDB+mKp6^HL+34X}^! zs4_Tm?l7w)dv)GYx6c_omzqJ0*7?J1WZgvQ@RuQOz6Hz>%Mro zzhwow@6oy+fbN;GAzw2hA*{Fp-31Qmj)l!qJImGGx-+DEKVLa*9QR!zHj;Qs=y)Lsk}|OmF|sNcY_6gP%Xgx3R(c_9q=E#EOGUCwYUP^bB6BU zv55T@Ad!cc*InR{Jhb{il6lve*1dBDx*u7A?%zZaiLnI9x{J23jO(At8jmdAdlK?l z$d#2iqQAQY5M6@0UI;p5pC2Qa*>bJUJ|+#4Mb!)H^{51vT2(uy?NerSp;qvqKimU! z=DR`{e;DR&f@-2i+k;=xc}7RK5ub9VR3)T z;$F8Z?h6+87cK7d7WZe)5ciiX?h6+87cK55Ebg0DrTa;X`$>yCjSqq5)r*}!w73UW z#r-!HcdFV3uk9x-?k6qo^{e7e4W7YkN3F%3nh^tM=LSrABt+Kt##M2zwz$_>+-oiF z^q#B9y?IsKYc1}y|88iyoyH3WWas8H#C?OsJz#O)WN~k_xCd9Id!5C--r`Q9K~wkZ z&k**ccM-e5=JhyDILD7WYw$`=G`Bofh}WRdL^LanD-ZM=kE}vA9pIiaWh6 zXIOQ|q{TgJaX);9xZhxLpR%}5THK2k_d~1FJ!o-1WO1LexPQXpKD{dLZ5H=wi~Avq z`;!*;!>i)nZgD?sai6xhKV@+*u8Mo7#l2{8KWuUTipBkjRdJ74+@G+x7cK5zv$)T! zihG~Mea7PcgvI?ii~F%vaUZa_AG5g6SlqvBai3ik_q#0avljPb7WW@o+>ft{`=G`B zxW#?e;{Hz-_qkPZPgvaNEbhlG?k6qoCsxIM)Z%`^;y!0_uSC}%dj~m}nO_z6l*N7C z;(o&7UT1NCaaG*u%}=wBd(q-PZ*jlK;=Zsd?gfkcg2nwsi~DAa`^i;tpR~B2w74%= z+#4+J^eQ~i*y*j9y~W~A3(Q7YY(Hsn-)V8LT^08!i+ioboi=w2d3FXZ?sco;exJp? z&f;EcalgglzG+q54_VylJv~Fy?R6ISK8t%`Roox6xCbomn=I~w7Wev9ai6xh(^+Pw z?g5MY-4^%8RdIjV;@)U+ueZ1tEbh&#;(plTPVZitx;I+f-)eCWu8RAk7WbgVz1iaa zfX7|FgZF*p5_=r>Z^TB^F`Vv)H)Hj>-*91cJiQ-h@_3YGZxvBmP}5a%Su6kLaO699 zdM}_Hj@S!mqPJhUo%!$4(8&5OxnE%K4)}Kvr0%z4^>Q)Y)&9kQqF&pB%Btl~6_EQN z?W&X)$Jtd>zQN!7@)-wFORv+~mwCqXA1Ti?}%WXOqP}yDIKa zS=+@~$>ud}#Mu8R9Hi~F?2{gB0--v2>H8b?X5n_3n3CoS%WEbdbl_g|=bs<|Ip z755p7`;^6f(&A3%B$~QUuZsH-i~FR-J!^4)+TwnARotJjxMwZyqZaoWi+gcZ+&^M* zAGNp-THGJCxIeKf?nR6Hpv8T_;{Kq;eP&hMAGNp-SllBP_bH3}u~l(DY;liR+}kbg zqZaqsRdIjV;@)m?4_e$K9(Osq7(x59*yuuytUNkuWaZ-}Tdg^zMY$1?e1EJFX%G@` zV&G57rQRA^$;gVbLVeJoF;@AJRZ!um{(Xl}W~ux561uC__&-sv?Z=eNi;tRi%&Jme z9B0>@@{J1XWgz{_)^};$@$C+EnmSIMhY0-YK~|xApnQ4#Czd-26xZ@lxkGrq`oKli zf8GQfdS8@M%e|pZh;+vP91u_ufJ3iFnf^mKe*m0O{Dz5A%KhR1Cw#`~gim!!VI|9s z;~er>j)@ha0QYkI+6#2*q|cMzGxiBU1|?+y`6@xci2PYVz6FRXK>_&}Kxo`TPXbZ} z8gzM(^8lGNC|`=FMuTz#ASaN;;gpf7nRJ3i?fazwS@R>7k==>SkTaG4^c*$ zp2AmG1RVzuIuyc#OcDeamTD!=djP4^lqv1~94Fw*^%+3Ob3Hm=2gKC$dw{5R3^J27 zP-E4JtU{iD1I~+*GjMR27ky2FEb3YHGRPa0@5PB+&43hjc>$TV0Wu(4b%8@C=&RE* z1tboL`i+l(OafAC(77KFQ;YWl5-@N+3J6_9L(q8=5cTU10eJ?HStHj8nM>$3=8na) z2cf&RGmcoA7#bhu$98yL_XFfoD=>oczW}1X*}>~F|AD1gUkylkD$j*K8y2evBp`o- zDd@BSqDC^6_%=ZbUeB0VAy;&61em`H`)YSU;G7G{wAO-n1ON#bGB*NJZ_v2`5YtW`XhQ2sD*UNj_} z0c6gAd>#?65)SdEls3EW!O(fT(r#N)}DIZkD(kK8A0l>Ms^izmplG(=yd5 z&4SKFz-gQE*X4RZ)c6_xoEINZIcCVSgD4wqLI@B~3#78!0GS69&wE|Uh0BAy4G=XO z74l32qDJPt-$~N=r>Omq@;?fkDg469E3Z!i5<=(E`W2IQE5bMA$( zhQVtKAOWM?n*bR#{P{*e2DLSk`B*AD8e?ouwh~x6(eHgdJ;Ib2IOf#rj5GuJRst2c~!~_L|IEXoXOIV zjZGVLehnP8>j5Eft=lB*EF>H*xGA^~6Ynr6%9j8qV2s|k0rH~OVmO}4bLjyM1suKkv^8n~fYs#=8IWMa-{O}&& z95yU=KOmEu7q};B{A||2M}QO2xh7({JaHYI^0z;q1kR?z#^@c8!&)B7@fAS4nnI8t z0dh!F2KP8|_v#?w{02Bo+lL?5cyc>|ihJ^1Y9HfAhES)2O3>Y|{2W0B~VxCHPI4%Sb(?0(K z$P-$gVVXt)uc+nW-U5*No`RsW<|48VY71@w*$BvtrUNj$9FS&1o}GY98ITYlU)F5` z<+=-yq5&BNWI~Dh~qZghBZMf@m#>@*e^c(7n0(V#tia>nL!7My@{t zMD5iIP5%;*IiqyG2?#Ul=}!oP%WHos<L8k?fthNtY8$K5faDNU+nIpg{Y8;Zx0c6miydRK8 zL!N0sHW|D=2*|8aQ$9;{bgM;_zYWN=k?RM5EFeYL&>2tjHHHC$`@aEa%8+maz6NHt zBo_m6OjA~;oHc7r>HHs(;0c3rJ#wj&|0~&bcxp(vL*pY(EEh|UxOw%MOb=&NJT^3x zb0^eODw%dwd^ksY*pdQ_t)hg3?>y$vC5Xc$lWBadEt!ab%a~hmbM3KoBIV{-J~r$+ zVv^%H1^OrzW|mRw-3YYbz7MOZ<3r*JT9 zrw`M}-^wLt1QxujqkGRjr=vUC*V5VPw1r#y_c&cGeeL1iUJKV5No9ukv?`Wzsp!Vx zk)?*fSm2(r(3l04UwE?MiH!OXmz5+INo}Sy1So~dGg8^UWV)-wcjb3Z55SWQr^caj z@wk(7M{qQkn{z}B62OF80?zMGW}O40$%32D#^SDnO2g+}Zn}_Xu|&e*{Tj<+ z7;!N!;t+4b6jE|nV?cI%?^z}AsyGJWHUBg|^-c@1P*Z&OU0L{^d+tHok;q7YaBvPE zMt6P)|Gcz9_nL@MUr(>o*%9r-IF#yC63xy%Zi2GPdQPN#kA!5Ak;_|Xl2RxVnIq?B zvHC$B5eUH4`{}bKybU;zOBP~7&~z*|85J-Hn|0}H*bct2SV)e!C~{Z{6Z;%HfX0Z} z;_$OlhjM!RyZbu2!cHU_?r-aHdc&PPA)!yWyA3*>Mg|93iZ&w`OTs~vv*ru^c{kS; zD~yJ7UJH#yN8cAhbk=CNU1+QuI;VX5Cwbum45YDxZ@G#>Yk(_}roQxeo~dMqpHSyG z4n9&Yge3yx+6u$W$n6G@iJx=FGUyjdvp9X7QQe?hhD(lR#qs`SQ$&*gt2f(7RGd=b z?4_Ozor>3fI=hqUL?kSWo|%uW2fL}0RAsTpEl9lGnOsXEffMz~u|+|7iJ=VKri4-$ zwU9Z$iG+Q;JM!I`wDQ1?bZ9)6Llxr)ny!n9ngfN&e{n)~4s8QE)3MX-?sd0be$3z- z0H|h7sHK*n97i5x?8GOaoPOf-2k-HK+?FD{s0`&nehhaE{Wpd!P9_K4(!RVn`?evO z&&9YGDuR<`p`1uAmPk%I*$gmzRCv;GDigDSt_3Xxls=D?0yyzW4)sJ8#*+d=68X%} z^3{)O;0Hi%!r@(~)7I32$8^av4G8&prjGNb@eJw=$Fsb@;HLAELM}g=94^R*0$P#O zJ^X>Fh|w31g`%QbiU+iXaB!w^oOsHOr7@gyoK{af^i~t7Lk@O7SQdXUv%(j?fkIMB zj$`Ag0yPCfon+IH4=$tG%z+(*CLdFNfw9gY!HMMXu#65hDS8P_4}Ke$sMIV|59v^a zRVT>VjV`qva_-L27909dopaPusi4SBg)_w#A*z$PeffuXnVcht2jK)GF8MkiQ#)v2 z#h}{PL@${vNT9)Aip0{%i}I!hQgr2L$g#*qeI7c-GBCn)jDwFb65uW&55>`ah9eII za^mDfLV6Fx=?I`aJjajcfq*wGNB2%gzO6MB?Sy=-2Mca^Qj<+$?=+Se0+5JM=V9S` zeVJomgT6U@bHsduUN~rgW@1Xi54!Xo`AJ#cBOlZ>?A)>A+8q#yoJXC7gf4IKp#k;u zge!g3bl&idv>veC*4?ng3i54xWjyCt!8KpzJLJ`9}Gf@Y@QF$Bn8w? zmA}l4L@)=9P^5$A$znT;-lV`t+r@~wkc{WKG4mLFI+o14O< zJA{@w3G?Y;iYT?EE4pU~|HxX973+R`lkn_V>b7wglMj>vmmsMn@Ca}p5mQHz--(Uo zN5nwO%O{qQC4yM=L0^$B(9)Y&de9{!ypbG*+EXbLUlaFSL4wi5r)ig6OQQzE8n8_D z5>9E&=KVgv#SzOnqN(<1^CbSFMqetAJQzZbQx8LM>V2>x&Zlzl5I*d4@V>sbpg`+F zFPEg&sxPxInQ%k&+K#l66LRudH=Z2E0mVUL!HVq?x!X5U&6_TKaVHa1PX!$iWZyKlzf3kW}pgF6GqZxVjtkcQi&v z2m^@eyjD~#7@>coX_Q=HK?6^nq$&au5zQulNyl;Qh7o@5^2JPiM;%iXv)A+bWa@>w zcn=_!Lut@X6<@I_B-5zxdNeK#I}wkk(2{GzN^{0#Hm!-QJF-H0RmDRn=^1(VEi7E# zp{RewMAxO^Qb}GEC01Eg(Z);a7W71QjC-?P!)Bg9YKewq_LgF$uZqob57`_h=;cs> zZCO^8C+|W8j%r5xGP-T``M+<5t(s}tN)TE3`x#jN^4jaJFExtyhVOw0s>=pe{8Ov|PeJ>MU0>)Z7#tUr#{n#G5J@vW7cbZg)DmB0YF7t*xUs zOm*^hE!&c9JII;~Uq(OZA9#s&tDwn3Bs~a2d*dI?kZ@*KU&2QFg_=4FlX)v8+?v$! zm*nSv?-0TWy#bMVsigZ(x!*6>qIY+ ziDBU#n^3V48nbI^-iX2jaXWYg;>1Vy=L`FtF8KGRY^iM!g4${O_ z(^1_Po#s;$zvxteWR>p^@-hOVtvpvqZb6!A`WlI{RSyF?yh7vU;jc*e9%+xp@2om$ u`C*B6`NiffD;q+ImujTd%dAOgiNubN>b$VR&);H^6_UTPrkq?iKmP{?B&)3e literal 0 HcmV?d00001 diff --git a/website/download/exe/Oraset-Re+4.0.1-Beta(..26_.6_12).exe b/website/download/exe/Oraset-Re+4.0.1-Beta(..26_.6_12).exe new file mode 100644 index 0000000000000000000000000000000000000000..3b1de5fbbcce9d90b09ac65bd7d50972109826b7 GIT binary patch literal 108072 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 z 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 CmL6pQ literal 0 HcmV?d00001 diff --git a/website/download/pkg/Oraset-Re+4.0.0-Beta.pkg b/website/download/pkg/Oraset-Re+4.0.0-Beta.pkg new file mode 100644 index 0000000000000000000000000000000000000000..9ba1ae0c6d8bcfa977b4147789f0f0d121a6fed0 GIT binary patch literal 9099 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 Sm404*=T&&jcaEFY^uGY}fPRYr literal 0 HcmV?d00001 diff --git a/website/download/pkg/Oraset-Re+4.0.0-Release.pkg b/website/download/pkg/Oraset-Re+4.0.0-Release.pkg new file mode 100644 index 0000000000000000000000000000000000000000..c9f45ea7432c8d45c1256b1cc1e91c3b2040b17b GIT binary patch literal 10986 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 z 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 JTyUo~{ttWQY##ss literal 0 HcmV?d00001 diff --git a/website/download/pkg/Oraset-Re+4.0.1-Beta(..26_.6_12).pkg b/website/download/pkg/Oraset-Re+4.0.1-Beta(..26_.6_12).pkg new file mode 100644 index 0000000000000000000000000000000000000000..0ae0f5f446eae2612e2b0be6c35e574796ae6d7f GIT binary patch literal 14385 zcmb`tWl$VU&@dQCf`$+vK=9xe+#Ny)?j8aJ5AMD|2=4B(xWnSU5OndyHL!%mZP8tv zd+zZ-23`*U^kqi1?%x~HaRs(ZSpeazfwUr@e4d+|TzCFTFBaby0g(R@~q(^Z}4 zx!;8&9-?(mZ68kB-9law5(>TD>3^+yd@fk8sHga?IgbL^ zeXIFk#>UK6ew-VvO{d<`JS3~=w~xNQblzwjH#dm^Z9GT+DF`!Mkqjj$k6tz>E8SoI zJ2mQN*B)bZU3+Nq$T~K}dJCnar}914|J71YJ?{DO z=5&3zSHPhyXSlSKcaBaOPd5kNzN;;PL)WDY@vM$e82FTr#U)Z<> z^Fu$lS0pJ%A&hRn1Sy@C%F}*88@3#ct+8iJCDAIj4rP1&ot!JER|*O`^9XvE3}LwM zTamK1H>7U9)|ar-A}7$V&XiF!l>R63&dlJWXXX2hdHQm$^Q#WxxBi`g`8sEHYx^@x zu`B&$86oGv$0e#f$Pmg~bTJx`oB&6$sivR6H1Cd7WLpbRDEbcCK7)(m;qLqM7L@{#k_3d{O;7I{VO~EsH7Ff%9F2Q;Cj&?-iB%Z*~mw zypNs*0tVux3M zeO6EY!eVqhKS0j+CQheX>()Bqpa)&SHT<vrM(_ve>?_NE&Ux|Jm!7c2f`+bMs9r>=i;wUm7;hVoAK~^!HB>mKs+2>Rd)z$L*qRVEvD7 zAjy~?lZHNwNmuy*cOP$ymDhE{`v&6pggB_g3s*{3%2uj;ziH1M&mN~*$|xai1?`6g zh*fJ=I9r9Ui*{dcy!&5VPGGKOghVoLD|s5-5Zr5xg|7i;wX5!ra5M58-Z1BO z?O=mT@A`4ENsD8j);zQ4ix%PLq;(9`lrGki=m zoGYKW>_oPl+n(ml4ywlFVHz1j+Wl0yB-OfS`ZRn5`vwL~qCodIT@3maLl&ZM4-Fdp zy4T|qV2zRuQci!b?tB#k-<~s@Jog{zKi(j^pHh~BnwBV@ZLi0u{qxegAJ5#^j$eW= z$`XLLfc0H=Q{TtNgrJ)T;v7)C0l0G(BIMB1IlPx+;(UM80tF&(5#XodIHK`@Cz~AL z^7geW4Xouhs#fwjcuDHw91|#oxLoRfiivCC0romwwosYCPM#b7FRS!FNBqA5-r7I~ z&c8AIgsg#_qj=i5|ETjNIz_fE+GP%BgYw574LWGpQ5LWNHx|inXUNj-p0sOnwbA}>tDP)3BdKyS!j8dx`(UK`k(MR_8xAAHdHPuqaZv}TPv_+-SY0XGcOa>UjN>v8!x1ZJpznewFiNb@LWDim5G8NyOGh% z%$%IUFb9#biOI2vsga3^ku-Lz%IK1&HymvfAP9&0q~mAVKQvQ3NA|806EkkP8Yk@T zx)GO?Pu~Cw>w1@Y_49DNy}XpH!f`QepwN2D1>sK_B25b;Ssvk^rDSI9Y*|NEaYY}HM z$b-bryZrA4D!`AQXalnRj z+plkd@-dcy>|q++%rAPS!7#Y-;>+IO<{g3VmO^zH+APs`cpGWd&K+~`+OvbR`$uuk zgy}eY--_Vj7TGPn;`-)kk${cAVwO&-xnUus4qH5sN%40GpUNj*pq+vLc19sfwPGFU zMR-zP6Bvo z@Mqv>C^42$L;gP(=iv1+Sw!3qiwi)8M3v1!=*7aqj(8AOMzMK0;ug54ekFOotlq;@ zHQCG)vy^hr|H18T`s{@PfW*w^LR{k`@guz?m#6`jM%QgOo*}}WF3MhmBvecf^Kf0@ zU~ZN+!=~~(f@vzqJM>TbM>Xx$m{dmc;qzD-bTJ=}5V*?_>Jprhf$h&Fs_Ng{KHiP$ z?~VlL+0&!E)JO;GFt^kJ*4B=)2HM!efnAJ!uA_9qoR2&KMx#X=U5_0FK_YokwYzX;86_vC$pN-s54YWPK% z7(q6kZQh<~OwN{`$}CTU=EF)nU!&3nsBY8EYMdLTucMb7zC76&8^27RGgv2Jy7ZBZ zW@I@Dj1`aCv)1z#{+-sUW+f65(GV!d)$m%!COa(co57rs-Uzkq#dq_)n2*Y?yhle4 zHlDVMIhb5RhOH(h`Pt4wfJjlc&*!d7@h?c0plEaA*=iX#w)u;cvzDZ2H5lx-5Dl zRTwc$^f{0D-%MW|B(!s~f49#@`iR@;I8!ZZ%2YbYTJIZ~r%&?hfMVCIYb$-$Pohbd zhrcP)G#jZCwi~n#^(nTb-wdnFf#@3X`Ru)~EVgWy2kzrk8I#UyR#un;XZ!afku5Wy z{x$mkG{QZG%Z#{W8RxcF`dsLZ>&S}{VIVyPaXiasFqgfySeK)I*t6LlgxnRZafcfm zx#yWScBXDHa9Q3_@?M*lidp2W<|S4O$E2B{2eo`hN!PvA)>dTP{)XOBU*@3hE25fw z!nL`MwPKm$+AJhJ?EeuynV4|ry&_(r+Hl@Q>r8kR?8$mQZRJHRS=H?3D;o&8_zPIh zYq!4LyG4W}nRm|?>i#N}a@9X7HQT(5y9;3~zM9tcdJ0i%%=r5d9~h71v!JTB*p>Wl z9t5`yYJ8{NQt7Q7rONVcz}$d!hZ#4dYN{xRP;$0G^d!!ak)-b%z`E6f(A>W|ZAYU6 zyw+p9vQr_{MAC?FA8uKF8=D#}V+UNfLnj+^!e^MHSJ^H)FZd7BlAzm4R zlz3Qd$PNHHsRhC3_?!V3tUh4BGL@~BMbS{IL?3HX>fFbP*5q2KIQ``pnt0^u33E@Y zrC#Uq;ZJWb;`yP{##x=^5vy!yX3nB><7>+Ss$zo!$o`T~?7$o={Sb$Xv3f1ChOKqj z$rEeTdCmaw3ZEP?7h=E~cU@gv7&IwtG?DEpna?yOW0VXPC8SM0Rby*^$NFTVNcuIJ zIrVB-;k>O+G-=D8p}HzSzv%DNO6nO>toekmOZe?|CFg>nWNsRD7>APYf|qLo8_4kk zJBQXq+44|cRd>^e7#&6~2&ZJxSQEW-O0qY|_-|Q~w>pjC28Zmxjzm=&>bE!-29ldA zwL{sx_||UeSHYW?GhD&r-1D4zmG=uYUM1UcjWIh_-5ewKx)+2eTLB}N(#YSJpN(m+ zy64!SM>~rAAb9`oHB;>am94poe%p5tG9)2k^Wo@ZOGS5$=RdM5JttCU&DAH#Vd0*x zlP2stM}51sKrYn>h0+xBvwD^X$jVU8{Nr$@gVr6D4QYz5FDThr`!H>FC|Jfnj!-)U zNzNG01XI1}dnV5Ey%q7|iJyy+QP;y5`jo&lg=TZyEeF$Pfd8B*T}DGutVA;7;Fb9aiS9~jvreUhhx4e~l%~k+{qi-EgpwYr znYEH%6%vPDy@~}Mq=V)Qww4OJeeL2)UNGB8pZeOdvn*8_+)Mo6c(znRKMZH@G5wr? zjtnmY=izhPI%9Q-mmgyr(R}!7;W8E9swlXnALbP^T;4i}9gj5r>7SrTtzBd|?bTRy zqSS00+NwR{b@UQtJlKQG^%K`t8S_yKq2v$eQna`sJ3e^d|GH_~i`op#QP(D7rr1nXQ6ZngzWIaQ+V znqvCQC;iADlgsW3Najx}_KLDJxNbA@HPA0jgm{nan~(H4*kwJmKeD zc7NYoeiC$t;aAUM)DMc@Qb$KWpY7jQ`{T5tBIELKr8A-mgn9+k9%ldc##xFusyS3M zNk|X>X?}G+&f?Yc&i_%Bh3gi^p~~1x5!{kLJnEM+LPw>}6=kl@cl57P**v?f@v=9& zaeMB*{1X}Ns{j>|8-cg#nP2=9#-cYfo;Pv}@zHxfv^A-QJ z=MmBxTPK5&`y9sDF&3CuOfPRXalPY1?B;;R#irdpO`d9zAcx!=!nN>x6hRVW>wxg? zXp|+%?m)kvD8e!m)aJ-zkP4Du*UWfV4QTm^YvE;7zzDz(o=vx(zWzBy1|JOT1?j}qw)Dx!&l-N?eJYa{PVH% zC;~a}MU6C5B<%fb-zuW=$HaF3v?C4diZsTjFafSL`gZL7kilCGpNhoX-RO|CL?yZ9 z`BbGeTKdRe)%B53m|vFlkrX<#Q{#7%)=#P9OhqNQI7yNWtxEL;_7=o1IL0134SaU| zg)lr*mHSTFVedk4qt($LsUew3Lr5c6mhi#8)$WdjGQ={ zsks0wKx2Z^C^x&##kWAcJCz>a>EwSwy=u1--49O9?9zec&?cUXT=A&R(CWvttRyaF z_+10B4R!S~J(uV}z&7sEv^>{7Jxj`;L#L&Y`RGpcs||sSg$Cgz7v*nlJtn_;7(~}I z(nq}851+u%9Tz~EjxNWGqNX(_|7717rQIhssh-5~+}4j=Uv|N4Sxbjw$G;}x<;@rO zT8<5Rz9--7*tGqX2~6z5^T>wHJH1*pXU+d-qt=h#CvWhlxcc|PWH9LP4x@T4?z+dG z)!}tu-oAgh3?`dNlR#tIXTb~Ar6bvfGJM;mgMou_BvxuO&d%T zqu~Z27K^c^)COh=<-5o98kk--{Zb;w7KT+9;QDAZov@N?t;JF#;Ck3nep& zgn3d@M73(a(y$clETPup88geYC?&V6!+BXOF;a6zCuyX^Yed5E8kNm(sma;I=K=Ko zzOolEi1O84-qZaJN+5+UQ%}xUywQj4Z9~9gM{Wn5gpxQAt2&X551m zp}w?!OhyN#$=B&eheGPbuqWEa)~c(c-+`5rM@OwekxoXsom7-%Yu)eGk>EO~Oa9J< zj5g-=K-Y{@svXyBDn?`l1b#zJY?B4|XzO-u1`ox%=M(Lfe$G8&b;kYKG$V+thfw&M z+E_Su2oTz+9dq~>s!ZOQaKI%5F!5)M(T`1w;!YPX_z$VJJe}n8nAnNPK-ysscDYdV zCC&A!5E?Ue)%(}`2RE&~D-ECoN3l@8&xLZkHdG7jgUqwHe+E!(G~@RVa0l2c*Xq}M zM2AP*5XSJHbk>`X5Jn=GoqV02c5JS6Al786cZon=X4N8R%v#qD4xmGQkF)kY6UE_$ ze;Z;9q(g_+fwBDw%R8RK2UXqbLu55ijdo@BN z9uDwFKvPN3fZ1}T}G!jAxZb2wZUPgn_xflh=>*Utlag@-CxLEctx#=k2iqJTY_gCyaRL z&?MyX_*ZQp>$=#RpJH)t6qWd~I{*<58HZie+ii$ww9WK~U9VUd4-;;DC!>iadp|w- zN0;gBF!z&p%gR>p)b#JMGqlG8k}?z#r-QyP?}4&0hQ>rw5e#cz{p7=zCQHCnQgCZG zk%JnaNTi=m?-%5N((TOrVhQ8G^H;{^I0m5WiGhmf$B{BwL}uAz+Ffn-at?6Ua*RO?(q?6ZYQDgMRvKmM?pxCr9+R$2BLz+{{jFA}6gU%cF(_AFfJ zW|@$3D6z5UN(yQxb`N0MeRwnRcyNX`W<2d&1&dAI%PdK7hYxusol#`&8H>k9C&Sf) zrDCoGVC*?{*DE0hzH8@H>(I3l3D>iD%17lW?bGKSF^yHsDwMZP(YC)|jEA~&($b}& zun}bBsN*i)q(ioYa$qp8LiWjCLu$g={mZ)B#A~|{zy(Px*Se`yf~q}1iO65j$>V-m zGOQ>lPJe~rz|gw5wA51s@E*|jb?0{1IKBRHF9U4Y|CW7fWKX3Pg+N&_`de!CkhZal9Jbek&QylNh1C;w-mAC0>F#` zwIO-iZUU+J8?yXBbXTYMwN(H7*UlQK{noF2Ewpa##t`xe)d+crtQ55qA1kg_2sAqW zDg{F8DYG9SvcMIcimWzg3@W4l6q)2`MfmW;bVct|!NFpa*HVlj4gHC(EzQxdjWs&M zDYB;0NfF{6+@44PQJ#KTjzJUPYYHO5My@^=J(U(Fy(f5Kl^no{)yt7L!HRHYBNSD!-Avs^NR49@3oyi=Q;1p zk%I8R6)};jW6cGPvV!!QJ>4d z|9g!8^X^s&M+imVJ^g;n)%Q<>dQ^R#13=poeQ1KjZ(gZ>C>1}ZWK7~-zZErZCQ%C@ z@Qb_&gl5ct`Oz*YQl!yTKpttohXsi6!tXK#J<*1USNdfB|E=q9!r_By2#CjTe9tHQKf;nLcL--!Fw$&h(XrAgHa z?Sk^obwzCbruB-X?PKa`Zg?nSX|$|e>KzLZb&UlcfA!seQTKFJzX*_F>yq}UM2bv& zx%%nIIo+Yj5WN-)c|Q8X|m|_{6ymm7nb9RqSo#CqIU0HHd;< zS`6`Bh;iN@P-ReA`*J;Ngi_x7b|*sE33^G+1srESt!-VL+7u^qkZ|q?k`7zJk2ZeS z@1@*p@1Xn`9><=BR~w1FWNi)y4BSU-1es)D1Q&d??0}rrpb4~u$xR;Ir-7ay4&x5X zs>Oc}$1phz=DxVoAZ4NcoU#zhrl>22&sivJxszn|Vad(Ng5|E3p?Fb?QgB)+2Z>}M zf&HFYCtplz!21>%0FPJ41?48{C5ygrWZJGPjc?5tn0!wJctmsqHW{b4())Q=GjU}h zCco>gV^^dGx3&QOp3(KAbum0CY8s|Ag_yt)=v`ZKNWH=P*%kT`-0MaaX#3yWs&{8o z{*E)Wr_>vpX%yk6fFS&Y<)86GNDiAB~8#r3J?w4G=2y znwl9Gb?Bru3kW|~-#h?^Jip`7NM8nV+%VxjR{x|i9i4N$3Y5~`)q1Wf=g#oT!ql6& zQ}Wh@fs2E150X6A$pwmy8`^kGN1=l_|F|N#z%(BO5#}H%M2Y{$4Q4wCjuGo-EAKnE zxm>+F9^6*9Ve$IOvKn9w4}BY{=xT@$JeM{)xF@MN{+#Vhs~qSC4!h%*Z6>t zp12Q#hpl}P1qe@NbF1$kem~8KnXV(uLYH5Fwc}gmP9&aotU%2h8!G}I1)_Emxr&|N zRZ#h1l%3s^In?MH>XV*(5?g>@x$nP6Vxy#cw#_~;AIBtXbGO}@8j-ACA{lVO?s1*w z)ngIV^kTmd5^pHDG8ub;YQE`mdd4&W0-L;$hld$72__~5=n)FP-?#PSx4^bd0*W;n z12&-hen7YC{y_52+W_(9GLL-lM<5z%j_i!R#(int8IgbAd>B1nPJM&}_N%++9}d4e zC%dC9Fj2DY!2-viKAYs|`axW!z;K1;E@}H{s}7*aA`Mq3wDA0nZ#U`c>CKe8{H^cQ z5Y#>0zkfp{#bb5GDBYB`SaNQX-y3+aZ!-Ah65m!7IzyJ=;jHM^Y^3r@U%ifgj0#To zC=iaUmN?)X`rC9m0@_L9^f;U`t|{p{1k705u^mLo?}gQ&34h`D{=vzHQcqUpS0~iR zYNQ?={(Ld4N*I8CBD*zITam*Qq}@vM1j^e0v3%eF*<3j!%1u8F^Hlx{BGvoTi_5+V z3!7P47M)K53dUZiE%luu`f)biZQJ}LsCaJIkVjA&aa=i~Eq+sC?hl&g`%)8(oSOpJ zbZIaHQw-uSlL1o&_iXpR+X4C&#h1T~T~yqjbSm6w^WOL>M))BJib0MZ^0N0jtJ>xX z?AO6P(4r^BfM7%`Z5irCrD+6c?6Jt(wLWQ_RUzg6C)Mr<4EI^RozZq~O5F#hHs{Zn zg6c8&*=mB0!ZErz4 zSZDIuRNkI5UcAqIMw?cnP1xY`gXPZe(o@=}Z}6Q zUt!XgC)|;@T&T?4MkMBOudLgpK#3v^Gpe0>?{`6u;@`Z8bCHZVu`rhu` z2S+&=i(Z1rHW7^2fXZ%O$$bX78$^ z;}eto2$WhZ^$x-uGV*#4Dy*+ny}vYXvqnV^A~ZnK>)l`a$hj)}5;@eZDddsO$2I7bpK?O?y+z zFR3Eg#1^1^xmKCFE+Gf_t|XMkBKU$TiXVEj;@ow3+?F>L_>wUnmGSD(0ZxTTWE%QtT|+c?BZp3}IT-MKf>_vu`Zih9M48qzq_AZm3?d$Ju# z?=eDY=MX|23TjY)9(ZeF(CR_YPUwr-S0U8n>rQCibI@X!@iPMgv$Wv-rWtC*eB zIWW>aFxT~~V>2#Nf>kPU>6P{tDskzSvg;h|R5k0TA**NqYYJ3dVd&lk>fX`n`o*w4 z*0ViQ>E3Dn7tv~zer|2ZQ;--xT%mU13FlEeJIX#v=^H*h76&z2{r0!Mdz9>*)OD^#`mDFk?4VW* z-WcuIdf(fNo9KhP{xUrS2rgvYb(<=+4aao6=2RWlMZLy#1g+SVt!y<0{RHFJC(0U) zmfs7e$JuxZ2FF>mZtCt_*IuoTu^9*IlliE$#*rBdhBwTh86EPPO4R?!2TF}Mqsqh;jLfrywfMhy!I7y*&|~K7mWhlDJ%zK?+&Vxt9>z6 zQB~`5D^XXv;8gidBlNWBFn{W-=1ifvwA#`BZy-(Ay8ed732u>ScH*a3I2LW4;tL~{ zsFepNeUb7bor3toMEehRm?k^O7?*m84~NLLrX zEU3}xjLtU-9lN2HOGtb5%Tu1t$=aGh?%0`XhMlWF`Wd=mP${P7BMpJbRy!a_Pn~&{ z=Z$sy58LtXy4cmCo#1osjz0_;z!r~t2xhBLe%n1@Q3u2{G@!5!0fJ#wCw!+G$9cQXE$p-atf)y zur)5#rh*v-$LddC^|HrJa<9AZGvJ$#mp)!|U%NdoYT9#pp zrzSN5^hX@(Y0E)tG&G*EuhY&u>*L$pVb3=UVDbp{UVY*SPxqXM7{D$QJ74K={k}WT zr$exhbyn~kEbPk}0$NilYcO~;U}*V(MdFT9oe*bElhcW}+CBV4(#4jLb-~oD=t2NImK4wAkzEuh(8`SCd-q~X=bU;GPsdItKd zqHcd7(|a6aweP(aTPxuf^UeQ4#0i> z&+h`Rg!^;hB#5H;DHM(-PCWvb5vQJj(~47%!Og^}r{I>8F6KYXzz}?zTx}x;^iCe|9`;d zGcT6-|2KL3zl!m>>4$7)!gR0;5$>bJF9lt{0>P8W|6Ix(rpNSO*nRQbcxKrBAy|%B z5d?t=E+qeOL$QLf!2}re%LGjH?`c!%KFL+cx6_!3^;`Tm36mh6t~=yEZe+A$gP}cG zvINIiDFnM8|Hf#<)uWl=hPsK`w6lN5TexP#GeJ?BW>v4^Wj75IS6qaAK9H`3!D~S- z>AHG~Kf%>C(eG@+#P;qGR8~X+F+*RDb%3k3xRq1gDR9R_uj04Q*VOEH~?+e z19UOZXCr6W!u3m#ovn%jJuNb$<0#2c6aI1z$Fz1WMj<_%5bxS5@;`0V@m_Q2*BTxz z`{DXRV$HCw@ri5_xwop}iQTS_oz{?2hN;poFl^^_$S=%^m*U0}}my;#A9{%gH~ z%+WnO{$I*4j9%DDt#@M*!SQ?uI$P^TxYRw{`Ci}szBlDnC@}UY{ORwzz|O z1u#KYZq}ZCvM|MYhf9ARwP~TR0WhUja>|L9im*u>oW7{3oyeY(k<3hx(s%pl zNw(%x<&w5QkK)m8an35A7|rJ`#24Uvw)2|SK_HjvO|!|nL!WT2@tI_&m}WsMJNVLf zu*?w>&g_acHIRR4$+cSQLp?#9c&mwvp2l;~Pr)X4dkt@*!{4fu$*`2=KfDwL4PH$) zaXD1Hn9Jk4SgllsNi1ioZ|b8mZrCrLtgRcSvXwqG)^sZwl&(Q*>Mn>mowIVT*(?m5 zyrj>3%tiujTA=zz4iy~C0llpA?aQo%=@LJNQ!S(f2Rg-DHaQN?ei;g;>QD09(d1YG z-MH&2VHK|4G{lneCy}dM4t!Mayo~U%sLD_(G}-D|@!vQzX<}AMd}kUb-3*p(MD6@A zgCdxQAuC&BL~waLN&%OzcII0ZgPO%(OX-%sR?@~dnEk|biu8Ox_QW0oCz!K*5RAv) zz5!FJ@Ayzb+=ZXsL6k){`p+{&dJ^CWmxm1Uhc@yD5cxwcM#N6|W`Mwr0$zS~pYz;i z48KnrhAF7;Sv3SPvkA35)91fY#0&fy5>(pfFBiTwN-nM)qQ10=D{#Y$*Aoq=qJ)i| zw;%96y~KOc#(QeSkgDv1+MQLCcRTB_1g2mB2hTMrfyI4!lw4arAsDclK5th5HUzkL zlR_C32M4)7yoac}KDfu5Zu&Uz1G)Gt#lzrm;r#LQTT0;MxnF#j@RLM5X#2)2-g)OH zf)Y05Iw*9<+HQM)`~h0lECOOLJXwnhtxrcf*;;g0kUjkkK2cNROEIaDuBZ zQAc;s?k$(7<-^N(BcC9so4A0?aPQ^~MAqsr-N?-o>-Qi^8lf-4@~!|Q93VcWckJff zme1A;GOisT$-UlC_z}jq4;}>n;v5_6!iReUc<=jU(Kd3^Cj4X;92-Lk${X8D`FJ$Y ze}vFpO-Mcmo<9VOKf^?*q30G#J;fURu=fm|e}n-Aeb0q`AiFakZ5BzbkaGJo0G_0A z2y}MyQsCw@USI+S*W9Kq`Cm|1PU^#4>u2IB7bR<(=Yf_fn(yGa6xfT&gze`GRR?B<&`fZO#X07WC&!izcRm9jn zWm!o;U&yyax;z2lVW=@>3cl%Vhk@!oX94AyFk9Y)&o{|@5&KeYU&j%}2}K*KJ9?Ud zT-pd~!@dU}MtTpd6m8)~Spp@dWHdMly!VP^K*ZVXAlJ~{X3Axw)8+JP*6?yylu z*{pSVR1Vq39(OR`0K?Q9A`w27-5Tz!rhdyQoD>oE{|EA^MF{6DC_R-(Z48%L^$qh* zL<-YEb7rCJ_?z=~38iY;F+64~`-gz~Iy>KKkFG}oYHY<&kH z<$25H(I_AR=|mMo70fUma9T$fyyT}U%)|1&eCSd6kZQ))AnYZp@u83CHxz->ev}38 ziG&40y`FKCw4djN?M9DaVs>1Irb`6ZeYmBj3lhnx+YvL1?M4)oYU3W2(XM5NroD;Lvyh#g38Ptj>svJ|C95Rcy&+fm>B z$#@VqXW)9OESZqhjoIJdyUQugl>6Ner}ir$)P7=@QIL~G{T>0vyQm9i0C&aB^m-+2>#65JKW{E5#ocKum9HV_8IIouuo(#0dkYZUXnh;INSD_?fGaYA;0sl?fu3A^I_o4f5tq* z6OeW_SS;0XX=5n%)cubpBdGhP9Qf$n_Iw=DDkKT^c0O5c_9p5H@L3B3&Kre-}u;`J5hbCu7+PxY26WJIMw z>xns8Nl6(gDTQGw)H~Kz);5;b*4s*HjeKbjHMz%E*m!8qp?0eQY6gerY6{+N%2r8_ z#iI|--f1hl>tO%)m{XTmw~t!kqk2j-bx!RuaC> zMTF5mq*6I$-yjYw$Y-z6Mo1vyfEI))VR>{&%U+EsQ6g3t^_+&2dDHSfF^jb9mq&TY z@8`HY=){d*9{#R!p1OC@{WE)4URELg-PMExvDP;&Vf(3x7W5OgUYf@y6Fo72&=p;3Q=)hgcEJMmWe%z}_zDr4A1w+I~py`6s z=S<6v_Q8PCj(cHRtN5zgJHyh|3GaK@wq|w1!=8}u&eQe!Xl%A>TFRYBJIC4ZPWwyb$L!a#Gq+C5pFN(LD z{|1*yIhS(On1Tkh$S1j)lQA6JTpQ~R?D%#pRE#3`` z>C^03cQAN{%|~YXx$0chZ@&Q%`yR-CfF0>z{cB1{CcR`Kflz7dD}L|eaS}%gIs8Lx z88wuWN>Kffc6XOV9->LluYNT8s33cuK!QK|E1Z!G>x25Ik|~0?_h-Z`=U*Fl&alTK zOby1jvg`~$-8deA+pu2d2PX+!Ef*|%Mdw0A%P>u{W^$9gV~^MpIQIMghLyJ+_Mc|v&< z=_tuKc?9&fcG;JG=z24(#@Od|CzXWEabPL34KR{j`qONKvt*rR^u_;Vy{KdIMNc>f^*c5sHy zWafpEs!~KGSt;i>Nfa)lttEJ0@MZ^9@WHr&_LuE9+bb|RB9i<{XJr~#Enp&z!HZB` zHGS!L!G81R^%eQeZLgcx-9Gzo=d>R*&N?@wTj%utx%HNZUMptircQoye73K}v0vYO zwnJI-S~*)Av&B=#N89AGPFzW|pIum4u~GI@xAil>?rvfI5fv$+jyuq36Pc2+MECjQ zdu=r*b>}bWL2*U4AH@lSgrrdrIPFgAPI$x~Jn8pc#SD*j+b=ph%d~k^e_38^&BU&CQ=F z6%ypKtg>iB?-Q%;$SU}?UAUb?_{W88c!oG*31XYbZ24FCQ+Ejew>s3;whAJDULh`Z zVMufO$$Sx;+Wvv(fK#Wi>3>w?&6}w73PrWEuF~!d#@&g-9bKEjy0zsk4t-p#;6L60 zDWJ9}WS7tob|<%1udZ&{mr-QkyZYiPar_Sy?Bv?0XtFhypLjFK|2JDyE+qfSKUc8< zQzVn#i>SU+kN#jA(*_=8Zza=UdF#q;pe>1*t68m@Ouhrbo(f$LfL|V5;zu$HD`Lgc zDA~*-_oo`A^u23%9)`c1%Qoj*pPirxtQ?5-5GpI~0C$U%Ct<2(;l+1%>0>JG;~1I% z;T}q52ng4eQgPS#nY+4p!6z0}1Q*1?baW$hI5@noeYEs+o(+id(G}ij+Zd^v=-Za} zypo9x0S6EINAgtVbS(A-mlZx$V!+|%nzy!`yQ7&cNJJ&Vj=SK z;|AgmFFs+n5SeC#Nkzpnn2SsopXf~-xce2Kq`4!i_Mu~c?Pl)c>T}lq!6?YtM|@nO zs-aVGR&wakQ)4yc_e)ZAnS)_&%H15r#KVyo@BcF$|6lm$_3QUtE~vE4$56_|o6s`q z8}gjbe!3+Eu%NjWs45)e#_jLkTckJQ+p!to`tW4RDD?lKL_YJ!^!qX2^dQRRJ-#dc zNscN+mR^_+16NMY^t&9rFiQyVQ!r#@BwlHFmuEzYhMgmLB{eNoQ?st0sj(UBBdCqQ zV8$lUrsh{u(BgtDXz|~DK#wdt6%$qb1$c79%EiSJ$?JLjV&f&i3buOMu(08K*0f;c zdp0D1S7I!b{W2?YertPkU3_Bl4pM*PQg5XM8G(!)Xt{7})i1e;w4Bxqu^Nxr>qkLI z$2kscoyRBVU9+?g%A6KZZ?dnN9&P3quCtqG)^W#$_T;05m_*~l2?@IJ&!oRJvJJM%t^ghpa1i?BMG7jSRep@m?w2Yyu%^wT$Wbl8M3EoN zR~Ybf3_|lbfU=_FMdF7*I);Iol5Y%HvHH=FFK>8!*Rd+zZF%-#b%NGs;%s}kaiyPA z!{*P!6o4Ihqj*8kdxH>R4YBHjJXDfJqfiKZyWVuDlQea`zYT_p*-?5(*w#Hk^YOx~ z2*DI*sf)I!Q%y1kS*`eEVwv==aWSs%d%zy40Qf9F%ZU}N=0hOIM5){(KK}y~$%|1$ zYXe)hsA0Kmk?U`+bg=Q{OQDrNsKn%306`D?%OU)Yaz)9;16gc}DD;gV6?pdyGnseA zLmzevf7%&JlpZ5s{|lD8YYN7E_XPZ{_pO+6_Ih+6d?+eW`Oqn>n=hTNd9dF?PNp0? zZAmr$VNlVoBc<-QFqF}Yh46@^a9&PxY4cJptKZ?hIAxHznP1mU__2{dm5aS$5hLZ7 z-M@a9ix*k$doQ!GLpboK)z>Qvi`d^Khxj@9bUyoLS9-eiJ2&4$-412_CdaLi|2(nc z`a5;7V=z>|)r)t~Ke6?gx0;v;`gxwxxz57`SSlgW3+o;+LNP-*S4~)Y8579*gPCJ| zApllbaa}N3xfx*H7qN0cUv+i%f6R%xp=-P7dNj*T*E?X`XCGK{Y@u6%=+Qm5wKO!R zZ19?=@!{OEA8@qwWx05ekCIPUl5*OszPDP3C4%wU>Om9cVriXY#y&k+GZ?6Nnhf>D zwF!!g^7PvKQNLW8Mnt*Xk!|%?7IjkF6L?ZIU*5P3j((Ggm^V8^P35rrT`qN|uwX9* zv-0<+)!@>dr5^MaChhq&7a%5{-s{R`D@ZgrD!5;}mds(d)JwSJV#BrAJIXTt+Wxs- zHbMAcsVp?Uh%N=o-L0WGx^Utv5B=D}4bKs3suMkw!XY=J-sB5#$pvi%>RHCFMwnMT zKA~%LEbTG+!N*wMN8Gj$WIaYUj7mY5G%#X*A_F*Tzal=HKjfnH4=|@#X!{)v+LR+2 z`=WQ>tDW!SQXO#P&FV#iyzMssKij4nIaR?&+mELTCey?l3AR zJ`#$#N}KCGJjtaxZ3wqFkiR&Kne#&?jXKKA7qrL7eEE_Rfr9!)#XD1PyRw&%#S-jZ zW^{I@Dcnd0ac%u`b`%$qc|&$Xm2xGEb+wzhR-k8petr?CJSBUy-D^j7xyyhT&Bs@e zxfJEGuvV%iuzs#@lHfh(x<4lv_Cho7#J)}lIGCUn(xL=^zNYV?&`tYZt{AZ zks7p-(TVh!-C4bV6Xf~s7|;Du!`P^`9MccL;8qtX^Ym+kQOGGG`)QK~rf4L7@y+)k zV&uL_eT;%-!td^@V>!N7hjlo3j-K`BP`)m4N{IrktyoaNd(n+9-ko{-B7zZp7t=a_ z`s;CQ=CL9l-)0fD;{cx;ov$4cX+=?-$2&XJILRsjf1bjt&%(F-A6Yx&q6w>&Uo!^r$htyUxlskFO1>0%`;W1ViVpH zz`nYU&i=*J(NTw%l@4-$X=RS1N)~camz;gB{o=b-I{}!}1&a1P#%)HVv)8D1RVQlR z$w<>V&zFV6Dvz&s5bgz`p5VdfM>%a7GsLyjk}=;TL4!lq4yJ|O#ix|NO&mYzS3zal zz}`K+IjgS{qQ#4wuQn8rhFs7$CfFUV@Kv>GZYZYty@X}AdigtFq>n_ph!%I(QJJs z=Pf8-u0}rntXyRm&2iAM2M6~dOu|akk!EjI3xEYY_qtC{Y{nimHlz#?lB4ttWUu03 zH?yz*S2a4s_Z0*}v)z^fgB$Vf4QP7XE7SqhyGP%k0UjUc`(EgfpOa`tuCJUUQcPZH zjDLdP_-4SCR>%7&tk~`a2YlJQUW#`9EngjMN$MKBpOGsxFZ?JcHHHc}6$rb_SQa29 zXEkC;RvoHu=1;~FkCcuSkCcg&sHf43r%9lR?@j29AD5%2!@wY&Y!6c9kX~Wo;#-Kp2;kIA+bm&PFhv$J@6Fj)x+DjUpAeq=y~~y46oXBl{^2`Wl= z)3{#j)VP5*I_C>2xF^FaIUI-wIMC&HH(jNI$1x!Oi_2W?DE5bbjwhM+j}r>L2iErU z1RrtTf;XU7ty2hu0m~%SrZ?OYGuP4EPfW7WXi8$DsZYI=GIAoiifpx`d_R5T#79+e zrhG`Z-t}}sY47WPZ3+)HTiV@*8Q{?6nzARyitABBSlQs?yeP4~!H8;Yj=r{eGoA?Y zZM;3O7R6@l6Rw%5e0AiIi{!96nY)F6Q5cy)choU{P3^ngCHt+bPIGCuVXs(!X{4r; z5Cns!QW(P49Yf7;$Sm@g*Xg}XBq!ygJJH&8l%_WMR6?8DV(Vi0DxOm@=FVBt^RER*>oYm}^fVX=tRZ>efkj|lRf z8pg(tmh22??LjO& zx{ihwdnr}*(7S%r@Y_*Qj^l*JG0hHrc;?Th;2=pC`|jPYVtMk56EM%$I{vpoBP2YX z51WFk3}WI31#o`t+3 zpKj?JJc4HDPsPQKPgcd7i}`5>_@bKzlH)+FFY%vbtBVmrzagiS-$_ToLB_d6uRlQn zIFBTEp;smR@ukZ*3C5we@Xd!G5dB!^A^leB7Jr-=n9RbQ7YB6!;Zq8gSj@p8kthRH%AmK&`LX|zFvXcX z%2_dXpX0icmS5)OnDah7R0N4rzS6o(r5L+0<<~=(MPrgBS5FqKicNn*5HsG#tb4HM5!ykFsQU9TzKwEx%}Mk zo_|4sO#0i4bzwyN-7+Jup*-+YHa4-&)Yc=cD_-z+{$K3p`l`OHB9SeT@P?7JH0Nur z(ZBaR7G&d-k^bPZvsH1|UC#PY!y>x_c7KuOnO?~;4*|Vc<90#44R}U9zG7P4EV@I9 zW7#7s85r@t{^gpDI~d$hGX}|toDv7d0cFE_*6#h z=n#0XpT2ZL)l5;e)GmF7caqEG+8z(v5;xcO{+P>3lFmAogygH72&;`>=5WgO{IP!E z&vNhGv~-{qTqAjU)95!G7aqr?nRH28_2Iv%UT4Hc ze_36p=*Cor>NGlbO?LI64X@b9i z)^JAH64F^9Tn;Mer?~qay;QKx;+lM(%BM1J2k94p1m1j_%(nQ^jM_MGNb0*(P$jWA zuw>wXW#z(spITR{38rrLFYgF=ecP`1=asoJqV7yJZ~g7G<=2(RDkaN&W!BLXC()>` z%$0@nS0Z1V74~iw*%swOq29wuWPVzF1AeiSkfpaA36p3JbzlU_v)^984PFDBT{}xv zZjs~O^+Ws1_W{`zNcx|Ohr&dtF;l@f<>b9Qqv|TJY#t?YRnwsMchM!`IVfl(ta*Fm z3=O_puC@%5cbtak3$GaR7XG?jDEDkEw`! z;SO%y3+)!^5yTX;WsyFY)qmHe!!;;8c-_I|{vtOvkgdhrQswfZKM67Bu92t`kYC~} z^+P)2;3cJf*NiitdM-6Vl=;>(zt;b~TWe)Zl$CKx3~5(bOccA>jx|9*?6WPMoo(LD z_ZAl`mw*%u+YDm&zA1XL``ACAFKrj7*`Ntp$cBO!S<9@wSB~CWe?t=AlJ~xCtssZR zC0}*AlV(#De}`rd{T*Gt2?*oJh6u^sEMK&PYE9LK>I2|*qjQmL9wzh@V2Y9*gD8q< z1ixnL6<_dob^rXw!{Oe@8P?4Bjq>QX;BP8b>D3f;lRn0 zKB1I{H<`VAkY5LeS1gO3qMW&*Fh%Iw0DNcGWU_E?41!A-s+q$2qS_)7q8s3iwp;&) z4^$#3^<0AM5*;KKJ2RYMo()~Ei)K|-{-yl+mbDi|M0t7#>GPo5A;AWPBeyaaR^$YKPP95y-OW0;TS(5w*q?&X3cna=++z= zk{_9r@L(RSs9&ZXFD##V6BQsY0sSLIvDcz+-rb9#IanzNWZ}p+$K1w5{?1hP6>=V| z!gZO^yLxkWSL**YuFnP$F}FB=T?Z&~3__WZ;XcLiz8e;cTv9}IerWSXZO>vUq|fvthwIpiZZNC~Rn zU#Mp+z|5H?am!zCyUq?{Umom7bNHQPu@N(-bI*VPG==ByXD{bcDBzM7#)n&it{nE> zWx>drgB2m4JM29_{3OqOtbv+@zHi_O6J?&im~&_YyR1aU?cfX!fdWH?&5QAkxZAYB zp5m&sC8a$>%ZegU!8?xkb-xOp0&WNtr(SNxs98*a@o}R^M%i8(EU!#1n;@SPevjBL zG~2eNmI6Prj-~Rc!gRVF>=ot&DE3Y#60iOn!-+g7?eB}|$Bw_N!G3@Cu?F|*FUGb? zu1!chcWczya$ZCHwCJkHdwf?n>nQvO?!3)3E}xjrW#eovWJ`KQ9k#fv$7Yc)BC)Y{ zcH+DIHvI*fjESmGb@ptoRAluj2K+7Pw>QK=PPMElZGr1TeR}5@ z4MnpYXmyx%;ih=mI{WFmq+$hE&s)+aEG_8njJ#8AF{bI;xnsc_)L2tI7%#O0{VoNc zVfm{Cv)g-L>sY9fMQ3eekLX}WtJ24>v{?^ag{Aua`Sm1~MNOro$fE4V$78fc^zFG4 z;K&$0^Gn~8GCyM}Pp#mkuBhF-rj@ELoY|%Gca!(l=FkHKAB6A%?uu z@btb5m06QqcDjW@2nxc&oV|#(34>yhjiVZlK*~1xMLJ{l@pd>QhQ1Fw>Pu?oTLZOh z?ctw^jbDmBcZ!99h9|#hxSdf~3TvnX2ZVC**SuI)zVh{1Jqlz%Ihivo_3}JNv=i};T-rWmQjE&0t z!j48k^o!7b1`9+ru?NFH-D_{Vel?}EQ{okiYEVk3<$?*XOQy(a53pAe#r=*nEA>SQ zfT9)@D|>OUhe&0PjBbq15XbzTifp=}T2BwX zA(HmTHI6o<$VJ``cykviTVL<@kv1+lEH>f7l-;Fe%G0$XWk_dO_${Z9*%9dEaI!&8 z8k76xQpWbMb=d}RsK4acwCTA`!3r)q;bnr$xaCM{bQ!lHfj?Z1p@2y)X?+R%Hbz@e zxL_@0|G`*r*O$Zm2b+d(4~rNA1Q?*MUJAg+eX-@T-QrS@`qgCq)bIC*_a~nwidG7% z0%69?`>!-6JA(ahGG0%5__Roj6rUe$uGZwC4_xkSST+8iT#uYxU0ADX+;r}OGs9Yv z$VV2)Ki+g`0Wxnt0~oZUy~O>Fp1c2f6Z-FYm#iUUWS3Gh`xVJODsb)=3sfD~p?A6T zX02IkE<&{Hs`EvK=5;*$gp1+GZ zM+*elVuAv0Cv;vtiIDyNbbXbD*1u4^!potaETAPm8j*-S4VD5Zm73Tsw$k2%;-fCG zy?TRwK`Yu_U|$XA9s}n)bdH0F;WSEP_FGGsu@S+_4K_WdziUjh3y?mHf?DkRsR%kH zyM8}dwS;rbej%RYk!4cwc>q>G=%J*fwz23L)9>BPmf~h})B0`oSHc&C8^Ap#Pn$z$>z`@BV>l^Sfz4(^-H=7QE# z)n@eR*mKj*t7kC@_Vj?GU&3rTN2FIAF(UiT zFz?2RP4L$f3HV9z1#=|*^^uS>cc37r1rrEGazk`P+-=15`}gVqM``;tyKsC2IG` zWf7Ce>52ZuJGn*l3^|(A?91QgJo~4blFons&QesvA(#5h%)zcs6 z;@b7;`ji5JKD!LqOU_-FcorY5?Lu<-|NGnl5>IK}s$`#uUtS|ch;y!FFD z0_H{HS;?9{jIeBudn^i6*+INL{t{T-+!hXd_EI)_8#AqaDAVRKPMu4JEHFSaJx~rD zR+Z~~1?SoSd0E4SafkyZ+|vDfIwM9eRA+g>B1NFU-U63GGPGru(JpG02ribCh2 z7s#WoUj4HoFpsSHh-MY{O!%oD*x;YbEb8faRML$w`FW6YCGV2qC42MM4UlB|`FO^U z7{kCH!|-VRp7;?A<#su7o&!+c?243^*!mK2+jwF>i`$?Gwz%LomfS3{jl)kaa^08@~(FD~xMZ<;WVRPFnGZhbnpxo7|(kZ1As0 zo|O+@%jo3m zE$_9ZzJgKJ;X5&TE~=r@soRJm11*saib2S%M!sKnf5zY!yA^rgqn;J}??RyjVoIXO z8NFuv-`XDNn-5$c(~kk7RU$KZdqM+bYAXw0@>%coZ>vAJSCpL+OzYsloD#3AJ&G=C z2zK|vMMi(h)#q|4nx3|NVG2-Z85G00qvx6+Q&LHc8n&#(T&B|^(KcWWFt)+Fr+G>( z!%6Of&&~cfEv(L+S*H2DI|B(WY*(ef5I5tTS+^=bM%km2OAg1FlaK_>|J&y?4@te| z*cE$Tf|{m$`CO*#{c*@?*F8_vQJ#~6E!b6`r?LVBQ;aP<&L%xF90jXd#?SMEq@2jDsd$K?M zePf%#csi%VvTUxjuh4G=keK|aC(92<6aKLRcSi!mJCQKRh})(1{Rc?o1&wv~E8c;9 z&x#v=RscIi<*Xt}w$Z}jZK6yGA&(&W%;Bwp@T?=~(7>!}t$!%)E+R+A)IU-qfRJL% z6F6GIEFGZXeVTvxAmdeGST?40w_Q+Ji;KRd!^);l`bnE6g=L2I6IGJafZYYFf+a^3#{p0S*hik`=>L~Wg&H{(0*wrt%`b*3x;Jk_1nr79M&RQ^g zGya9&!_;5FV;QvU)S3TI5pvH0D|jLw{AitgAkAt^90td)6#5A*_ObA{3!`1nOLb8v z)9g=zO06ofI)?_x^YoK6umN0mqc>;ixVHz-s~#41=GP6>$5RiTVtE&4JRbE*=z@!O zC9W|{03RYnwcmA>nQ?V=o}rrv+G)VA@#gg1+`!^GNkRkDRL>J@f(H0+^nlE!Cp+FT z(z~l1jUGzD?KN`3QWwzhz%R5rhTHq>Bm7}uSq(Y?N4S1~Q<gsy*dNMcT)yo!rnMwBdnQgKCaefm035plDL zlVR1~P|!Zhp|e9<%l@tCMbA5SMi^&WIBr(hxWIdIPT0yi$CVob%Q(=>IFOjQ`8jcO zmvQiE;)Zj=wQL_|IdOBAao}j3qhpg(!42WbICwYFpmXDww(p(252Kj40c9Lq{LX3l zokKY%3^2Zd*Y10l?87)FZsK?#Vza`YHaWTbkmw?XTPSZco+_l)@*X$nD#`9`?NPqc zt1)#$o$Yd>xWeo6YlZ2Fo(LkecXVa;bl*Az8)iwqO4Sr_7 zS8^Ics#)A=63Dc7KYy2IZ@QPwOE93#&E3&?cmB?*p<-t6HH&mq+;yQ&z*TpJ%wvM* z^t?lFi;UM7ThWU6TmL)WP{X19S_$4vWlK#x`piN4dhW||`^!p)TCE>Kpvm`_e=Rb( z>r6kH;rTb;YUNn|>XIk6>&cMOL3QW*>Yq5F7wXeoo*EWu*;3N8uvzKJaiEY}tT9Np zZ+p$lmD>@h<>fbiVpnSJULE$rBw<(Lsig?2$V=yGoa35W>euR_ZO+e|(LzNqBl}O* zE8o_6PlmliU)pvpTU*28UCfYayv~a)UN%&zS#7JIEaJutpEA~}IP!ZibO>#Bsj|-= zJ26odNnv%*c|+3sDH7QI>(r;D1N+MaMdspOCH^fgmfSS%t_)*dm6%1MeNlyX)7U(2 zZBiUh>+!#I#j3f}GHDKc9TJE}@}X58)8tTT?hRSfSm5VTVG09KgNgm050s^z)qzlJ zk`>x~7V0Ib*f61KQQXDP z1+xY%Y!$tlVpX34^Cx#Ivpmwq6gBB8ys-+4(0Rt_`L)_In9J?+*JJ?rGX^z}(%SeP zb(5%J;oQ}c`m6e?m`9jjzS1h-&_`6(1 zerQIShLlwN2(#XPKV>IM6k7RXMDd^_qbd2;EL9)*Q&yzf=>o}IThR0Mlp4{df+!*K&4vxvOWoO9zM&zX01_g zTVur{wEJrwp_AiHT+QiR`!y*j|LUA&^(}YUmwXGXiqb}P)n?o3y1af~_lb5UqmL+| z^3nw{CuXw<3>_1+Oj95uuX}l|89-O9QxOlZwSo4-H_y)nu;FBk!EeV(So7m2HV#*& z#J{f=mW!WSSp-7A%^J><=pP^J68!jBq-dup(kY=<<-N;;zhiyvED5Wxum7f(VZAPa zVG`9ESZY+zkiXD2T9n5WfUZ;FSQ*SvSZA6EQHHEx)e*!ya{Gu>bWT3`SSY*mR@%J9 zY3>CAtja7q`ex;_{5)4IpP4$(2lpjBkW0o*c~|E;ikFaz82 zx2?(7D@{5-C`-X!^iZsV8M)|9LjeDg{7wzHq;)EjQ>pQqgmYL((Gws$*=zt z3Kffz7S$OpC<#Ugd$J{U38d9MCwNi;uwkw@M82LBN$mvRQs1Zp z#pC1(e?(wf{CWG1=-2-b_Y*SZNf zAHB1NccgQuuJdRp>93^{7$W>yhh@Ws^>%5cb7-#BX((B*IcO-EuYV-0O6AaBJJV3I zUt`eZGG5zCiOTOD(Liv$i-#Ga;Ev3UEvTY)!nBu8fw`Z(Lb}19yc)ZgC&=RPe}{C> zzl!-KcUK`%dNlmwLjLfr`_2C$_mc4a)5!lRvj3^;F&C9|CgzrkgEtfl?)zpduz zAQHp@5L1R3Akh~p6}HLk$vx1z(~wK~ARo~dvd8z*(PN1#h>uETgf`-qeX#zb!8HSt zTTP&lK9*XEb0a!pEi@`@ko!nak0q-hJ1SjIn?mD{SN8FUq7W^?gW8??KPK`c|3a|1 zF3_y2Vsu$!@#o6SrvCPS7m#h=UFU@Sn~c;BmlqG+`M7lin96NGH!ka`D~1=09#xad z>CJE7YP)C@jh)!z$DO~s8=0MnmbGdqi4@STcJ&q+SKqqg0NTcMqzjZY9Se)z>S<{$ zZdb^3jm}5+miyrR)%GSa#2RkpzMY!+89098qRm9ibKCY4x4wK?3vHxa+jo89-@<=- zB3!C}QC{===NMT`ex}T%x`iCPJlkmREyyPuYZLRlvknqd-u14jK92A?1N8YWM)-k; zmk}q0HB0Sa+bejc%(1FwSqnloaqi>hpH?o@?M-H9M&$AVgR8+)^GY=?CbaGuVF~ZR zdgav2CPn7VU)IDNH2XU;yJ`EjCXdyqrXp{-XAoEyi}r>4^zq%xvOx^s9Gvv>ReY7H zIsdIs-Ri{YWek<*bO^vFEx#Y5ZYsySvvPU78T#(2`u!kH`S;do*6}_YzX`iD!`eyD zqWO6T{t@2W-MjqBppGne)?d8@HO^X%+#O^}slB?HG!N+$bP)RSZ+PPm3>fb$0SQ!F z{PAMx5rFoE{K~HBBll-vtkcFhwLPPOu4F0#nM=))KDK{P8-8rA{N?_neRiMjULr{-Gxeeix=3dK zWY&_1o?UZRG+eV;NrpxZXxEYvt}?Wde#7dF6^tvHo}ST_*9It;d)8BwC9GQwhFFO4 z_3f<1Y*y*IXOCeudC{jfu&SMS}o73;*J1UIQz$530)L#0!gwa5zhB zhhX5%B-r6K;uf?&wEQ9p5n6B;iAxd<1k+q9BVBxaj6(^~*o2_NgSw4BJsvtb!3_f) z@g7T%pkFQ(1%=t{s2paumIeK)vBB~{o#V?6w?}&NE=}OY{1$kAOV<7ISr8tL9fwXC z&Tw+6L@sIoWS`yI6I`q4yI9=9Il06p-(bCD`@gdBp}gc^i&gdY(Z1Ur5%jCaW}n&O zJG#^o^vmuR`}l|~=$F>LL+Aoe6NFokZ_r-41p=rq1p|kqTsoCEt&uKp|2yW-#e4h| z_<-(L)cs$@Y=I2y+mF0~5Q4`zR3o-a1QL|)QU|3=XHx`8jOmig27uI}%b%m$d!>%V zj_cKooy&gd_#RFW_>5{qd&z)uPWWgND8_QBin3AGhx1-IfMW=X>s8(DiyBbT&5jOt z2*hc55BU7(76@j%{4eeMHR?+)Bu6?jUM46bJmQiudgvbYy~>zh7Cz+?AGVHDe;t2p z$@@;>oSmZ($-&y-UP^Q{2vHzA?%ixCfbFB#kXI~}B0V7)a36!7Jgw)gcUD3}I)Kp)nLAs>d`;_&I*;BBmdhh%&c- zC>X>4{PSKMfeX9?>9sa|r@ou?zzOagvD!zoa-sDchkGTJ%n)@Ajl4cMB?D+B4@F(K z%st(kqP}{{=P4?6TayRK1BWu+ZI=lO%K{&z@jxK2h;eW9K2Ed2IOC$0C1t6fTkNx-({pP!{ zK9J$)a$3+Y2s^jD@5b$sj648@ZCuWN~;gO2#Eb6+vMCY$fY%UB7QbiDXi@#>1IBRrXGx@DvaCFYW-_!{ha}Tk@CwqElZ0N46fUdpCZ)ZvRye&RXJ+^ z7{)&&n)%>9~ThkJV5z>1qE1E zfm`!QF2VA!oZ`NTBJ?M?|mF$9A(zpxD=5Kfy z=-dapOKZ&jec2C5W)h-vmqB+mKUn~csk=&OSbflaAH0J0TY&m^-palW;SrU`C=zL< z&-}ka;-12__)`f_PTKy*{m{yE(tJw~bbZFS^pB<;AN$3161jelL>pUfe zt5qeIFvHI*UedyHrVrl^q&7&!$PvKWGeD#N5F#7I11bPNr~-WIFLrHlgc}@nM#dPx zkIS#=pC0UNu8#K3x76_fd%FHZikQk{xv+auN@e|*vWK+TV7`rJyY1cZ66gl;1IVN* z&i^vT?Bc~s!)T2s7H4o2>g^PC)=X~iD1w-{aSXVKXy5~P?arOMUz~Z>Sl%-q>;)b1 zZCt}2s`Z|xN@N9@0xsJ5&8(g`4hDBA9?dUSRV#(O{2{(vVoV?t+u2>&PllwxX!v5E zE8z7qjsSl3+IW`Uxl_ik8eyTye3oHiH&2knfL}h9OQ4l`*uyng z1J*CVgS|?d7BF+W!w^6uQ2bC)m@5od<$L9{8UnB1hGN-E6vQ1+{6t5n_nz)bc+HTQ~p^8CiffGYlVBf*ouTRwMzE8LCwY4LkVFEoPmHX%;0hl+;J7jWLd(73v%3Rs@ z%DZHKy4ih2!LzTC#XWbd7bu(f%35_TrBCVr&s1x zNZ=M5xuBKsbR^F&Xf8lX%27uO%IWxtHEJ!-S-1T_x#qo@u52&vF-+Ny%_Xry&0vKq zWG?V40w9O{^SS9md^V-|9~Pi#5I}0Lp#&hZhrAbgt%qIuic{use>;Vnks~4*oSZ_y zu3!I;o0awK_y-L7{*`dW_^t?oa>gV`)Bu~6$`zEuB}mpAYYSVWoe}@O9&U1Xuut2&YS@o>{MaZ%oPe-cn9tZRB{=GmHsDtLE5K zMi)>Iet)jE;4X}t$K+vrHOc8+)iJ9(e>tB^NFX3NJZ3e1XU zD-}NmHW*IT)WKjN(Y!eU{yd8vh^BDm^&KOXIi)|k_1@Ywzfx-AWcuDS!w~w0=;+UY zrfaQbSUHXsVFfR{p=#akJY~G;m0bE^7eYVFPS)cTjBIPysXOuj0z; zl8@C7LBZF9=49PEx%#j7%({ZMUuk;&>Wt?Xa~0y#{rDTLgy@{*Q(h~})a0G&Mr9Z`hmess(#H`ul zmz-LT>nhP^>yKX1o!nPWwi+Z!Z`Xl0xmiNr6jELs1r2VIkocMgIITui)N`#Elm%#e zmu1bQYnMO!%-xwK6+ClKa|}zjOBlTZ6ZoT#`(~e9L=X)|W;D z&Ys&it>oQ=*W4&k&39*(wfYs;rh}v>AwTwwy}iJ8x%Ri8WaWiP&pC5D!J(?MzhX?t z4pb@e(=tnAUm-SGmB_P~><`B2QNlX>kqGPESA!inf6wDtwqsO=UeplB^T{i*e5x?| zI4YX=CF$)fOE<=)S%=4F`{#Z4%#jFyo3a4jlzN@Ee>z|X|Ug2F_ zOSlL?Gu0LS&=6J*F|1|L&kEH9sC%EgtX-;(OLINi4`J*ghqU6u;_UpH* zyMN-=-VosUfkVI533MSxx3#{%t@I$*87}#JPROejbQhK>aZo`=aV+8>x+g`;bV-&NhEE!=%@(vqRkEn14Q7 z#XNEG>HiL3aea^Dk!iXvd<@69H38vnPSOefXq(Y2sr#9k;(| z_MODVZ6W0|G1QWDYH7OXdAC9B&T59F59RFx;?i8L>3tFpDJo*ezV)p-Ql=jw|FO>Y z22`&o@wiFVQ>Z(b4-L%-VV--7aKthuWqlRfmo8z>o?o)%5kLCK_T>TbOhZHzB|9F( zRRB1h6Uj7!iF&7B!A!V1W(-?mi^c}Fv$6-&P~0b$m%kf)@rLxMqLCue!aw>=xxnj& z9m!T%(E|ZF16d;8tp*)XLy7*G1Ix?K$!%^rY@M@1O4=6IzWY*r^ru8mM8gXAbM2}u z_7|nwY8KumZN1*@ z0Lct06Hs`!)P||vm$pY|b!;4Jj11xKdJP6%^))vSn z5Wb6I$q3)d8rzR~bC=;Y=8FiQObok~Mo|qQ4UtQndA@jAScP<2M9^k-mFxtV z=FKDQCjg0jGbJ#A`rN~Xz%H~E_W!%o|1aF;b;yJ6c)mun-~Np<|4Z`$x@FiC=_QuQ zt6cqf-ESV%oX!2@DVEH3TxM7O?-a&p{Qr@}KItU%)md1O?wI<*WBWZR0Y$9*j_I$; zCz+SZFUI9-Bl7Y2=A#x~%w)cBdD4Mp`LfQL>6^z#JyuZI>J70LSG9qF9;co2PLr>k zbC6@NS!CjJVuE(U5Bd~LE)v>zs2Jt0R=npy; zAe#JdZ(p6@A&Z$O*@HJTTY%ekbvL{G;f@)57{}==6KDiV0?}as5xSZ-_%jVggDD0_ zL_=Qlntg(^q)6GGL^+}b>Kc#KH&Hj|`y#~wr zs`8>_%2k4Wuqf~79B%p4hgP%B4Pe-W{pnQiF4jG|kxqQu#1>71L-qB7j;@_H--dN7TL-u-M%!NH6@7+CmZ6epi# ze_3w7C`%PK^POw65gtLZu+r;GYX2B$5x-{ef7gI6k!v@n10;@@!sTLjktV!c$+8W9 zYeUgjJ&aqT7kHSf@-+#=hy;{wL0D5B>G1_bnD`!Y0Z;b3612d=|K#*Zjv#;B~NLYH}G2 z$|t%L4#A}dk?iU7r)6yn#Th4}1KqxxskOBGf95%S8i#1!{ivT$cj)tA;b;QMo;mAC zmop$q#fa>_jDwTw1weQV(?}Xtdff>=bMU1gdO}lrG`8UjHC{DZ9({G$n0>o^pU4@#=Ets0PsP z8OLzEC)+W>sh`V=eTp*+jm!|oeBG#OK!`_M)1tN_+`3`b_t0bx_*IZX%x8TeV`4pR zHHjdl^|faY{rQL{p@=hqUF8#JS>d%@ahV;j{7cL3mm0QJ9L}AKw?eb){L_T=0Kzji z@II|~$5VcwLE9Uk*U^CA=4azBcvc7C_A=QzQffcqxZ_hZ@F}l)F`0CJQRCoP9AH+- z-_6a;CmZ6y4(XhfI^RgDTJiy^>!0W%w3=AeOYDLOeGfn-AGie@LDpI#;&Dvno;q*l zUS+j6lh@y1`80d!WX-`Q!iWB_(KkQ-r zN>LTpL_Vy8pPn{H_(WOMg%eAB~yGVa^&pPs(yYcJv0)B-e@ewtHW#HArD zVvQ~TH5m7a<~rkit{i`N$S{9^=C%$yvSJ6wJMRo^%S~|&O`ksVjpCoTd1X`NhX=mftCLHw;_oc^6rFHns5~`4 z$M}A_*ZQ9F7N{rrh-K|u`+PPQVD>T0C10)mb(;*jnHZh9+q9oHzOUX$>ebZ5dYy=w ztbL(@bCn?N(!_JT65he{A43}_aH9O>Lol+CYJ_tO(dnI2BdlQ>Y#!we{;{-@3UFSx zfJE8$rdJQB3&Gi+X ziWa(Fzq#pr)AvSQct~Mv4 zm?5RXmNKuo!(2JvN!bzdv;qg=8p87&}} zw%|{l-{DKJlKjx)D+RN3woS+K91(ln)ix%!q);3$1G4DGIwvY%AN7}Z-1=ZAen+wP zD~)M99Dj=^44k(za4(Hp$so{ta7} zykeO}#hs(BpWVlk@t(_+G7?!axR6WcQ?$`NyoykkBknl*^| zV$3zGu4UBm#h7(APRl6iOS@7reL>@^j764NsUm*Gk&g?#b8QJASGqA`QVTVNg)Clb zc+GbzU#?-C_#Fd|k`;F12MT5MYB!W_R&L%<@)p)u4`%Idf4kBPlMC4}*o@wPifRA( zShRk6#~!20qQl$iPb6N8TmQw#LqjEAu#PxrO;T-#Rr2@eT!mcq>DIxd`GlCi`7hku z$gaw!*=VmiBnQK9U$!-W`!y)L-cA)+w>}PX-M0)l{o?%)P95FV7BINYrwR~%pu1Qo z9@y13Hr1lrKEk)+tM=Z1VtUDIJaKnMBPszl7B*dKpte^uJ(V>cz2R0z5nf=V@X;|T z7%Twu7OzGC-7O=@uP%v8>2AhS$g0!wFxT>ENiB7KYq}Be@A&pP(bs=3k?Ui{x6B3^ z=jyWABps$u{qR$*$Cwx3Vp{v}-b)r#Hmr&CwX}0>u7>xKXVL9lUsH^ON0P?oYAnRm z?WctLMeKaq&)uQYuSt1Xf>($-cFhGSSF;)tn{nYM#UP(I58Sh+%EA-01D5Q(PDast zp4@jfHP7k2ZVHY*L8_de@ciO1v4fQseWpNn`WEy}bxB7A?n2F<5T^i%y{3OQzMq$& zIL=qBV;sSM!(cKYZ(iGG5YhHwb$Hxa*3=|)42BaBMh#5s98V#*$eC!kRMU|H;PF}GktT+Q4h~npYlxX<4uVT$^4V8 ziQkN7hGJjnepG-~I!?dl!@hq^VL977)k>&mdn5IE^VS`YTR=^QPO!p;;r;~!h^(!H zui5WzNDpSw_1bo**3eC5wf`iiq2t48o2urPAj?iqj=<>({h?GeZ zzN2OJSI88wbTfiRJg%h^v0<7G*V70hPt^3XZ8{(*_GvKLfy+-<-$Z*rX?;HS zF5xzD9n+CsnGBT~vk1g;UUGFXR&=7hYy)QC#TIL2I#!XBVBaHK?m_5r4_kIqKYS8v zMLmb@<<>kYfQbD{SsEnt>_PoG^p`uuv<8A2P*6LDOi0f~35`DmrWd-Dn_+rkh-gt(T9cjeN)^_;lHydxD#inQ`%A?=@w6p()NZa zB_C<2>GcTDdbjt&&ur>qMjPeMd#HLe%DT56$tuB5(W3#_l`b-n^G>q1r%?4HaV0ri zToVs$J5C(u-MonH0+FA1OD`lmb1pNlHcbg$!>>DG77ef1HgL?dBt&9Y`il8>jAvhe znKS`QQ(QT-(o%M5WB7ul&L520CW+(IkYHBsR{=Pw+DQp>#P`>N+kP`I z8qscl8>P?y85bmJa@qujZI6;?_f@sDGfp(C%x0TioB={7zUp4 z_p8ZsKAb$UT7xt1k-ijuzTut;={C-Y$uc3_QL{?;b{axG(Iq%-^2eQDi)6sq@VC#V zF*3n*y)gaHjYg@c_Uywo(??hf{uCwl#PP2%v~RNAS;EKkyCHu(xWW1F7(~Sjm@bxU zMhqgxS2-R(UR}Fso`r?@KUwFz+~8UiD50)1`;gfcn+^Ps=)s(Rts^a3L@)lrJ|B_v zW=~x36ZlVXBZy|#nB?wjhTNFYj0UJ0cjX^R!l{n*${+~`r2I*}V5#t5r!MgK&08DE zqiBnVmwd+|_|!$KOvY5(b8T*h6NZPd)PgCU-%?VYkYA0h?6huoAv7Z}ll~Oqf-fGM zG|&I;(XwQ*>G8M%7%ur@RjwP|5+~Xd&;2qERJ#{fr`b~dDlUSl@9pBmIb3y7Wc~B6 zc)6^q+#IE1>BUxam81(aDQ=w(6z=cjk6Cm^Z*M%v4uttBD>~z(cn`b)7QEO%WB9=V zK>)Y!;*e(Q>T1%2uRiVQ4J9+rs9i@`DTdHq@N^Ka^#) zeZV|?_uDhDFM=9ySZi33hmQJA;`AlCtv4sQZ87nmiJQZBa{Cc|PULr!_cvE1H$fs- zL1)>mf%Xgl_PfkW6-S==L2OsAm}IM;4t_LNu-WcV#`6JkJ8-x?fMvtYG#bW>=DiMH z!r-1)?Np!r?eX(b-VhuK;HeR|p35G|>k;;Ce}(Lm(t`v{i{eulu%Lc-Sx?=ej&sDb16oKt>vc? zOC|OA(!@29pEyQz!dfiF72?X6>)PHi)!$4(Af7Mc!;TS};F4Y-KAsnfc|eBR+6F7o z#8TIfUwuqnPy8Nzs60`nt;D}K_%TAtf^K%>$s;0kUjONZ#0yPx?udJb9@GHkX0lhr z?ZHu6Xw5pKz@*Mf*`}-olN)a+fTkb~G$`I#pG7-x6_x{dB@Mv%Gew5!? zhfDb0+lJL4VpArq1IFnu^Me_-_xJ-ZkaazPkc<(|mT93l51PV77`ht`Y{vPko za&ndkR^G{g9Q*z*ve>jS{HSs;G7Boq8k-OJ-hVk~A^T59XbZKrm&|c=^G6{gn4iv} z=Fuu06Zow;+tGEs@i#nJO`UdBc6}(V?XfO>AwaJ5sy*c zJX`K%2<84r(nopo&}BmivRLjlt+80`9Utkd57({1xUTm0|F_&2FL3Um7^f^IimVTZ zV-$>Eb2@K5t7-m4RoNJxdkya7PUtW$;eKlrR+Z{V4BAWq{irV6DJ2H|_&wG9B@~BrO`r}CC6gTO*ojpWq znq3uzcXE{V`O}WgxS3`%9oL8Msc9dG?cMJ#FH;V>JLWSIRPv5I%UvbovK2ciDReM3 z0}3`(Z)Xdq*EG+WEPOb8&)imQ29g!F8y`vRS5+xhX44h|3B$xx{rzbC4Zo?0%|2(m zieoL8$%}t{Zdc$nj+mY}^VrBnUdHw82d8mZx_dcU1V@JN^^zThs3s?RA@+ruU{^HE$M|tTr5j_*~N$pgfOoVV%QsAA}$q5m=F)GjJ@ug{Sa7 zd5Uf5E2gIpWo_$HhZRZDBKwmZ{9W$#{p@%2yOIN@T=BQkDi^|~BTy69*P(Ne4H#Zk z=(3zu_WTXl$u5Aj=#&*w>>X|>k1~GE3xUE;Ltt1pnt<5VO(eqmz~2ID?=OzvzVh89 zRX%7?x)6LFJI|}C(3#9=S6>`;!x6R0wuK!W2)4^Rwn2GHduCp6*tn~a-OG9mqQ{4aKNWy%-Z@HeA-NGMtXV3#>(MSeB?Xqih1$i1w}Nj zQ}$98bAsL@kXhQo(5599+hdbROOI)qT~U;9XjJk1~H(HL!l_8IvND%4l*w(6&_lxy2 z*>UB2aXPx}FY!%O9Wtt#*B1yu92eYdsMmmpz^f{XV2t zfKV+B#>p4=EgHu#-aSMKp9FYyU@Q1V(Ie51Jf?_~*8*W+BdZ6*LgwnVlw>4nA&^=Q zR>{3)ZjK=<15WlJ1fR5}zc`!g?C(J|&2W((!I1QpIsOaEdYJ->ClHmRrKOaJP>bm$ zojma1vqRWa3HYp|Cm+aB)rhFczh8a*1-IWv(OnZPN=hd5PhmLFYiSHIJRk8kif^)d zNj$Te8A_7jDtslWe#dM`wCA||cRkSBUN<0C4em#~naq;lx`H78a;+e%m^iHTK^z!w z2gce9lJ_7#JXd__=apDLWC>utC268aPp?kX_iv%e%r{6jo7ZJpV z8yx-JM3s7Y_D|&=Da@v(biee`36#XFFB}W7=PD|f2CFq4aUFA zRyFB+6WK0|4L8tato+%4``EjLWqjF-4bf#iTky1*C-b^ufs}&@ESE3aGnVxsgr@m- zm*d(#>*-G=BDK8vHhc=CRlJP}C8c8O{iJMm6DyF%%|6Bg5S@V;&7bJNn`q-^eGZQ9 zb1ZbkX@*|Y8--rbOeXPKIwDTQEXI-Ihj(eaq>5@%=;9x?H_nXP_agg~=GfG)e3f*j zBu}{~!s5f|1&wy4^tbEs`324$l&aat+vqoeH)Z4=cu4(t0)VclOMcgT_ur2OS=cwH zKL9qd)Nx&6pU@7i;+2Lr%xf6K=+#t3yXZ+Qrs)X`?JGf>( zgQlk3xz@)>O+n2CGj2Ioqxt9n6ztgB0k-p-fsier-CAUz_M5=DXDO|r`#mqN_qQ^T zL%`;Yv~tC$o4R0;C@bAUOS<1=tBUYSh~TAg~I(j9Kh6C zkE^1tN780nsA?;9&91r83Y9$du=W79Lf~So`|QE*E9QjwKx5(2>9Mz{N>WQe;{l1# z2PYIHjigO;lB2X`BN8Tjg{G^qsBI>FF}KS93rL#A=WNw&)}|QLfq3P_^P|J7%c|Sg zvB-^!kHo#hJdRIy!-m|k@)E2$DXtp~75ert^PSwP@#AD>-3OJb9gbH4Fl^)zJl;?- z>T=jT@HA-J6ROv8sIMC=UG7J4;#yXxu?llADFs5x+;XJErvh`NfXQ0rM(>V`gEyQs zI#c)Np~y0}paXocG^Nn%25Nsz#uA}2o@j6!ARi;R;!^}vDmJL4M%*W+1-hjuTL9 z;)MR}{rgosE2`^yhzS~2nTGAn?8)>}KT6HJtuT{U-q36nh(o^|b%4@}d^OhC%8WaC zq!=Y?3eTZIJVwVCkd(%fIY+#XS9cP(S96$yxkC&(c?Om}znMyL19`5YozX$^uw)lXJYLi+UVVo8xynTaSu8o&3qD?bIY7usM{n<1_V*x{5a_ z&Q-d|@bSO+9LCn=^0d9}wU^}QMHKSsagaym)?H%aYW(Fx&+Ga}+ceUdQfH#SuGI5r zSRpv;QM>)p`Lt`2j|e4gmuge{L1jyEK^$J8a2e9rN5?L6KT4@>-XmEc&3~%h z6YwY|l__W{w2!G`czYEB-^ z&}vqvu~l4O+-Tkvy>UFizX`r0?z^O??z^Cm*31(gZR-@xcUcM@6po0RQVSf=yu6!a z+A%lYl@e`OPPw^zy>p!-GuTD5D^=HBSJkt9{mn0C$DEjCjVksMSxf+>>2}Z366T>^aZoKI&gzf9P-i>~Uq+ z0b{sh2s)mnKg7-p3pOf|R(aO(mnvt}VhJm4u$!Ma0B)04ucekDRmE59!~ZKjL>Ko& zZB6unuU7Ka99UZQ@W6boAA$HNb;G(b^}_-00xgjOU~;xIt-gRTX0OTxY!J2ie{1oe z4n3;K%f-zYn)aHk()cSCmYca}KhSQSb@Ey9&eQ9Y`Rs>utt1O6J;#&JvnGnQ;N4oA z7ni5bUhLF=_ufz!FNbxCy*N0CBSX=61q7+CRtm&eCv-2-_A662s#2c_)-B}}KxfUO z2d_jghRCApUVzdE2g1h5S8tdm#@`WC|N7T+V%d;9X=>GJ-N#0JL&kl|BC|Tg?ne)c ze!Qu@vugU#%`JPkqRfcIKt`MEQ}e_y0OPydYe0|QyBMm2!D7uY>s;-!Ietd6+C9D_#*viBz^dkcs7Xh< z&&Y~F3f^WDA!J%2^-TnJN;lRx^a;h5uvfBqFk5{P-2`-Sem-)ilF}}e-wF8SdQQ&6 zu*i^#oC`hIqSiDIJ<)Pgxzp(NQoZl)BtY}4(|#R9^?|cu2<0N#cA$ysFNr}$@$~Lv z5kyDXRh)M5`r}00j+S~J+|^TZ4`!cX*Dt!3X744Av+8I8M~Z7^5iL1+R^P}`j8FFz zY=vJVC4U$iW_UZLEF*u=ES(iRAhA|TZcYXoHrUWK^@JvDiXNjOFs-LS>24FdoDnS@ zI6{V$BNgHlTSNSc!&3K6-r6QA2}hxirzM}qQl*>>E`(ce{i3qt94CTuNuVxN!BWP# zrfGocRSAV$bHSI0X8c=9oAyScRu}G<2$;^{Nk!tLt-hC`HpI^L9k2LY$;@44qZHqD zjBxYQAdwB%N)P*i7E0*J?BUvytj)D|FnFeL{CgJjls<~hxzsiR6iZ(FFN?eY*)PP@{*a6xia5~(x36U*0-7GfZ|s9LgL1= zN2NlDwzpK}2En>SEb_dFH`6JnMv|x{JYi28X1JmT;%0E*>T2teXTp+6`&IA zLA8-60SNIa=jzv%KS1E72=c`O*U4>cit?5Z_W0yzX6dJsgV>Ynj%Z4|#G`kL_*y+T zi|)4$&fb0?P49_sz_xy|&KoLM6wCj6zivY+>yXf$y8or=msyG>N_Ecy;4&HEBlMq+ z#wUn2L2g#}wS70M@Io4#*<9-QRsHhyyub?0Ua2>@*qrk0AxbliWtM!^g}Jpb_Fsdg zn5CoS$$rQ8RnEE(u{Y!MV1*A$WJK3JWj`$lsu`=eGaP>!f5X*hgEvoO`LuGF5J8Lh zh|hmZGiW@!z%Di4k%mMMYy{|d_Foue z8Pphpzy^|kOxA!*KyS3|!67t7g_?MsD^`@np*fHn= z$5+Ur*!R{GTl{Qx>-u%3Z1$6LOy@`}pKThjOIhMXUcMSmHQVL*PQMCS@A=a+{;07Z zT`4E{=vv0_K+^9KVH`tVbs`MXLgQ4f!u7UncJ@WB-08zD(;7FZ3>Odd)vctfKJFld ztx6T5Lf)Dn5eO$_O!#0l?x&s(&udv#?)v#B;X^X(qq?C|=$!Zk(HtY`3W+*{LEhp# zLlMu+{mCauF`^Ea_AUm=&jH;@VQLb%dAXxQ=vSwCwb8_OkYEzc<+g3H=+^#et!~t2)s(DLSAh0LC70@;)umL(5Kv|i& z&OSFq`oD7!ENVF$Nc%8DwR`l2oI@{OLl(7!9h^LaW=+v>qzqbX5pvM?W`-_xuRn#Z zA_}`P_%j~Oy$~gbB8HbOQ2&_Q&%a22o#zUx!ds`cL=vbYK?J@99{xX8wt@anWWeC#qXG%q`K%MqhQ^YC_-yv!u}cL+XXo>Kj9Nn#0*3?$!(VgjTx zbCM+wneKz&&NS;K=G~0F$QjA96m$hZUO;bHN5$N7;AB4P^Y7x4gq(;MUDO#G*8^Rw zFFXRAeS}l1o=zS@DR1~c_sF<{P-@5RM2**pl5HgPbVsy!rQn+0OjQYG@zm4BTpDat zPpW88UAKAJRJ`w{V=-etO5);b^DN-=KhsO|%B{vYtuOKcd{3_*$?md$`@lUb0`ROa zCE&Gv+mk@)gNcH3$(A?55&=4_<+pnV!rMy5dXj;YazR^jzrj4aQ=ftf57(3%V<=h< z{pfS0BQ|i;9+_tCyCScvkR0``+`eZFuu0yhW~1iS_3suA9i{UsIz_%7wogTx+M1cO zf9`+SxAo(}VgTy;3DoAW`H}85l+_?P&{CDqn<$=X&}W+1Q|{4OA}e%k)#cOb#9ete zF7l;Mx8`}*?{IQF0%z=JgX4-X$FR=_qJr#+^Ch2vUMgdRQrcg`L%m~tFN|KsSwFkb z=%_YA}e9GRC4#L=y>f|KI=wG1%F2ha6#V-=_J?bpp74aVZyq% z_)+cHLH)Mnk2^NgorI0oipQr9pK`Qssh>>dUngjkWWpe34zN#v@YFp|n9ZI^*@~uK zP!%svvHt^2EuL2Vp}9~^>$z+-HW=kdO^AFVyQ~8QludVA%8_N4Sd*b$y!un2kUv4k^GftC4?$iPfCtmi1Im>e&)1f&v-I#hQcX+- zjKuPsfgym<)UXmpV0pgVVpqe-d=ux|K3T?@XI3T|V@qST&wr%8l&Kv#og*_z&mjHx z>}}K|rem!`Wfix3k?kHfAwz=~y4Je!5cm@Q9i+6BmD;xPvoy3UvC#(fpoy$B-W5;Jy>XmvzgIvXJe_OB_EdD0M7Zr5(LfaYg4M+G;QS^2fJ~`4TbT6c za}V&O;Ys?51~OKXKEJLM@AON6(YEdrIS*D7;eCz$9YN@4iaIzwJf{#ND@u9UndQ0N{ zw(^dt05r;Z^cDQ7DbxBajBsMeKSVoo`IMM#FbitB1hlLb1_sDJkI36uKM49EP|cUV z;~shDem9o9_>}EgOf*Tt!OuDgFt4S+C}e?GBV7vF$i|`AC{zEqX5|Ek`}f1l7v;A) z9V}*_hqs!me}VQlRZPOD7xUfzf$OI_I6zet5d~ir6|_ah12_sz%}NeZk6i!#_IiJ$ z!R%W65Ih4bgW#`0LfC%oot1RnTr|@c^pbiQZAM}^2M!|bNmM|*0cAlMPhVg4&4b~} z0S@Y9QiU7Sxe1c3zlH&M3d7QULYin}ZtE`Qngck~_vI93%W#1*ZLb74!sA@?(~w30N|F4S08oT|qnOcU+X*zc!515}Z4p`H$_n^yuB= z)~i#n@8ZYj_SCnrUuXh}^}?YHO^F|=Y7bAj2rhaF7!{>&h5%k zyC)D`Wqlozws0ITl&;ee!l_M5=a8sZ^dVmE&g~CNm5rCbg17iBGT&6B_O@gU#r(Ir zhmz0SgMxp8%(P0^CZ8xguY9?gCEU+jr{Mv=$pDhMH6P~>JA-Itr0Q#n^0|g@2VS#; z?_v7{r%qH;?CAe9@i&n%wdQDOvh22vq_o%V7JmaLaCU6fhEQr5zoc;2P)S*>&$KIa z2ff!K*1b*L0>9QjEE@`kxvU~XMf7nbJ$es`Dk5G^=j7FdbqAji^Rx;j?^Wf?F;z$UU)P!-=d?&2APBQEu$tr1)9C!u5(u?HO@fMsD{)O*N`AtRf8RK}a zh5@&8>8^nRzjYST%0Hd8naP7IEg<5?lKVM-Su>UWAL{J@x17bd45i#(_B~ic@rFd2 z<|s=+$~OW89gD{{!=D4X(+y}2sScfFpyxf#c~cn)IjC=GU^ zD;0lo4olydne=k8Hw%~+j9ly&l8mR0p?JuO<;(jSsN)@;W?i}Id{7x^-ZlGAR{Et( z>3>NiYfbUY;h|E+cVoeHw-WeL<=m`Nj$GqbLW`V(O)uY?qR%m@VK>j~K{Cyp1(2%3 zddZ;5uR%C=wb&aj_J+CXW5hqIs%U7-bj?4HvZ73iY^sJ-SSPBl zU;$-;IuHr&Cl^oyZ3uYZpJ^B4oivSYDn(n&kRn4W74q;7%bd)!$FE?u8})iRguELQ z|F!@xQkm3c(&_tX$)nhGn9urGytY;nBB4_D#T0zMtiFYJI7{J=iy>E|g&v5KD*iW| zS^VZ%lntu=MkZ2eAi0EihxT7%#f*CPd+w@S#a?N@Y9ihiNL#aM5E}ztsv&I6UPx_k z31ki1>YX@i0RHG|)JENd)|ug4Ptbg1U?o$Lrn`^kR7F?*2I+6Nvyb0`zbj_-?tz3j!X}EndM+SM78g@>@L0Y@ zPX_|X+^W!&To6_ij@tz5Y8rdhpIJ`3iB~1sv}%06m9j02F%jLS7Fx7rYWvRqr#h!Q z^3>XeIVX*02F39<8HiTg+@m9+-yVv{LkZ1*-6sC2H&JRw5H2?^C|}LAZqrNerEj&WUrcIWPTZIkQeqrM)`SOA)15cQc8ixwwaAKdY)R7+gK2ZKXACY#~iPqP3D z_-GvK+X466{MXbjMhwxE>MTNcALuDT^rqG73w-q7lM!pMqptFltwe#b-|GO<{gl3J z^&=E-syri=0--xT1*og8Vo$29K#uJ~;l+|caGi-^tyR(2N7>QBqs15ZB(}~YTEmAP z!{6~nd2OXO;QY-YlgcT63VSmWqcC~tEwewcqCF?~O6)221D5wgZ@|D-N>6p7ZZ%lH z=bE8!*A7*cKVP-(e-$PLF`vG;m5h75vN=~=(a3k=X;&Rq|5N6!ST{S&o<>f*>{nLA zTOG$`RO+Vl$NL0S_qy=fi?yvl!R=s($;`CF^XtZ$rjOL#qgPbGBcJ0JV?w(y6DyUC z@G{<)7d%03e_t6>~ zuNpgFLSL6*1oia8P=YJx#fhR}nfU}E9aod@V{92RfXuez$=`ToG_Jp$OQ^MB!$$#E zY(#oD=Q=b5^=(fPCoS4P%B+A(B$z!vaK4BY(RO47n#yq@%$MPt{*eMmUP@GeO_ZM) z+pl+*csn1=Hc47vr@xKzi1A)?7Tx$5VP9N%6r(%W9JUa4ue015xo-w;9JJQu;3KII z&n%(3YAcou8mRqKkJTAqSd-lL>@F88m-i=&rZB0D^t*f)p*e=Y?lZ+8Mui~1WCJug z=_e}8LO2v#xr*?J9gZrKu&zwyHJ5=FY>YEw*h8f5ij`=6wa*@B6gNR1wwmLzh zz+rD`nn-kuLT`XP#+CCFs+8f8;EliMr&RwST8n(@Pr5v+ECV2$ZM&SzBI&|jn?go` z?go4f-*YjXYVBwP{?;@Zt-(xy zuH0G_#+N+pf0IXIEJT%&n||wCWzMXIkbY#0G0T4glC^%;Wmn&4>bi^+^F!voPoOf@ z(@ki7;-LR;@5?sai`@i?$ArlsT#cjWveF!0#D5*VDA>YTsD-@rOhs! zt&e|(^v@OO1&_SsL1b$6+*gf?4cRx(A*vfg?PkN7+a!WXdzxs2|MJ0|9qt#|cj9ZD zm%1oR`IV2*vh)=ogsOFBNWH@Sy|e*z;edPnt)IW@72Fz2gH(ycd?`4#1N(M3CD6K_ zE=Qk5I;_37*S$I^4uyK~3Nn2=5ig2@S(6`!{b0;wzR0un078XH5JVCRAE5+d_7jCX z(F5?)-&ls8*$9$^@arlAJo$rJ@|rj)*R!ta+$S~2y`l3U*xp_|py}?{QkNL~eg^n+ zC)LzSqy`iv0$O4Ra>@W*c6L2R040owl`F50dUl=OKLIr!z0z{RTl$d_rK9Z9rY`A- zJI{j2e8T9|khbZbaj%ezFMOLTP;pIf1R0kSG9(OO8{Z7)p4NQpH`(ohOu5UI(~VZ^ zdY) z9B7nxi=0{YG@(+XtybIf2rS5~lOj>T4|-#+R41B4p^Dt2+(I526YnaqQ!)n?-sBGM z9cDWli4Pt;&iuP@?Mt34fNEI>`34B*K~$Yk%h@T{oLLlEd zPBI>E?g?zo<>SrapP6>IrmiMoaKXCM?KMgRxl*%tUCh-{i&$7^3k|*M9z9F()~n`; z{~)xdb!=jsbiMD8eO+k$M!Z#qJKZdJ<;S=M`bq!j!EJwV{TPpz!<3;p#KMV|;khlJ zApn{7Ur}pS^TyxB0I#hYfyG2;&s^q-ELzC+V}4Lw>fY|ye}B%ChozT%s~5|Nh;FiK5HQV=(opr^OLCX&!Zj%@x3?VCR?jP4^MW*aS9IReS<-VaMX+gtOlGH6{nW#CJ!p&~ zpzr$su=bU0arMyJMT)z-ON&$79ZG>BE$$A*T?co!7I!P|4gsrZ@{KSXmCGFHqU*+?F1vh?Rca#s-wpQnL^-9K~tQ+9rE;I^% zDgiR!dEi<;+bX8@Sl&$2{RXG38#P_SKQV0!6arYC&xg-3pDHgNH4-{H3#x`pub(gf z6YGr&!uleG$zpahj`a>830w_%!M6s9EEfHo6giau1OUN~K(qrrZI#}^F1@+jT0x@I zspOjEj!9?EXN6;2nRd?aoWPzxO68V?03$@~5_K3mdn1cfvV?qVDq31Q$T0m;9%tCD-+H)jm5>`^J}A zQql9FpyDU?D23OO`U($;tl3_PI?ZHl7Gk3NO&2@_3l-%jC`wHpX+wKzZ4^lK0?a4|iY4$P088 z@Gfxr)wdWud`5C9HmmhdrgHMMu)zYjA(Q7ovxkYd%8^KDmvvYjGEdYZl`lXOxN0bx zy_gO0OmuLJJm-O#iFWb$5-~5^9smgelwwu4o z=*^dJ`_;Y5f{;F*f9u1(zZJTF(1}ITSFS8SFOlYlco|{tHwu}gVWKCgq*Aa(P;7g2 zQ{x(qR)p9G#1%cqfjmcJxABYS(J3RrA6ERAe(zOReyJUaEU2>N9a%bMFBNp=ac>g& zI|(!HaBRi?{W!T9YacUKptBQB0%Us1cvib4bevj;1;4B{Rt6F%(KKe;0^vkh9tBy`W=={Eo zr-iH?KAmn{>{LyYd^7Ize=eopU$#mpD>$x4^iZ%t3oL!|@1|MzyF0>Sr^^cr8XN~0 zfezy8IiWJ(PgKgc{~WcykXn#fECo{OBwC(Vs*ye>*6S5+HibbPSHbHQ=s8Y zackKA4N7c{yhV8r8ku?#OJM@Tf-z6x@mepKeE@LUMC@lGMG@lGv@_ILmh@lZdgIs7 zyw?|PPc`U{4*3lvo&-nRe#v7rbBj5dP+p1No3RO?@+b8#*_1l>6uyMUUgJUcUOEtg z*q@j(VLFr!?=_}MuC8;p&4z|=Qf>!?M-$<0Ef01jzG!4cZxmguGzTnPA(pS6suMvT zr#>lk`8gOg%X_AhO%cUa<6p6)apFJoj4jb!;l?#?nib}|Z(zMLU5*BW)97+jUL*@) zDNE1p5pa13z2TLCZwha&Bh^wZ%iJ5fJmnwX1dJv;T5ialreFl7SO2DSl#bhGTfw-4 z=NfT55Fx>)!TTeki$^wp2RXLlo@qY={_wiPT?Z&eS-f*pi%_~k^f7^tO4^dBK^^%e zyT>exyGzA&Qzr)z$3+c3Yr35#!fDDa>3r5W-A7|Ut`5R=nSAXjeZH>Djt%rNg#V7e z_*DmqB0Ja|>q%iT?y$WPk*bbNI(<_sZ*J&h(7OQEc4U zwU77f2IlxLguMC4S+QwUL<_`(tntnvJ$HJY8D{Vo?w%6e2lVmthNt?4T9?7sZsJ0M^dg{AlH6Y{O9 zD+>^`q3oK?B|RY)5b7CiU%^sX2!5$5d7e)GWQ0U5dD{!;J^yo%Wq7GJ#!r~X2Xo%x zW5W^mQI~#d)o(zl6RCu=hZ)b`WQ%n&{?+2+)dY^g>-ujGc@$fvVoC@nQ{2t#m*~ zXU-Mra(p+H7Ldb1$-F6&h?=9ltUKS-Fbk@=i2TP~7VyQF;R?s$hL`E1W#i|ulH2CC zw4?foEVZ90mIy0eeji^JuFr9W*^_N}VyGjpm{ zvhH!|DXbm1b~Llc$ywJ`wHGh%**LQvB6m$Ljt_V(7=?+8J<0ea*OTjAIqnVE82<2k z?YvYD2>9Bw^+W;c#busO`@Fl~A0w7>{1>)2r;AtdZ2c~e_qsU165-j@EdC;op2;q* zP@+Y*-er)AhaOO$EzTY3(TRA1fV6xuuvh;$MO>dwW>T@v7iuVK)F=KUC|<+@YkU}W z*#N;_9;ch#{QU_M!pR{`{TVm>EfIpf3(oS_@}L^Nz89vbi68Ut?StX?A%P*I0xEs- zLO2;>4*92=6O?NnWa#|q^Yh>r09goFdTH~i40eA9 zxKvJhprjpp7*<ejc82c3^|BYfo_sW zOUxmcAM=NHi(?nXvKJOr>mqf2ecyoW6&2J%Vj_XIEhEehzi1WYfs~9ngn;;177Wg! z0XDO)`1cNLbiDq(o2-F*_$k=l{lTi>HWR%9G!* zc0^WPO-;7nw>6&2$jakaETNRwa|oO8V~Z<)CbymXj4EK<=RxOSToR^VdeIz6=irhS zR)yn?On)cneug?{i%(@cjTG4%X*-VTMzS(~jfebWlpys!_oQtFJE^il54Csd%N7n`)KLse$ZqM!Kt&=+&Cqr( z)y}~c21VK5+I1|F7&u!_`fV+2Kz6-J&OxL_ke6Phz4_TwNPP9f7m%tNaS z7{)V}t8n~I_O;YoY;u1VhKFXPU1_U4N)+n0EJ#CTM^HCLr1u1dW-L>2Ue2W-s&f2bYoB`^JPdCi zv$@5WwNK6L^Ox`#;1*?l(Q=-%8M`=sQgq(Zj+of`7M#H_YV}Z8&8@0#2%?BP>QbvexD* z#Q7S{j$_hZKN6hRKZ*u_G+N&2zwJ_g>Ge#d$9Ruy><^Vyyg7uvKNtOa@cPq zj73;)&DCF{_ud_;8*k^pgCE9YX_cBSEB7z#A?WM{#5%| zEv6dF!+r0Y-p1Da5`07n$TC3A-`QZjnC-wtb;y6mu|NwPlJ%Ja9s2oq_v!qIV z#=m$eG|amS_PVZFnTP6gx^wu|FqRggUr-Nx#lkm`+*nGMzxSO@Ecbt;SrWA~lj&^R zY$xn24C}i02QNu8IkW)WITSQj(ZkU1U!(0l<}zL?o1Qbp>W`kxe|A6{8%3#MCk;Io z@4N0@B`fs^kGi%_0usB=y$nz)T|rU6;FJE^DDX8-gLb=kT#s$n03g4o@l)b3Ux&kt zZ`l`Zs#C=-_y@p`Y6MreD7PQ-|9<(?UW!_zyVj9!T^-}g+XObd875yR%)A8clc9?M zmt0?OnMs$FE;*R>{4mb*a@t!gCilCv^SvjwI|zZt|2zthg{9BgD+C|zj?S!NN4kdd zz|X(ewTE|RL7Yi-k6Ha2GQ{?N$GZ-RfgT43uN z=PD_F_^M{FyRLL{4VW`DkSH>5o?@&llU@3CGIReqig2fZ=TH<`ON^;3K%^!053~^1 zVcS-F(1tmA*kz5Z*u!|zGdCpf@B#L%Sky6QLF+U5rjNdP%ga^sJHK+noLoM62|qMp zx&5{^rkkov_XWDCDYD{xF-Fs0N*RwQX8E{n#Hyxsn#m8dxZ@t>YDc3MeU?0-xxa>O z(^Cy-MN;%T@w7E*mo|k;l|KT;2OSveP69&eX1^&!!5{)c3DdbCjQ)nOdwUm8(fqdk z^Xc&!S9oyS;LR163{)+FHL{mSW_%EkBRXy>>0c4W_w52#3YPow$IA0oyYcMX)9tN0 znl7(~Som_d(@{vxE()dXcV_09mC=!f8PI9U%W$8t`<=f5J*&zLQ2L&^Zu@58!xa8E zp*pm!k!SCouO1ma;u%!gL8PZu^I{Rg4i@pK{nR?Lx#H+|YP84lw*e8i!7AzNH)3w^ zz2qO4vZaU+rl`ACtUSeCK1s-YRI}=?z8ba(Y(?#rgdVjj`T%GkgvdTF)D+31`#lm3 zm$wm*@KaaDcrD+MNX5;0MsYkE<`Z|*D*5!-;(t1g2@YHK{LR#cz@ZPM35&hh|2>hsM)l3Y@1torz$md z$(tDYh)nVc(r;pJTkZqdNKRq)F zzh#GBspEmBDrRN{e_bi0!DgKZU&Oxl&*P4}roHf};DNs48NiP}^We81U_1mEJXME= zwbBQzq|;noHeum`#AUL0qU%ogtSL{dQ}UMpPZlA!0jsg9voFsuEP{Wiw0fL#4jXu#Vk(s`r=FftF<&n3h9 zo8XjQm-nmC1EmG}s)ga407Pg*p|M%WmvnXo#01pxHCb0augkt_X1lJ4^A%Dhv_AEB zSF7M?M(rtR@=SYavcdy#e7ny~>kxo@-TvU^WMaIXLchUK6uUR$BSg8=((o+o4fO0O z>EigO02>YHY&x*7xMLD_lFwWC1JR|#tvo*|L+TRjI!tu;OnLtzmA7Cj+7(^VZ;hA- zc1LV@V)TFZ>kkT;@he!5V;)z(y0*<%x>sDuK`(zHgTP{zR~4YFjSs6A70v-zsvM`B zyk&vW*Ft@=43S(3?#qEn=)e{0VNiWW?U_ryK)AZg4bC})`9L0U9h_92Q;$PZn^5>-hm?i z5*@NH!cG%TWj*{o}<^x9N^jGJ1g(#X~ zbfrnQ4^+cE2l{y8F=LqpR|aX!vy}@g`C1 zjMVuTr25au;420H-CCVWPnU)G#lyLn=EL-Zn5E{kM}HP*9@FnWsG$rd>D30Ywf@9< z6KCr0gabbR6ms)|e{LQ0>UkIA*?P`eEAXbj(iH6w2e%sNs?}#|I#E4BJ=0UVce^9k ztq-zSkG{4B4R?-g1GhVmmrCotRqFTeK67YIUO(>ZcqnCb2L@?&-8`;Wck*j&6azfA zsUF%Lmja*D&MW+M&nj4BEQHctpyyBXwy%WKemR#tH&4KH&2u*t(QJf^-&oPiI1-@P z81Up(yIOv>dj5gkl^83c-@%yQvx!KNj$gP+$9I*e#TTG&e zCK3Rf;{Fop_KufJl&Tgxt+=j`450A`>doI)p6@f)P$h}m@{h_FgdYT&!-f1MDnzSx zJr9<2X8b(at^{k&fVIg@k2+R9po6~VZfG;4kGDlM{sAqv?^x*~FyQ%uFt_d;A}YLLq2p^V|ly!aS)e1-1$iHi8r1*y;d>RH~5dK+wG{BdjbqfJrI z?6t~wz6dibt=wS0Lz(B>aF&WjPDPK9PAn~EPQaE59qDQD)jOK}o8S3UxU_&Y*mObo zHd9Z0n6bU6%IOZ zD~A@u1u9qZt34o>EZO0FXB`{A%P=mc^^n=pY$Sw#`Q`Z-$YXT(Kr3u~j_LE2#A47R z&@2lHu>L;Z?PN~V7GxG%6YTyh(0BU2_u7FqmrD3bv3$qQ&Wvc5Na3-AQLGn(aDSjC z*>4DY3_v2nHi1tM6Rm{{bfmZ+ll9gxHbDPhDTp z9C&+P+>+exn8B~7^ba;W1wAcRDFQsYNZrmRkoZ$OsBVgblFg_c!ae+6#X;&x)R$7C z8K=eZX}%S`UMx#lXT>c6w70XuLFc%m&^FpX`*fqkr|X?H7VQ25UG=EVukotIV*WU% zg+SF?gpyqeAw%>nznmf9BSo`EO$4Br(jRPt2ewnOi`QfXE)(vr+Ns#qer$H)-EgXF zSs~e9Jy1dYw3xb($D(C`=jlU)5vM2{1CAyB!c$S9Gpo_Gu@60?NA;+>-!n*P9i(+y`w zPG;*6`ZdrBC3b~vzWwCYZ1y%|^Cg_kcyR@8(QF|gmN%3FtA2BBF^BX``)$007fzgLe(7NQ73-TPq-C=H1IRN&@0PlXgR_+Eu%ECD?bLKPVmW- z=(l_RM4b?&pMW}_`Y~~(lbU`Fx8qSUvAWw*Z=t}?_$Z$tQ~ApQKGia8#b#+3aSXUx zW@wY*l*VnGZWt>N9L>}3zd1t@+-@z>Y?10;IPA|u-wbp^FrCWd=~IsT_caf_@A-3B z*<0`XGo18GZZlEO0?ADS@JpZDP$wegGe&ViB1~LPp{xFg&!_0zp(hMihqSh4#utUHu;}2FOh|(NCV%e$U<~_U%JNGsy zx5V&2+;pqB{>`;U{ zfk;15m<;j>ZV%-8l5L;DIjJh3U>nWEg({yBUfeP&xi+1!sG$N4f1J%N^La$-&pGDl zJNYsXHcLTJpa%Y~ioa z=_dxST9B1Zvf{YT^XeSfik?OBG z>|f4gtMq2rzDwtzX#(;gzVr`n4=@=dOf8;-O}9m^bL)1AbDgey6a@#}f+Ot`?R*mW z=Mk+UaIMz9voqts%7yeyO+dj0d7L=u<59=Kwt5k$ar22xno9h^ibq$m=rAt6#C`Oz zSl(?=PI-7%Ul@t$OKy3tmmU5B_qJ3FM?Vo5`Gb*(3q6kOXCdfqjnL7@ z;Z=61n4raR=|%BRB3f1AG6~3b^&wgn;qDn$@lPS{iP9^#Xp&pP^UR^(|5(^oHZhCm z!q(^QLXDe5;h8G>$iy{)a+OkaVH|6MRH z%6=n=d#6qqo?9PhjQE0mhESU7CH?*&TJ_@Y-7#j3AeOD8G@ar(B%)57$8psvHNQR# zFNurVwo^~*;Q#q*cB11>9v@sz4S}hWoV}W~zgBI%5Dq+(M?AJ+z>qOvuUu=do6IXXIA;~;cJ`q(V!dB@Su4C@<<|;P zY)bW0GGK^9{oru*NrA;q7q`lSxPg4RZBl6iXNLP92BN3BYWq{Drls9tEr&kfDoa1Th7$3gsNZgkW?SvEW9G+4 zFAiOc-rc;ZRg|7rni zo_==U75Mr5+jYeYkLq8U>%A9&U*IjD-FSK+GaTJxr=~!9&C{$`I`A$O!E(v4)%Rv> zVG7zZW%-lU(KDgz(3iQXDV%k2qubYKHwM}w0EQ5tCBQzj8V_4dS&;Iq++ChbiL5a4 zti)xqrFJYMwI&;m)LP@ue44OGuP0^8R*dZd}q86^RunaIR*GCahi+jPM~>v zVeH|hMTZm}<5wJph=F>D7!`$v$B#K)AC2Dn^X#ZZ#mU{nT3x=lC=`#7fFMmBkw88) zGzpgg@w*x#fwP=k#B5Ljmv92T%V6d?(6_C#%2-?Bbw6;=ADnZ(ez~`B4m<_67)N_s|1uF{k# z5`Qn7i<^M6Ku%Lz@TK3iPsPM&Fty;=wVmlm8y*)g>H&56bASr8OoVY$OLPYLOeZ(= z^qz&30~vnPt3qdk^uxKmR?%;Il)7}) zQV*Fz-{d~ZKeF-)6DjWjj`Lb04_}lnSdr)pcr%FpF_$hyT$Xv=8k5*%LDI=~wET@E z)?q3mT2&<)s%Bmdxs7@atS@RMe<$kHzVn^ny9%-i*phc?k;e1pdtZiG1=xgtT}TIN zTPjKPx!NiPX8fWy6IIVwZF)0N^k(4+3@!Y3h9t9>nqn2R@Y_SKa{Go}ZA|zY@uO9s zhUdUu$>d$y`=$c|5&ZOp_OBN+1c@ajKV#-2YY3FBi~_pT>bH!DF#b5I)>H^r(PA{6 zX#b;9wHD937QGY%CAts4y3zuab8NZnWUG@(x>UQRKCS7%_m)XuqQ-AzwCB=Ut~r_K zx_%kat^8_GzOOz1h~2Vpyvhj%V|#+1W<#$=u%`0UDiKc+b1F&1Kjo!T1}LWGenfRl za&E4Q0DQ^bzqG$;0>b`;4`~@ZR z7m9%H(+m2HFIPiqS236h#O%o9oqTN5>4}p?4dKp#lsPIVw*kDSv{xaW>&SYITU#=m z5*R{Qb*s(?K*nlrg>&HRxOQIT8rv_<0>DncjMwxFbe9m6E3)d2`zPoR5lJ#Yd^?`G zPyJ0V;+thNiiyp~08-RY#?yNG<6D~Qp3%3jN#B4>;f%ak3dSx64Yrs^aT%tc1^FC5 z4W5^(+FUL#585}XX6lssgeY!*z56D#b-sq`>;2t8{WMsq(6Z4K?GIY$4kFJcLUOD5 z0ifu7b!CwFCvx_NVhbI740iYT>x0krSZKlfAK5+YZ|yA%y1bS49iP$YS5Gf5+UbgZK&|j@``vginu`_sLv+ zYtSdtMAcV5ZU{PU-GK6f%1ZP{jB&`2N62BMD=1Kh`!3xbCy_YQ8%Mz1qhE2^M1Yz! zwb-aT_sM5+Q)kYHoyyiTFJ>f*>MMp}hWESA^;ceJ-V7U-la)%#uNYSI!6}*x`uH;e zvs;1BQKgEcQh`LKP2cik?D5F0GEHNlorOeoBUNFS9kec2b8$N>ZspWx$XiTiYt-iZ zy1YLmmIvc%ZI-RiwJpzyn~gK-j7DDsIXGQdZy4dcHE1z6Gkd^y1P#6ZG=I#4JqZ-o zdc>Oldd5WpLk$1aIRrcB=f8_J4396i(4p9fC&$z%{ye~7AbTRGRnsv^|leig( zY<*29hH-M73aHPHeF!t{(eZnnjr{&cOmi1cH6l`l(JFMPsNF`pOV_>>&s0n-0FQ^) z8)1g`z^Ues+TWpTE;($CFU8W+_PxvWgPil!XtWByYsk5SdYWEq~Ls|r>lmV)_(k>{D)1+b@(6!ut$89(mAk?Wuql&mVVPb*d_KbR7NQIOQoN%R^0Zh^DI^>x{3kdXO0)w8~k|l{rU}8^eKN0 zs0>Lt^~o(8+b`Y))%~s2ZT6|?52X|J>&qjNo6}DA^+0FpSB{q`aZ+>LDx!WS8zu+qU@5n zoHRS5%vd5vLsrCiRC%qt|O$uki6~SF2H`-KVGD!wPqNm1{f%T4gDB3K$fZXQOZTiRw&E! zLy*lTVAy<*DUZ?&N1@SI_qhh|U4F6iX1L*mf+Itlp?pkiOJq_>Pu%wgfp-x-iYgl( zF{VtZ1F%{_=y!CA`_-kokom427M6i;1a?9H>~V|mEiw#mG_+SX$U`bVQ%m*#$*Mnr*-6;;=d!TO z)8p!6M995s%Oq8I(s3EU3nvJ@c@Cv|jWo#`KV2FSFZs$maAeB<1KBiA9eL+UHrddx z`45ztN!-(2rhS@j*d2dl`Gj3o)uZ;Y_9MraoH#(iyKC~>Z@R1&X1tPt=0l~Sen9@M zrbC@$N&zh_Nu078-c#lew#xSJ3)EG!lVTJ#^!y6-(7h_fGa{)KWQZ?^6jWmNQ(a51 z@D-1dt#*{Kv(u)ScfXW3ElnvBwhRf-KDRN7MUIuLX3}e=^9x6`+%mjUQj1m{)p|^DUg;Q zMXyrsfg2ATn~&~`c7W)w{Z$6Nt68dh63rLxprU}61)-m(!jP`j5oa&Ns_*7~0pVfT zOxyK$<3Dw^cWt+7RDWru8VwtN2(qS@5LzZzpErG$AE|&4czK;lJY?8PIX@Xx9)-MZ)km7zUr2xWXuLu-3nRKJ`Qa7rmPD(eX*QBlg$)N8TTqR^Wt2 zW9X}N*(rm@DV22R{3WuO=G&)c+*`eJy!96nwTze9qrFe+_magNj1j zA@`$(NyN0)G!oG{(cKtA=pBSY!6T{EUn>K>jbQyiX zAH&aFC&-jG0>E_=yEQ~YWV(z!V1}W@b&_cMF#-!?oQrM5`CSA8H$|A~`-pTCL6QL_ zZi10P=r5V2e|M)rnBW2hSI`>NT#2an%y6(5ri%m1> zydK(1m4!v7TJzk6$W{Q5s*+qU@Cp$}=tRGEo1vC;W1u4p(F)ND_RbgMI=|qMh;BFd7Kt6X2hSb;0JA{gt=<$80K=W{fM`an09o=C%@>b%{Ywdt zB)ZhNRAk6k#2TcVVE)iIVu%M<1^SY(pw`d;>?}um4eS|UL8w$6d=C~cqA&J=Oo5U^ zm|*VD7=?rfI{ad|QkH`h0NQd+El8M8W8Zyz3&|;n?5RPUSImbLznvy7QxfYyP_ZLVSHZ(hu}Z&Tq6GwQspX+OKjf|~3c}8d+76BICF|cn(Xq{J`Q*J-{7iiL@MkX_Ac?~g;7r*s z+(xVsHj|H2#Y12pB%#Auqs1DbN%0Fojq~3W8XD`1i5TSjq4#e%vDC4YS*)u_6i*8D z1vSYoX9eA`NFO9^@$ezUYf(6{Z_AqGiyWKO>~V;NJwH;()Sm`PU8KJ4qQu9v|64BA zvj2Yb5iL!t4o1(x&%Bb1KwB+fM$anoE9xhODE2ZYJKB3qCk7Hny7GVHaOu*W`ihVD zN%mT9owouAbNAg`hhu**FMPNf5D|V5RI)}#41A&4W{`2Pc=1Hlm=?21HW3$;aV`1v zef9GddHobS73ai02uE3=L!LI?B+vXkc57k~#VYo^zrIBA;S+@WqvWs8{BxIVmI6NV zA(@2EA}x4YN?MI2(VgPBjsCAF3=REif12r?6vf{ool<@zi5lGq`mzx!olw&txy_zx zd(V2X3!VK(I%kjCx0&L{W)hg=ImEW?$M&TF$=}Fk*6IcyX9<|?>j|Yj6cyUC%w>a3MW;Y2% zbsH^83Y0p#MdgJF{;f-4uAUKTvi*5V{(HQs$|ius>%h8kk&KB`w+3QC5}{6hV7Zut zt+mWz7iQlmUu9b9jlc(?{7_OFPt^GIUNHplj%nE|$?0s;MDLZ(0Wp`Ia+s*w>>UIj<>*H-sjwf&a3l+MtKh{s-=dK#~G_l?`e?7LL6iQ`36(Y!d zFR0>jZ1fwF&1)78V8RfQ<$}aTtTkt8&v)aNpI{{k%oh}!$lN1CjJxB1QPRN5s(d|} zCs@ep+W%6U>gTs4`Ziihs1R3~IQiQ1`M^npxKA=STVB@uda!f&{38GA$yVSX=$d2X zB>GiB7ON@--|GEIre4?IZj6hR+X!i@$)MNT9@+C#;(@jW#GICebFmd%S00exv@oplciwFKoC=Z?XfXUR~py)JQtsmX>f5LL} zZ2AZ+9Q7OJH0y)52~ZjiaE5=}TC+@)qp&81i}c8%GVnY!m1D=tg> z(4vU{=7k!>(6e@!ovh^$ z2*BaK%W9n=>N+YC7H^k-QcE?EPt&{4mCT#cG&LQb?*6s!9L$|j0&TR3l50&pHka?) z@ig4SI@}`~Qar6jhW(xRd2t+Z8#;Q~MF<$ErOuwIXK?dhsqB+Lc%4<~CqfW!Pl7UC zVscx+Poj+n-~KQ?5TmJdO_;mF?TmO@ArjP|Sm%uPLh5*!($EIqCbDk25CEW{Xf6sh z_PpGH_wZ2v>y=b_O23C%!$R`w(7i)K0S4QmAkV}cDv?6P*4=jS7gu0(5GtvfH?Epi zvu0mQGbOeDQ_~R{8|Q^g4iBWU_k{2t)bn!Qf9p&YdHh9LWO)~|k6 zAZ~@vwNS@eN8*PB?KE}Xuw=CwX8m+y1GM}zvrYYF(W0op_Q-y^82T%9PVumydF}yd zS=_?d!}zST2fbdft!fgUvtALd_OpMisj;m&tT|L*tNEpC3ohf+2mV~UVy`M?Jgll2 zFEuPcuW2gL)un7r)lh%MvITx$v0C9^|Fx*Z+C=P`|MNCr54JdT$ZkuSso&+4tjE5} z{#f#y>F|r_xWATi@rIPOsa0uzZ+CCmZOx~n$M^b3T{k0riM38!8G0Sa75AK28lzyB zHIi03H6BZf_Q&M>hLs_5eM8_6dnaq0)sV7h?MAf!JY^g<9koyNC2SN~fa~nnU+*oe z;hv;OM@!LnLT==>F(xvPe=Qt=H+8AdG!&`fb$4 zA);hH6ph#`;cIbE`jFjGbU~w`%VUbbh;GVzL?}1JvAn2Pgv2;*4c$i&Y6Ce=28^<} z@<1uxs*Wcu(L24h_(TP58#SiiKee!*v^0qFCvqipMTM%2(kEHd8Ygz+_#nBmLd8b? zlBg9N6&!c&*dY^!ao9A(w1JVLa6&!g<^s@_(Wd0_B>lGmwb8JSo{sV)^MI|MxS$=Q z({$K!8ZBbNw32whrfYHj9MGN7=j0_?Rrvty4%~Zk z2oZ#1os?6mmEK8?D##zvN7Qx7ao7m*GU`R6DsL3F7WD-0iVo$6ER0eg-_TPlY(%o{ za*Id%3%j0Ct@Zu~ON1!dy}+or#rqD@4pbj;Xy_Zd`SKfy-Eb?d>6eZWX$WUhRgx-A zWKvg7!XxdQ+@7OF<1)XueNgKg&ewRH(fhIL7m(Cvk7O8A7@P<*h77AOQ;#Ze zSalQle3lsIq~jz_yn64`Pbg@dWQXqDL)(Q;`ih_V{nJ!qL2s|MKZmQ8(^_4!wNbw} z3KVMVEg?JAk#Ok_S%Zr^PGYScc@%I};I7q%h+UCz%8K8i>=2G>;=4$+)!(OwUO5R2 zJLM$6m?2}tB!S`Gg!?|tuNhxi<@+F|5Z1(070lf=Z<2AIR1E- z`t++AW45uao^W&lud6@j$Qyr{x{Rgh9lCs^px(UuFv2YORY?^hn!vf)&N=cdL^XJc zlTZh_V@Y6k^=BUua5>ppo^}x%>D~1v8gUcM8@ZHD$cK2pAE^@B=zC){=a4(Ygg3Ux zNkP4LS4WY*d1swaLmHhk;6gQG?c$F+0ub_a7R}h%qA;GkBuFTCJJ}K(b)g@bq?q3G z<`_wId%_s0p=fhiL#}-YF~R^*HxvAW(?in35|%Wx&X6h~EJzQ+Lh2!KM>()8NDnol zZBUhu2<}%;#Xzn>q@-=&nf@>{TVO8vw*4V%MssI75S+Ozz?Td}5XN=KJFtk(O)LvB zqHj3YseRvrb?rMtE?FMBfpUb{gZdq*2FWA1Q;JXx+XmC7W^l?nT*Is@R`M~JDD>A; z;2gH+Hm{EuByAlvpY&Z5Hs(P#>!}EQIl2VHj8V%_R1dT3uo0_m-6S6OZH?4gb?>Mv z3kcovjoqpx+%tAP%cGF=U9?C|9P~S3Y$KiOhYB8nDF)f{3TU%>ND>Q|%-a`%GEs$z zfDjz(+u-2=mTX5q&2GKee8M6>cpsAbP|M%*D| zauF%!BMBa6yYfq2?Dl?pU8Avz!u))46?6wf`dYWLgrF8d#?3ItwZ&J5zh`&C`VJH0 z{G4ymXvc_0MmEoXH^>HJwP)}zP8>8kwo6^IiDI5HhSC2xf4a=-x$}x>J|B`s z<-ET9R(tnuj&=s{l_J5Jx8V6tX3^NCJ&Tzc(!!llo`bpXU$U9>%M&!b9erni+&c3K z_KaR%qxSDZXvMDa z1w{hJAeG!Z^52COzLE;~Lo+USa-JvSO0DE0GaDu*bR4ZHaEz0NY73?f4aUgFyk&%( zKC_t9IFSsJvv?0MDh6DuHZpW*9er+O@X^nLING{qr&4gJK-+o$?#?mfQ!0v!r1*O> z+@E}gt|UX6=>J+Pq)aFL?+XC`M!wm%Ac3FE*+@*;NQ~JmDJtn1|CYgnT3OC!F+SPO z7oXZ578trb%~TqHteT|!JX0-`_cVxON8d0{t))n^XW9AMtH}3;k|1|l3Uyt0Cz;C||e|8!6kSgPv-?-lb5t_)eOd-YuSSYqK{mK_+YEj+&XpU5J z!LP|Wrm;N!t+|#ryoW7ZOj8I!V;Q-u9{bbjg2p$y%!-z^f5LtLeq4lz&oXEd36Ql( z`|GK?(&d5v**IfNh5Yq+pX#-fQNyNrQ(8f%A#Cp)`fQNYjf80x*&$>~w#n1`ckq7# zKncJ0Nr-Wzj4_lJf1pk(&hXPpQh|K7PNF)gtUPtpfKL4A%*V1$;>tUTGt@^9+sWHp z%;-ooYCmA($sxXnz}PeQ}>1=b#FL2nG>md!;!i-9I1Q5 zk-9hNW2EuNy4ZZxf9;DI>XfF2VAzd6&L$G~z5?|SjeaOaKb3NVPQ!RRk$xU(w~!q2t7OkCypZts#9iGR2K@QN0s9Ky#S5Og zYSg29>sCHEXuz#c%$WQ4XOA6xHutD@h3 z?Q7+-$4;C)>K&O^FnQ9aQ!kXaztXgM>c7+%Kf3yjPv5@wrctN-Vaa<>KJn#^(=ex^+sNEYBYn?)u<7W>eI8tTd{JolMPGk>-8SEZ6BR!Xe{gK+HGNm#@_{t& z>jR&!8}V)37rVbC>(>llIsdsAo@sFRd2Y))Up%|H#2@`?ZjW{S&a~e9+B=taA92T& zHy3_)gP48t}Cy+r(*2L_e!@tQrmk|!_}lNv*DZl+m46UoZjuiI%&Yb?d~&Qxc!Gw z6Hcpq`m<@f%eSk$$*yJl!Vf=F{8`t`i*NtkvbTTU@zFnPmRSIrG-% z|M=D0kAJ#j%+%_$Yt`Nxtm=^3$zS}r$MdgAX_w63*nY>7lD*HT9ZI|HPpiU_^JZ*X z`Sh`;PGA1P%WsbSu5H`72dmf2T6cW@SzoQXy>-pB;2TFhTWlZg-CJiFKP~OwGuvj~ za`z{%%o%-e(Te|V{Q92d`+wRoZFg4vX*;LC`SY54CS)$PIriR7D#!lt)YK=J{io~C zzwBnGec`{B%~-m8QO0>kemZ^GBY&LwqT|ueZu{n+E3SLt@BiugU-@*`t<7JZQFpj) z-NY@MyFH$f+kE!V2UpgN|FLbw)Xk*}-SbKLrVVcl`<`^{UUewz(q7@gy(g@xOMl?d z_>n)aeZKLh({7nD%+qJ{m0#UuyJqQ{J9n&adT{xDcfR-5^A8+)`u3Y%eQi_OUyGXW zeq{KP9eLyKJNJw`-+tzcyZ?O3h3}4^-sBD}UaD;d{Re6Pi_3u0{{07*m-pwT6oUbd z((*y&gWwOvvQj>+`+7IU?)!sl!vHs?Qq@9sLx396X%RYXReVQFb+tTRA zNe<8%gnbRV?AL8)!zNFjh?g|SLZba&gAzoF+fR1|{l#z=hiy9)4%RCH?U!uHLWX_* zz+;=&%$}dr4+B&5Lz!tmI2JPX#>)>Y(-@h>R?zHkc+c zNeA9MthIG@7B=Uo1viUBQ0AD(bW{4jjOF9Df5A6t+GK5!?xs(8-Z$@)=Oe%TexZ2E zzv9MHJjbD(&-g3FuwgVXnqz2|XL+;)XC_uiVAOConx@8fqsMlmGyOU)ohC?KGc8#) zEkRMRnFP5gtK_0!7IAzA?A^N8so2d`Z@J~Pzu=Ns)F64>uE4w@n34td!G4%i+XJ#} z8l<9$f)X^*f|O)f)Zb5jcir_*&c;vY+nc$55Wso=(QU7|^%@#82fb2AEky}lx9M#+ zdhanvc&3$&1yeL+-6BwEcvkktU9cM!cX!)uR%642N9t^d7<55=B0QF^L8_0oQ8}Bb z$fgxMuD!Ki91ak>t>vNA(rigK49$SDq4)*P!IAxP>*Q$7K3q%UBcw5ioeaxPNLr)- zhDD?i3vt@83s)~<(-?L~5Mllv+=tNo71=#!XM)FSHs?` zdLKS}J5~4HMiMW`qr|i4BA(_WX9omtO#UG9F3X5Z+8a<+m+Rscg=JE?42K~D|ez-~J$yU&&@+c@ST_s1(j-k~=t z9Ce`r@;w6cs9h~c>@`-<2puA(BwA99LSI4cOy;}@Naqb$=K?7kNNCMPO(z%D*(jV$ z-DE|!;P0q0O6Ee^>u578u7EYp8$o(brgov5XR%#HEYyyQdyoL jV5AJXo+?-uQ7d9*+0wN_yFGz{BbT1%MQX;1pa=Vv~gd*)no-CrionYoXbsVn_6nr9f#{=bIl{XZmP`wua^R*qAZoK}U21`&^> zVTj0Ee~QRgjZ#6dSNy)qqrq|cg$pUK6>)$2p^B}S6`Sj~ig265vpy5Z^UVYd(G72I zjr$06gf&-Wp!{Mdr~FK@;Ka?YF))d#p(Xj`v~@9JgN{# zdO@5(pI{0Ox_Um0)hGM3#N6eMduj!0%JFzSc{Q=OUfgqOYOcjk?>?1UHZ-VJ?>WCt z)H$SKhLeE!QDju6^|9jNE-S{g^FYORJo4?_=u>@BH2K{Uj365K*Nigoi_k8~v2?HX zT6x{QZNqXUTdF@NbT|bxZ<&KIa6&D#()tNLRs`Q|Q1*T?dHcfpEx#s#(q_>V(>sI= zO(GAvCSicI#3Ob7y63etn;og_JHy%>>!4urFb#Sdff)^H?`NM1-a}uku%#iGIZ&(k zNg;n_b25f?GIhqB1|Ip9ZuP=Th7y_QEziIPFne5#e40)eC*DS|#xG}tu~GIcpSU65qoOH)KqdP? z4Ga6CMm+&#PX3>QpKjxuStOq^2brE-&b<><_Nw@tm9T`_&#irZ^?LSCY~qT*QG+y% z@M`0@z+8!^vt&o%%||wL@gIrCTLlC1WXHfPv* zURwW22lnWOXP8h5Tc8C9N46WEh%d&3zrh{YM7|#9q}gb9{VK#v_U#KVsjbr&0!@kA zZ@nKG)T;u4r@SD(efd@U6Nw_9Gl*ylxQ zS-|<3VNPG+oAVaYIniKQai^Cjoq01-;tRoV4Rjni1mu*6eu>`3yk$z}jpbDquy~={ zt0K;KE(JEw5)UKSdPjEbq^?NU%ABV`aq05|A`u%upMmu`xrF}K#O0U3%m-`Js;Kv| zjaw#Tbm5F$@637D#$hh*ys>8y!l=1QmanAiVMqQ6rK4!*emP(v+|aBu33;v z4~NqhFnxC_!UucfI*tGNNmAGkDFz2kj_nKg{(~Ke)CT0mj~7P_ZSJ#t*^MArXL=Rx z1xYr6@IjHTdms3+=G$=DwrBd0p}A$%?w>Ss+}>8d5}=uPkLZT#YYcTM-&=Hcrk8>_tDY=dr>;zqG=$GqROzZfSiJpbQ> zXJb~?T++q&1<#NCfL3yuX8Dxz4J_euHmdxuA9nAOk>-;(qi^3dqc^_(bI*zM+wr}* zwo=v)`9LIWAYO^{I@;h1%MWYM|4SCoEZfupA+xgD3{n$+tq0>sbUVkIpIo}}9%v?E zq~t>hQ*l;Qdp;mf7DkIa_NG^e_a+FHPIulV3Mgs=j0J^~)X2y3Z6f$DjqFefQEPGb zvfow~ah)3{{DT3Cid*5^B}q5SYOGO3SJ&yIs-k1KTLBV1XHT9 z*zEoXHbT4_H*&|F{j1trACSwef0UPw_#qc;qHefvbNzJlng*9J%E^Tsv9WY)dJZ_< zjGlN_NZ(E25{zQYT-9&OESl4{=ihZ? zK$#~cQ3jVa%yijvcS*7E@x=F$9v3?OW(F5^4)v0r%7=fiT+ArP)#5MReyuM&V2(p) z9-a8n(wFe<>jD2SKp0C6A8kAxq)Qz*wI%P-S$f2(8z(vazy}D}N8#zJ%_#w=i?)b$ z)f)GG1(+Q6LB2GE{<%96h0I>#8s^SDkW(gR zw*#4vh5;Ff`2hR>e@*}2fKJRE5`@dz5{I59UWS%SUjlM0{B#Nn?}FzJCDk6VE?6@m z7|)+cZ^mXo>whKDMdAF96Z061>-AlB!E^o8eI^@gNRI5?LG63fw{LK8W{BONVbF)E ztH0-0d`EvD#=#~%kS;aHt-Zzj8T;!XF6DU?Bby6WDy6%7bVox-2!(;Al+>FS7tqo_ zj>waV6DCnK@^KO^Zs@Gh@<%mW)Z=ijTx0b_arXVRWS3GVKc@uvcS|Nir_v0|7P^R4 zqonBk%p5TELU5RRl^IUB`dy+qLO?TFf=Bhqh=N=3azMDQm19wNjRcYOw5fuuZl*>2 z)eJ3`a49w99VS9D546fI{KrzFaycMTS2?4bY&;GVL0iiL?&SD(11>T>t#B)6%^Ai(D*y0U1;|t)Kc`^Nl1Bh>b|HmRk z&{gPpvf;IBX=$}P*5-3A@FtVt@L=kl#r;UFF7T%>5#MGe59DPcwK2j^UqkDJ_~!4T z$(vhIW?j;St-{^(Q_acOvVDb0&O<)+0@bzZ5&~-?BHk0Wr9y@h=ei#MV7F?1?5wQp z*AX>Z8+H)8CU)CEuH}x!o$bm$e=cx*H|=P@c3@CpY?Qug6Bik+oblph3 zM&zr8(s@Q>F6tj^kygh@wjUI(n<62UgZ!t*5- zETevrc(ynJd#wqUHQx@gAv;LI2BQ3;*0iWeu zX|{gZrsh01Zc#C<`yebE7Gb;{He6e%Vw&CM!ErE=D$%mHMrEO96>BruvY3I)f{2<- zhN`4Ukneu5MJ`Aqa(Ek3=qm*)2vp1s6P7JBX$<*@fqdcRhOfkU9uvF-Y?U0e8blzM zlYzrL4b7IfGMts1GUem#ga|s$q2tJ9&CJkOa?G(m-eR~!3DTq2pC{^^ETMH_Po3Q^f>s1`~YZuohO1-!HNMLBF$mIj<73o z@mmdK3A6weH8kFua=5}O>{)m2_;G}FPkaTZ=#(4X>k==OIeeuVqK0hD-m*@wZZ2k2 zUQbr3Ow{V7wXbca#WoIMVK2|nY{Oqs@h@?HfX3Hd{lz;jqCDs3R+w0#*)ChkA!rXY z+sbGxd7gxM7mMnpS>_E$W88{)mLj(!NdS34|CA)sY7xhw6tZmj!=^zRis{bmi7##w zD%tU=d?|)E^1U#xAhh~>XK4MP(Xs04TFLh@>}t|t;FEFL{VpguviA&oQwW;>-Cm=) zpHAK&d^y8bMptCA;Z=CWI}E+k|D$BB>*cZ7^Fy|D>%C5PP@rLZ+BMjFE*bBbW@N$6P#?M{wa_ACKsnz~c= zjO24QmKW3~FsuS7S*d)U)b_?*x+`1ZFm24nEwFh!Ph}{q@WgV; z3)8xjwDx?%c#~)cSc+zC;o{5?48 z@a3H4aBoSEeCNmK`U+h#iVwfM+GJcBi6xWiIWli=cX3j{ zm@9L(H=FAR!))&Mb0OV#dFkch8-tA8J9i8i?qR|!zvNN3SijW5?7ydn&5@|$=e}nQ zP!n(rr#h?@W3mc9Ey|w6?|fplp!>9X*=VRSH|TC-{I}uQTTkzf z)T5M(^R3OWo?Z{>HHP8JitwDel3iNCpTBm1nDh{)nDgKP85sY7>OT+IN#TSZ`rV!H z&JU0>z4Iin{Hz`E^=EWVjODW7?i87mNX;b|yL+S$vsc;llO@xYVPFw>nA9V=+NeiC ztZ0aTko5Yc;Yu)0%6et7g|d2shs|nVJ~t=tNjvKygW*c%hHS$?1-2C4j2GBH2q@ld zn41zbaLsyFO_*6Aw|_|TnnnvBJ;HkULSo$1nk8meQDctBCqpJdZA<2obiTS&%ybZj`a4EPm4YYCbfh=~nAZZ;?eo zaP$5*ezZ;MCqV^tvy?Fj^v?p55Mbc8wzygF2u8Z#e%%D;yEr}1DlHdiNP$ClN92G=h3}6I(l7zF6O`0||g}T2ouNn_S`D5tn)`}Tve*2c8j3ZPMpY!&kV0V$8 zj@QQl-wFajR_63RM)=dJ8%N8bDd5Qm1LtSwChIxeZ zQ`_YLi%{sN36n^&6Tt|9#XC5+pZ#u$S8CrqcVS$jZ8R05&L}yh8KzQWZWy?#l)Cn_$k4p`zdFU7OJ7z;y zk3p6A-~x$*ME+#+yDw9FI2JbIj@F`aqo3ERF?bz+|H_OICga+oVQ{4CmmO|pW^m-~ z?;mOvCl<=t+%#WfVc<$1p#;ZeNF@Oh6e?9Aj zoJ$$pURN@@iDfsDreOT=E40tj)0E(B*R$mE=IcA5_xlCD-It{p_sX?}Cv-uTn}qRD z);?X|w_cPQ*Rz$Xmm6gJ>o)`4fx}=d42SUN zrb5^a&4l?au#eP>_e1ed^Bvwt_}R6gYWo(~I0N52O)Prty3s|14~i~mjHjNT@boj` zGjuPu|K0}rSwPXk;%-6Qn6z;l4LA(7b~FxRZYawHCzXGGI^!LNoM~E$j}!qtw+FSR zk!9eQuMB5`gbV#aA9RvDBvx|jG;slT3s22kGqFyj7USHym3;s7O8zB1F2AJ4-f|qQ ziuLuW=%cPRZpPp~SS+&WQ87yZ@$E0Gm?7%t-bboQcbdX5II=DZ)GCxj4BMc}LV0FN z&Tw}Vd#x5s@*Z=phPHj-A8%3Mo_Zp}N255uA~^g7eo_sVL*OlmtaS)OV~-{C?P$@n zKQdoPruQm1b7=YsuE2Il+VCIpy6L9(Y>?H|E8&CaBe~jv6SFDg`BNfsFH{{hS{#sl z74RCJL{Yf9+*y7|K?(hgTAnf9e=AA&bWS{(n#Fwtr#K_+W#6HACRUw&ENl_cQ3VUj z{$$qkWvqsz@10EDC$1``=s`@oXL#Ia)7Z_QJ1(i3dhY7SBnIU>jXGaANO>g|ptMt7 zlHg`(tr`G5S>rtzsj_N)6$$UzeBT^5SjTdAE%K6(E~(3aI0tA7V%DGQLYTX3R#$o- z8nd@0r^omy{j4b6)-NJkaH~C zFit)W_qZ=fANVO%E}43}ko(<|bR--f%&@X+?MrE9ON`Q5ai-4<;Q`VPQ24xX5GDXe zuyRyQ^S3@7Nb$tBqsE484ln*qZS?`jqqpDT3NP30_CvMC*CoX<|eWiLA9p%`$1ro2n?u@+L`hq!hCIg#hTOU zWtGqDSN0t+N1x=2``XOU>oXa8Ut4Hwgo-($cpIhtVzA}-B})q1h<2C?Y3f_PnIfcG zntwa4S0_iDs}+jq&iLgLW(XMkwCaepJesji?Na2Y`^~@Swc>MQYj9_s_Q zWn27lshcFeuaph;tdcI3>dO@i7XPSD4H40Jzk8e13~#c^7w|N5 z3!{62cul848{^>Q0WpV)R$P_%CkOx)^Ww9ri5CNcOnC&f9&o|n8~rrV_(K9T*4$&m zKXiu&^g5v6^mxh_@ULqT98`Iq`{whyQxJN|d4-^ow7i!&EHmNqu&pS# z(VS!q%Mz4$DdbZ*%WoVjeyqZX z``UrBnd-n99w&N)O5a_(&1mTxx_)%*CYQx*hgHKt*I}+YqtBvb>Z`{FyjvsMsw-o3 zClyQs9SFIbQ$0iTMhm<=yZ%Lf+g=3&9+q!~-z;lkhxqI0TfDsCjB5x(t~u2Xh?2BA z;&?VrLwFY-zihlhRz=E6OvzjF*exlR@czv4dct4GWxt_v`!dPwtAGFxW-IY5` zl{EWrqlrA4)wmV%1Y}Z!ukNau(+}>?dUJqn!nZR8(JZQs(@4egy^0e`U?F?l!noy8 z$gSrnDL1KOER->|sjIw^aG13B;n$cSISC^A>okm5A4$QoPQhV_V{wil| z?`WXw&I-KwV2d$}ar^g^V`j4>kxzy6tUjNdbJx6y3f1s+3Zue4r~I!e{aB5barbEF zRh8uK)Wi?RCEnUtjm+2){v`%t<4uUx(3?9!YdLik)ij8f_KTMU#bg$%Qm}2K-EN!8Ms+El zY^|ZFPZiq6*7Mh)Vg6U43utYyX1(Z%LM8mr?NZ!t;` zV!TKmJG(-F>UF!|=zSP(E)lZsdUN182C~#JRv^0DgPUB&Cv4R}W?I}EgF>2Ed4Hd~ zNeP~v@@H2?x+@#UUHqsSIgXT}URc)22>UOfOs9nF4DcUmdU^vz7=DnO9c12J|7x#v zJuC5ir<57=^zCaSec>n#{F`%~SoTAvbS_+>>Jz}3e*}MNvMh=AVK6YKB8Eb z7{(LXj zPo++~hgMH7l=lyrxhK{a1I8eB=3kuI;a21*mDJ^h-(`Qv46*K_q5UqC;%>^1^xIa7 z*rkg`$2nTH-72#}jd6g#Y`bjkTwGk&l?K`?!N7CYL#OJh@kp$v(=Xy7lp}AT^)Qy;N#pr_o!%wzM*8mQ)+f>ZRmy_ga`F zYG%y?gS(>Z>J+n2L;SG62xjpO!Mkr*GTWh~Uh}yeRHc1j4<6s`f;n8$^7!5;5#BZ7 z+&$*E?wfzzYf2#VIZvwKjF3zA z5`p&@V^eJa(*FjI$Jk zV8zEN{KHt{kECl{D%zPzqD&zELC_iLGhUG*QD^^sWEd`Ft}k(@s#-c3rj za>DMuxIU8ZC(hOz+n`K|E)YNcy+$hNH0>Tg_$WiK`gUKKJx+CAqi7%hq7v~W?Yazq;#ml{rwbZaxLBp5VOq=$svhW`un|+Kw3dE1%BAx) z8)Mbk2O0O5!tz7Kzv0K<^Mqk{zcn$}*W>Q-eMBVQuy0SZ?OdcKt=4)u8lU_-DxxI2 zHtUYT0)(J`YrD0Uc4lmeAvJ`{$h}n#^^F{)b1qO>EuAaAsf*S_M(*+YH!qP~HTZJg z3Pu4m3=`#jkcn6-uG5phZQBCXPlZxLcAff0HRrz-OC zFvU9H(fAROt(k4vSc^rdc$~7?kV)Nu_h4jviCDZ-=@^LRLPGVfS4ViK0%~DDn`#$z z;w0hj`r+bj4TV)2_iOQ2GQi;FE`~;%=Og#nCn_cov1cy6+OM5YT)sg%;t>vq zO4A%`k$#9wn%Ue}rZ$v$P0uXcf7Wt|9#Opn<^m`$B&g|nE<2?Pl`KJ zz2F#6N=}5i;bcgv5Oy7i(2TZhYMr4G%YJ(Rvo=VK*3@>JdX~=`vVuj;jd`*_e6YW{ z_kG$)%!FF5AeOEGE|9rdJ;I|8%@Qhh9CX=kU{AOnl%X+H%p3f9<3;6GKAuJn!CDH| zK3zA}WI)H4y?&hW84eLE>#_`QNNnM8scFWmm%85?wsPzeBk+PqE#t-ezqnL9Y-x($ z;{GZ)S^D~}et)YS0NC9ot9bKGlKS$lt_D_Ds1SkqM6^)@Pq1%Z7*t#$6Kx1WW>p8V zkau%GpNRb|uOIz}Ig=#sJ(jzyiU$O)sr@s0AN1; zbXDztg%-Irym%CU2oyf2eF3Gu*$Zq1Ud>nd`8iA-u}9b7ucV#T^{RRuu`@4}LTt|j zAP^}e)C2V;;-Cxu`}FRske1xFhB0_w00MjlPX2X%J?d-*mPK0WwCWqjP#%`oP~l&_ zUGLwIgIw%l%=;n(VMl=1VA&&JQ6_JG=0N^fb|c}-Od(8DAf2%(AIB`!`vJ2V;#Y@t zcs|=XL_7hF`KOI917`Ql=|`KtbB%@= z|C|l-sAx=~QF`}99n~l|lpfuD?kv>r*Q6T?|JW~0FIKQzU%aJiVr=H{)W3++1u5k( zNe2GtN4=fr7}x~M_%Snaj+}$OL^?KJ{xZjVB5`=Ih_1y$Ge7e2RNo8Wj}ey`N$8Nn z$V-eu&s3Kp_ZF^va%W^-X6&qgKfHHpKdo*@TG&h+HgT_R*csnU==WxjP2aJ#W0P>) zSRj$eFP+B+eY`c#JXWQg;wQH7m<4kVbpvqVA%aZ$CCto?dpVA2OSAoJ<ndF zoMUXPJ_G;PL&wv4^HhU$Z+XAO;$9g7z^g_Sr7Jes%e^=MSxN`HQV+{Uhm-X-?t1wX z%w?8|+$(ty)3pppJlfMC!Jz|GYqbh_PKAxM$fe$ogdAV40~eqRBfhS3&8+K})2n+O z;L3ov!@fUYcDh~5dytF$Md+c-?GoIv@u^9v&T}Zbx$-+q8-+gm3Lvq1A%>YL(np3)L+)ec4WJ(cepDAW zDJb)g8~u>|?*tumwSIK+AbH~n*3~M*t^1~zWR!cp`1X*+^}p+n2AB=A67oxpHy`M8 zF^jU~2zTv_dv^g;#RCjo6du0-Yb})%m#uU(a77Tzy?zA-?}~<*&&#NSkIk%kt@v4# zk7ZP2F6QVt7vAsv#$2mkG2<#<9kq@YFshiJWVYe%TQsPLi{m^#ft$E#DR$^-|1N(H zzz@o%lQ3Abn?oJV)td?D+;nQl+p z@OH;r-jM?{%yL*CRvAC=gh4t6+RF%Y7p~)u7-XS3#GDV}2jq&YamYkPp2HvA644hG zM89iWyl>(W&>F}s1p#*>iL^6#)mT~lCgBP+tD+P-vi z6H=DEA9k~ARJGLJU)7W`fLDwDh;_>ENbj^i`j`xXe%T{Qob)IqHz63@bC@u-WqZKV zeywrPQIkH>40yPg8%@l#k9>f9%RB9m0(wbZ&T_I2c$ zaXYE@^+;~CEFKRbg8%%8S_Fz3D+mrtzHDgjYYVx3lwVQmqZqgi(Rf|LLvGIY*v@ z5zzo=P5rNCz4xP3QQn)Oj*fiW48Rwz!FS8J1D0i3PcpbPaQY(V=X6bk=u=gGyDjk{ zwX4mZcjSaz=NmomJVbi2?SF6$c@s&y^C)VYkA5n^bL*EOjz^0nN4ik>&g_dhlwIm} z_X{pqKH}b$6sq(@k*FaQzOzckT>gn7k3GO5OL@Ops834|`4L^>)K3#x=3sV5sp76( zz>{%0HV2XaD25Z(W?C6&`YN05r{jE&07Z`j@r8ax$bCA!fiSeNj=<)-q@$YGyyW+0 zyc+1A@6jiRyH?TMpWEysZ)in9M@2^WJ@-Sa>6g7Zv`7b|o%V$-2tK01dXkiF5B1`@ z)q2qrRvp)hhz8R2uQp{*QW6D_nuhB(vak2p#1idkM&&`RVNX1p6B%hEs~7)1H}w^j z4LWJeaXaE^$Hi&hWXX!G=pGUV9u-QJ2!=RWIYoU%o7Vg52B@F?^PUK&_B{(a{T=oA z9%+~|k+tach&b0oR{;;>fDSrn1JI+;!BO0;JTcH@W{44oQThHl_Td>kjbMt@M3 zz{^yrKw#>Du?r!@Azomac3H3xQVU)+aNV`gecHDKrv;qC2pL2r-{~p;a7x&HWzIdL z8zy&Vuu53a;bR^(0}|;v$;)ZpVR|}oRm&kb+I|qr_yrld$qFKvItowvP%Xb&wILAR zureQ8v79s8xL3XfVpwilte04$%`xBeT(tRV%F=8M6V=~0?0(F$$L~Z08RLOJn5r7& z3>bWD`I2UMrX4xCCI8~^|hlf8jqA6 zQLhzUH`(pq>!;z_^2*oCdGU+PnmbqgoxB$ws2(KtG}wnNV)--8wl%Pj^aIh8$z9>< zg!#}dJ=zy*)o$zeA5MRXH1AX>h`f*SaA#(lHl7jMA(TPVP>$a&xxPAJY40#II10;U zD#vDQJC-%);UV8Xmp?iD^waF)6FAtJV*qNs*Z7`iFvdRLW#{7s7;mj3Pd~1c?F=2d z-=^|!i!nx>4sQ(smcEV(A_zW(uzVY9^T+5MPN1j=OdVz3HRiVjV4PwGD#ntUX}L1d zAy*wJSPcAV3TG4Dey?o>6sf8)_=_aly%8k(w{@@Z-la5XRgi+Z(o(j`L33`S>WBUQ zwpmD;KKCd8c5WH>0mqoH9foEy-<7ClRM+2m{Ebnx)h#;ivozk?W$ud2Oi_TtPny;j z(wbffV{=X%|0r3e^N924RB}trdGu2#eJ>*u=u~WgUD{UNOVz;j1LAL4DFgNqMiKg1 zf>xgkZoWP4cOpg;&+vUsZHPMcand^{fs6YN(m~q<_s@jB8daH7PiMbIJQx!9=FDv> zzTCyw8;u{7c|Um79<^?B)j>#bMrb-@HI_OhvYcyxlOcBnkcKdA^94;T;x6I@h4f+* z17EdWb6wW_D!r#=p9D#&fKLHG#pJqaLvjip`o;@X#IH_9z6(f=h@W6nHoqMqzJZ*B z#6fvkjtv*pND8&iQzc`bB(T)^oOZQ;s<^?U{?9xW$%O)rd9yC4Un>f@2QtT73BHG& zLED!ATW-*E&5oWWk)I1(tCF!qpqWEyUw%}C(BsJm5c59v3EO=BD(R!eZ*2f=sz>W{ zzg)Ryid|l-niMb@O4Vs~Jch_>J?9sZr)^~@rwYG3Ip?Q4m)(8Iwg2>=4O1gqOCG%#>|k9ND?+06UDQZ9lk@-$t&a4oGl91r@DKT*!B zKj&iU=ua3M8Fy1oG?N+UWTsZ(U&NL$ylf{$|NB5aySK0*p&EWiM*<41fY}@nbNp#R z#8MBhgxBgD(~h&j!p6JLEkBnry4TC_{#lN{-`5YTwV4b?WN^f?EaQGQ4hHyY-4u&9 zB5AuzKJfiD^q{KwNLGv?m=Pg%$S-+PbMk1?T6*#*+S{?6=Bi)?N<20>T~l?l;u5Rv z5NliKG~a1+W@WGKFk{4a(Ixf-eIGq_&aUhf{Pf7)i?K%VQcbjP9vY6M7whtKYpoPo zrsOz%x^y*@|HF;Z>{wg6CN5)VvLTk5>A^@ZfU+2z0A zM*fogro&#<0pzNoQ%CkOtb#ED=E>3wAF&p0`~QopsfaBO?XT0i zyNURwb2!$TrL7vD5*<40oLl`0+a->Xa3&3hI2gLAu_ZI8EJ>Evoy)RB85U z(oA^h>TM2w37usdu@gMM&`Ug&b4xSmu57Hk;;ri3(Q<+`xkB)r;n>U+q7Ag(`S(u_ z?hu3OVE|O1KQY&xKzPMYr4d`ww{q)TjCl1cjFwzdqY+%Xkmk(ua`?PKQ}RjqjmN*O zJ>ALkhU9^qk3}_8UQ9=l!MFGl3AfnA!2_U8^=#RT58kiCBM8a2T-#E#2joMe_}C)U z=$+CYP6}G4oAbR0U*>#Gfhi!5^PLEF4SZUYug=Ir)_l@#;wkN)lP~K81 zJyr{#V{-qT?I@oAl(ZRw##RnSD>mmmK>I#FE?UgC{2o8+knYtI4i{ub_x$%iC{=ZGCRb6%OC_8Q&t9O7Zto0$)F?<8~!^aG!#B1S-Wf z*QcA!L4Vc`;Q!K(VsVl}?A7dguc=Xgx_?%MR03S(KX~>MuOoigQx<_Ujra3B0@WH@ zp)E_&CuOtJzE@z&^xnm%{x(rH0BO;AfbL|2fA*9lp>?P6?u=xW;`p$E7G6&XCPt2H zwva;Q{3Tq)_uD_K2m#6xK0&6w@hN{;B(ypPRmKY)Udr&{B5;^ErT?riIk$Ubox&OV!c1nPPd0r3%7s= zK2wRsL0E3D9v&@B!ES$cC^k>T^^F(uMCw0HjPpVN72#xB&L`kVEo6hrX$jn*@em`5r13t>b}l zI#Oq!Q@U*ePL^&|^I9*_aRHuiwMQEkaHhgdu_cK){uTq+&8_IcknD(4qs?#bKd~lC zB*u5#Ze5COeox|9y9-q(QhkZB-qj_UZ;z6YVKxR$aH)^TL*nCN+7ZAp!Z-KcrQ^+H z?JaT+#FfG;VKbCL`eB01C+AG z?H*l4w3#y7&3e`ZhZKAUod-kRtVyb}6;d)Sz}1fh_x`9GKmP3!N{8gI=9Tn*Hi(?A zSU@x+)W5+^q@pY|%Z+OML9A9BA-+8ikwI4$r9$=~iI73%yN16l-vn;czb{-R zMPz(KW(?7t+w;kwzkiAgyw7$;wL ze*%*`95Z+2J<6r`Ecti_3X|j&&$jsEu#D%sVSD)>SzS6W$eJlXo}b=p6IhW8UJ6@? zPJ2m$XN7U=zPx`KJ^F;$EIhbkjOW zG+xsFY(kuY^M3h0q7WF45vO-m-<+tR3oJ*Y%$;nJMF(K3m+foWi@6yBbjW3pQmF(=G4*Y%=U}sXM6gg0+CLjj@e(v z;@msu>(yD>jf zl~1pG7kF=*G|r0NQj7WdUAme~0!wzT9nEsEA4G$_eO{xaXmYs+UD^)*-ll$X#r1c4 z%)(m7rX`sa8>i=NV9r(CJwP&$eGueIb?0LJc|~CY4>WiZVXuzZ&nD+jU3jxf=GqQ$ z7@0XZbs8~Q>!Q7+I}|#Xwm%?BlHW7KlEoJ0b`z_%}WWe#4ah z8zq(RuDclGox2h}UjhX}K+#1~bdcpU!lk$FVl zUXx3{%{%5eodW$TUyCf9iFa*6^$A*w@C}BaGRwR7RGINbX#}KjcP;?9b-+Kc_Xn-Up zIH2%UAN+X`lqNGKk7faKw!UwTxD|AKhsW~dAMO%?`ljyQRe>fSev&l4Xr&MhM4{hr zsC<7(&I5`406SQHtEqgX6cXhh0%@G3(f_=~KJJ9*vUDanPw-l&5pGdQY|+h)f>#$H zP;ZRdK*!67PpDJS1Cq)-yNrg~+@d)tS!YTGtXDDUH#FknW*=opEh#kW^7ic59CVXF ztZW$SuOJK^dLvvuE&meix$Xpfq1;S%tdcUzx#h-6>!$j?MC zh%QqJZoJp^Bk|#$!=fHs-NhNVlA7Hxshbp6MhV_BqG&KrBnG;DiT$+>v#s(#*3iwN zi|rDPZbdIeI@q&Lz!e~>_={|h-w^OXcJYq zeCjDAfuK;J_pw^w!Tf|)Cd4x?D0lG750*dM5-(3GM_gxm4%|zGU>@X&H)CxR1LCi4 zycp5VEY93On_3v&UAc-ZUHAzP!xDa``x?bU4ugr%fl0u%li3oc*$ex6f|LP6#--#! ztYbmIaUz;G%%bqcF%jT+G?%*Xl#1RYTXe}6Jhef=WkP;nBIdUtVNYIL;Zf`6cUCE= z-W@yB1AIs(e0q0sm=^n4mP{rrYSbV*GV+^AL*m|Yg~sGS;j6A^zg zClBV+@Tqay!~%hhCH4xz*pc zqN6e!Xp*k7(6bWm$8@8*C<=f!-|rK4a1>OM0tin<{>cEJzpxLFt=9Lu0-)BFf*)H5 zZkXv@?g^f0l*Zjb#mYl?Rp@VK^4`%yo$snPQ zVBL&QR{LTz-fP&u+m`}0$imATlKIhvzpAf zL_m9&WAJp1+euy9Vw?5&?PFoB;(pe$vuDskm$i6Pm?$S8=Clm|8sH z$5Y4gncN!M*i$sbo?OR@;{($-l)}n$7Kg986_d?$iGquJAFkz=!{=Wq-$-P=oB_-o53VWXvg1UMy#0 zv+9ME9fqLn+&|8ZQq*~S_il5aTA^s65jIz(&vaY3#MOEysk;2?NBIHTr4!O-xy6%P zz5i3&S4GwF1aCqJ5S-wy0e-kkfXfXMTml4ly-09(x8UyX?(Xgo+~wkK7v}=YfA@7? z_F>QIhdSNgneM5nJ~P!*_0{6}msjiRpYv8IooiwnM=o*eUVrI>f;_3O;KguQy%I5^HSx{CRUlAHcQRdx+r2h zAQFE-4VAxqEUwtjUwHJyJ}+muVfp9eTZlFP+X~UJE9QwS zPLJvGKMG>*!t<^aWK0=2S~qtb2OgtmsCbUY-e?;ZUOp9p{%xM0XF4`fl?}U1FjnrM zG9)XW{&C9INC2)gbj|hb+GJD;QSMG7+}Z0IO#SEW&6(=<7A3F+ab**kth@0*M_cU7 z(?cD8*{=*>!$(ram9Sd8lU#BYwX3h#sUmpip=oEf6kPcJWB%zX)QnpyE9iypgv>he zFfdkps|?84jVrO`RLVWLKn@EnHro>Ohm2W@knErKLE~>oVe~jB0#32pLD^iQ@`)6P zTgB3Ng65^2KMviE_*jq5o+t)Hs}#7Z#?DqP>_Y)rfk>57!YFP0{L+1#J+ex)@CxMb`q{*9)9Ke;kj1`Rm~Dj_Swf- zqzddT$yDdq_0PNo0PeS_in8i^)vV{p(ndc%#WI>U79Pn*OpLT{7T)$fmTVBh|&Zwx$dI#W?w+MA{-RQM#_;J;|} z(zpI*gGsBg#1&a&y_cR`+Fh(a02!7liNcKy2R#X3S+8BmC!xrAThzz?Z z{I`KSf|L1fjgED5N9#GS(C#tUb6F*sl8J@z9G9(e@H&{fVxn5$S%JD&7f)|u%)LF- zHvN~krux$Y+JM?s)MHYK7#?m8;B2fT(s@+*@0QTpR0Z#YkYZ}dXM7FBzm7!sVy{&5 zN`0~Ar{O+mJ1>)h0A?kf^USQTdu5`f6{4b;-O;l>7ooqCcL7RSh<9X0Qq%EozEM|h z&imm%^4mpg5%^8i4-Iq#R?$-1s2{H((^V#|l9CFo+N#E!YH@9ss*p;7 z%bl#GZvxunDWR@ByIIx9i*Bq{dXsp^ABa9njlgSmuIS4@+y4IJ9_oe+e!?R+@^(P z+o_9P9gx2ZR`cU0%VXZen7_-t>t)Dn{O%y9ko5-mbrmj^mDO5ArvOY~1HpM+-5y|0 z&27XLV<2E*&?uzm&x1bc99|GDTlSvp`uPtRFuHHM3pYd;B{##*X7;}|201@iiRVSht{RPn%&{LO2A zDS^Fkx9Sn1Q#rFqE~&)W_<${Ck$T@{*`is|nH-(t#ds~`SkSf_1S&`?@8peAQnR>Z zlqhFxc-UhWsn`;GzMs`Nzgd_zdSlj>In zyIx*RN!kwy{A4-2vROViIf`b#0ceHrz*qTYRC9rVL0*BhV^8qhwgb*N5d5lu48&g` zIZN4OS3hVBx$dZ^XWijj4?%vf;_0Q4sB^SvAOF!m1zVBljX7S0CG7U@Dhu9%&{w(Av)M{?TrEbQ?WNGVuM5$qc!M#LY0* z4#X4uqn(x^Gp-Y|X+MoeUDffjQ7dupqk2jqE!R!hpYg(qq}%C;t|%W+1SQ|8ZP-m} zu2-+yg`9N&-N()&4NhM0n%BLJ?Zzt^$?Vsx?Z(g7Ry{a|WY1p%%RL=5-9Cf|t#uA)!yt2icjHG-H?uXN_xer}81MlG{tuY?L%93^w`k1qp4*+E zGjD#a7OEK3!_VijxDGL#M;!caojd{f1BOI%xdXp=L2-f%Ji^@E35GR@nP$8Bx4eLN zK>{XPvo`;}XjzxENip^d$!;**YGGt5omr&!S}+`_xVKg`hC-g-A0`XcX}P5;ZnwL8(IyH|2idQ znlV(8DLXY?-UCKo$dfhJAAlzTgRjvqd#}-w0Wak7%pxGyE!ZclCa4LN%*rv^?cb$v zyJDuiw-E{OnRu$(Ig&S?iAxXeeG>=t6y^h&$nZJWBquWhgP!I>AX`7}hv^j4l{dGD z9xR`A$~afG|NJU(XZdk+R_SV8{Z*lq)l%?$ewH|-1oWw7@_5sIx}CKFUC#65gr{m( zzs$pS`f(L9bbSK9`>24)`mnC$>WMF zr7&nw{eEOCOif(#X~R_d-3ev`He|g)uZZDx?N@c3%U#n~uz3;ZjBrJ`PY8@dljg+u zqYim^j6l#-#wuO83aoKDUz-q`z2l5#k78gmh3w&{@o##`z1=m(CKEo#&ECS7&!Z>6 z_V&xm&9Tjet{}(IK3&I-pWOyk*Tx!Y&uOp|<)JT?!qD*N4({WVIRv(8s*A6J?m`+8 z?p5EXk{{x@p5x)vTb$LxmiA{#Ey`gpLX4m4CN(wAx$f8p+^%|Kb1&|r1U~-4{Daxz z@$#}B{nhMx_`)FCIZm-f>(w=JY>@~nTS#`0dwik^mm&g);1G2p>ZzFTPnh^s&FR~! zis9fH?A{1FVF;MWlUZOy)35s1@9A2~KMrGBgqW3T@v%f4zyvYpLM;MYse1};a%q33 zn~zx%{|v>}FR!kED?3tq6U~)qP>HIOL@3slbJjr?=Tlc-7t%} zbn@z2nmh?dU}HTp*hK&J;I^BElS9Te@(?JrWf%UO;?jlfccP5&`kwQFTx=BR93WU>nU>fEB(Qn-5>TANSrghZmMHWTh?9V+V9Xs%N0g|>|fRP_!) z+;+zncH20`I(r4S)F>_dgu6_hJ%e&jsNhn9+*7D?PyUDXz&+(B+`LTZxD8p(6z52C z)pRn~FH##API(N-&=02q-irv~6B>jkEJ0(382)7#T1||2vZ`RWU2it+NZt|rJzzs{ZONn?=U+$K+A!cQltRskMUHyj8=u zE%!s^-CVwIk{H-LVx3DcMT!`ZTg*FjxD8^iX3+)E?7~;jJG@nark~Dj@K5HnQyk}$*6L6?rJK#3fXAWyKB!FEqsF`XeSO{BmOWSc6`CJK4(?l zq(ewB%3LytxL6Za|I;no)9yUv(4)`OMHkWG)%9-PO`(0wqI%MPW|m#PQ{Q(N1@I9L zcv6hOCLuVMn)5aabASz)Si_!ohD&j|WecY*>*n=+$|O5D4m*+gFqIR7INDML;-0g) z{HA>Vz7B4dc|Hszq$W00y${miY%poZHv@!`i({H9;^C2S9{-Y1<0S zfhu64L}tMWfsOk^^`H_O1hzrJr8JB!0c*Q;C3f1Xj+x!Mh%+1XsA+YVxBg2x-q^19i{!l1M4PTfsnB0TayTC+u)3)3a9Mey|fS?kUI0^FV^0j?$1P+q&n!uoJ=n*+JvRNf^^^GTJ|Ns}?Yj zE%y{aa!L2w6hKI@(1W~Jow`^4(|QimbCcSR1oU;d?P0&|L21LI@WLze!YlvcRdwUV zs_h~Bc(eI*^K!OxtJ0%e;h{_P;Z0`arN8ZA*zuCN?SanmvU{NunD5~u|L_)f@rt|g za_M+!bF%qf;^Cw4@D_XVI^FireYy!;=p>)(^vU&jPri61-gs$ldvIub2yb(l+rN1D zvEfm3;pKY)5P1+%e;}*&Q25u0vD6v8*jaqCNq4kKce?o@fQ~j<=Q{ORHVKJy{&gR! zV{c{|0*xZiC_FMICH|8ua(i$8U`I=?qY+Yid21&7ehKYuMf@*)g~&N{BbSY5iEGJN z$uJSL%zMTWB(im=m!dRzP%FZd`Woo9)seo!axZXC+?2_zT4hkb+{vUs*k7f_!*E&0 zL8FnH2UXdDX6SGj%znOFFCHH)Wuc!gEvuR+ov1FOueyMr=kqWycayur7?)k~u^pv) zNrRrO`;+Us%elF|VXy${id)W#-oJS`nHY>>R0*o9)g!MnGU-4>ZTI%}@c0-VGJrM5 z_A!+m%c<$_qV;Nt`1o&#hRV9CZ`q-8)*9xG^)(GAh~OXXhsjl?Z@GpN6%Ggc6)a3| z!V>|@I7!eSP3?7RDgrXzm~gRPqHf;uD<|YrUf`S`D`;xJRg+X!GZ*f6`er>}N;+_z z@g|ZIRS(sYaFY1TA&@hXp4ccp5PLdzIL)MCzC?YxjcM|vAt$KTIH`}PR%;pU4?J;5 ztN~to#H6v&ifhssZJi<$(&Jz0achRg_znRFKTxpOM9DgPL}XbVT{V5Vc!`B9a=W3I zn>P#YcUrfIjaDMt`vva8)`cLG!h0oi3T^}Lk5y-UlFQAc+~LxfS5DQD)*TTIy2q*&t$`v%1Q>(V)y_fQ1d?Y}fJAzMn|;PDKR|)kuzh z=I^kXYL~QcF?L?us1V9er{^Zz3-@&k_bMjbg>EWl5J8W+qV`99VZ~r+@u>VxY%0Io zKmxx++(W{})j>w|f6+t#O?HoBD*ja{b2^u!_8_;CqwrFpW$kXM3B2txSi2E9u%Nit z&ZSq|UxUbumGctJsOTye&S6iDNgpCqExQ>cm@&Cp|DfjQn8_D>d{v4KcX^e~ zBBw96{2T5Tp#^HmjW}XveE2ZV*4kf6v}$1)xLyA&X=A22xM0Xx5uoi9V zlW+A;1iUm;NK+k3DeBmYmS#(JWql`gV|~yvq=nOR4PhrIw}pr>>~V%nm8S*lvCPCl zV!FMgMA->A+(DD6j<6BI*hB$`@C-}itaQIK({mp-?CFv+B$LGbJc2jpKbO?mfMrid zAFttXR)6q){`3~SO z%g5Xn=kp4^))V}j0`g(J@$A|yPDqQmb`oc+UmM2Ougmctkr$TB>OQPLybz8unihIr zx!1|#7`Ew#K=8AFSjV13ZXcmwcshG*98SNcMX&b;XMRCLz*RqIVlfS}hFL+j4l3@Q zPdGGC>bG!*O{7SCqA@wW@$id>84OZcs6s*?5$H*^qaR@~H7!5&fyUEd z4y~R{6$|4hvWaxp6I3C@*$2h%jvi=N^;{WQFe@e|&hz>Kj70uQJKC2fYdWjc4!Yjf z?55dVwVYI*vfvYTaaq5lNygi;hEZ-htqqUo6zERbN8s?_#%~zsDE6@dWzTJHG5D_p zyBbb4nzF##`|xzSyjWDM4v=fr=S#vY#$FGeS$-El=Q#(d0pN_oB`gGg!N}2ERJSbTo$KY9 z>h)Ms2Hu(88>cjiy|EQhC{ z;)`3iZ!d}VGL%!!U#<4N!G`0=3MxA+8{)r@cv5_mRnK7 zl^oVxr>T~VXHx?qV98WT!80s^ozzrC>dLp4q-2@ESDC@DN6q6f<(dUWm9<4gvuPWb z*)yVymxn1zGE|NBf9@c1{q~8)!n#jPz}`{&>z6#PdK!ld!_E~EHX48do?Bl8Icrdu zow8;U%<#O0gx2|WYwpUqQFr)>#!9V53-{kg(Pdd_2A}pKNZ0O9qc&W6ph9gv ztW4%FeMEGon9-hHmM9g@&S%Z-(SQ~?^<#-_pSPp%hflLs5k5^1uqn?Ro@bkjyTEtW z0q2g}*_qe1==VIoNy`14NtT}&IioPQR@}^c)IlQrcCkZwEUF_gM3o%`uL7gY)ffNi zc(3@TeSw=4xjs43ZRki!PuElV8UCF(&a5s5l#PU^W12jr@~L1zcV9c%#>L)_?q8qo z4-+I`JRLEtUXF8>AhEK4(fctdY3RR`DoY)c60Y`tM$mH0b7%!NoD|@Q3jdTdF!3hi z$D}Yd>r9uuPQ^OlctQJzrNXFwz<-NlT``tWMmXC<4mzAe4FirlApev3O4VFapWZg; zrL49JJoz?0B(*|7NB1*sJxlUuomUY~{5a~5&$OhW-#o&+-xg3dG#Q^6c7yBe<3`GG z?^8wGbcU+%*f}MCEJoJ1J0gGHOY^Twj~G(;R9U-4p{yFi#Ecy%ii;PX8(m#D_Eos!E47AJYOZoIU&iX$=I*B+HW$Dw*x>L!>33#EDRZXLHDiD2#bXg%~wy$|t zIpT;U+9I5E3t7$mUfHJzYI=@n7l9M?y~wU1m`>gjd}kZs9ZyWV&1FWk8jk>X1G?iz zkJccZLsgMg{^+FqG2%@Sx|&9ZlcU#4zMtSrRWJu9hGAY|i`pk+^lal({CX~Rz0aox z8wFFWiT)}y`*a%dfbOw*E7s#opbG*rKE?}yQFC|)RH3}Od^!q%H< zx4!AZ#gOR_#fO3@vIvkFnS6irU6TcZFrPwY2I9Yt5S*vXL7Iy{V_lLuZX4zPL9Hm-|lbx`k_U|jAI@E-Vte8A~ohsWt2POnI^G_e`qt*JarubE z3A`{)I<-$d_GCffOPH1&EKjA$@l8EJPN8WCgoidnq;4{Ra_@;uquRpYqZ+?%fZP4S` z@6C*8yfBuggZ|Tz9o-yMhlR>N=C*&`jAVlfY+w4n6G0WWvqOMK21NyciDkjZ!7F0$ zWym`oG(v(v>+y>+5tz3h2n*a+EJ^^5Eh~VteaT-Kiz=YFMoxRc;Ct5ydW;?*%=>@P ze|q^)Jx*s%=xG|E*49KqTW7@2JV5_7D$e=2i}&IGV|(a6u=dJ+Th&2S^JeJBBdm%C z{~)YN24fOh$ABpayA*;eIXXmxtvH~esEFfNCoW=qQo-RSt_`S{9#VlJKRZ62!;4bF}Q%MyC)2D2uEmrPuvP`jD?9ZViY3A;ps->Lf5 z#;yzq-(pe86TxmA&_>khWbhnE$B$svu`3mhKQBK5@yBc%P+8-^u7tWw{nRFp7KEl) z+0MaMU}CC{-@)~reWxaTGQqqaLF7qbOXKC6Hjrxp6RTFR@>W4NdQ-&R0m1^qEU(lS z(<{ueRss2cuN22xg*NftHMgP#>Rk@iWs#V*MH&#V15z5uBGOkDs}dd@EZYCankWHY_u92ZObRNM|r`E=aU zN&4j7(n-Bz9V;ZgeGEteb)JXJf)R(!uDZQ*QHPhVT|IMQbjt$?>K{aN1z@{v zjffBA;0JOp^iWao<*LK~5Fi+GozY{&!D#}M;8FV zCwUoypnbWZLL9}N3Wl=JUpmzi)$o#3t7$37Dx44S6e&O-zVtGusa#||hl1GtzM5*% z_)?$Jd1XbBW|!&#fBD9Lj4}@6yk@;8bvt$GH;jXpa&F%{`OC*u>oZh{A&led^41!- zXY`Whj_^um{84D)+PbCW$iWu&tV799-MI2kH z!vGQG#B2;ARkcI>e2a3MGNuY~CNPt&|6ju$bteO)9qEk0FTK;Ou*X;7H^{JxEXVZt zCKf-H!bk%CtDn{QOQl%TqnN6v)P$Z|7W$-8s9D4SE8f9CkMFJGM(;CP{`G4)Ji9C7 z6h3_+(I0v`6xPI6_(UlDd#j#KFoUYq|1hQ+d|zlS$*fO{D|0B87D#;H0sSfcN1prKL|(O`e&3>hadJ1pCa8 z%MAu$R&f1-jRUbMYnZE`NvEqTYozLFX7-c7R$Rw?I=WYl|AaI`@1lxdqXJuT?{d^# zv=9`t;%^_C;UFiZMc(7wY5fU4r0Pf1Qj}sBoDX#iR+A{bNqYj!;))1Z@IK{}2E*hy zm_QSkbFI-&a#|#5?r44@0?$9EmN#L?vtfZev2NA^WMGc#K`tr3C0|G~f^emESTYtp zMQx~FS&Cyd=4~o+EQj;1e1xOyeN6NZ>KitG%^K@`OPY5E-MD=ye$VU9bWw~o*+2V^ z&7Mrk77O!^-uWK1|6|UsQpC`oflT~fM*zv`rSivl0xq8k1FN%tzYgtyu)GlGetr0e zmm|`?ZbicHTD`R127ZRK^7hc@wx9&^Npzw5;)%qH$v>utj584(ndI!r`1uOw+-mj7 z6Wrw#^g)G|%jAB0QC@+2GjzD{UZgj7XgAyyKj+^-C0O5>G7rZ3uzid0 #5DLm*MSgN2R*2@GqqT%}lJra@CjPk98{-Grp)pKc zs4N~HF6R8Whn?Rg#q5WlpYZZgtt1Q`x;_TL*US+Cf2UdVbL1UcMNumZ({5OQ*OX1tgG=;u1xz1s5UyOh29BC$ln3u)sMi0F%+v zgU&m>Jxr%pJp?WeJueO&Jb)neiHGicqsqnyU5{xfU3pKEsf%rh*T|1p`n~Sa=faRj zD}k1MgyNRA$d8x@ui(rz0}2nm@#ccID7~r9fOv$5g@m83!Axp(A;7TK5tlu9C-iwon6K2}!m05UFIYnkgZRvH0^ zoW|J*i+iIlZ3_(dLJ(Fk&Q07eNbK_}?Emv~x*)o~Od* zRbc+pSg>e7Fiv#O_m(FQ+i59|j^XG_1EipF+n zxQOT#J3O_ZvWNyO7Bb(M-_p%46 z5lKczwnyxfqTo8C)D;KcFN#?!R*q7lY>8##dwG@af-(7Ud3sZ?BwJv-@pR!1d!Hxg z!@>HGPDAO0YV1M-k6gRt1iYN+R}kkfyI+Px3F$bSIJ3rG33u-zbRr%&g?b+ahMEb8 zp`D}?Ef~9eLr4+D99d`~{XehxT$y*RA|BX3AXvL=5nAxBFLpzU5yPDFAgJK3O2qp} z3sF=5Frg13EA}*SXh?PQ0zJ96_R8eiwP(n_fgC;PuwT^`Hv>7jf8|QI<+BiiTCdu6 zy)DZ6r)EyW_e(_}>~McSSk@I;8&v=-?fTsl`3<85b`y=b`Iir@L?8a(YrhZv14gs^ z=a&#sFo!FJC#JlqV7wjW?wu{1Hau~&p(j|f1vVSs0vaBi}R7AuZCR*8-bax9IlFODYX%k z`c*)GB|BzF{!Jqr~zfW#e={UpM#{AN(7d zAbHm3Gti zHln2C>4NzuA+zVvdvaOFw?XsRwVt#5Z5^cOb;{i^4#)G1U=GhNbvW{4`A*m<7o~2D zCBBk}J_w!CdvZ%B-wDdq{N_CGwtsQyWq)&$zR>(HjC0WqLb3;{J8WBZf&=`=ZP%07 znoU{2*DgW0CAtn<)H^}DCpW&VE2ts?MhjT#M9x+lcmlB1pt@7!Gyih8WP5-;uV&!E zcc7dSKK%MyCi9iS>C4$tcpGnrEsPV1c9t{%k4L^J>l325;zyN(I z1UIVxi5D5&GsIo+&%j+=Uj7<}*vqWq7H`br;otF)U#!8@YRcUR(H;@cI?K4yudsrR z#23Xo&!l#Mp3+QqGQ)R%@Efw)u6uV?{t|D<=?lwAC8xO;Bj8*C^BMA=wyUhfuuSy% zWbZ2qx*OasVtbJikcJ-(Lb@LMwpQzf{*oT~tPb}-Hx13acsH5f>U+}-k*TwN)pz@N zLhUVY>#n`zCqesMB)TDl*(RQ;*K$KbLYwHO>j8Gaq1p%uj;s+^hFy&a5NFo(h zPTk%|w4qZ%8{>||Ys8560axIzXoMx9&*&q`uKN&Lgpc8RpSsOeQ>>lGP$r=ZXg#Dh z=o)57lpxwPW5AWlh|L=_tB?uRw(wc;dr+Bv-6rj@W(<|*r5$5Jj`*L9)KZ{L~a8w0ufHSyX;J?B8Pz$JWay68CSK}mjQ$|DEwA?veBp_I1bhzPNV ze8a5kCqo80VE*)>q`-|E%2F36T63{q4xFeJ@a5{pclf5`g6w91figf+_wCzp{9LAh zbI8#pQbAsru|nuHnMWW~oq(^NUuXs+;5US$)17xZUY&MWBq@)Eea~$0TZNqLOB>t; z+>ZR5`%PC9Qz288oMew19@bH!a>IVXb@#=H6t+Bx9SYZ>#7ME^+|yabqtH@jmy<-` zEp^}@CNbr@zE%n}S3FGR#+;byL65YC#(gB9=O{#aXeWd|>w4ScThmIr%aa31ACSNm zlm_CaJL>dTPE#(d_ir(Q^`uJdqDGVth=~6#(Oi?AX$^ZV!SnTsYcC7c57|(2H zIM%|BM7?80O-C!3$U)2Ai&u)nMGrqIEgY`&uM8*RCgbhvaqG(c7i{918dyf+7%S>D zw1FBwbsn}Ki&2sqVvAhy8hEjdi{C7(q&7hs0djSC>Be$AqpN?C8dsPs>opcl>nkQr zHPR>Rc+yR*c*g(FfKC0a^|lcFa*PVu-=q-3yb1`HMqLH8u^EzL zCKf^K(Y!vKZ{auCfrc?cr!A}~O@qjygfti$DH6OZStHn=IgeV>IV6S|EmR{kJ8ZTl z5DJ9r4a;T!Du(y@vD1?g@Gy`O#P9rXF@DyMy_7r!@poz}qTmX0T**ycTosCo@(SKJ z#d^c}omW(bkBSdws>ssAx}Il=(e$r1l)#YVfEH*TIJX>|FRJ*O zRfro97aV)Y_S9v+UtcR=s<_rERVmWg8)y1&y6wjD7Zwj=NT)oUr@jiGU5CX)8FyTz zn-JO<58adQk0xQ~M#SF$eUR#1SqWmpuCP^uV9wODFaPM^|mZWS{lnu$b8JpNzL{VD+y(46>X2L>k~P!;!L<@B5jOsxCmCpY$x| zD(bTZn9AJJg4kBJ$6DRows^n<(&t_NT)P;JHtEO?!UZ-uwkTvzi)fFkR!YSuKDc!A(-!KI&%ABmAw1rqrt|FZ{IPqjnd|%7&bjfwpqGyZn&R}4kkg-xIJD#86Cc~^4V=4Ef;AKu#)e*JCu2086*QdTtrQ2 zi4=8{9Y5|=v+9*-+xBwNf@f!;%^*|I8Q}uYv8U>7%%B${^U*tGU(Kf#V6d~qBc}q? z+6ldyEx$A$vmrC%_j+tD9R=RDwca~yI8>@RXWDmN?D;Pppsu(a6zI6Tj8vpN>>9eO z`}@nU1CnOW`}NMc((Ce=9@a9g`PO^a`Pkm$(V}TSN0YA`nz=94>A&Xz0xoX(YwX15 zPSCNNs!C4zZAaCj?=;#A&Vme-mAsc6&dI&oPmUL&kMw{GCO&uD!=R|w*F3mPcdK(~ zmtC&{gfTfVaQ)Hz2wft54W&C3dJv)}e$Lm@R_H9QEg8K)todfob)2e_z2un$V0xLA zao~M)K^M$yTyJ=*IA^tCv3^g59HmV=)3)=R33@v|U5tfh%t{R^qc8-sR#%^M4mEK! z=QB5XjlRmmVzZ!I)$tBtb?QIkg-^WSgx>Z`e`y{lewyMX9A;5{-ak5*677pq*Ob{&CR)5-f}?RF&x zU^{=OxX;1fsK)BR@9YvlCzDn z-R*;pcWaYeJtXkrX2-|r<-MZoFekO?pVI@+^ycrkCY$8oc2b`1Mx$9W$SNfK%^7sM zm&yCy{P4cIvGIgoT-nCgygl^lcb6JTeL{r3L3H+o>dUG3&Ru0>eA z{(haGcy3{zb(sLQtG<$2OR{--8jtK;tcD(?Cp~m^-s~h5Nj+O4nIk&dnSYM7@38QM=AikkIpf zCdf`AOM8?xv-nT9FQM=KXh3%CPt==*HKbpTu3t$h?m9`&h?KrE|ldy9nqA$8Y0J5 zWPkEh>bKr6dfV~+IBQA@QIe^rSz+UX8w=jS=R=gZAFqth=YFwe4vUT%qHvxi;iWW> z{X~EsE6y}v-p``l87gPAOe!4sq*+ac49(i>`OdqLx@?`P6W8{g|Ba=@3 zyQ3ynDfXqUN;1&eOeT(@Bri}-&S+(KLDi+ZN$68HAlvlmi%=w&rKC^tpH~$H1|hV} zLrI;f1GV;6PJN7Ilq(n|c*!U=X2A}0RYfJccLLFs<|cWcj^LcF2i$LuEjWGTJGW~6 zo8|80LLLGt4;$iGtRwjY4u@1(Q(_|?0}{*c5}R%o9W%T6fBwWxo7il0rOJH6iWh!z zIm1{#?p}dGfPrycwThFI?`OjddH@7*m*t0J0&k!r)#Sde|k=W*g=nJbHj!Jg4mM={;UQ`@P8T%tHUmN3M zn$3uh-80Ai{)F@}F(`k*k_h_#Tjcw+aafu$&CJ2C6j}~dzJhDm3ht-^=Whu+c{$-I zRt@;Na-_C)28|b9!O7@P?)lL3Thw9PD=yO{%_(!1KTDeZkDD!uD zE!RESLmG4|)waC*_P|)%v!rm?q+SR5k(A4mDL@Uzsj<+w88TmX;zFd6{35|C=azek^>qhJ&$*u%PEbDH{tl7oKX` x(9ThsN}Zkt4&vtsFiX^{{oGLlI{Qi literal 0 HcmV?d00001 diff --git a/website/download/sh/install-linux.sh b/website/download/sh/install-linux.sh new file mode 100644 index 0000000..cfbee88 --- /dev/null +++ b/website/download/sh/install-linux.sh @@ -0,0 +1,105 @@ +#!/bin/bash + +# Oraset Linux 一键安装脚本 (DEB) +# 版本: 4.0.1-BetaN(+AU) + +set -e + +# 版本检查 URL +VERSION_URL="https://oraset.parlz.com/download/version.txt" +DEB_URL_BASE="https://oraset.parlz.com/download/deb" + +echo "🚀 开始安装 Oraset..." + +# 检查系统架构 +ARCH=$(uname -m) +if [ "$ARCH" != "x86_64" ]; then + echo "❌ 错误: 此安装脚本仅支持 x86_64 架构" + exit 1 +fi + +# 检查是否有管理员权限 +if [ "$EUID" -ne 0 ]; then + echo "⚠️ 需要管理员权限来安装 Oraset" + echo "请使用 sudo 运行此脚本,或者输入密码:" + sudo -v +fi + +# 检查网络连接 +check_network() { + if ! curl -s --head --fail "$VERSION_URL" > /dev/null 2>&1; then + return 1 + fi + return 0 +} + +# 获取最新版本号 +get_latest_version() { + if command -v curl &> /dev/null; then + LATEST_VERSION=$(curl -s "$VERSION_URL") + elif command -v wget &> /dev/null; then + LATEST_VERSION=$(wget -q -O- "$VERSION_URL") + else + echo "❌ 错误: 需要 curl 或 wget" + exit 1 + fi + echo "$LATEST_VERSION" +} + +echo "🔍 正在检查最新版本..." +if check_network; then + LATEST_VERSION=$(get_latest_version) + if [ -z "$LATEST_VERSION" ]; then + echo "⚠️ 无法获取最新版本信息,使用默认版本" + LATEST_VERSION="4.0.1-BetaN(+AU)" + else + echo "✅ 检测到最新版本: $LATEST_VERSION" + fi +else + echo "⚠️ 网络不可用,使用默认版本" + LATEST_VERSION="4.0.1-BetaN(+AU)" +fi + +# 创建临时目录 +TEMP_DIR=$(mktemp -d) +echo "📁 创建临时目录: $TEMP_DIR" + +# 下载 DEB 包 +DEB_FILE="Oraset-Re+$LATEST_VERSION.deb" +DEB_URL="$DEB_URL_BASE/$DEB_FILE" +DEB_PATH="$TEMP_DIR/$DEB_FILE" + +echo "📥 正在下载 Oraset $LATEST_VERSION..." +if command -v curl &> /dev/null; then + curl -L -o "$DEB_PATH" "$DEB_URL" +elif command -v wget &> /dev/null; then + wget -O "$DEB_PATH" "$DEB_URL" +else + echo "❌ 错误: 需要 curl 或 wget 来下载文件" + rm -rf "$TEMP_DIR" + exit 1 +fi + +# 检查下载是否成功 +if [ ! -f "$DEB_PATH" ]; then + echo "❌ 错误: 下载失败" + rm -rf "$TEMP_DIR" + exit 1 +fi + +echo "✅ 下载完成" + +# 安装 DEB 包 +echo "🔧 正在安装 Oraset..." +sudo dpkg -i "$DEB_PATH" + +# 检查依赖是否完整 +echo "🔍 检查依赖..." +sudo apt-get install -f -y + +# 清理临时文件 +rm -rf "$TEMP_DIR" +echo "🧹 清理临时文件" + +echo "✅ Oraset 安装完成!" +echo "运行 'oraset -v' 验证安装" diff --git a/website/download/sh/install.sh b/website/download/sh/install.sh new file mode 100644 index 0000000..7d63fb0 --- /dev/null +++ b/website/download/sh/install.sh @@ -0,0 +1,115 @@ +#!/bin/bash + +# Oraset 一键安装脚本 +# 版本: 4.0.1-Beta + +set -e + +# 版本检查 URL +VERSION_URL="https://oraset.parlz.com/download/version.txt" +PKG_URL_BASE="https://oraset.parlz.com/download/pkg" + +echo "🚀 开始安装 Oraset..." + +# 检查系统 +if [[ "$OSTYPE" != "darwin"* ]]; then + echo "❌ 错误: 此安装脚本仅支持 macOS 系统" + exit 1 +fi + +# 检查是否有管理员权限 +if [ "$EUID" -ne 0 ]; then + echo "⚠️ 需要管理员权限来安装 Oraset" + echo "请使用 sudo 运行此脚本,或者输入密码:" + sudo -v +fi + +# 检查网络连接 +check_network() { + if ! curl -s --head --fail "$VERSION_URL" > /dev/null 2>&1; then + return 1 + fi + return 0 +} + +# 获取最新版本号 +get_latest_version() { + if command -v curl &> /dev/null; then + LATEST_VERSION=$(curl -s "$VERSION_URL") + elif command -v wget &> /dev/null; then + LATEST_VERSION=$(wget -q -O- "$VERSION_URL") + else + echo "❌ 错误: 需要 curl 或 wget" + exit 1 + fi + echo "$LATEST_VERSION" +} + +echo "🔍 正在检查最新版本..." +if check_network; then + LATEST_VERSION=$(get_latest_version) + if [ -z "$LATEST_VERSION" ]; then + echo "⚠️ 无法获取最新版本信息,使用默认版本" + LATEST_VERSION="4.0.1-Beta(..26:.6:12)" + else + echo "✅ 检测到最新版本: $LATEST_VERSION" + fi +else + echo "⚠️ 网络不可用,使用默认版本" + LATEST_VERSION="4.0.1-Beta(..26:.6:12)" +fi + +# 创建临时目录 +TEMP_DIR=$(mktemp -d) +echo "📁 创建临时目录: $TEMP_DIR" + +# 下载 PKG 文件 +PKG_FILE="Oraset-Re+$LATEST_VERSION.pkg" +PKG_URL="$PKG_URL_BASE/$PKG_FILE" +PKG_PATH="$TEMP_DIR/$PKG_FILE" + +echo "📥 正在下载 Oraset $LATEST_VERSION..." +if command -v curl &> /dev/null; then + curl -L -o "$PKG_PATH" "$PKG_URL" +elif command -v wget &> /dev/null; then + wget -O "$PKG_PATH" "$PKG_URL" +else + echo "❌ 错误: 需要 curl 或 wget 来下载文件" + rm -rf "$TEMP_DIR" + exit 1 +fi + +# 检查下载是否成功 +if [ ! -f "$PKG_PATH" ]; then + echo "❌ 错误: 下载失败" + rm -rf "$TEMP_DIR" + exit 1 +fi + +echo "✅ 下载完成" + +# 安装 PKG +echo "🔧 正在安装 Oraset..." +sudo installer -pkg "$PKG_PATH" -target / + +# 清理临时文件 +rm -rf "$TEMP_DIR" +echo "🧹 清理临时文件" + +# 验证安装 +if command -v oraset &> /dev/null; then + echo "✅ 安装成功!" + echo "" + echo "🎉 Oraset $LATEST_VERSION 已成功安装到您的系统" + echo "" + echo "使用方法:" + echo " 查看版本: oraset -v" + echo " 运行脚本: oraset your_script.ora" + echo "" + echo "开始使用 Oraset 吧!" +else + echo "⚠️ 安装可能未完成,请检查错误信息" + echo "您可以尝试手动安装:" + echo " sudo installer -pkg $PKG_FILE -target /" + exit 1 +fi \ No newline at end of file diff --git a/website/download/source/.DS_Store b/website/download/source/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3daa583464ff959c18751cdbc9f9318e22f93b3c GIT binary patch literal 8196 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 U{EVOR^D#dEKVsEZ9{?Nz0NuDXOaK4? literal 0 HcmV?d00001 diff --git a/website/download/source/Oraset-Re+4.0.0-Beta-source.tar.gz b/website/download/source/Oraset-Re+4.0.0-Beta-source.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..593312d4551d279a7eb99e912f4e3182fdfc32cd GIT binary patch literal 3666 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 literal 0 HcmV?d00001 diff --git a/website/download/source/Oraset-Re+4.0.0-Release-source.tar.gz b/website/download/source/Oraset-Re+4.0.0-Release-source.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..5a5b4dc2141ee19a92dd490c56424f0e03c75312 GIT binary patch literal 4635 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 R56^thKLPjbvef`!004n94wL`@ literal 0 HcmV?d00001 diff --git a/website/download/source/Oraset-Re+4.0.1-Beta(..26_.6_12)-source.tar.gz b/website/download/source/Oraset-Re+4.0.1-Beta(..26_.6_12)-source.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..c8dda98887e319dcfd8fda78a0433313af7159c0 GIT binary patch literal 5657 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 literal 0 HcmV?d00001 diff --git a/website/download/source/Oraset-Re+4.0.1-BetaN(+AU)-source/Makefile b/website/download/source/Oraset-Re+4.0.1-BetaN(+AU)-source/Makefile new file mode 100644 index 0000000..a80281b --- /dev/null +++ b/website/download/source/Oraset-Re+4.0.1-BetaN(+AU)-source/Makefile @@ -0,0 +1,25 @@ +CC = gcc +CFLAGS = -Wall -Wextra -O2 -std=c11 +BINDIR = bin + +TARGET = $(BINDIR)/oraset + +SRCS = src/main.c + +all: $(TARGET) + +$(TARGET): $(SRCS) + @mkdir -p $(BINDIR) + $(CC) $(CFLAGS) -o $(TARGET) $(SRCS) + +clean: + rm -f $(TARGET) + +pkg: all + rm -rf pkg-root + mkdir -p pkg-root/usr/local/bin + cp bin/oraset pkg-root/usr/local/bin/oraset + chmod +x pkg-root/usr/local/bin/oraset + pkgbuild --root pkg-root --identifier com.oraset.lang --version 4.0.0 --install-location / Oraset-Re+4.0.0-Release.pkg + +.PHONY: all clean pkg \ No newline at end of file diff --git a/website/download/source/Oraset-Re+4.0.1-BetaN(+AU)-source/src/main.c b/website/download/source/Oraset-Re+4.0.1-BetaN(+AU)-source/src/main.c new file mode 100644 index 0000000..d3ee547 --- /dev/null +++ b/website/download/source/Oraset-Re+4.0.1-BetaN(+AU)-source/src/main.c @@ -0,0 +1,1214 @@ +#include +#include +#include +#include +#include +#include +#include + +#ifdef _WIN32 + #include + #include + #define OS_WINDOWS 1 +#else + #include + #include + #include + #define OS_WINDOWS 0 +#endif + +#define VERSION "4.0.1-BetaN(+AU)" +#define MAX_TOKENS 4096 +#define MAX_VARS 256 +#define MAX_LINE 4096 +#define MAX_STRING 1024 + +typedef enum { + TOKEN_EOF, + TOKEN_IDENTIFIER, + TOKEN_STRING, + TOKEN_NUMBER, + TOKEN_PRINT, + TOKEN_VAR, + TOKEN_IF, + TOKEN_WHILE, + TOKEN_FOR, + TOKEN_FUNCTION, + TOKEN_RETURN, + TOKEN_ELSE, + TOKEN_LPAREN, + TOKEN_RPAREN, + TOKEN_LBRACE, + TOKEN_RBRACE, + TOKEN_COMMA, + TOKEN_SEMICOLON, + TOKEN_ASSIGN, + TOKEN_PLUS, + TOKEN_MINUS, + TOKEN_MULTIPLY, + TOKEN_DIVIDE, + TOKEN_EQUAL, + TOKEN_NOT_EQUAL, + TOKEN_GREATER, + TOKEN_LESS, + TOKEN_AND, + TOKEN_OR, + TOKEN_NOT, + TOKEN_GREATER_EQUAL, + TOKEN_LESS_EQUAL, + TOKEN_MODULO +} TokenType; + +typedef struct { + TokenType type; + char value[MAX_STRING]; + int line; +} Token; + +typedef struct { + char name[64]; + double num_value; + char str_value[MAX_STRING]; + int is_string; +} Variable; + +Token tokens[MAX_TOKENS]; +int token_count = 0; +int current_token = 0; +Variable vars[MAX_VARS]; +int var_count = 0; +int print_newline = 1; +int current_line = 1; +int in_for_loop_update = 0; + +static const struct { + const char* name; + TokenType type; +} keywords[] = { + {"print", TOKEN_PRINT}, + {"var", TOKEN_VAR}, + {"if", TOKEN_IF}, + {"else", TOKEN_ELSE}, + {"while", TOKEN_WHILE}, + {"for", TOKEN_FOR}, + {"function", TOKEN_FUNCTION}, + {"return", TOKEN_RETURN}, + {NULL, TOKEN_EOF} +}; + +void error(const char* msg, ...) { + va_list args; + va_start(args, msg); + fprintf(stderr, "[Error at line %d] ", current_line); + vfprintf(stderr, msg, args); + fprintf(stderr, "\n"); + va_end(args); + exit(1); +} + +static void skip_whitespace_and_comments(const char** p) { + while (**p) { + if (**p == ' ' || **p == '\t' || **p == '\r') { + (*p)++; + } else if (**p == '\n') { + (*p)++; + current_line++; + } else if (**p == '#') { + while (**p && **p != '\n') (*p)++; + } else { + break; + } + } +} + +static void add_token(TokenType type, const char* value) { + if (token_count >= MAX_TOKENS) { + error("Too many tokens (max %d)", MAX_TOKENS); + } + tokens[token_count].type = type; + strncpy(tokens[token_count].value, value, MAX_STRING - 1); + tokens[token_count].value[MAX_STRING - 1] = '\0'; + tokens[token_count].line = current_line; + token_count++; +} + +void tokenize(const char* source) { + token_count = 0; + current_line = 1; + const char* p = source; + + while (1) { + skip_whitespace_and_comments(&p); + if (!*p) break; + + // String literal + if (*p == '"') { + p++; + char buf[MAX_STRING]; + int i = 0; + while (*p && *p != '"' && i < MAX_STRING - 1) { + if (*p == '\\' && *(p+1)) { + p++; + switch (*p) { + case 'n': buf[i++] = '\n'; break; + case 't': buf[i++] = '\t'; break; + case 'r': buf[i++] = '\r'; break; + case '\\': buf[i++] = '\\'; break; + case '"': buf[i++] = '"'; break; + default: buf[i++] = *p; break; + } + } else { + buf[i++] = *p; + } + p++; + } + buf[i] = '\0'; + if (*p != '"') error("Unterminated string literal"); + p++; + add_token(TOKEN_STRING, buf); + continue; + } + + // Number + if (isdigit(*p) || (*p == '.' && isdigit(*(p+1)))) { + char buf[64]; + int i = 0; + int dot_count = 0; + while ((isdigit(*p) || (*p == '.' && dot_count < 1)) && i < 63) { + if (*p == '.') dot_count++; + buf[i++] = *p++; + } + buf[i] = '\0'; + add_token(TOKEN_NUMBER, buf); + continue; + } + + // Identifier or keyword + if (isalpha(*p) || *p == '_') { + char buf[64]; + int i = 0; + while ((isalnum(*p) || *p == '_') && i < 63) { + buf[i++] = *p++; + } + buf[i] = '\0'; + + int j; + for (j = 0; keywords[j].name; j++) { + if (strcmp(buf, keywords[j].name) == 0) { + add_token(keywords[j].type, buf); + break; + } + } + if (!keywords[j].name) { + add_token(TOKEN_IDENTIFIER, buf); + } + continue; + } + + // Two-character operators + if (*p == '=' && *(p+1) == '=') { add_token(TOKEN_EQUAL, "=="); p += 2; continue; } + if (*p == '!' && *(p+1) == '=') { add_token(TOKEN_NOT_EQUAL, "!="); p += 2; continue; } + if (*p == '&' && *(p+1) == '&') { add_token(TOKEN_AND, "&&"); p += 2; continue; } + if (*p == '|' && *(p+1) == '|') { add_token(TOKEN_OR, "||"); p += 2; continue; } + if (*p == '>' && *(p+1) == '=') { add_token(TOKEN_GREATER_EQUAL, ">="); p += 2; continue; } + if (*p == '<' && *(p+1) == '=') { add_token(TOKEN_LESS_EQUAL, "<="); p += 2; continue; } + + // Single-character tokens + switch (*p) { + case '(': add_token(TOKEN_LPAREN, "("); break; + case ')': add_token(TOKEN_RPAREN, ")"); break; + case '{': add_token(TOKEN_LBRACE, "{"); break; + case '}': add_token(TOKEN_RBRACE, "}"); break; + case ',': add_token(TOKEN_COMMA, ","); break; + case ';': add_token(TOKEN_SEMICOLON, ";"); break; + case '=': add_token(TOKEN_ASSIGN, "="); break; + case '>': add_token(TOKEN_GREATER, ">"); break; + case '<': add_token(TOKEN_LESS, "<"); break; + case '+': add_token(TOKEN_PLUS, "+"); break; + case '-': add_token(TOKEN_MINUS, "-"); break; + case '*': add_token(TOKEN_MULTIPLY, "*"); break; + case '/': add_token(TOKEN_DIVIDE, "/"); break; + case '%': add_token(TOKEN_MODULO, "%"); break; + case '!': add_token(TOKEN_NOT, "!"); break; + default: error("Unknown character: '%c'", *p); + } + p++; + } + + add_token(TOKEN_EOF, ""); +} + +Token peek() { return tokens[current_token]; } +Token advance() { return tokens[current_token++]; } + +int match(TokenType type) { + if (peek().type == type) { + if (tokens[current_token].line > 0) { + current_line = tokens[current_token].line; + } + advance(); + return 1; + } + return 0; +} + +void consume(TokenType type, const char* msg) { + if (!match(type)) { + error("%s (got '%s')", msg, peek().value); + } +} + +// Forward declarations +double evaluate(); +void execute_statement(); +int update_oraset(const char* target_version); + +// Expression parsing +double parse_primary(); + +double parse_call(const char* func_name) { + consume(TOKEN_LPAREN, "Expected '(' after function name"); + + if (strcmp(func_name, "abs") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return fabs(val); + } else if (strcmp(func_name, "sqrt") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return sqrt(val); + } else if (strcmp(func_name, "sin") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return sin(val); + } else if (strcmp(func_name, "cos") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return cos(val); + } else if (strcmp(func_name, "rand") == 0) { + consume(TOKEN_RPAREN, "Expected ')'"); + return (double)rand() / RAND_MAX; + } else if (strcmp(func_name, "len") == 0) { + consume(TOKEN_STRING, "Expected string argument"); + const char* str = tokens[current_token - 1].value; + consume(TOKEN_RPAREN, "Expected ')'"); + return strlen(str); + } else if (strcmp(func_name, "num") == 0) { + consume(TOKEN_STRING, "Expected string argument"); + const char* str = tokens[current_token - 1].value; + consume(TOKEN_RPAREN, "Expected ')'"); + double val = atof(str); + return val; + } else if (strcmp(func_name, "str") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + char buf[32]; + sprintf(buf, "%g", val); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].str_value, buf, MAX_STRING - 1); + vars[i].str_value[MAX_STRING - 1] = '\0'; + vars[i].is_string = 1; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].str_value, buf, MAX_STRING - 1); + vars[var_count].str_value[MAX_STRING - 1] = '\0'; + vars[var_count].is_string = 1; + var_count++; + return 0; + } else { + error("Undefined function: %s", func_name); + } + return 0; +} + +double parse_primary() { + if (match(TOKEN_NUMBER)) { + return atof(tokens[current_token - 1].value); + } + if (match(TOKEN_STRING)) { + error("Cannot use string in expression"); + } + if (match(TOKEN_IDENTIFIER)) { + const char* name = tokens[current_token - 1].value; + if (peek().type == TOKEN_LPAREN) { + return parse_call(name); + } + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + return vars[i].num_value; + } + } + error("Undefined variable: %s", name); + } + if (match(TOKEN_LPAREN)) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return val; + } + error("Expected expression (got '%s')", peek().value); + return 0; +} + +double parse_unary() { + if (match(TOKEN_NOT)) { + return parse_unary() == 0 ? 1 : 0; + } + if (match(TOKEN_MINUS)) { + return -parse_unary(); + } + return parse_primary(); +} + +double parse_factor() { + double left = parse_unary(); + while (match(TOKEN_MULTIPLY) || match(TOKEN_DIVIDE) || match(TOKEN_MODULO)) { + TokenType op = tokens[current_token - 1].type; + double right = parse_unary(); + if (op == TOKEN_MULTIPLY) left *= right; + else if (op == TOKEN_DIVIDE) { + if (right == 0) error("Division by zero"); + left /= right; + } else { + if (right == 0) error("Modulo by zero"); + left = fmod(left, right); + } + } + return left; +} + +double parse_term() { + double left = parse_factor(); + while (match(TOKEN_PLUS) || match(TOKEN_MINUS)) { + TokenType op = tokens[current_token - 1].type; + double right = parse_factor(); + if (op == TOKEN_PLUS) left += right; + else left -= right; + } + return left; +} + +double parse_comparison() { + double left = parse_term(); + while (1) { + if (match(TOKEN_EQUAL)) { + double right = parse_term(); + left = (left == right) ? 1 : 0; + } else if (match(TOKEN_NOT_EQUAL)) { + double right = parse_term(); + left = (left != right) ? 1 : 0; + } else if (match(TOKEN_GREATER)) { + double right = parse_term(); + left = (left > right) ? 1 : 0; + } else if (match(TOKEN_LESS)) { + double right = parse_term(); + left = (left < right) ? 1 : 0; + } else if (match(TOKEN_GREATER_EQUAL)) { + double right = parse_term(); + left = (left >= right) ? 1 : 0; + } else if (match(TOKEN_LESS_EQUAL)) { + double right = parse_term(); + left = (left <= right) ? 1 : 0; + } else { + break; + } + } + return left; +} + +double parse_logic_and() { + double left = parse_comparison(); + while (match(TOKEN_AND)) { + double right = parse_comparison(); + left = (left != 0 && right != 0) ? 1 : 0; + } + return left; +} + +double parse_logic_or() { + double left = parse_logic_and(); + while (match(TOKEN_OR)) { + double right = parse_logic_and(); + left = (left != 0 || right != 0) ? 1 : 0; + } + return left; +} + +double evaluate() { + return parse_logic_or(); +} + +void execute_input() { + consume(TOKEN_LPAREN, "Expected '(' after input"); + const char* prompt = ""; + + if (match(TOKEN_STRING)) { + prompt = tokens[current_token - 1].value; + } + consume(TOKEN_RPAREN, "Expected ')'"); + + printf("%s", prompt); + fflush(stdout); + + char input[MAX_STRING]; + if (fgets(input, MAX_STRING, stdin) == NULL) { + error("Failed to read input"); + } + + input[strcspn(input, "\n")] = '\0'; + + strncpy(vars[var_count].name, "__input_result", 63); + strncpy(vars[var_count].str_value, input, MAX_STRING - 1); + vars[var_count].str_value[MAX_STRING - 1] = '\0'; + vars[var_count].is_string = 1; + var_count++; +} + +void execute_str() { + consume(TOKEN_LPAREN, "Expected '(' after str"); + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + + char buf[MAX_STRING]; + sprintf(buf, "%g", val); + + strncpy(vars[var_count].name, "__str_result", 63); + strncpy(vars[var_count].str_value, buf, MAX_STRING - 1); + vars[var_count].str_value[MAX_STRING - 1] = '\0'; + vars[var_count].is_string = 1; + var_count++; +} + +// Execute print statement +void execute_print() { + consume(TOKEN_LPAREN, "Expected '(' after print"); + int first = 1; + int newline = print_newline; + + while (!match(TOKEN_RPAREN)) { + if (!first) consume(TOKEN_COMMA, "Expected ',' between arguments"); + + if (match(TOKEN_STRING)) { + const char* str = tokens[current_token - 1].value; + if (strcmp(str, "nel") == 0) { + newline = 0; + first = 0; + continue; + } + if (!first) printf(" "); + printf("%s", str); + } else if (match(TOKEN_NUMBER)) { + if (!first) printf(" "); + printf("%s", tokens[current_token - 1].value); + } else if (match(TOKEN_IDENTIFIER)) { + const char* name = tokens[current_token - 1].value; + if (peek().type == TOKEN_PLUS || peek().type == TOKEN_MINUS || + peek().type == TOKEN_MULTIPLY || peek().type == TOKEN_DIVIDE || + peek().type == TOKEN_MODULO) { + double val = atof(tokens[current_token - 1].value); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + if (!vars[i].is_string) { + val = vars[i].num_value; + } + break; + } + } + while (peek().type == TOKEN_PLUS || peek().type == TOKEN_MINUS || + peek().type == TOKEN_MULTIPLY || peek().type == TOKEN_DIVIDE || + peek().type == TOKEN_MODULO) { + TokenType op = peek().type; + advance(); + double right = evaluate(); + if (op == TOKEN_PLUS) val += right; + else if (op == TOKEN_MINUS) val -= right; + else if (op == TOKEN_MULTIPLY) val *= right; + else if (op == TOKEN_DIVIDE) val /= right; + else if (op == TOKEN_MODULO) val = fmod(val, right); + } + if (!first) printf(" "); + printf("%g", val); + } else { + int found = 0; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + if (!first) printf(" "); + if (vars[i].is_string) { + printf("%s", vars[i].str_value); + } else { + printf("%g", vars[i].num_value); + } + found = 1; + break; + } + } + if (!found) error("Undefined variable: %s", name); + } + } else { + error("Unexpected token in print: '%s'", peek().value); + } + first = 0; + } + + if (newline) { + printf("\n"); + } + fflush(stdout); +} + +// Execute var declaration +void execute_var() { + consume(TOKEN_IDENTIFIER, "Expected variable name"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_ASSIGN, "Expected '=' after variable name"); + + if (var_count >= MAX_VARS) { + error("Too many variables (max %d)", MAX_VARS); + } + + Variable* v = &vars[var_count]; + strncpy(v->name, name, 63); + v->name[63] = '\0'; + + if (match(TOKEN_STRING)) { + strncpy(v->str_value, tokens[current_token - 1].value, MAX_STRING - 1); + v->str_value[MAX_STRING - 1] = '\0'; + v->is_string = 1; + v->num_value = 0; + } else { + v->num_value = evaluate(); + v->is_string = 0; + v->str_value[0] = '\0'; + } + var_count++; + consume(TOKEN_SEMICOLON, "Expected ';' after variable declaration"); +} + +// Skip block (for else branch) +static void skip_block() { + int depth = 1; + while (depth > 0 && peek().type != TOKEN_EOF) { + Token t = advance(); + if (t.type == TOKEN_LBRACE) depth++; + if (t.type == TOKEN_RBRACE) depth--; + } +} + +// Execute if statement +void execute_if() { + consume(TOKEN_LPAREN, "Expected '(' after 'if'"); + double cond = evaluate(); + consume(TOKEN_RPAREN, "Expected ')' after condition"); + consume(TOKEN_LBRACE, "Expected '{' after if condition"); + + if (cond != 0) { + while (!match(TOKEN_RBRACE) && peek().type != TOKEN_EOF) { + execute_statement(); + } + } else { + skip_block(); + } + + if (match(TOKEN_ELSE)) { + consume(TOKEN_LBRACE, "Expected '{' after 'else'"); + if (cond == 0) { + while (!match(TOKEN_RBRACE) && peek().type != TOKEN_EOF) { + execute_statement(); + } + } else { + skip_block(); + } + } +} + +// Execute while statement +void execute_while() { + consume(TOKEN_LPAREN, "Expected '(' after 'while'"); + int cond_start = current_token; + + evaluate(); // Parse once to skip condition + consume(TOKEN_RPAREN, "Expected ')' after condition"); + consume(TOKEN_LBRACE, "Expected '{' after while condition"); + + int body_start = current_token; + skip_block(); // Skip body to find end + int body_end = current_token; + + while (1) { + current_token = cond_start; + current_line = tokens[cond_start].line; + double cond = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + consume(TOKEN_LBRACE, "Expected '{'"); + + if (cond == 0) { + current_token = body_end; + break; + } + + current_token = body_start; + while (current_token < body_end - 1 && peek().type != TOKEN_EOF) { + execute_statement(); + } + } +} + +// Execute for statement +void execute_for() { + consume(TOKEN_LPAREN, "Expected '(' after 'for'"); + + int init_start = current_token; + int init_end = current_token; + if (match(TOKEN_VAR)) { + while (peek().type != TOKEN_SEMICOLON && peek().type != TOKEN_EOF) { + advance(); + } + init_end = current_token; + } else if (peek().type == TOKEN_IDENTIFIER && tokens[current_token + 1].type == TOKEN_ASSIGN) { + while (peek().type != TOKEN_SEMICOLON && peek().type != TOKEN_EOF) { + advance(); + } + init_end = current_token; + } else { + init_end = current_token; + } + consume(TOKEN_SEMICOLON, "Expected ';' in for loop"); + + int cond_start = current_token; + int cond_end = current_token; + if (peek().type != TOKEN_SEMICOLON && peek().type != TOKEN_EOF) { + while (peek().type != TOKEN_SEMICOLON && peek().type != TOKEN_EOF) { + advance(); + } + cond_end = current_token; + } else { + cond_end = current_token; + } + consume(TOKEN_SEMICOLON, "Expected ';' in for loop"); + + int update_start = current_token; + int update_end = current_token; + if (peek().type != TOKEN_RPAREN && peek().type != TOKEN_EOF) { + while (peek().type != TOKEN_RPAREN && peek().type != TOKEN_EOF) { + advance(); + } + update_end = current_token; + } else { + update_end = current_token; + } + consume(TOKEN_RPAREN, "Expected ')'"); + consume(TOKEN_LBRACE, "Expected '{'"); + + int body_start = current_token; + skip_block(); + int body_end = current_token; + + if (init_start != init_end) { + current_token = init_start; + while (current_token < init_end) { + execute_statement(); + } + } + + while (1) { + if (cond_start != cond_end) { + current_token = cond_start; + current_line = tokens[cond_start].line; + double cond = evaluate(); + + if (cond == 0) { + current_token = body_end; + break; + } + } else { + break; + } + + current_token = body_start; + while (current_token < body_end - 1 && peek().type != TOKEN_EOF) { + execute_statement(); + } + + if (update_start != update_end) { + in_for_loop_update = 1; + current_token = update_start; + while (current_token < update_end) { + execute_statement(); + } + in_for_loop_update = 0; + } + } +} + +extern int in_for_loop_update; + +// Execute statement +void execute_statement() { + Token t = peek(); + + switch (t.type) { + case TOKEN_PRINT: + advance(); + execute_print(); + consume(TOKEN_SEMICOLON, "Expected ';' after print"); + break; + + case TOKEN_VAR: + advance(); + execute_var(); + break; + + case TOKEN_IF: + advance(); + execute_if(); + break; + + case TOKEN_WHILE: + advance(); + execute_while(); + break; + + case TOKEN_FOR: + advance(); + execute_for(); + break; + + case TOKEN_IDENTIFIER: { + advance(); + if (match(TOKEN_ASSIGN)) { + const char* name = tokens[current_token - 2].value; + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, name) == 0) { + if (match(TOKEN_STRING)) { + strncpy(vars[i].str_value, tokens[current_token - 1].value, MAX_STRING - 1); + vars[i].str_value[MAX_STRING - 1] = '\0'; + vars[i].is_string = 1; + } else { + vars[i].num_value = evaluate(); + vars[i].is_string = 0; + } + if (!in_for_loop_update) { + consume(TOKEN_SEMICOLON, "Expected ';' after assignment"); + } + return; + } + } + error("Undefined variable: %s", name); + } else if (peek().type == TOKEN_LPAREN) { + const char* name = tokens[current_token - 1].value; + if (strcmp(name, "input") == 0) { + execute_input(); + consume(TOKEN_SEMICOLON, "Expected ';' after input"); + return; + } else if (strcmp(name, "str") == 0) { + execute_str(); + consume(TOKEN_SEMICOLON, "Expected ';' after str"); + return; + } + } + error("Unexpected identifier: %s", tokens[current_token - 1].value); + break; + } + + case TOKEN_EOF: + break; + + default: + error("Unexpected token: %s", t.value); + } +} + +// Parse sg<...> config at start of file +void parse_config(const char* source) { + print_newline = 1; + const char* p = source; + + while (*p) { + if (*p == ' ' || *p == '\t' || *p == '\r') { + p++; + continue; + } + if (*p == '\n') break; + if (*p == '#') { + while (*p && *p != '\n') p++; + continue; + } + if (*p == 's' && *(p+1) == 'g' && *(p+2) == '<') { + p += 3; + while (*p && *p != '>') { + if (strncmp(p, "nel", 3) == 0) { + print_newline = 0; + break; + } + p++; + } + break; + } + break; + } +} + +// Strip config line from source +char* strip_config(const char* source) { + const char* p = source; + + while (*p) { + if (*p == ' ' || *p == '\t' || *p == '\r') { + p++; + continue; + } + if (*p == '\n') { + return strdup(source); + } + if (*p == '#') { + while (*p && *p != '\n') p++; + if (*p == '\n') p++; + continue; + } + if (*p == 's' && *(p+1) == 'g' && *(p+2) == '<') { + const char* start = p; + while (*p && *p != '\n') p++; + if (*p == '\n') p++; + + size_t prefix_len = start - source; + size_t suffix_len = strlen(p); + char* result = malloc(prefix_len + suffix_len + 1); + if (!result) error("Out of memory"); + + memcpy(result, source, prefix_len); + memcpy(result + prefix_len, p, suffix_len + 1); + return result; + } + return strdup(source); + } + return strdup(source); +} + +void run(const char* source) { + static int rand_seeded = 0; + if (!rand_seeded) { + srand(time(NULL)); + rand_seeded = 1; + } + + parse_config(source); + char* clean_source = strip_config(source); + tokenize(clean_source); + current_token = 0; + + while (peek().type != TOKEN_EOF) { + execute_statement(); + } + + free(clean_source); +} + +void run_file(const char* path) { + FILE* f = fopen(path, "r"); + if (!f) { + error("Cannot open file: %s", path); + } + + fseek(f, 0, SEEK_END); + long size = ftell(f); + if (size < 0) { + fclose(f); + error("Cannot read file: %s", path); + } + fseek(f, 0, SEEK_SET); + + char* source = malloc(size + 1); + if (!source) { + fclose(f); + error("Out of memory"); + } + + size_t read = fread(source, 1, size, f); + fclose(f); + source[read] = '\0'; + + run(source); + free(source); +} + +// Update functionality +#define VERSION_URL "https://oraset.parlz.com/download/version.txt" +#define DOWNLOAD_BASE "https://oraset.parlz.com/download" + +static char* http_get(const char* url) { +#ifdef _WIN32 + HINTERNET hInternet = InternetOpenA("Oraset", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); + if (!hInternet) return NULL; + + HINTERNET hUrl = InternetOpenUrlA(hInternet, url, NULL, 0, INTERNET_FLAG_RELOAD, 0); + if (!hUrl) { + InternetCloseHandle(hInternet); + return NULL; + } + + char* buffer = malloc(4096); + if (!buffer) { + InternetCloseHandle(hUrl); + InternetCloseHandle(hInternet); + return NULL; + } + + DWORD total_read = 0; + DWORD bytes_read; + char temp[1024]; + + while (InternetReadFile(hUrl, temp, sizeof(temp), &bytes_read) && bytes_read > 0) { + if (total_read + bytes_read >= 4095) { + char* new_buf = realloc(buffer, total_read + bytes_read + 4096); + if (!new_buf) { + free(buffer); + InternetCloseHandle(hUrl); + InternetCloseHandle(hInternet); + return NULL; + } + buffer = new_buf; + } + memcpy(buffer + total_read, temp, bytes_read); + total_read += bytes_read; + } + buffer[total_read] = '\0'; + + InternetCloseHandle(hUrl); + InternetCloseHandle(hInternet); + return buffer; +#else + char cmd[512]; + snprintf(cmd, sizeof(cmd), "curl -s \"%s\" 2>/dev/null", url); + FILE* fp = popen(cmd, "r"); + if (!fp) return NULL; + + char* buffer = malloc(4096); + if (!buffer) { + pclose(fp); + return NULL; + } + + size_t total_read = 0; + size_t bytes_read; + char temp[1024]; + + while ((bytes_read = fread(temp, 1, sizeof(temp), fp)) > 0) { + if (total_read + bytes_read >= 4095) { + char* new_buf = realloc(buffer, total_read + bytes_read + 4096); + if (!new_buf) { + free(buffer); + pclose(fp); + return NULL; + } + buffer = new_buf; + } + memcpy(buffer + total_read, temp, bytes_read); + total_read += bytes_read; + } + buffer[total_read] = '\0'; + pclose(fp); + return buffer; +#endif +} + +static int download_file(const char* url, const char* dest_path) { +#ifdef _WIN32 + HINTERNET hInternet = InternetOpenA("Oraset", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); + if (!hInternet) return -1; + + HINTERNET hUrl = InternetOpenUrlA(hInternet, url, NULL, 0, INTERNET_FLAG_RELOAD, 0); + if (!hUrl) { + InternetCloseHandle(hInternet); + return -1; + } + + FILE* fp = fopen(dest_path, "wb"); + if (!fp) { + InternetCloseHandle(hUrl); + InternetCloseHandle(hInternet); + return -1; + } + + char temp[4096]; + DWORD bytes_read; + + while (InternetReadFile(hUrl, temp, sizeof(temp), &bytes_read) && bytes_read > 0) { + fwrite(temp, 1, bytes_read, fp); + } + + fclose(fp); + InternetCloseHandle(hUrl); + InternetCloseHandle(hInternet); + return 0; +#else + char cmd[1024]; + snprintf(cmd, sizeof(cmd), "curl -L -o \"%s\" \"%s\" 2>/dev/null", dest_path, url); + return system(cmd); +#endif +} + +static void get_system_info(char* os, char* ext) { +#ifdef _WIN32 + strcpy(os, "windows"); + strcpy(ext, ".exe"); +#elif defined(__APPLE__) + strcpy(os, "macos"); + strcpy(ext, ".pkg"); +#elif defined(__linux__) + strcpy(os, "linux"); + strcpy(ext, ".tar.gz"); +#else + strcpy(os, "unknown"); + strcpy(ext, ".tar.gz"); +#endif +} + +static int compare_versions(const char* v1, const char* v2) { + int major1, minor1, patch1, major2, minor2, patch2; + char suffix1[64] = "", suffix2[64] = ""; + + sscanf(v1, "%d.%d.%d-%63s", &major1, &minor1, &patch1, suffix1); + sscanf(v2, "%d.%d.%d-%63s", &major2, &minor2, &patch2, suffix2); + + if (major1 != major2) return major1 - major2; + if (minor1 != minor2) return minor1 - minor2; + if (patch1 != patch2) return patch1 - patch2; + + // Release > Beta > Alpha + int s1 = (strstr(suffix1, "Release") || strlen(suffix1) == 0) ? 3 : + (strstr(suffix1, "Beta") ? 2 : 1); + int s2 = (strstr(suffix2, "Release") || strlen(suffix2) == 0) ? 3 : + (strstr(suffix2, "Beta") ? 2 : 1); + return s1 - s2; +} + +static void trim_newline(char* str) { + int len = strlen(str); + while (len > 0 && (str[len-1] == '\n' || str[len-1] == '\r')) { + str[--len] = '\0'; + } +} + +int update_oraset(const char* target_version) { + printf("Checking for updates...\n"); + + // Get latest version + char* version_info = http_get(VERSION_URL); + if (!version_info) { + fprintf(stderr, "Error: Cannot fetch version information.\n"); + fprintf(stderr, "Please check your internet connection.\n"); + return 1; + } + + trim_newline(version_info); + char latest_version[128]; + strncpy(latest_version, version_info, sizeof(latest_version) - 1); + free(version_info); + + printf("Current version: %s\n", VERSION); + printf("Latest version: %s\n", latest_version); + + const char* version_to_install = target_version ? target_version : latest_version; + + if (target_version) { + printf("Target version specified: %s\n", version_to_install); + } + + // Get system info + char os[32], ext[16]; + get_system_info(os, ext); + printf("Detected OS: %s\n", os); + + // Build download URL + char download_url[512]; + char filename[128]; + + if (strcmp(os, "windows") == 0) { + snprintf(filename, sizeof(filename), "Oraset-Re+%s%s", version_to_install, ext); + snprintf(download_url, sizeof(download_url), "%s/exe/%s", DOWNLOAD_BASE, filename); + } else if (strcmp(os, "macos") == 0) { + snprintf(filename, sizeof(filename), "Oraset-Re+%s%s", version_to_install, ext); + snprintf(download_url, sizeof(download_url), "%s/pkg/%s", DOWNLOAD_BASE, filename); + } else { + snprintf(filename, sizeof(filename), "Oraset-Re+%s%s", version_to_install, ext); + snprintf(download_url, sizeof(download_url), "%s/deb/%s", DOWNLOAD_BASE, filename); + } + + printf("Downloading: %s\n", download_url); + + // Download to temp directory + char temp_path[512]; +#ifdef _WIN32 + char temp_dir[MAX_PATH]; + GetTempPathA(MAX_PATH, temp_dir); + snprintf(temp_path, sizeof(temp_path), "%s%s", temp_dir, filename); +#else + snprintf(temp_path, sizeof(temp_path), "/tmp/%s", filename); +#endif + + if (download_file(download_url, temp_path) != 0) { + fprintf(stderr, "Error: Failed to download update.\n"); + return 1; + } + + printf("Downloaded to: %s\n", temp_path); + + // Install based on OS +#ifdef _WIN32 + printf("Please run the installer: %s\n", temp_path); +#else + if (strcmp(os, "macos") == 0) { + printf("Installing package...\n"); + char cmd[1024]; + snprintf(cmd, sizeof(cmd), "sudo installer -pkg \"%s\" -target /", temp_path); + system(cmd); + } else if (strcmp(os, "linux") == 0) { + printf("Extracting...\n"); + char cmd[1024]; + snprintf(cmd, sizeof(cmd), "cd /tmp && tar -xzf \"%s\" && sudo cp oraset /usr/local/bin/", temp_path); + system(cmd); + } + printf("Installation complete!\n"); +#endif + + return 0; +} + +int main(int argc, char** argv) { + if (argc == 1) { + printf("Oraset Re+%s\n", VERSION); + printf("Usage: oraset [options] + + \ No newline at end of file diff --git a/website/releases.php b/website/releases.php new file mode 100644 index 0000000..f6ac045 --- /dev/null +++ b/website/releases.php @@ -0,0 +1,256 @@ + + + + + + 历史版本 - Oraset + + + + + + + + \ No newline at end of file
+ + +
+

历史版本

+ +
    +
  • +
    B-5
    +
    2026年7月22日
    +
    + 全新升级版本。
    +
      +
    • 新增数组类型支持
    • +
    • 新增自定义函数定义
    • +
    • 新增复合赋值运算符:+=, -=, *=, /=, %=
    • +
    • 新增自增自减运算符:++, --
    • +
    • 新增 REPL 交互模式(oraset -i)
    • +
    • 新增更多数学函数:tan(), pow(), log(), floor(), ceil(), round()
    • +
    • 新增数组函数:array(), arrlen()
    • +
    • 新增 int() 和 float() 类型转换函数
    • +
    • 支持单引号字符串
    • +
    • 支持多行注释(/* */)
    • +
    • 支持行注释(//)
    • +
    • rand() 函数支持参数(指定最大值)
    • +
    • 优化变量查找算法
    • +
    • 修复多处 bug
    • +
    +
    +
    + 下载: + +

    💡 或者使用:oraset -u 更新到最新版本

    +
    +
  • +
  • +
    Re+4.0.1-Release(adn+1.0.100+fix)
    +
    2026年6月18日
    +
    + ADN 包管理修复版本。
    +
      +
    • 移除外部 Lua 依赖,使用 Oraset 解释器执行 .orp 扩展包
    • +
    • 修复词法分析器字符识别问题
    • +
    • 修复函数调用括号处理错误
    • +
    • 优化语法分析器逻辑
    • +
    • 支持 .orp 包格式(使用 Oraset 语言编写扩展代码)
    • +
    +
    +
    + 下载: + +

    💡 或者使用:oraset -u 更新到最新版本

    +
    +
  • +
  • +
    Re+4.0.1-Release(adn+1.0.0)
    +
    2026年6月13日
    +
    + ADN 包管理系统版本。
    +
      +
    • 新增 ADN 包管理系统(.orp 格式)
    • +
    • 支持包安装:adn(install package) 或 adn(i package)
    • +
    • 支持包更新:adn(update package) 或 adn(u package)
    • +
    • 支持包移除:adn(remove package) 或 adn(r package)
    • +
    • 支持包列表:adn(list) 或 adn(ls)
    • +
    • 支持仓库管理:adm(mirror url) 添加镜像仓库
    • +
    • 支持仓库列表:adm(list) 或 adm(ls)
    • +
    • 默认仓库:https://oraset.parlz.com/download/adn/
    • +
    • 自动创建 .adn 目录管理包和仓库信息
    • +
    +
    +
    + 下载: + +

    💡 如果您已安装 Oraset-Re+4.0.1-BetaN(+AU) 或更高版本,可使用 oraset -u Oraset-Re+4.0.1-Release(adn+1.0.0) 安装此版本

    +
    +
  • +
  • +
    Re+4.0.1-BetaN(+AU)
    +
    2026年6月12日
    +
    + 新增自动更新功能版本。
    +
      +
    • 添加 oraset -u 自动更新命令
    • +
    • 支持指定版本更新:oraset -u Oraset-Re+4.0.0-Beta
    • +
    • 自动识别操作系统(Windows/macOS/Linux)
    • +
    • 从服务器获取最新版本信息
    • +
    • 自动下载并安装对应平台的安装包
    • +
    +
    +
    + 下载: + +

    💡 或者使用:oraset -u 更新到最新版本

    +
    +
  • + +
  • +
    Re+4.0.1-Beta(..26:.6:12)
    +
    2026年6月12日
    +
    + 新增实用功能版本。
    +
      +
    • 添加数学函数:abs(), sqrt(), sin(), cos(), rand()
    • +
    • 添加字符串函数:len(), num(), str()
    • +
    • 添加输入函数:input()
    • +
    • 添加 for 循环语法
    • +
    • 添加比较运算符:>=, <=
    • +
    • 添加取模运算符:%
    • +
    • 优化代码执行性能
    • +
    +
    +
    + 下载: + +

    💡 如果您已安装 Oraset-Re+4.0.1-BetaN(+AU) 或更高版本,可使用 oraset -u Oraset-Re+4.0.1-Beta(..26:.6:12) 安装此版本

    +
    +
  • + +
  • +
    Re+4.0.0-Release
    +
    2026年6月12日
    +
    + 首个正式 Release 版本。
    +
      +
    • 修复 while 循环逻辑错误
    • +
    • 修复 if 语句 else 分支处理
    • +
    • 添加字符串转义支持(\n, \t, \r, \")
    • +
    • 添加逻辑运算符(&&, ||, !)
    • +
    • 内存优化,减少动态分配
    • +
    • 性能优化,支持编译优化
    • +
    +
    +
    + 下载: + +

    💡 如果您已安装 Oraset-Re+4.0.1-BetaN(+AU) 或更高版本,可使用 oraset -u Oraset-Re+4.0.0-Release 安装此版本

    +
    +
  • + +
  • +
    Re+4.0.0-Beta
    +
    2026年6月11日
    +
    + 首个公开 Beta 测试版本。
    +
      +
    • 变量声明和赋值
    • +
    • 表达式计算(算术运算、比较运算)
    • +
    • 条件语句(if/else)
    • +
    • 循环语句(while)
    • +
    • print 函数(支持 "nel" 参数控制换行)
    • +
    • 文件级配置(sg 语法)
    • +
    • 跨平台支持(Windows、macOS、Linux)
    • +
    +
    +
    + 下载: + +

    💡 如果您已安装 Oraset-Re+4.0.1-BetaN(+AU) 或更高版本,可使用 oraset -u Oraset-Re+4.0.0-Beta 安装此版本

    +
    +
  • +
+ +
+

Oraset Project © 2026

+
+