From 465b6dee5a9b7649b4eea8b03479716c8fe1035c Mon Sep 17 00:00:00 2001 From: Ajani Bilby <11359344+AjaniBilby@users.noreply.github.com> Date: Mon, 18 Sep 2023 15:25:00 +1000 Subject: [PATCH] ~Basic reassignment --- source/bnf/syntax.bnf | 3 +- source/bnf/syntax.d.ts | 22 +++++++++++++-- source/bnf/syntax.js | 5 +++- source/compiler/codegen/context.ts | 44 +++++++++++++++++++++++++----- source/compiler/codegen/scope.ts | 4 +++ 5 files changed, 67 insertions(+), 11 deletions(-) diff --git a/source/bnf/syntax.bnf b/source/bnf/syntax.bnf index a5b216d..5a914e6 100644 --- a/source/bnf/syntax.bnf +++ b/source/bnf/syntax.bnf @@ -58,6 +58,7 @@ access ::= name ( %w* accessor )* ; access_comp ::= %"#[]"; declare ::= %( "let" w* ) name %w* (%":" %w* access %w*)? %("=" w*) expr %(w* ";") ; +assign ::= name %w* %("=" w*) expr %(w* ";") ; @@ -69,7 +70,7 @@ function ::= func_head %w* ( func_body | ";" ) ; func_args ::= ( func_arg %w* ( %( "," w* ) func_arg )* )? ; func_arg ::= ...name %( w* ":" w* ) access ; func_body ::= %( "{" w* ) ( func_stmt %w* )* %( w* "}" w* ";"? ) ; - func_stmt ::= declare | statement | return ; + func_stmt ::= declare | assign | statement | return ; func_call ::= access func_call_body; func_call_body ::= %( w* "(" w* ) ( expr %w* ( %( "," w* ) expr %w* )* )? %( ")" w* ) ; diff --git a/source/bnf/syntax.d.ts b/source/bnf/syntax.d.ts index 4ea2828..d871022 100644 --- a/source/bnf/syntax.d.ts +++ b/source/bnf/syntax.d.ts @@ -1,4 +1,4 @@ -import type * as _Shared from './shared.js'; +import type _Shared from './shared.js'; export type _Literal = { type: "literal", value: string, start: number, end: number, count: number, ref: _Shared.ReferenceRange }; export type Term_Program = { type: 'program', @@ -496,6 +496,24 @@ export declare function Parse_Declare (i: string, refMapping?: boolean): _Shared isPartial: boolean } +export type Term_Assign = { + type: 'assign', + start: number, + end: number, + count: number, + ref: _Shared.ReferenceRange, + value: [ + Term_Name, + Term_Expr + ] +} +export declare function Parse_Assign (i: string, refMapping?: boolean): _Shared.ParseError | { + root: _Shared.SyntaxNode & Term_Assign, + reachBytes: number, + reach: null | _Shared.Reference, + isPartial: boolean +} + export type Term_Function = { type: 'function', start: number, @@ -620,7 +638,7 @@ export type Term_Func_stmt = { count: number, ref: _Shared.ReferenceRange, value: [ - (Term_Declare | Term_Statement | Term_Return) + (Term_Declare | Term_Assign | Term_Statement | Term_Return) ] } export declare function Parse_Func_stmt (i: string, refMapping?: boolean): _Shared.ParseError | { diff --git a/source/bnf/syntax.js b/source/bnf/syntax.js index 5f82e0f..a7be94f 100644 --- a/source/bnf/syntax.js +++ b/source/bnf/syntax.js @@ -1,5 +1,5 @@ import * as _Shared from "./shared.js"; -let _rawWasm = _Shared.DecodeBase64("AGFzbQEAAAABIQZgAAF/YAF/AX9gA39/fwBgA39/fwF/YAF/AGACf38BfwMxMAABAgMEBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEAQEBCgYgBn8AQcQDC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAsHgQQvBm1lbW9yeQIABWlucHV0AwAFcmVhY2gDBQtpbnB1dExlbmd0aAMCBV9pbml0AAAHcHJvZ3JhbQAGCHN0bXRfdG9wAAcBdwAIAm5sAAkFZGlnaXQACghkaWdpdF9uegALBmxldHRlcgAMB2NvbW1lbnQADQ5jb21tZW50X3NpbmdsZQAODWNvbW1lbnRfbXVsdGkADwhjb25zdGFudAAQBnN0cmluZwARC3N0cmluZ190ZXh0ABIHYm9vbGVhbgATBHZvaWQAFAdpbnRlZ2VyABUJaW50ZWdlcl91ABYEemVybwAXBWZsb2F0ABgEbmFtZQAZBmFjY2VzcwAaCGFjY2Vzc29yABsNYWNjZXNzX3N0YXRpYwAcDmFjY2Vzc19keW5hbWljAB0LYWNjZXNzX2NvbXAAHgdkZWNsYXJlAB8IZnVuY3Rpb24AIAlmdW5jX2hlYWQAIQlmdW5jX2FyZ3MAIghmdW5jX2FyZwAjCWZ1bmNfYm9keQAkCWZ1bmNfc3RtdAAlCWZ1bmNfY2FsbAAmDmZ1bmNfY2FsbF9ib2R5ACcGcmV0dXJuACgEZXhwcgApC2V4cHJfcHJlZml4ACoKZXhwcl9pbmZpeAArCGV4cHJfYXJnACwIZXhwcl92YWwALQ1leHByX2JyYWNrZXRzAC4Jc3RhdGVtZW50AC8KtJ8BMBoAQQAkBEEAJAUjAkHEA2okASMBEAEkAyMDCwoAIABBA2pBfHELIwEBfwNAIAAgA2ogASADai0AADoAACADQQFqIgMgAkgNAAsLQQEBfyAAQcQDaiEDQQAhAANAAkAgACADai0AACAAIAFqLQAARw0AIABBAWoiACACTg0AIwEgACADakoNAQsLIAALDgAgACMFTgRAIAAkBQsLWAEDfyABIQRBASECA0AgACgCAAR/IAIgACgCEGohAiAAQRRqBSABIABBFGogACgCECIDEAIgASADaiEBIAAgA0EUamoQAQshACACQQFrIgINAAsgASAEawuEAwEHfyMDIgIjBDYCCCACQRRqJAMjAyMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJAMCQEEAIQBBAA0AIwMiAyMENgIIIANBFGokAwNAIwMiASMENgIIIAFBFGokAwJAEAciAEEBRg0AIwNBACEFIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgBUEBaiEFDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAU2AhAkA0EAIQBBAA0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBATYCEAsgAEEBRkUEQCAEQQFqIQQMAQsLIANBEjYCACADQQY2AgQgAyMENgIMIAMgBDYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBHjYCACACQQc2AgQgAiMENgIMIAJBATYCEAsgAAtWAQJ/IwMiACMENgIIIABBFGokAwJAECAiAUEBRg0ACyABQQFGBEBBASEBIAAoAggkBCAAJAMFIABBJTYCACAAQQg2AgQgACMENgIMIABBATYCEAsgAQvHAgEEfyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEEtQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBLUEBEAIgAUEVahABJAMLAkAgAEUNAEEAIQAjAyIBIwQ2AggjBEEuQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBLkEBEAIgAUEVahABJAMLIABFDQAQCSIARQ0AEA0iAEUNAAsCQCAAQQFGDQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEvNgIAIAJBATYCBCACIwQ2AgwgAkEBNgIQCyAAC7MCAQR/IwMiAiMENgIIIAJBFGokAyMDIgEjBDYCCCMEQTBBAhADIQMgAyMEaiQEIwQQBAJAIANBAkcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAUEUakEwQQIQAiABQRZqEAEkAwsCQCAARQ0AQQAhACMDIgEjBDYCCCMEQTJBARADIQMgAyMEaiQEIwQQBAJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakEyQQEQAiABQRVqEAEkAwsgAEUNAAsCQCAADQALIAAEQEEBIQAgAigCCCQEIAIkAwUgAkEzNgIAIAJBAjYCBCACIwQ2AgwgAkEBNgIQCyAAC98BAQV/IwMiASMENgIIIAFBFGokAyMDIgAjBDYCCAJAIwQjAk4NACMEQcQDai0AACIEQTBJIARBOUtyDQAgAkEBaiECIwRBAWokBAsjBBAEAkAgAkEATARAQQEhAyAAKAIIJAQgACQDDAELIABBADYCACAAQQc2AgQgACMENgIMIAAgAjYCECAAQRRqIAAoAghBxANqIAIQAiAAIAJBFGpqEAEkAwsCQCADDQALIAMEQEEBIQMgASgCCCQEIAEkAwUgAUE2NgIAIAFBBTYCBCABIwQ2AgwgAUEBNgIQCyADC98BAQV/IwMiASMENgIIIAFBFGokAyMDIgAjBDYCCAJAIwQjAk4NACMEQcQDai0AACIEQTFJIARBOUtyDQAgAkEBaiECIwRBAWokBAsjBBAEAkAgAkEATARAQQEhAyAAKAIIJAQgACQDDAELIABBADYCACAAQQc2AgQgACMENgIMIAAgAjYCECAAQRRqIAAoAghBxANqIAIQAiAAIAJBFGpqEAEkAwsCQCADDQALIAMEQEEBIQMgASgCCCQEIAEkAwUgAUE8NgIAIAFBCDYCBCABIwQ2AgwgAUEBNgIQCyADC4oDAQV/IwMiAyMENgIIIANBFGokAyMDIgAjBDYCCAJAIwQjAk4NACMEQcQDai0AACIEQeEASSAEQfoAS3INACABQQFqIQEjBEEBaiQECyMEEAQCQCABQQBMBEBBASECIAAoAggkBCAAJAMMAQsgAEEANgIAIABBBzYCBCAAIwQ2AgwgACABNgIQIABBFGogACgCCEHEA2ogARACIAAgAUEUamoQASQDCwJAIAJFDQBBACECQQAhASMDIgAjBDYCCAJAIwQjAk4NACMEQcQDai0AACIEQcEASSAEQdoAS3INACABQQFqIQEjBEEBaiQECyMEEAQCQCABQQBMBEBBASECIAAoAggkBCAAJAMMAQsgAEEANgIAIABBBzYCBCAAIwQ2AgwgACABNgIQIABBFGogACgCCEHEA2ogARACIAAgAUEUamoQASQDCyACRQ0ACwJAIAINAAsgAgRAQQEhAiADKAIIJAQgAyQDBSADQcYANgIAIANBBjYCBCADIwQ2AgwgA0EBNgIQCyACC2YBAn8jAyIAIwQ2AgggAEEUaiQDAkAQDiIBRQ0AEA8iAUUNAAsCQCABQQFGDQALIAFBAUYEQEEBIQEgACgCCCQEIAAkAwUgAEHMADYCACAAQQc2AgQgACMENgIMIABBATYCEAsgAQv2AwEFfyMDIgMjBDYCCCADQRRqJAMjAyIAIwQ2AggjBEHTAEECEAMhAiACIwRqJAQjBBAEAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQdMAQQIQAiAAQRZqEAEkAwsCQCABQQFGDQBBACECIwMiACMENgIIIAAjBTYCDCAAQRRqJAMDQAJAIwQjAk4NACMDIgQjBDYCCCAEQRRqJAMCQBAJIgFBAUYNAAsgAUEBRgRAQQEhASAEKAIIJAQgBCQDBSAEQQc2AgAgBEEFNgIEIAQjBDYCDCAEQQE2AhALIAFFDQAgAkEBaiECIwRBAWokBAwBCwsgACgCDCQFIAAoAgggAmoQBCAAKAIIIAJqJAQgAEEANgIAIABBBzYCBCAAIwQ2AgwgACACNgIQIABBFGogACgCCEHEA2ogAhACIAAgAkEUamoQASQDQQAhAUEADQAjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRwRAIAFBAWoiAUEBRw0BCwsgAEEMNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAhAUEADQALIAFBAUYEQEEBIQEgAygCCCQEIAMkAwUgA0HVADYCACADQQ42AgQgAyMENgIMIANBAzYCEAsgAQvSBgEJfyMDIgMjBDYCCCADQRRqJAMjAyIAIwQ2AggjBEHjAEECEAMhAiACIwRqJAQjBBAEAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQeMAQQIQAiAAQRZqEAEkAwsCQCABDQAjAyIFIwQ2AgggBUEUaiQDA0BBACEBIwMiACMENgIIIwRB5QBBAhADIQIgAiMEaiQEIwQQBAJAIAJBAkcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAEEUakHlAEECEAIgAEEWahABJAMLAkAgAUUNAAJ/QQAhAiMDIgAjBDYCCCAAIwU2AgwgAEEUaiQDA0ACQCMEIwJODQBBACEBIwMiBCMENgIIIARBFGokAyMDIgYjBDYCCCMEQecAQQIQAyEIIAgjBGokBCMEEAQCQCAIQQJHBEBBASEBIAYoAggkBCAGJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIAZBFGpB5wBBAhACIAZBFmoQASQDCwJAIAENAAsgAQRAQQEhASAEKAIIJAQgBCQDBSAEQQc2AgAgBEEFNgIEIAQjBDYCDCAEQQE2AhALIAFFDQAgAkEBaiECIwRBAWokBAwBCwsgACgCDCQFIAAoAgggAmoQBCACQQBMBEAgACgCCCQEIAAkA0EBDAELIAAoAgggAmokBCAAQQA2AgAgAEEHNgIEIAAjBDYCDCAAIAI2AhAgAEEUaiAAKAIIQcQDaiACEAIgACACQRRqahABJANBAAsiAUUNAAsgAUUEQCAHQQFqIQcMAQsLIAVBEjYCACAFQQY2AgQgBSMENgIMIAUgBzYCEEEAIgENACMDIgAjBDYCCCMEQecAQQIQAyECIAIjBGokBCMEEAQCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpB5wBBAhACIABBFmoQASQDCyABDQALIAEEQEEBIQEgAygCCCQEIAMkAwUgA0HpADYCACADQQ02AgQgAyMENgIMIANBAzYCEAsgAQt0AQJ/IwMiACMENgIIIABBFGokAwJAEBMiAUUNABARIgFFDQAQGCIBRQ0AEBUiAUUNAAsCQCABQQFGDQALIAFBAUYEQEEBIQEgACgCCCQEIAAkAwUgAEH2ADYCACAAQQg2AgQgACMENgIMIABBATYCEAsgAQtXAQJ/IwMiACMENgIIIABBFGokAwJAEBIiAUEBRg0ACyABQQFGBEBBASEBIAAoAggkBCAAJAMFIABB/gA2AgAgAEEGNgIEIAAjBDYCDCAAQQE2AhALIAELxggBCX8jAyIEIwQ2AgggBEEUaiQDIwMjAyIAIwQ2AggjBEGEAUEBEAMhASABIwRqJAQjBBAEAkAgAUEBRwRAQQEhAiAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQYQBQQEQAiAAQRVqEAEkAwskAwJAIAINACMDIgUjBDYCCCAFQRRqJAMDQEEAIQIjAyIDIwQ2AgggA0EUaiQDIwMiACMENgIIIwRBhQFBARADIQEgASMEaiQEIwQQBAJAIAFBAUcEQEEBIQIgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAEEUakGFAUEBEAIgAEEVahABJAMLAkAgAg0AAn8jAyIAIwQ2AgggACMFNgIMIABBFGokAwJ/QQAiASMEIwJODQAaIwRBAWokBCABQQFqCyEBIAAoAgwkBSAAKAIIIAFqEAQgAUEATARAIAAoAggkBCAAJANBAQwBCyAAKAIIIAFqJAQgAEEANgIAIABBBzYCBCAAIwQ2AgwgACABNgIQIABBFGogACgCCEHEA2ogARACIAAgAUEUamoQASQDQQALIgINAAsgAgRAQQEhAiADKAIIJAQgAyQDBSADQQc2AgAgA0EFNgIEIAMjBDYCDCADQQI2AhALAkAgAkUNAAJ/QQAhASMDIgAjBDYCCCAAIwU2AgwgAEEUaiQDAkAjBCMCTg0AQQAhAiMDIgMjBDYCCCADQRRqJAMjAyIGIwQ2AggjBEGEAUEBEAMhCCAIIwRqJAQjBBAEAkAgCEEBRwRAQQEhAiAGKAIIJAQgBiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAGQRRqQYQBQQEQAiAGQRVqEAEkAwsCQCACDQALIAIEQEEBIQIgAygCCCQEIAMkAwUgA0EHNgIAIANBBTYCBCADIwQ2AgwgA0EBNgIQCyACRQ0AIAFBAWohASMEQQFqJAQLIAAoAgwkBSAAKAIIIAFqEAQgAUEATARAIAAoAggkBCAAJANBAQwBCyAAKAIIIAFqJAQgAEEANgIAIABBBzYCBCAAIwQ2AgwgACABNgIQIABBFGogACgCCEHEA2ogARACIAAgAUEUamoQASQDQQALIgJFDQALIAJFBEAgB0EBaiEHDAELCyAFQRI2AgAgBUEGNgIEIAUjBDYCDCAFIAc2AhBBACICDQAjAyMDIgAjBDYCCCMEQYQBQQEQAyEBIAEjBGokBCMEEAQCQCABQQFHBEBBASECIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBhAFBARACIABBFWoQASQDCyQDIAINAAsgAgRAQQEhAiAEKAIIJAQgBCQDBSAEQYYBNgIAIARBCzYCBCAEIwQ2AgwgBEEBNgIQCyACC7gCAQR/IwMiAiMENgIIIAJBFGokAyMDIgEjBDYCCCMEQZEBQQQQAyEDIAMjBGokBCMEEAQCQCADQQRHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EENgIQIAFBFGpBkQFBBBACIAFBGGoQASQDCwJAIABFDQBBACEAIwMiASMENgIIIwRBlQFBBRADIQMgAyMEaiQEIwQQBAJAIANBBUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQU2AhAgAUEUakGVAUEFEAIgAUEZahABJAMLIABFDQALAkAgAA0ACyAABEBBASEAIAIoAggkBCACJAMFIAJBmgE2AgAgAkEHNgIEIAIjBDYCDCACQQE2AhALIAALuwEBBH8jAyIAIwQ2AgggAEEUaiQDIwMiAiMENgIIIwRBoQFBBBADIQMgAyMEaiQEIwQQBAJAIANBBEcEQEEBIQEgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQQ2AhAgAkEUakGhAUEEEAIgAkEYahABJAMLAkAgAQ0ACyABBEBBASEBIAAoAggkBCAAJAMFIABBoQE2AgAgAEEENgIEIAAjBDYCDCAAQQE2AhALIAELkwEBA38jAyIBIwQ2AgggAUEUaiQDIwMhABAWIgJBAUYEQCAAJAMFIAAgACAAQRRqEAU2AhAgAEEANgIAIABBBzYCBCAAIAAoAhBBFGpqEAEkAwsCQCACQQFGDQALIAJBAUYEQEEBIQIgASgCCCQEIAEkAwUgAUGlATYCACABQQc2AgQgASMENgIMIAFBATYCEAsgAgv9AQEEfyMDIgEjBDYCCCABQRRqJAMjAyICIwQ2AgggAkEUaiQDAkAQCyIAQQFGDQAjAyIAIwQ2AgggAEEUaiQDA0AQCkEBRkUEQCADQQFqIQMMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAzYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAsCQCAARQ0AEBciAEUNAAsCQCAAQQFGDQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUGsATYCACABQQk2AgQgASMENgIMIAFBATYCEAsgAAu5AQEEfyMDIgAjBDYCCCAAQRRqJAMjAyICIwQ2AggjBEE1QQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEBIAIoAggkBCACJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAJBFGpBNUEBEAIgAkEVahABJAMLAkAgAQ0ACyABBEBBASEBIAAoAggkBCAAJAMFIABBtQE2AgAgAEEENgIEIAAjBDYCDCAAQQE2AhALIAEL7QQBCX8jAyIEIwQ2AgggBEEUaiQDIwMhAiMDIgUjBDYCCCAFQRRqJAMCQBAVIgBBAUYNACMDIgEjBDYCCCMEQbkBQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBuQFBARACIAFBFWoQASQDCyAAQQFGDQAQFiIAQQFGDQAjAyIDIwQ2AgggA0EUaiQDA0ACQCMDIgEjBDYCCCABQRRqJAMjAyIGIwQ2AggjBEG6AUEBEAMhCCAIIwRqJAQjBBAEAkAgCEEBRwRAQQEhACAGKAIIJAQgBiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAGQRRqQboBQQEQAiAGQRVqEAEkAwsCQCAAQQFGDQAQFSIAQQFGDQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUEHNgIAIAFBBTYCBCABIwQ2AgwgAUECNgIQCyAAQQFGDQAgB0EBaiIHQQFHDQELCyADQQw2AgAgA0EGNgIEIAMjBDYCDCADIAc2AhBBACEAQQANAAsgAEEBRgRAQQEhACAFKAIIJAQgBSQDBSAFQQc2AgAgBUEFNgIEIAUjBDYCDCAFQQQ2AhALIABBAUYEQCACJAMFIAIgAiACQRRqEAU2AhAgAkEANgIAIAJBBzYCBCACIAIoAhBBFGpqEAEkAwsCQCAAQQFGDQALIABBAUYEQEEBIQAgBCgCCCQEIAQkAwUgBEG7ATYCACAEQQU2AgQgBCMENgIMIARBATYCEAsgAAuOBQEIfyMDIgUjBDYCCCAFQRRqJAMjAyEDIwMiBiMENgIIIAZBFGokAwJAAn8jAyIBIwQ2AgggAUEUaiQDA0ACQBAMIgBFDQBBACEAIwMiBCMENgIIIwRBwAFBARADIQcgByMEaiQEIwQQBAJAIAdBAUcEQEEBIQAgBCgCCCQEIAQkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgBEEUakHAAUEBEAIgBEEVahABJAMLIABFDQALIABBAUZFBEAgAkEBaiECDAELCyACQQBMBEAgASgCCCQEIAEkA0EBDAELIAFBGDYCACABQQY2AgQgASMENgIMIAEgAjYCEEEACyIAQQFGDQBBACEEIwMiASMENgIIIAFBFGokAwNAAkAQDCIARQ0AEAoiAEUNAEEAIQAjAyICIwQ2AggjBEHAAUEBEAMhByAHIwRqJAQjBBAEAkAgB0EBRwRAQQEhACACKAIIJAQgAiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECACQRRqQcABQQEQAiACQRVqEAEkAwsgAEUNAAsgAEEBRkUEQCAEQQFqIQQMAQsLIAFBEjYCACABQQY2AgQgASMENgIMIAEgBDYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAYoAggkBCAGJAMFIAZBBzYCACAGQQU2AgQgBiMENgIMIAZBAjYCEAsgAEEBRgRAIAMkAwUgAyADIANBFGoQBTYCECADQQA2AgAgA0EHNgIEIAMgAygCEEEUamoQASQDCwJAIABBAUYNAAsgAEEBRgRAQQEhACAFKAIIJAQgBSQDBSAFQcEBNgIAIAVBBDYCBCAFIwQ2AgwgBUEBNgIQCyAAC8ECAQd/IwMiASMENgIIIAFBFGokAwJAEBkiAEEBRg0AIwMiAyMENgIIIANBFGokAwNAIwMiAiMENgIIIAJBFGokAyMDQQAhBSMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAVBAWohBQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACAFNgIQJAMCQEEAIQBBAA0AEBsiAEEBRg0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBATYCEAsgAEEBRkUEQCAEQQFqIQQMAQsLIANBEjYCACADQQY2AgQgAyMENgIMIAMgBDYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBxQE2AgAgAUEGNgIEIAEjBDYCDCABQQI2AhALIAALbQECfyMDIgAjBDYCCCAAQRRqJAMCQBAcIgFFDQAQHSIBRQ0AEB4iAUUNAAsCQCABQQFGDQALIAFBAUYEQEEBIQEgACgCCCQEIAAkAwUgAEHLATYCACAAQQg2AgQgACMENgIMIABBATYCEAsgAQuKAgEFfyMDIgIjBDYCCCACQRRqJAMjAyMDIgAjBDYCCCMEQbkBQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBuQFBARACIABBFWoQASQDCyQDAkAgAUEBRg0AIwMhABAZIgFBAUYEQCAAJAMFIAAgACAAQRRqEAU2AhAgAEEANgIAIABBBzYCBCAAIAAoAhBBFGpqEAEkAwsgAUEBRg0ACyABQQFGBEBBASEBIAIoAggkBCACJAMFIAJB0wE2AgAgAkENNgIEIAIjBDYCDCACQQE2AhALIAELvwEBBX8jAyIAIwQ2AgggAEEUaiQDIwMjAyICIwQ2AggjBEHgAUECEAMhAyADIwRqJAQjBBAEAkAgA0ECRwRAQQEhASACKAIIJAQgAiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECACQRRqQeABQQIQAiACQRZqEAEkAwskAwJAIAENAAsgAQRAQQEhASAAKAIIJAQgACQDBSAAQeIBNgIAIABBDjYCBCAAIwQ2AgwgAEEANgIQCyABC78BAQV/IwMiACMENgIIIABBFGokAyMDIwMiAiMENgIIIwRB8AFBAxADIQMgAyMEaiQEIwQQBAJAIANBA0cEQEEBIQEgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQM2AhAgAkEUakHwAUEDEAIgAkEXahABJAMLJAMCQCABDQALIAEEQEEBIQEgACgCCCQEIAAkAwUgAEHzATYCACAAQQs2AgQgACMENgIMIABBADYCEAsgAQuhCwEIfyMDIgUjBDYCCCAFQRRqJAMjAyMDIgEjBDYCCCABQRRqJAMjAyICIwQ2AggjBEH+AUEDEAMhAyADIwRqJAQjBBAEAkAgA0EDRwRAQQEhACACKAIIJAQgAiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAzYCECACQRRqQf4BQQMQAiACQRdqEAEkAwsCQCAAQQFGDQBBACECIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAkEBaiECDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAI2AhBBACEAQQANAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQI2AhALJAMCQCAAQQFGDQAQGSIAQQFGDQAjA0EAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDQQAhAEEADQBBACEEIwMiAiMENgIIIAJBFGokAwNAAkAjAyIBIwQ2AgggAUEUaiQDIwMjAyIDIwQ2AggjBEGBAkEBEAMhBiAGIwRqJAQjBBAEAkAgBkEBRwRAQQEhACADKAIIJAQgAyQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECADQRRqQYECQQEQAiADQRVqEAEkAwskAwJAIABBAUYNACMDQQAhAyMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIANBAWohAwwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACADNgIQJANBACEAQQANABAaIgBBAUYNACMDQQAhAyMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIANBAWohAwwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACADNgIQJANBACEAQQANAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQE2AhALIABBAUYNACAEQQFqIgRBAUcNAQsLIAJBDDYCACACQQY2AgQgAiMENgIMIAIgBDYCEEEAIQBBAA0AIwMjAyIBIwQ2AgggAUEUaiQDIwMiAiMENgIIIwRBggJBARADIQMgAyMEaiQEIwQQBAJAIANBAUcEQEEBIQAgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAkEUakGCAkEBEAIgAkEVahABJAMLAkAgAEEBRg0AQQAhAiMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAJBAWohAgwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACACNgIQQQAhAEEADQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUEHNgIAIAFBBTYCBCABIwQ2AgwgAUECNgIQCyQDIABBAUYNABApIgBBAUYNACMDIwMiASMENgIIIAFBFGokA0EAIQIjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCACQQFqIQIMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAjYCEAJAQQAhAEEADQAjAyICIwQ2AggjBEGDAkEBEAMhAyADIwRqJAQjBBAEAkAgA0EBRwRAQQEhACACKAIIJAQgAiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECACQRRqQYMCQQEQAiACQRVqEAEkAwsgAEEBRg0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBAjYCEAskAyAAQQFGDQALIABBAUYEQEEBIQAgBSgCCCQEIAUkAwUgBUGEAjYCACAFQQc2AgQgBSMENgIMIAVBAzYCEAsgAAuqAgEEfyMDIgIjBDYCCCACQRRqJAMCQBAhIgBBAUYNACMDIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhAkA0EAIQBBAA0AAkAQJCIARQ0AQQAhACMDIgEjBDYCCCMEQYMCQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBgwJBARACIAFBFWoQASQDCyAARQ0ACyAAQQFGDQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkGLAjYCACACQQg2AgQgAiMENgIMIAJBAjYCEAsgAAvQCgEGfyMDIgQjBDYCCCAEQRRqJAMjAyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEGTAkECEAMhAyADIwRqJAQjBBAEAkAgA0ECRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECABQRRqQZMCQQIQAiABQRZqEAEkAwsCQCAAQQFGDQACf0EAIQMjAyIBIwQ2AgggAUEUaiQDA0AQCEEBRkUEQCADQQFqIQMMAQsLIANBAEwEQCABKAIIJAQgASQDQQEMAQsgAUEYNgIAIAFBBjYCBCABIwQ2AgwgASADNgIQQQALIgBBAUYNAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALJAMCQCAAQQFGDQAjAyECEBkiAEEBRgRAIAIkAwUgAiACIAJBFGoQBTYCECACQQA2AgAgAkEHNgIEIAIgAigCEEEUamoQASQDCyAAQQFGDQAjAyMDIgIjBDYCCCACQRRqJANBACEBIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRBlQJBARADIQMgAyMEaiQEIwQQBAJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakGVAkEBEAIgAUEVahABJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAzYCEAskAyAAQQFGDQAQIiIAQQFGDQAjAyMDIgIjBDYCCCACQRRqJANBACEBIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRBlgJBARADIQMgAyMEaiQEIwQQBAJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakGWAkEBEAIgAUEVahABJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0AIwMiASMENgIIIwRBgQJBARADIQMgAyMEaiQEIwQQBAJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakGBAkEBEAIgAUEVahABJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBBTYCEAskAyAAQQFGDQAQGiIAQQFGDQALIABBAUYEQEEBIQAgBCgCCCQEIAQkAwUgBEGXAjYCACAEQQk2AgQgBCMENgIMIARBAzYCEAsgAAvrBQEMfyMDIgQjBDYCCCAEQRRqJAMjAyIGIwQ2AgggBkEUaiQDA0ACQCMDIgUjBDYCCCAFQRRqJAMCQBAjIgBBAUYNACMDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANAEEAIQkjAyIHIwQ2AgggB0EUaiQDA0AjAyIBIwQ2AgggAUEUaiQDIwMjAyICIwQ2AgggAkEUaiQDIwMiAyMENgIIIwRBoAJBARADIQogCiMEaiQEIwQQBAJAIApBAUcEQEEBIQAgAygCCCQEIAMkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgA0EUakGgAkEBEAIgA0EVahABJAMLAkAgAEEBRg0AQQAhAyMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIANBAWohAwwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACADNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyQDAkAgAEEBRg0AECMiAEEBRg0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBATYCEAsgAEEBRkUEQCAJQQFqIQkMAQsLIAdBEjYCACAHQQY2AgQgByMENgIMIAcgCTYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAUoAggkBCAFJAMFIAVBBzYCACAFQQU2AgQgBSMENgIMIAVBAjYCEAsgAEEBRg0AIAhBAWoiCEEBRw0BCwsgBkEMNgIAIAZBBjYCBCAGIwQ2AgwgBiAINgIQAkBBACEAQQANAAsgAEEBRgRAQQEhACAEKAIIJAQgBCQDBSAEQaECNgIAIARBCTYCBCAEIwQ2AgwgBEEBNgIQCyAAC/cDAQZ/IwMiAyMENgIIIANBFGokAyMDIQEQGSIAQQFGBEAgASQDBSABIAEgAUEUahAFNgIQIAFBADYCACABQQc2AgQgASABKAIQQRRqahABJAMLAkAgAEEBRg0AIwMjAyIBIwQ2AgggAUEUaiQDIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAkEBaiECDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAI2AhACQEEAIQBBAA0AIwMiAiMENgIIIwRBgQJBARADIQQgBCMEaiQEIwQQBAJAIARBAUcEQEEBIQAgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAkEUakGBAkEBEAIgAkEVahABJAMLIABBAUYNAEEAIQIjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCACQQFqIQIMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAjYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBAzYCEAskAyAAQQFGDQAQGiIAQQFGDQALIABBAUYEQEEBIQAgAygCCCQEIAMkAwUgA0GqAjYCACADQQg2AgQgAyMENgIMIANBAjYCEAsgAAvqCAEIfyMDIgUjBDYCCCAFQRRqJAMjAyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEGyAkEBEAMhAyADIwRqJAQjBBAEAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQbICQQEQAiABQRVqEAEkAwsCQCAAQQFGDQBBACEBIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALJAMCQCAAQQFGDQBBACEDIwMiASMENgIIIAFBFGokAwNAIwMiAiMENgIIIAJBFGokAwJAECUiAEEBRg0AIwNBACEEIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgBEEBaiEEDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAQ2AhAkA0EAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBATYCEAsgAEEBRkUEQCADQQFqIQMMAQsLIAFBEjYCACABQQY2AgQgASMENgIMIAEgAzYCEEEAIQBBAA0AIwMjAyICIwQ2AgggAkEUaiQDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQAkBBACEAQQANACMDIgEjBDYCCCMEQbMCQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBswJBARACIAFBFWoQASQDCyAAQQFGDQBBACEBIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACEAQQANAEEAIQQjAyIBIwQ2AgggAUEUaiQDA0ACQCMDIgMjBDYCCCMEQYMCQQEQAyEGIAYjBGokBCMEEAQCQCAGQQFHBEBBASEAIAMoAggkBCADJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIANBFGpBgwJBARACIANBFWoQASQDCyAAQQFGDQAgBEEBaiIEQQFHDQELCyABQQw2AgAgAUEGNgIEIAEjBDYCDCABIAQ2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQQ2AhALJAMgAEEBRg0ACyAAQQFGBEBBASEAIAUoAggkBCAFJAMFIAVBtAI2AgAgBUEJNgIEIAUjBDYCDCAFQQE2AhALIAALbQECfyMDIgAjBDYCCCAAQRRqJAMCQBAfIgFFDQAQLyIBRQ0AECgiAUUNAAsCQCABQQFGDQALIAFBAUYEQEEBIQEgACgCCCQEIAAkAwUgAEG9AjYCACAAQQk2AgQgACMENgIMIABBATYCEAsgAQtgAQJ/IwMiACMENgIIIABBFGokAwJAEBoiAUEBRg0AECciAUEBRg0ACyABQQFGBEBBASEBIAAoAggkBCAAJAMFIABBxgI2AgAgAEEJNgIEIAAjBDYCDCAAQQI2AhALIAELqQsBDH8jAyIGIwQ2AgggBkEUaiQDIwMjAyICIwQ2AgggAkEUaiQDIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRBlQJBARADIQMgAyMEaiQEIwQQBAJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakGVAkEBEAIgAUEVahABJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAzYCEAskAwJAIABBAUYNACMDIgUjBDYCCCAFQRRqJAMDQAJAIwMiAiMENgIIIAJBFGokAwJAECkiAEEBRg0AIwNBACEBIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhAkA0EAIQBBAA0AQQAhCSMDIgcjBDYCCCAHQRRqJAMDQCMDIgEjBDYCCCABQRRqJAMjAyMDIgMjBDYCCCADQRRqJAMjAyIEIwQ2AggjBEGgAkEBEAMhCiAKIwRqJAQjBBAEAkAgCkEBRwRAQQEhACAEKAIIJAQgBCQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAEQRRqQaACQQEQAiAEQRVqEAEkAwsCQCAAQQFGDQBBACEEIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgBEEBaiEEDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAQ2AhBBACEAQQANAAsgAEEBRgRAQQEhACADKAIIJAQgAyQDBSADQQc2AgAgA0EFNgIEIAMjBDYCDCADQQI2AhALJAMCQCAAQQFGDQAQKSIAQQFGDQAjA0EAIQMjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCADQQFqIQMMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAzYCECQDQQAhAEEADQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUEHNgIAIAFBBTYCBCABIwQ2AgwgAUEBNgIQCyAAQQFGRQRAIAlBAWohCQwBCwsgB0ESNgIAIAdBBjYCBCAHIwQ2AgwgByAJNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyAAQQFGDQAgCEEBaiIIQQFHDQELCyAFQQw2AgAgBUEGNgIEIAUjBDYCDCAFIAg2AhBBACEAQQANACMDIwMiAiMENgIIIAJBFGokAyMDIgEjBDYCCCMEQZYCQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBlgJBARACIAFBFWoQASQDCwJAIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAskAyAAQQFGDQALIABBAUYEQEEBIQAgBigCCCQEIAYkAwUgBkHPAjYCACAGQQ42AgQgBiMENgIMIAZBATYCEAsgAAv7AwEGfyMDIgQjBDYCCCAEQRRqJAMjAyMDIgIjBDYCCCACQRRqJAMjAyIAIwQ2AggjBEHdAkEGEAMhAyADIwRqJAQjBBAEAkAgA0EGRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBBjYCECAAQRRqQd0CQQYQAiAAQRpqEAEkAwsCQCABQQFGDQACf0EAIQMjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCADQQFqIQMMAQsLIANBAEwEQCAAKAIIJAQgACQDQQEMAQsgAEEYNgIAIABBBjYCBCAAIwQ2AgwgACADNgIQQQALIgFBAUYNAAsgAUEBRgRAQQEhASACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALJAMCQCABQQFGDQAQKSIBQQFGDQAjAyMDIgIjBDYCCCMEQYMCQQEQAyEAIAAjBGokBCMEEAQCQCAAQQFHBEBBASEBIAIoAggkBCACJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAJBFGpBgwJBARACIAJBFWoQASQDCyQDIAFBAUYNAAsgAUEBRgRAQQEhASAEKAIIJAQgBCQDBSAEQd0CNgIAIARBBjYCBCAEIwQ2AgwgBEEBNgIQCyABC6QEAQd/IwMiAyMENgIIIANBFGokAwJAECwiAEEBRg0AIwMjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDQQAhAEEADQAjAyIEIwQ2AgggBEEUaiQDA0AjAyICIwQ2AgggAkEUaiQDIwMhARArIgBBAUYEQCABJAMFIAEgASABQRRqEAU2AhAgAUEANgIAIAFBBzYCBCABIAEoAhBBFGpqEAEkAwsCQCAAQQFGDQAjA0EAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDQQAhAEEADQAQLCIAQQFGDQAjA0EAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyAAQQFGRQRAIAVBAWohBQwBCwsgBEESNgIAIARBBjYCBCAEIwQ2AgwgBCAFNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAygCCCQEIAMkAwUgA0HjAjYCACADQQQ2AgQgAyMENgIMIANBAjYCEAsgAAu4AgEEfyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEHnAkEBEAMhAyADIwRqJAQjBBAEAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQecCQQEQAiABQRVqEAEkAwsCQCAARQ0AQQAhACMDIgEjBDYCCCMEQegCQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpB6AJBARACIAFBFWoQASQDCyAARQ0ACwJAIAANAAsgAARAQQEhACACKAIIJAQgAiQDBSACQekCNgIAIAJBCzYCBCACIwQ2AgwgAkEBNgIQCyAAC54PAQR/IwMiAyMENgIIIANBFGokAyMDIgAjBDYCCCMEQfQCQQIQAyECIAIjBGokBCMEEAQCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpB9AJBAhACIABBFmoQASQDCwJAIAFFDQBBACEBIwMiACMENgIIIwRB9gJBAhADIQIgAiMEaiQEIwQQBAJAIAJBAkcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAEEUakH2AkECEAIgAEEWahABJAMLIAFFDQBBACEBIwMiACMENgIIIwRB+AJBAhADIQIgAiMEaiQEIwQQBAJAIAJBAkcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAEEUakH4AkECEAIgAEEWahABJAMLIAFFDQBBACEBIwMiACMENgIIIwRB+gJBAhADIQIgAiMEaiQEIwQQBAJAIAJBAkcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAEEUakH6AkECEAIgAEEWahABJAMLIAFFDQBBACEBIwMiACMENgIIIwRB/AJBAhADIQIgAiMEaiQEIwQQBAJAIAJBAkcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAEEUakH8AkECEAIgAEEWahABJAMLIAFFDQBBACEBIwMiACMENgIIIwRB/gJBAhADIQIgAiMEaiQEIwQQBAJAIAJBAkcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAEEUakH+AkECEAIgAEEWahABJAMLIAFFDQBBACEBIwMiACMENgIIIwRBgANBARADIQIgAiMEaiQEIwQQBAJAIAJBAUcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAEEUakGAA0EBEAIgAEEVahABJAMLIAFFDQBBACEBIwMiACMENgIIIwRBgQNBARADIQIgAiMEaiQEIwQQBAJAIAJBAUcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAEEUakGBA0EBEAIgAEEVahABJAMLIAFFDQBBACEBIwMiACMENgIIIwRBggNBARADIQIgAiMEaiQEIwQQBAJAIAJBAUcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAEEUakGCA0EBEAIgAEEVahABJAMLIAFFDQBBACEBIwMiACMENgIIIwRBgwNBARADIQIgAiMEaiQEIwQQBAJAIAJBAUcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAEEUakGDA0EBEAIgAEEVahABJAMLIAFFDQBBACEBIwMiACMENgIIIwRBhANBARADIQIgAiMEaiQEIwQQBAJAIAJBAUcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAEEUakGEA0EBEAIgAEEVahAB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"); +let _rawWasm = _Shared.DecodeBase64("AGFzbQEAAAABIQZgAAF/YAF/AX9gA39/fwBgA39/fwF/YAF/AGACf38BfwMyMQABAgMEBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBAEBAQoGIAZ/AEHKAwt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALB4oEMAZtZW1vcnkCAAVpbnB1dAMABXJlYWNoAwULaW5wdXRMZW5ndGgDAgVfaW5pdAAAB3Byb2dyYW0ABghzdG10X3RvcAAHAXcACAJubAAJBWRpZ2l0AAoIZGlnaXRfbnoACwZsZXR0ZXIADAdjb21tZW50AA0OY29tbWVudF9zaW5nbGUADg1jb21tZW50X211bHRpAA8IY29uc3RhbnQAEAZzdHJpbmcAEQtzdHJpbmdfdGV4dAASB2Jvb2xlYW4AEwR2b2lkABQHaW50ZWdlcgAVCWludGVnZXJfdQAWBHplcm8AFwVmbG9hdAAYBG5hbWUAGQZhY2Nlc3MAGghhY2Nlc3NvcgAbDWFjY2Vzc19zdGF0aWMAHA5hY2Nlc3NfZHluYW1pYwAdC2FjY2Vzc19jb21wAB4HZGVjbGFyZQAfBmFzc2lnbgAgCGZ1bmN0aW9uACEJZnVuY19oZWFkACIJZnVuY19hcmdzACMIZnVuY19hcmcAJAlmdW5jX2JvZHkAJQlmdW5jX3N0bXQAJglmdW5jX2NhbGwAJw5mdW5jX2NhbGxfYm9keQAoBnJldHVybgApBGV4cHIAKgtleHByX3ByZWZpeAArCmV4cHJfaW5maXgALAhleHByX2FyZwAtCGV4cHJfdmFsAC4NZXhwcl9icmFja2V0cwAvCXN0YXRlbWVudAAwCo6lATEaAEEAJARBACQFIwJBygNqJAEjARABJAMjAwsKACAAQQNqQXxxCyMBAX8DQCAAIANqIAEgA2otAAA6AAAgA0EBaiIDIAJIDQALC0EBAX8gAEHKA2ohA0EAIQADQAJAIAAgA2otAAAgACABai0AAEcNACAAQQFqIgAgAk4NACMBIAAgA2pKDQELCyAACw4AIAAjBU4EQCAAJAULC1gBA38gASEEQQEhAgNAIAAoAgAEfyACIAAoAhBqIQIgAEEUagUgASAAQRRqIAAoAhAiAxACIAEgA2ohASAAIANBFGpqEAELIQAgAkEBayICDQALIAEgBGsLhAMBB38jAyICIwQ2AgggAkEUaiQDIwMjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDAkBBACEAQQANACMDIgMjBDYCCCADQRRqJAMDQCMDIgEjBDYCCCABQRRqJAMCQBAHIgBBAUYNACMDQQAhBSMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAVBAWohBQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACAFNgIQJANBACEAQQANAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQE2AhALIABBAUZFBEAgBEEBaiEEDAELCyADQRI2AgAgA0EGNgIEIAMjBDYCDCADIAQ2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQR42AgAgAkEHNgIEIAIjBDYCDCACQQE2AhALIAALVgECfyMDIgAjBDYCCCAAQRRqJAMCQBAhIgFBAUYNAAsgAUEBRgRAQQEhASAAKAIIJAQgACQDBSAAQSU2AgAgAEEINgIEIAAjBDYCDCAAQQE2AhALIAELxwIBBH8jAyICIwQ2AgggAkEUaiQDIwMiASMENgIIIwRBLUEBEAMhAyADIwRqJAQjBBAEAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQS1BARACIAFBFWoQASQDCwJAIABFDQBBACEAIwMiASMENgIIIwRBLkEBEAMhAyADIwRqJAQjBBAEAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQS5BARACIAFBFWoQASQDCyAARQ0AEAkiAEUNABANIgBFDQALAkAgAEEBRg0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBLzYCACACQQE2AgQgAiMENgIMIAJBATYCEAsgAAuzAgEEfyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEEwQQIQAyEDIAMjBGokBCMEEAQCQCADQQJHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIAFBFGpBMEECEAIgAUEWahABJAMLAkAgAEUNAEEAIQAjAyIBIwQ2AggjBEEyQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBMkEBEAIgAUEVahABJAMLIABFDQALAkAgAA0ACyAABEBBASEAIAIoAggkBCACJAMFIAJBMzYCACACQQI2AgQgAiMENgIMIAJBATYCEAsgAAvfAQEFfyMDIgEjBDYCCCABQRRqJAMjAyIAIwQ2AggCQCMEIwJODQAjBEHKA2otAAAiBEEwSSAEQTlLcg0AIAJBAWohAiMEQQFqJAQLIwQQBAJAIAJBAEwEQEEBIQMgACgCCCQEIAAkAwwBCyAAQQA2AgAgAEEHNgIEIAAjBDYCDCAAIAI2AhAgAEEUaiAAKAIIQcoDaiACEAIgACACQRRqahABJAMLAkAgAw0ACyADBEBBASEDIAEoAggkBCABJAMFIAFBNjYCACABQQU2AgQgASMENgIMIAFBATYCEAsgAwvfAQEFfyMDIgEjBDYCCCABQRRqJAMjAyIAIwQ2AggCQCMEIwJODQAjBEHKA2otAAAiBEExSSAEQTlLcg0AIAJBAWohAiMEQQFqJAQLIwQQBAJAIAJBAEwEQEEBIQMgACgCCCQEIAAkAwwBCyAAQQA2AgAgAEEHNgIEIAAjBDYCDCAAIAI2AhAgAEEUaiAAKAIIQcoDaiACEAIgACACQRRqahABJAMLAkAgAw0ACyADBEBBASEDIAEoAggkBCABJAMFIAFBPDYCACABQQg2AgQgASMENgIMIAFBATYCEAsgAwuKAwEFfyMDIgMjBDYCCCADQRRqJAMjAyIAIwQ2AggCQCMEIwJODQAjBEHKA2otAAAiBEHhAEkgBEH6AEtyDQAgAUEBaiEBIwRBAWokBAsjBBAEAkAgAUEATARAQQEhAiAAKAIIJAQgACQDDAELIABBADYCACAAQQc2AgQgACMENgIMIAAgATYCECAAQRRqIAAoAghBygNqIAEQAiAAIAFBFGpqEAEkAwsCQCACRQ0AQQAhAkEAIQEjAyIAIwQ2AggCQCMEIwJODQAjBEHKA2otAAAiBEHBAEkgBEHaAEtyDQAgAUEBaiEBIwRBAWokBAsjBBAEAkAgAUEATARAQQEhAiAAKAIIJAQgACQDDAELIABBADYCACAAQQc2AgQgACMENgIMIAAgATYCECAAQRRqIAAoAghBygNqIAEQAiAAIAFBFGpqEAEkAwsgAkUNAAsCQCACDQALIAIEQEEBIQIgAygCCCQEIAMkAwUgA0HGADYCACADQQY2AgQgAyMENgIMIANBATYCEAsgAgtmAQJ/IwMiACMENgIIIABBFGokAwJAEA4iAUUNABAPIgFFDQALAkAgAUEBRg0ACyABQQFGBEBBASEBIAAoAggkBCAAJAMFIABBzAA2AgAgAEEHNgIEIAAjBDYCDCAAQQE2AhALIAEL9gMBBX8jAyIDIwQ2AgggA0EUaiQDIwMiACMENgIIIwRB0wBBAhADIQIgAiMEaiQEIwQQBAJAIAJBAkcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAEEUakHTAEECEAIgAEEWahABJAMLAkAgAUEBRg0AQQAhAiMDIgAjBDYCCCAAIwU2AgwgAEEUaiQDA0ACQCMEIwJODQAjAyIEIwQ2AgggBEEUaiQDAkAQCSIBQQFGDQALIAFBAUYEQEEBIQEgBCgCCCQEIAQkAwUgBEEHNgIAIARBBTYCBCAEIwQ2AgwgBEEBNgIQCyABRQ0AIAJBAWohAiMEQQFqJAQMAQsLIAAoAgwkBSAAKAIIIAJqEAQgACgCCCACaiQEIABBADYCACAAQQc2AgQgACMENgIMIAAgAjYCECAAQRRqIAAoAghBygNqIAIQAiAAIAJBFGpqEAEkA0EAIQFBAA0AIwMiACMENgIIIABBFGokAwNAEAlBAUcEQCABQQFqIgFBAUcNAQsLIABBDDYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQFBAA0ACyABQQFGBEBBASEBIAMoAggkBCADJAMFIANB1QA2AgAgA0EONgIEIAMjBDYCDCADQQM2AhALIAEL0gYBCX8jAyIDIwQ2AgggA0EUaiQDIwMiACMENgIIIwRB4wBBAhADIQIgAiMEaiQEIwQQBAJAIAJBAkcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAEEUakHjAEECEAIgAEEWahABJAMLAkAgAQ0AIwMiBSMENgIIIAVBFGokAwNAQQAhASMDIgAjBDYCCCMEQeUAQQIQAyECIAIjBGokBCMEEAQCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpB5QBBAhACIABBFmoQASQDCwJAIAFFDQACf0EAIQIjAyIAIwQ2AgggACMFNgIMIABBFGokAwNAAkAjBCMCTg0AQQAhASMDIgQjBDYCCCAEQRRqJAMjAyIGIwQ2AggjBEHnAEECEAMhCCAIIwRqJAQjBBAEAkAgCEECRwRAQQEhASAGKAIIJAQgBiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAGQRRqQecAQQIQAiAGQRZqEAEkAwsCQCABDQALIAEEQEEBIQEgBCgCCCQEIAQkAwUgBEEHNgIAIARBBTYCBCAEIwQ2AgwgBEEBNgIQCyABRQ0AIAJBAWohAiMEQQFqJAQMAQsLIAAoAgwkBSAAKAIIIAJqEAQgAkEATARAIAAoAggkBCAAJANBAQwBCyAAKAIIIAJqJAQgAEEANgIAIABBBzYCBCAAIwQ2AgwgACACNgIQIABBFGogACgCCEHKA2ogAhACIAAgAkEUamoQASQDQQALIgFFDQALIAFFBEAgB0EBaiEHDAELCyAFQRI2AgAgBUEGNgIEIAUjBDYCDCAFIAc2AhBBACIBDQAjAyIAIwQ2AggjBEHnAEECEAMhAiACIwRqJAQjBBAEAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQecAQQIQAiAAQRZqEAEkAwsgAQ0ACyABBEBBASEBIAMoAggkBCADJAMFIANB6QA2AgAgA0ENNgIEIAMjBDYCDCADQQM2AhALIAELdAECfyMDIgAjBDYCCCAAQRRqJAMCQBATIgFFDQAQESIBRQ0AEBgiAUUNABAVIgFFDQALAkAgAUEBRg0ACyABQQFGBEBBASEBIAAoAggkBCAAJAMFIABB9gA2AgAgAEEINgIEIAAjBDYCDCAAQQE2AhALIAELVwECfyMDIgAjBDYCCCAAQRRqJAMCQBASIgFBAUYNAAsgAUEBRgRAQQEhASAAKAIIJAQgACQDBSAAQf4ANgIAIABBBjYCBCAAIwQ2AgwgAEEBNgIQCyABC8YIAQl/IwMiBCMENgIIIARBFGokAyMDIwMiACMENgIIIwRBhAFBARADIQEgASMEaiQEIwQQBAJAIAFBAUcEQEEBIQIgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAEEUakGEAUEBEAIgAEEVahABJAMLJAMCQCACDQAjAyIFIwQ2AgggBUEUaiQDA0BBACECIwMiAyMENgIIIANBFGokAyMDIgAjBDYCCCMEQYUBQQEQAyEBIAEjBGokBCMEEAQCQCABQQFHBEBBASECIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBhQFBARACIABBFWoQASQDCwJAIAINAAJ/IwMiACMENgIIIAAjBTYCDCAAQRRqJAMCf0EAIgEjBCMCTg0AGiMEQQFqJAQgAUEBagshASAAKAIMJAUgACgCCCABahAEIAFBAEwEQCAAKAIIJAQgACQDQQEMAQsgACgCCCABaiQEIABBADYCACAAQQc2AgQgACMENgIMIAAgATYCECAAQRRqIAAoAghBygNqIAEQAiAAIAFBFGpqEAEkA0EACyICDQALIAIEQEEBIQIgAygCCCQEIAMkAwUgA0EHNgIAIANBBTYCBCADIwQ2AgwgA0ECNgIQCwJAIAJFDQACf0EAIQEjAyIAIwQ2AgggACMFNgIMIABBFGokAwJAIwQjAk4NAEEAIQIjAyIDIwQ2AgggA0EUaiQDIwMiBiMENgIIIwRBhAFBARADIQggCCMEaiQEIwQQBAJAIAhBAUcEQEEBIQIgBigCCCQEIAYkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgBkEUakGEAUEBEAIgBkEVahABJAMLAkAgAg0ACyACBEBBASECIAMoAggkBCADJAMFIANBBzYCACADQQU2AgQgAyMENgIMIANBATYCEAsgAkUNACABQQFqIQEjBEEBaiQECyAAKAIMJAUgACgCCCABahAEIAFBAEwEQCAAKAIIJAQgACQDQQEMAQsgACgCCCABaiQEIABBADYCACAAQQc2AgQgACMENgIMIAAgATYCECAAQRRqIAAoAghBygNqIAEQAiAAIAFBFGpqEAEkA0EACyICRQ0ACyACRQRAIAdBAWohBwwBCwsgBUESNgIAIAVBBjYCBCAFIwQ2AgwgBSAHNgIQQQAiAg0AIwMjAyIAIwQ2AggjBEGEAUEBEAMhASABIwRqJAQjBBAEAkAgAUEBRwRAQQEhAiAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQYQBQQEQAiAAQRVqEAEkAwskAyACDQALIAIEQEEBIQIgBCgCCCQEIAQkAwUgBEGGATYCACAEQQs2AgQgBCMENgIMIARBATYCEAsgAgu4AgEEfyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEGRAUEEEAMhAyADIwRqJAQjBBAEAkAgA0EERwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBBDYCECABQRRqQZEBQQQQAiABQRhqEAEkAwsCQCAARQ0AQQAhACMDIgEjBDYCCCMEQZUBQQUQAyEDIAMjBGokBCMEEAQCQCADQQVHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EFNgIQIAFBFGpBlQFBBRACIAFBGWoQASQDCyAARQ0ACwJAIAANAAsgAARAQQEhACACKAIIJAQgAiQDBSACQZoBNgIAIAJBBzYCBCACIwQ2AgwgAkEBNgIQCyAAC7sBAQR/IwMiACMENgIIIABBFGokAyMDIgIjBDYCCCMEQaEBQQQQAyEDIAMjBGokBCMEEAQCQCADQQRHBEBBASEBIAIoAggkBCACJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EENgIQIAJBFGpBoQFBBBACIAJBGGoQASQDCwJAIAENAAsgAQRAQQEhASAAKAIIJAQgACQDBSAAQaEBNgIAIABBBDYCBCAAIwQ2AgwgAEEBNgIQCyABC5MBAQN/IwMiASMENgIIIAFBFGokAyMDIQAQFiICQQFGBEAgACQDBSAAIAAgAEEUahAFNgIQIABBADYCACAAQQc2AgQgACAAKAIQQRRqahABJAMLAkAgAkEBRg0ACyACQQFGBEBBASECIAEoAggkBCABJAMFIAFBpQE2AgAgAUEHNgIEIAEjBDYCDCABQQE2AhALIAIL/QEBBH8jAyIBIwQ2AgggAUEUaiQDIwMiAiMENgIIIAJBFGokAwJAEAsiAEEBRg0AIwMiACMENgIIIABBFGokAwNAEApBAUZFBEAgA0EBaiEDDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAM2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALAkAgAEUNABAXIgBFDQALAkAgAEEBRg0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBrAE2AgAgAUEJNgIEIAEjBDYCDCABQQE2AhALIAALuQEBBH8jAyIAIwQ2AgggAEEUaiQDIwMiAiMENgIIIwRBNUEBEAMhAyADIwRqJAQjBBAEAkAgA0EBRwRAQQEhASACKAIIJAQgAiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECACQRRqQTVBARACIAJBFWoQASQDCwJAIAENAAsgAQRAQQEhASAAKAIIJAQgACQDBSAAQbUBNgIAIABBBDYCBCAAIwQ2AgwgAEEBNgIQCyABC+0EAQl/IwMiBCMENgIIIARBFGokAyMDIQIjAyIFIwQ2AgggBUEUaiQDAkAQFSIAQQFGDQAjAyIBIwQ2AggjBEG5AUEBEAMhAyADIwRqJAQjBBAEAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQbkBQQEQAiABQRVqEAEkAwsgAEEBRg0AEBYiAEEBRg0AIwMiAyMENgIIIANBFGokAwNAAkAjAyIBIwQ2AgggAUEUaiQDIwMiBiMENgIIIwRBugFBARADIQggCCMEaiQEIwQQBAJAIAhBAUcEQEEBIQAgBigCCCQEIAYkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgBkEUakG6AUEBEAIgBkEVahABJAMLAkAgAEEBRg0AEBUiAEEBRg0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBAjYCEAsgAEEBRg0AIAdBAWoiB0EBRw0BCwsgA0EMNgIAIANBBjYCBCADIwQ2AgwgAyAHNgIQQQAhAEEADQALIABBAUYEQEEBIQAgBSgCCCQEIAUkAwUgBUEHNgIAIAVBBTYCBCAFIwQ2AgwgBUEENgIQCyAAQQFGBEAgAiQDBSACIAIgAkEUahAFNgIQIAJBADYCACACQQc2AgQgAiACKAIQQRRqahABJAMLAkAgAEEBRg0ACyAAQQFGBEBBASEAIAQoAggkBCAEJAMFIARBuwE2AgAgBEEFNgIEIAQjBDYCDCAEQQE2AhALIAALjgUBCH8jAyIFIwQ2AgggBUEUaiQDIwMhAyMDIgYjBDYCCCAGQRRqJAMCQAJ/IwMiASMENgIIIAFBFGokAwNAAkAQDCIARQ0AQQAhACMDIgQjBDYCCCMEQcABQQEQAyEHIAcjBGokBCMEEAQCQCAHQQFHBEBBASEAIAQoAggkBCAEJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIARBFGpBwAFBARACIARBFWoQASQDCyAARQ0ACyAAQQFGRQRAIAJBAWohAgwBCwsgAkEATARAIAEoAggkBCABJANBAQwBCyABQRg2AgAgAUEGNgIEIAEjBDYCDCABIAI2AhBBAAsiAEEBRg0AQQAhBCMDIgEjBDYCCCABQRRqJAMDQAJAEAwiAEUNABAKIgBFDQBBACEAIwMiAiMENgIIIwRBwAFBARADIQcgByMEaiQEIwQQBAJAIAdBAUcEQEEBIQAgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAkEUakHAAUEBEAIgAkEVahABJAMLIABFDQALIABBAUZFBEAgBEEBaiEEDAELCyABQRI2AgAgAUEGNgIEIAEjBDYCDCABIAQ2AhBBACEAQQANAAsgAEEBRgRAQQEhACAGKAIIJAQgBiQDBSAGQQc2AgAgBkEFNgIEIAYjBDYCDCAGQQI2AhALIABBAUYEQCADJAMFIAMgAyADQRRqEAU2AhAgA0EANgIAIANBBzYCBCADIAMoAhBBFGpqEAEkAwsCQCAAQQFGDQALIABBAUYEQEEBIQAgBSgCCCQEIAUkAwUgBUHBATYCACAFQQQ2AgQgBSMENgIMIAVBATYCEAsgAAvBAgEHfyMDIgEjBDYCCCABQRRqJAMCQBAZIgBBAUYNACMDIgMjBDYCCCADQRRqJAMDQCMDIgIjBDYCCCACQRRqJAMjA0EAIQUjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCAFQQFqIQUMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgBTYCECQDAkBBACEAQQANABAbIgBBAUYNAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQE2AhALIABBAUZFBEAgBEEBaiEEDAELCyADQRI2AgAgA0EGNgIEIAMjBDYCDCADIAQ2AhBBACEAQQANAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQcUBNgIAIAFBBjYCBCABIwQ2AgwgAUECNgIQCyAAC20BAn8jAyIAIwQ2AgggAEEUaiQDAkAQHCIBRQ0AEB0iAUUNABAeIgFFDQALAkAgAUEBRg0ACyABQQFGBEBBASEBIAAoAggkBCAAJAMFIABBywE2AgAgAEEINgIEIAAjBDYCDCAAQQE2AhALIAELigIBBX8jAyICIwQ2AgggAkEUaiQDIwMjAyIAIwQ2AggjBEG5AUEBEAMhAyADIwRqJAQjBBAEAkAgA0EBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQbkBQQEQAiAAQRVqEAEkAwskAwJAIAFBAUYNACMDIQAQGSIBQQFGBEAgACQDBSAAIAAgAEEUahAFNgIQIABBADYCACAAQQc2AgQgACAAKAIQQRRqahABJAMLIAFBAUYNAAsgAUEBRgRAQQEhASACKAIIJAQgAiQDBSACQdMBNgIAIAJBDTYCBCACIwQ2AgwgAkEBNgIQCyABC78BAQV/IwMiACMENgIIIABBFGokAyMDIwMiAiMENgIIIwRB4AFBAhADIQMgAyMEaiQEIwQQBAJAIANBAkcEQEEBIQEgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAkEUakHgAUECEAIgAkEWahABJAMLJAMCQCABDQALIAEEQEEBIQEgACgCCCQEIAAkAwUgAEHiATYCACAAQQ42AgQgACMENgIMIABBADYCEAsgAQu/AQEFfyMDIgAjBDYCCCAAQRRqJAMjAyMDIgIjBDYCCCMEQfABQQMQAyEDIAMjBGokBCMEEAQCQCADQQNHBEBBASEBIAIoAggkBCACJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EDNgIQIAJBFGpB8AFBAxACIAJBF2oQASQDCyQDAkAgAQ0ACyABBEBBASEBIAAoAggkBCAAJAMFIABB8wE2AgAgAEELNgIEIAAjBDYCDCAAQQA2AhALIAELoQsBCH8jAyIFIwQ2AgggBUEUaiQDIwMjAyIBIwQ2AgggAUEUaiQDIwMiAiMENgIIIwRB/gFBAxADIQMgAyMEaiQEIwQQBAJAIANBA0cEQEEBIQAgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQM2AhAgAkEUakH+AUEDEAIgAkEXahABJAMLAkAgAEEBRg0AQQAhAiMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAJBAWohAgwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACACNgIQQQAhAEEADQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUEHNgIAIAFBBTYCBCABIwQ2AgwgAUECNgIQCyQDAkAgAEEBRg0AEBkiAEEBRg0AIwNBACEBIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhAkA0EAIQBBAA0AQQAhBCMDIgIjBDYCCCACQRRqJAMDQAJAIwMiASMENgIIIAFBFGokAyMDIwMiAyMENgIIIwRBgQJBARADIQYgBiMEaiQEIwQQBAJAIAZBAUcEQEEBIQAgAygCCCQEIAMkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgA0EUakGBAkEBEAIgA0EVahABJAMLJAMCQCAAQQFGDQAjA0EAIQMjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCADQQFqIQMMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAzYCECQDQQAhAEEADQAQGiIAQQFGDQAjA0EAIQMjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCADQQFqIQMMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAzYCECQDQQAhAEEADQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUEHNgIAIAFBBTYCBCABIwQ2AgwgAUEBNgIQCyAAQQFGDQAgBEEBaiIEQQFHDQELCyACQQw2AgAgAkEGNgIEIAIjBDYCDCACIAQ2AhBBACEAQQANACMDIwMiASMENgIIIAFBFGokAyMDIgIjBDYCCCMEQYICQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAIoAggkBCACJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAJBFGpBggJBARACIAJBFWoQASQDCwJAIABBAUYNAEEAIQIjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCACQQFqIQIMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAjYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBAjYCEAskAyAAQQFGDQAQKiIAQQFGDQAjAyMDIgEjBDYCCCABQRRqJANBACECIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAkEBaiECDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAI2AhACQEEAIQBBAA0AIwMiAiMENgIIIwRBgwJBARADIQMgAyMEaiQEIwQQBAJAIANBAUcEQEEBIQAgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAkEUakGDAkEBEAIgAkEVahABJAMLIABBAUYNAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQI2AhALJAMgAEEBRg0ACyAAQQFGBEBBASEAIAUoAggkBCAFJAMFIAVBhAI2AgAgBUEHNgIEIAUjBDYCDCAFQQM2AhALIAAL0QUBBn8jAyIDIwQ2AgggA0EUaiQDAkAQGSIAQQFGDQAjAyMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAJBAWohAgwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACACNgIQJANBACEAQQANACMDIwMiAiMENgIIIAJBFGokAyMDIgEjBDYCCCMEQYICQQEQAyEEIAQjBGokBCMEEAQCQCAEQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBggJBARACIAFBFWoQASQDCwJAIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAskAyAAQQFGDQAQKiIAQQFGDQAjAyMDIgIjBDYCCCACQRRqJANBACEBIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRBgwJBARADIQQgBCMEaiQEIwQQBAJAIARBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakGDAkEBEAIgAUEVahABJAMLIABBAUYNAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALJAMgAEEBRg0ACyAAQQFGBEBBASEAIAMoAggkBCADJAMFIANBiwI2AgAgA0EGNgIEIAMjBDYCDCADQQI2AhALIAALqgIBBH8jAyICIwQ2AgggAkEUaiQDAkAQIiIAQQFGDQAjAyMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANAAJAECUiAEUNAEEAIQAjAyIBIwQ2AggjBEGDAkEBEAMhAyADIwRqJAQjBBAEAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQYMCQQEQAiABQRVqEAEkAwsgAEUNAAsgAEEBRg0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBkQI2AgAgAkEINgIEIAIjBDYCDCACQQI2AhALIAAL0AoBBn8jAyIEIwQ2AgggBEEUaiQDIwMjAyICIwQ2AgggAkEUaiQDIwMiASMENgIIIwRBmQJBAhADIQMgAyMEaiQEIwQQBAJAIANBAkcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAUEUakGZAkECEAIgAUEWahABJAMLAkAgAEEBRg0AAn9BACEDIwMiASMENgIIIAFBFGokAwNAEAhBAUZFBEAgA0EBaiEDDAELCyADQQBMBEAgASgCCCQEIAEkA0EBDAELIAFBGDYCACABQQY2AgQgASMENgIMIAEgAzYCEEEACyIAQQFGDQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyQDAkAgAEEBRg0AIwMhAhAZIgBBAUYEQCACJAMFIAIgAiACQRRqEAU2AhAgAkEANgIAIAJBBzYCBCACIAIoAhBBFGpqEAEkAwsgAEEBRg0AIwMjAyICIwQ2AgggAkEUaiQDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQAkBBACEAQQANACMDIgEjBDYCCCMEQZsCQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBmwJBARACIAFBFWoQASQDCyAAQQFGDQBBACEBIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQM2AhALJAMgAEEBRg0AECMiAEEBRg0AIwMjAyICIwQ2AgggAkEUaiQDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQAkBBACEAQQANACMDIgEjBDYCCCMEQZwCQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBnAJBARACIAFBFWoQASQDCyAAQQFGDQBBACEBIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACEAQQANACMDIgEjBDYCCCMEQYECQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBgQJBARACIAFBFWoQASQDCyAAQQFGDQBBACEBIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQU2AhALJAMgAEEBRg0AEBoiAEEBRg0ACyAAQQFGBEBBASEAIAQoAggkBCAEJAMFIARBnQI2AgAgBEEJNgIEIAQjBDYCDCAEQQM2AhALIAAL6wUBDH8jAyIEIwQ2AgggBEEUaiQDIwMiBiMENgIIIAZBFGokAwNAAkAjAyIFIwQ2AgggBUEUaiQDAkAQJCIAQQFGDQAjA0EAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDQQAhAEEADQBBACEJIwMiByMENgIIIAdBFGokAwNAIwMiASMENgIIIAFBFGokAyMDIwMiAiMENgIIIAJBFGokAyMDIgMjBDYCCCMEQaYCQQEQAyEKIAojBGokBCMEEAQCQCAKQQFHBEBBASEAIAMoAggkBCADJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIANBFGpBpgJBARACIANBFWoQASQDCwJAIABBAUYNAEEAIQMjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCADQQFqIQMMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAzYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAskAwJAIABBAUYNABAkIgBBAUYNAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQE2AhALIABBAUZFBEAgCUEBaiEJDAELCyAHQRI2AgAgB0EGNgIEIAcjBDYCDCAHIAk2AhBBACEAQQANAAsgAEEBRgRAQQEhACAFKAIIJAQgBSQDBSAFQQc2AgAgBUEFNgIEIAUjBDYCDCAFQQI2AhALIABBAUYNACAIQQFqIghBAUcNAQsLIAZBDDYCACAGQQY2AgQgBiMENgIMIAYgCDYCEAJAQQAhAEEADQALIABBAUYEQEEBIQAgBCgCCCQEIAQkAwUgBEGnAjYCACAEQQk2AgQgBCMENgIMIARBATYCEAsgAAv3AwEGfyMDIgMjBDYCCCADQRRqJAMjAyEBEBkiAEEBRgRAIAEkAwUgASABIAFBFGoQBTYCECABQQA2AgAgAUEHNgIEIAEgASgCEEEUamoQASQDCwJAIABBAUYNACMDIwMiASMENgIIIAFBFGokAyMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAJBAWohAgwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACACNgIQAkBBACEAQQANACMDIgIjBDYCCCMEQYECQQEQAyEEIAQjBGokBCMEEAQCQCAEQQFHBEBBASEAIAIoAggkBCACJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAJBFGpBgQJBARACIAJBFWoQASQDCyAAQQFGDQBBACECIwMiACMENgIIIABBFGokAwNAEAhBAUZFBEAgAkEBaiECDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAI2AhBBACEAQQANAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQM2AhALJAMgAEEBRg0AEBoiAEEBRg0ACyAAQQFGBEBBASEAIAMoAggkBCADJAMFIANBsAI2AgAgA0EINgIEIAMjBDYCDCADQQI2AhALIAAL6ggBCH8jAyIFIwQ2AgggBUEUaiQDIwMjAyICIwQ2AgggAkEUaiQDIwMiASMENgIIIwRBuAJBARADIQMgAyMEaiQEIwQQBAJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakG4AkEBEAIgAUEVahABJAMLAkAgAEEBRg0AQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyQDAkAgAEEBRg0AQQAhAyMDIgEjBDYCCCABQRRqJAMDQCMDIgIjBDYCCCACQRRqJAMCQBAmIgBBAUYNACMDQQAhBCMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIARBAWohBAwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACAENgIQJANBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQE2AhALIABBAUZFBEAgA0EBaiEDDAELCyABQRI2AgAgAUEGNgIEIAEjBDYCDCABIAM2AhBBACEAQQANACMDIwMiAiMENgIIIAJBFGokA0EAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEAJAQQAhAEEADQAjAyIBIwQ2AggjBEG5AkEBEAMhAyADIwRqJAQjBBAEAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQbkCQQEQAiABQRVqEAEkAwsgAEEBRg0AQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAhAEEADQBBACEEIwMiASMENgIIIAFBFGokAwNAAkAjAyIDIwQ2AggjBEGDAkEBEAMhBiAGIwRqJAQjBBAEAkAgBkEBRwRAQQEhACADKAIIJAQgAyQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECADQRRqQYMCQQEQAiADQRVqEAEkAwsgAEEBRg0AIARBAWoiBEEBRw0BCwsgAUEMNgIAIAFBBjYCBCABIwQ2AgwgASAENgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkEENgIQCyQDIABBAUYNAAsgAEEBRgRAQQEhACAFKAIIJAQgBSQDBSAFQboCNgIAIAVBCTYCBCAFIwQ2AgwgBUEBNgIQCyAAC3QBAn8jAyIAIwQ2AgggAEEUaiQDAkAQHyIBRQ0AECAiAUUNABAwIgFFDQAQKSIBRQ0ACwJAIAFBAUYNAAsgAUEBRgRAQQEhASAAKAIIJAQgACQDBSAAQcMCNgIAIABBCTYCBCAAIwQ2AgwgAEEBNgIQCyABC2ABAn8jAyIAIwQ2AgggAEEUaiQDAkAQGiIBQQFGDQAQKCIBQQFGDQALIAFBAUYEQEEBIQEgACgCCCQEIAAkAwUgAEHMAjYCACAAQQk2AgQgACMENgIMIABBAjYCEAsgAQupCwEMfyMDIgYjBDYCCCAGQRRqJAMjAyMDIgIjBDYCCCACQRRqJAMjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEAJAQQAhAEEADQAjAyIBIwQ2AggjBEGbAkEBEAMhAyADIwRqJAQjBBAEAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQZsCQQEQAiABQRVqEAEkAwsgAEEBRg0AQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkEDNgIQCyQDAkAgAEEBRg0AIwMiBSMENgIIIAVBFGokAwNAAkAjAyICIwQ2AgggAkEUaiQDAkAQKiIAQQFGDQAjA0EAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDQQAhAEEADQBBACEJIwMiByMENgIIIAdBFGokAwNAIwMiASMENgIIIAFBFGokAyMDIwMiAyMENgIIIANBFGokAyMDIgQjBDYCCCMEQaYCQQEQAyEKIAojBGokBCMEEAQCQCAKQQFHBEBBASEAIAQoAggkBCAEJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIARBFGpBpgJBARACIARBFWoQASQDCwJAIABBAUYNAEEAIQQjAyIAIwQ2AgggAEEUaiQDA0AQCEEBRkUEQCAEQQFqIQQMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgBDYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAMoAggkBCADJAMFIANBBzYCACADQQU2AgQgAyMENgIMIANBAjYCEAskAwJAIABBAUYNABAqIgBBAUYNACMDQQAhAyMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIANBAWohAwwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACADNgIQJANBACEAQQANAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQE2AhALIABBAUZFBEAgCUEBaiEJDAELCyAHQRI2AgAgB0EGNgIEIAcjBDYCDCAHIAk2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALIABBAUYNACAIQQFqIghBAUcNAQsLIAVBDDYCACAFQQY2AgQgBSMENgIMIAUgCDYCEEEAIQBBAA0AIwMjAyICIwQ2AgggAkEUaiQDIwMiASMENgIIIwRBnAJBARADIQMgAyMEaiQEIwQQBAJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakGcAkEBEAIgAUEVahABJAMLAkAgAEEBRg0AQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyQDIABBAUYNAAsgAEEBRgRAQQEhACAGKAIIJAQgBiQDBSAGQdUCNgIAIAZBDjYCBCAGIwQ2AgwgBkEBNgIQCyAAC/sDAQZ/IwMiBCMENgIIIARBFGokAyMDIwMiAiMENgIIIAJBFGokAyMDIgAjBDYCCCMEQeMCQQYQAyEDIAMjBGokBCMEEAQCQCADQQZHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EGNgIQIABBFGpB4wJBBhACIABBGmoQASQDCwJAIAFBAUYNAAJ/QQAhAyMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIANBAWohAwwBCwsgA0EATARAIAAoAggkBCAAJANBAQwBCyAAQRg2AgAgAEEGNgIEIAAjBDYCDCAAIAM2AhBBAAsiAUEBRg0ACyABQQFGBEBBASEBIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAskAwJAIAFBAUYNABAqIgFBAUYNACMDIwMiAiMENgIIIwRBgwJBARADIQAgACMEaiQEIwQQBAJAIABBAUcEQEEBIQEgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAkEUakGDAkEBEAIgAkEVahABJAMLJAMgAUEBRg0ACyABQQFGBEBBASEBIAQoAggkBCAEJAMFIARB4wI2AgAgBEEGNgIEIAQjBDYCDCAEQQE2AhALIAELpAQBB38jAyIDIwQ2AgggA0EUaiQDAkAQLSIAQQFGDQAjAyMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANACMDIgQjBDYCCCAEQRRqJAMDQCMDIgIjBDYCCCACQRRqJAMjAyEBECwiAEEBRgRAIAEkAwUgASABIAFBFGoQBTYCECABQQA2AgAgAUEHNgIEIAEgASgCEEEUamoQASQDCwJAIABBAUYNACMDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANABAtIgBBAUYNACMDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAIQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALIABBAUZFBEAgBUEBaiEFDAELCyAEQRI2AgAgBEEGNgIEIAQjBDYCDCAEIAU2AhBBACEAQQANAAsgAEEBRgRAQQEhACADKAIIJAQgAyQDBSADQekCNgIAIANBBDYCBCADIwQ2AgwgA0ECNgIQCyAAC7gCAQR/IwMiAiMENgIIIAJBFGokAyMDIgEjBDYCCCMEQe0CQQEQAyEDIAMjBGokBCMEEAQCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpB7QJBARACIAFBFWoQASQDCwJAIABFDQBBACEAIwMiASMENgIIIwRB7gJBARADIQMgAyMEaiQEIwQQBAJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakHuAkEBEAIgAUEVahABJAMLIABFDQALAkAgAA0ACyAABEBBASEAIAIoAggkBCACJAMFIAJB7wI2AgAgAkELNgIEIAIjBDYCDCACQQE2AhALIAALng8BBH8jAyIDIwQ2AgggA0EUaiQDIwMiACMENgIIIwRB+gJBAhADIQIgAiMEaiQEIwQQBAJAIAJBAkcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAEEUakH6AkECEAIgAEEWahABJAMLAkAgAUUNAEEAIQEjAyIAIwQ2AggjBEH8AkECEAMhAiACIwRqJAQjBBAEAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQfwCQQIQAiAAQRZqEAEkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEH+AkECEAMhAiACIwRqJAQjBBAEAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQf4CQQIQAiAAQRZqEAEkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGAA0ECEAMhAiACIwRqJAQjBBAEAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQYADQQIQAiAAQRZqEAEkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGCA0ECEAMhAiACIwRqJAQjBBAEAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQYIDQQIQAiAAQRZqEAEkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGEA0ECEAMhAiACIwRqJAQjBBAEAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQYQDQQIQAiAAQRZqEAEkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGGA0EBEAMhAiACIwRqJAQjBBAEAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQYYDQQEQAiAAQRVqEAEkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGHA0EBEAMhAiACIwRqJAQjBBAEAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQYcDQQEQAiAAQRVqEAEkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGIA0EBEAMhAiACIwRqJAQjBBAEAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQYgDQQEQAiAAQRVqEAEkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGJA0EBEAMhAiACIwRqJAQjBBAEAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQYkDQQEQAiAAQRVqEAEkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGKA0EBEAMhAiACIwRqJAQjBBAEAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQYoDQQEQAiAAQRVqEAEkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGLA0EBEAMhAiACIwRqJAQjBBAEAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQYsDQQEQAiAAQRVqEAEkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEHuAkEBEAMhAiACIwRqJAQjBBAE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"); let _ctx = null; if (typeof window === 'undefined') { _ctx = new WebAssembly.Instance( @@ -99,6 +99,9 @@ export function Parse_Access_comp (data, refMapping = true) { export function Parse_Declare (data, refMapping = true) { return _Shared.Parse(_ctx, data, refMapping, "declare"); } +export function Parse_Assign (data, refMapping = true) { + return _Shared.Parse(_ctx, data, refMapping, "assign"); +} export function Parse_Function (data, refMapping = true) { return _Shared.Parse(_ctx, data, refMapping, "function"); } diff --git a/source/compiler/codegen/context.ts b/source/compiler/codegen/context.ts index 81ba6bc..0622e19 100644 --- a/source/compiler/codegen/context.ts +++ b/source/compiler/codegen/context.ts @@ -6,10 +6,9 @@ import type { Scope } from "./scope.ts"; import * as banned from "./banned.ts"; import { Instruction, AnyInstruction } from "../../wasm/index.ts"; -import { AssertUnreachable } from "../../bnf/shared.js"; import { CompileExpr } from "./expression/index.ts"; -import { Intrinsic } from "../intrinsic.ts"; -import { Yeet } from "../../helper.ts"; +import { Intrinsic, i16, i8, u16, u8 } from "../intrinsic.ts"; +import { AssertUnreachable, Yeet } from "../../helper.ts"; export class Context { file: File; @@ -32,6 +31,7 @@ export class Context { switch (line.type) { case "declare": CompileDeclare (this, line); break; + case "assign": CompileAssign (this, line); break; case "statement": CompileExprStmt (this, line); break; case "return": CompileReturn (this, line); break; default: AssertUnreachable(line); @@ -63,6 +63,13 @@ function CompileDeclare(ctx: Context, syntax: Syntax.Term_Declare) { name: ctx.file.name, ref: type.ref }) + + if (typeRef === i8 || typeRef === u8 || typeRef === i16 || typeRef === u16) + Yeet(`${colors.red("Error")}: Cannot explicitly use virtual integer types\n`, { + path: ctx.file.path, + name: ctx.file.name, + ref: type.ref + }) } const resolveType: Intrinsic = CompileExpr(ctx, value, typeRef || undefined); @@ -74,21 +81,44 @@ function CompileDeclare(ctx: Context, syntax: Syntax.Term_Declare) { }) if (typeRef && resolveType !== typeRef) - Yeet(`${colors.red("Error")}: type ${resolveType.name} != type ${typeRef.name}\n`, { + Yeet(`${colors.red("Error")}: type ${typeRef.name} != type ${resolveType.name}\n`, { path: ctx.file.path, name: ctx.file.name, ref: type?.ref || syntax.ref }) - const reg = ctx.scope.registerVariable(name, typeRef || resolveType, syntax.ref); - if (!reg) + const variable = ctx.scope.registerVariable(name, typeRef || resolveType, syntax.ref); + if (!variable) Yeet(`${colors.red("Error")}: Variable ${name} is already declared\n`, { path: ctx.file.path, name: ctx.file.name, ref: syntax.ref }) - ctx.block.push(Instruction.local.set(reg.register.ref)); + ctx.block.push(Instruction.local.set(variable.register.ref)); +} + +function CompileAssign(ctx: Context, syntax: Syntax.Term_Assign) { + const name = syntax.value[0].value[0].value; + const value = syntax.value[1]; + + const variable = ctx.scope.getVariable(name); + if (!variable) + Yeet(`${colors.red("Error")}: Undeclared variable ${name}\n`, { + path: ctx.file.path, + name: ctx.file.name, + ref: syntax.ref + }) + + const resolveType: Intrinsic = CompileExpr(ctx, value, variable.type); + if (resolveType !== variable.type) + Yeet(`${colors.red("Error")}: type ${variable.name} != type ${resolveType.name}\n`, { + path: ctx.file.path, + name: ctx.file.name, + ref: syntax.ref + }) + + ctx.block.push(Instruction.local.set(variable.register.ref)); } diff --git a/source/compiler/codegen/scope.ts b/source/compiler/codegen/scope.ts index a68657e..4b1601a 100644 --- a/source/compiler/codegen/scope.ts +++ b/source/compiler/codegen/scope.ts @@ -34,4 +34,8 @@ export class Scope { return this.vars[name]; } + + getVariable(name: string) { + return this.vars[name] || null; + } } \ No newline at end of file