From 994c51e8514c6d9b36f177a64e3ac821d4c84e63 Mon Sep 17 00:00:00 2001 From: rv-jenkins Date: Fri, 29 Sep 2023 18:15:34 +0000 Subject: [PATCH] gh-pages: Updated the website --- CNAME | 1 + ...irefly-Download-Icon-Inverted.32636383.png | Bin 0 -> 571 bytes assets/css/Firefly-Download-Icon.8094a4f0.png | Bin 0 -> 586 bytes assets/css/fontawesome-webfont.0caf0c90.ttf | Bin 0 -> 165548 bytes assets/css/fontawesome-webfont.3981e506.eot | Bin 0 -> 165742 bytes assets/css/fontawesome-webfont.58488e7e.woff2 | Bin 0 -> 77160 bytes assets/css/fontawesome-webfont.a9323ae9.svg | 1 + assets/css/fontawesome-webfont.ed962b83.woff | Bin 0 -> 98024 bytes assets/css/iconfont.960c72b2.eot | Bin 0 -> 2216 bytes assets/css/iconfont.a07d77e0.woff2 | Bin 0 -> 892 bytes assets/css/iconfont.b2a06094.woff | Bin 0 -> 1296 bytes assets/css/index.css | 1 + assets/css/owl.video.play.e7a23fb2.png | Bin 0 -> 2794 bytes assets/css/select-arrow.b8e89c0c.svg | 1 + assets/img/404.png | Bin 0 -> 33413 bytes assets/img/500.png | Bin 0 -> 45305 bytes assets/img/android-chrome-192x192.png | Bin 0 -> 8642 bytes assets/img/android-chrome-512x512.png | Bin 0 -> 17774 bytes assets/img/apple-touch-icon.png | Bin 0 -> 7679 bytes assets/img/favicon-16x16.png | Bin 0 -> 489 bytes assets/img/favicon-32x32.png | Bin 0 -> 972 bytes assets/img/favicon.ico | Bin 0 -> 15406 bytes assets/img/hero/kerc20-hero-image.png | Bin 0 -> 208144 bytes assets/img/hero/test-coverage-hero-image.png | Bin 0 -> 56813 bytes assets/img/hero/test-runner-hero-image.png | Bin 0 -> 208144 bytes assets/img/k-logo-dark.png | Bin 0 -> 32908 bytes assets/img/k-logo.png | Bin 0 -> 5022 bytes assets/img/lang.jpg | Bin 0 -> 1619 bytes assets/img/new.gif | Bin 0 -> 275 bytes assets/img/rv-logo-dark.png | Bin 0 -> 3624 bytes assets/img/rv-logo.png | Bin 0 -> 6988 bytes assets/img/try-it-online.jpg | Bin 0 -> 1562 bytes assets/js/index.js | 212 + assets/sass/icons/iconfont.css | 36 + assets/sass/icons/iconfont.eot | Bin 0 -> 2216 bytes assets/sass/icons/iconfont.svg | 30 + assets/sass/icons/iconfont.ttf | Bin 0 -> 2048 bytes assets/sass/icons/iconfont.woff | Bin 0 -> 1296 bytes assets/sass/icons/iconfont.woff2 | Bin 0 -> 892 bytes docs/cheat_sheet/index.html | 372 + docs/ktools/index.html | 726 + docs/user_manual/index.html | 3945 +++ editor_support/index.html | 455 + .../index.html | 401 + exports/K.epub | Bin 0 -> 1820070 bytes exports/K.html | 23805 ++++++++++++++++ exports/K.mobi | Bin 0 -> 2360651 bytes exports/K.pdf | Bin 0 -> 1240378 bytes faq/index.html | 467 + index.html | 418 + install | 69 + k-distribution/INSTALL/index.html | 638 + .../kframework/builtin/domains/index.html | 3920 +++ .../include/kframework/builtin/ffi/index.html | 619 + .../include/kframework/builtin/index.html | 405 + .../kframework/builtin/json/index.html | 428 + .../kframework/builtin/kast/index.html | 966 + .../kframework/builtin/prelude/index.html | 399 + .../include/kframework/builtin/rat/index.html | 620 + .../builtin/substitution/index.html | 484 + .../1_basic/01_installing/index.html | 473 + .../k-tutorial/1_basic/02_basics/index.html | 612 + .../k-tutorial/1_basic/03_parsing/index.html | 780 + .../1_basic/04_disambiguation/index.html | 729 + .../k-tutorial/1_basic/05_modules/index.html | 670 + .../1_basic/06_ints_and_bools/index.html | 608 + .../1_basic/07_side_conditions/index.html | 621 + .../08_literate_programming/index.html | 571 + .../1_basic/09_unparsing/index.html | 718 + .../k-tutorial/1_basic/10_strings/index.html | 554 + .../k-tutorial/1_basic/11_casts/index.html | 592 + .../1_basic/12_syntactic_lists/index.html | 577 + .../1_basic/13_rewrite_rules/index.html | 696 + .../1_basic/14_evaluation_order/index.html | 707 + .../1_basic/15_configurations/index.html | 663 + .../1_basic/16_collections/index.html | 742 + .../1_basic/17_cell_multiplicity/index.html | 577 + .../18_equality_and_conditionals/index.html | 483 + .../1_basic/19_debugging/index.html | 912 + .../k-tutorial/1_basic/20_backends/index.html | 503 + .../1_basic/21_symbolic_execution/index.html | 583 + .../k-tutorial/1_basic/22_proofs/index.html | 819 + k-distribution/k-tutorial/1_basic/index.html | 401 + .../2_intermediate/01_macros/index.html | 567 + .../02_fresh_constants/index.html | 397 + .../2_intermediate/03_klabels/index.html | 397 + .../2_intermediate/04_overloading/index.html | 397 + .../05_matching_logic/index.html | 397 + .../06_function_context/index.html | 397 + .../07_record_productions/index.html | 397 + .../2_intermediate/08_fun_and_let/index.html | 397 + .../2_intermediate/09_as/index.html | 397 + .../10_matching_operator/index.html | 397 + .../11_evaluation_order/index.html | 397 + .../12_floats_and_machine_ints/index.html | 397 + .../2_intermediate/13_substitution/index.html | 397 + .../2_intermediate/14_io/index.html | 397 + .../15_string_buffers_and_bytes/index.html | 397 + .../2_intermediate/16_kore/index.html | 397 + .../17_debugging_proofs/index.html | 397 + .../k-tutorial/2_intermediate/index.html | 430 + .../3_advanced/1_parsing/1_layout/index.html | 387 + .../1_parsing/2_ambiguities/index.html | 387 + .../1_parsing/3_locations/index.html | 387 + .../3_advanced/2_libraries/1_json/index.html | 387 + .../3_advanced/2_libraries/2_rat/index.html | 387 + .../3_advanced/2_libraries/3_ffi/index.html | 387 + .../3_extending_k/1_custom_hooks/index.html | 387 + .../3_extending_k/2_scripting_k/index.html | 387 + .../k-tutorial/3_advanced/index.html | 387 + k-distribution/k-tutorial/index.html | 398 + .../pl-tutorial/1_k/1_lambda/index.html | 404 + .../1_k/1_lambda/lesson_1/NOTES/index.html | 379 + .../1_k/1_lambda/lesson_1/index.html | 471 + .../1_k/1_lambda/lesson_2.5/NOTES/index.html | 379 + .../1_k/1_lambda/lesson_2/NOTES/index.html | 385 + .../1_k/1_lambda/lesson_2/index.html | 453 + .../1_k/1_lambda/lesson_3/NOTES/index.html | 377 + .../1_k/1_lambda/lesson_3/index.html | 418 + .../1_k/1_lambda/lesson_4/NOTES/index.html | 376 + .../1_k/1_lambda/lesson_4/index.html | 412 + .../1_k/1_lambda/lesson_5/NOTES/index.html | 381 + .../1_k/1_lambda/lesson_5/index.html | 465 + .../1_k/1_lambda/lesson_6/index.html | 421 + .../1_k/1_lambda/lesson_7/NOTES/index.html | 379 + .../1_k/1_lambda/lesson_7/index.html | 459 + .../exercises/SK-combinators/index.html | 415 + .../lesson_8/exercises/mu-derived/index.html | 380 + .../1_k/1_lambda/lesson_8/index.html | 432 + .../1_k/1_lambda/lesson_9/index.html | 445 + .../1_k/1_lambda/lesson_9/lambda/index.html | 510 + .../pl-tutorial/1_k/2_imp/NOTES/index.html | 379 + .../pl-tutorial/1_k/2_imp/index.html | 403 + .../pl-tutorial/1_k/2_imp/lesson_1/index.html | 541 + .../pl-tutorial/1_k/2_imp/lesson_2/index.html | 453 + .../pl-tutorial/1_k/2_imp/lesson_3/index.html | 591 + .../exercises/purely-syntactic/index.html | 382 + .../uninitialized-variables/index.html | 381 + .../pl-tutorial/1_k/2_imp/lesson_4/index.html | 497 + .../1_k/2_imp/lesson_5/imp/index.html | 547 + .../pl-tutorial/1_k/2_imp/lesson_5/index.html | 400 + .../pl-tutorial/1_k/3_lambda++/index.html | 399 + .../lesson_1/exercises/NOTES/index.html | 378 + .../lesson_1/exercises/callCC/index.html | 378 + .../from-call-CC-to-callcc/index.html | 377 + .../from-callcc-to-call-CC/index.html | 381 + .../1_k/3_lambda++/lesson_1/index.html | 486 + .../1_k/3_lambda++/lesson_2/index.html | 535 + .../1_k/3_lambda++/lesson_3/NOTES/index.html | 393 + .../1_k/3_lambda++/lesson_3/index.html | 408 + .../1_k/3_lambda++/lesson_4/NOTES/index.html | 397 + .../1_k/3_lambda++/lesson_4/index.html | 469 + .../1_k/3_lambda++/lesson_5/index.html | 444 + .../lesson_6/exercises/NOTES/index.html | 378 + .../lesson_6/exercises/callCC/index.html | 379 + .../from-call-CC-to-callcc/index.html | 377 + .../from-callcc-to-call-CC/index.html | 378 + .../1_k/3_lambda++/lesson_6/index.html | 394 + .../1_k/3_lambda++/lesson_6/lambda/index.html | 542 + .../pl-tutorial/1_k/4_imp++/index.html | 408 + .../1_k/4_imp++/lesson_1/NOTES/index.html | 381 + .../1_k/4_imp++/lesson_1/index.html | 465 + .../1_k/4_imp++/lesson_2/NOTES/index.html | 376 + .../1_k/4_imp++/lesson_2/index.html | 447 + .../1_k/4_imp++/lesson_3/NOTES/index.html | 377 + .../1_k/4_imp++/lesson_3/index.html | 492 + .../1_k/4_imp++/lesson_4/NOTES/index.html | 382 + .../1_k/4_imp++/lesson_4/index.html | 484 + .../1_k/4_imp++/lesson_5/index.html | 434 + .../1_k/4_imp++/lesson_6/index.html | 569 + .../1_k/4_imp++/lesson_7/index.html | 465 + .../1_k/4_imp++/lesson_8/imp/index.html | 954 + .../1_k/4_imp++/lesson_8/index.html | 404 + .../pl-tutorial/1_k/5_types/index.html | 392 + .../1_k/5_types/lesson_1.9/NOTES/index.html | 383 + .../1_k/5_types/lesson_1/NOTES/index.html | 376 + .../1_k/5_types/lesson_1/index.html | 492 + .../1_k/5_types/lesson_2/NOTES/index.html | 377 + .../1_k/5_types/lesson_2/index.html | 447 + .../1_k/5_types/lesson_3/index.html | 434 + .../1_k/5_types/lesson_4/NOTES/index.html | 380 + .../1_k/5_types/lesson_4/index.html | 577 + .../1_k/5_types/lesson_5/index.html | 433 + .../1_k/5_types/lesson_6/NOTES/index.html | 377 + .../1_k/5_types/lesson_6/index.html | 487 + .../1_k/5_types/lesson_7/NOTES/index.html | 378 + .../1_k/5_types/lesson_7/index.html | 492 + .../1_k/5_types/lesson_8/NOTES/index.html | 377 + .../1_k/5_types/lesson_8/index.html | 425 + .../1_k/5_types/lesson_9.5/NOTES/index.html | 376 + .../1_k/5_types/lesson_9/index.html | 542 + k-distribution/pl-tutorial/1_k/index.html | 397 + .../1_simple/1_untyped/NOTES/index.html | 393 + .../1_untyped/simple-untyped/index.html | 1709 ++ .../2_typed/1_static/NOTES/index.html | 380 + .../functions-with-throws/tests/index.html | 379 + .../1_static/simple-typed-static/index.html | 1150 + .../2_dynamic/simple-typed-dynamic/index.html | 1142 + .../1_simple/2_typed/programs/index.html | 379 + .../2_kool/1_untyped/kool-untyped/index.html | 1522 + .../1_dynamic/kool-typed-dynamic/index.html | 1385 + .../2_kool/2_typed/2_static/NOTES/index.html | 380 + .../2_static/kool-typed-static/index.html | 1424 + .../1_environment/fun-untyped/index.html | 1225 + .../2_substitution/fun-untyped/index.html | 720 + .../4_logik/basic/logik/index.html | 710 + .../pl-tutorial/2_languages/index.html | 396 + k-distribution/pl-tutorial/NOTES/index.html | 455 + k-distribution/pl-tutorial/index.html | 578 + .../checks/markdownErrorLocation/index.html | 394 + .../regression-new/imp++-llvm/imp/index.html | 961 + .../set-balance-spec/index.html | 433 + .../kprove-markdown/set-balance/index.html | 1227 + .../markdownSelectors/a-spec/index.html | 381 + .../markdownSelectors/test/index.html | 407 + news/k-framework-demo/index.html | 354 + overview/index.html | 356 + projects/index.html | 447 + sitemap.xml | 711 + 219 files changed, 120426 insertions(+) create mode 100644 CNAME create mode 100644 assets/css/Firefly-Download-Icon-Inverted.32636383.png create mode 100644 assets/css/Firefly-Download-Icon.8094a4f0.png create mode 100644 assets/css/fontawesome-webfont.0caf0c90.ttf create mode 100644 assets/css/fontawesome-webfont.3981e506.eot create mode 100644 assets/css/fontawesome-webfont.58488e7e.woff2 create mode 100644 assets/css/fontawesome-webfont.a9323ae9.svg create mode 100644 assets/css/fontawesome-webfont.ed962b83.woff create mode 100644 assets/css/iconfont.960c72b2.eot create mode 100644 assets/css/iconfont.a07d77e0.woff2 create mode 100644 assets/css/iconfont.b2a06094.woff create mode 100644 assets/css/index.css create mode 100644 assets/css/owl.video.play.e7a23fb2.png create mode 100644 assets/css/select-arrow.b8e89c0c.svg create mode 100644 assets/img/404.png create mode 100644 assets/img/500.png create mode 100644 assets/img/android-chrome-192x192.png create mode 100644 assets/img/android-chrome-512x512.png create mode 100644 assets/img/apple-touch-icon.png create mode 100644 assets/img/favicon-16x16.png create mode 100644 assets/img/favicon-32x32.png create mode 100644 assets/img/favicon.ico create mode 100644 assets/img/hero/kerc20-hero-image.png create mode 100644 assets/img/hero/test-coverage-hero-image.png create mode 100644 assets/img/hero/test-runner-hero-image.png create mode 100644 assets/img/k-logo-dark.png create mode 100644 assets/img/k-logo.png create mode 100644 assets/img/lang.jpg create mode 100644 assets/img/new.gif create mode 100644 assets/img/rv-logo-dark.png create mode 100644 assets/img/rv-logo.png create mode 100644 assets/img/try-it-online.jpg create mode 100644 assets/js/index.js create mode 100644 assets/sass/icons/iconfont.css create mode 100644 assets/sass/icons/iconfont.eot create mode 100644 assets/sass/icons/iconfont.svg create mode 100644 assets/sass/icons/iconfont.ttf create mode 100644 assets/sass/icons/iconfont.woff create mode 100644 assets/sass/icons/iconfont.woff2 create mode 100644 docs/cheat_sheet/index.html create mode 100644 docs/ktools/index.html create mode 100644 docs/user_manual/index.html create mode 100644 editor_support/index.html create mode 100644 events/k-a-rewriting-based-language-definitional-framework/index.html create mode 100644 exports/K.epub create mode 100644 exports/K.html create mode 100644 exports/K.mobi create mode 100644 exports/K.pdf create mode 100644 faq/index.html create mode 100644 index.html create mode 100644 install create mode 100644 k-distribution/INSTALL/index.html create mode 100644 k-distribution/include/kframework/builtin/domains/index.html create mode 100644 k-distribution/include/kframework/builtin/ffi/index.html create mode 100644 k-distribution/include/kframework/builtin/index.html create mode 100644 k-distribution/include/kframework/builtin/json/index.html create mode 100644 k-distribution/include/kframework/builtin/kast/index.html create mode 100644 k-distribution/include/kframework/builtin/prelude/index.html create mode 100644 k-distribution/include/kframework/builtin/rat/index.html create mode 100644 k-distribution/include/kframework/builtin/substitution/index.html create mode 100644 k-distribution/k-tutorial/1_basic/01_installing/index.html create mode 100644 k-distribution/k-tutorial/1_basic/02_basics/index.html create mode 100644 k-distribution/k-tutorial/1_basic/03_parsing/index.html create mode 100644 k-distribution/k-tutorial/1_basic/04_disambiguation/index.html create mode 100644 k-distribution/k-tutorial/1_basic/05_modules/index.html create mode 100644 k-distribution/k-tutorial/1_basic/06_ints_and_bools/index.html create mode 100644 k-distribution/k-tutorial/1_basic/07_side_conditions/index.html create mode 100644 k-distribution/k-tutorial/1_basic/08_literate_programming/index.html create mode 100644 k-distribution/k-tutorial/1_basic/09_unparsing/index.html create mode 100644 k-distribution/k-tutorial/1_basic/10_strings/index.html create mode 100644 k-distribution/k-tutorial/1_basic/11_casts/index.html create mode 100644 k-distribution/k-tutorial/1_basic/12_syntactic_lists/index.html create mode 100644 k-distribution/k-tutorial/1_basic/13_rewrite_rules/index.html create mode 100644 k-distribution/k-tutorial/1_basic/14_evaluation_order/index.html create mode 100644 k-distribution/k-tutorial/1_basic/15_configurations/index.html create mode 100644 k-distribution/k-tutorial/1_basic/16_collections/index.html create mode 100644 k-distribution/k-tutorial/1_basic/17_cell_multiplicity/index.html create mode 100644 k-distribution/k-tutorial/1_basic/18_equality_and_conditionals/index.html create mode 100644 k-distribution/k-tutorial/1_basic/19_debugging/index.html create mode 100644 k-distribution/k-tutorial/1_basic/20_backends/index.html create mode 100644 k-distribution/k-tutorial/1_basic/21_symbolic_execution/index.html create mode 100644 k-distribution/k-tutorial/1_basic/22_proofs/index.html create mode 100644 k-distribution/k-tutorial/1_basic/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/01_macros/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/02_fresh_constants/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/03_klabels/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/04_overloading/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/05_matching_logic/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/06_function_context/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/07_record_productions/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/08_fun_and_let/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/09_as/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/10_matching_operator/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/11_evaluation_order/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/12_floats_and_machine_ints/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/13_substitution/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/14_io/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/15_string_buffers_and_bytes/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/16_kore/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/17_debugging_proofs/index.html create mode 100644 k-distribution/k-tutorial/2_intermediate/index.html create mode 100644 k-distribution/k-tutorial/3_advanced/1_parsing/1_layout/index.html create mode 100644 k-distribution/k-tutorial/3_advanced/1_parsing/2_ambiguities/index.html create mode 100644 k-distribution/k-tutorial/3_advanced/1_parsing/3_locations/index.html create mode 100644 k-distribution/k-tutorial/3_advanced/2_libraries/1_json/index.html create mode 100644 k-distribution/k-tutorial/3_advanced/2_libraries/2_rat/index.html create mode 100644 k-distribution/k-tutorial/3_advanced/2_libraries/3_ffi/index.html create mode 100644 k-distribution/k-tutorial/3_advanced/3_extending_k/1_custom_hooks/index.html create mode 100644 k-distribution/k-tutorial/3_advanced/3_extending_k/2_scripting_k/index.html create mode 100644 k-distribution/k-tutorial/3_advanced/index.html create mode 100644 k-distribution/k-tutorial/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_1/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_1/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_2.5/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_2/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_2/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_3/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_3/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_4/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_4/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_5/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_5/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_6/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_7/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_7/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/exercises/SK-combinators/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/exercises/mu-derived/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_9/index.html create mode 100644 k-distribution/pl-tutorial/1_k/1_lambda/lesson_9/lambda/index.html create mode 100644 k-distribution/pl-tutorial/1_k/2_imp/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/2_imp/index.html create mode 100644 k-distribution/pl-tutorial/1_k/2_imp/lesson_1/index.html create mode 100644 k-distribution/pl-tutorial/1_k/2_imp/lesson_2/index.html create mode 100644 k-distribution/pl-tutorial/1_k/2_imp/lesson_3/index.html create mode 100644 k-distribution/pl-tutorial/1_k/2_imp/lesson_4/exercises/purely-syntactic/index.html create mode 100644 k-distribution/pl-tutorial/1_k/2_imp/lesson_4/exercises/uninitialized-variables/index.html create mode 100644 k-distribution/pl-tutorial/1_k/2_imp/lesson_4/index.html create mode 100644 k-distribution/pl-tutorial/1_k/2_imp/lesson_5/imp/index.html create mode 100644 k-distribution/pl-tutorial/1_k/2_imp/lesson_5/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/callCC/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/from-call-CC-to-callcc/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/from-callcc-to-call-CC/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_2/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_3/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_3/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_4/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_4/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_5/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/callCC/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/from-call-CC-to-callcc/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/from-callcc-to-call-CC/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/index.html create mode 100644 k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/lambda/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_1/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_1/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_2/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_2/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_3/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_3/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_4/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_4/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_5/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_6/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_7/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_8/imp/index.html create mode 100644 k-distribution/pl-tutorial/1_k/4_imp++/lesson_8/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_1.9/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_1/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_1/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_2/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_2/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_3/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_4/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_4/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_5/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_6/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_6/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_7/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_7/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_8/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_8/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_9.5/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/1_k/5_types/lesson_9/index.html create mode 100644 k-distribution/pl-tutorial/1_k/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/1_simple/1_untyped/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/1_simple/1_untyped/simple-untyped/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/exercises/functions-with-throws/tests/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/simple-typed-static/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/1_simple/2_typed/2_dynamic/simple-typed-dynamic/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/1_simple/2_typed/programs/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/2_kool/1_untyped/kool-untyped/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/2_kool/2_typed/1_dynamic/kool-typed-dynamic/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/2_kool/2_typed/2_static/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/2_kool/2_typed/2_static/kool-typed-static/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/1_environment/fun-untyped/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/2_substitution/fun-untyped/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/4_logik/basic/logik/index.html create mode 100644 k-distribution/pl-tutorial/2_languages/index.html create mode 100644 k-distribution/pl-tutorial/NOTES/index.html create mode 100644 k-distribution/pl-tutorial/index.html create mode 100644 k-distribution/tests/regression-new/checks/markdownErrorLocation/index.html create mode 100644 k-distribution/tests/regression-new/imp++-llvm/imp/index.html create mode 100644 k-distribution/tests/regression-new/kprove-markdown/set-balance-spec/index.html create mode 100644 k-distribution/tests/regression-new/kprove-markdown/set-balance/index.html create mode 100644 k-distribution/tests/regression-new/markdownSelectors/a-spec/index.html create mode 100644 k-distribution/tests/regression-new/markdownSelectors/test/index.html create mode 100644 news/k-framework-demo/index.html create mode 100644 overview/index.html create mode 100644 projects/index.html create mode 100644 sitemap.xml diff --git a/CNAME b/CNAME new file mode 100644 index 00000000000..f5515ee7595 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +kframework.org diff --git a/assets/css/Firefly-Download-Icon-Inverted.32636383.png b/assets/css/Firefly-Download-Icon-Inverted.32636383.png new file mode 100644 index 0000000000000000000000000000000000000000..c87605a3d70a8940e7b547a9b635d7b16e4a80f5 GIT binary patch literal 571 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-soCO|{#S9F3${@^GvDCf{D9DoT z=V7Kx3{!3H#Rm@RFoGN7Zny3L`6l0hKBh0`FeYM zxr2b4yPKPfi?gGngM)*;y}g~St&NS1wY9aCiHWhXv5}FHp`oFHfq}lBo-T7@;bfr0 z7?Zr+T^Kr8Wj%mwZci7-kcwMxuO9C^WFXR-n0$z5FVEhVdo}M`zt`{a6j}H>p;)>;SGa5`8rZVeRFzh(Hb>4lifTn)N2h0bw9j*)SZ14;J#60Ks zTV8wSds}{||6r&PT6t~S=Z5XNqP`M#4u!!>ogA*MPV+IF@X<<`X;a99 z7ES8lQK@yUVw`9EPIJfU|FH}Q#D2G4>)v~pc?07F@wtUtt=>JUc3?QO#e7$U)Bjgb zHvc-k!rXL&L%1oQfzl<<{DO=X>)1Oc*fF@I)CzQL_-$aY<@Q8Q=I9BWjmno#f4s>0 zHT6&0>0Qi=Zk?ZfRf(NtI{W5>@d?c{S$R5|m1|xf{>Ojhi*tdk^e+)$7%_Od`njxg HN@xNAMg{L! literal 0 HcmV?d00001 diff --git a/assets/css/Firefly-Download-Icon.8094a4f0.png b/assets/css/Firefly-Download-Icon.8094a4f0.png new file mode 100644 index 0000000000000000000000000000000000000000..e0fdca7b4c45cfd913001c3a4e58442e40f5d6b2 GIT binary patch literal 586 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 z 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 d0mW2@EHO9NV8h3u2x_sp}KECIB>@9+Qn{FBV{ zJTr4<=FH5QnRCvZnOu5{#2&j@Vw_3r#2?PKa|-F4dtx{Ptp0P(#$Rn88poKQO<|X@ zOW8U$o^4<&*p=|D!J9EVI}`7V*m|~_En`<8B*M-{$Q6LOSfmND1Z!lia3ffVHQ_mu zwE*t)c_Na~v9UCh+1x2p=FeL7+|;L;bTeUAHg(eEDN-*};9m=WXwJOhO^lgVEPBX5Gh_bo8QSSFY{vM^4hsD-mzHX!X?>-tpg$&tfe27?V1mUAbb} z1dVewCjIN7C5$=lXROG% zX4%HIa)VTc_%^_YE?u@}#b58a4S8RL@|2s`UUucWZ{P9NJxp5Fi!#@Xx+(mZ+kdt3 zobw#*|6)Z(BxCGw^Gi+ncRvs|a|3xz=tRA9@HDV~1eqD)`^`KTPEg`UdXhq18})-@}JTHp30^)`L{?* z;c)alkYAc@67|W!7RDPu6Tsy@xJCK8{2T9-fJw6?@=A(w^}KCVjwlOd=JTO=3Zr+< zIdd?1zo-M^76}Jf!cpLfH`+2q=}d5id5XLcPw#xVocH5RVG7;@@%R>Sxpy8{(H9JH zY1V)?J1-AIeIxKhoG1%;AWq7C50ok3DSe?!Gatbry_zpS*VoS6`$~lK9E?(!mcrm1 z^cLZ1fmx5Ds`-ethCvMtDTz zMd=G1)gR$jic|1SaTLaL-{ePJOFkUs%j634IMp}dnR5yGMtsXmA$+JDyxRuSq*)bk zt3tSN2(J<@ooh3|!(R%VsE#5%U{m-mB7fcy&h(8kC(#>yA(JCmQ6|O1<=_U=0+$AY zC)@~M`UboR6Xm2?$e8Z$r#u8)TEP0~`viw@@+){#874R?kHRP|IU4&!?+9Cy52v^I zPV4Xd{9yc;)#l?0VS#6g@ z`#y))03Laq@^6Z#Z*uvzpl{$JzFJgn&xHlNBS|Eb!E@}~Z$^m!a9k34KX zT|VETZ;B_E$Ai8J#t5#kATCAUlqbr&P~-s)k^FfWyz}iK@`B$FI6L0u1uz5fgfqgU zRBmB>F8s_qp1HWm1!aXOEbpf`U?X|>{F`8Md500U3i;Mh9Kvbd(CeuC>077ww4g^h zKgM(A48W`XEDE~N*Th^NqP#S7&^w2Vpq+df2#@A*&4u~I+>t)9&GYcop9OtUo=;2d zGSq?IMBAYZffMC1v^|Z|AWdQ38UdJS4(H(nFI<|%=>0iAn3lvcSjIR(^7r7QuQI0a zm+@Z9QXmf!efG1**%Ryq_G-AQs-mi^*WO#v+tE9_cWLjXz1Q{L-uqzh z-Vb`UBlaT|M;ecG9GQJ&>5)s1TzBO5BM%;V{K#`h4juXPkq?e&N9{)|j&>ZKeRS#3 zOOIZ6^!B3<9)0}ib4L#y{qxZe{ss8}C5PC)Atkb2XK%PS)jPMht9Na0x_5hTckhAT zOz+FRJ-xk0*b(QE(2)^GQb*<<={mCZNczb3Bi%<19LXGc`AE-^-lOcO^Jw^J>ge2~ zT}Rg*O&{HUwEO6RqnV>GAMK$M`~TX%q<>-my#5LOBmex)pWgq|V@{jX>a;k`PLtE< zG&ohK;*_0|<6n-C93MK4I*vGc9shKE;CSEhp5tA|KOBE|yyJM=@i)g?jyD~Db^OKg zhNH*vXUCr$uRH$ec+K$#$E%LtJ6>`8&T-iBTicKH)SNMZS zB8UG!{1{Y=QL&oLMgLzR(}0Y>sN0TqgG|kLqv_VcVSLD)aJ?AC^D!bLa6K5Ut1)YA zghRXq;YBrYhrzOK23vXorq6v~v*CBb?*bYw$l-3J@cY5H}8Gr;t8{e8!J}L*5e>!hOQnM3g=8eoXDiYZBlmBW?=(Qvo;ib;hP4-|5>J zo6*MD%*UW90?aI=ncV;fJZB$fY|a73<^rd=!0(I%TsLE9TH#hRHV<&~b~82~@n<2= z1-*oTQL{zWh}4H zGjX>}SbW{R;(k^VBouiebp<&Q9S1P`GIlM(uLaz7TNt~37h`FJ-B1j-jj@}iF}B$Yhy1^cv|oM`3X|20-GXwq z0QapK#%@FUZ9ik|D}cWpad#li_7EK6?wrrq4l5kOc5H@2*p5ENc6Pxb%`OEl1=q{i zU1`Sdjxcu562^8fWbEEDi1(A=o?`5)DC_=i#vVX^45ZpSrpE35`g>WA+_QYDo!1%Byk?;4A*Y^%H_McC{^)mJp(mf6Mr$1rr8Klp< z@9$&m+0Bd{OfmMH!q^XxU*>tneq@E)#@LU6-}5Nz`DYpXi4*QA#$MRP*w045^)U8x zl=XAu_Y36n%QPIqUi^r$mjH7JWgdEmv0oiv>}BNj>jtO;GSSiGr=LO--M;f3$4%-kcdA5=kp1;?w1)iU%_3WyqWQmjf@AcVZ3xc<7I~# zFHgbYU4b-}3LN4>NEZft6=17@TlH$jBZ!NjjQC2%Yu;hJu9NWwZ@DynQp=tBj8Wjw$e9<5A{>pD{iW zZqogXPX_!HxT$LypN98z;4>ox_a@^r4>R7`&G@Wh#%HG(p9^;e{AczsK5r7^^FxfE z1>DZ=f&=UVl(8@Y2be_)+!n?cUjPUAC8+bcuQI+Aab3F@Uxu=lJpt$oQq38DE=X{7U3=m6P!eKVy6&>UK5q-?WYKFCon} zcwbuv_Xy+HBi;48;XYwJy_)eGknfFvzbOHS_{~WFRt)zJ zijpU?=0x zkwe%IkXL3J<39wBKYX6?A1iQgGX8uw<3E|t_zN{~?=k)}E8{7uHGX6%I@xLJ5o5hU3g}A@9GyXR4dV3$^??m7ZGyeD0jQ;~={sZ6d0>}3fa8JQ~ z#Q6Kj>z^jLM;Px_;9g|>2lp6?Oy32JW8UD|ZH#LugXW9=mzl&9Ov2uUBsVZgS;-{zFeKKwOfnbOFe$i&Nu~HMe}YLB^Wk1(Qs^2cg^_pF zV@!&4GARo9*fb`^0bBDClWMmysSaUvuQREB7n2(BZbV*M)y$0@8CXG!nX&m5FyO}f|^_bYrq)EtQ3jEW$ z;E;a$iwt`}|2xOlf`@fNIFLzjYz@1@vMcQB;TbKpR_b1>hK{W@uw#sVI6JqW86H;C ztQ;P%k-Nf8ey^cATop^SG>2V0mP~Z;=5SL5H#}UQ-NIABSS;9=rYBEjx70^!0%|%? z6H%vBBRb1si5UK{xwWyrI#6mdl~NhlB{DFSQ4f#HYnQ4Tr9_9++!S!BCwdbtt-PhV z2|9^MD=%7f(aK494ZCcz4t6dY`X;_62ywrIPovV+sT0pH?+{mwxjh%^> zh_?T`uiv2^KX}>z4HVY!Y%V1QDcBvi>!sD@MEbj99(bg@lcBxTD9~gYzfIm>7jFFl;^hEgOD8Clhu+6jw>0z&OhJ=2DoJ42R3QaA zWOOLCseE6;o!xG!?ra~f^>o~D+1yBE?qxT0^k{Eo?@YU;MW)Dk7u-Ja^-t=jry`Nm z^!iU;|I=I9eR|&CLf`eUDtM5Q2iZ}-MO8dOpsgMv)7Ge`r77T1(I!FduCuw%>+xyh zv~lQApLDjitE7#8{D!C9^9KL8O}^S6)E?BVMw_qP`rdoia-YG@KjOf%Qh4Bnt8Mcoi9h#JRYY3kEvn*UVbReO50BrmV+ z;MZw4c4)uX7XS38vL%mZ(`R5ww4GL|?R_+gqd5vmpyBRdmy(bdo1(0=sB8@yxdn)~lxbJjigu9=)pPhNBHJ@OCr@Hfy7 zMKpelG=3bck_~6$*c^5qw$ra?cd)OqZ$smlOvLJWm7$z_{bM*t_;dW+m52!n&yhSI z0)LYKbKpO(yrBb!r(;1ei=F17uvjq5XquDp?1L{4s1~Hu@I46id3j>UeJTcx0fQ!$ z&o9RBJJn}4D52n3P@|_Z2y%SzQ!WJ22E$LC;WNiX*{T?@;Pj!}DC|#~nZ>-HpIS<2 za>P22_kUiz%sLYqOLTT7B=H>lmeZ$;kr+*xoe54)>BRz1U!muO7@@$$G=552gn*!9 zJ(lYeq-%(OX#D?e|IqRz)>flsYTDXrc#58b-%`5Jmp#FEV%&+o&w?z>k%vUF^x&@! zd}aqf<-yN_(1OoX0~BNi5+XV}sW1Mo_rky5sw&#MPqeg*Iv+ow^-qi|g!>=1)d@|( zIJ=tJ4Yw%YfhiFbenxIIR1N1mmKeveFq!eFI?k+2%4<3`YlV3hM zS45R<;g^uVtW5iZbSGet@1^}8sBUEktA@_c>)?i}IE-EQTR@N-j%b9$Syc1{S3U?8e~d3B1?Lij0H27USiF&gR}A>wG-vBGIPuh*4ry;{Khxekv}wCTm%_>vhFZSJ)Pw2iv6Q4YVoQ`J2w?yCkiavVTWeVa)j|q=T9@J0pTtcQX!VHnIM6Al- z^*7Og!1y$xN4)5fYK&2X5x-Om4A;1k20|=O+$wl^1T}IRHkcq<^P$a{C0fAii(ypB z{ef1n(U1a&g|>5}zY?N{!tOqN_uYr3yPejjJ>KeR7IW!#ztw(g!*Hj~SpH|bkC%t5kd^Q2w*f{D8tJPwQ z++kT&2yEHVY_jXXBg!P7SUbSC;y1@rj$sqoMWF2=y$%ua1S%Nn_dvGwR*;O^!Fd?1 z8#WkKL1{>+GcdW?sX2^RC#k8D;~{~1M4#fpPxGDbOWPf?oRS^(Y!}arFj}-9Ta5B$ zZhP0#34P$Fx`;w}a*AU%t?#oPQ+U$umO}+(WIxS!wnBcQuM;%yiYhbKnNwXa7LiRjmf+(2(ZG}wiz%sgWJi>jgGIsPnZ=KfX?8mJ2^L!4-hBx#UR zZa((80+3k2t!n9h@La(dm&Qrs_teRTeB}Y= zShqm6zJdPGS+juA6^_Mu3_1sz1Hvx#*|M6pnqz`jk<&F@Wt;g%i&gunm7lM5)wE@q zvbn6Q=6IU;C_@UMWs|fmylAcBqr(MowarQT7@9BsXzyH534G z1e0`Rlnqb_RAIW{M7dQoxdg$ z;&VZRA?1jrgF9nN0lg?)7VU>c#YI}iVKVtMV&I^SUL2sA9Xn2<8mY@_)qZF;^OV!$ z;QVMjZTMUtC^eDXuo)DkX75sJ*#d6g{w?U1!Fbwid(nlSiF_z zStRqVrV`8MJBg{|ZM^Kzrps2`fI(Eq&qUZ%VCjWLQn)GthGkFz0LcT(tUy)_i~PWb ze1obC@Hu0-n}r4LO@8%lp3+uoAMDWnx#|WFhG&pQo@eXSCzjp(&Xl4$kfY60LiIx^ zs+SA=sm(K<-^V>WxOdf!NXC0qN&86q?xh#r;L)>)B|KXvOuO+4*98HO?4jfcxpk`^ zU^8+npM|PWn*7Nj9O_U%@pt)^gcu2m|17^}h}J6KWCJ>t zv@Qsc2z0711@V0%PDVqW?i)a)=GC>nC+Kx~*FeS}p5iNes=&dpY_lv9^<|K`GOJMG zE5^7&yqgjFK*qz6I-su3QFo4`PbRSbk|gNIa3+>jPUVH}5I6C)+!U&5lUe4HyYIe4 z>&a$lqL(n;XP)9F?USc6ZA6!;oE+i8ksYGTfe8;xbPFg9e&VVdrRpkO9Zch#cxJH7 z%@Bt~=_%2;shO9|R5K-|zrSznwM%ZBp3!<;&S0$4H~PJ&S3PrGtf}StbLZKDF_le= z9k)|^Do10}k~3$n&#EP*_H_-3h8^ZuQ2JXaU@zY|dW@$oQAY%Z@s0V8+F~YQ=#aqp z=je#~nV5}oI1J`wLIQ^&`Mj01oDZ;O`V>BvWCRJd%56g!((T@-{aY6fa;a0Vs+v@O z0IK2dXum&DKB?-ese^F~xB8#t6TFirdTy3(-MedKc;2cI&D}ztv4^I%ThCj* ziyQ90UpuyI`FYm%sUlWqP(!Qcg-7n%dk-&uY15{cw0HD+gbuz}CQP*u8*(+KCYFiz80m1pT=kmx0(q(xrCPMsUH1k{mefDSp) zD5G^q?m1N%Jbl&_iz65-uBs{~7YjNpQ%+H^=H7i%nHnwimHSGDPZ(Z;cWG1wcZw|v z%*juq&!(bo!`O7T>Wkon^QZ-rLvkd_^z#)5Hg zxufObryg!`lzZc#{xRRv6592P5fce0Hl-xEm^*nBcP$v z0`KR64y6=xK{a*oNxW9jv+9)$I9SxN-Oig_c%UK7hZDj_WEb$BDlO#*M?@b>eU7 zxN!%UE+w#Wg$bqFfc# zeDOpwnoY)%(93rx(=q9nQKg6?XKJZrRP#oo(u>h_l6NOMld)_IF( zs6M+iRmTC+ALc}C7V>JEuRjk9o)*YO8Y}oKQNl2t?D;qFLv4U`StSyoFzFYuq>i@C zEa1!N?B0BK0gjTwsL04McVmu=$6B!!-4bi1u_j7ZpCQm-l2u7AlYMmx zH!4a*@eEhENs{b-gUMy{c*AjMjcwAWGv@lW4YQtoQvvf*jQ2wL8+EGF4rQjAc;uiEzG%4uf z9wX{X3(U5*s$>6M z)n+q=_&#l6nEa|4ez8YOb9q{(?8h1|AYN<53x+g()8?U_N+)sEV;tdoV{pJ^DTD)ZvO|;^t&(V6L2z~TSiWu zI&#bLG#NGMHVY^mJXXH_jBGA?Np1q;)EYzS3U=1VKn3aXyU}xGihu`L8($R|e#HpJ zzo`QozgXO&25>bM*l>oHk|GV&2I+U-2>)u7C$^yP7gAuth~}8}eO^2>X_8+G@2GX0 zUG8;wZgm*=I4#ww{Ufg2!~-Uu*`{`!$+eE)in1}WPMJ%i|32CjmFLR8);bg^+jrF* zW0A!Zuas6whwVl!G+Vp(ysAHq9%glv8)6>Sr8w=pzPe1s`fRb9oO^yGOQW^-OZ=5? zNNaJk+iSAxa}{PtjC&tu_+{8J_cw=JiFhMqFC!}FHB@j}@Q$b&*h-^U)Y&U$fDWad zC!K&D&RZgww6M(~`@DA92;#vDM1_`->Ss*g8*57^PdIP-=;>u#;wD4g#4|T7ZytTY zx(Q8lO+5Ris0v-@GZXC@|&A*DPrZ51ZeSyziwc>%X>dNyCAL zOSDTJAwK7d2@UOGmtsjCPM9{#I9Gbb7#z25{*;Tyl-Zho(Oh~-u(5CLQl;2ot%#Nl z_cf{VEA=LuSylKv$-{%A=U+QBv0&8bP;vDOcU|zc3n!Nu{9=5j6^6DL&6tm-J4|~) z9#1w(@m3N|G3n9Xf)O<|NO+P)+F(TgqN3E#F8`eIrDZn0=@MQ%cDBb8e*D_eBUXH+ zOtn|s5j9y2W~uaQm*j{3fV=j|wxar?@^xjmPHKMYy0eTPkG*<=QA$Wf)g`tfRlZ0v ztEyRwH(8<%&+zbQ+pg>z^Ucf8Jj>x$N*h{buawh;61^S+&ZX>H^j?#nw!}!~35^Z# zqU|=INy-tBD+E^RCJdtvC_M2+Bx*2%C6nTfGS!1b*MJvhKZZPkBfkjIFf@kLBCdo) zszai4sxmBgklbZ>Iqddc=N%2_4$qxi==t>5E!Ll+-y(NJc+^l)uMgMZH+KM<|+cUS^t~AUy&z{UpW?AA~QO;;xntfuA^Rj7SU%j)& zVs~)K>u%=e(ooP|$In{9cdb}2l?KYZinZ8o+i;N-baM#CG$-JMDcX1$y9-L(TsuaT zfPY9MCb3xN8WGxNDB@4sjvZ10JTUS1Snvy5l9QPbZJ1#AG@_xCVXxndg&0Cz99x`Z zKvV%^1YbB2L)tU+ww(e6EZYzc6gI5g;!?*}TsL=hotb0Mow8kxW*HVdXfdVep4yL` zdfTcM*7nwv5)3M-)^@ASp~`(sR`IsMgXV>xPx0&5!lR8(L&vn@?_Oi2EXy)sj?Q8S$Mm zP{=PsbQ)rJtxy*+R9EqNek1fupF(7d1z|uHBZdEQMm`l!QnDTsJ_DX2E=_R?o*D5) z4}Rh2eEvVeTQ^UXfsDXgAf@6dtaXG>!t?(&-a~B^KF@z*dl$BLVOt|yVElz!`rm5n z&%<$O{7{?+>7|f%3ctTlD}Sc0Zs_hY;YO-&eOIT+Kh%FJdM|_@8b7qIL;aj#^MhF1 z(>x4_KPKYTl+AOj0Q$t3La4&;o`HP%m8bgb`*0vs83ZT@J#{j%7e8dKm;){k%rMw* zG9eKbw_mh1PHLUB$7VNcJ=oL;nV~#W;r|rv;ISD5+Q-FH5g~=&gD`RrnNm>lGJ1GE zw`K+PW!P*uxsEyAzhLvBOEUkj>)1sV6q-RhP*nGS(JD%Z$|wijTm)a5S+oj03MzBz zPjp$XjyM!3`cFtv`8wrA`EpL(8Soof9J(X7wr2l^Y-+>){TrmrhW&h}yVPonlai>; zrF!_zz4@5^8y@95z(7+GLY@+~o<>}!RDp|@N4vi4Y-r@AF@6Q7ET8d9j~&O$3l#Yuo`voKB12v8pK*p3sJO+k{- zak5sNppfOFju-S9tC#^&UI}&^S-3TB^fmi<0$e%==MK3AqBrn!K@ZCzuah-}pRZc{ z?&7p`mEU5_{>6x=RAFr4-F+FYOMN%GSL@mvX-UT3jRI;_TJH7}l*La_ztFn+GQ3;r zNk;eb?nh&>e?Z$I<$LDON!e1tJ26yLILq`~hFYrCA|rj2uGJHxzz@8b<} z&bETBnbLPG9E*iz!<03Ld4q;C140%fzRO5j*Ql#XY*C-ELCtp24zs*#$X0ZhlF~Qj zq$4Nq9U@=qSTzHghxD(IcI0@hO0e}l7_PKLX|J5jQe+67(8W~90a!?QdAYyLs6f^$ zgAUsZ6%aIOhqZ;;;WG@EpL1!Mxhc_XD!cTY%MEAnbR^8{!>s|QGte5Y=ivx6=T9Ei zP_M&x-e`XKwm+O(fpg~P{^7QV&DZPW)$j@GX#kClVjXN6u+n=I$K0{Y-O4?f;0vgV zY+%5cgK;dNK1}{#_x-Zyaw9sN`r9jST(^5&m&8IY?IBml#h0G3e?uSWfByzKHLe8) z9oCU{cfd~u97`w2ATe{wQPagk*)FX|S+YdySpplm-DSKB*|c>@nSp$=zj{v3WyAgw zqtk_K3c5J|0pC zSpww86>3JZSitYm_b*{%7cv?=elhCFy1v6m)^n?211803vG_;TRU3WPV`g7=>ywvsW6B76c-kXXYuS7~J+@Lc zSf%7^`HIJ4D|VX9{BlBG~IV;M->JId%#U?}jR@kQ&o5A3HyYDx}6Nc^pMjj0Jeun)M=&7-NLZ9@2 z)j60}@#z8oft^qhO`qgPG;Gf4Q@Zbq!Fx_DP1GkX<}_%EF`!5fg*xCsir}$yMH#85 zT3Y4bdV)bucC=X;w24>D>XjaA@K`En^++$6E!jmvauA$rc9F%b=P&f^I7M+{{--HM z0JXFl21+}*Oz8zr@T8JQp9Td0TZ7rr0+&rWePPKdaG}l-^)$@O*ON;2pkAjf4ZSg# zy{PLo>hhTUUK_q5L{o!vKb^7AIkbXB zm3BG{rbFE>fKfZsL4iKVYubQMO_AvYWH<3F_@;7*b}ss*4!r5a-5Mr{qoVbpXW1cja+YCd!nQ3xt*CEBq_FNhDc93rhj=>>F59=AN5 zoRmKmL))oDox0VF;gltwNSdcF9cb*OX3{Gx?X{Q-krC~b9}_3yG8Bn{`W6m}6YD#q zAkEzk)zB|ZA2Ao`dW^gC77j#kXk7>zOYg~2Y0NyG9@9L)X=yRL!=`tj7; z^S=K3l)dWTz%eniebMP!Z)q@7d(l_cR;2OvPv7I~Va{X>R@4XXh- zOMOMef=}m)U?`>^E`qUO(+Ng$xKwZ1|FQ|>X41&zvAf`(9 zj3GGCzGHqa8_lMGV+Q3A(d5seacFHJ92meB0vj+?SfQ~dL#3UE!1{}wjz|HPWCEHI zW{zYTeA(UwAEq6F%|@%!oD5ebM$D`kG45gkQ6COfjjk-==^@y6=Tp0-#~0px=I@H# z7Z|LQii;EBSfjse{lo}m?iuTG`$i6*F?L9m*kGMV_JUqsuT##HNJkrNL~cklwZK&3 zgesq4oycISoHuCg>Jo;0K(3&I(n-j7+uaf)NPK7+@p8+z!=r!xa45cmV`Mna1hT=i zAkgv-=xDHofR+dHn7FZvghtoxVqmi^U=Tk5i*(?UbiEGt9|mBN4tXfwT0b zIQSzTbod84Y<){2C!IJja=k65vqPM|!xFS?-HOK!3%&6=!T(Z$<>g6+rTpioPBf57 z$!8fVo=}&Z?KB-UB4$>vfxffiJ*^StPHhnl@7Fw@3-N|6BAyp|HhmV#(r=Ll2Y3af zNJ44J*!nZfs0Z5o%Qy|_7UzOtMt~9CA*sTy5=4c0Q9mP-JJ+p-7G&*PyD$6sj+4b>6a~%2eXf~A?KRzL4v_GQ!SRxsdZi`B(7Jx*fGf@DK z&P<|o9z*F!kX>I*;y78= z>JB#p1zld#NFeK3{?&UgU*1uzsxF7qYP34!>yr;jKktE5CNZ3N_W+965o=}3S?jx3 zv`#Wqn;l-4If#|AeD6_oY2Y||U?Fss}Sa>HvkP$9_KPcb_jB*Jc;M0XIE+qhbP$U2d z&;h?{>;H=Sp?W2>Uc{rF29ML>EiCy?fyim_mQtrgMA~^uv?&@WN@gUOPn(379I}U4Vg~Qo)jwJb7e_Pg^`Gmp+s5vF{tNzJVhBQ z$VB8M@`XJsXC!-){6wetDsTY94 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

5q!RY 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 literal 0 HcmV?d00001 diff --git a/assets/css/fontawesome-webfont.a9323ae9.svg b/assets/css/fontawesome-webfont.a9323ae9.svg new file mode 100644 index 00000000000..756bf0896c7 --- /dev/null +++ b/assets/css/fontawesome-webfont.a9323ae9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/css/fontawesome-webfont.ed962b83.woff b/assets/css/fontawesome-webfont.ed962b83.woff new file mode 100644 index 0000000000000000000000000000000000000000..400014a4b06eee3d0c0d54402a47ab2601b2862b GIT binary patch literal 98024 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 SdSQM28?+M|D(2r_;{O0|uQ74} literal 0 HcmV?d00001 diff --git a/assets/css/iconfont.960c72b2.eot b/assets/css/iconfont.960c72b2.eot new file mode 100644 index 0000000000000000000000000000000000000000..63c3474526541909b8c7f080484239aaad77102f GIT binary patch literal 2216 zcmd^A&u<$=6n^91@w&BXaZ(jRSBisCX}xYjuvH~MBS=(~l&CFHFQMIT)^?)xu4S*I zq~cIfg|-5rsFzBK$f4rE0Ra-CDkE6vH{A_0$JpdOBE@7Ozfw# zWK)&e=AF9z+3R7|N+`HrYM}t>DmcgEX=bSM# z`s-;E`p3{`t-9G5+j{srM+5F|)mf=LH+^fGDEu?@uWPnB-}`|!hsi(DU#)=skY-tjC`_~I|DzXv^2Hbv6*D&u&-{B2fS3Z!8B$S9t1~Fc{bmq~;^yovxDsBIms$687V5A513)F9Dfz&Ue>#v2YfuCcg;fQAAn_FoI%F z*zd#|MWNlK+mJ7)v5J#R+uso8cC?wwTl4frM|5H`x`Qeo97E7J>b*LWiy3~K$I#)i zcu#srbO9{ya10|N2Om*35#~Fw$H+xTu!PRB@?#GJML8nDQT^XrN+#ffN&_;|;mmPX zdBo3%JHM_DZh$-AL>`F#^Bx9vzywD@#)zy1TeO1Z5nIg-Uu%q$jAFi z`S@4Y7u%buxkUc$#Q2dL+NQlPkw2X{)%_I^eTvU%7{7fDD{*MhM>Cn1KJ{1uQd0y2b?`J2Ek z43t(l0^Fx?6uuo%I0pWx!by6Wh7{J|(HwRVksdG^YA75+(YUH`82l#+M}RjKj-rfw zsc;PZj|wMITz*qnqZh@|1&FFul}DBxU>B2E|9zRy-VY6 zt4S14R~Au|e2nv?(`8zLY|#>m?GRWWMOa5~qR7^PCR9nbQHUL29r@TV1?e#zjbkMMOkJOvFWkGM3}D?BkWT376)z{76-^4k|Zaa+~9y7EQ1O^9K_dt zy6?DmB~pMaY}8ML>r_`F3P(zSkm-059>^yDJC}ce>5vcQ-B1xg*ZVn2o4zz1sL4&C z1AczS0L!@vPr@7zJeT`7Cg=jW=TR1B`IvOp8lqVsVK0UTj;St^2NEqf)s6()1P2t+ z|IKcQ<$!_$!2tI~i{iGqGXohp4es6wi4XBdP7;YRj7 z1V<#`(hJ)1Z{Lt^9w;^<*qYn+1fcyd-;NhRL+Sv5LJKq)xg4cTNBso}L_;Nr!o>N> zhTz+k%X~|!L@sr#q8XNh#Q(c6xe`Eu0uJ9oJaT~o4+u1PKw!WF0t+4xIDohjJb-FY z2e^h?fpCWWhM``EQWeCBp~M+Xk1^j&h(TgqYi^6ftVM|n(i&}LsanY^B8Ek43q`Eu zb%s<@6xoC+&CSU?>1V|(zh$m)dQKM(;*M%5yBz=ciFwJw0_iQ?#XJf?(Vm|EbjQq- zo{y8C9%X(34%oWHY+tG3*Q;=mt=pJ2dUG1L1DG8vbue(`!yoGf3-p`T03Hs*;Y#IZrg`$uFn=qV64x zMekqg@31v*`(Ddx{!dN30C*qMHPCs9K%l^8aG0sM_;s=%_A_;3zRU`H{wWI;h$1Kp zjJ2Nk6U%=l85A$nTwMxl05s4Rf|axroM4C$4XfLqG+2>9;tE79Qz9tU4hUMU1E7Ik z5v*qS1gF*`ANcw`IO^q8gDv^^Iw3#Y=R*s%UVTE0eT7OOVojx>Bs1gH?jU9)z z8LX3%I;h~fqj%;$WQ;pZ!6T?ie@IHRvAUX$ZSiYdhcFFipy^LblTeV2Q3+3@e-(AF>axc+KgG6Ks2(riALL#%x!5#)>Mse SKJpDgOw_r+M2(v}0000s%Y`uj literal 0 HcmV?d00001 diff --git a/assets/css/iconfont.b2a06094.woff b/assets/css/iconfont.b2a06094.woff new file mode 100644 index 0000000000000000000000000000000000000000..5c0b2e3a596643441bcd143b36b2a7bf3b5fb24e GIT binary patch literal 1296 zcmXT-cXMN4WB>wI0S0am&A|ZSgV?CRJvh_}C<#=+U=73}3f-zz{=xc2Krt5}-xi3& zY|eTnCg&y=0L5B>{6rwV&34z<8|gWfX+ZW1AeIB-4br}od^1uLQy3VSLFVZJv6)yC zcWeew5GZB=Ya$jMIzsY?LzfjkBQ#uCOyxrr4( zdzpclK^}+|7)2Qj@)C1XfnpPYc4{&(Fp15czK^RQzqo{ffn^U+O)wDW{obY5SurO$ zAtfQnws=ELsC`g3^9 z8)6a-P98YGp~SGXh;uE_0TpxJPCUqaK!Jx@mZLI6b}946SO4PG7L*;5=q+*ErXuQ=j zdvW(>R>A8R`i>eNVC2{VZ_L;9%;$r-o`97K9v0pya z7=72{780-SjquT5$F)iOUq<^9RmZfW6N{J@&)NR-?V6A4VoRU-@ry0mDY@g-mAMQ# zo8C#Lg;*+hcrM73{rykzy!HLQ`91L;Jm=hvm)x&iZ=-WGd9TjV6}R-*e<$jmO6A?a zHX+AF6ch*G_-A@BFj~M=#$dOBsTE`nLzDCkLk7n;tb)LR2LTg?42Cv_MGU(bZb0oxNDoL% zNMvACQ+USY#Mbsd!H$`M=Q*Pr&>g80Z1WB|h_oC}@L&pR64BJ$9Ll9MbN(b|2Y<)u zhh}Uw+_d*vmE)q*oJB1%ipx8Snq)MRKW8N9+SeQB-+On8f$c|YdsXF*+^oG(I~H0M z&ilcq*cX-!p+&L`0>`<-Eqq)`<|77PfdOZ|-_fhfAvj3WIChu>tt~j*4 zVEVuQ0)Fj3oZmmb;=O!AWTWPtAobrmThc54t=qCTD0qdZfn78(pGsTp4Scdy;i--8rMhUfE?d+)#GrsJ^=QiuN*H ztzTQiW+)u^p|v$(RmLR6smIz*n)a;`<+I84x^B4kN7T6|OLm^gx~HP7{qOy*?Tdvk z@^8pp=5@y4k#PKz=4X6A?QI3)Rse$)6qZR13=+M3Hza3D%#@6jh?Kl3aZ}P#f@M+=FnYz-o^W{pNoj+Yy>YV(^I+cfq K;Yxy790LF=Ir-iI literal 0 HcmV?d00001 diff --git a/assets/css/index.css b/assets/css/index.css new file mode 100644 index 00000000000..5fdaff40711 --- /dev/null +++ b/assets/css/index.css @@ -0,0 +1 @@ +:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:sans-serif;line-height:1.15}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{color:#212529;text-align:left;background-color:#fff;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration:underline;border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;background-color:#0000;text-decoration:none}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{-ms-overflow-style:scrollbar;margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{vertical-align:middle;overflow:hidden}table{border-collapse:collapse}caption{color:#6c757d;text-align:left;caption-side:bottom;padding-top:.75rem;padding-bottom:.75rem}th{text-align:inherit;text-align:-webkit-match-parent}label{margin-bottom:.5rem;display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{resize:vertical;overflow:auto}fieldset{min-width:0;border:0;margin:0;padding:0}legend{width:100%;max-width:100%;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal;margin-bottom:.5rem;padding:0;display:block}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{cursor:pointer;display:list-item}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{border:0;border-top:1px solid #0000001a;margin-top:1rem;margin-bottom:1rem}.small,small{font-size:.875em;font-weight:400}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{text-transform:uppercase;font-size:90%}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{color:#6c757d;font-size:.875em;display:block}.blockquote-footer:before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{max-width:100%;height:auto;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;padding:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{color:#6c757d;font-size:90%}code{color:#e83e8c;word-wrap:break-word;font-size:87.5%}a>code{color:inherit}kbd{color:#fff;background-color:#212529;border-radius:.2rem;padding:.2rem .4rem;font-size:87.5%}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{color:#212529;font-size:87.5%;display:block}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:-15px;margin-right:-15px;display:-ms-flexbox;display:flex}.no-gutters{margin-left:0;margin-right:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-left:0;padding-right:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{width:100%;padding-left:15px;padding-right:15px;position:relative}.col{max-width:100%;-ms-flex-positive:1;-ms-flex-preferred-size:0;flex-grow:1;flex-basis:0}.row-cols-1>*{max-width:100%;-ms-flex:0 0 100%;flex:0 0 100%}.row-cols-2>*{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.row-cols-3>*{max-width:33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%}.row-cols-4>*{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.row-cols-5>*{max-width:20%;-ms-flex:0 0 20%;flex:0 0 20%}.row-cols-6>*{max-width:16.6667%;-ms-flex:0 0 16.6667%;flex:0 0 16.6667%}.col-auto{width:auto;max-width:100%;-ms-flex:none;flex:none}.col-1{max-width:8.33333%;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%}.col-2{max-width:16.6667%;-ms-flex:0 0 16.6667%;flex:0 0 16.6667%}.col-3{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.col-4{max-width:33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%}.col-5{max-width:41.6667%;-ms-flex:0 0 41.6667%;flex:0 0 41.6667%}.col-6{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.col-7{max-width:58.3333%;-ms-flex:0 0 58.3333%;flex:0 0 58.3333%}.col-8{max-width:66.6667%;-ms-flex:0 0 66.6667%;flex:0 0 66.6667%}.col-9{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.col-10{max-width:83.3333%;-ms-flex:0 0 83.3333%;flex:0 0 83.3333%}.col-11{max-width:91.6667%;-ms-flex:0 0 91.6667%;flex:0 0 91.6667%}.col-12{max-width:100%;-ms-flex:0 0 100%;flex:0 0 100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.6667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333%}.offset-5{margin-left:41.6667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333%}.offset-8{margin-left:66.6667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333%}.offset-11{margin-left:91.6667%}@media (min-width:576px){.col-sm{max-width:100%;-ms-flex-positive:1;-ms-flex-preferred-size:0;flex-grow:1;flex-basis:0}.row-cols-sm-1>*{max-width:100%;-ms-flex:0 0 100%;flex:0 0 100%}.row-cols-sm-2>*{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.row-cols-sm-3>*{max-width:33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%}.row-cols-sm-4>*{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.row-cols-sm-5>*{max-width:20%;-ms-flex:0 0 20%;flex:0 0 20%}.row-cols-sm-6>*{max-width:16.6667%;-ms-flex:0 0 16.6667%;flex:0 0 16.6667%}.col-sm-auto{width:auto;max-width:100%;-ms-flex:none;flex:none}.col-sm-1{max-width:8.33333%;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%}.col-sm-2{max-width:16.6667%;-ms-flex:0 0 16.6667%;flex:0 0 16.6667%}.col-sm-3{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.col-sm-4{max-width:33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%}.col-sm-5{max-width:41.6667%;-ms-flex:0 0 41.6667%;flex:0 0 41.6667%}.col-sm-6{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.col-sm-7{max-width:58.3333%;-ms-flex:0 0 58.3333%;flex:0 0 58.3333%}.col-sm-8{max-width:66.6667%;-ms-flex:0 0 66.6667%;flex:0 0 66.6667%}.col-sm-9{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.col-sm-10{max-width:83.3333%;-ms-flex:0 0 83.3333%;flex:0 0 83.3333%}.col-sm-11{max-width:91.6667%;-ms-flex:0 0 91.6667%;flex:0 0 91.6667%}.col-sm-12{max-width:100%;-ms-flex:0 0 100%;flex:0 0 100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.6667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333%}.offset-sm-5{margin-left:41.6667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333%}.offset-sm-8{margin-left:66.6667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333%}.offset-sm-11{margin-left:91.6667%}}@media (min-width:768px){.col-md{max-width:100%;-ms-flex-positive:1;-ms-flex-preferred-size:0;flex-grow:1;flex-basis:0}.row-cols-md-1>*{max-width:100%;-ms-flex:0 0 100%;flex:0 0 100%}.row-cols-md-2>*{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.row-cols-md-3>*{max-width:33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%}.row-cols-md-4>*{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.row-cols-md-5>*{max-width:20%;-ms-flex:0 0 20%;flex:0 0 20%}.row-cols-md-6>*{max-width:16.6667%;-ms-flex:0 0 16.6667%;flex:0 0 16.6667%}.col-md-auto{width:auto;max-width:100%;-ms-flex:none;flex:none}.col-md-1{max-width:8.33333%;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%}.col-md-2{max-width:16.6667%;-ms-flex:0 0 16.6667%;flex:0 0 16.6667%}.col-md-3{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.col-md-4{max-width:33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%}.col-md-5{max-width:41.6667%;-ms-flex:0 0 41.6667%;flex:0 0 41.6667%}.col-md-6{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.col-md-7{max-width:58.3333%;-ms-flex:0 0 58.3333%;flex:0 0 58.3333%}.col-md-8{max-width:66.6667%;-ms-flex:0 0 66.6667%;flex:0 0 66.6667%}.col-md-9{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.col-md-10{max-width:83.3333%;-ms-flex:0 0 83.3333%;flex:0 0 83.3333%}.col-md-11{max-width:91.6667%;-ms-flex:0 0 91.6667%;flex:0 0 91.6667%}.col-md-12{max-width:100%;-ms-flex:0 0 100%;flex:0 0 100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.6667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333%}.offset-md-5{margin-left:41.6667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333%}.offset-md-8{margin-left:66.6667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333%}.offset-md-11{margin-left:91.6667%}}@media (min-width:992px){.col-lg{max-width:100%;-ms-flex-positive:1;-ms-flex-preferred-size:0;flex-grow:1;flex-basis:0}.row-cols-lg-1>*{max-width:100%;-ms-flex:0 0 100%;flex:0 0 100%}.row-cols-lg-2>*{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.row-cols-lg-3>*{max-width:33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%}.row-cols-lg-4>*{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.row-cols-lg-5>*{max-width:20%;-ms-flex:0 0 20%;flex:0 0 20%}.row-cols-lg-6>*{max-width:16.6667%;-ms-flex:0 0 16.6667%;flex:0 0 16.6667%}.col-lg-auto{width:auto;max-width:100%;-ms-flex:none;flex:none}.col-lg-1{max-width:8.33333%;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%}.col-lg-2{max-width:16.6667%;-ms-flex:0 0 16.6667%;flex:0 0 16.6667%}.col-lg-3{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.col-lg-4{max-width:33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%}.col-lg-5{max-width:41.6667%;-ms-flex:0 0 41.6667%;flex:0 0 41.6667%}.col-lg-6{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.col-lg-7{max-width:58.3333%;-ms-flex:0 0 58.3333%;flex:0 0 58.3333%}.col-lg-8{max-width:66.6667%;-ms-flex:0 0 66.6667%;flex:0 0 66.6667%}.col-lg-9{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.col-lg-10{max-width:83.3333%;-ms-flex:0 0 83.3333%;flex:0 0 83.3333%}.col-lg-11{max-width:91.6667%;-ms-flex:0 0 91.6667%;flex:0 0 91.6667%}.col-lg-12{max-width:100%;-ms-flex:0 0 100%;flex:0 0 100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.6667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333%}.offset-lg-5{margin-left:41.6667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333%}.offset-lg-8{margin-left:66.6667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333%}.offset-lg-11{margin-left:91.6667%}}@media (min-width:1200px){.col-xl{max-width:100%;-ms-flex-positive:1;-ms-flex-preferred-size:0;flex-grow:1;flex-basis:0}.row-cols-xl-1>*{max-width:100%;-ms-flex:0 0 100%;flex:0 0 100%}.row-cols-xl-2>*{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.row-cols-xl-3>*{max-width:33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%}.row-cols-xl-4>*{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.row-cols-xl-5>*{max-width:20%;-ms-flex:0 0 20%;flex:0 0 20%}.row-cols-xl-6>*{max-width:16.6667%;-ms-flex:0 0 16.6667%;flex:0 0 16.6667%}.col-xl-auto{width:auto;max-width:100%;-ms-flex:none;flex:none}.col-xl-1{max-width:8.33333%;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%}.col-xl-2{max-width:16.6667%;-ms-flex:0 0 16.6667%;flex:0 0 16.6667%}.col-xl-3{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.col-xl-4{max-width:33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%}.col-xl-5{max-width:41.6667%;-ms-flex:0 0 41.6667%;flex:0 0 41.6667%}.col-xl-6{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.col-xl-7{max-width:58.3333%;-ms-flex:0 0 58.3333%;flex:0 0 58.3333%}.col-xl-8{max-width:66.6667%;-ms-flex:0 0 66.6667%;flex:0 0 66.6667%}.col-xl-9{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.col-xl-10{max-width:83.3333%;-ms-flex:0 0 83.3333%;flex:0 0 83.3333%}.col-xl-11{max-width:91.6667%;-ms-flex:0 0 91.6667%;flex:0 0 91.6667%}.col-xl-12{max-width:100%;-ms-flex:0 0 100%;flex:0 0 100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.6667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333%}.offset-xl-5{margin-left:41.6667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333%}.offset-xl-8{margin-left:66.6667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333%}.offset-xl-11{margin-left:91.6667%}}.table{width:100%;color:#212529;margin-bottom:1rem}.table td,.table th{vertical-align:top;border-top:1px solid #dee2e6;padding:.75rem}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(2n+1){background-color:#0000000d}.table-hover tbody tr:hover{color:#212529;background-color:#00000013}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:#00000013}.table-hover .table-active:hover{background-color:#00000013}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#00000013}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(2n+1){background-color:#ffffff0d}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:#ffffff13}@media (max-width:575.98px){.table-responsive-sm{width:100%;-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{width:100%;-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{width:100%;-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{width:100%;-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{width:100%;-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.table-responsive>.table-bordered{border:0}.form-control{width:100%;height:calc(1.5em + .75rem + 2px);color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:block}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:#0000;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem #007bff40}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{opacity:1;background-color:#e9ecef}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:-moz-focusring{color:#0000;text-shadow:0 0 #495057}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{width:100%;display:block}.col-form-label{font-size:inherit;margin-bottom:0;padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{width:100%;color:#212529;background-color:#0000;border:1px solid #0000;border-width:1px 0;margin-bottom:0;padding:.375rem 0;font-size:1rem;line-height:1.5;display:block}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-left:0;padding-right:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);border-radius:.2rem;padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.form-control-lg{height:calc(1.5em + 1rem + 2px);border-radius:.3rem;padding:.5rem 1rem;font-size:1.25rem;line-height:1.5}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{margin-top:.25rem;display:block}.form-row{-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:-5px;margin-right:-5px;display:-ms-flexbox;display:flex}.form-row>.col,.form-row>[class*=col-]{padding-left:5px;padding-right:5px}.form-check{padding-left:1.25rem;display:block;position:relative}.form-check-input{margin-top:.3rem;margin-left:-1.25rem;position:absolute}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{align-items:center;margin-right:.75rem;padding-left:0;display:-ms-inline-flexbox;display:inline-flex}.form-check-inline .form-check-input{margin-top:0;margin-left:0;margin-right:.3125rem;position:static}.valid-feedback{width:100%;color:#28a745;margin-top:.25rem;font-size:.875em;display:none}.valid-tooltip{z-index:5;max-width:100%;color:#fff;background-color:#28a745e6;border-radius:.25rem;margin-top:.1rem;padding:.25rem .5rem;font-size:.875rem;line-height:1.5;display:none;position:absolute;top:100%;left:0}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right calc(.375em + .1875rem) center;background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:#28a745;padding-right:calc(1.5em + .75rem)!important}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem #28a74540}.was-validated select.form-control:valid,select.form-control.is-valid{background-position:right 1.5rem center;padding-right:3rem!important}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{background-position:right calc(.375em + .1875rem) top calc(.375em + .1875rem);padding-right:calc(1.5em + .75rem)}.custom-select.is-valid,.was-validated .custom-select:valid{background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") right 1.75rem center/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat;border-color:#28a745;padding-right:calc(.75em + 2.3125rem)!important}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem #28a74540}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{background-color:#34ce57;border-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem #28a74540}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem #28a74540}.invalid-feedback{width:100%;color:#dc3545;margin-top:.25rem;font-size:.875em;display:none}.invalid-tooltip{z-index:5;max-width:100%;color:#fff;background-color:#dc3545e6;border-radius:.25rem;margin-top:.1rem;padding:.25rem .5rem;font-size:.875rem;line-height:1.5;display:none;position:absolute;top:100%;left:0}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right calc(.375em + .1875rem) center;background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:#dc3545;padding-right:calc(1.5em + .75rem)!important}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem #dc354540}.was-validated select.form-control:invalid,select.form-control.is-invalid{background-position:right 1.5rem center;padding-right:3rem!important}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{background-position:right calc(.375em + .1875rem) top calc(.375em + .1875rem);padding-right:calc(1.5em + .75rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") right 1.75rem center/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat;border-color:#dc3545;padding-right:calc(.75em + 2.3125rem)!important}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem #dc354540}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{background-color:#e4606d;border-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem #dc354540}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem #dc354540}.form-inline{-ms-flex-flow:wrap;flex-flow:wrap;align-items:center;display:-ms-flexbox;display:flex}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center;align-items:center;margin-bottom:0;display:-ms-flexbox;display:flex}.form-inline .form-group{-ms-flex-flow:wrap;flex-flow:wrap;-ms-flex:none;flex:none;align-items:center;margin-bottom:0;display:-ms-flexbox;display:flex}.form-inline .form-control{width:auto;vertical-align:middle;display:inline-block}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{width:auto;justify-content:center;align-items:center;padding-left:0;display:-ms-flexbox;display:flex}.form-inline .form-check-input{-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-left:0;margin-right:.25rem;position:relative}.form-inline .custom-control{justify-content:center;align-items:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#0000;border:1px solid #0000;border-radius:.25rem;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:inline-block}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem #007bff40}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem #268fff80}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #268fff80}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem #828a9180}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #828a9180}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem #48b46180}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #48b46180}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem #3ab0c380}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #3ab0c380}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem #deaa0c80}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #deaa0c80}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem #e1536180}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #e1536180}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem #d8d9db80}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #d8d9db80}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem #52585d80}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #52585d80}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem #007bff80}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:#0000}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #007bff80}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem #6c757d80}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:#0000}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #6c757d80}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem #28a74580}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:#0000}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #28a74580}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem #17a2b880}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:#0000}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #17a2b880}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem #ffc10780}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:#0000}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #ffc10780}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem #dc354580}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:#0000}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #dc354580}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem #f8f9fa80}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:#0000}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #f8f9fa80}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem #343a4080}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:#0000}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #343a4080}.btn-link{color:#007bff;font-weight:400;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{border-radius:.3rem;padding:.5rem 1rem;font-size:1.25rem;line-height:1.5}.btn-group-sm>.btn,.btn-sm{border-radius:.2rem;padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.btn-block{width:100%;display:block}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;transition:height .35s;position:relative;overflow:hidden}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.width{width:0;height:auto;transition:width .35s}@media (prefers-reduced-motion:reduce){.collapsing.width{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{vertical-align:.255em;content:"";border:.3em solid #0000;border-top-color:currentColor;border-bottom:0;margin-left:.255em;display:inline-block}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{z-index:1000;float:left;min-width:10rem;color:#212529;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #00000026;border-radius:.25rem;margin:.125rem 0 0;padding:.5rem 0;font-size:1rem;list-style:none;display:none;position:absolute;top:100%;left:0}.dropdown-menu-left{left:0;right:auto}.dropdown-menu-right{left:auto;right:0}@media (min-width:576px){.dropdown-menu-sm-left{left:0;right:auto}.dropdown-menu-sm-right{left:auto;right:0}}@media (min-width:768px){.dropdown-menu-md-left{left:0;right:auto}.dropdown-menu-md-right{left:auto;right:0}}@media (min-width:992px){.dropdown-menu-lg-left{left:0;right:auto}.dropdown-menu-lg-right{left:auto;right:0}}@media (min-width:1200px){.dropdown-menu-xl-left{left:0;right:auto}.dropdown-menu-xl-right{left:auto;right:0}}.dropup .dropdown-menu{margin-top:0;margin-bottom:.125rem;top:auto;bottom:100%}.dropup .dropdown-toggle:after{vertical-align:.255em;content:"";border:.3em solid #0000;border-top:0;border-bottom-color:currentColor;margin-left:.255em;display:inline-block}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{margin-top:0;margin-left:.125rem;top:0;left:100%;right:auto}.dropright .dropdown-toggle:after{vertical-align:.255em;content:"";border:.3em solid #0000;border-left-color:currentColor;border-right:0;margin-left:.255em;display:inline-block}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{margin-top:0;margin-right:.125rem;top:0;left:auto;right:100%}.dropleft .dropdown-toggle:after{vertical-align:.255em;content:"";margin-left:.255em;display:inline-block}.dropleft .dropdown-toggle:after{display:none}.dropleft .dropdown-toggle:before{vertical-align:.255em;content:"";border-top:.3em solid #0000;border-bottom:.3em solid #0000;border-right:.3em solid;margin-right:.255em;display:inline-block}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{bottom:auto;right:auto}.dropdown-divider{height:0;border-top:1px solid #e9ecef;margin:.5rem 0;overflow:hidden}.dropdown-item{width:100%;clear:both;color:#212529;text-align:inherit;white-space:nowrap;background-color:#0000;border:0;padding:.25rem 1.5rem;font-weight:400;display:block}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;background-color:#e9ecef;text-decoration:none}.dropdown-item.active,.dropdown-item:active{color:#fff;background-color:#007bff;text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:#0000}.dropdown-menu.show{display:block}.dropdown-header{color:#6c757d;white-space:nowrap;margin-bottom:0;padding:.5rem 1.5rem;font-size:.875rem;display:block}.dropdown-item-text{color:#212529;padding:.25rem 1.5rem;display:block}.btn-group,.btn-group-vertical{vertical-align:middle;display:-ms-inline-flexbox;display:inline-flex;position:relative}.btn-group-vertical>.btn,.btn-group>.btn{-ms-flex:auto;flex:auto;position:relative}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{-ms-flex-wrap:wrap;flex-wrap:wrap;justify-content:flex-start;display:-ms-flexbox;display:flex}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-left:.5625rem;padding-right:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-left:.375rem;padding-right:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-left:.75rem;padding-right:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;justify-content:center;align-items:flex-start}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{clip:rect(0,0,0,0);pointer-events:none;position:absolute}.input-group{width:100%;-ms-flex-wrap:wrap;flex-wrap:wrap;align-items:stretch;display:-ms-flexbox;display:flex;position:relative}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{width:1%;min-width:0;-ms-flex:auto;flex:auto;margin-bottom:0;position:relative}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{align-items:center;display:-ms-flexbox;display:flex}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label:after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label:after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{z-index:2;position:relative}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem;align-items:center;margin-bottom:0;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;display:-ms-flexbox;display:flex}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{border-radius:.3rem;padding:.5rem 1rem;font-size:1.25rem;line-height:1.5}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{border-radius:.2rem;padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{z-index:1;min-height:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact;padding-left:1.5rem;display:block;position:relative}.custom-control-inline{margin-right:1rem;display:-ms-inline-flexbox;display:inline-flex}.custom-control-input{z-index:-1;width:1rem;height:1.25rem;opacity:0;position:absolute;left:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;background-color:#007bff;border-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem #007bff40}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{vertical-align:top;margin-bottom:0;position:relative}.custom-control-label:before{width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:1px solid #adb5bd;display:block;position:absolute;top:.25rem;left:-1.5rem}.custom-control-label:after{width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat;display:block;position:absolute;top:.25rem;left:-1.5rem}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#007bff;border-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:#007bff80}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:#007bff80}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:#007bff80}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{width:1.75rem;pointer-events:all;border-radius:.5rem;left:-2.25rem}.custom-switch .custom-control-label:after{width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;top:calc(.25rem + 2px);left:calc(2px - 2.25rem)}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translate(.75rem);transform:translate(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:#007bff80}.custom-select{width:100%;height:calc(1.5em + .75rem + 2px);color:#495057;vertical-align:middle;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;display:inline-block}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem #007bff40}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;background-image:none;padding-right:.75rem}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:#0000;text-shadow:0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0;display:inline-block;position:relative}.custom-file-input{z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);opacity:0;margin:0;position:relative;overflow:hidden}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{z-index:1;height:calc(1.5em + .75rem + 2px);color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;padding:.375rem .75rem;font-weight:400;line-height:1.5;position:absolute;top:0;left:0;right:0;overflow:hidden}.custom-file-label:after{z-index:3;height:calc(1.5em + .75rem);color:#495057;content:"Browse";border-left:inherit;background-color:#e9ecef;border-radius:0 .25rem .25rem 0;padding:.375rem .75rem;line-height:1.5;display:block;position:absolute;top:0;bottom:0;right:0}.custom-range{width:100%;height:1.4rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;padding:0}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #007bff40}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #007bff40}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #007bff40}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;-webkit-appearance:none;appearance:none;background-color:#007bff;border:0;border-radius:1rem;margin-top:-.25rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:#0000;cursor:pointer;background-color:#dee2e6;border-color:#0000;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:#0000;cursor:pointer;background-color:#dee2e6;border-color:#0000;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;appearance:none;background-color:#007bff;border:0;border-radius:1rem;margin-top:0;margin-left:.2rem;margin-right:.2rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:#0000;cursor:pointer;background-color:#0000;border-width:.5rem;border-color:#0000}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem;margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:0;padding-left:0;list-style:none;display:-ms-flexbox;display:flex}.nav-link{padding:.5rem 1rem;display:block}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{background-color:#0000;border:1px solid #0000;border-top-left-radius:.25rem;border-top-right-radius:.25rem;margin-bottom:-1px}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:#0000;border-color:#0000}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{text-align:center;-ms-flex:auto;flex:auto}.nav-justified .nav-item,.nav-justified>.nav-link{text-align:center;-ms-flex-positive:1;-ms-flex-preferred-size:0;flex-grow:1;flex-basis:0}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{-ms-flex-wrap:wrap;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:-ms-flexbox;display:flex;position:relative}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{-ms-flex-wrap:wrap;flex-wrap:wrap;justify-content:space-between;align-items:center;display:-ms-flexbox;display:flex}.navbar-brand{font-size:1.25rem;line-height:inherit;white-space:nowrap;margin-right:1rem;padding-top:.3125rem;padding-bottom:.3125rem;display:inline-block}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{-ms-flex-direction:column;flex-direction:column;margin-bottom:0;padding-left:0;list-style:none;display:-ms-flexbox;display:flex}.navbar-nav .nav-link{padding-left:0;padding-right:0}.navbar-nav .dropdown-menu{float:none;position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;display:inline-block}.navbar-collapse{-ms-flex-positive:1;-ms-flex-preferred-size:100%;flex-grow:1;flex-basis:100%;align-items:center}.navbar-toggler{background-color:#0000;border:1px solid #0000;border-radius:.25rem;padding:.25rem .75rem;font-size:1.25rem;line-height:1}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat;display:inline-block}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-left:0;padding-right:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row;flex-flow:row;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{-ms-flex-preferred-size:auto;flex-basis:auto;display:-ms-flexbox!important;display:flex!important}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-left:0;padding-right:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row;flex-flow:row;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{-ms-flex-preferred-size:auto;flex-basis:auto;display:-ms-flexbox!important;display:flex!important}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-left:0;padding-right:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row;flex-flow:row;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{-ms-flex-preferred-size:auto;flex-basis:auto;display:-ms-flexbox!important;display:flex!important}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-left:0;padding-right:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row;flex-flow:row;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{-ms-flex-preferred-size:auto;flex-basis:auto;display:-ms-flexbox!important;display:flex!important}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row;flex-flow:row;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-left:0;padding-right:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{-ms-flex-preferred-size:auto;flex-basis:auto;display:-ms-flexbox!important;display:flex!important}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:#000000e6}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:#000000e6}.navbar-light .navbar-nav .nav-link{color:#00000080}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:#000000b3}.navbar-light .navbar-nav .nav-link.disabled{color:#0000004d}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:#000000e6}.navbar-light .navbar-toggler{color:#00000080;border-color:#0000001a}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#00000080}.navbar-light .navbar-text a{color:#000000e6}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:#000000e6}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:#ffffff80}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:#ffffffbf}.navbar-dark .navbar-nav .nav-link.disabled{color:#ffffff40}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:#ffffff80;border-color:#ffffff1a}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:#ffffff80}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid #00000020;border-radius:.25rem;-ms-flex-direction:column;flex-direction:column;display:-ms-flexbox;display:flex;position:relative}.card>hr{margin-left:0;margin-right:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-left-radius:calc(.25rem - 1px);border-bottom-right-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{min-height:1px;-ms-flex:auto;flex:auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{background-color:#00000008;border-bottom:1px solid #00000020;margin-bottom:0;padding:.75rem 1.25rem}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{background-color:#00000008;border-top:1px solid #00000020;padding:.75rem 1.25rem}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{border-bottom:0;margin-bottom:-.75rem;margin-left:-.625rem;margin-right:-.625rem}.card-header-pills{margin-left:-.625rem;margin-right:-.625rem}.card-img-overlay{border-radius:calc(.25rem - 1px);padding:1.25rem;position:absolute;inset:0}.card-img,.card-img-bottom,.card-img-top{width:100%;-ms-flex-negative:0;flex-shrink:0}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-left-radius:calc(.25rem - 1px);border-bottom-right-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:wrap;flex-flow:wrap;margin-left:-15px;margin-right:-15px;display:-ms-flexbox;display:flex}.card-deck .card{-ms-flex:1 0;flex:1 0;margin-bottom:0;margin-left:15px;margin-right:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:wrap;flex-flow:wrap;display:-ms-flexbox;display:flex}.card-group>.card{-ms-flex:1 0;flex:1 0;margin-bottom:0}.card-group>.card+.card{border-left:0;margin-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;orphans:1;widows:1;column-gap:1.25rem}.card-columns .card{width:100%;display:inline-block}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{background-color:#e9ecef;border-radius:.25rem;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:1rem;padding:.75rem 1rem;list-style:none;display:-ms-flexbox;display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{float:left;color:#6c757d;content:"/";padding-right:.5rem}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{border-radius:.25rem;padding-left:0;list-style:none;display:-ms-flexbox;display:flex}.page-link{color:#007bff;background-color:#fff;border:1px solid #dee2e6;margin-left:-1px;padding:.5rem .75rem;line-height:1.25;display:block;position:relative}.page-link:hover{z-index:2;color:#0056b3;background-color:#e9ecef;border-color:#dee2e6;text-decoration:none}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem #007bff40}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;margin-left:0}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:inline-block}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{border-radius:10rem;padding-left:.6em;padding-right:.6em}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem #007bff80}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem #6c757d80}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem #28a74580}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem #17a2b880}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem #ffc10780}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem #dc354580}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem #f8f9fa80}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem #343a4080}.jumbotron{background-color:#e9ecef;border-radius:.3rem;margin-bottom:2rem;padding:2rem 1rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{border-radius:0;padding-left:0;padding-right:0}.alert{border:1px solid #0000;border-radius:.25rem;margin-bottom:1rem;padding:.75rem 1.25rem;position:relative}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{z-index:2;color:inherit;padding:.75rem 1.25rem;position:absolute;top:0;right:0}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;background-color:#e9ecef;border-radius:.25rem;font-size:.75rem;line-height:0;display:-ms-flexbox;display:flex;overflow:hidden}.progress-bar{color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-ms-flex-direction:column;flex-direction:column;justify-content:center;transition:width .6s;display:-ms-flexbox;display:flex;overflow:hidden}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,#ffffff26 25%,#0000 25% 50%,#ffffff26 50% 75%,#0000 75%,#0000);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{align-items:flex-start;display:-ms-flexbox;display:flex}.media-body{-ms-flex:1;flex:1}.list-group{border-radius:.25rem;-ms-flex-direction:column;flex-direction:column;margin-bottom:0;padding-left:0;display:-ms-flexbox;display:flex}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;background-color:#f8f9fa;text-decoration:none}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{background-color:#fff;border:1px solid #00000020;padding:.75rem 1.25rem;display:block;position:relative}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{border-top-width:1px;margin-top:-1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-top-right-radius:0;border-bottom-left-radius:.25rem}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-top-right-radius:0;border-bottom-left-radius:.25rem}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-top-right-radius:0;border-bottom-left-radius:.25rem}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-top-right-radius:0;border-bottom-left-radius:.25rem}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-top-right-radius:0;border-bottom-left-radius:.25rem}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;color:#000;text-shadow:0 1px #fff;opacity:.5;font-size:1.5rem;font-weight:700;line-height:1}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{background-color:#0000;border:0;padding:0}a.close.disabled{pointer-events:none}.toast{max-width:350px;opacity:0;background-color:#ffffffd9;background-clip:padding-box;border:1px solid #0000001a;border-radius:.25rem;-ms-flex-preferred-size:350px;flex-basis:350px;font-size:.875rem;box-shadow:0 .25rem .75rem #0000001a}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{opacity:1;display:block}.toast.hide{display:none}.toast-header{color:#6c757d;background-color:#ffffffd9;background-clip:padding-box;border-bottom:1px solid #0000000d;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px);align-items:center;padding:.25rem .75rem;display:-ms-flexbox;display:flex}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow:hidden auto}.modal{z-index:1050;width:100%;height:100%;outline:0;display:none;position:fixed;top:0;left:0;overflow:hidden}.modal-dialog{width:auto;pointer-events:none;margin:.5rem;position:relative}.modal.fade .modal-dialog{transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{max-height:calc(100% - 1rem);display:-ms-flexbox;display:flex}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{min-height:calc(100% - 1rem);align-items:center;display:-ms-flexbox;display:flex}.modal-dialog-centered:before{height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:"";display:block}.modal-dialog-centered.modal-dialog-scrollable{height:100%;-ms-flex-direction:column;flex-direction:column;justify-content:center}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid #0003;border-radius:.3rem;outline:0;-ms-flex-direction:column;flex-direction:column;display:-ms-flexbox;display:flex;position:relative}.modal-backdrop{z-index:1040;width:100vw;height:100vh;background-color:#000;position:fixed;top:0;left:0}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px);justify-content:space-between;align-items:flex-start;padding:1rem;display:-ms-flexbox;display:flex}.modal-header .close{margin:-1rem -1rem -1rem auto;padding:1rem}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{-ms-flex:auto;flex:auto;padding:1rem;position:relative}.modal-footer{border-top:1px solid #dee2e6;border-bottom-left-radius:calc(.3rem - 1px);border-bottom-right-radius:calc(.3rem - 1px);-ms-flex-wrap:wrap;flex-wrap:wrap;justify-content:flex-end;align-items:center;padding:.75rem;display:-ms-flexbox;display:flex}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{width:50px;height:50px;position:absolute;top:-9999px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{z-index:1070;text-align:left;text-align:start;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;word-wrap:break-word;opacity:0;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:.875rem;font-style:normal;font-weight:400;line-height:1.5;text-decoration:none;display:block;position:absolute}.tooltip.show{opacity:.9}.tooltip .arrow{width:.8rem;height:.4rem;display:block;position:absolute}.tooltip .arrow:before{content:"";border-style:solid;border-color:#0000;position:absolute}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{border-width:.4rem .4rem 0;border-top-color:#000;top:0}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{width:.4rem;height:.8rem;left:0}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{border-width:.4rem .4rem .4rem 0;border-right-color:#000;right:0}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{border-width:0 .4rem .4rem;border-bottom-color:#000;bottom:0}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{width:.4rem;height:.8rem;right:0}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{border-width:.4rem 0 .4rem .4rem;border-left-color:#000;left:0}.tooltip-inner{max-width:200px;color:#fff;text-align:center;background-color:#000;border-radius:.25rem;padding:.25rem .5rem}.popover{z-index:1060;max-width:276px;text-align:left;text-align:start;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid #0003;border-radius:.3rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:.875rem;font-style:normal;font-weight:400;line-height:1.5;text-decoration:none;display:block;position:absolute;top:0;left:0}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem;display:block;position:absolute}.popover .arrow:after,.popover .arrow:before{content:"";border-style:solid;border-color:#0000;display:block;position:absolute}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{border-width:.5rem .5rem 0;border-top-color:#00000040;bottom:0}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{border-width:.5rem .5rem 0;border-top-color:#fff;bottom:1px}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{width:.5rem;height:1rem;margin:.3rem 0;left:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{border-width:.5rem .5rem .5rem 0;border-right-color:#00000040;left:0}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{border-width:.5rem .5rem .5rem 0;border-right-color:#fff;left:1px}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{border-width:0 .5rem .5rem;border-bottom-color:#00000040;top:0}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{border-width:0 .5rem .5rem;border-bottom-color:#fff;top:1px}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{width:1rem;content:"";border-bottom:1px solid #f7f7f7;margin-left:-.5rem;display:block;position:absolute;top:0;left:50%}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{width:.5rem;height:1rem;margin:.3rem 0;right:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{border-width:.5rem 0 .5rem .5rem;border-left-color:#00000040;right:0}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{border-width:.5rem 0 .5rem .5rem;border-left-color:#fff;right:1px}.popover-header{background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px);margin-bottom:0;padding:.5rem .75rem;font-size:1rem}.popover-header:empty{display:none}.popover-body{color:#212529;padding:.5rem .75rem}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{width:100%;position:relative;overflow:hidden}.carousel-inner:after{clear:both;content:"";display:block}.carousel-item{float:left;width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin-right:-100%;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out;display:none;position:relative}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translate(100%);transform:translate(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translate(-100%);transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{z-index:1;width:15%;color:#fff;text-align:center;opacity:.5;background:0 0;border:0;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:-ms-flexbox;display:flex;position:absolute;top:0;bottom:0}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;opacity:.9;outline:0;text-decoration:none}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{width:20px;height:20px;background:50%/100% 100% no-repeat;display:inline-block}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{z-index:15;justify-content:center;margin-left:15%;margin-right:15%;padding-left:0;list-style:none;display:-ms-flexbox;display:flex;position:absolute;bottom:0;left:0;right:0}.carousel-indicators li{box-sizing:content-box;width:30px;height:3px;text-indent:-999px;cursor:pointer;opacity:.5;background-color:#fff;background-clip:padding-box;border-top:10px solid #0000;border-bottom:10px solid #0000;-ms-flex:0 auto;flex:0 auto;margin-left:3px;margin-right:3px;transition:opacity .6s}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{z-index:10;color:#fff;text-align:center;padding-top:20px;padding-bottom:20px;position:absolute;bottom:20px;left:15%;right:15%}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid;border-right-color:#0000;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite;display:inline-block}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{width:2rem;height:2rem;vertical-align:-.125em;opacity:0;background-color:currentColor;border-radius:50%;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite;display:inline-block}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:#0000!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-left-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{clear:both;content:"";display:block}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{width:100%;padding:0;display:block;position:relative;overflow:hidden}.embed-responsive:before{content:"";display:block}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{width:100%;height:100%;border:0;position:absolute;top:0;bottom:0;left:0}.embed-responsive-21by9:before{padding-top:42.8571%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:auto!important;flex:auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:auto!important;flex:auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:auto!important;flex:auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:auto!important;flex:auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:auto!important;flex:auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{z-index:1030;position:fixed;top:0;left:0;right:0}.fixed-bottom{z-index:1030;position:fixed;bottom:0;left:0;right:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{z-index:1020;position:-webkit-sticky;position:sticky;top:0}}.sr-only{width:1px;height:1px;clip:rect(0,0,0,0);white-space:nowrap;border:0;margin:-1px;padding:0;position:absolute;overflow:hidden}.sr-only-focusable:active,.sr-only-focusable:focus{width:auto;height:auto;clip:auto;white-space:normal;position:static;overflow:visible}.shadow-sm{box-shadow:0 .125rem .25rem #00000013!important}.shadow{box-shadow:0 .5rem 1rem #00000026!important}.shadow-lg{box-shadow:0 1rem 3rem #0000002d!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{z-index:1;pointer-events:auto;content:"";background-color:#0000;position:absolute;inset:0}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:#00000080!important}.text-white-50{color:#ffffff80!important}.text-hide{font:0/0 a;color:#0000;text-shadow:none;background-color:#0000;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title)")"}pre{white-space:pre-wrap!important}blockquote,pre{page-break-inside:avoid;border:1px solid #adb5bd}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body,.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}@-webkit-keyframes bs-notify-fadeOut{0%{opacity:.9}to{opacity:0}}@-o-keyframes bs-notify-fadeOut{0%{opacity:.9}to{opacity:0}}@keyframes bs-notify-fadeOut{0%{opacity:.9}to{opacity:0}}.bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px�;vertical-align:middle}.bootstrap-select>.dropdown-toggle{width:100%;text-align:right;white-space:nowrap;justify-content:space-between;align-items:center;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;position:relative}.bootstrap-select>.dropdown-toggle:after{margin-top:-1px}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:#ffffff80}.bootstrap-select>select{border:none;bottom:0;left:50%;width:.5px!important;height:100%!important;opacity:0!important;z-index:0!important;padding:0!important;display:block!important;position:absolute!important}.bootstrap-select>select.mobile-device{top:0;left:0;width:100%!important;z-index:2!important;display:block!important}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select select:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select select:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus,.bootstrap-select>select.mobile-device:focus+.dropdown-toggle{outline-offset:-2px;outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important}.bootstrap-select.form-control{height:auto;border:none;margin-bottom:0;padding:0}:not(.input-group)>.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{float:none;z-index:auto}.form-inline .bootstrap-select,.form-inline .bootstrap-select.form-control:not([class*=col-]){width:auto}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;margin-left:0;display:inline-block}.bootstrap-select.dropdown-menu-right,.bootstrap-select[class*=col-].dropdown-menu-right,.row .bootstrap-select[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:0!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle .filter-option{float:left;height:100%;width:100%;text-align:left;-webkit-box-flex:0;-webkit-flex:0 auto;-ms-flex:0 auto;flex:0 auto;position:static;top:0;left:0;overflow:hidden}.bs3.bootstrap-select .dropdown-toggle .filter-option{padding-right:inherit}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option{padding-top:inherit;padding-bottom:inherit;padding-left:inherit;float:none;position:absolute}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option .filter-option-inner{padding-right:inherit}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .filter-expand{float:left;overflow:hidden;width:0!important;opacity:0!important}.bootstrap-select .dropdown-toggle .caret{vertical-align:middle;margin-top:-2px;position:absolute;top:50%;right:12px}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:0!important}.bootstrap-select .dropdown-menu.inner{float:none;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;margin:0;padding:0;position:static}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:#ffffff80!important}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{padding-left:2.25em;position:relative}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{width:96%;min-height:26px;pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background:#f5f5f5;border:1px solid #e3e3e3;margin:0 2%;padding:3px 5px;position:absolute;bottom:5px;-webkit-box-shadow:inset 0 1px 1px #0000000d;box-shadow:inset 0 1px 1px #0000000d}.bootstrap-select .dropdown-menu .notify.fadeOut{-webkit-animation:bs-notify-fadeOut .3s linear .75s forwards;-o-animation:bs-notify-fadeOut .3s linear .75s forwards;animation:bs-notify-fadeOut .3s linear .75s forwards}.bootstrap-select .no-results{white-space:nowrap;background:#f5f5f5;margin:0 5px;padding:3px}.bootstrap-select.fit-width .dropdown-toggle .filter-option{padding:0;display:inline;position:static}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.bootstrap-select.fit-width .dropdown-toggle .bs-caret:before{content:" "}.bootstrap-select.fit-width .dropdown-toggle .caret{margin-top:-1px;position:static;top:auto}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{display:inline-block;position:absolute;top:5px;right:15px}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select .bs-ok-default:after{content:"";width:.5em;height:1em;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;border-style:solid;border-width:0 .26em .26em 0;display:block;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before{content:"";border-bottom:7px solid #ccc3;border-left:7px solid #0000;border-right:7px solid #0000;display:none;position:absolute;bottom:-4px;left:9px}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after{content:"";border-bottom:6px solid #fff;border-left:6px solid #0000;border-right:6px solid #0000;display:none;position:absolute;bottom:-4px;left:10px}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before{border-top:7px solid #ccc3;border-bottom:0;top:-4px;bottom:auto}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{border-top:6px solid #fff;border-bottom:0;top:-4px;bottom:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{left:auto;right:12px}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{left:auto;right:13px}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{width:100%;float:none;margin-bottom:0}@font-face{font-family:FontAwesome;src:url(fontawesome-webfont.3981e506.eot);src:url(fontawesome-webfont.3981e506.eot#iefix&v=4.7.0)format("embedded-opentype"),url(fontawesome-webfont.58488e7e.woff2)format("woff2"),url(fontawesome-webfont.ed962b83.woff)format("woff"),url(fontawesome-webfont.0caf0c90.ttf)format("truetype"),url(fontawesome-webfont.a9323ae9.svg#fontawesomeregular)format("svg");font-weight:400;font-style:normal}.fa{font:14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block}.fa-lg{vertical-align:-15%;font-size:1.33333em;line-height:.75em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{margin-left:2.14286em;padding-left:0;list-style-type:none}.fa-ul>li{position:relative}.fa-li{width:2.14286em;text-align:center;position:absolute;top:.142857em;left:-2.14286em}.fa-li.fa-lg{left:-1.85714em}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8,end) infinite;animation:fa-spin 1s steps(8,end) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{width:2em;height:2em;vertical-align:middle;line-height:2em;display:inline-block;position:relative}.fa-stack-1x,.fa-stack-2x{width:100%;text-align:center;position:absolute;left:0}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{width:1px;height:1px;clip:rect(0,0,0,0);border:0;margin:-1px;padding:0;position:absolute;overflow:hidden}.sr-only-focusable:active,.sr-only-focusable:focus{width:auto;height:auto;clip:auto;margin:0;position:static;overflow:visible}.mfp-bg{width:100%;height:100%;z-index:1042;opacity:.8;background:#0b0b0b;position:fixed;top:0;left:0;overflow:hidden}.mfp-wrap{width:100%;height:100%;z-index:1043;-webkit-backface-visibility:hidden;position:fixed;top:0;left:0;outline:none!important}.mfp-container{text-align:center;width:100%;height:100%;box-sizing:border-box;padding:0 8px;position:absolute;top:0;left:0}.mfp-container:before{content:"";height:100%;vertical-align:middle;display:inline-block}.mfp-align-top .mfp-container:before{display:none}.mfp-content{vertical-align:middle;text-align:left;z-index:1045;margin:0 auto;display:inline-block;position:relative}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#ccc;width:auto;text-align:center;z-index:1044;margin-top:-.8em;position:absolute;top:50%;left:8px;right:8px}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader,.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{cursor:pointer;-webkit-appearance:none;z-index:1046;box-shadow:none;touch-action:manipulation;background:0 0;border:0;outline:none;padding:0;display:block;overflow:visible}button::-moz-focus-inner{border:0;padding:0}.mfp-close{width:44px;height:44px;text-align:center;opacity:.65;color:#fff;padding:0 0 18px 10px;font-family:Arial,Baskerville,monospace;font-size:28px;font-style:normal;line-height:44px;text-decoration:none;position:absolute;top:0;right:0}.mfp-close:hover,.mfp-close:focus{opacity:1}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;text-align:right;width:100%;padding-right:6px;right:-6px}.mfp-counter{color:#ccc;white-space:nowrap;font-size:12px;line-height:18px;position:absolute;top:0;right:0}.mfp-arrow{opacity:.65;width:90px;height:110px;-webkit-tap-highlight-color:transparent;margin:-55px 0 0;padding:0;position:absolute;top:50%}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1}.mfp-arrow:before,.mfp-arrow:after{content:"";width:0;height:0;border:inset #0000;margin-top:35px;margin-left:35px;display:block;position:absolute;top:0;left:0}.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before{opacity:.7;border-top-width:21px;border-bottom-width:21px}.mfp-arrow-left{left:0}.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before{border-right:27px solid #3f3f3f;margin-left:25px}.mfp-arrow-right{right:0}.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{width:100%;max-width:900px;line-height:0}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;padding-top:56.25%;overflow:hidden}.mfp-iframe-scaler iframe{width:100%;height:100%;background:#000;display:block;position:absolute;top:0;left:0;box-shadow:0 0 8px #0009}img.mfp-img{width:auto;max-width:100%;height:auto;box-sizing:border-box;margin:0 auto;padding:40px 0;line-height:0;display:block}.mfp-figure{line-height:0}.mfp-figure:after{content:"";width:auto;height:auto;z-index:-1;background:#444;display:block;position:absolute;inset:40px 0;box-shadow:0 0 8px #0009}.mfp-figure small{color:#bdbdbd;font-size:12px;line-height:14px;display:block}.mfp-figure figure{margin:0}.mfp-bottom-bar{width:100%;cursor:auto;margin-top:-36px;position:absolute;top:100%;left:0}.mfp-title{text-align:left;color:#f3f3f3;word-wrap:break-word;padding-right:36px;line-height:18px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{margin-left:5px;display:inline}.mfp-img-mobile .mfp-bottom-bar{box-sizing:border-box;background:#0009;margin:0;padding:3px 5px;position:fixed;top:auto;bottom:0}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{top:3px;right:5px}.mfp-img-mobile .mfp-close{width:35px;height:35px;text-align:center;background:#0009;padding:0;line-height:35px;position:fixed;top:0;right:0}}@media (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{width:100%;z-index:1;display:none}.owl-carousel .owl-stage{-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden;position:relative}.owl-carousel .owl-stage:after{content:".";clear:both;visibility:hidden;height:0;line-height:0;display:block}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate(0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate(0,0);-moz-transform:translate(0,0);-ms-transform:translate(0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{width:100%;display:block}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-khtml-user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{color:inherit;font:inherit;background:0 0;border:none;padding:0!important}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{height:100%;background:#000;position:relative}.owl-carousel .owl-video-play-icon{height:80px;width:80px;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;background:url(owl.video.play.e7a23fb2.png) no-repeat;margin-top:-40px;margin-left:-40px;transition:transform .1s;position:absolute;top:50%;left:50%}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3);transform:scale(1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:50%;background-repeat:no-repeat;background-size:contain;transition:opacity .4s}.owl-carousel .owl-video-frame{z-index:1;height:100%;width:100%;position:relative}.owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#fff;cursor:pointer;background:#d6d6d6;border-radius:3px;margin:5px;padding:4px 7px;font-size:14px;display:inline-block}.owl-theme .owl-nav [class*=owl-]:hover{color:#fff;background:#869791;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{zoom:1;display:inline-block}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;-webkit-backface-visibility:visible;background:#d6d6d6;border-radius:30px;margin:5px 7px;transition:opacity .2s;display:block}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791}.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{float:right;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);font-size:20px;font-weight:700;line-height:1;position:relative;top:-.3em;right:-.3em}.toast-close-button:focus,.toast-close-button:hover{color:#000;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40);text-decoration:none}.rtl .toast-close-button{float:left;left:-.3em;right:.3em}button.toast-close-button{cursor:pointer;-webkit-appearance:none;background:0 0;border:0;padding:0}.toast-top-center{width:100%;top:0;right:0}.toast-bottom-center{width:100%;bottom:0;right:0}.toast-top-full-width{width:100%;top:0;right:0}.toast-bottom-full-width{width:100%;bottom:0;right:0}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{bottom:12px;right:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{z-index:999999;pointer-events:none;position:fixed}#toast-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#toast-container>div{pointer-events:auto;width:300px;color:#fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);background-position:15px;background-repeat:no-repeat;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 0 6px;padding:15px 15px 15px 50px;position:relative;overflow:hidden;-webkit-box-shadow:0 0 12px #999;-moz-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999}#toast-container>div.rtl{direction:rtl;background-position:right 15px center;padding:15px 50px 15px 15px}#toast-container>div:hover{opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer;-webkit-box-shadow:0 0 12px #000;-moz-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{height:4px;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40);background-color:#000;position:absolute;bottom:0;left:0}@media (max-width:240px){#toast-container>div{width:11em;padding:8px 8px 8px 50px}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{top:-.2em;right:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media (min-width:241px) and (max-width:480px){#toast-container>div{width:18em;padding:8px 8px 8px 50px}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{top:-.2em;right:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media (min-width:481px) and (max-width:768px){#toast-container>div{width:25em;padding:15px 15px 15px 50px}#toast-container>div.rtl{padding:15px 50px 15px 15px}}:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate__animated.animate__infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate__animated.animate__repeat-1{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{-webkit-animation-iteration-count:2;animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{-webkit-animation-delay:1s;animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{-webkit-animation-delay:4s;animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{-webkit-animation-delay:5s;animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animate__animated.animate__slow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animate__animated{-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@-webkit-keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:matrix(1,0,0,1.1,0,-30);transform:matrix(1,0,0,1.1,0,-30)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:matrix(1,0,0,1.05,0,-15);transform:matrix(1,0,0,1.05,0,-15)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:scaleY(.95);transform:scaleY(.95)}90%{-webkit-transform:matrix(1,0,0,1.02,0,-4);transform:matrix(1,0,0,1.02,0,-4)}}@keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:matrix(1,0,0,1.1,0,-30);transform:matrix(1,0,0,1.1,0,-30)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:matrix(1,0,0,1.05,0,-15);transform:matrix(1,0,0,1.05,0,-15)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:scaleY(.95);transform:scaleY(.95)}90%{-webkit-transform:matrix(1,0,0,1.02,0,-4);transform:matrix(1,0,0,1.02,0,-4)}}.animate__bounce{-webkit-transform-origin:bottom;transform-origin:bottom;-webkit-animation-name:bounce;animation-name:bounce}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale(1.25,.75);transform:scale(1.25,.75)}40%{-webkit-transform:scale(.75,1.25);transform:scale(.75,1.25)}50%{-webkit-transform:scale(1.15,.85);transform:scale(1.15,.85)}65%{-webkit-transform:scale(.95,1.05);transform:scale(.95,1.05)}75%{-webkit-transform:scale(1.05,.95);transform:scale(1.05,.95)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale(1.25,.75);transform:scale(1.25,.75)}40%{-webkit-transform:scale(.75,1.25);transform:scale(.75,1.25)}50%{-webkit-transform:scale(1.15,.85);transform:scale(1.15,.85)}65%{-webkit-transform:scale(.95,1.05);transform:scale(.95,1.05)}75%{-webkit-transform:scale(1.05,.95);transform:scale(1.05,.95)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate(-10px);transform:translate(-10px)}20%,40%,60%,80%{-webkit-transform:translate(10px);transform:translate(10px)}}@keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate(-10px);transform:translate(-10px)}20%,40%,60%,80%{-webkit-transform:translate(10px);transform:translate(10px)}}.animate__shakeX{-webkit-animation-name:shakeX;animation-name:shakeX}@-webkit-keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}20%,40%,60%,80%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}20%,40%,60%,80%{-webkit-transform:translateY(10px);transform:translateY(10px)}}.animate__shakeY{-webkit-animation-name:shakeY;animation-name:shakeY}@-webkit-keyframes headShake{0%{-webkit-transform:translate(0);transform:translate(0)}6.5%{-webkit-transform:translate(-6px)rotateY(-9deg);transform:translate(-6px)rotateY(-9deg)}18.5%{-webkit-transform:translate(5px)rotateY(7deg);transform:translate(5px)rotateY(7deg)}31.5%{-webkit-transform:translate(-3px)rotateY(-5deg);transform:translate(-3px)rotateY(-5deg)}43.5%{-webkit-transform:translate(2px)rotateY(3deg);transform:translate(2px)rotateY(3deg)}50%{-webkit-transform:translate(0);transform:translate(0)}}@keyframes headShake{0%{-webkit-transform:translate(0);transform:translate(0)}6.5%{-webkit-transform:translate(-6px)rotateY(-9deg);transform:translate(-6px)rotateY(-9deg)}18.5%{-webkit-transform:translate(5px)rotateY(7deg);transform:translate(5px)rotateY(7deg)}31.5%{-webkit-transform:translate(-3px)rotateY(-5deg);transform:translate(-3px)rotateY(-5deg)}43.5%{-webkit-transform:translate(2px)rotateY(3deg);transform:translate(2px)rotateY(3deg)}50%{-webkit-transform:translate(0);transform:translate(0)}}.animate__headShake{-webkit-animation-name:headShake;animation-name:headShake;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.animate__swing{-webkit-transform-origin:top;transform-origin:top;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9)rotate(-3deg);transform:scale3d(.9,.9,.9)rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1)rotate(3deg);transform:scale3d(1.1,1.1,1.1)rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1)rotate(-3deg);transform:scale3d(1.1,1.1,1.1)rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9)rotate(-3deg);transform:scale3d(.9,.9,.9)rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1)rotate(3deg);transform:scale3d(1.1,1.1,1.1)rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1)rotate(-3deg);transform:scale3d(1.1,1.1,1.1)rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate(-25%)rotate(-5deg);transform:translate(-25%)rotate(-5deg)}30%{-webkit-transform:translate(20%)rotate(3deg);transform:translate(20%)rotate(3deg)}45%{-webkit-transform:translate(-15%)rotate(-3deg);transform:translate(-15%)rotate(-3deg)}60%{-webkit-transform:translate(10%)rotate(2deg);transform:translate(10%)rotate(2deg)}75%{-webkit-transform:translate(-5%)rotate(-1deg);transform:translate(-5%)rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate(-25%)rotate(-5deg);transform:translate(-25%)rotate(-5deg)}30%{-webkit-transform:translate(20%)rotate(3deg);transform:translate(20%)rotate(3deg)}45%{-webkit-transform:translate(-15%)rotate(-3deg);transform:translate(-15%)rotate(-3deg)}60%{-webkit-transform:translate(10%)rotate(2deg);transform:translate(10%)rotate(2deg)}75%{-webkit-transform:translate(-5%)rotate(-1deg);transform:translate(-5%)rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skew(-12.5deg)skewY(-12.5deg);transform:skew(-12.5deg)skewY(-12.5deg)}33.3%{-webkit-transform:skew(6.25deg)skewY(6.25deg);transform:skew(6.25deg)skewY(6.25deg)}44.4%{-webkit-transform:skew(-3.125deg)skewY(-3.125deg);transform:skew(-3.125deg)skewY(-3.125deg)}55.5%{-webkit-transform:skew(1.5625deg)skewY(1.5625deg);transform:skew(1.5625deg)skewY(1.5625deg)}66.6%{-webkit-transform:skew(-.78125deg)skewY(-.78125deg);transform:skew(-.78125deg)skewY(-.78125deg)}77.7%{-webkit-transform:skew(.390625deg)skewY(.390625deg);transform:skew(.390625deg)skewY(.390625deg)}88.8%{-webkit-transform:skew(-.195313deg)skewY(-.195313deg);transform:skew(-.195313deg)skewY(-.195313deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skew(-12.5deg)skewY(-12.5deg);transform:skew(-12.5deg)skewY(-12.5deg)}33.3%{-webkit-transform:skew(6.25deg)skewY(6.25deg);transform:skew(6.25deg)skewY(6.25deg)}44.4%{-webkit-transform:skew(-3.125deg)skewY(-3.125deg);transform:skew(-3.125deg)skewY(-3.125deg)}55.5%{-webkit-transform:skew(1.5625deg)skewY(1.5625deg);transform:skew(1.5625deg)skewY(1.5625deg)}66.6%{-webkit-transform:skew(-.78125deg)skewY(-.78125deg);transform:skew(-.78125deg)skewY(-.78125deg)}77.7%{-webkit-transform:skew(.390625deg)skewY(.390625deg);transform:skew(.390625deg)skewY(.390625deg)}88.8%{-webkit-transform:skew(-.195313deg)skewY(-.195313deg);transform:skew(-.195313deg)skewY(-.195313deg)}}.animate__jello{-webkit-transform-origin:50%;transform-origin:50%;-webkit-animation-name:jello;animation-name:jello}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.animate__heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes backInDown{0%{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,0,-1200);transform:matrix(.7,0,0,.7,0,-1200)}80%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes backInDown{0%{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,0,-1200);transform:matrix(.7,0,0,.7,0,-1200)}80%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__backInDown{-webkit-animation-name:backInDown;animation-name:backInDown}@-webkit-keyframes backInLeft{0%{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,-2000,0);transform:matrix(.7,0,0,.7,-2000,0)}80%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes backInLeft{0%{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,-2000,0);transform:matrix(.7,0,0,.7,-2000,0)}80%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__backInLeft{-webkit-animation-name:backInLeft;animation-name:backInLeft}@-webkit-keyframes backInRight{0%{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,2000,0);transform:matrix(.7,0,0,.7,2000,0)}80%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes backInRight{0%{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,2000,0);transform:matrix(.7,0,0,.7,2000,0)}80%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__backInRight{-webkit-animation-name:backInRight;animation-name:backInRight}@-webkit-keyframes backInUp{0%{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,0,1200);transform:matrix(.7,0,0,.7,0,1200)}80%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes backInUp{0%{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,0,1200);transform:matrix(.7,0,0,.7,0,1200)}80%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__backInUp{-webkit-animation-name:backInUp;animation-name:backInUp}@-webkit-keyframes backOutDown{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,0,700);transform:matrix(.7,0,0,.7,0,700)}}@keyframes backOutDown{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,0,700);transform:matrix(.7,0,0,.7,0,700)}}.animate__backOutDown{-webkit-animation-name:backOutDown;animation-name:backOutDown}@-webkit-keyframes backOutLeft{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,-2000,0);transform:matrix(.7,0,0,.7,-2000,0)}}@keyframes backOutLeft{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,-2000,0);transform:matrix(.7,0,0,.7,-2000,0)}}.animate__backOutLeft{-webkit-animation-name:backOutLeft;animation-name:backOutLeft}@-webkit-keyframes backOutRight{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,2000,0);transform:matrix(.7,0,0,.7,2000,0)}}@keyframes backOutRight{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,2000,0);transform:matrix(.7,0,0,.7,2000,0)}}.animate__backOutRight{-webkit-animation-name:backOutRight;animation-name:backOutRight}@-webkit-keyframes backOutUp{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,0,-700);transform:matrix(.7,0,0,.7,0,-700)}}@keyframes backOutUp{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:.7;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:.7;-webkit-transform:matrix(.7,0,0,.7,0,-700);transform:matrix(.7,0,0,.7,0,-700)}}.animate__backOutUp{-webkit-animation-name:backOutUp;animation-name:backOutUp}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:matrix(1,0,0,3,0,-3000);transform:matrix(1,0,0,3,0,-3000)}60%{opacity:1;-webkit-transform:matrix(1,0,0,.9,0,25);transform:matrix(1,0,0,.9,0,25)}75%{-webkit-transform:matrix(1,0,0,.95,0,-10);transform:matrix(1,0,0,.95,0,-10)}90%{-webkit-transform:matrix(1,0,0,.985,0,5);transform:matrix(1,0,0,.985,0,5)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:matrix(1,0,0,3,0,-3000);transform:matrix(1,0,0,3,0,-3000)}60%{opacity:1;-webkit-transform:matrix(1,0,0,.9,0,25);transform:matrix(1,0,0,.9,0,25)}75%{-webkit-transform:matrix(1,0,0,.95,0,-10);transform:matrix(1,0,0,.95,0,-10)}90%{-webkit-transform:matrix(1,0,0,.985,0,5);transform:matrix(1,0,0,.985,0,5)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:matrix(3,0,0,1,-3000,0);transform:matrix(3,0,0,1,-3000,0)}60%{opacity:1;-webkit-transform:translate(25px);transform:translate(25px)}75%{-webkit-transform:matrix(.98,0,0,1,-10,0);transform:matrix(.98,0,0,1,-10,0)}90%{-webkit-transform:matrix(.995,0,0,1,5,0);transform:matrix(.995,0,0,1,5,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:matrix(3,0,0,1,-3000,0);transform:matrix(3,0,0,1,-3000,0)}60%{opacity:1;-webkit-transform:translate(25px);transform:translate(25px)}75%{-webkit-transform:matrix(.98,0,0,1,-10,0);transform:matrix(.98,0,0,1,-10,0)}90%{-webkit-transform:matrix(.995,0,0,1,5,0);transform:matrix(.995,0,0,1,5,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:matrix(3,0,0,1,3000,0);transform:matrix(3,0,0,1,3000,0)}60%{opacity:1;-webkit-transform:translate(-25px);transform:translate(-25px)}75%{-webkit-transform:matrix(.98,0,0,1,10,0);transform:matrix(.98,0,0,1,10,0)}90%{-webkit-transform:matrix(.995,0,0,1,-5,0);transform:matrix(.995,0,0,1,-5,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:matrix(3,0,0,1,3000,0);transform:matrix(3,0,0,1,3000,0)}60%{opacity:1;-webkit-transform:translate(-25px);transform:translate(-25px)}75%{-webkit-transform:matrix(.98,0,0,1,10,0);transform:matrix(.98,0,0,1,10,0)}90%{-webkit-transform:matrix(.995,0,0,1,-5,0);transform:matrix(.995,0,0,1,-5,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:matrix(1,0,0,5,0,3000);transform:matrix(1,0,0,5,0,3000)}60%{opacity:1;-webkit-transform:matrix(1,0,0,.9,0,-20);transform:matrix(1,0,0,.9,0,-20)}75%{-webkit-transform:matrix(1,0,0,.95,0,10);transform:matrix(1,0,0,.95,0,10)}90%{-webkit-transform:matrix(1,0,0,.985,0,-5);transform:matrix(1,0,0,.985,0,-5)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:matrix(1,0,0,5,0,3000);transform:matrix(1,0,0,5,0,3000)}60%{opacity:1;-webkit-transform:matrix(1,0,0,.9,0,-20);transform:matrix(1,0,0,.9,0,-20)}75%{-webkit-transform:matrix(1,0,0,.95,0,10);transform:matrix(1,0,0,.95,0,10)}90%{-webkit-transform:matrix(1,0,0,.985,0,-5);transform:matrix(1,0,0,.985,0,-5)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.animate__bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:matrix(1,0,0,.985,0,10);transform:matrix(1,0,0,.985,0,10)}40%,45%{opacity:1;-webkit-transform:matrix(1,0,0,.9,0,-20);transform:matrix(1,0,0,.9,0,-20)}to{opacity:0;-webkit-transform:matrix(1,0,0,3,0,2000);transform:matrix(1,0,0,3,0,2000)}}@keyframes bounceOutDown{20%{-webkit-transform:matrix(1,0,0,.985,0,10);transform:matrix(1,0,0,.985,0,10)}40%,45%{opacity:1;-webkit-transform:matrix(1,0,0,.9,0,-20);transform:matrix(1,0,0,.9,0,-20)}to{opacity:0;-webkit-transform:matrix(1,0,0,3,0,2000);transform:matrix(1,0,0,3,0,2000)}}.animate__bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:matrix(.9,0,0,1,20,0);transform:matrix(.9,0,0,1,20,0)}to{opacity:0;-webkit-transform:matrix(2,0,0,1,-2000,0);transform:matrix(2,0,0,1,-2000,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:matrix(.9,0,0,1,20,0);transform:matrix(.9,0,0,1,20,0)}to{opacity:0;-webkit-transform:matrix(2,0,0,1,-2000,0);transform:matrix(2,0,0,1,-2000,0)}}.animate__bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:matrix(.9,0,0,1,-20,0);transform:matrix(.9,0,0,1,-20,0)}to{opacity:0;-webkit-transform:matrix(2,0,0,1,2000,0);transform:matrix(2,0,0,1,2000,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:matrix(.9,0,0,1,-20,0);transform:matrix(.9,0,0,1,-20,0)}to{opacity:0;-webkit-transform:matrix(2,0,0,1,2000,0);transform:matrix(2,0,0,1,2000,0)}}.animate__bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:matrix(1,0,0,.985,0,-10);transform:matrix(1,0,0,.985,0,-10)}40%,45%{opacity:1;-webkit-transform:matrix(1,0,0,.9,0,20);transform:matrix(1,0,0,.9,0,20)}to{opacity:0;-webkit-transform:matrix(1,0,0,3,0,-2000);transform:matrix(1,0,0,3,0,-2000)}}@keyframes bounceOutUp{20%{-webkit-transform:matrix(1,0,0,.985,0,-10);transform:matrix(1,0,0,.985,0,-10)}40%,45%{opacity:1;-webkit-transform:matrix(1,0,0,.9,0,20);transform:matrix(1,0,0,.9,0,20)}to{opacity:0;-webkit-transform:matrix(1,0,0,3,0,-2000);transform:matrix(1,0,0,3,0,-2000)}}.animate__bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate(-100%);transform:translate(-100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate(-100%);transform:translate(-100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate(-2000px);transform:translate(-2000px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate(-2000px);transform:translate(-2000px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate(100%);transform:translate(100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate(100%);transform:translate(100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate(2000px);transform:translate(2000px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate(2000px);transform:translate(2000px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate(-100%,-100%);transform:translate(-100%,-100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate(-100%,-100%);transform:translate(-100%,-100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopLeft{-webkit-animation-name:fadeInTopLeft;animation-name:fadeInTopLeft}@-webkit-keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate(100%,-100%);transform:translate(100%,-100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate(100%,-100%);transform:translate(100%,-100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopRight{-webkit-animation-name:fadeInTopRight;animation-name:fadeInTopRight}@-webkit-keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate(-100%,100%);transform:translate(-100%,100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate(-100%,100%);transform:translate(-100%,100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomLeft{-webkit-animation-name:fadeInBottomLeft;animation-name:fadeInBottomLeft}@-webkit-keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate(100%,100%);transform:translate(100%,100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate(100%,100%);transform:translate(100%,100%)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomRight{-webkit-animation-name:fadeInBottomRight;animation-name:fadeInBottomRight}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}.animate__fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}}.animate__fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate(-100%);transform:translate(-100%)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate(-100%);transform:translate(-100%)}}.animate__fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate(-2000px);transform:translate(-2000px)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate(-2000px);transform:translate(-2000px)}}.animate__fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate(100%);transform:translate(100%)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate(100%);transform:translate(100%)}}.animate__fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate(2000px);transform:translate(2000px)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate(2000px);transform:translate(2000px)}}.animate__fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.animate__fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}.animate__fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate(-100%,-100%);transform:translate(-100%,-100%)}}@keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate(-100%,-100%);transform:translate(-100%,-100%)}}.animate__fadeOutTopLeft{-webkit-animation-name:fadeOutTopLeft;animation-name:fadeOutTopLeft}@-webkit-keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate(100%,-100%);transform:translate(100%,-100%)}}@keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate(100%,-100%);transform:translate(100%,-100%)}}.animate__fadeOutTopRight{-webkit-animation-name:fadeOutTopRight;animation-name:fadeOutTopRight}@-webkit-keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate(100%,100%);transform:translate(100%,100%)}}@keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate(100%,100%);transform:translate(100%,100%)}}.animate__fadeOutBottomRight{-webkit-animation-name:fadeOutBottomRight;animation-name:fadeOutBottomRight}@-webkit-keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate(-100%,100%);transform:translate(-100%,100%)}}@keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate(-100%,100%);transform:translate(-100%,100%)}}.animate__fadeOutBottomLeft{-webkit-animation-name:fadeOutBottomLeft;animation-name:fadeOutBottomLeft}@-webkit-keyframes flip{0%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:perspective(400px)scaleX(1)translateZ(0)rotateY(-1turn);transform:perspective(400px)scaleX(1)translateZ(0)rotateY(-1turn)}40%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-190deg);transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-190deg)}50%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-170deg);transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-170deg)}80%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:matrix3d(.95,0,0,0,0,.95,0,0,0,0,.95,-.002375,0,0,0,1);transform:matrix3d(.95,0,0,0,0,.95,0,0,0,0,.95,-.002375,0,0,0,1)}to{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,-.0025,0,0,0,1);transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,-.0025,0,0,0,1)}}@keyframes flip{0%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:perspective(400px)scaleX(1)translateZ(0)rotateY(-1turn);transform:perspective(400px)scaleX(1)translateZ(0)rotateY(-1turn)}40%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-190deg);transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-190deg)}50%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-170deg);transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-170deg)}80%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:matrix3d(.95,0,0,0,0,.95,0,0,0,0,.95,-.002375,0,0,0,1);transform:matrix3d(.95,0,0,0,0,.95,0,0,0,0,.95,-.002375,0,0,0,1)}to{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,-.0025,0,0,0,1);transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,-.0025,0,0,0,1)}}.animate__animated.animate__flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{opacity:0;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px)rotateX(90deg);transform:perspective(400px)rotateX(90deg)}40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px)rotateX(-20deg);transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;-webkit-transform:perspective(400px)rotateX(10deg);transform:perspective(400px)rotateX(10deg)}80%{-webkit-transform:perspective(400px)rotateX(-5deg);transform:perspective(400px)rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{opacity:0;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px)rotateX(90deg);transform:perspective(400px)rotateX(90deg)}40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px)rotateX(-20deg);transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;-webkit-transform:perspective(400px)rotateX(10deg);transform:perspective(400px)rotateX(10deg)}80%{-webkit-transform:perspective(400px)rotateX(-5deg);transform:perspective(400px)rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInX{-webkit-animation-name:flipInX;animation-name:flipInX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipInY{0%{opacity:0;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px)rotateY(90deg);transform:perspective(400px)rotateY(90deg)}40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px)rotateY(-20deg);transform:perspective(400px)rotateY(-20deg)}60%{opacity:1;-webkit-transform:perspective(400px)rotateY(10deg);transform:perspective(400px)rotateY(10deg)}80%{-webkit-transform:perspective(400px)rotateY(-5deg);transform:perspective(400px)rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{opacity:0;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px)rotateY(90deg);transform:perspective(400px)rotateY(90deg)}40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px)rotateY(-20deg);transform:perspective(400px)rotateY(-20deg)}60%{opacity:1;-webkit-transform:perspective(400px)rotateY(10deg);transform:perspective(400px)rotateY(10deg)}80%{-webkit-transform:perspective(400px)rotateY(-5deg);transform:perspective(400px)rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInY{-webkit-animation-name:flipInY;animation-name:flipInY;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{opacity:1;-webkit-transform:perspective(400px)rotateX(-20deg);transform:perspective(400px)rotateX(-20deg)}to{opacity:0;-webkit-transform:perspective(400px)rotateX(90deg);transform:perspective(400px)rotateX(90deg)}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{opacity:1;-webkit-transform:perspective(400px)rotateX(-20deg);transform:perspective(400px)rotateX(-20deg)}to{opacity:0;-webkit-transform:perspective(400px)rotateX(90deg);transform:perspective(400px)rotateX(90deg)}}.animate__flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{opacity:1;-webkit-transform:perspective(400px)rotateY(-15deg);transform:perspective(400px)rotateY(-15deg)}to{opacity:0;-webkit-transform:perspective(400px)rotateY(90deg);transform:perspective(400px)rotateY(90deg)}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{opacity:1;-webkit-transform:perspective(400px)rotateY(-15deg);transform:perspective(400px)rotateY(-15deg)}to{opacity:0;-webkit-transform:perspective(400px)rotateY(90deg);transform:perspective(400px)rotateY(90deg)}}.animate__flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes lightSpeedInRight{0%{opacity:0;-webkit-transform:translate(100%)skew(-30deg);transform:translate(100%)skew(-30deg)}60%{opacity:1;-webkit-transform:skew(20deg);transform:skew(20deg)}80%{-webkit-transform:skew(-5deg);transform:skew(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInRight{0%{opacity:0;-webkit-transform:translate(100%)skew(-30deg);transform:translate(100%)skew(-30deg)}60%{opacity:1;-webkit-transform:skew(20deg);transform:skew(20deg)}80%{-webkit-transform:skew(-5deg);transform:skew(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInRight{-webkit-animation-name:lightSpeedInRight;animation-name:lightSpeedInRight;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedInLeft{0%{opacity:0;-webkit-transform:translate(-100%)skew(30deg);transform:translate(-100%)skew(30deg)}60%{opacity:1;-webkit-transform:skew(-20deg);transform:skew(-20deg)}80%{-webkit-transform:skew(5deg);transform:skew(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInLeft{0%{opacity:0;-webkit-transform:translate(-100%)skew(30deg);transform:translate(-100%)skew(30deg)}60%{opacity:1;-webkit-transform:skew(-20deg);transform:skew(-20deg)}80%{-webkit-transform:skew(5deg);transform:skew(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInLeft{-webkit-animation-name:lightSpeedInLeft;animation-name:lightSpeedInLeft;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate(100%)skew(30deg);transform:translate(100%)skew(30deg)}}@keyframes lightSpeedOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate(100%)skew(30deg);transform:translate(100%)skew(30deg)}}.animate__lightSpeedOutRight{-webkit-animation-name:lightSpeedOutRight;animation-name:lightSpeedOutRight;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes lightSpeedOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate(-100%)skew(-30deg);transform:translate(-100%)skew(-30deg)}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate(-100%)skew(-30deg);transform:translate(-100%)skew(-30deg)}}.animate__lightSpeedOutLeft{-webkit-animation-name:lightSpeedOutLeft;animation-name:lightSpeedOutLeft;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{opacity:0;-webkit-transform:rotate(-200deg);transform:rotate(-200deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rotateIn{0%{opacity:0;-webkit-transform:rotate(-200deg);transform:rotate(-200deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rotateIn{-webkit-transform-origin:50%;transform-origin:50%;-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{opacity:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rotateInDownLeft{0%{opacity:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rotateInDownLeft{-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{opacity:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rotateInDownRight{0%{opacity:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rotateInDownRight{-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{opacity:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rotateInUpLeft{0%{opacity:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rotateInUpLeft{-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{opacity:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rotateInUpRight{0%{opacity:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rotateInUpRight{-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{opacity:1}to{opacity:0;-webkit-transform:rotate(200deg);transform:rotate(200deg)}}@keyframes rotateOut{0%{opacity:1}to{opacity:0;-webkit-transform:rotate(200deg);transform:rotate(200deg)}}.animate__rotateOut{-webkit-transform-origin:50%;transform-origin:50%;-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{opacity:1}to{opacity:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}}@keyframes rotateOutDownLeft{0%{opacity:1}to{opacity:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}}.animate__rotateOutDownLeft{-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{opacity:1}to{opacity:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}}@keyframes rotateOutDownRight{0%{opacity:1}to{opacity:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}}.animate__rotateOutDownRight{-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{opacity:1}to{opacity:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}}@keyframes rotateOutUpLeft{0%{opacity:1}to{opacity:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}}.animate__rotateOutUpLeft{-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{opacity:1}to{opacity:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}}@keyframes rotateOutUpRight{0%{opacity:1}to{opacity:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.animate__rotateOutUpRight{-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:rotate(80deg);transform:rotate(80deg)}40%,80%{opacity:1;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:rotate(60deg);transform:rotate(60deg)}to{opacity:0;-webkit-transform:translateY(700px);transform:translateY(700px)}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:rotate(80deg);transform:rotate(80deg)}40%,80%{opacity:1;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:rotate(60deg);transform:rotate(60deg)}to{opacity:0;-webkit-transform:translateY(700px);transform:translateY(700px)}}.animate__hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform-origin:bottom;transform-origin:bottom;-webkit-transform:scale(.1)rotate(30deg);transform:scale(.1)rotate(30deg)}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform-origin:bottom;transform-origin:bottom;-webkit-transform:scale(.1)rotate(30deg);transform:scale(.1)rotate(30deg)}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate(-100%)rotate(-120deg);transform:translate(-100%)rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate(-100%)rotate(-120deg);transform:translate(-100%)rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate(100%)rotate(120deg);transform:translate(100%)rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate(100%)rotate(120deg);transform:translate(100%)rotate(120deg)}}.animate__rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:translateY(-100px)scale3d(.1,.1,.1);transform:translateY(-100px)scale3d(.1,.1,.1)}60%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475)translateY(60px);transform:scale3d(.475,.475,.475)translateY(60px)}}@keyframes zoomInDown{0%{opacity:0;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:translateY(-100px)scale3d(.1,.1,.1);transform:translateY(-100px)scale3d(.1,.1,.1)}60%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475)translateY(60px);transform:scale3d(.475,.475,.475)translateY(60px)}}.animate__zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:translate(-100px)scale3d(.1,.1,.1);transform:translate(-100px)scale3d(.1,.1,.1)}60%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475)translate(10px);transform:scale3d(.475,.475,.475)translate(10px)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:translate(-100px)scale3d(.1,.1,.1);transform:translate(-100px)scale3d(.1,.1,.1)}60%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475)translate(10px);transform:scale3d(.475,.475,.475)translate(10px)}}.animate__zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:translate(100px)scale3d(.1,.1,.1);transform:translate(100px)scale3d(.1,.1,.1)}60%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475)translate(-10px);transform:scale3d(.475,.475,.475)translate(-10px)}}@keyframes zoomInRight{0%{opacity:0;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:translate(100px)scale3d(.1,.1,.1);transform:translate(100px)scale3d(.1,.1,.1)}60%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475)translate(-10px);transform:scale3d(.475,.475,.475)translate(-10px)}}.animate__zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:translateY(100px)scale3d(.1,.1,.1);transform:translateY(100px)scale3d(.1,.1,.1)}60%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475)translateY(-60px);transform:scale3d(.475,.475,.475)translateY(-60px)}}@keyframes zoomInUp{0%{opacity:0;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:translateY(100px)scale3d(.1,.1,.1);transform:translateY(100px)scale3d(.1,.1,.1)}60%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475)translateY(-60px);transform:scale3d(.475,.475,.475)translateY(-60px)}}.animate__zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.475,.475,.475)translateY(-60px);transform:scale3d(.475,.475,.475)translateY(-60px)}to{opacity:0;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:translateY(200px)scale3d(.1,.1,.1);transform:translateY(200px)scale3d(.1,.1,.1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.475,.475,.475)translateY(-60px);transform:scale3d(.475,.475,.475)translateY(-60px)}to{opacity:0;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:translateY(200px)scale3d(.1,.1,.1);transform:translateY(200px)scale3d(.1,.1,.1)}}.animate__zoomOutDown{-webkit-transform-origin:bottom;transform-origin:bottom;-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475)translate(42px);transform:scale3d(.475,.475,.475)translate(42px)}to{opacity:0;-webkit-transform:matrix(.1,0,0,.1,-200,0);transform:matrix(.1,0,0,.1,-200,0)}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475)translate(42px);transform:scale3d(.475,.475,.475)translate(42px)}to{opacity:0;-webkit-transform:matrix(.1,0,0,.1,-200,0);transform:matrix(.1,0,0,.1,-200,0)}}.animate__zoomOutLeft{-webkit-transform-origin:0;transform-origin:0;-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475)translate(-42px);transform:scale3d(.475,.475,.475)translate(-42px)}to{opacity:0;-webkit-transform:matrix(.1,0,0,.1,200,0);transform:matrix(.1,0,0,.1,200,0)}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475)translate(-42px);transform:scale3d(.475,.475,.475)translate(-42px)}to{opacity:0;-webkit-transform:matrix(.1,0,0,.1,200,0);transform:matrix(.1,0,0,.1,200,0)}}.animate__zoomOutRight{-webkit-transform-origin:100%;transform-origin:100%;-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.475,.475,.475)translateY(60px);transform:scale3d(.475,.475,.475)translateY(60px)}to{opacity:0;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:translateY(-200px)scale3d(.1,.1,.1);transform:translateY(-200px)scale3d(.1,.1,.1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.475,.475,.475)translateY(60px);transform:scale3d(.475,.475,.475)translateY(60px)}to{opacity:0;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:translateY(-200px)scale3d(.1,.1,.1);transform:translateY(-200px)scale3d(.1,.1,.1)}}.animate__zoomOutUp{-webkit-transform-origin:bottom;transform-origin:bottom;-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{visibility:visible;-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{visibility:visible;-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{visibility:visible;-webkit-transform:translate(-100%);transform:translate(-100%)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{visibility:visible;-webkit-transform:translate(-100%);transform:translate(-100%)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{visibility:visible;-webkit-transform:translate(100%);transform:translate(100%)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{visibility:visible;-webkit-transform:translate(100%);transform:translate(100%)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{visibility:visible;-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{visibility:visible;-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%)}}.animate__slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate(-100%);transform:translate(-100%)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate(-100%);transform:translate(-100%)}}.animate__slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate(100%);transform:translate(100%)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate(100%);transform:translate(100%)}}.animate__slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.animate__slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}code[class*=language-],pre[class*=language-]{color:#000;text-shadow:0 1px #fff;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;background:0 0;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;line-height:1.5}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{margin:.5em 0;padding:1em;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{white-space:normal;border-radius:.3em;padding:.1em}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#905}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#9a6e3a;background:#ffffff80}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function,.token.class-name{color:#dd4a68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{counter-reset:linenumber;padding-left:3.8em;position:relative}pre[class*=language-].line-numbers>code{white-space:inherit;position:relative}.line-numbers .line-numbers-rows{pointer-events:none;width:3em;letter-spacing:-1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-right:1px solid #999;font-size:100%;position:absolute;top:0;left:-3.8em}.line-numbers-rows>span{counter-increment:linenumber;display:block}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;text-align:right;padding-right:.8em;display:block}#vl-menu{z-index:1200;position:relative}.vlmenu,.vlmenu ul{margin:0;padding:0;list-style:none}.vlmenu>li{float:left;padding:0 20px}.vlmenu li li{position:relative}.vlmenu li>a{display:block}.vlmenu a i{padding-right:10px;font-size:10px}.vlmenu .search a i,.vlmenu a i.arrow{padding-right:0}.vlmenu>li>a>i.arrow{margin-top:3px;margin-left:10px}.vlmenu a{color:#222;text-decoration:none}.vlmenu>li>a{padding:20px 0}.vlmenu>li{padding:0 20px}.vlmenu>li>a:hover,.vlmenu>li.active>a{color:#000}.vlmenu ul{width:190px;z-index:1300;display:none;position:absolute}.vlmenu>li.menu-right>ul ul{left:-190px}.vlmenu ul a{color:#222;padding:10px 20px}.vlmenu li:hover>ul{display:block}.vlmenu ul ul{top:0;left:190px}.container-fluid .vlmenu>li.menu-right>ul,.container-fluid .vlmenu>li.menu-right>div{right:0}.vlmenu li a i.arrow{float:right;margin-top:5px}.vlmenu li.search a i.arrow{display:none}.vlmenu ul a:hover,.mega-menu ol li a:hover{background:#ffffff1a}.vlmenu li>div{padding:10px}.mega-menu ol{padding-left:0;list-style:none}.mega-menu ol li a{color:#222;padding:10px 20px}.mega-menu h1,.mega-menu h2,.mega-menu h3,.mega-menu h4,.mega-menu h5,.mega-menu h6,.mega-menu p{padding-left:20px;font-weight:400}.vlmenu .full-nav,.vlmenu .half-nav,.vlmenu .quarter-nav{z-index:1300;display:none;position:absolute}.vlmenu>li:hover>div{display:block}.vlmenu .full-nav{width:100%;left:0;right:0}.vlmenu .half-nav{width:50%;left:auto;right:auto}.vlmenu .quarter-nav{width:25%;left:auto;right:auto}.vlmenu li.menu-right .half-nav{width:50%;left:auto;right:0}.vlmenu li.menu-right .quarter-nav{width:25%;left:auto;right:0}.vlmenu li>div input{box-shadow:none;border:none;border-radius:0}.vlmenu.light-sub-menu input{border:1px solid #ddd}.vlmenu li>div input:focus,.vlmenu.light-sub-menu input:focus{box-shadow:none}.light-sub-menu .mega-menu li a span,.dark-sub-menu .mega-menu li a span{color:#bbb;display:block}.light-sub-menu .mega-menu li a:hover span,.dark-sub-menu .mega-menu li a:hover span{color:#fff}.light-sub-menu .mega-menu li a span,.light-sub-menu .mega-menu li a:hover span,.dark-sub-menu .mega-menu li a span{-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.vlmenu .col1,.vlmenu .col2,.vlmenu .col3,.vlmenu .col4,.vlmenu .col5,.vlmenu .col6{float:left}.mega-menu .col1{width:100%}.mega-menu .col2{width:50%}.mega-menu .col3{width:33.33%}.mega-menu .col4{width:25%}.mega-menu .col5{width:20%}.mega-menu .col6{width:16.66%}.grid .col1,.grid .col2,.grid .col3,.grid .col4,.grid .col5,.grid .col6{margin-right:1%;padding:5px;display:inline-block}.grid.gray .col1,.grid.gray .col2,.grid.gray .col3,.grid.gray .col4,.grid.gray .col5,.grid.gray .col6{background:#ddd}.grid .mega-menu .col1{width:99%}.grid .mega-menu .col2{width:49%}.grid .mega-menu .col3{width:32.33%}.grid .mega-menu .col4{width:24%}.grid .mega-menu .col5{width:19%}.grid .mega-menu .col6{width:15.66%}.menu-row{width:100%;margin-bottom:10px;margin-left:.5%;display:inline-block}.menu-row:last-child{margin-bottom:0}.dark-sub-menu ul,.dark-sub-menu li>div{background:#222}.dark-sub-menu ul a,.dark-sub-menu li>div a,.dark-sub-menu li>div h1,.dark-sub-menu li>div h2,.dark-sub-menu li>div h3,.dark-sub-menu li>div h4,.dark-sub-menu li>div h5,.dark-sub-menu li>div h6,.dark-sub-menu li>div p{color:#fff}.light-sub-menu ul,.light-sub-menu li>div{background:#fff;box-shadow:0 0 1px #d1d1d1}.light-sub-menu ul a,.light-sub-menu li>div a,.light-sub-menu li>div h1,.light-sub-menu li>div h2,.light-sub-menu li>div h3,.light-sub-menu li>div h4,.light-sub-menu li>div h5,.light-sub-menu li>div h6,.light-sub-menu li>div p{color:#222}.light-sub-menu ul a:hover,.light-sub-menu ol li a:hover{color:#fff}.light-sub-menu ul a:hover,.light-sub-menu ol li a:hover{color:#fff;background:#222}.container header{width:100%;display:inline-block}.container header .vl-logo{margin-left:20px}.container header .nav-btn{margin-right:20px}.container header.float-menu{width:100%;margin-top:50px;display:inline-block}.container header.float-menu .vl-logo{margin-left:20px}.container header.float-menu .nav-btn{margin-right:20px}.center-menu{text-align:center}.center-menu .center-logo,.center-menu .vlmenu{display:inline-block}.center-menu .vlmenu ul,.center-menu .vlmenu li>div{text-align:left!important}.no-bg{background:0 0}.dark-menu{background:#000}.dark-menu a{color:#fff}.menu-bg{background-position:100% 100%!important;background-repeat:no-repeat!important;background-size:auto!important}.grid .mega-menu .col1 img,.grid .mega-menu .col2 img,.grid .mega-menu .col3 img,.grid .mega-menu .col4 img,.grid .mega-menu .col5 img,.grid .mega-menu .col6 img{width:100%;height:auto;margin-bottom:10px}.contact-form{padding:0 20px}.contact-form input,.contact-form textarea{width:100%;height:35px;color:#222;background:#fff;border:1px solid #ddd;margin-bottom:10px;padding-left:10px;padding-right:10px;display:inline-block}input[type=checkbox]{width:auto;height:auto;float:left;margin-right:10px}.contact-form input:focus,.contact-form textarea:focus{outline:0}.contact-form textarea{height:150px}.vl-btn{border:none;padding:10px 20px}@media (max-width:1480px){#blog-menu>ul{right:-100px}}@media (max-width:1024px){.menu,.menu ul,div.mega-menu{display:inline-block;background:#333!important}.mega-menu p{padding-left:40px!important}.vl-logo{margin-top:10px}.vlmenu,.vlmenu ul,div.mega-menu{display:inline-block;background:#333!important}.vlmenu a{color:#fff!important}.vlmenu li{z-index:1300;background:#333;position:relative}.vlmenu>li{width:100%;border-bottom:1px solid #ffffff0d;padding:0;display:block}.vlmenu>li>a,.vlmenu>li>a>i.arrow{line-height:50px}.vlmenu>li>a{padding:0 20px}.vlmenu>li a:hover{background:#111}.vlmenu>li>a>i.arrow{margin-right:0}.vlmenu ul{width:100%;border:none;display:none;position:relative;overflow:hidden}.hidden-sub{display:none!important}.visible-sub{visibility:visible;opacity:1;display:block!important}.vlmenu ul a,.vlmenu li>div,.mega-menu ol li a{padding:10px 20px}.mega-menu ol li a,.vlmenu ul a{border-top:1px solid #ffffff0d}.vlmenu li>div{padding:10px 0}.vlmenu ul ul,.vlmenu>li.menu-right>ul ul{left:0}.vlmenu li li a{padding-left:40px}.vlmenu li li li a{padding-left:60px}.vlmenu li li li li a{padding-left:80px}.vlmenu li li li li li a{padding-left:100px}.vlmenu li li li li li li a{padding-left:120px}.vlmenu .full-nav,.vlmenu .half-nav,.vlmenu .quarter-nav{display:block;position:relative}.vlmenu .col1,.vlmenu .col2,.vlmenu .col3,.vlmenu .col4,.vlmenu .col5,.vlmenu .col6,.mega-menu ol,.grid .col1,.grid .col2,.grid .col3,.grid .col4,.grid .col5,.grid .col6{width:100%!important}.grid .col1,.grid .col2,.grid .col3,.grid .col4,.grid .col5,.grid .col6{margin-bottom:10px;display:inline-block}.vlmenu li>div{border:none}.vlmenu h1,.vlmenu h2,.vlmenu h3,.vlmenu h4,.vlmenu h5,.vlmenu h6{color:#fff;margin:10px 20px}.vlmenu p{color:#fff;padding:10px 20px}.vlmenu ul a:hover,.mega-menu ol li a:hover{color:#fff;background:#111}.mega-menu ol li a{margin-bottom:0}.wrapper,.vlmenu .half-nav,.vlmenu .quarter-nav,.vlmenu li.menu-right .half-nav,.vlmenu li.menu-right .quarter-nav{width:100%}.vlmenu{width:100%;display:none}.light-sub-menu ul a,.light-sub-menu li>div a,.light-sub-menu li>div h1,.light-sub-menu li>div h2,.light-sub-menu li>div h3,.light-sub-menu li>div h4,.light-sub-menu li>div h5,.light-sub-menu li>div h6,.light-sub-menu li>div p,.light-sub-menu li>div span{color:#fff}.light-sub-menu ul,.light-sub-menu li>div{box-shadow:none}.vlmenu ul,.vlmenu li>div{top:auto}.vlmenu>li>a{height:53px;border-radius:0;border:none!important}.vlmenu>li,.menu-row{margin:0}.center-menu .vlmenu ul,.center-menu .vlmenu li>div{top:0}.center-menu{text-align:left}.center-menu .vlmenu{display:none}.nav-btn{float:right;cursor:pointer;margin-top:10px;margin-bottom:10px;margin-right:0;display:block}.nav-btn .bars{vertical-align:bottom;height:2px;width:30px;background-color:#333;display:inline-block;position:relative;top:-5px}.nav-btn .bars:before,.nav-btn .bars:after{content:"";width:30px;height:2px;background-color:#333;display:inline-block;position:absolute;top:-8px}.nav-btn .bars:after{top:8px}#blog-menu>ul{right:0}}.introjs-overlay{box-sizing:content-box;z-index:999999;opacity:0;background-color:#000;background:-moz-radial-gradient( center,ellipse farthest-corner,#0006 0,#000000e6 100% );background:-webkit-gradient( radial,center center,0px,center center,100%,color-stop(0%,#0006),color-stop(100%,#000000e6));background:-webkit-radial-gradient( center,ellipse farthest-corner,#0006 0,#000000e6 100% );background:-o-radial-gradient( center,ellipse farthest-corner,#0006 0,#000000e6 100% );background:-ms-radial-gradient( center,ellipse farthest-corner,#0006 0,#000000e6 100% );background:radial-gradient( center,ellipse farthest-corner,#0006 0,#000000e6 100% );filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#66000000',endColorstr='#e6000000',GradientType=1)";-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50);-o-transition:all .3s ease-out;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-ms-transition:all .3s ease-out;transition:all .3s ease-out;position:absolute}.introjs-fixParent{z-index:auto!important;opacity:1!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;-o-transform:none!important;transform:none!important}.introjs-showElement,tr.introjs-showElement>td,tr.introjs-showElement>th{z-index:9999999!important}.introjs-disableInteraction{opacity:0;filter:alpha(opacity=0);background-color:#fff;position:absolute;z-index:99999999!important}.introjs-relativePosition,tr.introjs-showElement>td,tr.introjs-showElement>th{position:relative}.introjs-helperLayer{box-sizing:content-box;z-index:9999998;-o-transition:all .3s ease-out;background-color:#ffffffe6;border:1px solid #00000080;border-radius:4px;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-ms-transition:all .3s ease-out;transition:all .3s ease-out;position:absolute;box-shadow:0 2px 15px #0006}.introjs-tooltipReferenceLayer{box-sizing:content-box;visibility:hidden;z-index:100000000;-o-transition:all .3s ease-out;background-color:#0000;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-ms-transition:all .3s ease-out;transition:all .3s ease-out;position:absolute}.introjs-helperLayer *,.introjs-helperLayer :before,.introjs-helperLayer :after{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-ms-box-sizing:content-box;-o-box-sizing:content-box}.introjs-helperNumberLayer{box-sizing:content-box;visibility:visible;color:#fff;text-align:center;text-shadow:1px 1px 1px #0000004d;background:-moz-linear-gradient(#cf0404 0%,#ff3019 100%);background:-ms-linear-gradient(top,#ff3019 0%,#cf0404 100%);width:20px;height:20px;filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3019', endColorstr='#cf0404', GradientType=0)";filter:"progid:DXImageTransform.Microsoft.Shadow(direction=135, strength=2, color=ff0000)";background:-moz-linear-gradient(#cf0404 0%,#ff3019 100%);background:-webkit-linear-gradient(#cf0404 0%,#ff3019 100%);background:-webkit-gradient(linear,0 0,0 100%,from(#ff3019),to(#cf0404));background:-moz-linear-gradient(#cf0404 0%,#ff3019 100%);background:-o-linear-gradient(#cf0404 0%,#ff3019 100%);background:linear-gradient(#ff3019 0%,#cf0404 100%);border:3px solid #fff;border-radius:50%;padding:2px;font-family:Arial,verdana,tahoma;font-size:13px;font-weight:700;line-height:20px;position:absolute;top:-16px;left:-16px;box-shadow:0 2px 5px #0006;z-index:2147483647!important}.introjs-arrow{content:"";border:5px solid #0000;position:absolute}.introjs-arrow.top{border-bottom-color:#fff;top:-10px}.introjs-arrow.top-right{border-bottom-color:#fff;top:-10px;right:10px}.introjs-arrow.top-middle{border-bottom-color:#fff;margin-left:-5px;top:-10px;left:50%}.introjs-arrow.right{border-left-color:#fff;top:10px;right:-10px}.introjs-arrow.right-bottom{border-left-color:#fff;bottom:10px;right:-10px}.introjs-arrow.bottom{border-top-color:#fff;bottom:-10px}.introjs-arrow.bottom-right{border-top-color:#fff;bottom:-10px;right:10px}.introjs-arrow.bottom-middle{border-top-color:#fff;margin-left:-5px;bottom:-10px;left:50%}.introjs-arrow.left{border-right-color:#fff;top:10px;left:-10px}.introjs-arrow.left-bottom{border-right-color:#fff;bottom:10px;left:-10px}.introjs-tooltip{box-sizing:content-box;visibility:visible;min-width:200px;max-width:300px;-o-transition:opacity .1s ease-out;background-color:#fff;border-radius:3px;padding:10px;-webkit-transition:opacity .1s ease-out;-moz-transition:opacity .1s ease-out;-ms-transition:opacity .1s ease-out;transition:opacity .1s ease-out;position:absolute;box-shadow:0 1px 10px #0006}.introjs-tooltipbuttons{text-align:right;white-space:nowrap}.introjs-button{box-sizing:content-box;text-shadow:1px 1px #fff;color:#333;white-space:nowrap;cursor:pointer;background-color:#ececec;background-image:linear-gradient(#f4f4f4,#ececec);-webkit-background-clip:padding;-moz-background-clip:padding;-o-background-clip:padding-box;zoom:1;background-image:-webkit-gradient(linear,0 0,0 100%,from(#f4f4f4),to(#ececec));background-image:-moz-linear-gradient(#f4f4f4,#ececec);background-image:-o-linear-gradient(#f4f4f4,#ececec);border:1px solid #d4d4d4;-webkit-border-radius:.2em;-moz-border-radius:.2em;border-radius:.2em;outline:none;margin:10px 0 0;padding:.3em .8em;font:11px sans-serif;text-decoration:none;display:inline;position:relative;overflow:visible}.introjs-button:hover{border-color:#bcbcbc;text-decoration:none;box-shadow:0 1px 1px #e3e3e3}.introjs-button:focus,.introjs-button:active{background-image:-webkit-gradient(linear,0 0,0 100%,from(#ececec),to(#f4f4f4));background-image:-moz-linear-gradient(#ececec,#f4f4f4);background-image:-o-linear-gradient(#ececec,#f4f4f4);background-image:linear-gradient(#ececec,#f4f4f4)}.introjs-button::-moz-focus-inner{border:0;padding:0}.introjs-skipbutton{box-sizing:content-box;color:#7a7a7a;margin-right:5px}.introjs-prevbutton{border-right:none;-webkit-border-radius:.2em 0 0 .2em;-moz-border-radius:.2em 0 0 .2em;border-radius:.2em 0 0 .2em}.introjs-prevbutton.introjs-fullbutton{border:1px solid #d4d4d4;-webkit-border-radius:.2em;-moz-border-radius:.2em;border-radius:.2em}.introjs-nextbutton{-webkit-border-radius:0 .2em .2em 0;-moz-border-radius:0 .2em .2em 0;border-radius:0 .2em .2em 0}.introjs-nextbutton.introjs-fullbutton{-webkit-border-radius:.2em;-moz-border-radius:.2em;border-radius:.2em}.introjs-disabled,.introjs-disabled:hover,.introjs-disabled:focus{color:#9a9a9a;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;border-color:#d4d4d4;text-decoration:none}.introjs-hidden{display:none}.introjs-bullets{text-align:center}.introjs-bullets ul{box-sizing:content-box;clear:both;margin:15px auto 0;padding:0;display:inline-block}.introjs-bullets ul li{box-sizing:content-box;float:left;margin:0 2px;list-style:none}.introjs-bullets ul li a{box-sizing:content-box;width:6px;height:6px;cursor:pointer;background:#ccc;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;text-decoration:none;display:block}.introjs-bullets ul li a:hover{background:#999}.introjs-bullets ul li a.active{background:#999}.introjs-progress{box-sizing:content-box;height:10px;background-color:#ecf0f1;border-radius:4px;margin:10px 0 5px;overflow:hidden}.introjs-progressbar{box-sizing:content-box;float:left;width:0%;height:100%;text-align:center;background-color:#08c;font-size:10px;line-height:10px}.introjsFloatingElement{height:0;width:0;position:absolute;top:50%;left:50%}.introjs-fixedTooltip{position:fixed}.introjs-hint{box-sizing:content-box;width:20px;height:15px;cursor:pointer;background:0 0;position:absolute}.introjs-hint:focus{border:0;outline:0}.introjs-hidehint{display:none}.introjs-fixedhint{position:fixed}.introjs-hint:hover>.introjs-hint-pulse{border:5px solid #3c3c3c91}.introjs-hint-pulse{box-sizing:content-box;width:10px;height:10px;z-index:10;-o-transition:all .2s ease-out;background-color:#8888883d;border:5px solid #3c3c3c45;-webkit-border-radius:30px;-moz-border-radius:30px;border-radius:30px;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;-ms-transition:all .2s ease-out;transition:all .2s ease-out;position:absolute}.introjs-hint-no-anim .introjs-hint-dot{-webkit-animation:none;-moz-animation:none;animation:none}.introjs-hint-dot{box-sizing:content-box;height:50px;width:50px;z-index:1;opacity:0;background:0 0;border:10px solid #9292925c;-webkit-border-radius:60px;-moz-border-radius:60px;border-radius:60px;-webkit-animation:introjspulse 3s ease-out infinite;-moz-animation:introjspulse 3s ease-out infinite;animation:introjspulse 3s ease-out infinite;position:absolute;top:-25px;left:-25px}@-webkit-keyframes introjspulse{0%{opacity:0;-webkit-transform:scale(0)}25%{opacity:.1;-webkit-transform:scale(0)}50%{opacity:.3;-webkit-transform:scale(.1)}75%{opacity:.5;-webkit-transform:scale(.5)}to{opacity:0;-webkit-transform:scale(1)}}@-moz-keyframes introjspulse{0%{opacity:0;-moz-transform:scale(0)}25%{opacity:.1;-moz-transform:scale(0)}50%{opacity:.3;-moz-transform:scale(.1)}75%{opacity:.5;-moz-transform:scale(.5)}to{opacity:0;-moz-transform:scale(1)}}@keyframes introjspulse{0%{opacity:0;transform:scale(0)}25%{opacity:.1;transform:scale(0)}50%{opacity:.3;transform:scale(.1)}75%{opacity:.5;transform:scale(.5)}to{opacity:0;transform:scale(1)}}@font-face{font-family:iconfont;src:url(iconfont.960c72b2.eot#iefix)format("embedded-opentype"),url(iconfont.a07d77e0.woff2)format("woff2"),url(iconfont.b2a06094.woff)format("woff")}.icon{line-height:1}.icon:before{vertical-align:top;font-style:normal;font-family:iconfont!important;font-weight:400!important}.icon-close-fullscreen:before{content:""}.icon-open-fullscreen:before{content:""}.icon-output:before{content:""}.icon-coverage:before{content:""}.icon-more:before{content:""}.icon-copy:before{content:""}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-ms-text-size-adjust:100%;font-family:Nunito,sans-serif;font-size:16px;font-weight:400;line-height:1.6;overflow-x:hidden}html{scroll-behavior:smooth}a{color:#09c;word-break:break-word;text-decoration:none;transition:all .3s}a:hover{color:#069;text-decoration:none}button,a,.btn{outline:0;transition:all .3s}button:focus,a:focus,.btn:focus{outline:none;text-decoration:none;box-shadow:none!important}img{max-width:100%;height:auto}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{font-family:Nunito,sans-serif;font-weight:700;transition:all .3s}h1 a,.h1 a,h2 a,.h2 a,h3 a,.h3 a,h4 a,.h4 a,h5 a,.h5 a,h6 a,.h6 a{color:#242424}h1 a:hover,.h1 a:hover,h2 a:hover,.h2 a:hover,h3 a:hover,.h3 a:hover,h4 a:hover,.h4 a:hover,h5 a:hover,.h5 a:hover,h6 a:hover,.h6 a:hover{color:#09c;text-decoration:none}@media (min-width:576px){h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{margin-top:-64px;padding-top:64px}}h1,.h1{font-size:32px}h2,.h2{font-size:28px}h3,.h3{font-size:24px}h4,.h4{font-size:20px}h5,.h5{font-size:18px}h6,.h6{font-size:16px}.section-gap{padding-top:3rem;padding-bottom:3rem;position:relative}@media (max-width:991px){h1,.h1{font-size:32px}h2,.h2{font-size:28px}h3,.h3{font-size:24px}h4,.h4{font-size:20px}h5,.h5{font-size:18px}h6,.h6{font-size:16px}.app-header+.section-gap{padding-top:5rem}}@media (max-width:767px){h1,.h1{font-size:28px}h2,.h2{font-size:26px}h3,.h3{font-size:24px}h4,.h4{font-size:20px}h5,.h5{font-size:18px}h6,.h6{font-size:16px}}@media (max-width:667px){h1,.h1{font-size:26px}h2,.h2{font-size:24px}h3,.h3{font-size:22px}h4,.h4{font-size:20px}h5,.h5{font-size:18px}h6,.h6{font-size:16px}}@media (min-width:769px){.section-gap{padding-top:7.5rem;padding-bottom:7.5rem}}.vlmenu>li>a:hover,.vlmenu>li.active>a{color:#09c}.hamburger{cursor:pointer;font:inherit;color:inherit;text-transform:none;background-color:#0000;border:0;margin:10px 0 0;padding:0;transition-property:opacity,filter;transition-duration:.15s;transition-timing-function:linear;display:inline-block;overflow:visible}.hamburger:hover{opacity:.7}.hamburger.is-active:hover{opacity:.7}.hamburger.is-active .hamburger-inner,.hamburger.is-active .hamburger-inner:before,.hamburger.is-active .hamburger-inner:after{background-color:#000}@media screen and (prefers-color-scheme:dark){.hamburger.is-active .hamburger-inner,.hamburger.is-active .hamburger-inner:before,.hamburger.is-active .hamburger-inner:after{background-color:#fff}}.hamburger-box{width:20px;height:17px;display:inline-block;position:relative}.hamburger-inner{margin-top:-2px;display:block;top:50%}.hamburger-inner,.hamburger-inner:before,.hamburger-inner:after{width:20px;height:2px;background-color:#000;border-radius:4px;transition-property:transform;transition-duration:.15s;transition-timing-function:ease;position:absolute}@media screen and (prefers-color-scheme:dark){.hamburger-inner,.hamburger-inner:before,.hamburger-inner:after{background-color:#fff}}.hamburger-inner:before,.hamburger-inner:after{content:"";display:block}.hamburger-inner:before{top:-10px}.hamburger-inner:after{bottom:-10px}.hamburger--slider .hamburger-inner{top:2px}.hamburger--slider .hamburger-inner:before{width:14px;transition-property:transform,opacity;transition-duration:.15s;transition-timing-function:ease;top:7px}.hamburger--slider .hamburger-inner:after{top:14px}.hamburger--slider.is-active .hamburger-inner{transform:translateY(7px)rotate(45deg)}.hamburger--slider.is-active .hamburger-inner:before{opacity:0;transform:rotate(-45deg)translate(-5.71429px,-6px)}.hamburger--slider.is-active .hamburger-inner:after{transform:translateY(-14px)rotate(-90deg)}.vl-accordion{font-family:Nunito,sans-serif!important}@media (max-width:1024px){.vlmenu{margin-top:10px}.app-header{width:100%;z-index:10;background:#fff;padding:.3em 0;position:absolute;top:auto}.app-header .logo-dark{height:50px;display:block}.app-header .logo-light{display:none}}@media screen and (max-width:1024px) and (prefers-color-scheme:dark){.app-header{background:#000}}@media (max-width:1024px){.app-header.transparent-header .logo-light{display:none}.header-links.navbar{position:absolute;right:15px}.vlmenu .vl-accordion .fa-angle-down{display:none}.vlmenu li li a{font-family:Nunito,sans-serif}.vlmenu>li>a{cursor:pointer}.mega-menu h3{font-size:14px;font-weight:700}.vlmenu .vl-accordion .fa-angle-down,.nav-extra-link{display:none}}@media (max-width:767px){.header-links.navbar{right:25px}}@media (min-width:1025px){.app-header{width:100%;z-index:10;background:#fff;transition:all .1s;position:absolute;top:auto}.app-header .navbar-brand{margin-top:0}.app-header .logo-light{display:none}.app-header.transparent-header .logo-light{display:block}.app-header.sticky-nav{z-index:1030;background:#fff;padding:0;animation:smoothScroll .3s forwards;position:fixed;top:0;bottom:auto;box-shadow:0 1px 10px #97a4af26}@keyframes smoothScroll{0%{transform:translateY(-100px)}to{transform:translateY(0)}}.transparent-header{background:0 0;padding-top:2rem;top:auto}.transparent-header .vlmenu>li>a{color:#fff}.transparent-header .vlmenu>li>a:hover{opacity:.7}.transparent-header .logo-dark{height:70px;display:none}.transparent-header.sticky-nav{background:#fff;top:0;box-shadow:0 1px 10px #97a4af26}.transparent-header.sticky-nav .vlmenu>li>a{color:#242424}.transparent-header.sticky-nav .vlmenu>li>a:hover{color:#09c}.transparent-header.sticky-nav .logo-light{display:none}.transparent-header.sticky-nav .logo-dark{height:50px;display:block}}@media screen and (min-width:1025px) and (prefers-color-scheme:dark){.transparent-header.sticky-nav{background:#000;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.transparent-header.sticky-nav .vlmenu>li>a{color:#fff}}@media (min-width:1025px){.transparent-header-dark-nav .vlmenu>li>a{color:#242424}.transparent-header-dark-nav .vlmenu>li>a:hover{color:#09c}}@media screen and (min-width:1025px) and (prefers-color-scheme:dark){.transparent-header-dark-nav .vlmenu>li>a{color:#fff}}@media (min-width:1025px){.transparent-header-dark-nav .logo-dark{display:block}.transparent-header-dark-nav .logo-light{display:none!important}.vlmenu>li>a>i.arrow{display:none;position:relative;top:2px}.light-sub-menu ul,.light-sub-menu li>div{box-shadow:0 1px 15px 1px #45414e1a}}@media screen and (min-width:1025px) and (prefers-color-scheme:dark){.light-sub-menu ul,.light-sub-menu li>div{color:#fff;background-color:#141414}}@media (min-width:1025px){.vlmenu ul{width:250px;padding-top:15px;padding-bottom:15px}.vlmenu ul a{padding:12px 30px;font-size:14px}.vlmenu ul ul{left:251px}.vlmenu li>div{padding:30px}.vlmenu li>div p{font-size:12px}.vlmenu>li.menu-right>ul ul{left:-251px}.vlmenu h3{margin-bottom:20px;font-size:14px;font-weight:700}.vlmenu .mega-menu ol li a{border-radius:6px;padding:12px 20px;font-size:14px}.vlmenu>li{padding:0 10px}}@media screen and (min-width:1025px) and (prefers-color-scheme:dark){.light-sub-menu ul a,.light-sub-menu ol li a{color:#fff}}@media (min-width:1025px){.light-sub-menu ul a:hover,.light-sub-menu ol li a:hover{color:#fff;background:#09c}}@media screen and (min-width:1025px) and (prefers-color-scheme:dark){.light-sub-menu ul a:hover,.light-sub-menu ol li a:hover{color:#fff}}@media (min-width:1025px){.vlmenu>li>a{cursor:pointer;padding:19.5px 0}.nav-btn{display:none}.vlmenu .half-nav,.vlmenu .full-nav,.vlmenu ul{border-radius:6px}.nav-extra-link .mt-3{margin-top:.85rem!important}}.overlay-nav{z-index:6;position:relative;top:1.7rem}.toggle-wrap{height:16px;width:20px;cursor:pointer;z-index:100;-webkit-transition:opacity .25s;transition:opacity .25s;position:absolute;top:3%;right:0}.toggle-wrap.active .top{background:#fff;-webkit-transform:translateY(7px)rotate(45deg);transform:translateY(7px)rotate(45deg)}.toggle-wrap.active .middle{opacity:0;background:#fff}.toggle-wrap.active .bottom{background:#fff;-webkit-transform:translateY(-7px)translate(0)rotate(-45deg);transform:translateY(-7px)translate(0)rotate(-45deg)}.toggle-wrap span{height:2px;width:100%;cursor:pointer;background:#242424;border:none;-webkit-transition:all .35s;transition:all .35s;position:absolute;top:0;left:0}.toggle-wrap span:nth-of-type(2){width:60%;top:7px}.toggle-wrap span:nth-of-type(3){top:14px}.overlay{width:100%;height:0;opacity:0;visibility:hidden;background:#242424;-webkit-transition:opacity .35s,visibility .35s,height .35s;transition:opacity .35s,visibility .35s,height .35s;position:fixed;top:0;left:0;overflow:hidden}.overlay.open{opacity:1;visibility:visible;height:100%}.overlay.open li{-webkit-animation:fadeInDown .5s .35s forwards;animation:fadeInDown .5s .35s forwards}.overlay.open li:nth-of-type(2){-webkit-animation-delay:.4s;animation-delay:.4s}.overlay.open li:nth-of-type(3){-webkit-animation-delay:.45s;animation-delay:.45s}.overlay.open li:nth-of-type(4){-webkit-animation-delay:.5s;animation-delay:.5s}.overlay.open li:nth-of-type(5){-webkit-animation-delay:.55s;animation-delay:.55s}.overlay.open li:nth-of-type(6){-webkit-animation-delay:.6s;animation-delay:.6s}.overlay.open li:nth-of-type(7){-webkit-animation-delay:.65s;animation-delay:.65s}.overlay.open li:nth-of-type(8){-webkit-animation-delay:.7s;animation-delay:.7s}.overlay nav{height:60%;text-align:center;font-size:1.5rem;position:relative;top:45%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.overlay ul{height:100%;margin:0 auto;padding:0;list-style:none;display:inline-block;position:relative}.overlay ul li{height:10%;min-height:50px;opacity:0;display:block;position:relative}.overlay ul li a{color:#fff;padding:0 0 10px;text-decoration:none;display:block;position:relative;overflow:hidden}.overlay ul li a:hover{color:#09c}.overlay ul li a:hover:after,.overlay ul li a:focus:after,.overlay ul li a:active:after{width:100%}.overlay ul li a:after{content:"";width:0%;height:1px;background:#09c;-webkit-transition:all .35s;transition:all .35s;position:absolute;bottom:5px;left:50%;-webkit-transform:translate(-50%);transform:translate(-50%)}.overlay-nav-social-link a{color:#8c8c8c;opacity:0;margin:0 .8rem;font-size:18px}.overlay-nav-social-link a:hover{color:#09c}.overlay-nav-social-link.open a{-webkit-animation:fadeInDown .6s .8s forwards;animation:fadeInDown .6s .8s forwards}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{opacity:1;-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{opacity:1;-webkit-transform:translate(0,0);transform:translate(0,0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.app-footer{border-top:1px solid #e8e8e8;padding:3rem 0;font-family:Arial,Helvetica,sans-serif}.app-footer .footer-link{margin-bottom:.5rem;padding:0}.app-footer .footer-link li{margin-bottom:.5rem;margin-right:15px;display:inline-block}.app-footer .footer-link li a{text-transform:uppercase;color:#8c8c8c;font-size:12px}.app-footer .footer-link li a:hover{color:#242424;text-decoration:none}.app-footer .footer-link li:last-child{margin-right:0}.app-footer .social-links li a{font-size:16px}.app-footer .copyright{color:#8c8c8c;margin:0;font-size:14px}@media screen and (prefers-color-scheme:dark){.app-footer{border-color:#414141}}.app-footer.bg-dark{color:#fff;padding:4rem 0}.app-footer.bg-dark .border-right{border-right:1px solid #616161!important}.app-footer.bg-dark .border-left{border-left:1px solid #616161!important}.app-footer.bg-dark .border-top{border-top:1px solid #616161!important}.app-footer.bg-dark .border-bottom{border-bottom:1px solid #616161!important}.app-secondary-footer{background:#171717;padding:2rem 0}.two-col-link li{width:50%;float:left;box-sizing:border-box;margin-right:0!important}.instagram-feed a{width:75px;height:75px;margin:0 .3rem .2rem 0;display:inline-block;overflow:hidden}.instagram-feed a img{width:100%;height:100%}.social-media-list{padding:0;list-style:none}.social-media-list a{text-transform:capitalize;color:#242424;margin-bottom:.5rem;font-size:18px;font-weight:700;display:inline-block}.social-media-list a:hover{color:#09c}.go-up-link i{font-weight:700}.go-up-link:hover{text-decoration:none}@media (max-width:767px){.app-footer .border-right,.app-footer.bg-dark .border-right{border-right:none!important}.app-footer,.app-footer.bg-dark{padding:2rem 0}.social-media-list a{font-size:14px}.footer-logo{max-height:32px}}img.footer-icon{width:28px;height:28px;margin:0}@media screen and (prefers-color-scheme:dark){code[class*=language-],pre[class*=language-]{color:#c5c8c6;text-shadow:0 1px #0000004d;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;font-family:Inconsolata,Monaco,Consolas,Courier New,Courier,monospace;line-height:1.5}pre[class*=language-]{border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#1d1f21}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#7c7c7c}.token.punctuation{color:#c5c8c6}.namespace{opacity:.7}.token.property,.token.keyword,.token.tag{color:#96cbfe}.token.class-name{color:#ffffb6;text-decoration:underline}.token.boolean,.token.constant{color:#9c9}.token.symbol,.token.deleted{color:#f92672}.token.number{color:#ff73fd}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#a8ff60}.token.variable{color:#c6c5fe}.token.operator{color:#ededed;background-color:inherit}.token.entity{color:#ffffb6;cursor:help}.token.url{color:#96cbfe}.language-css .token.string,.style .token.string{color:#87c38a}.token.atrule,.token.attr-value{color:#f9ee98}.token.function{color:#dad085}.token.regex{color:#e9c062}.token.important{color:#fd971f}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}}.hero-img{background-position:50%;background-repeat:no-repeat;background-size:cover}.hero-img,.bg-overlay,.bg-overlay:before,.bg-theme-overlay,.bg-theme-overlay:before,.bg-navy-overlay,.bg-navy-overlay:before,.bg-gradient-overlay,.bg-gradient-overlay:before{position:absolute;inset:0}.bg-overlay:before{content:"";background-color:#242424}.bg-theme-overlay:before{content:"";background:#09c}.bg-navy-overlay:before{content:"";background:#1d2b40}.bg-gradient-overlay:before{content:"";background-image:linear-gradient(90deg,#09c 0%,#7431ff 100%)}[data-overlay="0"]:before{opacity:0}[data-overlay="1"]:before{opacity:.1}[data-overlay="2"]:before{opacity:.2}[data-overlay="3"]:before{opacity:.3}[data-overlay="4"]:before{opacity:.4}[data-overlay="5"]:before{opacity:.5}[data-overlay="6"]:before{opacity:.6}[data-overlay="7"]:before{opacity:.7}[data-overlay="8"]:before{opacity:.8}[data-overlay="9"]:before{opacity:.9}@media (max-width:768px){.section-top{padding-top:5rem}.hero-avatar-bottom{position:relative;bottom:-3rem}.scroll-down{bottom:10px;left:0;right:0}.scroll-down span{color:#09c;display:block}.scroll-down-circle{display:none}}@media (min-width:769px){.section-full>.section-full-exception,.section-full>.container:not(#homepage-container)>.row{min-height:calc(100vh - 20.8125rem)}.section-full .container>.row:before{min-height:inherit;content:""}.section-top{padding-top:13.3125rem}.scroll-down{bottom:50px;left:0;right:0}.scroll-down span{color:#09c;display:block}.scroll-down-circle{width:80px;height:80px;background:#fff;border-radius:50%;line-height:80px;position:absolute;bottom:-100px;left:50%;transform:translate(-50%);box-shadow:0 .2rem .8rem #24242426}}.btn{text-transform:uppercase;white-space:nowrap;padding:.75rem 2rem;font-size:11px;font-weight:700}.btn.btn-sm{padding:.485rem 1.2rem;font-size:10px;font-weight:700;line-height:1.6}.btn.btn-lg{padding:.965rem 2rem}.btn-pill{border-radius:5rem}.btn-theme{background:#09c;border:2px solid #09c;color:#fff!important}.btn-theme:hover{color:#fff;background:#069;border:2px solid #069}.btn-rv-blue{background:#09c;border:2px solid #09c;color:#fff!important}.btn-rv-blue:hover{color:#fff;background:#069;border:2px solid #069}.btn-outline{cursor:pointer;color:#242424;background:#fff;border:2px solid #e8e8e8;margin-left:2em}.btn-outline:hover{background:#242424;border-color:#242424;color:#fff!important}@media screen and (prefers-color-scheme:dark){.btn-outline{color:#fff;background:#000;border-color:#e8e8e8}.btn-outline:hover{border-color:#777}}.btn-outline-dark{color:#242424;background:0 0;border:2px solid #242424}.btn-outline-dark:hover{color:#fff;background:#242424;border-color:#242424}.btn-outline-light{color:#fff;background:0 0;border:2px solid #fff}.btn-outline-light:hover{color:#242424;background:#fff;border-color:#fff}.btn-solid-light{color:#242424;background:#fff;border:2px solid #fff}.btn-solid-light:hover{color:#fff;background:#09c;border-color:#09c}.btn-solid-dark{color:#fff;background:#242424;border:2px solid #242424}.btn-solid-dark:hover{color:#fff;background:#09c;border-color:#09c}.video-btn .video-play-icon,.video-btn span{display:inline-block}.video-btn .video-play-icon{width:46px;height:46px;text-align:center;color:#242424;cursor:pointer;background:#fff;border-radius:50%;line-height:46px;box-shadow:0 3px 6px #0000000d}.video-btn .video-play-icon i{font-size:12px;position:relative;top:0;left:2px}.video-btn .video-play-icon:hover i{color:#09c}.video-btn span{text-transform:uppercase;font-size:11px;font-weight:700;position:relative;left:10px}.video-play-btn-align-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.btn-read-more{display:inline-block;position:relative}.btn-read-more:hover{text-decoration:none}.btn-read-more:hover:after{right:-30px}@media (max-width:767px){.btn.btn-sm{padding:.4rem 1rem}.btn{padding:.5rem 1.3rem}.btn.btn-lg{padding:.7rem 1.4rem}}.accordion .card{border-color:#e8e8e8}.accordion .card p{color:#8c8c8c}.accordion .card-header{border-color:#e8e8e8;padding:0}.accordion .card-header h6{margin-bottom:0;font-size:16px;font-weight:400}.accordion .card-header a{cursor:pointer;color:#09c;background:#fff;border-radius:4px 4px 0 0;padding:1.2rem 1.5rem;display:block;position:relative}.accordion .card-header a:hover{color:#09c}.accordion .card-header .collapsed{color:#242424}.accordion .card-header .collapsed:after{content:""}.accordion .accordion-list{list-style:none}.accordion .accordion-list li{margin-bottom:.5rem}.accordion .accordion-list li a{color:#8c8c8c}.accordion .accordion-list li a i{font-size:14px}.accordion .accordion-list li a:hover{color:#09c;text-decoration:none}.accordion.accordion-style-1 .card-header a{color:#09c;background:#fff}.accordion.accordion-style-1 .card-header a:hover{color:#09c}.accordion.accordion-style-1 .card-header a:hover:after{color:#fff;background:#09c;border:1px solid #09c;transition:all .3s}.accordion.accordion-style-1 .card-header .collapsed{color:#242424}.accordion.accordion-style-1 .card-header .collapsed:after{content:"";color:#8c8c8c;background:#fff;border:1px solid #ccc}.accordion.accordion-style-2 .card{border-radius:4px;margin-bottom:10px}.accordion.accordion-style-2 .card .card-header{background:0 0;border:none;margin-bottom:0}.accordion.accordion-style-2 .card .card-header a:after{content:"";font-family:fontawesome;font-size:14px;position:absolute;top:35%;right:20px}.accordion.accordion-style-2 .card .card-header a.collapsed{border-radius:4px;position:relative}.accordion.accordion-style-2 .card .card-header a.collapsed:after{content:""}.accordion.accordion-style-2 .card:not(:first-of-type):not(:last-of-type){border-radius:4px}.accordion.accordion-style-2 .card:first-of-type,.accordion.accordion-style-2 .card:not(:first-of-type):not(:last-of-type){border-bottom:1px solid #e8e8e8}.accordion.accordion-style-3 .card,.accordion.accordion-style-3 .card-header,.accordion.accordion-style-3 .card-header a{background:0 0;border:none}.accordion.accordion-style-3 .card-header a{color:#09c;padding:1.2rem 0 1.2rem 4rem}.accordion.accordion-style-3 .card-header a:before{width:40px;height:40px;text-align:center;color:#fff;content:"";background:#09c;border-radius:50%;font-family:fontawesome;font-size:14px;line-height:40px;position:absolute;top:8px;left:5px}.accordion.accordion-style-3 .card-header a:after{content:""}.accordion.accordion-style-3 .card-header .collapsed{color:#242424}.accordion.accordion-style-3 .card-header .collapsed:before{content:"";width:40px;height:40px;text-align:center;color:#242424;background:#fff;border:1px solid #f5f5f5;border-radius:50%;line-height:38px;box-shadow:0 3px 6px #0000000d}.accordion.accordion-style-3 .card-body{padding:1.25rem 0 1.25rem 4rem}.accordion.accordion-style-4 .card{border-radius:4px;margin-bottom:10px}.accordion.accordion-style-4 .card .card-header{background:0 0;border:none;margin-bottom:0;position:relative}.accordion.accordion-style-4 .card .card-header a{color:#242424;padding:2.5rem 1.5rem;font-weight:700}.accordion.accordion-style-4 .card .card-header a.collapsed{border-radius:4px;position:relative}.accordion.accordion-style-4 .card .card-header a.collapsed:after{content:""}.accordion.accordion-style-4 .card .card-header i{color:#09c;position:absolute;top:28px}.accordion.accordion-style-4 .card .card-header span{padding-left:3rem}.accordion.accordion-style-4 .card:not(:first-of-type):not(:last-of-type){border-radius:4px}.accordion.accordion-style-4 .card:first-of-type,.accordion.accordion-style-4 .card:not(:first-of-type):not(:last-of-type){border-bottom:1px solid #e8e8e8}.blurb i{margin-bottom:2rem;font-size:3rem;display:inline-block}.blurb p{color:#8c8c8c;padding-right:2rem}.blurb.text-right p{padding-left:2rem;padding-right:0}.blurb-border{background:#fff;border:1px solid #e8e8e8;border-radius:6px;padding:1.8rem}.blurb-border p{margin-bottom:.5rem;padding:0}@media (max-width:767px){.blurb i{font-size:2.5rem}.blurb-border{margin-bottom:1.5rem}}.list-group-right-arrow a{position:relative}.list-group-right-arrow a:after{content:"";width:25px;height:25px;text-align:center;border:1px solid #e8e8e8;border-radius:50%;padding-left:2px;font-family:fontawesome;font-size:14px;line-height:23px;position:absolute;top:30%;right:20px}.list-group-right-arrow a:hover:after{color:#fff;background:#09c;border-color:#09c;transition:all .3s}.list-group-right-arrow .list-group-item.active{color:#09c;background:#fff;border-color:#e8e8e8}.list-group-right-arrow .list-group-item.active:after{color:#fff;background:#09c;border-color:#09c}.list-group-right-arrow-on-hover a:after{opacity:0;width:30px;height:30px;border:3px solid #fff;line-height:25px;top:33%;right:13px}.list-group-right-arrow-on-hover a:hover:after{opacity:1;width:30px;height:30px;border:3px solid #fff;line-height:25px;right:-13px}.list-group-right-arrow-on-hover .list-group-item.active:after{opacity:1;width:30px;height:30px;border:3px solid #fff;line-height:25px;right:-13px}.list-group .list-group-item h6{color:#242424}.list-group .list-group-item:hover h6{color:#09c}.list-group-gap .list-group-item{border-radius:6px;margin-bottom:10px;padding:1.8rem 1.25rem}@media (prefers-color-scheme:dark){.list-group-item{color:#fff;background-color:#1b1b1b;border-color:#414141}}.custom-list{padding:0;list-style:none}.custom-list li{padding:.8rem 0}.custom-list li a{color:#242424}.custom-list li a:hover{color:#09c;text-decoration:none}.custom-list-border li{border-bottom:1px solid #e8e8e8}.custom-list-border li:first-child{border-top:1px solid #e8e8e8}@media (prefers-color-scheme:dark){.list-group-item{color:#fff;background-color:#1b1b1b;border-color:#414141}}.clients-thumb{width:100%;max-width:10rem;height:auto;opacity:.5;margin-left:auto;margin-right:auto}.clients-thumb:hover{opacity:1}.dot-style-1.owl-theme .owl-dots .owl-dot span{width:6px;height:6px;background:#242424;transition:all .3s}.dot-style-1.owl-theme .owl-dots .owl-dot.active span{transform:scale(1.5)}.dot-style-2.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;background:#ccc;transition:all .3s}.dot-style-2.owl-theme .owl-dots .owl-dot.active span{width:20px;height:10px;background:#09c;margin:5px 3px}.owl-carousel.text-center .owl-stage{display:inline-block}.carousel-highlighter.owl-carousel .owl-item{opacity:.2}.carousel-highlighter.owl-carousel .owl-item .card-img-overlay{opacity:0}.carousel-highlighter.owl-carousel .owl-item.center,.carousel-highlighter.owl-carousel .owl-item.center .card-img-overlay{opacity:1}.carousel-zoom-img .owl-stage-outer{overflow:visible}.carousel-zoom-img .owl-item .item h6{opacity:0}.carousel-zoom-img .owl-item.center .item{z-index:100;position:relative;transform:scale(1.2)}.carousel-zoom-img .owl-item.center .item h6{opacity:1}.carousel-zoom-img .owl-dots{margin-top:4rem}.owl-theme .owl-nav,.owl-theme .owl-nav.disabled+.owl-dots{margin-top:30px}.nav-circle.owl-theme .owl-nav [class*=owl-],.nav-circle-light.owl-theme .owl-nav [class*=owl-],.nav-circle-solid-light.owl-theme .owl-nav [class*=owl-]{width:50px;height:50px;text-align:center;color:#8c8c8c;border:1px solid #ccc;border-radius:50%;margin-bottom:2rem;font-size:12px;line-height:50px;position:relative}.nav-circle.owl-theme .owl-nav [class*=owl-]:hover,.nav-circle-light.owl-theme .owl-nav [class*=owl-]:hover,.nav-circle-solid-light.owl-theme .owl-nav [class*=owl-]:hover{color:#fff;background:#242424;border-color:#242424}.nav-circle-light.owl-theme .owl-nav [class*=owl-]:hover{color:#242424;background:#fff;border-color:#fff}.nav-circle-solid-light.owl-theme .owl-nav [class*=owl-]{color:#242424;background:#fff;border-color:#fff}.nav-circle-solid-light.owl-theme .owl-nav [class*=owl-]:hover{color:#fff;background:#09c;border-color:#09c}.nav-round.owl-theme .owl-nav [class*=owl-]{width:40px;height:90px;text-align:center;color:#fff;background:#0000004d;border-radius:6px;margin-bottom:2rem;font-size:12px;line-height:90px;position:relative}.nav-round.owl-theme .owl-nav [class*=owl-]:hover{background:#242424}.nav-round.owl-carousel .owl-nav .owl-prev,.nav-round.owl-carousel .owl-nav .owl-next{margin-top:-90px;position:absolute;top:50%}.nav-round.owl-carousel .owl-nav .owl-prev{border-radius:0 6px 6px 0;left:-5px}.nav-round.owl-carousel .owl-nav .owl-next{border-radius:6px 0 0 6px;right:-5px}.custom-testimonial.owl-theme .owl-nav{margin-top:0;bottom:2%}.custom-testimonial.owl-theme .owl-nav [class*=owl-]{width:35px;height:35px;text-align:center;color:#8c8c8c;border:1px solid #ccc;border-radius:50%;font-size:12px;line-height:35px;position:relative}.custom-testimonial.owl-theme .owl-nav [class*=owl-]:hover{color:#fff;background:#242424;border-color:#242424}.owl-carousel .owl-item img{width:auto}@media (min-width:1025px){.nav-circle.owl-carousel .owl-nav .owl-prev,.nav-circle.owl-carousel .owl-nav .owl-next,.nav-circle-light.owl-carousel .owl-nav .owl-prev,.nav-circle-light.owl-carousel .owl-nav .owl-next,.nav-circle-solid-light.owl-carousel .owl-nav .owl-prev,.nav-circle-solid-light.owl-carousel .owl-nav .owl-next,.nav-inside.owl-carousel .owl-nav .owl-prev,.nav-inside.owl-carousel .owl-nav .owl-next{margin-top:-50px;position:absolute;top:50%}.nav-circle.owl-carousel .owl-nav .owl-prev,.nav-circle-light.owl-carousel .owl-nav .owl-prev,.nav-circle-solid-light.owl-carousel .owl-nav .owl-prev{left:-8%}.nav-circle.owl-carousel .owl-nav .owl-next,.nav-circle-light.owl-carousel .owl-nav .owl-next,.nav-circle-solid-light.owl-carousel .owl-nav .owl-next{right:-8%}.nav-inside.owl-carousel .owl-nav .owl-prev,.nav-inside.owl-carousel .owl-nav .owl-prev{left:3%}.nav-inside.owl-carousel .owl-nav .owl-next,.nav-inside.owl-carousel .owl-nav .owl-next{right:3%}.custom-testimonial.owl-theme .owl-nav{z-index:100;margin-top:0;position:absolute;bottom:8%;right:11%}}.t-star-icon{font-size:8px;position:relative;bottom:2px}.justify-content-between .card-arrow-icon{width:25px;height:25px;text-align:center;border:1px solid #ddd;border-radius:50%;line-height:25px;transition:all .3s;position:relative}.justify-content-between .card-arrow-icon:after{content:"";font-family:fontawesome;font-size:14px;position:absolute;top:-1px;left:9px}.justify-content-between>a{text-decoration:none}.justify-content-between>a:hover+.card-arrow-icon{color:#fff;background:#09c;border-color:#09c}.card-img-overlay{top:auto;left:auto;right:auto}.box-hover,img.box-hover{transition:top .2s,box-shadow .2s;position:relative;top:0;box-shadow:0 0 #0000}.box-hover:hover,img.box-hover:hover{top:-.5rem;box-shadow:0 .2rem .8rem #24242426}@media (min-width:768px){.card.flex-md-row .card-img{object-fit:cover;border-radius:.375rem 0 0 .375rem}.card.flex-md-row .card-img-right{object-fit:cover;border-radius:0 .375rem .375rem 0}}@media (max-width:991.98px){.card.flex-column .card-img{border-radius:.375rem .375rem 0 0}.card.flex-md-row .card-img-right{border-radius:0 0 .375rem .375rem}}.form-control,.custom-select,.custom-file,.custom-file-input,.custom-file-label{height:calc(2.25rem + 12px);border:1px solid #e8e8e8}.form-control:focus,.custom-select:focus,.custom-file:focus,.custom-file-input:focus,.custom-file-label:focus{box-shadow:none}@media screen and (prefers-color-scheme:dark){.form-control,.form-control:focus{color:#fff;background-color:#1b1b1b;border-color:#414141}}.form-inline .form-control{height:calc(2.25rem + 8px)}.custom-file{border:none}.custom-file-label{padding:.65rem .75rem}.custom-file-label:after{height:2.85rem;padding:inherit;background:#fafafa;border-radius:0 .15rem .15rem 0}.icon-field,.icon-field-right{position:relative}.icon-field i,.icon-field-right i{user-select:none;cursor:default;color:#8c8c8c;position:absolute}.icon-field i{top:15px;left:15px}.icon-field input{padding-left:45px}.icon-field-right i{top:15px;right:15px}.icon-field-right input{padding-right:45px}.custom-control-label:before,.custom-control-label:after{width:1.3rem;height:1.3rem;top:.1rem;left:-1.5rem}.custom-control-label:before{border:1px solid #e8e8e8}.custom-control-label{padding-left:10px}.custom-switch .custom-control-label:before{width:40px;pointer-events:all;height:24px;background:#e8e8e8;border-radius:5rem;left:-2.25rem}.custom-switch .custom-control-label:after{width:calc(1.4rem - 2px);height:calc(1.4rem - 2px);background-color:#fff;border-radius:5rem;top:calc(.25rem - 1px);left:calc(3px - 2.25rem)}.custom-switch .custom-control-input:checked~.custom-control-label:after{transform:translate(.95rem)}.custom-switch .custom-control-label{padding-left:20px}.custom-file-input:focus~.custom-file-label,.custom-control-input:focus~.custom-control-label:before{box-shadow:none}.custom-control-input:checked~.custom-control-label:before,.custom-control-input:focus:not(:checked)~.custom-control-label:before{border:1px solid #e8e8e8}.custom-select{background:#fff url(select-arrow.b8e89c0c.svg) right .75rem center/8px 10px no-repeat}.login-content{color:#fff;text-align:center;width:100%;padding:2rem;position:absolute;top:50%;transform:translateY(-50%)}.login-circle-logo{width:80px;height:80px;background:#fff;border-radius:50%;line-height:80px;display:inline-block;box-shadow:0 .2rem .8rem #24242426}.c-form-content,.coming-soon-social{color:#fff;text-align:center;width:100%;padding:3rem;position:absolute;bottom:3%}.coming-soon-social{left:0}@media (max-width:991px){.coming-soon-social{margin-top:3rem;padding:0;position:relative}}@media (max-width:767px){.form-inline .form-control{height:2.25rem}}.steps-solid,.steps-dashed,.steps-dashed-light{width:150px;height:150px;text-align:center;background:#fff;border:2px solid #e8e8e8;border-radius:50%;line-height:150px;display:inline-block;position:relative}.steps-solid:after,.steps-dashed:after,.steps-dashed-light:after{content:"";width:100px;border-bottom:1px dashed #ccc;position:absolute;top:50%;right:-110%}.steps-solid i,.steps-dashed i,.steps-dashed-light i{line-height:150px}.steps-solid .step-number,.steps-dashed .step-number,.steps-dashed-light .step-number{color:#fff;background:#09c;border:3px solid #fff;border-radius:30px;padding:2px 10px;font-size:12px;font-weight:700;line-height:normal;position:absolute;top:10px;right:5px}.steps-solid.step-last:after,.steps-dashed.step-last:after,.steps-dashed-light.step-last:after{border-bottom:none}.steps-dashed{background:0 0;border:2px dashed #ccc}.steps-dashed-light{background:0 0;border:2px dashed #fff}.steps-dashed-light i{color:#fff}.steps-dashed-light:after{border-bottom:2px dashed #fff}.steps-dashed-light+.steps-info{color:#fff}.steps-info{padding:0 2rem}@media (max-width:1024px){.steps-solid:after,.steps-dashed:after,.steps-dashed-light:after{width:100%;top:50%;right:-110%}}@media (max-width:991px){.steps-solid:after,.steps-dashed:after,.steps-dashed-light:after{width:55%;right:-60%}}@media (max-width:767px){.steps-solid,.steps-dashed,.steps-dashed-light{width:100px;height:100px;line-height:100px}.steps-solid i,.steps-dashed i,.steps-dashed-light i{line-height:100px}.steps-solid:after,.steps-dashed:after,.steps-dashed-light:after{border-bottom:none}.steps-solid .step-number,.steps-dashed .step-number,.steps-dashed-light .step-number{right:-15px}.steps-info{margin-bottom:2rem}}.block-image{width:100%;height:100%;z-index:0;top:0;left:0}img.block-image{object-fit:cover}.block-image:not([class*=absolute]){position:absolute}.img-caption{width:70%;background:#ffffffe6;border-radius:0 .375rem .375rem 0;padding:1.5rem;position:absolute;bottom:10%;left:0}@media (min-width:1025px){.parallax-img{background-attachment:fixed}}@media (max-width:767px){.img-caption{padding:1rem}}.custom-progress{height:2px;box-shadow:none;background:#e8e8e8;border-radius:0;margin-top:4rem;position:relative}.custom-progress .progress-bar .skills-info{color:#242424;text-align:left;font-size:14px;position:relative;top:-20px}.custom-progress .progress-bar span{float:right;color:#242424;line-height:normal;position:relative;bottom:0}.custom-progress:first-child{margin-top:1.5rem}.custom-progress.progress{overflow:visible}.custom-progress.dark-progress .progress-bar,.custom-progress-inside.dark-progress .progress-bar{background:#242424}.progress-light-txt .progress-bar .skills-info,.progress-light-txt .progress-bar span{color:#fff}.custom-progress-inside{height:30px;background:#e8e8e8;margin-top:2rem}.custom-progress-inside .progress-bar .skills-info{color:#fff;text-align:left;padding:0 1rem;font-size:14px;position:relative;top:0}.custom-progress-inside .progress-bar span{float:right;color:#fff;line-height:normal;position:relative;bottom:0}.custom-progress-inside:first-child{margin-top:0}.nav.nav-group{display:inline-block}.nav.nav-group>li{text-align:center;float:left;margin:0 auto}.nav.nav-group>li .nav-link{color:#242424;padding:1rem 2rem;display:block}@media screen and (prefers-color-scheme:dark){.nav.nav-group>li .nav-link{color:#fff}}.nav.nav-group li a{background:#f9f9f9;border:1px solid #e8e8e8;margin-right:-1px}@media screen and (prefers-color-scheme:dark){.nav.nav-group li a{color:#fff;background-color:#000;border:1px solid #2f2f2f}}.nav.nav-group li a.active{color:#09c;background:#fff}@media screen and (prefers-color-scheme:dark){.nav.nav-group li a.active{background-color:#000}}.nav.nav-group li:first-child a{border-radius:30px 0 0 30px}.nav.nav-group li:last-child a{border-radius:0 30px 30px 0}.nav-line{border-bottom:1px solid #e8e8e8}.nav-line>li .nav-link{color:#242424;border-bottom:1px solid #0000;padding:1.5rem 3rem;display:block;position:relative;bottom:-1px}.nav-line>li a.active{color:#09c;border-bottom:1px solid #242424}.nav-vertical{border-right:1px solid #e8e8e8}.nav-vertical .nav-link{color:#242424;border-right:1px solid #0000;padding:1rem;display:block;position:relative;right:-1px}.nav-vertical i{position:relative;top:5px}.nav-vertical a.active{color:#09c;border-right:1px solid #242424}@media (max-width:1024px){.nav.nav-group>li .nav-link,.nav.nav-line>li .nav-link{padding:.6rem 1.5rem}}@media (max-width:767px){.nav-vertical{margin-bottom:2rem}}@media screen and (prefers-color-scheme:dark){.nav-tabs{border-color:#777}.nav-tabs .nav-link{color:#fff!important}.nav-tabs .nav-link.active{background-color:inherit;border-color:#777}}.vl-custom-table{border-spacing:0 1em;border-collapse:separate}.vl-custom-table h6{color:#616161;margin-top:0;padding-top:0;font-size:16px}.vl-custom-table thead th{vertical-align:middle;border-bottom:none;padding:.5rem 1.75rem}.vl-custom-table th,.vl-custom-table td{vertical-align:middle;border-top:none;font-family:Nunito,sans-serif}.vl-custom-table td:first-child{border-left:1px solid #e8e8e8;border-top-left-radius:10px;border-bottom-left-radius:10px}.vl-custom-table td:last-child{border-right:1px solid #e8e8e8;border-top-right-radius:10px;border-bottom-right-radius:10px}.vl-custom-table tbody td{background:#fff;border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;padding:1.75rem}@media screen and (prefers-color-scheme:dark){.vl-custom-table h6{color:#777}.vl-custom-table td:first-child,.vl-custom-table td:last-child{border-color:#414141}.vl-custom-table tbody .report-row-header>td{background-color:#000;border-color:#414141}.vl-custom-table tbody .report-output-row>td{color:#fff;background-color:#000}.vl-custom-table tbody .report-output-row>td .report-view-box{color:#fff}.vl-custom-table tbody td{background-color:inherit}}.table-striped td,.table-striped th{vertical-align:middle}.table-striped tbody tr:nth-of-type(2n+1){background-color:#00000006}.table thead th{border-bottom-width:1px}.table .btn{white-space:nowrap}@media screen and (prefers-color-scheme:dark){.table thead,.table td{color:#fff}}.team-card{cursor:pointer;position:relative;overflow:hidden;box-shadow:0 8px 16px #0000001a}.team-card:hover{transition:all .3s;box-shadow:0 8px 16px #0003}@media screen and (prefers-color-scheme:dark){.team-card{color:#fff;background-color:#000}}.team-info .top-section{flex-direction:row;display:flex}.team-info .top-section .profile-img{width:200px;height:200px;background-color:#efefef;background-size:cover;margin-bottom:24px;margin-right:24px}.team-info .top-section .team-title p.team-position{margin-bottom:.5rem;font-size:14px}.team-info .top-section .team-social-links a{display:inline-block}@media (max-width:568px){.team-info .top-section{flex-direction:column;margin-bottom:16px}.team-info .top-section .profile-img{margin:0 auto 24px}}.team-info .modal-header{border-bottom:none;padding-bottom:0}@media screen and (prefers-color-scheme:dark){.team-info{color:#fff;background-color:#000}}.social-links a{color:#8c8c8c;margin-right:15px;display:inline-block}.social-links a:hover{color:#09c}@-webkit-keyframes blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}@keyframes blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}.typist-blink:after{height:26px;content:" ";border-right:2px solid;margin-left:3px;margin-right:7px;animation:blink 1s step-start infinite;display:inline-block;position:relative;top:3px}@media (max-width:667px){.typist-blink:after{height:22px;top:2px}}.typist-blink>.selectedText{display:none}.typist-mark>.selectedText{color:#fff;background-color:#242424;font-style:normal}@media screen and (max-width:1080px) and (min-width:768px){.firefly-typist-header{min-height:180px}}@media screen and (max-width:767px) and (min-width:668px){.firefly-typist-header{min-height:102px}}@media screen and (max-width:667px){.firefly-typist-header{min-height:124px}}.count-block{width:150px;height:150px;text-align:center;margin:0 20px;display:inline-block}.count-block h2{margin:2.5rem 0 0;font-weight:700}.count-block span{font-size:16px}.count-solid-light .count-block{background:#fff;border:1px solid #e8e8e8;margin-bottom:20px}.count-solid-dark .count-block{background:#242424;margin-bottom:20px}.count-solid-dark .count-block h2,.count-solid-dark .count-block span{color:#fff}.circle .count-block{border-radius:50%}.round .count-block{border-radius:6px}@media screen and (max-width:767px){.count-block{width:100px;height:100px}.count-block h2{margin:1.5rem 0 0}}.portfolio-filter{margin-bottom:50px;padding:0 1rem;list-style:none}.portfolio-filter li{margin:0 20px;font-family:Lora,serif;display:inline-block;position:relative}.portfolio-filter li a{color:#8c8c8c;text-transform:capitalize;font-size:16px;text-decoration:none}.portfolio-filter li a:hover{color:#242424}.portfolio-filter li:after{content:"/";color:#8c8c8c;position:absolute;top:0;right:-30px}.portfolio-filter li:last-child:after{content:" "}.portfolio-filter li.active a{color:#242424}.portfolio-grid .portfolio-item{float:left}.portfolio-grid .portfolio-item a{text-decoration:none}.portfolio-grid .portfolio-item a:focus{outline:none}.portfolio-grid .portfolio-item .portfolio-image{display:block;position:relative}.portfolio-grid .portfolio-item .portfolio-image img{width:100%;height:auto;display:block}.portfolio-grid .portfolio-item .portfolio-image .portfolio-hover-title{opacity:0;background-color:#242424e6;justify-content:center;align-items:center;margin:0;padding:30px;transition:all .3s;position:absolute;inset:0}.portfolio-grid .portfolio-item .portfolio-image .portfolio-hover-title .portfolio-content{width:100%;text-align:left;transition:all .3s;position:absolute;bottom:2rem;left:2rem}.portfolio-grid .portfolio-item .portfolio-image .portfolio-hover-title .portfolio-content h6{color:#fff;margin-bottom:.2rem;font-size:16px}.portfolio-grid .portfolio-item .portfolio-image .portfolio-hover-title .portfolio-content .portfolio-category span{color:#ccc;margin-right:5px;font-family:Lora,serif;font-size:14px}.portfolio-grid .portfolio-item:hover .portfolio-hover-title{opacity:1}.portfolio-grid .portfolio-title{margin:5% 0}.portfolio-grid .portfolio-title .portfolio-content h6{color:#242424;margin-bottom:.2rem}.portfolio-grid .portfolio-title .portfolio-content span{color:#8c8c8c;font-family:Lora,serif}.portfolio-grid.grid-2 .portfolio-item{width:50%}@media (max-width:768px){.portfolio-grid.grid-2 .portfolio-item{width:50%}}@media (max-width:568px){.portfolio-grid.grid-2 .portfolio-item{width:100%}}.portfolio-grid.grid-3 .portfolio-item{width:33.33%}@media (max-width:768px){.portfolio-grid.grid-3 .portfolio-item{width:50%}}@media (max-width:568px){.portfolio-grid.grid-3 .portfolio-item{width:100%}}.portfolio-grid.grid-4 .portfolio-item{width:25%}@media (max-width:768px){.portfolio-grid.grid-4 .portfolio-item{width:50%}}@media (max-width:568px){.portfolio-grid.grid-4 .portfolio-item{width:100%}}.portfolio-grid.grid-4 .portfolio-item .portfolio-content h6{font-size:16px}.portfolio-grid.grid-4 .portfolio-item .portfolio-content span{font-size:14px}.portfolio-grid.grid-5 .portfolio-item{width:20%}@media (max-width:768px){.portfolio-grid.grid-5 .portfolio-item{width:50%}}@media (max-width:568px){.portfolio-grid.grid-5 .portfolio-item{width:100%}}.portfolio-grid.grid-5 .portfolio-item .portfolio-content h6,.portfolio-grid.grid-5 .portfolio-item .portfolio-content span{font-size:14px}.portfolio-grid.grid-2.gutter{margin-right:-2%}.portfolio-grid.grid-2.gutter .portfolio-item{width:48%;margin-bottom:2%;margin-right:2%}@media (max-width:768px){.portfolio-grid.grid-2.gutter .portfolio-item{width:48%}}@media (max-width:568px){.portfolio-grid.grid-2.gutter .portfolio-item{width:98%}}.portfolio-grid.grid-3.gutter{margin-right:-2%}.portfolio-grid.grid-3.gutter .portfolio-item{width:31.33%;margin-bottom:2%;margin-right:2%}@media (max-width:768px){.portfolio-grid.grid-3.gutter .portfolio-item{width:48%}}@media (max-width:568px){.portfolio-grid.grid-3.gutter .portfolio-item{width:98%}}.portfolio-grid.grid-4.gutter{margin-right:-2%}.portfolio-grid.grid-4.gutter .portfolio-item{width:23%;margin-bottom:2%;margin-right:2%}@media (max-width:768px){.portfolio-grid.grid-4.gutter .portfolio-item{width:48%}}@media (max-width:568px){.portfolio-grid.grid-4.gutter .portfolio-item{width:98%}}.portfolio-grid.grid-5.gutter{margin-right:-2%}.portfolio-grid.grid-5.gutter .portfolio-item{width:18%;margin-bottom:2%;margin-right:2%}@media (max-width:768px){.portfolio-grid.grid-5.gutter .portfolio-item{width:48%}}@media (max-width:568px){.portfolio-grid.grid-5.gutter .portfolio-item{width:98%}}.portfolio-masonry .portfolio-title{padding-left:3%}.portfolio-masonry.gutter .portfolio-title{padding-left:0}.portfolio-grid.gutter .portfolio-item .portfolio-image .portfolio-hover-title,.portfolio-masonry.gutter .portfolio-item .portfolio-image .portfolio-hover-title,.portfolio-grid.gutter img,.portfolio-masonry.gutter img{border-radius:6px}.isotope-item{z-index:2}.isotope-hidden.isotope-item{pointer-events:none;z-index:1}.isotope,.isotope .isotope-item{transition-duration:.8s}.isotope{transition-property:height,width}.isotope .isotope-item{transition-property:transform,opacity}.isotope.no-transition,.isotope.no-transition .isotope-item,.isotope .isotope-item.no-transition{transition-duration:0s}.isotope.infinite-scrolling{transition:none}.twitter-feed-style{background:#fff;border:1px solid #e8e8e8;position:relative}.twitter-feed-style:after{content:"";color:#e8e8e8;font-family:FontAwesome;font-size:24px;position:absolute;top:1rem;right:1.5rem}.twitter-feed-style ul{margin-bottom:0;padding:0;list-style:none}.twitter-feed-style ul li{padding:2rem;position:relative;overflow:hidden}.twitter-feed-style .user{width:18%;float:left;margin-bottom:.928571em}.twitter-feed-style .user img{max-width:80%;height:auto;border-radius:50%}.twitter-feed-style .user [data-scribe=component\:author]{margin-left:1.3rem;position:absolute;top:10%;left:18%}.twitter-feed-style .user [data-scribe=component\:author] a{text-decoration:none}.twitter-feed-style .user [data-scribe=component\:author] span{display:block}.twitter-feed-style .user [data-scribe=component\:author] [data-scribe=element\:name]{color:#242424;font-weight:700}.twitter-feed-style .user [data-scribe=component\:author] [data-scribe=element\:screen_name]{color:#8c8c8c;font-size:14px}.twitter-feed-style .tweet{color:#8c8c8c;word-break:break-all;margin-top:4rem;margin-bottom:.464286em}.twitter-feed-style .tweet a{margin:0 3px}.twitter-feed-style .tweet,.twitter-feed-style .timePosted{width:82%;float:right}.twitter-feed-style .timePosted{margin-bottom:0;font-size:14px}.twitter-feed-style .timePosted a{color:#8c8c8c}.twitter-feed-style .interact{display:none}.twitter-feed-alt .user [data-scribe=component\:author]{display:none}.twitter-feed-alt .tweet{margin-top:0}.twitter-feed-alt:after{content:""}.floating-search-wrap{position:fixed;top:40%;left:3%}.floating-search-wrap a{color:#242424;margin-bottom:1.5rem;text-decoration:none;display:block}.floating-search-wrap a:hover{color:#09c}.floating-social-link{position:fixed;top:70%;right:0%;transform:translate(30%)rotate(-90deg)}.floating-social-link a{color:#242424;margin-left:.5rem;text-decoration:none}.floating-social-link a:hover{color:#09c}.floating-social-link span{color:#ccc}@media (max-width:1249px){.floating-search-wrap,.floating-social-link{display:none}}.blog-post{border-bottom:1px solid #ccc;margin-bottom:3.5rem;padding-bottom:3rem}.meta a,.meta.text-white a{color:#616161}.meta .meta-separator,.meta.text-white .meta-separator{width:30px;border-top:1px solid #616161;margin:0 15px;display:inline-block;position:relative;bottom:3px}.meta.text-white a{color:#fff}.meta.text-white .meta-separator{border-top:1px solid #fff}.blog-widget .instagram-feed a{width:95px;height:95px}.blog-single p{margin-bottom:3rem}.single-post .comments-area,.single-post .comments{margin-bottom:5rem;display:block}.single-post .comments-area .comments-title,.single-post .comments .comments-title{margin-bottom:5rem;font-size:28px}.single-post .comments-area ol,.single-post .comments-area ul,.single-post .comments ol,.single-post .comments ul,.single-post .comments-area ol ol,.single-post .comments-area ol ul,.single-post .comments-area ul ol,.single-post .comments-area ul ul,.single-post .comments ol ol,.single-post .comments ol ul,.single-post .comments ul ol,.single-post .comments ul ul{list-style:none}.single-post .comment-list,.single-post .comments>ul{margin:0;padding:0;list-style:none}.single-post .comment-list li,.single-post .comments>ul li{margin-bottom:1rem}.single-post .comment-list li .comment-body,.single-post .comments>ul li .comment-body{border-bottom:1px solid #e8e8e8;margin-bottom:3rem;padding-bottom:1.5rem;position:relative}.single-post .comment-list .comment-meta,.single-post .comments>ul .comment-meta{margin-bottom:1rem}.single-post .comment-list .comment-meta .comment-author img,.single-post .comments>ul .comment-meta .comment-author img{width:100px;height:100px;float:left;border-radius:6px;margin-right:2rem}.single-post .comment-list .comment-meta .comment-author a,.single-post .comments>ul .comment-meta .comment-author a{font-size:16px;font-weight:700}.single-post .comment-list .comment-meta .comment-author .says,.single-post .comments>ul .comment-meta .comment-author .says{display:none}.single-post .comment-list .comment-meta .comment-metadata a,.single-post .comments>ul .comment-meta .comment-metadata a{color:#8c8c8c;font-size:14px}.single-post .comment-list .comment-content,.single-post .comments>ul .comment-content{overflow:hidden}.single-post .comment-list .reply,.single-post .comments>ul .reply{position:absolute;top:0;right:0}.single-post .comment-list .reply a,.single-post .comments>ul .reply a{color:#09c}.single-post .comment-list .reply a:hover,.single-post .comments>ul .reply a:hover{color:#242424}@media (max-width:991px){.single-post .comments-area .comments-title,.comment-reply-title{font-size:1.5rem}.single-post .comments-area .comments-title{margin-bottom:3rem}}@media (max-width:767px){.single-post .comments-area .comments-title,.comment-reply-title{font-size:1.2rem}.single-post .comments-area .comment-list .comment-meta .comment-author img{width:50px;height:auto}.blog-post{margin-bottom:1.5rem;padding-bottom:1.5rem}}.form-qty{height:calc(2.25rem + 8px)}.bd-toc{order:2;padding-top:1.5rem;padding-bottom:1.5rem;font-size:.875rem}@supports (position: sticky){.bd-toc{height:calc(100vh - 4rem);position:sticky;top:4rem;overflow-y:auto}}.section-nav{border-left:1px solid #eee;padding-left:0}.section-nav ul{padding-left:1rem}.toc-entry{display:block}.toc-entry a{color:#77757a;padding:.125rem 1.5rem;display:block}.toc-entry a:hover{color:#007bff;text-decoration:none}.bd-sidebar{order:0}@media (min-width:768px){.bd-sidebar{border-right:1px solid #0000001a}@supports (position: sticky){.bd-sidebar{z-index:1000;height:calc(100vh - 4rem);position:sticky;top:4rem}}}@media (min-width:1200px){.bd-sidebar{flex:0 320px}}@media (prefers-color-scheme:dark){.bd-sidebar{border-right-color:#414141}}.bd-links{margin-left:-15px;margin-right:-15px;padding-top:1rem;padding-bottom:1rem}@media (min-width:768px){@supports (position: sticky){.bd-links{max-height:calc(100vh - 9rem);overflow-y:auto}}.bd-links{display:block!important}}.bd-search{border-bottom:1px solid #0000000d;margin-left:-15px;margin-right:-15px;padding:1rem 15px;position:relative}.bd-search .form-control:focus{border-color:#fc0;box-shadow:0 0 0 3px #ffcc0040}.bd-search-docs-toggle{color:#212529}@media screen and (prefers-color-scheme:dark){.bd-search-docs-toggle{color:#ccc}.bd-search-docs-toggle:hover{color:#e8e8e8}}.bd-sidenav{display:none}.bd-toc-link{color:#000000a6;padding:.25rem 1.5rem;font-weight:600;display:block}.bd-toc-link:hover{color:#000000d9;text-decoration:none}.bd-toc-link code{color:#e83e8c}.bd-toc-link.selected{color:#09c;font-weight:800}.bd-toc-link.selected:hover{color:#069}@media screen and (prefers-color-scheme:dark){.bd-toc-link{color:#fff}.bd-toc-link:hover{color:#ccc}}.bd-toc-item.active{margin-bottom:1rem}.bd-toc-item.active:not(:first-child){margin-top:1rem}.bd-toc-item.active>.bd-toc-link{color:#000000d9}.bd-toc-item.active>.bd-toc-link:hover{background-color:#0000}.bd-toc-item.active>.bd-sidenav{display:block}.bd-sidebar .nav>li>a{color:#000000a6;padding:.25rem 1.5rem;font-size:90%;display:block}.bd-sidebar .nav>li>a:hover{color:#000000d9;background-color:#0000;text-decoration:none}.bd-sidebar .nav>.active>a,.bd-sidebar .nav>.active:hover>a{color:#000000d9;background-color:#0000;font-weight:600}.navbar{flex-wrap:wrap;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex;position:relative}.navbar>.container,.navbar>.container-fluid{flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.navbar-brand{font-size:1.25rem;line-height:inherit;white-space:nowrap;margin-right:1rem;padding-top:.3125rem;padding-bottom:.3125rem;display:inline-block}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{flex-direction:column;margin-bottom:0;padding-left:0;list-style:none;display:flex}.navbar-nav .nav-link{padding-left:0;padding-right:0}.navbar-nav .dropdown-menu{float:none;position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;display:inline-block}.navbar-collapse{flex-grow:1;flex-basis:100%;align-items:center}.navbar-toggler{background-color:#0000;border:1px solid #0000;border-radius:.25rem;padding:.25rem .75rem;font-size:1.25rem;line-height:1}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat;display:inline-block}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-left:0;padding-right:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .dropdown-menu-right{left:auto;right:0}.navbar-expand-sm .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{flex-basis:auto;display:flex!important}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-left:0;padding-right:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .dropdown-menu-right{left:auto;right:0}.navbar-expand-md .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{flex-basis:auto;display:flex!important}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-left:0;padding-right:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .dropdown-menu-right{left:auto;right:0}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{flex-basis:auto;display:flex!important}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-left:0;padding-right:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .dropdown-menu-right{left:auto;right:0}.navbar-expand-xl .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{flex-basis:auto;display:flex!important}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .dropup .dropdown-menu{top:auto;bottom:100%}}.navbar-expand{flex-flow:row;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-left:0;padding-right:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .dropdown-menu-right{left:auto;right:0}.navbar-expand .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{flex-basis:auto;display:flex!important}.navbar-expand .navbar-toggler{display:none}.navbar-expand .dropup .dropdown-menu{top:auto;bottom:100%}.navbar-light .navbar-brand{color:#000000e6}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#000000e6}.navbar-light .navbar-nav .nav-link{color:#00000080}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:#000000b3}.navbar-light .navbar-nav .nav-link.disabled{color:#0000004d}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:#000000e6}.navbar-light .navbar-toggler{color:#00000080;border-color:#0000001a}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,")}.navbar-light .navbar-text{color:#00000080}.navbar-light .navbar-text a{color:#000000e6}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#000000e6}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:#ffffff80}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:#ffffffbf}.navbar-dark .navbar-nav .nav-link.disabled{color:#ffffff40}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:#ffffff80;border-color:#ffffff1a}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,")}.navbar-dark .navbar-text{color:#ffffff80}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.bd-navbar{min-height:4rem;background-color:#fff;box-shadow:0 .5rem 1rem #0000000d,inset 0 -1px #0000001a}@media (max-width:991.98px){.bd-navbar{padding-left:.5rem;padding-right:.5rem}.bd-navbar .navbar-nav-scroll{max-width:100%;height:2.5rem;margin-top:.25rem;font-size:.875rem;overflow:hidden}.bd-navbar .navbar-nav-scroll .navbar-nav{white-space:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:2rem;overflow-x:auto}}@media (min-width:768px){@supports (position: sticky){.bd-navbar{z-index:1071;position:sticky;top:0}}}.bd-navbar .navbar-nav .nav-link{color:#09c;padding-left:.5rem;padding-right:.5rem}.bd-navbar .navbar-nav .nav-link.active,.bd-navbar .navbar-nav .nav-link:hover{color:#069;background-color:#0000}.bd-navbar .navbar-nav .nav-link.active{font-weight:500}.bd-navbar .navbar-nav-svg{width:1rem;height:1rem;vertical-align:text-top;display:inline-block}.bd-navbar .dropdown-menu{font-size:.875rem}.bd-navbar .dropdown-item.active{color:#212529;background-color:#0000;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23292b2c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-position:.4rem .6rem;background-repeat:no-repeat;background-size:.75rem .75rem;font-weight:500}@media screen and (prefers-color-scheme:dark){.bd-navbar{color:#fff;background-color:#0f0f0f;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}}.bg-primary{background:#09c}.bg-success{background:#96be5d}.bg-warning{background:#fab63f}.bg-info{background:#18b9d4}.bg-danger{background:#ef5a5a}.text-primary{color:#09c}.text-purple{color:#7431ff}.text-muted{color:#8c8c8c!important}.rounded{border-radius:6px!important}.card{border-color:#e8e8e8;border-radius:6px}.card-img-top{border-top-left-radius:6px;border-top-right-radius:6px}.card-footer{background:0 0;border-top:1px solid #0000000f;padding:1.1rem 1.25rem}.bg-dark .card-footer{border-top:1px solid #ffffff0f}.alert-secondary{color:#242424;background-color:#f4f5f7;border-color:#e8e8e8}.alert-warning{color:#fab63f;background-color:#fef8ec;border-color:#fab63f}.alert-success{color:#7dad14;background-color:#f3f8ed;border-color:#7dad14}.alert-danger{color:#ef5a5a;background-color:#fdeced;border-color:#ef5a5a}.alert-primary{color:#09c;background-color:#eaf4ff;border-color:#09c}.alert-solid-secondary{color:#242424;background-color:#e8e8e8;border-color:#e8e8e8}.alert-solid-warning{color:#fff;background-color:#fab63f;border-color:#fab63f}.alert-solid-success{color:#fff;background-color:#7dad14;border-color:#7dad14}.alert-solid-danger{color:#fff;background-color:#ef5a5a;border-color:#ef5a5a}.alert-solid-primary{color:#fff;background-color:#09c;border-color:#09c}.list-group-item{color:#8c8c8c;border-color:#e8e8e8;padding:1.3rem 1.25rem}.badge{position:relative;bottom:1px}.custom-modal .modal-body{padding:2.5rem}.custom-modal .modal-content{border:none}.custom-modal .modal-header{padding:1rem}.custom-modal .modal-header .close{padding:.5rem 1rem}.modal-body{padding:1.8rem}.modal-header,.modal-footer{padding:1rem 1.8rem}@media screen and (prefers-color-scheme:dark){.modal-header{border-bottom-color:#414141}.modal-footer{border-top-color:#414141}}.modal-image{border-top-left-radius:.25rem;border-top-right-radius:.25rem;position:relative}.modal-image .close{width:50px;height:50px;opacity:1;text-shadow:none;background:#fff;border-radius:50%;line-height:50px;position:absolute;top:1.875rem;right:1.875rem}.modal-image .close:hover{color:#fff;opacity:1;background:#09c}@media (min-width:576px){.modal-dialog{max-width:600px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}.ls-2{letter-spacing:1rem}.ls-3{letter-spacing:2rem}.lh-35{line-height:35px}.lh-45{line-height:45px}.h60{height:60%}.h70{height:70%}.curve-bottom-1,.curve-bottom-right{clip-path:polygon(0 0,100% 0,100% 85%,70% 100%,0 85%)}.curve-top-bottom{clip-path:polygon(100% 6%,100% 100%,68% 94%,0% 100%,0 10%,28% 0)}.curve-bottom-center{clip-path:polygon(0 0,100% 0,100% 70%,50% 100%,0 70%)}.font-lora{font-family:Lora,serif}.font-weight-300{font-weight:300}.font-weight-400{font-weight:400}.font-weight-600{font-weight:600}.font-weight-700{font-weight:700}.font-weight-800{font-weight:800}.font-size-12{font-size:12px}.font-size-14{font-size:14px}.font-size-16{font-size:16px}.font-size-20{font-size:20px!important}.font-size-60{font-size:60px}.font-size-72{font-size:72px}.i-size-60{font-size:60px}.section-gray,.bg-gray{background-color:#e8e8e8}@media screen and (prefers-color-scheme:dark){.section-gray,.bg-gray{background-color:#2f2f2f}.text-dark{color:#e8e8e8!important}}.bg-white{background:#fff}.bg-dark{background:#242424!important}.bg-dark hr{border-top:1px solid #ffffff80}@media screen and (prefers-color-scheme:dark){hr{border-top-color:#414141}}.bg-green-light{background:#d7f5e3}.bg-dark-alt{background:#303030}.bg-extra{background:#e5e8ec}.component-section{padding:4rem 0;position:relative;overflow:hidden}.show-markup-section{position:relative}.demo .btn{margin:0 .4rem 1rem}.title-separator{margin-bottom:4rem;position:relative}.title-separator:after{content:"";width:60px;height:2px;background:#fff;position:absolute;bottom:-2rem;left:0}.gradient-primary{background-image:linear-gradient(90deg,#09c 0%,#7431ff 100%)}.cta-img{background-position:50%;background-repeat:no-repeat;background-size:cover;position:relative;overflow:hidden}.border-light{border-color:#ffffff20!important}.custom-dropdown{border:none;box-shadow:0 1px 10px #97a4af26}.custom-dropdown .dropdown-item{font-size:12px}.custom-dropdown-sm{min-width:6rem}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.avatar-sm{width:35px;height:35px}.avatar,.avatar-md{width:70px;height:70px}.avatar-lg{width:140px;height:140px}.icon-sm{font-size:28px}.icon-md{font-size:42px}.icon-lg{font-size:56px}.ft-tag{color:#fff;background:#09c;border-radius:30px;padding:3px 12px;font-size:11px;font-weight:700}.ft-inside-tl{position:absolute;top:1rem;left:1rem}.ft-inside-tr{position:absolute;top:1rem;right:1rem}.ft-inside-bl{position:absolute;bottom:1rem;left:1rem}.ft-inside-br{position:absolute;bottom:1rem;right:1rem}.ft-overflow-bl{border:2px solid #fff;position:absolute;bottom:-.8rem;left:1rem}.ft-overflow-br{border:2px solid #fff;position:absolute;bottom:-.8rem;right:1rem}.ft-overflow-bc{border:2px solid #fff;position:absolute;bottom:-.8rem;left:50%;transform:translate(-50%)}.ft-overflow-tl{border:2px solid #fff;position:absolute;top:2rem;left:-2rem}.ft-overflow-tr{border:2px solid #fff;position:absolute;top:2rem;right:-2rem}.ft-overflow-tc{border:2px solid #fff;position:absolute;top:-1rem;left:50%;transform:translate(-50%)}@media (max-width:991px){.component-section{padding:3rem 0}}@media (max-width:767px){.i-size-60{font-size:3rem}.lh-35,.lh-45{line-height:normal}.ls-2{letter-spacing:.5rem}.font-size-60{font-size:28px}.font-size-72{font-size:32px}.icon-md{font-size:2rem}.icon-lg{font-size:2.5rem}.border-sm-right-0{border-right:none!important}.curve-top-bottom,.curve-bottom-1,.curve-bottom-right{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.btn-sm-block{width:100%;padding:.75rem 2rem;display:block}}@media (min-width:991px){.neg-mt-100{margin-top:-100px}.neg-mt-300{margin-top:-300px}.clab-shape{padding-bottom:13.5rem;overflow:hidden}.clab-shape:after{content:"ă";color:#1420f11a;font-size:1200px;font-weight:800;position:absolute;top:-35%;left:50%;transform:translate(-50%)}.clab-shape .container{z-index:1;position:relative}}.markup-example{position:relative}.markup-example .btn{z-index:2;padding:.385rem 1rem;line-height:normal;position:absolute;top:.5rem;right:.5rem}.markup-example pre[class*=language-]{background:#e8e8e8;border-radius:6px;padding:3rem 1rem 1rem}.component-section>button,.show-markup-section>button{z-index:1000;opacity:0;transition:opacity .2s linear;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.component-section:hover>button,.show-markup-section:hover>button{opacity:1}.clip-txt{text-align:center;color:#0000;background-position:50%;background-size:cover;background-clip:text;-webkit-background-clip:text;font-size:15rem;font-weight:700;line-height:normal}@media (max-width:565px){.clip-txt{font-size:6rem}}@media (min-width:769px){.clip-txt{font-size:25rem}}.landing-slider .owl-carousel .owl-item img{width:100%}@media screen and (max-width:991px){.wow{visibility:visible!important;animation-name:none!important}}.buy-link{color:#fff;z-index:1200;text-transform:uppercase;text-align:center;background:#82b440;border-radius:0 5px 5px 0;padding:.6rem;font-size:12px;font-weight:700;transition:all .3s;position:fixed;top:30%;left:-5px}.buy-link:hover{color:#fff;text-decoration:none;left:0}html body{background-color:#fff}@media screen and (prefers-color-scheme:dark){html body{color:#fff;background-color:#000}}body.modal-open{overflow:hidden}.report-view-box{height:80vh;white-space:pre-wrap;cursor:default;overflow:hidden}.report-view-box>div{height:100%;max-width:1035px;margin:auto;overflow:auto}.report-view-box .split-view-container{display:flex;overflow:hidden}.report-view-box .split-view-container .solidity-coverage-container{width:100%;min-width:0;flex-direction:column;flex-grow:0;display:flex}.report-view-box .split-view-container .solidity-coverage-container .solidity-coverage{height:100%;overflow:auto}.report-view-box .split-view-container .solidity-coverage-container .message-box{height:25%}@media screen and (prefers-color-scheme:dark){.report-view-box .split-view-container .solidity-coverage-container .message-box table.table-light{color:#fff;background-color:#000}}.report-view-box .split-view-container .bytecode-coverage{max-width:25%;overflow:auto}.report-view-box .split-view-container .contract-explorer{width:25%;background-color:#fcfcfc;padding:8px 0;font-size:.9rem;overflow:auto}.report-view-box .split-view-container .contract-explorer>ul>li{cursor:pointer;padding:4px 8px;transition:background .3s}.report-view-box .split-view-container .contract-explorer>ul>li:hover{background:#ddd}.report-view-box .split-view-container .contract-explorer>ul>li.active{background:#8ed3f1}.report-view-box .split-view-container .contract-explorer>ul>li:first-child{font-size:1rem}.report-view-box .split-view-container .contract-explorer>ul>li:not(:first-child){border-left:1px solid #ccc;margin-left:.75rem}@media screen and (prefers-color-scheme:dark){.report-view-box .split-view-container .contract-explorer{color:#fff;background-color:#000}.report-view-box .split-view-container .contract-explorer>ul>li.active{background:#09c}}.report-view-box .split-view-container tr{border-bottom:2px solid #0000}.report-view-box .split-view-container tr:hover{cursor:pointer}.report-view-box .split-view-container tr.covered:hover{border-bottom:2px solid #91daa6}.report-view-box .split-view-container tr.weak-covered:hover{border-bottom:2px solid #d2da91}.report-view-box .split-view-container tr.not-covered:hover{border-bottom:2px solid #da919a}.report-view-box .split-view-container tr.active{filter:brightness(85%)}.report-view-box .split-view-container tr.covered.active{border-bottom:2px solid #91daa6}.report-view-box .split-view-container tr.weak-covered.active{border-bottom:2px solid #d2da91}.report-view-box .split-view-container tr.not-covered.active{border-bottom:2px solid #da919a}.report-view-box .split-view-container .has-highlight tr.text-muted.not-covered,.report-view-box .split-view-container .has-highlight tr.text-muted.covered,.report-view-box .split-view-container .has-highlight tr.text-muted.weak-covered,.report-view-box .split-view-container .has-highlight tr.text-muted tr,.report-view-box .split-view-container .has-highlight tr.text-muted td{background-color:inherit!important}.report-view-box .split-view-container .has-highlight tr.message-muted{display:none}.benefits{padding-bottom:48px}.has-highlighted>table tr:not(.highlighted) *{color:#ccc!important;background-color:inherit!important}pre[class*=language-]{background-color:inherit;padding:0}.coverage{height:100%;font-size:14px;overflow:auto}.coverage:not(.solidity-coverage){font-size:13px}.coverage tr td,.coverage tr th{white-space:nowrap;border:0;padding:0 0 0 1em;border-radius:0!important}.coverage tr td pre,.coverage tr th pre{background:inherit;margin:0;padding:0}.coverage tr th{border-bottom:1px solid #dfdfdf;font-size:16px}.coverage tr td.index,.coverage tr th.index{text-align:right;width:3em;border-right:1px solid #ccc;padding-right:1ch}.coverage tr td.index{background-color:#fafbfc}.coverage tr td.opcode{font-weight:600}.coverage tr td.hit-count{text-align:center}.coverage tr.covered,.coverage tr.covered td{background-color:#e6ffed}.coverage tr.covered td.index{background-color:#dbffe3}.coverage tr.not-covered,.coverage tr.not-covered td{background-color:#ffe6e8}.coverage tr.not-covered td.index{background-color:#ffdbdf}.coverage tr.weak-covered,.coverage tr.weak-covered td{background-color:#fcffe6}.coverage tr.weak-covered td.index{background-color:#fbffdb}@media screen and (prefers-color-scheme:dark){.coverage{color:#ccc}.coverage th{color:#fff}.coverage tr.not-covered td.index,.coverage tr.covered td.index{color:#ccc}.coverage tr th.index{border-color:#414141}.coverage tr td.index{background-color:#000;border-color:#414141}.coverage tr td.opcode{color:#ccc}.coverage tr.covered,.coverage tr.covered td{background-color:#295234}.coverage tr.covered td.index{background-color:#214129}.coverage tr.not-covered,.coverage tr.not-covered td{background-color:#692217}.coverage tr.not-covered td.index{background-color:#541b12}.coverage tr.weak-covered,.coverage tr.weak-covered td{background-color:#68360b}.coverage tr.weak-covered td.index{background-color:#512a09}}.coverage table{width:100%}.mouse-pointer{cursor:pointer}.wizard-grid div{padding:10px}.wizard-grid .btn-outline,.wizard-box .btn-outline{margin-left:0}a.wizard-link:visited{color:purple}.code{background-color:#fafbfc;padding:10px}@media screen and (prefers-color-scheme:dark){.code{color:#fff;background-color:#2f2f2f}}.code-block-selectors{color:#000;width:fit-content;background-color:#e5e5e5;border-radius:4px;margin-bottom:8px;padding:2px 12px;position:absolute;top:0;left:0}@media screen and (prefers-color-scheme:dark){.code-block-selectors{color:#fff;background-color:#616161}}.nav-item{cursor:pointer}.ns-form{grid-column-gap:1rem;grid-template-columns:75% 25%;display:grid}.btn-disabled{background:#fff;border:2px solid #e8e8e8;margin-left:2em;color:gray!important}#firefly-reports,#firefly-report{margin-bottom:100px}#firefly-reports thead tr th,#firefly-report thead tr th{text-align:center;padding:.5rem .75rem}#firefly-reports tbody .report-row-header td,#firefly-report tbody .report-row-header td{text-align:center}#firefly-reports tbody .report-row-header td .report-id,#firefly-report tbody .report-row-header td .report-id{color:#09c;text-decoration:underline}#firefly-reports tbody .report-row-header td .report-id:hover,#firefly-report tbody .report-row-header td .report-id:hover{color:#007aa3}#firefly-reports .center-image,#firefly-report .center-image{padding-bottom:0;padding-left:21px;padding-right:21px}.report-buttons>ul{align-items:center;margin:0;display:flex}.report-buttons>ul>li p{margin:0}.report-buttons>ul>li:not(:last-child){margin-right:1.5rem}.report-buttons>ul .dropdown{display:inline-block}.report-buttons>ul .dropdown.show{outline:2px solid #09c}.report-buttons>ul .dropdown img{height:2rem}.report-buttons>ul .dropdown img:hover{outline:1px solid #09c}.report-buttons>ul .dropdown-toggle:after{content:none}@media screen and (prefers-color-scheme:dark){.report-buttons>ul{color:#fff}.report-buttons>ul .dropdown-menu,.report-buttons>ul .dropdown-item{color:#fff;background-color:#000}.report-buttons>ul .dropdown-item:hover{color:#c2c2c2}}@media (prefers-color-scheme:dark){.dropdown-menu,.dropdown-item{color:#fff;background-color:#1b1b1b}.dropdown-item:hover{color:#fff;background-color:#2f2f2f}}.report-coverage-row td{position:relative}.report-coverage-row .report-container .fullscreen-btn{cursor:pointer;color:#09c;font-size:2rem;position:absolute;top:.5rem;right:2rem}.report-coverage-row .report-container.fullscreen{width:100%;height:100%;z-index:10;background-color:#000000e6;padding:2rem;transition:all .15s linear;position:fixed;top:0;left:0}.report-coverage-row .report-container.fullscreen .report-wrapper{height:100%;background-color:#fff;border-radius:.3rem;padding:2rem;animation-name:zoom;animation-duration:.6s;position:relative;overflow:auto}.report-coverage-row .report-container.fullscreen .report-wrapper .fullscreen-btn{position:fixed;top:2rem;right:2.8rem}.report-coverage-row .report-container.fullscreen .report-wrapper .report-view-box{height:calc(100vh - 256px)}@media screen and (prefers-color-scheme:dark){.report-coverage-row .report-container.fullscreen .report-wrapper{background-color:#000}.report-coverage-row .report-container.fullscreen .report-wrapper th{color:#fff}}.report-coverage-row .report-container.fullscreen .coverage,.report-coverage-row .report-container.fullscreen .split-view-container{max-width:initial}.introjs-hint.introjs-fixedhint{z-index:11}i.fa{margin:0 1ch}.expandable-title{padding:.3rem 0;transition:all .3s}.expandable-title:hover{cursor:pointer;color:#09c}.expandable-title:not(.contract-title){font-weight:400}.contract-title .contract-coverage{float:right}.contract-hint-trigger{text-align:center;display:block}.contract-hint-trigger:hover{cursor:pointer;color:#fc0}.contract-hint-trigger .contract-hint-trigger-hidden{display:none}.source-name{border-bottom:1px solid #ccc;font-size:12px}@media screen and (prefers-color-scheme:dark){.source-name{color:#fff;border-color:#414141}}.indent-2{padding-left:2ch}.btn-download-report{background-image:url(Firefly-Download-Icon.8094a4f0.png)}.btn-download-report:hover{background-image:url(Firefly-Download-Icon-Inverted.32636383.png)}.btn-copy-report-id{cursor:pointer;background-size:cover;display:inline-block;font-size:1rem!important}@media (min-width:1025px){#firefly-header:not(.sticky-nav)>.container>.row>.col-12{min-height:150px}.vlmenu>li:not(:last-child){margin-right:20px}.vlmenu>li>a{padding-bottom:0}.vlmenu li:hover{border-bottom:2px solid #fc0}.vlmenu li.active{border-bottom:2px solid #fc0}.vlmenu li>ul{z-index:1}#dashboard-submenu{position:relative}#dashboard-submenu>ul{z-index:0;box-shadow:none;width:260px;justify-content:space-between;display:flex;position:absolute;top:50px;right:0}#dashboard-submenu>ul>li{display:inline-block}#dashboard-submenu>ul>li>a{padding:0;display:inline-block}#dashboard-submenu>ul>li>a:hover{color:#000;background:0 0}}@media screen and (min-width:1025px) and (prefers-color-scheme:dark){#dashboard-submenu>ul>li>a:hover{color:#fff}}.breadcrumb{background-color:inherit}.breadcrumb-item+.breadcrumb-item:before{content:">"!important}div.table-responsive{padding:0 8px}#youtube-video{height:303.75px;width:540px;max-width:100%;background-color:#d7d7d7;justify-content:center;align-items:center;display:flex}video{width:100%!important;height:auto!important}.gif:hover{opacity:.7}.custom-control-input:checked~.custom-control-label:before{background-color:#09c}.divider-bar-closed{color:#fff;background:#09c}.divider-bar-closed:hover{background:#008ab8}.divider-bar-opened{background:#fc0}.divider-bar-opened:hover{background:#e6b800}.divider-bar{cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s ease-in-out;display:flex}.divider-bar span{letter-spacing:1px}@media screen and (prefers-color-scheme:dark){.divider-bar{color:#fff;background:#343434}.divider-bar:hover{background-color:#393939}}.divider-bar-vertical{width:1.3rem;flex-direction:column}.divider-bar-vertical span{writing-mode:vertical-lr;text-orientation:sideways}.divider-bar-vertical i{margin:1ch 0}.divider-bar-horizontal{height:1.3rem;flex-direction:row}#contact-links li:hover{cursor:pointer;border:none!important}#contact-links img{height:1.5rem}#firefly-profile .btn{margin:4px auto;padding:4px 1rem}.icon{color:#09c;font-size:2rem;transition:color .2s}.icon:hover{color:#069}.icon.active{color:#fc0}.icon.active:hover{color:#ccb400}@media screen and (prefers-color-scheme:dark){.introjs-tooltip{background-color:#000}.introjs-helperLayer{background-color:#414141e6}}.modal{width:100%;height:100%;background-color:#000000e6;display:none;position:fixed;top:0;left:0;overflow:auto}#email-modal{z-index:2000}.modal-content{width:80%;max-width:1024px;margin:auto;display:block}@media screen and (prefers-color-scheme:dark){.modal-content{color:#fff;background-color:#141414}}video.modal-content{margin-top:100px}#modal-caption{width:80%;max-width:700px;text-align:center;color:#ccc;margin:auto;padding:10px 0;display:block}.modal-content,#modal-caption{animation-name:zoom;animation-duration:.6s}@keyframes zoom{0%{transform:scale(0)}to{transform:scale(1)}}.close{color:#09c;z-index:99;font-size:50px;font-weight:700;transition:all .3s;position:absolute;top:15px;right:35px}.close:hover,.close:focus{color:#fc0;cursor:pointer;text-decoration:none}@media only screen and (max-width:1024px){.modal-content{width:100%}}#firefly-feedback{z-index:999;position:fixed;bottom:30px;right:30px}#firefly-feedback>picture>img{width:100px}#firefly-feedback img{cursor:pointer;opacity:.7;transition:opacity .3s}#firefly-feedback img:hover{opacity:1}#firefly-feedback .feedback-form{background:#fff;border-radius:4px;flex-direction:column;justify-content:space-evenly;padding:24px;display:flex;box-shadow:1px 2px 10px #0003}#firefly-feedback .feedback-form .fa-times{cursor:pointer;opacity:.5;transition:opacity .3s;position:absolute;top:25px;right:25px}#firefly-feedback .feedback-form .fa-times:hover{opacity:1}#firefly-feedback .feedback-form .feedback-rating{justify-content:space-evenly;display:flex}#firefly-feedback .feedback-form .feedback-rating>picture>img{height:120px;margin:4px 18px}#firefly-feedback .feedback-form .feedback-message{float:left;width:100%;height:150px;margin-top:10px;margin-bottom:10px;overflow:scroll}@media only screen and (max-width:767px){#firefly-feedback .feedback-form{position:fixed;bottom:8px;left:8px;right:8px}#firefly-feedback .feedback-form .feedback-rating>picture>img{height:100px}}@media screen and (prefers-color-scheme:dark){#firefly-feedback .feedback-form{color:#fff;background-color:#000}}#contact-links img{margin-right:1rem}#bytecodes,#solidity-files,#contract-links{margin-bottom:24px}.drop-area{text-align:center;height:64px;cursor:pointer;background-color:#f7f8fa;border-style:dashed;border-color:#616161;margin-top:0;margin-bottom:0}.drop-area:hover{background-color:#edf1f4}.drop-area p{margin:0;position:relative;top:50%;transform:translateY(-50%)}.drop-area.uploader{margin-bottom:0}@media screen and (prefers-color-scheme:dark){.drop-area{color:#242424;border-color:#777}}.ratings,.ratings p{display:inline-block}.ratings #positive{text-align:left}.ratings #indifferent{text-align:center}.ratings #negative{text-align:right}.feedback-table{height:70%}.color-erc20-green{color:#007f3a!important}.background-color-erc20-green{background-color:#007f3a!important}#erc20-dashboard .bytecode-row-header h6 a,#erc20-bytecode .bytecode-row-header h6 a,#erc20-dev-dashboard .bytecode-row-header h6 a{color:#09c;text-decoration:underline}#erc20-dashboard .bytecode-row-header h6 a:hover,#erc20-bytecode .bytecode-row-header h6 a:hover,#erc20-dev-dashboard .bytecode-row-header h6 a:hover{color:#007aa3}#erc20-dashboard .markdown-preview,#erc20-bytecode .markdown-preview,#erc20-dev-dashboard .markdown-preview{border:1px solid #e8e8e8;border-radius:4px;margin-bottom:32px;padding:8px}#erc20-dashboard .markdown-preview pre[class*=language-],#erc20-bytecode .markdown-preview pre[class*=language-],#erc20-dev-dashboard .markdown-preview pre[class*=language-]{word-break:normal;white-space:pre-wrap;background-color:#f7f8fa;padding:16px;font-size:.85rem;overflow:auto}@media screen and (prefers-color-scheme:dark){#erc20-dashboard .markdown-preview,#erc20-bytecode .markdown-preview,#erc20-dev-dashboard .markdown-preview{color:#e8e8e8;border:1px solid #414141}#erc20-dashboard .markdown-preview pre[class*=language-],#erc20-bytecode .markdown-preview pre[class*=language-],#erc20-dev-dashboard .markdown-preview pre[class*=language-]{background-color:#1d1f21}#erc20-dashboard,#erc20-bytecode,#erc20-dev-dashboard,#erc20-dashboard .table,#erc20-bytecode .table,#erc20-dev-dashboard .table{color:#fff}}.logo-link{color:#242424}@media screen and (prefers-color-scheme:dark){.logo-link{color:#fff}}pre[class*=language-],pre{word-break:normal;white-space:pre-wrap;background-color:#f7f8fa;padding:16px;font-family:Inconsolata,Monaco,Consolas,Courier New,Courier,monospace;font-size:.85rem;overflow:auto}code[class*=language-]{font-family:Inconsolata,Monaco,Consolas,Courier New,Courier,monospace}pre[class*=language-]{border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}@media screen and (prefers-color-scheme:dark){pre[class*=language-],pre{color:#c5c8c6;background-color:#1d1f21}}.h1 a,.h2 a,.h3 a,.h4 a,.h5 a,.h6 a,h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:#09c}.h1 a:hover,.h2 a:hover,.h3 a:hover,.h4 a:hover,.h5 a:hover,.h6 a:hover,h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{color:#069}.rv-btn{color:#242424;background-color:#fff;border-color:#242424}.rv-btn:hover{background-color:#f2f2f2;border-color:#171717}@media screen and (prefers-color-scheme:dark){.rv-btn{color:#fff;background-color:#242424;border-color:#fff}.rv-btn:hover{color:#fff;background-color:#212121;border-color:#f2f2f2}}.rv-btn-yellow{color:#242424;background-color:#fc0;border-color:#fc0}.rv-btn-yellow:hover{background-color:#e6b800;border-color:#e6b800}@media screen and (prefers-color-scheme:dark){.rv-btn-yellow{background-color:#ccb400;border-color:#ccb400}.rv-btn-yellow:hover{background-color:#b39e00;border-color:#b39e00}}.rv-btn-blue{background-color:#09c;border-color:#09c;color:#fff!important}.rv-btn-blue:hover{background-color:#0086b3;border-color:#0086b3;color:#fff!important}@media screen and (prefers-color-scheme:dark){.rv-btn-blue{background-color:#069;border-color:#069}.rv-btn-blue:hover{background-color:#005580;border-color:#005580}}.rv-btn-red{background-color:#f04124;border-color:#f04124;color:#fff!important}.rv-btn-red:hover{background-color:#ea2f10;border-color:#ea2f10;color:#fff!important}@media screen and (prefers-color-scheme:dark){.rv-btn-red{background-color:#cf2a0e;border-color:#cf2a0e}.rv-btn-red:hover{background-color:#b7250c;border-color:#b7250c}}.rv-btn-green{background-color:#007f3a;border-color:#007f3a;color:#fff!important}.rv-btn-green:hover{background-color:#00662e;border-color:#00662e;color:#fff!important}@media screen and (prefers-color-scheme:dark){.rv-btn-green{background-color:#007f3a;border-color:#007f3a}.rv-btn-green:hover{background-color:#00662e;border-color:#00662e}}.card{position:relative;overflow:hidden;box-shadow:0 8px 16px #0000001a}.card:hover{transition:all .3s;box-shadow:0 8px 16px #0003}@media screen and (prefers-color-scheme:dark){.card{color:#fff;background-color:#141414;border-color:#414141}}blockquote{font-size:inherit;color:#5c5c5c;background-color:#f0f0f0;border-left:4px solid #d6d6d6;margin:16px 0;padding:0 15px}@media screen and (prefers-color-scheme:dark){blockquote{font-size:inherit;color:#fdfdfd;background-color:#323232;border-left:4px solid #474747;margin:16px 0;padding:0 15px}}.page-toc{background-color:#fff;border-left:1px solid #0000001a;border-right:none;overflow:auto}@media (max-width:767.98px){.page-toc{z-index:2000;height:100%;background-color:#fff;border:none;display:none;position:fixed;top:0;overflow:auto}}@media screen and (prefers-color-scheme:dark){.page-toc{background:#000;border-left-color:#414141}}.page-toc .bd-toc-link-wrapper .bd-toc-link{white-space:nowrap;padding:.25rem 0;display:inline}.page-toc .bd-toc-link-wrapper.highlighted .bd-toc-link{color:#09c;font-weight:800}.page-toc-toggle-btn{width:48px;height:48px;z-index:3000;border-radius:100%;padding:0;font-size:150%;display:none;position:fixed;bottom:12px;right:12px}@media (max-width:767.98px){.page-toc-toggle-btn{justify-content:center;align-items:center;display:flex}} \ No newline at end of file diff --git a/assets/css/owl.video.play.e7a23fb2.png b/assets/css/owl.video.play.e7a23fb2.png new file mode 100644 index 0000000000000000000000000000000000000000..aa387f962d13c7486d96919f339c9295b3c5c676 GIT binary patch literal 2794 zcmV#4USa6|gsfr4f3MgO{G!h^z2@tX`Gn1M3-mme_W0;sGlgZ3@`nmtk$@%8ayEE_2 zy_)d<%>^3W5xN#A@=TUF+Ns(wZGe_bJds+f#wrVK39PT!F|%HTE@&hmbWi^0hn#J#pjGxOy zH0j|r7@4SFW?W1Mp}P9=ijP0pSz5WNW=k_dOtyYzpHm8^3?F^+pb2@!hL1RQL+!(7 z+*%qGTLq*i(7s8(kvM_siueD$e#Opp)r8td8xbsQ;%Vr(aO1hMWZtxK-x@F_KC^9C z-2+7r6A?QNizG7BeqZ8Lf3*6x8D}w>(F~ygKiRlDF8~#2kcE$Y22gy>ncE(0Jt%Q% zo;|A{2B`*GS4*5D+m`-`8H}fx0&;Mp3yB6A1|Iwj{NBVZivyJs6WYD+S9s7<2(+G( zn3jVpZ)GMYGlYCR9n*T4nN7h(lggG`L5bOWGdbwJ3KYM+Mq+lnIQzRyq?mlN(1hL% z6^zlNpL1LrBL!!%g1}zl}7DWQ_aBVsSjNfE=_h1&Z4)6J^^Y zqGL;R$+uNOe4t$_%9f{@LVpbCX`o`&KE7%MMoNKPm=pR$lx_Dj03$9ia)v08*7Fxq zf)A1kRN5*lE=m4wrvv@a??h>>WF*<~fj5h?`wdQ2?a2o!&F^mgdUD^}9X&VDJR-`v zzt9&w7HC(A^3auxAs4Mzfr=ffzUP5K7`+QbZ(1%&T`5EHIDz45qO?|(%w-5}=yjkH z+O_LKJZQZL5%`C`!Ygyyz-RPrt7c6&MIeG4WgVqn>-z4EK0-v zrVwFl(o5_6qj~H1UyfJP>5<00W(CUWBgxW%lTd085XMAEJ6Hb`?`VB<>*<=iCyVCB zYRd^6c_MBdwBaa6D~Vu{A-PGlMmQ1YWT0eJBG@hz9mYsjbJvCSx>r;V;j7 zZ_mY=H{m=ULdh$@r2}~=jV)LR8I?73__F4gHcsvS6H@9>y!jY9;6Vw7v9Zax+_O&G zP<=buT`w9tgkoex19cSJM)*p!HSGz}2Nzw?!zj87%>`H}ZvCqW6l=$ttDaa}fpmAZ zqSz+5K!PZKFB%zEyW{btS8t-eeKccs8JLR_2}T1OQ2O}MGMN}|*znxK6%BRN(@0P( zx}+DPv^HY9z&?!9zYrsHf#q-9y!@Hne32I*B0@K`At*IRv0M<@>*WiDgE7#_fW|#9 zEc?YfG*Cw~ZDP|cahpR?st&2Za2ZO!p}5l@Xa+ubVbL?6R#Q&{K`apx2o+_GK-s>Z zhzmkHQ2fJA$t^WVtAiWwUUt_fYEiTj7NG}RCE8GwR}Wz#-0Km=w*Gb={m{~NyVX*) z@>XUrmO=P1dVW9HcAY5opEH#L1hnvGQPwX}PxNUBw89^~F!zgHfuZE#O74a=@-I>T zaR=kcQ!hFC3sI`xWjNl{1CMOG<=0GOR8MvVzDx$%^`gxA4#V)Mm+TxRN~Gzc+4xfn z4As4UmunW|C?W?V`KLPbd{G)Jn8pC~=u3?7XQI4y6a6uI9cY)mcHTlJGmJjb$M;?Y zt`TM3gPcO13TUU*{aKWntrX+wU0`k5y;m}wlNdlYdhZ_GLnU@Vljr*RuL4Dc{#D|{R&u`XkBGJFe ztk|U{I6R@PqEv5GbJ&x>@Mn)rp2vjapLR))j@y^@&QiUP3G_wp7^olmjX2)EoIJF| zffeU6no$(siN>WCXgzyu{`_+ohLHOY7;}L*-nf?u z^h56)sF!|2996HA&$H1uj1HtBYEgw%|?!B$M^P^ z{O` z-+E>-k{q-y0u|TZE5s4p|L6>|GMi{#DCV)-gX!}bLq0lm6R7qc?~Nr^teTa{M01fu zM2Q6MxSRlt8B@A>JS>@#-1msY z1b6ND0iLwH)mhdx($eA3&@_fc^O6WuiFu{hnE{DuShaa7uGAvU@7i19pI+K;)FyKx zK9!ebpjs~X&8^)mF;;8iGo>?n8L6A+nCm3Y$E%plxagrF=tZDP%w|ye(vG`vO)ppe zaAm(_mQ8S2_%d^|#0gZtekU^+MPJ-1uQ!2;hKoLHE~t4=ItcG;dZg;y?Sm6!x`b0*Chd#pa1{>07*qoM6N<$f?Y~e-~a#s literal 0 HcmV?d00001 diff --git a/assets/css/select-arrow.b8e89c0c.svg b/assets/css/select-arrow.b8e89c0c.svg new file mode 100644 index 00000000000..4c24a2a3427 --- /dev/null +++ b/assets/css/select-arrow.b8e89c0c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/404.png b/assets/img/404.png new file mode 100644 index 0000000000000000000000000000000000000000..7e858c28a121b086601727f7365f3dca55c5c931 GIT binary patch literal 33413 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 literal 0 HcmV?d00001 diff --git a/assets/img/500.png b/assets/img/500.png new file mode 100644 index 0000000000000000000000000000000000000000..953bc1b5b15b19060d7a29c823d380cac7be42a8 GIT binary patch literal 45305 zcmXt9Wl&pfx5eEpxI4k2Kyi0>cWsMPq_{)y;#%Atio3f*ad&qwH+}DXKQfugsQGA8e%nARuzV-$h^GM#+_@Ai!y}M z4_$X393R(ZAA|S>!zs-fH$!bzCrvF8@E>EuVE2HD`63Q0MT#zyANN_b-)0pOWH~s~ zsJk9daaWYAe7lTkDQ?p)N3I3X;evW(;IuAnPGC)-esEeAmwnA_VH`2S78gxzHetg@ z962FT?1NBv6p&F#tZ`R!LWBGRXF?)4I+)f(^L%P4frt%2ful0L(xJ6~5J*i87pDHC z1)(zvBtkL%Z-Mk7^FkdM6EuH;hZx(0SOH3N!?GL%xPMQH_jv$uZy^OnH;RJ;BnG{$ zMr6MI|1%c%F|?6|I&dcRKfgN8WRhp6bOhZKkxnY9dc zDm*ONjXWM0bO-f1?dhD6Uc%O^8@GACr}%}Pl=!#JGH@Oaw$pMSM#f<& z&r}}UDUYiFtXjZoP{kabph&W^XZchlnEyg_b+g;m|9bhZo?P1-f!wwb*htnHLjx+L z>w3G0py7SI$)GXE!lHir@PJTQ32s6K)F&OWUo+LckHmyaxjg_V@u~YSwY)UK2Kn>wd-Y zYfS7qy!y{YZTu{~ffpD1Sa`YN`)0~K&gmD-H@U#@4%z zy8U@)j^gneHLu{k%eaGBS*V@-=&!N&oia{RCdpC@j#!ORjZ)bNd_CCM7$A)8)B92~ zl5h5l7-QXb(mW85^Wxh$?6p89U-jw@5N_65_#WE6*HH&MtF}M-P@Ps2VhmQSMVWpQ#2a*eB` z(We->`TXHhF5_gs{M{yzL*))zDNG7p1REd=hkRtghJ}KKll_A2gg6`p3u5Wi0y)~2 zPz!i7WVo?UW^uzqhvLDzu|HukVi$UxNyvU7=KHQTeQ5K(;jhkps0K;Pl7RA0NHFB_ zupz9KYvIk4esw~1gn-1IW5wG7#^e-(A3tQ`XLJDGZ@r?k!J70-D2Paxu*MTD8sw(J zb0|)!`oTTZ^pq^I&6Xa+k}jFdfat~cr0yqr1TOr=-;2MdWSJ{TUcmsr!LF(-A2>MBI1F+&1yumQ6nK8yE{Z~{vzOhQ5}+69y? zDdCYWr7&aovXuYiwiBg{9?PePHW-CV6!`kMK=}ujPp#y%gq>g7nP(=`z!U3xK{yrn zVM3azo${~>+P@3(iiT8z6=%fQ4o~6~(?tHsyI$*e?Qo!~>j{i(KsId}%afXl3rm{m z4rPSNPGFA;rtAgE){Ak6I4C;S}jBc;}R(%7=sbHc~dgjs>4%(GQAFCscyhR90cNszXVw5aVqoDyO zE;W3g?fNXk1fVC)X$`}v-f?z-pLzNXQ2pSf8T#-(&t-IqJhnJoYr}5_s`CIp&826N66;Cvyg4zB5k%IR#!ikeHFkI{9G8 zlp5teeaf(;;%U)=Ust_k*N$E(%~h+r{$B_iw~G&U6qqW0;R6TzY_8eo zY%VpcT$Kn^+YAk5SsG*s`dkdu>W+^>oAk2zmTceSZxtVJyT4#t+kxOTI>S<7H&uwy zr&}a*1Gb2$#QvdsQONXI4%1u~$w|Kwp~Gfd!1l!}Y2vr`O~G1fn|I`NdAl{S5-3BX zqKR~(J3er%@#jgckx>G>N&(J%L_^qV5GFj*bD@|hb7Pvzt9YvWsv-N7oO$qC#~wOmrXN0dH8;>xnEN6KxEzmLAR{!vaN*hu(wV8C%>ZPh4a1U>~dGpTBA zxTTNHPw&Ta`Y3f(=DN@A@5_VX75ELT13JO=I!|JN_YglX`EYXt*p^RTNYIh-;d^G) z;6)t6b(s^0@TNy(J_|5U0@$0v9-Pb&7K^JxQJ08llaZO{eJB7>g_be+ zoD>InYKakQ*XPz^nhFlrjIAYe1Ekr&m}>3H?w0z4e(zjumn!-+)lZY-NY*s$U^7U7 zE6Y0`c`?bO46r#kFf(7_EcGQ+ix>h|iD?UzBc?ln@mC%a1C)63@y+wjx2o~K*%p+= z8AX;UX5Zzaf^)nXw%6TSs4EDbk-EgJjro8GvCS4f71Zt}??t)|HirL0azzO7eXd-7c7)JEnASvGRB z27_R0S#$N+X`=~We9Ypi(1=5@IG=xc>rlWY zECekJmj42O`tax4MBE59GVms-h|!YyujTCCDcv>Unpt7QsSa# zj-)KuQPTs6uV6w=QNdIumD?N%-gc4QG#8bgCgH`Hcup|$q&P5F^`)6-xUPoy5wg+9 zBw~niOhzoVd73=if5L4XHBaz6;YB~``xme+;S&~2zZU^P9ObKUex%0sW{Tqp7_=;0 zp|Le4?;Ko63x+08LAl)Yv^L>i6vxX)yHy*Fm-Dm5Jfo-sBaqK~f+e9upn^stkf+UmJpKZx7M=Ay(riY(Cic zAfYbX31@IR?L(dt+HdOkx;Vh=zDOK}&j|?&P36G+Yrff;W5P+lLiH9Uv?5NEIk~Ke z^E_zxKC}iU;olLWw@OWGwIUY4oq$s}>}RaN2oTAsa9=Nfbqd$)`lDbt$e|r@ET#U( zCy7uSQ6s9tnvGi2a&D=(I_5J8Ps~o>Q)GsP=|^q?!~xz6T4Yjxr65Zey4%9)lq?|)EgG((w!+a%${nNS>s0|Gb-iv|N;pPlE3A57)Gf>i?- zS!mYyi8#flJq)mhd4Ej}Gkl)A*lZ_qaHzMg=#-YxgD^;cSRJzCfH=z0xyBXM(Gmfo zSWp&ezfOG60!Q}vq#(^zqW9l3A#c;!NKqNzRr_}_Oa!S1{2dxY)~Jg4{KA-Rr)bUi?gWqkw_H{h)a2vNn0`1D zmk+3}1<0JR?vq(Uc+qb0n=>i~eRP*y%r9%V4)1O95E#(Xiro|Fe^rOijz&&2nN)SJ zD|dFw5H+v9?vCzo@C0F^j9L&LMgddxnR0eXUX_@i_ucBX4%6iU`|0vao}{bJ6NT-E z+v~r3>!&7K4%Dp9rxE_!`;j@J&E)-%>~;N|sGf4Finq?42;5O&*Z6FFbI%2*JpXg* zuT>qpOTCg^bPJlVZ855L2934{a=Lnq;x2n_#*z_K@VK_fG|Ur&s8ZiE6A+fZG4^DX zE9iXW!wwM<<8UbQHTK-t`7q(TyG2fNr;y(02qrgjeM32FPyfPVxH8)ik6WsWZ`Be` zm2H<9*&?weD_(d8%C?6w|Gu{q$g*aZ>3+>E8cQJ`l$vDfK0rG#q?z%PgDcvME%8^J zaU|BzT!K^)TD{%vo&KETC^t>>8xLB0*Y6Q3V4hV;vC;IRfs1X@P@d>!LW{mSqRDvm>(JGSmS>Hhev)$nIai&*h4>{H~slarYrtk&uE?U>`Y5N}AIe!NufL z>3lO7%fP_G*Z3_2{Y`XA3B>Ypvz_~=_EN*(t(&0P(y2`^j}pfPYy@+H=y(W>oC*fi z?6n3KBMCF=CgHG#2akxXP#i)1?yeqXc8uKi0wx4hQ4;=8v2^?w*rQ7zCovxR2kq-& zkhSR|lwjv;ttON8k*e|-tQYZ}MK--xUy2+!GxQVlQ=t&KCYPr-11~KmR@PqVU zF&39QgUyGezRaKaYz8)MII0D5Oi?HN&i!8V<23O_q{vF0D+7>LC9a_EAe6v<2v{dr z+D_ZZg+3cCD($wZO=uxHh7p6USEBhOqH8z@8}B$I+TQ}7s|mmYtgu%n);10Q5?!Om zNT9R`lF9uO8F4$V7g-q>sA8WvU@#0Ww44gQW_o5NFLK)Dd039+!#^SkyExxMW&gz5 zoYo*~oo@ykj3SVg7)b(P;wBuJv-q5-iz)erT z@EDE#6fl#*CwPVGe_7MDdygoLX?f z*F;(i=upCsk_f55r!siV8-5O}sowgyunk~fvSp#GxC}=DyPBUCeFu~rT_Guzh7Tvs zJhx_)XrDBqzH}5O;I3_~3;8o+G=mn6tG8@Zsb;Cu0ytq(abW16MD@tH7I;?;MX!ax z3Qs8}KYEcemErO$81$#rIawi{yvbc?P7geu#wH{Bh?ndffD;@IPC3$|aPX|!rsuPA z-V`eFqAp^+iAk-E)JO)a5Xt=L)iHl{xP1<9V_SO@SgNvq${55!@nyhvCqes`KbgR4 zqig$x5j1STipT>wCDM2An{8Og)lxqM&5edvjoJc@xx>GQEHiiqt}~C{Onv7J1HNU* zHng`ti3*QNgYl>Kj=Lt&9~pNITJ+pigeqG^Ng7scYFUNIU40dtP|yw7;M{K(y!*_{ zePR7n>m`kC8IwtOsGAFNtl7~~^L#06dXKb;r`Pq^RhUUwH#)+vONKEA2V%rVZf~%0 za{n6kLh?6f!_QLr%xD=+%{IZTNTjQ0hr%`%^1XRkJyh$H)yIy}3?Y_U%WEe*beW5q z)X1B3HWDAyLYmIiw7F{wsZ&y@8FOll3EP|JTh(RF-o}~)+ReDR6QH)IKSb)P z-)NYyP(c^lUEmIZRJ2EG zCx<~O?D(bK-&{I}7J1Sg7j5~+;p(Zz z(MeNp{!3(|y}@SJQbDz|n_tD2_t>Ah+Ny>Ic|O7$Kc1jtyzd#m`@Ikw>AJcD#eyP0 z_$KTC!hhf_7Qt3zd zn)gexb)HlkO^#T(o?HozN=)eK&9(j3lCX1igU}6E84G(?8l{Ip9DaK(!kpdb2H!Ca z&QTZ6k+Nwl7WfRG{e!OTVloz->nw2j^Mk>)R9->1Nk1Gm9*Wdi-1Ji`CG?Nj&!)Cx zqLTaUUF;(}D)U`DFX=x_MJ~M+i2RTyvppD*Cf4t{#3GPb$F!@4&Ot`uRvlmmfcVl< zrE0YT&$|A_V?RN>735X?(lU*NW6r+pME0e8(qyskeKnULB$>a-Q* z<(TH>_?hMG;<;lU^lakVXU4*XU~He)J?WO8+4RWbCa|>xmxf6O*UDp(-Vud}3?~lh z8X8&? z158V56er*~=Kt1%yJ{BAMr^{uB7j~~Mu`1Xg)(8lpmd@X1if6ckd=&7EQd*- zOgUv3LHrlO>v}cr)TmEQfdB<}`w4gY{)KgbwqR>opGBCg>urFBS9LS$l=O)zh9}f5 zMWc2~&l3=<{vyioK3;Tf; zc)<099usQL>h^lL*sd$3X6+|ca0X5eC8UyNVi7oZrt=`}RDp5S1pl}&Zj}8L=_aSo zlowJ*6Pf8Zy)%oCBE|TNU-}y0`I2<2>dEC@%c2}7NF|jZXRwzp|HE@7c@wC`nm5#W zw@VevZ5pB`w}5SY-HK&CHoy=Ah!1dPW{n5$&pk?O<=x`jreS)Wl+KeqqA=V4@A<d_g5V+8*Ad$Eg z$lE(Ga5ya5L+yr({O+HJ? zZDs%m0CCty+Oq&62r(u@Lmxe;$0WG_oqfwo-{UCLR9%uv zOw4*738JE-HHx~SIZjvS>88Z`EF5glE{Rpf6u6)&`lD#ISQde}|NB3zq8gCLBfE`N9RJ+tH`nEwYx!#Yl1C$siAjyIFY0osmNWqz+paR)!1cC1aw@~x6bvt+4SvA~U3&&$enCbhfM7&_@ z#oyE)T2DtJZR*>|_{G%>ff1Dlp$pKWWfFeMZ~zBBc0}|p!O>mcmJ+}I&Dd6!z!MtX zmTSw%lq5AC*T$IUO=u@n`0R~cZ)Uv91f7;k%&UDKa67ZL5 zVBqzq=<88p;r0K`*J|&qL$qEW*iPS68i?^JX8gUw5L5myzvGWc54}$>3!TOEY_0Y* zHTEso1hv&d+k*^iv>d(ATGw2U6ha|PDSiPKFvJD-VemQP+5Y*_F|jfUq9*(P{#Mzm zFRQ|`hbx(o@B4CUF^}bO&DLSdhJPN5jBCY9PZSk5@gShZaqy3oBr^#(;KUE}8XEh% zTOn2Z%P$3u%?HV&`%G21kie}}WBfQ_0$=6xtH`i8<$%F>#83feReRy-Bh`<+V`91F z*dgO$GsiiYfLeQXMACQt&%e)$cV0RrcX$=(vjbnN51jTxGAzNZIynBp8tP#`Rpj~y zU^l6SZ!MxDTGa{1f-#XpT3sD&4FVbJu>sk}a^vjx`Y{z(FKfNxKD(YDex5inXl)fP z1_IpZOgvm+>z8E&R_za0?sbzB|3=1&FMW>I;d&H-<}yK@+R)RTnC+HS(+{1ORSu3n zf#ZUd(1;W);2tXRrA2ds&nE=7_IS?nsnnn|kYz?BAos)bAlPo1?qAfkrNjjs6HKEM zLLK>h1ytevx<w?h>5gY4kkxgcN7#xzygK;f8fj?ycGV)YMwAJ|2vE5mt!zABZ zfrEvV4R1cXiVnt$!LKRYEh!=Rsy+N>3WqLef6JJD1Z;pHeHJ^Xh>rJbj$b*qkB*GV z+DpG~y6(RS)gRr!o?vz0m6nT*jVDNvJM&t{SyB{Vd;yD1pxWCXf<9nAv@>7Ndb;w9 z+jM*Xy-_i;sGb8nAzpMkq3cd^(>u~Uah<+Dhd0dWwJ}1yk6OViE}KS-Js1cnW-Q(b z$b=2)a9T`qN9^AY6z4Hyhol19JHpJXM$WeFMdD3XdR)cTo_9tej1O}k2S%UV! zeo%g@Qq`PMb#~U(k(aXkZ3L{_QW$QliZMTkU9Urg>h!T;|4tj~r-$E@UHLdTT5Uw! z6W^z`uSPzF)l4LohKW{-i~fdurrlPP)rx9_us8LQ>FomoEKV6G2ahON3X2g(d|a%y zZ<%pRcpZUNr{MKbn8kW`ipPz2$N#oKmV>l3xb!khDjM@j*9opN-B)`)lPeD8x+@Vz zz7m=$EOlHQM@|6oDP)5El?Dc2HM`&J!;Fq?1I;*!c7O8$c0gSMq2-fl#7%DCl|%8C z^Zii45DPoK@K2VDx(dgo+V5Yh>~L}M1f7~ai5-6LW^_#a@hw0-|IP!uSNrLlLI%bu z*9HR>wG(kjw`qw%&+?w)D~QkU8H$5f*j zK-e*>@%qr%k71NHY;v>HHkpRy)DnDfZbxvaMae7ZALmzz(zY&60kq^a;iF?s5ru*wPrR{ojZJ7LerDtAL&!S018ZB z5|MDV|0(lCwAW03C8K1)ZLyZTe4yLgv!d~b@~}JA^6YkI6S%7?526TMWCldOGz`;- zF;6^_CU9HIa!3XtU5$UNZ8Y*XA{8a~82P&V^q`qsWd%)n5r9b@w)6{$!IIe8^V~lT zv_N>}$Xd_!H>8Fg`4Qawr=oHoP(u98(`8=38pX%s=_*vrULA^mvD;PBoHYW}FyJL) zrGXRdxOL#O$*?WmkYG5=dA3F%SvbVp3JX;^pn^PDnzwu&(C zP1;8%>Y*|bSxwfQ)3l}AhxE;0u!rZ1_BK@p_*hgkS4hZ2Z_M@YHykhl6!05_ct|3( z0rJaXRT&Z`F1h&iQ-YKzJ_SZzSSd~b~?OEnt=5zbhwbf=Qbye^|nU!)m9$VidE@oGHZDa~Uq(cYct zfm=ytaO63K-OPQ2v5)Dg;JmqdGE~qh5#{6o(76KgrG%p+A`q_NHr<@*z~ckBW+Ca^ zS4DhBomWLnI;K0DRe%ROi4?Wv+kc<4 z?$2X+euu6d24qxspD#^D*?gsVpnS*Jg2Ki_61R0odXY4IzC-b(IGrNxi!M1}?YCJ1 z4ZC-ZPS(KHu1K3GuX~EZN-7Igw-XBsGkZBXiF^<<-n+d0_A&Owq0|3%^lh^DNgauO zSHts?bwU?T7MIUF7zkj<$xg4c$29&T>1(tnD%92X&iMB7F!_Q1uYDx@`@q5&`^i;M z*|uou?^mxSA=RFDoYOIjUTPOKTnIxL<$1pIQIWeO=k_4qe~4-RPW7 z#r+0La-rE?13761G=s&LK9M>4Vc+tiIEg)b5sZpm<6{%^u=B_gKQF~9n=Qo4QUHF< zISmiXi0g$y5=ecxPCqQ783^C`D3ClXg&PH@*3{^n=`>bhDWwqEyKixqmKetXDb2qm z!MfoMa7cN#hPlxneK#&b=NSia^;ZJZga; zDk~0M8(O97Z#pRggiVA*;|>M4_)x@)f-z|q6E3*OD8(PA`B((cw3^ZP3|R^33G9Gs z;Y6AS-OG{g$t=8X9@oggtLgfAR1A1sGtwV_;Wy2)P#O)ZqZ02 z3MNwst9=U5dF3aa%AIwE;;578AHFP=kTi|@v5ib+5{zK<3D=>sR8x)PKukdg!#aAZ zr;IF}Ci=Q3B_kN#GUV%DkqcHy60nat>U@x6;}M3GaULvpS!oJtS~-3vVI+B{`mOVn zU^&`N#smK#dlJea!Whz37i~K{HX>2IreI-Ryggluw}%@%HBSjZX|bzw=8%vKU7%gR z5tz=*O>U-_-H*&-IK)d+A$|*b8)l}XBAv3B*Q$UMCnlnW-J9oZfG&j6KK2{fz)T{@ zGKLLf{@se6m|Qj|`z3eU%56*M8sGMX|X2(`i6+-D4ltjP-OHm$@zQ9xY z4R3i+?|Rg1&1>Nq(#+rEqr-0pO#avcPgaofL?>z!19e&FEnPSF9sihD>&UWWOR0xC z);P4#*Zb-y-S-ffrfvlpmVc1bR9F6huHw~w#N`+)%2K8$C+ zKOQeICB(tFujZf{mL1-Zn)-sJ>m=qjWhI`)Is%}ZAt~lNzf~sYIx49ytA<%C?WRY_ zOhNN7cZ!lWr98DpdkE`%glo@~OW%dGp^|u`QY?(&5XTV^fS}3e_6-CvBwZIZ24UxF zUFL;{cD_k+i=VLw93raj#Ghdw%LcQj5?z3Wxqm=X7o*MNS&`ngAELx{ccFbOg5+vU ze=5)vfTLjya>y{ctS^TnRL;F|2|Hpg?0}YoSwuO_Py7yfcj&XdL`%Ce6S^KgmRC<8 zTbg_e-IU1}tS#@BTXZ~Y3MP#uv2&Doe$wait8hFpVUx$$`}5WjEV^K*?vne%9+(M( z$Mp9vrB=1x^1Z;j(CO$D8A*Ln z29h#7^YO&*Sys817ic`rW-*0SR^(@zx#*W;z89r$t#rE|DB4H6+US=JAt9o5Yv?a)Cp{+~@$^_Yeb29Aa5r zs$@LdM)mfy%@%HxRak8}yjLcC9Uua%F+JPQ3S7CULOcswGbg}kO~spSd)@79)%O!P zaqAEzzCfl0iSWi$pfa1FF6(R}K%3!^Fruyb*AtR5%_MqKoesv*)Oh&IpP|baw10?9 zQN<(|6Jw_20$;x5;U6f&RYCvLZ!JcoR0t#n#+u5guws*hIjj~&9?Wn>Yr{f|jYF|7 z?~1m0e6Ty1*Sqr28Al}7BM)&dKyF)5{Q$%Auf-E(?|a%#p^f$TG&%P}+*C8hU%0IF z8#_VO^ogKgnVpO`z^aXdC;?5l&x#5hDac~1dHz33bwZjV6R690&<{O2XPc+1N&Ze z?jKylGR4`3&9=rEXw(BQR?FQ@1Z2(6BdRv{i9xxj!gI#9&jSWD0EIefgo%ww@ z3IIZ3pxR}Ogi9F4@9%BX>FajxrX&3P7MS>bUe@&AI%HZnw&Y-4C#SemCi7QLAiT$n zlvHLvV@8!1ALg?8NssTw>02K6$@iRkA(}yc;`xRCH(;-nH~J^Q*ZDKiuh@zjEUNGQ z=`;)xje_k&rXxF(i*L8~ZOHY0PSrUyqT{Hh;~cOgpf!RXupk?2DSrC`WMO$o?dLd- z48kBcBGJ+Jer?!wAGBf~wf(@GB&@+!533LpeHirDW~K$++|*mvYN4EGh5S8GxZ@}^ zH_4f7m<()3xto*+j5?83*=*%QWfW)d6@GYeuLrTp58G)A1<*N-8**0Ps}E;X#L0ZpTM&*zS5&e~;;W^3)4i zn2!WrNF4r;XKc7*fP1J7RIxg1Y$m2K;g`atW^&MAsKcV!OugS_Yt8BkbU7SheGoE~ z*?h^2uV}``XCmjA!cT$x@@;~+3n7~<_H7cRc{rE1`fYlnOt{Cy-<59AJNZj}-i2bXFs)&?K z!!Vx~Fcl+*(kOkP6{GcTwZ_@q-2kOg{t?bhO|^{dn|h7yAPpg%6nxEYUJc{?f=qEkIEgCFbqgl_A|bw*J~=KYiA-&9Fh z1CA98hDGG(27hLo={RBITW2Lx!I+PR3bilmU=SZi91baHA*~DNX}PD{RoidpZ1naD zM+i&XmVzl3t!tD9k#zl@gV* zZq%(RJ(_sCR#eBSLN@2);rY05Iv%G%zX36v#m(o;wdzSe^nT!novhMKk<+r_b^S(F z{(Ev)qRq!9OagyWA*ai##&{t%^A!^dA8a+p!JWB#0%j^F$8{fkgwFxF(>a9qxfZh) z1)ntHB2VQ1als)Ew@)>*+;%zYC_gAKZEe}C4u^&CsFdOwHF)$LoxC+XwU!8n?Jz5X zKN-4~PKC9w!MAkOQR3n4{cW}}69%?hHRSd70wU+0_A|}av_27gV&dH1AfW^mL$1`) zG9_330nF)1-K$psJ>(WzRcLUN%-A3ViUtj?5I`RSE@DU6lyvsucRPWYWX?~}>HN1~ zZVW;RgXkhMQaAMy!hqltRvD(=7jYAXU>+Ow$=Z3^SYy%@PwtRwlID5MuAyw-#fqljI!v=7F# zSCvir7FSA^rg>NmON*?WVnsEu7e@WSBLsuQFD!)u9hP!dQS>xGlV<3xg7+{qB%bWT zUu97vhKM$7(Z;}<1SmFHj40N$J!?^NZMhnl*_HeNdz8)EeQ>fIZ~tV#=@h~tfkO4J z#n#>=>H)FNP4GFhdj^k`j^Bezx6Qm`^ot>{Z7h&7ndOLQT%#b=R6>P~zS6uu2G0Ab zqv6sCOGS5?pr+wFg5QVFy>Ap5^M-r>>_z{BVDulC5(4SdmFYireF?DEPv`j>@(*BU z8!ebcJXC#N6Ir4sQC?`fixg`s6JKSZQKpY*x?P7RF;=Tvi{4*o0Q;x;=a3&s3XKYT zrAi}EOc%pzG4E-o-VeSqkwGh<{$u*$5Ba}z>&=6`wN{Fww$J>piPe%ZQacSM{=AvW2bt zczE9y4$W3~n|8X#e$0HQ9>lTC^01T$b+-6r(8zDvYNNhCWz$`T?5-M91CqrTwflwWUHh)MONrX?NO<7G&RAlfGnVIo> z2{wwm)h{a9&PlCE&3bLrkH_zNZiMP%BU?Jp-+*Aoc>#s3;iYx= zdS1|OD((-zHngz6ji{5~tu;8W?ZFhI9*CvGvhmiN%EREg&5esZvGim04`vAbF!?Q<$X!+g&y5Y$8jGl8IW}jx6jCpWU)r;Fi18 zn!AcA*8Io&9ZiNRZu{8WaI)-oqdeN#te=F9z_9b89RySG@L&S*$Cl1fjz}mEb>ui# zp7BDP$<*AGCUP^FVVnkgWAu20{_F-Xki5MbGO^>SEn|qHgyK}->1#*9)jnO!%~Usi zL{}|b4D$T2R0RD6zfHzRQvrC91ev{JNJAUj>mhA9Z;FSZR`l#2lJ-KZflX&JO`Y{dEXK0qHo~Wx~YI=$7Ey~MNwvPuXgqnAyQ1?#U8LvbG5OyNg&loDDO^evLOSqGXL1Qx zqNILa;7BUt75XMC2#}Cf(KC1O+-%!!|3hVx9>vY;6`_c zI=r7=|9h_rpPRkrIW^OqK^AU>ZP2sp%D0ef&F1R3*3b{Bo-c}Z-rT3rqx9P-Qj6^( zTLA&r96moV2)SNmbvhv3Dg(HCeE(Tz^~})k(6Y$%&hf(lnz3TR-lfkBRB6$I9u|od zJ+?=vFjivU0-k)%2~Lc1ja*Og>?&dZ>=Uep_m3^SfMGnxHcOigvdQcl8a8 zmr<|VDcgr%`S(^>Ue0p8zN*JLQ^XCQtjBzvQTMKu$H#&-RC?%r@aIG$w^eA0T|zJ& zpO;)H=)__V?`~l2*u3pGGnh7?8!AN)?lllo7kb4Ha?HPjJUlJSq2cwQkj38ZzB_3r zjY|Z+Bm#9idCKax&A1jCkzkv{A+7RlAX(BX0byW3K%KHqm~-qlZkGzEK>M9}nF`e^D5}SJ0ocu#PC0s@0buh3$lyMHZnxFg6Cgpg` z8Cjm3v7b#ylWNLObYil?NT#Oz+jNW5n|~Qu>85Z7u^Zb%r#p*5<;h1_ebsQN3*MR9EFD>aTnJSw7=SF5a6xI(;{f@uz$$d}y8lK5ZRLM>K~Lr$TY6 z?16a12J@@mw#}OK?xqmi`Dn{S2yKhM2yX@s`922bxu~!v$jAkU_3}u%4dv421{UK# zle$NM;DO%(C#%GP)4x(tq{z#{k-=nN<8rr!FYX4>p_e;3hlU@ooZb4bgFYmsBA>d_ z5m8V@dd(V67d3=Y0~~8p3;^XW>`uXT0~E3viBWB6Ja0Ry?RP81k&}{{LZ6M3oj872 zJo^|^Y@`%)Y`(e#S`&(kL=RfZCwVRd*nnlYyOJk87wO41rP?9x zBPRxBp5B4NkIGs@uAD^9&NKOpQ{GE}^g1N6vR8tJiuc7y&hO`zoJvMye3Ir^@DduPVpoq|rLJ#zgx zRKEtlMfFQMD`kmXi{Yy(;bkKlfnq^M)(wt zekg`RGR>S0;ZH!#i1`Nc(0h>b>03g?K*?t{P|gGK`C3hTegBNlZH}mx*5^=EmMB>d z9CQxIfcFPVTIO|#FF)MN7#hFke6DTV9F3v+c7$6OuUmXXULLZ(FV(h=svcTZJ|)YT z*RU^EFPhnwY>aiy-mZzBIUnHu-PfeOuHd%Ih0wr@XSVKqx>$1QNB`J}_E6qcyx~?9 zH+ytn92zVx-pXb_`}%qbhe3}-XcSJXUq9Q@DUga9i&*~G+R_$AIWik(dci3E>yj%7!~7CliIG-S)W`)2FS> zs>6~&$t=m0r%bfr>Ek$x4kn4&ywv8a`G#qW+KSLo`I&Ymd9QB7h58as2$EdQlGVbX zN*e4JS2~V5{=E9gY2G$h8(l$U&y+5Lh3lvzawa&pz>EI-00dgK5cX zyJC|&y1_%0VtDTbJc>+||DxT<-m_d3GrXp;Qn(FHl@$7)!i*+^@6ewO<|C?64H6ml z7ng2LK3k*QJqt_nKv3DqSm4~qs~#CJCZambOa#LY)Eq@_$xwo%fV~m@;&_*2nmK)B z{v(DFU*Gy+LcS6M)~Ju3bnvHNneX}mADF&s*2*q9nQ=ew&uNs?-y?RTn@_t)hX!xn z>9cS=YRUNI-i&TuJX7*oTk8uw_XDVE8r*(Wc0h;4%*&^{58QB53`ll)n@hkpuGy3R z{?7k-%p|xKW0<&W>hh_Q$B64bl2wKj85(bP9jX-*|J54 z@pX$({6Rwlj8A#$`SfTKQHJ+^ciBqMM;~_jjOxhgoLl)nE&yL%b*S|ZI^?QBc2%+| zlVCG{rkBN!aVI2Iv6c! zy_xZ8lh`;kKtQ^tg~n2zy|}|jEymi&A1WV`->wCgl4M)9x^8ecsrP}o5Fr;lwPf+u z!*TM#-1s1}^B8;VP9?F{d_KAt59G+|r^B0W+C?8EXB8E4;K@lAkk~N~P zkN1widnz1Q&+T=g&t#a38~MHX5s@cSL@`_|CYsF{cuAO#{gksKKZ`oCaCE`Mt$VJ9 z@hB?kPsTVsAV}BBS`ZjA=nwQ!#B_0ULGsW2o_q+n1SyD*%RX1TN$xJq+%BA8f= z$r*tc?e|y}Pp-D(y@4DeMadgLMqpJ2zj!iVuj;yuwxW&*7*E0$mAxd4|33iPKqkM< za>19IZq{n*DbZ4WK5TXAl3gM?89#GQmjQZ1^gcZ6=0V6DFW-6?3@>E8D0aSuorXIl zpA*UmVI(K9x+tU&Yz~UAc<8}j;I_N2Q03enJE@+qFsA7+FyGI8GhMaG1Q8Q)D04gc&V2;T~rCi4$MZHe|!wHTu4FdRtutGM`Ue`IjekgyIipe6|RFv+fSDu zdyMj(2IGz6WEm`5&wy(;5B{hP+}6%iUcuhvapHB_o;dK{)9T&Mb)V-h`;?A;_iX3< z6OehI(!5<`dH2seiJs#ivYv*(Mo1uGRG~CAU!Er}6j6=;Ek9dv`Jm-9m?dV}I^sdAA^`htd z(eripd=I+zMBg9bre|umcz{MBNzn z-loWcX*=wpt){`^E26O^&@nwN625%#bzrUTSYtREn!{Tl9QN)Y&aBRi4fM)RLsO9U z>T)u6K(;rK(-$h$KutZX6kkA`h*?~C3TA2AY9Y8p>f_g-%;kz*!!`YTB(jq@E0sh= z^G9cbdxz598iZ|~*Aofvn!EEt!tuQ5MLZasXtfhQ;G!Iy?tOj75+678+B;t=A8^49 zxpUy;t;b)0AIF^%DSoIARxGU^$` zbHUeOJJ>0B+kT=FSA(##@Gt07>c*+1%aD<&T;G(2wo+_3JPWIjOo1^g9a*LfzbuGg zgcBE^e)N@Se8mOlP8525P|B&)ejik_yQ`eH2t7-IQ+!3J8W>WrMwm7_yni z>3vkTDBkcsMhwgk8gM#+iHp$8*Sgi>_^!miD%-y?z;^p2WE3P{(W`)%_(7m*0I@aq)Ae?7iChd$6>6!N0hif}kXHI zJ`g5T76uONg9~O&6Rn`R^T)jbqQqMYJnHxgrvvW#dhk}O@H;Wmt;22O({a3&$8n1r zC)(XO-tPbDbh~(z^v%H3;h8v9Uk`UZkb^Wu#RXX`LI?|Z#6{9(jL0P}G);4rvQfuU zaN6}qi=m-eI_JdEl`~NEi{ug)PI80%rZ2ea(0)@nECUf;<9sa&KEi|Z873mjfQVHk z+KXBAmVs`UM6fZ^R#yu4+E4<+F`!T6bNg9WI@b}ArADCh%*!DNqqSf|dpRa6hSfd->knUr&ks#T3)cr3#x$7wME7-ls6KR+U~)%L%!8D2 z++M4MuXW<8Rj6A-=D=J!B0-nm$xlx?Y2@mgoS}J96w1r29 zlSih3!vIq{veNzEOA{Acv$If05Ee-Gpw5`Yg(ucRlV!fWP~oiR-KMCUh-n1_@4|_9 z3*fqH2=rOWQ^2VC?J3}@8$16Hy~*~u1NL0-b(3>pykQCqBL^XU)KIuu+u%B0568Z0 zSXcfC=eqi!7a)JLIUmwW67+630&}}8=6$hk?&z!}QZTHk1eIxO2_Z1tllp=yuZi9$ z5dmS(p@cPvibA>9?isJ?yEc4NeFx6DC31m5qT*jWeu?tBB3PUm=#`%hQ%3CffQM_^ zg$|;@xM=1X_~yHckS>j2h`CgPK^Be;8zZP#5JFUhg2E~~#YX5iIEQnhm6tECAx+0& z^6(tw8YKnsYqlno9K?E7H63d~)KyN?z$)l_C$^Fz2EMa$+_80+V(`V!%e1QaLhcaV zicVqCWf|Z@TL!Y1T!8Fr%lx((a77lV_>>=CTv@Fq2AGX zE2sA$ZOsAX;`5*a!&%f9X(TQLQZMcz9JZ=j0F zb~vQ~&u_opD)joGhGW!htfuZ{NXtefaT$_ux#6y>iC9!bN{-HnRvBXA;3<+dVW`Qs zP?i*uHmEb|vziDQB1FrH$W6FP;G%R?8G8KJztqJ7I~>dhJWL=cNY_R>IM zAx6gJQ_<(mQ*m%^Gku7Bl||xATDWxI%AP+nzvdIC#woHunPHb z)$5YRdchxbO8y$x&+IKpSoqRw{xwJ|9*E|9K4Ebe-s2?1UHGEgeG<8U`3UVd%z)h| z)`H?L_*2Zl?xv{LoUCyd-Bzs5HMNwtVaM>NF|Jg4M#RLzpSr|_)8!Vrc^cAUtCdsJ zViW2?#8N679=8TPWVKR=pc~X(O_^_R1K-vLzP%l=%Uk#=NACn;=ut++v8aZHNUEt+ zk~XL_DqDS`SS^T?drTTwg}gL=8ClH^t-@_;4P04}xC`UY&+PiMwxI(nzC4UJYv5f6 zZKLOCA0qqGvyio5qF>C7-xTi9mskJg`0N`&f1_xPA!5fxvUa&3fnj?36Bu{;SLU=$ zAKUqh3d;z44kfIC>+w_SaS8ApNys3PFYmQn}xq}EnAM$@zjKaBNk$H-ECYZkn>->>EARB$J z7=zxkiiO|9uEVp8?2)}N`1%s$pEVfzoXCBf?lvcW+9>@i)9V`X;#&YJ7PcL1j<_a7 zq&)r1uTft9rVz9lahfT`Sv1tcb?^Y($ErKyE!@g>DK&6Bj9g^r#GGZonMJucbwF0n zs+-Y}w3Rv|mRwrzeCkVEV+`>Y+>|Kn>{4MyRaL3d9G_$k@owuDZT z^O82Y+fX)qkO}u(c?w?rWFMaYU^iw@8;o;L?~8x_=O9j;wBpo3c^F&l-wrzW-k+i2 ztG|nm?Pp?VaTg(vOZ#{i^0pp^<&HAJHDbGTA~Ih5Hu&pMAnu~%Z`UAibpNhrk9=Bz z%0GS;IJeJnBqq*y@j9gCbo<4(E&dGkt1APJ^L4YB&l-%<$7gpP<7l;E!-F59ZGT|5 z>`-o|6YBt+EBzJwxkj9BxLs~Z1+zlY;dEhbc`YuU+CTb1!XQ@fLJGXiCI|{|?Fu!a zj1emz{`;9+AR|H-#fpZct<)LKr!^t07DVfb=-mgr-2Gx>#Lf9HsAF>mn)l9DU?vqA z93lX!hsocu=aApuBrqPDHy-`-jd<_tD*WYNyRd#&E%LI`F>iL@7hLA)r^0Za=kpMW zQNq`v(DQCS2FrlowkU1$(OU+h9K&l-I@*SuM^*?{4BOZdov{~E=N4HB35MKrM#$s(oIlb}SP&B)x(L0_9u)Gpp_lphTS?2wz|^O%Kt{jr%!{C|Gatx$ zad7X$A?NaCRG&?Lf7`6`Ty($R)2O)hA{yLB4|fX-gA9@H5~*(CVY7rTGA6`T49Lbg zqx0kz7G8!aF=)Jr=n~48o9HAYj6FV?f;pWc%DQH4VpksJh6TA>5W6|I1X?(TQhW*)cM%nak9Q;YkIUg6oFDhNixJnJ5!D)o%$X4J zaU?MM&KMbdhc36C|G>3}hKTPkLP7RMj4;)8J<(y6C+>o*7ax2bc`Xa2(HD(`Zpbij zIk{9$Q<2#kt-zW}7hc)wz~kT8@z7T`JiECAuYOsLrpCa`6mowkEGoPtW!y!i_vZ;? zwIDhgqW?hf25lAHa&mze;+9WLur){z6w?}MMNNJe$53$>_HDu2d{;Mgelbu1o43~- z2#CY*l0G3)lP!z85F6KT-=po&ukpS&%Ew(;cQvB@n0SUt&guPv&RzHAKG9>$qxyzi zNA>5sC9PKqEz)aE2}~W>-GjsH8j*vFL(SN8SR|M_PVggXw zHhg*1i32TeSUsPw_EsAl4mZA7e-N9u9)n2-jOuH|IivD0WkinBqQXm3#$6=0xTufe zgCS=#dKs_>DUxw~?K#?7Xar;pT_<^G+uJ+9x3&dr_l>i-cW$R8hvG24-drOxN^txx z%5vyR5%))=>+qxN`!>k9VW$hW10QCW@W+LZ|)2NAtndCP zK3C5GOwQ*QpLjyfXJ5|q4;Ofl_?W(X1=PC;7))fm!0moxiC*Q!?I@hzYZ5Vi_>C#P z4o-A?kpDBB@0tVG!HLcj@L>@Cb=F%^`^|1R91gfT9BAHKgWXTBfvesc44MOEjs4?Y$W>iHpV<}6p+d7v3N|ZB$3>oCzRE~ z-Vs~3J3gvnYsx^P!WrbPqM}+2Kh8kmnQv%k!4bfnmJWO=vcJf8ef#geL;5)-NE_WL z^cz|_MagZKj_iuF@Wx?~MS}u7FDUIVhz`QB|ETOBBD(Oi2(2GwjZ(J z$n)O|2l}0xFl(@s*I-xqYQNp399Ord618g%1mB@2UeVN}z*l`$Zxn|J*XRkkMh@)h zw079-PPpBC(2l57&C}u8$CMZTB1wg{{;}o|ZkQRTl0|wQbOj!9LusfoR^{B^$m8vu zjxP5{PkgNw#JHhmlmtm@Rtbu`kZ#IN03_LdJb|1E)nr90WxwUX9wtrd`0|9PXC_J{ zaTi3(!neBIBNv@D5dSl;M93WJ$#p*)jz8Qzxl33O9pCPWVufMkfS-FfHRCS)QMcYj z*fD(naEok{GKR?KFj`tFBa@e-@+H<%Wxk;(ZE| z&NU*{a*lH%_$iIBwxX3JNbhtrk;8 z^^TW2#1|$m5(TF#SqtvFuFV4HKY43$E?8< zvFgYq!8Ou)(u%wSY3^YX7$@G{gL^J7hA~5i@6H$?R|#)4;`7b5s65df#7$Wqa$srk z4+g&S0!>`klP(=KtgQ7^=hMx5(i2t?;iQmoHN&w3Zm{gGudoq9?ioOjkx;b*6?=!E`HZZRyv z9{p=w+b%ohRrJm54DO~FjrP{i1)_YR7>vdL+#UBcRcf%dJI9iK` zA=_QiWufr14Dg{X1MV#?XubUtwBQryCg(yoq|c;YV#<>0EnEWB3KXcAneF&qe1sh;|LW z*!I;S{SpoinFQfs{Y>QW4`YD)3Bf&b&&1d8=!OS`=O_k4uh$_%VwMRN*?M*LL6i*5 z!NELn_oYmYTa|nKHtA*+Sm zrwN>ftQKC9Dq|$%*Dqggn&WA#l2ACTS+Xow3vLkyFFn|i0y`Tkeje34J8N#iW8eR! zOIY+R$d2gCC>Cs)Mz}5vQK~)29iAK+8LZDplw(AkMIth{$T}j*knvfF|7RigLS2#I z`#wr_o$&`EbB%<ob$+!b;{ zMZ8EZGub4x2maztrlK-N!u+k2zPIu zkS>vCnbJ`CI9o2LzJ-ksAI#}X{rAI=UlQ3oBrIOq{lamqIATdI57ujM#ox$QR zym!DsToPggyCd~Co3nZsF{5I=i=afX27l{Hw3eUHyZ5w!IQP{6#RH^|BY}GTG!#0Q zcI|lcq=i8F)A;)Mn65kgy!^;-8oVNd9({8&FtNyt;z1@1=^Ob?90`d+LsBzij+2DT#TYKk)Qrg8&s=x_aZNlfzKqE{f z@1OtvqWf@xe@LmY9@T3Mar*q{jQ%z1v(nL;u0xw$zAu-0-Dv^adJ2rDdJA&%jFMw8 zdO|^;pKUz>Yy~n6di3p;f#H2SGg1chHU_v)DyusM#EC{Lj-RweY@HB;EHGYI2zm$$ zFZBC`QwIo-{fAnx`ul2Z@&vaU)AhJ%b_A8o)FY{aI)h%hJT8%hMAmMoRPRE@GT>6M z@J6({P0%B{+W*vVWY}D3;(}r<+Fa^dDa1ILn~$7f{UbjxMUgH_V&9LU42}+$tl~m& zjp%MezWY_b?Y;toaLLpFjVv06>f42fS_p;1TC5?3MNi0*;k9P0{o$DKY^eR?NK%Q5 zP%#$?D=y@OH>wwRK`xMbdmftIIdFr6E=rS0)2I28(^B^}i+`RQo8&3OD-{>d!|u{Z zIwgal0!lQ;s^iWQ-A)3-8-pQNe-gE!YNRbE+anSdzR-TNXABV@8YQW^qlS7{5>{L^ z?KMS{C?JmXc*>~haHgT%VT7Z{WKvU5dqVw2j;y=_!{+`u?7n+i#Q&o;Hd_VrqZ~n< z#xx!J^$Kqt;k8n$fx%D#gO0=SKEeI|P8W|8%{Dk95ZyKUX&4>E;CaEYRrsN)L{imG zEkRixWUcVVSHKf9L9PvrS|Fk&;gTmpA^OgE3TGwN3yl^&Bf5Hj;czT>)+^&!ZXiD)*!L2VBKWvZ9&~4b@lD&-#@luWc~BfF@CVLDuHbsE>t(k z8=DNB?rS(X*6L~$HDb|NWCVmr+(FNqz;R$@Cnmh=?I zFNqaPdG>Q;TaF|9x?N)3SHIYbCz=d)s+q zCZj%BCN9$B)$6tuX{-|B!dQJTfW9XN{krnYwx++)jo{e33;umm`zrm1&&1-*z&QDC1{fel1Ovy)!T&o0303c&9P@xmkD ztz4+P=J9i$vbV#iF8Pk+b=}`$VX8vy*=6W=K@}omp(&@P?S&%?LJ7ZV#Ie8o^}GUO zwc~8Tt++kX#l?J3n8Q6A=DT1t8nJjvP`Rm?)X2PM2oVg!71+Ty&kBX2yb$2$ZAcIq z^cX4!&4tQCsjW6`pM*!gTcpgcoMb{hHP$eZ3sqE#AXi+Z_S?4BdkJbhRH2-`rTo-L zEG{kQx#su&8``$=pFbloa#JKjEe8rdCKQR4<-3^nNr_%C-vy(w5aPRV+Qe0QxVT&J z%7ynX{Y(OZPWIk8KcCtVL(mt-z3YF3Ki>W@?i_p>+uP4#&^9Y*3t^GZl?zpjOjfz6 zU$vN?3*o1)OyJQUojF1Ub^snx%WKR1w6c^)0aCgYG*prrmwr_pjT?|ihN07l%U9Bz zkipOO;?!q%NPg}NBruNt;q6!nG2A5o?_Ph|Y4IkHBIxmNa@&6RSbvIeyYAv95FZeaP2Qh##N68B>YN%4*(~&}jG>A@yD@ zLSo|Zsd=2d;Kk_)AKd;$;nmz^n!5`_s>=Q3ii^5$Ke{j`&$#t`Xe>#jeC1tLheAf! zE#gg*i~frheDz1UkO$-FC$7ifLpP)K#%(}k0=MpL#>hf9!r=raTo>1OZpIJSdP}o7 zI^o91gdZnIeK<4eLnxa6edah$RpZv7#>hp2Pm5IOpkYe_Wr~Yv+=yr_3WHvJx`6x_ zQP*cN|Gn}*hXeoqKD6F&+0xHfv;$X^c#JQcKsm)#xAC6vdx?RNMb36OjlX- zJsHx3lJQ+cVhU;p9ta|G|C0#pcOjxTAlBzV|37?C@WVTr^hG-{GO7=KE@yo)!6)`g zL#Yv~srd1QqJSr-gfE0rBR$FeeAIz%VnqgdG;UkD53SbMCBJ%l-lxv(K|I+jsA7fE zHxwx zbhJzDw>j#$zeQEhrWSi%M9MQ9`a?D}!3Tr3@Ifu%&fk)I=-2)MhtGb2Pj5)YcugzX zvxJ3Enu;FyOnHAxB1DQwoqQLOnE0qi#d!RAq+Xc>XVgQJN+C7nM|9Q)Lwo5fDH2Ld zSSSw?yge-jOnIV`%BJOpN>WRS3$dvY54RaTS#~Xw-+9p36G%nMJ5kWI5?`o^Z~bl5<^M-Y%ofgruK!>E&KonO3Jlw} z>NTX1ng(dI>0mc$`GZa*D|}65d$kB@b0ah0k|}Vh6m(5GV5kkrKok&=8R0an`bEi5 zR4EWiB2nYPd5a~frTs|`i*Ru<&h5fl^h1YB%gsxP43B#;O7NT8pA!8#@^Qn^cktB6 zyDkwI$wV?8ohU3QGSJ1w>fY+5L})zw*-;+?!8jj@AQ9pAMR0m*LD1t#Oz=X&YJkmV zgrUybuFFC8E3SLLMMYYF=VD4O&KfDh*om~j@J5#&1M&hY}n^1jPp`KA1$t@Dvgv1zYLhCXWs zod%(3ZQrL%NouJSVz1MHQMd5^5pK<$=tw<~_irRHw)XrFetPC3c=p0J_~RFkC+}Uc zzo?f&3}(Yw?Cv;>1HonwLglkG5>6S-{1``%U!v?e%e9+F)rSIs-15L~?Xa)MLpzLg^u9=46zD zd>5rsXq28b>p6sC!cNX}+TG}g=NA`9pZF>Dal_EylE@%#yX;|E->+T0ui%9@Hx#{3 zr^ySm&4Li;L?{%4FWrQTjF5cPKw#vc(pW79n9X`#P|#NyA`@E_@xo*zdymxp8K)w1 zMe<=uK(nAlDke|3JD$?P6={K8w*V`5v0+y9^mQ<-e!k%2NMMi$W3unJF!k?!d=*G3 zY#&m`&^;kdhvX!=egItZWj=BdJ0!wUmuAWvMNf+nMjcC$C=I%jjw+;bL`X?0(PkGO zy`a=c@l*OD*&-ttYvX^G6N-Wi+HS*H|E0M^5)@n8&tP}oUaW9FizjEkk8_cWDG>ic z82&&M;ZO|Wa17BZwjL+rC3Ofjne~g`8?><0;f$7Az>5pDm^nRD;!6Xi!ZpQ^aLM-} zOH!I7-h>DjL5s!*EmDY_>48B&2BZ7>e}!}NFwQ=5Gd~Hn81^fA<=qiAqSUBrxk(JH z;QbaPE;REIBxb$PwhQk!MQ4wui@;G_wx<7cJ;o4t=)S|R-)MKCjOQU364Y}g;3h7LCwK3gd;Kj zZ^a;?kX^Y#CQGE#8wLa2bPef~kdw^bt9!piwb2-p;2bd|J>nWfl_H!pVkYH;Q|p8N zgdKRVu*XrOt@WSXkICWUQ4Ghn{PRWXjarlsa&0BY3l#tKo#aX$~onzvJ)P-zX|5Jn_;E`!Zsq8Pa-ZFe*>x6U@Yg1UPd7 zT1WX~(Q`>?w3tn{!1YrH5X#dIuLu;y*zosH!g}3ulc@f38*J;lWM6N!5qfne7rNP5 zSpNM#!A(cNrINhwLMxyImBEn0fszpXzsG?HDKWVSY z^J?@dUSMdA@}Kk~Ck;69XL~UD^WPHv*p8i#V)NG@M%!JB)eZJ7eX_5w76?7~%0+bj z5V&}9QCyJkVxSeNfI0^$F=`K07YRvsknciF=Ub141*jR-LsgNBTB6}n&^Lvlw?_Hz z<%Ikb<6rB?$$$Riyd%?#K@}wfA9xUJ{^51Bzh`aT?`OWLR+Za=hc{k^V`G#6qp@*yOu5S%Uvvm=05z<_92`V5eKP!xkkueaSb$VVguW8I~SeH)C_ zZU#hbJ#yy*BwjQalW?svoJ{L+UM}>&UMMtw9M<#@CcbdBu zgNbLQFO0zuh)xa7voch2+`1GD<|y>W7{Y!N5(#;0rsp1Qga61EFnI6Fu=M?`Yi1 zWf5xZ>~;ums5P${LIlGN`_5(0AyE)}mAI&KVB(^Nn2b?4ZSyc|cJ;$O-Y&QmY9W7TH{r(p0;>d@+OyYHFw@1{Zfr zOuh{u)l9;+4AjD7P=)Mu!Vu6&yeLD-TZEX1t*;4(QNv**z_ug98yX@=wSTE9wp zplXL|H_$3X%3^``ukVHB=s9SQO+Yi|MbfPNf2SE=j5i84TXf8Wkq2)u&WkXmAXMm3 zDu+@d3t?g6ahBVKo(4U?($v&&D7tLYDnnjWBQByrWtE|dMXO1oMdw2_rN=_df+*yf zlM;?@tLDq7C}x8ek(jcsytxglV5XY_)*=)-VTGd1F<%b|ElEW>HL@@z?Ehni+l)B+ zp~D6B@5CHv9DAve?2PiEPwXDHAC-eq6GOY!gBFb!+En>hP^~wtQ_a4yvgS{W21IB{ zDve+{#a*8 zMk6A$B(=$;g;_8Be`HP}W7um!IHWjnp=>v}1XPn2Q5zH6ocQ?_mt(}%0&_fp&F3aC z^x_0`^TMMUwr%Pdv7Uh%Kq<+0!C+K_Oi8K`k4&50fKj)wJ`UsDF05_X)QI8?Crn&0 zD$7E@3Hz?zgoACpOV1P1Y4O^c6*#o22UmkOF>2PG{0AB51jestHt-8siM|+1Idi~24u(Sw6 z9s)gP?BBKqN87p)EFvl#Ef!cTh09XMHVp8$t~2B4e(fBr`&|6*?N{^`d`vyl$i54k zNsFEqc}kQU1-CzrxrO?#3=mV2+R<#lq(E^Iffa7)gdvUyf6FdEf&5eO$>HI+8?F_uH0nQ9HbbNt=6klZ(k@U|{QJDo_~xd)o| zma?}irX*EtY9ye!3D(rJWv{WGP*TOnr*9v8UIELH6_yr}k(gbFxd8`8yW4THt+Sw) z!l2jTXGi96bSj8#Yg({*unE6@+iL#y+$$6K&U2?RBT!r{WdDPtAM=a5`joU=WT#Pm z7v2yP7gDLF2R6R3ANuc{ht@R#m}U`u;tX`(_z1KE%P%s-BD5scX%%;9pXP4GV4^X^ zh1FtM5*Dmtq;jymS|+{~Hq3T8Fw)+Ra}H<0jgf!CY&O7RH7r$qgc2$2JMP9Cr{}SG zWizf^=fHb*_3*cMPI>Ty=g#1bb1u;f+`YAWxlZzQ%#e*KEV=d>D^EcOE}IIDvqG9N|E#6=tLQuWlRFcafQDYBy=k>=Wu9Xwd;1ylmnhzpBj0k#!E1V+pMpe%G*5!Y+sZLuL_ zHo$GOVb*3VC?vp#T{XOj$c;{jfkeiM$pC*_*KNhNH4b#PnDFrrUWU7FUxTM#9K(|@ zj}%RrY#wYa`}NlYjoj~IajI#9&daVNQdTQ)^(tu39^<1JvA55bEiTBEO2-MKPKfV9 zk0TSpx9!qgUvqI0Nml+uAJ1z2t&kZb9tEsHcIa%mR}GU<2ey9;1KStB|F>iR7Z=Vt zVBi&M3fcdL8lCL88Jab7(CiGI||GTy>cfD?82j#T!@h zx7QBM;`={6i=z|XWsiH;aQS)NdVtLtVblZ3Yqmo3=uvRVB;tofoau|;55-}$m#!KS zn;MzX?m~ZqY1S~Cj#@EPn-+0f3zut3fqG9E(xswii(XP>LJH%a2!8nLBwt##WmPk8 z{=8~)JAb2;$)iu6!q1LOE^T?!YDZPpr3BcV5r)!946Fdxs)NRp0xtNGnDs#0Uf%zx zKaxPJ0C7RISapKM#k^(+5e&nK{Yu}hWs%70{}GKP5RWIJ)73N*s=5YRQ0vHbr$M|4 zG8?Mqu-lAiZMC7RyBUK+?da)spsn48re;&sghe)U{uqAx&K$n^%m@yh_3^pn_7)TV z@b1g;_*ZVghprjK4V${FzOGtgWh2-bbpZG70dPq1(Tl)$UMzdT6s=1N?Ag&NvhkXW zyG7!v>X&e+<|V1B6c@Vm3#0h#$oWb8ZU zTBz+PxRR zc~gkKFarN&`(Yd&g1$rg|D!*W6jU`r|08yj4hvyn5xxoSjp#{!MYW$Se;&UYSHx`3 zkd97`s%g0MK|FHowxyr5MFd41^ad^OktkNdp>(nkTBl`qaH}Mw?X@{Yry^WUT~=t0{`{~T>tj~I=*@v%mZzbUO_M-tR$7_ zb{McQB}`m2N@^sVjVJ-;Gcx%y&^4 zNVJhCR}0Bhs-_||xo0~J;1IokADYX&Yx zMb`8${@xpiq1h@tPu!^eE-Fb!lU|jLx~P12#uu%b$Vfi++LExKuVFgl-&{Ip8)V#OAcS(Gh<@(z=vRD5pBaZU*eySyjH)TBF*?#Y)R_fcL`+Scx>^u>_wV zq${p$=;sB01c5*lElw+%9n$K;&3sReizo47!_cxJL9$l!5}rA`7)Ff55=f-iNM9(5 zU^g3J&}lL23oREUhbN0}|M%{^9JlNeZcJsq3whD&G^*_YN}rV#P9x6EMrty|j61ym zPOk^2OTzJq-LUT2Sl0H0mZTDGb^}J;!bS>=bGxt>{m|h;S?j9@D3W2~g0)_$Y9kj1 z6tE82vFqN%W#$7o9@<)$>$lpBywS)#=SL(@XHF6sE|(vHKm?s#O;t<%kRTbwb+~+R z7H20lOOso(8R&E1@(q`^AdiIOn3=sOG&~CtEch>`X(nbC_^%0(p?K!IkQZGwhj7#Y z`nGr1m<6iwnZ7xf2~J^+hjon`W7`akLsv)oeXj99pJM zaiJOZds6#t3RsH#Y_UC6x8efn6M0*Q9X|I0g5gBot1U{IjE=a`-eKnjNwr9r+R@b$ z$JB&p*}B~Gp=GNunsivP;$j+PMS*on87t0w7xEFUVw>z*QLDD;e7_4HcySRwKMmbL zXIb0Jl%#S31Ywg&%TgnJq~g-oZ_!0+widOM`7hh6#@E?x`Tf#h9MR@cw(0VrEYq9o0kcUiAm`~#}yEFa$~*=d6`>? z!532Rh|GDBpD(%K2HN;3sWfLKabjGStx`#F%qn@ z501|?ZF}cpIVlMY zw`aNULMZb=@mH42cOgG)`l>t_&R>B2wr?VA)gx}vFAhvRH7Coq#gwEHG^1$JE3Do1 zw01YvsVIOIjVwPt+i*)ld-vvXdLC%Iv zs6}egbD`VSFWYLVBvmLK&BA>bYDl`I-Q39n#+j`KAfIXN5>`VZ{hQXv8vMsblULF>AAdVl3*~3$#E}# z(wBQId?EPfGV3un7nGbDAyc84p-aqn!B8^s_w+$?!VOJ-3-lWYpu2gOY^xPhk}5Ve z;?Zn{v&{7=6|+IzW!JSP`)spUNdwGI1wP3~DoWAgG-GX_ogdy+igo=>2uBkb6H)K2 zWN1R`q&I?o#{_%aB8mu*k4spc!_PdQ5607RJ31oEr7vqrb2gwgOXKGd>J&8D0pn=nOiHPfM#B zp(&0+udXtX?}EW-M8uS&b_k4e5PnS;0-Bquwnr=3iaR$wY}8#;O-4=4BHF4=izrT9 zP%5O9u(+(xj^VXVQKBM)UdLhAhBj3R3`%zd5-I%TwQ<~Y`(n$b1)!Mnz0XYDcqhaREMhajPo!YBEP$^xEcYww6X9`)K@ptzR!y zgpkLg7?-bX#;We}{2^);7@SFuAHR43AG&!pwyte2cwd@LLj5qRW%QhKh2Zgt?}Rra z(AA!S`7RiZikOmA@?5lwXsAW05j7ABRlnuC094!OV(DnC8TQkQ6gKLzLcFu^n?=o= zBrN(mgbmm#MMhxsIfeIAP&!nqn$&6W)^QiE+18DBU)cw3fjn%cA4Vikc~&JDpACu@ z7*c%~3`V1oDM=NI*wjb_!>Ze(o7;{qecx+3Sd%rVb*>0^71OPgaB;WP{a&qR=VFF}#KlPPUWAkRdp78F9M-OAs@QXHT-A)tE1M(@ z%~C20;RIeeI)@eAHs0uIGUmThA*1K`*gRj>S`9|0{RoQ?Gi=TXgCPvR2;T*z5bY-6 z0%JmZW8J?C(HwEHvGr#)TT2?%&J}@@#KlCk@CagxEa)nH;$P8e#m>uGRprCT2n?e^ zix1ztx?m*!4Oz^Fzg361q0 znG`l#Va_j3Trl4SqmdC)k}9T29qK$a63iJ`mV2>k*VS|~sw&BMnOF0wk!+~zW~HMR z*^m!|(j+_AIbqVP<0?2KFkM$#!6}W19Tp*`IXND&L+*O<9EXOILWJ*q2n~k{k@^&0O?^Q)d z&y2vJ$P5XL|9JW|X6J+X@9U?k4j3ezC8$3UC# zw&mrVm}6i04nl9a5Yg%pG8lli=BkPdO6ja{8U?pF21+x;!o0tsli?Y(+($ zzY$q>6xIy;DOB@hqwkn(GEt1xUDX?3UMaFuB-9I|ShKCn(6dT5+oDaE@?Qv@gOEY0 z?}9r&2F;6;>FJdz{%hpKl<4i0Lr;tPgay)qk3>_k_a%4umcyz;he%%lLtIHJMFhG%AHYRV;du14S`t@YyvR+u*d-_W@6gz*ro5R#|}&i6t@X zDt`4Owj@=G??Mv{Esez1q>`||e=TfRRQF0oP36$JkZ5Wv^1qYsrIWxY)Ci7|pP!=$t6(!Ucqn-_)BrwQNLMTCC zxP0NF<*BYJ%o$0ww=702=!O)UKYA@}+XqE&ryRs|S*%B_MZ7bGDjisPu{bCNC8i{` z*D21|=Hm)CJ5(ys=%vSxF6-p7l^VI~4RuVTYC~t<|Jrmb@Y?i4trMs(M!ly>$f$bo z^rC_%fl;iAgan3rPTGW1A&_n>x}~&8{QR_(mr@q=8M4?It zwN!0Y6EU4_DK#P{Vm7O}TG=mNB5gWV_q3`y#r|s_QR!=zjZCWK`pxZiJEJ69VAQ%y z)#EQbdt^Q+ZUnnjMSW#h98J(|LU0H!i-*N+aS0II-F4C6gy3#3E{l7B1b26LC%6Pl za1ZXzoqXTD&;7mA-P66@(^aQV)maO%kiJ#B0t<0aJ)G}sqS1Iz<>@iF&Ezd8H9>>5 zIN2bzA8LKtbXplx5BRSP;GG_z^w|PMhYVWV3Y(iRQfs1O)oCvBnlyAngzJ@cWy(09 ziGw#3(Iw{J7?UZ~Y#kEWUxyN;s$teopXVII!!zl+E55u-CEoHS9GU*88k>w(8ke0Y zUME?^h>3^-yT|FZ9>tYp%iR&!Nf60@BrIby!CPDaGp+EazfZ&C3*m!f`u)4ZftDi0 z_q6G-Y<7&XO~CTKb+eiVc`32%ag*x&@bSEX+OwD@OoWiIlv$>GN?mwF%jp)(pBf6!i&$C z#3+=hZp>b)i1LM#^}{OsE*FL5APMaZ1m06aU55d#N?$Lz7yn_E`1m7E!+1?9Fynh1 ziv72#GUtA1UwH!i_30!(0licAr{ueF!Tzpsj{ngkJawlZ!a8ExQFd=6&Z?M+^w2Ph zX4oFqZ!xTTFY!q;WeQ)pFwo3FQhk~n1VqOTW81GcdcY;vHB^fu?vzPWNLA7om^?)Y zQm7IB-e}Vu<=_m}F5nU_kTGft57nFfJrQ}7syT>T`<0cq^^i-mGT)H?tG38pe=~nU zezVMN`(oJ*nJNoMGL0M|k%lM-e+S=lnFeN*r~4cBcuk@KdV-eX{8MoIImeyn1_4D#Qtbb2FCMRPSb({$fnr=ryQR?t=_8u7|00|is?Dpy3yfE})$w>2V|CrLFS*0xVJE&luewBVekmo%JkTb;|82aS+CV)s z?V2Prq?Y>n4@ozfPsptiwUW{sjtE$%R^IxB2)8(#qp8s7V5v5!hNgsiP@kE<)A~D> zMSa_pk!4@*Wy4D)?F)DuZaz4Tv&Z*+jkHbwxjIDf`iY_4)r$1wzVx=46*)vx8LGo& zm+)#jKAIAE`~Gf+NiiB98^np0d}&}NQ%TXhSaON)X>-c3+#5Uqu4nbq>mRQ-mJ$CV zYvY}Gc580P8H^li?rXVxl~?;!c`g&b&rvr^fI`R!gcy`U#9wD@UV^`UbhnA}`xtGb zf@+J;$%i}X$dKV=Cy|ol%yOl4fEg=>=~UT`Uej-4UWRl#(m(Y z^9UvEgH#`U<7aZeQ)1L~qOnIGA``m901;4C+&EY7mZ51{@nfaWb5lQ?RN8iZ<|WQl zQ~BL$N8?8wX)P^=`hUaSbbRcEq0@hG@i{vhuyFDY^}bl8BTZ07ABenz&>L*wI(FmD zo`Olf-VW>!^e+4exIJH3_Y`eS{4}BV=4W+=hJAX~M^kw<*{cXoBief2U-K`Eb1#z! zuY>LfiWc=o?P(i6niZfXg8;I7hTn%3=RGk^aLcUjd{j~zbp%X# z+PEcjNgkhet7&*hCCvArX)YW#s=W}r<&&Pfyi<1N!{r^!2<54C+Z<@3OVu=y$h*ko zd(HtZ*9h__h!$sj3c_1Mh$r3;*+A<;{d3Qt6R0X-@zcIr94_dW@-$vhC6FrVMU5pJ z-kEM8BModk0CDjb3K9CM)J8()xMSp={=Oiu3-2Qe9op@6{OHxy0E{zcOX=qeJgPXL zhM_E9pgf&A*Xay+)&p#N7&%?qK2>4RE=is;uT)#ULjlp9G9=|@hxH^h#5{7X4AB&h zDK&*wvG(Q<5B$e`ynfbmk`PBqc)4igj^2csf4d|b4UayhtTW(O4gHu-7n0Ntwtj+K z{nC4oD;g(7%>Tk>qPl~Y{_8U`0rM&kcXNP=*D}oSxln^O*bdOug15NB%zfbyz}H{; z+X=0eGTpXTlu7&cy3QFfzPm*D`LK5()O=Ka*qD61cYV6s+p8|@Lg~6X(PVS#9`+<0 zgp7Uu`U^9QH(WC27{;(}Cw?qg)Qp`wEmJ0lo+nWlzNKrhaINh8es# z92DW}boQ|(Ya6m(jQ+&@tvu{&K_OY?<3Px&Izw6b%9-*${t-O|V3i zA?xZ^oT5s1fWueHQ10)&pXj&S&O&tZ|C>&WJMA^W_Zubz;t6{^dEzFohNhnggAH~G z))R48a|^C*B%R38EEZoyY`TusqvskDXUHeJctUxVCkdi?!gGq(a)Yt5xsL>R2G$xe z8%=(u^NVFU>5`X)3GRXgJBFE{TTnuM)>)vTDWaTHoG^PboW81q! zTpZ&=`v?3-8;L_MZsLjBJS;kN?dxs_OHk?kRochBZGA*kH9t*nV+I~r|-C;v+ z3~s8RU8YC6n$t79tk7ckf+qr7#1za4G<+gyB~prvp=ErfNF>N}Wyh@H75h%L-&BD1 zT1&llS0=8Syl9~kI~hX37?CQ6qD6%%qf)V@B=?Nc^tE_3t>IQihP66_)x;h4(;=qu z^G~C)JLd&~Bw}nT$i6>J;-e&T2;0A~a1twI8+@z7wV%e+VjgtUUXD+d0!J1-A47V4 zPVaTzsCR?={mjVYGijLgp1Hg)o>=6X7;@6uPcu|{GE=V66@>V7>*;!pK*V%lakfiA zvb1XJa`}S&F~-`7r@7;mgnweQXX+Q#K+ckk{BcoITU%{isAHbl_eH+zg0kz?Xf=6M zQ})Jn_%O;w>STbg%6@?VD@(L;P9{Sk9<9U>sfCJ83n(7s1(E(=EY`xxYV$RQR_#zGS)xwX3^O~P?xHtfBdEbiQ#SgGo%kD*%s`O6o z!KU%v|9zXcXy3MsnH|pXR{h{)aHFy_Om=N?LLIbQhE#M{3bP51fc8JIQ8@fF}9du z+ecDeeu?SGoa-ag{NSz8y8q~s zAH+toWlJz^M6RQYVulUxr?;w&$5A)PrVAce#w^HQZ%v!a1ZSG&YuXnixCcV;)dpJVbhJ^uLQyJTzgW_G;;dv> z?`W&Tq{oZRuW$B}x!i-*D3rS#I>CtJ1ZCJHkNS7CT6Ri6F0vZH&g6f2xOKl2JE-`~ z$(N{(sE1bkO$&0)_yaneFGaPO0pGelzuA^OH&HAQ2nkcw(BG32r(^93F8e&vek$iM z8Fk(X+xI661tR?WNc{M9!bvhBX7e)tOJVDZvp&&6r_ImG-Vth%4^a4?Sc6|{S2eBh zy*3i&vNzF|JoT8XMrRaB{6%j%kcrpT^p8!^_HokRrp1nmurAHqnp8XmsZYJSQZpXO zKR*EmxCXR%#9g#AG=7Qg)N!4wfe`ex_-y0BQY-UC=iPCY9o#L&P{2Js)c*=T0jS3A zbV{Cvl+sje`Q~l>GjL)<)u`&wdX-|no;abWcp?|iy$6nToaDhV${dcW|Gil= zH2UpWK2VCw{0{*OHwH-^rM3_1@yvjiuc=&!=vHos$K6#K7Bn?yslKh^X^1h>CEa)| z6hgk}u0i;ZRiostn}%b6f(hT$YfoTmTq{v$mL(T9O410YZCG@!@goIKM>iZg}DVw-kP`W;Qt{Y>5 zkCJxmZ-WZo+lL(MrC@~bzt$21+Yi8sd|;8# z$ixd0#7f@W4klcCKE+M_(!nV`B~hjVm+`Y++v5tn)n;6b6sdLAq=6c<=EEEH?)c~r zijJ{GHE763hCJRzCe~!iiYu8& ztALG>5mH+!{X<*M)8^w&o|D6Ve%b!=wxK!=7`amfo&~NqFG2!G&+d8#^YXo*WqzLQ zBn+)Ug!0M)R=MdcRlC8%-_yZ0^a#P(E6TCcR*-Br1#Gc&*=Us&UrLYW@%?z6WQe<- z7%HrUD8(>QY#{dOV2LX7VAcAU?ewfk$N)6s-FeG-FByCoBU?v34tB85aR=`%!_NvS z_bF&G5NWZwFyLZvnUFCmJ45~9w83)&87GR!0+lUa{^ER#Qi2^Oc~|3{xe~(nKyyqf zCl723p)j|;mfD4>VvU{sQlcB-+@uW)+#er0n{LrxHZ$zk0ZVUd7H>XZXYGB<6G8M? zee69X2_6OgutybtnN+?Lwk@-POt}RHvM4sO_=o8J(fGDMb&h(7b$6huSKf|U^J)Cr zBKcNo&}kd`oF#YM#4zYD+KE)kmb0P~Mz-?H{meWwIoKi{PaM(}qE>8?I)QGgA5b>n zz7b1}Pt@^-f^r6oQwGKR>F@$K7W>3&dg_5aIY#tRQ=ikg<3j;;a{B!AYxLCl@&9B9 z2!F7SoogkXuk^0l9dAEOwiybMh0=em#gfFOPd}%_?1-Xxnk+FlPjPazsXvpi3SP@y zUUYic({7Weo1t1fFlNAO7$f?2&EP&EL$9|qDe9695S?Ph1qe1Qqt2YAe#xBvSg`_3 zRhnf9bdJ2aa19%Sm`E2+)=-a9M##)Fs~I7P_xNZp4|7LsI?8vb@Xoq~i~IVRiqi>F zcjyO`QyC91Q*%Tjo^%&29KqI>a7D^$zkQkS9LSZ5Z`Zy0YTVxfFo` zxTA-v+giM7j#+3t$i3bV*>;9{G`~yI8@7{h4{ivIvPdGwO2066mI6h`EHad= z4^@-E!(hneJ~sW|@F+UyEw5Te%ERm_nGb4+^r9!dl4puaeiU0Tkd0Trp44|Qsz)5p zMr2t8O({-bA5m-gT`eR3SP>qagloAOT}?RdWdgpvR>LG=MUEaWorPP!m_il^1LnaM zNl`#(Tz(h${7dCgnaeR2kPqZb38q)XIgQMgJCE=@Je5n&B>hI3G3<%VESihN(R=t4 zf3mJSjWa*iufk8+RqY>mtDYq9_L1ox%Wo^@JpvV$(>)9Q@%dp-Nn}(qVc;z7?>5zw zX7?)As2`Aw{Grx&>^+-eivK(=anBG@hdbO#nO5Utyi` zy?o?8=~JCp)|cJn=JQCQ)ms&YNMIJ5ss}mN3?Vnd^dT!GVo=jo=_6#fhO0JXwtR2_ zbwi%+?;6|mHq9&Nq|e1%N$%$!Y<~=h6`&LY3XmYEOX&9!?YmZ{arCB^5Aehno7qa$X)dDD@*XVB0YU zVd%XUl~F*hYq*6TX;DC5Z!RHvs1E;8vT}5iz-I|KWt-6F$vwd@_6>xplWdOhNEhZ$ zFVanrdydhZq&3q&*{!<~+X=&*qMGPCcMw5Q$4)?kH|9OZXD((nDt92dWjKy8Jvp79 zY>8#?fw4HWN8dPs7iJj#Ujz(n=0oIvAMw4NRXp;(j=&F1?s(tKiaZh1Ik_F>TX+~N zmZ(a;%&-Um7}`_J zJSXurq)rf!gc7xYoDitqp7K14Y)4W%yXPQrs2A}qPOF2pzZ|XG4}=zI&e&5HAb7Sc z(u6Ah95`m^nYh)rgoHnOJPfErcXRFu_m}IXsg5VgRNpPQE*e5sM}q&ZU$6p zg;_71nsSMZtF4NO$AeDWs%5?)2pz*BI%`L}wc~YM9du|uW%gKsmj5w6P5&QzzNf87 zJQonLAe=7u`xs^^9IANyn(5snMmqt;U~{BI2S@`b9R9nJA#!&t9N4%tGxLp5Ntp@) zln{ubrGk=d77Eqi9H0-K4{!l(`TGnBDZ%Ct@6C0+huFIBw`MFra~)qy z_L(Jt@eDNyh!?0-OpQbXqS5@c*qf%AD+5JR!D^K1dot{}mJp{j{=6Cw@hE%C&0MiL zuOBir#XC>YI$)G4UgrCA&eaRrdJYi!JwVu`R4>vgZ;!5Ft2eo?jJr_QM5ccsNC z2`zU1|Bba`(ZC6o(8tWOsE<@Qa%x2Ap$_!?`?299Tzr#u1g@_bD4V&+n5e}VBS`Ym z$p2}=G~&d3+1$RIl;1f&2B|JJ>6Yr{&nS!|vT^MvT`?!F(hHNfF6auZAqVAH#3;i{ z7Eu&6wACmDlOJ%C_w{7+RY|?I+AN7XjPn83{mnnRFn7HgiQ=!B64DMOm=1I~?MiJ5 z`NoNl0~@$G4RH29)h`&6RNd3M*g@##{{vYd;}H&80&F&9x)6$YPD7QG z@W(lDb>i@%g%giig8IKYAM@VW=QQEU#7gK4NCmhHk6E^)JOCQfv31d6$2OM zZTTRF+zuayvOT~ii6(T_b22Dt&Bn;Nvc?DHA1zUHRzGz5%x5!XHfCcVo$Htj0{rEJ{SX}EFv)8q!Q2tLY3FD86Vx+d%$797 z)ueuwUdl(=08*3FNtK~ZD9uvt?MD#D8i!+)48J`(>igAj%trL{(yH8+QE;j_6Z;6* za-P8LlB-4q05LCTe;*4{axQ!xZh9^cOe_;*3f1Oqr=e6_B}p91VBx#DrM*kV4E;ZL zed(P~&tOo9=YCsQ%8LcZ!Sw83dRzNr=$?daooe?dR-AM`IQ3E@XYBX8Vj|Qnpy#yc zH`Ch#GQ*5p5e28wP~@P(Cbnaa&Bwjfwl5i6f2Js6a*8x#>KVk50TLmVv)_NNDwY~p zESpoJX$wvc*=QY1%LuHyV+XqMwO+3hxFb{fbRdSkd1!}u$oRo{$MBmsZ?NoTB}6sq z!{us7`MDl2)E!oi?}}2P@?DqGn-+H#CpaM1o{JZLl99kJ_!SK30}pHdl7yZHarNkPtBn z7{~Gt7jUjGhLK54cjPiY#D7M2@^}~)6K~I8ZXBbJkQDpKki&}8GS$Dvc<)ixSe`@= zjH(ghW_wI4#e`4LVw}`ZtqKk9L)k~u;lAl|#_F?$39nY>`4QenXJE8pdwqHgt3>Qk zLBD)Udj%TZ%1l)hNWl$CVd_d10Vb#sE=+$aoH@lY2R$0>^(!GmZ;lreS5uYYW1^h)wJM?QY|X2`lYEg6KUJTh%8`D+DQyqNkp_*8tsn*ly&3 z{2F>a)OBs*v(1WwfG}A4tDhzioT|M_`WY@yjxSwtv7sXt1zpO(sb_qGipJwAXA-KZ z^|=O`*0}9U=NqZOqSn9pwS~8|U9_2cCFvAa^wU$oC2v&O4K zg8skX*+bc-Tv`tw&&0D@4g=)AK-rJGY8K%#lO|G~{MP`k;?KCv^luC)R7HR8mPkI! z|8(YKc4(A)9Mbz^KG6C?s~UU1C@mD)wA$&yd~w*x1C;k(4U74;V^R42^pQ-VmEdf| z=xdLW&r?DBiqFkh>e<$`ElkKhaXviy@ACAoK?y1DW``aaRgnd@GWGncsV1Vqb=TE) zU$eu5f` z*2dF>tjVZx<6Aol$%S+#GhOL#f~f22n7+G=$^}0}R5#&Za6yQ@f zRN$iKI1csg<>OOPwr0Wanli@F*XhZP?va6Oq5Fl0Kz!=U9;Wlxm{$y?y9bz%zhxPI z#xM77QL|ZFC>JdD&QLJ70?Jgr0r0IvEb*5rPSr2Js0x zqus=u4$4$JFFkw2Z=iO6nagWhiAnYyXHHk8+~;icni^T7r6pwJ#_hh!%#!2;1?KGc zUoG{e5r2v=1g=LpU^n=EPE63--zB zXGlbjI}b^XXK{!mTVz}Y!NFl+VyTC?W!7vkOPN0WT9@TZnaA$Xqr;>T!ufzVX)1DX zU(v6v$|@ZPukx$2>=Ug|G5%E!&J{kvvtnEImfRSv3*flntWip%(7J)B6ATiVl}13+ zl!JF5GawESY!eyryB--O^0WO(MeE*nrLcE#LdI=j86+#a3fQitm&rc0YV=xAV^!lX z1%3)|AlAVmLG?UUPBN%Vyl^d>xlL6FQYiC08QMH1l9tw0q3rB2N|UK3Q9={1PiMFS zj;CZ*kT#0sjF;85+pTX47pa97iA+lUVlPpgm)a)3*TQNz2k~(QZWuF&0!V zSRlsxoTu`C6NUh4-yuR>#X!7GA{DwUqMF! zRYCI6sH-Q0uaom0XOEYXr**B9QBCB@7ORZ#C>ZWmG!q^?U_9Q-Tq;st!vwV)yvU{e zErc-9p`4bH{vtIU{sInJBtv|haNp{@H*^)ci+tB0;~Jg= zNtgDyXzY0;_c=UzXI)44=WEeg){m>Lr!QD!ic(h%8M@rE>CU(>wN0W2MPj|ZIKmNy z-LKumUK&Zo!y-F{r>l(!6t4otGs*rKs0GUOGt(QSlaKBUag<44#Vdq|AFVhdLrr1k zO}HG`0HhgZmAVFP}k!6Z!5(G2~o7W-F)Mr~s@k`5N7y?ggR=OoH2 znFbpHuC`UqlM0yIZB>6Z@|Qh?GSkC{s%&kn4O@+jd)AV}35WA$B$Jd#YL@NP?_YM0 z_64hWL49qfcXoa&8SYR{hwbsy%Ac!^T2*Kn3be6WWqEdj2Ak$&GHA&3EI5=Yt>Mt^ zt)8NZ84|v@PL}Bf3-W4WSByHAi5{9~w*FXA3U7mi>|vycFyZ^6w}LO1PpVP&z7v50_CD$+Th%yU%msJbbvQ4VR`i`onKuxdVYA>VC zALLGF4|5ck`s@c_tEOm5o0r)@{hfr_Dap>3E9bHoMNs|xCEW8F-OBmBe*_E6lnwAu zx!{%In)Nx4v|ZA&C^2XuHVQxxzO{aMQN1PEh06NXv8T&v!~R{(qirW^G5q!GC&CSN z@Eq0Fw+zcODi~li!rSX<2==&DJpjl9<-ZbRg^FeFBc0$AE$WI8%VCEA<+me* z_+7Ce^iUg*I7q2Zy;w)}c_^wV=aFzW(T#ek8UBC5%4J?ajUu$KQi++Ldjo-9(QJf$ zf#il)23qF1_dvS0IPi28(al;aPw8qRM4S=LpZYaeXmiPT?;=J3@VC&3a$p7CK&1EY zzF6e3&UIgZh!~|N&_XyD7^8Lj!NuM~_GxH#BM{SjvO#+j^Mt|z?w`#IXU~r#ATq?+ z7)F9b3psoPAd>ekqrqN|{``NwDPqmJJ(8^XlW|t|>ZSjKr2B$QCl z;DRVX=NLS5i99=qSSj?5e#ydZX}_%7qjoL|KYz!(q{*guda9IKYXICc;-%c&Lh(9K zLs$fipN=VAbTx`;hQ`nbBUlZ*6kYPe_u4@;Ky(^b)>OV57OC2Wf*90;B{HZ!-7A4W zMFLpj60MoZa_z-yx2%4DhX8ZO$bdb-@i}H-qt3{CENpLWG2vDSc)R$RB(>|XAWufn zJ@7vks4TSEzj(aR-5VN68E>ZxB0T`9eh)#iJ~tG9O$*6_dWs=Q56wTo1?3Mxs_3+k zx$$4++P5%_jGN1E6hN7uk;}a*Qp481cGl{vPxq`=T>L>jRvs9I-X~^i6ki-bdDP|4 zO_A0%OXogb79*cJ?-%aNq6$;U%-{;nugAY>`^`=$?pxarYzg}!p!L9T(X2a%R$?c9 z^510k7|$V4)9odS*cjJ6 z@Cf2OY0WC^iYx*^Qs}}ZamBv9b%3f1F_R?gpubD=q5%k9%2%wgY;SfbVDDSD@h}Q5 z;d>>ZyTi)s0#ome%G-vgmDiWP)KEqNf*-)93FxpEJr}%GVq*lJM8^Rw6jT|eqa8&f z0cX>n5ugB0W3--<9aPcGG6LSbg&7#vMWDMMJ}(_Ob?dT4vcvnH+CM(kF7UoSxVCgD z95>l1!lK41;`mJ1K*@W?QZm(CNO`}2hns_4@U}WL@nj4g^y(;sA(7d}{r0cC99Hf?JmTi|aH})tsL`ZEj7nBo7FE#G{T1$C|x|-;@InI7LyV z@ySw4qk<&pQidGZ5m9k`lQSeyUcnJ)QscuM;a|;5@TA^3v9W+B>cZj0?SS!B@DBE+ zZlX~zq&hegXg*97N%p_JspObL2c|ucNW+I%3nm-u>QNzX0dER&>TwX`1KzExEPp|Q zY!Q0CJ@aT!G2&eKXkzk=F*vYiH~>H|N@b3l-kVACajezJAc-@3&))hA>C3P=(*Ri* zK;!qKTKQD^4t!~6Ryr7kl7074m|!Y!T1i3=Jq7S{6ztQ-xEK#JfAh_}m$SkFxS4n) zw)1Xd4WN8C2>oroVnIx~6;f?3h099s&F6s;36eM(VnJQ8KolfIams%myesW+FW$wz<{1&WdNLE!xM?2ABj74AEwd>PGIe=)$VnR!~Zx; mvt=?IN<>K%B?Z_0ii9qWXt%AbI0Il0Z)7EvBr3&>1OE>bWluQ( literal 0 HcmV?d00001 diff --git a/assets/img/android-chrome-192x192.png b/assets/img/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..358dc4b20ad91ce24436d86128bcd706df97c648 GIT binary patch literal 8642 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 Rcs2th|3T$_g_KF~{{va$*(3k} literal 0 HcmV?d00001 diff --git a/assets/img/android-chrome-512x512.png b/assets/img/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..ff0646b01242590af44e40ce662c92533d6693c7 GIT binary patch literal 17774 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 literal 0 HcmV?d00001 diff --git a/assets/img/apple-touch-icon.png b/assets/img/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5a7099aa748bc404c5633c15b7fff27d2a3de445 GIT binary patch literal 7679 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 WAe?S~ughSqtK;r0hgaqRZZjBAm&@4F! zXK-@AQbJns;USf$Y!$?3We=cjNQC8b`OFPGP9{^hf#GmStJOOA58Jjs zx`9XObov0O)oSRvPNh=W19V;A0qRxYR=?l><_5f8FNR@IE|B%`EW28e3fPSVDGD~ou2N1 z`$x|SglDtaTTRn0j)fIPVLTpxI2v|ANyl;Cn5Ox?R4S3r=P?Xp<2cScAox$fg~fme f!0j6auT#GPP;3b_nH$PV00000NkvXXu0mjf?(pHz literal 0 HcmV?d00001 diff --git a/assets/img/favicon-32x32.png b/assets/img/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..1b098ea27dfa4c4feeedda35e6ce8de9d873f1b2 GIT binary patch literal 972 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 literal 0 HcmV?d00001 diff --git a/assets/img/hero/kerc20-hero-image.png b/assets/img/hero/kerc20-hero-image.png new file mode 100644 index 0000000000000000000000000000000000000000..0908db01fcbeaf52c15e0b64741f7919cf7f8794 GIT binary patch literal 208144 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 z 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

aTjtYb7S8~sQxW=6 zQKr^BPaK%C*5N^vxz0k=uDbrU$Vr&eZ~5)_Jw%`_)?J(ijj0 z0ahhtk!^459Sa88M8tm$O>qC0EHx6_|BBZ?Xn!7;B`#gGxM5nE@x{hm_Gx!plGY(# z3iD%?`(gqKcJtC8E2uJsi}B6tYrq7E({IiK!C=f1nKthyqrWRlRfqFt_i4pqe2JbU z-Bd_Cg-9naoqqndU6=fkfULry#?8bPUQvC5o7EXH4PbvFovqjUhC=NR zqGjI6bbX_H(YIgonA9C;iEe%j2a?L#D3D&zqQW#${$_xf3tjhh672$vO%GaNFtnuT zzm?ox(#lF;!2G^Vg4cs?63p9ft3rhN{Sx``GG{v>W40zK^IEksUXCQ#+E;$<=s0wh zj4yNJ?oS~fJzSf~aS@#yk_eP^TkAg6DBCv z+hHNE`t#nX!H+qcc?D93aoPmk8XFBpjT9cz>mghLbC;(IXvr|j0=B<91?{{K zTDO9X?&i*OD>n861P?X_P<9+sR-=S)Wn@nK|F}=7XEj8O>)PufhgS7&?Wi6@n7HS0 zH~RVC#I@-rz5mo7n>zqxrNEk87NQc9A)FB2+iDKkiOK*Unowjy@+#a(1X_byc4f690GlhFe%V4dyEQho#0?L;j9XXN{XZt+4@LeP}fE z$bKRV%L0S{=H!Q4^O*h7wd7DIF9CJ{Oj-cjO0hiF(^}uRwN$uwvf(D?I{Jba#f$-z zPJWo@g0*D13af*b{k%$0E$X z0riML1pP9wJ=+pWS+HIgLpR=Fo$m@edo845*KdSDS8Pzjf+)|rHw>2g7{C4^0%Yn0 zIA>F)tYkVV@WgK9BsUyv`Nd5+anD5C$QjXJtB`r^LOT9b*;zH)oLUF>21 zwT;u*spw+%h%fedOrhL{j@?2&ztJp6uR;ti*A=b54mxpl0>6vdW{Tf(+x`_4U!c}V z9;(It70I@*TYbk3p%=&v(%?DV@81)UG(lN3yB@Cu-jMz;z&xm%_hvuy%8q}*<>TR- z_@qw^^%dc>g5ej?)dAKm))`b6G)<%>ufzD@ZB@=Yak2f~aCjq4rX z1KfBmuPW1-y>Y(Ap5_`_(+zhl%>?q6-k1N~qid$VN+?|(lmy29EPPj(!;!Ycy2x|W!b8eeCS{D)`52vHd?dhCO@))xJc~Qv<|6JClryE2{(Y|cVQT%) z@1*IB{o|Fx*oHdg>c{gXqDCsWw!(C_AfYcL-m#o?K}QI2^k`I%E?`uND$w0r&Oz}T z0o&GATh>CfmJ&AEkho{4+SwL8E#xX&b~_sr3%lN-Z0eT*#*N*)7SbhoGKpD%slon> zo5=qDsqBIB2~8`iExoeS=JJ)&`~T@p?$jkN@kLWU?5d^g?Rya4~3=j^7Z2 zUaGzsb!}}1hlH*zkl5U0a&7OLi)aD;uGzgX(uL zZ+gNS*-d@NA-REP4uC>c?$8JjW#$v2Njy|Se!J$e^Zn7|3-1yp6^r>vFgKeS9;QM} zzf4*noZ^!CnOGL37PYAgmOyeMWPNRzeLRW4V%aT)jwvk#^x4NI^64he zKVh1g4Uh5bQ=MTJ4V-@o4_uJz!H}HKglWY$KyXg;%mG3$hE2Ghm5ai{kqd0?F`jZ} zQ?w3;b0VKxGSXta`mjqLls=oAw?)EIyb*oIRIq!Jl?tr*(g|*bmm-wsB;f-M!fifP z8Im4|08dOA*ocp@_%9pdN5pp=Hc__)%aqD_aVBg)&3O4OVFOA7==~VD_ao=2Sm6Dm zHby{1vsa%H-Ph9a4a&(rt>JFgK(}3C$0DpfcQf#rH){rs`gQ#T5Pk*VSFYvd`1GK_ zWJ+o^T-gs$rZ;`piOp_J7aqUjpes);Js7gsVL+xm?F}U%PhS8F zIext!Q=7A61;xS2SMdNdG9`N+8b6!Q@{Z;I;p!^`qVAh^rMsl0OG>(9DQQ7kx}>DL zySp3dMnSr}ySsBqVM*zQJ$t|BJC--r)WyEXx1E zt6eJeZU$n5FU`E1Ydx&IGK)w+s^_m$;3|Y*Zc!46#qr?4h~?-F^(cH{cwHs)6Zc|Z z^w>zX>X0}kZB~~4$mHZ?KJ}&7B*xDDTzDws`G`n_e7~96TT!&eR|~em88)>&+LqK! z5$^+lm{*4`>a9oZH+R^Pe(;TKJxl%nZSW#%HRZe<{Q_(+98aY}Z5_yZmkNJjT23A32;&{-0jSHi%|0anW7quY1Dp zK!7W$!IS$c+^k3tYli^>aX5X?^R7elof;wC#zMaDyijCsbu5_DCVm`dqnRi3XdBgnD@> zO4q+okm_Qip^)*cW6t;C%!Uqvz zsfLIP>t6KvODNP>IdP0r(`lWNs=EQhi58*!B%+AbU_30MS;oF@ss9#3MMm=%{g3UR zukP4B%675K7j^DfM&eAawY&-7ou*9xT@1e-xUZ(N#+N`V;)c+*{>H!%4qahzV(k?& zi+MOBRA4_?Y+0BBvmg0$cNjU(778wF+hF$D%?K!e(Mg&!ut?-{lxdh2puD5SJ*b1J zw-8%KNKx&?_E~n@?D^C?SWAUlFE(Zco4PhJoRL=Uoe+mM8RLDzr4RMAcfS?9^*Y3^ zhHhls2@2dw1*zdHs*6a9Z zdTTurntZjcT~SVrZ#Lg`zD5tzeHJh#H*Zzw>1#3~BhPpBK(01(wU3S68#LX6(=m4< z!H{Kp=25ET2+5{TkDdjp1d##SbeV`HUn7~=pvttl(&mRFx2(Y)yjG=%5pE&A(^zw|yqJ6&4%Y}G-*I2)= z+yoQnHJ@7mJvT|}4Fb5rTM_#+Vn>WM(fsGr*wa$7S_9XpKF$v>f#?^rmR$A01-d-S zvHYY$8j0TRe34H07QA%C!P^~7WvdC$nxB}Axc|}b&G4+Ng#pCeZcf8gVLm?{67gY!;rpDt{z)-RP5ke?f8;ZQ`^_QQZm^M0NtYLS0 z{!6q_VJ?rIMoB3u6+MEz45Cv%lAh7tOEqW{qpy1R+JuoFxmbxvY{~>0E9XQDSdQ8F z-At`Xj@%8of0#kQkrDYTG1l|XG~w9mnxD!`&*Q@8jop6M zmQA~Yw3}|w975oCnQ>wRo7~(P!%5k67%zz%0%foFH&11#+fxi##ex_exD*kb3L z6R=;bDI;u<7nTEle}wSXtD@_~MW<3v1fldV2==-yt^(`bcUO9PTOTOv4j(>lt#!Ch zOBMrr91oYZY&2KGvgx-CS(e_*7478GMUMcTv;2WC8K2Yr@r z((ofvwm*F_Vkea(_fL9qCgm#^N|6*OYfxxlg-~PR&NBWj(99B<2>*9JpfJ>;B|^r7hDh3SjJ+et5kK4DPNo*(;RAshLk+8&7g|F7UJ@%x-4k@|1{0 zx%;SE)3lBXh~BZ?5bUe0w>lN7akr1UZO*c8EKa5zVF%T1Pia(g{m-Su;$W1)hX-A7{mfiL@`a*{+tyaf8@<)$3#S%Zj(v~t%+U~d*M^7xPOU+T;;y3^7&LiNMD zv1L(ss>dKu;rHsfT_3(Kbr+nZAO^^2T%2L|Jm$h9)xNoLUzlTE!!;w(=DFp1qUN9g zi-2-%0h7=dyp4L)ebbOzg^IQufg06{RIXzBkm#OW(nh zoo?Ohhr15?c4D?>gDk{=*5Y{7U;-zPOdTDVY>WdHbJX>>8ngHG8Kp=P_1RwE`7VE` z-XI769PUno{`hr7VO!qkc%5&tAYtUUfahNwL^0QurrFSvkO#2H#5`%0F!@JVZ_MU_ z&Ja#x&`1o_9VjFuSw{LdpJSfFY#?znJ6-r^Y`8$%@W3(wcN{&mqvCkyR@3ztN+|K+ z{N>LDhnPRVLK2hT5nn#(Fvu;uI635fP83ZwNn0HLj?OJa zKRKKDn)mR`gX~oV`1$qsZ$CD`$L(Ir&mV7WT#&wt#i39ku}qeo!M_cIVRXSu$qkWz=W6h@369A6O80{i#;Ys6zmY$T>4H++2hBlvzs7O+J)*;ax%^S73s zALm@i4A$oPxDERafPr*lMAr8-y;<9l$2MR8>dH6>;P`PH{U^y89SP_Su=S-S$H%!b z)ULKGx$5_B9zZ=5@M9$MD+!a?lv9hAR%q$fV7MQ@){oiQ63eyl7gy_Y3UN$nh9Z)j zrk96>@C4s)M!bzHYJwlyAEug8KZKmk3lYu%NLYGhPDky3X(7fgUVF%@F`T@-IM@tN z--}n&wS1g>v!1}HVodAg)jFy<|Ggw~W>CkXNNKEKzT;&wa!}f|P{@(j58V!ANse2{ z6%zYbjB)|kt^B^)kGNz#FYKFdDj@9JRO7ENJl%e|tc<}9tqhmOxDV@u@WgMb06<*s zVY!`cGOtdHD*NUi1qqx!H^$Cw#D}Wyg~&Ev;goioN@{fR_{(VFQGx@GU^ zh%rYpF2J|JgS7~AX^v@SIWkFArid_MQ?B7QPCatE^12MTTLoxpZvS_n}9$LH^;lyN1*Y@+=+dD;Om%ZIiP7`8`xq_C0-Bk(LkW$>bCXiJ?K;V1!Lb$ zeL0H6o4FP8ysfRLRwHuqu56*4{ZEz*ppB$e!z(wYQ}*1m;)e6Fe*5MCI*`K($WcfC z3MTRpA7tk|_|)hT(B@smM_pj~`h0V>$g*Ue`#VeKK#9|&YBw(T#*w7j8(L9=hw{g(6(52gTm$5|8VBa3Lp(4ZrVWt5$7-nY zHca4ywf&C@`d&GAH}ju}QNyjH(R9rV_E%q91R4 zi%E4Fg1q45ig$Md{pz#1fo=Vf1SaiHfNTCf$aA54VVuXIfP*UEFIRGoLRxG6SC7k! zPm(Toe+NS(BcWw@rtME;{$dz|Vp=?+(o||3)>LTvCi`0aBbMS^=(nz8{L9wox9w77 zqTQgqRWw)@rQL1-9zRY|&;khQ7H+(|p?bH8HkfXouln>MnFb3oz*=cxQm z{m;rms|Yv63$tk=8^f$i3MqbqJcYEMcPkn5^S8}@Q3_l->+l48w`gLKj)VNt_f@^U z@n;tN4tOG-HZkZlqHO5kF~8?itPA80wUr0m($Hn~`p`ryb#4}piVjeVLu~+R>E-gS zr48UJ;!W~OdzM$WTPs1gpMuF7Pk7rnsCjTp)dO-$o9h`IF4Git53#l)CZD7CXPk9l zmYtU8IQlIxWl2(}lr!g>t1)O_5Wk-gem~6O&9jyu>hUPGFwqZfzdmVX5N{izpl$TR z&CKnrplzaAOZKddyn&fI$??+Ob6>ou(m^4J>{TKu29v00nWT9vRCk0LtFK#dbBzA= zIke_hq;7uG?<{Q%=kUOJarBE$=M}n){NUY~B4u2fg?P17UWOwXVDrY|Voa7GQM`UxMOiuxPwZwu>zu{1`^XpIgI8~v z^9zC3B{Vz=1T||CO}!P1oA*5%NVv*SW3zTxVO$IopZsVMbyb!a6i=5|V2kT9Ts1J= zIoONUG1Pyqop0Uf=M2s*!O-kOgt!Yh^ATG-2zKk|YT~WG%)@)5j%LMZIDv}MYD)pjRq`FL9pM#OtK#MMTkMxg_h)#{bTzj5 zdO4>}R=0y;L7+yJ$@B5D4WD@X+^w%8vKgvkLk6~Y(7QX5uMVRLiwdKhJk`sd6`l($U)T zufn6O(uGoLP;}Hzf%@7R5i!O4Hzm%13uS>Wqv8vo@HM}c&EY7=(byEhFaqxVsv%UD|CM5nJ2BEYnL1f2eoH;jAmaHOe<%AE^;ICm8$Ly$kX2ItVMZy2}ZeiJ<9(Q5^ z_J~IN4?qbvb>!A@ESl{Vh8-*{S`h>|Z#w`xfK;5ETvPAeBaZ%^_{ha3 z-os?43(SV2k!eZcGxblhR=|48#>J0I4(T&b|DW`Cc5w!t5eDn;9NGFui#qgNYS>N# zYzwHPJ1N`z&uHBeL3POm(_`M4j zZgw8*8>OU}jL!nys*zL&>bM~hjV>Sew&=+tT6AT$B^zX=Zr+H0Vwm;BEGl_~{~mZW z1Y47h8c#AC#J^4vpzEF4o)rQ6ubL$Zj^DD;e?`E%%az=HEo;H$Vh~C?486stnnNNt z+c;uU!jbM`d!bYmjR8mB$54j&R3(UnY}^9dVoyt84eUN0!#)6x60pTFGt|dKuBt6z20%k20&ym8O;^$MLIo(97uaPr9LNoXS zNXZjt`N_F7Wi9!!=X}u>j^x#g8eBrXX0bM!-gKr~eTM+Mg1c`W9KV@(+=K=Cx0x$- zbZpO@3Shd-XRl_oSsoU}A zkab-M;z5e&skZBS3Q&B^4{A^Tp!osyTft`e1i^ukCnF9yPt2w7%N3{D=ZfALo0f9Y z81;za?)0$!;az*1=7}POhBr|8qQ)(Ew~DSX7yOzk_1`&+=^v^kQxl@gV4IA@Tz&Xm zbXK)%0b5gkwPXk%I5d4p*)Yb|PDh-J%6mJY-jd8=areybO=YSC(`|mD{L@X(Td#er zAIrAssJWyM%N9kbYA&<|Q#cTy@!Z|nh-qurjl$>n-VgV8OTtye^I(SBpdq(~t%lf@ zhyOlMGEH|q=2xEM51WRV(PlPoy^f8MCA?pjI_!h3%6Jch^7ElyUn)2juk`_OahiOn zEfyrb%hCG;?-k{e`6Sp<>WKqSw7oa5rovdcKVp0KbO}F;fq(fF-?<8@_!%+AZ`OeW z>cXC}TsGRwb`H`NgzjTGyKX>l4g6{&p54*-h1h3*+)UDV=9A2xy52Y3Z^P3{wsQzr zC`?`I^084_3$8=kgcDhOmr<7~(1p4vZJ$;)R+9I$-gf01YD zVQQW@P`x{Fj>(_G>&DPIyp(bbw!C$Pce+I7DzJu%aXoSS4ZyfH8ZOJ7> z03UXtt|h!&yi~KMnTLOjly@1nI)f%MgFpAkje|W!P=E^=%rcU@_AddwEqW$Dx{4xTTUHMwJn% zNITmZp?Wz2+yh(A5f9$f5V;=(#7Ka9G+uK>1*(us4WgZTLM$2ZqESmy)aa%DpBErW z^b?-EU-ESn{H+p9|IB*g#CI?`J{*KrCwFp;Y$1N?w(3B9K5&Y@96jeehXm2SX>-;0 z13V7K&33?68~8p*X@r^@^>2wT;#;3TRk`PFxAfI31ljq5!nrKYNN-`s=l(3jtvH=? zAe}R2V-bU@+f#oyKF#(^>VQ%n*A)|%WI6lwSLDY`C&x*bU~H$ge_GK%wF_#H|F?GG zw&^ptyj5HelS<*GGFA9OlV)D37$Iolee$J9!_bw*gFf73Y34r1IsGkSFV^{Ic~ltN z2@b4hO?u2NbDNz$FNAMD;R`GoG^E23K9FSb`#DhLuG?RWR4rdsrW^F~8Mcx8Ks0ps za_9Zj0_&ZLu$tUv8A`3?F?A9rV?VFk%6>Kf3|C=f(fj3t)Dbkc^=jHk%J0YDiu)xu zqzvX(r!DNJV@AjIhd7Qn0I=H!GKM@vg-Ab<+&PH(ueyZ>o4a=&(Dz-$ba)y+-gfxTn-gbtaPe2vvJ@vz|RslGx-Uc7b-!ef%9K_W2Xzk zzJ8Xk+~NoCIA*dt@r86)qJk%H-H=;PzXt_pNzowFK&CWc{MD_)DG}jDLD){-HKLs* zmn}{~1kG4>L=O{PJ>38~+&VSv&} zN0l$Xb+zxz-^q9<+`v_2o^!F%w&Qva?V&Fnf@k=Ace4TzvdYWpjVuU){K(%URi5@I zvzFWK(|v{Oc(^tInp>J32wa4QhbHAf-JT|kk$|VFr_)k7+((e?YyrY_*+$N!;@Wo zL;FWPQBM^G2sp5hO)7YXd7sW=cJ$smxY$7+c8&iwL+qLH&J3A zVgei$(!cSQ#UYrmEHnO<2G9P5Gv?{2HP|FW^LCUt5lX4vZ~zzEn{te+66_A`2l(xD z>nOy@caY*CPi`>XUP=f?`;hC7u*~1hX0Kf~;R){1#C}zW(&smi+mMaSXb2+WYqM|U zSW~1sGSY_#qGqIfTD(h=oHH%Hkc~rs&|bAY!DR*3m;2HITT4$65vs|3YmhPu;M+u< zHc3MG(Z#fKm$xw09%21f1-#mvdqE0v z>D4`&h9Jx0NDjeQj#!`DOyh_?pCcu|`~;w`-$8Rvi%z(@$)_Yl)rJB_`~=x)F!d=_ z&^_msmb23!HcQNoKnY7mGXKMa(}Sz{N`C~U6s3!-ChFaNB+%CaiqEW?c;)z52fxb^ zk~R6N0Plq8#+drM{VMJnb&jPkHpqN~WV#!nxPxsrrnT|DSKFV^oe78bZ~i&rQ2hUr z3aH*ng$@w4jnT5c{VROh@P6MDf*AjmAjAc9j0-j%+~HddqoP{1funPIAE)hs@aAmF zuVATacFvFud`udDJ0;ix_UnrZw}jT>=s;{I{~e|Nq4aVopQ7{FjWkeDABk%q4~;yq zJgUlSp^yfa)RH&>Nt5kjTTVbazbh47+nG5<>12f)($sCY+Tw1!>r=_^BqACBK80L2 z2fw*~zoCI!{WO)g*S_54em1AAn>c<4o=z11h*jEndlz}$Vlb1oVYOz_q{kl?o;>%P zwr}=vuzw2MVoOmsGO4qHQ~)d%>(z0 zII;giz>}$+F9t1(^eSyHmKIBzt@VI0O$_duOqMMDK3NE7u(d*MB?k=jgtdeM1&72i zfEx`tG%>FVru#)K4ui^lFf`G3lkz5f8SMH#6c3*@3w8TlJ&W07-duRXFhUgKg(jS( z36InHdF7RJ=hIZQ^7+?eK_k+z$cx~ZD!K4oQI?epXghtjWjX&RV@qY%D~L0u-~ zOEN`_MKv2U@(=dl4EZbx{M&*f>HLqr+VO;fcm5(c(QgREybxs4PH=2&|G9*-Y1mkR zZr#RyZLiydAR5wfo_|uM_JST3?7vQC#e9t=+BcTIHgZErw`+h|jLx zM=>2aDtk*PbQk=z8J_s6Dc9()0cI=sD&8Nb*4Ol5H&=UD{&3U=sgbfwIL4=h*;}*S zgyhG7o}t}ZC~b_*%0K9W5CAb}9ZKR;Ma^D#`2=SN(^x*C!0`CPlhq#pO;Zbo@>Z|` zHC`|}G0?VJ=;pdeDtx!Gl*L+2r*H=JI94%P}=;$%6-;9Lm+}s0r*?T+)reiQxYTIj~$&BL6 zCg2+!&o~3(QDBGAR)B*;Lk+RhcJ1w()$#6zt`u!tsmnv6YN{u!Kjl<^mUrdlu%v!S z{XX`Y?Do$=x}+pG-rhKq^P%Irn~VGI8NuIw)EYmn^^?85+7M}s@LF%xE;1`$vi|)H z@(KcA8|^O-G{K3AiX5u1r*u{|8Rp@p@)VQZQHokHil^Jc?y9zLdwyi7zkXilwd-Bg zIrVCd`H2hiALZRIXlYZo$(+>edgXqt#)6pRea0O%g`Kq+z@oO!MAe4&u!7QZS-K(Y z=q60;Vf&7aTM5+|SfS<{XX^9wE9=kIq(TI}#>;4mr{}HE6mr#R-;G|&)?G=#AFCeo%R@RB{ zC2D;d@oL-n=S{DoWJ5h=2)G@c3RmSHi^hM}2ox670kMiao>2G`mnk0ct3RL3i_Xg* zD?PMUe0>AnF*Nk-Ndp;`EU=Df`9B|R!)1~XZ1*Zs{Gz}-an$P+lThJ)fB!U@uv0MkEhqTRj46L5eT}HpLXl?apI3kH&=XS z8LLFpHp;MhS7mzb>iihp{fZ}Y9ohYH^mmhXjW#ne)Jhw>aa&SVMs?So16zx$5&tY} za@j)q-fbLaUv8y^Sj?@{>T<;vM+kH1CNpRZMShs^W(ScIZ$2PL;o=>=?Qop+wwUYycCB~MH@=lw#!f)7+*Ou7z568mnM=8P_4&|#>dRK`o ztC4UXDlTy=^6@E+%ehmzt!1%&LtT7^T;=(aD*1s(e6@=rYdJ>sx=O1*ZNQlZ?C3$5sk^t2qwavnieYVe69QX3 zj5$`|AC>DDm9q0e`P)q02YVuPDhdMX1fR#cu*ut(&C=&;^??>uGy?!PQYu`|7IY=1 zrtIi4DBbDyGjV1AaOK_Ce&cASS-bD`7q`%*0o1?$wWOiJUJlp(njh5+fI+ z^*Hx>*;h8;Ige*{C(xI!@Ai#BnZd2zi;O-otj5xf3Zt?8qZ7o%<45fV;-3~B9``#z z6wUlO9TU|*!i*N(E*Gsy9xkDuZo2c2)Ak|5I45(TY9PRHw$Mn}&Qm$!*X{`Y*Cf`uTSH9U3|oJB#N645GQzD~kYmLFD`;b=WoQlbv$V!0vsyXq5BvHu&B22E3l|E!N2Stx+_8wn@v2{sdhD}_EB-9 zUr!u+9E3z;vXg&zJK?B3^sBxTSeMYVZ63TMe?8TF)0*=`U;O&9x~IM!D_Nd?in7`j znY$LF)t#(qR#D_}w7b`t&G7h{TB;96G(peW@8#R{d}6eKhnsUSs3an`L<V_-zZDaaPNbGg7Ru*6Sd}%v+NJretVgw*kF<* zVIs$hYBz-TTc#}qXa6;4B5`u&**LustQ+AH3AC$(@Y2tY{g8k|y8T1iKjjj=Ghy8@ zk!!M2)r+8#x?gU~oBCX;UED*9@(VP8*CKZM?Xg8^$@agOaN>XfN^!l}o}`1g6e09w zaTAEMWzRDa%!~TyaSO)es_xE>F-x&!FPGb~p2$o|Q0HnCVTd6U)jkp~>J|RA{~l!NNgXdlaT5sEe_Qu|(Aq>w#TPaAT*u(&n) zhJ(>5i%7-0UP$r+ljYqzZBlvn73b4=!g9P01g4;^^*7VDxYyN_SlXvFTFE}6iKz+7 zRCFDr95z2xmHL%+mw~Qq`DRQS8CxOOiJrNP(4;dPqy+tHVq`a6_;}&!x14sEACO>x zPH=T3Az2mol^B3_p51*pG-uB>fUr9zaV^GzF{a%&w5d15XGkEekqSf>g|geGRt@6U z)2V66D$Wog_)zdAHI_o}mM>{gJ(>+xWm@&}ur&7v@!yE=?b|mER0P433#HVnjxzTX zT#`j2ah*g%U_gs)gvGzRP2#TPRDr{@%nMs@9IUH!5b3%5waGxzdp`+F2)(x+3SDM` zFnBHms+Neh!GH~n03l$H77lFfZpuR1$DAt=`!#)Mg6L4*S^=5F2!6cm$9JBiE)_=m za>$Rp9A@FzPL!LqJgvJpE;u4~d?j-HEm_zHE*$I5$g753>*vxRH|@wPbIL>wKZR{D zeirw29$tEz5?c~jrHmt~NH>(9l9i}G-Zvl$R-c|f!IN$>-Emszz18ED_~E zQyj^vjwb2SswEE`6ZLQi1xoG z1P59ySU5R8*H_Ltu#YNIc)^%r@KWQtj$`Bm3k+j(;(#zjRo?zbk(rgn0gVjxRrhB2 zLlP}ymh4FM7}SU*VO!juuBXZ*?l%s<8i@`-*Pgl|rcp>Y>0z<$lWySK!mdlo9C%E=KWCp~S1R!LhzPJ?D{Kmltk~X~2ePHgjhNPt9M-*>nT-&l zE;_!AgdZ9jQf6inrbltsJleMRoX)u>gI0nBsUuki8i(JfSSRI!*=}Jb-X@VJzY}PzWpx!S$1?0)SSeh zU|WXOiGKix`1$lW+cMmuSrWO`WAEj)yB`||gaBy_|1YB{okZsUZVE&p^>An}#z?*; zrgYqbdgFubMkb9|TwRZi)*(Tz)DVxUx`olloyVijp9?1iTZN~u7h}Os(}+gz>1tj0 zR@yJVaxZgt&s1y3KO!SQm#FfZa=ls@T7}DM&bLJiWgpV1Dl9iWY)c)4&fGXO>T`yE z)B40Xp&T9sW5tAsiw742R1Imfck|1Vi1#TJ3TnGhu(oE!+^#G#ueaKzq28n)juJ@;!|t zgFp+j;g>Rc>1$}*+oEm$R^37~mjpZh9$ZCuB{Nbe2)ncx8A9TF4<5!Kx)3ZiCfE$+5LKO1aUnhC z1hZcq6$x&IBvB}DOmR10q8z;^^4CKbpTKR4iA_3%fa7X{S=J@wHoKJEIe>R2uIjMO zS#PdO%y*de`|V7CcdO1?kuD+#P4sICo=^9=t#Ppi-t*C3@YF-kW6u}EixrwL0geFL z`j9Mnc`aT2+pIvEMC8)4GMxC~{1Iv!A%e5y+@ofyXv!*NxX5)$8m9u~fb#Mh(9@C5 zd6wajo)uzrGMcdHx5|wBvNA~^S#UMgV!u1{%0nE&R{*jc*}vR6a74>4h`5T%I}f{i4D2B1yvzlCjyhz z#(a~#eAL~5S0UYmaLEQrCB@a5KfUC~+`sYE1J}=g;Q~lko1T^4N%nK)co2^dF;zU9 zJJ6*OAW<}|Y%?{RMh_=M=m9lotUhM@j%j(YNkDIa^8HJ{8evlCKycfm3L)^nm}#V` z;Ch>af-)stacN;szq!?@KT*7nooRw`m~wLOO&yUBYz+#b<$^*%a#S5{e@F3tBn?`y zknS2j0U@dAIdi7G$ zicupQZOrr7rRtr|utePx9v|qruGXl_J+p2YPc}!^g9oB)Lyy6!@gEo>=pGEKoqT>< zF%|g#LwewzoF1$< z9*1cm>3ji4bL;U1b4jEtnB>dNbZ~&Bj%dm{A8z7AlE>IZS~vzG2h&0OPa520b#?xu zXO@$dT_X11$#pu%I<(NSY+kE1P#>0okPrZMIub7yYK-I?&y@N$vcBP%ck_V<+5vdk z3KA+`zCg+?>bv>2tkyu&RbnnFk=RaG0~dW5IlF#h|KHOhL#`6^wpdT>zyCSnZ^RzB zxpm7|wRi4Qpp_5W4u`|tfScXfZgD*ABG@{g0Dzqs4jyA>T^Y)fk)4X7W z&p6S9=AO+*av|*wz9C^=%4W)E?TN5yq*My`tHLIUNY2@=8B;jku{;VX8mI6(pax%B zb}w0kxQp^X1uytt*p-YSyp~MB&EFyOAyz?<8+9CT~&?B8>$q z7`2{0hw|(+mJLuERZ#8@;uEq}wR;FOHy=ByTnLl;WsJsQv|4CNjOJR@EJ?C^Ua}m! z({BDgE%M)ym!O_>FcmVn=OcZYzU2Y`84&#{zJ7M`!zIR;4b~97 zS=Jcleag&)#-{(7%lrV`E51KkUM$uufYF+ma1ApShQHaJ>RR81+(FQk1mrSgBI%~n*{8zaLy_hS0lguvGx z8o?W;{2sP`#pjJU{ZEF=8Ov1)bhMVb-Q5y(tn@n8CHYO!Px>e$&B7J|k_<$~>=-Rc z@S2M+U+c=P5*A+ldB`dmM?Qa$TESrR;+s_7KD>>{98xOjii6guXI_Q!^v^A_rKFN3 zm4@`f(RDov$ z{zT`EE=g|ee|48Y*NnBq;jMfc-`>!!+TladpCGK4#ld1*^BR`09OxTqG};%Pvi6W! z=*5*THbHJJRDb75fGLttfkCB7oR_63tB6YAAZ}YCw@g22ViU>SX}8u2=RQQNao&gV|I0;3P+GwRI7<##YGI{jt zw{M8`T=Ra9q;WU_Sr$*tE>81a4^ScrnrI3Wm0TUTt9_-mS z|6<*dbV|sy$9)i=#x5vU+)M?SjrPKeWFey34B`8~AYo=$+$)>~pIXe$Ns;l4_DM$B zyE5FaDm31al;l9CI_em3T5(*wy~l&Hj=1bnjVh}6h`spFZxe@Ku4oxvLDdTY8|CWP z-wa5BDIRZ6yvh4+YfbdGhm-MtWQxoj2>!}8CXZ@=R^B=ocwaiUOg7wGBAg)R!=+8i%Jh}Jhr&`84C4|A@OJz>^mCyDC32Z&=7#>w5`$@uB^h!BBwUJ*b zMh=}8A3=DMZol59RQqGj^1Zx6-94_NSpM?fq6MF7Y2i$0C{6(+n85rigWN9i?(Vmp zm#jg6jIs&4c8!!;U13kMIz#!In)NjkkNq=`TGCFV#eSF3xyTt9T6Q`FUSX#O@9y6u z^#6D(5*IHp^G5}X0;w3sCq7LlCk_^*L(@C@_WyYS;)!@l;pDOtB~iDE@zulCe;-m- zf?hhm(k4c@kbXa&F+u(w5f=E@N^ELDya7UMH?UDRnf9drlbA^HLrl25dH*}_UP;ph z628=&Ze#4-!9c`Bd_pBx97zJd_h0(dqQYX6qEYmRrpt%ikUhdf@d8bpg+d^0Cr`VR z6y)2ORGM-o!4pcSW|4BX{*9I3XI4VXAChQwE@1Rrz)g9sIa8=O%^z7z%yssBVqgB) z76Mqgk2`)$IYWDuQlz4Ou;29vTJ@&vr3j!&#w$nv3*6p4-RNjpbI#WrzPGVr%dV0@ zlS?7O?=IMPWYNRmaXnjX?bX)8j+E8D0X~uFJ`z8RWh}<>Oq zsDiMHAFq_7Z}WdA(Ec1)&ZgKdY?rRU}a5d@o4YhG#X2{0c=Z{R*1Q-;OM z7}iWTi=2o>lYEydg_BKZtP8!7HB(sHb=Cd{bG7g7_(GP!R1`{uA z6d|*`ECt%gh`5DE(Rb_h>2siP?FRckL9&f#IC@TG+RzvF-xE>Do-zos67+G}5wqqZ zhhDYl*hy{`MDeqYJ~;V3AF&a>_c7O#o>;e2#1GtG`k0?XtB%50=_eo!eMaAfBjw$@ z5D^;hHB6LL3d-BQm;jAPDBHtYVV-LaD^ z_jB=3bJUv5#5w)5Xx_0;Qno)a5;|nW_olNFK+na zY;htAP{v~O6b}Q!Y)`?+)1tT!2}!!K5|asj+InO{Ts=|BsLM&V!d~#xm~-sbv=Y#u z4e2m#dx-pm5-*FGJ455~0k{)co6|o6<=g|a2{!zx-|YfPSVi7oT*T<=hb9&Q7O1)f zRd7q+1+v#!h^3h;86WI#YDJ!Lc2JEg_uJ&3hS_HN(fneD9Wn675^=a?w=xtVg%+Ce zbjN#r_uVG7va9RC=vUCP-A2#a8u7Ppr5pe*3~hK}0JA*j_kqemU4>@ra@6syRwI7M z9#=+|aOmJDu-(TL6e)JSvX5sB#2u-sehl1qldFnFD%89bYw!$FX9_Z_xPSBNr{mV= zF)Grr>p$rFh9f2TiSZM6RXRnrnw3|lk3dl`qaB6R-e@_+*9s42)t=KnzN@we&(9X1 zd)(i-7Q%6o!UKhvdyx`LysWVrMKu(C>HCN4fGx{stGsQy2t>Nl$^vCUl}%rK?NCtD zBZ-8SA0}QUf&I0l%p2(7#%=Sj)>`m>EphVuuo1mM_{^TYL=ziDL^u(JJ5HQDyA%16 zd{4UETSb|`$C(I(r1l>WR~z&EZArM+Lh-KSqK;5UB}kM-Qd26}5*!CZHkIvsh2a>aYtNf5;)@;a zZE&#^^m=U`c5--(7A(rcEfyrW52=Y=SG|P39PnN$)}LLbI{)S-``FUQL3(ubmI~*yd61CCiV#*E${?Gp|@C(@^0(f>1+>j*^SX&^L%w2&F zEdmM22PbWmSw=KzyJxgJCIk-I3=9~0YB5!k7h=G8UBVZn_H1*irNlTw7Lb>%H>3JcV|C-U6V4L90T2#|WVrKE+0o5x;>iGSOvqw-CXQnl=(e3J*9u zLYvPX>MLciTyeO={{8cp;Lmd_!_i%a;)VBeKN&YN1Y(2M^6oUDWh+eF*I+Gpyq39# zwbxm1#0{nH$f%p9fT_YdLb?#TaxM#6!mEV{&s_9{%*;#6UdC;p0|?v11VNndDH?;& zA7B0L)7XNu+{0Cd_uI#(f22R^G3^B|;0q;K8D!Yo?*6kH>Hsp@=9$Et5ihHYB3SoxF8((@f1hrAiFyCj2pL2^ik8t-1 zT?y!8ijeijA2}Ei9C`03T>@-|Jo|$@;)QkJ~Y(}uV8RHSQR`s zB4j$O;&9UzCGH47c002{CP~lIbxEK28d33)!IKVN@^07giPrV#yUvtD-=}&i0c7wJ zvuYW3T{USFI8_U!8-omD)_mnj+<8^bPF8(xfGo3V9A0Eee{hWf}9x^ZFV*835%(ajyaZQ#s-(E+>{6sR+7 z#8r2;I!GUBBc8(u#y^OU_1&y~f~aycqCqS$cU%jVO83?+xu$LXrXSPM48u5^Me4>y zf19q}1P}iovfer@>Zo}iMgc+T?pjj1JETKWTDrTt7M1RjE&&CR?(UWnX%<)-X_ju@ zkI$pO@8k9IC)e)TbI#0}x#ymlbCUblRp)~8D`DR5=Y+zJgz}~UH=D+Yw+iAPR7#mH zhabeFEo!J?!z9!A?UBL%)FH*9YG+IT=KCx};R7}=shVyB-(HM*d|?e{j?PA=q2eZlI zp(#ubb1w6JJI?sUmB^nFPftq~hi@5JB?p(jp^-(^n_&rxzI7NdNR(kIW%9UlDY~5& z&H6w@-g$y`E~_(?zw+h#Z5gU=%4)rJx6=S_?)#QUWF>dX-weiW%s)ugwU@vhK&rth zq6j>fskb-B(kn~e0M8x9vRbD5smm{s3V<{^0Y+2oYQNolB z=45lggYCPLC;9SF^QvyU6R21S-*qWiutJ`!2F|&{Fg&=NreC(U9lFMDZxcyiI}0+d zdvEIDJ_lD`1?xlK`U{cvw%$N?XB2%rL6fc9`-w==n+o2?irdC+TqJSieq$6`(JuZx z0mOm1*%XQlx)|bWNOhA36tgZX3%oS5q1%n|Qo~hySK|x!_Ckj;oDCB$rKVNksfOU^ zUQiE$!iKK zw`TX+W3j{gdX0AD1o82PFV_cs#~#1R8o^3A_ryuaXN@0t>_~4we&^@g@nPSO)1f_j zJd6$1=AZ9O_!bcJnP>v=H0e1WsF%4Bo&<_ zG(N%__jr=#|JZgi`5e+9jz@HcK3S}{K2NK!N7_q6y}M<+l|oErkmRT0gZ;q#AtWkW zl_#cNtLihcUT*n`TkXAZ)=ohe(j~euSq;3&QyMHF>sArFiK^k3~Jd*ZdN72+iZ+fQbPZ{w1 zRJt9Lg#)c|)oHCa-8ZGa@>&u_Xa1noVO6bVdj3}IBCK>%JS9?x$gnayfr06{*sPi`f`xKTG+OwpOHYJx3zZd;c^_ei&&Lie z16pR%?@41(y(4Z1Y8)EDAL<00{pT3Im}lXQRL~l9lCNhj5$uoIv{=-6+dVnn@vh@$ zf7@ki<0*LGkGyNA2?5vU6w?t_Ao<2@nm~OZnHVL3$|r=niWTreB(Xeb;2%0!7UI)= z^Z11PhkTPWvfr?E6D{Q4I3(3+oEmX2ErTUcsV2KtnrP)*osaXF8^Q%W=2Depx3vl- zWrO3R=)nYzzfk#Dv0@PZm-`FvC7AjzT(~(2%i9tYnbHJ3mE@Y_Owsu!B&}}YUhVFi@UA9;k4YG&hb`(P;Kb^Y5vdfHv z!owfe0`L^v?!<*Z05>h=XA221NI?(3Zg=;mrz@-R1$W+-j6gOFc452$n z`8wB@T^KY%S`f9%Y~F4Gf{LQ(Gvl5?7fo)^Q7i72167(=pC@@0hAkxV(Lf;WP9OY) z4WABHP1KY6dcv5ldY_N#$O^ehv!x1|WH`smyu1HEG4(}!bQ@9vp0o^Ox)fuw1ZToo zAgdQG(&Oca$p@n**S^O#i)7;ry6S7;lWSqpqL#vq*O{kRL2*mLHbj1Jm!0_$3})kp zwv1CoQq~vs4F?`Ca%W)+esr)?F~Xjz4HJInHR}Wk9C7syyVT1r-|9?J_B}~%;wZ~? zg&#VTK`T{azuJ&)cdX;@P%UpSjR5*m3Q1i@smC>lvYLkJVa2CR%&c}{Q;9y5zd?lT z>2G}W^&fon^*xS2SocBThaU^FpBw{F6I*ybYH~MFO1J?*u&vy;XNj}p1XU-k@89IL ze1fvmVgMP3K2JiTWM|1GjDy2T7X+YjEHWHYKQbzq*OM`AG8(pGb8s0Uj?=Xv+vjZW zCo^uTY&I_tnmLA`l|}df{khSZlFw_;td#+E-EUUa-F$m=1^yv59vELfqt7OK0s=w<4a>wM}R94 zZHZU~Ni{QdI-z9VS1S6HnwSc(AKrGwXIRJG6)7YEBjaS}TBK#}jFYM58O?s6UL`U? zRD9JBLQecSYvG&H#HYi8{4bXeERUB{nm9eFj3_8pMHLEY%7II#1@)HOXa}o*x>u?f zi9l;Xi#hHqO?htYmX9pI&e_=%ul-n*gIK2x9e7q*l}T8hI4XYN zDeKCaHc>fpy7K08Oxdb*q;)CaeqS=fkDtvTYDM3Yk!Y5DxrA?GwvZjxey-~sYfuJv zNz8h0RjM8M@_}t3c-zv7gGU4nQeRcw8l60?*|9k%d3v?xlRHij&xTuHbl?MK5WtV3 zN>{v^Wf|_i>3_zVuGn+Zn3j_SD>q&XV#xB5rx^M zPBIxiTteMQ#m)(Zve2K(=LQMiS_aCObw7L2ce7oiUkh=TCE<0GN*plc|Y#J`_0&>ZrhhT_8X(r=Z#7|GQ~PI73Y|ujsk@=Cd!Zc z+Lslz-h7cVnNBES27_p_s3G0txFJVJQ!T00V%lwSHXFvo*X1Z3Nvld(**C(of@C_N zV0~d2*!#qJEKyQwis^wz>HiAirrwu~b?aR5F!WJKSZ_Wb+~R^aGFalKo>j<3yOn(D zV0M6rV@IH*b32zvDmH~z2RRsgbFU<{T$F%J4&fr+mq#1>jLzp-*-@|igW!HuzsGAG z^hw{j+j~B(=NnE>K2bk?HHX+sIw4;3akCPa+@%^YnX@m3q_T?A+7)d5f!uHX#)G+{ z{N`Xli1rd~(!P1L+QI%yLuFH4h#Y@(1Ps@*sEC6@G$oNs17W^a5FiLJ- z^r$^8n_H`aWMkrUF8n+bEOOCZ8u<@2N0uUTO4@$e3Yd$I?b>;Bw)@%8Rg&B&Yj4r~ zRe_zy(uh!((DXRc2IN63F|Uem#0nz9;9)ef^Ez21LO|=?G5;Yxrx58~(L>ZJg4mt~zOM@$$<^!0@b2K;};|Wa%+4OV*hk9quf3}AvViYX_uZdv^Di>GA z**L53zQ-WnAEJ+2a)HqBfK99xsc{pT1@)f!C{QE~FxlqDmdFBco5EP{ho*QJJAHIjC@qiuUJB z5wBgWCytr!c&sXGd?Y4`P?D56crD?8;?i)?Q}8vcdo>T)XZXj`o`co2j|=3^Gk4jy z53I&8!=}Ec>gJcRK&TCi2-KeCqPb6xj$|N*@i4PqJd9sg5sgwPKb=-R*~&*0 z;<~zMgsF|kd$M{Rn1F!%IkKa(rG}XMK8rFf7E&Gujm`uielP_qj>FecA!%BvR(oYCZ7@@fL&-}jL9V)x_=VRhbedD4kp{A) z)|CP58V;Z4oLK9x_2*Tnri1ax_r+b1BIYReE`|yz-ORX7FSe`uXN#;qKG{;k)0!Og znSA&uANfK)an%Ryh=44XnBi?rxb#tMfs6N z&d@EY4kUnFoC$9f8r04B5^PPFeC%Aj<$GP+sp^v27>QoikLeab;&uz?#$A1HsCT=d zdn-6}>>AitE4@)F^i4%pS8a7}6JDkHD+}KNKS-E29zFc$M#UA9I1UyW?p-ST|7#ck zI&YPRWzK5iM!FJQTC1phOAAPjoIfEIG(vB(t(aG_IN0q-jj zdnOw)zL^$3@>``ruO-AuZs&&(0u!M&kw>MP4Wxw2wb&Xf7wCNj>03HSL1;nbCTYewJ7xhXsN!J$+Kig%}#_-TiVU)c+ZFhaY}^ku}< zs#xALvZq`7ekQc!>xDG=@FD-pW8{kf9Tm5d)(6z84WiG64g!(Y)JU_04~!k82NrzI zgdm5s%At38pbmQ~zmni?KwzOUrp+yu(?Mg|sw+0wSuS|0v|{$mV9x;$?}g=VDEGqJ zTP%#v<)o2iXJ=n3y`>jiTIFa+gX7WQw~cVAHV%6#j)P)ZtD6?dQ*e=YsP6h7uSM^c z=*1%9%U9d|j`~iw$BzUS{V^k)7lzb%^|)GAe5-7CzL;ey(blOsINff7T}TlNv4n{y z7DnAqZ6#bj`!rpG5G9h3Qj~_d_H%Dn1mc7x4kAZ?p;!B) zlR->5$gxOyW{(#;$6ywa8q`2{{+fr1_<2S=npp51c2V#!rQnf9UJ~O8@G~GKByVw%afim)C6j^= zizYTh$GXz)8-643_y07Bs8RU1q5?J1ln}9qA8SYAFTuq}CECHr%23D4HnOJdjpBIV z^`vGC@oN1I{2+DEHYaOVKD=LZp!kOEyTgNCIo zqYn3L*KsOyac(Ne#qt6{;8|E80!9Z+>EXO&wtSWuy0S1JGA`X7e`GqcnjyT!9=r$- z$^2#`HLn@f{Iu~ zM`@UfHs%BOx=|_~ULwuy5iI-ZAYRiOQ=KUJDI6>b)*SDSN2lk2$nhSfWB;#I)*227 z+xl>hg5LN)1Bmiad!xf!MaF|crq?fC^mQR#Ey#}|nS}PopZt=(50~Sws(fe79lCAg zO)gz9cPcn!>Bj!L#R+f5gY0oD6-?yx(A97y25ojhvm7dY5XFu#=E^1?tj8Wcn6Bj? zPK@43e`#-T-^o21dr5{np)Ua556^xR7)R=Kd*5G`nRJQe(8PB7awDi>f{CRcJU91( zSOLj}_bIUhxf!1Opicb;hBYcngZ0~38OBv}jh^Av$~`{jBiUhBMFXh`AL(-|O-&QX zQXntKflKhz=o1z)wWIy3xEmx+z)ZT|_5R_FZ2#l%O~1fF^ViwP_iHU~t2g{Q`3i4LHp= z6&*-`JX=Z{4E)m;aJBx{0$hK|b0{^P_-dGHLG(M_d;BwF58Z)?SSh+i757HZ&ZM^{Y8@duKB#G z9VroTtS}CO%)J-9ycW+ABVs?*6j>eDZD$4zM&_>o6_c`p*Nz+awaq31llcxw118w^hNlhpx>x00p<0BL) zJRBY69}Xh4H^~g>9ocOl5BV=m9gtmRJ(HE?$qrUDp}fYN)L=ulwNCDo+1#caQDYbc z!>I%xF%~Tq7OZ+;jI44QwS`Pi*EJ9LnVNJtJ+}F8x~lATc^G`I(bb`~o83D~IJ#lI z+kLztVF~ntt%c+i(!Pyx7hfp>aa^W%%gppPq3!08kwqvVcW2jxAFe|i-cwjI!xFc^(!rN7 zd6m#020Wf@F*@9nuz-*NL5OD}ZBTMfx0cgC=Osir3Lz2f(NvZSdm)zne~kuMXz9o_ zB&SF3>>p{)HZdee1Dh*QI$xc1X+9^K&6#QbiB0gr@1cH4{*70>A|kaeZAjM!^;Y(g zFM;T>UPnlB9c46W+yD@*#_Y{j6qtKZFyNzg&+E6Bb2Jjr<8Q%^pywrxr#ZI^%X>GY znc1mbE|pbH5oM#?ob#x{Sg$U6PbKtk9`PQ#bc7={7(*gp&&9G92N@a!RLF!vy@j`s z>S~(y+YbrNo_iT>i+x9x4B3M#r0Q|0Cy9yrLet%Vh+@c{X*5j3=QgEHhBc8#`QZ2x zH)!@+qN!lFt?s$KQnwy#JfQZeP)3$v94bgvxCsM`=w3VqlMcUp+oV zuLmulFzfdD18u7cyPzw;h=R3p-r0*z&LUzznKl0o3vybEx;#ty zV6SZY+BH{-T0E_h*O(N&1>9*eC4mk~E8Te|jK!R^j?lHCU{;Mx=hnf0)sOx1Zrth7 zNBDR}8#dH&P2zuhckP#uzodLu3vmR zUr!b+LG{>dCNwuU*Xhj|GBosDs(aP;s_|#2ev=|CPFikyh%Tqg=?q9~manosx!<8k z*;F_^*g{v82XAsxom~m1WN)u5RScha!82|kR))mYVQvnCNN;Y^E*jh5orYtZI~hrx zdV+p|%4?-58H|_`$*u-l!SB%}9vFt2=k?+n2Stw8_wdB!hHdaX=G#pF~;nHi)C zdIVJCWARm#^SJMafA{ze<4olB|8GyjL^$UAjqYL$381oWVIfzdp6xQAE1v^GA*INk zs+KUy`EgNBz0LMhBd>nx4y1u1#rT6a>IC6kUN`%cE&n|Ce1?B~W5~^Hw07H8-NW$- z$~J6AB>)%YM|FbjVYk z>(J0ZyoCCx_{{&%WOzI4vFN$`5t`+{b3)tdzr%UhvZpNePJ~ZrFRrGscJTrR+{lUo zilaqW!PKoS1&BEBwqN!0-VHRmmq#`vnO(THmU)d$;-ZRzCo-^r_@hzx+W9ZS8X|`k z@S3C+R`$8Nc^v+WatM-NT%+2rNWQ9~_A}uQQwdm0xhO7d9ID)NR zpMrI~EIdXr=(bN0f$-oq5JWz3Hic_=zfuCb;cLeNKCCi6d_XkZ=;>xdsV9v6d>y#_ zxNCQznL-&oOcFeKa&q#blvNobiVCX=B9OvIVwn5#X-TIQJzV&*63Vo39Gv^o4v#K% zX+$+OBs}~g)vjFf1!ArjuI4G5*9%JRe%KU(DmuuEnx8@CX=IsfIce|UC(dbCP(@hP zF}b&E^j=7K?7v9}nUBcS5Lj3q&=#{hGeFs-2e0?z(@US*?S&t@n;&mFk3U$|mG$Dq zh?{cP;s(86dvCKSMk-rePsf!d{C2UfLOea-^8shTb|(3GSY$=u_3J@PPVbwYq7Qn) zS1jFY3Y+P8F*2}7A*1(5sC zIKZVfv_UtjfK!Mim5=qgp+0`dQfQ2x^o`&{yHRf!R>5MSA;g(E2U0I0SoSM1EV9#(xigqM#;U^0=h=+mk|>A`okdD}(% z;Ug$*#QEeGN5vfx2sRnN*5FZR4}~?)-loR+A6=qtR(&+Q!^{DjxDCKuuUnyWtxZjc z<8JrP?mUzR=&y$(qlY4%135*>*}6iTMKHvn(f5EDNX>g?LAy0>Ro%p-^Ose(Ced6v zBfQ5V;guDst^IL}zEWtqUgO>sZaNfwZ*^U7|9e^N*42<&)jF{;4=J{uAj~Dcr{hs_j8Vi~jOye)}uNIv^uFwiEG8yuepHYFx zetUNOfz%7!1MY$`QXu{l@mdO_MrW*yax<_a{!nik6ih0mECLieEAobwjVdvhm701u zka10_>!f9tC_DMuE@14Il~r_kG}{@GhgMbHKgWwGT$d0p4~-3*c7(FI{?g&`+G*t3 zQ%$7w;iWn5#0TXU^wwzI!za_oUqFxWG*5#Df#AdNI=eS1%Q2N*KyVL{rqrGF$l?c+4iCQunjd?7!wrbEa9X`%@lH8Ud?q^i z7nBB;;-{qQmVbKe_Gnipk&K4Wf%4y1mw{?kkEztTL76h`HlBu2H_qCzq-kh4q@A7W&L>3s!LTBO?6UKPoNw&K7rmp|j22cq|F0+C@7KZ-jP69N^_)UIZw4rfVF9|><6~Xk7mx4s8h0P> zrYx#fUy~gbe2t`#I1EK5g9dD8>lo+(c`1abt!*Gp^Mci&N$?734&G(=TpW9K9q{A& z7srUV$;Tf9ZSeRq1Gnw>djRA(0d|Ywk;_{-jVZMs$bB0U7x42Uq(oVweir?V_e}D8 zp~mEAW@~UzHSi>C_q%c*aFi><{xuTvn?N9yy|v$BGC;AFL7Pt<_Ye4jS42pRx%PTh zABcVPeSlD|5Wd8~j}!j8pBYOa@x=lGrrdD(`MR#}a zg(_QWKCBq@SslbTMfaN%XR3Q})f!%En?n=0v(2KpkzH~8v~%WfpAzj`Btl}jGqff}aE`y+i4D7n^ zQV@h&F4=AOZBJa2XRdyl*I!>&pjCXsa~J-*s}C~^GJTkEaF4hjXU~vO4IOw)ObDm} zarnpG{=zh&Opi_U6n|dw`Rd80gkk9VGnVgQ;}uLI=4 zADfGu^328F`LB0eqm9(D4C3VmDkFsHHQ;Wa2t0Cr-kVb>f~~z~>%!|YGYBiRnT7#j zfY$7c^SK}<+Fn|&9suHY9uMcLo_|i12YS3FoW|;;2#fXdY~V@)bTJN48RwGZ1O~VJ zisv_3`$g0C*OY>3v7}_wYZX1`fVaBbaeZbOg(rfT5sw1D6?S=+mYd#`XE0wPB=Lu< zpxQj9QG6j*{%^%Bh+|xgJ-!$0Ml#Z51f)|3>cpj{-uM_!d2?tAaq2Q@5JK8+?bpH%>K#EU)cF)2CH4FI+H4+(#Ol*fTRjsPEl>B>Vn_YRA8#BLW z@u6qm@?wJp2$X+smHOg`MAs9|jBj-Ui^b{mvW@40UxSnQ_=3iV*W462cW#ix$fi}R z$^5uRn!Gxb^zPn^OG*911&~>;MZIxZnETnQM<_>!EgtFoLjl70c^}9HN}dFL4+Wkk z_>PYrpgKP!dV~=p^{R<%e8>xxoX__p#2Lc7p|w_J4DZ8o(gG?K<`N0nDSpXZ!7MrH z{^-kq+kd(pG_cBFfCtd*AA;~z<{sjge^xf-kv0d+FgkXgN}X>}L7}C5V-3_5oG*qi>rZWR8pNKh;;{7+$pM!e7V0h9IFEc*b^v?G=>;D9l|9xjb;+8VLX1BppUXE#{TDN1vpsNIB#7oO;eD@vOlx&V0T{XHk+t_^nkoAr1YBZwI1o zmIJ`93I2QPkbzTYed+mv5k*TLmI+uDQDi3VjO2Sr@$+bmO`K0WUUeptC}@HgKF}F3l5nqnfjth^XoA$?{`# z$(?Ivc=)b&$X@*C*%YV5Pd3D*-^0oUyR5kC+;J2hglQ@U@#Ybg&M{+r2}#^y^--#M zV3QBf5hE2SVmI0>2pqrc9+=2qNHab_2lhk3^`>WO2<*1*dslLrB z4c%1Z7*$6E97pB~s9j($28ki59-1dVR~cLB1-V;)z7QS{p?Ucr`9`CSF1+==*8;A| zZz4RZiUT7dZI5CKxK$9y_2YxHSq7z~ME(T};WgNC*YNPbc9&s^Rc5`AgLkWaNX>XHlj4BT&2pW7lz zJM>|^S9p9Sry-rpIPu7U%}pEp&6T52AtHtfu}Yxm`9`a9(81}Z{n66lU5-!AuFu7V z26QnJ3DWL7+&^~a{i0JA4*v{C(r9WNVeEL1l`IT?zWk9We0V~|}^MogGz~8%{ zmht*Vfuh7t0h~V%-SD5$4Nj}?dXd@^a`mk!jkYNMn)_foJ(4q>^|!2bg0I87KJC-agatNnv@9NrN5Ks5xli8ZG*{j zoL_X1o%eUKJUKCvVSz$T4$ke-;)<+}4vKgcBVAvdR8hp0dYE>wA$B_8fZ%`64NjYI zRKzgn=b zF($c@Yz}j;^=eQdCA>X673Y5@;B2tI^W_(K=?zT**M#sbiJH-4aL7}~p+~<1u!uL0v16N1EB;{>I?;p9dw@Q>WJ4UPj02iqM>lNPhRn z{>@RFp(SM&-+&~O`LNb~6R%$#)fJD8bn=GE!a33HVQLGPQ0Ulfnt=I3Tf zKJVaKqA`j7Go{AjwbYt6Br)=#UqKVz>t6Zo7cFYTS}erQk{uUfkwg8{5*wZ^WCL*& z9bX{iVxG*qHX?>1rwe$q1X!-T<@gV*`^Mq=!LR(fwrV%Jo#SPSlB9~VrHa&}R^{@B zmbE6S;Bmfr_o&01Vv37}3$1ESVx$)JIS_rkptoOp|ICx;q) zXUq+~GyhDG6Kh^;3VX-&aWcMRuB4S=9mc zGCa?1Ns6=y_EX|my*74vJLhehX>zg1cKYg{39$?c~}(WVYLW^E`}F_GA^}V295pPVUP9xXCP}4 zl{UtQmZg|m(zMK|2CWJ)kG6UH{vLYeUSMXH#I7k;v%y1`3nL@TCXon}UYtD9Z;9;I*n5qA26r|lo`c*9jJsv&i!?u5wa&SZ zkrNu1VQG1gQa3)jIU0v9b8jd;UZNOvC&S za&Ar~1+=ktvVT%V>hYH>$S!*hqJnEIf&9nvI3!KSNgs8^$+Fza{g3v%H_5#kiSoLr zTFrLkd$@DUjgl$A8nvuJO+X3~KfAr38}yB0zh1cY@LL*mG$TGyW~3u_Ei>(2U-a)? zyxW{rC^BH9r@Qp6`{izzU{OfNWz$Oc9-^)&n3FR!{Hrm|UEkjoPKaIw-_-dmH#v6! zzH^EC&sNnNz$O~*dsL)J!HmQNIT1J4R-gk>t2`47znc)GwY!^(ULI+G{Vd*vwM?Xb z-5lv6zgzXRZOiRQ*`|YAs2s;?yq(Y{H5I& zZSksH$jeL@V5PsV9Er*A@(4+( zC}xd3Burz-atc}vtgeH2+zxLfr6Q;**v~W1$;eQS(@B$Y7u=-CivQa)! zJe%$LuNEb|2%hN#MmcPjQ_C~r4H+@kyqO$)eoYM7Le7*62cFTg1%s#Ijtw|%U7v)Z z-yla&m;_n+-az)aMtf;^+SZoz>r06Ofmj(XQ^$uB3<7$1XAx;<{R)CE7jmu|lBC!u zz9#m08MmXjhpM=bPL7Diu73sK$NE14C>6yypH`9Ld|Sm)`MTAUwQUo#2|3Qn%5wcj zo}|n1N|)T^=ja&f6HZZbblC)1@*3&1ECQDw_EVGGk(tpl1^gY<@HcuwutTBy&0 zgx-Fl4#SWYT^K`cy1KgX*Q1CNI;~sVFs#782eX7yyKr_I)(UJk^5AWLT$d@hY6#&& zJ>dPLCkfMW2bW*q(&Qw}|D%}3rnpIEfN`l1{<5@b-FjX8wIR1&oPE`>#hD*u*tR3S z90<+hcfFDu86TI;*`C;`UEiOdHFIzf5nNI}yA9%e#kz65<#YYGNdUk=4!#B~_FR6L zGijP%TkCzMQ+dBLcWW8qTOFNn*zR_NhYQAt739X-zGDyQtc1yAEkd#B2_}=C%!zzo zX-qbXj!_a=Mu~*;alR@hRAKwiOs)UU6ol7dPu}71GI1iTpz6jRa7(1pV)>U~);^H}{6EcblnZ9v(b5K_)~*Mv*Zcp>^lyI(kM?+D1Y+qm~7zserNR zTzs!1(n0LhdaY%yTZeoF={SH;A9YlfMG1Pn3U4LB%Uc++|5#M!+vZEefPn;99^SPL zW*i3i#n->JV4H&{IaNJ&Z`5?5>g9l+yp~b)>MBN`^TW`6J1$(yhd-V@&AM;k=mJ9w z&*iH4YlRp^OoJ$q&80x*Gn`T|$173KeVwVjbN=6U`Q$s3g(9gQ9XYfdg ztUnXb4}WG-VZu`+^xpK@ahaB-_Ajyyyn3+qj@wJqyWI+Vh{V{aB^}!#hx8mTkH@B4 zv#;-oGa&$sZUc%hN`;#qNLb!w&we$^auiOIEoc(h(Q$4~eIEbBlm3s3t+b2YB4<+> z`lZOde3kvR;@)wpT9X9%a&E{;kaS$wt64Za==2nJZuEFQVav<+bVJ*S1%5*)Caz)k z!guov^Z43m!!l#RMuBYP(C~oiL3aqh-(d`)6(7cjj_XYFhyo1KxQo>GR)+x(W56-p zugFX$g#~ek_PljpAbEdcUCSY!zQlq9>WRf6O`=EPczd1U(bUEeUxr%;_%72x8r(6zIfR_n50{Q@XkQtkJZ_??HjnjFZ%6-OGQa` zLJZxe5dYQ!6j2kE&1p17wQrJO7~Gfyp3INS%#%BLz1MGjPBmPxbhvyBw3+LNcNt?2 z#EM`#`5k-TO*2)<@V0w$p5VlZ87fPXx8H?9Jnh|TbOl}#lxxX&s$;pGYJ<)85H{ER z`J;cib30XTvkP?6sbp=)%y=$J?V^hNKv-~|dDhx$51QeTo|JA_r)A5W% zR4@4quXPfYtniMzpF3pt@AnQo&F4oY3mqHuo()Qe-(7%Yz~|G1acnA#qQLRL+snNV zIoT_{*9PW;g7TECIA!wZ*gykEiDV(nc|h$OnCXdb7M|$sc~Xtc+T5$#@)xgq${8R!o^olF!DLC zyJ~LeU?Jysr2(L>uTMbDe01)0Q*MiU3v8j-L7?9BW__{sD)K;0afWqmqXd4F;gNL8 zjGJMMO-1eS9DoTR3*%eBHN(6XM-<6zh$k{Qm(n2Aub$08{%Tf^rlLG6c-|oEcQ~@_ z%lmVz27uiTg7!57%lC&@z4Q-|SY|sc%8IfI?Pit0A8}k(hH-BXTt8i_h@Qo*Wl{uK zU3=8um~N~e){{a5!m9Ne@fMqki`9BH0N7H8F>NzjKuE~?=Giw)lA5II8`J1*C=)P& z^}iEnXU{QYRH@siRs+Jd-R<0n+S{zrFb7v-Fx9fpiJsZ@)P*9^^3;x}SwLHW-lc(4 zh3p22Q6TgZ>~wceaWjzG&L?;|?;zA4gks8a*p@yYQ@m)z^oHE3?$@O$wHA5AN0SOB z(0a^Vqc@i%7U4EYUe#P0nFhjOPY*>T0Bci-j43ex0RLMBj);=05N{U+8LRyNT37)1 zuZ6%h6mvY7`V0&}@0TF>ptu2DeI321RcGgcxH|U}z4d{IzK+%t*lauS4?TYV+~-Yc z-h5FX!-8s~6K|zI>-T@}!?l?FXu>z2WxJRWDF-~O3wX~PzQ_HZCC(f$NCqhv7f@HO zzv>G8zB`Z~cvTz@V73K=*nYinnFSwS+xc$1&Jr#i+J@!<{ko!zc`qIc_pZgNmeNEmD5gs2ta?%fX z-Gw=GM|K$#`s7Hrqdftxq&d2Zy}Ay(d_Ai#CV0Bz;ByB;<#I@DbF{Tx=Xt1;*fjli z;;b6wqNS)E%lU@Y)WTC{Ss0r`(8}ZTos3AFOhKBp{+$ox3gw5CnP=3*;;otUSk30yAMQV4pcy-!6ZL2F3QK=Jgk$Z2~7(nCSK9Y1w6q`(qUJ5sBjJmH$-% zMa$t6ug8r65Q+bJY{Mzp5n*KS3O-=fxqg<%CZl9Ka!$NXo5oP-RMRivb(Cc}QeH4| zNzRn+FC?nbvpDY~9Pi)*zz5sO#xQB(vA12m+yjXN(J)B4r*Vkvlok6GDy~ImiG;!pBFqDatB3V1aJ4Z~w zN9?k*S6s}T$o+kC>SJfxJzypu2p1m%66%!a0^rJD|8Y0YNZ%Q*?`qVX#2kp`XR8IhGabEfk zeHqr49icK`#_Bt}E}lu2A08Rm9JYCj(4T5%rpB?@WO@TT{^4gT+-A=6q|xG!*?8xm zB{dW?Z3R##ehFu(ENr*^A?a~_*TwW5Tay9ni}P1KkLO50Jig<-nXH{ZyVs{}=ySg2 z96@WZBK5;t(aP}yF5Lu@INWoH!-)n`S0CH6r;afPr z8#NICBRKrU5lcbQ*A=o_Plf~6xs+0uV(R@1$&~xD@%PtB{(fBq__>PR*$$?$vB!;G z;THc|@;0$s?F6)TUq~F4#4|Y05`gSjzrO5uUKIgCf_YiE`s_b|b%h*Av*!ufMI5x8PFTk_{2rtpV(BlO5y&j#7N=(f zcS!tqfZ&Db#H7Rjgd+GVfb)F+b|&`b<`jU7z+PzYpm&Ha%LP)N^aQS#lX{B2jawalccacAN~2wLhNLYggfTa=p?eeAwcI8&e2J1eYePw{Dgc_au$`ueKVL zXMJ3J(Eofe{yQ+tR;&fERNWz@Alu(Bx{y3#p}Rn>WPIs@%BqB||JS0Gnfu{nLR?FO ze@C$vdDtPzz~cK61amm!HS^zAv|UK%6pFXLLra3t+54Br+ozI$bmyKi46nV{r@6P# z8}8KunB0rwF2W62v-nmK+w*j}LUdV&-CuQKqP7Fx_rnQsf(ah&*z0xU(343fI*M_{ zZ5LzFsPy!aGqc}6RrZCD>`IR#Lxf0oFBt8qvG!l&u&?%CEyt9<)R=;(KrB5&3@ga* z4Ov2i-k$l^4OWL6cJNm$ove;4T9IsX`EY0W)E1tkWf1!SbTtkwz}g6(<`9l&M+4kj z0(}iH@;d|BKPImdW2)NobM_{uqVjKwORw%=U!g~wxM#Ia?PR3%2O(UVKM>l2G7TeF z-w!B?JTq4Lf0L5@XZ>uzPt85i4dCdnIf{kt3z-SmnD27H`NjUxd*j^KG5|4@6oP5!lg`cwcTc;8JSy`aa-0?@dQ65gnt zVER7?eT0O3-Ln+;P(CgXaJmJy3G(A+&%%oX6Wus3>K!E za{F=iPrkk&hbssD9i<*v{eSSry#`I2SQNm+Qayp2s{@dvx%v?!JsH8O%Z#82*OL{y zzss&5 zHM%O0^BewcI02IUQc>Wb@m$V)lHN?XjS$eQ%qMV=SAQhZ8Czm;ASX1OP%lRC$3F|g z!3h;+c?!4Tt`|#B#y&Ad`g;x=_Yx=4<%Ehr24Z;fN8`c3iWlok>u`0~SAqR716Eu; z^E~P~oL9sjF}(A0v`fqK%!zqhZ>tUm*C_Mb#@tj5>ZKN#0VA(0|HTOGF8{Yqn@dC! zPPk4{p5N=-`9i3|l7bUgbHl-g2$x3rcfaWjvFM8KlU+?+f8N%}$uRMv!5PQBELh)? zOi&WTU7s-(H~_TC{_n>T?)ufSYKIyd^87_48D`~uVpZvg`g%S z9llPuNTCLhl?L3q=T$s{{j;Sz?YK5h0*MdR z1W(~Q(QqeRX8akdcfw2;-$s{ubia85_jf6C8j4EgfJT&cnA&o}Rk8udYmj7s8aOks zDPYz7B^0OsU%OWR)Z`I{mt#_|(MD>(1cLU{34t03DnelhA`O+2co3@? z0SVqh0|p_eU{s`vwj2$D%3hn$S0vsJnf$5CO?W0`5?2dEYmg4MXicc5OESS` zHl(>FzRM4qO2@($Wv(Td{OQq_?D59drjeid7*Oei=&iCDHUkwQnvpEY>TITufon=Q z8A$)97NR=jL=KWOd>4b;OU$Y|zktzmU}>W^iz17WOM!xp$V9Q$F$4pAIAmWBXZs=5 z_uiJkS!&J}aAv`C$IZHh!Mm3y_IXP7U#wz)O6II=3sD2ztO8KyPx133U3Fg264=Jc zE}8xdHXLi_1LrVkmgrw3ajPP|t zA&(*-Y&B!#4n%2)@dPO>tc%P2D#`2c;&9d`VgoKXz0=1^u~U8KSW{F^AWXR9g)Eqq zCIZvxJBO+gptw7OZ(8xJJgp;(SR{swtA56VMw-74M0-Jv==(*(jj+B2A&Yqv-No^6 zSz((YpRESEeUUs@J=a4%{5;hMLI+J~-Zm=`Dn=G^yFBi&0K4K^Lw@NZiT+Pk$E%!PyTH-uIRV)oBKDI`OWBCG#rN&9rCdFnVZsNS-Eb03e8E*x21Y}0B5pa_!_Ms7ilki0i_HKox^Y(PZ ztCYNC?`At7Dnx1lNa-4+4+J!%-Jn&xiYS(rG1{h6VONd}Vt<2ucPM}YcJkibu>*+| z{nz2#dB7jB!SDy&MK|m_PUZ9NcQ`IC(@ie7bbhiZV@&DVD5MhlhL!r-G3D=e(0QFf z^4W`n&0qa-)hK`2kt%H8s~`+HzhkyEGZy*m(JE~IyCLKVg8$k?JA}4;7a{qU}(L!M@y88`YXt^Rl|si!Q`)B-i#*Pa(c-r zDy`qwCNLt6yLYs!=yUsc*4t3}C&^Y199pn~<^f1^+0HhJ(I;{Hf)pD|X|t{{~_NjZywg!eA&;&!odRZf1cnxFyA4w;Q1DrF%B!w`ibrN$5dH{|}u7@?mt!hnKlgaM_B2?kVmCLGYJV!{EfnMNGm zn-@cf)=U#Q{tMgd=yZ4W7nX27N7uh*?>zqQwAo)Y(M`_>j5A$oV|x2z3`8t*TfrDn zv8MNJ#sD2;gaH5)i2nl+5oP|(0L+yJ)7OU?){Dx-oOKik6bQ5inmK?1fdT;l>XXbY oK!HGkK#ve+4xm8%OF$&lEWwPrhdAsOY&Co#m=QuR4~RYdH?VRKRsaA1 literal 0 HcmV?d00001 diff --git a/assets/img/hero/test-coverage-hero-image.png b/assets/img/hero/test-coverage-hero-image.png new file mode 100644 index 0000000000000000000000000000000000000000..b8a7bfe67394b003bf93afe511bbfb6aa5f60f7d GIT binary patch literal 56813 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 z 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

aTjtYb7S8~sQxW=6 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 literal 0 HcmV?d00001 diff --git a/assets/img/k-logo-dark.png b/assets/img/k-logo-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..3982958bae0974175e18b929cb5ea5cdc8704b13 GIT binary patch literal 32908 zcmeFZ_dnI|8#sO+^JI_6ILTHbR5-GUl59tIB(g`c5}mB9B%(w{C0jNjdzF>!kvKvn zql8lGd!5(&^Z6sbkH_bS9;cr7^S?)szwzq_$grY$CyWTI`clA<*z1NN^U{#Gn)eL=!zs3 zhE}Wo-ReGc^BSCpTKxAOY|@keHZ2xS2|q*%Dj)Jc4T=0rbjQi0J;y%ttG5sxFsqg0a ztBlZ5Hn8>km0bDCJA*cVHuc}_Eat4#|Bn3kdnx8-XuKUWB2xd`UAU{70e{hv`E?noPU0shc{m+cFA-AgO2PYA!5$tZvk(UMLGRi`ka|Ng$jtD63%#A@mk~4 z^LKY1oIjwU(27Hbk>JyuU(Yh(J#K}w5(>bp4HJ{`tUjE8Z zK*T%jfJYj3wr9>>;J%3@Epm^C-T4JxvdV0Y_a?sHHXLwQKy&@zF4c6Bu`^5a)1{RL z4y8hg>~ApWD0%m^KTGTMy+t~Pcta*+9s}Das$Oe!PT%u4(SE|bc&zU}C9)L+&nai` zmGfow)rmLJ{a4;Ro^GN;f6fB2jf4+Zud~gkTX=04Fthg9INMO8Q-EyQlc$lYmiqQV zmKQK&2fQIZ&+9&*Np*EED|nd$b!ov~C9R({(*fMKX72bhq6M;hUW)KC?7n87ibK+N zARn&U_Q**3Hu-!v&Ra7t7nzXsdGgak)A|C809l3f~q68BrqH>s~e4lVhm;Ccc}vD)YCGvNo@+ zCbdtqL5J$b`?hAqGU;cJdh-+60S7@qs^|66uzw#XMNQt{~oUELIpU1Z|?JGu0s|B+VNO_^s0sF5UC zj9N%?osNo;!2Pz9VKu+8Q0KOZU)p3tX5MH^BFGMyY~Azea`fqw;rZU)V@c9q6bA+3;!3mYur@+t&VIDmsk}0 zH?SVw2!9%Br+;*16ST9^h6B}*wQE`?>z}_cak_4jIVb(4r-Yjn#mm1t-=9`)Ggtnc zIc4B)jik8%@rmN_{Lo6Gy)TuQd+$)&pS5aLLZBud0(Nkv zhvyU7Ta;IiPwBrn&WB^@c}w}yBEm<0Ujj9H2mFxc+_cc^p8a<7p*B7!H;g)#_d5TM zh{{D|_k-*jgrsBA)i5(3luvK?d#>?5lm4hSU`9Y#kYkkV`Szg;KCjBQ_V--Lzcq8x zHa#sF#Xkb91Wv`AlfukoxhqF*Gsq;ScdmTrN5moEuC(xNRyoEX-g$A;X7%3#H0G1P zWo-|j_yqEYO29=Thc{JJWfw->qy}!uzn}qG%L20B7+*fmpsyFiHVD@1T%_*VR zUOlP8e0xKUlpJe|x*+*fJKA?^IF#e+S zn=5bX08t&#Pn=AgDm9a}a#oe?!I_UuqNOYPLgxFsFw%J7$Z?)`{ND*_|7eQcq*OF5 zJr}dO&Kst*Ack0=?)4 zr`D2hb0CIWv3TT~)}c4*B}6~Jdxy9#NZj9s$+ecXJ-DN6>4C|10W4kdcl5Hmg--nr zK|5aU-M3=-o*rM*?YrpKzmqRaLv(V{qt1R7o*%|LEH~0y=hJB5ErEQ4jYP&t%inUp z;E`o6;K3$Z{&IbXHPSnd!&?K-pZ+@#|Gm03U}>W9|GeO#7|Y@*;X7yAf+=zFb4hrE zM~{S}DebJ5dbv~*J~GhH5mT#o(2_`k`tmZO$R(+*78k&we%szTWL-Sk(?;&Vhy zL!9(lP0oXfn>#b7<0R2Dkf)sutDaau5kW2;R#!<9l**ES{Vt=Cm4k;=j5$yOsKTCKZQ1TtJDjAf8m& zDDgTkBkH^`in*YWmaUifHhsB!{SZGjhYxCWVjy^jM0PhjaAvSD%{lH}SdiOGfYyFc2ClrPbw*R% z6GhE7`5TnknL%6unSUCzxoFjloH{V^y~5(1D$HLAgM!3iC#uBW8%k>1w5m>B7{dsD zCOai2!F--63A{%>dRfiZ74lt;mgrGgjIqP*x|V;Sd`1NC;mY>EBp9h#|M<057|HIE_l^jJJ`Tkn$7)XuF4 z@4c_tQbv*j5tLk|X5tH;mxicNv7Q!AZJJ3iqSschtk}(W4r%8_zNxc_hyqrd$H8v@ z$0y&ttBn6kvz#~aLmc)#=>DnS+oDtcupp3Z%(Ud(NQiYUJENum0ly(-9rd_K=z+eLKu`z+9 z{cOu@1Qbql+%KYu%0ncU;5h*Ss4*pF=YvyZFP6sz+@b?acaks z>mL4_`1$*IoQ3xVG6%P-rBAFKZ~BeqEC8AB_-L_zCAYoDWv2D9v@Or847tY#eU%No zaY$Gc5VCL5xmG*B^R!uE_lVPU8le2Vnx!kmj021cLig5|!CtY(!O>LhNw} z*u1K+TE8|P_29VmBNs|F2Ynvwg3=5HSNXr~B}#X#f2M!yhD;RWc+-l2T2yo@=3mIz z`us1S$Bo~cDeZ`WUAk;cP4b@h;L6DCML5T)A5;&SZDvzfMu$G-fPd|7yPEK=^PhU5jD0VZq-cr2>cxqmFCY-K|Nw z$fJDM(g?#<4;m1VDujs-A2TIxS)atUxoA<_G4MIi|2+B4?N!YBWkjQ|g=?8U|0HEI zBz)Q6s5o*s8B95%TYxSVt@?&w=z zJWtNjte|u-*XvC;k`jtI5l%xaua8@AE4H6$l4i1-0CIa3W8xM#<)4PeE{v~Hv`m2N zJQl+JaO@dz}ODW;HYNRe0~@uv3aGv?gLv^a&O&VWTysBrE%@a5X+i>P6{Xb z*^r*kHTcDxg;rV##IUR<7@_F7feX1Kwg=?S1s!)!nHN)TufWR#o5U&%Opz{rPrxovVFiD{;p*Y z_2-Y*JfUcrI)3+AVD!rV4_k=Qgq3#VK|AbvQO-RYsep=?h50-kt9Zwcu&>LgH2|`I zK0j;i&tGcAv@AJhu?K^FBj-f$FLIjr%{gSJ$hV;A|LDh`(0EQu#Pdv$iL0Tn(k|1t zhy#j%(iia!21*qqU5PZ5Eg()J%DBly{N^A z?q-O?i@jvC{pj$qP3XcPJn zvpqs~to%T_fQuw>4Jxy$m19ngPF06CuVT(>0LacD2Z40#Bad} zO5#vM9CtbQNOZpVh*>4KvfIv#{=?n@2>g zz3SH5XIDN7E=^Jx5@YfF4XGM+?at~L6nJiIg(uwfI4A0LC z!jPs3;o1p)H~vc?OasZCcN0(4IVv!dONKLSW18i7ZPf35raYJ3CY6sGr(~qJm2M+0Ox2DVy>Cyop_%sEoX){QS{BM=S{#^W<23cIu|KMx6mb%O-~Y{c1GsR~aGp zTd<~)qD+*-M~yKgZh41h;E!0P5hAwjO0SJai0uiq;pvOe7-W5i^{}*Pqp^r9?p}ZC zHaJiaZBm3cLN62z>UFkW-8+a@z|q_X`5<$>=0D`K5sI&)b8wR;+kLeYr%A?}5ZsKK(7RzZ8Z1A+?^8sO;n9@>~X*Wg!499&+ zSbYAt=g&v%>%cQ^4xk#r|Jo%VBhzHH#WjAS z@^W5~YAH2_TpCZ@|J%0WK&m_f*hD>P&Q#F*X}RmxT1nN7NlYCxwPUYfV#*{RqB(Ng zR#ohV&7n)y`;aOq?aHao^=rYT%ERQHU&ZY&Xx!ZMW2yX#%ps2&gTxHwA6=;^c7X&y zLRyF^u&Di`fb{`&$h#3&MR(m&c_Stpt~cf+nVv8TRvIwkgiwp<4`#l*Y?-eYu=_Aj zJlhdyhyIo&|LhC-PQ{71(*Ev#)opulqg0DyP6}99)N?BQ@;x%V%J}K8hXmt;&qEPL zfXpgY1di`nKglU_xnhNfan1l>SuB&)?FXNOt#!>JQkPx3=BS-ZXmdi5hwxNU9SXHES1W=4kkLa!Mi=(8`)xyP( zYmr#i;(*xf=%-w?Nw2jezEE)C)N%19%>rBa&qtd_lHkIt&!O*Qe+ST1M&%=|vS%`Q zF{$ZGZ$x-F21TtMJH>WfMv93`_yoz$`gmz!R(jVr3^F`(F>+gG@})ei><4(=!kPYS zqBlB+onr#Y8h{*RV{X@^Enx>q_N(M5XPypt-Yt42Fe5SL2w@iaDR(_gJm1SpMitt& z3*MRDk|75U1l`W`ra;ep4#d4W{`u&Sfj`kmGh3D;>c!2%U&^10{;;evBlPj=J@4Ko zw=>y6VR){ZzFuyXPHH}c6yA$u9H_nWY~S1CB?Z#f$q)1HL0A_B!JS?2X~Yxz**aRi z9c>1@)4bQP2>rWu$U*;j(7Gj?a~dG`JXE25IpT#o&uRriRYD8Ziw(|?shy!C5+$~B zHOj^Ptn4r)%2u9S>QwHav>i`XGpTysR)*_f?{#-#WvMr$K+YyLK|T#SFM=_)!qMUL zJ&hUjXIJ0~arpQ^oT7f34`|2w^63hr=1#^ilK0 zEA@BxU3^`O#bTh5Jp6Dky;Gkm0zo~6nHrZ;`zbkJRF{xyipYgrSHfkUnD4TD`jpQ^ zqr+<)8?j&9&r&0<#=o~#Uc9#bNGoJS{95%~WBT~9D-Sy()5v;X2iP=3Q#&D-eWYxg zy~wW6wx_D`C6)*=SdsBxVyB#h6+N-?Qss1mA#u=8JWlJ(Y0g6nmfZXzCrH`Kv@*X1 zt#rTC28z?6mb%O72jt`2oNRd1PKDu}dxbUX+$9TYhmv3o|2V*AM`7q_7Szg#v16vr zy+Lgd%ncwoa=oa$yh++#c!-RlW3c+^ip>oJ|EkLTh!Y2x5HViJboQkgHMyDKfsb~r zbJw??K!|0HZGfRE_S-RZ1WV#?)+x3htjU;nBQLdB-+X`l@hA7Mq9NIg@%P6}dtNj@ zRM7XoKfVO6b0c2Iw0l+bl)7qAG{a^7=A*o* z2}97;9ycj_?mdY%^#jrfHGVv%op!mL{jn(7wS_mXU0S^^dTtkk%(a@ewnCnq*zWAZ zXG5S%90u|RuENc>ncsdJ4vP$}<$Y=#;w1j8zn2!rFQ4(_^#${_BTSZh<;k=&W#eH> zukifWSXy3VfTsC@@J(`P-^|@Ncp}NPL;cvKlk<<+&c;&+1s3U8uQ>5ElTIBt428r; zpGVRWzdw?w5Rox3e)V_S#1p#xV$tEaU2cwM;b5s_HW>(&sRxu-pNtFPHNEu?bRdMg z_eWlN#yq(pg`_1WyUK4wJ5WrV;_xy2U{L{`AP-7#RH$bDaH&FNUG(h*WCalGcjFQV zU(bfKlQExo;=W1p_b{S92jO_@hr#=`hSF)BAAC3Ba#`U#kLA~V=iH2_YxG%Yx2*ka zc4UTrWp%v+TRUve_L!?dXJA{?nwfWq!u`&eY5u}V3&>REEMRp}W>WT3sbpbG4JcmY ztB4ba^`Gc*B6RMHWC?Bh|D6RmN@@~4wb0FHNI4B%tTzq1H6o+dfU)b!mC9EJ-;ec? z=3jCW>=uA?7FS+t)D?iX6RGqCQE&Fe=l=7zDJE!uR(;ilsVBP7cug0)S;UD8Z`Y*ZQ^E z)5}3T-5+0r^WomI(!Hs7&H9uM@eXT8tH0h85kL8%pwI)|R0vsYr8sx%B+aCl)x=JMCh zEX^y}*^e?R>s}d67xYM#OZ>llj@$07e+&5|aCftGMMX@3XMCh(ipr<#VA?UR>xX89 zzlSF~|LUpgKVTVfFzcU+*S|GsZP~`bYla(PE>!}ySZm{l9m}q%ZmC{AjMN*VVfcwg zcaa~*IL)uINOGh(9cX)NeP&{nMrFLr&wNz#&oTP(m6aD4Lk+Ge@m;0#0_^%54EA3= zUyaJMvsix?u~TTBUuf-n*p3&#X?}a1{dfQFo2jg1T(73JL+~6$ao?EfM6tV-u>l*7 zQsL{%7~+%dGb(R?n_|0(8Np>~Z5B!&d+g*BXzd)uNp`*!DSbC%=+At564G`<^srZa z%E{z>rVl#a5@knfIeBxlwK$wJWAPIi=jAPHHSnA`?0ohk8ME`aee+z|J7IPEcO^$J zvL77OQo4c6q1`XHATcDGmzHW8I=77ZGI`KmciJe-f#|Uj@<_9Wlb}09Ou>@uLV{yx zy8V6b1!m3Rd)nD=Sv)c6NnDqa&*;s#rMnGJ2N%clD*6I zy!?9blreXijYqW0Wp^WLbBG*czK@)@Q&UYdNuQNRMXTv}F^2NFk?9M|-wtp%T3edC<8}ri>_$_G)^C*6%*)>6<-~IBE1qj9Wg*>5M zP_#6?<%lKCdF-}MA4<+>pv~QYrIDZ~oTEG1o#+MV-xtwuky(-CDAD!xyz^!&E@bBSoD_PP=jdwm zzS@v65O|h)Lg$B;tFCwvj};cBW!x>hZt-)F<^ArYXP3njT8gZvj)&${`=Y}af8;K9 z>kOm>u@@IIC#^dKN*fMbdnRwU)FE>+#Bn8OY~}goT^!F!0A_=M!)K$u{WQ5mN{|m6 z(WmUxTlnn|zvdq6Xr~|H-T!*zN&O)qPxSY0EI#mkNMB%n$xWVyE9#VPJykjkQSN+g zcYbYJ5^$Q?Y^5H_f$J64-G@3tsHLxplja<+=rlDdS{Y9gH8n@Dcylm#!qR;b;vZQ3;$S+^`>eE|LOqG5c2!8?E`| z$*DL`(%sm!2YRHzjl>Dh;zdndc=7nG2so!%C^-1<$VJ>zBWt+*OB&i5s@N>*fP@vyQ?g z^rrAHiQZ|9sq$KV$M)NW(P3%NFnpk8YR-18&}@Bo znFNhru<9R$v)46$wx*J9e)5`C6;phEENu9YSLyr9wQg)5LeA(E`CI*U$KOGAp9E$+ zta~N@-jaBK>{UQvfqf$whryoK7b%^A-sbmbkF#xNuSx%HG}x$+B6RMxJ0$V`{H$S> zZ&op{7`wj2kVS9v=g*!wCgZ(r-`C!&O!6-EEHy41%Oc5jr2`wvOZJNKaB=(h*zkd> z3coIQHu(?L@(2E@3Jl)NF!j`Ztexn+i0O1b*mXrCO8T?OAEg>QXM%TSWRT|tm8TX) ztLqh7k|7C*7jnDim1c&!>=|&E<>cG?c1u1{^}_W#$CCaT7v)}2N!Cr5_T>)C<>WlV zSU~5=*JLv(I7l-i{OeU&BBS;>7TTMir_Y0Zsq{S$YgUZqee+I!R8qwKDit9yZ$~DgqVdkFV1@Z zR6P@OZp45cM|*kX;Xfz$r9ZPf{Cr(nZsH%0=+$=NQim_-{xN9vm5t+lUoJk$=5EBel3(rpIWLx; ziizYmo{_R+_CWl@*=*)=Rp?>H@!Fj>?U3SL`t zRr6KGMHVG5OY_Pv7gn>BGSB@zxU7dg<8g&GY_#U77DtyROZUWMF_(p(&pGJLjCU{j z^^F$h+Ws!SL||>-;41l;>s6@AS^DU4$NC#7>VE@zEG_qj9G-}{bk{rB;i!D#C)GRk z+~S-H)$APaMqbgl^Q*1SRCX>U6(={>^iI#Oz#{23pdazSLL7)2dxl)v_qeS zGqEP+&p|#nw=cG>h4!P~?&tnhUbFe>o{A+6T(WgIO3%G(x9}JxXlDq!7**F{v|B1@ zx(YvTe0yO27Oi~tTJxuW-2P9#?d_k#ax$qKFY2XIZcWDBV;0dY@(9uHvoiYNHUDo% zPU&>M&v4JTHtSSsPfq!kmV#)9;)>$#oeugjlZsf^c!E!^t#4{7f7C)Kf2HtpNxo!+ zcSzud2nCe@PV!Vy)yCo(^0s{>uBXXi94Dp9voT|0(bJ{IFDCUAr@d|KM%{e` zy^G2}1o*DHK6Su)(n*D1kFn#WIR_HS5DltuSEqE>FR1B~G3!`8up3O}*XGdp!Nl#Rx!_ximeA10HJ@)?maDl^q>~(95{%+^Y&{Td; zjS^?6r-fKqmK456T4h0`_S-4K_6gIwF%)H$thP5><^bX3&C{daElc+cpNkU?rfL=N z4?Ll%DfuYzy0#{7oB30dSQf4P#V+r|N>`|kCEZY6#lEr+1O@1{Wl%0zHKwO^w|))C zDyJOVvV8xx(&Ga4be|bxnb;&8Osie zglEXuU>{sB3B#W|yv5?4!oS8J`uD_z>4BoTguWWbh~30LR!I*escvIfJ7j2Rbuv$8 zHOxnpq@Aknzv^qSFE^~tk@9OO-^}`JE2HJgIVu!y@sDLspmpWup)B4Oge7r>GaN`{ zK6cr@=v<_N$N{bqvqHgvE>k$ox8{7ATo&zvGz;$yu{d7xn3v48+ux`PYEBRil@W41 zE4uf0yqvgl_T0dgkTu^YkwM-ee%}sk3yyb$s~RpVy%I)++0@ zTHQ{@-21Ll!Q#=1(JaR{mFm2{A(IsGKPIU)Z-?(G?~i~{1ewceh4aK!whj;50{Rej zT<*xOgg`z=4-TXpN=@~n3Dj$YXouqAMUmW7UZG3A_ z`0o#gBcb|#W^cx^=o7>x#D+;U1fRFk>Nw4moP$5o7y!#f6ie9+^wH?GIq_YIRG*`sjhW# z_K(dFS426r&oFk>3mQiZLt06ljNL>2OeZy1x)U!4@?6%ZM26Eh_%c>k%WNzPhfF)w zHDR|_lxv-pRS)7XDX+4=Da*_h`!Z&(p=Kwh<|V}omJXTy7EbLLq_E2HC*<>TYsgh) ziq6NP7Bh1Jhj;{{9k3Oq?P;wPNP#gV^qqw5Q-x~7S%;*^!wqeC=WzZ60YgTZ*t^{0 zQ80}Cub&k^Y9ZlKRPtgV{pXR087iNuW16xvxvqG0)+1jX#s$9jNI&%u)A8dYPY;#! zmgSnt!qk~u$Jj_OmP^u+i1WN;t>@7VP1|2-L`VUuiktIiU)=b!r?n9>oyUr3JfzgO z{yevtO2i&<{PoI|gEnR#$(byv7PkZ%|0tDx^ZX@$F?+RCv^zdjx~|z4VR*~Yo8^r! zZhS4ANBqqK@8d%&xH;Y_#_4rcAK@ZCgEP(n4jYejOrxqwn+tA=MTCngiM})ld~u!g zDqF|U6Xj8W&KBj(eyWn2XYgyAcub)~&0O@vU-YGY37NDy{e;86Ua zp3=t`{d{FsY7rF*L>miFlbd&Td;R*!P{)NyHgY}V$%mQ*Nc zD`!mVPNS*@K0A)u`@z0}h~K#U(=2D4s;?YY%8#NXRx$BBDwkuP=Yv}%!w)W11>;pk z;!JQAbkAZ{ipC%Y@#lpHn%4}s{1%F!4E@1XDe30hOv!;I^?Z5u{q5pya~UR>l#E&b z#Hmr&i)D=TZn-;u(C%jfc+!S0(to zQ6#|m#4q=24y(X+Rf z*eg}k8=QqCyVF!YmrZ`_#FKSp-VjS0-*Kl9&jmV?hU=nRwcM3zR#at0hBg-k{#j89 zSU1mohDP}WBKSzN0Zs+V6BAk|(a88k<{MsfArCt>Pcwfb>ea=_D9EmUVhLMi@3^P+ z@8e<}say%hOtMc2;G~_n3rV}d6;SqKU|dZo4!Dx}2dUX;;O)Myv72`K)u^`n?<4g* zS+aYZ2599Mra*fzMG)4lOgmd48R^O1PKqijUE$jkMrs_(!06kh+(gNhB4`HTUjtDv zgK#-p5{7>ZUYz|m({l7c8%E^unQ?u+|E-Of1?#kzY_q|j&y(-6Efo>oYA$zmVyOW- zCzh07;xC&4j>FLQD9qBF+*8BSnr4eLL1J>oLpHpQRvm}-j~inz{Jte1Z3_UiseDF8 zRPAS9{M@0RN7)%MEKGJH@Ek@BMy^@@T0hW%QR5E527u0(zjg=!#Xx z%D~|Q@WF|X7+3O?-h6Ux@i8s2#8on4Gm)w190A7=&7Z)t%e--yW3Z9l15F$gz_mCP z#D?Eu=`hmlcdZ-fltb=>W{y3WHYqc*C?tud+{HW+i+&pQNHbB=1;L0#^trnCGy~-< zOwM{yu~iIK);TVapD5=4iI}05NABH95k)WKUAQaZvg4&F;<=wAzGh0m6@zndku92c zNXZD(7Bo)8@`1l9WGhAfj4Nv*lj|mYZ0Dx?IRujoc+D;q3=52 zGy>N~+4%oOWRcN7Wto=m5aJ!ZoBor4r8Ueb#5+IaPe^jD$t?tH?f6o#wVi5#<$`IykueGss{_JZdY?o;7?$KQwLz0qO68q0H<~i z%uWX2ipX)zwnETUs)YD z{S5s5lr;1FHZR^1^kH}aOf8Lr7D9cwp6nGW>!2$byCWJfz7crdkRt#hfvsq?gB8=I zJARB)#uz&VxHJ9$V+&P`m22ovS6yo2INYm;9H+wB9RV@uFDTLkhVdtO z6et|h2Y1x?mA|mtYTvxlWlD3~ResMi1e}rqOSjxt7uZ?F^n|T+%xRMVH&|vnTqk7R zj5`?y0VBqmTnaUPz{V&4)vIe4V2>W`afU570EY#i7Z9k}I?7%43*(q0IrZp1|2mDMA!ae}sXBX@VGCKw< zpR-Bq0T3xS4!}L6FR;7Ar;qLS&Cxy@Zj_m?gPoXpXu*HC`pmgf3DrorMJb z`N*!?D}Qz7mT0(#HXm~c^Asfb{0DVnrQWmlU79H)ZHqa1jj)=_cxd4-tF|snx9Etw zuIwQg(@yIMKMW)meYtYY)=b5%ki;dcj!QQzlH6)7yMnZx_}X51%{g8K?`K?}f5TAh zTL{fl;b;eTS85;dTwKXP*xC;*ZcXvAL0~#6djYRKI-gDz%n+yv`$*>F>NgU{>{MW| zX~+^AkOb|{K-<;Ax~a-9**xmFmBN>ymMpX_T)>ctsyMDKlU~ooV4ZwzmhO7jkic2j z0E`{gHt2-=>!3w;Hy29s!8X-lc#sQ&jq2Zd@<3hc4}wo+tk{l&l6RO9SQOJH_)|qD zQbXz3&R6j!p!?B}hjwP*U$oD#bf0o1w39z%VKCPfm=TjVLV88-Gry=aJq3k1NH&E^ zOZs`&3&yA{^Ea22VQ+$TLOB^I#0B>R5G+qso(A~tS=YfE@V&r8cHmsfj}NNDv0^t> z`LtUPV@ZKUk2dGm8r=}X*+Xq15S$E+RxNyht&Hk8uUwGxm^|~mB}}ApmBt;up1)YP zQXi8g1q0vRR-@tvIbjfeKe&&*JCiVl(=s=iO-Btd<8*#}8;3i7J1luppv*T3mtoRc-HRCIr=SMPIV? zznY$M1CM1n0y9TD=DpEE6yNgp}nliD6kY4;$cKQf32MbbCieq*h^Qe4W2d$AjU_Mj zu8|*8IMhQNFgQ3TwaHT2^=G6O?|lMBMC|G}nH51vFl4lHX)M8q85Mtd z{{3B)$vT&&V6=k;*vOm#42Svt-Y3qBoCkwCg=S0eqWk3ZS-LAEToJKGv+kwCC^Zb9 z1dF>vYDc-w0k1n3<6(SLQ&e-^_zt+V3gkF+{>EtAtY~fKyL43`8)0 zeO#CSGnTR;l zgi;t~Bho8%U_gAtdTOJI^y&zF`jy}auGlUt>xTiS8VfXdacz_!dOpn@?cPBhV0ecJubK&IB&ql)Fhw6tN~K=|ItF39*bD zX8*Y2;_{hzi+o{1DzKBVn9CT3e*|%eyIPzCCVBtlHcM%oUZK2P0mVk_qe@ajh{4ct z06kISo$C4O1llhg@jFhMi8ww2gor0VJ`mV%pL^oRr^lFVqRu;(Qm0;n1L>xNM-Ne= zp!XM!Wl9gduk~beP%Z+N>*-|b}!qk#Xo`>ZxJWO`YiO3d_W-s7!sN7gPzCE&} zOsDoi?!!tE(+2*js-1WG9h6qH2r7JJga@=1*N=QKI0>yNH&;Rj%&^#5RowRW4bX9# zn*cufmWpR`tK;<8$bb&a%99V|cfiUA3r3_j#QZB2?d3&*`u#yq8u<1PfjPY>7z()9 zz(`B9f5X#uu<7`fynpM*==p|CB4B!VvGjXbj>$S*2^p>TbXR)7#N}4`n=T%Y^6tH{ z{@8R@f1E6w6Rx51m$~NAQFt%O(#pB-Hl4cX<6RqTTE z9sYy|BXn@l44)=!vUrLOafj$)$#B$+$&TZK5(rWcAhGe9V4NotHR=?A@Sc1p!b~~$ zbNDE+Ti4abt_Zx4jV8nV67Y{dJ?;(1bRo$(ia#Nq3^t)XLSW{ay?uu$utZG`xJ%`8 z656o3Oh+Fdgqi$Cf@;IpT6o94@9m^88TzxOoz^qVQRGPom}OCUxSRR4x=*vtgAhCo z5I95BJ2g8U%FjlNf)~`e!|hX@^_BANbD1db$9jcG*w^Tr_YLMD_^wgv^~e|{8sv7v z%3nzqM;0Rtq+OqV!J%wD`YdPUmfA68vE?8w(5=MQki~oZQsojM@Gg&7j@UVfqux^n zTy5{ou>YfqatMrNz>~SslE#_yXN1Lv$7QleUf`HZ1- zf-7;9DHLI4o2pm%L3xIfEBBFl#iD zl!*>RZ(pTXH2mQ@R0@ZZU-3?Y2a!lOeE|aDItZu(H_}Ej9Vyk0fsj=veL`HmQmFQd zjy|&bfex=1l9V&IP2WM)7z2sVQbm+^7SDT{NA}5I&VW3$^PC7|BtVOC2Fxg5#1}j6 zN_YUg9?4eb2;~Qo8U`2;2X?-uTaazY#K60RD+q4bT8|Q0=D) zOgi!>tA`y=cw+;&=gfDVK!aX78$?3?K-l5u5M|3#MgeOdvhK9!ZkyJLMGGax6k*f^ z92ow0^zEe8f`(FQBTyJ(Ij=8P-Vp$V9G%Q`)yLWY_fYX9-+Tga@yF+iIqP@IQrDxQ zf#=)jjIlePP<>jZ41BQ4WagVs;I0znsZo4PYR?%s@2!|Gi3<{ZL`>}g6{2|iU^q-F z*tCNcM#RwEY^L#lr=8~Zt%3XDfxnV~}L0T-qh`odLb;l^;CweXQ zD3K2;O>sByyP1avuq`k2`^AD;9Fq%Sjt+m0(CJavYyubOXzqgBk)K0s+*gtdYwU^h zc&VQ{Re8n`QqWwGRpj!-X*L&F5hU)Wv3EPemvG3o=Bdbc_4|5-Q&E^N<7QS_9J~9i zK|PKpO3tLKS^2qzuTPjaggCrqKAV(J}s+U zfh#Xf{7(jHcVcPVgZsK@}KSHgU?2_5%R;K2NTcdYy<&9N-X8wmzW z$;xC|YTe&$nst8UG@K#`{lmeR*US+1%S#r|FNf7Q%p8)x7?6*#6}gzCU^p|6;9&$a05^fe1bL>X*m7o&2pCk&^^(o1WI>v)$Gk6|?{!`mwDRFQ!ahlVxrtD6RN&xt@cmixXY_}6vGdObJ&a|uzS@G)iht4CYI#C;$t|1bP^U zz*X%R?ba)YP$;3|x-|j!3O;o~B8%W3;E=7dn^J(QWJ)Zux0cuQHTh&Wll~c$;(_&n zQzx2!pst1IYX76P;Me5jMl^!)F6wvJTaxjXlu{|j2c8bryc zrVng;WZ*vt7V{|VLwgwhI(Sam2ay8_wS(v*C%A-Pm+u0^761r^liNAQx7*toBHI&p zGSf0aW9}E9-)^{X3xWAgEFN_UzY`^FzFq^XlJ*2q2OZIt0#$f!s+A$7gwDmVb)^|> zgS#dA9IaL+XyIP5Kx$*m;dA{P=I{}444bd{$Xji5ZO?oB8pvY?KARK@dbSfV+0yBz z3*|Z-b{Ty!4u$|TcZBlA7&AH-SEaMX-{Nx`TwM!3W!FYL`l&C}X2yl$`oZFe_4MSk z>t97i4}yVq6_^q-_!9=ez3LVy_=LJ67WHR(h09K(Gi1Ow&JDzb>%(HNU(N~eK>T#} z)=Hp{@wx>R_p}K(8;HrN#_Aamu?1t`Q2hTnH1IrKLM-s~2$Wh!wwBcQNuwd~OxO3% z;RV4u?UVpvXbv-8axu;iH4%^|& z$81%&`IFtTs)x#iPcDz5<*9QoZ)06-r4AuiQ0*q5yE%P-084s!yT1T!RGziZaK!9@ zWC#V=w^_zof?c9Rkc(~}-g2y6_<~r>f!3wu_i+_ETh@5GxAeZGd`NzR?$1yy(K8c! zVB>q;6!VUWXX5dcpUxC~cy84+{5clhc)$OY$vGk>`q&%MQD$&C(G@xb08p|L<{+>? z=IuT>qoNFhY(ZVV$nOj&0$mIj3JURBg4ZCv!Br00s5soq`{)N{=iV^LK8LNt2-*vq z@8X!z3$pk+_BP33vHj`Uh{AoOhZhQ@8oJVH;Y%@>UuAgNwV9H(hL?K zg=#I@SfoX=^BNr7tV9B6|C znQ?H?Awbel9@w75pP-d;Bbm?sIX#j%`c8Bd%W<8RyeOrPBLIqr$yfx@szbW?Eo_C% znyq&wT4Zpp#v8N|hZqop`tM7hMO&8f-^~7z*Zm&tZ_KK{SplA}7ig~?I@$mHD2>{p z=#if>Wjb3UH!8?d8F}4CQwTi{?j`bnG;l23RMlhR*)Ey8yU-Me7O3Mxc3M>ARy3qS zgTE_Rpi-g3k$sF)&hQ`^tb&;5AP1$LS^}kqaka!8+4#2%Sar2-w#z z)^LEVMe~PSiq28{!2bQvQNSO)wmqhlNFl9eBv(MUz^66wZ0gxc&Ug4k8Ia?EHx5r` z7V1$F1;{eJQ4tKUWzwC&Wai4I6oPajw@uL}!1o*38L)l(i1y1JIXPwD8+nBrx&%Hp z-eo_cjO`FjpXjJL*$hkyup1H}Cn#tLDaEmy?T9De6}$%X{t?hN})}lccYMqC`!}(xd>=I* z3;e&x7`y62s?I4G{gi$+{F6oNi2`_`yi7-y6M&N5W}f4q^0}6K879r8RFSse6x1gf zAUUJ^JZT?m57V=D45cKgTR(+OtYoLwQ9&eY%Kbdq6mh`j+~@5P%?oV*tyTZ%tvd{{ z;Bb*C%Q7{Vyfrt8nZ!GL8c81qj;~G3{37d8#kocnAOMY=nrZ3$38e+Gl*C4en#$EL|MLxw z_op(xG^D=VNBT77GJl97RSrpO%N2ByKb{Ir)>yXw|JwWRc&y*(?~gsQ8boANO6Dz_ z>{N)X+n$wV+;(QTWu%OhkrByu8zpXg+!6K7%qm;RD$*B;jOToOf6sr<|Ia@^|Mcp< z*7;oLT<1F1xz2fCEbqbYT7S9T7fHL!3rTRG?D7PUWW$KOuR7G`M}398j=uZ!pszI) zvaB)2K+wq87P=EPXx*D%scG-jX1T&6dWbo8;?sRHQWQw>(zg_tsM;i_>sZ$JV9>1R zt%ptMf87s8(5-4v?DA!F+u-Fn#7V2ea>YigTDf8EGCBV6fku0rpa7q>LM_XLZ-V{3 zqV7#fG;dr}r83e@pE)kIj6q^7fy890F;pKL$=EM|Ve$Jlq`U?2tw?al?NW4VyAhcI?R;93T1zgRKb;* zozi30o!eFvZWxgoSjhy;3hZadxWVBoruSt%#f6xVX^>4+eb#v`TOI-P$5NNPGZ&(! zkjKDo)^^zbd-GtIeI$#Ha}Mi)uxO(?V=U((60sAVB{User%*9vF(5hkXI{L!e?AxQhe;pH_$ zX;Ju@sGLMvtVe9sam3FU=2O~t0_GEr1=fOFakG$?uJuTdwR*lw6w;j}ud*h0WuO+B zX=mP=h9ndkz$}z&6t%pmT|=k3yeMi0Z4(V`lBx>Hk>*Ew5rhA;G`BL2%bGZsF+;4d zzIh^{=ClYKvYJhcHI41cK&|VjE;nsRVmW;u=y5hTBAe3CC%it9uD}C&>IC00NAo)!tF2jHX6>Thw}toh4chyk;Blzh=63cLN=|$jwLg1w!x&f^|e*-jy<`= z@q5%&Z=3=0#aOT)1r{(j4==R#Y#?|UIHAnSf8hKr#rykevFHDgH!kXI=k3QOC|b$SS>5Pv`mE;&wM= z&SV?e(aoUdcFZUHmpvuqDGqegg&MgWV#}SW;|OFaeHzX^0j^jSs433;lKEKgoni!E zd$7NQfFh4Tq!R=zzN8JzP3wpv4I;3Vn5By*U@q9xkL1J&Z_hwbgVO~%=@+=3bW0>f z8-#nZbGa6DHs2fmC zJybXBp?U_n0K?`~mHhF_n#ok^q(Iz2-wrmIq#K2L2ta;H4-^;Y@N$01_qpHoisC=J z_UIm}s@dy~sE)-oV*xecN>?_qF!;?D;6|WEW|I!V7e)Z-L<9Gv>KTTzN51S(Azsl{ zns;SL9*Jxq+~xDQ6i%TxIPMf{%x%Ec^=@bKQ9sSyq0j;}<{$zRz z5Ro>ZBs@X+*U~~dgp4$X3h3SarlX+5zmus9Lhql>+!1=%WrJXv1+b=^i}oX5Ko*=* zsb3drJH!Y;1?*pqzv5F4qnoR=@bz#?_~Rw^k)c^pOeT~{=Q$=DNVxT0bs|@p$m3l^ ziCj90OCbEM1__JCe12*J*GF}}s@xMVwx_=y{*N!<$VW9ZhDVjF85(;pr>~D^z4(=m zVUj<(G3j4g_CA=L_Wgf{TQo19J*;qTI&DDdyB&AbWtJAXYk?%Z7tdGg~W!purf_Sz{TZg-}o<|x8uSXbCzAy2F*?!AM=MZ9D2YU+(39Q zLPX~g$F&i|7TLnEWE}yqzTKUKz)f@ll~S7zsd(R)ZJ)caN|A!j|hSfxG z?y}8%a8}D$W&TjdCRedM0~m?gm4TodNJ3~F^O;6sY)!+3gyv=~hRlY)Uk#F0l5#?Aq>vTB2ad^*vqXJM)!6pp7Rl zULj)vZ|O8cU@#=#PE;i=ayjZOXZGGNy97H?&DT#J@o=ziaz?Kii-#k|? zYd`kx+X?TLz*td@FELGS9awy^OUdD%w95YTHtLWDas#9wfz@8?MG8Ih-uE!=; zSG|HMI?d{_`_D!y6_}LXs}--7w~xb0-<}}LqJ@--pYn=XbThnFcR39MlZ2v1kC^r* z^tW`ROw_(cO@a+0fC!?4jEG@-D(2o6*>=(S#{#OB%{#pLV*K;XPS=C1!&4iUB?gp7 zjL1F!d9R$+%QoNkJi)|?cW@-nTUxVdbn|vUw%ayxntd1fcdg=Vs62Di)*cz}IaRKP zWkB1q`$j+QdU@M~*MX%vM=^=p>NtZ%Wr5OlcAA*C>2zhRG*oD zTrE!HA!p&q+(*u|&|w!!|5+sDl@05n{d|G3-Yx2Im0&5ayVAAi3j zMX#vvaV(o~WCr&nSw_-vX1V#c33)Gg6@+09woc}9D9Odvo^V}~Tnm{@meW~xd0NY8 z&LZ}bgn_#8Q#Ym$2#u`xi@(|&^w$YOA{zKvoNd~+Q!&WilYnS z`EhYMuj_&I6glcwC=u|{+v4P=4ZR2Uhnk|W4PVS;@XnvFPAW1( z{S-lrZjH^w7`~LQV|T9aC(=)3ZmVmIT|ZkSm|I!A9=RoH^+GeIUp->vXL`tmlfT{e z?hCsp?ppNJW;q>F~5x~N_FIGx~3fIu&t+{%SM{x3Vxj+)};B1_g+jr{4J33Bg?zPkQ}#dsLk%1 z+#>7d_TD)tpI_25;>0C!i%?%eP;J!kqY=lv^a$F4Y3U%}=j^jg!-;=zKK9Zldk()- zZFZuYDKnrw9mDx-T#_Ns?Z-KC<6F8$+@p&M-!q<3F?`V2R#@g>*uHB$717nkdGc&b zVrfzDtFVCywsGS+x#2x2ruxNz{nO!Lx+QtT{`+|<-M)_1(*3?e&5PfXS>pJHHOZO? z9C&cDs_ut-T=GmLmld(>eH^4rP`DdUt~+VQFr4Oq!T*ACZm9^5XTd5=Lz*x7h#2X9 zp1~$<6EA~BPZra5b0;^NZT;y?7fULzXjGMm;U1h&wNI6QjowZm-)_u#G{Qgir*Qk7 zNnh&q{CB1R0Ef(ZyY`zN$(TCT@sKzBip6F3}=v~&a8=IWyHtyL7d$Yr78MD@wf~(!`tu?SxdM3(` zPM{nNpmQR5`GJ1p#Q}A*`tJQP>HZP}c8MHSTlTYMr_nlQ#0ZbuCkL+}$hR$hMP*z= zRxDH9+~l#BAYl#CF@ZM!-2F2k*`i*dH)M+hVn&a* zll30O9zxJi2e1-(<3?I)yp&Urg%lnU#JlSYg&GVb3^Sw?I#`y6xd6iL792;a_mFcxPn6?(0bMF+DmctM~lDudR&F zo>{#KquxKM>ndg}kDz;-Q)`W~Af5hD-{W(3me(dq)Xnx7Mdt|lVG(g#O?bQ28xP@_ z!&~*+&ZYVdW`&njzFJ{8Px0tqH+S*i2F&dyu`G+r3oL*fIbAFg^Y?7bq4`@s&LQ-5 zy=ir?XFkRquba(e92aDL=O{j}abLDjUB}Kcp`|7VdH=TYx9U`}7n#N%QAH^hiXwnodsp)YLvnjphW zcZ3Ju0NbouX;Z$;YOv9(+uIp=Y0voTwI+{`e97Xe?-u$5OwHG^!JVEJ{NU(|6I*z>$S{l{yfT7N1Cd!`9(O;SPZI-L;XIryIM+bar7*W8?iSP zcWGCvSRnIr($QS+-!Iof?m6feudQdiyutRbz+pejn(M#79ARkHw6_~m?UyVd158ka zJ^y#a+CKfgH$N9QnJ#KO3o^8-ZnwO8Yu+yzQZGk_Ac}%SacsTZD-?8rE0^pm@y~4? zWd!L>FzA>DFFYjTwR)yd?+;BIIu%2I3xG8Ohx50q&yCpHmkZvuEJ>YTRahX{Y6~X; zZd$8P>itr4!I>cg_Zm(J*F*3DNdlKs{`_sR0KAQR{g@TP)9WJ>n0-wPTWHLNU21FU z<_4cfm`9;VjB}84+8kUk0M`87^HMyJ`|k!c`k@?B%56KE4EgWK8puvYy;=i`qj7<8 zrpaWzXcK1ypTwp|kQ!_^Li_ran!Du;iv(p>C}iZr#m6JK@;&H`Xg4k zT+;N%A-IZViw*?@{40NY5>Bt>|Xia9<6fPai=-dro( zDWpRe+MMl;uYL$G7o@-B2e5w(_h^Jt5pNv$6!HGgjo9Hrmh(nYx;TQwKjV#Cb zE6+$imB@~-D;YH!^j*@TKuEU4am>EZ`d620_O5{0q+yv~dq@gL^#(5bkjPg?QezR# z7Q$dg2|JCf_+y7tD-H@evZ)CWxR)%hDN|SRu{-l%_-prN4}Khs^!S;Uzhynl;qpw@ z(gLp0k+2*36j%r^E_OQ3cdz7!a9Lj7QJMqsH|@IpHp271EI52A>fFa9yZ%%+Db|h=_KalH*p}pUKY+kOdKfuIk0LITY zM$;|NX|!;pJN9pZV_NG0uNq2?ES5@H;_LxVNr`BoschmG*_@l|JJ(KzsJP6v>VucQ zw>qa%pD6veNaJq*BnyJjf+N}CIit4tX{HbM3gab1f(kPS^)2(%VwHC<+d{Y)-cr<% z-DLDK)@ueBpYKccSj$;Z8<4f+tP1*mMbr1xp`XU0T~swtT$#lLPI(H?^jyx{I8H3* zL6c+AC*Wp-N#I*nA3u}DV!OpsK48g=`4U`M<(Y4{mV;>P8H_G%nV3iEB`gANFC<_C zaL!Y)b}A2Hu+0;F(pI$V9h%_q49WTaxQpsg2Af(A}*)b;n=%!a67T+aNZ6oStV3@ z%`{2rcyS#xhsgd`DY%gU~zZ8hz#{}t*Sm`IglN`lDgUKVg z^8qMEd!a`CyRSicCeC7wivJa!#~$`gdPHf<4?=YIoKF9a+2WB0rN`P&QUZD-QmFs; zMqo~_hqHFxQK%r@|M5*R{o}?A&P@@jN1#YZ4aw+rcp~gkAn#FZm_8UVl zVENn=H7wAiYp%WQt*XJLSFB0@M#&^#$6`@6dv@p?bl!IREz3&h?VUVMA(+*h(2cV{_XB`vzK5Ho_pl$yoRT)u(GGq8;*Dv`~ zD1-C!cD&Y4aIpd35`FYmoA=)h7H9)Z6W^#VE|W7U_;M*I%^0h{p4-i8^Hb8qHZ=!` zd{g&HZK;XYQqDp9Y%jZIK{!6`4X7v#L_6y#_l?{@5BJ>2f|MNzc>0PU{a z|ATmfSW1}eQ@@WA6`6ZWYRoLapE(26_e~kxuadj2md;|tF()h)Vk@B4{lJj%iW}VI z>Ud?SmHcFV5nbi7KWX$0L{m!P>NrmxT=vBBGEM0Rwuabv6gz!4B>am?lS-+UoAzL` z7TQ!5wLY&Qbr2}A<0S94Tr%y|pZxFsxMWxP66|q; zo_ec#Zg2>Pg}Biimegdm~h_RB4tB{DNKrJ~p zc-Q_F72y*?yZ*cU{xMJY1=8qHf2@DOzg~BraJx4wQXsr({rA_ty2g6*(LhY%T52vo zlZ}wF4VxUO6a7Vg#&dhd@o5fC73v9&#@EjQ5ThBpwNxoDg$PHq{2HoR0|XEyIX(QCr4B?Z2d;4==NE6jFKheQKD8D z^RPt5Bm259v(Xu@GY&ZO$Vv7Mh+OY0ABz45WY1^PjZXSyeOJ#{W0xMv)Jk{J-+ckXYBNoJ$i{wCt zWW{`6e^Z^<+^LpN2@~yqt(p+bP1V8r8cCy5hb2YzwShtrq|<_;FM9}NXU2eNzdPs zjbD2Oc=&k##Ng1sii*+d5CevPGg9plk}JnbGz1uZlCx2(ctBM?`McMd-1NU`JQZDx zsgS9nzH|dI0~7jV0LjA}sYzcp!F=mU7&^{vjl#%^+)y-T_FYBlP>~zs>_}l8z=C;8 zjp+n*M`oi1UKz>U_qab0^+M$6Z0M$H+(^x4`)!^O0k*I90;rE8L{^9-9dzZB zNto%T_RKJXS&Y$6bOP`kK45#{d)0s_Q_c@kD6N=#dBtDN_aWF2MYGnbYKfY{ShY+X0j81Hct0J~FX=Uz@;z^otfLzSd z#j$K&p?@8j6=b-5-Kh}^Bj`1^B79@Md|aQ+$WP?bRQIDhJ84?FpUZa8 zeKj0}r%uP<&W4G3hY}_3?%3q{D3n6I7dg-#_#XvpywyEz;$kM_LcmJigM$A=_8u^0 znAyE7j)IF~N6lG~w8};8e`q)_y0Y`Fg${!MGV;wrA>#4sDXRM{aWKYL$H_fh0ZshN zJ3MoH+GM8@MEoQr?bj1MF_-dB0p9J%gZS$df5T0RmVRDDcLaAgMUgvS1nwyrwH{7` z_IA!;HOdBlQpYS{>q-#Z7lw5e^%bK+`?)akG{9aVGoPqUc&L9nx)~mNcd$g*i@PK* z=T`n)9A;^OP=y$6i~NuyvpD-_Xj6f6E%zgberD1<1RQo!&GP~cCL5aHMZSI4j+BBy z?caFl2%6xbPl5Il_1>G=K5U&KrL zb;T#@=*ioJeK@&XPCTCRUQN~s_DWl)r-CzkT5fC)Zk=l^R~#y%M_#|lkz~rPOkcl8 zGuWF3q3J{Y7Tt|xnHkczE?&jrLHpj85V;eD>6>jld}iP>WZ*bQ$}5!JeL^l57DR^3 z`DWHJYSmu|2tNTk)s&Qa#>vmQG#~a2oFja&2)_CxHQm=VZ(%(&pu5xg!=Q)EqMdHN zAVOL@Ma<32b1*CfW+HP^rE!1dNfK2MkTO|SOpY`N^c^xAbT=u*fEzbeMh9N|6y8!m~^-T$Mehe9y{$JwsD$Y%tEVa_hs#Fg^C*lf8W z5~<=Wh**v2hGG+Gs>;UmY5H>Pf`k#g&5!(NPxNBp{0@l4vW3wzH-uw9PLs)rmY?*AE?BX#-CK@4N(bg5H1twqbhj!=m86 zXGjLgI3=eu=<$Lk7+WRm4bQGAFtN3aFLBv20GXF0G)3q_a;vk|Z=+4sEK-|!esnr( z+8+a>k7Zmn;HJW?J>)+zAu4B=1>&2-GJaHeTVmkohd8~?Bq!W)bN%a{K0(XF{4<9P ziNF3 z^BPbwFnh7_pWT#+OeV8>x!)GsomCIWkm3~AtFcw7d(QMUc9KAiUa>f_SlZE}O+O$C zz~bL&k{t4j*Wc(%aiOTASw8h-pMP#H)|cKuNaUv?-E~IdLpY{nd4(Xff57$HGC?OG zeosu%$cairPK3ou=5EO|x=8FHIBRU5kkuxy+>=j)DWpy%dyt3?Bkw`vI+Rp(${V9S`u@SG=b#vTz zNt<)JG_M-Lg$#%V&~8Fva5Kmq@|ejW!t&jgV2}YH4RZG(cZ*f-a03YrA;=$KW8fFb zu7bmv$3wZ0cgGdO>owQ>x+20Hz#hWC&@o`&2<(@fyyD|pSwgPj@=0B`gJTL3j}X5J z$(U^kqDjm{6^KlMKBX3Gzg{4DsF$>8Ds?*P*C& zl%<21ZeE=5<1)o=?a!=ifNF?rmuFTL$K7pR8qi4N^F1-+j_{Twtg8vtZ7!OI!YwLr zJl)a9oRN7bs7`bKZI}YG|9I_*iO9|6Q@aA2?88b*y$<=tF3+ZC^XmXZ}Y zo>xzR&)&ST0A6F{hTOGKOU6>cpn7opmdkk}My?WFVa0am)xlZ62ZQrw!b?CW>1Vm& zSud4RA46J`4n-?k8bvfZ(UQE@#;U8blw8Fdm-M&bQQ1=#rU39I;Qvs1HrHj)%|a1N zS3upBWvsV-xO+SRI3r8?qw({WXu&@|P8y|-WC<)x7r-;25+rR{3{Si{^j8fUDxX0F za!alE4Tk?Y-l7W7)kxtpl@yMpF%u>7t_^b1<=RgT2IFZW_)8pN}LqNwW|a#CM*Z7 zLL~ITqeQkfl%B8ZHIo?536dkGDzS$+^26N^Ufhbj&buj%^+X!%CB}t(1QiX{WNFb? zE@#R!C#HFfW%cBbL+QnNOydAyV{c1*d=lRRN(G|?55?WPZm|kC66~)=il@wf_B$Zt zD2aY_vvU&TH6weqWnb}R3zwF$?$t%CgNOKOQ7TIcXf}S+yl-FVX$Qb~H8~`*XfC$U z5Jy`*D%oWp(@K^Py^~79)_>dZZq|(&*}4C?!bGwyDF~c;@KL!J3kPx|4|Q;sAyabw z^tEZlWS*&_ezF@mG+E|9`+WVE#j?u`_@76pv!ID7eqF8vrb7R#cXb`k$M@IK>pkET zz6tqc*12S%bP)3I|0AEiR?)#(6yB1%kuEB{EgAoPU3}aNKZR0pN*Y#QQ-!pQ1(b4V zaXQ_U5F7y1Z#b!X-HsbelaQ@0PSxw);l?*q86q-?9*1Pk8yWdCvI5(YV$&CNvo7XV zo!*&aMS4tGCh8?~O;`Dz|D`bk>k9F1%OCs}^n&give53$G}cR~ZqDzaG(w;4^6rA7 z@oq{_H92@jFhB59JbBINdacV`&Jvo4kH+YT+opFur}nzLQU6fw+90Ng}_%-)I{TMG9?9#7=y6slXXuZssM z+4922s?gP+k015=ZQ_|QV%(KT(SCbD%%?KDMFk!5sdPVc5e2STsA7SPJ&dn9OV?2& zf(#@TIb2d8v#-AIk<=lXm~Py$B~CNo%0OnB!^#>7=@7`J92_ywLE`P$Mz0bV#`L=c zwjZ7?D(jmcctlTuKDnCRS2gmuxN_m^7_$;@VR_Jgh|XXz;h7yJN)n@s#q#^E1U6&* zQ=k6L-My=2Ex7H5rVu;8FhNvwstkE$l6f5E#+8OigbNfOzVYr3b9~~cjwibeZhd6n zPEfv9x95Xk%dT)wbJNf=T=%`lj~#bNI45=D|E&Y%d&4dC-rua~r`rEy1U*rz&y&O4 z0P(UFkaieJH~MGeyVKbe1)hItsN}_e|8&5*lhDT%F_&(Z)qGg?IUBElT_o#VwJM=! z@&iXN?6zNuF;?zfSZ@C!y zZ*RvDRpv8e3rP^5hLFB|sWBgFOR!}s?BBljZ8X{0Z~kls^Ca%S(v;RFi$wR@<||`VS-H??M1(Z+xI;bZWSgUXgsHScOZCambH|g#5s1$v1H~;t z<@vL+EV7r{>zTyc=REbj&C98e?8MGx`X;Qf793_~iULy{0`whOKQwtAYwx;-@h!?= zm0uH$aI;ox(BTw(4IWYiyeAG-Wlmj>=BG7f3!EV0L+)r(>ZbII3L~m{1!@##6|ogh zmq;ha#=i6Zn|ou$;2Zr|quv+nMpa_*F;WqU${5rsVmk4=^P-%E$<6etO8R;BgyE^K zlIk|%B8PNCTqpZQJ?LbAOAs zy`}n}jHSr9SkOefEYW@rLmZ}he&o~3;&UBmGMyg;m1;27i2}wJ3<7 z^AU#r-`6k>W#DO@G^83!ao{3Pf_)TWcv0)Avg~T`Eq%)kjTu9b83_dw-9thw!)EkT zx>o$QvV}tX+l!x3i1&gxXkk8N0XWf)> zTp2A|k~ugYz;QG1Y~rZL5T1X$yE1d+9(@b|$Rc=q9rfDZJ;@cc4b#%t#tbJ#s&?>< zBPz#-9Mt62zTt~1Qde=)CCE+mtFoBWK}nU_GF^s;L(x260Fu8JR*New!CY;T!OMZY z0Pxkjnr+Wv)!mrmBppHNz9i1sNlfx`E@KGy9F*+xr=RGyI)QIPX^(OW%ul*&G01hy zL;7fwRXrtAj4nXE=#5lc-9fH(^+8UR$7mk|EsEY(wrK{EHX!FsooQl9zgdnu&*CTEgFN)GEUeJ9v>U|R3%V>+BG`vn5cepQq z=#=SDSHkOM^95=Q7uxf}d&%dc&r`2dmklP(I-R{$uN%^x!G*U&HJA!V{bKXR;(l?O zt87`{oAAZH@U_%lM*Lxv?JC#$>FXRd#w*jx4i80$Gmezm{GmXU(Fss#%;&R`I65XJ zf%S>)bv-X5fpzY8s`{t1L|P;lK`&82M#MRXx{SX_T~})?8c}aZKZnb@KB`v0H|n*o zfGj{bJOW26uh8+5;n%OU6J)9$bVoWN2eJ-#Wf%U0=w5(-k#%(cfj;8Z9$-Ms5?i zu5Iokw~Y*qe7!$^!T0ev=kYwR=j)u;^L05ty;AO2ney|T<6&cC<2N_EWy8kCPC4>r zuH#3HghBQE5!}CHX=i+Rcql7#{{L@B`J0=Y^Yim#V`JZYdKz)K>Z&S4@w?YAUnM?G z2n&VzdHXm)9W2c)41jv7%GZuo-X9nKb0l{fW@BZ`cKZBv!#f_2;$M~2v<^+v?WRBW zu(1hEncuo$2cKFiUJm|c)Hrp1jHkoCsQiIj{Z;D`xlFc#{Ih*J%Oy_ZVZth+V%nPp$qXOo zn2#{2r>f*VO=*!@<-JJEG0%`267rT z4}d=Kb|i^>sY6V4drma_VLCm4V``5(nZa*NxEfcD0c2 z7Pf+;RZApLfq2Zr|7qi(;;|_Yfvtq_*t3N;FkJjfs>DcAS%@qdtT<3{W=7X)2 zH==fVqn+z|D|w=kRydNy3pLmkZ#!Hd$MxOR{=R8axv>+s@b15dHujq*;^fO-vNu0e z64`BjkPr3D{(OpjTi%h|2wLZvi1IV$a{Xb0i@Vu5b$Uu7Fz|DgO{wL*h%?a0a@2lt zMfRn@=}))7BTU_f+h$p&H)NoYDfkwJInN(Fh-hHrLOAlsPD9x?P>0=?*zrk zPl1TT7L6xJzWVx$0xTsaEIjKO%7umJbZQ{`S~ebgObit! z+}iB8zd|E(Pist6id$xTL_N34_KK>H_dXkd9!k!_>%2(#2>wMiNPSvki?47$b4%Yd zMuP(u)fK)W0(l`9u07N*_Te7V#Hq#*Y5+q zLkD-1zK#vlFcxi99azTN_l=&^vAKSqND_{)1DS5#xsZfw62541ae}TTJ}Ap`R-~Fs7`^mIucK4Zaa|>#yYSYVsJ9be*1u|}K-5#+1EP!> zX&JA3)7+~Vk*^xZm+lDfJ%XZA-Sxn7ldcyuqlP6viLdkg&mAiojUMK#qFj)Rz7YVY z@rGz-%*(=M^y91CJO7caSlX?w@SPnU=iUB;gRRH4(f5kW+_o?i02{{AUumc!q9HC8 zqy~Xz>-2Ye{Y|;%&oDDej|)eO)#RKhW`_i)%7_tOYl z*FQ90F@=9*S4ewjfN};ey$k*+8vCgT5V4;8HI14^d;3(pbZLJMr*U$9`+>LIqDxw- zpx~r_NEcn^V7|kh_wokB>n6R@VrzDfO*il1%zQO>(k0|&PYB>Jh2pe zw)qxSm+^cjqGaTA z1}+Y=&(PlhGa*5z;L9UYF%)ff$~7EFRIosU`7KrefB12^nU5H_$Z0H;>UIj=Cv_4h zJI*0I?QI-BuXq(e-z)`wRyW^ecvrx|rD zD`%~-+u!bf<_?x6lZy?=WA;=RL5dHqu_=Bj(BBdgNvDvc&j7hv8yCaj{YsRm8*Anl zS(5;}XV_;bR<5+GH_eQfVuiazWo;u9eJA}ngHO2<`iu`1py^nv9Xm4&5ghA0!9Sxc z(QkKk0CZWY@f;^TCj+vl&<~{(=xP9y-nP4fMoAn|w zLB2;LVTK#dNi5uv8S!3Vqk)y^aP{Frcs2hP}WZEhJh(ZBxO6Hj*J$S&3tkX2wm~=y)M-0AK>{CSb+t zOB4x5JECVgqjK*fM0FX=&N4BUq->--iB@feZ^D;P(DGBaDGXX?;snj?D#guBZ8fx1 zWMh5!KKj-KEq!v&Iuy==f3G3(^0SHxk!>LKpIK$;&9$wh(PEeh<6#Z4AxSvl@b|&m zx3|$O{50&|k_O)U$sJ$BeU6H)!~0vm{4vCj*63?BC ziFv2G3Hh*|W#@&+O`m%6fj+jnmFvKgRL3>+|9ali^{w#H?i4NSNA>$f)C%POkr23< zQ-uV*kDx_ga(`>>U1Um-g|Z|W`Oz65SXn0sy=T|#Lsgx!2I}^7f-0gRBK^%q5DXD{ zi&eA*`0TOEe?y8HG3aAX{UiL^UG`u;5AuzVPC|}YcF3jNfo?IWO!bLi=J~8}DO!I33i>cHLk)SLy^TQ%K7m!eA_zH9H(sxj@rF7Mo zq@!lqm|NX?twxc5Tj91gBNB+9t|!SmOE`8qV~D0lt#fZP3w`@Y{TCM3+6`)HNmYZs zfY!te=Hoj9MS{toIB+eI{UyCV4T_3!qjS0U!TrPFDxIKYz4mb}N$r-t}=O@GKi z-t9fJAv4!&&0p%jGV>Z@VZ8C~RJU`>kX1sA)e8Ko^yScaECHMlGkA`E?a6HQM8mWGOBPe!*h`RJaHROK@{Xap;t}~52*|Q?|5kQ6wK=`-x(b1_6Q?wxb zt<~(4_$RDrnja#HK0GnLe*EYmqZi_HJ7*I_@x)rwo4g5yp`{=^rrHL7aWz!(&*nh( zY;gdBTd$Y$GS@I-o*Ny%zQu%@RxQm#q`>x;no#w69Z^`)+CnR zk#f&a6YRgSbqDXZCm_%(>c3U~sR5GWa16L9r#kk`+IKdzL38)asiIXSFB*1zwAp}k#%qx(2#;B#z@^CRuXPG=e$ruOvy>J#UNISm^>Bx0rO&##|Af-fqK6YHl@k4UFD_D0PP^ zP}a7B!lQ?}SMoN>^j^jstPG5up>3`o53VlUo2!wYXG|@!@Z@Gx91NtDK7{(l{J0#a zD@i=uA14I{=umt67;Dz6(NZOSsO2;ll)H9?mOnrUJ;2=BTB*UH4(N$7z_q~WB* zNV5bJ&qqxL;-B%jN7;XCTw8l!m>j&Ex?c132iZw#eSP)c89ZT+Vr6xS^1dv}fW+of zB#An>#4g|bipC*JA59dEe&7!f46bPx6N2c7sAQAuOD+u@r;AjbXLE1p{V&j9b8oXa zMmL@$p|5v)4BL9~sN|E3FO+$!>={z(kKskL&Ej{Nk5tvR8d$8xLd*n7*l zbPkV6!X$;$Z%N(zDgXN$=C=yjqB#`5J`?2^s2${q_691RY5h_xvMY2~XyOcy2Qjs3 zR{qaE+DdtK*7)hXeT0Ye#CuuvCx*>=Z!sTtr^#;Kpf63#ix1g?rTU}VDb{{Ekyl$STn z2d3ji^RaAg58Xm=!=JU~78KrPPg{LZaxAQ}!5ZHtsq9y2ahzzxJN4lr6@K@Eqn-5b z_%UuLrypsWMjQklZl`axMhRa($&294hT3%@WzH2A zf!CT{0m9?zjM&on-LhKSpNUrPe|fg^vZGx~si7@RI%jpdOG|39EltSW1}n}U-~{G` z3$`K@_~Bga`>)Sh(l5pv{Lr12JyBCv%Ehikg&qiaXw;tg``Mj6{mH+XPZ82|+ZW#D zPn|fFo_ou^|FlOf4*M2l?DvoWar}f5KkJ|VCLZfii_01~w%!f_vN!px&JWoNkE&_t z)pe$bO5?z!d@($Is8qoX28a~lY)>Q)wVdJDOuV}5UVS{J;NJTic@JU{33oYwvAu-a zv%mFo%HMEh_<6(P^dOu#Hl;7cwOks0XK5w8t?g=cqVmwT5<#xAffCpGpXAkb|dEMJh&#Su*^0ws4=IX7a7fwL9SFGcp$3#_7s4DzDMufK+P z7vS}ujtL4qh<1BVV(@}Qx!1Y$jBbWj${nhWLSYVrV0qrRP^Z%i9BL#mr*n|Esg)s{ z^_B1U-1YRi0gpkFMhf)8qGL`;hrML?G?WUP)qwZeFo6%mkOz;^d;tf|AVqJOz-6iAnjTCALaHmqNUdTL3o}Ygi#E^!3HB zG&dI%0AOQ_OM+4n?!{_waY$uBs(w&vaeir0aw<@{GDvfQm2**QVo82cNPd0}EEEGW z@=NlIGx7@*oSng;rl8@Qn4Fmh64V6i^7Xay%quQQ%u7!7bg@+enxmJQnPO$&=4j$% zU}SD=Zt84k=xXU?>FDfa;$&j%Wawz&VrmG}>yn>bnwy$e0@Is<&})HHFDOCe765H_ zNiE7OOHFYr%Fk5*d)z7$w_8kcng`XJg4-=-IQ8lS9itD5UZm)T2?5g(hzU=;Kn^_l zr{)3Ed=W5l|9{882TrmKDF=X=i1Ghzh86}!;sFx^Fv9^c62vn8A7BvV zVBljAWo8s)U=n0x7G(T?grSFlfr%MW003Fc94xGyj0`{DwY2r>X2$i~9O%?MS-$iytj!k`!^B+P10Tv5HH|)&I8`c$k3}3o;8b*fU(bb^}p~=G!Mqa~@dr9oF8`aJ%{Gto3Yj1Z9-|hH+U|x6G}S-kW1+^gH+4 z%^55{HkXpSk~j363pCvFps8f)dS8iag#tE0?CU;MU29#w>~_^+^@X~Bq!<-T!X}9< z=t5b6vH5r*U>&cKY%9z4m99 zw8fO{o8|c>d%M>Mw@ZdqQ$W73j~%PS=Iaq&u?RK56T*7^uTvt1XW_)Oh5{82k?X)Ptj#KXlI zRF_znoFOg5$jrkXRuh^W$i^ZqEx;hc%;vVpO>(xdzOWR_(%Ea*tzWlXpFu!KZ2OL# NyLJf8RZ?WI1_11iV2uC( literal 0 HcmV?d00001 diff --git a/assets/img/rv-logo-dark.png b/assets/img/rv-logo-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..50f488b7b3b3f80d1dfa55a17de91047a7603096 GIT binary patch literal 3624 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 e5FyO~fd2<6@yD|3^Bcne00004B` zcrAjWvZe|Sw{wr0CQ(~gS66{RHZsuJt3}e)**XG2p-@7CLQ=xQQaVaFC7u5q-V*?W z1Y`hL5TXnSU?3m{!fOK*0008xE4Cni1|k4LVQ>Tzg%;#5)QJKD5D*lAf-o2q%HIy> z&jBa~CZ?oq0vEUQKqv=E=tRZeL#miowPNji7w{y{;A<$fGqznK!E)3r#0EL23#Fh&p5XNs11BEGR!^KSO5FSC|$~sX<3Dfv{ zRjnu$lKleKGq@KmiPs%hUEHGmF8g<|YyV634feNd6c7R-{O5rfU_Y?NVUW55WrWLi zSNd;oN9j3D;fb6WvChj%HzlB5?DMzb9bnFwbNS}UBCB!w(76!lv+hK;rgkS$XWuFq zziGe`(L4SKbA;d(Z+WSsH#BkZF!zD6c>*cLqw$4#tD9UxWQe}A(et|oY{#L>#nNF~ zuV%S^=Wdt0ul6PFSHbMLyHC6})poLmt>h$4O4gi-lvY)CTd{=pogS4R1>&e5HnGM2 zGA#)k^kQg`WvGhnX-VTYv$kLC0XYD-oG}oIoeiR%(8bUmk2;LF%6{&h!my$K86@$6 zSXpq4z#yOC((hM#FxS&51C-o_*UT1D-|Cw7v+#k4Wppm##uZA*=4kdUe3WaMlie9` zan`}+-H6M4b+1p-fczjK{yj3R=i%DvM>a+7wo`WIB{mVs!OcT-BR@xdeN)tx8l0WC zF2f=aWr<&tDh_d7k4>4tZJ(P+&f*sF0F+YV`Q0&kWZ5q-*pE|7k`>S^{>H9Wi@W+B zd@NTfh@59K-mn(uM=J5V^0T=O0dC!ucb-TO=dski@MBp#>b!-32gibl$?7ZWqf=rCE*pj}SM`YqP4j?- z*uy#81eY$nSR8RaoJ(1H6>LS`NQ-NuN{r4ie@&{%lVp0Fqj%L15NOL+d%cWGFJ13z za!j4zl+$R!iFx|R``so2%19c z+|JZn?ueDkPnyciA4MK*TLI)V&~NhgU&uC8Adx2fRkGe|+`5WCb;Q$jpIN~1uzmFM UMDmx$wPIUqYthE^{k)Oi03Y0)IRF3v literal 0 HcmV?d00001 diff --git a/assets/js/index.js b/assets/js/index.js new file mode 100644 index 00000000000..670ddccf7bb --- /dev/null +++ b/assets/js/index.js @@ -0,0 +1,212 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};var t={},n={},i=e.parcelRequire2b1d;null==i&&((i=function(e){if(e in t)return t[e].exports;if(e in n){var i=n[e];delete n[e];var o={id:e,exports:{}};return t[e]=o,i.call(o.exports,o,o.exports),o.exports}var s=new Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}).register=function(e,t){n[e]=t},e.parcelRequire2b1d=i),i.register("lJ4Q2",(function(e,t){ +/*! + * jQuery JavaScript Library v3.6.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2021-03-02T17:08Z + */ +!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:e.exports,(function(e,t){"use strict";var n=[],i=Object.getPrototypeOf,o=n.slice,s=n.flat?function(e){return n.flat.call(e)}:function(e){return n.concat.apply([],e)},r=n.push,a=n.indexOf,l={},c=l.toString,u=l.hasOwnProperty,d=u.toString,h=d.call(Object),f={},p=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},m=function(e){return null!=e&&e===e.window},g=e.document,v={type:!0,src:!0,nonce:!0,noModule:!0};function y(e,t,n){var i,o,s=(n=n||g).createElement("script");if(s.text=e,t)for(i in v)(o=t[i]||t.getAttribute&&t.getAttribute(i))&&s.setAttribute(i,o);n.head.appendChild(s).parentNode.removeChild(s)}function b(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var _="3.6.0",w=function(e,t){return new w.fn.init(e,t)};function x(e){var t=!!e&&"length"in e&&e.length,n=b(e);return!p(e)&&!m(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}w.fn=w.prototype={jquery:_,constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(w.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(w.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),U=new RegExp(H+"|>"),V=new RegExp(R),Q=new RegExp("^"+j+"$"),G={ID:new RegExp("^#("+j+")"),CLASS:new RegExp("^\\.("+j+")"),TAG:new RegExp("^("+j+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+R),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,X=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},ie=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,oe=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},se=function(){h()},re=_e((function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{L.apply(O=$.call(w.childNodes),w.childNodes),O[w.childNodes.length].nodeType}catch(e){L={apply:O.length?function(e,t){N.apply(e,$.call(t))}:function(e,t){for(var n=e.length,i=0;e[n++]=t[i++];);e.length=n-1}}}function ae(e,t,i,o){var s,a,c,u,d,p,v,y=t&&t.ownerDocument,w=t?t.nodeType:9;if(i=i||[],"string"!=typeof e||!e||1!==w&&9!==w&&11!==w)return i;if(!o&&(h(t),t=t||f,m)){if(11!==w&&(d=J.exec(e)))if(s=d[1]){if(9===w){if(!(c=t.getElementById(s)))return i;if(c.id===s)return i.push(c),i}else if(y&&(c=y.getElementById(s))&&b(t,c)&&c.id===s)return i.push(c),i}else{if(d[2])return L.apply(i,t.getElementsByTagName(e)),i;if((s=d[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(i,t.getElementsByClassName(s)),i}if(n.qsa&&!k[e+" "]&&(!g||!g.test(e))&&(1!==w||"object"!==t.nodeName.toLowerCase())){if(v=e,y=t,1===w&&(U.test(e)||q.test(e))){for((y=ee.test(e)&&ve(t.parentNode)||t)===t&&n.scope||((u=t.getAttribute("id"))?u=u.replace(ie,oe):t.setAttribute("id",u=_)),a=(p=r(e)).length;a--;)p[a]=(u?"#"+u:":scope")+" "+be(p[a]);v=p.join(",")}try{return L.apply(i,y.querySelectorAll(v)),i}catch(t){k(e,!0)}finally{u===_&&t.removeAttribute("id")}}}return l(e.replace(B,"$1"),t,i,o)}function le(){var e=[];return function t(n,o){return e.push(n+" ")>i.cacheLength&&delete t[e.shift()],t[n+" "]=o}}function ce(e){return e[_]=!0,e}function ue(e){var t=f.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function de(e,t){for(var n=e.split("|"),o=n.length;o--;)i.attrHandle[n[o]]=t}function he(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(i)return i;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function me(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&re(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function ge(e){return ce((function(t){return t=+t,ce((function(n,i){for(var o,s=e([],n.length,t),r=s.length;r--;)n[o=s[r]]&&(n[o]=!(i[o]=n[o]))}))}))}function ve(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=ae.support={},s=ae.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},h=ae.setDocument=function(e){var t,o,r=e?e.ownerDocument||e:w;return r!=f&&9===r.nodeType&&r.documentElement?(p=(f=r).documentElement,m=!s(f),w!=f&&(o=f.defaultView)&&o.top!==o&&(o.addEventListener?o.addEventListener("unload",se,!1):o.attachEvent&&o.attachEvent("onunload",se)),n.scope=ue((function(e){return p.appendChild(e).appendChild(f.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length})),n.attributes=ue((function(e){return e.className="i",!e.getAttribute("className")})),n.getElementsByTagName=ue((function(e){return e.appendChild(f.createComment("")),!e.getElementsByTagName("*").length})),n.getElementsByClassName=Z.test(f.getElementsByClassName),n.getById=ue((function(e){return p.appendChild(e).id=_,!f.getElementsByName||!f.getElementsByName(_).length})),n.getById?(i.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},i.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n=t.getElementById(e);return n?[n]:[]}}):(i.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},i.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n,i,o,s=t.getElementById(e);if(s){if((n=s.getAttributeNode("id"))&&n.value===e)return[s];for(o=t.getElementsByName(e),i=0;s=o[i++];)if((n=s.getAttributeNode("id"))&&n.value===e)return[s]}return[]}}),i.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,i=[],o=0,s=t.getElementsByTagName(e);if("*"===e){for(;n=s[o++];)1===n.nodeType&&i.push(n);return i}return s},i.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&m)return t.getElementsByClassName(e)},v=[],g=[],(n.qsa=Z.test(f.querySelectorAll))&&(ue((function(e){var t;p.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|"+P+")"),e.querySelectorAll("[id~="+_+"-]").length||g.push("~="),(t=f.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||g.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+_+"+*").length||g.push(".#.+[+~]"),e.querySelectorAll("\\\f"),g.push("[\\r\\n\\f]")})),ue((function(e){e.innerHTML="";var t=f.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),p.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")}))),(n.matchesSelector=Z.test(y=p.matches||p.webkitMatchesSelector||p.mozMatchesSelector||p.oMatchesSelector||p.msMatchesSelector))&&ue((function(e){n.disconnectedMatch=y.call(e,"*"),y.call(e,"[s!='']:x"),v.push("!=",R)})),g=g.length&&new RegExp(g.join("|")),v=v.length&&new RegExp(v.join("|")),t=Z.test(p.compareDocumentPosition),b=t||Z.test(p.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):e.compareDocumentPosition&&16&e.compareDocumentPosition(i)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},I=t?function(e,t){if(e===t)return d=!0,0;var i=!e.compareDocumentPosition-!t.compareDocumentPosition;return i||(1&(i=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===i?e==f||e.ownerDocument==w&&b(w,e)?-1:t==f||t.ownerDocument==w&&b(w,t)?1:u?z(u,e)-z(u,t):0:4&i?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,i=0,o=e.parentNode,s=t.parentNode,r=[e],a=[t];if(!o||!s)return e==f?-1:t==f?1:o?-1:s?1:u?z(u,e)-z(u,t):0;if(o===s)return he(e,t);for(n=e;n=n.parentNode;)r.unshift(n);for(n=t;n=n.parentNode;)a.unshift(n);for(;r[i]===a[i];)i++;return i?he(r[i],a[i]):r[i]==w?-1:a[i]==w?1:0},f):f},ae.matches=function(e,t){return ae(e,null,null,t)},ae.matchesSelector=function(e,t){if(h(e),n.matchesSelector&&m&&!k[t+" "]&&(!v||!v.test(t))&&(!g||!g.test(t)))try{var i=y.call(e,t);if(i||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return i}catch(e){k(t,!0)}return ae(t,f,null,[e]).length>0},ae.contains=function(e,t){return(e.ownerDocument||e)!=f&&h(e),b(e,t)},ae.attr=function(e,t){(e.ownerDocument||e)!=f&&h(e);var o=i.attrHandle[t.toLowerCase()],s=o&&A.call(i.attrHandle,t.toLowerCase())?o(e,t,!m):void 0;return void 0!==s?s:n.attributes||!m?e.getAttribute(t):(s=e.getAttributeNode(t))&&s.specified?s.value:null},ae.escape=function(e){return(e+"").replace(ie,oe)},ae.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ae.uniqueSort=function(e){var t,i=[],o=0,s=0;if(d=!n.detectDuplicates,u=!n.sortStable&&e.slice(0),e.sort(I),d){for(;t=e[s++];)t===e[s]&&(o=i.push(s));for(;o--;)e.splice(i[o],1)}return u=null,e},o=ae.getText=function(e){var t,n="",i=0,s=e.nodeType;if(s){if(1===s||9===s||11===s){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===s||4===s)return e.nodeValue}else for(;t=e[i++];)n+=o(t);return n},i=ae.selectors={cacheLength:50,createPseudo:ce,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ae.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ae.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&V.test(n)&&(t=r(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+e+"("+H+"|$)"),C(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})))},ATTR:function(e,t,n){return function(i){var o=ae.attr(i,e);return null==o?"!="===t:!t||(o+="","="===t?o===n:"!="===t?o!==n:"^="===t?n&&0===o.indexOf(n):"*="===t?n&&o.indexOf(n)>-1:"$="===t?n&&o.slice(-n.length)===n:"~="===t?(" "+o.replace(F," ")+" ").indexOf(n)>-1:"|="===t&&(o===n||o.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,i,o){var s="nth"!==e.slice(0,3),r="last"!==e.slice(-4),a="of-type"===t;return 1===i&&0===o?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,h,f,p,m=s!==r?"nextSibling":"previousSibling",g=t.parentNode,v=a&&t.nodeName.toLowerCase(),y=!l&&!a,b=!1;if(g){if(s){for(;m;){for(h=t;h=h[m];)if(a?h.nodeName.toLowerCase()===v:1===h.nodeType)return!1;p=m="only"===e&&!p&&"nextSibling"}return!0}if(p=[r?g.firstChild:g.lastChild],r&&y){for(b=(f=(c=(u=(d=(h=g)[_]||(h[_]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]||[])[0]===x&&c[1])&&c[2],h=f&&g.childNodes[f];h=++f&&h&&h[m]||(b=f=0)||p.pop();)if(1===h.nodeType&&++b&&h===t){u[e]=[x,f,b];break}}else if(y&&(b=f=(c=(u=(d=(h=t)[_]||(h[_]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]||[])[0]===x&&c[1]),!1===b)for(;(h=++f&&h&&h[m]||(b=f=0)||p.pop())&&((a?h.nodeName.toLowerCase()!==v:1!==h.nodeType)||!++b||(y&&((u=(d=h[_]||(h[_]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]=[x,b]),h!==t)););return(b-=o)===i||b%i==0&&b/i>=0}}},PSEUDO:function(e,t){var n,o=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ae.error("unsupported pseudo: "+e);return o[_]?o(t):o.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ce((function(e,n){for(var i,s=o(e,t),r=s.length;r--;)e[i=z(e,s[r])]=!(n[i]=s[r])})):function(e){return o(e,0,n)}):o}},pseudos:{not:ce((function(e){var t=[],n=[],i=a(e.replace(B,"$1"));return i[_]?ce((function(e,t,n,o){for(var s,r=i(e,null,o,[]),a=e.length;a--;)(s=r[a])&&(e[a]=!(t[a]=s))})):function(e,o,s){return t[0]=e,i(t,null,s,n),t[0]=null,!n.pop()}})),has:ce((function(e){return function(t){return ae(e,t).length>0}})),contains:ce((function(e){return e=e.replace(te,ne),function(t){return(t.textContent||o(t)).indexOf(e)>-1}})),lang:ce((function(e){return Q.test(e||"")||ae.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=m?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===p},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:me(!1),disabled:me(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return K.test(e.nodeName)},input:function(e){return X.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ge((function(){return[0]})),last:ge((function(e,t){return[t-1]})),eq:ge((function(e,t,n){return[n<0?n+t:n]})),even:ge((function(e,t){for(var n=0;nt?t:n;--i>=0;)e.push(i);return e})),gt:ge((function(e,t,n){for(var i=n<0?n+t:n;++i1?function(t,n,i){for(var o=e.length;o--;)if(!e[o](t,n,i))return!1;return!0}:e[0]}function xe(e,t,n,i,o){for(var s,r=[],a=0,l=e.length,c=null!=t;a-1&&(s[c]=!(r[c]=d))}}else v=xe(v===r?v.splice(p,v.length):v),o?o(null,r,v,l):L.apply(r,v)}))}function Ce(e){for(var t,n,o,s=e.length,r=i.relative[e[0].type],a=r||i.relative[" "],l=r?1:0,u=_e((function(e){return e===t}),a,!0),d=_e((function(e){return z(t,e)>-1}),a,!0),h=[function(e,n,i){var o=!r&&(i||n!==c)||((t=n).nodeType?u(e,n,i):d(e,n,i));return t=null,o}];l1&&we(h),l>1&&be(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(B,"$1"),n,l0,o=e.length>0,s=function(s,r,a,l,u){var d,p,g,v=0,y="0",b=s&&[],_=[],w=c,E=s||o&&i.find.TAG("*",u),C=x+=null==w?1:Math.random()||.1,S=E.length;for(u&&(c=r==f||r||u);y!==S&&null!=(d=E[y]);y++){if(o&&d){for(p=0,r||d.ownerDocument==f||(h(d),a=!m);g=e[p++];)if(g(d,r||f,a)){l.push(d);break}u&&(x=C)}n&&((d=!g&&d)&&v--,s&&b.push(d))}if(v+=y,n&&y!==v){for(p=0;g=t[p++];)g(b,_,r,a);if(s){if(v>0)for(;y--;)b[y]||_[y]||(_[y]=D.call(l));_=xe(_)}L.apply(l,_),u&&!s&&_.length>0&&v+t.length>1&&ae.uniqueSort(l)}return u&&(x=C,c=w),b};return n?ce(s):s}(s,o)),a.selector=e}return a},l=ae.select=function(e,t,n,o){var s,l,c,u,d,h="function"==typeof e&&e,f=!o&&r(e=h.selector||e);if(n=n||[],1===f.length){if((l=f[0]=f[0].slice(0)).length>2&&"ID"===(c=l[0]).type&&9===t.nodeType&&m&&i.relative[l[1].type]){if(!(t=(i.find.ID(c.matches[0].replace(te,ne),t)||[])[0]))return n;h&&(t=t.parentNode),e=e.slice(l.shift().value.length)}for(s=G.needsContext.test(e)?0:l.length;s--&&(c=l[s],!i.relative[u=c.type]);)if((d=i.find[u])&&(o=d(c.matches[0].replace(te,ne),ee.test(l[0].type)&&ve(t.parentNode)||t))){if(l.splice(s,1),!(e=o.length&&be(l)))return L.apply(n,o),n;break}}return(h||a(e,f))(o,t,!m,n,!t||ee.test(e)&&ve(t.parentNode)||t),n},n.sortStable=_.split("").sort(I).join("")===_,n.detectDuplicates=!!d,h(),n.sortDetached=ue((function(e){return 1&e.compareDocumentPosition(f.createElement("fieldset"))})),ue((function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")}))||de("type|href|height|width",(function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)})),n.attributes&&ue((function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}))||de("value",(function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue})),ue((function(e){return null==e.getAttribute("disabled")}))||de(P,(function(e,t,n){var i;if(!n)return!0===e[t]?t.toLowerCase():(i=e.getAttributeNode(t))&&i.specified?i.value:null})),ae}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var C=function(e,t,n){for(var i=[],o=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(o&&w(e).is(n))break;i.push(e)}return i},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},T=w.expr.match.needsContext;function k(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var I=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function A(e,t,n){return p(t)?w.grep(e,(function(e,i){return!!t.call(e,i,e)!==n})):t.nodeType?w.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?w.grep(e,(function(e){return a.call(t,e)>-1!==n})):w.filter(t,e,n)}w.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?w.find.matchesSelector(i,e)?[i]:[]:w.find.matches(e,w.grep(t,(function(e){return 1===e.nodeType})))},w.fn.extend({find:function(e){var t,n,i=this.length,o=this;if("string"!=typeof e)return this.pushStack(w(e).filter((function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(A(this,e||[],!1))},not:function(e){return this.pushStack(A(this,e||[],!0))},is:function(e){return!!A(this,"string"==typeof e&&T.test(e)?w(e):e||[],!1).length}});var O,D=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||O,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:D.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:g,!0)),I.test(i[1])&&w.isPlainObject(t))for(i in t)p(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=g.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):p(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,O=w(g);var N=/^(?:parents|prev(?:Until|All))/,L={children:!0,contents:!0,next:!0,prev:!0};function $(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){s.push(n);break}return this.pushStack(s.length>1?w.uniqueSort(s):s)},index:function(e){return e?"string"==typeof e?a.call(w(e),this[0]):a.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return C(e,"parentNode")},parentsUntil:function(e,t,n){return C(e,"parentNode",n)},next:function(e){return $(e,"nextSibling")},prev:function(e){return $(e,"previousSibling")},nextAll:function(e){return C(e,"nextSibling")},prevAll:function(e){return C(e,"previousSibling")},nextUntil:function(e,t,n){return C(e,"nextSibling",n)},prevUntil:function(e,t,n){return C(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return null!=e.contentDocument&&i(e.contentDocument)?e.contentDocument:(k(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},(function(e,t){w.fn[e]=function(n,i){var o=w.map(this,t,n);return"Until"!==e.slice(-5)&&(i=n),i&&"string"==typeof i&&(o=w.filter(i,o)),this.length>1&&(L[e]||w.uniqueSort(o),N.test(e)&&o.reverse()),this.pushStack(o)}}));var z=/[^\x20\t\r\n\f]+/g;function P(e){return e}function H(e){throw e}function j(e,t,n,i){var o;try{e&&p(o=e.promise)?o.call(e).done(t).fail(n):e&&p(o=e.then)?o.call(e,t,n):t.apply(void 0,[e].slice(i))}catch(e){n.apply(void 0,[e])}}w.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return w.each(e.match(z)||[],(function(e,n){t[n]=!0})),t}(e):w.extend({},e);var t,n,i,o,s=[],r=[],a=-1,l=function(){for(o=o||e.once,i=t=!0;r.length;a=-1)for(n=r.shift();++a-1;)s.splice(n,1),n<=a&&a--})),this},has:function(e){return e?w.inArray(e,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return o=r=[],s=n="",this},disabled:function(){return!s},lock:function(){return o=r=[],n||t||(s=n=""),this},locked:function(){return!!o},fireWith:function(e,n){return o||(n=[e,(n=n||[]).slice?n.slice():n],r.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!i}};return c},w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],i="pending",o={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},catch:function(e){return o.then(null,e)},pipe:function(){var e=arguments;return w.Deferred((function(t){w.each(n,(function(n,i){var o=p(e[i[4]])&&e[i[4]];s[i[1]]((function(){var e=o&&o.apply(this,arguments);e&&p(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[i[0]+"With"](this,o?[e]:arguments)}))})),e=null})).promise()},then:function(t,i,o){var s=0;function r(t,n,i,o){return function(){var a=this,l=arguments,c=function(){var e,c;if(!(t=s&&(i!==H&&(a=void 0,l=[e]),n.rejectWith(a,l))}};t?u():(w.Deferred.getStackHook&&(u.stackTrace=w.Deferred.getStackHook()),e.setTimeout(u))}}return w.Deferred((function(e){n[0][3].add(r(0,e,p(o)?o:P,e.notifyWith)),n[1][3].add(r(0,e,p(t)?t:P)),n[2][3].add(r(0,e,p(i)?i:H))})).promise()},promise:function(e){return null!=e?w.extend(e,o):o}},s={};return w.each(n,(function(e,t){var r=t[2],a=t[5];o[t[1]]=r.add,a&&r.add((function(){i=a}),n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),r.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=r.fireWith})),o.promise(s),t&&t.call(s,s),s},when:function(e){var t=arguments.length,n=t,i=Array(n),s=o.call(arguments),r=w.Deferred(),a=function(e){return function(n){i[e]=this,s[e]=arguments.length>1?o.call(arguments):n,--t||r.resolveWith(i,s)}};if(t<=1&&(j(e,r.done(a(n)).resolve,r.reject,!t),"pending"===r.state()||p(s[n]&&s[n].then)))return r.then();for(;n--;)j(s[n],a(n),r.reject);return r.promise()}});var M=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&M.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout((function(){throw t}))};var R=w.Deferred();function F(){g.removeEventListener("DOMContentLoaded",F),e.removeEventListener("load",F),w.ready()}w.fn.ready=function(e){return R.then(e).catch((function(e){w.readyException(e)})),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||R.resolveWith(g,[w]))}}),w.ready.then=R.then,"complete"===g.readyState||"loading"!==g.readyState&&!g.documentElement.doScroll?e.setTimeout(w.ready):(g.addEventListener("DOMContentLoaded",F),e.addEventListener("load",F));var B=function(e,t,n,i,o,s,r){var a=0,l=e.length,c=null==n;if("object"===b(n))for(a in o=!0,n)B(e,t,a,n[a],!0,s,r);else if(void 0!==i&&(o=!0,p(i)||(r=!0),c&&(r?(t.call(e,i),t=null):(c=t,t=function(e,t,n){return c.call(w(e),n)})),t))for(;a1,null,!0)},removeData:function(e){return this.each((function(){X.remove(this,e)}))}}),w.extend({queue:function(e,t,n){var i;if(e)return t=(t||"fx")+"queue",i=Y.get(e,t),n&&(!i||Array.isArray(n)?i=Y.access(e,t,w.makeArray(n)):i.push(n)),i||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),i=n.length,o=n.shift(),s=w._queueHooks(e,t);"inprogress"===o&&(o=n.shift(),i--),o&&("fx"===t&&n.unshift("inprogress"),delete s.stop,o.call(e,(function(){w.dequeue(e,t)}),s)),!i&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:w.Callbacks("once memory").add((function(){Y.remove(e,[t+"queue",n])}))})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,me=/^$|^module$|\/(?:java|ecma)script/i;de=g.createDocumentFragment().appendChild(g.createElement("div")),(he=g.createElement("input")).setAttribute("type","radio"),he.setAttribute("checked","checked"),he.setAttribute("name","t"),de.appendChild(he),f.checkClone=de.cloneNode(!0).cloneNode(!0).lastChild.checked,de.innerHTML="",f.noCloneChecked=!!de.cloneNode(!0).lastChild.defaultValue,de.innerHTML="",f.option=!!de.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&k(e,t)?w.merge([e],n):n}function ye(e,t){for(var n=0,i=e.length;n",""]);var be=/<|&#?\w+;/;function _e(e,t,n,i,o){for(var s,r,a,l,c,u,d=t.createDocumentFragment(),h=[],f=0,p=e.length;f-1)o&&o.push(s);else if(c=oe(s),r=ve(d.appendChild(s),"script"),c&&ye(r),n)for(u=0;s=r[u++];)me.test(s.type||"")&&n.push(s);return d}var we=/^([^.]*)(?:\.(.+)|)/;function xe(){return!0}function Ee(){return!1}function Ce(e,t){return e===function(){try{return g.activeElement}catch(e){}}()==("focus"===t)}function Se(e,t,n,i,o,s){var r,a;if("object"==typeof t){for(a in"string"!=typeof n&&(i=i||n,n=void 0),t)Se(e,a,n,i,t[a],s);return e}if(null==i&&null==o?(o=n,i=n=void 0):null==o&&("string"==typeof n?(o=i,i=void 0):(o=i,i=n,n=void 0)),!1===o)o=Ee;else if(!o)return e;return 1===s&&(r=o,o=function(e){return w().off(e),r.apply(this,arguments)},o.guid=r.guid||(r.guid=w.guid++)),e.each((function(){w.event.add(this,t,o,i,n)}))}function Te(e,t,n){n?(Y.set(e,t,!1),w.event.add(e,t,{namespace:!1,handler:function(e){var i,s,r=Y.get(this,t);if(1&e.isTrigger&&this[t]){if(r.length)(w.event.special[t]||{}).delegateType&&e.stopPropagation();else if(r=o.call(arguments),Y.set(this,t,r),i=n(this,t),this[t](),r!==(s=Y.get(this,t))||i?Y.set(this,t,!1):s={},r!==s)return e.stopImmediatePropagation(),e.preventDefault(),s&&s.value}else r.length&&(Y.set(this,t,{value:w.event.trigger(w.extend(r[0],w.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,t)&&w.event.add(e,t,xe)}w.event={global:{},add:function(e,t,n,i,o){var s,r,a,l,c,u,d,h,f,p,m,g=Y.get(e);if(Q(e))for(n.handler&&(n=(s=n).handler,o=s.selector),o&&w.find.matchesSelector(ie,o),n.guid||(n.guid=w.guid++),(l=g.events)||(l=g.events=Object.create(null)),(r=g.handle)||(r=g.handle=function(t){return void 0!==w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(z)||[""]).length;c--;)f=m=(a=we.exec(t[c])||[])[1],p=(a[2]||"").split(".").sort(),f&&(d=w.event.special[f]||{},f=(o?d.delegateType:d.bindType)||f,d=w.event.special[f]||{},u=w.extend({type:f,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&w.expr.match.needsContext.test(o),namespace:p.join(".")},s),(h=l[f])||((h=l[f]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,i,p,r)||e.addEventListener&&e.addEventListener(f,r)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,u):h.push(u),w.event.global[f]=!0)},remove:function(e,t,n,i,o){var s,r,a,l,c,u,d,h,f,p,m,g=Y.hasData(e)&&Y.get(e);if(g&&(l=g.events)){for(c=(t=(t||"").match(z)||[""]).length;c--;)if(f=m=(a=we.exec(t[c])||[])[1],p=(a[2]||"").split(".").sort(),f){for(d=w.event.special[f]||{},h=l[f=(i?d.delegateType:d.bindType)||f]||[],a=a[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),r=s=h.length;s--;)u=h[s],!o&&m!==u.origType||n&&n.guid!==u.guid||a&&!a.test(u.namespace)||i&&i!==u.selector&&("**"!==i||!u.selector)||(h.splice(s,1),u.selector&&h.delegateCount--,d.remove&&d.remove.call(e,u));r&&!h.length&&(d.teardown&&!1!==d.teardown.call(e,p,g.handle)||w.removeEvent(e,f,g.handle),delete l[f])}else for(f in l)w.event.remove(e,f+t[c],n,i,!0);w.isEmptyObject(l)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,i,o,s,r,a=new Array(arguments.length),l=w.event.fix(e),c=(Y.get(this,"events")||Object.create(null))[l.type]||[],u=w.event.special[l.type]||{};for(a[0]=l,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(s=[],r={},n=0;n-1:w.find(o,this,null,[c]).length),r[o]&&s.push(i);s.length&&a.push({elem:c,handlers:s})}return c=this,l\s*$/g;function Oe(e,t){return k(e,"table")&&k(11!==t.nodeType?t:t.firstChild,"tr")&&w(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Ne(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,i,o,s,r,a;if(1===t.nodeType){if(Y.hasData(e)&&(a=Y.get(e).events))for(o in Y.remove(t,"handle events"),a)for(n=0,i=a[o].length;n1&&"string"==typeof g&&!f.checkClone&&Ie.test(g))return e.each((function(o){var s=e.eq(o);v&&(t[0]=g.call(this,o,s.html())),ze(s,t,n,i)}));if(h&&(r=(o=_e(t,e[0].ownerDocument,!1,e,i)).firstChild,1===o.childNodes.length&&(o=r),r||i)){for(l=(a=w.map(ve(o,"script"),De)).length;d0&&ye(r,!l&&ve(e,"script")),a},cleanData:function(e){for(var t,n,i,o=w.event.special,s=0;void 0!==(n=e[s]);s++)if(Q(n)){if(t=n[Y.expando]){if(t.events)for(i in t.events)o[i]?w.event.remove(n,i):w.removeEvent(n,i,t.handle);n[Y.expando]=void 0}n[X.expando]&&(n[X.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Pe(this,e,!0)},remove:function(e){return Pe(this,e)},text:function(e){return B(this,(function(e){return void 0===e?w.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return ze(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)}))},prepend:function(){return ze(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return ze(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return ze(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return w.clone(this,e,t)}))},html:function(e){return B(this,(function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(pe.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-s-l-a-.5))||0),l}function Je(e,t,n){var i=je(e),o=(!f.boxSizingReliable()||n)&&"border-box"===w.css(e,"boxSizing",!1,i),s=o,r=Fe(e,t,i),a="offset"+t[0].toUpperCase()+t.slice(1);if(He.test(r)){if(!n)return r;r="auto"}return(!f.boxSizingReliable()&&o||!f.reliableTrDimensions()&&k(e,"tr")||"auto"===r||!parseFloat(r)&&"inline"===w.css(e,"display",!1,i))&&e.getClientRects().length&&(o="border-box"===w.css(e,"boxSizing",!1,i),(s=a in e)&&(r=e[a])),(r=parseFloat(r)||0)+Ze(e,t,n||(o?"border":"content"),s,i,r)+"px"}function et(e,t,n,i,o){return new et.prototype.init(e,t,n,i,o)}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,s,r,a=V(t),l=Ge.test(t),c=e.style;if(l||(t=Ve(a)),r=w.cssHooks[t]||w.cssHooks[a],void 0===n)return r&&"get"in r&&void 0!==(o=r.get(e,!1,i))?o:c[t];"string"===(s=typeof n)&&(o=te.exec(n))&&o[1]&&(n=ae(e,t,o),s="number"),null!=n&&n==n&&("number"!==s||l||(n+=o&&o[3]||(w.cssNumber[a]?"":"px")),f.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),r&&"set"in r&&void 0===(n=r.set(e,n,i))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,i){var o,s,r,a=V(t);return Ge.test(t)||(t=Ve(a)),(r=w.cssHooks[t]||w.cssHooks[a])&&"get"in r&&(o=r.get(e,!0,n)),void 0===o&&(o=Fe(e,t,i)),"normal"===o&&t in Xe&&(o=Xe[t]),""===n||n?(s=parseFloat(o),!0===n||isFinite(s)?s||0:o):o}}),w.each(["height","width"],(function(e,t){w.cssHooks[t]={get:function(e,n,i){if(n)return!Qe.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,t,i):Me(e,Ye,(function(){return Je(e,t,i)}))},set:function(e,n,i){var o,s=je(e),r=!f.scrollboxSize()&&"absolute"===s.position,a=(r||i)&&"border-box"===w.css(e,"boxSizing",!1,s),l=i?Ze(e,t,i,a,s):0;return a&&r&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(s[t])-Ze(e,t,"border",!1,s)-.5)),l&&(o=te.exec(n))&&"px"!==(o[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(0,n,l)}}})),w.cssHooks.marginLeft=Be(f.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),w.each({margin:"",padding:"",border:"Width"},(function(e,t){w.cssHooks[e+t]={expand:function(n){for(var i=0,o={},s="string"==typeof n?n.split(" "):[n];i<4;i++)o[e+ne[i]+t]=s[i]||s[i-2]||s[0];return o}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)})),w.fn.extend({css:function(e,t){return B(this,(function(e,t,n){var i,o,s={},r=0;if(Array.isArray(t)){for(i=je(e),o=t.length;r1)}}),w.Tween=et,et.prototype={constructor:et,init:function(e,t,n,i,o,s){this.elem=e,this.prop=n,this.easing=o||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=i,this.unit=s||(w.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}},et.prototype.init.prototype=et.prototype,et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||!w.cssHooks[e.prop]&&null==e.elem.style[Ve(e.prop)]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},et.propHooks.scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=et.prototype.init,w.fx.step={};var tt,nt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function st(){nt&&(!1===g.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(st):e.setTimeout(st,w.fx.interval),w.fx.tick())}function rt(){return e.setTimeout((function(){tt=void 0})),tt=Date.now()}function at(e,t){var n,i=0,o={height:e};for(t=t?1:0;i<4;i+=2-t)o["margin"+(n=ne[i])]=o["padding"+n]=e;return t&&(o.opacity=o.width=e),o}function lt(e,t,n){for(var i,o=(ct.tweeners[t]||[]).concat(ct.tweeners["*"]),s=0,r=o.length;s1)},removeAttr:function(e){return this.each((function(){w.removeAttr(this,e)}))}}),w.extend({attr:function(e,t,n){var i,o,s=e.nodeType;if(3!==s&&8!==s&&2!==s)return void 0===e.getAttribute?w.prop(e,t,n):(1===s&&w.isXMLDoc(e)||(o=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?ut:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):o&&"set"in o&&void 0!==(i=o.set(e,n,t))?i:(e.setAttribute(t,n+""),n):o&&"get"in o&&null!==(i=o.get(e,t))?i:null==(i=w.find.attr(e,t))?void 0:i)},attrHooks:{type:{set:function(e,t){if(!f.radioValue&&"radio"===t&&k(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,i=0,o=t&&t.match(z);if(o&&1===e.nodeType)for(;n=o[i++];)e.removeAttribute(n)}}),ut={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=dt[t]||w.find.attr;dt[t]=function(e,t,i){var o,s,r=t.toLowerCase();return i||(s=dt[r],dt[r]=o,o=null!=n(e,t,i)?r:null,dt[r]=s),o}}));var ht=/^(?:input|select|textarea|button)$/i,ft=/^(?:a|area)$/i;function pt(e){return(e.match(z)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function gt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(z)||[]}w.fn.extend({prop:function(e,t){return B(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[w.propFix[e]||e]}))}}),w.extend({prop:function(e,t,n){var i,o,s=e.nodeType;if(3!==s&&8!==s&&2!==s)return 1===s&&w.isXMLDoc(e)||(t=w.propFix[t]||t,o=w.propHooks[t]),void 0!==n?o&&"set"in o&&void 0!==(i=o.set(e,n,t))?i:e[t]=n:o&&"get"in o&&null!==(i=o.get(e,t))?i:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||ft.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),f.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){w.propFix[this.toLowerCase()]=this})),w.fn.extend({addClass:function(e){var t,n,i,o,s,r,a,l=0;if(p(e))return this.each((function(t){w(this).addClass(e.call(this,t,mt(this)))}));if((t=gt(e)).length)for(;n=this[l++];)if(o=mt(n),i=1===n.nodeType&&" "+pt(o)+" "){for(r=0;s=t[r++];)i.indexOf(" "+s+" ")<0&&(i+=s+" ");o!==(a=pt(i))&&n.setAttribute("class",a)}return this},removeClass:function(e){var t,n,i,o,s,r,a,l=0;if(p(e))return this.each((function(t){w(this).removeClass(e.call(this,t,mt(this)))}));if(!arguments.length)return this.attr("class","");if((t=gt(e)).length)for(;n=this[l++];)if(o=mt(n),i=1===n.nodeType&&" "+pt(o)+" "){for(r=0;s=t[r++];)for(;i.indexOf(" "+s+" ")>-1;)i=i.replace(" "+s+" "," ");o!==(a=pt(i))&&n.setAttribute("class",a)}return this},toggleClass:function(e,t){var n=typeof e,i="string"===n||Array.isArray(e);return"boolean"==typeof t&&i?t?this.addClass(e):this.removeClass(e):p(e)?this.each((function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)})):this.each((function(){var t,o,s,r;if(i)for(o=0,s=w(this),r=gt(e);t=r[o++];)s.hasClass(t)?s.removeClass(t):s.addClass(t);else void 0!==e&&"boolean"!==n||((t=mt(this))&&Y.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Y.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,i=0;for(t=" "+e+" ";n=this[i++];)if(1===n.nodeType&&(" "+pt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var vt=/\r/g;w.fn.extend({val:function(e){var t,n,i,o=this[0];return arguments.length?(i=p(e),this.each((function(n){var o;1===this.nodeType&&(null==(o=i?e.call(this,n,w(this).val()):e)?o="":"number"==typeof o?o+="":Array.isArray(o)&&(o=w.map(o,(function(e){return null==e?"":e+""}))),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,o,"value")||(this.value=o))}))):o?(t=w.valHooks[o.type]||w.valHooks[o.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(o,"value"))?n:"string"==typeof(n=o.value)?n.replace(vt,""):null==n?"":n:void 0}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:pt(w.text(e))}},select:{get:function(e){var t,n,i,o=e.options,s=e.selectedIndex,r="select-one"===e.type,a=r?null:[],l=r?s+1:o.length;for(i=s<0?l:r?s:0;i-1)&&(n=!0);return n||(e.selectedIndex=-1),s}}}}),w.each(["radio","checkbox"],(function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},f.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})})),f.focusin="onfocusin"in e;var yt=/^(?:focusinfocus|focusoutblur)$/,bt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var s,r,a,l,c,d,h,f,v=[i||g],y=u.call(t,"type")?t.type:t,b=u.call(t,"namespace")?t.namespace.split("."):[];if(r=f=a=i=i||g,3!==i.nodeType&&8!==i.nodeType&&!yt.test(y+w.event.triggered)&&(y.indexOf(".")>-1&&(b=y.split("."),y=b.shift(),b.sort()),c=y.indexOf(":")<0&&"on"+y,(t=t[w.expando]?t:new w.Event(y,"object"==typeof t&&t)).isTrigger=o?2:3,t.namespace=b.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),h=w.event.special[y]||{},o||!h.trigger||!1!==h.trigger.apply(i,n))){if(!o&&!h.noBubble&&!m(i)){for(l=h.delegateType||y,yt.test(l+y)||(r=r.parentNode);r;r=r.parentNode)v.push(r),a=r;a===(i.ownerDocument||g)&&v.push(a.defaultView||a.parentWindow||e)}for(s=0;(r=v[s++])&&!t.isPropagationStopped();)f=r,t.type=s>1?l:h.bindType||y,(d=(Y.get(r,"events")||Object.create(null))[t.type]&&Y.get(r,"handle"))&&d.apply(r,n),(d=c&&r[c])&&d.apply&&Q(r)&&(t.result=d.apply(r,n),!1===t.result&&t.preventDefault());return t.type=y,o||t.isDefaultPrevented()||h._default&&!1!==h._default.apply(v.pop(),n)||!Q(i)||c&&p(i[y])&&!m(i)&&((a=i[c])&&(i[c]=null),w.event.triggered=y,t.isPropagationStopped()&&f.addEventListener(y,bt),i[y](),t.isPropagationStopped()&&f.removeEventListener(y,bt),w.event.triggered=void 0,a&&(i[c]=a)),t.result}},simulate:function(e,t,n){var i=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(i,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each((function(){w.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),f.focusin||w.each({focus:"focusin",blur:"focusout"},(function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var i=this.ownerDocument||this.document||this,o=Y.access(i,t);o||i.addEventListener(e,n,!0),Y.access(i,t,(o||0)+1)},teardown:function(){var i=this.ownerDocument||this.document||this,o=Y.access(i,t)-1;o?Y.access(i,t,o):(i.removeEventListener(e,n,!0),Y.remove(i,t))}}}));var _t=e.location,wt={guid:Date.now()},xt=/\?/;w.parseXML=function(t){var n,i;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){}return i=n&&n.getElementsByTagName("parsererror")[0],n&&!i||w.error("Invalid XML: "+(i?w.map(i.childNodes,(function(e){return e.textContent})).join("\n"):t)),n};var Et=/\[\]$/,Ct=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,Tt=/^(?:input|select|textarea|keygen)/i;function kt(e,t,n,i){var o;if(Array.isArray(t))w.each(t,(function(t,o){n||Et.test(e)?i(e,o):kt(e+"["+("object"==typeof o&&null!=o?t:"")+"]",o,n,i)}));else if(n||"object"!==b(t))i(e,t);else for(o in t)kt(e+"["+o+"]",t[o],n,i)}w.param=function(e,t){var n,i=[],o=function(e,t){var n=p(t)?t():t;i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,(function(){o(this.name,this.value)}));else for(n in e)kt(n,e[n],t,o);return i.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&Tt.test(this.nodeName)&&!St.test(e)&&(this.checked||!fe.test(e))})).map((function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,(function(e){return{name:t.name,value:e.replace(Ct,"\r\n")}})):{name:t.name,value:n.replace(Ct,"\r\n")}})).get()}});var It=/%20/g,At=/#.*$/,Ot=/([?&])_=[^&]*/,Dt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Nt=/^(?:GET|HEAD)$/,Lt=/^\/\//,$t={},zt={},Pt="*/".concat("*"),Ht=g.createElement("a");function jt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,o=0,s=t.toLowerCase().match(z)||[];if(p(n))for(;i=s[o++];)"+"===i[0]?(i=i.slice(1)||"*",(e[i]=e[i]||[]).unshift(n)):(e[i]=e[i]||[]).push(n)}}function Mt(e,t,n,i){var o={},s=e===zt;function r(a){var l;return o[a]=!0,w.each(e[a]||[],(function(e,a){var c=a(t,n,i);return"string"!=typeof c||s||o[c]?s?!(l=c):void 0:(t.dataTypes.unshift(c),r(c),!1)})),l}return r(t.dataTypes[0])||!o["*"]&&r("*")}function Rt(e,t){var n,i,o=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((o[n]?e:i||(i={}))[n]=t[n]);return i&&w.extend(!0,e,i),e}Ht.href=_t.href,w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:_t.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(_t.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Pt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Rt(Rt(e,w.ajaxSettings),t):Rt(w.ajaxSettings,e)},ajaxPrefilter:jt($t),ajaxTransport:jt(zt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,s,r,a,l,c,u,d,h,f=w.ajaxSetup({},n),p=f.context||f,m=f.context&&(p.nodeType||p.jquery)?w(p):w.event,v=w.Deferred(),y=w.Callbacks("once memory"),b=f.statusCode||{},_={},x={},E="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(c){if(!r)for(r={};t=Dt.exec(s);)r[t[1].toLowerCase()+" "]=(r[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=r[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?s:null},setRequestHeader:function(e,t){return null==c&&(e=x[e.toLowerCase()]=x[e.toLowerCase()]||e,_[e]=t),this},overrideMimeType:function(e){return null==c&&(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)C.always(e[C.status]);else for(t in e)b[t]=[b[t],e[t]];return this},abort:function(e){var t=e||E;return i&&i.abort(t),S(0,t),this}};if(v.promise(C),f.url=((t||f.url||_t.href)+"").replace(Lt,_t.protocol+"//"),f.type=n.method||n.type||f.method||f.type,f.dataTypes=(f.dataType||"*").toLowerCase().match(z)||[""],null==f.crossDomain){l=g.createElement("a");try{l.href=f.url,l.href=l.href,f.crossDomain=Ht.protocol+"//"+Ht.host!=l.protocol+"//"+l.host}catch(e){f.crossDomain=!0}}if(f.data&&f.processData&&"string"!=typeof f.data&&(f.data=w.param(f.data,f.traditional)),Mt($t,f,n,C),c)return C;for(d in(u=w.event&&f.global)&&0==w.active++&&w.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!Nt.test(f.type),o=f.url.replace(At,""),f.hasContent?f.data&&f.processData&&0===(f.contentType||"").indexOf("application/x-www-form-urlencoded")&&(f.data=f.data.replace(It,"+")):(h=f.url.slice(o.length),f.data&&(f.processData||"string"==typeof f.data)&&(o+=(xt.test(o)?"&":"?")+f.data,delete f.data),!1===f.cache&&(o=o.replace(Ot,"$1"),h=(xt.test(o)?"&":"?")+"_="+wt.guid+++h),f.url=o+h),f.ifModified&&(w.lastModified[o]&&C.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&C.setRequestHeader("If-None-Match",w.etag[o])),(f.data&&f.hasContent&&!1!==f.contentType||n.contentType)&&C.setRequestHeader("Content-Type",f.contentType),C.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+Pt+"; q=0.01":""):f.accepts["*"]),f.headers)C.setRequestHeader(d,f.headers[d]);if(f.beforeSend&&(!1===f.beforeSend.call(p,C,f)||c))return C.abort();if(E="abort",y.add(f.complete),C.done(f.success),C.fail(f.error),i=Mt(zt,f,n,C)){if(C.readyState=1,u&&m.trigger("ajaxSend",[C,f]),c)return C;f.async&&f.timeout>0&&(a=e.setTimeout((function(){C.abort("timeout")}),f.timeout));try{c=!1,i.send(_,S)}catch(e){if(c)throw e;S(-1,e)}}else S(-1,"No Transport");function S(t,n,r,l){var d,h,g,_,x,E=n;c||(c=!0,a&&e.clearTimeout(a),i=void 0,s=l||"",C.readyState=t>0?4:0,d=t>=200&&t<300||304===t,r&&(_=function(e,t,n){for(var i,o,s,r,a=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(o in a)if(a[o]&&a[o].test(i)){l.unshift(o);break}if(l[0]in n)s=l[0];else{for(o in n){if(!l[0]||e.converters[o+" "+l[0]]){s=o;break}r||(r=o)}s=s||r}if(s)return s!==l[0]&&l.unshift(s),n[s]}(f,C,r)),!d&&w.inArray("script",f.dataTypes)>-1&&w.inArray("json",f.dataTypes)<0&&(f.converters["text script"]=function(){}),_=function(e,t,n,i){var o,s,r,a,l,c={},u=e.dataTypes.slice();if(u[1])for(r in e.converters)c[r.toLowerCase()]=e.converters[r];for(s=u.shift();s;)if(e.responseFields[s]&&(n[e.responseFields[s]]=t),!l&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=s,s=u.shift())if("*"===s)s=l;else if("*"!==l&&l!==s){if(!(r=c[l+" "+s]||c["* "+s]))for(o in c)if((a=o.split(" "))[1]===s&&(r=c[l+" "+a[0]]||c["* "+a[0]])){!0===r?r=c[o]:!0!==c[o]&&(s=a[0],u.unshift(a[1]));break}if(!0!==r)if(r&&e.throws)t=r(t);else try{t=r(t)}catch(e){return{state:"parsererror",error:r?e:"No conversion from "+l+" to "+s}}}return{state:"success",data:t}}(f,_,C,d),d?(f.ifModified&&((x=C.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=x),(x=C.getResponseHeader("etag"))&&(w.etag[o]=x)),204===t||"HEAD"===f.type?E="nocontent":304===t?E="notmodified":(E=_.state,h=_.data,d=!(g=_.error))):(g=E,!t&&E||(E="error",t<0&&(t=0))),C.status=t,C.statusText=(n||E)+"",d?v.resolveWith(p,[h,E,C]):v.rejectWith(p,[C,E,g]),C.statusCode(b),b=void 0,u&&m.trigger(d?"ajaxSuccess":"ajaxError",[C,f,d?h:g]),y.fireWith(p,[C,E]),u&&(m.trigger("ajaxComplete",[C,f]),--w.active||w.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],(function(e,t){w[t]=function(e,n,i,o){return p(n)&&(o=o||i,i=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:o,data:n,success:i},w.isPlainObject(e)&&e))}})),w.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),w._evalUrl=function(e,t,n){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){w.globalEval(e,t,n)}})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(p(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return p(e)?this.each((function(t){w(this).wrapInner(e.call(this,t))})):this.each((function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=p(e);return this.each((function(n){w(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){w(this).replaceWith(this.childNodes)})),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Ft={0:200,1223:204},Bt=w.ajaxSettings.xhr();f.cors=!!Bt&&"withCredentials"in Bt,f.ajax=Bt=!!Bt,w.ajaxTransport((function(t){var n,i;if(f.cors||Bt&&!t.crossDomain)return{send:function(o,s){var r,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(r in t.xhrFields)a[r]=t.xhrFields[r];for(r in t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest"),o)a.setRequestHeader(r,o[r]);n=function(e){return function(){n&&(n=i=a.onload=a.onerror=a.onabort=a.ontimeout=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?s(0,"error"):s(a.status,a.statusText):s(Ft[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),i=a.onerror=a.ontimeout=n("error"),void 0!==a.onabort?a.onabort=i:a.onreadystatechange=function(){4===a.readyState&&e.setTimeout((function(){n&&i()}))},n=n("abort");try{a.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}})),w.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),w.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(i,o){t=w(" + + + + + + + diff --git a/docs/ktools/index.html b/docs/ktools/index.html new file mode 100644 index 00000000000..84290dae3bc --- /dev/null +++ b/docs/ktools/index.html @@ -0,0 +1,726 @@ + + + + + + + + + + + + + + +K Tools | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + +

+ + + +
+
+
+ + +
+ +
+

K Tools

+

Here we document how to use some of the most commonly used K tools.

+

Minimizing Output

+

When one is working with kore-repl or the prover in general and looking at +specific configurations using config, sometimes the configurations can be huge.

+

One tool to help print configuration compactly is the pyk print utility:

+
sh
pyk print +
+

We are going to use --minimize option (which is actually used automatically +when printing with pyk). This will filter out many uninteresting cells for the +current config and make the result more compact.

+

Then, when invoking the prover, you can minimize your output by piping it into +the pyk print ... facility with arguments for controlling the output:

+
sh
kprove --output json --definition DEFN ... \ + | jq .term \ + | pyk print DEFN /dev/stdin --omit-labels ... --keep-labels ... +
+

You can also use this in the kore-repl more easily, by making a help script. +In your current directory, save a new script pykprint.sh:

+
sh
#!/bin/bash + +kast --input kore --output json --definition $1 /dev/stdin \ + | jq .term \ + | pyk print $1 /dev/stdin --omit-labels $2 +
+

Now call config | bash pykprint.sh DEFN in Kore REPL to make the output +smaller.

+

The options you have to control the output are as follows:

+
    +
  • --no-minimize: do not remove uninteresting cells.
  • +
  • --omit-cells: remove the selected cells from the output.
  • +
  • --keep-cells: keep only the selected cells in the output.
  • +
+

Note: Make sure that there is no whitespace around , in the omit list, +otherwise you'll get an error (, is a list separator, so this +requirement is strict).

+

Debugging

+

The LLVM Backend has support for integration with GDB. You can run the debugger +on a particular program by passing the --debugger flag to krun, or by +invoking the llvm backend interpreter directly. Below we provide a simple +tutorial to explain some of the basic commands supported by the LLVM backend.

+

LLDB Support

+

GDB is not well-supported on macOS, particularly on newer OS versions and Apple +Silicon ARM hardware. Consequently, if the --debugger option is passed to krun +on macOS, LLDB[^1] is launched instead of GDB. However, the K-specific debugger +scripts that GDB uses have not been ported to LLDB yet, and so the instructions +in the rest of this section will not work.

+

The K Definition

+

Here is a sample K definition we will use to demonstrate debugging +capabilities:

+
k
module TEST + imports INT + + configuration <k> foo(5) </k> + rule [test]: I:Int => I +Int 1 requires I <Int 10 + + syntax Int ::= foo(Int) [function] + rule foo(I) => 0 -Int I + +endmodule +
+

You should compile this definition with --backend llvm --enable-llvm-debug to +use the debugger most effectively.

+

Stepping

+

Important: When you first run krun with option --debugger, GDB / LLDB +will instruct you on how to modify ~/.gdbinit or ~/.lldbinit to enable +printing abstract syntax of K terms in the debugger. If you do not perform this +step, you can still use all the other features, but K terms will be printed as +their raw address in memory.

+

GDB will need the kompiled interpreter in its safe path in order to access the +pretty printing python script within it. A good way to do this would be to pick +a minimum top-level path that covers all of your kompiled semantics (ie. set auto-load safe-path ~/k-semantics). LLDB has slightly different security +policies that do not require fully-arbitrary code execution.

+

This section uses GDB syntax to demonstrate the debugging features. Please +refer to the GDB to LLDB command map on +macOS.

+

You can break before every step of execution is taken by setting a breakpoint +on the k_step function.

+
(gdb) break definition.kore:k_step
+Breakpoint 1 at 0x25e340
+(gdb) run
+Breakpoint 1, 0x000000000025e340 in step (subject=`<generatedTop>{}`(`<k>{}`(`kseq{}`(`inj{Int{}, KItem{}}`(#token("0", "Int")),dotk{}(.KList))),`<generatedCounter>{}`(#token("0", "Int"))))
+(gdb) continue
+Continuing.
+
+Breakpoint 1, 0x000000000025e340 in step (subject=`<generatedTop>{}`(`<k>{}`(`kseq{}`(`inj{Int{}, KItem{}}`(#token("1", "Int")),dotk{}(.KList))),`<generatedCounter>{}`(#token("0", "Int"))))
+(gdb) continue 2
+Will ignore next crossing of breakpoint 1.  Continuing.
+
+Breakpoint 1, 0x000000000025e340 in step (subject=`<generatedTop>{}`(`<k>{}`(`kseq{}`(`inj{Int{}, KItem{}}`(#token("3", "Int")),dotk{}(.KList))),`<generatedCounter>{}`(#token("0", "Int"))))
+(gdb)
+
+

Breaking on a specific rule

+

You can break when a rule is applied by giving the rule a rule label. If the +module name is TEST and the rule label is test, you can break when the rule +applies by setting a breakpoint on the TEST.test.rhs function:

+
(gdb) break TEST.test.rhs
+Breakpoint 1 at 0x25e250: file /home/dwightguth/test/./test.k, line 4.
+(gdb) run
+Breakpoint 1, TEST.test.rhs (VarDotVar0=`<generatedCounter>{}`(#token("0", "Int")), VarDotVar1=dotk{}(.KList), VarI=#token("0", "Int")) at /home/dwightguth/test/./test.k:4
+4         rule [test]: I:Int => I +Int 1 requires I <Int 10
+(gdb)
+
+

Note that the substitution associated with that rule is visible in the +description of the frame.

+

You can also break when a side condition is applied using the TEST.test.sc +function:

+
(gdb) break TEST.test.sc
+Breakpoint 1 at 0x25e230: file /home/dwightguth/test/./test.k, line 4.
+(gdb) run
+Breakpoint 1, TEST.test.sc (VarI=#token("0", "Int")) at /home/dwightguth/test/./test.k:4
+4         rule [test]: I:Int => I +Int 1 requires I <Int 10
+(gdb)
+
+

Note that every variable used in the side condition can have its value +inspected when stopped at this breakpoint, but other variables are not visible.

+

You can also break on a rule by its location:

+
(gdb) break test.k:4
+Breakpoint 1 at 0x25e230: test.k:4. (2 locations)
+(gdb) run
+Breakpoint 1, TEST.test.sc (VarI=#token("0", "Int")) at /home/dwightguth/test/./test.k:4
+4         rule [test]: I:Int => I +Int 1 requires I <Int 10
+(gdb) continue
+Continuing.
+
+Breakpoint 1, TEST.test.rhs (VarDotVar0=`<generatedCounter>{}`(#token("0", "Int")), VarDotVar1=dotk{}(.KList), VarI=#token("0", "Int")) at /home/dwightguth/test/./test.k:4
+4         rule [test]: I:Int => I +Int 1 requires I <Int 10
+(gdb) continue
+Continuing.
+
+Breakpoint 1, TEST.test.sc (VarI=#token("1", "Int")) at /home/dwightguth/test/./test.k:4
+4         rule [test]: I:Int => I +Int 1 requires I <Int 10
+(gdb)
+
+

Note that this sets a breakpoint at two locations: one on the side condition +and one on the right hand side. If the rule had no side condition, the first +would not be set. You can also view the locations of the breakpoints and +disable them individually:

+
(gdb) info breakpoint
+Num     Type           Disp Enb Address            What
+1       breakpoint     keep y   <MULTIPLE>
+        breakpoint already hit 3 times
+1.1                         y     0x000000000025e230 in TEST.test.sc at /home/dwightguth/test/./test.k:4
+1.2                         y     0x000000000025e250 in TEST.test.rhs at /home/dwightguth/test/./test.k:4
+(gdb) disable 1.1
+(gdb) continue
+Continuing.
+
+Breakpoint 1, TEST.test.rhs (VarDotVar0=`<generatedCounter>{}`(#token("0", "Int")), VarDotVar1=dotk{}(.KList), VarI=#token("1", "Int")) at /home/dwightguth/test/./test.k:4
+4         rule [test]: I:Int => I +Int 1 requires I <Int 10
+(gdb) continue
+Continuing.
+
+Breakpoint 1, TEST.test.rhs (VarDotVar0=`<generatedCounter>{}`(#token("0", "Int")), VarDotVar1=dotk{}(.KList), VarI=#token("2", "Int")) at /home/dwightguth/test/./test.k:4
+4         rule [test]: I:Int => I +Int 1 requires I <Int 10
+(gdb)
+
+

Now only the breakpoint when the rule applies is enabled.

+

Breaking on a function

+

You can also break when a particular function in your semantics is invoked:

+
(gdb) info functions foo
+All functions matching regular expression "foo":
+
+File /home/dwightguth/test/./test.k:
+struct __mpz_struct *Lblfoo'LParUndsRParUnds'TEST'UndsUnds'Int(struct __mpz_struct *);
+(gdb) break Lblfoo'LParUndsRParUnds'TEST'UndsUnds'Int
+Breakpoint 1 at 0x25e640: file /home/dwightguth/test/./test.k, line 6.
+(gdb) run
+Breakpoint 1, Lblfoo'LParUndsRParUnds'TEST'UndsUnds'Int (_1=#token("1", "Int")) at /home/dwightguth/test/./test.k:6
+6         syntax Int ::= foo(Int) [function]
+(gdb)
+
+

In this case, the variables have numbers instead of names because the names of +arguments in functions in K come from rules, and we are stopped before any +specific rule has applied. For example, _1 is the first argument to the +function.

+

You can also set a breakpoint in this location by setting it on the line +associated with its production:

+
(gdb) break test.k:6
+Breakpoint 1 at 0x25e640: file /home/dwightguth/test/./test.k, line 6.
+(gdb) run
+Breakpoint 1, Lblfoo'LParUndsRParUnds'TEST'UndsUnds'Int (_1=#token("1", "Int")) at /home/dwightguth/test/./test.k:6
+6         syntax Int ::= foo(Int) [function]
+
+

These two syntaxes are equivalent; use whichever is easier for you.

+

You can also view the stack of function applications:

+
(gdb) bt
+#0  Lblfoo'LParUndsRParUnds'TEST'UndsUnds'Int (_1=#token("1", "Int")) at /home/dwightguth/test/./test.k:6
+#1  0x000000000025e5f8 in apply_rule_111 (VarDotVar0=`<generatedCounter>{}`(#token("0", "Int")), VarDotVar1=dotk{}(.KList)) at /home/dwightguth/test/./test.k:9
+#2  0x0000000000268a52 in take_steps ()
+#3  0x000000000026b7b4 in main ()
+(gdb)
+
+

Here we see that foo was invoked while applying the rule on line 9 of test.k, +and we also can see the substitution of that rule. If foo was evaluated while +evaluating another function, we would also be able to see the arguments of that +function as well, unless the function was tail recursive, in which case no +stack frame would exist once the tail call was performed.

+

Breaking on a set of rules or functions

+

Using rbreak <regex> you can set breakpoints on multiple functions.

+
    +
  • +

    rbreak Lbl - sets a breakpoint on all non hooked functions

    +
  • +
  • +

    rbreak Lbl.*TEST - sets a breakpoint on all functions from module TEST

    +
  • +
  • +

    rbreak hook_INT - sets a breakpoint on all hooks from module INT

    +
  • +
+

Other debugger issues

+
    +
  • <optimized out> try kompiling without -O1, -O2, or -O3.
  • +
  • (gdb) break definition.kore:break -> No source file named definition.kore. +send --enable-llvm-debug to kompile in order to generate debug info symbols.
  • +
+

Profiling your K semantics

+

The first thing to be aware of is in order to get meaningful data, +you need to build the semantics and all of its dependencies with +optimizations enabled but without the frame pointer elimination +optimization. For example, for EVM, this means rebuilding GMP, MPFR, +JEMalloc, Crypto++, SECP256K1, etc with the following exports.

+
sh
export CFLAGS="-DNDEBUG -O2 -fno-omit-frame-pointer" +export CXXFLAGS="-DNDEBUG -O2 -fno-omit-frame-pointer" +
+

You can skip this step, but if you do, any samples within these +libraries will not have correct stack trace information, which means +you will likely not get a meaningful set of data that will tell you +where the majority of time is really being spent. Don't worry about +rebuilding literally every single dependency though. Just focus on the +ones that you expect to take a non-negligible amount of runtime. You +will be able to tell if you haven't done enough later, and you can go +back and rebuild more. Once this is done, you then build K with +optimizations and debug info enabled, like so:

+
sh
mvn package -Dproject.build.type="FastBuild" +
+

Next, you build the semantics with optimizations and debug info +enabled (i.e., kompile -ccopt -O2 --iterated -ccopt -fno-omit-frame-pointer).

+

Once all this is done, you should be ready to profile your +application. Essentially, you should run whatever test suite you +usually run, but with perf record -g -- prefixed to the front. For +example, for KEVM it's the following command. (For best data, don't +run this step in parallel.)

+
sh
perf record -g -- make test-conformance +
+

Finally, you want to filter out just the samples that landed within +the llvm backend and view the report. For this, you need to know the +name of the binary that was generated by your build system. Normally +it is interpreter, but e.g. if you are building the web3 client for +kevm, it would be kevm-client. You will want to run the following +command.

+
sh
perf report -g -c $binary_name +
+

If all goes well, you should see a breakdown of where CPU time has +been spent executing the application. You will know that sufficient +time was spent rebuilding dependencies with the correct flags when the +total time reported by the main method is close to 100%. If it's not +close to 100%, this is probably because a decent amount of self time +was reported in stack traces that were not built with frame pointers +enabled, meaning that perf was unable to walk the stack. You will have +to go back, rebuild the appropriate libraries, and then record your +trace again.

+

Your ultimate goal is to identify the hotspots that take the most +time, and make them execute faster. Entries like step and +step_1234 like functions refer to the cost of matching. An entry +like side_condition_1234 is a side condition and apply_rule_1234 +is constructing the rhs of a rule. You can convert from this rule +ordinal to a location using the llvm-kompile-compute-loc script in +the bin folder of the llvm backend repo. For example,

+
sh
llvm-kompile-compute-loc 5868 evm-semantics/.build/defn/llvm/driver-kompiled +
+

spits out the following text.

+
Line: 18529
+/home/dwightguth/evm-semantics/./.build/defn/llvm/driver.k:493:10
+
+

This is the line of definition.kore that the axiom appears on as +well as the original location of the rule in the K semantics. You can +use this information to figure out which rules and functions are +causing the most time and optimize them to be more efficient.

+

Running tests - kserver

+

The kserver is a front-end tool based on Nailgun +which helps to reduce the startup time of the JVM. Calling kserver in a terminal +window will wait for all kompile/kprove calls and force them to run in the same process +and share the same threads. This also reduces the thread contention significantly. kompile +uses all the threads available to do rule parsing. Another benefit is that it saves caches, +and each time you call kprove/kast, you can access those directly w/o extra disk usage. +Running the regression-new integration tests on a powerful machine (32 threads) takes 8m, +with the kserver active it takes 2m. You can start the kserver in two ways.

+
    +
  • blocking: call kserver in the command line. Close it after you are done testing. Useful for quick testing.
  • +
  • non-blocking: call spawn-kserver <log.flie> and close it with stop-kserver - this is used for automation on CI
  • +
+

Because we reuse caches, you should stop and restart the server between runs. +The Nailgun implementation hasn't been updated in the last 3-5 years, and it's not compatible with Java 18 onwards.

+
+
+ + + +
+ +
+
+ + + + + + + + + + + + diff --git a/docs/user_manual/index.html b/docs/user_manual/index.html new file mode 100644 index 00000000000..9f820c2bbc8 --- /dev/null +++ b/docs/user_manual/index.html @@ -0,0 +1,3945 @@ + + + + + + + + + + + + + + +K User Manual | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

K User Manual

+

NOTE: The K User Manual is still under construction; some features of K +may have partial or missing documentation.

+

Introduction

+

Why K?

+

The K Framework is a programming language and system design toolkit made for +practioners and researchers alike.

+

K For Practioners: +K is a framework for deriving programming languages tools from their semantic +specifications.

+

Typically, programming language tool development follows a similar pattern. +After a new programming language is designed, separate teams will develop +separate language tools (e.g. a compiler, interpreter, parser, symbolic +execution engine, etc). Code reuse is uncommon. The end result is that for each +new language, the same basic tools and patterns are re-implemented again and +again.

+

K approaches the problem differently -- it generates each of these tools from a single language specification. +The work of programming language design and tool implementation are made separate concerns. +The end result is that the exercise of +designing new languages and their associated tooling is now reduced to +developing a single language specification from which we derive our tooling for +free.

+

K For Researchers: +K is a configuration- and rewrite-based executable semantic framework.

+

In more detail, K specifications are:

+
    +
  1. Executable: compile into runnable and testable programs;
  2. +
  3. Semantic: correspond to a logical theory with a sound and relatively +complete proof system;
  4. +
  5. Configuration-based: organize system states into compositional, +hierarchical, labelled units called cells;
  6. +
  7. Rewrite-based: define system transitions using rewrite rules.
  8. +
+

K specifications are compiled into particular matching logic theories, giving +them a simple and expressive semantics. K semantic rules are implicitly defined +over the entire configuration structure, but omit unused cells, enabling a +highly modular definitional style. Furthermore, K has been used to develop +programming languages, type systems, and formal analysis tools.

+

Manual Objectives

+

As mentioned in the Why K? section above, the K Framework is designed as a +collection of language-generic command-line interface (CLI) tools which revolve +around K specifications. These tools cover a broad range of uses, but they +typically fall into one of the following categories:

+
    +
  1. Transforming K Specs (e.g. compilation)
  2. +
  3. Running K Specs (e.g. concrete and symbolic execution)
  4. +
  5. Analyzing K Specs (e.g. theorem proving)
  6. +
+

The main user-facing K tools include:

+
    +
  • kompile - the K compiler driver
  • +
  • kparse - the stanadlone K parser and abstract syntax tree (AST) +transformation tool
  • +
  • krun - the K interpreter and symbolic execution engine driver
  • +
  • kprove - the K theorem prover
  • +
+

This user manual is designed to be a tool reference. +In particular, it is not desgined to be a tutorial on how to write K +specifications or to teach the logical foundations of K. New K users should +consult our dedicated +K tutorial, +or the more language-design oriented +PL tutorial. +Researchers seeking to learn more about the logic underlying K are encouraged +to peruse the +growing literature on K and matching logic. +We will consider the manual complete when it provides a complete description of +all user-facing K tools and features.

+

Introduction to K

+

Since K specifications are the primary input into the entire system, let us +take a moment to describe them. At the highest level, K specifications describe +a programming language or system using three different pieces:

+
    +
  1. the system primitives, the base datatypes used during system operation, +e.g., numbers, lists, maps, etc;
  2. +
  3. the system state, a tuple or record over system primitives which gives a +complete snapshot of the system at any given moment;
  4. +
  5. the system behavior, a set of rules which defines possible system +evolutions.
  6. +
+

K specifications are then defined by a collection of sentences which +correspond to the three concepts above:

+
    +
  1. syntax declarations encode the system primitives;
  2. +
  3. configuration declarations encode the system state;
  4. +
  5. context and rule declarations encode the system behavior.
  6. +
+

K sentences are then organized into one or modules which are stored in one or +more files. In this scheme, files may require other files and modules may +import other modules, giving rise to a hierarchy of files and modules. We +give an intuitive sketch of the two levels of grouping in the diagram below:

+
   example.k file
+  +=======================+
+  | requires ".." --------|--> File_1
+  | ...                   |
+  | requires ".." --------|--> File_N
+  |                       |
+  |  +-----------------+  |
+  |  | module ..       |  |
+  |  |   imports .. ---|--|--> Module_1
+  |  |   ...           |  |
+  |  |   imports .. ---|--|--> Module_M
+  |  |                 |  |
+  |  |   sentence_1    |  |
+  |  |   ...           |  |
+  |  |   sentence_K    |  |
+  |  | endmodule       |  |
+  |  +-----------------+  |
+  |                       |
+  +=======================+
+
+

where:

+
    +
  • files and modules are denoted by double-bordered and single-borded boxes +respectively;
  • +
  • file or module identifiers are denoted by double dots (..);
  • +
  • potential repititions are denoted by triple dots (...).
  • +
+

In the end, we require that the file and module hierarchies both form a +directed acyclic graph (DAG). This is, no file may recursively require itself, +and likewise, no module may recursively import itself.

+

We now zoom in further to discuss the various kinds of sentences contained in K +specifications:

+
    +
  1. +

    sentences that define our system's primitives, including:

    +
      +
    • sort declarations: define new categories of primitive datatypes
    • +
    • Backus-Naur Form (BNF) grammar declarations: define the +operators that inhabit our primitive datatypes
    • +
    • lexical syntax declarations: define lexemes/tokens for the +lexer/tokenizer
    • +
    • syntax associativity declarations: specify the +associativity/grouping of our declared operators
    • +
    • syntax priority declarations: specify the priority of +potential ambiguous operators
    • +
    +
  2. +
  3. +

    sentences that define our system's state, including:

    +
      +
    • configuration declarations: define labelled, hierarchical records +using an nested XML-like syntax
    • +
    +
  4. +
  5. +

    sentences that define our system's behavior, including:

    +
      +
    • context declarations: describe how primitives and configurations +can simplify
    • +
    • context alias declarations: define templates that can generate new +contexts
    • +
    • rule declarations: define how the system transitions from one state +to the next
    • +
    +
  6. +
+

K Process Overview

+

We now examine how the K tools are generally used. The main input to all of the +K tools is a K specification. For effieciency reasons, this specification is +first compiled into an intermediate representation called Kore. Once we have +obtained this intermediate representation, we can use it to do:

+
    +
  1. parsing/pretty-printing, i.e., converting a K term, whose syntax is defined +by a K specification, into a alternate representation
  2. +
  3. concrete and abstract execution of a K specification
  4. +
  5. theorem proving, i.e., verifying whether a set of claims about a K +specification hold
  6. +
+

We represent the overall process using the graphic below:

+
 K Compilation Process
++============================================================+
+|                     +---------+                            |
+|  K Specification ---| kompile |--> Kore Specification --+  |
+|                     +---------+                         |  |
++=========================================================|==+
+                                                          |
+ K Execution Process                                      |
++=========================================================|==+
+|                                                         |  |
+|             +-------------------------------------------+  |
+|             |                                              |
+|             |       +---------+                            |
+|  K Term ----+-------| kparse  |--> K Term                  |
+|             |       +---------+                            |
+|             |                                              |
+|             |       +---------+                            |
+|  K Term ----+-------|  krun   |--> K Term                  |
+|             |       +---------+                            |
+|             |                                              |
+|             |       +---------+                            |
+|  K Claims --+-------| kprove  |--> K Claims                |
+|                     +---------+                            |
+|                                                            |
++============================================================+
+
+

where:

+
    +
  • process outlines are denoted by boxes with double-lined borders
  • +
  • executables are denoted by boxes with single-lined borders
  • +
  • inputs and outputs are denoted by words attached to lines
  • +
  • K terms typically correspond to programs defined in a particular +language's syntax (which are either parsed using kparse or executed using +krun)
  • +
  • K claims are a notation for describing how certain K programs should +execute (which are checked by our theorem prover kprove)
  • +
+

K Compilation Process: +Let us start with a description of the compilation process. According to the +above diagram, the compiler driver is called kompile. For our purposes, it is +enough to view the K compilation process as a black box that transforms a K +specification into a lower-level Kore specification that encodes the same +information, but that is easier to work with programmatically.

+

K Execution Process: +We now turn our attention to the K execution process. Abstractly, we can divide +the K execution process into the following stages:

+
    +
  1. the kore specification is loaded (which defines a lexer, parser, and +unparser among other things)
  2. +
  3. the input string is lexed into a token stream
  4. +
  5. the token stream is parsed into K terms/claims
  6. +
  7. the K term/claims are transformed according the K tool being used (e.g. +kparse, krun, or kprove)
  8. +
  9. the K term/claims are unparsed into a string form and printed
  10. +
+

Note that all of the above steps performed in K execution process are fully +prescribed by the input K specification. Of course, there are entire languages +devoted to encoding these various stages proces individually, e.g., flex for +lexers, bison for parsers, etc. What K offers is a consistent language to +package the above concepts in a way that we believe is convenient and practical +for a wide range of uses.

+

Module Declaration

+

K modules are declared at the top level of a K file. They begin with the +module keyword and are followed by a module ID and an optional set of +attributes. They continue with zero or more imports and zero or more sentences +until the endmodule keyword is reached.

+

A module ID consists of an optional # at the beginning, followed by one or +more components separated by hyphens. Each component can contain letters, +numbers, or underscores.

+

After the module ID, attributes can be specified in square brackets. See below +for an (incomplete) list of allowed module attributes.

+

Following the attributes, a module can contain zero or more imports. An +import consists of the import or imports keywords followed by a module ID. +An import tells the compiler that this module should contain all the sentences +(recursively) contained by the module being imported.

+

Imports can be public or private. By default, they are public, which +means that all the imported syntax can be used by any module that imports the +module doing the import. However, you can explicitly override the visibility +of the import with the public or private keyword immediately prior to the +module name. A module imported privately does not export its syntax to modules +that import the module doing the import.

+

Following imports, a module can contain zero or more sentences. A sentence can +be a syntax declaration, a rule, a configuration declaration, a context, a +claim, or a context alias. Details on each of these can be found in subsequent +sections.

+

private attribute

+

If the module is given the private attribute, all of its imports and syntax +are private by default. Individual pieces of syntax can be made public with +the public attribute, and individual imports can be made public with the +public keyword. See relevant sections on syntax and modules for more details +on what it means for syntax and imports to be public or private.

+

symbolic and concrete attribute

+

These attributes may be placed on modules to indicate that they should only +be used by the Haskell and LLVM backends respectively. If the definition is +compiled on the opposite backend, they are implicitly removed from the +definition prior to parsing anywhere they are imported. This can be useful when +used in limited capacity in order to provide alternate semantics for certain +features on different backends. It should be used sparingly as it makes it more +difficult to trust the correctness of your semantics, even in the presence of +testing.

+

Syntax Declaration

+

Named Non-Terminals

+

We have added a syntax to Productions which allows non-terminals to be given a +name in productions. This significantly improves the ability to document K, by +providing a way to explicitly explain what a field in a production corresponds +to instead of having to infer it from a comment or from the rule body.

+

The syntax is:

+
k
name: Sort +
+

This syntax can be used anywhere in a K definition that expects a non-terminal.

+

klabel(_) and symbol attributes

+

By default K generates for each syntax definition a long and obfuscated klabel +string, which serves as a unique internal identifier and also is used in kast +format of that syntax. If we need to reference a certain syntax production +externally, we have to manually define the klabels using the klabel attribute. +One example of where you would want to do this is to be able to refer to a given +symbol via the syntax priorities attribute, or to enable overloading of a +given symbol.

+

If you only provide the klabel attribute, you can use the provided klabel to +refer to that symbol anywhere in the frontend K code. However, the internal +identifier seen by the backend for that symbol will still be the long obfuscated +generated string. Sometimes you want control over the internal identfier used as +well, in which case you use the symbol attribute. This tells the frontend to +use whatever the declared klabel is directly as the internal identfier.

+

For example:

+
k
module MYMODULE + syntax FooBarBaz ::= #Foo( Int, Int ) [klabel(#Foo), symbol] // symbol1 + | #Bar( Int, Int ) [klabel(#Bar)] // symbol2 + | #Baz( Int, Int ) // symbol3 +endmodule +
+

Here, we have that:

+
    +
  • In frontend K, you can refer to "symbol1" as #Foo (from klabel(#Foo)), +and the backend will see 'Hash'Foo as the symbol name.
  • +
  • In frontend K, you can refer to "symbol2" as #Bar (from klabel(#Bar)), +and the backend will see +'Hash'Bar'LParUndsCommUndsRParUnds'MYMODULE'Unds'FooBarBaz'Unds'Int'Unds'Int +as the symbol name.
  • +
  • In frontend K, you can refer to "symbol3" as +#Baz(_,_)_MYMODULE_FooBarBaz_Int_Int (from auto-generated klabel), and +the backend will see +'Hash'Baz'LParUndsCommUndsRParUnds'MYMODULE'Unds'FooBarBaz'Unds'Int'Unds'Int +as the symbol name.
  • +
+

The symbol provided must be unique to this definition. This is enforced by K. +In general, it's recommended to use symbol attribute whenever you use klabel +unless you explicitely have a reason not to (eg. you want to overload symbols, +or you're using a deprecated backend). It can be very helpful use the symbol +attribute for debugging, as many debugging messages are printed in Kast format +which will be more readable with the symbol names you explicitely declare. +In addition, if you are programatically manipulating definitions via the JSON +Kast format, building terms using the user-provided pretty +symbol, klabel(...) is easier and less error-prone when the auto-generation +process for klabels changes.

+

Parametric productions and bracket attributes

+

Some syntax productions, like the rewrite operator, the bracket operator, and +the #if #then #else #fi operator, cannot have their precise type system +expressed using only concrete sorts.

+

Prior versions of K solved this issue by using the K sort in this case, but +this introduces inexactness in which poorly typed terms can be created even +without having a cast operator present in the syntax, which is a design +consideration we would prefer to avoid.

+

It also introduces cases where terms cannot be placed in positions where they +ought to be well sorted unless their return sort is made to be KBott, which in +turn vastly complicates the grammar and makes parsing much slower.

+

In order to introduce this, we provide a new syntax for parametric productions +in K. This allows you to express syntax that has a sort signature based on +parametric polymorphism. We do this by means of an optional curly-brace- +enclosed list of parameters prior to the return sort of a production.

+

Some examples:

+
k
syntax {Sort} Sort ::= "(" Sort ")" [bracket] +syntax {Sort} KItem ::= Sort +syntax {Sort} Sort ::= KBott +syntax {Sort} Sort ::= Sort "=>" Sort +syntax {Sort} Sort ::= "#if" Bool "#then" Sort "#else" Sort "#fi" +syntax {Sort1, Sort2} Sort1 ::= "#fun" "(" Sort2 "=>" Sort1 ")" "(" Sort2 ")" +
+

Here we have:

+
    +
  1. Brackets, which can enclose any sort but should be of the same sort that was +enclosed.
  2. +
  3. Every sort is a KItem.
  4. +
  5. A KBott term can appear inside any sort.
  6. +
  7. Rewrites, which can rewrite a value of any sort to a value of the same sort. +Note that this allows the lhs or rhs to be a subsort of the other.
  8. +
  9. If then else, which can return any sort but which must contain that sort on +both the true and false branches.
  10. +
  11. lambda applications, in which the argument and parameter must be the same +sort, and the return value of the application must be the same sort as the +return value of the function.
  12. +
+

Note the last case, in which two different parameters are specified separated +by a comma. This indicates that we have multiple independent parameters which +must be the same each place they occur, but not the same as the other +parameters.

+

In practice, because every sort is a subsort of K, the Sort2 +parameter in #6 above does nothing during parsing. It cannot +actually reject any parse, because it can always infer that the sort of the +argument and parameter are K, and it has no effect on the resulting sort of +the term. However, it will nevertheless affect the kore generated from the term +by introducing an additional parameter to the symbol generated for the term.

+

function and total attributes

+

Many times it becomes easier to write a semantics if you have "helper" +functions written which can be used in the RHS of rules. The function +attribute tells K that a given symbol should be simplified immediately when it +appears anywhere in the configuration. Semantically, it means that evaluation +of that symbol will result in at most one return value (that is, the symbol is +a partial function).

+

The total attribute indicates that a symbol cannot be equal to matching logic +bottom; in other words, it has at least one value for every possible set of +arguments. It can be added to a production with the function attribute to +indicate to the symbolic reasoning engine that a given symbol is a +total function, that is it has exactly one return value for every possible +input. Other uses of the total attribute (i.e., on multi-valued symbols to +indicate they always have at least one value) are not yet implemented.

+

For example, here we define the _+Word_ total function and the _/Word_ +partial function, which can be used to do addition/division modulo +2 ^Int 256. These functions can be used anywhere in the semantics where +integers should not grow larger than 2 ^Int 256. Notice how _/Word_ is +not defined when the denominator is 0.

+
k
syntax Int ::= Int "+Word" Int [function, total] + | Int "/Word" Int [function] + +rule I1 +Word I2 => (I1 +Int I2) modInt (2 ^Int 256) +rule I1 /Word I2 => (I1 /Int I2) modInt (2 ^Int 256) requires I2 =/=Int 0 +
+

freshGenerator attribute

+

In K, you can access "fresh" values in a given domain using the syntax +!VARNAME:VarSort (with the !-prefixed variable name). This is supported for +builtin sorts Int and Id already. For example, you can generate fresh +memory locations for declared identifiers as such:

+
k
rule <k> new var x ; => . ... </k> + <env> ENV => ENV [ x <- !I:Int ] </env> + <mem> MEM => MEM [ !I <- 0 ] </mem> +
+

Each time a !-prefixed variable is encountered, a new integer will be used, +so each variable declared with new var _ ; will get a unique position in the +<mem>.

+

Sometimes you want to have generation of fresh constants in a user-defined +sort. For this, K will still generate a fresh Int, but can use a converter +function you supply to turn it into the correct sort. For example, here we can +generate fresh Foos using the freshFoo(_) function annotated with +freshGenerator.

+
k
syntax Foo ::= "a" | "b" | "c" | d ( Int ) + +syntax Foo ::= freshFoo ( Int ) [freshGenerator, function, total] + +rule freshFoo(0) => a +rule freshFoo(1) => b +rule freshFoo(2) => c +rule freshFoo(I) => d(I) [owise] + +rule <k> new var x ; => . ... </k> + <env> ENV => ENV [ x <- !I:Int ] </env> + <mem> MEM => MEM [ !I <- !F:Foo ] </mem> +
+

Now each newly allocated memory slot will have a fresh Foo placed in it.

+

token attribute

+

The token attribute signals to the Kore generator that the associated sort +will be inhabited by domain values. Sorts inhabited by domain values must not +have any constructors declared.

+
k
syntax Bytes [hook(BYTES.Bytes), token] +
+

Converting between [token] sorts

+

You can convert between tokens of one sort via Strings by defining functions +implemented by builtin hooks. +The hook STRING.token2string allows conversion of any token to a string:

+
k
syntax String ::= FooToString(Foo) [function, total, hook(STRING.token2string)] +
+

Similarly, the hook STRING.string2Token allows the inverse:

+
k
syntax Bar ::= StringToBar(String) [function, total, hook(STRING.string2token)] +
+

WARNING: This sort of conversion does NOT do any sort of parsing or validation. +Thus, we can create arbitary tokens of any sort:

+
StringToBar("The sun rises in the west.")
+
+

Composing these two functions lets us convert from Foo to Bar

+
k
syntax Bar ::= FooToBar(Foo) [function] +rule FooToBar(F) => StringToBar(FooToString(F)) +
+

Parsing comments, and the #Layout sort

+

Productions for the #Layout sort are used to describe tokens that are +considered "whitespace". The scanner removes tokens matching these productions +so they are not even seen by the parser. Below, we use it to define +lines begining with ; (semicolon) as comments.

+
k
syntax #Layout ::= r"(;[^\\n\\r]*)" // Semi-colon comments + | r"([\\ \\n\\r\\t])" // Whitespace +
+

prec attribute

+

Consider the following naive attempt at creating a language what syntax that +allows two types of variables: names that contain underbars, and names that +contain sharps/hashes/pound-signs:

+
k
syntax NameWithUnderbar ::= r"[a-zA-Z][A-Za-z0-9_]*" [token] +syntax NameWithSharp ::= r"[a-zA-Z][A-Za-z0-9_#]*" [token] +syntax Pgm ::= underbar(NameWithUnderbar) + | sharp(NameWithSharp) +
+

Although, it seems that K has enough information to parse the programs +underbar(foo) and sharp(foo) with, the lexer does not take into account +whether a token is being parsed for the sharp or for the underbar +production. It chooses an arbitary sort for the token foo (perhaps +NameWithUnderbar). Thus, during paring it is unable to construct a valid term +for one of those programs (sharp(foo)) and produces the error message: +Inner Parser: Parse error: unexpected token 'foo'.

+

Since calculating inclusions and intersections between regular expressions is +tricky, we must provide this information to K. We do this via the prec(N) +attribute. The lexer will always prefer longer tokens to shorter tokens. +However, when it has to choose between two different tokens of equal length, +token productions with higher precedence are tried first. Note that the default +precedence value is zero when the prec attribute is not specified.

+

For example, the BUILTIN-ID-TOKENS module defines #UpperId and #LowerId with +the prec(2) attribute.

+
k
syntax #LowerId ::= r"[a-z][a-zA-Z0-9]*" [prec(2), token] + syntax #UpperId ::= r"[A-Z][a-zA-Z0-9]*" [prec(2), token] +
+

Furthermore, we also need to make sorts with more specific tokens subsorts of ones with more +general tokens. We add the token attribute to this production so that all +tokens of a particular sort are marked with the sort they are parsed as and not a +subsort thereof. e.g. we get underbar(#token("foo", "NameWithUnderbar")) +instead of underbar(#token("foo", "#LowerId"))

+
k
imports BUILTIN-ID-TOKENS +syntax NameWithUnderbar ::= r"[a-zA-Z][A-Za-z0-9_]*" [prec(1), token] + | #UpperId [token] + | #LowerId [token] +syntax NameWithSharp ::= r"[a-zA-Z][A-Za-z0-9_#]*" [prec(1), token] + | #UpperId [token] + | #LowerId [token] +syntax Pgm ::= underbar(NameWithUnderbar) + | sharp(NameWithSharp) +
+

unused attribute

+

K will warn you if you declare a symbol that is not used in any of the rules of +your definition. Sometimes this is intentional, however; in this case, you can +suppress the warning by adding the unused attribute to the production or +cell.

+
k
syntax Foo ::= foo() [unused] + +configuration <foo unused=""> .K </foo> +
+

Symbol priority and associativity

+

Unlike most other parser generators, K combines the task of parsing with AST +generation. A production declared with the syntax keyword in K is both a +piece of syntax used when parsing, and a symbol that is used when rewriting. +As a result, it is generally convenient to describe expression grammars using +priority and associativity declarations rather than explicitly transforming +your grammar into a series of nonterminals, one for each level of operator +precedence. Thus, for example, a simple grammar for addition and multiplication +will look like this:

+
k
syntax Exp ::= Exp "*" Exp + | Exp "+" Exp +
+

However, this grammar is ambiguous. The term x+y*z might refer to x+(y*z) +or to (x+y)*z. In order to differentiate this, we introduce a partial +ordering between productions known as priority. A symbol "has tighter priority" +than another symbol if the first symbol can appear under the second, but the +second cannot appear under the first without a bracket. For example, in +traditional arithmetic, multiplication has tighter priority than addition, +which means that x+y*z cannot parse as (x+y)*z because the addition +operator would appear directly beneath the multiplication, which is forbidden +by the priority filter.

+

Priority is applied individually to each possible ambiguous parse of a term. It +then either accepts or rejects that parse. If there is only a single remaining +parse (after all the other disambiguation steps have happened), this is the +parse that is chosen. If all the parses were rejected, it is a parse error. If +multiple parses remain, they might be resolved by further disambiguation such +as via the prefer and avoid attributes, but if multiple parses remain after +disambiguation finishes, this is an ambiguous parse error, indicating there is +not a unique parse for that term. In the vast majority of cases, this is +an error and indicates that you ought to either change your grammar or add +brackets to the term in question.

+

Priority is specified in K grammars by means of one of two different +mechanisms. The first, and simplest, simply replaces the | operator in a +sequence of K productions with the > operator. This operator indicates that +everything prior to the > operator (including transitively) binds tighter +than what comes after. For example, a more complete grammar for simple +arithmetic might be:

+
k
syntax Exp ::= Exp "*" Exp + | Exp "/" Exp + > Exp "+" Exp + | Exp "-" Exp +
+

This indicates that multiplication and division bind tigher than addition +and subtraction, but that there is no relationship in priority between +multiplication and division.

+

As you may have noticed, this grammar is also ambiguous. x*y/z might refer to +x*(y/z) or to (x*y)/z. Indeed, if we removed division and subtraction +entirely, the grammar would still be ambiguous: x*y*z might parse as +x*(y*z), or as (x*y)*z. To resolve this, we introduce another feature: +associativity. Roughly, asssociativity tells us how symbols are allowed to nest +within other symbols with the same priority. If a set of symbols is left +associative, then symbols in that set cannot appear as the rightmost child +of other symbols in that set. If a set of symbols is right associative, then +symbols in that set cannot appear as the leftmost child of other symbols in +that set. Finally, if a set of symbols is non-associative, then symbols +in that set cannot appear as the rightmost or leftmost child of other symbols +in that set. For example, in the above example, if addition and subtraction +are left associative, then x+y+z will parse as (x+y)+z and x+y-z will +parse as (x+y)-z (because the other parse will have been rejected).

+

You might notice that this seems to apply only to binary infix operators. In +fact, the real behavior is slightly more complicated. Priority and +associativity (for technical reasons that go beyond the scope of this document) +really only apply when the rightmost or leftmost item in a production is a +nonterminal. If the rightmost nonterminal is followed by a terminal (or +respectively the leftmost preceded), priority and associativity do not apply. +Thus we can generalize these concepts to arbitrary context-free grammars.

+

Note that in some cases, this is not the behavior you want. You may actually +want to reject parses even though the leftmost and rightmost item in a +production are terminals. You can accomplish this by means of the +applyPriority attribute. When placed on a production, it tells the parser +which nonterminals of a production the priority filter ought to reject children +under, overriding the default behavior. For example, I might have a production +like syntax Exp ::= foo(Exp, Exp) [applyPriority(1)]. This tells the parser +to reject terms with looser priority binding under the first Exp, but not +the second. By default, with this production, neither position would apply +to the priority filter, because the first and last items of the production +are both terminals.

+

Associativity is specified in K grammars by means of one of two different +mechanisms. The first, and simplest, adds the associativity of a priority block +of symbols prior to that block. For example, we can remove the remaining +ambiguities in the above grammar like so:

+
k
syntax Exp ::= left: + Exp "*" Exp + | Exp "/" Exp + > right: + Exp "+" Exp + | Exp "-" Exp +
+

This indicates that multiplication and division are left-associative, ie, after +symbols with higher priority are parsed as innermost, symbols are nested with +the rightmost on top. Addition and subtraction are right associative, which +is the opposite and indicates that symbols are nested with the leftmost on top. +Note that this is similar but different from evaluation order, which also +concerns itself with the ordering of symbols, which is described in the next +section.

+

You may note we have not yet introduced the second syntax for priority +and associativity. In some cases, syntax for a grammar might be spread across +multiple modules, sometimes for very good reasons with respect to code +modularity. As a result, it becomes infeasible to declare priority and +associativity inline within a set of productions, because the productions +are not contiguous within a single file.

+

For this purpose, we introduce the equivalent syntax priorities, +syntax left, syntax right, and syntax non-assoc declarations. For +example, the above grammar can be written equivalently as:

+
k
syntax Exp ::= Exp "*" Exp [group(mult)] + | Exp "/" Exp [group(div)] + | Exp "+" Exp [group(add)] + | Exp "-" Exp [group(sub)] + +syntax priorities mult div > add sub +syntax left mult div +syntax right add sub +
+

Here, the group(_) attribute is used to create user-defined groups of +sentences. A particular group name collectively refers to the whole set of +sentences within that group. The sets are flattened together, so we could +equivalently have written:

+
k
syntax Exp ::= Exp "*" Exp [group(mult)] + | Exp "/" Exp [group(mult)] + | Exp "+" Exp [group(add)] + | Exp "-" Exp [group(add)] + +syntax priorities mult > add +syntax left mult +syntax right add +
+

Note that syntax [left|right|non-assoc] should not be used to group together +productions with different priorities. For example, this code would be invalid:

+
k
syntax priorities mult > add +syntax left mult add +
+

Note that there is one other way to describe associativity, but it is +prone to a very common mistake. You can apply the attribute left, right, +or non-assoc directly to a production to indicate that it is, by itself, +left-, right-, or non-associative.

+

However, this often does not mean what users think it means. In particular:

+
k
syntax Exp ::= Exp "+" Exp [left] + | Exp "-" Exp [left] +
+

is not equivalent to:

+
k
syntax Exp ::= left: + Exp "+" Exp + | Exp "-" Exp +
+

Under the first, each production is associative with itself, but not each +other. Thus, x+y+z will parse unambiguously as (x+y)+z, but x+y-z will +be ambiguous. However, in the second, x+y-z will parse unambiguously as +(x+y)-z.

+

Think carefully about how you want your grammar to parse. In general, if you're +not sure, it's probably best to group associativity together into the same +blocks you use for priority, rather than using left, right, or non-assoc +attributes on the productions.

+

Lexical identifiers

+

Sometimes it is convenient to be able to give a certain regular expression a +name and then refer to it in one or more regular expression terminals. This +can be done with a syntax lexical sentence in K:

+
k
syntax lexical Alphanum = r"[0-9a-zA-Z]" +
+

This defines a lexical identifier Alphanum which can be expanded in any +regular expression terminal to the above regular expression. For example, I +might choose to then implement the syntax of identifiers as follows:

+
k
syntax Id ::= r"[a-zA-Z]{Alphanum}*" [token] +
+

Here {Alphanum} expands to the above regular expression, making the sentence +equivalent to the following:

+
k
syntax Id ::= r"[a-zA-Z]([0-9a-zA-Z])*" [token] +
+

This feature can be used to more modularly construct the lexical syntax of your +language. Note that K does not currently check that lexical identifiers used +in regular expressions have been defined; this will generate an error when +creating the scanner, however, and the user ought to be able to debug what +happened.

+

assoc, comm, idem, and unit attributes

+

These attributes are used to indicate whether a collection or a production +is associative, commutative, idempotent, and/or has a unit. +In general, you should not need to apply these attributes to productions +yourself, however, they do have certain special meaning to K. K will generate +axioms related to each of these concepts into your definition for you +automatically. It will also automatically sort associative-commutative +collections, and flatten the indentation of associative collections, when +unparsing.

+

public and private attribute

+

K allows users to declare certain pieces of syntax as either public or private. +All syntax is public by default. Public syntax can be used from any module that +imports that piece of syntax. A piece of syntax can be declared private with +the private attribute. This means that that syntax can only be used in the +module in which it is declared; it is not visible from modules that import +that module.

+

You can also change the default visibility of a module with the private +attribute, when it is placed directly on a module. A module with the private +attribute has all syntax private by default; this can be overridden on +specific sentences with the public attribute.

+

Note that the private module attribute also changes the default visiblity +of imports; please refer to the appropriate section elsewhere in the manual +for more details.

+

Here is an example usage:

+
k
module WIDGET-SYNTAX + + syntax Widget ::= foo() + syntax WidgetHelper ::= bar() [private] // this production is not visible + // outside this module +endmodule + +module WIDGET [private] + imports WIDGET-SYNTAX + + syntax Widget ::= fooImpl() // this production is not visible outside this + // module + + // this production is visible outside this module + syntax KItem ::= adjustWidget(Widget) [function, public] +endmodule +
+

Configuration Declaration

+

exit attribute

+

A single configuration cell containing an integer may have the "exit" +attribute. This integer will then be used as the return value on the console +when executing the program.

+

For example:

+
k
configuration <k> $PGM:Pgm </k> + <status-code exit=""> 1 </status-code> +
+

declares that the cell status-code should be used as the exit-code for +invocations of krun. Additionally, we state that the default exit-code is 1 +(an error state). One use of this is for writing testing harnesses which assume +that the test fails until proven otherwise and only set the <status-code> cell +to 0 if the test succeeds.

+

Collection Cells: multiplicity and type attributes

+

Sometimes a semantics needs to allow multiple copies of the same cell, for +example if you are making a concurrent multi-threading programming language. +For this purpose, K supports the multiplicity and type attributes on cells +declared in the configuration.

+

multiplicity can take on values * and ?. Declaring multiplicity="*" +indicates that the cell may appear any number of times in a runtime +configuration. Setting multiplicity="?" indicates that the cell may only +appear exactly 0 or 1 times in a runtime configuration. If there are no +configuration variables present in the cell collection, the initial +configuration will start with exactly 0 instances of the cell collection. If +there are configuration variables present in the cell collection, the initial +configuration will start with exactly 1 instance of the cell collection.

+

type can take on values Set, List, and Map. For example, here we declare +several collecion cells:

+
k
configuration <k> $PGM:Pgm </k> + <sets> <set multiplicity="?" type="Set"> 0:Int </set> </sets> + <lists> <list multiplicity="*" type="List"> 0:Int </list> </lists> + <maps> + <map multiplicity="*" type="Map"> + <map-key> 0:Int </map-key> + <map-value-1> "":String </map-value-1> + <map-value-2> 0:Int </map-value-2> + </map> + </maps> +
+

Declaring type="Set" indicates that duplicate occurrences of the cell should +be de-duplicated, and accesses to instances of the cell will be nondeterministic +choices (constrained by any other parts of the match and side-conditions). +Similarly, declaring type="List" means that new instances of the cell can be +added at the front or back, and elements can be accessed from the front or back, +and the order of the cells will be maintained. The following are examples of +introduction and elimination rules for these collections:

+
k
rule <k> introduce-set(I:Int) => . ... </k> + <sets> .Bag => <set> I </set> </sets> + +rule <k> eliminate-set => I ... </k> + <sets> <set> I </set> => .Bag </sets> + +rule <k> introduce-list-start(I:Int) => . ... </k> + <lists> (.Bag => <list> I </list>) ... </lists> + +rule <k> introduce-list-end(I:Int) => . ... </k> + <lists> ... (.Bag => <list> I </list>) </lists> + +rule <k> eliminate-list-start => I ... </k> + <lists> (<list> I </list> => .Bag) ... </lists> + +rule <k> eliminate-list-end => I ... </k> + <lists> ... (<list> I </list> => .Bag) </lists> +
+

Notice that for multiplicity="?", we only admit a single <set> instance at +a time. For the type=List cell, we can add/eliminate cells from the from or +back of the <lists> cell. Also note that we use .Bag to indicate the empty +cell collection in all cases.

+

Declaring type="Map" indicates that the first sub-cell will be used as a +cell-key. This means that matching on those cells will be done as a map-lookup +operation if the cell-key is mentioned in the rule (for performance). If the +cell-key is not mentioned, it will fallback to normal nondeterministic +constrained by other parts of the match and any side-conditions. Note that there +is no special meaning to the name of the cells (in this case <map>, +<map-key>, <map-value-1>, and <map-value-2>). Additionally, any number of +sub-cells are allowed, and the entire instance of the cell collection is +considered part of the cell-value, including the cell-key (<map-key> in this +case) and the surrounding collection cell (<map> in this case).

+

For example, the following rules introduce, set, retrieve from, and eliminate +type="Map" cells:

+
k
rule <k> introduce-map(I:Int) => . ... </k> + <maps> ... (.Bag => <map> <map-key> I </map-key> ... </map>) ... </maps> + +rule <k> set-map-value-1(I:Int, S:String) => . ... </k> + <map> <map-key> I </map-key> <map-value-1> _ => S </map-value-1> ... </map> + +rule <k> set-map-value-2(I:Int, V:Int) => . ... </k> + <map> <map-key> I </map-key> <map-value-2> _ => V </map-value-2> ... </map> + +rule <k> retrieve-map-value-1(I:Int) => S ... </k> + <map> <map-key> I </map-key> <map-value-1> S </map-value-1> ... </map> + +rule <k> retrieve-map-value-2(I:Int) => V ... </k> + <map> <map-key> I </map-key> <map-value-2> V </map-value-2> ... </map> + +rule <k> eliminate-map(I:Int) => . ... </k> + <maps> ... (<map> <map-key> I </map-key> ... </map> => .Bag) ... </maps> +
+

Note how each rule makes sure that <map-key> cell is mentioned, and we +continue to use .Bag to indicate the empty collection. Also note that +when introducing new map elements, you may omit any of the sub-cells which are +not the cell-key. In case you do omit sub-cells, you must use structural +framing ... to indicate the missing cells, they will receive the default +value given in the configuration ... declaration.

+

Rule Declaration

+

Rule Structure

+

Each K rule follows the same basic structure (given as an example here):

+
k
rule LHS => RHS requires REQ ensures ENS [ATTRS] +
+

The portion between rule and requires is referred to as the rule body, +and may contain one or more rewrites (though not nested). Here, the rule body is +LHS => RHS, where LHS and RHS are used as placeholders for the pre- and +post- states. Note that we lose no generality referring to the LHS or the +RHS, even in the presence of multiple rewrites, as the rewrites are pulled to +the top-level anyway.

+

Next is the requires clause, represented here as REQ. The requires clause is +an additional predicate (function-like term of sort Bool), which is to be +evaluated before applying the rule. If the requires clause does not evaluate to +true, then the rule does not apply.

+

Finally is the ensures clause, represented here as ENS. The ensures clause +is to be interpreted as a post-condition, and will be automatically added to the +path condition if the rule applies. It may cause the entire term to become +undefined, but the backend will not stop itself from applying the rule in this +case. Note that concrete backends (eg. the LLVM backend) are free to ignore the +ensures clause.

+

Overall, the transition represented by such a rule is from a state +LHS #And REQ ending in a state RHS #And ENS. When backends apply this rule +as a transition/rewrite, they should:

+
    +
  • Check if pattern LHS matches (or unifies) with the current term, giving +substitution alpha.
  • +
  • Check if the instantiation alpha(REQ) is valid (or satisfiable).
  • +
  • Build the new term alpha(RHS #And ENS), and check if it's satisfiable.
  • +
+

Pattern Matching operator

+

Sometimes when you want to express a side condition, you want to say that a +rule matches if a particular term matches a particular pattern, or if it +instead does /not/ match a particular pattern.

+

The syntax in K for this is :=K and :/=K. It has similar meaning to ==K and +=/=K, except that where ==K and =/=K express equality, :=K and =/=K express +model membership. That is to say, whether or not the rhs is a member of the set +of terms expressed by the lhs pattern. Because the lhs of these operators is a +pattern, the user can use variables in the lhs of the operator. However, due to +current limitations, these variables are NOT bound in the rest of the term. +The user is thus encouraged to use anonymous variables only, although this is +not required.

+

This is compiled by the K frontend down to an efficient pattern matching on a +fresh function symbol.

+

Anonymous function applications

+

There are a number of cases in K where you would prefer to be able to take some +term on the RHS, bind it to a variable, and refer to it in multiple different +places in a rule.

+

You might also prefer to take a variable for which you know some of its +structure, and modify some of its internal structure without requiring you to +match on every single field contained inside that structure.

+

In order to do this, we introduce syntax to K that allows you to construct +anonymous functions in the RHS of a rule and apply them to a term.

+

The syntax for this is:

+
#fun(RuleBody)(Argument)
+
+

Note the limitations currently imposed by the implementation. These functions +are not first-order: you cannot bind them to a variable and inject them like +you can with a regular klabel for a function. You also cannot express multiple +rules or multiple parameters, or side conditions. All of these are extensions +we would like to support in the future, however.

+

In the following, we use three examples to illustrate the behavior of #fun. +We point out that the support for #fun is provided by the frontend, not the +backends.

+

The three examples are real examples borrowed or modified from existing language +semantics.

+

Example 1 (A Simple Self-Explained Example).

+
#fun(V:Val => isFoo(V) andBool isBar(V))(someFunctionReturningVal())
+
+

Example 2 (Nested #fun).

+
   #fun(C
+=> #fun(R
+=> #fun(E
+=> foo1(E, R, C)
+  )(foo2(C))
+  )(foo3(0))
+  )(foo4(1))
+
+

This example is from the beacon +semantics:https://github.com/runtimeverification/beacon-chain-spec/blob/master/b +eacon-chain.k at line 302, with some modification for simplicity. Note how +variables C, R, E are bound in the nested #fun.

+

Example 3 (Matching a structure).

+
rule foo(K, RECORD) =>
+  #fun(record(... field: _ => K))(RECORD)
+
+

Unlike previous examples, the LHS of #fun in this example is no longer a +variable, but a structure. It has the same spirit as the first two examples, +but we match the RECORD with a structure record( DotVar, field: X), instead +of a standalone variable. We also use K's local rewrite syntax (i.e., the +rewriting symbol => does not occur at the top-level) to prevent writing +duplicate expressions on the LHS and RHS of the rewriting.

+

Macros and Aliases

+

A production can be tagged with the macro, alias, macro-rec, or alias-rec +attributes. In all cases, what this signifies is that this is a macro production. +Macro rules are rules where the top symbol of the left-hand-side are macro +labels. Macro rules are applied statically during compilation on all terms that +they match, and statically before program execution on the initial configuration. +Currently, macro rules are required to not have side conditions, although they +can contain sort checks.

+

alias rules are also applied statically in reverse prior to unparsing on the +final configuration. Note that a macro rule can have unbound variables in the +right hand side. When such a macro exists, it should be used only on the left +hand side of rules, unless the user is performing symbolic execution and expects +to introduce symbolic terms into the subject being rewritten.

+

However, when used on the left hand side of a rule, it functions similarly to a +pattern alias, and allows the user to concisely express a reusable pattern that +they wish to match on in multiple places.

+

For example, consider the following semantics:

+
k
syntax KItem ::= "foo" [alias] | "foobar" +syntax KItem ::= bar(KItem) [macro] | baz(Int, KItem) +rule foo => foobar +rule bar(I) => baz(?_, I) +rule bar(I) => I +
+

This will rewrite baz(0, foo) to foo. First baz(0, foo) will be rewritten +statically to baz(0, foobar). Then the non-macro rule will apply (because +the rule will have been rewritten to rule baz(_, I) => I). Then foobar will +be rewritten statically after rewriting finishes to foo via the reverse form +of the alias.

+

Note that macros do not apply recursively within their own expansion. This is +done so as to ensure that macro expansion will always terminate. If the user +genuinely desires a recursive macro, the macro-rec and alias-rec attributes +can be used to provide this behavior.

+

For example, consider the following semantics:

+
k
syntax Exp ::= "int" Exp ";" | "int" Exps ";" [macro] | Exp Exp | Id +syntax Exps ::= List{Exp,","} + +rule int X:Id, X':Id, Xs:Exps ; => int X ; int X', Xs ; +
+

This will expand int x, y, z; to int x; int y, z; because the macro does +not apply the second time after applying the substitution of the first +application. However, if the macro attribute were changed to the macro-rec +attribute, it would instead expand (as the user likely intended) to +int x; int y; int z;.

+

The alias-rec attribute behaves with respect to the alias attribute the +same way the macro-rec attribute behaves with respect to macro.

+

anywhere rules

+

Some rules are not functional, but you want them to apply anywhere in the +configuration (similar to functional rules). You can use the anywhere +attribute on a rule to instruct the backends to make sure they apply anywhere +they match in the entire configuration.

+

For example, if you want to make sure that some associative operator is always +right-associated anywhere in the configuration, you can do:

+
k
syntax Stmt ::= Stmt ";" Stmt + +rule (S1 ; S2) ; S3 => S1 ; (S2 ; S3) [anywhere] +
+

Then after every step, all occurrences of _;_ will be re-associated. Note that +this allows the symbol _;_ to still be a constructor, even though it is +simplified similarly to a function.

+

trusted claims

+

You may add the trusted attribute to a given claim for the K prover to +automatically add it to the list of proven circularities, instead of trying to +discharge it separately.

+

Projection and Predicate functions

+

K automatically generates certain predicate and projection functions from the +syntax you declare. For example, if you write:

+
k
syntax Foo ::= foo(bar: Bar) +
+

It will automatically generate the following K code:

+
k
syntax Bool ::= isFoo(K) [function] +syntax Foo ::= "{" K "}" ":>Foo" [function] +syntax Bar ::= bar(Foo) [function] + +rule isFoo(F:Foo) => true +rule isFoo(_) => false [owise] + +rule { F:Foo }:>Foo => F +rule bar(foo(B:Bar)) => B +
+

The first two types of functions are generated automatically for every sort in +your K definition, and the third type of function is generated automatically +for each named nonterminal in your definition. Essentially, isFoo for some +sort Foo will tell you whether a particular term of sort K is a Foo, +{F}:>Foo will cast F to sort Foo if F is of sort Foo and will be +undefined (i.e., theoretically defined as #Bottom, the bottom symbol in +matching logic) otherwise. Finally, bar will project out the child of a foo +named bar in its production declaration.

+

Note that if another term of equal or smaller sort to Foo exists and has a +child named bar of equal or smaller sort to Bar, this will generate an +ambiguity during parsing, so care should be taken to ensure that named +nonterminals are sufficiently unique from one another to prevent such +ambiguities. Of course, the compiler will generate a warning in this case.

+

simplification attribute

+

The simplification attribute identifies rules outside the main semantics that +are used to simplify function patterns.

+

Conditions: A simplification rule is applied by matching the function +arguments, instead of unification as when applying function definition +rules. This allows function symbols to appear nested as arguments to other +functions on the left-hand side of a simplification rule, which is forbidden in +function definition rules. For example, this rule would not be accepted as a +function definition rule:

+
k
rule (X +Int Y) +Int Z => X +Int (Y +Int Z) [simplification] +
+

A simplification rule is only applied when the current side condition implies +the requires clause of the rule, like function definition rules.

+

Order: The simplification attribute accepts an optional integer argument +which is the rule's simplification priority; if the optional argument is not +specified, it is equivalent to a simplification priority of 50. Backends +should attempt simplification rules in order of their simplification +priority, but are not required to do so; in fact, the backend is free to apply +simplification rules at any time. Because of this, users must ensure that +simplification rules are sound regardless of their order of application. This +differs from the priority attribute in that rules with the priority +attribute must be applied in their priority order by the backend. It is an +error to have the priority attribute on a simplification rule.

+

For example, for the following definition:

+
k
syntax WordStack ::= Int ":" WordStack | ".WordStack" + syntax Int ::= sizeWordStack ( WordStack ) [function] + | sizeWordStackAux ( WordStack , Int ) [function] + // -------------------------------------------------------------- + rule sizeWordStack(WS) => sizeWordStackAux(WS, 0) + + rule sizeWordStackAux(.WordStack, N) => N + rule sizeWordStackAux(W : WS , N) => sizeWordStackAux(WS, N +Int 1) +
+

We might add the following simplification lemma:

+
k
rule sizeWordStackAux(WS, N) => N +Int sizeWordStackAux(WS, 0) + requires N =/=Int 0 + [simplification] +
+

Then this simplification rule will only apply if the Haskell backend can prove +that notBool N =/=Int 0 is unsatisfiable. This avoids an infinite cycle of +applying this simplification lemma.

+

NOTE: The frontend and Haskell backend do not check that supplied +simplification rules are sound, this is the developer's responsibility. In +particular, rules with the simplification attribute must preserve definedness; +that is, if the left-hand side refers to any partial function then:

+
    +
  • the right-hand side must be #Bottom when the left-hand side is #Bottom, or
  • +
  • the rule must have an ensures clause that is false when the left-hand +side is #Bottom, or
  • +
  • the rule must have a requires clause that is false when the left-hand +side is #Bottom.
  • +
+

These conditions are in order of decreasing preference: the best option is to +preserve #Bottom on the right-hand side, the next best option is to have an +ensures clause, and the least-preferred option is to have a requires clause. +The most preferred option is to write total functions and avoid the entire issue.

+

NOTE: The Haskell backend does not attempt to prove claims which right-hand +side is #Bottom. The reason for this is that the general case is undecidable, +and the backend might enter an infinite loop. Therefore, the backend emits a +warning if it encounters such a claim.

+

concrete and symbolic attributes (Haskell backend)

+

Users can control the application of simplification rules using the concrete +and the symbolic attributes by specifying the type of patterns the rule's +arguments are to match.

+

A concrete pattern is a pattern which does not contain variables or unevaluated +functions, otherwise the pattern is symbolic.

+

The semantics of the two attributes is defined as follows:

+
    +
  • If a simplification rule is marked concrete, then all arguments must be +concrete for the rule to match.
  • +
  • If a simplification rule is marked symbolic, then all arguments must be +symbolic for the rule to match.
  • +
  • The following syntax concrete(<variables>) (resp. symbolic(<variables>)), +where <variables> is a list of variable names separated by commas, can be used +to specify the exact arguments the user expects to match concrete (resp. symbolic) +patterns.
  • +
+

For example, the following will only match when all arguments +are concrete:

+
k
rule X +Int (Y +Int Z) => (X +Int Y) +Int Z [simplification, concrete] +
+

Conversely, the following will only match when all arguments +are symbolic:

+
k
rule X +Int (Y +Int Z) => (X +Int Y) +Int Z [simplification, symbolic] +
+

In practice, the following rules will re-associate and commute terms to combine +concrete arguments:

+
k
rule (A +Int Y) +Int Z => A +Int (Y +Int Z) + [concrete(Y, Z), symbolic(A), simplification] + +rule X +Int (B +Int Z) => B +Int (X +Int Z) + [concrete(X, Z), symbolic(B), simplification] +
+

The unboundVariables attribute

+

Normally, K rules are not allowed to contain regular (i.e., not fresh, not +existential) variables in the RHS / requires / ensures clauses which are not +bound in the LHS.

+

However, in certain cases this behavior might be desired, like, for example, +when specifying a macro rule which is to be used in the LHS of other rules. +To allow for such cases, but still be useful and perform the unboundness checks +in regular cases, the unboundVariables attributes allows the user to specify +a comma-separated list of names of variables which can be unbound in the rule.

+

For example, in the macro declaration

+
k
rule cppEnumType => bar(_, scopedEnum() #Or unscopedEnum() ) [unboundVariables(_)] +
+

the declaration unboundVariables(_) allows the rule to pass the unbound +variable checks, and this in turn allows for cppEnumType to be used in +the LHS of a rule to mean the pattern above:

+
k
rule inverseConvertType(cppEnumType, foo((cppEnumType #as T::CPPType => underlyingType(T)))) +
+

The memo attribute

+

The memo attribute is a hint from the user to the backend to memoize a +function. Not all backends support memoization, but when the attribute is used +and the definition is compiled for a memo-supporting backend, then calls to +the function may be cached. At the time of writing, only the Haskell +backend supports memoization.

+

Limitations of memoization with the Haskell backend

+

The Haskell backend will only cache a function call if all arguments are concrete.

+

It is recommended not to memoize recursive functions, as each recursive call +will be stored in the cache, but only the first iteration will be retrieved from +the cache; that is, the cache will be filled with many unreachable +entries. Instead, we recommend to perform a worker-wrapper transformation on +recursive functions, and apply the memo attribute to the wrapper.

+

Warning: A function declared with the memo attribute must not use +uninterpreted functions in the side-condition of any rule. Memoizing such an +impure function is unsound. To see why, consider the following rules:

+
k
syntax Bool ::= impure( Int ) [function] + +syntax Int ::= unsound( Int ) [function, memo] +rule unsound(X:Int) => X +Int 1 requires impure(X) +rule unsound(X:Int) => X requires notBool impure(X) +
+

Because the function impure is not given rules to cover all inputs, unsound +can be memoized incoherently. For example,

+
{unsound(0) #And {impure(0) #Equals true}} #Equals 1
+
+

but

+
{unsound(0) #And {impure(0) #Equals false}} #Equals 0
+
+

The memoized value of unsound(0) would be incoherently determined by which +pattern the backend encounters first.

+

Variable Sort Inference

+

In K, it is not required that users declare the sorts of variables in rules or +in the initial configuration. If the user does not explicitly declare the sort +of a variable somewhere via a cast (see below), the sort of the variable is +inferred from context based on the sort signature of every place the variable +appears in the rule.

+

As an example, consider the rule for addition in IMP:

+
k
syntax Exp ::= Exp "+" Exp | Int + + rule I1 + I2 => I1 +Int I2 +
+

Here +Int is defined in the INT module with the following signature:

+
k
syntax Int ::= Int "+Int" Int [function] +
+

In the rule above, the sort of both I1 and I2 is inferred as Int. This is because +a variable must have the same sort every place it appears within the same rule. +While a variable appearing only on the left-hand-side of the rule could have +sort Exp instead, the same variable appears as a child of +Int, which +constriants the sorts of I1 and I2 more tightly. Since the sort must be a +subsort of Int or equal to Int, and Int has no subsorts, we infer Int +as the sorts of I1 and I2. This means that the above rule will not match +until I1 and I2 become integers (i.e., have already been evaluated).

+

More complex examples are possible, however:

+
k
syntax Exp ::= Exp "+" Int | Int + rule _ + _ => 0 +
+

Here we have two anonymous variables. They do not refer to the same variable +as one another, so they can have different sorts. The right side is constrained +by + to be of sort Int, but the left side could be either Exp or Int. +When this occurs, we have multiple solutions to the sorts of the variables in +the rule. K will only choose solutions which are maximal, however. To be +precise, if two different solutions exist, but the sorts of one solution are +all greater than or equal to the sorts of the other solution, K will discard +the smaller solution. Thus, in the case above, the variable on the left side +of the + is inferred of sort Exp, because the solution (Exp, Int) is +strictly greater than the solution (Int, Int).

+

It is possible, however, for terms to have multiple maximal solutions:

+
k
syntax Exp ::= Exp "+" Int | Int "+" Exp | Int + rule I1 + I2 => 0 +
+

In this example, there is an ambiguous parse. This could parse as either +the first + or the second. In the first case, the maximal solution chosen is +(Exp, Int). In the second, it is (Int, Exp). Neither of these solutions is +greater than the other, so both are allowed by K. As a result, this program +will emit an error because the parse is ambiguous. To pick one solution over +the other, a cast or a prefer or avoid attribute can be used.

+

Casting

+

There are three main types of casts in K: the semantic cast, the strict cast, +and the projection cast.

+

Semantic casts

+

For every sort S declared in your grammar, K will define the following +production for you for use in rules:

+
k
syntax S ::= S ":S" +
+

The meaning of this cast is that the term inside the cast must be less than +or equal to Sort. This can be used to resolve ambiguities, but its principle +purpose is to guide execution by telling K what sort variables must match in +order for the rule to apply. When compiled, it will generate a pattern that +matches on an injection into Sort.

+

Strict casts

+

K also introduces the strict cast:

+
k
syntax S ::= S "::S" +
+

The meaning at runtime is exactly the same as the semantic cast; however, it +restricts the sort of the term inside the cast to exactly Sort. That is +to say, if you use it on something that is a strictly smaller sort, it will +generate a type error. This is useful in certain circumstances to help +disambiguate terms, when a semantic cast would not have resolved the ambiguity. +As such, it is primarily used to solve ambiguities rather than to guide +execution.

+

Projection casts

+

K also introduces the projection cast:

+
k
syntax {S2} S ::= "{" S2 "}" ":>S" +
+

The meaning of this cast at runtime is that if the term inside is of sort +Sort, it should have it injection stripped away and the value inside is +returned as a term of static sort Sort. However, if the term is of a +different sort, it is an error and execution will get stuck. Thus the primary +usefulness of this cast is to cast the return value of a function with a +greater sort down to a strictly smaller sort that you expect the return value +of the function to have. For example:

+
k
syntax Exp ::= foo(Exp) [function] | bar(Int) | Int + rule foo(I:Int) => I + rule bar(I) => bar({foo(I +Int 1)}:>Int) +
+

Here we know that foo(I +Int 1) will return an Int, but the return sort of +foo is Exp. So we project the result into the Int sort so that it can +be placed as the child of a bar.

+

owise and priority attributes.

+

Sometimes, it is simply not convenient to explicitly describe every +single negative case under which a rule should not apply. Instead, +we simply wish to say that a rule should only apply after some other set of +rules have been tried. K introduces two different attributes that can be +added to rules which will automatically generate the necessary matching +conditions in a manner which is performant for concrete execution (indeed, +it generally outperforms during concrete execution code where the conditions +are written explicitly).

+

The first is the owise attribute. Very roughly, rules without an attribute +indicating their priority apply first, followed by rules with the owise +attribute only if all the other rules have been tried and failed. For example, +consider the following function:

+
k
syntax Int ::= foo(Int) [function] +rule foo(0) => 0 +rule foo(_) => 1 [owise] +
+

Here foo(0) is defined explicitly as 0. Any other integer yields the +integer 1. In particular, the second rule above will only be tried after the +first rule has been shown not to apply.

+

This is because the first rule has a lower number assigned for its priority +than the second rule. In practice, each rule in your semantics is implicitly +or explicitly assigned a numerical priority. Rules are tried in increasing +order of priority, starting at zero and trying each increasing numerical value +successively.

+

You can specify the priority of a rule with the priority attribute. For +example, I could equivalently write the second rule above as:

+
k
rule foo(_) => 1 [priority(200)] +
+

The number 200 is not chosen at random. In fact, when you use the owise +attribute, what you are doing is implicitly setting the priority of the rule +to 200. This has a couple of implications:

+
    +
  1. Multiple rules with the owise attribute all have the same priority and thus +can apply in any order.
  2. +
  3. Rules with priority higher than 200 apply after all rules with the +owise attribute have been tried.
  4. +
+

There is one more rule by which priorities are assigned: a rule with no +attributes indicating its priority is assigned the priority 50. Thus, +with each priority explicitly declared, the above example looks like:

+
k
syntax Int ::= foo(Int) [function] +rule foo(0) => 0 [priority(50)] +rule foo(_) => 1 [owise] +
+

One final note: the llvm backend reserves priorities between 50 and 150 +inclusive for certain specific purposes. Because of this, explicit +priorities which are given within this region may not behave precisely as +described above. This is primarily in order that it be possible where necessary +to provide guidance to the pattern matching algorithm when it would otherwise +make bad choices about which rules to try first. You generally should not +give any rule a priority within this region unless you know exactly what the +implications are with respect to how the llvm backend orders matches.

+

Evaluation Strategy

+

strict and seqstrict attributes

+

The strictness attributes allow defining evaluation strategies without having +to explicitly make rules which implement them. This is done by injecting +heating and cooling rules for the subterms. For this to work, you need to +define what a result is for K, by extending the KResult sort.

+

For example:

+
k
syntax AExp ::= Int + | AExp "+" AExp [strict, klabel(addExp)] +
+

This generates two heating rules (where the hole syntaxes "[]" "+" AExp and +AExp "+" "[]" is automatically added to create an evaluation context):

+
k
rule [addExp1-heat]: <k> HOLE:AExp + AE2:AExp => HOLE ~> [] + AE2 ... </k> [heat] +rule [addExp2-heat]: <k> AE1:AExp + HOLE:AExp => HOLE ~> AE1 + [] ... </k> [heat] +
+

And two corresponding cooling rules:

+
k
rule [addExp1-cool]: <k> HOLE:AExp ~> [] + AE2 => HOLE + AE2 ... </k> [cool] +rule [addExp2-cool]: <k> HOLE:AExp ~> AE1 + [] => AE1 + HOLE ... </k> [cool] +
+

Note that the rules are given labels based on the klabel of the production, which +nonterminal is the hole, and whether it's the heating or the cooling rule.

+

You will note that these rules can apply one after another infinitely. In +practice, the KResult sort is used to break this cycle by ensuring that only +terms that are not part of the KResult sort will be heated. The heat and +cool attributes are used to tell the compiler that these are heating and +cooling rules and should be handled in the manner just described. Nothing stops +the user from writing such heating and cooling rules directly if they wish, +although we describe other more convenient syntax for most of the advanced +cases below.

+

One other thing to note is that in the above sentences, HOLE is just a +variable, but it has special meaning in the context of sentences with the +heat or cool attribute. In heating or cooling rules, the variable named +HOLE is considered to be the term being heated or cooled and the compiler +will generate isKResult(HOLE) and notBool isKResult(HOLE) side conditions +appropriately to ensure that the backend does not loop infinitely. The module +BOOL will also be automatically and privately included for semantic +purposes. The syntax for parsing programs will not be affected.

+

In order for this functionality to work, you need to define the KResult sort. +For instance, we tell K that a term is fully evaluated once it becomes an Int +here:

+
k
syntax KResult ::= Int +
+

Note that you can also say that a given expression is only strict only in +specific argument positions. Here we use this to define "short-circuiting" +boolean operators.

+
k
syntax KResult ::= Bool + +syntax BExp ::= Bool + | BExp "||" BExp [strict(1)] + | BExp "&&" BExp [strict(1)] + +rule <k> true || _ => true ... </k> +rule <k> false || REST => REST ... </k> + +rule <k> true && REST => REST ... </k> +rule <k> false && _ => false ... </k> +
+

If you want to force a specific evaluation order of the arguments, you can use +the variant seqstrict to do so. For example, this would make the boolean +operators short-circuit in their second argument first:

+
k
syntax KResult ::= Bool + +syntax BExp ::= Bool + | BExp "||" BExp [seqstrict(2,1)] + | BExp "&&" BExp [seqstrict(2,1)] + +rule <k> _ || true => true ... </k> +rule <k> REST || false => REST ... </k> + +rule <k> REST && true => REST ... </k> +rule <k> _ && false => false ... </k> +
+

This will generate rules like this in the case of _||_ (note that BE1 will +not be heated unless isKResult(BE2) is true, meaning that BE2 must be +evaluated first):

+
k
rule <k> BE1:BExp || HOLE:BExp => HOLE ~> BE1 || [] ... </k> [heat] +rule <k> HOLE:BExp || BE2:BExp => HOLE ~> [] || BE2 ... </k> requires isKResult(BE2) [heat] + +rule <k> HOLE:BExp ~> [] || BE2 => HOLE || BE2 ... </k> [cool] +rule <k> HOLE:BExp ~> BE1 || [] => BE1 || HOLE ... </k> [cool] +
+

Context Declaration

+

Sometimes more advanced evaluation strategies are needed. By default, the +strict and seqstrict attributes are limited in that they cannot describe +the context in which heating or cooling should occur. When this type of +control over the evaluation strategy is required, context sentences can be +used to simplify the process of declaring heating and cooling when it would be +unnecessarily verbose to write heating and cooling rules directly.

+

For example, if the user wants to heat a term if it exists under a foo +constructor if the term to be heated is of sort bar, one might write the +following context (with the optional label):

+
k
context [foo]: foo(HOLE:Bar) +
+

Once again, note that HOLE is just a variable, but one that has special +meaning to the compiler indicating the position in the context that should +be heated or cooled.

+

This will automatically generate the following sentences:

+
k
rule [foo-heat]: <k> foo(HOLE:Bar) => HOLE ~> foo([]) ... </k> [heat] +rule [foo-cool]: <k> HOLE:Bar ~> foo([]) => foo(HOLE) ... </k> [cool] +
+

The user may also write the K cell explicitly in the context declaration +if they want to match on another cell as well, for example:

+
k
context <k> foo(HOLE:Bar) ... </k> <state> .Map </state> +
+

This context will now only heat or cool if the state cell is empty.

+

Side conditions in context declarations

+

The user is allowed to write a side condition in a context declaration, like +so:

+
k
context foo(HOLE:Bar) requires baz(HOLE) +
+

This side condition will be appended verbatim to the heating rule that is +generated, however, it will not affect the cooling rule that is generated:

+
k
rule <k> foo(HOLE:Bar) => HOLE ~> foo([]) ... </k> requires baz(HOLE) [heat] +rule <k> HOLE:Bar ~> foo([]) => foo(HOLE) ... </k> [cool] +
+

Rewrites in context declarations

+

The user can also include exactly one rewrite operation in a context +declaration if that rule rewrites the variable HOLE on the left hand side +to a term containing HOLE on the right hand side. For exampl;e:

+
k
context foo(HOLE:Bar => bar(HOLE)) +
+

In this case, the code generated will be as follows:

+
k
rule <k> foo(HOLE:Bar) => bar(HOLE) ~> foo([]) ... </k> [heat] +rule <k> bar(HOLE:Bar) ~> foo([]) => foo(HOLE) ... </k> [cool] +
+

This can be useful if the user wishes to evaluate a term using a different +set of rules than normal.

+

result attribute

+

Sometimes it is necessary to be able to evaluate a term to a different sort +than KResult. This is done by means of adding the result attribute to +a strict production, a context, or an explicit heating or cooling rule:

+
k
syntax BExp ::= Bool + | BExp "||" BExp [seqstrict(2,1), result(Bool)] +
+

In this case, the sort check used by seqstrict and by the heat and cool +attributes will be isBool instead of isKResult. This particular example +does not really require use of the result attribute, but if the user wishes +to evaluate a term of sort KResult further, the result attribute would be +required.

+

hybrid attribute

+

In certain situations, it is desirable to treat a particular production which +has the strict attribute as a result if the term has had its arguments fully +evaluated. This can be accomplished by means of the hybrid attribute:

+
k
syntax KResult ::= Bool + +syntax BExp ::= Bool + | BExp "||" BExp [strict(1), hybrid] +
+

This attribute is equivalent in this case to the following additional axiom +being added to the definition of isKResult:

+
k
rule isKResult(BE1:BExp || BE2:BExp) => true requires isKResult(BE1) +
+

Sometimes you wish to declare a production hybrid with respect to a predicate +other than isKResult. You can do this by specifying a sort as the body of the +hybrid attribute, e.g.:

+
k
syntax BExp ::= BExp "||" BExp [strict(1), hybrid(Foo)] +
+

generates the rule:

+
k
rule isFoo(BE1:BExp || BE2:BExp) => true requires isFoo(BE1) +
+

Properly speaking, hybrid takes an optional comma-separated list of sort +names. If the list is empty, the attribute is equivalent to hybrid(KResult). +Otherwise, it generates hybrid predicates for exactly the sorts named.

+

Context aliases

+

Sometimes it is necessary to define a fairly complicated evaluation strategy +for a lot of different operators. In this case, the user could simply write +a number of complex context declarations, however, this quickly becomes +tedious. For this purpose, K has a concept called a context alias. A context +alias is a bit like a template for describing contexts. The template can then +be instantiated against particular productions using the strict and +seqstrict attributes.

+

Here is a (simplified) example taken from the K semantics of C++:

+
k
context alias [c]: <k> HERE:K ... </k> <evaluate> false </evaluate> +context alias [c]: <k> HERE:K ... </k> <evaluate> true </evaluate> [result(ExecResult)] + +syntax Expr ::= Expr "=" Init [strict(c; 1)] +
+

This defines the evaluation strategy during the translation phase of a C++ +program for the assignment operator. It is equivalent to writing the following +context declarations:

+
k
context <k> HOLE:Expr = I:Init ... </k> <evaluate> false </evaluate> +context <k> HOLE:Expr = I:Init ... </k> <evaluate> true </evaluate> [result(ExecResult)] +
+

What this is saying is, if the evaluate cell is false, evaluate the term +like normal to a KResult. But if the evaluate cell is true, instead +evaluate it to the ExecResult sort.

+

Essentially, we have given a name to this evaluation strategy in the form of +the rule label on the context alias sentences (in this case, c). We can +then say that we want to use this evaluation strategy to evaluate particular +arguments of particular productions by referring to it by name in a strict +attribute. For example, strict(c) will instantiate these contexts once for +each argument of the production, whereas strict(c; 1) will instantiate it +only for the first argument. The special variable HERE is used to tell the +compiler where you want to place the production that is to be heated or cooled.

+

You can also specify multiple context aliases for different parts of a production, +for example:

+
k
syntax Exp ::= foo(Exp, Exp) [strict(left; 1; right; 2)] +
+

This says that we can evaluate the left and right arguments in either order, but to evaluate +the left using the left context alias and the right using the right context alias.

+

We can also say seqstrict(left; 1; right; 2), in which case we additionally must evaluate +the left argument before the right argument. Note, all strict positions are considered collectively +when determining the evaluation order of seqstrict or the hybrid predicates.

+

A strict attribute with no rule label associated with it is equivalent to +a strict attribute given with the following context alias:

+
k
context alias [default]: <k> HERE:K ... </k> +
+

One syntactic convenience that is provided is that if you wish to declare the following context:

+
k
context foo(HOLE => bar(HOLE)) +
+

you can simply write the following:

+
k
syntax Foo ::= foo(Bar) [strict(alias)] + +context alias [alias]: HERE [context(bar)] +
+

Pattern Matching

+

As Patterns

+

New syntax has been added to K for matching a pattern and binding the resulting +match in its entirety to a variable.

+

The syntax is:

+
Pattern #as V::Var
+
+

In this case, Pattern, including any variables, is matched and the resulting +variables are added to the substitution if matching succeeds. Furthermore, the +term matched by Pattern is added to the substitution as V.

+

This code can also be used outside of any rewrite, in which case matching +occurs as if it appeared on the left hand side, and the right hand side becomes +a variable corresponding to the alias.

+

It is an error to use an as pattern on the right hand side of a rule.

+

Record-like KApply Patterns

+

We have added a syntax for matching on KApply terms which mimics the record +syntax in functional languages. This allows us to more easily express patterns +involving a KApply term in which we don't care about some or most of the +children, without introducing a dependency into the code on the number of +arguments which could be changed by a future refactoring.

+

The syntax is:

+
record(... field1: Pattern1, field2: Pattern2)
+
+

Note that this only applies to productions that are prefix productions. +A prefix production is considered by the implementation to be any production +whose production items match the following regular expression:

+
(Terminal(_)*) Terminal("(")
+(NonTerminal (Terminal(",") NonTerminal)* )?
+Terminal(")")
+
+

In other words, any sequence of terminals followed by an open parenthesis, an +optional comma separated list of non-terminals, and a close parenthesis.

+

If a prefix production has no named nonterminals, a record(...) syntax is +allowed, but in order to reference specific fields, it is necessary to give one +or more of the non-terminals in the production names.

+

Note: because the implementation currently creates one production per possible +set of fields to match on, and because all possible permutations of all +possible subsets of a list of n elements is a number that scales factorially +and reaches over 100 thousand productions at n=8, we currently do not allow +fields to be matched in any order like a true record, but only in the same +order as appears in the production itself.

+

Given that this only reduces the number of productions to the size of the power +set, this will still explode the parsing time if we create large productions of +10 or more fields that all have names. This is something that should probably +be improved, however, productions with that large of an arity are rare, and +thus it has not been viewed as a priority.

+

Or Patterns

+

Sometimes you wish to express that a rule should match if one out of multiple +patterns should match the same subterm. We can now express this in K by means +of using the #Or ML connective on the left hand side of a rule.

+

For example:

+
k
rule foo #Or bar #Or baz => qux +
+

Here any of foo, bar, or baz will match this rule. Note that the behavior is +ill-defined if it is not the case that all the clauses of the or have the same +bound variables.

+

Matching global context in function rules

+

On occasion it is highly desirable to be able to look up information from the +global configuration and match against it when evaluating a function. For this +purpose, we introduce a new syntax for function rules.

+

This syntax allows the user to match on function context from within a +function rule:

+
k
syntax Int ::= foo(Int) [function] + +rule [[ foo(0) => I ]] + <bar> I </bar> + +rule something => foo(0) +
+

This is completely desugared by the K frontend and does not require any special +support in the backend. It is an error to have a rewrite inside function +context, as we do not currently support propagating such changes back into the +global configuration. It is also an error if the context is not at the top +level of a rule body.

+

Desugared code:

+
k
syntax Int ::= foo(Int, GeneratedTopCell) [function] + +rule foo(0, <generatedTop> + <bar> I </bar> + ... + </generatedTop> #as Configuration) => I +rule <generatedTop> + <k> something ... </k> + ... + </generatedTop> #as Configuration + => <generatedTop> + <k> foo(0, Configuration> ... </k> + ... + </generatedTop> +
+

Collection patterns

+

It is allowed to write patterns on the left hand side of rules which refer to +complex terms of sort Map, List, and Set, despite these patterns ostensibly +breaking the rule that terms which are functions should not appear on the left +hand side of rules. Such terms are destructured into pattern matching +operations.

+

The following forms are allowed:

+
// 0 or more elements followed by 0 or 1 variables of sort List followed by
+// 0 or more elements
+ListItem(E1) ListItem(E2) L:List ListItem(E3) ListItem(E4)
+
+// the empty list
+.List
+
+// 0 or more elements in any order plus 0 or 1 variables of sort Set
+// in any order
+SetItem(K1) SetItem(K2) S::Set SetItem(K3) SetItem(K4)
+
+// the empty set
+.Set
+
+// 0 or more elements in any order plus by 0 or 1 variables of sort Map
+// in any order
+K1 |-> E1 K2 |-> E2 M::Map K3 |-> E3 K4 |-> E4
+
+// the empty map
+.Map
+
+

Here K1, K2, K3, K4 etc can be any pattern except a pattern containing both +function symbols and unbound variables. An unbound variable is a variable whose +binding cannot be determined by means of decomposing non-set-or-map patterns or +map elements whose keys contain no unbound variables.

+

This is determined recursively, ie, the term K1 |-> E2 E2 |-> E3 E3 |-> E4 is +considered to contain no unbound variables.

+

Note that in the pattern K1 |-> E2 K3 |-> E4 E4 |-> E5, K1 and K3 are +unbound, but E4 is bound because it is bound by deconstructing the key E3, even +though E3 is itself unbound.

+

In the above examples, E1, E2, E3, and E4 can be any pattern that is normally +allowed on the lhs of a rule.

+

When a map or set key contains function symbols, we know that the variables in +that key are bound (because of the above restriction), so it is possible to +evaluate the function to a concrete term prior to performing the lookup.

+

Indeed, this is the precise semantics which occurs; the function is evaluated +and the result is looked up in the collection.

+

For example:

+
k
syntax Int ::= f(Int) [function] +rule f(I:Int) => I +Int 1 +rule <k> I:Int => . ... </k> <state> ... SetItem(f(I)) ... </state> +
+

This will rewrite I to . if and only if the state cell contains +I +Int 1.

+

Note that in the case of Set and Map, one guarantee is that K1, K2, K3, and K4 +represent /distinct/ elements. Pattern matching fails if the correct number of +distinct elements cannot be found.

+

Matching on cell fragments

+

K allows matching fragments of the configuration and using them to construct +terms and use as function parameters.

+
k
configuration <t> + <k> #init ~> #collectOdd ~> $PGM </k> + <fs> + <f multiplicity="*" type="Set"> 1 </f> + </fs> + </t> +
+

The #collectOdd construct grabs the entire content of the <fs> cell. +We may also match on only a portion of its content. Note that the fragment +must be wrapped in a <f> cell at the call site.

+
k
syntax KItem ::= "#collectOdd" +rule <k> #collectOdd => collectOdd(<fs> Fs </fs>) ... </k> + <fs> Fs </fs> +
+

The collectOdd function collects the items it needs

+
k
syntax Set ::= collectOdd(FsCell) [function] +rule collectOdd(<fs> <f> I </f> REST </fs>) => SetItem(I) collectOdd(<fs> REST </fs>) requires I %Int 2 ==Int 1 +rule collectOdd(<fs> <f> I </f> REST </fs>) => collectOdd(<fs> REST </fs>) requires I %Int 2 ==Int 0 +rule collectOdd(<fs> .Bag </fs>) => .Set +
+

all-path and one-path attributes to distinguish reachability claims

+

As the Haskell backend can handle both one-path and all-path reachability +claims, but both these are encoded as rewrite rules in K, these attributes can +be used to clarify what kind of claim a rule is.

+

In addition of being able to annotate a rule with one of them +(if annotating with more at the same time, only one of them would be chosen), +one can also annotate whole modules, to give a default claim type for all rules +in that module.

+

Additionally, the Haskell backend introduces an extra command line option +for the K frontend, --default-claim-type, with possible values +all-path and one-path to allow choosing a default type for all +claims.

+

Set Variables

+

Motivation

+

Set variables were introduced as part of Matching Mu Logic, the mathematical +foundations for K. In Matching Mu Logic, terms evaluate to sets of values. +This is useful for both capturing partiality (as in 3/0) and capturing +non-determinism (as in 3 #Or 5). Consequently, symbol interpretation is +extended to have a collective interpretation over sets of input values.

+

Usually, K rules are given using regular variables, which expect that the term +they match is both defined and has a unique interpretation.

+

However, it is sometimes useful to have simplification rules which work over +any kind of pattern, be it undefined or non-deterministic. This behavior can be +achieved by using set variables to stand for any kind of pattern.

+

Syntax

+

Any variable prefixed by @ will be considered a set variable.

+

Example

+

Below is a simplification rule which motivated this extension:

+
  rule #Ceil(@I1:Int /Int @I2:Int) =>
+    {(@I2 =/=Int 0) #Equals true} #And #Ceil(@I1) #And #Ceil(@I2)
+    [anywhere]
+
+

This rule basically says that @I1:Int /Int @I2:Int is defined if @I1 and +@I2 are defined and @I2 is not 0. Using sets variables here is important as +it allows the simplification rule to apply any symbolic patterns, without +caring whether they are defined or not.

+

This allows simplifying the expression #Ceil((A:Int /Int B:Int) / C:Int) to:

+
{(C =/=Int 0) #Equals true} #And #Ceil(C) #And ({(B =/=Int 0) #Equals true}
+#And #Ceil(B) #And #Ceil(A)`
+
+

See kframework/kore#729 for +more details.

+

SMT Translation

+

K makes queries to an SMT solver (Z3) to discharge proof obligations when doing +symbolic execution. You can control how these queries are made using the +attributes smtlib, smt-hook, and smt-lemma on declared productions. +These attributes guide the prover when it tries to apply rules to discharge a +proof obligation.

+
    +
  • smt-hook(...) allows you to specify a term in SMTLIB2 format which should +be used to encode that production, and assumes that all symbols appearing in +the term are already declared by the SMT solver.
  • +
  • smtlib(...) allows you to declare a new SMT symbol to be used when that +production is sent to Z3, and gives it uninterpreted function semantics.
  • +
  • smt-lemma can be applied to a rule to encode it as a conditional equality +when sending queries to Z3. A rule rule LHS => RHS requires REQ will be +encoded as the conditional equality (=> REQ (= (LHS RHS)). Every symbol +present in the rule must have an smt-hook(...) or smtlib(...) attribute.
  • +
+
k
syntax Int ::= "~Int" Int [function, klabel(~Int_), symbol, + smtlib(notInt)] + | Int "^%Int" Int Int [function, klabel(_^%Int__), symbol, + smt-hook((mod (^ #1 #2) #3))] +
+

In the example above, we declare two productions ~Int_ and _^%Int__, and +tell the SMT solver to:

+
    +
  • use uninterpreted function semantics for ~Int_ via SMTLIB2 symbol +notInt, and
  • +
  • use the SMTLIB2 term (mod (^ #1 #2) #3) (where #N marks the Nth +production non-terminal argument positions) for _^%Int__, where mod and +^ already are declared by the SMT solver.
  • +
+

Caution

+

Set variables are currently only supported by the Haskell backend. +The use of rules with set variables should be sound for all other backends +which just execute by rewriting, however it might not be safe for backends +which want to guarantee coverage.

+

Variables occurring only in the RHS of a rule

+

This section presents possible scenarios requiring variables to only appear in +the RHS of a rule.

+

Summary

+

Except for ? variables and ! (fresh) variables, which are +required to only appear in the RHS of a rule, all other variables must +also appear in the LHS of a rule. This restriction also applies to anonymous +variables; in particular, for claims, ?_ (not _) should be used in the RHS +to indicate that something changes but we don't care to what value.

+

To support specifying random-like behavior, the above restriction can be relaxed +by annotating a rule with the unboundVariables attribute whenever the rule +intentionally contains regular variables only occurring in the RHS.

+

Introduction

+

K uses question mark variables of the form ?X to refer to +existential variables, and uses ensures to specify logical constraints on +those variables. +These variables are only allowed to appear in the RHS of a K rule.

+

If the rules represent rewrite (semantic) steps or verification claims, +then the ? variables are existentially quantified at the top of the RHS; +otherwise, if they represent equations, the ? variables are quantified at the +top of the entire rule.

+

Note that when both ?-variables and regular variables are present, +regular variables are (implicitly) universally quantified on top of the rule +(already containing the existential quantifications). +This essentially makes all ? variables depend on all regular variables.

+

All examples below are intended more for program verification / +symbolic execution, and thus concrete implementations might choose to ignore +them altogether or to provide ad-hoc implementations for them.

+

Example: Verification claims

+

Consider the following definition of a (transition) system:

+
k
module A + rule foo => true + rule bar => true + rule bar => false +endmodule +
+

Consider also, the following specification of claims about the definition above:

+
k
module A-SPEC + rule [s1]: foo => ?X:Bool + rule [s2]: foo => X:Bool [unboundVariables(X)] + rule [s3]: bar => ?X:Bool + rule [s4]: bar => X:Bool [unboundVariables(X)] +endmodule +
+
One-path interpretation
+
    +
  • (s1) says that there exists a path from foo to some boolean, which is +satisfied easily using the foo => true rule
  • +
  • (s3) says the same thing about bar and can be satisfied by either of +bar => true and bar => false rules
  • +
  • (s2) and (s4) can be better understood by replacing them with instances for +each element of type Bool, which can be interpreted that +both true and false are reachable from foo for (s2), or bar for (s4), +respectively. +
      +
    • (s2) cannot be verified as we cannot find a path from foo to false.
    • +
    • (s4) can be verified by using bar => true to show true is reachable and +bar => false to achieve the same thing for false
    • +
    +
  • +
+
All-path interpretation
+
    +
  • +

    (s1) says that all paths from foo will reach some boolean, which is +satisfied by the foo => true rule and the lack of other rules for foo

    +
  • +
  • +

    (s3) says the same thing about bar and can be satisfied by checking that +both bar => true and bar => false end in a boolean, and there are no +other rules for bar

    +
  • +
  • +

    (s2) and (s4) can be better understood by replacing them with instances for +each element of type Bool, which can be interpreted that +both true and false are reachable in all paths originating in +foo for (s2), or bar for (s4), respectively. +This is a very strong claim, requiring that all paths originating in +foo (bar) pass through both true and false, +so neither (s2) nor (s4) can be verified.

    +

    Interestingly enough, adding a rule like false => true would make both +(s2) and (s4) hold.

    +
  • +
+

Example: Random Number Construct rand()

+

The random number construct rand() is a language construct which could be +easily conceived to be part of the syntax of a programming language:

+
k
Exp ::= "rand" "(" ")" +
+

The intended semantics of rand() is that it can rewrite to any integer in +a single step. This could be expressed as the following following infinitely +many rules.

+
k
rule rand() => 0 +rule rand() => 1 +rule rand() => 2 + ... ... +rule rand() => (-1) +rule rand() => (-2) + ... ... +
+

Since we need an instance of the rule for every integer, one could summarize +the above infinitely many rules with the rule

+
rule rand() => I:Int [unboundVariables(I)]
+
+

Note that I occurs only in the RHS in the rule above, and thus the rule +needs the unboundVariables(I) attribute to signal that this is intentionally.

+

One can define variants of rand() by further constraining the output variable +as a precondition to the rule.

+
Rand-like examples
+
    +
  1. +

    randBounded(M,N) can rewrite to any integer between M and N

    +
    k
    syntax Exp ::= randBounded(Int, Int) +rule randBounded(M, N) => I + requires M <=Int I andBool I <=Int N + [unboundVariables(I)] +
    +
  2. +
  3. +

    randInList(Is) takes a list Is of items +and can rewrite in one step to any item in Is.

    +
    k
    syntax Exp ::= randInList (List) +rule randInList(Is) => I + requires I inList Is + [unboundVariables(I)] +
    +
  4. +
  5. +

    randNotInList(Is) takes a list Is of items +and can rewrite in one step to any item not in Is.

    +
    k
    syntax Exp ::= randNotInList (List) +rule randNotInList(Is) => I + requires notBool(I inList Is) + [unboundVariables(I)] +
    +
  6. +
  7. +

    randPrime(), can rewrite to any prime number.

    +
    k
    syntax Exp ::= randPrime () +rule randPrime() => X:Int + requires isPrime(X) + [unboundVariables(X)] +
    +

    where isPrime(_) is a predicate that can be defined in the usual way.

    +
  8. +
+

Note 1: all above are not function symbols, but language constructs.

+

Note 2: Currently the frontend does not allow rules with universally quantified +variables in the RHS which are not bound in the LHS.

+

Note 3. Allowing these rules in a concrete execution engine would require an +algorithm for generating concrete instances for such variables, satisfying the +given constraints; thus the unboundVariables attribute serves two purposes:

+
    +
  • to allow such rules to pass the variable checks, and
  • +
  • to signal (concrete execution) backends that specialized algorithm would be +needed to instantiate these variables.
  • +
+

Example: Fresh Integer Construct fresh(Is)

+

The fresh integer construct fresh(Is) is a language construct.

+
Exp ::= ... | "fresh" "(" List{Int} ")"
+
+

The intended semantics of fresh(Is) is that it can always rewrite to an +integer that in not in Is.

+

Note that fresh(Is) and randNotInList(Is) are different; the former +does not need to be able to rewrite to every integers not in Is, +while the latter requires so.

+

For example, it is correct to implement fresh(Is) so it always returns the +smallest positive integer that is not in Is, but same implementation for +randNotInList(Is) might be considered inadequate. +In other words, there exist multiple correct implementations of fresh(Is), +some of which may be deterministic, but there only exists a unique +implementation of randNotInList(Is). +Finally, note that randNotInList(Is) is a correct implementation +for fresh(Is); Hence, concrete execution engines can choose to handle +such rules accordingly.

+

We use the following K syntax to define fresh(Is)

+
k
syntax Exp ::= fresh (List{Int}) +rule fresh(Is:List{Int}) => ?I:Int + ensures notBool (?I inList{Int} Is) +
+

A variant of this would be a choiceInList(Is) language construct which would +choose some number from a list:

+
k
syntax Exp ::= choiceInList (List{Int}) +rule choiceInList(Is:List{Int}) => ?I:Int + ensures ?I inList{Int} Is +
+

Note: This definition is different from one using a ! variable to indicate +freshness because using ! is just syntactic sugar for generating globally +unique instances and relies on a special configuration cell, and cannot be +constrained, while the fresh described here is local and can be constrained. +While the first is more appropriate for concrete execution, this might be +better for symbolic execution / program verification.

+

Example: Arbitrary Number (Unspecific Function) arb()

+

The function arb() is not a PL construct, but a mathematical function. +Therefore, its definition should not be interpreted as an execution step, but +rather as an equality.

+

The intended semantics of arb() is that it is an unspecified nullary function. +The exact return value of arb() is unspecified in the semantics but up to the +implementations. +However, being a mathematical function, arb() must return the same value in +any one implementation.

+

We do not need special frontend syntax to define arb(). +We only need to define it in the usual way as a function +(instead of a language construct), and provide no axioms for it. +The total attribute ensures that the function is total, i.e., +that it evaluates to precisely one value for each input.

+
Variants
+

There are many variants of arb(). For example, arbInList(Is) is +an unspecified function whose return value must be an element from Is.

+

Note that arbInList(Is) is different from choiceInList(Is), because +choiceInList(Is) transitions to an integer in Is (could be a different one +each time it is used), while arbInList(Is) is equal to a (fixed) +integer not in Is.

+

W.r.t. the arb variants, we can use ? variables and the function +annotation to signal that we're defining a function and the value of the +function is fixed, but non-determinate.

+
k
syntax Int ::= arbInList(List{Int}) [function] +rule arbInList(Is:List{Int}) => ?I:Int + ensures ?I inList{Int} Is +
+

If elimination of existentials in equational rules is needed, one possible +approach would be through Skolemization, +i.e., replacing the ? variable with a new uninterpreted function depending +on the regular variables present in the function.

+

Example: Interval (Non-function Symbols) interval()

+

The symbol interval(M,N) is not a PL construct, nor a function in the +first-order sense, but a proper matching-logic symbol, whose interpretation is +in the powerset of its domain. +Its axioms will not use rewrites but equalities.

+

The intended semantics of interval(M,N) is that it equals the set of +integers that are larger than or equal to M and smaller than or equal to N.

+

Since expressing the axiom for interval requires an an existential +quantification on the right-hand-side, thus making it a non-total symbol +defined through an equation, using ? variables might be confusing since their +usage would be different from that presented in the previous sections.

+

Hence, the proposal to support this would be to write this as a proper ML rule. +A possible syntax for this purpose would be:

+
eq  interval(M,N)
+    ==
+    #Exists X:Int .
+        (X:Int #And { X >=Int M #Equals true } #And { X <=Int N #Equals true })
+
+

Additionally, the symbol declaration would require a special attribute to +signal the fact that it is not a constructor but a defined symbol.

+

Since this feature is not clearly needed by K users at the moment, it is only +presented here as an example; its implementation will be postponed for such time +when its usefulness becomes apparent.

+

Parser Generation

+

In addition to on-the-fly parser generation using kast, K is capable of +ahead-of-time parser generation of LR(1) or GLR parsers using Flex and Bison. +This can be done one of two different ways.

+
    +
  1. You can explicitly request for a particular parser to be generated by +invoking kast --gen-parser <outputFile> or +kast --gen-glr-parser <outputFile> respectively. kast will then create a +parser based on the same command line flags that govern on-the-fly parsing, +like -s to specify the starting sort, and -m to specify the module to +parse under. By default, this generates a parser for the sort of the $PGM +configuration variable in the main syntax module of the definition.
  2. +
  3. You can request that a specific set of parsers be generated for all the +configuration variables of your definition by passing the +--gen-bison-parser or --gen-glr-bison-parser flags to kompile. +kompile will decide the sorts to use as start symbols based on the sorts +in the configuration declaration for the configuration variables. The $PGM +configuration variable will be generated based on the main syntax module +of the definition. The user must explicitly annotate the configuration +declaration with the other modules to use to parse the other configuration +variables as attributes. For example, if I have the following cell in the +configuration declaration: <cell> foo($FOO:Foo, $BAR:Bar) </cell>, +One might annotate it with the attribute pair parser="FOO, TEST; BAR, TEST2" +to indicate that configuration variable $FOO should be parsed in the +TEST module, and configuration variable $BAR should be parsed in the +TEST2 module. If the user forgets to annotate the declaration with the +parser attribute, only the $PGM parser will be generated.
  4. +
+

Bison-generated parsers are extremely fast compared to kast, but they have +some important limitations:

+
    +
  • Bison parsers will always output Kore. You can then pass the resulting AST +directly to llvm-krun or kore-exec and bypass the krun frontend, making +them very fast, but lower-level.
  • +
  • Bison parsers do not yet support macros. This may change in a future release. +Note that you can use anywhere rules instead of macros in most cases to get +around this limitation, although they will not benefit from unparsing via the +alias attribute.
  • +
  • Obligation falls on the user to ensure that the grammar they write is LR(1) +if they choose to use LR(1) parsing. If this does not happen, the parser +generated will have shift/reduce or reduce/reduce conflicts and the parser +may behave differently than kast would (kast is a GLL parser, ie, it +is based on LL parsers and parses all unambiguous context-free grammars). +K provides an attribute, not-lr1, which can be applied to modules known to +not be LR(1), and will trigger a warning if the user attempts to generate an +LR(1) parser which recursively imports that module.
  • +
  • If you are using LR(1) based parsing, the prefer and avoid attributes are +ignored. It is only possible to implement these attributes by means of +generalized LL or LR parsing and a postprocessing on the AST to remove the +undesirable ambiguity.
  • +
  • Obligation falls on the user to ensure that the grammar they write has as +few conflicts as possible if they are using GLR parsing. Bison's GLR support +is quite primitive, and in the worst case it can use exponential space and +time to parse a program, which generally leads the generated parser to report +"memory exhausted", indicating that the parse could not be completed within +the stack space allocated by Bison. It's best to ensure that the grammar is +as close to LR(1) as possible and only utilizes conflicts where absolutely +necessary. One tool that can be used to facilitate this is to pass +--bison-lists to kompile. This will disable support for the List{Sort} +syntax production, and it will make NeList{Sort} left associative, but the +resulting productions generated for NeList{Sort} will be LR(1) and use bounded +stack space.
  • +
  • If the grammar you are parsing is context-sensitive (for example, because +it requires a symbol table to parse), one thing you can do to make this +language parse in K is to implement the language as an ambiguous grammar. +Bison's GLR parser will generate an amb production that is parametric in +the sort of the ambiguity. You can then import the K-AMBIGUITIES module +and use rewriting to resolve the ambiguities using whatever preprocessing +mechanisms you prefer.
  • +
+

Location Information

+

K is able to insert file, line, and column metadata into the parse tree on a +per-sort basis when parsing using a bison-generated parser. To enable this, +mark the sort with the locations attribute.

+
k
syntax Exp [locations] + syntax Exp ::= Exp "/" Exp | Int +
+

K implicitly wraps productions of these sorts in a #location term (see the +K-LOCATIONS module in kast.md). The metadata can thus be accessed with +ordinary rewrite rules:

+
k
rule #location(_ / 0, File, StartLine, _StartColumn, _EndLine, _EndColumn) => + "Error: Division by zero at " +String File +String ":" Int2String(StartLine) +
+

Sometimes it is desirable to allow code to be written in a file which +overwrites the current location information provided by the parser. This can be +done via a combination of the #LineMarker sort and the --bison-file flag to +the parser generator. If you declare a production of sort #LineMarker which +contains a regular expression terminal, this will be treated as a +line marker by the bison parser. The user will then be expected to provide +an implementation of the parser for the line marker in C. The function expected +by the parser has the signature void line_marker(char *, yyscan_t), where +yyscan_t is a +reentrant flex scanner. +The string value of the line marker token as specified by your regular +expression can be found in the first parameter of the function, and you can +set the line number used by the scanner using yyset_lineno(int, yyscan_t). If +you declare the variable extern char *filename, you can also set the current +file name by writing a malloc'd, zero-terminated string to that variable.

+

Unparsing

+

A number of factors go into how terms are unparsed in K. Here we describe some +of the features the user can use to control how unparsing happens.

+

Brackets

+

One of the phases that the unparser goes through is to insert productions +tagged with the bracket attribute where it believes this is necessary +in order to create a correct string that will be parsed back into the original +AST. The most common case of this is in expression grammars. For example, +consider the following grammar:

+
k
syntax Exp ::= Int + | Exp "*" Exp + > Exp "+" Exp +
+

Here we have declared that expressions can contain integer addition and +multiplication, and that multiplication binds tighter than addition. As a +result, when writing a program, if we want to write an expression that first +applies addition, then multiplication, we must use brackets: (1 + 2) * 3. +Similarly, if we have such an AST, we must insert brackets into the AST +in order to faithfully unparse the term in a manner that will be parsed back +into the same ast, because if we do not, we end up unparsing the term as +1 + 2 * 3, which will be parsed back as 1 + (2 * 3) because of the priority +declaration in the grammar.

+

You can control how the unparser will insert such brackets by adding a +production with the bracket attribute and the correct sort. For example, if, +instead of parentheses, you want to use curly braces, you could write:

+
k
syntax Exp ::= "{" Exp "}" [bracket] +
+

This would signal to the unparser how brackets should look for terms of sort +Exp, and it will use this syntax when unparsing terms of sort Exp.

+

Commutative collections

+

One thing that K will do (unless you pass the --no-sort-collections flag to +krun) is to sort associative, commutative collections (such as Set and Map) +alphanumerically. For example, if I have a collection whose keys are sort Id +and they have the values a, b, c, and d, then unparsing will always print +first the key a, then b, then c, then d, because this is the alphabetic order +of these keys when unparsed.

+

Furthermore, K will sort numeric keys numerically. For example, if I have a +collection whose keys are 1, 2, 5, 10, 30, it will first display 1, then 2, +then 5, then 10, then 30, because it will sort these keys numerically. Note +that this is different than an alphabetic sort, which would sort them as +1, 10, 2, 30, 5. We believe the former is more intuitive to users.

+

Substitution filtering

+

K will remove substitution terms corresponding to anonymous variables when +using the --pattern flag if those anonymous variables provide no information +about the named variables in your serach pattern. You can disable this behavior +by passing --no-substitution-filtering to krun. When this flag is not passed, +and you are using the Haskell backend, any equality in a substitution (ie, an +#Equals under an #And under an #Or), will be hidden from the user if the +left hand side is a variable that was anonymous in the --pattern passed by +the user, unless that variable appears elsewhere in the substitution. If you +want to see that variable in the substitution, you can either disable this +filtering, or give that variable a name in the original search pattern.

+

Variable alpha renaming

+

K will automatically rename variables that appear in the output configuration. +Similar to commutative collections, this is done to normalize the resulting +configuration so that equivalent configurations will be printed identically +regardless of how they happen to be reached. This pass can be disabled by +passing --no-alpha-renaming to krun.

+

Macro expansion

+

K will apply macros in reverse on the output configuration if the macro was +created with the alias or alias-rec attribute. See the section on macro +expansion for more details.

+

Formatting

+

format attribute

+

K allows you to control how terms are unparsed using the format attribute. +By default, a domain value is unparsed by printing its string value verbatim, +and an application pattern is unparsed by printing its terminals and children +in the sequence implied by its concrete syntax, separated by spaces. However, +K gives you complete control over how you want to unparse the symbol.

+

A format attribute is a string containing zero or more escape sequences that +tell K how to unparse the symbol. Escape sequences begin with a '%' and are +followed by either an integer, or a single non-digit character. Below is a +list of escape sequences recognized by the formatter:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Escape SequenceMeaning
nInsert '\n' followed by the current indentation level
iIncrease the current indentation level by 1
dDecrease the current indentation level by 1
cMove to the next color in the list of colors for this production
rReset color to the default foreground color for the terminal (See below for more information on how colors work)
an integerPrint a terminal or nonterminal from the production (See below for more information)
any other charPrint that character verbatim
+

Using the integer escape sequence

+

In the integer escape sequence %a, the integer a is treated as a 1-based +index into the terminals and nonterminals of the production.

+
    +
  • +

    If the offset refers to a terminal, move to the next color in the list of +colors for this production, print the value of that terminal, then reset the +color to the default foreground color for the terminal.

    +
  • +
  • +

    If the offset refers to a regular expression terminal, it is an error.

    +
  • +
  • +

    If the offset refers to a nonterminal, print the unparsed representation of +the corresponding child of the current term.

    +
  • +
+

color and colors attributes

+

K allows you to take advantage of ANSI terminal codes for foreground color +in order to colorize output pretty-printed by the unparser. This is controlled +via the color and colors attributes of productions. These attributes +combine with the format attribute to control how a term is colorized.

+

The first thing to understand about how colorization works is that the color +and colors attributes are used to construct a list of colors associated +with each production, and the format attribute then uses that list to choose +the color for each part of the production. For more information on how the +format attribute chooses a color from the list, see above, but essentially, +each terminal or %c in the format attribute advances the pointer in the list +by one element, and terminals and %r reset the current color to the default +foreground color of the terminal afterwards.

+

There are two ways you can construct a list of colors associated with a +production:

+
    +
  • +

    The color attribute creates the entire list all with the same color, as +specified by the value of the attribute. When combined with the default format +attribute, this will color all the terminals in that production that color, but +more advanced techniques can be used as well.

    +
  • +
  • +

    The colors attribute creates the list from a manual, comma-separated list +of colors. The attribute is invalid if the length of the list is not equal to +the number of terminals in the production plus the number of %c substrings in +the format attribute.

    +
  • +
+

Attributes Reference

+

Attribute Syntax Overview

+

In K, many different syntactic categories accept an optional trailing list of +keywords known as attributes. Attribute lists have two different syntaxes, +depending on where they occur. Each attribute also has a type which describes +where it may occur.

+

The first syntax is a square-bracketed ([]) list of words. This syntax is +available for following attribute types:

+
    +
  1. module attributes - may appear immediately after the module keyword
  2. +
  3. sort attributes - may appear immediately after a sort declaration
  4. +
  5. production attributes - may appear immediately after a BNF production +alternative
  6. +
  7. rule attributes - may appear immediately after a rule
  8. +
  9. context attributes - may appear immediately after a context or context +alias
  10. +
  11. context alias attributes - may appear immediately after a context alias
  12. +
  13. claim attributes - may appear immediately after a claim
  14. +
+

The second syntax is the XML attribute syntax, i.e., a space delemited list of +key-and-quoted-value pairs appearing inside the start tag of an XML element: +<element key1="value" key2="value2" ... > </element>. This syntax is +available for the following attribute types:

+
    +
  1. cell attributes - may appear inside of the cell start tag in +configuration declarations
  2. +
+

Unrecognized attributes are reported as an error. When we talk about +the type of an attribute, we mean a syntactic category to which an attribute +can be attached where the attribute has some semantic effect.

+

Attribute Index

+

We now provide an index of available attributes organized alphabetically with a +brief description of each. Note that the same attribute may appear in the index +multiple times to indicate its effect in different contexts or with/without +arguments. A legend describing how to interpret the index follows.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeBackendReference
alias-recprodallMacros and Aliases
aliasprodallMacros and Aliases
all-pathclaimhaskellall-path and one-path attributes to distinguish reachability claims
anywhereruleallanywhere rules
applyPriority(_)prodallSymbol priority and associativity
avoidprodallSymbol priority and associativity
binderprodallNo reference yet.
bracketprodallParametric productions and bracket attributes
color(_)prodallcolor and colors attributes
colors(_)prodallcolor and colors attributes
concretemodllvmsymbolic and concrete attribute
concrete(_)rulehaskellconcrete and symbolic attributes (Haskell backend)
concreterulehaskellconcrete and symbolic attributes (Haskell backend)
context(_)aliasallContext aliases
exit = ""cellallexit attribute
formatprodallformat attribute
freshGeneratorprodallfreshGenerator attribute
functionprodallfunction and total attributes
group(_)allallSymbol priority and associativity
hook(_)prodallNo reference yet
hybrid(_)prodallhybrid attribute
hybridprodallhybrid attribute
klabel(_)prodallklabel(_) and symbol attributes
latex(_)prodallNo reference yet
leftprodallSymbol priority and associativity
locationssortallLocation Information
macro-recprodallMacros and Aliases
macroprodallMacros and Aliases
memorulehaskellThe memo attribute
multiplicity = "_"cellallCollection Cells: multiplicity and type attributes
non-assocprodallSymbol priority and associativity
one-pathclaimhaskellall-path and one-path attributes to distinguish reachability claims
owiseruleallowise and priority attributes
prec(_)tokenallprec attribute
preferprodallSymbol priority and associativity
priority(_)ruleallowise and priority attributes
privatemodallprivate attribute
privateprodallpublic and private attribute
publicmodallNo reference yet.
publicprodallpublic and private attribute
result(_)ctxtallresult attribute
result(_)ruleallresult attribute
rightprodallSymbol priority and associativity
seqstrict(_)prodallstrict and seqstrict attributes
seqstrictprodallstrict and seqstrict attributes
simplificationrulehaskellsimplification attribute (Haskell backend)
simplification(_)rulehaskellsimplification attribute (Haskell backend)
smt-hook(_)prodhaskellSMT Translation
smtlib(_)prodhaskellSMT Translation
smt-lemmarulehaskellSMT Translation
strictprodallstrict and seqstrict attributes
strict(_)prodallstrict and seqstrict attributes
symbolicmodhaskellsymbolic and concrete attribute
symbolicrulehaskellconcrete and symbolic attributes (Haskell backend)
symbolic(_)rulehaskellconcrete and symbolic attributes (Haskell backend)
symbolprodallklabel(_) and symbol attributes
tokenprodalltoken attribute
tokensortalltoken attribute
totalprodallfunction and total attributes
trustedclaimhaskelltrusted attribute
type = "_"cellallCollection Cells: multiplicity and type attributes
unboundVariables(_)ruleallThe unboundVariables attribute
unusedprodallunused attribute
kastmodallSpecify that this module should only be included in KAST backends (Java backend).
koremodallSpecify that this module should only be included in Kore backends (Haskell/LLVM backend).
concretemodallSpecify that this module should only be included in concrete backends (LLVM backend).
symbolicmodallSpecify that this module should only be included in symbolic backends (Haskell/Java backend).
stream = "_"cellallSpecify that this cell should be hooked up to a stream, either stdin, stdout, or stderr.
+

Internal Attribute Index

+

Some attributes should not generally appear in user code, except in some +unusual or complex examples. Such attributes are typically generated by the +compiler and used internally. We list these attributes below as a reference for +interested readers:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeBackendReference
assocprodallassoc, comm, idem and unit attributes
commprodallassoc, comm, idem and unit attributes
digestmodallContains the hash of the textual contents of the module.
idemprodallassoc, comm, idem and unit attributes
unitprodallassoc, comm, idem and unit attributes
userListprodallIdentifies the desugared form of Lst ::= List{Elm,"delim"}
predicateprodallSpecifies the sort of a predicate label
elementprodallSpecifies the label of the elements in a list
bracketLabelprodallKeep track of the label of a bracket production since it can't have a klabel
injectiveprodallLabel a given production as injective (unique output for each input)
internalprodallProduction is reserved for internal use by the compiler
coolruleallstrict and seqstrict attributes
heatruleallstrict and seqstrict attributes
+

Index Legend

+
    +
  • +

    Name - the attribute's name (optionally followed by an underscore _ to indicate the attribute takes arguments)

    +
  • +
  • +

    Type - the syntactic categories where this attribute is not ignored; +the possible values are the types mentioned above or shorthands:

    +
      +
    1. all - short for any type except cell
    2. +
    3. mod - short for module
    4. +
    5. sort
    6. +
    7. prod - short for production
    8. +
    9. rule
    10. +
    11. ctxt - short for context or context alias
    12. +
    13. claim
    14. +
    15. cell
    16. +
    +
  • +
  • +

    Backend - the backends that do not ignore this attribute; possible values:

    +
      +
    1. all - all backends
    2. +
    3. llvm - the LLVM backend
    4. +
    5. haskell - the Haskell backend
    6. +
    +
  • +
  • +

    Effect - the attribute's effect (when it applies)

    +
  • +
+

Pending Documentation

+

Backend features not yet given documentation:

+
    +
  • Parser of KORE terms and definitions
  • +
  • Term representation of K terms
  • +
  • Hooked sorts and symbols
  • +
  • Substituting a substitution into the RHS of a rule +
      +
    • domain values
    • +
    • functions
    • +
    • variables
    • +
    • symbols
    • +
    • polymorphism
    • +
    • hooks
    • +
    • injection compaction
    • +
    • overload compaction
    • +
    +
  • +
  • Pattern Matching / Unification of subject and LHS of rule +
      +
    • domain values
    • +
    • symbols
    • +
    • side conditions
    • +
    • and/or patterns
    • +
    • list patterns
    • +
    • nonlinear variables
    • +
    • map/set patterns +
        +
      • deterministic
      • +
      • nondeterministic
      • +
      +
    • +
    • modulo injections
    • +
    • modulo overloads
    • +
    +
  • +
  • Stepping +
      +
    • initialization
    • +
    • termination
    • +
    +
  • +
  • Print kore terms
  • +
  • Equality/comparison of terms
  • +
  • Owise rules
  • +
  • Strategy #STUCK axiom
  • +
  • User substitution +
      +
    • binders
    • +
    • kvar
    • +
    +
  • +
+

To get a complete list of hooks supported by K, you can run:

+
grep -P -R "(?<=[^-])hook\([^)]*\)" k-distribution/include/kframework/builtin/ \
+     --include "*.k" -ho | \
+sed 's/hook(//' | sed 's/)//' | sort | uniq | grep -v org.kframework
+
+

All of these hooks will also eventually need documentation.

+
+
+ + +
+ +
+
+ + K User Manual + +
+
+ + Introduction + + +
+
+ + Introduction to K + + +
+
+ + Module Declaration + + +
+
+ + Syntax Declaration + + +
+
+ + Configuration Declaration + + +
+
+ + Rule Declaration + + +
+
+ + Evaluation Strategy + + +
+
+ + Pattern Matching + +
+
+ + Set Variables + + +
+
+ + Variables occurring only in the RHS of a rule + + +
+ +
+
+
+ + Unparsing + + +
+
+ + Attributes Reference + + +
+ +
+
+ +
+ +
+
+ +
+
+ + + + + + + + + + + + diff --git a/editor_support/index.html b/editor_support/index.html new file mode 100644 index 00000000000..08ac4b5cf08 --- /dev/null +++ b/editor_support/index.html @@ -0,0 +1,455 @@ + + + + + + + + + + + + + + +Editor Support | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

Editor Support

+

This page lists (alphabetically) known Editor/IDE plugins for K.

+

Please feel free to contribute to any of the projects below (via pull requests) or to suggest new entries.

+

Atom

+

K/Maude syntax highlighter for Atom based on the BBEdit grammar described below

+
    +
  • Source: https://github.com/traiansf/language-k
  • +
+

BBEdit/TextWrangler

+

K/Maude syntax highlighter for TextWrangler/BBEdit

+
    +
  • Source: https://github.com/kframework/k-editor-support/tree/master/BBEdit
  • +
+

Emacs

+

Emacs mode for K

+
    +
  • Source: https://github.com/kframework/k-editor-support/tree/master/emacs
  • +
+

IntelliJ Idea

+
    +
  • Comprehensive plugin for IntelliJ Idea
  • +
  • Binary: https://github.com/kframework/k-editor-support/blob/master/k-idea-plugin.jar
  • +
  • Source: https://github.com/kframework/k-editor-support/tree/master/k-idea-plugin-src
  • +
+

Notepad++

+

K syntax highlighter for Notepad++

+
    +
  • Source: https://github.com/kframework/k-editor-support/tree/master/notepad%2B%2B
  • +
+

Pygments

+

Support for https://pygments.org/ Pygments

+
    +
  • Source: https://github.com/kframework/k-editor-support/tree/master/pygments
  • +
  • Note: the lexer is far from being complete.
  • +
+

Vim

+

K/Maude syntax highlighter for vim

+
    +
  • Source: https://github.com/kframework/k-editor-support/tree/master/vim
  • +
+

Visual Studio Code

+

K extension for Visual Studio Code

+
    +
  • Extension page on Visual Studio Marketplace: https://marketplace.visualstudio.com/items?itemName=clv.kframework
  • +
  • Source code: https://github.com/LucianCumpata/K-VSCode
  • +
+
+
+ + + +
+ +
+
+ + + + + + + + + + + + diff --git a/events/k-a-rewriting-based-language-definitional-framework/index.html b/events/k-a-rewriting-based-language-definitional-framework/index.html new file mode 100644 index 00000000000..4034444e9ce --- /dev/null +++ b/events/k-a-rewriting-based-language-definitional-framework/index.html @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + +K: A Rewriting-Based Language Definitional Framework | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

K: A Rewriting-Based Language Definitional Framework

+

Tutorial at the 33rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI)

+
    +
  • June 16, 2012 – Beijing (China)
  • +
  • Presenter: Grigore Rosu (the main designer of K)
  • +
  • Duration: Half a day
  • +
  • Expected participants: ~20
  • +
+

Description

+

K is an executable semantic framework in which programming languages, calculi, as well as type systems or formal analysis tools can be defined. K is a suitable framework for defining truly concurrent languages or calculi, even in the presence of sharing. Since computations can be handled like any other terms in a rewriting environment, that is, they can be matched, moved from one place to another in the original term, modified, or even deleted, K is also suitable for defining control-intensive language features such as abrupt termination, exceptions, or call/cc. K has been used to define real world languages like C.

+

This tutorial will provide participants with a basic knowledge of the framework, as well as hands-on experience with using K to define a real programming language. Definitional techniques available in K, as well as comparisons of such techniques with other formalisms will be described. Time will be spent showing how one can automatically generate an interpreter, debugger, state space search, and a model checker from a single semantic definition. After attending the tutorial, participants will be able to use K to define their own languages or calculi and then derive similar tools from their semantics for free.

+ +
    +
  • http://k-framework.org: The main page for the K framework (see the Quick Overview section for a movie, demo and slides).
  • +
  • http://k-framework.googlecode.com: The Googlecode page for the K tool.
  • +
+

Tutorial format

+

Material and instructions will be provided to participants to load software and examples on their laptops. The presenter will give background material and an introduction to K, then the majority of the time will be spent working through examples in the K tool. The examples will be used to demonstrate both features of K, as well as design decisions that must take place when defining a language. Participants will be encouraged to examine and understand the example languages, then guided through making their own changes/improvements to those languages.

+

Expected audience

+

The audience should be interested in practical aspects of programming language semantics. This includes interest in semantics as objects to be created/studied, as well as interest in the using such semantics for different program analyses. They need no previous knowledge, although a basic understanding of other definitional styles (such as SOS or evaluation contexts) may be helpful.

+
+
+ + + +
+ +
+
+ + + + + + + + + + + + diff --git a/exports/K.epub b/exports/K.epub new file mode 100644 index 0000000000000000000000000000000000000000..1c0679c93a58fe69ed6c8ee214ef6ce9911c3ff2 GIT binary patch literal 1820070 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

    ;f={~v2G43Vrp$MVp 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 -aRSr`$ZC*WotHI9KLqH^m=z)=VHjR!3 zdUMoK)w*LsWQDr6B5$_n$n&QkW{y(bLK#?!EU=`c;;2S!^bC@bL&$W!W_O{TzZ|N~ z-kg856u?K~K=&j{85wEbg>@kkA^a)B6iVv~5x3aLT$izZANpXGOAXm(<4O(T)PF2$ zrLMe*$Pi^yt5Fca!l4`!~she!aelzu>?A*x#*Zt>UY*m!|aYF2Oai z+UOnJdl(PwklNgE^!@3r`@`7Y%%yXJ)-1(Q<*`Y(Xd^FhPG!gXD1Dn%Rj2~|?wM#{ zJ2sxY5EY<4%RhrgHHP9Moysd@=+z$78CE29r0jeS>2)kg1aFvRYRTi;B#coX{*|!axAtzz$ zCvfN@>`OoQh)^Ktb0?w0Kg<(-#m!w~buH^EW=#n82RGwl_D)#oq-BS}6@MZ`%{CgE z02$eXpSeWnJcIocjoM$&sfzVMShc3J{6;=zC403p=w_i12DBsSH0=7dc;#h$4(g%l zT*qB^2CdUT@f}gE1LZ`(Jmh=Wyu5+b)FlLts5ZRZ1)o}6swP#*wC~^pF+ze|V5+Nz z;68r)Vy>7}_86oB9Y}C!3lCoU*i3`Vgr>18U&mUJlhAcifS$Mh&_NZLBl%y)nQEoW zYLR7mSwG0eO6*31jlk-7p0D4_^YHp(|2le5l>KZTub-vbz_f0Y&_+Gx*sF7XfE=Bw z_>b$Ubv3Y#&o0tP=OQZypAPV=tm>{UmrsUmH+cJVGn$^Dh3oOVEfx@`5)GkM7EQ~K z!zRLjwkxB(D+iYO?(=@U*u57YPOrj`X~gjelMSYzPU1yTmROkvpU!D0Qb^edQl^Gj zsO1@z(+K5l*GA@IJO*E=412V(IGGFdGXt}m6yR}(vuXOS$8XnICt5}#98s_z`|eZ?xgXH}x* ztwWH-K8wZ9=vQbe*W=AD3$eL#EU2N#YIOsx!p&7wOWBkGw+5GQl3KoYzK}NPz%EnN zT90V%=KZWg3|;aEFYU4f{;flWuC3=S?sO~L*>~9fyPU)iU!6BO%I_fCXaAbn=9i{v zq}{GAuhy3Esq%LTnc-OVO2OX= z4Yup6`L$#x*DXG@AYtN(qLdk_4yFioylm%3tjP8NSjFnA#K^nrc%RFFl87re5hMFQ zX%Zyk;5kCvH`#KnuEo({_SEZ^#oWzUEk6}*(|Ux&?$Fpw7W?bJz_Tzv4f1z&t;>U{ z?pRJ%Si8*kfv2A`5)}k3#~UpLK{9S&OH-0)(vdHat_#6kf%=|h^chSU>Js|Z-3vl5 zJ@OT0xM>t*W$@tDD(zS*#{^1^h?-!MoN$lQ>~;w#YvlCw8`9ti?Oq3oQJ$2MH#vmw zH_VzHDAF{TGP+db`XM>+-cXM^k>T0+TyOzr9GcG0sT{!uF(>M`j#-d2D7P60l5#a- z^-wPQpH@xn0oeDt5h@M+olw@5IFP08nRMxUtTLZ)Izejcg@M0vvN1}F?8w$4CWe_s zhyDD(_0)@_F}PuX1Yt)W(I}lLho^>#uj6?l&%TT?RDiW9@q}XTTbmZz?0U8J*1K@+ z7w*f_aCwg#kf8~eV6hLlAnrV!J*=o@e=L@qs6xPY&Iz{P#lMQ# zjHJ=A4{rz=hYw(Mfb(&Zlu|n4d7iz_oo4^?Yx;hzd{C0Gu{PPFb;dXY0NXO?RLl(G z^?kry1BC@_w#KMce9(lmBxao-eRR+%H%rX(S)2hRs>{}U9@z*R zBoIgEePRJ47(ytM{gwu|-J}KHFqO4+o-YVjhS%o7EYX}~vi=0}f2C5w_p(9A8+*Ei zmL^zi7yfZf^eRaXxzaSsvw$WhGsy`tx|ByMSvkWAaG0GoO_7dnR2wxWe~+Ss zi2qV^aoWpI_7#2{4`Ixvq*b30qc;}Np)h)#M+q?ifmaZUE-JaFzN07DF&mE;-MVd_ z2BN%!$eOmV*XOWj?6y&T-SG564CM}I0U*^;6_wF(U(0S}SO}V2`{xiar_3Cmnp-Rc z?@+v|QKYgV@Gr=3&v{OPs^b9rEQtuUttl&(u}xAL=D%hDK<+!R#yj&Kh4lE~?ci%8 zZ}WtUGn`n*3fCtA=%8zY>Rb5M4>&6!!bxMk#C)$sOl81(UjP~#a{F7JOQf*M0yM~1 zH5RwclS~6L_Vgj`a@1GC#|$)y@YlM&*#WYjsGoryx#Y?`_mNe7+v2Q(u5fw169@oF zO=3=cc=L0vR%OarxxZESTvd+po2#$z-0lwU)mrrXS#)F^`EOKgVg*P*)zC{J$A$o0 zW;TCZvYHz9#_XH2=4o{kP=sC(l*O%VJZ>uCy~lRc7{om5KyKk>4W(uG$M}hi`d7F{ z_*R(Kl&meSI$McYi45y>r4a-n`D6IH1@DL|m13c+0>TbZqQ(vXQ3@46Oi6W>d@0Ts z4|e5wXrG(!u8Tt7$Dhd}m{bhWKtFrL)?sYT0w4?A$3nSBJ4N1AK!wbiYM z$nC2%Hc8q8Xb+HiXEtZBFui%pYYJ6ww@q!A@4#ydhVC6Xp1Z_wW@oLOrC&v=!G?~~ z)=LeK%S#;a5{R@%5@8|MFtF}82f@mX|JZ^W*sz>&pD+>tHpa^Yk1-nrBx*YxL(0J( zstwSN)7~?9?6(265SH}=QYPj@m8?B0wW2No&4GMs(x=Rz&k}2}b+#J9)<>4B9~88n zGp*aL`3l9?DLzcM%AgsI9Jk`m{tFKakDeRIu+5CkD7R=@;tABGUMB(nz3hkKDY-?i<9{?!q-w^U3Gagy5S(Sew(eM9)>4W$wlgQ zg3a8<;XKHZ;o;g516Sb3cg)+~;{TnTQ%20PYQ-Bw;30Y=M0ZqnaVG7?jwW3R1yGY} zy817#5<-o@qM=H?7#+%gUpY0|KfVALh)ePGPX|xHbv}JHtKrZd z1)kQ_76vcRFmeF!b8`qE)*sgl%+coe){#heKhzp*4@v}5mwJUXCE(-@P`*s4poWX2 z%LW`(yL|hKj#b@7Hn?}bkS(+ek<(1^$QNE~O@YfXS z0^8E7){e)rEBVOaubo*`&-udWtH}(oBK6;ttfS?#EVDX*X-;3tO^AY6N*D+lpC%_q z7F%;(rN#$0aGi}Jy^tVTFe$KcCjtHUhYqa zDHAdEiYhB4+D2Nwl*|{~B#xMBRq2R?bdcx1jWqTJmbNE19VT(C1 z(~Pzjd1Mo*q7#vN(In^L#-on0;?f&_RoW{~wtf%S`JvOl zu}Bdx%$ZR-B!^Z$Y$OFl5wS^YLrlY=(Io^eAI3l%IRauRvW|bD4X;zSj5pJhjL2d7 zL0k%)j2X&?nL3ROxvHQiXEX{(hgM)SXX{M~APO@ke8d1R)sLREa27*959*dMeF{}< zp6P)a)r2^z_+KC!Sdbhaw{qsNlbpqy)UXK)EGKuq2Q^^BOc- z!ApeVre)-zqqx2Q{)xiNckV~P8`4^cb~+q^NfbF`cIjL{b!8M~*BV_L13IL;g3M># zb4PSu#k=GkS6R;$2_Px*8kmE_?QTVJx9h-1fZTa><6A#uDYA0wqe&XVA|KDQBDO|T&M(QNx6kZz&}w-;xa%Mx z6T2WV#v|7lq%Y}~DMvzqqAOl0yzU=G(=n1S%rpb`i~rumU;l-@I)(4>)81SUxWUfc z4cT!oc&@4Oi7xF5ivJ>}yHL-(R;OlApB64Pi4qkxQ%RvTi?o$E6+;hG`=Cnc2HKC* zO+XfKgtq}M4dqa|ynd0m;)8d&400N%iy3u8q_b{UVg*$Ne?a?DPzP|QY9oiF+}1c# zFUg-i)j*!Vr*?eZs&K&YLT_5vY^h=U3@D z>+5xEsP3h|acLa>7!Px^=2pu)fcG1>->ACt+1}n*J?DF7h>uKV$Xfy#f73X}#_txH zF?^7EMI=@&W%Esf(c%`7>8|07uqQT|h+)D7OP#Xv>XKaToS(vTxat?sg5Q2{j)OLW zK(wejL^_NaKqP}R0x6F$sVJ*RhngAUa+#CWUwv!4q(u-X<&i?9 zOne&f`MH?3(rX*ryA;~{nJo(HXojuXPPh>P+>uLgo@Pr)!YTBkD1aCg zrp`35%P>q2gaM7ut*N?qjH?j2`Pdmf@lXj}|AaB1Ka(#}ru@%xqA>UYkn{wDZe_cg2?6W2*rd}SP}x@>xW0XX(`kD1CQ;>l|S z12`Nbm-jA*aIqZu21cd{jOvh=3x?pq6Yq*6g$xRHp+8W{EL?uv6m7MyUd5wghUpc0 zcqviG(dng18ZN~TNK|Ryr|MgeTN95_5Ku%##{&YBVa|Eioq7A3nW*S8-V~Za)kax? zU?Ehm>rt>q^aLa(Z5M1Q=e{5Gd#DJ-#a$@TOmrk)N(D`&lgFP{Pmfxe79u#iHzf4> z#jrL9zvzLH51$4N=lbRdXLJTjXt>RnboqK^kb}buh0S z>gr8#ZQek_`Zb8-8}uFoI(1}0*uHwQtd7+c9L-&9D`sqAo4byNN}d`S+dw6hvjvQR z)C0$Tyh6*ExjZa|>{a`C`Pkl6t5oM7s=w(f9lMZu=dQOe>X!c^T>4_1<*Mpap~D>GYG79n-P+jmQ#jW z+O8g*lE=btI4Jzo0mgGa+vX*9s4%m7PR2V?r?A0y6CAjiAjCDxQgoK@3iooeG>I}AAF1= z|NWd-^U=~9PxsW=ip6s;D(t~s`Av~HIat}?vY~?5>4=hby?w83I?vsqYpMEHy3iRq zEVX*)-{q;KaoUuu35|}aha`%*q-X6}4qjppO93}m=S-jcOG(U@4~2pD`EeXhd*z2 z^RcrAKFs^|?k=969A9-C5f%564A%jLIJGKHv()Z96;VQJ4y9T^8w_ZcR2?x zp(J}#8wqu#jTp40B$7!p7MGa;(y6+@H9E4R@49A`O*3Jya{%0DuWa}lD^H(-`lTnM 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

    P&J>X>Vk9zgMy%B(EwGN?mYYUrB`5~eFNym5 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

    Z7HtnDIR=dgqnwhK$m2bnCSjYKVs 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�#a5Hogm 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%0DGjvmct&J z^(?2U6@vtd2ZB4km{M7>QE1Z1-?*-`kf6OHw$|=Os^gw%tnh z%B5)*cmlAEM&pn7HeN~PL?)N#&1x}7bY-mZDoDY+Q+MpdE!_Zb6Px80{E^zCsCsJA z(pIbGjI<(9?sDknHtbX<3eR!`uqU_$+8r34LTas8dU41zhrrw>N%%yJ-62SYUMv%)`uc zlJwlnq6ctd@$F?FRX>*LW4Ml_eD-QNT;s$ZTgJBnRnYv;@fj!Mn`t9%7-zESm^FWz zh-_ELlJ%0dT|-`#1yhwRpsk%5N%kv#gd4B0f~pD3z4xH6zw_>7er6UwsOmHm+<0jB z>Y!;T;@K1MB?hfPEB+g;*!K7ngd?N#|ApU)zeH82m5xVcJEgPkrg@9^=dZQ)-)nJY zA^T4ottA$Kr&I1u?4UL;u8i79K_b0;V!Tsf1;ta0+X=>ZV3ns+ICNU?ShwK}XIwH| zk%L>;PG2z57w`mlb^-;LxBZUG<4hMbYeJU(^znrCWI9x&C-@`iTp6 z$RI(>lldc4qm9Rw_Sqd{StGjD#-Q8d8#Xvt3gJ4?HBG1r(}b&2QQU`=cL%>#8^U$ikSX|L*S?AG&}QKvY;XkDOX=(R=n52ClI9XEBDz(6A&~<5(N9~=J*dh~ zaJyUqQAdv`h6H`Ve6@3A<-l-9oaQjd9VQFQdD)O8%=^3JW<0caB41$0Cf#g~6_xz)UT;+M)wk{5Q#*ABqRu{VcPGM|eLwQ{*np4`KKXW#tlIpK=v(nKlum_! z{<&Jx;+@nVpN2u>d@V-ji@w?rmgo@)@7VcimX)fYu|K`zUQhppOAz{38vnV>aq|1# z*Z2VF9){)7ruUV@TmSk>8oi4r_Hpn0)A$j*k{Wd4Nwp%`JH;)eo_I~mflo<+N3{d3c<$OS%yTlNF`6`^f`b)vLV1emElk{`OB1 zC_+|1ktIw1L(8K|^B3K)60PqI$TZW0Dvammz0UgfJjInd&jh1Co$ zN{P^8I7oFlX#2bsX6|n%k-F^mZzs8{(l)ks=WnhxBfp_!_$Aa_j0PXr#^1(^*{Xep~ZWsQUAl;(`Km%dKJCw#1r{q`xjdHl)FO6DSIIHjqK6s zWMooYI}lWKR%tuYHpjr_Do#ECtv6Bch$`}C)I#I&`2StqcgM$7Tno?4?c4iGT4{ZE z*V3x2dhgP%nk#abz(uko+XA^DOV~6UOgE+n0x5(fbV9PSDTahll8^@p$qQc|p~`-| zBslqAAjtw55C5w-z#S0>1-wm)_=F z<(<8_jFkyTMNUw3dCIVX^A27#u*T-z*x0f&=Y!REuUvIEev6Px2G{SflKT4L+p3(2 zx9?uP`tH@t9w%cxMVu$Zbz&@3$4jRdbMJDMC?{!MU5IrAib!a7^oW+i( zKHy}#UBKrLV;F!*9#Oi-W)QHmZ4g)8;N}fnrPB;X>-b_$#sYrzmGlgcr0~)vu#fYv ze2&cfWWHoz-))%wC)b33f-2~&DrSpkbmk^!=F@j8!v4r zZ84O^>dO?5*FdR#_$Sv5WEjL+j@Z_F1+jgVh2z3u!Y|J9%S%rMa`iYAau2 zQ>Ofivu1^XEDaUeU0YVspoREp^TkeiC`~G=-XMGZ%BrnJz7pM|Px5v**1XWPRv}jZ z3Yj!nmRPvTT+jU^S}eKyi#(kD0_xihWvL3X^a1h;?Qvzhw4OjtwYGbmR$PfqA6uYB z^#~R?H z#{v;}nRmh{&)|UgyiNfkd|Pl~4-ESRj<^hof<(T->D5=x$O~jGz0XGf+6mGITG*py zHn#ARxB=>r7h8#9HA@Pf$MK@qU=R|YRS#C?*@$ejn?+JcEJPuaGWAQzU@Q6pF8#Z``($t=V=_^sHUpO&z?!;1zk!oA?`%Gi8NTVi8;H z%2Z+#c3j8HE|XL^^>-r6N>YL!lk@0`k|!9htf1RQDw88*S|eRqMBD#Ijf7rNrO{k^ zM@z=8wob=o@iagUxeAOA&lzdCq^m~4#Gd|&zvLj#qL7sB#~>Rt^ayN$%T1>jn0=?cwaVltO=dq;NAE%)2Uz-^$N&3#UizgH zql1oMm9Gr$UPx0XYqjLLb9#HalZo?gmU??pf%N=bnG4VJ=cWc(($$&;h50NX zzb+3ux}4=}pFdh9RxY<0t4geHH8*e8JJzDsaFt~i@YQBDw{i{mI(kB)I%PkkZaFGh zl}j$(Xj_Tg;%ddbvBRbmR|cCK{l$gRRkBGj4zDgRqwb=j=qhQe&$;#*g=D%a%N@SK z1!?JK&?#;=?fpS@!-7E0zB45~+z z-6lSAUY^CH77Ey{q$}18QVPs1wF%|tHmLr2d5cUOHu1b?Z8$PN*3eTdm@30|uTh&F zoZ=esr(j=~>9T8!{cJwNFKg!#lk)2(wn(CO)Meo-s>|!Rsyb30po|AVBa&sPQ?TIL zE}?+;8+_(;81tGcyJ0kFl1+`p*##ZTrF=eQm}kj!`^*pkHc8I(ilTR3UQu;TtBN;! zJX0l~`y6Th)*dVtaemG%Iz+P|k^1~xl9pyRG!J-PmEfNyIl-T=%jdjSyYg|qjBOT& ziJi##1N8XzKyFr|R(*x>Y;shZbC7n%;gY^MtBt4moYUYLi@>)|`LQR~zfnN~6O;@3 z36-+BjHc|`(`E7`FPyA$md)9Rae8W2nyR=Q?*%I}(yPx~lARMMUk06bESY)Ue8D;X zjH-2wv5;i$C=M8nZi9V8EHk}g?V{YA;0bi)eT=TK+b)}lsqmaZ(NtMrHWdYVAD_k> z{mdie6L8q?vt%VcF3Iv$#zbRfzQvqMW2mMyIrD5rM>;E)M?nK_l+AjqWuBB#{mja* zpPxNLg@egy(()>Aa+*{p*9e`c0{-#+iu zB1UuICegtAB6;IGDV4?G-M23-6ifpG;&!GfM*pgGSx#T&H!5b6gML$8CL=CEaE&;o ze!;>wTfj~#-qk>n=5&m>cpk#oX_T!X)o<80!svM9bOjEdv=R0+-wR8`PS_B8%I}8} z%L#j5IlbP0hO8))?G4cr_w#c&0mq4zJjn?3hebkpndK|}qGq^k=6c$dB1&8ry z$~p67b*1;EOxJQ*5}WnPyG1$i z55=w6!Du?1##s)Zfm|z`v69)@i0%KL{py-@5_5Z@IME3$Jat%7=6r?Cb`neJHnT|) z?!6SdB_$*Eqijd#^3pPWfNvz{L$3&0R$e<)oO7bSL^I*NXAC5hcC#XW_3p%LqM|5d zBhT?>huxI;d*aVH17|>{((t>#ni6huri3p{b8stGKE~6p;fZ)T3_hV}CEoS5Z+u;l zPakw5|9Zc!kj$SkP`Wyy-xWAh;0Ch;IC;?Ie{o9xibGYDjjQBjOjj|dW8bH?B? zyV)cQU;oC}?h+NJ$-#4prxdDfCGix;ohgjXmplSxVIi%*c&5Qlex6LXII}Ce`bTle zl-VhI)-1WqX=!|WzUVOd1f_5w@t;-0URhCO?~Sh>EbvPLS?DksGPkrh%!2{oqQ^50 zMrWX_YK-17B~u<`OnggP3hM$Xe86Z^|IVVe&xCQrrwll&wM|3eKD*f`NdAI@uO4tY z!#^8M{3A{9nH(Bhwz^e~Ydl0va|G%NTbB3;HrxD|%cy%c;56zi5l2>0`xcb)HNrw| zW~+|SPj{aCHmmPP*I;)jQsetR*o%Wt$Zki+1s=2LxS>~h;vh9=e_TCp z`PD&n?mQOn*ci`XiSsMjG(%w=bS&QW1vzP>-N$S;nsT59K$b5xu_87lH?3?*+=O4^7* z*5~*#T5;yg+F0g)wrZ;Mcm&buo1a@!TI<6#w8JrcHkwPM$q@nzJu>d<@}AXLDDk1q+Swtvh(qY?Fgo1|-L%rxg_Wf4 z8`z1x5;~(9wmavxAVR<%I8`&e*Ct`vB8Z->a6v^?qaQE#coNSiULaR^+*5VX5WD^1 zg378UKVA(U%hGuluEn*WWitqdr{1#IJTh&ADWrTv_0sF3=bh>P2YVnprC93g5#E&i zj(W-7#0!ZRJRVV)<$|tDO!a!e4Don1r0uDORymAmc~fjtw>d=lnCx*U+kT8XAo0VH zn^1+S+3r&t&94AUknTkdTxE7R4VVaK0S9rw!JBdnI3cH}d$9+5cq>nrI^Ia9dB$t; zVHTf5TiIk>vq+&t*aPHJL%sqG{?I03Hlu<6Nn+{gQ*Ss#(Z(Wlr%!#3kN~CZGRT+R z$cy|ijwpta1haH02l{7vquF+Pxu}Hc-7ahqm9w)?j$u$@`TUmW?sJzLZ+nE^>i78V zwyaI79!@8?k6eBi)X;G&5wMEQTN)or9KnV=F2@5naa6$M^M_wCW9K8c8gsIZw>)km zc`IJ`)M3?l$7LeUB0wYFzNC2SCLEA1z0HC%q{NYc)~ic$9iU_W({ik>pGi^xsoJ9M zDY+!inI69JvDFm{hMca#u1Ae{>Pl=p6>lw9e|5BdP)yu+&pt`Ia*qCjU{~r<`{}vC zIr=waz12ckvyoNR**WyfbY8E%U7QQ+x9V4)n$ym6F1}!CdU4(G>xp~Lw_8Hd&I7na zz$LZA!^2WqC}ezO_%|8nY}wsyI2HF;tuL{WlDaLg-#P5{b)0)iZ^waOND$kW;nLW; z^)XN4iQ(Vyw&Hqej*jQk6U%3kN)ra!UoT4D@x!*hpIU~>bGB@{Jv$Wr(=m5zq7=9t zx-$fvTZB`x94TJCkaBwLPu7M+DKNKYVaLHP7(2`@2O({b^=ZmMg?z}HS#Pv>tcE#VHv4sc@{*zB&2t{u2xP;qp!wP4VTr#=+cEP3J zo3ICBv%+{mq!v5?wu)XOSmq^rn1%4BrQ>7RkYfT%amO8oT;m;gc+zLi(m#df(Kp#{ z_mF-?H#FCETzPU?2*1bd&I9**t#az9hAjnA>r)Cp*=@8Fy|raBVivcPwM+U66P>z+ zW;0-S;>U7KY%OW3#3Ks|UVzC{=~MTy*A=&H=0u3HOq+$}?jj$8El!<eJgcYktb!8rW^DI;d&Vz-2Adu8=qylnGFRkb(Fy0cZ) zI8C$)pK(0T{Zq6W0h1*1IX^mBSUqrcEOs?9a02%a*<_SIRQA_>~a zQYb$aAzpIvW!l{L{IIC+-C~8C9+#<_&oWL3x?N@S=}uE_KTdoT;{nnLLpp&^Ji4Ul zx2snX(IcB20*4>@P1#c1BXNR9KK@lq@WzSWf4%lgj9;ry zUhY||sIToqEOv;6-iK+2&P0+Cc<^@(C6Dj(htmaYH(RY^ zzYj-a;S1x{))AZ4Wb4YmOwJlfE1W0uiq+=4CrcD9>lQg#3$TZ8#Mf)PKG<@PC!nUB zFbS}vVw^L>dOH~8lG`m-lamuO4kzAQ-ulYk47^qr&35~@zioG#1lj02Yz|+Y0hSfU zquev(Ww8Ega&LmeQJpet!LefplE`u1K=pYZ4!`niUUtyUe)nSH`CE7c)NEdP@Zcdl zcn}6dvPf_v?i9_kFg3=DJhU+@8t)2)uxLtro;Zf-O~YW3h#xGH17*^=6un)Yog{J2 zn4V_M#_;%Of}#kC7KNm17ADLr3jMMzonR0W2^jo*l(Z`ZwM`ds&)|<)ZwEQctMmpk zx#bHnt1DCmLjihql-K2`K9Bt3P5fQn0ln0XJl*ldB{m71g|p$yKS+F?WIWs1d9WA% zAI!-vkZNj7kY$cstB8`(UXS^_#Jf9oa5(KICf(b*bQyXn*3#3bvb>ybfQer-r!Bmq zi1>Mh8qh}F(pu8!kdjTM(ao1QJ@HRwQneNHLcW3g9Aanl2Ws-*NXk4jD~ZVu;cDYa z+KKz!e*El#nk6QlH!ZHc`JMOn`&~;NFxp<~;!5-0{q95W6?i=P?|t|F$pQ~qK0aQ2 zTX$wp=CWIh$H%?CzCD2N>GM5x$&EK$)_$PziK4sUX6UUIoYqrAMb z&FAVXmon7GuG)%a#MJ0i^Sbj3or=>fI|~6-osA}PxS<6LxeFRfYO)l=yy~Ultpzzw ze{+u_R0v9ExlHaXCAKyt~xMl6=XNOO4WrrKpzDO#G9RnVkhHtVnnB>i_7RYj90+SyvljF5VXDdH=dIF>11 zTHPyVX9u-gvFOO)2^ege)v7JmdU?WmuH90lnjB7(S~YwfG1HxLB4;KqU2c-+a|U|3 z5WeIA11~?Sh-O(yxih23g`2^7S`d z%BTQs1l@)A+yR3i-1H*}Tgtw9nIK$8zjgp6Z5@;}de~=X$&Y23{#AyuS$h~dO;MzG zECrL>13@1+x||qyEL*wuC!LOXowH}? zt@L^tn_fHIPIm0vO7y*;dm17QOH8D$`3A-A;|bvmwlsl^xjAElot}a*uQn03Mh$c>@ijaoRc* zaTQhCp=(0@iPZm-7^=(I4}w? z&h{IeCZ}xb?d$6`DGrnKg@0{$s%KFKXSUhry?)I0r`P8>9A*VNQEab?_!<%EoP72d zAAKuxmCvm3h0o%&`MnrhaILn#^2|rxus*R&XXif>{{kG9&F=-{ARdV%bE!7uk`s{?&PEJWC5`t0Ki6^IKCKXORKBccj z2hREo6|v#f+B8Jzsm@Yi8(xzPKFc#zdP$mlstTX^TvZE53g(&4E62x=?uq~m_2`8rm~%bww;)dXDiJa za`OZ|%_$FavYOoSB?LZGUSkXSkCWAUV&R!nBECpVr!E(XZ_L&BoD!v<%w?9UHF@5- z+*?+D_U0-O6jP5q3s6Wi@w_i(zNW6gT^mF2;Gq#hg*HyEZM|9k1pxv4OSau9)V6EbOs3xcciSGhS~Y; zlh)L=J!eGE32i+cr*2V6U0gqwfwS~g?i;Uuj$ z|JhONSmL#C=drQ4z-sjWAwDz>e z(~hM#rteGtG^0D?zKp;4Hu^60{WY@yelKVKH7hM^Y1U0y&-zRKSNQ)iZ_~X0t>&xO zsgDODfm;JV5BxDG20g+0;M(Bz!H0sAq4dzw(7w=f^Bwb-&wqUWJK1&F2eLoR*_iW( z6Mi3uxo~B8DExe`EBE@mw!E+9{Uq4+{`~rH*8ifx*s!4CTMh3tW;R~i_(9W_rvKHP z*1W#?2hE?ftZI3(<+Il6)=OJojQXSF(RX8NY;El7*u!mHTUXnY?NWPp`>yt{w7=B; z#|~G=!j8d?gPo|eyYr6DKXl1mxn0q&4PAG3z1a1y1(5~kFZkMm_ZQYLj4$#ox_r@d ziw%q8i{D&=mn>Xz&r<8stC#-$oNslb?)BaAWn@_n((bK=XUOqy)f=o0pCBuD44v>d z^?u@G*}^>ysLVLur)9PY=cg*2lUfUVpfRDzq)Li{}13{MmI zF95$5=C>D_DFnY}cnaa^hNl*u5_r@UyhVpvT<|~~eKZ~l$vl=$3pa#vxiS>yXxgJF zOg@I^x8S}W+*hM8egdVF0^fAW{tc?nPO6n!TSxtVqQhP%eb|!JQ4Xxp>3$Gh_qM01mpz zrv6M$cn|z@@Y@jfGQj7Nn}uya85~Vx1GqOJFT_oC(gE*ZNg+IaRPVsoCW@13rl3Q(q@QlKm$Uer(KS?W zzCXz#7wC-N17Xdmj+KG)&^B6jfN#os zi(rL(?xANdr`{*uK!r43{PuK${2p}yo=@|E*JQB(Y}H}X-J(CONhlDAlgzkN!|2lt z@%h>N8Z4#|@&J=D)IiGv#9IV%SA)F$@bo3ipI&z9vp_GWwA?S{wD?=e>!?c4uiIGu zq&~Hpu5eOkr+!#kNnVrg6CWC%jz(bn5--ugex@rBeQ|2N8UX{D`)MWIsTJ4rmY`MWvY8 zC|Rey0-=v==)eDxe7Ad3`yk!LeN^St=^At{_cS)C2;H)tgSTITei}k5OOM6^e#nJ5 z=5`^T%LVu{L@B~3W&_#-ynYuwjJ}5^&|&a@6CFW+ME}I4cm=5@KPSH+ZYrr0G2GRnVfy%%=fd>PR2A&JN82Dx2 zKY}R81%;p-GzOi)jG#ZL21CK@U_r1U*byf*%F{7BYrH*@v>9$$l>TC)pq64CHJN|0(==_;`MEe*CC9J;K#re+93O%lGQ2P=M_`u*t_r=Oqx;q>9@C#Qcf{hjICrw>eDJAKh~)3iTPKlS+3_onWf`quG3AOGO^ zACCXm@%N7(J$~f)d_8mF@i0ue} zgiQWz@}tQ=Ouj#Pc=GAVrzW4AJT&?En3+ij!#}VIWW0y^1R7alPe|{O)i)$nk<}@C#CoP_TD@1EPki+owj$H-*LTt|Jz@G zEA&>{Ti!SRS!^wH*W<#QLIzaU6-OeVYp7BoYdQ0)=rdq7EM7Ty7MN z#ho#=uP-`5T(RgxHW!PN*vj2%+!O*N);}2MyLTUi-ZVrL4-91nsP93G8%Hx$Kts`k zPV9uRP#ksl4D}xLV8RmQBXO=E?vC})^x~daOegTEgKGSR?l_-w?!jDajMBQ#WWr z9h{IhMpYU}#r0|I)BkbO*FF#z@&gbUQ}?U;A+3oLAsaNbtf#Nr*T1~CC)6A0RpTuy zdLYb4^`f&<7?&b(C01|{j4RW+49-wA1jQv3?T?dP^yg>faKQf@6E7LPWn zG=_LfUoR!;Yh&CRA_o-83{pj8fvR&>Hj z|JmSQ9D5)yxa{tp393GjH@Y8k7?QQ+2SV^#68CB0^cASd)Tb9D=>+~e!FO(EohAz> z5ORhu( zBtV7?21-y={IsuvXTnv8I&{Y_rw+Q4kj^qAyBDBoq$8y>BXd-ORwAObp=GPdA)HIf zs!*9#dIQGGgZ2gz;D->##|^&y-q(JE^EV8C*E+w!^Bdm3Q5e474`uBDk|=wjJaD?# zi!r5C9xU2Cohq_F0(xgu9#^7(%C)p`_@}&&Oa%4=lhRw|z0m|sUSrr*Yk$Aw4H?L_ z?ZscQSShuv{KT0B6|p7JK@YOQg5`?5407o?xm&^S&?Asl%|^B$GXmCKNj|nmvN({C!sPIRWQ000({(g0ybSav}-N=Xni)78{N4czp z=CV_`I_Q#H_&-D@&!WY7tbX&bRqTS;-gXS`hR$b2tFjg;?`k^+6!d(>5CgvD8{qCZ ztxn{fGw|j9?=UWcIN^99aGM4g##E?bw@4A8Oj*={aDhJ%3cJBcMj;rK$ZN@vaNifH z&TO<45U`TE0^}@oho_wotp1r;W`X-)XxoVA#S!y5)|rZgsA3DwI5n4)O4#{=Wt$hd zR7cYPBHPnpYe6e~&}ot7Ro9<3q2`EovIiw;GIV{KgPaP-CunQ|KNLk;RuNxDJv)77 zODkb}M3G5XL7!S(DPl!dm$IN}B6EVYGJt8o8>AcdBnWFfaHBKK-0(<+QMRVeGg{-87_WLtjn%`l z%(x1?n`fe&m02j65X&YJ0VkJ2#|ugcClLOIY;q`37N)+9zm1`{qILS6Xu|`hK1!GW z?*rl}`baBNFGXw2@8T-|AT$GJb3o?~O@MxJR!u;>Vm^Z!sy1hK`JBZVOUhyt6L#5x zE-($-%xG&w=Q3ssOKPWGLzwc76d_K|z9Lj9aEc`vNe8Z3mig|=kWQ>u{r4RzmefRD zFuO~j50(^U?Yx4NJ?kvnzhO66C&qg#*5pL}vV!DKPj_YVc0pmv0bke>5Oy&*EX{vx zbnkHY!B$~{$ms*y=7KtSkxma?Zsgb(LLk8Xe%f$blHSbCE}3hai~+@`1v>8*P?5Z6 zNi{r-=I*VhWH9Q5{K*Lao=1YFFun*a1MppVh0RRY$&L>$(gc@!dc!)wH^>|-KI)@c z;6ZYBA{d@L)p~&pdyn1&QYHZ2UrbW1Pa;Tv7;<~b{_cRpIByUdDu~$FnBlCKTJYa9 zFo?yW;pKiO3pqo7QYnDu@Dj=I;S;iK4G-q!eh2f!__2MxIl~qe`9WcoFiSla>7Q~# zoNPNT#MQ3=yr z6OCHnMm-$5L7Q#!Ih|TUV461Cn(3qnb(fUm)ib`@0KGf-Zv~iMk5R%FUz5+D~*lxdw|=&|J=h#)h@{D zm((oeyoN2D^5^gOS3(#FlGJlT*_(@ynSf0hin3t@a2d2;3E3VB>eYLlQ2@UwkWB)4 zF~b)_^yis5uCie9h)~eZSTk(^c|`bxo)`X*0LMy zWmnIejt{}+l_iczf%FVE`JC1&^ z+uqizkvC*7ihd~lnAfeIH)t=?&5-(D)g9}rmN#xM-j4sv0rnlBH*zoLPM}@NXd7%= za&sz!hMHc@fJP0RwhIO-*GHS}m09imI+Wp2YC(gqgTv2qOwd=cS-LYkG<7ID@IWOl zcbIsq-9cv?jMEl(SPQzArn4z2sVNuDieU&GwTni{5Q$G!yNmnA>uUV5wee<3N~-fX zG+WHGJ_8$HrAKlqwi_%ge9Sct_SH^@vR*AX)EBWZcPqtLQPGB542%s{5(ZoEQ2*}f z?J=#f*6!}J?goqX!87Am$Q^FbM)Rswm2)|{zIKst%+$OZZ#V0i?UDgY=@1+2sFbrt zLC&Rpiz*cWJ&^sEIE*k?_!}JTbvCw5ej<3A zEk@V7zXgmQ59U9+4DM3G#KPKuliXwAt6*HTg4P362^Dr|{s@r*0cxrS@e zQpu_VP2Z{tuBf`dIW0M*eiVN1%);cW?>|j>v0+vu=fMF0e(3&tXLS}%rvGtP-_rU~ z-e5!d;q?po+hw&&HyYA_mi$>OH%)<*_CjEKXGF&2;+5^YUlW2jBHQ0*r~^$a0rd ztL!Gwph4r3M(+xO6VmnN@t?v=xNJV+t8`V$@3}68|)dN$4@9lRGC&2CW_0>$B zQggp@q67|R7#M|AgQ^f*jc2Uj$ z(Gg{CJhZr4Ej(1plQ>bY5aJLN3+&*00!jX&uguBFDNR<2Fbkf$3CZvxJ50YhpS^0} zhu60X#4$EV1HOJhqs1Yic%>+aiPPZc3NXAvM+)%GDxIhouQLk{p7tXn)ynp8vlsN@ zy?tXF%n}i??Ex6HU84l(?h<4nQY_^P z7MgT_2%RF4`c(#2xen#GKoO@{Gxkaa<XB3Kh{uA3DJeE>R%^Zy z7XZ(NWk0tJ{QH=WHS*BJ&mO=HF<;n5k`)vx21Ehgubu*(OXh8QK5ZuhuEbQ=TR2DCkbObGH}m`(#|>~IWD1G&A7Oq#{zV*w-G(QK zMFL#SctSj^I;O_Q!&xRN$OWoZBQa`M~CUl*|a zymo#*PD0}@_!^`JQxHWz>97O_R1IIGEZ5yjUwDX3~P>d3_ayZ~&kdkB$!sHql zb9YgNsSxhCG*0La2K!wHk)4Bb$b;~i`)pYcPxs_eN5lr_zd!Yh}?pxQiy zO2}%g;xy7JA5$q1tlz8vT8Vv$F_tQ=ze<_!b<+A{|lR%wZg?gw;D0yz@AF#Nph>SfiqpnI$ zG_ny?Y!LOZc2lEP{u7OYbN#pPPVLm}h`{JEWe{wq>Fi&6?vzeTY>ap*?9fqhK7G5Ylxf%6qy;jURgK^ot2s5F z8G%L1@-GrBycIpn71Js(w_Vf>JI*gZ9#(PHhsOtdTJ#BtZLj;U%VoVKL za6m3>UkqDZ*go$~->_XiQ!QTwt07vLbDDOY^>@tzeAk`p8~)6jOe_3F!7Cy2A_*Ob z1qR$D&p=A!WpZj^)5umWyFR-k(6c+il$Dhw@@JPV7dI@bCtG+-QL)5}z0)oi`q#b> z2y(UF5wJvE8?ps;{gaC`vYsN?VDY(-s)I|?k_^7TofpWXYhju24`{t?& zs(nVEI<5b7E8FLuT4Bcu0lg2d3aypZSmvym7rG&hD0s!EprgpX9m8C~3y>*7MzY88 z3XR*0P31RT@9T+pSEy;Y(pGd|F7PUY023j4kC#e5HXp}{9OEz z8VLTfT}xJ;!-}Mney&gL#a#E#aZAGGEgm^UI;X zc(C9-#B=Mfcv`I&bS`;xnJ;=wJqTa*j3K~`J;9C~ulyQY$``2}=mzT2FEUlpb#~u= z^>pZ)CH~G#q(_U#*{Ab*1l!0UQ<$h*5aCqN4Iuyl3lkq-8$}Rs? zq2CYJ#78}`dCF}ip3Krz&?>_WJyCt#Pj^zv=Nw({h5RExf%e~H1LpsS4VE-EY&XOZ zd{)$9UJ*9@DMw?yBx$J3p}`po3qi3^03!!A5{MnBEz`Di6Om@)ZeZ-xkQCXDiUk0N z@>83b&Hn0?OkB)xg#g8*XoZlYADoc;Q_VN1Ox=>WLH~Rttt`xuIFN`HPKN63>pW9I zOg7@A(T}dv1VyFM>w{sZ-jx#jO9m1hgL^v9mvH#7L!O7d+sDZHBU!=p2pMHq9PorU zJC^I5rZBlmVi*$=KUTq?5TrOO75B!7L=p}>2I}g(VZ7 z!D~&DIpNw7N`;V?PH1wnOBBl)X*QQ#cyHlOa6H=AK24f|qOjyOYt?*0?@YR+7Uofl zA$lo9apERO1XTE;dIp#GqIx!+W9eiM*|qWiaCHS-Z;xrv@c}k@W$RoERU;I1JW|ES zZ0fT0b$R-p$u0;La|S9f7IP8((3cg>k$i|;xotnju;B~?r4$c~OoC`k1~LRmBhb`_ zI5IWnqtpD!nIJYJOrfp@DUO7xr37AGG_mCylD%xg!JRBI8gS|)$4Q1DtpNMgBQX!I zdeWTK@@xPlszMNp^TY#}2NA@L)U6y_APF+^z1 z0$ae?^&z62%~LyT1(%D4u7Hru*md|rfH>_N)B~Agk{Guv5w3^?3?_nZI9nPw8!9qI z<0#@5Bum0WS&L5{#>NLe?_MzDnJ$Z)^H(bf)dmclGX3gS%`_o4_@KH%^-eKOeQdaB zY%RP!x2dlqvTn@=jcMLy;~i^K=mLyUcSXroB-55Kby=}(qD0m+pF(jWaB{^7tGJ%Q z(??$TsJld_{R(TvXMxCg2>FnKv9?f`;i)84VwKCQT~xwy4CL@}AI3Hg8Vvlcm#TfU zd@`KuScmYLO#`-}7D;4iKAcm+c8*pURbO>VF@!~nHO0yEjU`={_Ib%hw;%=@#E&q> zg_}3QOh|QVa|5$Zh0)gi(_EORk$RXs#9_{?@VYRt)A7V|L)+?LW;$}V{9#fiWQ3q3 zsghgM>+anjlFP-w(Nf7t#s#v3javF&!Y-A;;o>;)A)~&XFg7@&V~a{<#Rg>-_GOCz z!~6IyjTL5;n~uR76yl1h4`ay@@juV#>{cg%X_o*q5kbk4Xcyr#m}Z2+@ZwyVMNO?dU!*D%V>bj zbWOj*6XyQjrJGsnHI7CL5Cb!08^ogA%T;1VyV7=8t(94!O*h{b#1FPN8%@hWV;r~K ztpDnc09c=ePhWI{IMm;~g>|9RO_JjprYM$3(t5yl) z@o2j`0t0;++N0S1_GD0qaWmjWFI*Z>!1ZqCX&nfw$9Z#dXbdFGy*qjc5xb>d)rpXK zuVxYd;EdDtd5mEg`uXC>{H>k*0f%JbkolT93)`ZnsKe87*Xrqc?+obU{wF7Fbv?BSu)b-c9ogc=UEXmnwlP5AcZ8aw~D7#_xnF%y93hb1j=IG*TI&y+Isqr-|TT(+{`#2qo-8nFzT+0G`{>0fG!jKo-R|SsTEJ7sV1? zNh?>50&Bg*du05o!=n9oGeddtK{c&O&>>jr&^Wl_U;Hf0n3FcD*-e48*AJ{;A(;k~ zztCyER9@`0o?bh#S;ehm~jG-dc{}veX_!z>m~d+D-q2+LmLTK=F7&z^^0}Y{O&{HqCz!f2N+TS zparBxlj83fSf>A?NcU?%=z^kA{2?YtQ=k5L$I~IviCHa!$Ny>f^c!52Rnf{7B??bx zI7%nvO%%l9Qc5g$%o|gB(^=LCHKA&jGD6V}dqcRL1~>q%t57qZF%~ipZs4duR4YI^ z8(4EhPVp!keU(`aC#@9e7wTsl;enMq6dn}g={Jm#0P1IDR^mEVI-V}>CkMfIM_5{Q zh0x`UWfOzyX)0|^{rjhCB^xo{r1Mwz`Sq1ctFUFCn+?9`+5 z5iP0G;{D2F*C{WLn?qK^&TeS-_U>^PQVx*2Z23{|6ZZ*~GYJjBA=ZLgcZ~KV=|J)= zWsR(qoBh@osC83DFI9$EL2ZmAiP#W21|=q(7~ZRG=$f%6d+_L|1<3$?_+!OHSAN8V zo6?cSDQo` z2I)CjxPx18)Vewb6C*;ZQh(~CN#;J*F(Q>41i^6xY5=knqjgR~D;K?RBYx~<_Vk?ybH0oX`X zP1t)*H0n^#W&T|MPEcTq~xhX8g>>j@IEb{O`=ZG@L-vXXpt6^-cMhUD$~73$=i zB4OLKy$=G$0p;6;W;3#@X?ChwXxlMZ)fX?5)hj70vHmX_IxQGhLg+a;1Bbf3lSBNP zK^l8$e9hhsh!h9+P_NJ_c=hId`nn(QpId?E*#i}z5m^Xst9uVlMZqr6=u2ffk}FmX zxM#x$G9^qpFk$0E>r$3cOQ`(dhDLlC6vKLghcH<%M1^7Te3IM*?tX+f(Q&~dL{ktL zOJ=EF>}ii7BTG~4XTA(QgEaA$k|u=nv$?CCG|0<4U=(Z&%b%)aW5<7rvSUX!9&10o z!qEwFG{dm#FY~>$vRjK;-m*c`B~xfG*xi+k{N+~xDSDa_Q)b3rWY{}#=&v^<_3vez zu{3xBoTB}%=}MWcrXQqL9-VBBsAlt#Dv<)K-u%U1FO1$b;NoGgU;gjGf-YtnUMd=~ zzpQ$smzqWrR#vmU4z?zBroTMJ=3{I>L1J=0sG4yD(P>XLNFEavw0o_erT1o}8x8fhiEj{is1jM4Y&e;ZjU_IN zYzepDfC;3m=BNF&aEfv!U&o{ zY_C$F)|J*Z9zHd5hf+O0O64$X!L+(U*2dfvuzT)q*%e`(KA^`)`XaXM9&PA(9dI!XC!SsV%o|Yb4*h6j#mR~KV2>+QV>8ir|ElAZ=RsF~MRu=zRsmGe;Ku%>`pMrf zwc8&!VLt{}XMZrgBKs1oGL!k^v4CbcwOU#1U!Jc1*K-CzPNvM+)2HT@deRR6hcjd55#C0eJ)CF0MeN;Pkvv#!CY5|3c(R(@T_g zm_I=s{gM6%Sn{XG8ZLt_l9b4SJkrf-KJPL>iH)M6;U)|zii`=NirXPodaM-Z(7r5B zUawMF#d4*oVBl7i$~!)ccd4c05&twWCl`=QNA)hi+oLv?W)$vO_^4tpw8Z1* zn2)2S1mG%&z7YoDk(f=yf!XjF0`g;7R(1C=#zjYj>oEnmNz!6t}k6i zxS7d-KyAK1fT$Rft2&tIyl*KPGBjM`dimGTKp_Jqf_Z?NKk+eqPxm*HaC@_Dn*ukP zYgO1NjoPH*{1BVTq0IZQg_>fdxx>7`kSX(~) zdFUANC2BDSeC2@WQyk#fCZ^T<7)>%O#Z-?ydq=Fq+N`bT_h1}=%P9tA9LD{>-8U`d`V(cN%Rl&&H8!%!l%)9AJR3B=h1+O$06H7BG_lp`cD%1~>F(-oq_z}zf zpwb)gpYLF?eB;TF{m3Q+oabw*Y1hrU-h?%H{Z zm{+))K=1HJ!Ult%(uxKQeOAhX!u7+^B2rNBG#|O(tWipz8lLmS9ug_+%jsignJdH%GHsdFNv0M1zIQboC@ZcqX1weQ$em*jy(WQ1mjIH z*Yrr($r5gy&z?cb<+vS9(*FT`9PSgPmV(n9YFW*_OhM%U@9yexp+idG zS>N3sN;B=i5>QX0!ez^(N{1_4{(yOOLwDhi7YYV!?r}7f2)HO#GKf5ftZrDLj=)45}xl{6C zXW?vwCB9?G-6=6%=@p!7tgU=LN^b?vYig7b(UY>~73?3+Xlb05_%iRa=xW^1FM>n+ z5Z~g;wtMTG`!DFWa41Hx2Q&j)&W2I~>yQOM5WXyuUR6)i3w}2XPiGK&#pPJP293AZI%hE)-z2i~K=J%A^fkEMcaFkc&4+3S)F3xHo z*s>9rEkrl-Xd}xY1|H`zcz9tPJh4rN>ykH5qK=_A?|hLyKa#Y+T|(isW;LbEc)ow? zcA)LO-Vf(6P_JdV>SN`L9+~|=XE^m%dimpOlSZEE6nfD+_y={2A^l7(KTg?qF%1)b zB!k&MZ+?&X#Q(EwSGpTr`#}K!kP-iXlx+rv|0&xwS~hVT?TFvKeSt0k*L1sSEj?Fc zoEu@ATdi&qS|}2cARIVAT7|UBiRH+YUM_vT|6oWppKH7C*d%sSC>=TK{=tOh`uxNX z8&x@0$#V7Kz}wMxhC@~d-^Ke}mwYalmzk&0oQ;>^NA+z4tw5*$wx$z>VFIFthcyZ%) zn&Va0z%BasJ%-4&EHL4%3XEF9v3V7-(HdFg`_ezUZhy=zV0zOqFBP6I24N#c?L-hH zcBtC^-S-e`(kR1DsB+(Ks*O&GNd}UKW2r0&XyHXXvRuk#ELKF|u<{^VIgiR)uEt-Y z%A%Fkh$Kiw%M7je%%G-lK|8nM%|wx8E*|obr;S;I2?vN~15mY^AK3C|!(W}}N?8rS zDOR$(>(S8CD70sIF`%r00?&w;8a~u42JRCpqfQxuRM|$(ZDj^LwN>S5&v_vT-Lc&E z`sWqV)k|O+1@GI$zF+f-enrN|vo8DT)t9CJC~egy+%VQ7s(ra^&SHBJC|Y(@9E}du z>5e&7zv1rSz&I6~-hDyqD;W~ijJl0i$O4LInj1NODN>DFC}>Wey-7ixjab{y9SOBh z#8^?$noav4j^#fV4`4(OfG1d_x1FexuJQy5GN*x?_8JKfBG4HM%55&)pu`=EgvlW= zq!719W9(cUWyq+$6R~rH2sN9fU zmFXV+0;*8dHV)k`3-gyhs-vCU@g>dZJFVqIPG^KkGZe`#6r+1o`;I#41NIikNZv|N ztAWYE+Vy#6s1C=4G#x2hTwkr{4;`wqVG@-wmUIPvWH-H8SP5nSEOMLnP663XF1+NCc zg5K~1sT%t_Y4X|biRh&9m>l3k1rg4m7P9%-uA0SJNf4Y~F+T!8ZIzke70y2PZhh>M zZ`5t~kw?O^RgGk_0(_!BuI2&Wd>Tr;l^hhx6ShV|;G@W8PM{2S1`%AqTC#0;Hi7=- z5G>AiHD-rAiA(~mGf$bfB2nK zb1GG`6k#NlSs321C9Ya_4uJ9C-V%m@4&XO1zz?9M(9?JwnS00!j{>Z$g}D;EYET;s z#}>TWkYCB(#&bP_Cu!~N;892?8E%<~>0U=>eOqu#2WGg)1bzc0I7+jJl4p^7Q1~bR43$wghfin%k?HurLF&W zF@~dwwXAV1FP2Ao@na^I_>G3HG$=1nh&A9_i4Pc-vpWbZx;Y?{W{z5kFs->_sF?@zX%tSV8FJSBd#?IlR!pSZyDtWlK}Km_*}7fWuHBz65HmTs(~p_iJms+L{9 zl^Pl0Dx${za}QLna&G2?c88i-$u9;QJh_Wk9t4L2u#Uf4Y#wWknJ>1dZyENY3xI3* zgO&grk!CK%JF+<v(=&tCu_f-WlBnLvM++-s(pNFV6-t8^G4C1X`+ zxA33jaWyvd)Rsh#w&8!uKbwI@?*Y)Kcxh6_F<;;JNhEx&*^&iOREsG0b>dRD+13Za#bq@&>-RZiOH5olcnkZcy(o}BYv?Y~yrJo7 zg1pk^T)uNWJ9w9q>I_XhxtGYbCocjoy{Z-LD(44_Ctls9Re=3fs+~(6lE`ot*#mBk zIFW6JB#y$pVNRZDeWFb8J}Xs{C`vvkJY!*rq0F_v#FbB$uErM3MhadVA_@J}EV1Bv zRf>CQT;$XJ;m%jKeQ}fbq_K-L7hl#+qeWuK@j<)B30@eo(w9?7-NH{T)<=-11e{!+=_-sI7AO%?A+ z%qrr8s_80(#~IjwP0pIQ>t>w6ZaZFLE*oPeXK`|5Xv+2S;&GF5Die1K!H5~Q=RkS- zihvQ0JL-)&?7~2KtRW@%)~QLHz>&}%W-=2=Rh18(p~+EpCLHmocqZ<0E4BqMreW#j zuFU=+F&|P`Gm0T>XL&C8`{KbGZwV(@K-o^f|IgxW^j8kk0<^zA9Jh^Z;8ejo(z*IG zpn)@HVJo<=;-b^{Rx|jWQfJK3Z0Cf21XEKP&wjFtp0oDfXB81F&*xBPj+w@tSHaeI zZghHB#d7smdKBmtea9+!=36RZXJkh0dq6#wW|E`Gl2VCkIbtiA*|W|YHIiLnruNUw znTW?6mpL*MYYYG??{V;RGTbSajTy??yk!6iN0X`c2)J-dQGR# zF+$+0s=@Wh8NpNt$TA|1bJiYyXq3L@7fC?v965W^S=GeFK-I?GmBDA5eM~TWcL#JM zJ)1C!cgA*f*yBe8KmVIokh=WO_HF`CnV+rw_zB-@h2mk##*=c;hj=8nhYkHjqYujY zRpA#TL{C4%7Yr~l$?g8W-+uzxhD*+;G(Z4=XQ2Nc$TD*L?;%-=QbX(p1I*R~YH%t| zifWN?*77}U8_KxaCLRY8GGqd2-pK02PFmzmt!*0}*w^FZ>udS(*)n*#{WPCwPtC7R zWWRah(_M9&I@g5VMw#mZhY^;t@$w)d>`qGNNk?X%iUm)VXWK@F_FlLv@GQrrHDx=A zJm7{;QK}K3S23K?N)cMpn1=*0Bm*Uq*u2qmYIZBfZ*$4r1ElxkVHZKu8IWZw<)T)V zM&hgIQxe+0s95g~_;w}I?gT0{KYxd<^n^#_Zqaf`K0Slse9=;`{!4^4 z_I-<)a;RVBBNw03zwR35_%BOdCNqp{-08EXa+zUIV~CuKqwi<9S9M?Dhc#&KGG|0l z0Q9nYBqb;$Zi5Nz6Noe?$0K-nJim%OVSdBCkuadP>y;6nmgCj<1XW#U4mf!;y@U981w7#*}j8-Hn{}{po@~GXIShkC02dOGVi$ zp!-a;Xj<4KSiTHY3s?|ST=j-zGb@pUV=!Zq6|NfV zX%*BgIipRif*AWQ2r%_B&JG)e(KZhe8t`JCcT#}?77zEp8xXKOI0FHL+nD~{7vNQ^ z`3285*dyXxFG#olSm`krP@hIvOpix$5@L$z~qW?kFK(xmvp~8!t;Q zd{jRqZ4j_2Ifp!G6B0Kb)@(s;yc;<3K$PbPFx6DgG$5TBoZt4hP^$TrQ%e>VOr@$J zRNRm{WCc^y@>1P5WrXt|e6)clEN`#Sb<2=lY=|&0vRfTujD|{G9j~O@Ha#S0 z99)|kZq1wsMWWC077-(o3ZPKQtbTSKq<@KbtQNPQcznCFwnr9T zmMqB`Iy`o-23tY8(*NEd^PAr2RW;7TB2VT<9+tE!GG>y`G%pq)} zZ?UB;BA6kO*5+4K(jke`w>Y77BP7|nmtzu#(U8`>1Avh(!seJB{(!t}foy`*;4Ke8 zq5q`gT?xkh3=$KjF9s z)U4%7e{jnL)Xbk>6l8zm{G4`e-mFr8-)XQ|l&SYS5iUy)+N%+!@9VX#OkPUT1euH* zQwS%t8Ai=bs4H`O)DHSm*+OVoo0W=Du|)W!==nolmp5??`MGSHQKVZ5*5PHRPao7> zL|+-R^2X%d`AT6Z^o7#@3WWCRsac}+PF@qg|0<~u`nWCq6$ZHVdZeZE1^u7t0R+c= zit;!2yMp}p>4A}r@qdVn9OVJWECz(04{F!sAbM1gOBM&H!+7Hji?SJB;;5E63=*oE ztJj+@rdHu~y?N-S%Wj|U7gtI=y-qaO(;$b|>^~DvD6^L8*j;pG+FBD`XTq$MSVkDa zHWZ@5i#ug!zJ2n~O~Y?4nY3t8kEBK-tbi0)DlRnbB*L_6c~Q<3p?|`P`zzt38<^W~ za>xPKHHD;0RQE1%qX-3kB$qy%Hc)fWW2Gho&;_9mV ztL>j=hF+krwDB{_NBP9I$gs1xJq77wufM0{pWsG7^|^ETck)DL_H<@;RSww;jod`B z?v_SK>gcM-KEn=w>KV|N;EQY81mJRY{_XMve(*E3AHgi1@$9?%=KQ<959!V_bIS0k zUI7o9c&fS16W+n{{CgZlvVFg_u@!bo9ZCwT-*Z#X7O7xsq=x17Zbe+jCi=9B)w7r5 zMWduDI`B=DgB48PVvV>7CC9JfpYm|)^h!dmTkOMQqG!+QdoSCx$CAtHR(NW8kNuxp zj@Kl$y6d<9QW5^Y-*Qas|BpLUH?-SeL-@+o7d#zG%unqh18pTsjjHbVC)`kQ7F9IB z0F&a<7NJlgrsV!^-05{oKBSOSA=vOQH8j7!-rDMNd%WNBsToPlR$n$Lt2^1rg<=Y! zO<6N3v(YHq$?Mh5p{epW=CJfmRUu?ij~cOU%etXES++r|+v)Y`YCmC~I2Q>w6>U5O zO%(){t=c#$)OOBd1*MFxrj%}tbd7N#L=0gKkQqX;uX-xr@tC5CbK3Ift&G z1fDiwY#oVLdaqL5pz+vQljOg`#?pj!#z%v>(?Usc&J{u%x`3f=VfqCSf06K?GrdJY zWB}RTt3qBP%5iGO$d9|Bf$2N9$6>$LaJe`2VJNkaTQ{SGq~m0WHBz{Rl+sGp;ksP3 z@mp0gNRzd_(i#C#XhT%(WIZz~J0+pD*=^zhN1iH(cg}Z}@w2G{2Ras8IC80)T0E!H zpy#nTxT6Np>RU;3dMA+lZ*WW|{>=roXGi4uzS)y*$9Yc=kNusH`E%Q6KiM@YPOh33fH^T9bPT3Si8p01Ll3C}_1R?vog<#j{=?{b#0sj?Y<-naU`cAJ# zPCj)!{^B-qo`k9~&W%VV6kuF-C{m zK~o{Jj&O(+DLj@+FS0`addzn_g?m8@RTeMC@G`B_ygUsQBNmqbJh=^8L(RjSM+_JMVY zGhL|y%op>c`74d&@?puWBFy;>VFPR}aZl9Zheu;vQoG5+VGWNV+b^e^p3xIrP$d)0 zT;~(Bawp#K3&kerdc&dkls*1eh%^CyoU=d8b@X5&e=VIm>1+86Ve+ARKfhN2VrTU) zG4+(%d213RLv}`UUOlgxKXaztaW&`if^ru8Ahk(9SD4P5)3=CiP3Adw&>qV8(xeE7 z)7?ROS63u~Nhk*+RMLh^h9LJEj|4!Fl?9oMTjE*+TE$9`5d1soUpT3Ojc}DhGf~8g zCDO1PS?IGqvjGnkTjt~_LYBkXR@TBMFiTY8xQF3V&Jx)w)|h4spt4{-4dUcz%K7DBKBl^4oQws9ij;N4P6}uArYv8bmU1T zHSoYLvQvfArPvqTgyR*7+NL=-3b)QJ*yL8pV9lvwHFHwT0c1Jer1t;z@LvPX@WPBT_kBkucJL&;_`Zg?qs7EuFe^;sGsH!{AI zO5{Uyzn8thD)2Mp)~^^eE4bL_%6=c=L&!h(7}}dtGv;S(h1J_aWvi`0Kfv#e_sSx*#8%I zTxr?--y-mRt?w`!MoMXICHa3SJEtzqqGn6KiAvkHZQHhO+qP}nwq0r4ww;x(%skb7 zdW;@lU-j8nYp*{LE9Q)6Mt7|&ExL8OpWRHeB&9POQ89-1DO|>88C4WW=M1wO$pw&^1UTW&y$xI z{@K5Vn$^Qv2>O9_m{J)__IUd#3M|OnSb?HQAiGl_mk5bWm}|1QaTTZpsve#6!z~rX z#)Ze6-Q#5B^2tzi!+<22b2!M-C@bfLI8@}4;9$whRY~TOG*1L5t_0_`1{g{!zQro@ z8P407QnY@YCX56?Z(fE;z)@y3GO*aNoO%3?@`n`TI~Jk2CI!SRN&4)y zo-+!xr07@jmpl9)jC$U}@$yP;B3nJy$L+=CX`Tkbq z=YbP;V%F>8XEK&R{gu0x%F#o_s|G4?u|0Eg ziX2w$3K|#-a@|dv=+MQESw=q3M}cnneUnR@QefK3Kd8gFK*4YbumA5F?H!Y}2tH0W5i zGifL!y9;AkPkp1dx9yw`R(Cn;mNV;mUllx$`GU7V{r!yRduoqpKF@Aq$wfNOY_2rk z4oLytedqXA8?3Mk#(9Ksnctw#<()VAZ20WzJ^pSAR<+9^{F{2xKDJo8J;3` zyQ*!rQZg8q9FQ@m+UN%962x;dg$+2iun-<>v=hrIZGCVMh_3NSD(D!6LNYbMC^05- zx~Wj()}@q1&Sr-#{1DDqCo0Ve3`1T~WdKbg8hc8uqk;OzYb~+g9ep?uX*(z`rI2AR z-h`r>t%k=K%?9UT!WQgd)Gz)}VevXVP+|NKPhBdkbpG{e-IXU)Q|Z*d;;~ynhn7k( zT^VA~Y!D7mo>Rd-TEAYtbnWb9EIUZcyQ9fquV8KS=Of!9@|u0n-v(`gy3&!|BMa^B z)9MbX=Wfy$(_e0xMmz0NtsdVCV6|E|E^6rJobFY7z8xLi7PIWtvC$TbtEUrJF8fE? zx-hh1LTJ5LI$!;G>JRP?Ugk>pLgLZ;b#c0*iHa%8Tz0-vcgrfeH}kB>Wu$i8LymKW zk|M7ZMc5U$a9G!;EJy5%Go9JWCC5Nve|3pbbBcQFn=l-f^@ANT-z(3`2fGVdWl?^z z^&6)ym?yPi!rWfGu>hriNPE-e-dL`Tups*jp%mp1ehOW`RL<_OZ&8xL#x0AOtYkl^1_PBi77GHlx3bf~LhXQER~BE;gC8+?i$2$@bU&@|||>{LQu8g8TWC_Wsp7z`FL_rm1lD9JX;k4B0fr z-b<^y&YP~PXfJVs-apA>T9+zo(@uY>-S9HgK3RQteHX0^;j>HjS{Yfy5nsgE(pYDeQ(KQ?X;!kEV^6fs>@Pz-LMXUeN>}la&qdfRO7}jI`KVs>L z=8gOo2gc8C|KQ_1s+=syP7AjN5(|ceMGb+X+%>}G_ONYDnVT6mEbmP`KesPo>2Jxg zExEDq)i=+-J%9i9tk*UBb4LweI16I9UUARda1AV*0~La_=Z*J0oBQrna~7)DM5RKZ zhbfJEx8;^uGW%|s_!!(>-`;MvXMuaM0&)lzzkT4DJnvLbbmnIO?AQV^z>2Q#9 zMq{KQe8fo07DFi^P0qnQWPEH)e^>y8B1kBjgW`y8shRV$Q;TGpZ{9+qbUZnejaZCk#u|ZFAjduUxTVCRDUmu5UNNw>v;sC+q$N>f zv}mjI6{rh0Lk5r}F2*r~ly4lFy z54^*1*rPgWGNvDIl93*m ziPfYYxx&mw7iKW42wbky5Q1EsF?wN^Pzji_99WbmY-c2En>A68+|5k1I|70H@tZ!! zEw(?w?r1Z2ubPowd+n-HHjCFM^i!L-D>UB%oFf3c?o4i0>DsxS@A~xoYSIN{%kn;@ zUs`Av2&dol%}#3&7xr6fmYHN*|EQhMmmz-j=D-}SQt?auvLJ@aY{NtEFhg&4K4OJxJVth%eo6cT?Z*ADkWA-3Rp?RgR(rn}-3BM# zWoNg{R>mI8fzI<1G9A;@I!rNisa2g+2_fQ81+1<$xu!$ZCxE_FEVw&-sR6ohpGNAo zI8jt@!%wq!o<6SD8OQRF_q?axgeN2bBOC)j=ge?KG%JezKwgoclwge?L`u0j9AH5g znEI58&r-3RiR%{+scVQ^)gw8u99WPENSMH-f#(Cm#b6S`hv5Mb2*h-e`63bG$O#bJ z@nQT&H}}_5>CJAew&3aH<+;ekqsYZgvm0l{FC$m4 zym~mOYvUhhr(M;2{969@+THB^L)}@0HE?efUOu= zIR3YexT9lhkIjzs?>#R_A!e*k%Gsv;=TZainuRuoW0nxkNgY&F;6@2azFXRLqP1q~ zqP{xCu}T17e)Chzt&pVyQKQiUSH|*$BJ?g zyhxyijScE0p){|-S82alnN|I#y8%?3HM42)g)P;iL z86qSvBG7x2fUs;Viygycm6%E5k2f@kmMp#_9q^L|k~)4ghMZH zAzt_+mp`_7qd)18pg2rw)=L5aM+?5fD)r9`Je=2(9>pLH!=u)p{fH9@uckgT`pH^yFw@;|l>|K3@RuQc zUsB_34$jL4^#{Zv2gk-HmzrYk`V-tl*ULwP^P?frx+QIgAwRxQ9i?E5F zj6X&;x>|&dK)%1(mtTJ0Rxy41Hd*{@Ky&hurY$wUyPVt*0vj~A(ZnEPE9&XURduy{ zIL*jcHjkjUQpl6@{faAUw}+@PNAs|=iz?AJ51b|!;?B%^5r zsABu!3Ps9)zr`rUZOGfFfih0$K7|~ae(bZGfws))sp$Ke5G@<6js<;7{F~hN>bHEq zS^E~nN`u05eLY^kTeFS${e?a_D!{k@T2j6}w0pzzz*|pk<6UX!Y3pK@HWAdR&4zX=!LB+^BorY7&2TA7pYNPL&4#DU~sl|jBx?;r} zI(j8y_zlepyScC!NVYa%0&Hd`SCD&D3a^sX zd`lP~^Z*ACZG4JFYeO+caUxV0Jch>ZgRDHmoBJ#JyMRZ-23%II_8|v#og_Py6T&GW zMDu=OKx2ou9oc%nP*UmH%~z}fo8-nCB*U-RfYzps^A+SECN*KZm=~cFbQMo?=~^

    TL?@{wfd}7VQ3A<>P z@Qgc15}@I<1ZpF7|LesZ)gw?NsU}(6q7viDP`J*9MR6v=6jV#2;F>NAV5qFLgcCmG zbtq<4BOxUbhQ7bT>4PJ=a2wK7qH|IeNC`9w(6L29RO$9KS6yDwxG&5Qdlr$IqSX+^ zZ_7Net=rg7hCH=OPvZ$F+X1R{kN(&lDi;oDS>w>u2PL+#%?-k`N;D!mzfx3nnME>1 zIJA!#SVIj%=rTG6L>CApwI;CJz<~!>D+N5dYSXi(CqiQ|n@18X*=i6<6A%Mm6~p)~ znE!y9z?@bzOj6l#h{W)?)opu~ETgmzqnST19Fb-~5WCL?E_(kChQyzg$Qq$@`WJ5> zfi2@aYRVI>GtNu&Co&PEXH_DuIYp0u1qD|#tsr@UjpuL~VZlTRZ;2F2Se=YIvCTRN zFN1USYPv+_elf&O3`Ya{Q(NF*f)r;LF45}|OE(v+116(q;9<&OtMGzppH6Q@u)X-{ zn3c2dQ;C-vaYW>B!V+mwc$Qv`w>=G=X5JU>7TV@6^2UzSsbf`x1o&wT;d;m%nlIAH zg#V{%T0HOelU|xqhSYb%t3kJZ-0*&dLK;~2^x8cU2MxJOUwhSqp;q>-vPbBFwO1o4 zJUJD$2iaTm91U=W^zD@n3Y8O0-K-2bP{|J-U(A|8TH%XQNNb9xmd|AG_cp;A~?SeW`Mn(%gSdI zvP00dOW(9hUA238UXw3q9(Ez4_+&4!As`71Vs8G#=C0p386NO?oY7z)wRH`Avuhyv z2pWeIqZC-O-DuRonsonM<#3UA8lZe|Ib5NlLUr5REILGIYE%u*ppukc zyqY=|lJ`1{+-^;!H-~oUsNhX8?p4wbTu(2T&Gss-TV{$B!HStjpJS^7TkOPBC9x~k zq)523Q~WvAyv-n$*JKFJCt@`H2goH90~amGP*(y=dApTxZ3sCgY=_l426a8J#6**9 zHCUkO)J|v~V!S&Ls;u!D7bOjQ+D$ev+F`AVc7TaEfmY38eqcLJtq>$zl`S(Pj3l8X zv&x3Y(kbz{{K=|}Ond`prB02)KRA^5mn#H#KW@0u?*jECRH0 zUak=c#VAmfT|MDeYova-zU&36=nL;T;U|9armCw>x?b1H zw;HZnD6!hnbqWuXetujX+mKZayu}RSuEFp00L827sOF@{z~9rBwHQsQ zCs$`}QL*3$)ou<*vF~-yze^`G(+sCd1x&xh2qwR{gO?mic~JIyP+QqUvkNsscr_K# zqFnV#b~aAE)K53ik$xXm=Hx;TuY%lHVhKC!3$JAI_xbsMZ@pJ9!JpmHRkQAki$qbr zK|zELGXD<^{s-sq7z6G;Qt*f@eS_E zCw*~BDcYi#;`czJWz>yI9@m%0W^>29_B^7{jM0JX?X1>fB{MQ;Eb0>{Xv1cjL+!0v z_J!&S;w#XqDY5}1(>61HJlyr7g)NCb{Et#*brEKW&ldJ6t>p=TT7{q9tHMZ@l7L_o z34bdkIDRP;h}>_NNV2#}8#S6qyE(y}ST0$;I#vgE!3A_23I+WPIgw;yF0Sr$JuGa6 zkq)FVlER`)59rCc(;6?+ycV~nAV2B;ISLAonKMgxcrXE?DU;0xU@@5{Vr1eG+%$;e zF^>-7>E-Qh5{atgwxM1E$<=KO=in!ad%b*+_Iphj`pRacm>#z?#a4Z&lPM#fmaEv0 zc=^4m)ks_6w@n=KygsVYL&@#m$&`p~?yrgAsk~0Cuq#=Ci979*SkP=w5=47Q;V7D> zZ{AYn;aB?Pm(`@YLrt%=xvev=`KQvj|FXWWUc456Yudbr4hDZKAA7mt9V&IJ?%q|O zm-@L`7|x{z4z2@<{)&L-=1zYZ`lkED{`Q`Dxz7*Y*{MYm=M0@f3N`PRUBi^aWJMTq zKizUAuam7dbsl$9TnISO>{)(oM&zE+bSg^9leZ68 zE5tCag(XT8&OaX?p(t83XoUi9sMyZi0VTB^6KQ4NfW)93KV7CuHKro4X_ME_+kN=L zYpd<5Gz&~C&DjS7z~~CF7a(8UEzfKta0oL71*DE}Zv}jQoE7R}vgfb(5g!fK z#UrpdqbVmIWIe75r;mcfHr1T{k?TIP^klVLc$ZH?fjcKZd@Y zv;R2PAHoCn9(b@f~i(`f15NuYhYN#XKTbnzU z6>XX)o_EfOfZoz(Ca?G4Cv@q6I=yXKH+VeIvgT1<`zGRJvxN47*%emPdxg)be{9YT zolVivUWGh;mA;|-ETHv{;$IG6zwds@wS9yCr<&M1=zMwv4FKp+{Qp~EOq~C1fwlf$ zhR7jMI{J;Y8CxwocG_tq2m~k1~OD%S;^!6^Utm{ki`gv#?YV`;=`urqZLaKc zzDVI=*=~y*ceypWRZj?_+O<<1>zz1__REA;r7CN3HhZc~qAusq7-^O)%J|u>__2B( zolNuLU}H+UK915#j7TTmF&UR?H+t&LH>o_gGBoMP)^MjS-j;;O!7&Z0J6n?*nIDsV z59j0w4OG;#Z>ae_;$QXmpX;>gTpdz8GBw|`#Hd;mA1s>|zU(Yj)qaRqX~-UHU0q>9 z3e1}&Sh@0g^C_e11dZeE#N`d0dr{v^<5{QgOz)@1Znlv*L;Rhdq^i!HEG$kxb%B%g z)|}0&B~#dj)|cIFbb0Wh+Wmff9gEkG#Q#Jd#`Yhie#nc@h+==hRDST|I9~31nozaT z|KsA0hdsk4#r&Wa&vtW3*hR#2rfzONb(-cjN3L#f4P>b15g#3lqN%u_7?^gbk433% zUoNz!bPkIrZHS2EvmQD}vvvxdoCw`Ow1=r%y{Cb$DA^>xF**Ayj)vvJ{y7D%rgS(m z3*OH9xij@XRu*FP?C)>1lVPZnaxrsO=xT+p?BcbI-XZdoQoab%1i{@jU&5^Wqvr4O z@?`2QlW?!j0(+fOR;I<)QS0KUS;bbK6bj(;OOvyO&NqSC-KyS}qE-d9^RNUEw{GK) z0IKdV+!R_(N|q9ALu!p9+bKljwr+W3#3spx?h=Xz?dYgnvN(=wmAYEA)zQkS@&xq*B$M$??V8!EF{#R%3(3gMa>RcjM% zZS+Md5X;XRn~f|+y&lNj?C5wCydXCLzDO)ZwH#@LqBd8d!a}$17H4o;4ko9DQS@`U z)%GeDx2UB^VhXa}V`O^Q+pC@+so*Z}STE2z5B5T$&g{~Y{AH-pOJZp@kT&0eU_TS1 zupx((?IM`VHmzXa=@D;PIcgG-Y!$79%Y*3q(Tw|!C%W#5@ZvsC#J-E2yCI3V8o48p z3kV2G9x3Z!vD7Mp0bp{rqICphLkfNhlu5d+wAl}A&tPFxF= z1chCI5RIeYCG2V@Te(teoDeuFQxFk3HA7YBn|3ZU7it!94yeS%%%Hn;>rN-~e(f`3 zaE7`gv$fV)G78pskE_66#WwxjJ(s4~!h*;Duvo)$xNZ%3@Ac zt35lez^>9@@J7YlXIIS3n79%r-NOmqyqN_sZ+~E`c!N6*`nwon7DAud;jZO(Rypx! zTWxz=oOKjT%)u{e!A#-3#Whe&xKRc9Q@bx&EI6Q2SBl^eI@Wa^pdNPAE@-|C`9iTg z#jA_IYlK*xqPq#?kd_FM#q|<&h7N%$l=CeGmuc1vB({m2HfBs7D&BuvGVnU2F;Z)% z94kGSj3>HI$PC@PXd`_I?v4o|F|8qOQ`ppSAim-I4wBf6<;v0K-+SO`4pz$U)Else ze_66L%#&b<_hur-r#BuEVG9#>da7H=F<^X3E1NmQ=uw<9Y~< zNgO@ObKdZRTW`iP98;gxw&~6}MfNQxCJFSMFXR%72z_IS`>1zGtJ3ssbxrkYRA9MY z7&etlHT-K}t+-%dcQWo9rB4Q8k}j~{lIAp7<4}1nT$`u02mOFo4w0jEhu^;uDtWFl zh)j@6cX&&tKzc2u#cFG77%w=W-oYRnuOe6X86r+HLm&HH2@`(O$359Y-iC9MnU~}J zn)b^=_H4Af_C}mOpHR6CCuQ}7zd)c~ho zYYtod`Fl_5QC5C3&r+_NGn(^K$X#y5nEz1)%(0NM%GE!Wpn7Dmrq4idM~S$y#(WaY zwpMhMlyfeZVQ4y^%G?a%uc0?tV~0%_i}KhzvP>SGtQ+MD6K**h>Ww0UOdD(^kW^aeNNFk>sMm4AQ zB~T-^pVqRvVufhbjHz845$#IEx?o~1OR`nFF))nRM4O0k5Q;YRti9;!bCIjZ3r%cTIY9Cr1?l`pm^^cHPK zA()s3t9G)B>vR*aJ)2Py+@_mzGH~rc@*RQzsSQ= ziX;9gzyqPSAPFjt0XYk>&0qIMW%8b&e^{q%NHzo5f>uR!iCdPR*LmL{85|p zFX&e@^bf(L%z{ZWR?_$f(iie^F->9-wG^_tKFY^`=ZD0p9<@r!>k7vyvV7qHcTL;w zrQ^E~^cj=OP#lM~gSez(>w+z^3g(}EGrQDpk@v(i(4rc!w{(>6 zV!HYPlYaMeg-wj_kh{ADCchl)BT}&X2vUU46yMI5;V^^-XBlfM2H{szK!L(KqcHobF znaZ&ner7+dg1&Hxjl4(3Srn@wgUF}vZ*kewF;KO!_A351#@j)8X-yRDZ^|(w6H8Wf z3kU6rUN0*cmY>VlJ|-kK_59<8Tj>iYY9(xM@!RAgZI|5QRS6($)3pi&o3=XBx+nTD zMaWrz0P~t}BBvPAyJRQ9v)^%1owDWWSo5uJ#QG86v|1(uENmx&?mf=C zF;g>DC;j0pa$EFw@PcX8=6zJS0eNwE^{3N9{4P74SNoYklUNJv6rIcNhv}Z2SeQc5 zy|tp{2EX%@w%LIygID#%;l#)iIy${MeO@kqcCNp^O}x}>KF?gXd>duzr^~~mk=$MF z*TL*-kKVnvUWtyd{Fa%TnHlv=P5zTzzbz{Yl`9|Ho#+qO+899ujqg~{y*fgRjtQ=> zE{c^u>d%i%1T#-r`r3WSaxd2>{eLzKhGThAK=c5>-+zJjH~;`Z+EB$*Ltoj@&RN;i z$kw(h?LDQE)Bf z&0e@TTdzGhD}E6>e~;tLF9{{OqGsL2Iv@ENDwg_nw%aJxmfrDa8v8U7M`ue>gYO)wPZVhZw8c&x3j&|SW)TEL=s|NZ&o zkMrX1tTn4Db!tN40eLPbx1CGlNT2>wzj!UX=zi6LLjg-l34cVjI?zo&^Rt}tP4AwQ z$_Tz0&mMp}kCrfaN5A#(qc1n7?;dMnsyW+~W6J4yXS0XpHilsX?~=xx)9ACt3q}P+ z6ZoqE2E7glf&ygcUZ4M^+WU6vwNWoA^UCelOCw{hxbhyY+w}*2H=6;1qMg}@}V3A9N@#yaUJY~ z*TRhNw@rbi7GSjmVj2)?K*0qd?*n%L%~YW9M&^m$6{7izE1GR7N`qjXyxFy?(ZPV+q$!uQ;zdFwi^GKT%6 znfHCt+P|c&^mXv`DD; z5ME@dK_uqR7jBx7tes-ajURDbZu9j_P!qE#Vc~K^g~u*YzCjTg*!?^b2BAF!hXAo+ zArqFAH}QI)Zfq5`H33t}Qvv}Z#AVy?B%d;9rD|7V-3CjE%}bU@p;dCqykb0&06keK zjUKL~0Q|75l>n1Hcv36*FYD3Gm4-Wsb6nN^X(2dXtOLg>Gn_X`(ns?M5^LG?oJ3Q3 z^bqQ@7{c3|kPh3$IxxlRf+GSIqi_7XgtRjWuu7gaU=w=*&7`W{fPD;V#8Bcvh>hr4 zYn%kGw22|>9HHtf7%m@DscSlQQDNy?q}RVS&jbmoOT{K#46s}a=7{WyIvJ@zShdas zZPP}RVlEbPq-Hrz?bSO&`^W`UFoL<%1H;5yf0)HGm87?RV>NPF<7!e!&^3b)(ibN!#BB!2F`F5Lv~0fDq1)Y(OJ0?G3n7t9ZQ3&BVM& zpLoyYZM<^uZQ|=L!srjHp~9QzSghS2Dcn#Bfqfj&e^W`JG~yX2Q0$EoY2MA<4R zQ|PXm;EqGRB!64K2r3}zi^$mNF0n~N{kXe1H22-z$%Zia%WugH9UAEqgsq6g!+=AP zLZL#jM1i7&P(&$MC|W4m8h|Qz(J_pPn|)nE#^wnkov;eDM?tZ0W82`FKrohXRD>6M zNZvk_m5f0R9PeTVr|E$Hwcu?DBIW42RZUH*^3Ub4TLJP=GW5SOHeyTrT!qM$bN65g z{sOa0M(>&Qt&51CFpt13V^kC(bsYRU)`+@PywO+%Q#^L4tu4g)rMOlw7$AVj+D7d; z6on@t#KCsnjk(!wD&%rI$E6k^@J5COw9Qj``VO6IHhtKcY%?#AJH?k=K_f`&MhAJ5 z8Dv1-mg0IH%B&+xEi7a2Re|SN%p#`7RJ9o2P>s{ZQk2)t!5Zvr6G9>f+p#Xdlqxn{ zovJDwl#omQ#bO`Aa*IwEI@)_C)#nm}_h=BV8) zH}9Pz)_PaICdCqZBX%TGzS`(*Ys*DY5fka)hZt_#Tn*H!HbS!LTzA9O-f!LJzC~KJ z8$-SctJV>h{wE-nZpsa&^(%8~lR!U$IxA?P8bByxItK)ebg_8_@V;yc!b+WfHGVFf zUmR_>wb}cYf*FWW9rAFy);f(1m913u4D<)9a2O>7LcA$eTebdG3U?7?AdT=Hj3(lB zlb6@DH4@@>r2sJbq^Y$wZ1`)NcoyIwsZf}o8n^(a=;4-+Xs6Gs1xVv&6pS_}NKCL` znQtl@1#T>ZAxT2|%yt9=I2Mx*gKJSi1JwetZJz&1MN{c6-~z>F{ur&E9b9C>gg8gC zaalrAkPp)rT>E|^T3S!n-)jyo{s zz;x?$;+6PIn0L)J}0~ zg_wTjMLw7y$VG;fL8aK?`2S-%or3IIIB^T!OPRuLBH90fA&%^td1- z0YDyzyuo(HfJC&HFAk&yBZ7)Y6%;oEZzUjh5EN6%sV32B53EDkRb7X)=iuJl;7i|1kbLR1yqHR+)X5P?%ZO z#IHO@N|{8}(m}6slRiVjN{TYysk4RBGIo?lTVT0K)-+-2K@m?NIMC5dl|VDCcmWME zS%eOI+IorV0KO9DDG;K>Q$*>y#F?kV$RGQ?cMCvHgf%gm91A&T?I`Zets+(jfS^V} ztQAMB&W#meaks((D62f8@`|-kl79&=0LxAjNxA>*MOv%4)c}Ru?B5=OiPj3S9NQGs zCbpOq8%9qOQ;@*V+l>r;#4uVoGL5N!xb&aOyOv0vh!tg`Y7^yz{7aN3Z9=cZe+F>#R09kddwbSHK=En~+M~1%|1eap_VDXGri>zOW@ZP4;LVq=Y zn4uX@P|A}oKz0_A#{`l=UDj;dzF@l7Jsl$kWSuD&(bs{L4PU9kI^;CCw5{N<4$=7Z z=Oa3zDBATk=U3MLmhAf#z^YTcIImu(P?;Dv;X4O)`Ufjw5;A~Dh0I5dt_^JC7pX|n z;6u>c*IjewWxB>DZK@znvx}5+NFc9pg5eLt5#7p9C%Zzir}(gznnq(cUdoENc!ZmC zCWNETMdF!OT2Oqq4yMRm&w$D;;^FHyB&?RyIJ={(Qbqx#>N2=_Ytc9Am@ zqx52?`o3OMaCgyg$`j?vp>rk1dLHC1dRJR+Te+lg_DF@BNfuP%MCRPK8cP{g5Vjij zPavMg=sViN<%-x=p46^9g!YUIfpDcKSY6r0R1)~VL{A(fe1=4ZPb-$0OE5o?rD!yo$l7p|Q-&lMY1g}SAXGH%xb57w_A?`JDELq8mZzhhD>KMDxad}Xn+cox zV{MvSE%22T!Iu`L-At6dap;i>Q8?YXT+S2vMNU#^S~YvBufSCDsl(%V7nHvnJ5igX zU5A!xLkS1NZmT)<`f~+p5ke-7k1>I#YHqAXF2Jr?qwy_#DB+@qM1HY5T(-vfb zkEb39;PR7mKZ&T_ay){VQ?vx%M962YM_Mo_EpnTFtSw=j8ahKoJdIFl)p5Myv4?5H zFjIPcN)BrPof~pQCnV3cS)CPHT*E1r%54q%(7_i0&a@yJXnHHmuPH%$yhRoB0iKzr zX=u9lJxcr)8J36I6(1bV{0mHtp+p`eamI?Bkg*-w`;{tmQoJH01rEF34@nTUa8R*q zjp;RGZ2JScvM@n}C|i~0C(RXSM&6OB#W6xEa?=dNvwQNeHA}JS`Wmua5K1^EAuk>2 z$N?Vb1Xgtp?VTmTjL3GcjW^xLvYA1h%F$>*Z44O=mvI&sC)~;?3RWX#6%6q*d00w@ zy&j7lplbwgVQ4WSevoF1j&?{pxU2B>Qqd%+%(;IY^jzYhr^Wy%Ens(s;g7~nW}J%x z&&IrfoJrY1-M^|tK2be2_$@NYowv}AFdN>3J-r(@7p(j!jYf~dZ9ti(T{&VhQTI) zan?7MT&|5Z(f(z?Ub(CbemU{w*iO^!)VdMRA$JyQ;!Y25Q1#e`E4Sd2>ztnr_nYym zcPW&yfuzr%P=>v9p<9KYag^Z%1+IRbWhz9LMCwu9Y<$X|dFnp9~bm^tEia)Jp%8MhOhrWY1pvL{N#8SNp!`E(a3H!rtdbAN~QG5#~>_>SSwDfuHQ=Jcj47jz#OT2;}JcctNcbxIld zxTARS+&q)?vKVt5V_;rX?K05d2Awvsf)svN2W=P@LUwgKuI*7OQDO6x%odx7ALo;5 zXck)0AqKt4Fz2@{rzT^nPVth8-CCvLTZ&X4Vsw;eWao6UxiLq0+Mnm>l7R!5n3+tJ zm#JoedzuOO=f9N+L|AN}ox@1=@j9-szKE8)E7*~f5=-;yNgGj7cB;<)vkKjh1s#f-u|%Popwv6>iAD@?x0tZOYqr6_w&t5y+@#4CaFtU?M8`?X=r#zgjPG)4uI3_5!6WJ(~6CuQm?4A#0zqt3Lx zEG8_shzL>~GNwZPo%6CgFPtXdmKSk9F%YK3E87sd_M&UfTWdw|)m1~L-jmC%c!@cG zYI|xFj66=z{qo2rs7xu^R)UX)A69RHY;|IIF@7}0-g+!8Bx>#3t!?Spc_M^QtD}}$ z?WBo{CQzqa_JK`h2cV55(QN?sK!I(rxOqz%j6|QINh1SoBi6-eBHZ&8UWJSy$D}P+ zCn_ABcY?j#o}=9A+_fX($$lYH+p^b2i_YpU_%exeDmNz+sI)6t>SM(c<2ayyjBNdd zpa9l=X(HKN^W3T+HLT z>dTxzPrdLaLzNgCk>xqmLf_t}4H!nRDnoj-L#S!R+9*r%mPWb73_y2H#udvGA)7(R zaGLkBYY33!Bkq3WgsZQ`IQhsqtp&{v@y@;Af)VXtZ@SOSp+QNyxop&!%v5-azd?qd76III7?6D(tJ2n%BT`mf1Em0kFO}j8Wt%&_s zc%L|rGiZ;>LG?|XL~^~AT(bj)euqh}Kjg{6gCtDz!x(khhPI=*i5MVf1!FxNU`2*8 zBD~emHsaP`tQim|>`B$$MMdx1ktSF6hx@FcKg8fk9$f==HT~XP98NC`DjM@Q&?!#Lf+>=2Tv9k-U`$s zv&b#9p(PrRa0K~70Q8h-zPm2jkfOzE1Lp3?6o>sXY)y}TeD?L2jbW2h!;!`hg0y+F zS>uo>Ct6Dn38~VTuyXe!!Z;+?_?p}@@uc3cJ4k^~t;0d)m==FDG&73m&;*EaNun9I zN1bV=9Spk1L@w08zYOQFQOe?!yw$e7C=1IzM?ELlJjk*y~Ya`#PjL1oV$Wv^Wt_PK7-%vw@~_KNP6JTvG`-p5bcC2WkNvA){rv}m;ZMc5;LGv;Z`WLuh_ z@&*K`(Z5=HSOs*$_TsuJs`k4*Kjh;^MAz47pU&hYznorm8(DbLlD`-@+*{amEaQxJ z-7e#4F7^9EUkb|0?-wXu6-AW)lpA<|hHC@A-aOt(k^NR?88wHmBq}a6K!}Z-sAp=j zi>B8Ay>ttIagb1(GFCbe`z3H=xxclrEC=>XU*}M0p6zdrY!S03R_;}E4SG&fp}w}) ziC;y031MZA{_z84IXSl5vmH8UNWpxvB1YYFQ5v|NZ35vaTc=wal#J2iad>oeFLSIq zQZzvmZlS>uJ>`D6bf_b?Gw;Li-Hp3u3{j;DQ4<`oEO;mVNksnC+aikeTW*LyE9WRw zZrIXa_fcSx0oGkN`N)c0_DxEPY)@*KDXpP)SF&4T+7^2<#;w_=UrKh-HFMv#?Y1FUZjW(Mu{Uq%Y6>`i(ke`tH zH&$0I?r*BwX}A?fiw#s@4*ooQ`}9wHwRG{Z@4j2?zjAVnA>JN;w^&Ai7eu-7YvhCo z_)Pzm6}$d;E7OYYyO6J)n&1_W2b~);uNv%DK0*gCQC?L)wR;bm?{(l}>LBRJ>kh}p z%928-nGGaklF>Ax77rGr|UJoH^dQLD9~zcaq~J3ct> z&(k_`=%&WSp6W|%T&J=7R#2v0p($=;M7!(f%fEhb*|3Tm7$Ci2nVTmb&lO3PM~dcq zUWqmr5a^-v4_BKcW`_?H1bzxVqxVRUKi1aGl4=dpU;HLN;fZmg zX0z}t;T3W@=`)3$P$8CU_3U-_`2tEsconY#YPkrutm!q5X)$Ho)NwDQnUIi<{UTgd z^K6%R*ns`d*VWKs-V`~r8L1YJZ#G}B=Nc@xTq<=GZjMa{xDswfP>j0F`!ok(l z#Z23Ubv`8KkNI_QvEfJJq~u|~+h^Mpgv5HO-lYw<`klC}SEA)G4Im2&Gx3dQ+#~D_ z#gL;_o3yGa{G$gW`JZ+aB{fIm==}?2jAbp+ogZiO2|eAq4cE!jIMX0H$5n}C!Oz6x z9G=plgMsh~+snUUF#a^{Y;I-o)}MdCvT10xsUnd3p^AQM+U9y+m_(()7?(7_{Qb(+PL#z)n{yXmbVd)GAai1-k2_SneXne zqIHjDCO)Sy_d@G=A;Nuj4{mq=7iH(vBw7%q*|P1rW!tuG+qP}nwr$(C?Yd>#m^g zgM7`X1@_PInZM2Jtn0UOpHFj_-deteGhBn)kHJw}#p`VIX_BtOeMBlRzecJb&)1#S zbV>j$u_=%rX(%;RRZ#`Gii^sSyfi@*>mpn-L1nTc1OJe9U3`%)iux%O~}3ZJ>=bkxDoYU{hh-OqeW4YPfJZ=IQWaO{*}w8+XFaoXh;n=5@3 z>{AKqTgj%i%H>EsHx)T73@mpF=c5N_p)+ecK8FfP8@{%}(j5@(n$vXluA&^exQuat z|J@mJwlJBE&97*aM!%=nmX*x?o>(@D0bVuLB)`oaP_<4cLfMs_tz}qj#MQ(`OSb;D zyTwQkBA~4ON`07`F4H7(4Y<+H|9Qm*ce$Xo=h|*k`1f`pN>}Xw)j~tw4^#>RSHR}t zm7nL#F@l4ezUI)-iPS2m2Rbi(FpG>TspE{^QS*(VqGd^K)}aIr*537autA@jduJ%7 zqDSR-%lJ120&J&%C%#r31}3{abZ{zbc0@B8xQVkJu#PH&u%>#h99KqgPrh)9f_m64 zDC>~Hw*o7+Y=Mh#t`25~ri6w@0=mF5CyJbAVV_j3FCs_^kF`UE8Y`^etSv#%(eHwY z!04LNk}fs1QA(HvW>=R0d>$AMqqS1dX90sjf(Cztzzuu=MgD^K6PSO%6j~h;>yN4% z0D8ulOW7`$~0!^`KQ zaICBF{JZ)q(}vFG@j8dQg>iQ%F3SAz&^NT4k)#;6PP)E3wd)YVAvJuF&OnwcwvW(W ziBO*Iq3*!%J8#P5JMfKBo+!i@D%B?0_GD!Li5UzQ4s3(6D5X|xzH}1?#PI9RQ3OsT zGv45*hI~&^LAA;W^?8iSOhM?kK$L6(&p$-Fdlva7fGOM#Br&V6B&4Ua$UB0jfW; z)w-u2SJNtrO#Q;6dFDsWh|PQ~-Z;k{im=R^5&qlur@4X&8>KF#TI^Zj&YrJ}{)gz; z-~q{KaO1K!m|W=dpV0-A!7c3y>Pj9Io!G8$k^(?VGBos{>vgTANi`h$vWMw5=Kie# zceGba>w<^rHv%%afngFpRw8T$#anl!OUX6u%C;)YcWtX3Qo6(3W_F5@W&jFA5-+iZ z7x(6rHyZ$QAvo`#nl-;O^~N@p&^_Bxzw>%NcEbkn+J=7va^I;(X4ZMRdgt-vy)sx5 zkFkv7f%>+;U9VZ4jZLKqtlYHUZYweIRjyuw3_+Y64};P$)qZEtQa6qN#y{h4E#SO^hh8^ewK>{(JHcTo{@JEkfmG z095#R-=$cr=;Vp9xbX+eY+np&=)+fPn3~$OO{kfondYbcxMvCq0p4U=a)kXjp7OFv zorbLXCldzat$~40;?=)Ch4BW%zoD5G5eKEyrGQkOFkqv=IA1Mrt~waa%{m@P^taYe zH)VF8hU2YM=I5MlL|c5@zUay-QC0C&$NkfEOQ8sumz#^fr!^_nW?G2jT6t}?e?10O z9vUEHP81jO&ww;{9v|l*9zXmh-x)ql;mxNFyB6}!kQyFu1Mre2nw?%ZOJ#6ma0m%% z(7xrQND)PyeS<0n`R zRVOP9#9sic52sJH1$;``7F1L0OF}_N8Ev+3CM7Bqz+mUnXwXFuL$k96!J(X3{VKh( z7U2wxG4MmMWsFhyh3v5ybo7=QFtiMN1_P=Qz|^>*1Hpw}d(;$xj*UpCErswIVHBtu zj(W?26MO7dJyWqzZ+=k_fZ#sXzC#iN|8m2%zg4B~ydyjT2c6BF^~dx*U1cUG(OK@)IHO3+C>n{B=dxTd zPpS3T&u?@tQ7xux8jDRew!c1@f8wArY`)n2_{cU&bZ-m1dGnk{5inYNOEQNYgsX*$ zGHw8NmqLhLn`?07wa-C%>>$AAkAeJHE=Mk=-DRSdNy}k3Zszydgk3u&J-iI6hKK(C z?K^wq#X(MYqwPn8zm=nO+QTN9AtguFp)0yam4;ucS|P2bN*&&u9dgUt;N?wj<>FT} zD!u0wDR+g%cWnh#T2+mV+VUYl0EFPY5%S!jPZc7>S5{vYHo166Ku;402C()vn}W@N zI%jUN`VE9tfZt`R%xy{F)aWDm5{+_wU0$O2Of=!U+~A_KC`3k#A}Ux z(>=l1dJ`%HbXh+6la0PoO2Huqu_{Xtg!sqS#K`b&`Hd+xZXu%CJ78cvO3ZfGJzFs<5h)mu){{$(A`95e5rY+r=~IX6zG=)ihAKAnF} z2bCh0rOC;5pQTNcl7hQ3Kbfz?WnNq7-P*}Lb>L(%dA89PNWmZwa{|R5931F2tCq76 zi#9Iq`7V5v`EE;N&F~`SnCfr|q$)a!xFN^y0Ok;%xWyx?-PjdN1m-{7H+mR<=cDJQ z325WF(-gQO(Z7yo5m9lEyrQBA)LpGEbdqA$BZ!_cVXTC*u~*-NtI-tnXQ3{~ov)E> zku~mQe0q_91D!TsjCy5iTzhaeJFQOQb`mutii$~Cjwop`!G__Mu1bS!aE8P9eie3X zAo_K6#PJTN;X^yu2Ga6`u=dn6H$sgan1W}Zz3)$M&d>eUW^jl??Ffqy$7(hnhJ>5^ ziRwgAg(m$;bJc(OshS6*W&`-7odMIHl&HZf5X~8XY0Thn8igkU4G!e*yM~u>cGBpC zj-FRmX+ftDmST#$ZbfKb3Nq^Ycp*s(qRZc?{CqI{mT?-SahTZYYJMEu1OS0Bv>RTp zI;_XXV}4Ml&2_i;0M?2crByCI_zY5ZNrhq>_$HbBE)VXZ`YzuZoffJIO=1l=oC+@ zH!_1tdt2V0N7B(_8lkaI+9?FKsezCm_gARqt+jkGwQ020%cqiVq(+ew?w;a?+sM$` zF8^+_gQKCG`Hc7$zTRejxWg)mLjQewAku??{zk2Wy1euAd+Cfw%LZ>FD+3nv&OZaJ zGG{oVBAla!!i2Fm>?B5n%U8SDD^*NHu;rN%_3}l;b#mJSO`X}#2Mo;lDm6NrHet4- zeJcWO5CXU zps47DwY~@2M;`(j^1A!!wOGH83|1Da0Fv!gt{H=n(?s`ecwIAx@&wW0wrZGg%R~CJ z*fXj>*nEdPe3Qni{Shpj#@%p>*cMxvn=2O;dR~%ST#gbcp3o(=)wu0PW6K%|*WaQ82;5x*Rw3#6m<9zH&~u-AH*CY_pu@Wx4ouZu zwDy^~3(JBI``Cw%#0FDJW$a|UbX~(wUi1m<`M-cs!6&l3HGn|AbRe^{Jc(1AMoESf zYm*J=%;Tn0*^L$I2Bziu?8GS8|n{oU_n>*3qqxH1P!0jPSH!FR#e)BKhO77 z$E?Fp{D<;l&t4BU2lZQPLl;NhXO~9ZFQ@McuI}4h3dK%@m9u;Ug7(rykysBC!j9<5kFnfAdp7 zP1M@A`6J8sdG`+zSo^-BcNNRmuhK$Z6$mI&nr>yCgk;SO&cUx=eftS{NA zDDoyn8Xy_sCQ+r|n?D4+i?T~vfBs}@iQi!gq!lOaW^Q= zN5cj<3nab(rlY%b*~_r<)E6b~lXn8B{uI99r|t_34jb(TbP7-;1Iujx;=Mq-^Bc9o z3$PFdaJu7_Ptliu7KpHwz;6ZK3P6~C`|*224hk7iql27}gZBt0v;atZ8l?e}V1r+cV}fJ^>C(KD4Je3!!H)Z~>7iAM%O5 zX@F7j)CAM@Y?;v$pK%Jv1<5+PHN7A}e3archU*zplra=G@Puh=gw!zk$+stPI{!CZ zIiA538|8vIW}Rs)Lp%uJbNmSKbeyr!%x_VbH;z4HO9P%MiNd&tT2ns#;#t(k62dq% zBfl3{EX-P7z0F&g)JT^wh?B4$T24i1m~pUE$r}Q-2gt^c0KX^%BZ0RT3p8;;m>@Km zqi25ZNA%fyuotSax#+jfn8D$`E8?A!h1dP=!QPl_l7v zMjXF!D^<_AEQ3g17&{v!$EoJF9=wjCrmC*8wuLpkgT$%Yj+@9T(4^B?m`rKeq^%W0 z8k{m?P$llA1*Iq_Qrn6*kfq;U&Umx^ zQtx!c@1x1pn^x?4Iv>wE7pqK)+(r%10RMG#J~5PTlI7pFVfl|aPW^A_-Nwbngpr<+ ziJg&yhMk##nTCPY*v!MigqEJo$X?IM-rB-hkAa2pKV5ywJa$|32s__YaN6DJiYX}O zNs&;2u{LRhUIJ35@em@7#3UQPyc_Xgk;6DzZ^VXIr|J0&S}YK_RBO6??&L87sVw94Jlxt6UN7x zR8og;PV+_jdFZ%5&JXQ|GVanQsc(>)BtpZ)Cr@aFo93TDfHC?EIWVFj;+aSe-GW;f znC1RqF2V^t!uF`!Q)XWc!8&)x9mdbQE@b90(aIK*s<*(33YW5RW_El}=xH|~Lp@G( z+{p4v>>C16|?!aPi5p_2PhyiNM^RL@gzJ5MIiT%e2%95G*<9-dQKGZ)%U*zrI}n;tGtA z37$h+ljM6@;p@*C|-&^g) zWnKsl{?d;WTJhCF)GF!rgNn!daj&ZKxcbhjQ}5(}@p%)gn(-%pDRK(UU^j zq*vNva~Wea2=od=?+F68RK}fga4n5Aeq1M;9#R?`iOAY=JUSa}lWa|h2pSy614&W%pn;kx2r1kkRyG#WnY;7~uM`0;R0$ML(2 z7Yd2R3?y@5JWcZ_jk$PPoqMPM@`$q7l&MPMNO zLBfspM(ZC|fDDYF^FSa@eDP_O%V#-od}B2I%<*+LsqU9oD?d~Z2BAk|3>W6-#9y~= zcq72f7_)0E6O+At3o#Zbi(&B;j!e019p55Qgede+hBHv~w>OUuB{Axg>?+hxW~|{; z`MOYg4GhtZ`ubOlK^PmeBPi%wrnJEA?GS_mB+p+j&J!)aj(}uHi7HE?h4j;#uOO?_ zqkZCU0;3(2$Kef=z`B(u+ycI0?hAR51Fgm;(iK0v~B?onY*heh|7KO)E7$2QisnJD6vdIjv^=0?+e8}~%>Sg!tI49BR zb$e*ljb@$N-KH$hf8;bo$3jWsaQ5iQKq@B>0(q4J(D&SVQGLsbh3sLScpZ$ro)F

    Oyp_AvA%N@!!mR9HnBRpzKwQYRV-tccmCu<77g1m; z@d<2$7SF>X%rk=;LZSB?0Nf2Yq~~U+Ee2VZi^w9$TLW+`o)Tmd#js97_&-zyD9*3S zi^oV$OS!yJV)-FP{6VS5*(Y`=fP&lzPOk_DG)CEkt>0+<10W!1XA_>q`6HaK2efcflNdgkfDjmKb;&C0#-{UX+vWxYR7LllMc#Ys$N9e&ZI@Zr4R0=(kHIx>Rozut55ylBuLzLT zNmWX=TNV=^tnMbJ4)M|7=5fD^0bdu|J}ooX{x$tH77k$Oy|C8NwRq?r)hfbN5$X3R zn{jYdO0=_wL{)e-Q(>LDKO*W}OOol=yv&=V$BjP&gbYpX`f!Z!8g!YL?RGU8Z9Y>m zqbqUzxj|1H76~aZk}OI1A;mwbHKG*z*TbgPh%##|WFxG2sb*;^5T7&14;lcb zwJ1UIGqliX)NV6qtc4;zk^sjl>NjKnAbtU|2B! z=JSvzDHr7}xl%JqT7=3*2@SKOwyFsq%9%4IFGghC^m(VOw?_{}Mou2p%r*e(m%X;2 z41ir-Y>F&Ut~aesGk!natNv=)VqJPJcxKB8XP1tFG2ffuPB5cnz@zHJE~`}s+DKFb zO_`Vn>8hheEYE|5ym^F^qs669fp5!%WeCopKG72dH1@pG$9$q+XOa&xzU`0^QjYd= z?bnOp2|ooTGy;MDq_SUWvgnp1Z#yGs8s)bXxe>+NnI5`bbO4#&(VHUP?9ARS4thza zP`LV_q1H2_o4Z+d9Pi|rNJ36Gx$3WM)_K3{Fj+~?3|z#ZzQc7bT+vh|C7k7KJ;9Dj zwFwT0mjqfPiE*Dap@=;>fnrCfHHF5I5Gp{G>ofy`&EUk61|O z`m3s8I=d__E`4dUcySZw?RR^mulL;R=D2R|jr-YpJik4CyMuNNyo2;LO>r3-aI#tS z%eqYydfmLV*G^1jQ>8mqDoE4KD$zI7!D5&RiM^~reGv#&_^BkwBPSAT%HAA)0(Fd{ zzKgv+nt43`4Kz1^F|JF`kBNV)^)U}4kI>D}t#8U4(QfSEd&!=iU@WMoQC`EGq*?%C z`swHvzU)Q0v6<4jrO$xri)Si5a{TDP%`8na6XXXpeb<;o$q6&@cMlX?6yMC2W7LX+ zR_WD*YVms;qNdUd+9v1(CjAA+Fwv2$ybnO~#3rZ23>k2CjD<hm)0`%^|mPYx4SjABtGi^XS;$ zXPX%MOC>aMa(dX1-HCAvkYF}b2O2juZF6~|A}o>xYyS%i@Mts54F902VkBWkpUa}2 zb{fyRldzE&QCl zt6k~-4bVI+a4X%0C2XJn#m7#~fD6;M$M?H*yv|aq#n=gHep^Um3>14UNsIblC6SJ7 zz6|ZoF(>5s4-xV?ebe8atOotbi)k%Ig3cRG&FV9uc%EyXNsKYdYqw-IX<1af7JxgB4=Z zBo@ODTf}|dM~KgO`Cq1&`^j&{X@;}SHX=Jn{%K{COUVm3P&s6@Cnps?D_1i3F>K=P zad~$<^y;TU3a1Tx&2bE|8E~aRT86WL^opBB#k9nlPyr~{ z(qZI}NxGIjBi9;W0Jxh}8~&^=#8(LbbHMnshV>YCJrZDdT(JuZe6hnOc0V-Pr9wtX zLonu)n*vP91tv|ex(@Lb0}LlN$iXYL*TDQ&pC{?+e;pf zhQry#D8xLJ_|&SpTih0hZCiRMn#A6U{zGHmYM>6e*a#ZJ)?fkE<(W{wUk=W{4g=)y z*}2h3rdG#FtCNWPLz7Ay4nGdO5mXGP@W)vx)VotL%#s zYT@Oi3S=Nw{-dJ6bnkfn9JR9Jx~#Y9BX@nwYvCadKwuzQvZiH8;6QfX!>I~2Uir?bQ?@NqC)lPl-hVPN^^qW!g%ka$ z)cg9taU5IpxHYo`9DKL_z!<|j6(@zk!rBm#Yp8`bqhg=3+%^t5_fw}z!VCAq4^|S9 zC9X0N$1O)a47BeN21Di#PjDMtOugiq@2b0{!wnot`lmt z95=oCxO$a!_N|xYx}GOZAnmcR=dC@G%H^c3AUaX|xk*R(3--P#8Py6MZI>dOp>|cq zPOJ3zL!L`dWJh^|(T){J4LqAzUAv;Vxv{wS=)r&e&Ia&4 zy!F!J58loT+laGrU%3$|zdvoyDDseM)Dchu*^!u%zFifS6S1w z_zf9}!xw*Fm9-N0=kI48b^j`+!SwePv)=S_DNZB`AoG=yUOtjj>R~TL&S!&INWq(q7k9=|Ge!bV)!%p}8 za!#*5z4XdX|h*kGif?8QsUo7ld4re@G+Qh}3{=f@?4sQ7z$Q;bbgZbX> z{sR8jaPO;|f=KIMxOeye;jd(3Wd4tEFGWe_U$_U;bE<~GNsWatV#S$nW!cfs3pdnR z%kM>plGPA0o=7&~+N8%v>ALs?4C=~oHda<97AZ}KX9{=;-U4%PkByMG9aM(ijdHA^;k*F~^J< z2w2S^PTwdxz!~CWq@y3Ng**>3;HeTUiLzdS{eEKxHd&rue8QXd2Xw=DqCvHJ_+GAx zbD$TF^UHQ?Kf$s;EM7PYJzj0m1IAEo7eCq3gmqsY`eaD8s19L52|woE{DvoJ^57$# zA&wmKYwcb%)tzr1?lj3~YB7bTHQwsHVoAALlcTt_H00vNd}kG095wJ@auYTV=*hf0 zf%cB+MrFtR2-H(0Gkl4U6H_^?+o9FDv6iU1ghGo^_y#OT->J4iXhsf{Xey{$pRE|$ zOsf6+{_^DF6RGz)4unWvWKTIAAeZx4Bb*^|$-Bpd?EdiH&_g=u`Zh({8ygydolhnBx3?gTlX7((Q zuyiTK%Yd^N_Zpg4jyfN6NG|Lw*<@kp)+KY8NF!SoPdf|ztRxIbf+&+f`q%($mv*VR z0Qygu{5XC`6Y~!>?oXjjuK{r7^d?j*2eapIIdxIM18j?#G)R}g5aXJqbW-}bKJ!yx zi~h!E0@KqA&FFX4#zuONFUzOFbZ>_DO0T2pkFx+FPMu9v9B%Wd?Dy=A*aSZg_T3kW2v* zAOA1#+mNlVJwWxH_og&$Wiaa7B)nHMAm@6#G~_3CV&J03oXBfK&$I}(-U;@p|;WY8G5L{ z_mtjN_F;;Kso)E7-8rsdqt{(oSZOg8pu(7|Qe9M-j>udv-5%38_JOHA2 zD;>bGA5Rqcyi+GC0IRR}KhYn;lam}kug>d!AD`@f$~0PkjP4oxlXP{Z?<*#_HOCMj zz)ximfWNC&#_9e8xkdB1Opuw(Z&|1ql~h8hW{=6}wadJMSm=yO!rmVWlN_jo98Ff&1Fy&Oif|S zFP-O))0~dmw(FGGEZ2d==T+-yu>v&5e%y0=kEzXXDtayhWiuJBTaU*K|E7ve#4%EH zQ}EtNn+7Dt%Ko;z+}z%Uvu^Yc%FG+9-tzS2kr2!WXm*$ZiiaQ2?;Fp@iIQfyAx=KCKhDP>p7oKl7*I{dD4OQbF+%G~J6&MJsZ; z9(te^{bz@OE)A!xLn8OcNn*{_)mO>!id3R&`7L9jg^ZFt%8Ma7WE(`I5C{hty(xYp zT>HE@k+<}|<-6G$0v+aT=-Ida22I?O9w4WTR|&Qb&%H@WI_qj#UJ;7Q94xF2YIG|r zb!fnyL%?*2Pc6kdw~FvKv9(ZE@C5$Ix);Dzdv-t)fa~e@E>2O)uJf%0FXR%8{e^Ie z*AJ*ntbF`2;P4&@;)+;U;J+!64n!DPpimF#$I;CMQHL{oEPwN*|iLjY)AIPA0fx?7BOK$E;f zNgPit;21{enh1?Kyk=yKJFn?t?b?M8OZwg1q{Ej-wlp(8aggg`V zG;8IJ`c%#$N8I;dQ-IJ2v-aRN-ITlcB$P_w1;}?5VtYTmY~T&NkgMe}ZZ$;w2dkWM z-JL|iPQsypdpZ5mNRJ8i{$z~F(2BeU^0ky?j6BW9l93XdS|mllPn8zkzkedXaECA5 zV`wSkIeL(H{WMaeT{5PTO%>vA{G1jYpp|(l!hIyyeIQjaZ2ePJ5PGAKdYKn}KC7=+ zhZM_?(2F3ds3Ye>a3t1##;A#3PaQH!@a3E{^tT?DqyMI{XS?PqlAKk&w z>CW5hJENBuD@bm6faAYg3p5**Y;+C(YB~#(k3VC3EJ8s25eg&CS4x^Mp*UM*eliDp zvLt=7Sk=Uu{1tZg_+=?qp8p&%r2hNe;-v6$>H&UYxv?jw6-}}_IJYFvqn&v12p@%E z1c^FTt}ZY_Nx3TD5E}`rY+Yyw-NFD-0Zt9$LJB4Fp&98beNK%MM4^Q(x&--pjL9X6 z&xpogG=t@7f`@}2{YsyyH#~A%L$=KikX&OmzOFbPGj@|D1KKr&Jc2;eVxwR4Ck=g=KvO>mn};bM*jU;zO)dM1ErGauk-O zU5vHEpJl0Ppcn6w%oYu86N{_fD??_-JRw|uxQRgVC*T1atSEGR8*-*2d^M(dY$f9? z{WMUjrLYmIdDlHl>#iXyC!ttXVmM`lbTx~6N%RB?^dVe?$k^l*lhpK2&~gLiP~tU9MlF3_X2fq* zD{iZ}J&b;Dqr?Wk%4XG=FlFhJYRwnrVO z_Wo?e$Jf!D$i_x@6wqX@A!XfdKnDC(o*=VwPLhIEQwbb>zSNzaBo~acFcz8&tp2%w zE7}3Sy^@neKpF6dCMWO}G64gIDZqk@zXK^@fJJf1pJwTxR4arKDeX1MKSCwItD3^V z12i=xpgC~sRtdl~+DoFXq34|a9LOEyitVNVTQ2@yq^IyGhKR{#1;Lt)=$40YoLB`n z+;q73ceD79GXOux!H4DK8nKzjizr(KT3q3n_%r>F9Ax#zpsUsWsi^BTphjTnOm`%w z#5dK$Nh$74NO>jua{xnmX65&Rey1ZZVPba9jU=lrWu-xE+O_>62_|rbBHZbD%}^xFZi3 zrsTzMFx<(md@zva_yK%d@$gHMESVvKWCDg(5R}qdNU{cuKx!OlEp+4#3A{-3q2Itkp$rTL5Y=tPxjtDwLcLQFH~1_pmBgb*uCd7zSt zw+Y}SmqyNaD5k1X9;~@#6LJ%jGIaOURd8t0{z^_!CMZS1kx7tHQ%c>Is&`Bm6)=QE z3OJas3%sd>E8=9C#Kcxiz^xPx%XcYP7Bp+dhz=t=ObKJBv8IkZg3K%BVz_a2h6{Z-9=C9pKa#fF{At z#N9Hys=!p0GO+VCgkZnA)z`9Q;7sCFw=Yvycs1HD#EyP1xrqeI0Zfs;U9?xr%gb)K zQe!$QdxtY5AK@KMbhuvn{V@3u{a#noNfh>0Z7ntLhw~t_pri*c*NSu5S4fLfeFr2g z8PiQ81o<+IMjv)rDn21+eZtQEFh57g?F?>`k_@UcW&A`1{&fu|k?G5{L|HTJ&_ukZ z2!Mw3B!Gae5SHSl-{(%t59HIyp#`uI4=1_AUI86JNliOLdAg>5%{p|r`;JHRcS-SB zJH!T&4!hd>m;}!?T`a>ySS1!a>Jfw%Wn#gfKI|g;f-JfTnVc7sf*pM+PDvH7pthgZ z5(4t$#01F|6*WsPieJUl0LI1I?dBnA##3UF%HflX(Gqh?)&El%f9jxCnpdVdEZ#I) z^PNhFW>_(gP8*L}E8r*@${u@$&RWIT$&$DPe2)@7LE(V0E=-64aGz7XFCn z;shH4?2_rB)}^&*n&AF{A`GqX*1ck^*mR$#4}_WViRm9=O7Vo?=-)$I#{PK9{FE;S z_yvcA>L>Sd`!SHT&UkcY@@N#ug)JmghjMgDSJSsa88Db^Gy}xiVEN&C+dKPjA{A%F972`I{Z}x0 z+(>4X74BwAC1+53M@!KhP~^yV1e|Q!(rd588WH=H0wRWc&LP47hQGSBe67It93+WB zvheVUxs}Ou_wN#4kWJnsS!C2@Wdp}&er>J8!;hP(4A8(x`YS|CY@&-LzpD8&)Y#H+ z2L|FQ^H}ZlL`t0DY6W;qaX3Cd9qV)3hD{06{h8= zyc&*0*c$t4Wu=6a2hYe^A9S$IC)MfQAq#%L%Z0Du(|xls1u2!@f)K;sG}gpDY`X9F zSxyV9DxT1l#{TNOMO@IYEN3a`X^kYXdTnVWN8b&MSmgKH3$GBkF6R&4-(E)zwjHBa@@`BBB8JBiG= zSku@(OH9(X($@fRU46QifqVQWRIFQT*S#q_;rr!@+_OTIHCwW2R`?f6j3dL#9D;7I z8^^o*lhBT18#=KS494qF$z!>W=NxTWs~pvTaa0~%vE`uNw%Bn!r@f9*Tio23M^TF# z3W_Qm?_T{lAuGEHp$E-#A!5g+ttZZ8ey`K@x-tIr4qwHFuEv+2td$0+D7V!MB-Fe6 zcM}GUXFca+uTCeq#&bDWN*3U0O1Xhc6TyL-{z~3(Bu%be_#$g93UhAWkx6Y!50nT? zOyZ2ZsvVpoA8*qOlP4Zy8Hw>Pg@*(Drh|BCa6#>4yuf|&#O)s7jEv|Lrl;p4{Go6U zf<8)^>)9!%{R~=*eVx7h}zN84VAqcL1 z&ihL=Z0hP20xCt-2dG+z_atCwVGMTh*)*u=)j9SqgX|V7@m0w18%d0*a2#rdLifw= zP!oFva>y(m53I^oi@bkm{{Cg738_~c~;*2;TKoFRMN4e@H093pAIalc=f>f3RXtRib^&b z+vCqqi$#G1y9~{@d_~O1-JF44elX|pj0gk zf5ePV_-uI|Uw85@wuBv(@`fMOI(=6e{<@7I*ulcBSWr2y>($jpmm_PVLLe>N4cinK zp7dN~g4TX+Uz~86Tm$k4Usq$;@C2NFp>92esbmdZ2Ldg zi`H_1Vh6u){bu~0dlTvFG>m(rJVFD7tTefpbzi3Dks|v(Cj?&YAD8tm3@I~HG|{1d z-S$~5Zr@8g=W|3Gwo4RSrmmXOA$X8pLWP-GR|J%Vnep=?>qgX-C6p(;YT`@c?X!4p z&?-NrprwbJbdZlIBsuEsRW5iByMva3rl`S_JEaWb+yp0>3)KQf_MY4RhQL#9I|m#C zys{n!Ug;PvR6b@BQdpuf$J%!Zk|LhbJ2eAUBYDLfK+g~51{ZhPf?u)JTaE4CA#NBk zi_DHQEkW z-lsf{v%KqZ^t|7}@_C2-Zo6f28x+sI$IwAa37OOy!Y|Dl$M$~p)*#}=dbV>!F;9!E z6z-Ke6HJ01&>tX?J&#!wDFC&z6XQ5}T%!qFPdf}-bSVo!I$ivtI%i+Jx!z=EBH2@S zQewM?I18_>9tDv?UrkH$;dWr)Anq3RRunsiM2G%6)r4p?n(D&KzlvfG^2XC_3xECv z9u-n!qxm}bM(pRXwPvM}4rgs}IFYLy8|sLvGmH&J%Gi25qKxsVyn3QCz<>3_O#LTZ zGXwldZMY zw}&f{yRCb=*5|Fo*~%@GfEbmJPY^(Ah^R?;CRv*He;T8oJz8ZwR9yO{2w|p4kIopEC=>DTq8rS-+O%fL z6`KP|lax_=CF}yPTlNHVJ0`90T0y3za{i`*l*olgS>l}%ykmy}>MnGG$)&3Yl_-i= zL>r|UN+$OA#E1|pXR7@{1*1;Z?ZMD1Z@snVla8pCO|o^%*pA@yZQNObCih3_l6 z3Qv2!9#h+jZ(qN%pfAbKu$F791#E>-Ym6E{>-saG@>D*#RS zbE1G|gF|w~(uqS^wj?hB5y`l8vX+Rwwf7`j5%XRzaQp~p>-pZTY1moYApqpQN1D-P zS6{{RQf?O@82D2AVAGU8kdZ2od?s<|{P7r8W(d*h>lS{OSwwTqwFISEgD6j1V?jy6 zUV9dO@sqHU=`rMX-6{=cOlC1E%&Z-xjNQjxTWMU6s~Nt zsa2#F;AXr6nfNsWh$1Wg%1Ce#jyg5}ns+3?^k20vg_dNT@eWg^TG*yds9RP`K7$Bb zlsM~UtGntdQQvGwTwZn6;1)xs7o0VCK_Ovu5`$AL(qt;$bF!bb4*pgS&DP_0tCe`d z__iaS@y@+^BfGYmpHe_L9LZu^|JmBv95c3~kmYz`&?O{9*@|^sB~O<*C3JDtQbprD z$zn9mjc&@L9}YbG%GAw#bA8-Jr)M1wUv3HZE%l zm>T=7{aC-@HSV6Af@XB{skRZhp3k<+xHs?#}g4YkgpLx1z#>AOw@l7Z4ImLfy(|vsv z$J*tZlI2PvxvtgqsGQCCR>8+f!#D%vVqLNIP6K5ev;HgMu6~R}GV|Hr^;S9-4ru30 z?R1T#R~GZV?%wGXI$=B6IeG~cQ-vqBAyccFjT0Yq>#L?DFYlfQjh4QxHh}u-#68b& z7p1VcN-}6W6=iL6!q6@o;aKI|o@Vm_x;s|ccah$YwSQ#{dp7-cqxCn{>vjD3U+>Gz zRFO@ASN^5md@M2&ylh4-cf|&Fm+q@=1(gsVeH&kFxH4*}fcXuW@0Sr;<|u+$9zov- z=gPwXVyY&H+j5O5k4Z*lN%`2V?Nb=*)TDmOr#rTw1()X8`s#cL#R4v0o!Z>J|9oGc ztn>)Hj|X2Ln!_LBMIenzGf(SkNfdSW>(qS%!Dx>p49Uv*(2T=gY?#zXCi($6l8L?{ z)&>-@N8Vy`=88I86DxE&<&+{SPYmalV0*{pr;Tr%Y2omV@EPxWLZ`xC2KtSiMggtK zJ}kNi{2zDft(xku!SIDexkwz_&>MrQ&^p6QP{E)PQB0?q+2>S3EDel|D`G`)jS)Yj zmLrUg%)`1KXsz_OtViU(nnl7}uYbHf&+)4eHjJn;B<1!xdMzK^D{C}D64rD4GP`^O zYjalgF%`W)gsR=ivJEPd`zVN58LFtrswO#3y&S#x^`&AMWWEL*DD%E~d$rXsR>tkl zaqc2i*3-Chv`20^-e15_j`_???u+AWG%k$D=>vUvUO8rFz14Q6!K`M>;mF)Jrsqz> zRrbdjq}3gg-!*pWpHSHd-NucNpnnI->H=$QJ36X!)YO_= zK8r?w?BwHK{@vpos90P*$}fWz*cam11V4akAD_e&#~edKCgEXMK@;_Q;us5{@-~lRs@+ zm9zz9N}4v}_Q80&no~S7`jVCLQ%lf6yX`*%YK~S;`lU<$gg~|kKuHH_q>$zxg3;65 zQ4#RW<;;0%I-BU{mK-8K=vtGl(6q*OSmmOcgh}qO1{rk^;)+{f2Y%{#r{BVjPJ9r< z>0CV0t(EBVQ)10e_v-enNW|P7FfBiLwMhm2G^euZ7w{X6P!LB;cwpByU1Wv2rZ{n? z0q0&~e164QF;uRgScA&rMS0vkguhCW zjh-j}GugS!C|x1!Vc(UqOTD}gVVbZ; z(`PeTvoI!A^n{1J?FS#j1dST?8p>BQ%qh|lrIn`Y)Eg9LI7Tl`Kn9Ap6{(Ifo_)nOWt+IwTZJb=P+30YP;5wkjZE-LHLxV0Meh8d=iO4`5#bE=AT zCOLGh*8^Dr$x{{0g>*6AU}CDAT;~G>&bKykYAF9|1!HqEa&8w}ig?$T9FM4p%s--= z#v*9<)nMWkkvLo9ovi(rO$7}FRJ{Zd3Y;(KTI*$%Oue@ID=8#@C#&6mwvmQfW%}UpP}3ugW|L9f zthW`ddnt+3M@{(8Q{=AZq}8(Uub|5~Fyh&=#Y&#!={pn0DAfMo15m?(_j;n#P**In z@hb|s+BooLNkXz_wK_H3%`KIHI`t}2mt+V@iqvu?nB=9jEYe-eC*@MIq)J<)V1_Sn zwN@Vy=QR~32z{eq8llN6ch8%nDI3w`DV5R*2k)wa?=YLR5}Y#gWUyRK+Ej6Z-tjtf zmd#MX)|CLT*D$|dpDfTqyk$LdaQw5^N@I8S5_Z3IAOLo1Y?d}>s zk($j6QWjR7&cL2b5?(c(mhaqGxPi;s<=Z2}TNw+e-+NM ze@sE9^AKdU1gKDKL+XH>F30&xIBC+#IM0D_F3|{yy=}=Kl%dfXv^)yopI1}3`miA_ z{n0l4LUn~!giTgpXL4{8{a4%m?jdF*2H00K^)(Hr$>blbkZ-HGM-S7d=sknUk3>Js za6gbF|JZ6=!i0}lw`sQ`x$5C(6}yQQe=sXp)5_J>}ncfjsbD+n5dbVnIruzG`t z?zS!|+e}_#Z8)a$3?$87_uIz!ryu#aN?p!5x?f1pti_V2>le>1Jmy6U7 zRC4A#>W)Z=w9)GNoH*WquTG(W!42tDQ2$NtCBgUNJ`2-Qs&0hg6m~lf+%V6>qpn;) zzVA7>cE0dZpIK*0Wfg}K90Pkf@=BGj8M#*zZoAnd zRVW)B>JN0c<;R5#A;PhZF?GEZhkk%it)3i;MZyK;v(Z6AxCWu;?ORx!Cbq(wOk8OK z!{lfz4P5>tAg$eYswc`!KMA81$b^^CBG3NHejB<#hr)V}G)cqIMo>S?6!=YC*fy&8 zpWW3IstunurLPWLRZk;nx%L6mnZ8vwFdY{N-}O0T1`m*5 zjB&q8>nIOY3P-l~`ADHAy@A+qx0=P8f)-G#F9G*#1VJHWyrjy>2`Q7}S)@N(a-ya5 z**YU(Qc@1T!%=!P;}b>5+T`np5=?lvHhLze`EYz-QkkblP*zcB=4gi{Mm{L#UVpyc zfj`qYaChZ!OYLgt77P>V0Mfb<&)kdNtf{}LFPB{Dx!T^8AudvS%LO2lp6Cn4PsP}r zA&rS<;y-~)q)#+jhfUk{72R=3wiF)OC*pi9Z3baHN*YN~0t~9vb7Ue5BgU?{wlFPP#ZwS?t9U0Hp zaHTo_>>M!r7xM*$9g__6S{}2;`KEBAmrGL1`UVpXBSLj&6P(u>d-1>Z9aZwFFjxV# z6WlY68f!{{KIur!4u4`Xd!Q(6xY|X6$+EIVQ{XK^1?!AP-mkh)3BASE6Zhpj4^9UA zK5t3(xbI;pcQxuFT*!a-5|?7Z@kD<~SO{&N&x`=thZez{Q=fHJh`X4H_VGCFbj}{q zDAa(Bgp;@*Te2rsFH)#dtPDMxAX?HkM0(Rw?ty)n*NIKMuF|&9OeSr zOu@wW@rLBb9U?&0_<3>Iy?uwtErYNPJw{9DDh7acZV)?PNY6u7f_5w_T;D{v>zIu} zZfnlG8t?)8kWM++r+;leqHyetNvCu%mLE9=XI>uB;|jChm2!>J6-ztr!X0maaX30Q zC9YKDGUk02HY>BrK0E%kugtDPaCwt2C zP*q69;>bT-t?Ciaglk`e;9qD2{TEex_uvk~;4-vAh?H<6h0vg+zwu?|>bc^g7LEX3 z#`lNn6&5jJM%11MC=?yPLO!ETN|qOjA6wjw{c+r2JnbJEE?oCxLQ_omkhW7UJpNj; zApgh>i2=t>i2`+(m92}9yq~m5QW*>v5rBO3l#Rr?t2hLS9s9f9R$aroC*qxlE14L? zb!a9RWh(X$QZ z^c@e2ss!V(Aa(=-?nLboE7)9EsK9;ka0gbY{idW3m8xQwfx1Z>jkSb4iprWCT7&kN z@8Gdvm^cgPkxPv;YoRDFa-OMVlwNilD?bm;4-R;aF@R>3C9qY|GS8$XXp>}r_*gAg zqNGeiH4^zIpQIatIGOJ4`v)mc284|&bQ%xbVrOA<=u#3N{1SQ#N`mO@W_szp6LiSmk*b)GsyiaD}B4ig> zk3ft!w11ho0TtP2=p^msr`vq%kEhaPoL*>5fv)^X)@)VP&v)R4D|oDxC*!*p0(bVw z^UdJ;l2+HHW0=)|&GS03&3XViUXZDRm^w-N&1U>g)$?-iz7EkJ*2VPE2lKEoM+ zj1#cNCw-|o@ZXpL90J>|Y#B~@m-;8mA!anr=F4$PT|P=FawyL!lHe+8m!o;CW+;L!*-GDPgHL$zyG+`VrA|!VpF`>$dG|)xD4h(fvU4JW2CwOT z()*8SXFn_k0|L&*$UeH2$yRV@=yXYJL8eMK4#H{_18F)|yL}yK=2?pI)=_~<`vCfE zY`~c^1VXg5=w^0l`hfCvQ~)FbjOpzym1p+fCGA*qfi6-V@_gl-wvg-M+S6;o-R! zNN~|^9D2o_Vy|gpYNC3lwt6+53sj%b3vKc%K{cdXU21Y6N?=%nh@qv*E|sQ=s#~~cT_VB7oRsCiYywkIFZ-c;yNkt9gCngvZ=a0uquQZ!1t8&==O_K@s%-2*3x4Pm_^ ze!t5&L^~8DLYL&Qf-`p-&vb#i&F>5YUwn~K-S$pvSN%GRICT8woODzR%-(O7@uez{ z1ieRM>1b_Nw9ireKI^c8@*KO^fj-62nO!M4RK@U zqPu=5v0A~qg3b&#&d*H|qGk4(wN*3tib`g(RfqQb=(&@8na-E!TJx#v=89pF=S*eX z#-Ev0mfTxeMyEf4H8urQSeW)qAB{=#cU?J|?PL~_oWhIz)=9p1;2mg?s8VrJ9isov zsXSqcgK*LKryIyrbFys5@zT#e$p}>Kp*;}gn-e-E)@6X=Tsy-1BHifj$QLzR;Mi@_ ziMh&U;}QFs&W}%aRYW`sPlL)0K?45KMbR;toHU3nngTW{Gyz?QmEWSSsPXegmVH04 z;E0tOeU-q`*k(5`oUr5UP!qFj14<>93T!zr0pzsU2-USIz2wIdm99Mr8Yu(^cjW;z zd!^}!XESufE^2h#cEE84ELZU2Zx6uQgTs)a{^MVyhNawsUm-leE;o1s zWh|@hakFd8!kQ7}j?)5uPdPunYyx0%7VPzse@3097RI=Y&PGGjwWpJv=Q3fl9!Bc5 zmT%#ePDVqPQ>2&QgUp#R&cs8!|NZ_%7kOVcIc!_b@7>I9n=(1(tV;{GYTwTR2WP=f z3q#`s(_3Y;hr1sU z4+;*HpHx(DFS;7$O zLaqywDFcI#o!l0b`l9P>3#Lt-X|jF1p84+ST6iYrf);T11uICcwhn-swrDC=qRvo0)3d0bjursS^>FNHJ6?a$AL>yVbP1482|Rbj z2nTib@(#S`6PCjLQ#5}T%PuF#T2H5zs8vTprz1nLu7SWt-XC$H_cQyi8L<)9FMhcy z6(=OpJwC*vPvso1;gxp$X!EI@pQWV4omNn948W?)E*J5USpLN=agYfVi)xXSH3`8xQQQlEt zPg?My?p1Hnq5KeRFLIker^5F*SwaX(L3cf_=h@K6a+U8S zKdP34I;RN2Limmz=EvZggd^GB{-C^Pr+2i*?k=d!rCs|Y#!fMnE)xqb!kLeww9<=8 zg=hcf)q9Mct*uYq!A6C)*w5AGt|h9Gv2bxCrgCd})^X8^i=MQZ1Y!n1D_XQYCrP(7 zloV#Ol8H9@R#bCH!>mNE^e>qfnhB6!~-rbK7m{L zSCywt)_AM3*0!sc`_}PE%L)ttN$KnSWinWo;%gVmkG_b?^4Bk{MTR?i;1x`~din)) zek~&)N|Iv-x$pH?&+kcyk7J+4k2xqFt%&tc)FYL45nikk$oNj-MJqjPmyHF+tGcFq=yhk2igJb2TP6d5&?uy#5@p~(58KL_yiis^;Dkh zTBHK@)^j{^RoQ#9%-L4oEzQ&nt23G=d1YTavk2EYUjyUg23uNOgzM2x`D7wpypyh{IGc)E@v#KbnrRjl9iVy{WZ_ z&1`W;EIa_FbiLUB^qm$Bk1L+B1G-@FcH2i!S9j3%VA9FHaN44!hXRcVR;qXW zLJy#Q4miR~gGc!SDg8@4g6^okyKq1+SixNJV@Xns7Y0{C?wGS(ZosyjDn<60HhRRp z6Npzzo?7D&lj*Xski*{(yKFYoa&B|sl!u$A4^H65WL_w!)@Ux0zw5fl^XRO?$!N4P zm*LwTVJ(~IP&SO!A_uelnnqQNHNGiW0USXWFEpxq9eilVKk8hVsD!A6)2mFnQ9T6K z~H`8pBw>7N$Un+!Nq74zzM=8CBZuh04-DhJL(M)tpR*HqKT(bn58_(Zpp& z+)JI(6Pnn0jKsIWUqeGb>=eYu_&;uMBMxIGEwm=4qEH43LqSU#`m#KT{)ySGN{A0 z_Mg|NR?a3En$jTakBu$`HnygdAEA1Zhy{&T4)67OU-mt6d&^UouA3UH&!$Vqd81*E z?J?a%<~c}`gj;5FcTHgtY%9DOI{TIaa85?7|1>K~dgG#Y-zRg<$jV^5M~+P_l3UWZ zsd(su9FO{A0+#eRxVDAJ(j_1b=Bku2SYeIf2JrbLuxiTuvU301akb9Ytl_C!kTPai z0+Svh{bB8Wyq?W8-|9n%ta9$)PMeSx(DNjJ^w+_*$ym6AaIe;zTEglIF(aRFQCG3^KdkI{hbSZ5GUDKmP_bMKGd7Hg zJ5=Goll{tGPAsJ{Sg#Z7-Ov+KRgN_L^?=$<$|g`)nmZR=sSzcCt>vvIO%g3y0(Cep z7?95_EyeiXFIVmgJ=dYdv`@k#j}+K_sw_tsUAl`Al2IKk{}doup`Yy{C6Qzi+u z%)Wv0dh;q(G^!hr^|fu-!ouql@v!|{wZze@Lgor{47~!DyB@O|O`qiz5eV!sQIz=G z*k7|%^Pz9ky?1WK*#pj|%UFp^e$i?`n`${l**T!#4{y^B(${@w_=h(wLw;b8XmVyl zsdzRehvzeTX-OluuPGp?1|Hw7u6jf$wuaKUzMG*=;rXxJ<+|4rqQa6@5Jb|y(=G3d zn=Q6#KeL46vl~!d9pzk0B%&ULy7sUG+sI!tq^8bdF5w2%e-TCUVfeyJiOlfWfVd22-iBGl2`AMh# z0#zOg{VUsn)LX}wj6{SKfit;bbEq7Hq!$wKgh`fhJon5^kcm1IuLVPh4eI~iayLow zef_R6uJT;q{MB1jr?VY!=1r;w1eV(`GH}Hu>lSZ52G&tl{a3-1+Nv|g9EZHlX=oO48d?Qs3SRQBv{ziFb;M z<^)<^721H6P|S@j92g_`cHSy+I>i6Div0Z2n^a64WbVitmS@C z*aBD2@7-JSu=X9?aBBP5T4r>hIDUM%w<+{7DbPe*7fmj-idgxLNvfDqcxQ z@N|DWfZs?1*gnJiZKq3Vt19mv>GDb(8}n~s7Q=vLE39jMFpJQwu$AKB5uyF~Ph z6LZc3s6=hjHt388OLYaj3gzf9h;aWLmAR2=Pd~reKp;+kRuK8u}{8jgrZE zQ_d%RY*J2jIg?ckIH1_;b?38akGqNR%C01HZgg-@K)}IM)iuI^<#O)a?=PEKx1P_K zE5&8THgs|LUgl)|Q19_*x4a3ifOyuY>C|x*)->N6@#`aES61^ar}n=UI}X}dL2Hwz zt%E?s8R**?XxTQT{^v;~WA{AySud_ZPgnH4<{H(%UbYI=@hIev(PdDH+4TVF0{wF5 zknLC0IqztQ1F*gyuesZC7ZE3S?cvD}Rq5X5`5(o?3Yx3Gpc2cpPU~FJmvV|*Gw*ei zc)Q&sqD$+~Znu`UUfkmu(Pt1%_cz$S=Rt6wa%^+CxZu!W4rC)9yZw#^2o8^-i%$)9NPL)aj^E!8Zbv6%VBnD1;vrmt%LgxDWr4W-EG zln+m7V>-b>S3|C$UVeIy%9oTBA&-A2LKC52A~i`rS%7Q*l}0YI2*Tzop%~cqyh}3D z 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

    5BYV7H0FPMWFPX?c8h$2s{s}n@o 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 !B2t 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 z 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
      !h%OHuQ1j82|h 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�$#JAu0V38PV{ge#Bv>zKdMLaJuJ zZ-bluv9G+o2p_nKD{~NIimu(YY7Z#S9!z&k!9E)0Lm>J z@q!Ry<81kJ0Cz9l{*(pdX1C19sJtbhz%cH5lAaYUdXJ^n-+g3Rb$Ll;{ym@oeipat zxE3Xj1AgA3iqGiK}^A+(hmAn25d66!GJXL;K?l4&Vuy z4RCUkr^^1e(@M^RVyJl=5(%!9{?Z(Z77m_ui)4BTdnguKiSXWWOshi#ZvnZuvGmlV zX9`Y}zFjhBodVFqZhL6!{6`pJ9C?K!-CE^>Xi z?;o&PrIB{J@=z6GgWv_og7`ncEpFG7JnxSk*g)_nVvaKYU1-@R)l) zy+WdMA#z|SV|j}9aW_Bv&(kiqmKE%Pvo`_wjKfqM&pw8%w?{e(J6=lUuM3#TPDIB3 z*%M$q=F0xTWT27Ht~%f7aTQvNueiTWy<1tq?rGK9aZz ILU??x?lD z&fTP6N%C!w6y`GOAbW*~H{-pM0|EBz26_HhHqGi<%cTl0!HY(21B zNnbMv)^)D`AGT%x6dw~+Y2QOlZgS>n3yq-RpLIq%tGZEBs>y15io%9h)3gkp+8syb z3|xj7w6jqiPZC=)_Yb3-P~1Z`<}k#TyeN(FgajL=KhM+kV0%D3yiC&++C(v(wo8tSbceDnc zlYyCgx1Nx1@Arp9*`R|XZ-)&`e0wdZgv7?Pk)89XpzBN`d?uzXHXm6{Jtc}62cK^E zxAE>|UvK(Ya>Y!r#MrKYsQ`pBG^x6;^5cqx6EW(irf*ZwAz__P<3Kyb39G|7MvW|? zum9RuGps;}+Lq)#49)iOv!ViuMpL*daTQ2a3@?T(5>iCT^z7qSJ+D17gJgefX~be< zAV-vRR>w5DHN}ie*)`-dv@mJ+MoCZZXiPBU0VDdQ@;4ocpp?6#VA)T@FQ-8c`m+xC zIP6Xs zDgSYs)_gl%+~fkxQEPMqrG1@v=m?DVnY1GyI zd49g2DAqwrf2JWTYCRtJ*n9IwJllY8!(0E}-Cy}qS*?>_uvvl?`V#_EkoF3dFO7x7 zp+#eqi@(H5xN#7s{45}z3!6x*CM_9Hz}opU-@hYZ7uCgEQ_Nf{3dqNF(t4giy-o&J z;^Trm&*PS=1)jpc8k7qyk7!g9O2i8UpWaKFXUTmLWx1c5k@4MrKH2+`_5Jy%2H6JC z*B1~nW$Gw1yrM|!`H5f2c~=kExhEe}jpD_o^X)8kigJ`{Wup{4y1+nla1rZS$=d?Z zk|tK7c4|Bsz!3|mb!A$Fv&!2|qs?=lAZ!L3ZG^F>#%D|^UqDakCFyZnqWr^M{VCD) z$0edv#c~4z`ZPr~jhkJQ6likf74mR_SRJ|kDYu+#m|Y1PR!M=eeLbg1WQb%cDnYav z*hE0p*imrCq_L8bN6aKh>_`QQV!Q0#zlH+ZJFVkz}2{V7pF^4D|Ek%Bk)SQ`Cq`*JJ+-t_8A9;yoPqr_Z~0QY!LuY{Q!V7@cRD@_#1%Q+%>g2( z2N?|$OS9`s&)+^4g%#c;ZxwJ$AOJqXxFO0vy1TGJct#4)N)={}tOk+(oZ!O7TSN9P zHyZGhO=GQZszKsQjLFZ|WnNLL)grca!#I20rt1?-d4hb@z#9P-l^(#Y0F&TsOw^4` zbGv4t8R-SWd=v+K9}|s;kff|$rZI||cQHWO>oSJ>=XGxZv6F{_JCAZ6$<#^HLE7S) zaUN@o}S-P?5v30)G$h5)3Yas*k1V?8%R}34u1Tb_}E5Fbuh9KDtkC+`N^LX^cyK*B7}JFM8${2Pz;^$(7}y5B*|T8w4l1% z<^LQy+0_Zy2yy|A^U88|N}7cIMnHQK36%6nE&!EMSpk=&IQI=&S{k#Uo(LgdLu@%i z5r{uVfYQd%v}s{GjDq0E7C}~UBMdl(-mg^JXqygkM-^x0M-tm5=@n%PC5@(9PfDZg z{uAM#Iyyt= zj4ni^4O6S;xJM#ckj%9C;f|F_Dq(1n_>FN5Q)Dt7H#0RpJvul^Bu-by%ku$+dIv?J zL_<+3RLO8crBcPL(Tde_4a_kAOX`+s94ZK}abg}uTfYq6`kpcvM>1*7lV)Z!knS_= z%XeA;!|V(#O>K>>&5e|#1cgGSR2@Y15}ihCjzP}>+_eVEC*2JgnB|ULi8YVM6r(u3KcCsW^jhI zA8FR$@ja+eq6SgwII2{tR#8b!QB|3}frW{Uk(HU9p{1#Oox*2B{%=DkLrn@`%9-o&$>IwNLIO%zLvW2T;(O%Y9(5GvL<~534N#qIok) zlX+-?50uEElb?|?{#?=~WN4UOC%RglDm`6cs;!3!2{*|eyBRiMdP{m|b+$edj5f`y z|8@&}_-;@NYRQ*#c_v&SC7J;c{~0h@x!^{qDY;ZLJ0V4jH1*!LtsGelnT9AOPVNAB zyIGfY2_(*#=O`#67Yf((sC4LP=RRRm$$Y9v0AsU57b9ke?8?QYQobUSIF!4*+qrOB z?Bc$_0ykW10Kt6SiwEX#(O{)OFBoe7S?1FcEI+W6B}?h5 z8c!qec`+FPu+NhO3JWF$w-qi87YYmax(^&nlHP z&3U7U5pK?0Ileg1&H?K~HK(mPrgxsdv*MbPGRBqBNK%C#bh7MO(eWDcv_7*SO`6lK8YGO^JL7BI6dYPYsz|IfBr@}TG5%8CB6nS zOc~&N@A0lipRW7Bz1Qis+^KyX-N{a?POtU)k$ylvlpzfd4i=Sn+tEaEy{%Zp2t`79 za?K1$C7`F7iYP-LyBV#w2YE<}UI|l_b?h&Jq|*-gTRO{EsJJ{~HMOn)8fTkWZj+)a zScp%IZD$T`r0I`+AZI05u73pYjpq%_{G9Kv^y8KYHkR=YmO8Z zwe4dbxdVU5AvnFa(!hi8;b`5p)Zx=D*3s?p=s|T0rlZ!qbj|adj^G|mCU3%aL9%~!#N;3a-&_wI=tsn+(_cWG#HXarE|ECBs!XgK` zU;zM@82&#*$ieYHBAnLJw%-&(^Lwqsum~Ixqa1fjVskV>-L}~Plguh)?1YaNWgrq? zsFsAA#Ee=o^8fNXok}RQQLI3ruZM57)SJnkbgyMjzP)KwsaCOU8L!LJiJ8fRNF61c ze?Rz;JU$sjm;alUE0YFSx4*ol2cI^Bs($FGyIS;dK9&-FKRlUEKkEK8W8g(JWKv-w zgx>D5QDXIB$Mk~!ZC09%(lNF4Y*3=A`{y?a)yApJ$(^^{^&o9EQtMm;_B~JHOoy9x zu^`s8vbO)kV5>xw26h=gRZkaQ&zoy7%e8<@C8yKb*yuhrBE7MBLbu5ycaCKFy@o>7 zi?`k`hpI~jiidL!B5z~`Zm3b^@dlf?6B-EIS8puz<4E7S7oVLfYf7dO&5??h1=jGn zT1DZ4WWMUePR;b1Hb)13Y3k1=A!5LMSiY4kpAXxTCSx;Ia>wF5!}7{{!A$f-#>D>X zT&L1Fj6O^V`5ug(GIc6ko-TY}Rhc`l$1KQjlSKEw_tm=IzexDNiubt@f067XFW!KY zQSsSL+CtkgWV(c0Zs_PclNtyraq2Dnqkhiwj3K!G{>jajiSnlL;r{b?I#k<=y8A|? zCPW5lp2jYe*`sy{#IN86+JQ34;k~-Yi|dckya`h&e5ugMxZo~Y$&BtJBXy1eOkma8 z`n-u6p8^p92qqFRV<;=4bb=Oeph-q_Nrhy{M5P*8Ka}arfO2(0)!MT{ylSRacP3f) z5L;?K-lc$CTBHFp9BO2Z=cab2|1 z{;LHOT`BkVr@L9Li%~1tWD-Oz8H5Fjdd7pAT{O|+FZDHoJF!F4fr%}ElETe&ri$f_;>vvjI;o^7u%lzC zQYuJ^U6ZNvkS;L;;d9y3d#`u+#Ya074~m22V}-2M{tiNGP!}jQA9(t{%)ndJZTSo~FSU^sHlQ zU8@`_Gj-aStLsz6K<_GP8?=gL{l-hUg;^y=i>-y+Mop=N;l3o_FZGAV(L%qF(-9ng zlUNwUcv=^fw(I~3%esuzwFX!jJcYq2GGDHw!fK@jU!~z}oqXma+ZomrDU2Jzz62|? zR5?RvLjYYl_V9*(i4~wHuVVReX*A|NeG>dL_FRN zP`sDS;6d5O4s2H&1XQmj^6JBFLbF{D3WZDW#`n^hAfvL^z$-J~;wPI?O4g5PW&tqV!Voufl?mdI8c|on9A!T~iljMi^$Raj=7YHHk^YC~*zNMiKqWSyZwjrM7v2-Eb7Tkpl|Qx7ONv&S^?~MTN{` z5A!bBvs|hOZif9~!@M2S{)_eBq~8NnEo8*6lQo4z(IBewNGf|0j(ejMtj=NJ@u9_F z%+lw;RtOm}aT4(B=$FAH59_y22i2(;Oh> zfhIb7FAQH<*fhyz*)DOR>Th?qP~Cv*Ijh7AA49$Fdm<@2`~)fZ7zDS)#r0jbE%Aqd zp^*Cz^Sh~5&seliizxh>orKVJE_bXv!A4`!%jcDroR<<^+ihejZd7#cafw9k*+MqS zJOuwqcU(YIbnHvb*(HjDaBETAq+xYA^X>xJK`X^0$h4;M;vnG)+ylh2i2wJ70X@en z1jU&}%U5*rZ5^J+^p&)PtmmV2KMb7T0?~NF=kmK+Job;rYiLWnuG4|FGx_LvoH~mq zgd-eh*Tc5uu0ovIrn?*o6uhri?*?> zAE!EqbIrg_8#0T&`9T)+cP0V}=d-n-1a$WLUUDrF#H?bOE2^?{?v+h}WIAc^ZdK&A?jnBlS&M819g&JOr#o=f#kl*cGw z9*1CaJKPrOXbiFtKa;<3i&S)m0*otZ4|G$T>dhm5YbZ_G4;sLqZei-%EW&E!Fl78n z^*kEm6$Esws6#!jEKMR1aQ`fdXz*eREvhN2C9$!hj5SLgn~-`J68>e)sXvF#Phi$( zJ5d?rL5^)QC%p+^+1_JCj?!+8bIz#}0kZr>R7S01X%p}9wPGd>z+jS5%|uk;Cb0qY zW*!t}@HZG-fxsS)$N2b|a8uAM`mt@LZ6Ao>7<0%F%%QnvNrL)=^Xi197*0+H>1R<@ zWbf55gL_>v6ht&Jka8CyjPg!BE)H-tl_uOrNL?`W_*jQKaLf4S&7aQ`lBk`G+G%>Y zNBL~4c|58%yb(7WBN%JBt!X%EfUZ8=YWwJ1w5|JY(=3zY5>)Jusax~aF!UQlD9ga zmoZEE7=A|DOlC;TZr_ube-_6I0`B%JB;cd>&!VL^7Lj7uq@cVW^+RZ{29tVk5T!o z5RF*BUL_2xvJmQhZnsc@cV#WnKhJW)Ou=}gz1#wenc>+ zA^Up)^~=b@>gUUia1FBC&tTl*%=FjJ`RfW=?;q7i&f?g=6ac#?E+_=qG6JGG#an^- zKWU&w&`wlNs+~97@(A5L5YHCMZ`+mkyuW+A+Tu*9S45#4{zD=2D1*-ae+`Sq`6q!g z{ZZMJFD&S`oc<{skhlk!&8dg4xv8^;4zm`c?>TbVMBVf# zN=0qJaN0Os?T;}nAM+od$~l!Pi^(y zOSX^5cd}YzPVl&1okKK}FTPce+j=y3sW$m&yodpBZP}TG)!iZ1OJv-$37GuUL8td5 zeEtkNsakroS7zD97^j!$jwmEaZ%7*k&2z7EI(HGExX=Dp z@Vp8pD~_fjavf@KTPt2lMmy?Y2ioD&BV49kYPgMenOooH6NF_8HGw5gO^ZvH` zaQfU|9jxCSWSKOqSh;-L>i9H@R&JL~qSK4J(EOw4j(6lgHQtI8au##1Db{>KXoNkd zNiSG2mRQ3IbG~``Zn%u~qd2Rt%xfd>_(3}pJ0M0jEBUvAfVRXD;gG!}H{!HG??KI! zGt{Pj$mkSNCC1E}cIvdIHGG+XK zq+1skvt>?52klYUu21^C!@rV2MErN6cK{HHAQB2lvdRFG+i0%q0Y|`lgqka&(o4t6 z4Ji0eiEDAntWxA@Jd%eahkj$R#NIgSwmfoH<_BaM9FAm8aix)q?Q%SeDzYZNFW2Aj znJJ{2a=eRa{(L)|+ikZyZC!Z~#39*d1P2O^%Nw4!9ScRU5UTueJ;RCDCHG>p3jji_ zb35u?vKKLb~A|?1Epmu-oLX@bMe%LLIq&hHbgUr9RWPeb}2T zw)U?}{vDoS&)^GZQ59TK*y4BXcez{S!_PhbLL6^$IUa6adxI1j!Jm4JeOA}raA)a! z&_)EwpFBkr!29eI0W_!yQyz+WVkzS{?$_tz;E*_8H{o=|FmUJd`t%Q02xpB~l`2RJ_(7=g1U+d@jYWmj~Y4A^%dKLA#U*c0OB7Wi+5#o?lLs3N7Cil`ICpqeLl|@56^u3XqS6GatOuNe4B? z`}Ddr<(}O<{?NmZXKZc9a`#{)?3TzbByAWVGicyz9k|)Rc!tubuaVGrA{X7vE@pSC zuDmD9n2P4`)N2mz=w@b`)pP&3=koW?i4ZMIUrTP88I6yUeQvPQQ%Ty_x<5Od*(lEO zFxO~9xteuR=

      -056Y|Q5=Mr%fliR+FHO|)I*-c@H>+kv`;DzxIzHwXSB`o)f_OA zq-nx-o5s!6rZ%E;5be<)(zp|2@4Q-_DG__GJ0(Sw-m-#m^CTLr(8XAF=jMn{cXn9~ zRvabTIl{?0a|tm1a{actcNQPsa8N>g|6m)ej`Nb?IB+E7aSdZhV)2B2C$v-4vyCy; zhzRn5n6iwS9wt=$A#T-*ob6(HAP5is#W{)0m5u3NKYKOMuzS`K`S*L{0-d-8mN96` zYmL1sAbV7%7jp$sqRpv@lL-rBA(75c#r?rbB^iqms~$=h;RMgv{97+rPd7F01{V_t z(#V@@;JP@_5oGg{sOwyaNE2q|k=@GW8JWPPE|t)|Xd5!yBZZZCjP!EW`%mH}`x8); zzXbbbZ?gGx3!aZJ7@=RGD>BuFp;B`w*$95*9@(*Re=Ge=TAgCa1c}_!%sq_EJb+Fh z{-Pkdl6f&S9bzG>3-t3&N_?xqX^jqtsH(cP$Cjj@ou=s$?Mwf~6xJt*#O%=uK$FEA zI0g224YJ#@ZQQ7Qpef=;l5J0qJ)PlpkRq}^b zA_Vu*O_V5)3t19F`_v%8f+$o_7^qL;>QoY|kqI;qv@{t;UXq?AKBwmRBKdY|!bytU z#i!BDSXU|Q^`;O1WVF%DTW_qf9cB71r5-(Xj$@v*85k^ANG>Bhrq>Kr`7{d~CPU9Y?%nC2n? zl@GH`2CPBiQZi^)%EhSxiAl3Bo5i>iY4PgtVUOm+7f#xS`{rSVqZVYX_I01*&VZk2 z8t-w_0sH|C-xuP1yAI6c(O^axJ3gp(cp% zxO0faaMFzjXUufrG`=Fi(?qbErJWEdUj6WnTfawP|HV1t{T}WxtJ8YMJ`HxooL({- z?p{B&)GHj;0hS_6v1WKvl(bu3ugi=lkwgHKrA<8zr{*B4$b_#I%DrfdxDX3;i_jsHQTXO5I-B+;_nAwU>^bjp=t)A_pcW@_@~X0r3_1np6l6IPtxBH z>I*(8JgZhPYYv3VCvj{14>mgY%xe;iFFmU89~>rnu%u)Or0kPY;0tNsR{(}G^br{f z*s@rFXmGu=5!wy!DI`YrPNMj~+AD0-J?B0Rk(1A)YhX=-vL>I{T~3?wEWi`!N{ zyGV~XZ`eMS&VyQDnD3Apu1mt9uyFANvcq}r(vPgmzlsrJC$t-8oxaJ-3jH6c6W(RM z-;eOcr1<-E41ce06US5$CC)}?Nufc(;pO`RI(k^j_lmMi7+75LnSe#I`uPXgZ${l0GBdxEcwB1`m85Yi$EdA7yGRM&dZKUj5 zUu^&IB!i+15IlBSG>*5Bm@bpKLo;B@1xr0ri*LtQZrmi(xLAWL#gFHHWS+$#KHj@m9|O97FY`ku zxx8~OJ38?HobKyn&7aiYy=Q8}6t`dp#Mic?wyXDylsn{8*Vt2+ulPiL_fI+U(sARB zLW=iGIi%qI-0^rk$X~cboK|z(cZOj%c#^)I|C!%?={&5FR3C6b*A7zMX+wU!1mXF) z;Q`Bg_xKr^7;T&$j!7LfLC3%%X6wmdI{WI`BtI>F(9?X-KP@6Tj6Q1wmgU}fICP#| z5(GhM1*BnUfmzN4rFI&ZW@YgLJC?R>D6a`sII zpw_X;Mz*yK{LNv|#VMIbE&pMnfho~E4h==VA6^oZ2MOEL6Ry}NOONy@N2jyg=2lp> z+q%<0IE=h@iw+>K|6IcS2Y98E`TeBzWn0Zp;B%5kXS&Uv7p{HqVh+kPqj=!m`?zDt zLx{7s#!hmG3*_+79cHGPE&{zDqt^~|3F53@@VYXBaWgT5MarDg&Pdyc*h$(C7J@xZ zZ)wA-zhS~7Fv!_D;dyqqFFXV5wY@JK4yO%{gTW0phFIlg+PvU)@#ENT4mo%A()R9d z@1QpU4@cwSWilZ(ld~zL$qnUAu;&f+2G1swq2@*QWE_r0$4T?bouBqJ`SkMOXRGx& zUx{o+O^qOd38$iZBE~AEyJmUSlOa>d?5n8?L+_%dJ~;r`Kt=It%AkJi6vmN#o*b;Y z@Exyq@N^5xnYYEA*A`x7bMOV4J$UQv1bq_ST3Mfyx656GH^@g3p#;KG$_>JdYZT?c;vh)A4XhPm8%I5s$UYE6O5hY94F^xrAfg{6e~@g1yF})TS7Q#* zQeeMG6;U33j{nanKHKe3oBttG9?DkWbKdt%@`=Z8Bro(-wEbvg%*+YeGrN0gyRwvR>32DoHLpEpYr$YW2Wp`&k8UGGjGKeqH=gjTB0%;*CN<0ET5jB zxw6{R(lQDeyknuyue)f>qxoAvw?U5h%Dpzsr*^pQC_8Zk^9STO<)FlH;&`#Y*zbNz z$Tg9b^I;ZDAF#`%-_D2jS`yH^L~^o>-?9wOhcOu@BQoin%y_&dS_UWDv}1obpXrtP zGd}j0l$G-`y)3LYJBClWW;p%4UZ&-{e}fLTvewy47M06pv%hB-Z*%E#YyU}pi%09l z_wGD+J%anVulr+3QDAB1;ZsmdJS2~Gcy*A~ZYQiR7}iuMY!%DY&RQ22JY|C_*_(*q z!if`MQCU!wz2pH@bQra&4noRO+F3122*s8ss>MoE6wNw(15BK-=*v-}HJKjFnoh#% z$PstAexgp-0wqz$T7AuZBZnXu6p4;l5jVevFb6cXK;>J#gus6q$Slt(_*FX)ML;5t zk+aa%f;xFp$wQwwkqK&Gsx~VNW8rT)6hd-40TTmfawNoC=m;B5kMJOblRrkWv4H6M z3e>nNS9d8WOn|XkEP?2nNzZSbd0?0Du%@W@VJDM{CWk+Wo++OFk!hfdazz~+7Aimh zv$uTNiU?adVr|Yw63@rgt6f&Cw(~qM#*S5pN(REBLlKh(g&lXsZN&W|8#X|`Gk5o&P_(&WKXqX4g|)5s?o_A9N)<}h?E+!AOdWy;}b9l8=} z#MW`ZQ5g$77d16dqMgrYGB09)jVKKf9FIyv&}vz-k8sd2>10DUE4ceCoz6azVF=E3 zTtj3BP#Ul*o&%D+l1hQZoD-A&SCh#NSR7T@;WSABEI=TXnbo=?Fgbm23@B!If&%Kp z0F=ZkUt2DNhB^&wXT97Vd3^a`>et-Mpza(~@u|(KZ}fig_0S?_&H?m~Z{=1#C6T?2 zPyfZs8H>)8RX&@JQ=-OZUDSW;u4tcND99RPBE90XZ|90c1Y@XEn}|xLYR}L(TP`qF z#v96D+-T09@o5HbMN~*53^*L>J1FFWH;~b69*RT(GcnNBbGphb6>u8z{1gBly-Dic zT2&RpGXdVTN%I1bKW1NP-9FO#b#zeCK^?&cW=Ok5p)iKB8pvN+BZtBnWrbvdCv;y# zGryiq5sflCnL-+6g>(W9>Jr(MI`lq7>%Nx^t$(pHY3a_@<@Y5-Vg~o0_h-fSuV4l@ zocHUF&`l7J?UbFr8 zIoKDaHNY2z3|R_Zdd(9OL0eTN|7_nVE))gLFzLibTPO>C^`zg+CcLCxqeFsaS*cA5 z`jeD$VCf@HDq>R3F~BT)Wk(6k!GHi>G*K%fb3ZqFz8G1Ge6bt39g_tZKLv8~C8%@G z59N!yRrC3^a{HJCPC>h?58t3K^f`Q3>B4TADbl38O!e}cK}q5YksuGAP^ce_w1TFT z6i}zj#mT9m6T?aZkBzUqv!2-180RiH99`fV%8HQSuppa_p|KIylvSIKk1az5wZt6B zgDzXPlmylwU6CqAI6> z`o80!yb`j$Vt^r!Iuww8LCXC*8>t-ZSsyn9ql&;V;YPzLP7=@$9ib45RW*bNs2_n~ zKLp+ZG)^TFtP%vg*NoIxAB{vvei$9<35szM-3q?_JnEcK*6c9&!iXwGtigRFbO~c{ z5lbswo{G1=K>2!FF7(1QOb8h}zs2QbeHh{(v~fEoO-lKD0yFc7YM*KWc;=le6vJu8x)^tK#=6o1m9ZfmQ z0{2p}KxKL?U7~-GO~Bfar!doxu_nWa-hlM^0H9qPGbFa{pr#6mrJyA>pjIkdzycwGP=G;Hja<%Pr3nmS zr73NJ2FwJvq+rZTN;t8K5>~WUk_Whj0bB!*VX9u}0Mq8l7GUaZQ{tRqxVFRvrYmlN z@ybhTv>v;B3Q!9d-L1ZAJFkV#e)rTv_-4=vfy)2keaI%4unw+ko}1kz_W^ zPcefp>L;7l`{Ogrvg%tsY<9)2z;zf9sPv#65HIOa6{r-n36p}f1=rlO_;q7IE9O`B zI~NQlHO>#nEF0AIJBP!hAmxBzQI~!4D!F2G{2+B+&h`QF2@NYXwlK-pjXyT~Up zxy_YHRpdT0&pz1R0*GmSLacQfV{8_8b8n+&8&NxepEWEF`Mq%cDyFG(cT6!2&W{!h z#ca^5V7D!E{pp!*XD<)>ZWk8XMUUqO-Zee@{EH+s6Bh!G>tt;6rRStz$opS!@fB6D zGkr`>ZMlOAd8@DBdfZoj;+UxN-X9=!b?OaK`|EDhyTdCydB>QbIVOjo?6cxXXA6WL zn**LG!>&kZifC>bo$UErf~>ocNN&Z{f;N+c}M zxJ|=vr@mFdTyge*ZrU@nzRh{8x9ymh{NGqJ=cr~Yv z9Xyp)1ufC<2IPyaxJS)Jp#ideO^_BZ09%kNHile^Rj*8yb{@(GKjM#`2gDvZ59flP zYsnzDsR6ICXJi4N1-5Uc=tn+2^BJ^`Rg$WiqRh%pKqj}q87lOlo^I@qr+RO=p}A5d zs4l1uYcoWi`|Wc$$pv{Ip0Cvz)__GnyW67&qMR5gn*ebPz1M6d*ML4LOr;VPwQj8k$e$1^S^!Yxa*O->ao4+(Ld|)!5t97 z9Z+jWSUF;>?{Rd(FH3m2Tbo;Gt&D#yNrpLVjkYc}CZ{ik8;kQRJEW;@*Bc%7v+b$< z^EsbxV__=wcZ8DZKw3e2P`t1;0GMTLU=yx=ES;AF+;Qy?S=*E>O(Er*bEkOS74mD;L z&i`?!oEm0Of?SDM?W0SOc zV1QR;Gi6oejxRiR!lZK-wymVdoi>}V9IUqiN?013yxEHoD=g-sbtHs>`N+dXkV@ENss~N~?bZcGRgOOxW?9^I|A!H^R0L9u2UX9r8sGWbq%_sijqVn54` zO-Ewkal+yfF61eBZXisfvuouwf1B-zk1NvSg=2iW$Hb2ZUuHP9{pcv&S`izi{ppP7%{p*o#50Sn6r^!L+**xql{Pf4+D;g?jq=KpWEDfYK_EL!!p39AIAfb}S19n>sFML#}bN z?$#t(7c`S--YN1bgWWziFDJ5&y~GTbtF9XHadCJ&yFk*mbV_UL@@|ZOx-MBW8$1Yc z$pg?6V%Zd>#kR|07Hy@bXfZlE+G5d=AcGO@l%mN_a56t=IcDO$&Jr1h8g8h>podCCaCb(`=$VzxaeN6$^Ac#A0e$^5CsWEjECj7yhTA#$gD{ z0l84_09D%goCmCdTTdRv+7#+U0s79cYW_5$m=a-BA=3+<#{G>$jHZ(UvAeQ6$=c`4 zF#N;9UbDM#J*`B`%PAACN)2v&i9>msPiy6vu$T$3y|Hx<7f=_AT+JR<|6xFDni~{z zw$-FnD)4#EKskuD{2d&yxUvq#p^Msd(%8+}-@i*auR-`)S+;CeBzExKiN>`IW*f=P z2z*Pp#fyWV@X6hLRW9ulTCLY4KV8C)CV8EvHh11X7R6kj^XdO$>>QgjfwpZOn;qM>ZQDu5wr$%T+kRu)w(X>2+sWxVx6X%s zKkff8s@7a%%<;@c%!rNx$pkweipJgl)FfX(UMBuOP5yxX_nKt-zn$?!q4*6(q|lqs zs08o526@Tfu4%T}DU`}ISAg!vI9zY`dPXrj{^Kl~ti;$FwB^$q6f=AD9t(mBi@CHRIT$0$AE167$!9Q@5LvF5_)#{axnAVb9 zpp@8unfV76X=>|zXco?xBE27R;dV(#x(5oHb0`R_?kspof)jfTe|eMriSx%7#5zJ- zU4pJj0M8=rHWiaW^(RoB9b1hQ@z2rfD)8ccXVv-yDcsKynH{+!S1d?b7YffrK2gBd z4aVes>*H*NIe}uu^V?De>wmjrKOp;9G)UUZyj*u%@rGcP8ZgF8rIKb>&B(XIwX1Hq0iolLZDw z46sRU$QjHV3%iZ^6Yk59p(wlq!d@_gc3QFdq;KItYHj9jBXSfGwg-Pxv|-%{Wq<~? ziY@6%8x8eqlZVA8!cEq;*!qF!&TDvo$^pL@ zE6(ZROC+JOyF8_8VmYaDI4_S;iCm3(^6Ffwh~wekVt8+N+c+yPM0~0h+j!HCE<;-Q zprNBjOZoZL{rS;k+9afpnUi<_njE=D6v19mDmO-}y?yF&@LK~?W@93T5!2c=bP}=F?o7k;dash1ahfX&N z5P%l%DOtm76d6`+${fwFS)`6}Q_oqegj#ax)^^1Vq`o8wY&Xlor4ZBRwGai`TWvx{ zi?=xY;od1@zpsUgOEcXPIvJ-L!9~IRL2iLCvkt|R( zwUmc6=PjQatrD?8!mvg3C*C7)jR)COOZp8@q6g(A6f?>T z>cA)OgxOwQIYFq#d8_+4HzNjfIJIg1^y->*p0$frJBEi%4nGFBHx%1vj?Q)O4I6GQ z@B1@Y(g6nie(&7)J2a2dB*dwMy_#P%j)! zn(61R)UGAT-$4dCVv?W*x}n^^Tc;Wj-VHSven3*eFH=sxu$M|$FH>4s%)l$bt(t@O z$QGb%*U}~V`~!cmHDw+p{=)eC{LHZQGM*b}0q6sU%=e&DCDxA%j1suocq3r60O;0^E{sn1nf8VP!z@(7oDdNdCfTl2M`9**jo6$XYK0!Y6- z>2Qwct(G~zsTrk>>5;^R&SF8Nu^(bw!5z5P`m=|Dji>W{`PY4oAks(B^1FitfyGo(ILSpiWW7QxB=r@MK|}1IfuvOJ-MPw>3G4&$9q9Q zHgpKTsEVJhXc)7wB>rIUCDIm88#EGf`kOx|*UMJn=mOif*Q2R^^Bu`~FYzESiV5xn zCSO0XZyYIMASncHLvaNB8MA7Gu0m3+hMnbBV7(jrZip7*4(7!Xk&=fw+D^rd&W>pk zP%Tynlsxod!M+DpWEpEkcvK!iM$FE}w6zHy1FiaJWi-i@5hqrO27vWIlc!aRiJ}N> zbjei0E%63^*)e2|vJ1*7PUvI}#utb&i;BX9{aXVQf_B_a0x+74p)RP-M7vI`gKF17 zii$Z6((hv+Ne?ak2Kx43GbM)9ADmSv^VPg0p$8U6B7oxp{6V}qD0eqV_7))I13ASL z)oSEAGPpVef#yDoaN<$GY>7uKwC}4V3?m$^Q?!#=f=JO6MU8WZ(#_z0prD0s$=vuw zH1M+?P$ro}7UFKqydq;;o`CQ4JOo>W5mf_JBz^{wUS0xWv1pu?=D@4^I|#U==z@id zpc102Lca0udOlcfO30((0V}7UF%lcLyv_~(trDliC5Rf<3go{4fK@`UtiKmN*NN@d z6)R})de3{!Dx=2qi=Bs=@R#C%PkbLzMHQI|I6q!i|zl42DYTB#4T2Pm7cso#h@ zkCHMa#}WBtC7lCsGkSWf?Z#AL-JgJsb$Xxz(-adBYE8g%tgJbBATM~NBo7;TVVNCR z3OejFOAhK7=o>8a!{wt%0b_M&1zX)hs7T}^wd6W*+MVh>>~bhnuqo3N4>!+{ysX+b zD9`kap_{hqbp5utyp1z6hbEVLom%Hg=+q3O#CsK$T-y~IQ5{*5Jb1b|jH@)h^+*U1 zXq1z(f}Y`d({?QQ^ImSiIvWq|Hr?M*(kvn~%#vYDS%_hFo?$Jj`=!B3!>6boC*-pU zYxBAHGP^I8Ui?^m1Sg7L@QygLen|c1aeFNBt~1g8;Y3d9Rk~l0`yO<^Ju)GR;0ju6 z0H2blhEWev4yP0Us?`Kz%%Xmyj-r)F0yZd6DwPK~=ZZ?H5~D0R5}N^-nJ-_*-FVTN zjOSAYq$rhpB8u`q1S*SPy$zM~#o6%y8 z)zX*spnpQas&DN^aOoL}syWi2nTnJr)#~%j^8b3M+Ao1fiKHtz0*EoRtKMwp<>0|+ zs?Ufx9SP>iO27dis*Nj1Zt$SmdP&L2zk;R5OJ0J?;?qP>FX}cNzBrLa34yf1r#cEz z>hY_V?s&~*W=_`ra75g+wJ3_&1JCVWO~Q)nR<_VU@~d$5rPD!e6nW)eO$7eCd)4R5 z-F-@j0Acn*CNcrvqb?{4b zYpvsu=u+?r4FW=pwa@&d+8EF@E0kjPWv~Z*K1*-w$sLbs$}3mWJ&RRYHY<_Sv5V7H zS|Ph9t{Pl(6?5+xQ>#-s%Ggj^V`3@2qPzq(=L0!9^!H{x3;wgG)*^VzaS616F8d!z zb=t;JDBlMj*(4jAQFiqDY9u|+wy*sW$*hRz(dX^Ovy_1F*vF9S7y$nRm`)KAjbKad zq$g4&!p)yVj%^NijHuOCXH|5sMQ)1^k@FWGyy}b`#L2DEAXYm)fiz#gt*^QDa-zgu zK%~e)eO#xc=Z3KWReBz@sKaRE9PJozjf|flRQX)b%Gp8RL`HDjp1O;jdWQNrhqHfY zCb|paVGV*nL^bM*mCdXh^s#MDuJDAr#4nNmbkbhnRSsUSDjoup54T?IgVIGz#42cj*nK)9tQ@t98xNbiTg;T3-SVclfwbL ztY-7oBHZ%x(7Bu?27&z@3zAh%zkGvGjlCHt6Z66*+Xa-S9`o$eF!?}tb9_|dTYxqp zU4cVshtCCDp|*;78PGYy4|M)Sa(qawpfL&!&cgw_o3Wg% zRtH-rT#Vsj*L<9Lr^=e?oTn)a3Ofs>qRLU4s3gLI%fBXx0pnJSwNhflDyt2gu`)~@ z5G1`u(u6SeHh1uPbwcw=t#Nw5Ps>|P!S|jj6S1gkhZ8tpu*e(QnHIXOCxy6c^Lk5H z{V^L0qJ@+;lVng2OxeOun3`Ue7NR-ZIXwBC!Jr@{5lWDYO(|G2HLT5N{b4F{R{i{A z%*ZD%qOd7U)%hG5n;TV5a>m{?7kw=ZM|FrYCArg{kT@7J$fo#hs3lfb-an_=$s=+> z4K0g=@T@uI^|Me4Dc*VlP3DAJd7HQQxrEReX|hw`)Y}*~7IUjwbJ`xI6S~`%$Elu) zQj8^QN*gl7hjFat@<*E4IeD?(2idh5Q*Q2JddWQrua_!5`$UKH&s+k-o*a|szT{h zsr)XAo`rVxO|9V!lI=-5tFRo2Jukx2fPt)=f3dU!o3>WWIiEfI;pmOs+kq?R5)B0V zfXie5Bwww)wnS-t+J4H(8TPtrG5=vQfH)XC+P-iSFpVAt(V(}a>ed%ejJ-Q_8FFJWHPL2fut@6!?mM z;k73$O=Mj}fl+xrQnwl31L^{jp%B{5@Hrichs>DFsqGn^*(p>gf)3H0Xu_$)1J4w| zGk&a{;y7-ZWMl0|3bO=R_UDFLnnrgy1Y>d&egqk-q{_@T+anyXsVktNsy<$bONOJ{ zycV|Dntl`w9O61PWOYH8hR@-AzQmL(L5t>?xAouZc0mF+I&Pr>f_qdA0C?H8`rhIZ z4<+n!2U-QvQo4`R|GJ8rDRS8T5KcSSGS-2YRn#r@HI=6BXeiOBvvInd*)92<1!Wvc zQ^Kn;_9XY@_Z~fQ6h#3Q!zF+sbz?9`nKyT>28oL+R>d6w6NV{sy3kw? zmm!R5eH$!$J%w3SP4RIpc#04HEW^&BlJ?lx%L5P;b8Lrt&w zH{RvEr|s@|h3A5|`2Y>Qx_ps0d*+&)Ej(=NOpXRSnmLf5%WTz@Xq zN=@0@ELs`-hQWLm2Y0LFe#F(e*+;_e9y$}Jr3!dTdBTkr|83v{sxY$kqBXbKZ7q${ z_F+8K*u@gt(z~v7<-i%D=leCtWn&c*UJyKd|+}zu+ft@vAG3Jhl|B~BTv(-D>mLXnUe{J5lUy{zCIoWrf#0GE`RJQ@h^U&~f0 zRWrYA&AyT-6mlO|T_~^#7}>L7bLS!Xb6nandoiB}B{*qA4rT9zV+u=9E0u9D>Q!kd zl5xanGTPrLQDicr)_#gcixcJVd0VJvhoOwbzjU=om1)1V$B!uA+2$g5ZKUf(mLr=l zk|Go|xlcx5IPTBEg$H#2;4H)hVk@>zh9|;; z4ux@$wUr!>Ot8y3C}~FVy6|KuV4%=)d2$ZUl>gqnQ3e$UZcuuijn_l+J>Rca>ic;= zFDigO!;r3DWRiZk$|UMSB<4l?|B7`V-sQ^4yFCA^hD3fZy-oJ~ia=yApLEyXU)MGA zti;-*IyGHl+OKRwmW~#LEJD80Md>*6n9Me{o**l_U<}iBCC-(5aO=Uz#DN+_;tqDi z^-%bXsezSsfmT_SuFjPX>yb{wjtp&FE0Zu$0hZviNMcy(B&WfR3Duk|UKvE}Gf+MD zo4k~tCm*I5pV)o)DZH$zN?>-gw$VbCchP07jKY}VNR}R)e+`}j+0#s%Rn%)`mjb%SM@NDD{Iok3{%bm}w@J zw-zKX(Yrkdp_sx*_%93^rP zBS@|(OFx>D!1D7N3?`B!$F#IC+eXsK42|Imm%TE$M#(E}T)M*(67dYg5~=D7gdT1u z(W+umQ8b%&C?7#!5s>H1R;k!iR9_2b{fw^3j~Vkj6Tkbw^k(=DcznWdYI|`wp5-MO zFVw);9@542@9fUPlfW_dYW(`o=RE9BF~QCph3egI8@it=flk@3GJp%rDbGsYz!mcA z_!yplZaYFd$sSl^T*pHN{V%3=zjEDQ>8#KvgtbmmFzaEY16FAGDrm~${i)l+)&0d~ zol@tp{PO!4=m~_lKVjjsUPPU&JU8?d8kzJe1J`s8ICuOcR02|e6n82PNS5e?-6(2& zwez_f85nM!_&v*x*Hc7@XMr9Cj!R&?I(TZeLdRu(4&Kwzq-%O9JJv4u3y^AdryfRRhpfHh9jb-pPc`y_sJBZHJ zr;c84(g;B}7v8aPDWn_OQ*Xve+`EP{`|ROdm~Wpl-M#1FjLK&=oKTm+D>B*W7d6(F z|Himj(5RxcK&_vQ@slVT`=Lyv_VJrLTL;lIQ4_3>&|90hCagd)QQdt1%#af2g;x)mcs4jdJT4 zD4lziql!`i#NA2=H5}v*n{K5W9Y?P$4;-$1nuPSFTYO8*k%f@v+C&Ayj5`No84Qk5xiNU|+yEiYlv3(GsA~q?WS3?j6u6z^ z6~HGbyhxI$&fYG)_-Er2=-AK4R-6m&_6W{?-R|hetRrd=cwZi*lSwsPEfKxhg@Rte zM{5zDLZSW!F|=}%5YU0A4-Ef~x;gGK-Bs?SyU_bEK+ArI+*^1VLL`H^!lRbG2uW<5 z=riQ^xVVLjT@0ra>ZdRNq^s|OKR`2dPB~Un9}N6b1;}m6v-M;mA(Y>72XIoO83xM+ zl(v(}&4Gp#8x91Yu=yBN*GeBlPzs%8Uv;Z4&0ic27_>7;Ygz2udqT8NoZr3S zdQUuYAH=Kt7ZDe)GC1Z=xGUezWsStMmmT$T*Y?SFavAXQFffBIPVm?q9z;#x0ZEXI zJFr;#5u(tbx@52yrcjEew61G4^m%B8e(v%iW)?IV91Q&c#@C9%Ulu!Zixfhw8&V&i z7sW-f?vm4uf(RfZENF&_3U=el96PW%WvpuqV&;`}1KiPCX=hz~KM3R&hO<}{c=nlFXMUL_p4(!#c z*yseTvaU0bJ^L#>4P?zpyk%sm8&#a=?P+d7?A<(>Z(bacSGJ zfO-l4?BLG#U31+3t@aMM+f0@4wq83qwENPYKKo(2%-`KTolqMWeQeyF&F$^{cdl-E zaM;$U`~75d64ot5<8KMvv49x?K5i~=B>%6IzP3E6^Mp+SU~)tU*&onAl!oKiy`TRK zm9UFiQEQ-qfB=O5{Vc@9$@0IUQn%)={TBN#zgc}DD4`sn%I(I@LAJp?#7WYKCUl|o_V&K;huAHUr{$?7d6Wlr9{768g62R~ny-KpGf7ZsWov=Qm;s`$7x ze;%X4aaW?O>GyJH)Az%91#<;?ns8&zjWt(guGJo$YPZg9rq1&SWc!ESj;V3DOm>3*%SZZ{~lJ^scm-63>TXwG*Ohf9p9KhiZF21m&xc zWm%hrXi=S#1y$&Vr2=`UZYWE=L4c6~}sNFOy%3^q@(%9`= zV$!gX>@6({+kLdUY9Q8{)XR&OKDkPRAT>R5UsW+$PG`kchJ^aNaQ|y`z@*^UqMRbn z)FjC~;~+G?+}&PT$KP!6`03`vG~cDcIwyMg9<``p(Y|Qm1Wo|YeY7wdapnbWeGuD(8?N=jj1_m45F-zj1q*E-6S7C6q=kTOS`?NaN8pZ4_MrILs?u%#G>sy7`id~cTHR$uRcdyA)5C7?e zpNtK_!OCMKJ5O?i)lgZ{2+~v)N3H27T@o@yu2S_ezO&z|j}>pWyA}pD{4Kkc|F=2a zRKm)e<`2wYIL+%|y|_eh;8w~t*u1sIzbhzC*19f01&fGp5w7skQ;FT{jl#)YDsz3v zPVchKL|Nlm$s2lxr)LSO(+_=%`nx^x9rEQNEy@#e7?pjgIA<3TaKKeu_?JD7pQRl1 zR=~@?G(}c*%J(?sR|V&wvqiHeGjm;%2KqL3{mX;gq`UvzVyUf*nHU$aXUE8=f0&}3 zD%@Masd8L#O8h>4h71T%f4Sd7(YfLJx~-HDN+YVxeqBR~s4zoFAn%WlT7||ecA!0f zI9y9px>bIio|@o2OW1{@t>%}8pWq{)1nM_b_QDYCfVOr{u1$QjWgz(z$n8KF@mF03 zq$~9v$`#?I?0M6tBk{X!%Xdupm*0g)O2ab^{s`N0XTS1c;1Y)CJDg6NIJz(4WLld2-QAERmcspU1W73wV2d?+;EoS7ThB zWvvqE_v|0H+ZR`Ut18rxKfVXZt53=uAuuIe?;Z4`H~_LW;6dJ3p;2|}D)R(%yN%`; zd2>k-%cz4WvxJX{#1t(koZQg`^CjcGw9n+xlArV@5BArl+e51^?4dKTGVk*Yfwo>& zF&&&XgUC9e)~=06b|Vx??E7D>k$lq);K!Q<>yGaP zY-`N;##EiKO#6k0Mb!F^CdayBmPDF_(VT^8sg#N|NpSw*XA8xFe6A=n30$@Hqtj^JL}QG=@>nd zSk{ek_BG-V<4=xlM%pZmqYke^TL%~ZAblYyM+sxdh0KR!U0Ey|FgdPT#~GhyemA@^sAaw%Zoq#DJoAUH5qF`tNqzDb*H7 zjd}c+&VuCI^LA%BCneT=Lj`FH$ppU-O3cgbO1!D=;04^YraSv3xxJ1SHk0TUe_qf! znRV=rksD#gp&$Dw?+~xrvBxP=r}VK}ua7W2C6<=Ff=ewBFF+e=C*z5+|O&OUm`1L_l+rcnwx05oRHd9CS7qUz$tu-^9FI`(LSni3 zDHwsxTSo;%9*CF;OHg#bBibrB!)%mDqy1c9a0*X<@SP%~PPRK=CYKE*&S+ z^iHy>I-wnK*@QQ-#mfvX7yoos(Zx4E<2ce+GW zEVus!Hg|-{oI7K5$6ac0f3EOXE%Q^3frdl?l)a2S>`4_TgQfS9MXj{PPiG~f>C34~8#7ewBg#HXi8FXWb1I1vAl28^V@2K?3 z8LXVXmNHTNHiJiRn{~bLNl7k1aK^kz;~fr zG;?{k4aEATa&MH70mu^!WW8A6(gEXkZBVcXVrJP)9J~#OBMNU2rx7tG2g! zUa}<@{%ATwdNX-ozY5}7^r6;buqsJwYvuR859H(RMwNuAS7*F%$GGcBnWZBs2{~YRv?c z$OLtiC^WS1n&grM8s~RvpRgX~0vK3svoU4p(RKhM+Co#7k(uX~yhmw!Ylf8H*S z15DDGmxB+?9vTUBLTM<|LOX}$M|7;bCIamop~_46zRnWhylT!*JbFz;@@N2f@0m`d%&fo`1vR(O{`)0Q%yB~v1X?X z<526u=n>BknQY+e&n^~)IocM&c&lC6WuchQ6m=9Mu7r+j8O{j6N#>0Kn}@>%j5YslBa?cn88nW zIeTuJpq^H|O+u3-^hf~E*g75xZZKV^QzrmCySEL<_K_>OVCBi@KG7f~;-PHV_;Y_H zua;1yvk)JmstUy-wy~}v!{9ziTxkye_L?dB`7bzLNL1_qY^ShnrOm1${sazJHr3_H zg=)V@ zFkn!mk?pp}7SEe72-ZdfUQEH3Vxxr;XK zS5H&O->a>hO{^S!q$MgzjM@5)b3~eRb3-;y*i@%``;;mPoy{`L>8v;eF9(DOksw;y5J$TjGn<$cQ(zpy`gJ<=z&%-&8=c3f<2hS~- z)PEewt!G$oHvkZt;Xx*rm2TmFBcoEa&{85~D>jv33twd^xV(jz0A8Yniebe)yd(6tcW(gH1Rd};c2 zP~bAV7=Oz?=v|LX-s)5qhj4!1v+%s05si~pi`UuyM^Cte4?-#Jv)VcC$g*>&EZr0m zDtGn#HEtuMD=sT}(t#?Z#;ddJ1nDC!skjB%c^}r4sY2hNc${prNkb|24Y>o4L3*kB zyTo?!;FVMi)-EX~%@l`?0cWkoVOn^OY3m?$p~>)IR2v`ouasp%cef+1&T+F}BF}E) z2C%09QrKDVubfQm=y9*H3Ja>bo5bC9axL6uUNtLu#crH>?xuH6ih08(@`DO1Jfjq2 zgLjtgrWg#@*BrNT{r`Vj)$@-0mZgA`Wz`5 z>nMSO25tHt!?_C+d>`DsD89-Kc^BMkMR!r$uvgBI# zk9^xZ1{{aNQM{1GeaP@}=;>Q)%zlv3I1B5%7N%!mI57bv!oVBh-L1yF11pL3txa}x z5{kMe3Z8D4R5ej9=%%9+`N~K2f6d3SPbA}7qH(z;ypDNrYg6D+EkH{I%DiGf-4H3x zOal+w7*vjb%;(=jPDzGDGUtC*SAYMG31&G+zA$l|<}H$fuEnxQV;PTu%+!uxA8lW& z8y?33c~Y6?Dk|w^+P^(AV&L?B8!?F0Hg{}sUn?R4?ViS~w%$0s)9LuQ-^ov9Cx3RQ z_c4+2Us~C9JlubNhlpmmB;e&k#WP^d9@h5{o_oWZrGwK@k}gX)EDzE&15!Jg0D++z z<29#-G{!5kuopzHNOguF=W+3B15{2vt{JN;)Jo2q(Qq@ynjoDEE>V;_95=dvJx;&x z9#~J0TqF3mgae8NS#Dd`&B)Yl7=xEDGdSxF z)nQfBV5VrizH;~-sa^6i&>8kT<-S2Qa?E=p2WC~OYmT{x^(UeKjjj(t)3#T$V(&TF zZ$>bT}Xbs2NcwcGECxw`HAU8iaCX^6cL0~?ii zi|o35LA!k7u|X!12|@tu@*IyO8+1P0iU%#O>Ak(FTdH&%suk`?9$@ATtE!+%E~PJW zW%bS#-7Wo44t@iq6%0GCgs?~g_ z1vecs;__1(@MG~0eblUGo+N9;Rz|yVWKt^+Sk59Vt0t<0wsGK!s+^%;y>b|N;-2t) zj`_>OL*d$_c5)A?7$ZJ}pXbR0MJ7pSiv@t&8oUO8lbGu6b1;}C-^e9yoO!UBMb!`hE8 z%dTqd3YhL|vq$+P&2ON%XR*$Z@Ss0m{-Y0}aq_`K1af#Ad0V#wBLxMH{7$)W(AS0B zSlZFe*S)T}kM$}J?1-dP{&`+*JvA%tL9DP>rZZWWD&k3$rc$RWOaQ?ex^R5E>Fr;m z(b(l&yf{jv8~HTPboPIOdf59Y?DN2R-g?|qBVY|Ae_LcQMFGMTF%DsiTZ$rXK38gl zWEwcPmJ`1U(JsRL5Hh7)owaH=(FmSmuBR5VR9AkYqf|Fq+Ks<%SbkhP=R^)sviE7B zU*an|nR0c;KF7zloALKC=dKMuw)n7ccTWE2IEttoDh3~Has7&RS-yxJ^TXcx6A`<7 z>a9Yq(&knk2kGn63U0g)jE zMEFKM@1l;Tgw|?9-pVh{Pci03riQzxeCXS<*MHSX{wtMR$`abn0iu#I3N7Sr9inWp zsPSl&zn!U=wF6+?ZGZ})J@B|+d)(^h^wSc;LcYrSW+aj=Nj2)uV~cY4K9ci=L%{P_ zc|&4zfC`#CJ&J_@a``s&N0k4I%T^|uuueaz#OFQL%)#rH%Fl!@Py9wFcRIL{YsbBX z&HgJ+ipK9l*Ex-k^IhDD?j-bZDB_MZSVLW7>>Ukb1glWr@D~ZA(p~ss`zGgU7`sb%XLOnaA*0SKmFOj>3enbEy;VhG#K*CCh) zO4YfwAdCImT*Fw{GjDx=usc|_+>fu=qH=$K@qOXEn6&>1kLy@<-_hWt zvy~}Jx$5pm)hitVVqhwn?>f9?R>_$>+SF9GH<`O!jSoui-q%(#tX8LS+*dCcu-v^q zo5RrOO_N^a;5UbY_n;vw0U~q-1$%<}%}BD7d$-$+Km8;mlWyDhaqVwcX$@xbd6c5Rw=q^1HX;as=f5BjolgJUp*2=G>q8y`d)?jV>4J56I55sWY*_UJ8*@< z{^$!kgJK<1s$lsbdcW0vy?|Qk#**R}E~$NL=1kjL2GLx)s}cwxC{pyhtttDsJib|w zn5XcQKT+c8hjG&5GI6^o-`DNuExy(c{^b;%tj%=vP zDvccHU{bc?icAtRoP|ip*HzZp%m=sFyOx`S7h_o|K3HEqL)B4QY`WguZVbg#QaDi) zM>&jgXB^+!J9^3$s;GM;Rq9+jw>qW^E8rh7$tm`IrbSl@6lB{go6{TEhI7+}iosUf z2GI}@S8{2?JzErl=es)h>a z(@+ZNq6adag~ssCz?d%PdYq0h_v-0iBXGkbRE>A_KKi!|wuLI977+Btr2 z4Zg;DUfKZhkZn{CdLr(dZEbCL@5bSh2m@#Fr)6}jj*GQ^bDnK7U$S&50XduEz+q&B zU_dRk@2r=DxU*pVbj1gKh11dq)W_UN{C8;A$F0R@uIAh8$sa(ST6V4l$2+O#B>ER5 zJGt!AHV{vOszLkJ99y^q!UXl50ajG+X(t*Vf#T?Vf$z$>&mw8`QVTIJxEIVl_D(QjbKhdF?Fg;- zpLEZ~*}|O#?oPbMiw6Y87m8KjPgpVW*yyH)@8GtcG_hIh3!0;&*rh;6mX$A?AF8pH z5cBe>yLf&WyH#CxXKpPYxx2E(i?jm`2~OSQV>uP0IQmtJSJ~he}Mh8^-mUJ<*(-IwZqEgws>`LR=^<^ z5w3bVWnB!D+@0N6xLwJHBK?7?H=Qi3i!CQXMCBc^`n20?vx;wl&Q#a8rz$pX27kqUo7$&BwFIx$?^fNB4T=$|N5E^z; z^1do+8gf$hAn^K+Ug2hE?Ef}vfltdBL4&6aS2@Je_SAFjhU7S)J!=xjF%wqB9zGsO zaC|(bU)GB#YXZ<$)K#x<%UW`jHC+Vv0MlFR2SxXHb@Of#9>yYc(-Weh?V&xjO?P|_eb2QVTi>Yi+*8v&x7czfDt=yqD-bJ<8=55&d_>%f7hrEHZ6i7#A)JlExo13Fux-F{ zv>&(6Ty2TG4@Z>k)dP0It*Yw=wmAGdvvLe3m=1)?OAWkpm9Dqh;;J&XacRtEXnVKgp+QX)|<@mCcG<&XG3N zY-eX+Qb%8gGN-!ZBNu7&(@91%AV-lfn|cPMbmo#HO%eJRIrrLyE_y8F$#9m7HOVL0 z_M1pHovCn>rZXYxLYoBNr-Yv=N8^mGLwqQjf>iHfE{uM21v(>U65R1CJp;itioLV# zbG%<~ejn9z{Wnp5sqoTCV%Mofovlxt9w?G^A=6>a#bd(w!xPX5!4|t`53sJ{FbaQo zQ?=4;CN_wftHvn0>S1)_@odF4XDU0Z)0sO2!R-ag+2hEZuAe`k_=2EEZLwD+{_IIo z#cC9IaH>h0@qX*H%9^S?xaS~kFU9v|OIyi%?r70T72EPjyNBDX$f2Ico>gh5E8*(M zREZoTVWqkpEh^K!5-0XDfV2;)d<4FxxviYEAfc+`ryCu!KJPX-kGsQI6!!EDuAR>J zLCIJ`t7%=F>#HCBDHg+iRZy~Vf51j$0qDx8V|8r}r1qw*QYl1?(S$;~kgZ|84?66x ze6;H+achA@5cr(UBRDs>uRWW2o%FL(=`dnZv*QAYc%p?Zr>j0!(({KL>zL9p?|g>| z^THsy#R!3>UuP=@JfDs)neJ%|kcPg7PxC7^Hfo$5XzsB5YK8Z=g7GtXE`Z9sNA_cO zM8@Wa?I?dC6Oj(jmp5sn7tUqj+HUI@z&2+xIRiegc~Y6X-TPFIKndyp0vm@Oykw*4 zBID@qTX}n|&~8*)%YfemPZy_BxyOu+DUL`i-V6xIM^q%*o10)M8mEk#Ok<%!2n8Si z{EE|2PgeEUzQ{wu{ zT9Y*53Q%RRNlS!733H6>w%VR??Ej^*F2NSRM`}}GqrU}1gg+%0-$b-pgEoNIeH z5B&$+1vI(T;X6zXnO~QGUeQr;5R$D$49_s3RK&!M*Y~BrT6@`n9ecZn51Y+?` z6t^3_72^b4+M5YnFkQnx!kHdG5rIjQe1ICYC4a(91!p3I(VgkeL{ zb!(;i5u<5MaY@74`^=WrnFce_>&Ye}vmBJlpyqOvWrKT}6p3pB6DDJ6#ANb!bvjtg3n<+)LsD@-?hw*9x^-W`E;!&(tjH1(xWWzdiXGiB)3)lcaZts%pqAxBgLoK9g z?-D!o9dP9&J?6$qrk|641{IfWju8@Jvbho-VO21(W%;`$_ zpf+oBU0#wua%r2mmOAAXR!eCg7Cyw4RSY(v@v8xp?occ}q#IvM!Nn`Zyz&8Zn+Wmm z9EPnMbF@A-Rt`53YK-Y>U@LGy)@rcZ;_YJCT!Ykk*bn~*GtJ2%#vpLW5X%i|dSuIx zbK{UEDLAymTp6N=q5oh}QHz$lS!YT0xNRyHf$=Ln9c~=2KsXNCX0Aad@Ic{xqU#CQ zQsi2xDkv?;iYtcCH!+L%lCYT04AtQG7ajK77x~xQ*x4dRnxS+`BO|=ylKXlU#hF#P zT@6L(_4$j}xDWodga165pT&-`Bl=}{a;rFbrz#*|z#gY+O-x)}Tb2!_XJ-~1z>3o^ z>nR(1y?A*XzFU6(ZDW#2g;Htqq57*dbYaH`Q5OYxuVvoU>UNGo-C9FPb0UeOW@L^IX%VEIOR8ApoGW`5>Q-FM6t-`!R&1&jB z%Q2W)eh^~w*i0C+rb-v+>v5zv^q+}gn-)-e94mtgMD&xuW#GiMRpHctQKgn6T=ngS z5xy-FS_UGGkk+MX2{&eQd)pixTRmP4zh68_vBS%-46m5|kGrJarAlU^!7+A`m1 zKd(t!G8psSLY+N%Klk*R-S7HAmiQ@~x_)M3W-Hr@`o!h|09l9uKWtVg&o)hXhM$@g zipWf)ytGYn;BeCyFOwn%&Q@x`LS>-H7}{Z#vf(1+fu9_^oLQEJ++=9h@?^$k7+9md zIMa4i1|7K0ZIkEi1Z{*dt_t9ha7H~GEvf{jn5MuO{zy&u`z#1R!wyRF_dCCOAE?5+brgBy>P@E9%)L$w!&}1Vzigus?WHuqQ7WmY zBjeOXMQ#^HD4D)AJ!bUI=}-BQ#sj=zq;C=`fE5vpsMtTJhM0k5pKT*J_);h$NqA}J z7~}NQMbC|A!scAoRc?8DcT>kQ-XBYmDm8G0rk^$fi-U}mDkId1u7x#W_paPlAn=R~ zAXKr_K53lh4byXI1x$3CRRp9$C`l_>c`kh~6rj*;`#SlxVW#zj- zn{-Q=-!34YZ)SJbTET5O@Mznk9%WlTb;J6E+u&e>W^EC$9W9@ZgFj&0BZ3Q^)fque;>3r4m1Y%z0PXslA7)#!u~KQ2tNYZ7wd zXTK|CI&nBS$I66G4{r4#GH#x???%~JsUN9X!jfl>cWWP}BQ2;Vw(dl~!K1f22qIxs zZ3VLilOP2O3tbJI zzS}2sAQP2}!u>|{(yfK9}TkHh!A$hWAsU zD1f95F#MrQ2`&5HhR#Pj_xAW1wo(sOm}ZvBr?Har*lBp5W1@!U>$qz1fK4IW)#$?r zXa?CDoTZE^O-%~l`*~xo$mwnF6~jpf6^+PAd8)E@JB`18G-+H%rdi^Zq+wO8ROZj$ z`{2qN#{S3I$gg}~ZhH!FJkfTCjtDvc9DagIhwR^2094k;$fLj2CsPu9$fO!nmPGO3?^veN^XHr9m9nX`59*U*io8C*xCoYYcCHVt>!c^bHlU_ zfx1mIp!sSOOuiDqrO5ht5gt`nOyi0X5%N{`cAh?m7Ac8_N>6Y;m#cXT{n_0$Jvb8> zrOk!EY*z)y(hReNbWMcH8>FP9dikVpFg(%k-KpE)bzv3Ra7nf{$}iSLR<`jtP4$|V zqkpe&>|#aB!qcj{1L(E}G|hQfg1>lOk%#hD&&wWk_RC-7wa02Tige0!zA;9e4k!ec zeV<7&F)hpyqI3jJqA<5ZhM<-(nq?htJWh>B7z@UjT;Sx4xEpJR<6|rKi68|?>_Av- zp7d`oCdA{ev+W5ZavPB;eymA2t>g+|vr`;e=NE~W|58uDN&9nyaf+FT*DxJnJza{@56MeH$@iOSH^wN*od;($Mn+GI56*$t+5S=S=rK zZLCN$ktia$!5Y0kDRS4kUoczy!Jn+EH0ig|8X?wM)bN!Vu-<(RDm!d;Y zDj|zf0XvnIC%hT`*?>H@zKW@a3XBzdOMUQCB!UUeJa}3RIX8zK#IhT*ykor{K)9-@ zE!)XbJ_b)Mx0-5jl$IKLb(XcK2a6^(H3|&DVqt^p-(1`liIkaZS=?HWI#AATNfMp&VjNe1ARS#LO!55X=J?sqB^#w%&^X#1G5zb-OpZC;rMPRJg~2eS;ju2trr`>zs|s@4T_MODJ8dK7%nw16j|1 zEUx^WSe~yfL>^|?S@7ZA#CEV;^Jd!5dh@)t8f>{ah|1VZz4d^&To7*iXyC#WRE>st z3L47fL}@(zXdmAUh<5hxsT$?BaGp6~T)z(#(a2il4R*=>cHnhe|C$-E{N}CGUSV2Z z>3JJhOVhDk=3>%W-LKThWVFutkiBYE*}e~a04-|>6}Z&mMB7UPD{2T522lZzT%SbH zqgCC>OYOqOK7JW=Vj%WKWIO-bG+cgC%8Fl!&$D?Or^z|Dc-zj#g+QdxS0<7i=@(& z$U8SSjEC~8PS%emw;l=1<{x}24Xc}1UR;P8fC-c39y8OA+SC_4e-PW)Ox}j&M(zVs zvYu{@e6}I&uXu4DV}%3oeVJm1>8$)FRphg{~21FB)$tp|p= z#%qTbU089mefRfNr(UI`9mdqYUt74q{gi*I75U+Q%NY9DUf8O*#dPHeQvBNKBq}I> z6cHM#dz&>T#BnT)6lG-2Gn+;fudkra>4~`Vuvl0yX%YtEnWijFLiQYOezc`NyS>U;GD~Z-6Sv?a!N~wNTxUm-rGOg$MyFax$tQ zI1w~7_(QLdnZN8P=`viNT%jNH1|bH-%f;Ak*dRS_y*(|OuwE|sZ*80{@X_76$;3GT z!S)}Dp1D0oLJ`2Ei{n;CMp`gh8@+RTMMN2Pz-|5B>7?HnhtkgmS~3K2yF01wPeI9nQv3I>2XYMGH^jL2*N1F%F(oE9nl5M(Z-!4d@D+uUDj}Qkx zXHGp?&)K~!vLg5_@=>0dZeVFBgu*ppbuTB))b*wbu86im2NyJ}@|Fai3)I?9g0^@m z8e%JAxUAN#Ee<5+PZ-L+(z;u6_IGYx)-Khw7KY>#UREtM~ENVtrRZ zSB91pNdK3QmCVFem9peUi`m$fGP6g;Q+z2wMxzHRzMp_E_@`=8M~x=a)u+ zY6?mhg~Pt}4dwoIA>b+NNpPL=b%N}8*9w%aoFl5`dA{?xa-`=w#P)F z0EQRM_e?>*wfvFB;J`;@=N_&RKVEiGx4sugwS4sFTmC!K8tBj>n;(t?sF#S%&f5qp zrCNPA@MiN$E6D~$lza3{&$jf9>HX(Yrv{P$0c=q}&suJ!p z*3dpi-7T71=9Yx)?*5=LTSu6-beFi%32I$p^R7KrOW-%fYWQcf&K8@*A?0I?^~S3K zY18x^>j)8BkV|~lE)ndm_6L6dtpIWpP8`i7 ztS}8L#(*Q>n4VbK?fEMEE5Zt7`vUl`cMQGKaoI@d`jv|@%ordSrViy(OE|zTj{4x! z#VsAXAeO*eXXGk^r!)-hv$t&F)itdYscw%m($XZ>z)3!%s_D~!qwUNd9;#G<9q)CtMb?J`LlAimbdxi?SiQC-e54@ zb9T$|q=l)q=X+yw*XL8yw)f*@xA%KuldkuB0n2k&&CPJN)9f|(M-`u;n7?HTc7|f& zjA^LNya|8CDwn2+C-|d1*n47}rV$iV!%Ia(dApOXZS?RJZA{Dm2^>6UNcj`(K^im+ zB`Mfj8Wa=iBk-pL2u(3X#@+>d{1wgWdt%_PPw>X)BNahSFaIZ7t{mhCzRCw$D&*Hv zI2l9Jh&kksacyohuelTdPNg18n(qP_>lZ3@T>1KOJ6SgWGU&USza=&Mhv~WpsHv}S zd!VSg0wkRj%G=!w*=7G6Uz=+kKJ3f~l$M!|$0)VSOIDULq@v>5Qe-z&b=3+dTWM92 z2a(Y8nv#zqn4 ztf6L=j9_>Lv&E}{BvX428&>wyTt&!krpCAF!7~N0;&S|9$c!J6m)=FWa@s>ndORWf zKPPBVPP08gSHk>|3QgsC;S|ssL=3>j}$OFj&BcsYG>%&7Cit^mx#~_o&Huetq&HoI3LenknlOJ$IZhQ!g zq(#h81m@TUwndPg|Wdcx*OX{1uI^aVtH1eGLGDoWJ?Fv-$e7YNflt&A@Fqy=(6*uWYMV#mci=z}6*W}sN6`dS>4@K{ zs*0$#tE!5rzN>l~QUOu%Fr*@+vNWJVr1GvuNl$LBM}eWjGVF)^hB^RJ;4B-0qMvOl zE{E5Aoo|1+4_Fv2amE|8#EVVkrDRZ`XX&BK30pcxtbm?=$_(3YxB&%?#-)C$q!uQLVoJA;K|zcT z2DvbVsu-wy;N60zZ2?Qy|4roKhW<1P9;Onpj}zC*C+Q&cGqgjECLCmJj^VytCBso< zq&&jNs$Md^+qNv&=pm!7%4W}1$X@1mt#c-Ufeo=lJ@<#`V*4tij;xjr)}p?-u%c}G z$?Yi6yB)r<9wR(}rm#0oO9vso9ve>_?ALE1XgqtHyC@K~0JU3-AGkK_%mPJoIh@Z5 zS+b$>NT56Wz)F=J35-~9M?Ae^Z_Pxcn^uJne3!5-uIsasxGh;%>>?!3QS?$P%b8@7 ztQ0Q9Q4$3SMTIo@=Dmrt~@aMB`D@)l0d_Hbg~WZu;#fII@RV zMK{2e+^nq$c`#zJnGeHf0zqcq*KRzBf)0ZR4j9}umh^C;K@OUMq(Qbq88FrW z;fj~iw#a{LOQV@+Tk9728zL3H0NUWrTH{n8XgZgQg#xCUjsnUMWJ`2un2LzB zE4eYb1<4qHs}3&i8>|gQ-RDj=fr9#4@EyiP35%lj-KdEBR4#F<XrQ> zmHo)_n`8L96!xQ*-+eDj!wyg7#GE6vmKH^zaJz|ufl0@F7$$&XOq#ooc#OutKbb0L z3WO>29A0>me1aEIZ8pEE6!Mi$$n&L3G7L>-GRhffR01MRN{_ksG6Jd0x~C~x z$fs5!iIK^I7=`}_o1}Tv41{G1mCi_hlC4Mflf3iWrWM6O4KEU9qYm9v30ug4O7P5$ zYAGX(!JjtD(3$atm_Sf1eE_mb zW5B0s+5l#0L+c7TX`{ukdZ{Jw8CYd={G+_teMPqV+TeR>!=~i~Uj=n7qpD$S#VDD_ zN?K)o^24fc0`YQ?a`N9{SBC!%>xEneSb;6GtKSenp;h6M4USx%QQbFa7Npdwa#8!Y ziuuny`6ByMOyJmZ+hCn49l44Z{bzQfj*pblR;c;alus?CiUwY^O7Fa_Q$*~oX4cE% zi%iY~q4Eh4EtQIf8@xXE2^?OviU!!!)QYM>l(kk*>mI6Qw&qXeV#-S&=kkdT-9VyA zoEjQs_0UTR<&}MptIbB%U6_l^jqeeKWanSGe<`~`|59vd|D`1U`|56gEs>L@fhH`6 z%zXmJU?IrFj&@fqE)_~^dnr7k(S|S$z{eVMP`nMsTYKE^iSq&Ge@epk#4;5HrFf8>EVZ zb0rzb$Vsdv?R(v6a&(;mzClLPOrXBi$=B;z*9523*#XfHjbHu|x)prNlm2|ooasIh{bH0fS~>u#&ojfr8Rt?ED0Ak@=T2US^W=#MBh`A1`CX|1~AzjUz6* zvnD`J`=1|*l`gU89h)VWWTvq5FmHo+weHXjP?=W;#J)M%pRaa!Q$uF<5Nosp4YUeJ z<+5!4u~7JhUp7NA<6W=kj)k80&L3@=HC(FCNHE;%STW+J6U-pF(3c6nl@Xz-v}O$k z;Z`JYdqlL22}%WN?jcEwxgH8){(z#GAh9$dxe!dTBxXXAO!$-_N@wwhXM# z7J@Gva&v8R;cl^H?u#M(0Zu7a{9M+8sHptqZ2q^>ID^Hp?r9?^2V*RWY3y|wm$+=J zR%G(_Xf074vR%NKE)gFHZV3DYU&387KKxyhUnJr<0bq?ee_Uui5TvyJzd6LEV~aeS)~*{~hVP`Qdl1 z(tX`^VP+tb~Nm?+N zggm1788XksIXS5sCHH;j+{D(&y^BoxBIDDxe1pL5ofYa^wV%wg*czap~yM;q&vq zfmz&9ek&E{dw$V@-4Zz}XEl^jpp0bpdvk)zrSc)l^G+;MxU29rMN!`VvIQ(`+}vsp z38+g(0rI{zbpYdOh}Fz+pFoZJP0E9Jer&0GO^mWRba^S>GU(oy^_#?Zd* z9AG$MXo4Tu^Ni_?Bxd>PiK~DTNx5vf=q2+jh2$N(zvG1<E?(nwj1Eahb0%C{CQB>eWNeXF!biRM>I(MB zT!3j$ZEyXwF-gS-y$8)gnW_izMyz3~msWRmZS&3zhdIRF4Ql9j*tTM(JY)lC9HPF* zh^V2yk4TAY9wDfhN)B~^T?v?~5F0+-Gd@1Rv&?KVQCYuwlwpN#o@>}Ai+a0$8f^If z4wOc;%Sajn8-grL6&VSC&EbBg{JhUz$c|YZ&>N=F-$liK-TGK52Ak>DwrO6B>-X;? zgO3&-o}D|Sh3V-VK{j$Ma8a)qI}cLTkSmsFt4zCm@sRy2Gl2kzfF~~{IASthxIa6+x~Y#Y&wgZK8{kioH31Xzgi;3JV${GgVCN|9r zhL;UaD^rE<$Fr}!>Dat1beVWN7(6{+^IczA<&9lgS{BDEU8bAzm;UuDgVC!UbqSL` zkJ^z*wP_2*^S@KvcPAt5T0L4gii*a+C$7FjFokHJ)?w23?P>t$x<1vJbSg2~Vt3eF zMuVESYaf`Hi@m*jVjrS7wJ-mRMtqOH%~pjB01y}W|EMv{|6OCWtsOVn6Mk}Z{gs!k zuXx5cj9P5yT8h`DO%#(e%D0weOil-vv``5N{#Yi=!RL`I8~=VfvjHR|fJP+IaEue< z8D!G&7tWh;e}n1xc1s|+P&v>jvwD179mL9}j}f9wTCsX)q@C~e=KApXIPkFDp>t=P z%iG#a9XPOS(WatJ*3v5RV)1(39}L?C&pwUFqIc#%;U3c6RmPJd9NN}~zMy$BpoBC= zl^QH{CL6TNwV&6E8H*U1ENM=xO^MdGCC8)B;dzrXnG?%`aUO)D1EzQDcheA?V#=jid0R(i+35!XPs)KA;8SCI%SVtg&Y%NJU6M6{hbX4$bfFz*NJYr zsduL>c_yR1qx=V7dj`!7e|@Qc_|7+7e-;|HL?zJzF4eDdNPyD2aHh8XUTzYblw`zx z9ug|g1Y`wBWL3M{g4Tg95oQewPHBXu8_^GHnDZ16;5o5)lp* z+KMo`TP_2C+F%v!zRj0^IY{XKxxXg)9ATT(Nu6%Etu$G8Rc_1#c5h)x_&9!l{CG2C zC-mJZM964IKXW!=e?o=PlV~1~96Q^2+t#YX`@(st=mLiJ=Jk0v@~B^4&hzm$un1Boi<<~5m&@eRK%tcFYjr~IdU}%F%K*``9j46NIC8c3d3ShY)8h_EmfsU zpV*TvTobDM8<{4pJoDvcHqyvG_eL{IlIs`ulnzAs$Q3<=P26h~GEoVBPdlNb_^27% z(9j7rqNgR9PF!~(RdYayI98HmKg~#BfbdEKu3rNjomv%qq8RTvQf0jfr3Pk)aElZh zr*8Zz<}jSg|JfJ5flX>5?rqkOs1FT2`C|AMU8i)!-y#w3Pd}d*wz512#G}L*FJ}ED z7w7^wOin!t5_>`|xSS9;G&prQe5^IFT#QeOFiKk+3I%VCPA9#BubS88k*7U8DJ0Cs zP7g=~xo5GUZRnC1*WnxJS)qy#`<& z^EV%?^aq;T=V^nVvHPQj?#Px6!RfUsBS~*R4=OlJXy;99{RWa*8y~14&ie-y>OvY>0%D(iB}pC{im+RsTof~k6yxA}ccnLf=bAb29hk!aujbC3X<&fMUzQ>J;i{#W zZ!`b&I zA$jCjRKba^c>@=`#AatkMCpWEfR3|cb zVkNK(^V)O;O^2Y?ME9rys6|NJ20#}iwe z18T=>1&hzpqcI*UH!6R{x`o&4jZrezAOy4!B#j!qoH~Wpv_1-~jw4O$2vnCwC@36@ z_83T!VGm(SNAp!M-5|t}6uWB{MlpTTAbmnBuseA+0-2hg`Oyn?)HHR-e}J}>CIQQj zPCar|s9^YI;XMdd0!qN^`*5>#gN$<>L{K8Sz-l~AdL=C|o1F2CD7nNd4;1|^4G0-= zfRV?Zs_|S(CoGb8P)N9=RM}>YMPk#1X?A_!`=j)swU(SrN*C@v_@2Xr^ISL5t|dvf zqeJg1d)B(bxXk4Oeb*7EaQAO#T$&h2HTl#rG-(h<^W8jkQT}eZp%f1-*UW*;Eha6} zFKtPHaz)=f4*uG4D}z_=xxwG8Li)UExWalrwJI}a`p&Y_qiV4gRyNoV$cj?Jj{5L^ z$#UV|$G8SU@t&UzxCsd4mE)}t8Ta%a(uH7kCX@-MN#v_!V;LIRI2)`lq4r-@f9MSf z-lOzCq&mIh6Uh24dub1u>al1oA@-`QibaVO>asMGp?cx_yDGY&MWu6~SFq$@f*El5 zIV}NHnV+3NASn=;IcFQ!Lvy*Rx4F-Bw6q_Uuj}BCk%v}h!sF0Fy^@b}9hMEVb*V9Q zrpHp1oeP!U6%y^?CwUcS&Mae2rOl1YOyMbt;l_X6X%%S8-}(}b0~ zbZQ^e60n>!&$Mg+WT&tlwd9M)zgdQr9JJ*=DB+#~;6_(cxdyEOC(>8>ZNUg@Ct0S@ zp!yw^in%p6gU3<-w2HrAXu~z>MsOE*bl!Wp+`9(>@U6c7YKODE&Cz)}kjUy0+<5hR z^GYF3e7U>z4%(m=#9RjBt&f%`iMCq^UJx|pUwo^X7xLUA5ApP2w`xe@Y3w~XbT>~2 zdr@a2hz)X=%&_lg?9O^n2XfKe+TVVu6#GR*N`-+sDEi38`wSH&9i`ZQ|0tJRJ~ zzWv2S@1PofEatN8lQYBLi>-^-yQJve9Mb2~lr61m3Z>UW5u_WuutOuz7z2CgtDYSi zt|B5HY3DvX#m!Pk%i%xD54o<)(BF*n)cA<$XquKhi?u3^^F3dG;D43Vm?b4Vpa%!^ zxV)+}&Msz9aTLn}4#>UdZV}e#Vmy@7FrMq(mkIzD-ERjvcv8(Pjg6`Y5~yCGNZnBO z0EGZ_qwR-Y0Ky3`&U;Begu#H`>LBYHjMX6*&hX!39rG2J9TxM_m6G*;)K!i$qo%s9 zX+Ap*w6+s%5^YhN`{QffX#1+;z5*6&z2xs~>KfWrX2>p^i$^gr=W|<0b50akO;i|0 z`>^Eac}pQ%YT||dkN3F2Fn3wTa;6miBeW*jVf6=ZD@D$IWuAigp&Qrb$uIv``1P6s z;3(2whrvn3xnQ6Z4jfss%7v{rGE_^wJ?st}EDAZUbjti)L#Pr8rElIM@N1`Yyk(+C z&?>!hE04{!0N``p98npj70%k|r4Moq@6o@Ouy$}XF7x%4utAy8t8l?fz2h@4($Y*= zKg;ORdG7CS0P}n|LjoQ z*oZR~BZkYfr!8aidV~jWKRU5g1y=7kXoRl&P7s$YaOCtK-=hT(V4^YM(}X5xQTk)s zvA|eCctvU|1w|q&ajrjX^}Pq~Va7`FPqV%=LZlALXQi@|4yW9ehlHo`t>7bO;8$2N zYT+pO_#sRB^C>_9zG`7&GM4s18qKO?PLY>xvA^3nntsHV4r?ocmh9-4)4}DhKWfn4 z1QAdDG5mvSN-Yfmb$yCLdf7#5KM6MnBJ4GDf3DAot^E<`BG|O$y)!yc+;htZvgv`>kWb*1%xrRJ zhI@tJO>J4=veX^8c~720y5a46k>nu$tl;J_8-|1HLo{h;4)Ch$xg`uM9KU0#50W|6 zfhu74v*0rXhR!>s*{7@94|etk8a4sWtcr-q0yDZ+CkK8|^SsujCdmb+sGeT6odnee z?oEzI2;*)VI-b_hAiI6?-Tt_UmvYMg5ht|0lS5c5fcz^{l&CMBcni7?m$raO*8NB; zhkp8LCMw9BRAN<1+e-R!FVRu|T2s)pU%LDL(EEC5Dm8i5AWS-dodE?{8_@G;Ylx4v z?N4k}CTN|sEiJ(wpoOC?dN+-GAh^8T#!w2egeu<3u%B<{I>)yF9t~c9=Gtb)4ZRgM zWT81>_y`w9X*1c#gZyx2geet^40;N+$n5EbA8Eah>Guvoh4T5?VYl;52^i?!sVDZo8N1hlYa zg?ccbP{wb0qSx#62K=Xly8-qPG%r)1Z;sYq{4fW!LF6dJg*UJs!3|Zm^+_eBdAyv) zf(NaHUlyi1Z0iy9`Y>9klOHYgzObp8bwtPHYCG~$X=5(pmX&s(vJUdT@PLnSBZ3HP z6bkV(fVJHd*qh>~?5`_5MH%|FlGJ*6rb^ScIb-b}3$PNZ9}@u{dUlFZ zwg0%a^fnz-Z)zSE+h#a2{ifyMa;_@MjA;g2cn}%e0Yw# zh>tV!PlL%Yen53G0JjBD5YltDO@XhfSht{*d~uFfQwku1aGL-#znln!l{kbFEF=)6 zWxtr0ypr^=-0TW5D-?-0td&o=X8`lPP1F(GHI-NXlR9*oN!>mQz#dhUAEM=-lgCy& zG41+7zmQ6g0NZ!KrsM~Ie*NOERSfzy*=CUrcFLZ()jjiM>!{iuX@q%c5JSfhOHc_< zL%Mj>mca*y;>5y-*Wl*0ii$OfVRD0dG020eVPE+v4+#WGsx1I4Vrm{bp;_5mmENVz zR{Jywo?*_;0)OoPGV7s@~6}$iJHw{foRuycJM3^34@EOfr>^FYEACf_++@Ic z2*sm1G6-LfC|}P&g+Jz`Bv*k6IWN~^tdWrRY^{dDN0OijqOgXp{#Q%1_b^D5ZK_v< zpHdB95CF;8V`8PE4mfQcc*mH9c-ppmZeLo1!4v@EJ~=G34v!X*TgW^5euM)Wf$r<3 zi*XPqkS&9iQrR8$y3%V`{d(t&!v){q48wIaWaA6CRE#rO_xMsE$XI(C^$jOVdL^`x#Qp~k*VoyiV)hMY z!tA<{_;_LCNhFV{VDs)2AN*Jh_LDMdY>{q z%x>2cKL-K+i^L8KGR;*Y=NEX>XLl8UkC$Y{=v=2wERp_DE4$w{sy2@818I@Xfc~`P z&pup>TiZ`%+O2O1pSgOEO zO%m)#WXT*<^wf58(XrwyJFi?egOyW^=y(} zDtdw4W6{E$L9pS&t>4YVZm?}~uSEu&bFEtK5|F~HKRr^ur_h~OYV|rkJ*lX8zPuT< z1ln!ErPaW%R{du79cb`IOEyx>TQo|bl(HMCv0a^V1N4>;TGw06NRs@=tYHk963-{~ z=X!#n@&k$Pkj&Dej$|tkck)~zcQBj3RL0w0SfnZ`u2%^&_!0mGMW{M9;x6#opN+T2z=K>v@b|8hFTQY#K?X0mAnkToemuP7#9JiUPahRC0MfG z>t4O3@tiBu>2SC|VD=p9(hVeJdClSqy0N+!<6hSLVFY(x2|5HtH?AF>a7y7?25#uK z%bj>ma!$Ft&e);LZw~33XNn9PP0$zui5h2aghP9M?bP0XEM0w@Ph|l4)MmJhB3rg| zaM8GaS^XaiXQNv)bDBtlB_v~nrgIX0za^V3vt25SH^W(CJ0o6D8?SIJIyF)XZO3mj zPgdY;M+LR7m-MM^*?vMXe1O=7fKLZhT6aavKM$`Z% z`u4QeM#XB{wpi^b-mkUz@E~;n;ycn2!kMW9o%Ng52S%2i(}HynW$9dq1h5<=90{ep zJ*PSjPy1t;p*?F0(C+ShGd!)h=Fx?%0j(iU7r>C&U4+x>2BJCdEI!KN)Cz5fS9aO3`i@l;dAwKN zl4>(xma|}YMx~+W??x46;K;*+#m&3p=fzzJVg}S9gDq_@-POs@K81_{aYELGv$Xn; z_@S~WaY|D#{5ZpN@=a6+xw#VK-GkH^1fu{8ac!T5~T z(VKSnXriqC6z9b%o8>^BZvaEQTm(d5KhgfP{X`Y>${9fOHUQM*Lsst9^YAm3Bon;> z)zFuY+rH$7%%{iye9Pr(y(^;yD;0*JUDn3D+h6bC#)9h`Kw?=)>(>)$N`sHEj|ub8 zr`VEHOh{m@qj+B{snz!|9-wAjE&bA3Idhdx4Vfh+-6R5%2h(?P%P@*GT}HV8ezl-I z!=O(g(Dp&Ghui;MdBB=zu?eDe3bWTxwhJH-`B=oX6voJU=t8wR)G%BG%=!V*G#h#n zvjPO}eLbeaAHI{WAN0nbf{B9zioYqN*Fwh1i!H99V-wpu9vPCW971n*$#KruMOpe+ zF@L0&`OiD!k7*r91{Uo^D#6)NK0rqygmOO_RrRQzDo!9}Vx@WTkkm?g(*c1Ne9x*= zc7BC_epriG;PfdFXPInRVC8JR(@c!qL+t^HfYa_qy?8CW)G z#SQ7kG22pM%<}L@9~8#Ayu+WK|Gkohs3MCZ)FwY0i-$7_h*E=4q%6Sxi#*j8T@1F)le)to2< zyz`b&FH(Z14R^@$2v>(_$w~IliHpus#8p@e=z&aY&vq@~O-Qvq%qQ}4&=QkhHf)wu z3FC{=>APod00V(uW>7U3CG6Lu0n`nH-R)wQ-{Y80_W6ruC4DE8#`r=i9@sc|43MU%D}-FZGG`8 zHO`o;lkXz-*62-f6aq0)_tjHpJJtnumXrgfX}QHHj1KUucFceYCfjK{@N6Mx_$J=? z*>0|FH6b-M=@U@w9nuNpSMrc@bM0q4b($XcCQX%iy&%kP8E8;w$Cn~G%gCGbo0y1#$ZjklvzD~*@R-|~ zqK{I`MJ?cDVl|-}HpHDM#WN#H984$W(Mm!FcXY)j~w%uWsJBffXnO2}HiwC0zYYh`fx5Ebly!K7J{{(f)4@%A*JBL)s^|e8Y}8hQ*mV#DP~l4-@?DD~4v2VPdea z2}k_&XN%`A>8sojig08j_>|Oc`{XC9{F>LKkHD08fT32YO9EI+4 z2}XBe6qTN~T|BX1awtsh)i?Fzb3)zqHNW~coAfMipe;gmgd-hu~lQ|Qd62;VW? zE9YPNDsiop7h0@BUHj4m>hv)XN@Ki6wRM%VEx|O(Uk}xSo ztr+T{d@QO&LeQ{Al~jfuD!JzxS-sp4OOj&(xx+?Icp5*LFn)$F3!g`J)3u zP+-HfE*#M>ke=0>9oSxB|-5I^IWZ{RV|4-8SJJ3D~=K9jwc{)6|#hR`8Ls6Fg0 zfi|&5tx0s7HDX>hGj4csKF22UoXC8VJqXDA#Mscqs^sWWV~U+ zYmT3kJ9IZm*ttAn$GTtSOkO14Y{p{Nx4SaF86%@ zvl#*t7UGlv0syG|2Q{Jo*9=)ZTN^XdGcvI=a?r3dGceOIuo{`Vn;X;8vl-gyI@(#8 zJLxjfGyfONBs+1|W{Dnt$;X)Y%|Q3|Ot2ItDYW%5sX zZ6Dy!<FvK(4TQinuoj?DYw zxecqh1*CDlQfJb#&^31qTBLB(T0~U!!TQXMjMvU;ofS~r68Xdrda%Cuq8DEc@*hVQbRCxxs2qMk-yjT14K~@aqvM6JmjKY;;^BLZTO)nU1!oY z9JWuFmAw!NcWGPe8+3$*T4++u0Zg8dxc7fhc8)QkL{Hiu+qP}nwr$(C?YU#yykp(5 zZQHiFv)Rp?{J-tnNvG4D{#Ykfbxu9c4-8Fp9ETRQ1B=n4uvbH$HrrT1n+I22YCQ!EZ!=dg-Y1Z=?D7&Gw)$@kO zgWtr#=}+w)v0}opnQ(Lv4(!3c&2TWM#va5hda+HnMTMl+2-QA#Y`rv@tQi3N`F??s z2cvm$OpqlN{{!7NTXU9g{_E^vY-&o=5AOUlFc2(KO+F7%F*-?YoxPJp1+yT5Zg^&| z?GJQiM&@3Xq+tS|w7D&bM)tX_CNx1`AS*T#Y}&rgsTIT-8q5j|(ib@uissXUCQB_8 zoYXdTJ>_B(ih`v_ZCnyobz|``0ew~Hr>D0mD^aySYWRaHZ!}|_@j=vZ++FP7^VAcm z|LO-mH-|tE*CWj47bXgk6!W1AA=T5ocF6vpad}1ds=)F~wuvME|A%`e8d_8Ri3?2q3m~N`BzA~e(Iz=Vdvuzq>8}e7_q|sdcU?z_-afB=J&FZ<@ zWnxZ!raM<(Mj4zb;n)qWWE!=OEa}RPd%GLMx-nDdpU<09197H>U*9SVDo+9a>shg~ zksotT2>zZS8IC#U%plFW#9!JbN5p8?YmsZSIW;o698x1&d5l2nM0K9YHbiwnv z4gSMhT3%g`C=sLCKr!}$0yDRzf0goqF`4?7v~4&OBKJn4wllP(phg$#Eng6^J1^7B zV2w9niXIfYc#6R2wIp_E=EB#Ft)7G;6*HAnB0+>UksBdcgJ69(LK7^kw?_N-u(7(7 z@X!BaD{selAk#OzK?fId!7rQ7KKhgt>DcoywEC0}EjpgQ`<*AVhw@<+&>03A>YP7M zUq>dIxK_XA)I*U1)A`4Hg0^vbbQKW8ra*VRxG^RRb$TiXm#Jz^Ex?^mH=Vn%f7b&* z=~(Hy-!BcS#b$auNjU74G=0@U^_RVU>;kS`h>!})!*0uDn7)ci1edic#4!E+aD%8X z;B`IIfy4aFt0--(3;wI?4*Vx&uQ{xny$=HSl#KPp{3msnmUu630dzrnz9!hYy0Oru zOR)nXOk>>uuEv367En7H$eb%j(rM)zwR+%E%}bL@LwE}~%S#75HNoSrxv~kSW7h*G zb!DDDOOKw2GqH~4{l!_x^W++Ukk>V1D-gmdf??M9>u6(S*qzgrMr14x`Ax6EELk>y z?4E(s+YzhF<*s&es*gZS>?ns5vdtpX5yPk&7O~?m4DC z=zzsk=x7!huI!ub_0CxM)tR5qu_!v@yU=Y2h58y5C@$N#?S4GQT&#Zcq9pdT7xUmX z@Ynn!HZ}-}KWJ*i`rZH}eErw2M-ANE2zOFvpz6Qe)HZu%Ly=v}5Cd#Gl8hy#)Qi+t zhC!Q3>68R-)O+4y8tA%rp<_wh6|!ImQ1HO|`i&6bF+h?~QJN#UVO>mEP|_o8i!vCh4LqJyCiF2^h4xKJ()KmxSQ0Ft(`vQQV~~*KY#hvdT$8_ih?K<)sdqadZXxZLg~Ej{IXlud+X+x427(Ks=)NX zPZCN4EEiMBCBYAUH)S1}1=D*$T7V8}sTEsYfOm0QF9;3nZDV5`5H#L8rYd=$gZK6y z0z$ajO86wQH>8;SUpC*krIe#Oq`J~V4y_6^+7y~mAw8eu*Hu?g{V9+TBFJ4hY&*(E zTeHEjhr#~#p{9QmAo`Pnh(IVGn)v7oeyYK6HHI@*#>0lPpoxwOMVPhWR`(sZRrjN* zkrj@6>INP&V@#g8@`7`6$G2l~s`QS&BFF==bF9sG3M7QV0t9P3u3l-Bz}SmQORixY zYk8dQ#@#k`IJ1tm2A7D~_FZ9Hf<4C#8NNZZG#p;x?*@?&_O&|>>baFJI8O#g!}pc8 z%mALF&Zv`a%V-^yL&BRZ+A$xM6gIs;uC#;Uy7A=25!q z{?&R}yKYn!R?n;UXp!)!YyUR#zPjsH|InMpmvgSw{RCt`)H^1>dXG;{y*wrvtCm$t z`;=!849AO2zp29DlXU$GAxP(e1MLnSkn4N=%TOJ)buj25C77y8$wf^eHy>NI3)~x^FXP2{#kw*S(*AS-~MXh!#`Zrdg}ER;*rM#x|;`g?P1MSaZpP2d0XqFY!t%8L5a9pvw~eqNC$o)#GY0{k^_P>a%o zdahrp@Y7LwiHL^p4E^ScdagIaOOW}o^{_#^%a(v=Fsc6uHLLgmw*f^#_)}HdzcqwD z$5WZfIakAcLp>Ysjm~o~wlr6zE$KT+SDMrx@mBHon!Eiu7$S8vw%8tCEc)y8rvH?1 zimLpAJ~b|-omNCfwl&1IVlDN)5W&+tI9F@xqyZ%&`RnF33Dz2nEZz zBuV=pInBuFSqD>IwyF^B>!BSvbBfQPvro?_!5ra_WP1`{uDxa((-rG+7tkSMQqEu! zoS@87(TFkA3XAyoNx1Dt#@@(8E$YCQlNh|*hOraD4cild=zBS95>eOSU-76U67mFT z;b21`M&0m$*R>0`!#Qs39K|P18x45pgqNM8CTUrVdDe~euKqEvW-JRCh0DY9Px%VE zhYYhfPXYYGG5Qbae^y_g-+4rwzwH3a?~VQc_%dQnhSn~wPP9s<=B_q|PIT_}W@b!) zEHo1f?($+x0D!+g0?@Dk!2S1AW)c8^di#IA{rCHSUSI|QJ`g;R*)WI@P$vlUZh&k+ zB*4J{(1Ah#AOxV12;f0fFoERQp8~4l&Z``~lVNU9LqGUvtA7X!PVRTD%rUhmen%9J z7L#KtiXjItW;54AqWHs=#w#iqvW44^z?4d}lCHM(-RTd(@O|~@fInuGZCfvggYU)> z|4hQovT>i6|4Ft2EryXvfRY469x6X;Lbt2AaMATMvC;Rl{X&g~{}Ru6?j{j7*+=LQ zER&G)8r8PUgl{dmu-$tzg7x*kA!9;Bo0UkV7@%W9HeRL7PfY{Rz#@n5v01E{?HRsMYh zK=CQ<1C?^l^C$o6@U@TQwoA!dZSwWnJt4wt0`L@ex{vB?r+cXzCqphJ^%i&sO-poNf+ed#3!o|j zD**sggqr|m08ju6mU+}n16??bgC0$Bdbs17QU1uKtjbAAI2-_oeERpR6c#YR%$-dL zAm9B720&w@&3}}ALLl&cJ{qtm;r2jYFSD|d1eyxM&x%11U217c03-mGoB<%qqhsV9V9Q4hn8#=wd+1LIO_H z9xVz?ezSCauYctjU}H*Hg4?RmtB0h_XDv$~75oh8*>vO;N#kV^C3ee)dc8liqcm2# zBo6NcM5ND2qKXc>qL_Yb@~8V1BJ?U5E67FODs!B)b9U)Bs-Id9|F!%y3WwEf|5uX3 zDwRw^_&K_zP-wM?qS)|nh3{6igkm{!TR^fb5Bw|goY7vtUK}#(UUBHIb>$i?s@>8a z&p+Gk6=ZG^+@xF4CKUlfgK#7>#6}H?2*0TULY_HjI4aZ(tOK*8IY0_x>5Qtt;U60t zOBjYN74c}}v05EUa$*aQtJ3zj@1I*ycYws1>Ze4^nw`jJ-3kd^G)zo;;}`!VQBpjUBQ=-qf@9`A zm}FJaK;5GWHx>W9RNA|yK`(w5Qt4i_xo9J8`kHx`!u}_pDHCd=01I^SV2FLb$V6<@y-n;C6wak`U0E#QPQ<&{3l$fCtASby zYpabPh+mGbYnU9cYO5_G@HT_z$2pKnQ*anY!1Fsx+It{UV7(QBan8WL$?l~Epk)mF znC?RULa@8<;qo5GwZyZ#Vn{(S!djr`3>?@J6|GSpHed3%55R+HgCTOzOPGD*j7IRV zc_<3C4?|itGr%mzaB4l10`4-PU>Kea=r00O#g~)2rC&ZF5rK)fpcNrvC_rIOHjJy( z$j4Gsz^y6|WL+HOvf7h60l^6oC_lO_GK~_jmlo4q&W^K;8Q4k7VTBvuhu6jiEbU*X zDc8f7R5c=X$%oZdI1LoSM*+)c00~8;ILxmHg)*L<#6cOM)q2I57b2C_7;7X!UCVB7 z2htdvz_=o(6KvAvEVh(m=jc(VA4UPS=sZezcC(-A)Y6FSB2qNMkFGh6OR7YlybRLY zy;&7js4<7v2m(?(>SNibUKFij@7i-GZFn_Y10QO#7Db|X7@-&hEd0wcxCc#%U@aUf zeoHe1jY10fm?~q(|Kn{CpY?}Vy`&Z2EK0b*!h>~?F#ux>3H^IseC5TgBdo7^=WR1$ z|MT_+O3qBF_>rvK%!FjGr5;63Z%w*@)^=!XQwdes?nF{)JIOnt>mZ-WGK1QaHm@`X zq9dk&VM?tTO&*m|{d!zVi*g}`{6VgxAS!wD&4!eupyk41psjGze40FUpOTteO~^#I zUU|Cc$OTkDc)CSdh~mkNvR%rl%g};HS^x@@Ti}?iz=j)rR@SOOdx`#bO$?<`Z6Qt< zWQZ6|Wo3E&C(!cFRCHQgc$nsXrK@*Atd8*|M|t^HO};bDAgWwN^DCsKu+oS!brc<` z)|1ZP^{cY7`bSG}$;rJFB+gjx28tuH>mOq2m4V-D(76<&5M%f<Jii57?j41k*)$3Ycos1=v>!*k65gC9pzTd%+|qD zB=KHoW+^{KgA8optQ25FrM}dl!-Z^-$M)E;OWf5-AIwi7gqS^xw5AcKQL?luwu%syDe`!K-Qf_ecAWH?3;af~2im|wD8 zwIh^Ub|CJFfq5ta&j@Lo11OzNa5Vd=0jgCW+PMKLRsbyvh_(et%j|EH4!MdZyEj&W z|5i;6_c!E(V6Fe@9V+>+%?Lq+8e+&YBEh&BTtTHFc4h;nu?Dz0 zRuk!x_SXoPIGO0;3834lYRl>At0U>ND-gcF;f6NBJd_Wx1kYvI)oHHCtmW!qTG`6F zugk4xJW5aon-PMium}G$ubVna$+#cgoZa`EdEbAwYqTi*F$#FKgH&-wWI_xet}^d0?i-$&iv=btp=;0hgG z&;67_juxyM#ODzJov{A2$Jm_xZ_ase$T(yROYblX3BE6bc)8N?grtNnBzG24|j zK{}H`LS5aV_TrT9Tq|E$S2o%NP9QMk2sz*Olvq?Kj0<6(YH)I1dw#54WfP3a-aRt$ zeQM<|zKIcypK+D0VL8L3tTvdxiI@Z8VDM_|@yYmU)1H;r3eZ;@>d$S^+p!C^o9%nO z?pfUrDa!g^au@DBUTUuC98e1m<0`m_J)e3PFH;IzrvVOSpXA~9>e2!?H?j;4GVF5T zBM_r0=ynhV_hi8U9=TSL2diFa(-tNOcN4d`p;;WAAoZNRffg!JaArR`aTIPEMRLu{ z9V)~m5*dD-YH8Mf`2@P*UTWtXjj|-GFj0|N9JfJX7>Izcau_8m_1HjH-my1Jm|$1$ zkq1>dAH^td0RW!DF$TlAPD`JkpB@mQ0HQzOh3Vb(_qeqmP;7MEv&z!8PFuRH{LG!| z{QQws#0hz^xf$tu>O8m3c`NO9_}9b|n0wx@UW2R23oAwz@BUe_KO0Bk<5Y21nPJ9} z7Z=zcS1(#U@CE5?ZY(dU4Y^&K>`sxcgRq=9AKAvb8yC{=3$Ox*`$HT*RuPWv1g-@N zou)ZndSR$wVaB{XdU9zG?)?pwFp&kZ=p%@Gsx1yEwx&SlOgCfHY5efm-xvF2;bd;_ z$u79&LrzSYcz*c3xC^dcE`_H$M1+B6dW3qzEAvN zc$LVJ%6k4p3!yCX-iw?iG zQ?|tZAx&*@i`wjxKMiKK3=}r zT6rwuj+jINaT3Nt>!dmgWU}W=J{NO)+>5WY4`>Rxb_IZCO9i*M}J>R~u4+LGG!1c?cKy)>m=F@gq$!bD+SHt6(8XK!?3Vqr3{ zq$U;eN}JW=lz+(OnVEY;T39kUbia<1tvUjW8eMtmKDe76D@xKDJ^sFQbJ-K>!&@Gy z624V1?qbKE(Nv-dThSxuWOfbg9^0#a+LfCvucUao zc69g85E$7|k+a!KDJ{ILLav?QRbi$t$O;9A%nunU@)UO!bxNXTdu)ldGN8(@Zgv8m>2ybe6xo){&dGck`d!yEX z-%fHTy0?(jSc{CWqGow;J&9 zhy5uV{6!zetK>jKG&7zEYrcEF++9JwAB5s;K|2X&HQhr$hFVyLZQfr7{LP1#rIS6wgvk1NQr9@vN)0E}-oZp= zKt9gGRbo@_Iamnn`3b>#nD2@-B&Ail(TgIqp0?*$^LsqjA*>g1ix*6(9 z9X#mxrb;5p`N<3Pze8%oyr}!byz*{8ZSP&l$opI5`9K3L($QA)do2RW$Ey6x;CT&C zUFT>NVOxn0%eLGxXf33#Nt-1eTYqo>TWDv(NswZ2U{stadAu1ReDQhbYI*TrCO{4T zwJm;UFq&8QV1GT_x2&R{a7RE}APX*q-#O*_GQQA2G?@~fX68L>1S;}T;P13WPfom_ z5hfFt<*3c(23oZyMgboFF5bI=S!YTLrV%`o##K>Y-MW7FSr(yu_Q2H6W)Bl+nCns( zXaWlT(8w0_PqG}>@?k{tOs{OvRifA=GP)fGL|pRn{PfkbOU?S_;5`^DxHRUq=)N%8 z5mfx(DQ!XgsB%8(lWS5w-??u9w zf=3&a@FtcK%20D|4*8CcMBn{BczZg%nKX28({QYh3VJe}pv}Zt!R_^(2PTX(rcs6` z<2BS2kV@CW>!#r9UZLzJC7c9cDLoIY{m6#-KZtZ`YU3#=$mRyad#bN(yrUik_c?vh z5KA*C|xi9_{`7(H1cyl*KTqt~z+bT8hpnR!z*p$;!w zo(Efbp-FWtCOeBRdQ(e{)TTO~hzNY-mFA+(aL2E;V9@wXv=8c@%G$$tClu{++=&=e zvfM0@-wMC9iFA|HDrI}hasNgPy$G?yMlz1gS;y_$E)0?y`P1vgdYC}$K%GxDoh|6w zkF^a=N!#u*7!&}?8L=jXABLN;rD#7Fl>LoPYdzv0AWg{P#Q zf7QG)&Z%`yq_)joh^2od_1a#lzWVC*SwC2*@lBBEQXkGhbtb;)i#^VdL}!CDD0PSD z*FEiWMM(RaF8j)n{kD^9E8Pc0k~8l#t8pcLlD@$%Bp{Kz1cebVkyBnh0LKMI6(YN~-?qeYXWF=|4qd zhd}Q1Ca))_W;s#UfqCEo^M?M5_E(&xEsISNCR822*4r@B}T@58TU zyA5Y;Y{PWETj&+GQd8ibcDs%B1Ox$hvb})60yLs{tcm5YcyZ$nU3u$sM!@ zHaq>rLl-JMO_2_RhAHD{)fQqZghKe2nS;BOI~>2|qJ*7_R`m1CzBhd>Lvdr)*+u*0 z(52{6ziZ_DBK1Cm>^G;CryfCmyKAn+M0QL;3`}>!H~D1&ZQow~Ek^w#wo9M>d^i)P zZYJyE>WJy*V0-<{$*w7QU_NtO9H&~wJ)0)6OsXn&xzb0z=J6y{Rd%)9R*kUZcm-DS zQTXFnJGzRvj1v4J6#H(;{%QQrtsHK@JvaKn-XfjOKJ2NyMnFmMojiA zwvwx&oS`vSVN8GNdHOB%_a(O7sz$P4yld3W{$t!@Y@)JxgGQbk6SA%JAOenPPClF~ZE(J|R z8)Xn?U$2e1k5s0(alYr!zXp4>hY+?|3ih2Xt+v9Suc_s59Sp=1UuqQ@Z)Rzkj6?OQ zc}QzV<4EzzGYArR8b|Vnnc-ilL}f)1&vRR?yud7dhKpeh(c#YWQ{A_sgVVw6aqK)w z?qAJ~Y#{cf)FF^i-*N+CdKm0q%PsRQ<>${u+ZJX~C(XGIlib^TlI|UYt=9vt)-gu zhneE&bBHXR!7lnWBw+bTajM-ubhxwU?SV>XRct55DFiDoHxYSg0S*59iZ!*JPIloZ zY#C@~&4hTXZ=o=>uU4=AaJuV<#>zP!WkdO(;uxmV&^h{$^HK(oMVrCXvT~3U=_p-}@ZES66JlX2Xj#C=ae=3u*e+U@`2BW?X9ML^$^WCuWlg(f zW=%Q7AKW4(4@cDK(R7^isJXr}>jUUd7_S4S!6I@en8t=?zC;ooH_<9elz1EJWy)jf z{9u0d>}4&FltJtQ{{?^lWl(2gQT3&<8D*f-o~IO1VoEs_O2PT>naPVc&$!Yop2YabPTQnbRary4m=W9b*28-RA&n-GF$#=ad?7fe{DOh)7J{G zO4;?ra;Ic{+{q$hBtkbm({`u%Fsj`cr||hD%E?TllO0EnWd06Idrv@9y(y@j*3cV! zX@j#f-#`I^LO+$~Vqqz_a@ZzIvc+Ap>#GKkaOLfiM;ep;MYUBb!*gZvalEq3cK7(( zo4n=H!(I+uf5!-5+)21~VndZ{#L$FYMYaNK7~GVT!0X4ewMOb`rG*~NC#s6wZm|6Q z%Qkfrk2tTAiwEno&Ac_jJjYYK@5ke^njyX`GPsB{IAwf&@eOTg=$6xSrxi88}sE7hV%DYSpUd z-rLN^$aVE@qBhyFK8#8*b_wT2sBKUgg?l>6pyC>O-%*#co8A4j5?Fqw{g)s!g5`mz zT>$z}8{~Ia!qYMK8I_G@_c_IJ(BI=cYR+sx*LKI2+3)Y`~alEskE4yO^iJ6C-}O{~~F?s58; zR*7mtM#G!gA@E{oV_V6#$liip9}dSlhN|U|-&srKYgDlLws9cNQK-QriOMOq%SK}2 z^V&@i)UG6Q%66-nl8|dr-CsQ2@!q`)s$?KTS}@ZdtbkmAr!(t#l>IqEUaa zOM(A)8?TTmaZ+E?IOVLd#^zJvR%^6x&nxV(An}Q=+EQXID6%#t&2u%?{UhCi;=K9C zUC&-vp=J6yDoEbQz(@=a(g4oit)CU2shQxdu@yOASJoe(t z{n#wi7UyW-A&)50D2nK8zM>_TCL6ttc>L*53Au)6AYQyWUQA)nfBTI;uV~MSuB!Mr zziQALH{(Eu>aV;9PhpVcOKNTH`61@qTzKx$wZCyN2J=9X5ewbyXK0VUa-UO=gJdQM|M$e~@Zkf7~j%k|pzhla>8Uy20hUdNso9kT>;2OH5 z=f(k2NnON|pT+7;nw4RXmMFU~=s%nLSuWa6R3m@wwR9;9xTfFNs-1(=hjl_ReQZsx z`-y#~0-Z1qwucRz#u}fU6ptIE=D3tRopWAjE#qF!#5TE!et}EFE`tbJ>c(2 zP3*HIQGNBK(#ig*Coqg^dSgf_9xnA!#DS-(VRKJ3KZiY-#z74ohbNq$GMNukR$G#P z=nn;H;8yOoW}TGdvN<|B;+Q4U?G?vPZ*>8)1=^vK6AjBnP|abOmGJ1D#jRa&>%(BI zTTu~+=u}M3xe04d`R&T0PxkKlL z;svN~a{Zz8f0PvrT>@bCY>t9xZvjxk)xDlv_0-ofE#fg-78S<$t*rg%AI~toaDakQ z;OJRVLG<(m2dBYkMa%H9qcF&Q(Kqv!g`92~{c8S6q&dg)kyrF<2jzgg)G9Z=JY!p! zZKx&PnU_7R&N{wenVYKrRX3!B4~(@=`YWj(9j(8yS9s%QOf+_hu}5S~%rWrbY8g#Rk;8KK?Lb znByd!v9cKoj#uSA<`fHNXZo2ubFaAm&t3k*mweAxCA3S)bnK09jy9K!Y|bgiKnqkj zM8-0f&zOYnOINN=8usf%vOzS3o@1?!VZ&~t0`&p0BhKMedo>z3UX(OB&pMQ3Ae()R zRu9X3I`ZA+a3|bMfVBZh9^NN|!jNIVf8}vIRGz!zk3jQsHl8W^#$N9J;eohTU5_0E z&6eGfsrCt)YdQ6#E*fUr-;atXSkx>hRM3d_xyrmDd@DT)wBW=We&6sYxpN@tYK@7^ zDO#4k@Edb=YNl7`i;`=A4#1d4oJpVS#X8+Hn!%6NmQQyAp+IdknbjaqLG}q{q!;zj zDCN2@h`ZpRD2h5-!&#Io%)B zgfzvTm@3<|9InN~bwuOS0 z&sxs*7Mzua5p7vX)lSF8wfx^Nrh4c+rpS$R)P_!b(6?1&`lCsC{XG75(1mwI1Kb+0 zBQOxwG6M4Qt@c@2aBSRpMrBcjxP%E?FK~^T4Iq{m%11iZCFPl!)UafABzo}B9ONrI zx{XMP-aa#6i+4EI<bfI2?$p#TU@wE?6h4W0zR!BeOBa>6(7Z|0)?p=Bd|6$E-ohv?m@3JXrME}$*1M@y5$Vr4PZ_C?x^W*B#4cNAlsv> z`qA10`I!n*;l2lFHkU+uVq?Hnq0z9xOjL-|-Kmoi?+4-oM0}p^D+y7!OJ1uFg-v9B z@7iXBR6Mkvtv?~(^RRehwKN^Sp6YuuvfRF4;C%V``AhL{ce^*}k+RJ#fm)$WMg@#Y zhXOeqn3J4gUX@BMUzg^2J9Xb4HnM(vFjSD>{6(gb<_s`~<8KYr*w<8gT;`%DTtfg3 z`|P&ymIp|rM2{DF@&zrrP$#(}-J90b7Of)ZDx43eu)ZatM@ep13?&yE*6PPuRZ;8% zS@h&v+>+=JdYZSHlcrJ>lv(R+K1t`e!hpynu<~YB<|}^)3z-8RoUqyv~4+pxc4n0IGtWr#Oko$|aNfx1uNE<-z|hwD`a4 znj;mWlhoW`ydPFYbD^BJXNP9#$eNuw*O1*x`?J2q94ASlU4V zp&}^WXe5H#K%Gq0MoZ{Eq@FMR%TL5RkdG9qFx#O5zOGR2X&n5)rv%>R+M2)M7qGEH zrQyVPZj95ISzB|hV~#sTb_(}|PO%-O3yLP8$iBnd1UE5ML0;1=bi=vLc}r{Em|J}Z zW>2px>wd_gMs_9f*Q3UKM2obaT)_C`Kf*>HUL0dkQP^bR4$ESpOfJCRgfh>p=jdbhVg>QaCaH^`!~BBm_9rC|ni&KS3|hDN`}1tF{LNMpIm?=X>` z==rOY9`*3v0jXXSYNpi~3|@@OJ49jqg(W94Bj`#xgySPKr>dyT#a27o~v*Pww<4y9%8UI!g-3!ZA3s;Z}J7%>MIVHQVdq zkn}uBki>4A<9Wqr;ve|}vL+4x=s*g7l79C@_QIXv4v4RWlaJvIULbd)1@;fn`ez}W zghKJlcMhGO;%zhTuv4GYz+I7{_kCH8NSD6Rc&ow7-Th?y2?`W^r&$o8!A1HGo~c)sxbac>w={k=99aO$hZv&MN+uqlkW>&HLCDc0*r0t(s-*dXC@3Nk1VC)z zf_N6CL|%Nk#K;aA7Dv4fWu7!hGTX-u6)2{QP*gEWZ~;aVLEr^?gaH|rx^if{Z8lhv zd&;3GU)2c!g!vM(s<&qn8<}~+@r4J3V2BbBXHY0SLf|qZ1OPxDUOM!!GN1gUshldk5Yq_P};vLe~t#ia1s>~+Pyyxg9n&Yhb zN;}%`AR4Bj?dm%oryRd~x)CZ|-=DT1^`OoifrJtoy)a-2c^VIx^|I0MdjGy$lvcd= z4HIg$P~cG;tiwH62jEPW-}CX4p~_IcoUcSHw?K%sTQ>ILhNhp941_Np>r@P{2C7qh zttm!u&n%w&TKUl~rTW6`SRQky@_P0DRRsauRqu}DSKI7I0Mo;_g@XAQ5`-+hGy*Zp zoMnd6{9=rBSMakfj%$;?5g%N3BJevA04f1`83F|8(2VcHHObxyGn50Ydu2jDce+Mz zyp+-C?aVg8Wh;iH0NDNK1ceygC^eV?n$wpBQ<)=yt)Odmj0MG5&|PWY;oxcPn1cC-=*w3~;U~pU#;}^~2e&z#u7Dl%b^QZ~jJ?*Qum= zL#;MpB;-3IMOi@5Hf1d6P2dj!_S^@DlyET40mx41DIcxIwq6FCc6}WT@?vo2r&Fy->JOPvMBQ?#fG6s4FQlY|@zT%W2^{ zL(uxS{<4aL^;%CsYtmX0$OMr^9#H9w;bt5ma2-<{aRM7mSFmP-+FZ!g=}ALRpAP&hzX zU}*68fQXQoAS!5BTwr8qZ8kVMJU~Q9N=!~r(iEKbMV2NT@1iqIjEqBSh4Ki^zepwH zD)se$ogJJUA8zmOpdl)ekkAlOk=1DlDNDp^Is^hocl`gXB(jP5g4hJmj|CP`QdpWHlu9KO-msVPH!!ZN^ICRY8~Gaq zo~xrgVa_undzVA9RBKQ&bWNFg+3_=S808A$LbS)^p|Rrp*ym5)WA8OK^>ktT@#ugUAMn%+nS#oR8fBX6%Ft$hiJ;+zHw;f z&epm7jT{i?JmK&?1w|ua;~va>TIh#749wdN25in6hQ{Wy~?Gr?qVcnopifKDu7r%4--? zP^i{SPOedhP_i8Y_*S@j_%7Qxk;_$K z(>yzwK&!~PW;0v(XwDfsxELzgg!*7V*NnU2EuyQLDAi4(=*gJWPMWtgYLUCcFg|v#R$^}w+5T0*^fd~0hg2QD8CMItJ*PYq#l5z)tZS4 zXbr-b{mz<=%u;gGB!g~Erl_p-lEAc-*Q4?Yz`eU7x-4NVMu8c+CoK)ck?ZCif6y?~ z4f_Pbtf>pnOHNJ4aUF5gNk)P*h;DdB)B8>Q`CH7|S+QbQ3?Z0X*%~D|&+J_{20qj{ zmg$GvkPMYZzw|!j{;mk4K@2e_ox{Mit`jVr_TxMVuaJh(fYy#a*!0_$0X;H!$?*8; zHB=clOVNc|ori2DjK_1{ooy4#e@x>%LtqMwLYq7pj{Oqb+A2NSN5@ST^P&-=j)0`Q zsXMJSNMrl+{UM~;+&n8}oL%Qc8|Wg%5V&VotY?a(%tNE5YsLCJJoC=mH`VzbUmhre;J)kAjR_yxS-vE+IER3mA*dj&Wy zj^F&#YQO*Ny>)7AL4sCC5xNuXE6pq0wrzRS zB6)vohH&!!ASJ=Pj8;`pq*jJ|r-!kJ903wH*xtPgofBmhvyVP}M4#t+@LE1aO z^Y8cm4CJ0EHOA=LC4q=(`ZJyW6pG-x9tvW#)~{qvun1~I8Xo3&gjIam*-S+4!hWSg zg_|x{p_|wYH@ek~dQeGgNssaYiMk+xuhv%W8;!jWOBmO;6=}`lCZB-nM@w+=#Gdd3 zYr@+v)g4deZ8Lh2|HA_(^8|o~Pp;LWd4Kju_lUok)G4q z>ZzmwMr+nm*SYgx3*&>GzrIhs}vr63ONlg9JH1~WIEWf3Nm5SK#FdiJLpq$ku ze}DBLf1uUBj4MvzU4?t7f@M(zy)sZtzSK{U8|f7%z#&NwCmkgZ6z8hmSc)yQ27?O4 zNHD^KBozAeXCiZZ8XNn3cM3LLL1BQQ{nAtVW0psKX+}}MRy-<`VUdRBDF}cCjcm)! zUf-|l8rphH_|%O6e|ful`d5FXYt-t=W3~cG5q73Fh@E+1XuXkJT-6JNq6;W(>J+K2 zsOom0Yu(ncNP zSSV~(sL|UG!4vCw@?JC86=p=bh(Cf9VwB6bNsJnruIZW3&)O_j88HWPIK2W^k-)< z?8U)$gGp&L>){`5r_8~q3_&JVN|6oms!}YWLJ7?2COt7eKwK>q=YzuN(WuH)3{;CD zp*IfRqCL4Lj3qI8m^v!_R2^C@B9Y4u9=VgmK{QjBT&BX!64^D_qtIyTwtwFb$5&a@ zum5IXR)o#kJV#;d@tJPMIlYU`xpm}PRlyW3N@-4AOz`Oov-xnh)Ka%X0UiOF95Z9Z zB)=%`MB|$hoI#l{)eHa|Ssj|euB2FY+0uu-o>78A&H?ZnvxWX)e)GgkYnoYiD>-Bh z`pKqFPWCL$F)o-kO|!IT0c_5JZ4q_V!D{ITFaQ8((_s@?_MHioD(>qBn}BSYF``?* zT^5`G);f@`1kcK0N7Cv6xC0tgeD+2{QSQ(2l8I9aYV3*z4h8attS1n4JO8zix%Dqs zy31|RfmFx4GP=Rn5dSaA-XY4iKug+9+qP}nwolr&ZJo4j+qP}nw(b1StNS`tt*XXq z?8fTt5hG@-Ipgc1PPpIyFrwE{%o~m+Mp=OZFkquR9=0iU&`;2Fq>Q*{ru=w#%v+^BssounnN%V>b-J zLvy9D$3vTYF6f+3zFouX$%hBWqCocfc-9%Fmp}8gly`NbT&8P&v!%n{-1Y+W7Gvgt zKZGj(q%x?KL|Q$f)$yTdJB*)ST1$VuZeDs%a8b-Z;WC-b|NC?uVX{P3?ybVV|AbUd znkGhsm>+IE`$bRl*|(QuvMc@Sm{`HTd{>9xh0!P9PxkA@6M*+m6BhXo$~?@`pq*h*s2LzrfYgfF z==^1wGbT6b2y4gfkh#A?INV_)&%fsHwt(R7q1t^5rsmw;dQ?U)rtfb@ zs<`oOgwW(!^@PdNizO1(8CfL+qubSORU<3TQb6Q^vMjqHcmYUhY0@3`|Coy^O2Key zGOGDz@60ohr(mRr&B9Vc_0ptgsELHFv2w_np`Zm-c4qJ^fiJn9~MnmJ{DM;&C>I$o;ZFEsA}{dRn1K zLO(Z0Nv++h4SZ4_F47KK+;aqBTb9Ndq!I^(*^(w`BFF*-B8VR=kBVq;YzF2iUc6uG z%9r=BuAC0cSw1zoAn~?w2Q>M7Q+{>EEQ;iKSfMngIL3s4R!_3!1>3x{!8DcWM+tzo zYSt#og;8i7koqJ}rzlsN4^rkem!6PNs8J(uX(8wiIY>~%$J{W8_)HKJ zGd%>PAFzS&h`>x=0CwWb%S=+BY+9;DR!U$Ww>h)}x=TZjJhAB$Rn$1ebyo2fU}Agc8>!uR&;fae!@cdkVmY3A+b-t5D2 zPF8Fw8FA?kBb|S-1Eqc?@@fq*PO`4`+bWV=V??dfhL7``$*2X5T%t#*Y+ooD$AAJB zCC$E#kZF6yL_MlaxtmXITB>C9cmy~y?*l!|(k#ZMybbS7HDz@nek>eyGhYp3wy}Im zXIO%gLlHg~+eJG9)WA+kkNnig8Pp#v^T3Eh!#~VhhpK#m#$J z*U@ug-+T%95Qkn4FgM9AX99;VR!a$KAA9IGG!GG-N%474=(j_H zfnVY^U)1smcEIz{!>nu4`r&4pHUa)m^P3*%^)wY%)CwZ-!VdJOdoOpv9q<;uV%J(@ z4}NT!x8CmN=g;@Fi-=@sR8;jL-TC_UiqGVU*6ZxX_dn*0HFiblij33z4e9-gpN5a} zY2KeTP4E0$mS4%HN1(NZtZsW8Vz~MK01jWKk6pmsQ_R0p3UAq)4_DIq|bD{H$K@vjy`JI zHdwJXYZW> zGc0zZIakFPTt+?vQia`feDYu#?_{+@x+z4k{Ae%>8`&fj1)5UoDWEz;q9JhPrnU#05{?Qxwo?h`4#%Xs% zH$L-+gb=7Yu4yF{kapdb7?rA7SFMARQGe@O(^n_G)KrhlWMsSx(rVx@a`8o6??>?$ zh;Uh>r2;F&PAYfz^q%fGJj^^lC!@r(u4Tu>r2wMT{m7wqA#g1ej(>z90Vm@vWM6eSun5$nIuLRQ0@cV{$CDdi4htvl2I=J$#YypJ z>v0JyYA6`)t3u{IZs5}ReWg^N&{h499 z@1j0>J^oY)PzV4L83Dpu%tu77@ueYblL|?|2;hsHCoZuZE1Om*i)2i*^ZJL8XGW&k z$);?UolqwpTo9tI4iCx|38Z?!bGhs`KZ;hWEEfu)401%2XS|;Pe?;n?J?j4*meqOb0$vF5iyONey)3iXpnl`@31hjrw|` z;Xp`$p31Ll4Tw>1F`@H%6*$vICDjy$1D2P!)yn}3uKOR!3bh*3JNYSMdakD?bpFY< z>v_u-BHgq)1KX5UNB9m5uj)O|j_?&RO6I86pkJ#-GjW4G6Aoc)Ur#1LChc$fp8H=g zS}I}#qrX2msxwVZcC7wcw?kxse=_&8qGj&usMPjolpwoX|ODD{exnJ3=W}*W7FmQ&Y2*5+5#D z5X_*6c9`t!?~_nmpnP&4Jh-fEk=N?NY~|K@Jj<*Q<-xUl;p)N^8+o$ClcPGy<-Q$$ zKE9UHbDRq{2n+at_jB~GigvU;*A3SfQfwFjW~2rH9Ig|F@S=qzccvu-%TT$t+Rzwy zqniNM-+FQPF;=sI2wt*2LDur_h~x_6{#;0W?x$0j(GQ+Teb7IHDx2jIHh8z{#+JA>NL*>X$kp(KNnG^ToC}xDdN@uuj@_6p4_EX+lfC> z?t#N&ELf9XP;pBwv!n0kaUhd~H{2+mN-_TkZP})xG8UI(Sdx@9_=bECi;C-?z&tjR z!|^b8)e_?YhJtYuAkg5D7r{`b3YwlN{)`ZpbNOX1Ay;$Q!DQmJ3+Jx%T1PbC{ov3Nl6@qpEu2 zeNqES9=j192#`k?tKP60HH7e15*;BlD{=DZYV4_}XK}!-^XB4EVY4iaNkeUgX&85j zaXVqAg*;c%p)n~f$0|zbyqMxNQ=pnL1Vy$y(5#s)*D6N|@?3MEi*RL|nlj~-MKy^= z;DyY0BH9plwv6Wk^eMNrN3BtVV`G}N&5qmdT5DQ!!qR}0=QaH1DzW@ zx^HA#Sp<%1RVtOid;iYt#1d_zu?tV9)>=)6rFre(A_vC2x#!5=gBg{J`Y7S=wXAm} zv%}m6*eCbcu-m5VtW~G@4-X!WXr6`kA9`gnf3q8vC1zunnr$B1y;giy&wm_yHl>Oq zUd>2Gpki6O;Gr_1!^She3*kdeOYrfNPZ!O#$cy_DQbkz1!^lO-Dvt&dMY_c$O^MI7 z%^@Tzk7=AeLf1MeeC^cWN9>OI=YXc6z!kS!4KdM(6E&#!m4kXGVS%4p)?TNnJd~8x zGg-Z4H*#hT>QkUDu6szi#!d3+d$AVAG{=;1B`p-aK>w}CvP*501tgHZn@9*6_3OUq zC(rC%rEM%wM!nWQ+FLh0M5N1l&zBm5e&!_Dsn2C57ts^BT_k)&{eY14?wq_H{|LnL zg+{z|aMdIuQX^^*n%}l!Hayq=Y7FnFe<#qjitFtfr zkyCC5KObT67fRS)`FYKyKBfzNXb)$MA;?X#Pyg5^UDfBL?bmP%A>h~1$+h7T;lxTJ zmB#8AR;Psk-ZYEr!{p1QAv9*KTAqHhdEGD~Lt^kQYMfU2S@$Kv4mxRLbyaU;=sM$8 z?zO|_v?S%Cn+#>vV!6O4t?Cl|j()UNQ;%$$szn{VF@T*i+2{%SFWDjH{G)!|%9cn^ zQWyC+P*yuH85T3{`185a&$0{A`zpN*H+2*(ES;Je5l5lejQo&&sZgk)u4#NyDm5={ z*GX?1E?cNrjodwSR_m6$7k-j-9>Vdi9n zG4a*T;)nOXt9Hn5`z$Ve1-#!5q;_yjPMv`#&jF(iYt{hzse|_T+ON8|yLA^Acs6U~ zD(t)3?chBo%Y+~#STX4t&%{@*PO6kwKJ)*r;bmd{ zk0K|lY}#%z!1&CnA$X314c#xGYISbVbuD(>rLh z$S`sZd#7>g#Jtm)Xovd$H3r#vk zeXzEJxSVpMqhY*^Y_N7!p^1*IkWvv0`N&kEfIuo5VkI*dmZ+1Fippi4Aj6r!&Jl=u zUc`&Cm}f^;l1_^x16JSg^fak;L(T;TFLDDe-Al`Hv*p}Pz3Lv+tAZ@v3qNk1brk8U z?n%tX&ZK8|k>|);x(PpG$pRO=P)C<5oOeK8JtR6;a^r@hJU!Y}(;puHk~j~*BNj`< zzO6+Krh59Ogw4ap%FW3}!akhMujz?n_1S2(f}&BZ+ba@J%1 z@o^zf6VH$X3Y0vrR_zNmyKO{F`LB_E0J5~ljppZ6kk+=KOls*Kx>XpGV2+@XU=*wa zuM}Z+;l$N!69W5<7)7&9Xk^tQZYj6zxJJ|DbvG?l3lT(X#+GDdtVjmo=oD&-_{+J= znM(-F0=e+J%C)=2CsMTF zTHj#Mpw|fHfls*F^mw4?1uh96R^%tOI|fKf!iL)B$$)1)< zY`ZdPL~d3a&@|Fz^xbe?%;M7x3t^gs+a$OqHvOv#^H6t(A2&ZQS1dG%Y6=Z7mn+@z zS9)>x-_P6QwZGJEo=z@~zPu%W#lcJ@Wj2q->FekC!UmCwB-B?mZsGs?=-8;Gs2KGx z9@GCnjE+n!|LMa$RV*CHR4da`%X4vZV&OBTB^`R1ltkZciSt|V~qOn((s#=P7 zLf205Q?J`mYINdSH;DoT3ff_Ej>m})NvK^*u|KTkU~&{(Ecz}E(1ePKc1^+H#>vlX zsNF$OT^$H<8B4sHx>h!r;37-p$+FP-AA4^{MduyuVYVh&|wBqQl5VMvrrmZ`a@0VFb`*B*c0d`7cjQDh2h7(7!_qX}obL+Y+;eXnoFXhCD}%O)n6OYS!xrTnfop zUYtgT`Piuv3gmEF1YZMeFd5Uko9$^*5*nStsVSfuY*6eH&cqb}+xGfWTE5ebHSTS5 z(=$wrhzbFSa=$x5L&!hBAD+K25jedDTrgPzFzpL>ObJerCbL4manoSscg%Ix+hR|g z#;H|UFqUn!x);+jaVu@iHg|d#_{9=S<}sQHib?<)ngFh(0*?ixYxL$-)u z%g*oF%FE{G4B{lCux-0Kys*xPfdR(i0kVJ6?Kx4-qGo3ulKss(PW;CDb?BHgf=Xy( zM3#%%s^>-Y(Z$)tI=8incWmhP$Updv=EH=D84OS`L=%&^YfyLdNOmp9`BxzlG_@a- zGBOSOonkir3R_ru)LDuN7F%p7;3=uDYZ|4}q6!`>$1UUXx*)hzAF+hUuEOJLl=?rcQ=-Eb8p_xYA4es$0A{UAISDb& zBeg3Yp@mYk%#gBBBq3Dv_po@fbD+*aJy)T7%(Ozkr5~N4@L77`V@x`t*N)~0j;sB3 ziD1q-Ju}^pO3|)#9I}Qs%~xzTuim-bf0vLH_D1ohNULMXjBgO}DEdiL76c8`I`IT+ z=s@+6Td#GY?SEyivSx&7=+PRFiPAW+5+(0FZJ7y{TGefxFsUK3>*ntUNvzC(Q>TZM z9X_hFJ{O7C)vl;Q!vM3T4ylAUQ(HY<#jly&{k@3Ufds??a^_?V5-ENU(FmSw?d6r- zJ2<(%1!q=hEG)F)Ccr07(fu;(^%BiW^zVJ?K`_iXYzpOZT8u2Dw^!ciirv{!W-l~T z=ucG0eJQgL=X=@opj~`nV+7^G;@BcJM7m!_SX6u=4~WED!(+N7l?&|oDLuQ1&acS3 zNgwjQVEm0F%I_Thw@IUW`RfE~KYnzhSL0v)wjg`BGglxFni1xJF}LjPF6Rd^_nx@e z|B-a-?=>g>`h8yO?}gSRU$F4;(zZCnEro% zFsylLyE%sXb6bj07dc`pO6}MXohYG6vTkF*VgXHJMhheDdzR1DGyXt;PZ)jrL++a9-w&t@^8S}><%(kPxdIU1WbCWJa}&FQ6*@z?MB zEcAVyg-t!AI6cRsp7A~M-o0B_uO?T!!jLnE$M46xE1z}eE2`dt#$5!xjb(wv@MrXV zO{XpMU*n$%4=S@A=`fet-+T2kCSoS$#}y`~dm1EaOsL%-Mnk4Vv4^2mLir&WL(fAt zTBLDwJ*oB#4?7&(-$6EX+6po2sWcJq@qsjS&9wACvxpgFOr0iwB}{YJHbu_VA;yda z3OBGUuj|_oB3~k;JD`EYZD!wu^3zTc+LhQ|XD=bqz=DtJ92ZepcQyfW&@WJHEDu#%C#)%udI_QQ;&=`lDdS+tw z+@}?qsz69l$G^#&;eogfneAvvXY*p$x7P0b1GFtezZ4eE?yx-RHRM`?UD3k=zw{W^ z)ou=Dwz^ntN0Zz9t@bUrs~Qo%VCkhkG?x&|8Zq{DWt)aC@;sTgV=^@?Pj6(>f^JEX z4CMESuUD^5SDZpLN{*x1UvC(SZ>$^M9@>%#I*8f00}UUgLe8i*Dh6F7I!=$zH`V{w zw^+dkJ28xU=$A%k^GVm7QJTqT)xepMSH;PsvK}`#-SX){Ae3CcDW<3HTNrXqZQ(v`7 z!f^~kgmjz7Vr?d`L+2qF1@@NJnFn4gUDvK}7`6!Rcob*GfRC&#&4CPWL^)=$x-e8H zqNo{ZUb2sh3CS;Nix3*pX6WJa-qh|1R9(%G+PcVSlkwWwkKNWNGqj3e#uK#kmn94% z8H%Gq6Ag!4*OKX2G3jr4cmg^B`-^nXDd!P2(xpKg@%y=SsoZpH0v-avU>c?`GzUir zNhqPAu^8qJ@{NOGgAUuZLWC*l)e=fp7{wP)vQqwJSkKICk!)3sY*=?r$V;=!tH_Mtbp?Aimc12u2jic=hDV= z{#MrD*Em)>jv7gr{z+?;WYK8jh6Id|DG#)S4#&Qqj_=9Za>zvTKjTj367z$=%|Lh{ zL`TIpj{p`3P81sZ^495P05$#tELu>Nbn}hH`q}!H`^til^JKhN@X{(bd&`5ss&Q}F zJCg0#vH5RuKCZqp1pTO%?t$JFAi`^F=bnH9Z*wgI1p28vK;o?P^K9e~GIT;t;zss| z04}*G{poU|p8s|kHs{Z)y_EVm*^>lBq3j*@B7}k<@c&ZkuNXrpIU6^|M&qgbM=)6( zx1b4wN?r4No$4G8j-43(Rq{9691*_4+=0e&Yz&GX#yJ! z>Vg`s@IEo#VCj}pzK&7HwHZZa5-3s?T-gn%noA_6qG6fu%5OSp{p*R#$YXIOa#E?I z6$^)5$VbP+ZZZ$ZEOEBQ37E|2-w?>eBjZIaA~&b*LW1VqL;?-FB%7yhcs}t=6YX)$ z*B)0umBAEgMXu#kJ7M2f++e&(o;q3EStQz-VJztP-lbkp8KTnMZV>r;P$_lii!Ng6 z->8_D-n;?LifXP{#Q~XzS&c=}Y?8m98WvYE6WDG9=i;sefu~4*Mc%Sm2yBOI@VBfK z@T+^gNN&XqvxNYMJiooMYZ^gfqB_}UJd;cdB4VLf@M3t)BiX#qr5FiHLkEnZm@>N+ zEB+FCbv3kwgB<$#c;CPaHH&lT( zihTQ)=oU1OlC$|o4iGKfb4p)%&35X~ zcoOx}wIKb_ymqQu{_2W(g%e4q>cq_#(c5Nb)RLB^y$tT`@)vtyM|HVghHB&wAbaj0W zR~zj#LFEQV@m_B|73gF{S&1;kDe> zO0IP~78o#$*8563gw~uCuIRBg;K^`y93v6jh>LI`^ZOlz`_ATNO2;G2>@+`DQn#}L zL{#}emU-6nh=>&PBeTyG_o)G=pEpFIX^>6De z*ruv4{8$XW?g>v1B+&dM;(p9dFdkd}w=fV)`uaW*IBIwSKl)i*eHS}&w6l^_a9Nc$ zpYkbZ<>KpyAfso^S9LMKW~=~!+f=G1#=nK$eb&G^idiRC-4BBnE&R}X-pKSKHC&S4 zCpaCxHZkXr!~rg#wWIHDU~vBq`;NDNzyQXa9=T~eoq;6lf2wdzG7Q6BfGQve@ z;-}Ax+kC77ZMw4qibe6M*VIs}0Znls7wt3{MT zi&xIfG328tnB`7pWiOVpO>9}KhBTJ`QLS#wxk^1-!#(v7RuVbn5)Pf6X7(KFJ+i zqekPkr#Ja$F}Me9Dq0;vX;}F`{|C|LVCStx;~&xH;@=mF|7{k=%KD#8@@5rTyMI|& z_o*60#}U$~RfG>oqc#CH6bx>NVeY6Zv0?>mAbQv`QOssbcFU>q>EoL< zU+(B8U1%xsNCHsN1)Q@;G}uBV$qhWOI*^p931lEU*2aX#5sedCf5Be0syYN{^bEm9 zuS{ACRx^v@SP`HglZW@jvSh@bTQzn+{}a#rs}3l66@*q4clfP_ssuj3a8Gv*1>=To z8aT0gUv_{3KpYuKjIae7klEkRXN!?0;qX0;98}J3K5EcW+x(B+~1{&@)iOkia zkfLXjvxYGNU@|WBtf!Z(Ks{v2O!~FsSbFFehdh&1aZOhr=}Erbg&mutD_!zZdq(bS zyIr_9%w0G4vCeW;_S#*A7kLXy2pLV$oX`z@0${Uq^CXqmvfYO#bOy8O7)o_3=q5=B z&g;)$+H7V5n_1+!L}xDWm8UCE_q4h{(N)VMB-FpLmRMOT5y>-y3dSUXxnvHaxPL&X z!mJ{GBYUq;9mgA$!TPtKAZ?&xqOK=vU|~xu zWM^$G>1<$aVf0`1>c*MMNv8b`)xQlkn=R3Fn=LvzY@ODdE&uiF^NG)le>;=2r9R?#NG&rS+cSb5$G#V2>0SKqgy2Y;~4K238gT;HT*K#fTjcjj!R2{AV-uSx@E; zUP*#24hMR3_vZKE=NXs@9KgSSc==7r<|_L4_+IpTvF|rXD@HfGI{&lR=iT~e8Sw|4 z!1RreTUbjOKmh4QPww9WE0#&v1^cP~?H4vcT*YUp!7uT~oE+YA|M-($HOOsmN0T2* z8XQ1qhaHVukjZ%!netf{9*(NJr3|f2z&RcIIx9UUtNwx|zClJynpi(o2`Sde)ZYfP znoSOYIvG}2IbLsnv;F=Qew$wHvWh|DbSl9=TWFrsU5L)v50R88`F|rn0-Xr=Z$_o> zu7;{?cer&dchy-(Ir-PEwgYgCt0NG16?y4Ke%S~~U(O|zN$8A#OSP&`k;W_Bs8%O= zmqlOjYLnWXa^&Yn3w$Bcrm^e2Q8OBifYi>%>#EJ;$d-q8a~EfRM|k z;#rLLuzTvUC;CV+$@(IUidjDVUNa+STDGOZO4z`sz0m>LuvESiOf1-L_jnxOkzh>h zIvp~a!}cYQlKLOBJh;^iZ;r2Zz0eGQZ*{GQhI^=oJxLA2a+yUe{EqMHfxb($TI)0Z zvPRr;zaD&(vRMc%%&rGZOE8dAg;%eE1K! z5xb}fGjcYIpe=4X$vZ7Dx$ojP9a?T1qCJg^EvzC-YudQ32hVS3(@YyGFR04-w zj6vlChE7J9HSnwtaNXeTSDA{Hv*299hFYIu=OS=6Ed;T4Q(~i1 zVEopdhiK`rb(x7G z^3Kx4I;F(NiOV!r1FVq2VuY01d3Zrw{v08T$#7W;pwr2e=kYocWDHa}eahhT!b2gnM(anEajKquBce4@sHWQ)zpl6Iy5W@2R7|Kh6r^2| zjo(ra(;~cgt+L$iF=2lmHSImgqGVBy+xzwCDWfu65&W@6EpHBI-yvLxQDsS&Ai3DO z;ly06RfjLtw!IHI?dW%sT;1=OxDv{zz-#ge?GB8Tt%EZ14dy9vk-n8g1jV*_?)BCr zEYkoe9qWoJxffAyBT4G;hd2DzO%Es!12LFv)Q`5yP0!2zn1OHMo1sPaIG#Xrh_ZI{ zUqy2iw;@};#2?ln$NZV3hfuTk+^KhdN8coXbc0g^vUT$I(n$*(f!vsL=QgnD!l1lUDR8I0C}@_Ga@&q~r8 zxiSa3{!@!HHgL0VmcisR+x53TBVMA%V$`88Ss}qTQiBNXP2~NpW9lUz%*yT&Navmw zsxVP(A81Cuq4Go}NZ%7)Es6B=W{ob*Lc(oN0GpRd;K3p%)`u?w!ekIw?%g>kuCKMY zm@YB1%U}(V_q0zT0*nh;Mw?2y_@^dPNVrd(pgMvLP}-rDrSapCK(IE$1Y5a zOgAvVciFgSf$x!)E?_?bHO|s4Os>6NaXGCp4v>#a;y#b7G8J9j(g|>#45%YS4WLLy zORnH6N9*D+pn@rx5}#m^Qm0m0L^A8Py>ouj09}tdvDpATNxo;X#{?e+?LgtKYFo7v z;iKr(CN!9TtJ715*%a9HF@BZ>B{NNx^|9; z-l0klY?j(?S^_!{?Nuwparm6w_|MOJGV9BVJ!B#pk`l~h{hLi$S@orqM^Zszrx+-# znRQh{F-&v}N6A-22$k5_YSp8yOQ_V&xhgD{)QH5ZI?qN@6dD%kYzI?gM0nhrQR*e1 zR4NyN4m_xmQdxa7qn&j00NR~3tAowMjKLTWG4%bw4tP1+#UVMO+8NW+ zv6^BOua6Not`!VUSx@tkOG+{YM@nCN-9+*z7t-ajr58A8kShp+DF$oRQF+|6R~x>+ z+9OL=N4pQe(D)V|y07sF`L)T(7$Aj*en`buqFd&s`v?QAh?A%1jX-!5fL3WVvfuns z+L0C7f=^d?xxR)NQVLT9|7K@95*}4a&J`wn-vsm(<_DCBjT8W@q0uZRSqA+$w#V+! zdUZ$EbG%T@JW@1R8~WVMw5Hb}98j8@Sj))?b0<-@!>-J|s)n;OeKc6LOiw=yc9x{c z8;il}Ojz6MJ;3{e3MS5x{nw(ep*ZcG^jli@Rjnyltxan^0feu~kt9jZ5bD+mEtYbeSdks%^Z6Bi%f}T@}c8b$OZuBO^;3m+SaCSS}_J676KN2N4t*jURwdLrIfSq+Q{0{VCg4xalb;Tt5 zO@k<20z0Uj-CB&;f=f)Io9ZV|hY$m|;L8))CF$Md*&s?52x^1zGI~PB2tFrR6jFkeP`NK+v=71IH0r41y1@x(>n2+g_wD z$LOw1Yk!QE3oT1`$~BF*XHr*%T&0d;qH-$9jy)5L4(}|5TOffcMscWAJi#8s>@@DL z4;n@a3fqcH#{c_^Y!6~CI&cprj}kiy^4z zja{N)xy?ySQPaqXSMBecswP6b8nA@?LtZEc&q%(q3(ofR3~@DdFaW_RWLmFiO3tL& zJ+If3(hgpole3X@a|IU!(zfIVy+tlA5sMvCva}{k?(WigwdcjY2(mzB&t7NmAELrS zY_vwvRz{e!FdC>E-`NHw;*hR1Sp>AHhiKmSsd4Y!+h-bnVXxh8nv%P_yh>qM9J~T= zNca@${N2>Lvkq0HNs*P*lJnw9(_g_)6AXu7@OXP?dK-=<+Du2f++M&SD)Ba|>8;A5 zs+J1%6rAJa3LIs_BNKwhd^C-i_{}aOOxVx5tPqGFf z3(c*m!)#BIO@$Ls^&)Z}36>odyKB-Rg-UrJva-rPNxxq@J5<%#li@LbP9l&|JeN}ql#dlE<1iK;o z>HXlA^2znj9k?;LnU|$!_nA?$rWp}fm$RLr%_khOBIM+aC7Uuf)m8NtQ-C7gy)9>m z=)}Eg(Q{bk;_i_(NVO)so z60F(~TQ`z2JuNlYn*VwKTF=ak2Z;U~)evy7ouy$)bccZ4H>AFruySV12TMZ;(kY<9 zpL{xIBnbCRW04hZGG)=7RsrgDYAn(6MqW3nl#SVSRk;PLsQM@3|Ze$hkTiTpdHCcK0V0;DJka zwG&bE3^PE`sj}?lCBh8<=P$vLka`4I4|@jOp{2sHN;kmH#o$(QaGbWLji;886s#2Yp= z7%>f+&~IJ-jSyJm>g=7oV(V)?HUc}%!q9@Nu7U0Ji~`j@g$$uGy<|8#MS+cc;z-XX zaU^2DccNsx#~JJ$A({89Ank;OJPi`wT7MGDC$C)r#(Nu{O0Ul|QSBBec>p(gX^;*e zImjL2-aCE8_6J<;l-E+#D0SShO~w|u6oC3xavoIQM(w8uY65k0 z0ud##8DXXDrClV2K`v<;{At=5O-$Sx!Og9naIYN*I$eK@{g3nrfV*W0xxg%YBoW%lcdfJ|N3d_+Fe4iu6 z+=fhOrA5U`T3Y#b8_>DN{im6$oA0$!S-Q@c8YqQ{_;(Kt*7uEW^rFf}3YE6qvf569 zkDAvgJ&Rbo6AYY37M*rm-M&CcO;s7fwE$si4^X)b29!hZu6pw>V~um1YLB0$nJ{rJ z@`KEKi51&!wU9pjzB=Ar0wnlH8g-J#Cw2^;wG|ImW<`IfgD&C2g;bI+l}$f(RMPG5 zB$|?$x81NCD3Go`ltPVyL6 z!YQ55i}W#kfP>vd}zOg({wEx6pouuG+axwNGt=Y)gGVH$c&HzYSi z-F8c=-)-;syJHzx^Ff<-i%a22!%8~m5$GqJJuqu3V1@$2WbIq)s0A_=%CL{?0_?&| zbC`J`$Nfk#rJUPDVG!QzP{u!ymeE)PAbMF1!l3;!$h`*M_N1*?V}@zmc0rkTq6Fz9 zibu269?LcZoi|~C^QS8Md?Icv9K zfWCB{w0T3CMhpa))z>=G_Jo9ef4BNoGK;5orpl_*ETT%jojyUsfFX{2otvdojzM_; z@!jU+cxLXoJ%oolk)0KK^ivw)jyB_8N`ntbh8C6w%X1vX9_2>Xa>Iw?y&Qi=HtQ?e zsnYJK$B1bo^K8X*JE7iM#+@!DYdr}1F(C4k;|IYN^Cn3oN&L9}9u2`22MQ(J+;#;f z4?M0cieKj+?Du7?-b|s*C6MO(&e0fRd1~X@ur;!EJ_uH+a`P{s)}2IPOZ1qF8n+RC z+6R>L>H8EOpCmS?e|3RC3bT(I*1T_K_$=Hijmkdv2)1+*|5P6@Jam^STqs%ToM>VD z+z5^(9?)WmdL)&zr{K;3ih2u)9ZVNPS$c3PYOAsxI)rvlMYw?byHPXGM}=EP#K6bA z7a+2ibjQ;}z?X_GzpN}vf=?B8p9iA!;m-0tPj4w=c?cp+Jond4D|Hrc|7QN9)xu}j zz<#muokS9h)}-+p`Vdm17zj3*5Zmf^#wt%5 zNCa#l>o2VpS{KJJpfEMB1PA?0%X*=KDaT19&w9q#bbi%<=)#w6K|!q9 zT&5Q|;vjzwoCu1vWH06_)@i}o06gkGeOb($&8WY6)*+3>wHD~wj%);eB2%VcO3tG> z@KnA5JIMz{;Dc{vkw+VMeM!dX?{~!cIKAfs|6Z3G>^UHsAw}r|@%fpKLn|1yHRAnH6l3QnYQa!Oz@%;nE}Au~EEbr{=r=%{2kWGeNf4p=c-T)AHtXBwP`6wnb-N84Hy^k6dxSJLG$c)y zJkYn3BqE9j(-oD^)xoDPMn)r3e-UeNT?WIquPG`p1jl{W!kF0l!olfy-*weq{*Ab`NPSF)+7)Bn9fJK%8wnG2w_XP3eip`hfqYXc!;ZxFeK@3u&WU-oXcW%U@k zLS@gqQ*(6?j=wL3(gr@-O0gsT6;5S)eAsZ9;@CW#A3mh|P61EF0*stU*|t<%|! zZ!}ahPKJjJkOIr>jIZ2HxfCQDH&F;diRKBA%tzy>YDr&Ez{ig|5@1W*{5pZ)D(&z3 zJ{QcT`jQ@nrgl#;uw=D6`R1P`Vb_TYE^2WoYXn`eDzL&3`R?+HCfk zXPIQm)w?Ydj~n|sab9ZsOXp|cFTt`hP3 zNbnC&z_*WNlh?q(E;0vvz6qV7E`zb3qkfDfJLFJIqZWkFIkD?u$B$G-Uj0HZWlUtH z*kD(-eVWk2bC-U_Ve_X5Sf`z+?Ft)9`9uz@RDDVjDHr~VRk1{eOtR#}sKdfURi8%p z1CR!qQEfgxicNbQ&M#taPiXn&PhMGvt3J(enKxWCCYD%@9d)vaQvljCdg|^~;k3#< zmh0nbB9%d2a2Ss(2|^XWW{P||i3`*Bish!&F^3W^Ar@F2gDRtX?YBRm^a^q*B47*@ z3-5T2O(r?*Qq_=Y`KoyFluduNcF2W9)ZXwY|pai{XxhXJWeLd`m;A zZPisgp%NW21sxEl%z?!Pv`|3fm*m~dqNKkNiGtaWUe0-YKQ8Q-168{mv zYd{bSAeOaTDxj#dn-%tW3ZzAWB@D>>k$EI}Dk*FPMGU$|YXf@i=Y^{KcPafDkz0yU z+d9z%@^;s${k>baBKxpsgZF{PW-WoWm8!+hl(FA~1G|I`O=GaAaZX5{oyk`4$bI6V zIZ%0L$v~V*^Gs^-%;qAm1q#$2KR7yUQopQ)vGuoSxdlnr6}jur%Q6(xPdS-+hfyM( zkPiMY+oQUj_u0#|pF(PPZxji0bT~1b4TtQLt*6?40lMBU?1|7j9O=%uh_s-<^txz1 z3L6aehKqO8N;dbUB|x*Yw)EQUqaDF0Y0sqeZm0UTyUOc+QTO)OG(_)~yeiR1MVAye zv%6ORbO4p)#MSqsb5*#wx8l5(r?6x5=~Q+8SD-rl^fT9bCOxDgx*LkhOzp!m>+M+K z69!DF>_HReFLG^BC7MWB!?t>Be1O5IbO=QsvvpKZv;@>!g(bGQ>h$>Q8(n)tC8#fzcIpBdi|o5-UISa+^xGv@aEEH5{Y%ZubTS>91`y+6R9 zSMlY{k|ga)H#C^iWYo@PG_fjnkOnlpM~M9mp>T9>C>fmfiP!4CX<4SW%USWFuJd7Y8*ZSp9@!< zCf=mVXe~3tPF2FGZxTRw^=XEq&i_o@Ju5v9#<^6)5ZYZa9dlT+Z*S4AcRRTyRE3?7m8{#sjy_Y@0QMt zhCvnH$V7Yw7ME!rDw2TLo~owToC$u!WrDmlMP{Q>pp8^@F*U?dGEFKarO8)jEkDCbqDZ|BCBRAGCN~no3_xjq+ z%H~_N9JG*U>Db6K`Jd)3#cYm2i_^@2u!;ug3Z82v*bY6bn71*6d~%=U_b{cl1&-I= zsWmOcs^GuXFc38B$LhO>hz<~Yv4WG%7PPA#ez?E;lHpNW)1YnR1D_5@NLQZ2<5Egg z%K61f34iDXrR_*I_3tX0L`x{}D6rngWNrIgz5{TmO<3bWpdraPRjqC$QCkiI;+{&k=|Uo>irX*cT z8CtA7vq+Jhg?|+RkA!{Fu5G~%YYJk;M15L&wrj_D@dERS{6fh|FJU$C@0U_KZ7+$u*bG@w`0Zbs)UQ4CWbjGB3juq z=xsMmLlPAl9q~~U%h*Z63=IsjKWN&2O8v=%5dSz4YsVk_gDFauK+WUZJBmd=AK~hL zF(9zc%FxMDJ*2Nl_0ugE`b|s58mwCZ1|+Jrh?muz$^l;bB+QB@{BbKooXK<>^{#Au6`j zV6h1ZX(OO)>LeJWq&JOd?8mLDRO9-;A9Kr;2u*XSsQ@i^DLE2k)VZ2mKR^nS=SBU# zOzdwKN`%(S02(`r?6rtH4WHRd7v=72RW6Oa&8~$^-_gaSVx%>j z{|3n~`{dIdIo7taHa+vI9_Do&-2i=TV{CH0^RHU8iB!!t7pN;qd0j+5maN-kA|*!$ zC#eKY7&$i8W#3-FwlV1=M|Pa-7*}i7^^7_bN*z#_sBmvngKHs$P)hz|7xh#=O!kzh zy^2AK>T{Ps^&Aaw>7)1YDecVn0|)4E2zBvW_a#b}3mqZ-i$?8y_NnA#z5K;~ zp88N$xK`>hLu&8q6#mK7U?-6oaek-h)Vc^5NHMpsrX2|(TNF)In=CgBRW?Q7mZDRZ zkCSJ;C|0hrYNLw0SX9<+2dAelcReg=oOaDrz;A^6v^Dtk z(|o%BheIqAtl(FoRe#(lCADFNSnULzRg&E71S%g9IVF;Ze;6s2zA*(yq1h=Ztuvyx z{xt|tZk3Gw#z(AJ(#7iJZSftjzWezoi=Hal;xffB8Pl!qVm%I>?;$P*8)A32V7v!^ zDovxsR^-gwGLs9zcDOwNHFDsp^dZ#9e>m`HXWNnn4OauHHD765H`?&nw3fCWL5WT_ z#pDtU^48=!s0V2bNfE5frjd=*_#YC)t%Idmp^$1*2~0hgGN` z+cO`HETA zCcq2xhjDt0H>J^Q-oUS+&kCb9EEz_tIwq~nI6eb0ZJd77G;aezDU=zY0eg2=eNi5FE?y~Y}xH&y6}P_ ziR(z7lZ&}6oHAuf?$G;N;lI8Wi_m9!P582N;iX3uifUtHj`3|IU@odQgOy8I%0_63 zf##9<*4`V8;=)pSLuwSXzC}ee_idpqO%;GKxH#jVsOyoZJ62H$VtE)i7vo1Wt3)U9 zV?y$H&BD@?bXr~uE~<$(S6Oo>gG3E?4zIK+!rFmNN~;_TAAb%j@m zpd0Zq#nQz&%8*J-9_J2I(u)ZRMY-vVUe=OCGClLl+GW=q*509z+!^3l&ST<$mdH}`p&VJbj~QDh42Ywn(!gN`1C14_nI54_XCY7>YfFV-$x;V2l*znZ)q1DX zso*qzg;1L~OB!IDbPjtIr=gK4Su`&-%?J}BCtFR61ksF|C zl;mmBEIW7DQkV+s#`yeZNu3-Zhm@t!(TnMHL-f!N+xu{wu>sHw!#o4PASujw2$?ELP zm(s*e*8?ELEv& z;74bwzb7~~*3-Kp;A@`FuHu@rN0Y53 zGZL}USWa7$)iU}}{h0piC>#!#W~<42=a2$O(XUL4nRWrTVYa!B7KQ&$VyW@x+8_3u zw*l)$#m_#$?p<f}b6^x@UC}Z{ z@|5|CWF|}O?Z;=#R7fP|nQ81D4ZW(%p4&XB4Vqu0HTV8(X=kr_)-(*!=totUz{e?6 zZ@1y|VK$zi{p%U{C*R`8_fhbto-?mB;fNa!uVA5o0Op6Rjthy(ly~(sNsao&hq7u| z;KzMv{UD5@T49YS-5aKbdTD@EQu&R{f{~pQm76LG!xB06Xty!CSZM@nXKQ_Na0Z@Q z3_IzhR2cHpYk%4j@EFrWkZrb=hn5A7n(&%0&R!}^<&4+Y_k-Q+rx*Z7>(61c<0#M> zJCc?#rxJeJ1j>qQ7-Ti_gNV@lftl-qgKgvW;jAN6{v(EJ7Bx5tP8Jccm1$0fj{F+V zYd?^akQ_c8Pu{b(UfuS|x^N7q>%k>s1($Eta&(_ESv>>Q-G}^NtCv9e73tJONMd=D z%vU>r!dzT+X8LXJn_Gn2>$h(Q#MR03wcNI}u9R+iZTO}t(fH_f1`K^V zVZSqO@(ECSc1Y)a|L$u^3tCLsn%JhUHcBl{qqYa|LReC%(XMOiWD))!wyRx(-mtvz1z|)3?++yImqCO*Oz0FRhr1;GtiX}STErR zo9@`=`&P2P8$H`tNT^bOakB*8_g*JyxZrk?G(D)g@O;0J1$@9mKj7cF01 z1&63jCZxrhoX{kA_`eq)Hl8J=Wbz-=X6_>~y*berc^RRcvA3UUkkC5YYHYcHk;|(1 zNdMf;n`(z;jxkJIG;*rh+rx`*_*6eGFIPzQrFF1KDn@lRtr#;&>&H){>FPErOx8#; zpSLx-RG3*qay=Y=I58n{i%QCNew05ferKV=8a*doHjjyyvJi&dlSC< za3a@KI`IsXdHc#@Gv)JJeK|v>E1B##TWeTrhXrP>-c29IX$7|WR4YdtI68X~o3cJA zvV?o~l!+;~AFsgih#)%jgB6AECdb8VBUR;lW9`m&6I_ z)V#{oxCipreJf!#{&$k{@vi!7@~aa3-g)~`Q3dtY^6zQ^(S*M+LQUY5?-tTHTu*GP zotxERhtem<;gXp{xP55wnh8uxR(}TR2zsQ|^%Lc04RDY%aNKb{#VCJ)7jLmjddk?F zl;WI*{OTaKxpAB2eGu}y%IT@ruGINYis^O3mi%zOXP2f{@LjZ%&@%~qibkW#(EUzD z-2U7#Aw{o;Z@9Vlk88OMHkPorH1|{>+SGtrxlabk-#mVbZ9U&vNWFQhV>MUqj5k`y zSG_+ko^u*W8$XX6KZ0Dq!x+DC_;PSPbj&$SdA`tEC5Y#L`<7LM?DD6;p7Dr{`j#I$ z$Ts?GUNq_Tfnr6vlD>iUH^%^k%RFmv!^nN7A%&?Y*jc0^e8-m0B~*D*QEBxIj#)FD ziwtxO&yx00=aSkg+9ICvCs)0qFb8fYylbs=-dAE7t#fNnvicGlTvm`%@~R7}QFRq^ z6@g#q1e3I1spYhTE{9hR_p-rHy9*(shMoK&{Tol2km3ENjas!_KH3zkvH^Rtf&tHC zqDQ`rM<|4nXxlPVdS*$1DIbyaZ4u^~7?BQ2ifg+PMpD+{^DNqfZMVMp?t;i$p2;|X zCbgel@A8nOV1I*EMiRkro-BlFnzLEDF3pt{nWmLBi>^m2%0Aj0OM-g7y%+E>klZgC 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 z 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 literal 0 HcmV?d00001 diff --git a/exports/K.html b/exports/K.html new file mode 100644 index 00000000000..fc89399791d --- /dev/null +++ b/exports/K.html @@ -0,0 +1,23805 @@ + + + + + K + + + + + + +

      +

      K

      + +

      Table of Contents

      + +
      +
      +

      K is a rewrite-based
      +executable semantic framework in which programming languages, type
      +systems and formal analysis tools can be defined using configurations
      +and rules. Configurations organize the state in units called cells,
      +which are labeled and can be nested. K rewrite rules make it explicit
      +which parts of the term are read-only, write-only, read-write, or
      +unused. This makes K suitable for defining truly concurrent languages
      +even in the presence of sharing. Computations are represented as
      +syntactic extensions of the original language abstract syntax, using a
      +nested list structure which sequentializes computational tasks, such
      +as program fragments. Computations are like any other terms in a
      +rewriting environment: they can be matched, moved from one place to
      +another, modified, or deleted. This makes K suitable for defining
      +control-intensive features such as abrupt termination, exceptions, or
      +call/cc.

      +

      K Tool Download

      + +
        +
      • Install from the latest K GitHub Release.
      • +
      • Try our Editor Support page for links to K syntax highlighting definitions for various popular editors/IDEs. Please feel free to contribute.
      • +
      • Build or browse the code on GitHub, where you can also report bugs.
      • +
      +

      Learn K

      + + +

      Support

      + + +

      Resources

      + + +

      K Tutorial

      + +

      The purpose of this series of lessons is to teach developers how to program in
      +K. While the primary use of K is in the specification of operational semantics
      +of programming languages, this tutorial is agnostic on how the knowledge of K
      +is used. For a more detailed tutorial explaining the basic principles of
      +programming language design, refer to the
      +K PL Tutorial. Note that that tutorial is somewhat
      +out of date presently.

      +

      This K tutorial is a work in progress. Many lessons are currently simply
      +placeholders for future content.

      +

      To start the K tutorial, begin with
      +Section 1: Basic Programming in K.

      +

      Section 1: Basic K Concepts

      + +

      The goal of this first section of the K tutorial is to teach the basic
      +principles of K to someone with no prior experience with K as a programming
      +language. However, this is not written with the intended audience of someone
      +who is a complete beginner to programming. We are assuming that the reader
      +has a firm grounding in computer science broadly, as well as that they have
      +experience writing code in functional programming languages before.

      +

      By the end of this section, the reader ought to be able to write specifications
      +of simple languages in K, use these specifications to generate a fast
      +interpreter for their programming language, as well as write basic deductive
      +program verification proofs over programs in their language. This should give
      +them the theoretical grounding they need to begin expanding their knowledge
      +of K in Section 2: Intermediate K Concepts.

      +

      To begin this section, refer to
      +Lesson 1.1: Setting up a K Environment.

      +

      Lesson 1.1: Setting up a K Environment

      + +

      The first step to learning K is to install K on your system, and configure your
      +editor for K development.

      +

      Installing K

      + +

      You have two options for how to install K, depending on how you intend to
      +interact with the K codebase. If you are solely a user of K, and have no
      +interest in developing or making changes to K, you most likely will want to
      +install one of our binary releases of K. However, if you are going to be a K
      +developer, or simply want to build K from source, you should follow the
      +instructions for a source build of K.

      +

      Installing K from a binary release

      + +

      K is developed as a rolling release, with each change to K that passes our
      +CI infrastructure being deployed on GitHub for download. The latest release of
      +K can be downloaded here.
      +This page also contains information on how to install K. It is recommended
      +that you fully uninstall the old version of K prior to installing the new one,
      +as K does not maintain entries in package manager databases, with the exception
      +of Homebrew on MacOS.

      +

      Installing K from source

      + +

      You can clone K from GitHub with the following Git command:

      +
      git clone https://github.com/runtimeverification/k --recursive
      +

      Instructions on how to build K from source can be found
      +here.

      +

      Configuring your editor

      + +

      K maintains a set of scripts for a variety of text editors, including vim and
      +emacs, in various states of maintenance. You can download these scripts with
      +the following Git command:

      +
      git clone https://github.com/kframework/k-editor-support
      +

      Because K allows users to define their own grammars for parsing K itself,
      +not all features of K can be effectively highlighted. However, at the cost of
      +occasionally highlighting things incorrectly, you can get some pretty good
      +results in many cases. With that being said, some of the editor scripts in the
      +above repository are pretty out of date. If you manage to improve them, we
      +welcome pull requests into the repository.

      +

      Troubleshooting

      + +

      If you have problems installing K, we encourage you to reach out to us. If you
      +follow the above install instructions and run into a problem, you can
      +Create a bug report on GitHub

      +

      Next lesson

      + +

      Once you have set up K on your system to your satisfaction, you can continue to
      +Lesson 1.2: Basics of Functional K.

      +

      Lesson 1.2: Basics of Functional K

      + +

      The purpose of this lesson is to explain the basics of productions and
      +rules in K. These are two types of K sentences. A K file consists of
      +one or more requires or modules in K. Each module consists of one or
      +more imports or sentences. For more information on requires, modules, and
      +sentences, refer to Lesson 1.5. However, for the time
      +being, just think of a module as a container for sentences, and don't worry
      +about requires or imports just yet.

      +

      Our first K program

      + +

      To start with, input the following program into your editor as file
      +lesson-02-a.k:

      +
      module LESSON-02-A
      +
      +  syntax Color ::= Yellow() | Blue()
      +  syntax Fruit ::= Banana() | Blueberry()
      +  syntax Color ::= colorOf(Fruit) [function]
      +
      +  rule colorOf(Banana()) => Yellow()
      +  rule colorOf(Blueberry()) => Blue()
      +
      +endmodule
      +

      Save this file and then run:

      +
      kompile lesson-02-a.k
      +

      kompile is K's compiler. By default, it takes a program or specification
      +written in K and compiles it into an interpreter for that input. Right now we
      +are compiling a single file. A set of K files that are compiled together are
      +called a K definition. We will cover multiple file K definitions later on.
      +kompile will output a directory containing everything needed to execute
      +programs and perform proofs using that definition. In this case, kompile will
      +(by default) create the directory lesson-02-a-kompiled under the current
      +directory.

      +

      Now, save the following input file in your editor as banana.color in the same
      +directory as lesson-02-a.k:

      +
      colorOf(Banana())
      +

      We can now evaluate this K term by running (from the same directory):

      +
      krun banana.color
      +

      krun will use the interpreter generated by the first call to kompile to
      +execute this program.

      +

      You will get the following output:

      +
      <k>
      +  Yellow ( ) ~> .
      +</k>
      +

      For now, don't worry about the <k>, </k>, or ~> . portions of this
      +output file.

      +

      You can also execute small programs directly by specifying them on the command
      +line instead of putting them in a file. For example, the same program above
      +could also have been executed by running the following command:

      +
      krun -cPGM='colorOf(Banana())'
      +

      Now, let's look at what this definition and program did.

      +

      Productions, Constructors, and Functions

      + +

      The first thing to realize is that this K definition contains 5 productions.
      +Productions are introduced with the syntax keyword, followed by a sort,
      +followed by the operator ::= followed by the definition of one or more
      +productions themselves, separated by the | operator. There are different
      +types of productions, but for now we only care about constructors and
      +functions. Each declaration separated by the | operator is individually
      +a single production, and the | symbol simply groups together productions that
      +have the same sort. For example, we could equally have written an identical K
      +definition lesson-02-b.k like so:

      +
      module LESSON-02-B
      +
      +  syntax Color ::= Yellow()
      +  syntax Color ::= Blue()
      +  syntax Fruit ::= Banana()
      +  syntax Fruit ::= Blueberry()
      +  syntax Color ::= colorOf(Fruit) [function]
      +
      +  rule colorOf(Banana()) => Yellow()
      +  rule colorOf(Blueberry()) => Blue()
      +
      +endmodule
      +

      You can try compiling and running lesson-02-b.k to see that it produces the same output as lesson-02-a.k:

      +
      kompile lesson-02-b.k
      +krun -cPGM='colorOf(Banana())' --definition 'lesson-02-b-kompiled'
      +

      where the --definition attribute points to the directory containing a compiled version of LESSON-02-B.
      +Even the following definition is equivalent:

      +
      module LESSON-02-C
      +
      +  syntax Color ::= Yellow()
      +                 | Blue()
      +                 | colorOf(Fruit) [function]
      +  syntax Fruit ::= Banana()
      +                 | Blueberry()
      +
      +  rule colorOf(Banana()) => Yellow()
      +  rule colorOf(Blueberry()) => Blue()
      +
      +endmodule
      +

      Each of these types of productions named above has the same underlying syntax,
      +but context and attributes are used to distinguish between the different
      +types. Tokens, brackets, lists, macros, aliases, and anywhere productions will
      +be covered in a later lesson, but this lesson does introduce us to constructors
      +and functions. Yellow(), Blue(), Banana(), and Blueberry() are
      +constructors. You can think of a constructor like a constructor for an
      +algebraic data type, if you're familiar with a functional language. The data
      +type itself is the sort that appears on the left of the ::= operator. Sorts
      +in K consist of uppercase identifiers.

      +

      Constructors can have arguments, but these ones do not. We will cover the
      +syntax of productions in detail in the next lesson, but for now, you can write
      +a production with no arguments as an uppercase or lowercase identifier followed
      +by the () operator.

      +

      A function is distinguished from a constructor by the presence of the
      +function attribute. Attributes appear in a comma separated list between
      +square brackets after any sentence, including both productions and rules.
      +Various attributes with built-in meanings exist in K and will be discussed
      +throughout the tutorial.

      +

      Exercise

      + +

      Use krun to compute the return value of the colorOf function on a
      +Blueberry().

      +

      Rules, Matching, and Variables

      + +

      Functions in K are given definitions using rules. A rule begins with the rule
      +keyword and contains at least one rewrite operator. The rewrite operator
      +is represented by the syntax =>. The rewrite operator is one of the built-in
      +productions in K, and we will discuss in more detail how it can be used in
      +future lessons, but for now, you can think of a rule as consisting of a
      +left-hand side and a right-hand side, separated by the rewrite
      +operator. On the left-hand side is the name of the function and zero or more
      +patterns corresponding to the parameters of the function. On the right-hand
      +side is another pattern. The meaning of the rule is relatively simple, having
      +defined these components. If the function is called with arguments that
      +match the patterns on the left-hand side, then the return value of the
      +function is the pattern on the right-hand side.

      +

      For example, in the above example, if the argument of the colorOf function
      +is Banana(), then the return value of the function is Yellow().

      +

      So far we have introduced that a constructor is a type of pattern in K. We
      +will introduce more complex patterns in later lessons, but there is one other
      +type of basic pattern: the variable. A variable, syntactically, consists
      +of an uppercase identifier. However, unlike a constructor, a variable will
      +match any pattern with one exception: Two variables with the same name
      +must match the same pattern.

      +

      Here is a more complex example (lesson-02-d.k):

      +
      module LESSON-02-D
      +
      +  syntax Container ::= Jar(Fruit)
      +  syntax Fruit ::= Apple() | Pear()
      +
      +  syntax Fruit ::= contentsOfJar(Container) [function]
      +
      +  rule contentsOfJar(Jar(F)) => F
      +
      +endmodule
      +

      Here we see that Jar is a constructor with a single argument. You can write a
      +production with multiple arguments by putting the sorts of the arguments in a
      +comma-separated list inside the parentheses.

      +

      In this example, F is a variable. It will match either Apple() or Pear().
      +The return value of the function is created by substituting the matched
      +values of all of the variables into the variables on the right-hand side of
      +the rule.

      +

      To demonstrate, compile this definition and execute the following program with
      +krun:

      +
      contentsOfJar(Jar(Apple()))
      +

      You will see when you run it that the program returns Apple(), because that
      +is the pattern that was matched by F.

      +

      Exercises

      + +
        +
      1. Extend the definition in lesson-02-a.k with the addition of blackberries
        +and kiwis. For simplicity, blackberries are black and kiwis are green. Then
        +compile your definition and test that your additional fruits are correctly
        +handled by the colorOf function.
      2. +
      3. Create a new definition which defines an outfit as a multi-argument
        +constructor consisting of a hat, shirt, pants, and shoes. Define a new sort,
        +Boolean, with two constructors, true and false. Each of hat, shirt, pants,
        +and shoes will have a single argument (a color), either black or
        +white. Then define an outfitMatching function that will return true if all
        +the pieces of the outfit are the same color. You do not need to define the
        +case that returns false. Write some tests that your function behaves the way
        +you expect.
      4. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.3: BNF Syntax and Parser Generation.

      +

      Lesson 1.3: BNF Syntax and Parser Generation

      + +

      The purpose of this lesson is to explain the full syntax and semantics of
      +productions in K as well as how productions and other syntactic
      +sentences can be used to define grammars for use parsing both rules as well
      +as programs.

      +

      K's approach to parsing

      + +

      K's grammar is divided into two components: the outer syntax of K and the
      +inner syntax of K. Outer syntax refers to the parsing of requires,
      +modules, imports, and sentences in a K definition. Inner syntax
      +refers to the parsing of rules and programs. Unlike the outer syntax of
      +K, which is predetermined, much of the inner syntax of K is defined by you, the
      +developer. When rules or programs are parsed, they are parsed within the
      +context of a module. Rules are parsed in the context of the module in which
      +they exist, whereas programs are parsed in the context of the
      +main syntax module of a K definition. The productions and other syntactic
      +sentences in a module are used to construct the grammar of the module, which
      +is then used to perform parsing.

      +

      Basic BNF productions

      + +

      To illustrate how this works, we will consider a simple K definition which
      +defines a relatively basic calculator capable of evaluating Boolean expressions
      +containing and, or, not, and xor.

      +

      Input the following program into your editor as file lesson-03-a.k:

      +
      module LESSON-03-A
      +
      +  syntax Boolean ::= "true" | "false"
      +                   | "!" Boolean [function]
      +                   | Boolean "&&" Boolean [function]
      +                   | Boolean "^" Boolean [function]
      +                   | Boolean "||" Boolean [function]
      +
      +endmodule
      +

      You will notice that the productions in this file look a little different than
      +the ones from the previous lesson. In point of fact, K has two different
      +mechanisms for defining productions. We have previously been focused
      +exclusively on the first mechanism, where the ::= symbol is followed by an
      +alphanumeric identifier followed by a comma-separated list of sorts in
      +parentheses. However, this is merely a special case of a more generic mechanism
      +for defining the syntax of productions using a variant of
      +BNF Form.

      +

      For example, in the previous lesson, we had the following set of productions:

      +
      module LESSON-03-B
      +  syntax Color ::= Yellow() | Blue()
      +  syntax Fruit ::= Banana() | Blueberry()
      +  syntax Color ::= colorOf(Fruit) [function]
      +endmodule
      +

      It turns out that this is equivalent to the following definition which defines
      +the same grammar, but using BNF notation:

      +
      module LESSON-03-C
      +  syntax Color ::= "Yellow" "(" ")" | "Blue" "(" ")"
      +  syntax Fruit ::= "Banana" "(" ")" | "Blueberrry" "(" ")"
      +  syntax Color ::= "colorOf" "(" Fruit ")" [function]
      +endmodule
      +

      In this example, the sorts of the argument to the function are unchanged, but
      +everything else has been wrapped in double quotation marks. This is because
      +in BNF notation, we distinguish between two types of production items:
      +terminals and non-terminals. A terminal represents simply a literal
      +string of characters that is verbatim part of the syntax of that production.
      +A non-terminal, conversely, represents a sort name, where the syntax of that
      +production accepts any valid term of that sort at that position.

      +

      This is why, when we wrote the program colorOf(Banana()), krun was able to
      +execute that program: because it represented a term of sort Color that was
      +parsed and interpreted by K's interpreter. In other words, krun parses and
      +interprets terms according to the grammar defined by the developer. It is
      +automatically converted into an AST of that term, and then the colorOf
      +function is evaluated using the function rules provided in the definition.

      +

      You can ask yourself: How does K match the strings between the double quotes?
      +The answer is that K uses Flex to generate a scanner for the grammar. Flex looks
      +for the longest possible match of a regular expression in the input. If there
      +are ambiguities between 2 or more regular expressions, it will pick the one with
      +the highest prec attribute. You can learn more about how Flex matching works
      +here.

      +

      Bringing us back to the file lesson-03-a.k, we can see that this grammar
      +has given a simple BNF grammar for expressions over Booleans. We have defined
      +constructors corresponding to the Boolean values true and false, and functions
      +corresponding to the Boolean operators for and, or, not, and xor. We have also
      +given a syntax for each of these functions based on their syntax in the C
      +programming language. As such, we can now write programs in the simple language
      +we have defined.

      +

      Input the following program into your editor as and.bool in the same
      +directory:

      +
      true && false
      +

      We cannot interpret this program yet, because we have not given rules defining
      +the meaning of the && function yet, but we can parse it. To do this, you can
      +run (from the same directory):

      +
      kast --output kore and.bool
      +

      kast is K's just-in-time parser. It will generate a grammar from your K
      +definition on the fly and use it to parse the program passed on the command
      +line. The --output flag controls how the resulting AST is represented; don't
      +worry about the possible values yet, just use kore.

      +

      You ought to get the following AST printed on standard output, minus the
      +formatting:

      +
      inj{SortBoolean{}, SortKItem{}}(
      +  Lbl'UndsAnd-And-UndsUnds'LESSON-03-A'Unds'Boolean'Unds'Boolean'Unds'Boolean{}(
      +    Lbltrue'Unds'LESSON-03-A'Unds'Boolean{}(),
      +    Lblfalse'Unds'LESSON-03-A'Unds'Boolean{}()
      +  )
      +)
      +

      Don't worry about what exactly this means yet, just understand that it
      +represents the AST of the program that you just parsed. You ought to be able
      +to recognize the basic shape of it by seeing the words true, false, and
      +And in there. This is Kore, the intermediate representation of K, and we
      +will cover it in detail later.

      +

      Note that you can also tell kast to print the AST in other formats. For a
      +more direct representation of the original K, while still maintaining the
      +structure of an AST, you can say kast --output kast and.bool. This will
      +yield the following output:

      +
      `_&&__LESSON-03-A_Boolean_Boolean_Boolean`(
      +  `true_LESSON-03-A_Boolean`(.KList),
      +  `false_LESSON-03-A_Boolean`(.KList)
      +)
      +

      Note how the first output is largely a name-mangled version of the second
      +output. The one difference is the presence of the inj symbol in the KORE
      +output. We will talk more about this in later lessons.

      +

      Exercise

      + +

      Parse the expression false || true with --output kast. See if you can
      +predict approximately what the corresponding output would be with
      +--output kore, then run the command yourself and compare it to your
      +prediction.

      +

      Ambiguities

      + +

      Now let's try a slightly more advanced example. Input the following program
      +into your editor as and-or.bool:

      +
      true && false || false
      +

      When you try and parse this program, you ought to see the following error:

      +
      [Error] Inner Parser: Parsing ambiguity.
      +1: syntax Boolean ::= Boolean "||" Boolean [function]
      +
      +`_||__LESSON-03-A_Boolean_Boolean_Boolean`(`_&&__LESSON-03-A_Boolean_Boolean_Boolean`(`true_LESSON-03-A_Boolean`(.KList),`false_LESSON-03-A_Boolean`(.KList)),`false_LESSON-03-A_Boolean`(.KList))
      +2: syntax Boolean ::= Boolean "&&" Boolean [function]
      +
      +`_&&__LESSON-03-A_Boolean_Boolean_Boolean`(`true_LESSON-03-A_Boolean`(.KList),`_||__LESSON-03-A_Boolean_Boolean_Boolean`(`false_LESSON-03-A_Boolean`(.KList),`false_LESSON-03-A_Boolean`(.KList)))
      +        Source(./and-or.bool)
      +        Location(1,1,1,23)
      +

      This error is saying that kast was unable to parse this program because it is
      +ambiguous. K's just-in-time parser is a GLL parser, which means it can handle
      +the full generality of context-free grammars, including those grammars which
      +are ambiguous. An ambiguous grammar is one where the same string can be parsed
      +as multiple distinct ASTs. In this example, it can't decide whether it should
      +be parsed as (true && false) || false or as true && (false || false). As a
      +result, it reports the error to the user.

      +

      Brackets

      + +

      Currently there is no way of resolving this ambiguity, making it impossible
      +to write complex expressions in this language. This is obviously a problem.
      +The standard solution in most programming languages to this problem is to
      +use parentheses to indicate the appropriate grouping. K generalizes this notion
      +into a type of production called a bracket. A bracket production in K
      +is any production with the bracket attribute. It is required that such a
      +production only have a single non-terminal, and the sort of the production
      +must equal the sort of that non-terminal. However, K does not otherwise
      +impose restrictions on the grammar the user provides for a bracket. With that
      +being said, the most common type of bracket is one in which a non-terminal
      +is surrounded by terminals representing some type of bracket such as
      +(), [], {}, <>, etc. For example, we can define the most common
      +type of bracket, the type used by the vast majority of programming languages,
      +quite simply.

      +

      Consider the following modified definition, which we will save to
      +lesson-03-d.k:

      +
      module LESSON-03-D
      +
      +  syntax Boolean ::= "true" | "false"
      +                   | "(" Boolean ")" [bracket]
      +                   | "!" Boolean [function]
      +                   | Boolean "&&" Boolean [function]
      +                   | Boolean "^" Boolean [function]
      +                   | Boolean "||" Boolean [function]
      +
      +endmodule
      +

      In this definition, if the user does not explicitly define parentheses, the
      +grammar remains ambiguous and K's just-in-time parser will report an error.
      +However, you are now able to parse more complex programs by means of explicitly
      +grouping subterms with the bracket we have just defined.

      +

      Consider and-or-left.bool:

      +
      (true && false) || false
      +

      Now consider and-or-right.bool:

      +
      true && (false || false)
      +

      If you parse these programs with kast, you will once again get a single
      +unique AST with no error. If you look, you might notice that the bracket itself
      +does not appear in the AST. In fact, this is a property unique to brackets:
      +productions with the bracket attribute are not represented in the parsed AST
      +of a term, and the child of the bracket is folded immediately into the parent
      +term. This is the reason for the requirement that a bracket production have
      +a single non-terminal of the same sort as the production itself.

      +

      Exercise

      + +

      Write out what you expect the AST to be arising from parsing these two programs
      +above with --output kast, then parse them yourself and compare them to the
      +AST you expected. Confirm for yourself that the bracket production does not
      +appear in the AST.

      +

      Tokens

      + +

      So far we have seen how we can define the grammar of a language. However,
      +the grammar is not the only relevant part of parsing a language. Also relevant
      +is the lexical syntax of the language. Thus far, we have implicitly been using
      +K's automatic lexer generation to generate a token in the scanner for each
      +terminal in our grammar. However, sometimes we wish to define more complex
      +lexical syntax. For example, consider the case of integers in C: an integer
      +consists of a decimal, octal, or hexadecimal number followed by an optional
      +suffix indicating the type of the literal.

      +

      In theory it would be possible to define this syntax via a grammar, but not
      +only would it be cumbersome and tedious, you would also then have to deal with
      +an AST generated for the literal which is not convenient to work with.

      +

      Instead of doing this, K allows you to define token productions, where
      +a production consists of a regular expression followed by the token
      +attribute, and the resulting AST consists of a typed string containing the
      +value recognized by the regular expression.

      +

      For example, the builtin integers in K are defined using the following
      +production:

      +
      syntax Int ::= r"[\\+-]?[0-9]+" [token]
      +

      Here we can see that we have defined that an integer is an optional sign
      +followed by a nonzero sequence of digits. The r preceding the terminal
      +indicates that what appears inside the double quotes is a regular expression,
      +and the token attribute indicates that terms which parse as this production
      +should be converted into a token by the parser.

      +

      It is also possible to define tokens that do not use regular expressions. This
      +can be useful when you wish to declare particular identifiers for use in your
      +semantics later. For example:

      +
      syntax Id ::= "main" [token]
      +

      Here, we declare that main is a token of sort Id. Instead of being parsed
      +as a symbol, it gets parsed as a token, generating a typed string in the AST.
      +This is useful in a semantics of C because the parser generally does not treat
      +the main function in C specially; only the semantics treats it specially.

      +

      Of course, languages can have more complex lexical syntax. For example, if we
      +wish to define the syntax of integers in C, we could use the following
      +production:

      +
      syntax IntConstant ::= r"(([1-9][0-9]*)|(0[0-7]*)|(0[xX][0-9a-fA-F]+))(([uU][lL]?)|([uU]((ll)|(LL)))|([lL][uU]?)|(((ll)|(LL))[uU]?))?" [token]
      +

      As you may have noted above, long and complex regular expressions
      +can be hard to read. They also suffer from the problem that unlike a grammar,
      +they are not particularly modular.

      +

      We can get around this restriction by declaring explicit regular expressions,
      +giving them a name, and then referring to them in productions.

      +

      Consider the following (equivalent) way to define the lexical syntax of
      +integers in C:

      +
      syntax IntConstant ::= r"({DecConstant}|{OctConstant}|{HexConstant})({IntSuffix}?)" [token]
      +syntax lexical DecConstant = r"{NonzeroDigit}({Digit}*)"
      +syntax lexical OctConstant = r"0({OctDigit}*)"
      +syntax lexical HexConstant = r"{HexPrefix}({HexDigit}+)"
      +syntax lexical HexPrefix = r"0x|0X"
      +syntax lexical NonzeroDigit = r"[1-9]"
      +syntax lexical Digit = r"[0-9]"
      +syntax lexical OctDigit = r"[0-7]"
      +syntax lexical HexDigit = r"[0-9a-fA-F]"
      +syntax lexical IntSuffix = r"{UnsignedSuffix}({LongSuffix}?)|{UnsignedSuffix}{LongLongSuffix}|{LongSuffix}({UnsignedSuffix}?)|{LongLongSuffix}({UnsignedSuffix}?)"
      +syntax lexical UnsignedSuffix = r"[uU]"
      +syntax lexical LongSuffix = r"[lL]"
      +syntax lexical LongLongSuffix = r"ll|LL"
      +

      As you can see, this is rather more verbose, but it has the benefit of both
      +being much easier to read and understand, and also increased modularity.
      +Note that we refer to a named regular expression by putting the name in curly
      +brackets. Note also that only the first sentence actually declares a new piece
      +of syntax in the language. When the user writes syntax lexical, they are only
      +declaring a regular expression. To declare an actual piece of syntax in the
      +grammar, you still must actually declare an explicit token production.

      +

      One final note: K uses Flex to implement
      +its lexical analysis. As a result, you can refer to the
      +Flex Manual
      +for a detailed description of the regular expression syntax supported. Note
      +that for performance reasons, Flex's regular expressions are actually a regular
      +language, and thus lack some of the syntactic convenience of modern
      +"regular expression" libraries. If you need features that are not part of the
      +syntax of Flex regular expressions, you are encouraged to express them via
      +a grammar instead.

      +

      Ahead-of-time parser generation

      + +

      So far we have been entirely focused on K's support for just-in-time parsing,
      +where the parser is generated on the fly prior to being used. This benefits
      +from being faster to generate the parser, but it suffers in performance if you
      +have to repeatedly parse strings with the same parser. For this reason, it is
      +generally encouraged that when parsing programs, you use K's ahead-of-time
      +parser generation. K makes use of
      +GNU Bison to generate parsers.

      +

      By default, you can enable ahead-of-time parsing via the --gen-bison-parser
      +flag to kompile. This will make use of Bison's LR(1) parser generator. As
      +such, if your grammar is not LR(1), it may not parse exactly the same as if
      +you were to use the just-in-time parser, because Bison will automatically pick
      +one of the possible branches whenever it encounters a shift-reduce or
      +reduce-reduce conflict. In this case, you can either modify your grammar to be
      +LR(1), or you can enable use of Bison's GLR support by instead passing
      +--gen-glr-bison-parser to kompile. Note that if your grammar is ambiguous,
      +the ahead-of-time parser will not provide you with particularly readable error
      +messages at this time.

      +

      If you have a K definition named foo.k, and it generates a directory when
      +you run kompile called foo-kompiled, you can invoke the ahead-of-time
      +parser you generated by running foo-kompiled/parser_PGM <file> on a file.

      +

      Exercises

      + +
        +
      1. +

        Compile lesson-03-d.k with ahead-of-time parsing enabled. Then compare
        +how long it takes to run kast --output kore and-or-left.bool with how long it
        +takes to run lesson-03-d-kompiled/parser_PGM and-or-left.bool. Confirm for
        +yourself that both produce the same result, but that the latter is faster.

        +
      2. +
      3. +

        Define a simple grammar consisting of integers, brackets, addition,
        +subtraction, multiplication, division, and unary negation. Integers should be
        +in decimal form and lexically without a sign, whereas negative numbers can be
        +represented via unary negation. Ensure that you are able to parse some basic
        +arithmetic expressions using a generated ahead-of-time parser. Do not worry
        +about disambiguating the grammar or about writing rules to implement the
        +operations in this definition.

        +
      4. +
      5. +

        Write a program where the meaning of the arithmetic expression based on
        +the grammar you defined above is ambiguous, and then write programs that
        +express each individual intended meaning using brackets.

        +
      6. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.4: Disambiguating Parses.

      +

      Lesson 1.4: Disambiguating Parses

      + +

      The purpose of this lesson is to teach how to use K's builtin features for
      +disambiguation to transform an ambiguous grammar into an unambiguous one that
      +expresses the intended ASTs.

      +

      Priority blocks

      + +

      In practice, very few formal languages outside the domain of natural language
      +processing are ambiguous. The main reason for this is that parsing unambiguous
      +languages is asymptotically faster than parsing ambiguous languages.
      +Programming language designers instead usually use the notions of operator
      +precedence and associativity to make expression grammars unambiguous. These
      +mechanisms work by instructing the parser to reject certain ASTs in favor of
      +others in case of ambiguities; it is often possible to remove all ambiguities
      +in a grammar with these techniques.

      +

      While it is sometimes possible to explicitly rewrite the grammar to remove
      +these parses, because K's grammar specification and AST generation are
      +inextricably linked, this is generally discouraged. Instead, we use the
      +approach of explicitly expressing the relative precedence of different
      +operators in different situations in order to resolve the ambiguity.

      +

      For example, in C, && binds tighter in precedence than ||, meaning that
      +the expression true && false || false has only one valid AST:
      +(true && false) || false.

      +

      Consider, then, the third iteration on the grammar of this definition
      +(lesson-04-a.k):

      +
      module LESSON-04-A
      +
      +  syntax Boolean ::= "true" | "false"
      +                   | "(" Boolean ")" [bracket]
      +                   > "!" Boolean [function]
      +                   > Boolean "&&" Boolean [function]
      +                   > Boolean "^" Boolean [function]
      +                   > Boolean "||" Boolean [function]
      +
      +endmodule
      +

      In this example, some of the | symbols separating productions in a single
      +block have been replaced with >. This serves to describe the
      +priority groups associated with this block of productions.
      +The first priority group consists of the atoms of the
      +language: true, false, and the bracket operator. In general, a priority
      +group starts either at the ::= or > operator and extends until either the
      +next > operator or the end of the production block. Thus, we can see that the
      +second, third, fourth, and fifth priority groups in this grammar all consist
      +of a single production.

      +

      The meaning of these priority groups becomes apparent when parsing programs:
      +A symbol with a lesser priority, (i.e., one that binds looser), cannot
      +appear as the direct child of a symbol with a greater priority (i.e.,
      +one that binds tighter. In this case, the > operator can be seen as a
      +greater-than operator describing a transitive partial ordering on the
      +productions in the production block, expressing their relative priority.

      +

      To see this more concretely, let's look again at the program
      +true && false || false. As noted before, previously this program was
      +ambiguous because the parser could either choose that && was the child of ||
      +or vice versa. However, because a symbol with lesser priority (i.e., ||)
      +cannot appear as the direct child of a symbol with greater priority
      +(i.e., &&), the parser will reject the parse where || is under the
      +&& operator. As a result, we are left with the unambiguous parse
      +(true && false) || false. Similarly, true || false && false parses
      +unambiguously as true || (false && false). Conversely, if the user explicitly
      +wants the other parse, they can express this using brackets by explicitly
      +writing true && (false || false). This still parses successfully because the
      +|| operator is no longer the direct child of the && operator, but is
      +instead the direct child of the () operator, and the && operator is an
      +indirect parent, which is not subject to the priority restriction.

      +

      Astute readers, however, will already have noticed what seems to be a
      +contradiction: we have defined () as also having greater priority than ||.
      +One would think that this should mean that || cannot appear as a direct
      +child of (). This is a problem because priority groups are applied to every
      +possible parse separately. That is to say, even if the term is unambiguous
      +prior to this disambiguation rule, we still reject that parse if it violates
      +the rule of priority.

      +

      In fact, however, we do not reject this program as a parse error. Why is that?
      +Well, the rule for priority is slightly more complex than previously described.
      +In actual fact, it applies only conditionally. Specifically, it applies in
      +cases where the child is either the first or last production item in the
      +parent's production. For example, in the production Bool "&&" Bool, the
      +first Bool non-terminal is not preceded by any terminals, and the last Bool
      +non-terminal is not followed by any terminals. As a result of this, we apply
      +the priority rule to both children of &&. However, in the () operator,
      +the sole non-terminal is both preceded by and followed by terminals. As a
      +result, the priority rule is not applied when () is the parent. Because of
      +this, the program we mentioned above successfully parses.

      +

      Exercise

      + +

      Parse the program true && false || false using kast, and confirm that the AST
      +places || as the top level symbol. Then modify the definition so that you
      +will get the alternative parse.

      +

      Associativity

      + +

      Even having broken the expression grammar into priority blocks, the resulting
      +grammar is still ambiguous. We can see this if we try to parse the following
      +program (assoc.bool):

      +
      true && false && false
      +

      Priority blocks will not help us here: the problem comes between two parses
      +where both possible parses have a direct parent and child which is within a
      +single priority block (in this case, && is in the same block as itself).

      +

      This is where the notion of associativity comes into play. Associativity
      +applies the following additional rules to parses:

      +
        +
      • a left-associative symbol cannot appear as a direct rightmost child of a
        +symbol with equal priority;
      • +
      • a right-associative symbol cannot appear as a direct leftmost child of a
        +symbol with equal priority; and
      • +
      • a non-associative symbol cannot appear as a direct leftmost or rightmost
        +child of a symbol with equal priority.
      • +
      +

      In C, binary operators are all left-associative, meaning that the expression
      +true && false && false parses unambiguously as (true && false) && false,
      +because && cannot appear as the rightmost child of itself.

      +

      Consider, then, the fourth iteration on the grammar of this definition
      +(lesson-04-b.k):

      +
      module LESSON-04-B
      +
      +  syntax Boolean ::= "true" | "false"
      +                   | "(" Boolean ")" [bracket]
      +                   > "!" Boolean [function]
      +                   > left: Boolean "&&" Boolean [function]
      +                   > left: Boolean "^" Boolean [function]
      +                   > left: Boolean "||" Boolean [function]
      +
      +endmodule
      +

      Here each priority group, immediately after the ::= or > operator, can
      +be followed by a symbol representing the associativity of that priority group:
      +either left: for left associativity, right: for right associativity, or
      +non-assoc: for non-associativity. In this example, each priority group we
      +apply associativity to has only a single production, but we could equally well
      +write a priority block with multiple productions and an associativity.

      +

      For example, consider the following, different grammar (lesson-04-c.k):

      +
      module LESSON-04-C
      +
      +  syntax Boolean ::= "true" | "false"
      +                   | "(" Boolean ")" [bracket]
      +                   > "!" Boolean [function]
      +                   > left:
      +                     Boolean "&&" Boolean [function]
      +                   | Boolean "^" Boolean [function]
      +                   | Boolean "||" Boolean [function]
      +
      +endmodule
      +

      In this example, unlike the one above, &&, ^, and || have the same
      +priority. However, viewed as a group, the entire group is left associative.
      +This means that none of &&, ^, and || can appear as the right child of
      +any of &&, ^, or ||. As a result of this, this grammar is also not
      +ambiguous. However, it expresses a different grammar, and you are encouraged
      +to think about what the differences are in practice.

      +

      Exercise

      + +

      Parse the program true && false && false yourself, and confirm that the AST
      +places the rightmost && at the top of the expression. Then modify the
      +definition to generate the alternative parse.

      +

      Explicit priority and associativity declarations

      + +

      Previously we have only considered the case where all of the productions
      +which you wish to express a priority or associativity relation over are
      +co-located in the same block of productions. However, in practice this is not
      +always feasible or desirable, especially as a definition grows in size across
      +multiple modules.

      +

      As a result of this, K provides a second way of declaring priority and
      +associativity relations.

      +

      Consider the following grammar, which we will name lesson-04-d.k and which
      +will express the exact same grammar as lesson-04-b.k

      +
      module LESSON-04-D
      +
      +  syntax Boolean ::= "true" [group(literal)] | "false" [group(literal)]
      +                   | "(" Boolean ")" [group(atom), bracket]
      +                   | "!" Boolean [group(not), function]
      +                   | Boolean "&&" Boolean [group(and), function]
      +                   | Boolean "^" Boolean [group(xor), function]
      +                   | Boolean "||" Boolean [group(or), function]
      +
      +  syntax priorities literal atom > not > and > xor > or
      +  syntax left and
      +  syntax left xor
      +  syntax left or
      +endmodule
      +

      This introduces a couple of new features of K. First, the group(_) attribute
      +is used to conceptually group together sets of sentences under a common
      +user-defined name. For example, literal in the syntax priorities sentence is
      +used to refer to all the productions marked with the group(literal) attribute,
      +i.e., true and false. A production can belong to multiple groups using
      +syntax such as group(myGrp1,myGrp2).

      +

      Once we understand this, it becomes relatively straightforward to understand
      +the meaning of this grammar. Each syntax priorities sentence defines a
      +priority relation where > separates different priority groups. Each priority
      +group is defined by a list of one or more group names, and consists of all
      +productions which are members of at least one of those named groups.

      +

      In the same way, a syntax left, syntax right, or syntax non-assoc sentence
      +defines an associativity relation among left-, right-, or non-associative
      +groups. Specifically, this means that:

      +
      syntax left a b
      +

      is different to:

      +
      syntax left a
      +syntax left b
      +

      As a consequence of this, syntax [left|right|non-assoc] should not be used to
      +group together labels with different priority.

      +

      Prefer/avoid

      + +

      Sometimes priority and associativity prove insufficient to disambiguate a
      +grammar. In particular, sometimes it is desirable to be able to choose between
      +two ambiguous parses directly while still not rejecting any parses if the term
      +parsed is unambiguous. A good example of this is the famous "dangling else"
      +problem in imperative C-like languages.

      +

      Consider the following definition (lesson-04-E.k):

      +
      module LESSON-04-E
      +
      +  syntax Exp ::= "true" | "false"
      +  syntax Stmt ::= "if" "(" Exp ")" Stmt
      +                | "if" "(" Exp ")" Stmt "else" Stmt
      +                | "{" "}"
      +endmodule
      +

      We can write the following program (dangling-else.if):

      +
      if (true) if (false) {} else {}
      +

      This is ambiguous because it is unclear whether the else clause is part of
      +the outer if or the inner if. At first we might try to resolve this with
      +priorities, saying that the if without an else cannot appear as a child of
      +the if with an else. However, because the non-terminal in the parent symbol
      +is both preceded and followed by a terminal, this will not work.

      +

      Instead, we can resolve the ambiguity directly by telling the parser to
      +"prefer" or "avoid" certain productions when ambiguities arise. For example,
      +when we parse this program, we see the following ambiguity as an error message:

      +
      [Error] Inner Parser: Parsing ambiguity.
      +1: syntax Stmt ::= "if" "(" Exp ")" Stmt
      +
      +`if(_)__LESSON-04-E_Stmt_Exp_Stmt`(`true_LESSON-04-E_Exp`(.KList),`if(_)_else__LESSON-04-E_Stmt_Exp_Stmt_Stmt`(`false_LESSON-04-E_Exp`(.KList),`;_LESSON-04-E_Stmt`(.KList),`;_LESSON-04-E_Stmt`(.KList)))
      +2: syntax Stmt ::= "if" "(" Exp ")" Stmt "else" Stmt
      +
      +`if(_)_else__LESSON-04-E_Stmt_Exp_Stmt_Stmt`(`true_LESSON-04-E_Exp`(.KList),`if(_)__LESSON-04-E_Stmt_Exp_Stmt`(`false_LESSON-04-E_Exp`(.KList),`;_LESSON-04-E_Stmt`(.KList)),`;_LESSON-04-E_Stmt`(.KList))
      +        Source(./dangling-else.if)
      +        Location(1,1,1,30)
      +

      Roughly, we see that the ambiguity is between an if with an else or an if
      +without an else. Since we want to pick the first parse, we can tell K to
      +"avoid" the second parse with the avoid attribute. Consider the following
      +modified definition (lesson-04-f.k):

      +
      module LESSON-04-F
      +
      +  syntax Exp ::= "true" | "false"
      +  syntax Stmt ::= "if" "(" Exp ")" Stmt
      +                | "if" "(" Exp ")" Stmt "else" Stmt [avoid]
      +                | "{" "}"
      +endmodule
      +

      Here we have added the avoid attribute to the else production. As a result,
      +when an ambiguity occurs and one or more of the possible parses has that symbol
      +at the top of the ambiguous part of the parse, we remove those parses from
      +consideration and consider only those remaining. The prefer attribute behaves
      +similarly, but instead removes all parses which do not have that attribute.
      +In both cases, no action is taken if the parse is not ambiguous.

      +

      Exercises

      + +
        +
      1. +

        Parse the program if (true) if (false) {} else {} using lesson-04-f.k
        +and confirm that else clause is part of the innermost if statement. Then
        +modify the definition so that you will get the alternative parse.

        +
      2. +
      3. +

        Modify your solution from Lesson 1.3, Exercise 2 so that unary negation should
        +bind tighter than multiplication and division, which should bind tighter than
        +addition and subtraction, and each binary operator should be left associative.
        +Write these priority and associativity declarations explicitly, and then
        +try to write them inline.

        +
      4. +
      5. +

        Write a simple grammar containing at least one ambiguity that cannot be
        +resolved via priority or associativity, and then use the prefer attribute to
        +resolve that ambiguity.

        +
      6. +
      7. +

        Explain why the following grammar is not labeled ambiguous by the K parser when parsing abb, then make the parser realize the ambiguity.

        +
      8. +
      +
      module EXERCISE4
      +
      +syntax Expr ::= "a" Expr "b"
      +              | "abb"
      +              | "b"
      +
      +endmodule
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.5: Modules, Imports, and Requires.

      +

      Lesson 1.5: Modules, Imports, and Requires

      + +

      The purpose of this lesson is to explain how K definitions can be broken into
      +separate modules and files and how these distinct components combine into a
      +complete K definition.

      +

      K's outer syntax

      + +

      Recall from Lesson 1.3 that K's grammar is broken
      +into two components: the outer syntax of K and the inner syntax of K.
      +Outer syntax, as previously mentioned, consists of requires, modules,
      +imports, and sentences. A K semantics is expressed by the set of
      +sentences contained in the definition. The scope of what is considered
      +contained in that definition is determined both by the main semantics
      +module
      of a K definition, as well as the requires and imports present
      +in the file that contains that module.

      +

      Basic module syntax

      + +

      The basic unit of grouping sentences in K is the module. A module consists
      +of a module name, an optional list of attributes, a list of
      +imports, and a list of sentences.

      +

      A module name consists of one or more groups of letters, numbers, or
      +underscores, separated by a hyphen. Here are some valid module names: FOO,
      +FOO-BAR, foo0, foo0_bar-Baz9. Here are some invalid module names: -,
      +-FOO, BAR-, FOO--BAR. Stylistically, modules names are usually all
      +uppercase with hyphens separating words, but this is not strictly enforced.

      +

      Some example modules include an empty module:

      +
      module LESSON-05-A
      +
      +endmodule
      +

      A module with some attributes:

      +
      module LESSON-05-B [group(attr1,attr2), private]
      +
      +endmodule
      +

      A module with some sentences:

      +
      module LESSON-05-C
      +  syntax Boolean ::= "true" | "false"
      +  syntax Boolean ::= "not" Boolean [function]
      +  rule not true => false
      +  rule not false => true
      +endmodule
      +

      Imports

      + +

      Thus far we have only discussed definitions containing a single module.
      +Definitions can also contain multiple modules, in which one module imports
      +others.

      +

      An import in K appears at the top of a module, prior to any sentences. It can
      +be specified with the imports keyword, followed by a module name.

      +

      For example, here is a simple definition with two modules (lesson-05-d.k):

      +
      module LESSON-05-D-1
      +  syntax Boolean ::= "true" | "false"
      +  syntax Boolean ::= "not" Boolean [function]
      +endmodule
      +
      +module LESSON-05-D
      +  imports LESSON-05-D-1
      +
      +  rule not true => false
      +  rule not false => true
      +endmodule
      +

      This K definition is equivalent to the definition expressed by the single module
      +LESSON-05-C. Essentially, by importing a module, we include all of the
      +sentences in the module being imported into the module that we import from.
      +There are a few minor differences between importing a module and simply
      +including its sentences in another module directly, but we will cover these
      +differences later. Essentially, you can think of modules as a way of
      +conceptually grouping sentences in a larger K definition.

      +

      Exercise

      + +

      Modify lesson-05-d.k to include four modules: one containing the syntax, two
      +with one rule each that imports the first module, and a final module
      +LESSON-05-D containing no sentences that imports the second and third module.
      +Check to make sure the definition still compiles and that you can still evaluate
      +the not function.

      +

      Parsing in the presence of multiple modules

      + +

      As you may have noticed, each module in a definition can express a distinct set
      +of syntax. When parsing the sentences in a module, we use the syntax
      +of that module, enriched with the basic syntax of K, in order to parse
      +rules in that module. For example, the following definition is a parser error
      +(lesson-05-e.k):

      +
      module LESSON-05-E-1
      +  rule not true => false
      +  rule not false => true
      +endmodule
      +
      +module LESSON-05-E-2
      +  syntax Boolean ::= "true" | "false"
      +  syntax Boolean ::= "not" Boolean [function]
      +endmodule
      +

      This is because the syntax referenced in module LESSON-05-E-1, namely, not,
      +true, and false, is not imported by that module. You can solve this problem
      +by simply importing the modules containing the syntax you want to use in your
      +sentences.

      +

      Main syntax and semantics modules

      + +

      When we are compiling a K definition, we need to know where to start. We
      +designate two specific entry point modules: the main syntax module
      +and the main semantics module. The main syntax module, as well as all the
      +modules it imports recursively, are used to create the parser for programs that
      +you use to parse programs that you execute with krun. The main semantics
      +module, as well as all the modules it imports recursively, are used to
      +determine the rules that can be applied at runtime in order to execute a
      +program. For example, in the above example, if the main semantics module is
      +module LESSON-05-D-1, then not is an uninterpreted function (i.e., has no
      +rules associated with it), and the rules in module LESSON-05-D are not
      +included.

      +

      While you can specify the entry point modules explicitly by passing the
      +--main-module and --syntax-module flags to kompile, by default, if you
      +type kompile foo.k, then the main semantics module will be FOO and the
      +main syntax module will be FOO-SYNTAX.

      +

      Splitting a definition into multiple files

      + +

      So far, while we have discussed ways to break definitions into separate
      +conceptual components (modules), K also provides a mechanism for combining
      +multiple files into a single K definition, namely, the requires directive.

      +

      In K, the requires keyword has two meanings. The first, the requires
      +statement, appears at the top of a K file, prior to any module declarations. It
      +consists of the keyword requires followed by a double-quoted string. The
      +second meaning of the requires keyword will be covered in a later lesson,
      +but it is distinguished because the second case occurs only inside modules.

      +

      The string passed to the requires statement contains a filename. When you run
      +kompile on a file, it will look at all of the requires statements in that
      +file, look up those files on disk, parse them, and then recursively process all
      +the requires statements in those files. It then combines all the modules in all
      +of those files together, and uses them collectively as the set of modules to
      +which imports statements can refer.

      +

      Putting it all together

      + +

      Putting it all together, here is one possible way in which we could break the
      +definition lesson-02-c.k from Lesson 1.2 into
      +multiple files and modules:

      +

      colors.k:

      +
      module COLORS
      +  syntax Color ::= Yellow()
      +                 | Blue()
      +endmodule
      +

      fruits.k:

      +
      module FRUITS
      +  syntax Fruit ::= Banana()
      +                 | Blueberry()
      +endmodule
      +

      colorOf.k:

      +
      requires "fruits.k"
      +requires "colors.k"
      +
      +module COLOROF-SYNTAX
      +  imports COLORS
      +  imports FRUITS
      +
      +  syntax Color ::= colorOf(Fruit) [function]
      +endmodule
      +
      +module COLOROF
      +  imports COLOROF-SYNTAX
      +
      +  rule colorOf(Banana()) => Yellow()
      +  rule colorOf(Blueberry()) => Blue()
      +endmodule
      +

      You would then compile this definition with kompile colorOf.k and use it the
      +same way as the original, single-module definition.

      +

      Exercise

      + +

      Modify the name of the COLOROF module, and then recompile the definition.
      +Try to understand why you now get a compiler error. Then, resolve this compiler
      +error by passing the --main-module and --syntax-module flags to kompile.

      +

      Include path

      + +

      One note can be made about how paths are resolved in requires statements.

      +

      By default, the path you specify is allowed to be an absolute or a relative
      +path. If the path is absolute, that exact file is imported. If the path is
      +relative, a matching file is looked for within all of the
      +include directories specified to the compiler. By default, the include
      +directories include the current working directory, followed by the
      +include/kframework/builtin directory within your installation of K. You can
      +also pass one or more directories to kompile via the -I command line flag,
      +in which case these directories are prepended to the beginning of the list.

      +

      Exercises

      + +
        +
      1. +

        Take the solution to Lesson 1.4, Exercise 2 which included the explicit
        +priority and associativity declarations, and modify the definition so that
        +the syntax of integers and brackets is in one module, the syntax of addition,
        +subtraction, and unary negation is in another module, and the syntax of
        +multiplication and division is in a third module. Make sure you can still parse
        +the same set of expressions as before. Place priority declarations in the main
        +module.

        +
      2. +
      3. +

        Modify lesson-02-d.k from Lesson 1.2 so that the rules and syntax are in
        +separate modules in separate files.

        +
      4. +
      5. +

        Place the file containing the syntax from Exercise 2 in another directory,
        +then recompile the definition. Observe why a compilation error occurs. Then
        +fix the compiler error by passing -I to kompile.

        +
      6. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.6: Integers and Booleans.

      +

      Lesson 1.6: Integers and Booleans

      + +

      The purpose of this lesson is to explain the two most basic types of builtin
      +sorts in K, the Int sort and the Bool sort, representing
      +arbitrary-precision integers and Boolean algebra.

      +

      Builtin sorts in K

      + +

      K provides definitions of some useful sorts in
      +domains.md, found in the
      +include/kframework/builtin directory of the K installation. This file is
      +defined via a
      +Literate programming
      +style that we will discuss in a future lesson. We will not cover all of the
      +sorts found there immediately, however, this lesson discusses some of the
      +details surrounding integers and Booleans, as well as providing information
      +about how to look up more detailed knowledge about builtin functions in K's
      +documentation.

      +

      Booleans in K

      + +

      The most basic builtin sort K provides is the Bool sort, representing
      +Boolean values (i.e., true and false). You have already seen how we were
      +able to create this type ourselves using K's parsing and disambiguation
      +features. However, in the vast majority of cases, we prefer instead to import
      +the version of Boolean algebra defined by K itself. Most simply, you can do
      +this by importing the module BOOL in your definition. For example
      +(lesson-06-a.k):

      +
      module LESSON-06-A
      +  imports BOOL
      +
      +  syntax Fruit ::= Blueberry() | Banana()
      +  syntax Bool ::= isBlue(Fruit) [function]
      +
      +  rule isBlue(Blueberry()) => true
      +  rule isBlue(Banana()) => false
      +endmodule
      +

      Here we have defined a simple predicate, i.e., a function returning a
      +Boolean value. We are now able to perform the usual Boolean operations of
      +and, or, and not over these values. For example (lesson-06-b.k):"

      +
      module LESSON-06-B
      +  imports BOOL
      +
      +  syntax Fruit ::= Blueberry() | Banana()
      +  syntax Bool ::= isBlue(Fruit) [function]
      +
      +  rule isBlue(Blueberry()) => true
      +  rule isBlue(Banana()) => false
      +
      +  syntax Bool ::= isYellow(Fruit) [function]
      +                | isBlueOrYellow(Fruit) [function]
      +
      +  rule isYellow(Banana()) => true
      +  rule isYellow(Blueberry()) => false
      +
      +  rule isBlueOrYellow(F) => isBlue(F) orBool isYellow(F)
      +endmodule
      +

      In the above example, Boolean inclusive or is performed via the orBool
      +function, which is defined in the BOOL module. As a matter of convention,
      +many functions over builtin sorts in K are suffixed with the name of the
      +primary sort over which those functions are defined. This happens so that the
      +syntax of K does not (generally) conflict with the syntax of any other
      +programming language, which would make it harder to define that programming
      +language in K.

      +

      Exercise

      + +

      Write a function isBlueAndNotYellow which computes the appropriate Boolean
      +expression. If you are unsure what the appropriate syntax is to use, you
      +can refer to the BOOL module in
      +domains.md. Add a term of
      +sort Fruit for which isBlue and isYellow both return true, and test that
      +the isBlueAndNotYellow function behaves as expected on all three Fruits.

      +

      Syntax Modules

      + +

      For most sorts in domains.md, K defines more than one module that can be
      +imported by users. For example, for the Bool sort, K defines the BOOL
      +module that has previously already been discussed, but also provides the
      +BOOL-SYNTAX module. This module, unlike the BOOL module, only declares the
      +values true and false, but not any of the functions that operate over the
      +Bool sort. The rationale is that you may want to import this module into the
      +main syntax module of your definition in some cases, whereas you generally do
      +not want to do this with the version of the module that includes all the
      +functions over the Bool sort. For example, if you were defining the semantics
      +of C++, you might import BOOL-SYNTAX into the syntax module of your
      +definition, because true and false are part of the grammar of C++, but
      +you would only import the BOOL module into the main semantics module, because
      +C++ defines its own syntax for and, or, and not that is different from the
      +syntax defined in the BOOL module.

      +

      Here, for example, is how we might redefine our Boolean expression calculator
      +to use the Bool sort while maintaining an idiomatic structure of modules
      +and imports, for the first time including the rules to calculate the values of
      +expressions themselves (lesson-06-c.k):

      +
      module LESSON-06-C-SYNTAX
      +  imports BOOL-SYNTAX
      +
      +  syntax Bool ::= "(" Bool ")" [bracket]
      +                > "!" Bool [function]
      +                > left:
      +                  Bool "&&" Bool [function]
      +                | Bool "^" Bool [function]
      +                | Bool "||" Bool [function]
      +endmodule
      +
      +module LESSON-06-C
      +  imports LESSON-06-C-SYNTAX
      +  imports BOOL
      +
      +  rule ! B => notBool B
      +  rule A && B => A andBool B
      +  rule A ^ B => A xorBool B
      +  rule A || B => A orBool B
      +endmodule
      +

      Note the encapsulation of syntax: the LESSON-06-C-SYNTAX module contains
      +exactly the syntax of our Boolean expressions, and no more, whereas any other
      +syntax needed to implement those functions is in the LESSON-06-C module
      +instead.

      +

      Exercise

      + +

      Add an "implies" function to the above Boolean expression calculator, using the
      +-> symbol to represent implication. You can look up K's builtin "implies"
      +function in the BOOL module in domains.md.

      +

      Integers in K

      + +

      Unlike most programming languages, where the most basic integer type is a
      +fixed-precision integer type, the most commonly used integer sort in K is
      +the Int sort, which represents the mathematical integers, ie,
      +arbitrary-precision integers.

      +

      K provides three main modules for import when using the Int sort. The first,
      +containing all the syntax of integers as well as all of the functions over
      +integers, is the INT module. The second, which provides just the syntax
      +of integer literals themselves, is the INT-SYNTAX module. However, unlike
      +most builtin sorts in K, K also provides a third module for the Int sort:
      +the UNSIGNED-INT-SYNTAX module. This module provides only the syntax of
      +non-negative integers, i.e., natural numbers. The reasons for this involve
      +lexical ambiguity. Generally speaking, in most programming languages, -1 is
      +not a literal, but instead a literal to which the unary negation operator is
      +applied. K thus provides this module to ease in specifying the syntax of such
      +languages.

      +

      For detailed information about the functions available over the Int sort,
      +refer to domains.md. Note again how we append Int to the end of most of the
      +integer operations to ensure they do not collide with the syntax of other
      +programming languages.

      +

      Exercises

      + +
        +
      1. +

        Extend your solution from Lesson 1.4, Exercise 2 to implement the rules
        +that define the behavior of addition, subtraction, multiplication, and
        +division. Do not worry about the case when the user tries to divide by zero
        +at this time. Use /Int to implement division. Test your new calculator
        +implementation by executing the arithmetic expressions you wrote as part of
        +Lesson 1.3, Exercise 2. Check to make sure each computes the value you expected.

        +
      2. +
      3. +

        Combine the Boolean expression calculator from this lesson with your
        +solution to Exercise 1, and then extend the combined calculator with the <,
        +<=, >, >=, ==, and != expressions. Write some Boolean expressions
        +that combine integer and Boolean operations, and test to ensure that these
        +expressions return the expected truth value.

        +
      4. +
      5. +

        Compute the following expressions using your solution from Exercise 2:
        +7 / 3, 7 / -3, -7 / 3, -7 / -3. Then replace the /Int function in
        +your definition with divInt instead, and observe how the value of the above
        +expressions changes. Why does this occur?

        +
      6. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.7: Side Conditions and Rule Priority.

      +

      Lesson 1.7: Side Conditions and Rule Priority

      + +

      The purpose of this lesson is to explain how to write conditional rules in K,
      +and to explain how to control the order in which rules are tried.

      +

      Side Conditions

      + +

      So far, all of the rules we have discussed have been unconditional rules.
      +If the left-hand side of the rule matches the arguments to the function, the
      +rule applies. However, there is another type of rule, a conditional rule.
      +A conditional rule consists of a rule body containing the patterns to
      +match, and a side condition representing a Boolean expression that must
      +evaluate to true in order for the rule to apply.

      +

      Side conditions in K are introduced via the requires keyword immediately
      +following the rule body. For example, here is a rule with a side condition
      +(lesson-07-a.k):

      +
      module LESSON-07-A
      +  imports BOOL
      +  imports INT
      +
      +  syntax Grade ::= "letter-A"
      +                 | "letter-B"
      +                 | "letter-C"
      +                 | "letter-D"
      +                 | "letter-F"
      +                 | gradeFromPercentile(Int) [function]
      +
      +  rule gradeFromPercentile(I) => letter-A requires I >=Int 90
      +endmodule
      +

      In this case, the gradeFromPercentile function takes a single integer
      +argument. The function evaluates to letter-A if the argument passed is
      +greater than 90. Note that the side condition is allowed to refer to variables
      +that appear on the left-hand side of the rule. In the same manner as variables
      +appearing on the right-hand side, variables that appear in the side condition
      +evaluate to the value that was matched on the left-hand side. Then the
      +functions in the side condition are evaluated, which returns a term of sort
      +Bool. If the term is equal to true, then the rule applies. Bear in mind
      +that the side condition is only evaluated at all if the patterns on the
      +left-hand side of the rule match the term being evaluated.

      +

      Exercise

      + +

      Write a rule that evaluates gradeFromPercentile to letter-B if the argument
      +to the function is in the range [80,90). Test that the function correctly
      +evaluates various numbers between 80 and 100.

      +

      owise Rules

      + +

      So far, all the rules we have introduced have had the same priority. What
      +this means is that K does not necessarily enforce an order in which the rules
      +are tried. We have only discussed functions so far in K, so it is not
      +immediately clear why this choice was made, given that a function is not
      +considered well-defined if multiple rules for evaluating it are capable of
      +evaluating the same arguments to different results. However, in future lessons
      +we will discuss other types of rules in K, some of which can be
      +non-deterministic. What this means is that if more than one rule is capable
      +of matching, then K will explore both possible rules in parallel, and consider
      +each of their respective results when executing your program. Don't worry too
      +much about this right now, but just understand that because of the potential
      +later for nondeterminism, we don't enforce a total ordering on the order in
      +which rules are attempted to be applied.

      +

      However, sometimes this is not practical; It can be very convenient to express
      +that a particular rule applies if no other rules for that function are
      +applicable. This can be expressed by adding the owise attribute to a rule.
      +What this means, in practice, is that this rule has lower priority than other
      +rules, and will only be tried to be applied after all the other,
      +higher-priority rules have been tried and they have failed.

      +

      For example, in the above exercise, we had to add a side condition containing
      +two Boolean comparisons to the rule we wrote to handle letter-B grades.
      +However, in practice this meant that we compare the percentile to 90 twice. We
      +can more efficiently and more idiomatically write the letter-B case for the
      +gradeFromPercentile rule using the owise attribute (lesson-07-b.k):

      +
      module LESSON-07-B
      +  imports BOOL
      +  imports INT
      +
      +  syntax Grade ::= "letter-A"
      +                 | "letter-B"
      +                 | "letter-C"
      +                 | "letter-D"
      +                 | "letter-F"
      +                 | gradeFromPercentile(Int) [function]
      +
      +  rule gradeFromPercentile(I) => letter-A requires I >=Int 90
      +  rule gradeFromPercentile(I) => letter-B requires I >=Int 80 [owise]
      +endmodule
      +

      This rule is saying, "if all the other rules do not apply, then the grade is a
      +B if the percentile is greater than or equal to 80." Note here that we use both
      +a side condition and an owise attribute on the same rule. This is not
      +required (as we will see later), but it is allowed. What this means is that the
      +side condition is only tried if the other rules did not apply and the
      +left-hand side of the rule matched. You can even use more complex matching on
      +the left-hand side than simply a variable. More generally, you can also have
      +multiple higher-priority rules, or multiple owise rules. What this means in
      +practice is that all of the non-owise rules are tried first, in any order,
      +followed by all the owise rules, in any order.

      +

      Exercise

      + +

      The grades D and F correspond to the percentile ranges [60, 70) and [0, 60)
      +respectively. Write another implementation of gradeFromPercentile which
      +handles only these cases, and uses the owise attribute to avoid redundant
      +Boolean comparisons. Test that various percentiles in the range [0, 70) are
      +evaluated correctly.

      +

      Rule Priority

      + +

      As it happens, the owise attribute is a specific case of a more general
      +concept we call rule priority. In essence, each rule is assigned an integer
      +priority. Rules are tried in increasing order of priority, starting with a
      +rule with priority zero, and trying each increasing numerical value
      +successively.

      +

      By default, a rule is assigned a priority of 50. If the rule has the owise
      +attribute, it is instead given the priority 200. You can see why this will
      +cause owise rules to be tried after regular rules.

      +

      However, it is also possible to directly assign a numerical priority to a rule
      +via the priority attribute. For example, here is an alternative way
      +we could express the same two rules in the gradeFromPercentile function
      +(lesson-07-c.k):

      +
      module LESSON-07-C
      +  imports BOOL
      +  imports INT
      +
      +  syntax Grade ::= "letter-A"
      +                 | "letter-B"
      +                 | "letter-C"
      +                 | "letter-D"
      +                 | "letter-F"
      +                 | gradeFromPercentile(Int) [function]
      +
      +  rule gradeFromPercentile(I) => letter-A requires I >=Int 90 [priority(50)]
      +  rule gradeFromPercentile(I) => letter-B requires I >=Int 80 [priority(200)]
      +endmodule
      +

      We can, of course, assign a priority equal to any non-negative integer. For
      +example, here is a more complex example that handles the remaining grades
      +(lesson-07-d.k):

      +
      module LESSON-07-D
      +  imports BOOL
      +  imports INT
      +
      +  syntax Grade ::= "letter-A"
      +                 | "letter-B"
      +                 | "letter-C"
      +                 | "letter-D"
      +                 | "letter-F"
      +                 | gradeFromPercentile(Int) [function]
      +
      +  rule gradeFromPercentile(I) => letter-A requires I >=Int 90 [priority(50)]
      +  rule gradeFromPercentile(I) => letter-B requires I >=Int 80 [priority(51)]
      +  rule gradeFromPercentile(I) => letter-C requires I >=Int 70 [priority(52)]
      +  rule gradeFromPercentile(I) => letter-D requires I >=Int 60 [priority(53)]
      +  rule gradeFromPercentile(_) => letter-F                     [priority(54)]
      +endmodule
      +

      Note that we have introduced a new piece of syntax here: _. This is actually
      +just a variable. However, as a special case, when a variable is named _, it
      +does not bind a value that can be used on the right-hand side of the rule, or
      +in a side condition. Effectively, _ is a placeholder variable that means "I
      +don't care about this term."

      +

      In this example, we have explicitly expressed the order in which the rules of
      +this function are tried. Since rules are tried in increasing numerical
      +priority, we first try the rule with priority 50, then 51, then 52, 53, and
      +finally 54.

      +

      As a final note, remember that if you assign a rule a priority higher than 200,
      +it will be tried after a rule with the owise attribute, and if you assign
      +a rule a priority less than 50, it will be tried before a rule with no
      +explicit priority.

      +

      Exercises

      + +
        +
      1. +

        Write a function isEven that returns whether an integer is an even number.
        +Use two rules and one side condition. The right-hand side of the rules should
        +be Boolean literals. Refer back to
        +domains.md for the relevant
        +integer operations.

        +
      2. +
      3. +

        Modify the calculator application from Lesson 1.6, Exercise 2, so that division
        +by zero will no longer make krun crash with a "Divison by zero" exception.
        +Instead, the / function should not match any of its rules if the denominator
        +is zero.

        +
      4. +
      5. +

        Write your own implementation of ==, <, <=, >, >= for integers and modify your solution from Exercise 2 to use it.
        +You can use any arithmetic operations in the INT module, but do not use any built-in boolean functions for comparing integers.

        +

        Hint: Use pattern matching and recursive definitions with rule priorities.

        +
      6. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.8: Literate Programming with Markdown.

      +

      Lesson 1.8: Literate Programming with Markdown

      + +

      The purpose of this lesson is to teach a paradigm for performing literate
      +programming in K, and explain how this can be used to create K definitions
      +that are also documentation.

      +

      Markdown and K

      + +

      The K tutorial so far has been written in
      +Markdown. Markdown,
      +for those not already familiar, is a lightweight plain-text format for styling
      +text. From this point onward, we assume you are familiar with Markdown and how
      +to write Markdown code. You can refer to the above link for a tutorial if you
      +are not already familiar.

      +

      What you may not necessarily realize, however, is that the K tutorial is also
      +a sequence of K definitions written in the manner of
      +Literate Programming.
      +For detailed information about Literate Programming, you can read the linked
      +Wikipedia article, but the short summary is that literate programming is a way
      +of intertwining documentation and code together in a manner that allows
      +executable code to also be, simultaneously, a documented description of that
      +code.

      +

      K is provided with built-in support for literate programming using Markdown.
      +By default, if you pass a file with the .md file extension to kompile, it
      +will look for any code blocks containing k code in that file, extract out
      +that K code into pure K, and then compile it as if it were a .k file.

      +

      A K code block begins with a line of text containing the keyword ```k,
      +and ends when it encounters another ``` keyword.

      +

      For example, if you view the markdown source of this document, this is a K
      +code block:

      +
      module LESSON-08
      +  imports INT
      +

      Only the code inside K code blocks will actually be sent to the compiler. The
      +rest, while it may appear in the document when rendered by a markdown viewer,
      +is essentially a form of code comment.

      +

      When you have multiple K code blocks in a document, K will append each one
      +together into a single file before passing it off to the outer parser.

      +

      For example, the following code block contains sentences that are part of the
      +LESSON-08 module that we declared the beginning of above:

      +
        syntax Int ::= Int "+" Int [function]
      +  rule I1 + I2 => I1 +Int I2
      +

      Exercise

      + +

      Compile this file with kompile README.md --main-module LESSON-08. Confirm
      +that you can use the resulting compiled definition to evaluate the +
      +function.

      +

      Markdown Selectors

      + +

      On occasion, you may want to generate multiple K definitions from a single
      +Markdown file. You may also wish to include a block of syntax-highlighted K
      +code that nonetheless does not appear as part of your K definition. It is
      +possible to accomplish this by means of the built-in support for syntax
      +highlighting in Markdown. Markdown allows a code block that was begun with
      +``` to be immediately followed by a string which is used to signify what
      +programming language the following code is written in. However, this feature
      +actually allows arbitrary text to appear describing that code block. Markdown
      +parsers are able to parse this text and render the code block differently
      +depending on what text appears after the backticks.

      +

      In K, you can use this functionality to specify one or more
      +Markdown selectors which are used to describe the code block. A Markdown
      +selector consists of a sequence of characters containing letters, numbers, and
      +underscores. A code block can be designated with a single selector by appending
      +the selector immediately following the backticks that open the code block.

      +

      For example, here is a code block with the foo selector:

      +
      foo bar
      +

      Note that this is not K code. By convention, K code should have the k
      +selector on it. You can express multiple selectors on a code block by putting
      +them between curly braces and prepending each with the . character. For
      +example, here is a code block with the foo and k selectors:

      +
        syntax Int ::= foo(Int) [function]
      +  rule foo(0) => 0
      +

      Because this code block contains the k Markdown selector, by default it is
      +included as part of the K definition being compiled.

      +

      Exercise

      + +

      Confirm this fact by using krun to evaluate foo(0).

      +

      Markdown Selector Expressions

      + +

      By default, as previously stated, K includes in the definition any code block
      +with the k selector. However, this is merely a specific instance of a general
      +principle, namely, that K allows you to control which selectors get included
      +in your K definition. This is done by means of the --md-selector flag to
      +kompile. This flag accepts a Markdown selector expression, which you
      +can essentially think of as a kind of Boolean algebra over Markdown selectors.
      +Each selector becomes an atom, and you can combine these atoms via the &,
      +|, !, and () operators.

      +

      Here is a grammar, written in K, of the language of Markdown selector
      +expressions:

      +
        syntax Selector ::= r"[0-9a-zA-Z_]+" [token]
      +  syntax SelectorExp ::= Selector
      +                       | "(" SelectorExp ")" [bracket]
      +                       > right:
      +                         "!" SelectorExp
      +                       > right:
      +                         SelectorExp "&" SelectorExp
      +                       > right:
      +                         SelectorExp "|" SelectorExp
      +

      Here is a selector expression that selects all the K code blocks in this
      +definition except the one immediately above:

      +
      k & (! selector)
      +

      Addendum

      + +

      This code block exists in order to make the above lesson a syntactically valid
      +K definition. Consider why it is necessary.

      +
      endmodule
      +

      Exercises

      + +
        +
      1. +

        Compile this lesson with the selector expression k & (! foo) and confirm
        +that you get a parser error if you try to evaluate the foo function with the
        +resulting definition.

        +
      2. +
      3. +

        Compile Lesson 1.3
        +as a K definition. Identify why it fails to compile. Then pass an appropriate
        +--md-selector to the compiler in order to make it compile.

        +
      4. +
      5. +

        Modify your calculator application from Lesson 1.7, Exercise 2, to be written
        +in a literate style. Consider what text might be appropriate to turn the
        +resulting markdown file into documentation for your calculator.

        +
      6. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.9: Unparsing and the format and color attributes.

      +

      Lesson 1.9: Unparsing and the format and color attributes

      + +

      The purpose of this lesson is to teach the user about how terms are
      +pretty-printed in K, and how the user can make adjustments to the default
      +settings for how to print specific terms.

      +

      Parsing, Execution, and Unparsing

      + +

      When you use krun to interpret a program, the tool passes through three major
      +phases. In the first, parsing, the program itself is parsed using either kast
      +or an ahead-of-time parser generated via Bison, and the resulting AST becomes
      +the input to the interpreter. In the second phase, execution, K evaluates
      +functions and (as we will discuss in depth later) performs rewrite steps to
      +iteratively transform the program state. The third and final phase is called
      +unparsing, because it consists of taking the final state of the application
      +after the program has been interpreted, and converting it from an AST back into
      +text that (in theory, anyway) could be parsed back into the same AST that was
      +the output of the execution phase.

      +

      In practice, parsing is not always precisely reversible. It turns out
      +(although we are not going to cover exactly why this is here), that
      +constructing a sound algorithm that takes a grammar and an AST and emits text
      +that could be parsed via that grammar to the original AST is an
      +NP-hard problem. As a result, in the interests of avoiding exponential time
      +algorithms when users rarely care about unparsing being completely sound, we
      +take certain shortcuts that provide a linear-time algorithm that approximates
      +a sound solution to the problem while sacrificing the notion that the result
      +can be parsed into the exact original term in all cases.

      +

      This is a lot of theoretical explanation, but at root, the unparsing process
      +is fairly simple: it takes a K term that is the output of execution and pretty
      +prints it according to the syntax defined by the user in their K definition.
      +This is useful because the original AST is not terribly user-readable, and it
      +is difficult to visualize the entire term or decipher information about the
      +final state of the program at a quick glance. Of course, in rare cases, the
      +pretty-printed configuration loses information of relevance, which is why K
      +allows you to obtain the original AST on request.

      +

      As an example of all of this, consider the following K definition
      +(lesson-09-a.k):

      +
      module LESSON-09-A
      +  imports BOOL
      +
      +  syntax Exp ::= "(" Exp ")" [bracket]
      +               | Bool
      +               > "!" Exp
      +               > left:
      +                 Exp "&&" Exp
      +               | Exp "^" Exp
      +               | Exp "||" Exp
      +
      +  syntax Exp ::= id(Exp) [function]
      +  rule id(E) => E
      +endmodule
      +

      This is similar to the grammar we defined in LESSON-06-C, with the difference
      +that the Boolean expressions are now constructors of sort Exp and we define a
      +trivial function over expressions that returns its argument unchanged.

      +

      We can now parse a simple program in this definition and use it to unparse some
      +Boolean expressions. For example (exp.bool):

      +
      id(true&&false&&!true^(false||true))
      +

      Here is a program that is not particularly legible at first glance, because all
      +extraneous whitespace has been removed. However, if we run krun exp.bool, we
      +see that the result of the unparser will pretty-print this expression rather
      +nicely:

      +
      <k>
      +  true && false && ! true ^ ( false || true ) ~> .
      +</k>
      +

      Notably, not only does K insert whitespace where appropriate, it is also smart
      +enough to insert parentheses where necessary in order to ensure the correct
      +parse. For example, without those parentheses, the expression above would parse
      +equivalent to the following one:

      +
      (((true && false) && ! true) ^ false) || true
      +

      Indeed, you can confirm this by passing that exact expression to the id
      +function and evaluating it, then looking at the result of the unparser:

      +
      <k>
      +  true && false && ! true ^ false || true ~> .
      +</k>
      +

      Here, because the meaning of the AST is the same both with and without
      +parentheses, K does not insert any parentheses when unparsing.

      +

      Exercise

      + +

      Modify the grammar of LESSON-09-A above so that the binary operators are
      +right associative. Try unparsing exp.bool again, and note how the result is
      +different. Explain the reason for the difference.

      +

      Custom unparsing of terms

      + +

      You may have noticed that right now, the unparsing of terms is not terribly
      +imaginative. All it is doing is taking each child of the term, inserting it
      +into the non-terminal positions of the production, then printing the production
      +with a space between each terminal or non-terminal. It is easy to see why this
      +might not be desirable in some cases. Consider the following K definition
      +(lesson-09-b.k):

      +
      module LESSON-09-B
      +  imports BOOL
      +
      +  syntax Stmt ::= "{" Stmt "}" | "{" "}"
      +                > right:
      +                  Stmt Stmt
      +                | "if" "(" Bool ")" Stmt
      +                | "if" "(" Bool ")" Stmt "else" Stmt [avoid]
      +endmodule
      +

      This is a statement grammar, simplified to the point of meaninglessness, but
      +still useful as an object lesson in unparsing. Consider the following program
      +in this grammar (if.stmt):

      +
      if (true) {
      +  if (true) {}
      +  if (false) {}
      +  if (true) {
      +    if (false) {} else {}
      +  } else {
      +    if (false) {}
      +  }
      +}
      +

      This is how that term would be unparsed if it appeared in the output of krun:

      +
      if ( true ) { if ( true ) { } if ( false ) { } if ( true ) { if ( false ) { } else { } } else { if ( false ) { } } }
      +

      This is clearly much less legible than we started with! What are we to do?
      +Well, K provides an attribute, format, that can be applied to any production,
      +which controls how that production gets unparsed. You've seen how it gets
      +unparsed by default, but via this attribute, the developer has complete control
      +over how the term is printed. Of course, the user can trivially create ways to
      +print terms that would not parse back into the same term. Sometimes this is
      +even desirable. But in most cases, what you are interested in is controlling
      +the line breaking, indentation, and spacing of the production.

      +

      Here is an example of how you might choose to apply the format attribute
      +to improve how the above term is unparsed (lesson-09-c.k):

      +
      module LESSON-09-C
      +  imports BOOL
      +
      +  syntax Stmt ::= "{" Stmt "}" [format(%1%i%n%2%d%n%3)] | "{" "}" [format(%1%2)]
      +                > right:
      +                  Stmt Stmt [format(%1%n%2)]
      +                | "if" "(" Bool ")" Stmt [format(%1 %2%3%4 %5)]
      +                | "if" "(" Bool ")" Stmt "else" Stmt [avoid, format(%1 %2%3%4 %5 %6 %7)]
      +endmodule
      +

      If we compile this new definition and unparse the same term, this is the
      +result we get:

      +
      if (true) {
      +  if (true) {}
      +  if (false) {}
      +  if (true) {
      +    if (false) {} else {}
      +  } else {
      +    if (false) {}
      +  }
      +}
      +

      This is the exact same text we started with! By adding the format attributes,
      +we were able to indent the body of code blocks, adjust the spacing of if
      +statements, and put each statement on a new line.

      +

      How exactly was this achieved? Well, each time the unparser reaches a term,
      +it looks at the format attribute of that term. That format attribute is a
      +mix of characters and format codes. Format codes begin with the %
      +character. Each character in the format attribute other than a format code is
      +appended verbatim to the output, and each format code is handled according to
      +its meaning, transformed (possibly recursively) into a string of text, and
      +spliced into the output at the position the format code appears in the format
      +string.

      +

      Provided for reference is a table with a complete list of all valid format
      +codes, followed by their meaning:

      + + + + + + + + + +
      Format Code Meaning
      n Insert '\n' followed by the current indentation + level
      i Increase the current indentation level by 1
      d Decrease the current indentation level by 1
      c Move to the next color in the list of colors for + this production (see next section)
      r Reset color to the default foreground color for + the terminal (see next section)
      an integer Print a terminal or non-terminal from the + production. The integer is treated as a 1-based + index into the terminals and non-terminals of + the production. +
      +
      If the offset refers to a terminal, move to the + next color in the list of colors for this + production, print the value of that terminal, + then reset the color to the default foreground + color for the terminal. +
      +
      If the offset refers to a regular expression + terminal, it is an error. +
      +
      If the offset refers to a non-terminal, unparse + the corresponding child of the current term + (starting with the current indentation level) + and print the resulting text, then set the + current color and indentation level to the color + and indentation level following unparsing that + term.
      other char Print that character verbatim
      +

      Exercise

      + +

      Change the format attributes for LESSON-09-C so that if.stmt will unparse
      +as follows:

      +
      if (true)
      +{
      +  if (true)
      +  {
      +  }
      +  if (false)
      +  {
      +  }
      +  if (true)
      +  {
      +    if (false)
      +    {
      +    }
      +    else
      +    {
      +    }
      +  }
      +  else
      +  {
      +    if (false)
      +    {
      +    }
      +  }
      +}
      +

      Output coloring

      + +

      When the output of unparsing is displayed on a terminal supporting colors, K
      +is capable of coloring the output, similar to what is possible with a syntax
      +highlighter. This is achieved via the color and colors attributes.

      +

      Essentially, both the color and colors attributes are used to construct a
      +list of colors associated with each production, and then the format attribute
      +is used to control how those colors are used to unparse the term. At its most
      +basic level, you can set the color attribute to color all the terminals in
      +the production a certain color, or you can use the colors attribute to
      +specify a comma-separated list of colors for each terminal in the production.
      +At a more advanced level, the %c and %r format codes control how the
      +formatter interacts with the list of colors specified by the colors
      +attribute. You can essentially think of the color attribute as a way of
      +specifying that you want all the colors in the list to be the same color.

      +

      Note that the %c and %r format codes are relatively primitive in nature.
      +The color and colors attributes merely maintain a list of colors, whereas
      +the %c and %r format codes merely control how to advance through that list
      +and how individual text is colored.

      +

      It is an error if the colors attribute does not provide all the colors needed
      +by the terminals and escape codes in the production. %r does not change the
      +position in the list of colors at all, so the next %c will advance to the
      +following color.

      +

      As a complete example, here is a variant of LESSON-09-A which colors the
      +various boolean operators:

      +
      module LESSON-09-D
      +  imports BOOL
      +
      +  syntax Exp ::= "(" Exp ")" [bracket]
      +               | Bool
      +               > "!" Exp [color(yellow)]
      +               > left:
      +                 Exp "&&" Exp [color(red)]
      +               | Exp "^" Exp [color(blue)]
      +               | Exp "||" Exp [color(green)]
      +
      +  syntax Exp ::= id(Exp) [function]
      +  rule id(E) => E
      +endmodule
      +

      For a complete list of allowed colors, see
      +here.

      +

      Exercises

      + +
        +
      1. +

        Use the color attribute on LESSON-09-C to color the keywords true and
        +false one color, the keywords if and else another color, and the operators
        +(, ), {, and } a third color.

        +
      2. +
      3. +

        Use the format, color, and colors attributes to tell the unparser to
        +style the expression grammar from Lesson 1.8, Exercise 3 according to your own
        +personal preferences for syntax highlighting and code formatting. You can
        +view the result of the unparser on a function term without evaluating that
        +function by means of the command kparse <file> | kore-print -.

        +
      4. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.10: Strings.

      +

      Lesson 1.10: Strings

      + +

      The purpose of this lesson is to explain how to use the String sort in K to
      +represent sequences of characters, and explain where to find additional
      +information about builtin functions over strings.

      +

      The String Sort

      + +

      In addition to the Int and Bool sorts covered in
      +Lesson 1.6, K provides, among others, the
      +String sort to represent sequences of characters. You can import this
      +functionality via the STRING-SYNTAX module, which contains the syntax of
      +string literals in K, and the STRING module, which contains all the functions
      +that operate over the String type.

      +

      Strings in K are double-quoted. The following list of escape sequences is
      +supported:

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Escape SequenceMeaning
      \"The literal character "
      \\The literal character \
      \nThe newline character (ASCII code 0x0a)
      \rThe carriage return character (ASCII code 0x0d)
      \tThe tab character (ASCII code 0x09)
      \fThe form feed character (ASCII code 0x0c)
      \x00\x followed by 2 hexadecimal digits indicates a code point between 0x00 and 0xFF
      \u0000\u followed by 4 hexadecimal digits indicates a code point between 0x0000 and 0xFFFF
      \U00000000\U followed by 8 hexadecimal digits indicates a code point between 0x000000 and 0x10FFFF
      +

      Please note that as of the current moment, K's unicode support is not fully
      +complete, so you may run into errors using code points greater than 0xff.

      +

      As an example, you can construct a string literal containing the following
      +block of text:

      +
      This is an example block of text.
      +Here is a quotation: "Hello world."
      +	This line is indented.
      +ÁÉÍÓÚ
      +

      Like so:

      +
      "This is an example block of text.\nHere is a quotation: \"Hello world.\"\n\tThis line is indented.\n\xc1\xc9\xcd\xd3\xda\n"
      +

      Basic String Functions

      + +

      The full list of functions provided for the String sort can be found in
      +domains.md, but here we
      +describe a few of the more basic ones.

      +

      String concatenation

      + +

      The concatenation operator for strings is +String. For example, consider
      +the following K rule that constructs a string from component parts
      +(lesson-10.k):

      +
      module LESSON-10
      +  imports STRING
      +
      +  syntax String ::= msg(String) [function]
      +  rule msg(S) => "The string you provided: " +String S +String "\nHave a nice day!"
      +endmodule
      +

      Note that this operator is O(N), so repeated concatenations are inefficient.
      +For information about efficient string concatenation, refer to
      +Lesson 2.14.

      +

      String length

      + +

      The function to return the length of a string is lengthString. For example,
      +lengthString("foo") will return 3, and lengthString("") will return 0.
      +The return value is the length of the string in code points.

      +

      Substring computation

      + +

      The function to compute the substring of a string is substrString. It
      +takes two string indices, starting from 0, and returns the substring within the
      +range [start..end). It is only defined if end >= start, start >= 0, and
      +end <= length of string. Here, for example, we return the first 5 characters
      +of a string:

      +
      substrString(S, 0, 5)
      +

      Here we return all but the first 3 characters:

      +
      substrString(S, 3, lengthString(S))
      +

      Exercises

      + +
        +
      1. Write a function that takes a paragraph of text (i.e., a sequence of
        +sentences, each ending in a period), and constructs a new (nonsense) sentence
        +composed of the first word of each sentence, followed by a period. Do not
        +worry about capitalization or periods within the sentence which do not end the
        +sentence (e.g. "Dr."). You can assume that all whitespace within the paragraph
        +are spaces. For more information about the functions over strings required to
        +implement such a function, refer to domains.md.
      2. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.11: Casting Terms.

      +

      Lesson 1.11: Casting Terms

      + +

      The purpose of this lesson is to explain how to use cast expressions in
      +order to disambiguate terms using sort information. We also explain how the
      +variable sort inference algorithm works in K, and how to change the default
      +behavior by casting variables to a particular sort.

      +

      Casting in K

      + +

      Sometimes the grammar you write for your rules in K can be a little bit
      +ambiguous on purpose. While grammars for programming languages may be
      +unambiguous when considered in their entirety, K allows you to write rules
      +involving arbitrary fragments of that grammar, and those fragments can
      +sometimes be ambiguous by themselves, or similar enough to other fragments
      +of the grammar to trigger ambiguity. As a result, in addition to the tools
      +covered in Lesson 1.4, K provides one
      +additional powerful tool for disambiguation: cast expressions.

      +

      K provides three main types of casts: the semantic cast, the strict cast, and
      +the projection cast. We will cover each of them, and their similarities and
      +differences, in turn.

      +

      Semantic casts

      + +

      The most basic, and most common, type of cast in K is called the
      +semantic cast. For every sort S declared in a module, K provides the
      +following (implicit) production for use in sentences:

      +
        syntax S ::= S ":S"
      +

      Note that S simply represents the name of the sort. For example, if we
      +defined a sort Exp, the actual production for that sort would be:

      +
        syntax Exp ::= Exp ":Exp"
      +

      At runtime, this expression will not actually exist; it is merely an annotation
      +to the compiler describing the sort of the term inside the cast. It is telling
      +the compiler that the term inside the cast must be of sort Exp. For example,
      +if we had the following grammar:

      +
      module LESSON-11-A
      +  imports INT
      +
      +  syntax Exp ::= Int | Exp "+" Exp
      +  syntax Stmt ::= "if" "(" Exp ")" Stmt | "{" "}"
      +endmodule
      +

      Then we would be able to write 1:Exp, or (1 + 2):Exp, but not {}:Exp.

      +

      You can also restrict the sort that a variable in a rule will match by casting
      +it. For example, consider the following additional module:

      +
      module LESSON-11-B
      +  imports LESSON-11-A
      +  imports BOOL
      +
      +  syntax Term ::= Exp | Stmt
      +  syntax Bool ::= isExpression(Term) [function]
      +
      +  rule isExpression(_E:Exp) => true
      +  rule isExpression(_) => false [owise]
      +endmodule
      +

      Here we have defined a very simple function that decides whether a term is
      +an expression or a statement. It does this by casting the variable inside the
      +isExpression rule to sort Exp. As a result, that variable will only match terms
      +of sort Exp. Thus, isExpression(1) will return true, as will isExpression(1 + 2), but
      +isExpression({}) will return false.

      +

      Exercise

      + +

      Verify this fact for yourself by running isExpression on the above examples. Then
      +write an isStatement function, and test that it works as expected.

      +

      Strict casts

      + +

      On occasion, a semantic cast is not strict enough. It might be that you want
      +to, for disambiguation purposes, say exactly what sort a term is. For
      +example, consider the following definition:

      +
      module LESSON-11-C
      +  imports INT
      +
      +  syntax Exp ::= Int | Exp "+" Exp [group(exp)]
      +  syntax Exp2 ::= Exp | Exp2 "+" Exp2 [group(exp2)]
      +endmodule
      +

      This grammar is a little ambiguous and contrived, but it serves to demonstrate
      +how a semantic cast might be insufficient to disambiguate a term. If we were
      +to write the term (I1:Int + I2:Int):Exp2, the term would be ambiguous,
      +because the cast is not sufficiently strict to determine whether you mean
      +to derive the "+" production in the group exp or the one in the group exp2.

      +

      In this situation, there is a solution: the strict cast. For every sort
      +S in your grammar, K also defines the following production:

      +
        syntax S ::= S "::S"
      +

      This may at first glance seem the same as the previous cast. And indeed,
      +from the perspective of the grammar and from the perspective of rewriting,
      +they are in fact identical. However, the second variant has a unique meaning
      +in the type system of K: namely, the term inside the cast cannot be a
      +subsort, i.e., a term of another sort S2 such that the production
      +syntax S ::= S2 exists.

      +

      As a result, if we were to write in the above grammar the term
      +(I1:Int + I2:Int)::Exp2, then we would know that the second derivation above
      +should be chosen, whereas if we want the first derivation, we could write
      +(I1:Int + I2:Int)::Exp.

      +

      Projection casts

      + +

      Thus far we have focused entirely on casts which exist solely to inform the
      +compiler about the sort of terms. However, sometimes when dealing with grammars
      +containing subsorts, it can be desirable to reason with the subsort production
      +itself, which injects one sort into another. Remember from above that such
      +a production looks like syntax S ::= S2. This type of production, called a
      +subsort production, can be thought of as a type of inheritance involving
      +constructors. If we have the above production in our grammar, we say that S2
      +is a subsort of S, or that any S2 is also an S. K implicitly maintains a
      +symbol at runtime which keeps track of where such subsortings occur; this
      +symbol is called an injection.

      +

      Sometimes, when one sort is a subsort of another, it can be the case that
      +a function returns one sort, but you actually want to cast the result of
      +calling that function to another sort which is a subsort of the first sort.
      +This is similar to what happens with inheritance in an object-oriented
      +language, where you might cast a superclass to a subclass if you know for
      +sure the object at runtime is in fact an instance of that class.

      +

      K provides something similar for subsorts: the projection cast.

      +

      For each pair of sorts S and S2, K provides the following production:

      +
        syntax S ::= "{" S2 "}" ":>S"
      +

      What this means is that you take any term of sort S2 and cast it to sort
      +S. If the term of sort S2 consists of an injection containing a term of sort
      +S, then this will return that term. Otherwise, an error occurs and rewriting
      +fails, returning the projection function which failed to apply. The sort is
      +not actually checked at compilation time; rather, it is a runtime check
      +inserted into the code that runs when the rule applies.

      +

      For example, here is a module that makes use of projection casts:

      +
      module LESSON-11-D
      +  imports INT
      +  imports BOOL
      +
      +  syntax Exp ::= Int | Bool | Exp "+" Exp | Exp "&&" Exp
      +
      +  syntax Exp ::= eval(Exp) [function]
      +  rule eval(I:Int) => I
      +  rule eval(B:Bool) => B
      +  rule eval(E1 + E2) => {eval(E1)}:>Int +Int {eval(E2)}:>Int
      +  rule eval(E1 && E2) => {eval(E1)}:>Bool andBool {eval(E2)}:>Bool
      +endmodule
      +

      Here we have defined constructors for a simple expression language over
      +Booleans and integers, as well as a function eval that evaluates these
      +expressions to a value. Because that value could be an integer or a Boolean,
      +we need the casts in the last two rules in order to meet the type signature of
      ++Int and andBool. Of course, the user can write ill-formed expressions like
      +1 && true or false + true, but these will cause errors at runtime, because
      +the projection cast will fail.

      +

      Exercises

      + +
        +
      1. +

        Extend the eval function in LESSON-11-D to include Strings and add a .
        +operator which concatenates them.

        +
      2. +
      3. +

        Modify your solution from Lesson 1.9, Exercise 2 by using an Exp sort to
        +express the integer and Boolean expressions that it supports, in the same style
        +as LESSON-11-D. Then write an eval function that evaluates all terms of
        +sort Exp to either a Bool or an Int.

        +
      4. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.12: Syntactic Lists.

      +

      Lesson 1.12: Syntactic Lists

      + +

      The purpose of this lesson is to explain how K provides support for syntactic
      +repetition through the use of the List{} and NeList{} constructs,
      +generally called syntactic lists.

      +

      The List{} construct

      + +

      Sometimes, when defining a grammar in K, it is useful to define a syntactic
      +construct consisting of an arbitrary-length sequence of items. For example,
      +you might wish to define a function call construct, and need to express a way
      +of passing arguments to the function. You can in theory simply define these
      +productions using ordinary constructors, but it can be tricky to get the syntax
      +exactly right in K without a lot of tedious glue code.

      +

      For this reason, K provides a way of specifying that a non-terminal represents
      +a syntactic list (lesson-12-a.k):

      +
      module LESSON-12-A-SYNTAX
      +  imports INT-SYNTAX
      +
      +  syntax Ints ::= List{Int,","}
      +endmodule
      +
      +module LESSON-12-A
      +  imports LESSON-12-A-SYNTAX
      +endmodule
      +

      Note that instead of a sequence of terminals and non-terminals, the right hand
      +side of the Ints production contains the symbol List followed by two items
      +in curly braces. The first item is the non-terminal which is the element type
      +of the list, and the second item is a terminal representing the separator of
      +the list. As a special case, lists which are separated only by whitespace can
      +be specified with a separator of "".

      +

      This List{} construct is roughly equivalent to the following definition
      +(lesson-12-b.k):

      +
      module LESSON-12-B-SYNTAX
      +  imports INT-SYNTAX
      +
      +  syntax Ints ::= Int "," Ints | ".Ints"
      +endmodule
      +
      +module LESSON-12-B
      +  imports LESSON-12-B-SYNTAX
      +endmodule
      +

      As you can see, the List{} construct represents a cons-list with an element
      +at the head and another list at the tail. The empty list is represented by
      +a . followed by the sort of the list.

      +

      However, the List{} construct provides several key syntactic conveniences
      +over the above definition. First of all, when writing a list in a rule,
      +explicitly writing the terminator is not always required. For example, consider
      +the following additional module (lesson-12-c.k):

      +
      module LESSON-12-C
      +  imports LESSON-12-A
      +  imports INT
      +
      +  syntax Int ::= sum(Ints) [function]
      +  rule sum(I:Int) => I
      +  rule sum(I1:Int, I2:Int, Is:Ints) => sum(I1 +Int I2, Is)
      +endmodule
      +

      Here we see a function that sums together a non-empty list of integers. Note in
      +particular the first rule. We do not explicitly mention .Ints, but in fact,
      +the rule in question is equivalent to the following rule:

      +
        rule sum(I:Int, .Ints) => I
      +

      The reason for this is that K will automatically insert a list terminator
      +anywhere a syntactic list is expected, but an element of that list appears
      +instead. This works even with lists of more than one element:

      +
        rule sum(I1:Int, I2:Int) => I1 +Int I2
      +

      This rule is redundant, but here we explicitly match a list of exactly two
      +elements, because the .Ints is implicitly added after I2.

      +

      Parsing Syntactic Lists in Programs

      + +

      An additional syntactic convenience takes place when you want to express a
      +syntactic list in the input to krun. In this case, K will automatically
      +transform the grammar in LESSON-12-B-SYNTAX into the following
      +(lesson-12-d.k):

      +
      module LESSON-12-D
      +  imports INT-SYNTAX
      +
      +  syntax Ints ::= #NonEmptyInts | #IntsTerminator
      +  syntax #NonEmptyInts ::= Int "," #NonEmptyInts
      +                         | Int #IntsTerminator
      +  syntax #IntsTerminator ::= ""
      +endmodule
      +

      This allows you to express the usual comma-separated list of arguments where
      +an empty list is represented by the empty string, and you don't have to
      +explicitly terminate the list. Because of this, we can write the syntax
      +of function calls in C very easily (lesson-12-e.k):

      +
      module LESSON-12-E
      +  syntax Id ::= r"[a-zA-Z_][a-zA-Z0-9_]*" [token]
      +  syntax Exp ::= Id | Exp "(" Exps ")"
      +  syntax Exps ::= List{Exp,","}
      +endmodule
      +

      Exercise

      + +

      Write a function concat which takes a list of String and concatenates them
      +all together. Do not worry if the function is O(n^2).
      +Test your implementation using the syntactic sugar for lists added by the parser.

      +

      Then write some function call expressions using identifiers in C and verify with
      +kast that the above grammar captures the intended syntax. Make sure to test
      +with function calls with zero, one, and two or more arguments.

      +

      The NeList{} construct

      + +

      One limitation of the List{} construct is that it is always possible to
      +write a list of zero elements where a List{} is expected. While this is
      +desirable in a number of cases, it is sometimes not what the grammar expects.

      +

      For example, in C, it is not allowable for an enum definition to have zero
      +members. In other words, if we were to write the grammar for enumerations like
      +so (lesson-12-f.k):

      +
      module LESSON-12-F
      +  syntax Id ::= r"[a-zA-Z_][a-zA-Z0-9_]*" [token]
      +  syntax Exp ::= Id
      +
      +  syntax EnumSpecifier ::= "enum" Id "{" Ids "}"
      +  syntax Ids ::= List{Id,","}
      +endmodule
      +

      Then we would be syntactically allowed to write enum X {}, which instead,
      +ought to be a syntax error.

      +

      For this reason, we introduce the additional NeList{} construct. The syntax
      +is identical to List{}, except with NeList instead of List before the
      +curly braces. When parsing rules, it behaves identically to the List{}
      +construct. However, when parsing inputs to krun, the above grammar, if we
      +replaced syntax Ids ::= List{Id,","} with syntax Ids ::= NeList{Id,","},
      +would become equivalent to the following (lesson-12-g.k):

      +
      module LESSON-12-G
      +  syntax Id ::= r"[a-zA-Z_][a-zA-Z0-9_]*" [token]
      +  syntax Exp ::= Id
      +
      +  syntax EnumSpecifier ::= "enum" Id "{" Ids "}"
      +  syntax Ids ::= Id | Id "," Ids
      +endmodule
      +

      In other words, only non-empty lists of Id would be allowed.

      +

      Exercises

      + +
        +
      1. +

        Modify the sum function in LESSON-12-C so that the Ints sort is an
        +NeList{}. Verify that calling sum() with no arguments is now a syntax
        +error.

        +
      2. +
      3. +

        Write a modified sum function with the List construct that can also sum
        +up an empty list of arguments. In such a case, the sum ought to be 0.

        +
      4. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.13: Basics of K Rewriting.

      +

      Lesson 1.13: Basics of K Rewriting

      + +

      The purpose of this lesson is to explain how rewrite rules that are not the
      +definition of a function behave, and how, using these rules, you can construct
      +a semantics of programs in a programming language in K.

      +

      Recap: Function rules in K

      + +

      Recall from Lesson 1.2 that we have, thus far,
      +introduced two types of productions in K: constructors and functions.
      +A function is identified by the function attribute placed on the
      +production. As you may recall, when we write a rule with a function on the
      +left-hand side of the => operator, we are defining the meaning of that
      +function for inputs which match the patterns on the left-hand side of the rule.
      +If the argument to the function match the patterns, then the function is
      +evaluated to the value constructed by substituting the bindings for the
      +variables into the right-hand side of the rule.

      +

      Top-level rules

      + +

      However, function rules are not the only type of rule permissible in K, nor
      +even the most frequently used. K also has a concept of a
      +top-level rewrite rule. The simplest way to ensure that a rule is treated
      +as a top-level rule is for the left-hand side of the rule to mention one or
      +more cells. We will cover how cells work and are declared in more detail
      +in a later lesson, but for now, what you should know is that when we ran krun
      +in our very first example in Lesson 1.2 and got the following output:

      +
      <k>
      +  Yellow ( ) ~> .
      +</k>
      +

      <k> is a cell, known by convention as the K cell. This cell is available
      +by default in any definition without needing to be explicitly declared.

      +

      The K cell contains a single term of sort K. K is a predefined sort in K
      +with two constructors, that can be roughly represented by the following
      +grammar:

      +
        syntax K ::= KItem "~>" K
      +             | "."
      +

      As a syntactic convenience, K allows you to treat ~> like it is an
      +associative list (i.e., as if it were defined as syntax K ::= K "~>" K).
      +When a definition is compiled, it will automatically transform the rules you
      +write so that they treat the K sort as a cons-list. Another syntactic
      +convenience is that, for disambiguation purposes, you can write .K anywhere
      +you would otherwise write . and the meaning is identical.

      +

      Now, you may notice that the above grammar mentions the sort KItem. This is
      +another built-in sort in K. For every sort S declared in a definition (with
      +the exception of K and KItem), K will implicitly insert the following
      +production:

      +
        syntax KItem ::= S
      +

      In other words, every sort is a subsort of the sort KItem, and thus a term
      +of any sort can be injected as an element of a term of sort K, also called
      +a K sequence.

      +

      By default, when you krun a program, the AST of the program is inserted as
      +the sole element of a K sequence into the <k> cell. This explains why we
      +saw the output we did in Lesson 1.2.

      +

      With these preliminaries in mind, we can now explain how top-level rewrite
      +rules work in K. Put simply, any rule where there is a cell (such as the K
      +cell) at the top on the left-hand side will be a top-level rewrite rule. Once
      +the initial program has been inserted into the K cell, the resulting term,
      +called the configuration, will be matched against all the top-level
      +rewrite rules in the definition. If only one rule matches, the substitution
      +generated by the matching will be applied to the right-hand side of the rule
      +and the resulting term is rewritten to be the new configuration. Rewriting
      +proceeds by iteratively applying rules, also called taking steps, until
      +no top-level rewrite rule can be applied. At this point the configuration
      +becomes the final configuration and is output by krun.

      +

      If more than one top-level rule applies, by default, K will pick just one
      +of those rules, apply it, and continue rewriting. However, it is
      +non-deterministic which rule applies. In theory, it could be any of them.
      +By passing the --search flag to krun, you are able to tell krun to
      +explore all possible non-deterministic choices, and generate a complete list of
      +all possible final configurations reachable by each nondeterminstic choice that
      +can be made. Note that the --search flag to krun only works if you pass
      +--enable-search to kompile first.

      +

      Unlike top-level rewrite rules, function rules are not associated with any
      +particular set of cells in the configuration (although they can contain cells
      +in their function arguments and return value). While top-level rewrite rules
      +apply to the entire term being rewritten, function rules apply anywhere a
      +function application for that function appears, and are immediately rewritten
      +to their return value in that position.

      +

      Another key distinction between top-level rules and function rules is that
      +function symbols, i.e., productions with the function attribute, are
      +mathematical functions rather than constructors. While a constructor is
      +logically distinct from any other constructor of the same sort, and can be
      +matched against unconditionally, a function does not necessaraily have the
      +same restriction unless it happens to be an injective function. Thus, two
      +function symbols with different arguments may still ultimately produce the
      +same value and thus compare equal to one another. Due to this, concrete
      +execution (i.e., all K definitions introduced thus far; see Lesson 1.21)
      +introduces the restriction that you cannot match on a function symbol on the
      +left-hand side of a rule, except as the top symbol on the left-hand side of
      +a function rule. This restriction will be later lifted when we introduce the
      +Haskell Backend which performs symbolic execution.

      +

      Exercise

      + +

      Pass a program containing no functions to krun. You can use a term of sort
      +Exp from LESSON-11-D. Observe the output and try to understand why you get
      +the output you do. Then write two rules that rewrite that program to another.
      +Run krun --search on that program and observe both results. Then add a third
      +rule that rewrites one of those results again. Test that that rule applies as
      +well.

      +

      Using top-level rules to evaluate expressions

      + +

      Thus far, we have focused primarily on defining functions over constructors
      +in K. However, now that we have a basic understanding of top-level rules,
      +it is possible to introduce a rewrite system to our definitions. A rewrite
      +system is a collection of top-level rewrite rules which performs an organized
      +transformation of a particular program into a result which expresses the
      +meaning of that program. For example, we might rewrite an expression in a
      +programming language into a value representing the result of evaluating that
      +expression.

      +

      Recall in Lesson 1.11, we wrote a simple grammar of Boolean and integer
      +expressions that looked roughly like this (lesson-13-a.k):

      +
      module LESSON-13-A
      +  imports INT
      +
      +  syntax Exp ::= Int
      +               | Bool
      +               | Exp "+" Exp
      +               | Exp "&&" Exp
      +endmodule
      +

      In that lesson, we defined a function eval which evaluated such expressions
      +to either an integer or Boolean.

      +

      However, it is more idiomatic to evaluate such expressions using top-level
      +rewrite rules. Here is how one might do so in K (lesson-13-b.k):

      +
      module LESSON-13-B-SYNTAX
      +  imports UNSIGNED-INT-SYNTAX
      +  imports BOOL-SYNTAX
      +
      +  syntax Val ::= Int | Bool
      +  syntax Exp ::= Val
      +               > left: Exp "+" Exp
      +               > left: Exp "&&" Exp
      +endmodule
      +
      +module LESSON-13-B
      +  imports LESSON-13-B-SYNTAX
      +  imports INT
      +  imports BOOL
      +
      +  rule <k> I1:Int + I2:Int ~> K:K </k> => <k> I1 +Int I2 ~> K </k>
      +  rule <k> B1:Bool && B2:Bool ~> K:K </k> => <k> B1 andBool B2 ~> K </k>
      +
      +  syntax KItem ::= freezer1(Val) | freezer2(Exp)
      +                 | freezer3(Val) | freezer4(Exp)
      +
      +  rule <k> E1:Val + E2:Exp ~> K:K </k> => <k> E2 ~> freezer1(E1) ~> K </k> [priority(51)]
      +  rule <k> E1:Exp + E2:Exp ~> K:K </k> => <k> E1 ~> freezer2(E2) ~> K </k> [priority(52)]
      +  rule <k> E1:Val && E2:Exp ~> K:K </k> => <k> E2 ~> freezer3(E1) ~> K </k> [priority(51)]
      +  rule <k> E1:Exp && E2:Exp ~> K:K </k> => <k> E1 ~> freezer4(E2) ~> K </k> [priority(52)]
      +
      +  rule <k> E2:Val ~> freezer1(E1) ~> K:K </k> => <k> E1 + E2 ~> K </k>
      +  rule <k> E1:Val ~> freezer2(E2) ~> K:K </k> => <k> E1 + E2 ~> K </k>
      +  rule <k> E2:Val ~> freezer3(E1) ~> K:K </k> => <k> E1 && E2 ~> K </k>
      +  rule <k> E1:Val ~> freezer4(E2) ~> K:K </k> => <k> E1 && E2 ~> K </k>
      +endmodule
      +

      This is of course rather cumbersome currently, but we will soon introduce
      +syntactic convenience which makes writing definitions of this type considerably
      +easier. For now, notice that there are roughly 3 types of rules here: the first
      +matches a K cell in which the first element of the K sequence is an Exp whose
      +arguments are values, and rewrites the first element of the sequence to the
      +result of that expression. The second also matches a K cell with an Exp in
      +the first element of its K sequence, but it matches when one or both arguments
      +of the Exp are not values, and replaces the first element of the K sequence
      +with two new elements: one being an argument to evaluate, and the other being
      +a special constructor called a freezer. Finally, the third matches a K
      +sequence where a Val is first, and a freezer is second, and replaces them
      +with a partially evaluated expression.

      +

      This general pattern is what is known as heating an expression,
      +evaluating its arguments, cooling the arguments into the expression
      +again, and evaluating the expression itself. By repeatedly performing
      +this sequence of actions, we can evaluate an entire AST containing a complex
      +expression down into its resulting value.

      +

      Exercise

      + +

      Write an addition expression with integers. Use krun --depth 1 to see the
      +result of rewriting after applying a single top-level rule. Gradually increase
      +the value of --depth to see successive states. Observe how this combination
      +of rules is eventually able to evaluate the entire expression.

      +

      Simplifying the evaluator: Local rewrites and cell ellipses

      + +

      As you saw above, the definition we wrote is rather cumbersome. Over the
      +remainder of Lessons 1.13 and 1.14, we will greatly simplify it. The first step
      +in doing so is to teach a bit more about the rewrite operator, =>. Thus far,
      +all the rules we have written look like rule LHS => RHS. However, this is not
      +the only way the rewrite operator can be used. It is actually possible to place
      +a constructor or function at the very top of the rule, and place rewrite
      +operators inside that term. While a rewrite operator cannot appear nested
      +inside another rewrite operator, by doing this, we can express that some parts
      +of what we are matching are not changed by the rewrite operator. For
      +example, consider the following rule from above:

      +
        rule <k> I1:Int + I2:Int ~> K:K </k> => <k> I1 +Int I2 ~> K </k>
      +

      We can equivalently write it like following:

      +
        rule <k> (I1:Int + I2:Int => I1 +Int I2) ~> _:K </k>
      +

      When you put a rewrite inside a term like this, in essence, you are telling
      +the rule to only rewrite part of the left-hand side to the right-hand side.
      +In practice, this is implemented by lifting the rewrite operator to the top of
      +the rule by means of duplicating the surrounding context.

      +

      There is a way that the above rule can be simplified further, however. K
      +provides a special syntax for each cell containing a term of sort K, indicating
      +that we want to match only on some prefix of the K sequence. For example, the
      +above rule can be simplified further like so:

      +
        rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k>
      +

      Here we have placed the symbol ... immediately prior to the </k> which ends
      +the cell. What this tells the compiler is to take the contents of the cell,
      +treat it as the prefix of a K sequence, and insert an anonymous variable of
      +sort K at the end. Thus we can think of ... as a way of saying we
      +don't care about the part of the K sequence after the beginning, leaving
      +it unchanged.

      +

      Putting all this together, we can rewrite LESSON-13-B like so
      +(lesson-13-c.k):

      +
      module LESSON-13-C-SYNTAX
      +  imports UNSIGNED-INT-SYNTAX
      +  imports BOOL-SYNTAX
      +
      +  syntax Val ::= Int | Bool
      +  syntax Exp ::= Val
      +               > left: Exp "+" Exp
      +               > left: Exp "&&" Exp
      +endmodule
      +
      +module LESSON-13-C
      +  imports LESSON-13-C-SYNTAX
      +  imports INT
      +  imports BOOL
      +
      +  rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k>
      +  rule <k> B1:Bool && B2:Bool => B1 andBool B2 ...</k>
      +
      +  syntax KItem ::= freezer1(Val) | freezer2(Exp)
      +                 | freezer3(Val) | freezer4(Exp)
      +
      +  rule <k> E1:Val + E2:Exp => E2 ~> freezer1(E1) ...</k> [priority(51)]
      +  rule <k> E1:Exp + E2:Exp => E1 ~> freezer2(E2) ...</k> [priority(52)]
      +  rule <k> E1:Val && E2:Exp => E2 ~> freezer3(E1) ...</k> [priority(51)]
      +  rule <k> E1:Exp && E2:Exp => E1 ~> freezer4(E2) ...</k> [priority(52)]
      +
      +  rule <k> E2:Val ~> freezer1(E1) => E1 + E2 ...</k>
      +  rule <k> E1:Val ~> freezer2(E2) => E1 + E2 ...</k>
      +  rule <k> E2:Val ~> freezer3(E1) => E1 && E2 ...</k>
      +  rule <k> E1:Val ~> freezer4(E2) => E1 && E2 ...</k>
      +endmodule
      +

      This is still rather cumbersome, but it is already greatly simplified. In the
      +next lesson, we will see how additional features of K can be used to specify
      +heating and cooling rules much more compactly.

      +

      Exercises

      + +
        +
      1. Modify LESSON-13-C to add rules to evaluate integer subtraction.
      2. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.14: Defining Evaluation Order.

      +

      Lesson 1.14: Defining Evaluation Order

      + +

      The purpose of this lesson is to explain how to use the heat and cool
      +attributes, context and context alias sentences, and the strict and
      +seqstrict attributes to more compactly express heating and cooling in K,
      +and to express more advanced evaluation strategies in K.

      +

      The heat and cool attributes

      + +

      Thus far, we have been using rule priority and casts to express when to heat
      +an expression and when to cool it. For example, the rules for heating have
      +lower priority, so they do not apply if the term could be evaluated instead,
      +and the rules for heating are expressly written only to apply if the argument
      +of the expression is a value.

      +

      However, K has built-in support for deciding when to heat and when to cool.
      +This support comes in the form of the rule attributes heat and cool as
      +well as the specially named function isKResult.

      +

      Consider the following definition, which is equivalent to LESSON-13-C
      +(lesson-14-a.k):

      +
      module LESSON-14-A-SYNTAX
      +  imports UNSIGNED-INT-SYNTAX
      +  imports BOOL-SYNTAX
      +
      +  syntax Exp ::= Int
      +               | Bool
      +               > left: Exp "+" Exp
      +               > left: Exp "&&" Exp
      +endmodule
      +
      +module LESSON-14-A
      +  imports LESSON-14-A-SYNTAX
      +  imports INT
      +  imports BOOL
      +
      +  rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k>
      +  rule <k> B1:Bool && B2:Bool => B1 andBool B2 ...</k>
      +
      +  syntax KItem ::= freezer1(Exp) | freezer2(Exp)
      +                 | freezer3(Exp) | freezer4(Exp)
      +
      +  rule <k> E:Exp + HOLE:Exp => HOLE ~> freezer1(E) ...</k>
      +    requires isKResult(E) [heat]
      +  rule <k> HOLE:Exp + E:Exp => HOLE ~> freezer2(E) ...</k> [heat]
      +  rule <k> E:Exp && HOLE:Exp => HOLE ~> freezer3(E) ...</k>
      +    requires isKResult(E) [heat]
      +  rule <k> HOLE:Exp && E:Exp => HOLE ~> freezer4(E) ...</k> [heat]
      +
      +  rule <k> HOLE:Exp ~> freezer1(E) => E + HOLE ...</k> [cool]
      +  rule <k> HOLE:Exp ~> freezer2(E) => HOLE + E ...</k> [cool]
      +  rule <k> HOLE:Exp ~> freezer3(E) => E && HOLE ...</k> [cool]
      +  rule <k> HOLE:Exp ~> freezer4(E) => HOLE && E ...</k> [cool]
      +
      +  syntax Bool ::= isKResult(K) [function, symbol]
      +  rule isKResult(_:Int) => true
      +  rule isKResult(_:Bool) => true
      +  rule isKResult(_) => false [owise]
      +endmodule
      +

      We have introduced three major changes to this definition. First, we have
      +removed the Val sort. We replace it instead with a function isKResult.
      +The function in question must have the same signature and attributes as seen in
      +this example. It ought to return true whenever a term should not be heated
      +(because it is a value) and false when it should be heated (because it is not
      +a value). We thus also insert isKResult calls in the side condition of two
      +of the heating rules, where the Val sort was previously used.

      +

      Second, we have removed the rule priorities on the heating rules and the use of
      +the Val sort on the cooling rules, and replaced them with the heat and
      +cool attributes. These attributes instruct the compiler that these rules are
      +heating and cooling rules, and thus should implicitly apply only when certain
      +terms on the LHS either are or are not a KResult (i.e., isKResult returns
      +true versus false).

      +

      Third, we have renamed some of the variables in the heating and cooling rules
      +to the special variable HOLE. Syntactically, HOLE is just a special name
      +for a variable, but it is treated specially by the compiler. By naming a
      +variable HOLE, we have informed the compiler which term is being heated
      +or cooled. The compiler will automatically insert the side condition
      +requires isKResult(HOLE) to cooling rules and the side condition
      +requires notBool isKResult(HOLE) to heating rules.

      +

      Exercise

      + +

      Modify LESSON-14-A to add rules to evaluate integer subtraction.

      +

      Simplifying further with Contexts

      + +

      The above example is still rather cumbersome to write. We must explicitly write
      +both the heating and the cooling rule separately, even though they are
      +essentially inverses of one another. It would be nice to instead simply
      +indicate which terms should be heated and cooled, and what part of them to
      +operate on.

      +

      To do this, K introduces a new type of sentence, the context. Contexts
      +begin with the context keyword instead of the rule keyword, and usually
      +do not contain a rewrite operator.

      +

      Consider the following definition which is equivalent to LESSON-14-A
      +(lesson-14-b.k):

      +
      module LESSON-14-B-SYNTAX
      +  imports UNSIGNED-INT-SYNTAX
      +  imports BOOL-SYNTAX
      +
      +  syntax Exp ::= Int
      +               | Bool
      +               > left: Exp "+" Exp
      +               > left: Exp "&&" Exp
      +endmodule
      +
      +module LESSON-14-B
      +  imports LESSON-14-B-SYNTAX
      +  imports INT
      +  imports BOOL
      +
      +  rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k>
      +  rule <k> B1:Bool && B2:Bool => B1 andBool B2 ...</k>
      +
      +  context <k> E:Exp + HOLE:Exp ...</k>
      +    requires isKResult(E)
      +  context <k> HOLE:Exp + _:Exp ...</k>
      +  context <k> E:Exp && HOLE:Exp ...</k>
      +    requires isKResult(E)
      +  context <k> HOLE:Exp && _:Exp ...</k>
      +
      +  syntax Bool ::= isKResult(K) [function, symbol]
      +  rule isKResult(_:Int) => true
      +  rule isKResult(_:Bool) => true
      +  rule isKResult(_) => false [owise]
      +endmodule
      +

      In this example, the heat and cool rules have been removed entirely, as
      +have been the productions defining the freezers. Don't worry, they still exist
      +under the hood; the compiler is just generating them automatically. For each
      +context sentence like above, the compiler generates a #freezer production,
      +a heat rule, and a cool rule. The generated form is equivalent to the
      +rules we wrote manually in LESSON-14-A. However, we are now starting to
      +considerably simplify the definition. Instead of 3 sentences, we just have one.

      +

      context alias sentences and the strict and seqstrict attributes

      + +

      Notice that the contexts we included in LESSON-14-B still seem rather
      +similar in form. For each expression we want to evaluate, we are declaring
      +one context for each operand of that expression, and they are each rather
      +similar to one another. We would like to be able to simplify further by
      +simply annotating each expression production with information about how
      +it is to be evaluated instead. We can do this with the seqstrict attribute.

      +

      Consider the following definition, once again equivalent to those above
      +(lesson-14-c.k):

      +
      module LESSON-14-C-SYNTAX
      +  imports UNSIGNED-INT-SYNTAX
      +  imports BOOL-SYNTAX
      +
      +  syntax Exp ::= Int
      +               | Bool
      +               > left: Exp "+" Exp [seqstrict(exp; 1, 2)]
      +               > left: Exp "&&" Exp [seqstrict(exp; 1, 2)]
      +endmodule
      +
      +module LESSON-14-C
      +  imports LESSON-14-C-SYNTAX
      +  imports INT
      +  imports BOOL
      +
      +  rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k>
      +  rule <k> B1:Bool && B2:Bool => B1 andBool B2 ...</k>
      +
      +  context alias [exp]: <k> HERE ...</k>
      +
      +  syntax Bool ::= isKResult(K) [function, symbol]
      +  rule isKResult(_:Int) => true
      +  rule isKResult(_:Bool) => true
      +  rule isKResult(_) => false [owise]
      +endmodule
      +

      This definition has two important changes from the one above. The first is
      +that the individual context sentences have been removed and have been
      +replaced with a single context alias sentence. You may notice that this
      +sentence begins with an identifier in square brackets followed by a colon. This
      +syntax is a way of naming individual sentences in K for reference by the tool
      +or by other sentences. The context alias sentence also has a special variable
      +HERE.

      +

      The second is that the productions in LESSON-14-C-SYNTAX have been given a
      +seqstrict attribute. The value of this attribute has two parts. The first
      +is the name of a context alias sentence. The second is a comma-separated list
      +of integers. Each integer represents an index of a non-terminal in the
      +production, counting from 1. For each integer present, the compiler implicitly
      +generates a new context sentence according to the following rules:

      +
        +
      1. The compiler starts by looking for the context alias sentence named. If
        +there is more than one, then one context sentence is created per
        +context alias sentence with that name.
      2. +
      3. For each context created, the variable HERE in the context alias is
        +substituted with an instance of the production the seqstrict attribute is
        +attached to. Each child of that production is a variable. The non-terminal
        +indicated by the integer offset of the seqstrict attribute is given the name
        +HOLE.
      4. +
      5. For each integer offset prior in the list to the one currently being
        +processed, the predicate isKResult(E) is conjuncted together and included
        +as a side condition, where E is the child of the production term with that
        +offset, starting from 1. For example, if the attribute lists 1, 2, then
        +the rule generated for the 2 will include isKResult(E1) where E1 is the
        +first child of the production.
      6. +
      +

      As you can see if you work through the process, the above code will ultimately
      +generate the same contexts present in LESSON-14-B.

      +

      Finally, note that there are a few minor syntactic conveniences provided by the
      +seqstrict attribute. First, in the special case of the context alias sentence
      +being <k> HERE ...</k>, you can omit both the context alias sentence
      +and the name from the seqstrict attribute.

      +

      Second, if the numbered list of offsets contains every non-terminal in the
      +production, it can be omitted from the attribute value.

      +

      Thus, we can finally produce the idiomatic K definition for this example
      +(lesson-14-d.k):

      +
      module LESSON-14-D-SYNTAX
      +  imports UNSIGNED-INT-SYNTAX
      +  imports BOOL-SYNTAX
      +
      +  syntax Exp ::= Int
      +               | Bool
      +               > left: Exp "+" Exp [seqstrict]
      +               > left: Exp "&&" Exp [seqstrict]
      +endmodule
      +
      +module LESSON-14-D
      +  imports LESSON-14-D-SYNTAX
      +  imports INT
      +  imports BOOL
      +
      +  rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k>
      +  rule <k> B1:Bool && B2:Bool => B1 andBool B2 ...</k>
      +
      +  syntax Bool ::= isKResult(K) [function, symbol]
      +  rule isKResult(_:Int) => true
      +  rule isKResult(_:Bool) => true
      +  rule isKResult(_) => false [owise]
      +endmodule
      +

      Exercise

      + +

      Modify LESSON-14-D to add a production and rule to evaluate integer
      +subtraction.

      +

      Nondeterministic evaluation order with the strict attribute

      + +

      Thus far, we have focused entirely on deterministic evaluation order. However,
      +not all languages are deterministic in the order they evaluate expressions.
      +For example, in C, the expression a() + b() + c() is guaranteed to parse
      +to (a() + b()) + c(), but it is not guaranteed that a will be called before
      +b before c. In fact, this evaluation order is non-deterministic.

      +

      We can express non-deterministic evaluation orders with the strict attribute.
      +Its behavior is identical to the seqstrict attribute, except that step 3 in
      +the above list (with the side condition automatically added) does not take
      +place. In other words, if we wrote syntax Exp ::= Exp "+" Exp [strict]
      +instead of syntax Exp ::= Exp "+" Exp [seqstrict], it would generate the
      +following two contexts instead of the ones found in LESSON-14-B:

      +
        context <k> _:Exp + HOLE:Exp ...</k>
      +  context <k> HOLE:Exp + _:Exp ...</k>
      +

      As you can see, these contexts will generate heating rules that can both
      +apply to the same term. As a result, the choice of which heating rule
      +applies first is non-deterministic, and as we saw in Lesson 1.13, we can
      +get all possible behaviors by passing --search to krun.

      +

      Exercises

      + +
        +
      1. +

        Add integer division to LESSON-14-D. Make division and addition strict
        +instead of seqstrict, and write a rule evaluating integer division with a
        +side condition that the denominator is non-zero. Run krun --search on the
        +program 1 / 0 + 2 / 1 and observe all possible outputs of the program. How
        +many are there total, and why?

        +
      2. +
      3. +

        Rework your solution from Lesson 1.9, Exercise 2 to evaluate expressions from left to right using the seqstrict attribute.

        +
      4. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.15: Configuration Declarations and Cell Nesting.

      +

      Lesson 1.15: Configuration Declarations and Cell Nesting

      + +

      The purpose of this lesson is to explain how to store additional information
      +about the state of your interpreter by declaring cells using the
      +configuration sentence, as well as how to add additional inputs to your
      +definition.

      +

      Cells and Configuration Declarations

      + +

      We have already covered the absolute basics of cells in K by looking at the
      +<k> cell. As explained in Lesson 1.13, the
      +<k> cell is available without being explicitly declared. It turns out this is
      +because, if the user does not explicitly specify a configuration sentence
      +anywhere in the main module of their definition, the configuration sentence
      +from the DEFAULT-CONFIGURATION module of
      +kast.md is imported
      +automatically. Here is what that sentence looks like:

      +
        configuration <k> $PGM:K </k>
      +

      This configuration declaration declares a single cell, the <k> cell. It also
      +declares that at the start of rewriting, the contents of that cell should be
      +initialized with the value of the $PGM configuration variable.
      +Configuration variables function as inputs to krun. These terms are supplied
      +to krun in the form of ASTs parsed using a particular module. By default, the
      +$PGM configuration variable uses the main syntax module of the definition.

      +

      The cast on the configuration variable also specifies the sort that is used as
      +the entry point to the parser, in this case the K sort. It is often
      +useful to cast to other sorts there as well for better control over the accepted
      +language. The sort used for the $PGM variable is referred to as the start
      +symbol. During parsing, the default start symbol K subsumes all user-defined
      +sorts except for syntactic lists. These are excluded because they will always
      +produce an ambiguity error when parsing a single element.

      +

      Note that we did not explicitly specify the $PGM configuration variable when
      +we invoked krun on a file. This is because krun handles the $PGM variable
      +specially, and allows you to pass the term for that variable via a file passed
      +as a positional argument to krun. We did, however, specify the PGM name
      +explicitly when we called krun with the -cPGM command line argument in
      +Lesson 1.2. This is the other, explicit, way of
      +specifying an input to krun.

      +

      This explains the most basic use of configuration declarations in K. We can,
      +however, declare multiple cells and multiple configuration variables. We can
      +also specify the initial values of cells statically, rather than dynamically
      +via krun.

      +

      For example, consider the following definition (lesson-15-a.k):

      +
      module LESSON-15-A-SYNTAX
      +  imports INT-SYNTAX
      +
      +  syntax Ints ::= List{Int,","}
      +endmodule
      +
      +module LESSON-15-A
      +  imports LESSON-15-A-SYNTAX
      +  imports INT
      +
      +  configuration <k> $PGM:Ints </k>
      +                <sum> 0 </sum>
      +
      +  rule <k> I:Int, Is:Ints => Is ...</k>
      +       <sum> SUM:Int => SUM +Int I </sum>
      +endmodule
      +

      This simple definition takes a list of integers as input and sums them
      +together. Here we have declared two cells: <k> and <sum>. Unlike <k>,
      +<sum> does not get initialized via a configuration variable, but instead
      +is initialized statically with the value 0.

      +

      Note the rule in the second module: we have explicitly specified multiple
      +cells in a single rule. K will expect each of these cells to match in order for
      +the rule to apply.

      +

      Here is a second example (lesson-15-b.k):

      +
      module LESSON-15-B-SYNTAX
      +  imports INT-SYNTAX
      +endmodule
      +
      +module LESSON-15-B
      +  imports LESSON-15-B-SYNTAX
      +  imports INT
      +  imports BOOL
      +
      +  configuration <k> . </k>
      +                <first> $FIRST:Int </first>
      +                <second> $SECOND:Int </second>
      +
      +  rule <k> . => FIRST >Int SECOND </k>
      +       <first> FIRST </first>
      +       <second> SECOND </second>
      +endmodule
      +

      This definition takes two integers as command-line arguments and populates the
      +<k> cell with a Boolean indicating whether the first integer is greater than
      +the second. Notice that we have specified no $PGM configuration variable
      +here. As a result, we cannot invoke krun via the syntax krun $file.
      +Instead, we must explicitly pass values for each configuration variable via the
      +-cFIRST and -cSECOND command line flags. For example, if we invoke
      +krun -cFIRST=0 -cSECOND=1, we will get the value false in the K cell.

      +

      You can also specify both a $PGM configuration variable and other
      +configuration variables in a single configuration declaration, in which case
      +you would be able to initialize $PGM with either a positional argument or the
      +-cPGM command line flag, but the other configuration variables would need
      +to be explicitly initialized with -c.

      +

      Exercise

      + +

      Modify your solution to Lesson 1.14, Exercise 2 to add a new cell with a
      +configuration variable of sort Bool. This variable should determine whether
      +the / operator is evaluated using /Int or divInt. Test that by specifying
      +different values for this variable, you can change the behavior of rounding on
      +division of negative numbers.

      +

      Cell Nesting

      + +

      It is possible to nest cells inside one another. A cell that contains other
      +cells must contain only other cells, but in doing this, you are able to
      +create a hierarchical structure to the configuration. Consider the following
      +definition (lesson-15-c.k), which is equivalent to the one in LESSON-15-B:

      +
      module LESSON-15-C-SYNTAX
      +  imports INT-SYNTAX
      +endmodule
      +
      +module LESSON-15-C
      +  imports LESSON-15-C-SYNTAX
      +  imports INT
      +  imports BOOL
      +
      +  configuration <T>
      +                  <k> . </k>
      +                  <state>
      +                    <first> $FIRST:Int </first>
      +                    <second> $SECOND:Int </second>
      +                  </state>
      +                </T>
      +
      +  rule <k> . => FIRST >Int SECOND </k>
      +       <first> FIRST </first>
      +       <second> SECOND </second>
      +endmodule
      +

      Note that we have added some new cells to the configuration declaration:
      +the <T> cell wraps the entire configuration, and the <state> cell is
      +introduced around the <first> and <second> cells.

      +

      However, we have not changed the rule in this definition. This is because of
      +a concept in K called configuration abstraction. K allows you to specify
      +any number of cells in a rule (except zero) in any order you want, and K will
      +compile the rules into a form that matches the structure of the configuration
      +specified by the configuration declaration.

      +

      Here then, is how this rule would look after the configuration abstraction
      +has been resolved:

      +
        rule <T>
      +         <k> . => FIRST >Int SECOND </k>
      +         <state>
      +           <first> FIRST </first>
      +           <second> SECOND </second>
      +         </state>
      +       </T>
      +

      In other words, K will complete cells to the top of the configuration by
      +inserting parent cells where appropriate based on the declared structure of
      +the configuration. This is useful because as a definition evolves, the
      +configuration may change, but you don't want to have to modify every single
      +rule each time. Thus, K follows the principle that you should only mention the
      +cells in a rule that are actually needed in order to accomplish its specific
      +goal. By following this best practice, you can significantly increase the
      +modularity of the definition and make it easier to maintain and modify.

      +

      Note that unlike top-level rewrite rules, cells that appear inside function
      +rules are not necessarily completed to the top of the configuration. They still
      +participate in cell ccompletion in the sense that you can mention cell
      +structure loosely inside a function rule and it will be completed into the
      +correct cell structure specified by the configuration declaration. However,
      +they do not complete all the way to the top, instead completing only up to
      +the top-most cell mentioned in the rule.

      +

      For example, if I write the following function rule in the above definition:

      +
        rule doStuff(<first> FIRST </first>) => FIRST
      +

      The function will only match on the first cell, rather than the entire
      +configuration. However, if we had mentioned a parent cell in the rule, it still
      +would have completed the children of that parent cell as needed to ensure that
      +the resulting term is well formed.

      +

      Exercise

      + +

      Modify your definition from the previous exercise in this lesson to wrap the
      +two cells you have declared in a top cell <T>. You should not have to change
      +any other rules in the definition.

      +

      Cell Variables

      + +

      Sometimes it is desirable to explicitly match a variable against certain
      +fragments of the configuration. Because K's configuration is hierarchical,
      +we can grab subsets of the configuration as if they were just another term.
      +However, configuration abstraction applies here as well.
      +In particular, for each cell you specify in a configuration declaration, a
      +unique sort is assigned for that cell with a single constructor (the cell
      +itself). The sort name is taken by removing all special characters,
      +capitalizing the first letter and each letter after a hyphen, and adding the
      +word Cell at the end. For example, in the above example, the cell sorts are
      +TCell, KCell, StateCell, FirstCell, and SecondCell. If we had declared
      +a cell as <first-number>, then the cell sort name would be FirstNumberCell.

      +

      You can explicitly reference a variable of one of these sorts anywhere you
      +might instead write that cell. For example, consider the following rule:

      +
        rule <k> true => S </k>
      +       (S:StateCell => <state>... .Bag ...</state>)
      +

      Here we have introduced two new concepts. The first is the variable of sort
      +StateCell, which matches the entire <state> part of the configuration. The
      +second is that we have introduced the concept of ... once again. When a cell
      +contains other cells, it is also possible to specify ... on either the left,
      +right or both sides of the cell term. Each of these three syntaxes are
      +equivalent in this case. When they appear on the left-hand side of a rule, they
      +indicate that we don't care what value any cells not explicitly named might
      +have. For example, we might write <state>... <first> 0 </first> ...</state> on
      +the left-hand side of a rule in order to indicate that we want to match the
      +rule when the <first> cell contains a zero, regardless of what the <second>
      +cell contains. If we had not included this ellipsis, it would have been a
      +syntax error, because K would have expected you to provide a value for each of
      +the child cells.

      +

      However, if, as in the example above, the ... appeared on the right-hand side
      +of a rule, this instead indicates that the cells not explicitly mentioned under
      +the cell should be initialized with their default value from the configuration
      +declaration. In other words, that rule will set the value of <first> and
      +<second> to zero.

      +

      You may note the presence of the phrase .Bag here. You can think of this as
      +the empty set of cells. It is used as the child of a cell when you want to
      +indicate that no cells should be explicitly named. We will cover other uses
      +of this term in later lessons.

      +

      Exercises

      + +
        +
      1. Modify the definition from the previous exercise in this lesson so that the
        +Boolean cell you created is initialized to false. Then add a production
        +syntax Stmt ::= Bool ";" Exp, and a rule that uses this Stmt to set the
        +value of the Boolean flag. Then add another production
        +syntax Stmt ::= "reset" ";" Exp which sets the value of the Boolean flag back
        +to its default value via a ... on the right-hand side. You will need to add
        +an additional cell around the Boolean cell to make this work.
      2. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.16: Maps, Semantic Lists, and Sets.

      +

      Lesson 1.16: Maps, Semantic Lists, and Sets

      + +

      The purpose of this lesson is to explain how to use the data structure sorts
      +provided by K: maps, lists, and sets.

      +

      Maps

      + +

      The most frequently used type of data structure in K is the map. The sort
      +provided by K for this purpose is the Map sort, and it is provided in
      +domains.md in the MAP
      +module. This type is not (currently) polymorphic. All Map terms are maps that
      +map terms of sort KItem to other terms of sort KItem. A KItem can contain
      +any sort except a K sequence. If you need to store such a term in a
      +map, you can always use a wrapper such as syntax KItem ::= kseq(K).

      +

      A Map pattern consists of zero or more map elements (as represented by the
      +symbol syntax Map ::= KItem "|->" KItem), mixed in any order, separated by
      +whitespace, with zero or one variables of sort Map. The empty map is
      +represented by .Map. If all of the bindings for the variables in the keys
      +of the map can be deterministically chosen, these patterns can be matched in
      +O(1) time. If they cannot, then each map element that cannot be
      +deterministically constructed contributes a single dimension of polynomial
      +time to the cost of the matching. In other words, a single such element is
      +linear, two are quadratic, three are cubic, etc.

      +

      Patterns like the above are the only type of Map pattern that can appear
      +on the left-hand-side of a rule. In other words, you are not allowed to write
      +a Map pattern on the left-hand-side with more than one variable of sort Map
      +in it. You are, however, allowed to write such patterns on the right-hand-side
      +of a rule. You can also write a function pattern in the key of a map element
      +so long as all the variables in the function pattern can be deterministically
      +chosen.

      +

      Note the meaning of matching on a Map pattern: a map pattern with no
      +variables of sort Map will match if the map being matched has exactly as
      +many bindings as |-> symbols in the pattern. It will then match if each
      +binding in the map pattern matches exactly one distinct binding in the map
      +being matched. A map pattern with one Map variable will also match any map
      +that contains such a map as a subset. The variable of sort Map will be bound
      +to whatever bindings are left over (.Map if there are no bindings left over).

      +

      Here is an example of a simple definition that implements a very basic
      +variable declaration semantics using a Map to store the value of variables
      +(lesson-16-a.k):

      +
      module LESSON-16-A-SYNTAX
      +  imports INT-SYNTAX
      +  imports ID-SYNTAX
      +
      +  syntax Exp ::= Id | Int
      +  syntax Decl ::= "int" Id "=" Exp ";" [strict(2)]
      +  syntax Pgm ::= List{Decl,""}
      +endmodule
      +
      +module LESSON-16-A
      +  imports LESSON-16-A-SYNTAX
      +  imports BOOL
      +
      +  configuration <T>
      +                  <k> $PGM:Pgm </k>
      +                  <state> .Map </state>
      +                </T>
      +
      +  // declaration sequence
      +  rule <k> D:Decl P:Pgm => D ~> P ...</k>
      +  rule <k> .Pgm => . ...</k>
      +
      +  // variable declaration
      +  rule <k> int X:Id = I:Int ; => . ...</k>
      +       <state> STATE => STATE [ X <- I ] </state>
      +
      +  // variable lookup
      +  rule <k> X:Id => I ...</k>
      +       <state>... X |-> I ...</state>
      +
      +  syntax Bool ::= isKResult(K) [symbol, function]
      +  rule isKResult(_:Int) => true
      +  rule isKResult(_) => false [owise]
      +endmodule
      +

      There are several new features in this definition. First, note we import
      +the module ID-SYNTAX. This module is defined in domains.md and provides a
      +basic syntax for identifiers. We are using the Id sort provided by this
      +module in this definition to implement the names of program variables. This
      +syntax is only imported when parsing programs, not when parsing rules. Later in
      +this lesson we will see how to reference specific concrete identifiers in a
      +rule.

      +

      Second, we introduce a single new function over the Map sort. This function,
      +which is represented by the symbol
      +syntax Map ::= Map "[" KItem "<-" KItem "]", represents the map update
      +operation. Other functions over the Map sort can be found in domains.md.

      +

      Finally, we have used the ... syntax on a cell containing a Map. In this
      +case, the meaning of <state>... Pattern ...</state>,
      +<state>... Pattern </state>, and <state> Pattern ...</state> are the same:
      +it is equivalent to writing <state> (Pattern) _:Map </state>.

      +

      Consider the following program (a.decl):

      +
      int x = 0;
      +int y = 1;
      +int a = x;
      +

      If we run this program with krun, we will get the following result:

      +
      <T>
      +  <k>
      +    .
      +  </k>
      +  <state>
      +    a |-> 0
      +    x |-> 0
      +    y |-> 1
      +  </state>
      +</T>
      +

      Note that krun has automatically sorted the collection for you. This doesn't
      +happen at runtime, so you still get the performance of a hash map, but it will
      +help make the output more readable.

      +

      Exercise

      + +

      Create a sort Stmt that is a subsort of Decl. Create a production of sort
      +Stmt for variable assignment in addition to the variable declaration
      +production. Feel free to use the syntax syntax Stmt ::= Id "=" Exp ";". Write
      +a rule that implements variable assignment using a map update function. Then
      +write the same rule using a map pattern. Test your implementations with some
      +programs to ensure they behave as expected.

      +

      Semantic Lists

      + +

      In a previous lesson, we explained how to represent lists in the AST of a
      +program. However, this is not the only context where lists can be used. We also
      +frequently use lists in the configuration of an interpreter in order to
      +represent certain types of program state. For this purpose, it is generally
      +useful to have an associative-list sort, rather than the cons-list sorts
      +provided in Lesson 1.12.

      +

      The type provided by K for this purpose is the List sort, and it is also
      +provided in domains.md, in the LIST module. This type is also not
      +(currently) polymorphic. Like Map, all List terms are lists of terms of the
      +KItem sort.

      +

      A List pattern in K consists of zero or more list elements (as represented by
      +the ListItem symbol), followed by zero or one variables of sort List,
      +followed by zero or more list elements. An empty list is represented by
      +.List. These patterns can be matched in O(log(N)) time. This is the only
      +type of List pattern that can appear on the left-hand-side of a rule. In
      +other words, you are not allowed to write a List pattern on the
      +left-hand-side with more than one variable of sort List in it. You are,
      +however, allowed to write such patterns on the right-hand-side of a rule.

      +

      Note the meaning of matching on a List pattern: a list pattern with no
      +variables of sort List will match if the list being matched has exactly as
      +many elements as ListItem symbols in the pattern. It will then match if each
      +element in sequence matches the pattern contained in the ListItem symbol. A
      +list pattern with one variable of sort List operates the same way, except
      +that it can match any list with at least as many elements as ListItem
      +symbols, so long as the prefix and suffix of the list match the patterns inside
      +the ListItem symbols. The variable of sort List will be bound to whatever
      +elements are left over (.List if there are no elements left over).

      +

      The ... syntax is allowed on cells containing lists as well. In this case,
      +the meaning of <cell>... Pattern </cell> is the same as
      +<cell> _:List (Pattern) </cell>, the meaning of <cell> Pattern ...</cell>
      +is the same as <cell> (Pattern) _:List</cell>. Because list patterns with
      +multiple variables of sort List are not allowed, it is an error to write
      +<cell>... Pattern ...</cell>.

      +

      Here is an example of a simple definition that implements a very basic
      +function-call semantics using a List as a function stack (lesson-16-b.k):

      +
      module LESSON-16-B-SYNTAX
      +  imports INT-SYNTAX
      +  imports ID-SYNTAX
      +
      +  syntax Exp ::= Id "(" ")" | Int
      +  syntax Stmt ::= "return" Exp ";" [strict]
      +  syntax Decl ::= "fun" Id "(" ")" "{" Stmt "}"
      +  syntax Pgm ::= List{Decl,""}
      +  syntax Id ::= "main" [token]
      +endmodule
      +
      +module LESSON-16-B
      +  imports LESSON-16-B-SYNTAX
      +  imports BOOL
      +  imports LIST
      +
      +  configuration <T>
      +                  <k> $PGM:Pgm ~> main () </k>
      +                  <functions> .Map </functions>
      +                  <fstack> .List </fstack>
      +                </T>
      +
      +  // declaration sequence
      +  rule <k> D:Decl P:Pgm => D ~> P ...</k>
      +  rule <k> .Pgm => . ...</k>
      +
      +  // function definitions
      +  rule <k> fun X:Id () { S } => . ...</k>
      +       <functions>... .Map => X |-> S ...</functions>
      +
      +  // function call
      +  syntax KItem ::= stackFrame(K)
      +  rule <k> X:Id () ~> K => S </k>
      +       <functions>... X |-> S ...</functions>
      +       <fstack> .List => ListItem(stackFrame(K)) ...</fstack>
      +
      +  // return statement
      +  rule <k> return I:Int ; ~> _ => I ~> K </k>
      +       <fstack> ListItem(stackFrame(K)) => .List ...</fstack>
      +
      +  syntax Bool ::= isKResult(K) [function, symbol]
      +  rule isKResult(_:Int) => true
      +  rule isKResult(_) => false [owise]
      +endmodule
      +

      Notice that we have declared the production syntax Id ::= "main" [token].
      +Since we use the ID-SYNTAX module, this declaration is necessary in order to
      +be able to refer to the main identifier directly in the configuration
      +declaration. Our <k> cell now contains a K sequence initially: first we
      +process all the declarations in the program, then we call the main function.

      +

      Consider the following program (foo.func):

      +
      fun foo() { return 5; }
      +fun main() { return foo(); }
      +

      When we krun this program, we should get the following output:

      +
      <T>
      +  <k>
      +    5 ~> .
      +  </k>
      +  <functions>
      +    foo |-> return 5 ;
      +    main |-> return foo ( ) ;
      +  </functions>
      +  <fstack>
      +    .List
      +  </fstack>
      +</T>
      +

      Note that we have successfully put on the <k> cell the value returned by the
      +main function.

      +

      Exercise

      + +

      Add a term of sort Id to the stackFrame operator to keep track of the
      +name of the function in that stack frame. Then write a function
      +syntax String ::= printStackTrace(List) that takes the contents of the
      +<fstack> cell and pretty prints the current stack trace. You can concatenate
      +strings with +String in the STRING module in domains.md, and you can
      +convert an Id to a String with the Id2String function in the ID module.
      +Test this function by creating a new expression that returns the current stack
      +trace as a string. Make sure to update isKResult and the Exp sort as
      +appropriate to allow strings as values.

      +

      Sets

      + +

      The final primary data structure sort in K is a set, i.e., an idempotent
      +unordered collection where elements are deduplicated. The sort provided by K
      +for this purpose is the Set sort and it is provided in domains.md in the
      +SET module. Like maps and lists, this type is not (currently) polymorphic.
      +Like Map and List, all Set terms are sets of terms of the KItem sort.

      +

      A Set pattern has the exact same restrictions as a Map pattern, except that
      +its elements are treated like keys, and there are no values. It has the same
      +performance characteristics as well. However, syntactically it is more similar
      +to the List sort: An empty Set is represented by .Set, but a set element
      +is represented by the SetItem symbol.

      +

      Matching behaves similarly to the Map sort: a set pattern with no variables
      +of sort Set will match if the set has exactly as many bindings as SetItem
      +symbols, and if each element pattern matches one distinct element in the set.
      +A set with a variable of sort Set also matches any superset of such a set.
      +As with map, the elements left over will be bound to the Set variable (or
      +.Set if no elements are left over).

      +

      Like Map, the ... syntax on a set is syntactic sugar for an anonymous
      +variable of sort Set.

      +

      Here is an example of a simple modification to LESSON-16-A which uses a Set
      +to ensure that variables are never declared more than once. In practice, you
      +would likely just use the in_keys symbol over maps to test for this, but
      +it's still useful as an example of sets in practice:

      +
      module LESSON-16-C-SYNTAX
      +  imports LESSON-16-A-SYNTAX
      +endmodule
      +
      +module LESSON-16-C
      +  imports LESSON-16-C-SYNTAX
      +  imports BOOL
      +  imports SET
      +
      +  configuration <T>
      +                  <k> $PGM:Pgm </k>
      +                  <state> .Map </state>
      +                  <declared> .Set </declared>
      +                </T>
      +
      +  // declaration sequence
      +  rule <k> D:Decl P:Pgm => D ~> P ...</k>
      +  rule <k> .Pgm => . ...</k>
      +
      +  // variable declaration
      +  rule <k> int X:Id = I:Int ; => . ...</k>
      +       <state> STATE => STATE [ X <- I ] </state>
      +       <declared> D => D SetItem(X) </declared>
      +    requires notBool X in D
      +
      +  // variable lookup
      +  rule <k> X:Id => I ...</k>
      +       <state>... X |-> I ...</state>
      +       <declared>... SetItem(X) ...</declared>
      +
      +  syntax Bool ::= isKResult(K) [symbol, function]
      +  rule isKResult(_:Int) => true
      +  rule isKResult(_) => false [owise]
      +endmodule
      +

      Now if we krun a program containing duplicate declarations, it will get
      +stuck on the declaration.

      +

      Exercises

      + +
        +
      1. Modify your solution to Lesson 1.14, Exercise 2 and introduce the sorts
        +Decls, Decl, and Stmt which include variable and function declaration
        +(without function parameters), and return and assignment statements, as well
        +as call expressions. Use List and Map to implement these operators, making
        +sure to consider the interactions between components, such as saving and
        +restoring the environment of variables at each call site. Don't worry about
        +local function definitions or global variables for now. Make sure to test the
        +resulting interpreter.
      2. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.17: Cell Multiplicity and Cell Collections.

      +

      Lesson 1.17: Cell Multiplicity and Cell Collections

      + +

      The purpose of this lesson is to explain how you can create optional cells
      +and cells that repeat multiple times in a configuration using a feature called
      +cell multiplicity.

      +

      Cell Multiplicity

      + +

      K allows you to specify attributes for cell productions as part of the syntax
      +of configuration declarations. Unlike regular productions, which use the []
      +syntax for attributes, configuration cells use an XML-like attribute syntax:

      +
      configuration <k color="red"> $PGM:K </k>
      +

      This configuration declaration gives the <k> cell the color red during
      +unparsing using the color attribute as discussed in
      +Lesson 1.9.

      +

      However, in addition to the usual attributes for productions, there are some
      +other attributes that can be applied to cells with special meaning. One such
      +attribute is the multiplicity attribute. By default, each cell that is
      +declared occurs exactly once in every configuration term. However, using the
      +multiplicity attribute, this default behavior can be changed. There are two
      +values that this attribute can have: ? and *.

      +

      Optional cells

      + +

      The first cell multiplicity we will discuss is ?. Similar to a regular
      +expression language, this attribute tells the compiler that this cell can
      +appear 0 or 1 times in the configuration. In other words, it is an
      +optional cell. By default, K does not create optional cells in the initial
      +configuration, unless that optional cell has a configuration variable inside
      +it. However, it is possible to override the default behavior and create that
      +cell initially by adding the additional cell attribute initial="".

      +

      K uses the .Bag symbol to represent the absence of any cells in a particular
      +rule. Consider the following module:

      +
      module LESSON-17-A
      +  imports INT
      +
      +  configuration <k> $PGM:K </k>
      +                <optional multiplicity="?"> 0 </optional>
      +
      +  syntax KItem ::= "init" | "destroy"
      +
      +  rule <k> init => . ...</k>
      +       (.Bag => <optional> 0 </optional>)
      +  rule <k> destroy => . ...</k>
      +       (<optional> _ </optional> => .Bag)
      +
      +endmodule
      +

      In this definition, when the init symbol is executed, the <optional> cell
      +is added to the configuration, and when the destroy symbol is executed, it
      +is removed. Any rule that matches on that cell will only match if that cell is
      +present in the configuration.

      +

      Exercise

      + +

      Create a simple definition with a Stmts sort that is a List{Stmt,""} and
      +a Stmt sort with the constructors
      +syntax Stmt ::= "enable" | "increment" | "decrement" | "disable". The
      +configuration should have an optional cell that contains an integer that
      +is created with the enable command, destroyed with the disable command,
      +and its value is incremented or decremented by the increment and decrement
      +command.

      +

      Cell collections

      + +

      The second type of cell multiplicity we will discuss is *. Simlar to a
      +regular expression language, this attribute tells the compiler that this cell
      +can appear 0 or more times in the configuration. In other words, it is a
      +cell collection. Cells with multiplicity * must be the only child of
      +their parent cell. As a convention, the inner cell is usually named with the
      +singular form of what it contains, and the outer cell with the plural form, for
      +example, "thread" and "threads".

      +

      All cell collections are required to have the type attribute set to either
      +Set or Map. A Set cell collection is represented as a set and behaves
      +internally the same as the Set sort, although it actually declares a new
      +sort. A Map cell collection is represented as a Map in which the first
      +subcell of the cell collection is the key and the remaining cells are the
      +value.

      +

      For example, consider the following module:

      +
      module LESSON-17-B
      +  imports INT
      +  imports BOOL
      +  imports ID-SYNTAX
      +
      +  syntax Stmt ::= Id "=" Exp ";" [strict(2)]
      +                | "return" Exp ";" [strict]
      +  syntax Stmts ::= List{Stmt,""}
      +  syntax Exp ::= Id
      +               | Int
      +               | Exp "+" Exp [seqstrict]
      +               | "spawn" "{" Stmts "}"
      +               | "join" Exp ";" [strict]
      +
      +  configuration <threads>
      +                  <thread multiplicity="*" type="Map">
      +                    <id> 0 </id>
      +                    <k> $PGM:K </k>
      +                  </thread>
      +                </threads>
      +                <state> .Map </state>
      +                <next-id> 1 </next-id>
      +
      +  rule <k> X:Id => I:Int ...</k>
      +       <state>... X |-> I ...</state>
      +  rule <k> X:Id = I:Int ; => . ...</k>
      +       <state> STATE => STATE [ X <- I ] </state>
      +  rule <k> S:Stmt Ss:Stmts => S ~> Ss ...</k>
      +  rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k>
      +
      +  rule <thread>...
      +         <k> spawn { Ss } => NEXTID ...</k>
      +       ...</thread>
      +       <next-id> NEXTID => NEXTID +Int 1 </next-id>
      +       (.Bag =>
      +       <thread>
      +         <id> NEXTID </id>
      +         <k> Ss </k>
      +       </thread>)
      +
      +  rule <thread>...
      +         <k> join ID:Int ; => I ...</k>
      +       ...</thread>
      +       (<thread>
      +         <id> ID </id>
      +         <k> return I:Int ; ...</k>
      +       </thread> => .Bag)
      +
      +  syntax Bool ::= isKResult(K) [function, symbol]
      +  rule isKResult(_:Int) => true
      +  rule isKResult(_) => false [owise]
      +endmodule
      +

      This module implements a very basic fork/join semantics. The spawn expression
      +spawns a new thread to execute a sequence of statements and returns a thread
      +id, and the join statement waits until a thread executes return and then
      +returns the return value of the thread.

      +

      Note something quite novel here: the <k> cell is inside a cell of
      +multiplicity *. Since the <k> cell is just a regular cell (mostly), this
      +is perfectly allowable. Rules that don't mention a specific thread are
      +automatically completed to match any thread.

      +

      When you execute programs in this language, the cells in the cell collection
      +get sorted and printed like any other collection, but they still display like
      +cells. Rules in this language also benefit from all the structural power of
      +cells, allowing you to omit cells you don't care about or complete the
      +configuration automatically. This allows you to have the power of cells while
      +still being a collection under the hood.

      +

      Exercises

      + +
        +
      1. Modify the solution from Lesson 1.16, Exercise 1 so that the cell you use to
        +keep track of functions in a Map is now a cell collection. Run some programs
        +and compare how they get unparsed before and after this change.
      2. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.18: Term Equality and the Ternary Operator.

      +

      Lesson 1.18: Term Equality and the Ternary Operator

      + +

      The purpose of this lesson is to introduce how to compare equality of terms in
      +K, and how to put conditional expressions directly into the right-hand side of
      +rules.

      +

      Term Equality

      + +

      One major way you can compare whether two terms are equal in K is to simply
      +match both terms with a variable with the same name. This will only succeed
      +in matching if the two terms are equal structurally. However, sometimes this
      +is impractical, and it is useful to have access to a way to actually compare
      +whether two terms in K are equal. The operator for this is found in
      +domains.md in the K-EQUAL
      +module. The operator is ==K and takes two terms of sort K and returns a
      +Bool. It returns true if they are equal. This includes equality over builtin
      +types such as Map and Set where equality is not purely structural in
      +nature. However, it does not include any notion of semantic equality over
      +user-defined syntax. The inverse symbol for inequality is =/=K.

      +

      Ternary Operator

      + +

      One way to introduce conditional logic in K is to have two separate rules,
      +each with a side condition (or one rule with a side condition and another with
      +the owise attribute). However, sometimes it is useful to explicitly write
      +a conditional expression directly in the right-hand side of a rule. For this
      +purpose, K defines one more operator in the K-EQUAL module, which corresponds
      +to the usual ternary operator found in many languages. Here is an example of its
      +usage (lesson-18.k):

      +
      module LESSON-18
      +  imports INT
      +  imports BOOL
      +  imports K-EQUAL
      +
      +  syntax Exp ::= Int | Bool | "if" "(" Exp ")" Exp "else" Exp [strict(1)]
      +
      +  syntax Bool ::= isKResult(K) [function, symbol]
      +  rule isKResult(_:Int) => true
      +  rule isKResult(_:Bool) => true
      +
      +  rule if (B:Bool) E1:Exp else E2:Exp => #if B #then E1 #else E2 #fi
      +endmodule
      +

      Note the symbol on the right-hand side of the final rule. This symbol is
      +polymorphic: B must be of sort Bool, but E1 and E2 could have been
      +any sort so long as both were of the same sort, and the sort of the entire
      +expression becomes equal to that sort. K supports polymorphic built-in
      +operators, but does not yet allow users to write their own polymorphic
      +productions.

      +

      The behavior of this function is to evaluate the Boolean expression to a
      +Boolean, then pick one of the two children and return it based on whether the
      +Boolean is true or false. Please note that it is not a good idea to use this
      +symbol in cases where one or both of the children is potentially undefined
      +(for example, an integer expression that divides by zero). While the default
      +implementation is smart enough to only evaluate the branch that happens to be
      +picked, this will not be true when we begin to do program verification. If
      +you need short circuiting behavior, it is better to use a side condition.

      +

      Exercises

      + +
        +
      1. +

        Write a function in K that takes two terms of sort K and returns an
        +Int: the Int should be 0 if the terms are equal and 1 if the terms are
        +unequal.

        +
      2. +
      3. +

        Modify your solution to Lesson 1.16, Exercise 1 and introduce an if
        +Stmt to the syntax of the language, then implement it using the #if symbol.
        +Make sure to write tests for the resulting interpreter.

        +
      4. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.19: Debugging with GDB.

      +

      Lesson 1.19: Debugging with GDB or LLDB

      + +

      The purpose of this lesson is to teach how to debug your K interpreter using
      +the K-language support provided in GDB or
      +LLDB.

      +

      Caveats

      + +

      This lesson has been written with GDB support on Linux in mind. Unfortunately,
      +on macOS, GDB has limited support. To address this, we have introduced early
      +experimental support for debugging with LLDB on macOS. In some cases, the
      +features supported by LLDB are slightly different to those supported by GDB; the
      +tutorial text will make this clear where necessary. If you use a macOS with an
      +LLVM version older than 15, you may need to upgrade it to use the LLDB
      +correctly. If you encounter an issue on either operating system, please open an
      +issue against the K repository.

      +

      Getting started

      + +

      On Linux, you will need GDB in order to complete this lesson. If you do not
      +already have GDB installed, then do so. Steps to install GDB are outlined in
      +this GDB Tutorial.

      +

      On macOS, LLDB should already have been installed with K's build dependencies
      +(whether you have built K from source, or installed it using kup or Homebrew).

      +

      The first thing neccessary in order to debug a K interpreter is to build the
      +interpreter with full debugging support enabled. This can be done relatively
      +simply. First, run kompile with the command line flag --enable-llvm-debug.
      +The resulting compiled K definition will be ready to support debugging.

      +

      Once you have a compiled K definition and a program you wish to debug, you can
      +start the debugger by passing the --debugger flag to krun. This will
      +automatically load the program you are executing into GDB and drop you into a
      +GDB shell ready to start executing the program.

      +

      As an example, consider the following K definition (lesson-19-a.k):

      +
      module LESSON-19-A
      +  imports INT
      +
      +  rule I => I +Int 1
      +    requires I <Int 100
      +endmodule
      +

      If we compile this definition with kompile lesson-19-a.k --enable-llvm-debug,
      +and run the program 0 in the debugger with krun -cPGM=0 --debugger, we will
      +see the following output (roughly, and depending on which platform you are
      +using):

      +

      GDB / Linux

      + +
      GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
      +Copyright (C) 2020 Free Software Foundation, Inc.
      +License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
      +This is free software: you are free to change and redistribute it.
      +There is NO WARRANTY, to the extent permitted by law.
      +Type "show copying" and "show warranty" for details.
      +This GDB was configured as "x86_64-linux-gnu".
      +Type "show configuration" for configuration details.
      +For bug reporting instructions, please see:
      +<http://www.gnu.org/software/gdb/bugs/>.
      +Find the GDB manual and other documentation resources online at:
      +    <http://www.gnu.org/software/gdb/documentation/>.
      +
      +For help, type "help".
      +Type "apropos word" to search for commands related to "word"...
      +Reading symbols from ./lesson-19-a-kompiled/interpreter...
      +warning: File "/home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-a-kompiled/interpreter" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
      +To enable execution of this file add
      +        add-auto-load-safe-path /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-a-kompiled/interpreter
      +line to your configuration file "/home/dwightguth/.gdbinit".
      +To completely disable this security protection add
      +        set auto-load safe-path /
      +line to your configuration file "/home/dwightguth/.gdbinit".
      +For more information about this security protection see the
      +"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
      +        info "(gdb)Auto-loading safe path"
      +(gdb)
      +

      To make full advantage of the GDB features of K, you should follow the first
      +command listed in this output message and add the corresponding
      +add-auto-load-safe-path command to your ~/.gdbinit file as prompted.
      +Please note that the path will be different on your machine than the one
      +listed above. Adding directories to the "load safe path" effectively tells GDB
      +to trust those directories. All content under a given directory will be recursively
      +trusted, so if you want to avoid having to add paths to the "load safe path" every
      +time you kompile a different K definition, then you can just trust a minimal
      +directory containing all your kompiled files; however, do not choose a top-level directory containing arbitrary files as this amounts to trusting arbitrary files and is a security risk. More info on the load safe path
      +can be found here.

      +

      LLDB / macOS

      + +
      (lldb) target create "./lesson-19-a-kompiled/interpreter"
      +warning: 'interpreter' contains a debug script. To run this script in this debug session:
      +
      +    command script import "/Users/brucecollie/code/scratch/lesson-19-a-kompiled/interpreter.dSYM/Contents/Resources/Python/interpreter.py"
      +
      +To run all discovered debug scripts in this session:
      +
      +    settings set target.load-script-from-symbol-file true
      +
      +Current executable set to '/Users/brucecollie/code/scratch/lesson-19-a-kompiled/interpreter' (x86_64).
      +(lldb) settings set -- target.run-args  ".krun-2023-03-20-11-22-46-TcYt9ffhb2/tmp.in.RupiLwHNfn" "-1" ".krun-2023-03-20-11-22-46-TcYt9ffhb2/result.kore"
      +(lldb) 
      +

      LLDB applies slightly different security policies to GDB. To load K's debugging
      +scripts for this session only, you can run the command script import line at
      +the LLDB prompt. The loaded scripts will not persist across debugging sessions
      +if you do this. It is also possible to configure LLDB to automatically load the
      +K scripts when an interpreter is started in LLDB; doing so requires a slightly
      +less broad permission than GDB.

      +

      On macOS, the .dSYM directory that contains debugging symbols for an
      +executable can also contain Python scripts in Contents/Resources/Python. If
      +there is a Python script with a name matching the name of the current executable
      +(here, interpreter and interpreter.py), it will be automatically loaded if
      +the target.load-script-from-symbol-file setting is set). You can therefore add
      +the settings set command to your ~/.lldbinit without enabling full arbitrary
      +code execution, but you should be aware of the paths from which code can be
      +executed if you do so.

      +

      Basic commands

      + +
      +

      LLDB Note: the k start and k step commands are currently not
      +implemented in the K LLDB scripts. To work around this limitation temporarily,
      +you can run process launch --stop-at-entry instead of k start. To emulate
      +k step, first run rbreak k_step once, then continue instead of each k step. We hope to address these limitations soon.

      +
      +

      The most basic commands you can execute in the K GDB session are to run your
      +program or to step through it. The first can be accomplished using GDB's
      +built-in run command. This will automatically start the program and begin
      +executing it. It will continue until the program aborts or finishes, or the
      +debugger is interrupted with Ctrl-C.

      +

      Sometimes you want finer-grained control over how you proceed through the
      +program you are debugging. To step through the rule applications in your
      +program, you can use the k start and k step GDB commands.

      +

      k start is similar to the built-in start command in that it starts the
      +program and then immediately breaks before doing any work. However, unlike
      +the start command which will break immediately after the main method of
      +a program is executed, the K start program will initialize the rewriter,
      +evaluate the initial configuration, and break immediately prior to applying
      +any rewrite steps.

      +

      In the example above, here is what we see when we run the k start command:

      +
      Temporary breakpoint 1 at 0x239210
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-a-kompiled/interpreter .krun-2021-08-13-14-10-50-sMwBkbRicw/tmp.in.01aQt85TaA -1 .krun-2021-08-13-14-10-50-sMwBkbRicw/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Temporary breakpoint 1, 0x0000000000239210 in main ()
      +0x0000000000231890 in step (subject=<k>
      +  0 ~> .
      +</k>)
      +(gdb)
      +

      As you can see, we are stopped at the step function in the interpreter.
      +This function is responsible for taking top-level rewrite steps. The subject
      +parameter to this function is the current K configuration.

      +

      We can step through K rewrite steps one at a time by running the k step
      +command. By default, this takes a single rewrite step (including any function
      +rule applications that are part of that step).

      +

      Here is what we see when we run that command:

      +
      Continuing.
      +
      +Temporary breakpoint -22, 0x0000000000231890 in step (subject=<k>
      +  1 ~> .
      +</k>)
      +(gdb)
      +

      As we can see, we have taken a single rewrite step. We can also pass a number
      +to the k step command which indicates the number of rewrite steps to take.

      +

      Here is what we see if we run k step 10:

      +
      Continuing.
      +
      +Temporary breakpoint -23, 0x0000000000231890 in step (subject=<k>
      +  11 ~> .
      +</k>)
      +(gdb)
      +

      As we can see, ten rewrite steps were taken.

      +

      Breakpoints

      + +

      The next important step in debugging an application in GDB is to be able to
      +set breakpoints. Generally speaking, there are three types of breakpoints we
      +are interested in a K semantics: Setting a breakpoint when a particular
      +function is called, setting a breakpoint when a particular rule is applied,
      +and setting a breakpoint when a side condition of a rule is evaluated.

      +

      The easiest way to do the first two things is to set a breakpoint on the
      +line of code containing the function or rule.

      +

      For example, consider the following K definition (lesson-19-b.k):

      +
      module LESSON-19-B
      +  imports BOOL
      +
      +  syntax Bool ::= isBlue(Fruit) [function]
      +  syntax Fruit ::= Blueberry() | Banana()
      +  rule isBlue(Blueberry()) => true
      +  rule isBlue(Banana()) => false
      +
      +  rule F:Fruit => isBlue(F)
      +endmodule
      +

      Once this program has been compiled for debugging, we can run the program
      +Blueberry(). We can then set a breakpoint that stops when the isBlue
      +function is called with the following command in GDB:

      +
      break lesson-19-b.k:4
      +

      Similarly, in LLDB, run:

      +
      breakpoint set --file lesson-19-b.k --line 4
      +

      Here is what we see if we set this breakpoint and then run the interpreter:

      +
      (gdb) break lesson-19-b.k:4
      +Breakpoint 1 at 0x231040: file /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b.k, line 4.
      +(gdb) run
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b-kompiled/interpreter .krun-2021-08-13-14-20-27-vXOQmV6lwS/tmp.in.fga98yqXlc -1 .krun-2021-08-13-14-20-27-vXOQmV6lwS/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Breakpoint 1, LblisBlue'LParUndsRParUnds'LESSON-19-B'Unds'Bool'Unds'Fruit (_1=Blueberry ( )) at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b.k:4
      +4         syntax Bool ::= isBlue(Fruit) [function]
      +(gdb)
      +
      (lldb) breakpoint set --file lesson-19-b.k --line 4
      +Breakpoint 1: where = interpreter`LblisBlue'LParUndsRParUnds'LESSON-19-B'Unds'Bool'Unds'Fruit + 20 at lesson-19-b.k:4:19, address = 0x0000000100003ff4
      +(lldb) run
      +Process 50546 launched: '/Users/brucecollie/code/scratch/lesson-19-b-kompiled/interpreter' (x86_64)
      +Process 50546 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
      +    frame #0: 0x0000000100003ff4 interpreter`LblisBlue'LParUndsRParUnds'LESSON-19-B'Unds'Bool'Unds'Fruit(_1=Blueberry ( )) at lesson-19-b.k:4:19
      +   1   	module LESSON-19-B
      +   2   	  imports BOOL
      +   3   	
      +-> 4   	  syntax Bool ::= isBlue(Fruit) [function]
      +   5   	  syntax Fruit ::= Blueberry() | Banana()
      +   6   	  rule isBlue(Blueberry()) => true
      +   7   	  rule isBlue(Banana()) => false
      +(lldb)
      +

      As we can see, we have stopped at the point where we are evaluating that
      +function. The value _1 that is a parameter to that function shows the
      +value passed to the function by the caller.

      +

      We can also break when the isBlue(Blueberry()) => true rule applies by simply
      +changing the line number to the line number of that rule:

      +
      (gdb) break lesson-19-b.k:6
      +Breakpoint 1 at 0x2af710: file /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b.k, line 6.
      +(gdb) run
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b-kompiled/interpreter .krun-2021-08-13-14-32-36-7kD0ic7XwD/tmp.in.8JNH5Qtmow -1 .krun-2021-08-13-14-32-36-7kD0ic7XwD/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Breakpoint 1, apply_rule_138 () at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b.k:6
      +6         rule isBlue(Blueberry()) => true
      +(gdb)
      +
      (lldb) breakpoint set --file lesson-19-b.k --line 6
      +Breakpoint 1: where = interpreter`apply_rule_140 at lesson-19-b.k:6:8, address = 0x0000000100004620
      +(lldb) run
      +Process 50681 launched: '/Users/brucecollie/code/scratch/lesson-19-b-kompiled/interpreter' (x86_64)
      +Process 50681 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
      +    frame #0: 0x0000000100004620 interpreter`apply_rule_140 at lesson-19-b.k:6:8
      +   3   	
      +   4   	  syntax Bool ::= isBlue(Fruit) [function]
      +   5   	  syntax Fruit ::= Blueberry() | Banana()
      +-> 6   	  rule isBlue(Blueberry()) => true
      +   7   	  rule isBlue(Banana()) => false
      +   8   	
      +   9   	  rule F:Fruit => isBlue(F)
      +(lldb) 
      +

      We can also do the same with a top-level rule:

      +
      (gdb) break lesson-19-b.k:9
      +Breakpoint 1 at 0x2aefa0: lesson-19-b.k:9. (2 locations)
      +(gdb) run
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b-kompiled/interpreter .krun-2021-08-13-14-33-13-9fC8Sz4aO3/tmp.in.jih1vtxSiQ -1 .krun-2021-08-13-14-33-13-9fC8Sz4aO3/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Breakpoint 1, apply_rule_107 (Var'Unds'DotVar0=<generatedCounter>
      +  0
      +</generatedCounter>, Var'Unds'DotVar1=., VarF=Blueberry ( )) at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b.k:9
      +9         rule F:Fruit => isBlue(F)
      +(gdb)
      +
      (lldb) breakpoint set --file lesson-19-b.k --line 9
      +Breakpoint 1: 2 locations.
      +(lldb) run
      +Process 50798 launched: '/Users/brucecollie/code/scratch/lesson-19-b-kompiled/interpreter' (x86_64)
      +Process 50798 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
      +    frame #0: 0x0000000100003f2e interpreter`apply_rule_109(Var'Unds'DotVar0=<generatedCounter>
      +  0
      +</generatedCounter>, Var'Unds'DotVar1=., VarF=Blueberry ( )) at lesson-19-b.k:9:8
      +   6   	  rule isBlue(Blueberry()) => true
      +   7   	  rule isBlue(Banana()) => false
      +   8   	
      +-> 9   	  rule F:Fruit => isBlue(F)
      +   10  	endmodule
      +(lldb)  
      +

      Unlike the function rule above, we see several parameters to this function.
      +These are the substitution that was matched for the function. Variables only
      +appear in this substitution if they are actually used on the right-hand side
      +of the rule.

      +

      Advanced breakpoints

      + +

      Sometimes it is inconvenient to set the breakpoint based on a line number.

      +

      It is also possible to set a breakpoint based on the rule label of a particular
      +rule. Consider the following definition (lesson-19-c.k):

      +
      module LESSON-19-C
      +  imports INT
      +  imports BOOL
      +
      +  syntax Bool ::= isEven(Int) [function]
      +  rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0
      +  rule [isOdd]: isEven(I) => false requires I %Int 2 =/=Int 0
      +
      +endmodule
      +

      We will run the program isEven(4). We can set a breakpoint for when a rule
      +applies by means of the MODULE-NAME.label.rhs syntax:

      +
      (gdb) break LESSON-19-C.isEven.rhs
      +Breakpoint 1 at 0x2afda0: file /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k, line 6.
      +(gdb) run
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c-kompiled/interpreter .krun-2021-08-13-14-40-29-LNNT8YEZ61/tmp.in.ZG93vWCGGC -1 .krun-2021-08-13-14-40-29-LNNT8YEZ61/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Breakpoint 1, LESSON-19-C.isEven.rhs () at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k:6
      +6         rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0
      +(gdb)
      +
      (lldb) breakpoint set --name LESSON-19-C.isEven.rhs
      +Breakpoint 1: where = interpreter`LESSON-19-C.isEven.rhs at lesson-19-c.k:6:18, address = 0x00000001000038e0
      +(lldb) run
      +Process 51205 launched: '/Users/brucecollie/code/scratch/lesson-19-c-kompiled/interpreter' (x86_64)
      +Process 51205 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
      +    frame #0: 0x00000001000038e0 interpreter`LESSON-19-C.isEven.rhs at lesson-19-c.k:6:18
      +   3   	  imports BOOL
      +   4   	
      +   5   	  syntax Bool ::= isEven(Int) [function]
      +-> 6   	  rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0
      +   7   	  rule [isOdd]: isEven(I) => false requires I %Int 2 =/=Int 0
      +   8   	
      +   9   	endmodule
      +(lldb) 
      +

      We can also set a breakpoint for when a rule's side condition is evaluated
      +by means of the MODULE-NAME.label.sc syntax:

      +
      (gdb) break LESSON-19-C.isEven.sc
      +Breakpoint 1 at 0x2afd70: file /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k, line 6.
      +(gdb) run
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c-kompiled/interpreter .krun-2021-08-13-14-41-48-1BoGfJRbYc/tmp.in.kg4F8cwfCe -1 .krun-2021-08-13-14-41-48-1BoGfJRbYc/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Breakpoint 1, LESSON-19-C.isEven.sc (VarI=4) at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k:6
      +6         rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0
      +(gdb) finish
      +Run till exit from #0  LESSON-19-C.isEven.sc (VarI=4) at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k:6
      +0x00000000002b2662 in LblisEven'LParUndsRParUnds'LESSON-19-C'Unds'Bool'Unds'Int (_1=4) at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k:5
      +5         syntax Bool ::= isEven(Int) [function]
      +Value returned is $1 = true
      +(gdb)
      +
      (lldb) breakpoint set --name LESSON-19-C.isEven.sc
      +Breakpoint 1: where = interpreter`LESSON-19-C.isEven.sc + 1 at lesson-19-c.k:6:18, address = 0x00000001000038c1
      +(lldb) run
      +Process 52530 launched: '/Users/brucecollie/code/scratch/lesson-19-c-kompiled/interpreter' (x86_64)
      +Process 52530 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
      +    frame #0: 0x00000001000038c1 interpreter`LESSON-19-C.isEven.sc(VarI=0x0000000101800088) at lesson-19-c.k:6:18
      +   3   	  imports BOOL
      +   4   	
      +   5   	  syntax Bool ::= isEven(Int) [function]
      +-> 6   	  rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0
      +   7   	  rule [isOdd]: isEven(I) => false requires I %Int 2 =/=Int 0
      +   8   	
      +   9   	endmodule
      +(lldb) finish
      +Process 52649 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = step out
      +Return value: (bool) $0 = true
      +
      +    frame #0: 0x00000001000069e5 interpreter`LblisEven'LParUndsRParUnds'LESSON-19-C'Unds'Bool'Unds'Int(_1=0x0000000101800088) at lesson-19-c.k:5:19
      +   2   	  imports INT
      +   3   	  imports BOOL
      +   4   	
      +-> 5   	  syntax Bool ::= isEven(Int) [function]
      +   6   	  rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0
      +   7   	  rule [isOdd]: isEven(I) => false requires I %Int 2 =/=Int 0
      +   8
      +(lldb)
      +

      Here we have used the built-in command finish to tell us whether the side
      +condition returned true or not. Note that once again, we see the substitution
      +that was matched from the left-hand side. Like before, a variable will only
      +appear here if it is used in the side condition.

      +

      Debugging rule matching

      + +

      Sometimes it is useful to try to determine why a particular rule did or did
      +not apply. K provides some basic debugging commands which make it easier
      +to determine this.

      +

      Consider the following K definition (lesson-19-d.k):

      +
      module LESSON-19-D
      +
      +  syntax Foo ::= foo(Bar)
      +  syntax Bar ::= bar(Baz) | bar2(Baz)
      +  syntax Baz ::= baz() | baz2()
      +
      +  rule [baz]: foo(bar(baz())) => .K
      +
      +endmodule
      +

      Suppose we try to run the program foo(bar(baz2())). It is obvious from this
      +example why the rule in this definition will not apply. However, in practice,
      +such cases are not always obvious. You might look at a rule and not immediately
      +spot why it didn't apply on a particular term. For this reason, it can be
      +useful to get the debugger to provide a log about how it tried to match that
      +term. You can do this with the k match command. If you are stopped after
      +having run k start or k step, you can obtain this log for any rule after
      +any step by running the command k match MODULE.label subject for a particular
      +top-level rule label.

      +

      For example, with the baz rule above, we get the following output:

      +
      (gdb) k match LESSON-19-D.baz subject
      +Subject:
      +baz2 ( )
      +does not match pattern:
      +baz ( )
      +
      (lldb) k match LESSON-19-D.baz subject
      +Subject:
      +baz2 ( )
      +does not match pattern:
      +baz ( )
      +

      As we can see, it provided the exact subterm which did not match against the
      +rule, as well as the particular subpattern it ought to have matched against.

      +

      This command does not actually take any rewrite steps. In the event that
      +matching actually succeeds, you will still need to run the k step command
      +to advance to the next step.

      +

      Final notes

      + +

      In addition to the functionality provided above, you have the full power of
      +GDB or LLDB at your disposal when debugging. Some features are not particularly
      +well-adapted to K code and may require more advanced knowledge of the
      +term representation or implementation to use effectively, but anything that
      +can be done in GDB or LLDB can in theory be done using this debugging functionality.
      +We suggest you refer to the
      +GDB Documentation or
      +LLDB Tutorial if you
      +want to try to do something and are unsure as to how.

      +

      Exercises

      + +
        +
      1. Compile your solution to Lesson 1.18, Exercise 2 with debugging support
        +enabled and step through several programs you have previously used to test.
        +Then set a breakpoint on the isKResult function and observe the state of the
        +interpreter when stopped at that breakpoint. Set a breakpoint on the rule for
        +addition and run a program that causes it to be stopped at that breakpoint.
        +Finally, step through the program until the addition symbol is at the top
        +of the K cell, and then use the k match command to report the reason why
        +the subtraction rule does not apply. You may need to modify the definition
        +to insert some rule labels.
      2. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.20: K Backends and the Haskell Backend.

      +

      Lesson 1.20: K Backends and the Haskell Backend

      + +

      The purpose of this lesson is to teach about the multiple backends of K,
      +in particular the Haskell Backend which is the complement of the backend we
      +have been using so far.

      +

      K Backends

      + +

      Thus far, we have not discussed the distinction between the K frontend and
      +the K backends at all. We have simply assumed that if you run kompile on a
      +K definition, there will be a compiler backend that will allow you to execute
      +the K definition you have compiled.

      +

      K actually has multiple different backends. The one we have been using so far
      +implicitly, the default backend, is called the LLVM Backend. It is
      +designed to support efficient, optimized concrete execution and search. It
      +does this by compiling your K definition to LLVM bitcode and then using LLVM
      +to generate machine code for it that is compiled and linked and executed.
      +However, K is a formal methods toolkit at the end of the day, and the primary
      +goal many people have when defining a programming language in K is to
      +ultimately be able to perform more advanced verification on programs in their
      +programming language.

      +

      It is for this purpose that K also provides the Haskell Backend, so called
      +because it is implemented in Haskell. While we will cover the features of the
      +Haskell Backend in more detail in the next two lessons, the important thing to
      +understand is that it is a separate backend which is optimized for more formal
      +reasoning about programming languages. While it is capable of performing
      +concrete execution, it does not do so as efficiently as the LLVM Backend.
      +In exchange, it provides more advanced features.

      +

      Choosing a backend

      + +

      You can choose which backend to use to compile a K definition by means of the
      +--backend flag to kompile. By default, if you do not specify this flag, it
      +is equivalent to if you had specified --backend llvm. However, to use the
      +Haskell Backend instead, you can simply say kompile --backend haskell on a
      +particular K definition.

      +

      As an example, here is a simple K definition that we have seen before in the
      +previous lesson (lesson-20.k):

      +
      module LESSON-20
      +  imports INT
      +
      +  rule I => I +Int 1
      +    requires I <Int 100
      +endmodule
      +

      Previously we compiled this definition using the LLVM Backend, but if we
      +instead execute the command kompile lesson-20.k --backend haskell, we
      +will get an interpreter for this K definition that is implemented in Haskell
      +instead. Unlike the default LLVM Backend, the Haskell Backend is not a
      +compiler per se. It does not generate new Haskell code corresponding to your
      +programming language and then compile and execute it. Instead, it is an
      +interpreter which reads the generated IR from kompile and implements in
      +Haskell an interpreter that is capable of interpreting any K definition.

      +

      Note that on arm64 macOS (Apple Silicon), there is a known issue with the Compact
      +library that causes crashes in the Haskell backend. Pass the additional flag
      +--no-haskell-binary to kompile to resolve this.
      +This flag is also needed when using krun.

      +

      Exercise

      + +

      Try running the program 0 in this K definition on the Haskell Backend and
      +compare the final configuration to what you would get compiling the same
      +definition with the LLVM Backend.

      +

      Legacy backends

      + +

      As a quick note, K does provide one other backend, which exists primarily as
      +legacy code which should be considered deprecated. This is the
      +Java Backend. The Java Backend is essentially a precursor to the Haskell
      +Backend. We will not cover this backend in any detail since it is deprecated,
      +but we still mention it here for the purposes of understanding.

      +

      Exercises

      + +
        +
      1. Compile your solution to Lesson 1.18, Exercise 2 with the Haskell Backend
        +and execute some programs. Compare the resulting configurations with the
        +output of the same program on the LLVM Backend. Note that if you are getting
        +different behaviors on the Haskell backend, you might have some luck debugging
        +by passing --search to krun when using the LLVM backend.
      2. +
      +

      Next lesson

      + +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.21: Unification and Symbolic Execution.

      +

      Lesson 1.21: Unification and Symbolic Execution

      + +

      The purpose of this lesson is to teach the basic concepts of symbolic execution
      +in order to introduce the unique capabilities of the Haskell Backend at a
      +conceptual level.

      +

      Symbolic Execution

      + +

      Thus far, all of the programs we have run using K have been concrete
      +configurations. What this means is that the configuration we use to initialize
      +the K rewrite engine is concrete; in other words, contains no logical
      +variables. The LLVM Backend is a concrete execution engine, meaning that
      +it is only capable of rewriting concrete configurations.

      +

      By contrast, the Haskell Backend performs symbolic execution, which is
      +capable of rewriting any configuration, including those where parts of the
      +configuration are symbolic, ie, contain variables or uninterpreted
      +functions.

      +

      Unification

      + +

      Previously, we have introduced the concept that K rewrite rules operate by
      +means of pattern matching: the current configuration being rewritten is pattern
      +matched against the left-hand side of the rewrite rule, and the substitution
      +is used in order to construct a new term from the right-hand side. In symbolic
      +execution, we use
      +unification
      +instead of pattern matching. To summarize, unification behaves akin to a
      +two-way pattern matching where both the configuration and the left-hand side
      +of the rule can contain variables, and the algorithm generates a
      +most general unifier containing substitutions for the variables in both
      +which will make both terms equal.

      +

      Feasibility

      + +

      Unification by itself cannot completely solve the problem of symbolic
      +execution. One task symbolic execution must perform is to identify whether
      +a particular symbolic term is feasible, that is to say, that there actually
      +exists a concrete instantiation of that term such that all the logical
      +constraints on that term can actually be satisfied. The Haskell Backend
      +delegates this task to Z3, an
      +SMT solver.
      +This solver is used to periodically trim configurations that are determined
      +to be mathematically infeasible.

      +

      Symbolic terms

      + +

      The final component of symbolic execution consists of the task of introducing
      +symbolic terms into the configuration. This can be done one of two different
      +ways. First, the term being passed to krun can actually be symbolic. This
      +is less frequently used because it requires the user to construct an AST
      +that contains variables, something which our current parsing capabilities are
      +not well-equipped to do. The second, more common, way of introducing symbolic
      +terms into a configuration consists of writing rules where there exists an
      +existentially qualified variable on the right-hand side of the rule that does
      +not exist on the left-hand side of the rule.

      +

      In order to prevent users from writing such rules by accident, K requires
      +that such variables begin with the ? prefix. For example, here is a rule
      +that rewrites a constructor foo to a symbolic integer:

      +
      rule <k> foo => ?X:Int ...</k>
      +

      When this rule applies, a fresh variable is introduced to the configuration, which
      +then is unified against the rules that might apply in order to symbolically
      +execute that configuration.

      +

      ensures clauses

      + +

      We also introduce here a new feature of K rules that applies when a rule
      +has this type of variable on the right-hand side: the ensures clause.
      +An ensures clause is similar to a requires clause and can appear after
      +a rule body, or after a requires clause. The ensures clause is used to
      +introduce constraints that might apply to the variable that was introduced by
      +that rule. For example, we could write the rule above with the additional
      +constraint that the symbolic integer that was introduced must be less than
      +five, by means of the following rule:

      +
      rule <k> foo => ?X:Int ...</k> ensures ?X <Int 5
      +

      Putting it all together

      + +

      Putting all these pieces together, it is possible to use the Haskell Backend
      +to perform symbolic reasoning about a particular K module, determining all the
      +possible states that can be reached by a symbolic configuration.

      +

      For example, consider the following K definition (lesson-21.k):

      +
      module LESSON-21
      +    imports INT
      +
      +    rule <k> 0 => ?X:Int ... </k> ensures ?X =/=Int 0
      +    rule <k> X:Int => 5  ... </k> requires X >=Int 10
      +endmodule
      +

      When we symbolically execute the program 0, we get the following output
      +from the Haskell Backend:

      +
          <k>
      +      5 ~> .
      +    </k>
      +  #And
      +    {
      +      true
      +    #Equals
      +      ?X:Int >=Int 10
      +    }
      +  #And
      +    #Not ( {
      +      ?X:Int
      +    #Equals
      +      0
      +    } )
      +#Or
      +    <k>
      +      ?X:Int ~> .
      +    </k>
      +  #And
      +    #Not ( {
      +      true
      +    #Equals
      +      ?X:Int >=Int 10
      +    } )
      +  #And
      +    #Not ( {
      +      ?X:Int
      +    #Equals
      +      0
      +    } )
      +

      Note some new symbols introduced by this configuration: #And, #Or, and
      +#Equals. While andBool, orBool, and ==K represent functions of sort
      +Bool, #And, #Or, and #Equals are matching logic connectives. We
      +will discuss matching logic in more detail later in the tutorial, but the basic
      +idea is that these symbols represent Boolean operators over the domain of
      +configurations and constraints, as opposed to over the Bool sort.

      +

      Notice that the configuration listed above is a disjunction of conjunctions.
      +This is the most common form of output that can be produced by the Haskell
      +Backend. In this case, each conjunction consists of a configuration and a set
      +of constraints. What this conjunction describes, essentially, is a
      +configuration and a set of information that was derived to be true while
      +rewriting that configuration.

      +

      Similar to how we saw --search in a previous lesson, the reason we have
      +multiple disjuncts is because there are multiple possible output states
      +for this program, depending on whether or not the second rule applied. In the
      +first case, we see that ?X is greater than or equal to 10, so the second rule
      +applied, rewriting the symbolic integer to the concrete integer 5. In the
      +second case, we see that the second rule did not apply because ?X is less
      +than 10. Moreover, because of the ensures clause on the first rule, we know
      +that ?X is not zero, therefore the first rule will not apply a second time.
      +If we had omitted this constraint, we would have ended up infinitely applying
      +the first rule, leading to krun not terminating.

      +

      In the next lesson, we will cover how symbolic execution forms the backbone
      +of deductive program verification in K and how we can use K to prove programs
      +correct against a specification.

      +

      Exercises

      + +
        +
      1. Create another rule in LESSON-21 that rewrites odd integers greater than
        +ten to a symbolic even integer less than 10 and greater than 0. This rule will
        +now apply nondeterministically along with the existing rules. Predict what the
        +resulting output configuration will be from rewriting 0 after adding this
        +rule. Then run the program and see whether your prediction is correct.
      2. +
      +

      Once you have completed the above exercises, you can continue to
      +Lesson 1.22: Basics of Deductive Program Verification using K.

      +

      Lesson 1.22: Basics of Deductive Program Verification using K

      + +

      In this lesson, you will familiarize yourself with the basics of using K for
      +deductive program verification.

      +

      1. Setup: Simple Programming Language with Function Calls

      + +

      We base this lesson on a simple programming language with functions,
      +assignment, if conditionals, and while loops. Take your time to study its
      +formalization below (lesson-22.k):

      +
      module LESSON-22-SYNTAX
      +    imports INT-SYNTAX
      +    imports BOOL-SYNTAX
      +    imports ID-SYNTAX
      +
      +    syntax Exp ::= IExp | BExp
      +
      +    syntax IExp ::= Id | Int
      +
      +    syntax KResult ::= Int | Bool | Ints
      +
      +    // Take this sort structure:
      +    //
      +    //     IExp
      +    //    /    \
      +    // Int      Id
      +    //
      +    // Through the List{_, ","} functor.
      +    // Must add a `Bot`, for a common subsort for the empty list.
      +
      +    syntax Bot
      +    syntax Bots ::= List{Bot, ","} [klabel(exps)]
      +    syntax Ints ::= List{Int, ","} [klabel(exps)]
      +                  | Bots
      +    syntax Ids  ::= List{Id, ","}  [klabel(exps)]
      +                  | Bots
      +    syntax Exps ::= List{Exp, ","} [klabel(exps), seqstrict]
      +                  | Ids | Ints
      +
      +    syntax IExp ::= "(" IExp ")" [bracket]
      +                  | IExp "+" IExp [seqstrict]
      +                  | IExp "-" IExp [seqstrict]
      +                  > IExp "*" IExp [seqstrict]
      +                  | IExp "/" IExp [seqstrict]
      +                  > IExp "^" IExp [seqstrict]
      +                  | Id "(" Exps ")" [strict(2)]
      +
      +    syntax BExp ::= Bool
      +
      +    syntax BExp ::= "(" BExp ")" [bracket]
      +                  | IExp "<=" IExp [seqstrict]
      +                  | IExp "<"  IExp [seqstrict]
      +                  | IExp ">=" IExp [seqstrict]
      +                  | IExp ">"  IExp [seqstrict]
      +                  | IExp "==" IExp [seqstrict]
      +                  | IExp "!=" IExp [seqstrict]
      +
      +    syntax BExp ::= BExp "&&" BExp
      +                  | BExp "||" BExp
      +
      +    syntax Stmt ::=
      +         Id "=" IExp ";" [strict(2)]                        // Assignment
      +       | Stmt Stmt [left]                                   // Sequence
      +       | Block                                              // Block
      +       | "if" "(" BExp ")" Block "else" Block [strict(1)]   // If conditional
      +       | "while" "(" BExp ")" Block                         // While loop
      +       | "return" IExp ";"                    [seqstrict]   // Return statement
      +       | "def" Id "(" Ids ")" Block                         // Function definition
      +
      +    syntax Block ::=
      +         "{" Stmt "}"    // Block with statement
      +       | "{" "}"         // Empty block
      +endmodule
      +
      +module LESSON-22
      +    imports INT
      +    imports BOOL
      +    imports LIST
      +    imports MAP
      +    imports LESSON-22-SYNTAX
      +
      +    configuration
      +      <k> $PGM:Stmt </k>
      +      <store> .Map </store>
      +      <funcs> .Map </funcs>
      +      <stack> .List </stack>
      +
      + // -----------------------------------------------
      +    rule <k> I1 + I2 => I1 +Int I2 ... </k>
      +    rule <k> I1 - I2 => I1 -Int I2 ... </k>
      +    rule <k> I1 * I2 => I1 *Int I2 ... </k>
      +    rule <k> I1 / I2 => I1 /Int I2 ... </k>
      +    rule <k> I1 ^ I2 => I1 ^Int I2 ... </k>
      +
      +    rule <k> I:Id => STORE[I] ... </k>
      +         <store> STORE </store>
      +
      + // ------------------------------------------------
      +    rule <k> I1 <= I2 => I1  <=Int I2 ... </k>
      +    rule <k> I1  < I2 => I1   <Int I2 ... </k>
      +    rule <k> I1 >= I2 => I1  >=Int I2 ... </k>
      +    rule <k> I1  > I2 => I1   >Int I2 ... </k>
      +    rule <k> I1 == I2 => I1  ==Int I2 ... </k>
      +    rule <k> I1 != I2 => I1 =/=Int I2 ... </k>
      +
      +    rule <k> B1 && B2 => B1 andBool B2 ... </k>
      +    rule <k> B1 || B2 => B1  orBool B2 ... </k>
      +
      +    rule <k> S1:Stmt S2:Stmt => S1 ~> S2 ... </k>
      +
      +    rule <k> ID = I:Int ; => . ... </k>
      +         <store> STORE => STORE [ ID <- I ] </store>
      +
      +    rule <k> { S } => S ... </k>
      +    rule <k> {   } => . ... </k>
      +
      +    rule <k> if (true)   THEN else _ELSE => THEN ... </k>
      +    rule <k> if (false) _THEN else  ELSE => ELSE ... </k>
      +
      +    rule <k> while ( BE ) BODY => if ( BE ) { BODY while ( BE ) BODY } else { } ... </k>
      +
      +    rule <k> def FNAME ( ARGS ) BODY => . ... </k>
      +         <funcs> FS => FS [ FNAME <- def FNAME ( ARGS ) BODY ] </funcs>
      +
      +    rule <k> FNAME ( IS:Ints ) ~> CONT => #makeBindings(ARGS, IS) ~> BODY </k>
      +         <funcs> ... FNAME |-> def FNAME ( ARGS ) BODY ... </funcs>
      +         <store> STORE => .Map </store>
      +         <stack> .List => ListItem(state(CONT, STORE)) ... </stack>
      +
      +    rule <k> return I:Int ; ~> _ => I ~> CONT </k>
      +         <stack> ListItem(state(CONT, STORE)) => .List ... </stack>
      +         <store> _ => STORE </store>
      +
      +    rule <k> return I:Int ; ~> . => I </k>
      +         <stack> .List </stack>
      +
      +    syntax KItem ::= #makeBindings(Ids, Ints)
      +                   | state(continuation: K, store: Map)
      + // ----------------------------------------------------
      +    rule <k> #makeBindings(.Ids, .Ints) => . ... </k>
      +    rule <k> #makeBindings((I:Id, IDS => IDS), (IN:Int, INTS => INTS)) ... </k>
      +         <store> STORE => STORE [ I <- IN ] </store>
      +endmodule
      +

      Next, compile this example using kompile lesson-22.k --backend haskell. If
      +your processor is an Apple Silicon processor, add the --no-haskell-binary
      +flag if the compilation fails.

      +

      2. Setup: Proof Environment

      + +

      Next, take the following snippet of K code and save it in lesson-22-spec.k.
      +This is a skeleton of the proof environment, and we will complete it as the
      +lesson progresses.

      +
      requires "lesson-22.k"
      +requires "domains.md"
      +
      +module LESSON-22-SPEC-SYNTAX
      +    imports LESSON-22-SYNTAX
      +
      +endmodule
      +
      +module VERIFICATION
      +    imports K-EQUAL
      +    imports LESSON-22-SPEC-SYNTAX
      +    imports LESSON-22
      +    imports MAP-SYMBOLIC
      +
      +endmodule
      +
      +module LESSON-22-SPEC
      +    imports VERIFICATION
      +
      +endmodule
      +

      3. Claims

      + +
        +
      1. The first claim we will ask K to prove is that 3 + 4, in fact, equals 7.
        +Claims are stated using the claim keyword, followed by the claim
        +statement:
      2. +
      +
      claim <k> 3 + 4 => 7 ... </k>
      +

      Add this claim to the LESSON-22-SPEC module and run the K prover using the
      +command kprove lesson-22-spec.k. You should get back the output #Top,
      +which denotes the Matching Logic equivalent of true and means, in this
      +context, that all claims have been proven correctly.

      +
        +
      1. The second claim reasons about the if statement that has a concrete condition:
      2. +
      +
      claim <k> if ( 3 + 4 == 7 ) {
      +            $a = 1 ;
      +            } else {
      +            $a = 2 ;
      +            }
      +        => . ... </k>
      +        <store> STORE => STORE [ $a <- 1 ] </store>
      +

      stating that the given program terminates (=> .), and when it does, the value
      +of the variable $a is set to 1, meaning that the execution will have taken
      +the then branch. Add this claim to the LESSON-22-SPEC module, but also add

      +
      syntax Id ::= "$a" [token]
      +

      to the LESSON-22-SPEC-SYNTAX module in order to declare $a as a token so
      +that it can be used as a program variable. Re-run the K prover, which should
      +again return #Top.

      +
        +
      1. Our third claim demonstrates how to reason about both branches of an if
        +statement at the same time:
      2. +
      +
      claim <k> $a = A:Int ; $b = B:Int ;
      +          if ($a < $b) {
      +            $c = $b ;
      +          } else {
      +            $c = $a ;
      +          }
      +        => . ... </k>
      +        <store> STORE => STORE [ $a <- A ] [ $b <- B ] [ $c <- ?C:Int ] </store>
      +    ensures (?C ==Int A) orBool (?C ==Int B)
      +

      The program in question first assigns symbolic integers A and B to program
      +variables $a and $b, respectively, and then executes the given if
      +statement, which has a symbolic condition (A < B), updating the value of the
      +program variable $c in both branches. The specification we give states that
      +the if statement terminates, with $a and $b updated, respectively, to A
      +and B, and $c updated to some symbolic integer value ?C. Via the
      +ensures clause, which is used to specify additional constraints that hold
      +after execution, we also state that this existentially quantified ?C equals
      +either A or B.

      +

      Add the productions declaring $b and $c as tokens to the
      +LESSON-22-SPEC-SYNTAX module, the claim to the LESSON-22-SPEC module, run
      +the K prover again, and observe the output, which should not be #Top this
      +time. This means that K was not able to prove the claim, and we now need to
      +understand why. We do so by examining the output, which should look as follows:

      +
          (InfoReachability) while checking the implication:
      +    The configuration's term unifies with the destination's term,
      +    but the implication check between the conditions has failed.
      +
      +  #Not (
      +    #Exists ?C . {
      +        STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- ?C:Int ]
      +      #Equals
      +        STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- B:Int ]
      +    }
      +  #And
      +    {
      +      true
      +    #Equals
      +      ?C ==Int A orBool ?C ==Int B
      +    }
      +  )
      +#And
      +  <generatedTop>
      +    <k>
      +      _DotVar1
      +    </k>
      +    <store>
      +      STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- B:Int ]
      +    </store>
      +    <funcs>
      +      _Gen3
      +    </funcs>
      +    <stack>
      +      _Gen5
      +    </stack>
      +  </generatedTop>
      +#And
      +  {
      +    true
      +  #Equals
      +    A <Int B
      +  }
      +

      This output starts with a message telling us at which point the proof failed,
      +followed by the final state, which consists of three parts: some negative
      +Matching Logic (ML) constraints, the final configuration (<generatedTop> ... </generatedTop>), and some positive ML constraints. Generally speaking,
      +these positive and the negative constraints could arise from various sources,
      +such as (but not limited to) branches taken by the execution
      +(e.g. { true #Equals A <Int B } or #Not ( { true #Equals A <Int B } )),
      +or ensures constraints.

      +

      First, we examine the message:

      +
      (InfoReachability) while checking the implication:
      +The configuration's term unifies with the destination's term,
      +but the implication check between the conditions has failed.
      +

      which tells us that the structure of the final configuration is as expected,
      +but that some of the associated constraints cannot be proven. We next look at
      +the final configuration, in which the relevant item is the <store> ... </store> cell, because it is the only one that we are reasoning about. By
      +inspecting its contents:

      +
      STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- B:Int ]
      +

      we see that we should be within the constraints of the ensures, since the
      +value of $c in the store equals B in this branch. We next examine the
      +negative and positive constraints of the output and, more often than not, the
      +goal is to instruct K how to use the information from the final configuration
      +and the positive constraints to falsify one of the negative constraints. This
      +is done through simplifications.

      +

      So, the positive constraint that we have is

      +
      { true #Equals A <Int B }
      +

      meaning that A <Int B holds. Given the analysed program, this tells us that
      +we are in the then branch of the if. The negative constraint is

      +
        #Not (
      +    #Exists ?C . {
      +        STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- ?C:Int ]
      +      #Equals
      +        STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- B:Int ]
      +    }
      +  #And
      +    { true #Equals ?C ==Int A orBool ?C ==Int B }
      +  )
      +

      and we observe, from the first equality, that the existential ?C should be
      +instantiated with B. This would make both branches of the #And true,
      +falsifying the outside #Not. We just need to show K how to conclude that
      +?C ==Int B. We do so by introducing the following simplification into the
      +VERIFICATION module:

      +
      rule { M:Map [ K <- V ] #Equals M [ K <- V' ] } => { V #Equals V' } [simplification]
      +

      which formalizes our internal understanding of ?C ==Int B. The rule states
      +that when we update the same key in the same map with two values, and the
      +resulting maps are equal, then the two values must be equal as well. The
      +[simplification] attribute indicates to K to use this rule to simplify the
      +state when trying to prove claims. Like function rules, simplification rules
      +do not complete to the top of the configuration, but instead apply anywhere
      +their left-hand-side matches. Re-run the K prover, which should now return
      +#Top, indicating that K was able to use the simplification and prove the
      +required claims.

      +
        +
      1. Next, we show how to state and prove properties of while loops. In
        +particular, we consider the following loop
      2. +
      +
      claim
      +    <k>
      +        while ( 0 < $n ) {
      +            $s = $s + $n;
      +            $n = $n - 1;
      +            } => . ...
      +    </k>
      +    <store>
      +        $s |-> (S:Int => S +Int ((N +Int 1) *Int N /Int 2))
      +        $n |-> (N:Int => 0)
      +    </store>
      +    requires N >=Int 0
      +

      which adds the sum of the first $n integers to $s, assuming the value of $n
      +is non-negative to begin with. This is reflected in the store by stating that,
      +after the execution of the loop, the original value of $s (which is set to
      +equal some symbolic integer S) is incremented by ((N +Int 1) *Int N /Int 2), and the value of $n always equals 0. Add $n and $s as tokens in
      +the LESSON-22-SPEC-SYNTAX module, the above claim to the LESSON-22-SPEC
      +module, and run the K prover, which should return #Top.

      +
        +
      1. Finally, our last claim is about a program that uses function calls:
      2. +
      +
      claim
      +    <k>
      +        def $sum($n, .Ids) {
      +            $s = 0 ;
      +            while (0 < $n) {
      +                $s = $s + $n;
      +                $n = $n - 1;
      +            }
      +            return $s;
      +        }
      +
      +        $s = $sum(N:Int, .Ints);
      +    => . ... </k>
      +    <funcs> .Map => ?_ </funcs>
      +    <store> $s |-> (_ => ((N +Int 1) *Int N /Int 2)) </store>
      +    <stack> .List </stack>
      +    requires N >=Int 0
      +

      Essentially, we have wrapped the while loop from claim 3.4 into a function
      +$sum, and then called that function with a symbolic integer N, storing the
      +return value in the variable $s. The specification states that this program
      +ends up storing the sum of the first N integers in the variable $n. Add $sum
      +to the LESSON-22-SPEC-SYNTAX module, the above claim to the
      +LESSON-22-SPEC module, and run the K prover, which should again return
      +#Top.

      +

      Exercises

      + +
        +
      1. +

        Change the condition of the if statement in part 3.2 to take the else
        +branch and adjust the claim so that the proof passes.

        +
      2. +
      3. +

        The post-condition of the specification in part 3.3 loses some information.
        +In particular, the value of ?C is in fact the maximum of A and B.
        +Prove the same claim as in 3.2, but with the post-condition ensures (?C ==Int maxInt(A, B)). For this, you will need to extend the VERIFICATION
        +module with two simplifications that capture the meaning of maxInt(A:Int, B:Int). Keep in mind that any rewriting rule can be used as a
        +simplification; in particular, that simplifications can have requires
        +clauses.

        +
      4. +
      5. +

        Following the pattern shown in part 3.4, assuming a non-negative initial
        +value of $b, specify and verify the following while loop:

        +
      6. +
      +
      while ( 0 < $b ) {
      +    $a = $a + $c;
      +    $b = $b - 1;
      +    $c = $c - 1;
      +}
      +

      Hint: You will not need additional simplifications---once you've got the
      +specification right, the proof will go through.

      +
        +
      1. Write an arbitrary yet not-too-complex function (or several functions
        +interacting with each other), and try to specify and verify it (them) in K.
      2. +
      +

      Section 2: Intermediate K Concepts

      + +

      The goal of this second section is to supplement a beginning developer's
      +knowledge of K after they have gained a basic understanding of K. Each lesson
      +in this section can be completed independently in order to learn about a
      +particular facet of the K language. The lessons are written to provide basic
      +understanding of less commonly-used features of K to someone who is still
      +learning K. For more complete references of these features, the reader ought to
      +consult the User Manual.

      +

      The reader ought to be able to complete lessons in this section as needed in
      +order to learn about specific features of interest, but if desired, can also
      +complete the entire section in one go. Someone who has completed this entire
      +section ought to be able to read and understand most K specifications, as well
      +as write their own specifications of some complexity, and use them to perform
      +most common K-related tasks. They can then read about specific lessons in
      +Section 3: Advanced K Concepts if they want to
      +learn more.

      +

      Table of Contents

      + +
        +
      1. Macros, Aliases, and Anywhere Rules
      2. +
      3. Fresh Constants
      4. +
      5. KLabels and Abstract Syntax
      6. +
      7. Overloaded Symbols
      8. +
      9. Matching Logic Connectives and #Or Patterns
      10. +
      11. Function Context
      12. +
      13. Record Productions and Named Nonterminals
      14. +
      15. #fun and #let
      16. +
      17. #as patterns
      18. +
      19. The Matching Operators, :=K and :/=K
      20. +
      21. Uncommon Evaluation Order Concepts
      22. +
      23. IEEE 754 Floating Point and Fixed Width Integers
      24. +
      25. Alpha-renaming-aware Substitution
      26. +
      27. File I/O
      28. +
      29. String Buffers and Byte Sequences
      30. +
      31. The Intermediate Language of K, KORE
      32. +
      33. Debugging Proofs using the Haskell Backend REPL
      34. +
      +

      Lesson 2.1: Macros, Aliases, and Anywhere Rules

      + +

      The purpose of this lesson is to explain the behavior of the macro,
      +macro-rec, alias, and alias-rec production attributes, as well as the
      +anywhere rule attribute. These attributes control the meaning of how rules
      +associated with them are applied.

      +

      Macros

      + +

      Thus far in the K tutorial, we have described three different types of rules:

      +
        +
      1. Top-level rewrite rules, which rewrite a configuration composed of cells to
        +another configuration;
      2. +
      3. Function rules, which define the behavior of a function written over
        +arbitrary input and output types; and
      4. +
      5. Simplification rules, which describe ways in which the symbolic execution
        +engine ought to simplify terms containing symbolic values.
      6. +
      +

      This lesson introduces three more types of rules, the first of which are
      +macros. A production is a macro if it has the macro attribute, and all
      +rules whose top symbol on the left hand side is a macro are macro rules
      +which define the behavior of the macro. Like function rules and simplification
      +rules, macro rules do not participate in cell completion. However, unlike
      +function rules and simplification rules, macro rules are applied statically
      +before rewriting begins, and the macro symbol is expected to no longer appear
      +in the initial configuration for rewriting once all macros in that
      +configuration are rewritten.

      +

      The rationale behind macros is they allow you to define one piece of syntax
      +in terms of another piece of syntax without any runtime overhead associated
      +with the cost of rewriting one to the other. This process is a common one in
      +programming language design and specification and is referred to as
      +desugaring; The syntax that is transformed is typically also referred to as
      +syntactic sugar for another type of syntax. For example, in a language with
      +if statements and curly braces, you could write the following fragment
      +(lesson-01.k):

      +
      module LESSON-01
      +  imports BOOL
      +
      +  syntax Stmt ::= "if" "(" Exp ")" Stmt             [macro]
      +                | "if" "(" Exp ")" Stmt "else" Stmt
      +                | "{" Stmts "}"
      +  syntax Stmts ::= List{Stmt,""}
      +  syntax Exp ::= Bool
      +
      +  rule if ( E ) S => if ( E ) S else { .Stmts }
      +endmodule
      +

      In this example, we see that an if statement without an else clause is
      +defined in terms of one with an else clause. As a result, we would only
      +need to give a single rule for how to rewrite if statements, rather than
      +two separate rules for two types of if statements. This is a common pattern
      +for dealing with program syntax that contains an optional component to it.

      +

      It is worth noting that by default, macros are not applied recursively. To be
      +more precise, by default a macro that arises as a result of the expansion of
      +the same macro is not rewritten further. This is primarily to simplify the
      +macro expansion process and reduce the risk that improperly defined macros will
      +lead to non-terminating behavior.

      +

      It is possible, however, to tell K to expand a macro recursively. To do this,
      +simply replace the macro attribute with the macro-rec attribute. Note that
      +K does not do any kind of checking to ensure termination here, so it is
      +important that rules be defined correctly to always terminate, otherwise the
      +macro expansion phase will run forever. Fortunately, in practice it is very
      +simple to ensure this property for most of the types of macros that are
      +typically used in real-world semantics.

      +

      Exercise

      + +

      Using a Nat sort containing the constructors 0 and S (i.e., a
      +Peano-style axiomatization of the
      +natural numbers where S(N) = N + 1, S(S(N)) = N + 2, etc), write a macro
      +that will compute the sum of two numbers.

      +

      Aliases

      + +

      NOTE: This lesson introduces the concept of "aliases", which are a variant
      +of macros. While similar, this is different from the concept of "aliases" in
      +matching logic, which is introduced in Lesson 2.16.

      +

      Macros can be very useful in helping you define a programming language.
      +However, they can be disruptive while pretty printing a configuration. For
      +example, you might write a set of macros that transforms the code the user
      +wrote into equivalent code that is slightly harder to read. This can make it
      +more difficult to understand the code when it is pretty printed as part of the
      +output of rewriting.

      +

      K defines a relatively straightforward but novel solution to this problem,
      +which is known as a K alias. An alias in K is very similar to a macro,
      +with the exception that the rewrite rule will also be applied backwards
      +during the pretty-printing process.

      +

      It is very simple to make a production be an alias instead of a macro: simply
      +use the alias or alias-rec attributes instead of the macro or macro-rec
      +attributes. For example, if the example involving if statements above was
      +declared using an alias instead of a macro, the Stmt term if (E) {} else {}
      +would be pretty-printed as if (E) {}. This is because during pretty-printing,
      +the term participates in another macro-expansion pass. However, this macro
      +expansion step will only apply rules with the alias or alias-rec attribute,
      +and, critically, it will reverse the rule by treating the left-hand side as if
      +it were the right-hand side, and vice versa.

      +

      This can be very useful to allow you to define one construct in terms of
      +another while still being able to pretty-print the result as if it were
      +the original term in question. This can be especially useful for applications
      +of K where we are taking the output of rewriting and attempting to use it as
      +a code fragment that we then execute, such as with test generation.

      +

      Exercise

      + +

      Modify LESSON-01 above to use an alias instead of a macro and experiment
      +with how various terms are pretty-printed by invoking krun on them.

      +

      anywhere rules

      + +

      The last type of rule introduced in this lesson is the anywhere rule. An
      +anywhere rule is specified by adding the anywhere attribute to a rule. Such a
      +rule is similar to a function rule in that it does not participate in cell
      +completion, and will apply anywhere that the left-hand-side matches in the
      +configuration, but distinct in that the symbol in question can still be matched
      +against in the left-hand side of other rules, even during concrete rewriting.
      +The reasoning behind this is that instead of the symbol in question being a
      +constructor, it is a constructor modulo the axioms defined with the
      +anywhere attribute. Essentially, the rules with the anywhere attribute will
      +apply as soon as they appear in the right-hand side of a rule being applied,
      +but the symbol in question will still be treated as a symbol that can be
      +matched on if it is not completely removed by those rules.

      +

      This can be useful in certain cases to allow you to define transformations over
      +particular pieces of syntax while still generally giving those pieces of syntax
      +another meaning when the anywhere rule does not apply. For example, the ISO C
      +standard defines the semantics of *&x as exactly equal to x, with no
      +reading or writing of memory taking place, and the K semantics of C implements
      +this functionality using an anywhere rule that is applied at compilation time.

      +

      NOTE: the anywhere attribute is only implemented on the LLVM backend
      +currently. Attempting to use it in a semantics that is compiled with the
      +Haskell backend will result in an error being reported by the compiler. This
      +should be remembered when using this attribute, as it may not be suitable for
      +a segment of a semantics which is intended to be symbolically executed.

      +

      Exercises

      + +
        +
      1. Write a version of the calculator from Lesson 1.14 Exercise 1, which uses
        +the same syntax for evaluating expressions, but defines its arithmetic logic
        +using anywhere rules rather than top-level rewrite rules.
      2. +
      +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.2: Fresh Constants

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.3: KLabels and Abstract Syntax

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.4: Overloaded Symbols

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.5: Matching Logic Connectives and #Or Patterns

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.6: Function Context

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.7: Record Productions and Named Nonterminals

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.8: #fun and #let

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.9: #as Patterns

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.10: The Matching Operators, :=K and :/=K

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.11: Uncommon Evaluation Order Concepts

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.12: IEEE 754 Floating Point and Fixed Width Integers

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.13: Alpha-renaming-aware Substitution

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.14: File I/O

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.15: String Buffers and Byte Sequences

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.16: The Intermediate Language of K, KORE

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      Lesson 2.17: Debugging Proofs using the Haskell Backend REPL

      + +

      Return to Top

      + +

      Click here to return to the Table of Contents for Section 2.

      +

      K User Manual

      +

      NOTE: The K User Manual is still under construction; some features of K
      +may have partial or missing documentation.

      +

      Introduction

      +

      Why K?

      + +

      The K Framework is a programming language and system design toolkit made for
      +practioners and researchers alike.

      +

      K For Practioners:
      +K is a framework for deriving programming languages tools from their semantic
      +specifications.

      +

      Typically, programming language tool development follows a similar pattern.
      +After a new programming language is designed, separate teams will develop
      +separate language tools (e.g. a compiler, interpreter, parser, symbolic
      +execution engine, etc). Code reuse is uncommon. The end result is that for each
      +new language, the same basic tools and patterns are re-implemented again and
      +again.

      +

      K approaches the problem differently -- it generates each of these tools from a single language specification.
      +The work of programming language design and tool implementation are made separate concerns.
      +The end result is that the exercise of
      +designing new languages and their associated tooling is now reduced to
      +developing a single language specification from which we derive our tooling for
      +free
      .

      +

      K For Researchers:
      +K is a configuration- and rewrite-based executable semantic framework.

      +

      In more detail, K specifications are:

      +
        +
      1. Executable: compile into runnable and testable programs;
      2. +
      3. Semantic: correspond to a logical theory with a sound and relatively
        +complete proof system;
      4. +
      5. Configuration-based: organize system states into compositional,
        +hierarchical, labelled units called cells;
      6. +
      7. Rewrite-based: define system transitions using rewrite rules.
      8. +
      +

      K specifications are compiled into particular matching logic theories, giving
      +them a simple and expressive semantics. K semantic rules are implicitly defined
      +over the entire configuration structure, but omit unused cells, enabling a
      +highly modular definitional style. Furthermore, K has been used to develop
      +programming languages, type systems, and formal analysis tools.

      +

      Manual Objectives

      + +

      As mentioned in the Why K? section above, the K Framework is designed as a
      +collection of language-generic command-line interface (CLI) tools which revolve
      +around K specifications. These tools cover a broad range of uses, but they
      +typically fall into one of the following categories:

      +
        +
      1. Transforming K Specs (e.g. compilation)
      2. +
      3. Running K Specs (e.g. concrete and symbolic execution)
      4. +
      5. Analyzing K Specs (e.g. theorem proving)
      6. +
      +

      The main user-facing K tools include:

      +
        +
      • kompile - the K compiler driver
      • +
      • kparse - the stanadlone K parser and abstract syntax tree (AST)
        +transformation tool
      • +
      • krun - the K interpreter and symbolic execution engine driver
      • +
      • kprove - the K theorem prover
      • +
      +

      This user manual is designed to be a tool reference.
      +In particular, it is not desgined to be a tutorial on how to write K
      +specifications or to teach the logical foundations of K. New K users should
      +consult our dedicated
      +K tutorial,
      +or the more language-design oriented
      +PL tutorial.
      +Researchers seeking to learn more about the logic underlying K are encouraged
      +to peruse the
      +growing literature on K and matching logic.
      +We will consider the manual complete when it provides a complete description of
      +all user-facing K tools and features.

      +

      Introduction to K

      +

      Since K specifications are the primary input into the entire system, let us
      +take a moment to describe them. At the highest level, K specifications describe
      +a programming language or system using three different pieces:

      +
        +
      1. the system primitives, the base datatypes used during system operation,
        +e.g., numbers, lists, maps, etc;
      2. +
      3. the system state, a tuple or record over system primitives which gives a
        +complete snapshot of the system at any given moment;
      4. +
      5. the system behavior, a set of rules which defines possible system
        +evolutions.
      6. +
      +

      K specifications are then defined by a collection of sentences which
      +correspond to the three concepts above:

      +
        +
      1. syntax declarations encode the system primitives;
      2. +
      3. configuration declarations encode the system state;
      4. +
      5. context and rule declarations encode the system behavior.
      6. +
      +

      K sentences are then organized into one or modules which are stored in one or
      +more files. In this scheme, files may require other files and modules may
      +import other modules, giving rise to a hierarchy of files and modules. We
      +give an intuitive sketch of the two levels of grouping in the diagram below:

      +
         example.k file
      +  +=======================+
      +  | requires ".." --------|--> File_1
      +  | ...                   |
      +  | requires ".." --------|--> File_N
      +  |                       |
      +  |  +-----------------+  |
      +  |  | module ..       |  |
      +  |  |   imports .. ---|--|--> Module_1
      +  |  |   ...           |  |
      +  |  |   imports .. ---|--|--> Module_M
      +  |  |                 |  |
      +  |  |   sentence_1    |  |
      +  |  |   ...           |  |
      +  |  |   sentence_K    |  |
      +  |  | endmodule       |  |
      +  |  +-----------------+  |
      +  |                       |
      +  +=======================+
      +

      where:

      +
        +
      • files and modules are denoted by double-bordered and single-borded boxes
        +respectively;
      • +
      • file or module identifiers are denoted by double dots (..);
      • +
      • potential repititions are denoted by triple dots (...).
      • +
      +

      In the end, we require that the file and module hierarchies both form a
      +directed acyclic graph (DAG). This is, no file may recursively require itself,
      +and likewise, no module may recursively import itself.

      +

      We now zoom in further to discuss the various kinds of sentences contained in K
      +specifications:

      +
        +
      1. +

        sentences that define our system's primitives, including:

        +
          +
        • sort declarations: define new categories of primitive datatypes
        • +
        • Backus-Naur Form (BNF) grammar declarations: define the
          +operators that inhabit our primitive datatypes
        • +
        • lexical syntax declarations: define lexemes/tokens for the
          +lexer/tokenizer
        • +
        • syntax associativity declarations: specify the
          +associativity/grouping of our declared operators
        • +
        • syntax priority declarations: specify the priority of
          +potential ambiguous operators
        • +
        +
      2. +
      3. +

        sentences that define our system's state, including:

        +
          +
        • configuration declarations: define labelled, hierarchical records
          +using an nested XML-like syntax
        • +
        +
      4. +
      5. +

        sentences that define our system's behavior, including:

        +
          +
        • context declarations: describe how primitives and configurations
          +can simplify
        • +
        • context alias declarations: define templates that can generate new
          +contexts
        • +
        • rule declarations: define how the system transitions from one state
          +to the next
        • +
        +
      6. +
      +

      K Process Overview

      + +

      We now examine how the K tools are generally used. The main input to all of the
      +K tools is a K specification. For effieciency reasons, this specification is
      +first compiled into an intermediate representation called Kore. Once we have
      +obtained this intermediate representation, we can use it to do:

      +
        +
      1. parsing/pretty-printing, i.e., converting a K term, whose syntax is defined
        +by a K specification, into a alternate representation
      2. +
      3. concrete and abstract execution of a K specification
      4. +
      5. theorem proving, i.e., verifying whether a set of claims about a K
        +specification hold
      6. +
      +

      We represent the overall process using the graphic below:

      +
       K Compilation Process
      ++============================================================+
      +|                     +---------+                            |
      +|  K Specification ---| kompile |--> Kore Specification --+  |
      +|                     +---------+                         |  |
      ++=========================================================|==+
      +                                                          |
      + K Execution Process                                      |
      ++=========================================================|==+
      +|                                                         |  |
      +|             +-------------------------------------------+  |
      +|             |                                              |
      +|             |       +---------+                            |
      +|  K Term ----+-------| kparse  |--> K Term                  |
      +|             |       +---------+                            |
      +|             |                                              |
      +|             |       +---------+                            |
      +|  K Term ----+-------|  krun   |--> K Term                  |
      +|             |       +---------+                            |
      +|             |                                              |
      +|             |       +---------+                            |
      +|  K Claims --+-------| kprove  |--> K Claims                |
      +|                     +---------+                            |
      +|                                                            |
      ++============================================================+
      +

      where:

      +
        +
      • process outlines are denoted by boxes with double-lined borders
      • +
      • executables are denoted by boxes with single-lined borders
      • +
      • inputs and outputs are denoted by words attached to lines
      • +
      • K terms typically correspond to programs defined in a particular
        +language's syntax (which are either parsed using kparse or executed using
        +krun)
      • +
      • K claims are a notation for describing how certain K programs should
        +execute (which are checked by our theorem prover kprove)
      • +
      +

      K Compilation Process:
      +Let us start with a description of the compilation process. According to the
      +above diagram, the compiler driver is called kompile. For our purposes, it is
      +enough to view the K compilation process as a black box that transforms a K
      +specification into a lower-level Kore specification that encodes the same
      +information, but that is easier to work with programmatically.

      +

      K Execution Process:
      +We now turn our attention to the K execution process. Abstractly, we can divide
      +the K execution process into the following stages:

      +
        +
      1. the kore specification is loaded (which defines a lexer, parser, and
        +unparser among other things)
      2. +
      3. the input string is lexed into a token stream
      4. +
      5. the token stream is parsed into K terms/claims
      6. +
      7. the K term/claims are transformed according the K tool being used (e.g.
        +kparse, krun, or kprove)
      8. +
      9. the K term/claims are unparsed into a string form and printed
      10. +
      +

      Note that all of the above steps performed in K execution process are fully
      +prescribed by the input K specification. Of course, there are entire languages
      +devoted to encoding these various stages proces individually, e.g., flex for
      +lexers, bison for parsers, etc. What K offers is a consistent language to
      +package the above concepts in a way that we believe is convenient and practical
      +for a wide range of uses.

      +

      Module Declaration

      +

      K modules are declared at the top level of a K file. They begin with the
      +module keyword and are followed by a module ID and an optional set of
      +attributes. They continue with zero or more imports and zero or more sentences
      +until the endmodule keyword is reached.

      +

      A module ID consists of an optional # at the beginning, followed by one or
      +more components separated by hyphens. Each component can contain letters,
      +numbers, or underscores.

      +

      After the module ID, attributes can be specified in square brackets. See below
      +for an (incomplete) list of allowed module attributes.

      +

      Following the attributes, a module can contain zero or more imports. An
      +import consists of the import or imports keywords followed by a module ID.
      +An import tells the compiler that this module should contain all the sentences
      +(recursively) contained by the module being imported.

      +

      Imports can be public or private. By default, they are public, which
      +means that all the imported syntax can be used by any module that imports the
      +module doing the import. However, you can explicitly override the visibility
      +of the import with the public or private keyword immediately prior to the
      +module name. A module imported privately does not export its syntax to modules
      +that import the module doing the import.

      +

      Following imports, a module can contain zero or more sentences. A sentence can
      +be a syntax declaration, a rule, a configuration declaration, a context, a
      +claim, or a context alias. Details on each of these can be found in subsequent
      +sections.

      +

      private attribute

      + +

      If the module is given the private attribute, all of its imports and syntax
      +are private by default. Individual pieces of syntax can be made public with
      +the public attribute, and individual imports can be made public with the
      +public keyword. See relevant sections on syntax and modules for more details
      +on what it means for syntax and imports to be public or private.

      +

      symbolic and concrete attribute

      + +

      These attributes may be placed on modules to indicate that they should only
      +be used by the Haskell and LLVM backends respectively. If the definition is
      +compiled on the opposite backend, they are implicitly removed from the
      +definition prior to parsing anywhere they are imported. This can be useful when
      +used in limited capacity in order to provide alternate semantics for certain
      +features on different backends. It should be used sparingly as it makes it more
      +difficult to trust the correctness of your semantics, even in the presence of
      +testing.

      +

      Syntax Declaration

      +

      Named Non-Terminals

      + +

      We have added a syntax to Productions which allows non-terminals to be given a
      +name in productions. This significantly improves the ability to document K, by
      +providing a way to explicitly explain what a field in a production corresponds
      +to instead of having to infer it from a comment or from the rule body.

      +

      The syntax is:

      +
      name: Sort
      +

      This syntax can be used anywhere in a K definition that expects a non-terminal.

      +

      klabel(_) and symbol attributes

      + +

      By default K generates for each syntax definition a long and obfuscated klabel
      +string, which serves as a unique internal identifier and also is used in kast
      +format of that syntax. If we need to reference a certain syntax production
      +externally, we have to manually define the klabels using the klabel attribute.
      +One example of where you would want to do this is to be able to refer to a given
      +symbol via the syntax priorities attribute, or to enable overloading of a
      +given symbol.

      +

      If you only provide the klabel attribute, you can use the provided klabel to
      +refer to that symbol anywhere in the frontend K code. However, the internal
      +identifier seen by the backend for that symbol will still be the long obfuscated
      +generated string. Sometimes you want control over the internal identfier used as
      +well, in which case you use the symbol attribute. This tells the frontend to
      +use whatever the declared klabel is directly as the internal identfier.

      +

      For example:

      +
      module MYMODULE
      +    syntax FooBarBaz ::= #Foo( Int, Int ) [klabel(#Foo), symbol] // symbol1
      +                       | #Bar( Int, Int ) [klabel(#Bar)]         // symbol2
      +                       | #Baz( Int, Int )                        // symbol3
      +endmodule
      +

      Here, we have that:

      +
        +
      • In frontend K, you can refer to "symbol1" as #Foo (from klabel(#Foo)),
        +and the backend will see 'Hash'Foo as the symbol name.
      • +
      • In frontend K, you can refer to "symbol2" as #Bar (from klabel(#Bar)),
        +and the backend will see
        +'Hash'Bar'LParUndsCommUndsRParUnds'MYMODULE'Unds'FooBarBaz'Unds'Int'Unds'Int
        +as the symbol name.
      • +
      • In frontend K, you can refer to "symbol3" as
        +#Baz(_,_)_MYMODULE_FooBarBaz_Int_Int (from auto-generated klabel), and
        +the backend will see
        +'Hash'Baz'LParUndsCommUndsRParUnds'MYMODULE'Unds'FooBarBaz'Unds'Int'Unds'Int
        +as the symbol name.
      • +
      +

      The symbol provided must be unique to this definition. This is enforced by K.
      +In general, it's recommended to use symbol attribute whenever you use klabel
      +unless you explicitely have a reason not to (eg. you want to overload symbols,
      +or you're using a deprecated backend). It can be very helpful use the symbol
      +attribute for debugging, as many debugging messages are printed in Kast format
      +which will be more readable with the symbol names you explicitely declare.
      +In addition, if you are programatically manipulating definitions via the JSON
      +Kast format, building terms using the user-provided pretty
      +symbol, klabel(...) is easier and less error-prone when the auto-generation
      +process for klabels changes.

      +

      Parametric productions and bracket attributes

      + +

      Some syntax productions, like the rewrite operator, the bracket operator, and
      +the #if #then #else #fi operator, cannot have their precise type system
      +expressed using only concrete sorts.

      +

      Prior versions of K solved this issue by using the K sort in this case, but
      +this introduces inexactness in which poorly typed terms can be created even
      +without having a cast operator present in the syntax, which is a design
      +consideration we would prefer to avoid.

      +

      It also introduces cases where terms cannot be placed in positions where they
      +ought to be well sorted unless their return sort is made to be KBott, which in
      +turn vastly complicates the grammar and makes parsing much slower.

      +

      In order to introduce this, we provide a new syntax for parametric productions
      +in K. This allows you to express syntax that has a sort signature based on
      +parametric polymorphism. We do this by means of an optional curly-brace-
      +enclosed list of parameters prior to the return sort of a production.

      +

      Some examples:

      +
      syntax {Sort} Sort ::= "(" Sort ")" [bracket]
      +syntax {Sort} KItem ::= Sort
      +syntax {Sort} Sort ::= KBott
      +syntax {Sort} Sort ::= Sort "=>" Sort
      +syntax {Sort} Sort ::= "#if" Bool "#then" Sort "#else" Sort "#fi"
      +syntax {Sort1, Sort2} Sort1 ::= "#fun" "(" Sort2 "=>" Sort1 ")" "(" Sort2 ")"
      +

      Here we have:

      +
        +
      1. Brackets, which can enclose any sort but should be of the same sort that was
        +enclosed.
      2. +
      3. Every sort is a KItem.
      4. +
      5. A KBott term can appear inside any sort.
      6. +
      7. Rewrites, which can rewrite a value of any sort to a value of the same sort.
        +Note that this allows the lhs or rhs to be a subsort of the other.
      8. +
      9. If then else, which can return any sort but which must contain that sort on
        +both the true and false branches.
      10. +
      11. lambda applications, in which the argument and parameter must be the same
        +sort, and the return value of the application must be the same sort as the
        +return value of the function.
      12. +
      +

      Note the last case, in which two different parameters are specified separated
      +by a comma. This indicates that we have multiple independent parameters which
      +must be the same each place they occur, but not the same as the other
      +parameters.

      +

      In practice, because every sort is a subsort of K, the Sort2
      +parameter in #6 above does nothing during parsing. It cannot
      +actually reject any parse, because it can always infer that the sort of the
      +argument and parameter are K, and it has no effect on the resulting sort of
      +the term. However, it will nevertheless affect the kore generated from the term
      +by introducing an additional parameter to the symbol generated for the term.

      +

      function and total attributes

      + +

      Many times it becomes easier to write a semantics if you have "helper"
      +functions written which can be used in the RHS of rules. The function
      +attribute tells K that a given symbol should be simplified immediately when it
      +appears anywhere in the configuration. Semantically, it means that evaluation
      +of that symbol will result in at most one return value (that is, the symbol is
      +a partial function).

      +

      The total attribute indicates that a symbol cannot be equal to matching logic
      +bottom; in other words, it has at least one value for every possible set of
      +arguments. It can be added to a production with the function attribute to
      +indicate to the symbolic reasoning engine that a given symbol is a
      +total function, that is it has exactly one return value for every possible
      +input. Other uses of the total attribute (i.e., on multi-valued symbols to
      +indicate they always have at least one value) are not yet implemented.

      +

      For example, here we define the _+Word_ total function and the _/Word_
      +partial function, which can be used to do addition/division modulo
      +2 ^Int 256. These functions can be used anywhere in the semantics where
      +integers should not grow larger than 2 ^Int 256. Notice how _/Word_ is
      +not defined when the denominator is 0.

      +
      syntax Int ::= Int "+Word" Int [function, total]
      +             | Int "/Word" Int [function]
      +
      +rule I1 +Word I2 => (I1 +Int I2) modInt (2 ^Int 256)
      +rule I1 /Word I2 => (I1 /Int I2) modInt (2 ^Int 256) requires I2 =/=Int 0
      +

      freshGenerator attribute

      + +

      In K, you can access "fresh" values in a given domain using the syntax
      +!VARNAME:VarSort (with the !-prefixed variable name). This is supported for
      +builtin sorts Int and Id already. For example, you can generate fresh
      +memory locations for declared identifiers as such:

      +
      rule <k> new var x ; => . ... </k>
      +     <env> ENV => ENV [ x <- !I:Int ] </env>
      +     <mem> MEM => MEM [ !I <- 0     ] </mem>
      +

      Each time a !-prefixed variable is encountered, a new integer will be used,
      +so each variable declared with new var _ ; will get a unique position in the
      +<mem>.

      +

      Sometimes you want to have generation of fresh constants in a user-defined
      +sort. For this, K will still generate a fresh Int, but can use a converter
      +function you supply to turn it into the correct sort. For example, here we can
      +generate fresh Foos using the freshFoo(_) function annotated with
      +freshGenerator.

      +
      syntax Foo ::= "a" | "b" | "c" | d ( Int )
      +
      +syntax Foo ::= freshFoo ( Int ) [freshGenerator, function, total]
      +
      +rule freshFoo(0) => a
      +rule freshFoo(1) => b
      +rule freshFoo(2) => c
      +rule freshFoo(I) => d(I) [owise]
      +
      +rule <k> new var x ; => . ... </k>
      +     <env> ENV => ENV [ x <- !I:Int  ] </env>
      +     <mem> MEM => MEM [ !I <- !F:Foo ] </mem>
      +

      Now each newly allocated memory slot will have a fresh Foo placed in it.

      +

      token attribute

      + +

      The token attribute signals to the Kore generator that the associated sort
      +will be inhabited by domain values. Sorts inhabited by domain values must not
      +have any constructors declared.

      +
      syntax Bytes [hook(BYTES.Bytes), token]
      +

      Converting between [token] sorts

      + +

      You can convert between tokens of one sort via Strings by defining functions
      +implemented by builtin hooks.
      +The hook STRING.token2string allows conversion of any token to a string:

      +
      syntax String ::= FooToString(Foo)  [function, total, hook(STRING.token2string)]
      +

      Similarly, the hook STRING.string2Token allows the inverse:

      +
      syntax Bar ::= StringToBar(String) [function, total, hook(STRING.string2token)]
      +

      WARNING: This sort of conversion does NOT do any sort of parsing or validation.
      +Thus, we can create arbitary tokens of any sort:

      +
      StringToBar("The sun rises in the west.")
      +

      Composing these two functions lets us convert from Foo to Bar

      +
      syntax Bar ::= FooToBar(Foo) [function]
      +rule FooToBar(F) => StringToBar(FooToString(F))
      +

      Parsing comments, and the #Layout sort

      + +

      Productions for the #Layout sort are used to describe tokens that are
      +considered "whitespace". The scanner removes tokens matching these productions
      +so they are not even seen by the parser. Below, we use it to define
      +lines begining with ; (semicolon) as comments.

      +
      syntax #Layout ::= r"(;[^\\n\\r]*)"    // Semi-colon comments
      +                 | r"([\\ \\n\\r\\t])" // Whitespace
      +

      prec attribute

      + +

      Consider the following naive attempt at creating a language what syntax that
      +allows two types of variables: names that contain underbars, and names that
      +contain sharps/hashes/pound-signs:

      +
      syntax NameWithUnderbar ::= r"[a-zA-Z][A-Za-z0-9_]*"  [token]
      +syntax NameWithSharp    ::= r"[a-zA-Z][A-Za-z0-9_#]*" [token]
      +syntax Pgm ::= underbar(NameWithUnderbar)
      +             | sharp(NameWithSharp)
      +

      Although, it seems that K has enough information to parse the programs
      +underbar(foo) and sharp(foo) with, the lexer does not take into account
      +whether a token is being parsed for the sharp or for the underbar
      +production. It chooses an arbitary sort for the token foo (perhaps
      +NameWithUnderbar). Thus, during paring it is unable to construct a valid term
      +for one of those programs (sharp(foo)) and produces the error message:
      +Inner Parser: Parse error: unexpected token 'foo'.

      +

      Since calculating inclusions and intersections between regular expressions is
      +tricky, we must provide this information to K. We do this via the prec(N)
      +attribute. The lexer will always prefer longer tokens to shorter tokens.
      +However, when it has to choose between two different tokens of equal length,
      +token productions with higher precedence are tried first. Note that the default
      +precedence value is zero when the prec attribute is not specified.

      +

      For example, the BUILTIN-ID-TOKENS module defines #UpperId and #LowerId with
      +the prec(2) attribute.

      +
        syntax #LowerId ::= r"[a-z][a-zA-Z0-9]*"                    [prec(2), token]
      +  syntax #UpperId ::= r"[A-Z][a-zA-Z0-9]*"                    [prec(2), token]
      +

      Furthermore, we also need to make sorts with more specific tokens subsorts of ones with more
      +general tokens. We add the token attribute to this production so that all
      +tokens of a particular sort are marked with the sort they are parsed as and not a
      +subsort thereof. e.g. we get underbar(#token("foo", "NameWithUnderbar"))
      +instead of underbar(#token("foo", "#LowerId"))

      +
      imports BUILTIN-ID-TOKENS
      +syntax NameWithUnderbar ::= r"[a-zA-Z][A-Za-z0-9_]*" [prec(1), token]
      +                          | #UpperId                [token]
      +                          | #LowerId                [token]
      +syntax NameWithSharp ::= r"[a-zA-Z][A-Za-z0-9_#]*" [prec(1), token]
      +                       | #UpperId                 [token]
      +                       | #LowerId                 [token]
      +syntax Pgm ::= underbar(NameWithUnderbar)
      +             | sharp(NameWithSharp)
      +

      unused attribute

      + +

      K will warn you if you declare a symbol that is not used in any of the rules of
      +your definition. Sometimes this is intentional, however; in this case, you can
      +suppress the warning by adding the unused attribute to the production or
      +cell.

      +
      syntax Foo ::= foo() [unused]
      +
      +configuration <foo unused=""> .K </foo>
      +

      Symbol priority and associativity

      + +

      Unlike most other parser generators, K combines the task of parsing with AST
      +generation. A production declared with the syntax keyword in K is both a
      +piece of syntax used when parsing, and a symbol that is used when rewriting.
      +As a result, it is generally convenient to describe expression grammars using
      +priority and associativity declarations rather than explicitly transforming
      +your grammar into a series of nonterminals, one for each level of operator
      +precedence. Thus, for example, a simple grammar for addition and multiplication
      +will look like this:

      +
      syntax Exp ::= Exp "*" Exp
      +             | Exp "+" Exp
      +

      However, this grammar is ambiguous. The term x+y*z might refer to x+(y*z)
      +or to (x+y)*z. In order to differentiate this, we introduce a partial
      +ordering between productions known as priority. A symbol "has tighter priority"
      +than another symbol if the first symbol can appear under the second, but the
      +second cannot appear under the first without a bracket. For example, in
      +traditional arithmetic, multiplication has tighter priority than addition,
      +which means that x+y*z cannot parse as (x+y)*z because the addition
      +operator would appear directly beneath the multiplication, which is forbidden
      +by the priority filter.

      +

      Priority is applied individually to each possible ambiguous parse of a term. It
      +then either accepts or rejects that parse. If there is only a single remaining
      +parse (after all the other disambiguation steps have happened), this is the
      +parse that is chosen. If all the parses were rejected, it is a parse error. If
      +multiple parses remain, they might be resolved by further disambiguation such
      +as via the prefer and avoid attributes, but if multiple parses remain after
      +disambiguation finishes, this is an ambiguous parse error, indicating there is
      +not a unique parse for that term. In the vast majority of cases, this is
      +an error and indicates that you ought to either change your grammar or add
      +brackets to the term in question.

      +

      Priority is specified in K grammars by means of one of two different
      +mechanisms. The first, and simplest, simply replaces the | operator in a
      +sequence of K productions with the > operator. This operator indicates that
      +everything prior to the > operator (including transitively) binds tighter
      +than what comes after. For example, a more complete grammar for simple
      +arithmetic might be:

      +
      syntax Exp ::= Exp "*" Exp
      +             | Exp "/" Exp
      +             > Exp "+" Exp
      +             | Exp "-" Exp
      +

      This indicates that multiplication and division bind tigher than addition
      +and subtraction, but that there is no relationship in priority between
      +multiplication and division.

      +

      As you may have noticed, this grammar is also ambiguous. x*y/z might refer to
      +x*(y/z) or to (x*y)/z. Indeed, if we removed division and subtraction
      +entirely, the grammar would still be ambiguous: x*y*z might parse as
      +x*(y*z), or as (x*y)*z. To resolve this, we introduce another feature:
      +associativity. Roughly, asssociativity tells us how symbols are allowed to nest
      +within other symbols with the same priority. If a set of symbols is left
      +associative, then symbols in that set cannot appear as the rightmost child
      +of other symbols in that set. If a set of symbols is right associative, then
      +symbols in that set cannot appear as the leftmost child of other symbols in
      +that set. Finally, if a set of symbols is non-associative, then symbols
      +in that set cannot appear as the rightmost or leftmost child of other symbols
      +in that set. For example, in the above example, if addition and subtraction
      +are left associative, then x+y+z will parse as (x+y)+z and x+y-z will
      +parse as (x+y)-z (because the other parse will have been rejected).

      +

      You might notice that this seems to apply only to binary infix operators. In
      +fact, the real behavior is slightly more complicated. Priority and
      +associativity (for technical reasons that go beyond the scope of this document)
      +really only apply when the rightmost or leftmost item in a production is a
      +nonterminal. If the rightmost nonterminal is followed by a terminal (or
      +respectively the leftmost preceded), priority and associativity do not apply.
      +Thus we can generalize these concepts to arbitrary context-free grammars.

      +

      Note that in some cases, this is not the behavior you want. You may actually
      +want to reject parses even though the leftmost and rightmost item in a
      +production are terminals. You can accomplish this by means of the
      +applyPriority attribute. When placed on a production, it tells the parser
      +which nonterminals of a production the priority filter ought to reject children
      +under, overriding the default behavior. For example, I might have a production
      +like syntax Exp ::= foo(Exp, Exp) [applyPriority(1)]. This tells the parser
      +to reject terms with looser priority binding under the first Exp, but not
      +the second. By default, with this production, neither position would apply
      +to the priority filter, because the first and last items of the production
      +are both terminals.

      +

      Associativity is specified in K grammars by means of one of two different
      +mechanisms. The first, and simplest, adds the associativity of a priority block
      +of symbols prior to that block. For example, we can remove the remaining
      +ambiguities in the above grammar like so:

      +
      syntax Exp ::= left:
      +               Exp "*" Exp
      +             | Exp "/" Exp
      +             > right:
      +               Exp "+" Exp
      +             | Exp "-" Exp
      +

      This indicates that multiplication and division are left-associative, ie, after
      +symbols with higher priority are parsed as innermost, symbols are nested with
      +the rightmost on top. Addition and subtraction are right associative, which
      +is the opposite and indicates that symbols are nested with the leftmost on top.
      +Note that this is similar but different from evaluation order, which also
      +concerns itself with the ordering of symbols, which is described in the next
      +section.

      +

      You may note we have not yet introduced the second syntax for priority
      +and associativity. In some cases, syntax for a grammar might be spread across
      +multiple modules, sometimes for very good reasons with respect to code
      +modularity. As a result, it becomes infeasible to declare priority and
      +associativity inline within a set of productions, because the productions
      +are not contiguous within a single file.

      +

      For this purpose, we introduce the equivalent syntax priorities,
      +syntax left, syntax right, and syntax non-assoc declarations. For
      +example, the above grammar can be written equivalently as:

      +
      syntax Exp ::= Exp "*" Exp [group(mult)]
      +             | Exp "/" Exp [group(div)]
      +             | Exp "+" Exp [group(add)]
      +             | Exp "-" Exp [group(sub)]
      +
      +syntax priorities mult div > add sub
      +syntax left mult div
      +syntax right add sub
      +

      Here, the group(_) attribute is used to create user-defined groups of
      +sentences. A particular group name collectively refers to the whole set of
      +sentences within that group. The sets are flattened together, so we could
      +equivalently have written:

      +
      syntax Exp ::= Exp "*" Exp [group(mult)]
      +             | Exp "/" Exp [group(mult)]
      +             | Exp "+" Exp [group(add)]
      +             | Exp "-" Exp [group(add)]
      +
      +syntax priorities mult > add
      +syntax left mult
      +syntax right add
      +

      Note that syntax [left|right|non-assoc] should not be used to group together
      +productions with different priorities. For example, this code would be invalid:

      +
      syntax priorities mult > add
      +syntax left mult add
      +

      Note that there is one other way to describe associativity, but it is
      +prone to a very common mistake. You can apply the attribute left, right,
      +or non-assoc directly to a production to indicate that it is, by itself,
      +left-, right-, or non-associative.

      +

      However, this often does not mean what users think it means. In particular:

      +
      syntax Exp ::= Exp "+" Exp [left]
      +             | Exp "-" Exp [left]
      +

      is not equivalent to:

      +
      syntax Exp ::= left:
      +               Exp "+" Exp
      +             | Exp "-" Exp
      +

      Under the first, each production is associative with itself, but not each
      +other. Thus, x+y+z will parse unambiguously as (x+y)+z, but x+y-z will
      +be ambiguous. However, in the second, x+y-z will parse unambiguously as
      +(x+y)-z.

      +

      Think carefully about how you want your grammar to parse. In general, if you're
      +not sure, it's probably best to group associativity together into the same
      +blocks you use for priority, rather than using left, right, or non-assoc
      +attributes on the productions.

      +

      Lexical identifiers

      + +

      Sometimes it is convenient to be able to give a certain regular expression a
      +name and then refer to it in one or more regular expression terminals. This
      +can be done with a syntax lexical sentence in K:

      +
      syntax lexical Alphanum = r"[0-9a-zA-Z]"
      +

      This defines a lexical identifier Alphanum which can be expanded in any
      +regular expression terminal to the above regular expression. For example, I
      +might choose to then implement the syntax of identifiers as follows:

      +
      syntax Id ::= r"[a-zA-Z]{Alphanum}*" [token]
      +

      Here {Alphanum} expands to the above regular expression, making the sentence
      +equivalent to the following:

      +
      syntax Id ::= r"[a-zA-Z]([0-9a-zA-Z])*" [token]
      +

      This feature can be used to more modularly construct the lexical syntax of your
      +language. Note that K does not currently check that lexical identifiers used
      +in regular expressions have been defined; this will generate an error when
      +creating the scanner, however, and the user ought to be able to debug what
      +happened.

      +

      assoc, comm, idem, and unit attributes

      + +

      These attributes are used to indicate whether a collection or a production
      +is associative, commutative, idempotent, and/or has a unit.
      +In general, you should not need to apply these attributes to productions
      +yourself, however, they do have certain special meaning to K. K will generate
      +axioms related to each of these concepts into your definition for you
      +automatically. It will also automatically sort associative-commutative
      +collections, and flatten the indentation of associative collections, when
      +unparsing.

      +

      public and private attribute

      + +

      K allows users to declare certain pieces of syntax as either public or private.
      +All syntax is public by default. Public syntax can be used from any module that
      +imports that piece of syntax. A piece of syntax can be declared private with
      +the private attribute. This means that that syntax can only be used in the
      +module in which it is declared; it is not visible from modules that import
      +that module.

      +

      You can also change the default visibility of a module with the private
      +attribute, when it is placed directly on a module. A module with the private
      +attribute has all syntax private by default; this can be overridden on
      +specific sentences with the public attribute.

      +

      Note that the private module attribute also changes the default visiblity
      +of imports; please refer to the appropriate section elsewhere in the manual
      +for more details.

      +

      Here is an example usage:

      +
      module WIDGET-SYNTAX
      +
      +  syntax Widget ::= foo()
      +  syntax WidgetHelper ::= bar() [private] // this production is not visible
      +                                          // outside this module
      +endmodule
      +
      +module WIDGET [private]
      +  imports WIDGET-SYNTAX
      +
      +  syntax Widget ::= fooImpl() // this production is not visible outside this
      +                              // module
      +
      +  // this production is visible outside this module
      +  syntax KItem ::= adjustWidget(Widget) [function, public]
      +endmodule
      +

      Configuration Declaration

      +

      exit attribute

      + +

      A single configuration cell containing an integer may have the "exit"
      +attribute. This integer will then be used as the return value on the console
      +when executing the program.

      +

      For example:

      +
      configuration <k> $PGM:Pgm </k>
      +              <status-code exit=""> 1 </status-code>
      +

      declares that the cell status-code should be used as the exit-code for
      +invocations of krun. Additionally, we state that the default exit-code is 1
      +(an error state). One use of this is for writing testing harnesses which assume
      +that the test fails until proven otherwise and only set the <status-code> cell
      +to 0 if the test succeeds.

      +

      Collection Cells: multiplicity and type attributes

      + +

      Sometimes a semantics needs to allow multiple copies of the same cell, for
      +example if you are making a concurrent multi-threading programming language.
      +For this purpose, K supports the multiplicity and type attributes on cells
      +declared in the configuration.

      +

      multiplicity can take on values * and ?. Declaring multiplicity="*"
      +indicates that the cell may appear any number of times in a runtime
      +configuration. Setting multiplicity="?" indicates that the cell may only
      +appear exactly 0 or 1 times in a runtime configuration. If there are no
      +configuration variables present in the cell collection, the initial
      +configuration will start with exactly 0 instances of the cell collection. If
      +there are configuration variables present in the cell collection, the initial
      +configuration will start with exactly 1 instance of the cell collection.

      +

      type can take on values Set, List, and Map. For example, here we declare
      +several collecion cells:

      +
      configuration <k> $PGM:Pgm </k>
      +              <sets>  <set  multiplicity="?" type="Set">  0:Int </set>  </sets>
      +              <lists> <list multiplicity="*" type="List"> 0:Int </list> </lists>
      +              <maps>
      +                <map multiplicity="*" type="Map">
      +                  <map-key> 0:Int </map-key>
      +                  <map-value-1> "":String </map-value-1>
      +                  <map-value-2> 0:Int     </map-value-2>
      +                </map>
      +              </maps>
      +

      Declaring type="Set" indicates that duplicate occurrences of the cell should
      +be de-duplicated, and accesses to instances of the cell will be nondeterministic
      +choices (constrained by any other parts of the match and side-conditions).
      +Similarly, declaring type="List" means that new instances of the cell can be
      +added at the front or back, and elements can be accessed from the front or back,
      +and the order of the cells will be maintained. The following are examples of
      +introduction and elimination rules for these collections:

      +
      rule <k> introduce-set(I:Int) => . ... </k>
      +     <sets> .Bag => <set> I </set> </sets>
      +
      +rule <k> eliminate-set => I ... </k>
      +     <sets> <set> I </set> => .Bag </sets>
      +
      +rule <k> introduce-list-start(I:Int) => . ... </k>
      +     <lists> (.Bag => <list> I </list>) ... </lists>
      +
      +rule <k> introduce-list-end(I:Int) => . ... </k>
      +     <lists> ... (.Bag => <list> I </list>) </lists>
      +
      +rule <k> eliminate-list-start => I ... </k>
      +     <lists> (<list> I </list> => .Bag) ... </lists>
      +
      +rule <k> eliminate-list-end => I ... </k>
      +     <lists> ... (<list> I </list> => .Bag) </lists>
      +

      Notice that for multiplicity="?", we only admit a single <set> instance at
      +a time. For the type=List cell, we can add/eliminate cells from the from or
      +back of the <lists> cell. Also note that we use .Bag to indicate the empty
      +cell collection in all cases.

      +

      Declaring type="Map" indicates that the first sub-cell will be used as a
      +cell-key. This means that matching on those cells will be done as a map-lookup
      +operation if the cell-key is mentioned in the rule (for performance). If the
      +cell-key is not mentioned, it will fallback to normal nondeterministic
      +constrained by other parts of the match and any side-conditions. Note that there
      +is no special meaning to the name of the cells (in this case <map>,
      +<map-key>, <map-value-1>, and <map-value-2>). Additionally, any number of
      +sub-cells are allowed, and the entire instance of the cell collection is
      +considered part of the cell-value, including the cell-key (<map-key> in this
      +case) and the surrounding collection cell (<map> in this case).

      +

      For example, the following rules introduce, set, retrieve from, and eliminate
      +type="Map" cells:

      +
      rule <k> introduce-map(I:Int) => . ... </k>
      +     <maps> ... (.Bag => <map> <map-key> I </map-key> ... </map>) ... </maps>
      +
      +rule <k> set-map-value-1(I:Int, S:String) => . ... </k>
      +     <map> <map-key> I </map-key> <map-value-1> _ => S </map-value-1> ... </map>
      +
      +rule <k> set-map-value-2(I:Int, V:Int) => . ... </k>
      +     <map> <map-key> I </map-key> <map-value-2> _ => V </map-value-2> ... </map>
      +
      +rule <k> retrieve-map-value-1(I:Int) => S ... </k>
      +     <map> <map-key> I </map-key> <map-value-1> S </map-value-1> ... </map>
      +
      +rule <k> retrieve-map-value-2(I:Int) => V ... </k>
      +     <map> <map-key> I </map-key> <map-value-2> V </map-value-2> ... </map>
      +
      +rule <k> eliminate-map(I:Int) => . ... </k>
      +     <maps> ... (<map> <map-key> I </map-key> ... </map> => .Bag) ... </maps>
      +

      Note how each rule makes sure that <map-key> cell is mentioned, and we
      +continue to use .Bag to indicate the empty collection. Also note that
      +when introducing new map elements, you may omit any of the sub-cells which are
      +not the cell-key. In case you do omit sub-cells, you must use structural
      +framing ... to indicate the missing cells, they will receive the default
      +value given in the configuration ... declaration.

      +

      Rule Declaration

      +

      Rule Structure

      + +

      Each K rule follows the same basic structure (given as an example here):

      +
      rule LHS => RHS requires REQ ensures ENS [ATTRS]
      +

      The portion between rule and requires is referred to as the rule body,
      +and may contain one or more rewrites (though not nested). Here, the rule body is
      +LHS => RHS, where LHS and RHS are used as placeholders for the pre- and
      +post- states. Note that we lose no generality referring to the LHS or the
      +RHS, even in the presence of multiple rewrites, as the rewrites are pulled to
      +the top-level anyway.

      +

      Next is the requires clause, represented here as REQ. The requires clause is
      +an additional predicate (function-like term of sort Bool), which is to be
      +evaluated before applying the rule. If the requires clause does not evaluate to
      +true, then the rule does not apply.

      +

      Finally is the ensures clause, represented here as ENS. The ensures clause
      +is to be interpreted as a post-condition, and will be automatically added to the
      +path condition if the rule applies. It may cause the entire term to become
      +undefined, but the backend will not stop itself from applying the rule in this
      +case. Note that concrete backends (eg. the LLVM backend) are free to ignore the
      +ensures clause.

      +

      Overall, the transition represented by such a rule is from a state
      +LHS #And REQ ending in a state RHS #And ENS. When backends apply this rule
      +as a transition/rewrite, they should:

      +
        +
      • Check if pattern LHS matches (or unifies) with the current term, giving
        +substitution alpha.
      • +
      • Check if the instantiation alpha(REQ) is valid (or satisfiable).
      • +
      • Build the new term alpha(RHS #And ENS), and check if it's satisfiable.
      • +
      +

      Pattern Matching operator

      + +

      Sometimes when you want to express a side condition, you want to say that a
      +rule matches if a particular term matches a particular pattern, or if it
      +instead does /not/ match a particular pattern.

      +

      The syntax in K for this is :=K and :/=K. It has similar meaning to ==K and
      +=/=K, except that where ==K and =/=K express equality, :=K and =/=K express
      +model membership. That is to say, whether or not the rhs is a member of the set
      +of terms expressed by the lhs pattern. Because the lhs of these operators is a
      +pattern, the user can use variables in the lhs of the operator. However, due to
      +current limitations, these variables are NOT bound in the rest of the term.
      +The user is thus encouraged to use anonymous variables only, although this is
      +not required.

      +

      This is compiled by the K frontend down to an efficient pattern matching on a
      +fresh function symbol.

      +

      Anonymous function applications

      + +

      There are a number of cases in K where you would prefer to be able to take some
      +term on the RHS, bind it to a variable, and refer to it in multiple different
      +places in a rule.

      +

      You might also prefer to take a variable for which you know some of its
      +structure, and modify some of its internal structure without requiring you to
      +match on every single field contained inside that structure.

      +

      In order to do this, we introduce syntax to K that allows you to construct
      +anonymous functions in the RHS of a rule and apply them to a term.

      +

      The syntax for this is:

      +
      #fun(RuleBody)(Argument)
      +

      Note the limitations currently imposed by the implementation. These functions
      +are not first-order: you cannot bind them to a variable and inject them like
      +you can with a regular klabel for a function. You also cannot express multiple
      +rules or multiple parameters, or side conditions. All of these are extensions
      +we would like to support in the future, however.

      +

      In the following, we use three examples to illustrate the behavior of #fun.
      +We point out that the support for #fun is provided by the frontend, not the
      +backends.

      +

      The three examples are real examples borrowed or modified from existing language
      +semantics.

      +

      Example 1 (A Simple Self-Explained Example).

      +
      #fun(V:Val => isFoo(V) andBool isBar(V))(someFunctionReturningVal())
      +

      Example 2 (Nested #fun).

      +
         #fun(C
      +=> #fun(R
      +=> #fun(E
      +=> foo1(E, R, C)
      +  )(foo2(C))
      +  )(foo3(0))
      +  )(foo4(1))
      +

      This example is from the beacon
      +semantics:https://github.com/runtimeverification/beacon-chain-spec/blob/master/b
      +eacon-chain.k at line 302, with some modification for simplicity. Note how
      +variables C, R, E are bound in the nested #fun.

      +

      Example 3 (Matching a structure).

      +
      rule foo(K, RECORD) =>
      +  #fun(record(... field: _ => K))(RECORD)
      +

      Unlike previous examples, the LHS of #fun in this example is no longer a
      +variable, but a structure. It has the same spirit as the first two examples,
      +but we match the RECORD with a structure record( DotVar, field: X), instead
      +of a standalone variable. We also use K's local rewrite syntax (i.e., the
      +rewriting symbol => does not occur at the top-level) to prevent writing
      +duplicate expressions on the LHS and RHS of the rewriting.

      +

      Macros and Aliases

      + +

      A production can be tagged with the macro, alias, macro-rec, or alias-rec
      +attributes. In all cases, what this signifies is that this is a macro production.
      +Macro rules are rules where the top symbol of the left-hand-side are macro
      +labels. Macro rules are applied statically during compilation on all terms that
      +they match, and statically before program execution on the initial configuration.
      +Currently, macro rules are required to not have side conditions, although they
      +can contain sort checks.

      +

      alias rules are also applied statically in reverse prior to unparsing on the
      +final configuration. Note that a macro rule can have unbound variables in the
      +right hand side. When such a macro exists, it should be used only on the left
      +hand side of rules, unless the user is performing symbolic execution and expects
      +to introduce symbolic terms into the subject being rewritten.

      +

      However, when used on the left hand side of a rule, it functions similarly to a
      +pattern alias, and allows the user to concisely express a reusable pattern that
      +they wish to match on in multiple places.

      +

      For example, consider the following semantics:

      +
      syntax KItem ::= "foo" [alias] | "foobar"
      +syntax KItem ::= bar(KItem) [macro] | baz(Int, KItem)
      +rule foo => foobar
      +rule bar(I) => baz(?_, I)
      +rule bar(I) => I
      +

      This will rewrite baz(0, foo) to foo. First baz(0, foo) will be rewritten
      +statically to baz(0, foobar). Then the non-macro rule will apply (because
      +the rule will have been rewritten to rule baz(_, I) => I). Then foobar will
      +be rewritten statically after rewriting finishes to foo via the reverse form
      +of the alias.

      +

      Note that macros do not apply recursively within their own expansion. This is
      +done so as to ensure that macro expansion will always terminate. If the user
      +genuinely desires a recursive macro, the macro-rec and alias-rec attributes
      +can be used to provide this behavior.

      +

      For example, consider the following semantics:

      +
      syntax Exp ::= "int" Exp ";" | "int" Exps ";" [macro] | Exp Exp | Id
      +syntax Exps ::= List{Exp,","}
      +
      +rule int X:Id, X':Id, Xs:Exps ; => int X ; int X', Xs ;
      +

      This will expand int x, y, z; to int x; int y, z; because the macro does
      +not apply the second time after applying the substitution of the first
      +application. However, if the macro attribute were changed to the macro-rec
      +attribute, it would instead expand (as the user likely intended) to
      +int x; int y; int z;.

      +

      The alias-rec attribute behaves with respect to the alias attribute the
      +same way the macro-rec attribute behaves with respect to macro.

      +

      anywhere rules

      + +

      Some rules are not functional, but you want them to apply anywhere in the
      +configuration (similar to functional rules). You can use the anywhere
      +attribute on a rule to instruct the backends to make sure they apply anywhere
      +they match in the entire configuration.

      +

      For example, if you want to make sure that some associative operator is always
      +right-associated anywhere in the configuration, you can do:

      +
      syntax Stmt ::= Stmt ";" Stmt
      +
      +rule (S1 ; S2) ; S3 => S1 ; (S2 ; S3) [anywhere]
      +

      Then after every step, all occurrences of _;_ will be re-associated. Note that
      +this allows the symbol _;_ to still be a constructor, even though it is
      +simplified similarly to a function.

      +

      trusted claims

      + +

      You may add the trusted attribute to a given claim for the K prover to
      +automatically add it to the list of proven circularities, instead of trying to
      +discharge it separately.

      +

      Projection and Predicate functions

      + +

      K automatically generates certain predicate and projection functions from the
      +syntax you declare. For example, if you write:

      +
      syntax Foo ::= foo(bar: Bar)
      +

      It will automatically generate the following K code:

      +
      syntax Bool ::= isFoo(K) [function]
      +syntax Foo ::= "{" K "}" ":>Foo" [function]
      +syntax Bar ::= bar(Foo) [function]
      +
      +rule isFoo(F:Foo) => true
      +rule isFoo(_) => false [owise]
      +
      +rule { F:Foo }:>Foo => F
      +rule bar(foo(B:Bar)) => B
      +

      The first two types of functions are generated automatically for every sort in
      +your K definition, and the third type of function is generated automatically
      +for each named nonterminal in your definition. Essentially, isFoo for some
      +sort Foo will tell you whether a particular term of sort K is a Foo,
      +{F}:>Foo will cast F to sort Foo if F is of sort Foo and will be
      +undefined (i.e., theoretically defined as #Bottom, the bottom symbol in
      +matching logic) otherwise. Finally, bar will project out the child of a foo
      +named bar in its production declaration.

      +

      Note that if another term of equal or smaller sort to Foo exists and has a
      +child named bar of equal or smaller sort to Bar, this will generate an
      +ambiguity during parsing, so care should be taken to ensure that named
      +nonterminals are sufficiently unique from one another to prevent such
      +ambiguities. Of course, the compiler will generate a warning in this case.

      +

      simplification attribute

      + +

      The simplification attribute identifies rules outside the main semantics that
      +are used to simplify function patterns.

      +

      Conditions: A simplification rule is applied by matching the function
      +arguments, instead of unification as when applying function definition
      +rules. This allows function symbols to appear nested as arguments to other
      +functions on the left-hand side of a simplification rule, which is forbidden in
      +function definition rules. For example, this rule would not be accepted as a
      +function definition rule:

      +
      rule (X +Int Y) +Int Z => X +Int (Y +Int Z) [simplification]
      +

      A simplification rule is only applied when the current side condition implies
      +the requires clause of the rule, like function definition rules.

      +

      Order: The simplification attribute accepts an optional integer argument
      +which is the rule's simplification priority; if the optional argument is not
      +specified, it is equivalent to a simplification priority of 50. Backends
      +should attempt simplification rules in order of their simplification
      +priority
      , but are not required to do so; in fact, the backend is free to apply
      +simplification rules at any time. Because of this, users must ensure that
      +simplification rules are sound regardless of their order of application. This
      +differs from the priority attribute in that rules with the priority
      +attribute must be applied in their priority order by the backend. It is an
      +error to have the priority attribute on a simplification rule.

      +

      For example, for the following definition:

      +
          syntax WordStack ::= Int ":" WordStack | ".WordStack"
      +    syntax Int ::= sizeWordStack    ( WordStack       ) [function]
      +                 | sizeWordStackAux ( WordStack , Int ) [function]
      + // --------------------------------------------------------------
      +    rule sizeWordStack(WS) => sizeWordStackAux(WS, 0)
      +
      +    rule sizeWordStackAux(.WordStack, N) => N
      +    rule sizeWordStackAux(W : WS    , N) => sizeWordStackAux(WS, N +Int 1)
      +

      We might add the following simplification lemma:

      +
          rule sizeWordStackAux(WS, N) => N +Int sizeWordStackAux(WS, 0)
      +      requires N =/=Int 0
      +      [simplification]
      +

      Then this simplification rule will only apply if the Haskell backend can prove
      +that notBool N =/=Int 0 is unsatisfiable. This avoids an infinite cycle of
      +applying this simplification lemma.

      +

      NOTE: The frontend and Haskell backend do not check that supplied
      +simplification rules are sound, this is the developer's responsibility. In
      +particular, rules with the simplification attribute must preserve definedness;
      +that is, if the left-hand side refers to any partial function then:

      +
        +
      • the right-hand side must be #Bottom when the left-hand side is #Bottom, or
      • +
      • the rule must have an ensures clause that is false when the left-hand
        +side is #Bottom, or
      • +
      • the rule must have a requires clause that is false when the left-hand
        +side is #Bottom.
      • +
      +

      These conditions are in order of decreasing preference: the best option is to
      +preserve #Bottom on the right-hand side, the next best option is to have an
      +ensures clause, and the least-preferred option is to have a requires clause.
      +The most preferred option is to write total functions and avoid the entire issue.

      +

      NOTE: The Haskell backend does not attempt to prove claims which right-hand
      +side is #Bottom. The reason for this is that the general case is undecidable,
      +and the backend might enter an infinite loop. Therefore, the backend emits a
      +warning if it encounters such a claim.

      +

      concrete and symbolic attributes (Haskell backend)

      + +

      Users can control the application of simplification rules using the concrete
      +and the symbolic attributes by specifying the type of patterns the rule's
      +arguments are to match.

      +

      A concrete pattern is a pattern which does not contain variables or unevaluated
      +functions, otherwise the pattern is symbolic.

      +

      The semantics of the two attributes is defined as follows:

      +
        +
      • If a simplification rule is marked concrete, then all arguments must be
        +concrete for the rule to match.
      • +
      • If a simplification rule is marked symbolic, then all arguments must be
        +symbolic for the rule to match.
      • +
      • The following syntax concrete(<variables>) (resp. symbolic(<variables>)),
        +where <variables> is a list of variable names separated by commas, can be used
        +to specify the exact arguments the user expects to match concrete (resp. symbolic)
        +patterns.
      • +
      +

      For example, the following will only match when all arguments
      +are concrete:

      +
      rule X +Int (Y +Int Z) => (X +Int Y) +Int Z [simplification, concrete]
      +

      Conversely, the following will only match when all arguments
      +are symbolic:

      +
      rule X +Int (Y +Int Z) => (X +Int Y) +Int Z [simplification, symbolic]
      +

      In practice, the following rules will re-associate and commute terms to combine
      +concrete arguments:

      +
      rule (A +Int Y) +Int Z => A +Int (Y +Int Z)
      +  [concrete(Y, Z), symbolic(A), simplification]
      +
      +rule X +Int (B +Int Z) => B +Int (X +Int Z)
      +  [concrete(X, Z), symbolic(B), simplification]
      +

      The unboundVariables attribute

      + +

      Normally, K rules are not allowed to contain regular (i.e., not fresh, not
      +existential) variables in the RHS / requires / ensures clauses which are not
      +bound in the LHS.

      +

      However, in certain cases this behavior might be desired, like, for example,
      +when specifying a macro rule which is to be used in the LHS of other rules.
      +To allow for such cases, but still be useful and perform the unboundness checks
      +in regular cases, the unboundVariables attributes allows the user to specify
      +a comma-separated list of names of variables which can be unbound in the rule.

      +

      For example, in the macro declaration

      +
        rule cppEnumType => bar(_, scopedEnum() #Or unscopedEnum() ) [unboundVariables(_)]
      +

      the declaration unboundVariables(_) allows the rule to pass the unbound
      +variable checks, and this in turn allows for cppEnumType to be used in
      +the LHS of a rule to mean the pattern above:

      +
        rule inverseConvertType(cppEnumType, foo((cppEnumType #as T::CPPType => underlyingType(T))))
      +

      The memo attribute

      + +

      The memo attribute is a hint from the user to the backend to memoize a
      +function. Not all backends support memoization, but when the attribute is used
      +and the definition is compiled for a memo-supporting backend, then calls to
      +the function may be cached. At the time of writing, only the Haskell
      +backend supports memoization.

      +

      Limitations of memoization with the Haskell backend

      + +

      The Haskell backend will only cache a function call if all arguments are concrete.

      +

      It is recommended not to memoize recursive functions, as each recursive call
      +will be stored in the cache, but only the first iteration will be retrieved from
      +the cache; that is, the cache will be filled with many unreachable
      +entries. Instead, we recommend to perform a worker-wrapper transformation on
      +recursive functions, and apply the memo attribute to the wrapper.

      +

      Warning: A function declared with the memo attribute must not use
      +uninterpreted functions in the side-condition of any rule. Memoizing such an
      +impure function is unsound. To see why, consider the following rules:

      +
      syntax Bool ::= impure( Int ) [function]
      +
      +syntax Int ::= unsound( Int ) [function, memo]
      +rule unsound(X:Int) => X +Int 1 requires impure(X)
      +rule unsound(X:Int) => X        requires notBool impure(X)
      +

      Because the function impure is not given rules to cover all inputs, unsound
      +can be memoized incoherently. For example,

      +
      {unsound(0) #And {impure(0) #Equals true}} #Equals 1
      +

      but

      +
      {unsound(0) #And {impure(0) #Equals false}} #Equals 0
      +

      The memoized value of unsound(0) would be incoherently determined by which
      +pattern the backend encounters first.

      +

      Variable Sort Inference

      + +

      In K, it is not required that users declare the sorts of variables in rules or
      +in the initial configuration. If the user does not explicitly declare the sort
      +of a variable somewhere via a cast (see below), the sort of the variable is
      +inferred from context based on the sort signature of every place the variable
      +appears in the rule.

      +

      As an example, consider the rule for addition in IMP:

      +
          syntax Exp ::= Exp "+" Exp | Int
      +
      +    rule I1 + I2 => I1 +Int I2
      +

      Here +Int is defined in the INT module with the following signature:

      +
          syntax Int ::= Int "+Int" Int [function]
      +

      In the rule above, the sort of both I1 and I2 is inferred as Int. This is because
      +a variable must have the same sort every place it appears within the same rule.
      +While a variable appearing only on the left-hand-side of the rule could have
      +sort Exp instead, the same variable appears as a child of +Int, which
      +constriants the sorts of I1 and I2 more tightly. Since the sort must be a
      +subsort of Int or equal to Int, and Int has no subsorts, we infer Int
      +as the sorts of I1 and I2. This means that the above rule will not match
      +until I1 and I2 become integers (i.e., have already been evaluated).

      +

      More complex examples are possible, however:

      +
          syntax Exp ::= Exp "+" Int | Int
      +    rule _ + _ => 0
      +

      Here we have two anonymous variables. They do not refer to the same variable
      +as one another, so they can have different sorts. The right side is constrained
      +by + to be of sort Int, but the left side could be either Exp or Int.
      +When this occurs, we have multiple solutions to the sorts of the variables in
      +the rule. K will only choose solutions which are maximal, however. To be
      +precise, if two different solutions exist, but the sorts of one solution are
      +all greater than or equal to the sorts of the other solution, K will discard
      +the smaller solution. Thus, in the case above, the variable on the left side
      +of the + is inferred of sort Exp, because the solution (Exp, Int) is
      +strictly greater than the solution (Int, Int).

      +

      It is possible, however, for terms to have multiple maximal solutions:

      +
          syntax Exp ::= Exp "+" Int | Int "+" Exp | Int
      +    rule I1 + I2 => 0
      +

      In this example, there is an ambiguous parse. This could parse as either
      +the first + or the second. In the first case, the maximal solution chosen is
      +(Exp, Int). In the second, it is (Int, Exp). Neither of these solutions is
      +greater than the other, so both are allowed by K. As a result, this program
      +will emit an error because the parse is ambiguous. To pick one solution over
      +the other, a cast or a prefer or avoid attribute can be used.

      +

      Casting

      + +

      There are three main types of casts in K: the semantic cast, the strict cast,
      +and the projection cast.

      +

      Semantic casts

      + +

      For every sort S declared in your grammar, K will define the following
      +production for you for use in rules:

      +
          syntax S ::= S ":S"
      +

      The meaning of this cast is that the term inside the cast must be less than
      +or equal to Sort. This can be used to resolve ambiguities, but its principle
      +purpose is to guide execution by telling K what sort variables must match in
      +order for the rule to apply. When compiled, it will generate a pattern that
      +matches on an injection into Sort.

      +

      Strict casts

      + +

      K also introduces the strict cast:

      +
          syntax S ::= S "::S"
      +

      The meaning at runtime is exactly the same as the semantic cast; however, it
      +restricts the sort of the term inside the cast to exactly Sort. That is
      +to say, if you use it on something that is a strictly smaller sort, it will
      +generate a type error. This is useful in certain circumstances to help
      +disambiguate terms, when a semantic cast would not have resolved the ambiguity.
      +As such, it is primarily used to solve ambiguities rather than to guide
      +execution.

      +

      Projection casts

      + +

      K also introduces the projection cast:

      +
          syntax {S2} S ::= "{" S2 "}" ":>S"
      +

      The meaning of this cast at runtime is that if the term inside is of sort
      +Sort, it should have it injection stripped away and the value inside is
      +returned as a term of static sort Sort. However, if the term is of a
      +different sort, it is an error and execution will get stuck. Thus the primary
      +usefulness of this cast is to cast the return value of a function with a
      +greater sort down to a strictly smaller sort that you expect the return value
      +of the function to have. For example:

      +
          syntax Exp ::= foo(Exp) [function] | bar(Int) | Int
      +    rule foo(I:Int) => I
      +    rule bar(I) => bar({foo(I +Int 1)}:>Int)
      +

      Here we know that foo(I +Int 1) will return an Int, but the return sort of
      +foo is Exp. So we project the result into the Int sort so that it can
      +be placed as the child of a bar.

      +

      owise and priority attributes.

      + +

      Sometimes, it is simply not convenient to explicitly describe every
      +single negative case under which a rule should not apply. Instead,
      +we simply wish to say that a rule should only apply after some other set of
      +rules have been tried. K introduces two different attributes that can be
      +added to rules which will automatically generate the necessary matching
      +conditions in a manner which is performant for concrete execution (indeed,
      +it generally outperforms during concrete execution code where the conditions
      +are written explicitly).

      +

      The first is the owise attribute. Very roughly, rules without an attribute
      +indicating their priority apply first, followed by rules with the owise
      +attribute only if all the other rules have been tried and failed. For example,
      +consider the following function:

      +
      syntax Int ::= foo(Int) [function]
      +rule foo(0) => 0
      +rule foo(_) => 1 [owise]
      +

      Here foo(0) is defined explicitly as 0. Any other integer yields the
      +integer 1. In particular, the second rule above will only be tried after the
      +first rule has been shown not to apply.

      +

      This is because the first rule has a lower number assigned for its priority
      +than the second rule. In practice, each rule in your semantics is implicitly
      +or explicitly assigned a numerical priority. Rules are tried in increasing
      +order of priority, starting at zero and trying each increasing numerical value
      +successively.

      +

      You can specify the priority of a rule with the priority attribute. For
      +example, I could equivalently write the second rule above as:

      +
      rule foo(_) => 1 [priority(200)]
      +

      The number 200 is not chosen at random. In fact, when you use the owise
      +attribute, what you are doing is implicitly setting the priority of the rule
      +to 200. This has a couple of implications:

      +
        +
      1. Multiple rules with the owise attribute all have the same priority and thus
        +can apply in any order.
      2. +
      3. Rules with priority higher than 200 apply after all rules with the
        +owise attribute have been tried.
      4. +
      +

      There is one more rule by which priorities are assigned: a rule with no
      +attributes indicating its priority is assigned the priority 50. Thus,
      +with each priority explicitly declared, the above example looks like:

      +
      syntax Int ::= foo(Int) [function]
      +rule foo(0) => 0 [priority(50)]
      +rule foo(_) => 1 [owise]
      +

      One final note: the llvm backend reserves priorities between 50 and 150
      +inclusive for certain specific purposes. Because of this, explicit
      +priorities which are given within this region may not behave precisely as
      +described above. This is primarily in order that it be possible where necessary
      +to provide guidance to the pattern matching algorithm when it would otherwise
      +make bad choices about which rules to try first. You generally should not
      +give any rule a priority within this region unless you know exactly what the
      +implications are with respect to how the llvm backend orders matches.

      +

      Evaluation Strategy

      +

      strict and seqstrict attributes

      + +

      The strictness attributes allow defining evaluation strategies without having
      +to explicitly make rules which implement them. This is done by injecting
      +heating and cooling rules for the subterms. For this to work, you need to
      +define what a result is for K, by extending the KResult sort.

      +

      For example:

      +
      syntax AExp ::= Int
      +              | AExp "+" AExp [strict, klabel(addExp)]
      +

      This generates two heating rules (where the hole syntaxes "[]" "+" AExp and
      +AExp "+" "[]" is automatically added to create an evaluation context):

      +
      rule [addExp1-heat]: <k> HOLE:AExp +  AE2:AExp => HOLE ~>  [] + AE2 ... </k> [heat]
      +rule [addExp2-heat]: <k>  AE1:AExp + HOLE:AExp => HOLE ~> AE1 +  [] ... </k> [heat]
      +

      And two corresponding cooling rules:

      +
      rule [addExp1-cool]: <k> HOLE:AExp ~>  [] + AE2 => HOLE +  AE2 ... </k> [cool]
      +rule [addExp2-cool]: <k> HOLE:AExp ~> AE1 +  [] =>  AE1 + HOLE ... </k> [cool]
      +

      Note that the rules are given labels based on the klabel of the production, which
      +nonterminal is the hole, and whether it's the heating or the cooling rule.

      +

      You will note that these rules can apply one after another infinitely. In
      +practice, the KResult sort is used to break this cycle by ensuring that only
      +terms that are not part of the KResult sort will be heated. The heat and
      +cool attributes are used to tell the compiler that these are heating and
      +cooling rules and should be handled in the manner just described. Nothing stops
      +the user from writing such heating and cooling rules directly if they wish,
      +although we describe other more convenient syntax for most of the advanced
      +cases below.

      +

      One other thing to note is that in the above sentences, HOLE is just a
      +variable, but it has special meaning in the context of sentences with the
      +heat or cool attribute. In heating or cooling rules, the variable named
      +HOLE is considered to be the term being heated or cooled and the compiler
      +will generate isKResult(HOLE) and notBool isKResult(HOLE) side conditions
      +appropriately to ensure that the backend does not loop infinitely. The module
      +BOOL will also be automatically and privately included for semantic
      +purposes. The syntax for parsing programs will not be affected.

      +

      In order for this functionality to work, you need to define the KResult sort.
      +For instance, we tell K that a term is fully evaluated once it becomes an Int
      +here:

      +
      syntax KResult ::= Int
      +

      Note that you can also say that a given expression is only strict only in
      +specific argument positions. Here we use this to define "short-circuiting"
      +boolean operators.

      +
      syntax KResult ::= Bool
      +
      +syntax BExp ::= Bool
      +              | BExp "||" BExp [strict(1)]
      +              | BExp "&&" BExp [strict(1)]
      +
      +rule <k> true  || _    => true ... </k>
      +rule <k> false || REST => REST ... </k>
      +
      +rule <k> true  && REST => REST  ... </k>
      +rule <k> false && _    => false ... </k>
      +

      If you want to force a specific evaluation order of the arguments, you can use
      +the variant seqstrict to do so. For example, this would make the boolean
      +operators short-circuit in their second argument first:

      +
      syntax KResult ::= Bool
      +
      +syntax BExp ::= Bool
      +              | BExp "||" BExp [seqstrict(2,1)]
      +              | BExp "&&" BExp [seqstrict(2,1)]
      +
      +rule <k> _    || true  => true ... </k>
      +rule <k> REST || false => REST ... </k>
      +
      +rule <k> REST && true  => REST  ... </k>
      +rule <k> _    && false => false ... </k>
      +

      This will generate rules like this in the case of _||_ (note that BE1 will
      +not be heated unless isKResult(BE2) is true, meaning that BE2 must be
      +evaluated first):

      +
      rule <k>  BE1:BExp || HOLE:BExp => HOLE ~> BE1 ||  [] ... </k> [heat]
      +rule <k> HOLE:BExp ||  BE2:BExp => HOLE ~>  [] || BE2 ... </k> requires isKResult(BE2) [heat]
      +
      +rule <k> HOLE:BExp ~>  [] || BE2 => HOLE ||  BE2 ... </k> [cool]
      +rule <k> HOLE:BExp ~> BE1 ||  [] =>  BE1 || HOLE ... </k> [cool]
      +

      Context Declaration

      + +

      Sometimes more advanced evaluation strategies are needed. By default, the
      +strict and seqstrict attributes are limited in that they cannot describe
      +the context in which heating or cooling should occur. When this type of
      +control over the evaluation strategy is required, context sentences can be
      +used to simplify the process of declaring heating and cooling when it would be
      +unnecessarily verbose to write heating and cooling rules directly.

      +

      For example, if the user wants to heat a term if it exists under a foo
      +constructor if the term to be heated is of sort bar, one might write the
      +following context (with the optional label):

      +
      context [foo]: foo(HOLE:Bar)
      +

      Once again, note that HOLE is just a variable, but one that has special
      +meaning to the compiler indicating the position in the context that should
      +be heated or cooled.

      +

      This will automatically generate the following sentences:

      +
      rule [foo-heat]: <k> foo(HOLE:Bar) => HOLE ~> foo([]) ... </k> [heat]
      +rule [foo-cool]: <k> HOLE:Bar ~> foo([]) => foo(HOLE) ... </k> [cool]
      +

      The user may also write the K cell explicitly in the context declaration
      +if they want to match on another cell as well, for example:

      +
      context <k> foo(HOLE:Bar) ... </k> <state> .Map </state>
      +

      This context will now only heat or cool if the state cell is empty.

      +

      Side conditions in context declarations

      + +

      The user is allowed to write a side condition in a context declaration, like
      +so:

      +
      context foo(HOLE:Bar) requires baz(HOLE)
      +

      This side condition will be appended verbatim to the heating rule that is
      +generated, however, it will not affect the cooling rule that is generated:

      +
      rule <k> foo(HOLE:Bar) => HOLE ~> foo([]) ... </k> requires baz(HOLE) [heat]
      +rule <k> HOLE:Bar ~> foo([]) => foo(HOLE) ... </k> [cool]
      +

      Rewrites in context declarations

      + +

      The user can also include exactly one rewrite operation in a context
      +declaration if that rule rewrites the variable HOLE on the left hand side
      +to a term containing HOLE on the right hand side. For exampl;e:

      +
      context foo(HOLE:Bar => bar(HOLE))
      +

      In this case, the code generated will be as follows:

      +
      rule <k> foo(HOLE:Bar) => bar(HOLE) ~> foo([]) ... </k> [heat]
      +rule <k> bar(HOLE:Bar) ~> foo([]) => foo(HOLE) ... </k> [cool]
      +

      This can be useful if the user wishes to evaluate a term using a different
      +set of rules than normal.

      +

      result attribute

      + +

      Sometimes it is necessary to be able to evaluate a term to a different sort
      +than KResult. This is done by means of adding the result attribute to
      +a strict production, a context, or an explicit heating or cooling rule:

      +
      syntax BExp ::= Bool
      +              | BExp "||" BExp [seqstrict(2,1), result(Bool)]
      +

      In this case, the sort check used by seqstrict and by the heat and cool
      +attributes will be isBool instead of isKResult. This particular example
      +does not really require use of the result attribute, but if the user wishes
      +to evaluate a term of sort KResult further, the result attribute would be
      +required.

      +

      hybrid attribute

      + +

      In certain situations, it is desirable to treat a particular production which
      +has the strict attribute as a result if the term has had its arguments fully
      +evaluated. This can be accomplished by means of the hybrid attribute:

      +
      syntax KResult ::= Bool
      +
      +syntax BExp ::= Bool
      +              | BExp "||" BExp [strict(1), hybrid]
      +

      This attribute is equivalent in this case to the following additional axiom
      +being added to the definition of isKResult:

      +
      rule isKResult(BE1:BExp || BE2:BExp) => true requires isKResult(BE1)
      +

      Sometimes you wish to declare a production hybrid with respect to a predicate
      +other than isKResult. You can do this by specifying a sort as the body of the
      +hybrid attribute, e.g.:

      +
      syntax BExp ::= BExp "||" BExp [strict(1), hybrid(Foo)]
      +

      generates the rule:

      +
      rule isFoo(BE1:BExp || BE2:BExp) => true requires isFoo(BE1)
      +

      Properly speaking, hybrid takes an optional comma-separated list of sort
      +names. If the list is empty, the attribute is equivalent to hybrid(KResult).
      +Otherwise, it generates hybrid predicates for exactly the sorts named.

      +

      Context aliases

      + +

      Sometimes it is necessary to define a fairly complicated evaluation strategy
      +for a lot of different operators. In this case, the user could simply write
      +a number of complex context declarations, however, this quickly becomes
      +tedious. For this purpose, K has a concept called a context alias. A context
      +alias is a bit like a template for describing contexts. The template can then
      +be instantiated against particular productions using the strict and
      +seqstrict attributes.

      +

      Here is a (simplified) example taken from the K semantics of C++:

      +
      context alias [c]: <k> HERE:K ... </k> <evaluate> false </evaluate>
      +context alias [c]: <k> HERE:K ... </k> <evaluate> true </evaluate> [result(ExecResult)]
      +
      +syntax Expr ::= Expr "=" Init [strict(c; 1)]
      +

      This defines the evaluation strategy during the translation phase of a C++
      +program for the assignment operator. It is equivalent to writing the following
      +context declarations:

      +
      context <k> HOLE:Expr = I:Init ... </k> <evaluate> false </evaluate>
      +context <k> HOLE:Expr = I:Init ... </k> <evaluate> true </evaluate> [result(ExecResult)]
      +

      What this is saying is, if the evaluate cell is false, evaluate the term
      +like normal to a KResult. But if the evaluate cell is true, instead
      +evaluate it to the ExecResult sort.

      +

      Essentially, we have given a name to this evaluation strategy in the form of
      +the rule label on the context alias sentences (in this case, c). We can
      +then say that we want to use this evaluation strategy to evaluate particular
      +arguments of particular productions by referring to it by name in a strict
      +attribute. For example, strict(c) will instantiate these contexts once for
      +each argument of the production, whereas strict(c; 1) will instantiate it
      +only for the first argument. The special variable HERE is used to tell the
      +compiler where you want to place the production that is to be heated or cooled.

      +

      You can also specify multiple context aliases for different parts of a production,
      +for example:

      +
      syntax Exp ::= foo(Exp, Exp) [strict(left; 1; right; 2)]
      +

      This says that we can evaluate the left and right arguments in either order, but to evaluate
      +the left using the left context alias and the right using the right context alias.

      +

      We can also say seqstrict(left; 1; right; 2), in which case we additionally must evaluate
      +the left argument before the right argument. Note, all strict positions are considered collectively
      +when determining the evaluation order of seqstrict or the hybrid predicates.

      +

      A strict attribute with no rule label associated with it is equivalent to
      +a strict attribute given with the following context alias:

      +
      context alias [default]: <k> HERE:K ... </k>
      +

      One syntactic convenience that is provided is that if you wish to declare the following context:

      +
      context foo(HOLE => bar(HOLE))
      +

      you can simply write the following:

      +
      syntax Foo ::= foo(Bar) [strict(alias)]
      +
      +context alias [alias]: HERE [context(bar)]
      +

      Pattern Matching

      +

      As Patterns

      + +

      New syntax has been added to K for matching a pattern and binding the resulting
      +match in its entirety to a variable.

      +

      The syntax is:

      +
      Pattern #as V::Var
      +

      In this case, Pattern, including any variables, is matched and the resulting
      +variables are added to the substitution if matching succeeds. Furthermore, the
      +term matched by Pattern is added to the substitution as V.

      +

      This code can also be used outside of any rewrite, in which case matching
      +occurs as if it appeared on the left hand side, and the right hand side becomes
      +a variable corresponding to the alias.

      +

      It is an error to use an as pattern on the right hand side of a rule.

      +

      Record-like KApply Patterns

      + +

      We have added a syntax for matching on KApply terms which mimics the record
      +syntax in functional languages. This allows us to more easily express patterns
      +involving a KApply term in which we don't care about some or most of the
      +children, without introducing a dependency into the code on the number of
      +arguments which could be changed by a future refactoring.

      +

      The syntax is:

      +
      record(... field1: Pattern1, field2: Pattern2)
      +

      Note that this only applies to productions that are prefix productions.
      +A prefix production is considered by the implementation to be any production
      +whose production items match the following regular expression:

      +
      (Terminal(_)*) Terminal("(")
      +(NonTerminal (Terminal(",") NonTerminal)* )?
      +Terminal(")")
      +

      In other words, any sequence of terminals followed by an open parenthesis, an
      +optional comma separated list of non-terminals, and a close parenthesis.

      +

      If a prefix production has no named nonterminals, a record(...) syntax is
      +allowed, but in order to reference specific fields, it is necessary to give one
      +or more of the non-terminals in the production names.

      +

      Note: because the implementation currently creates one production per possible
      +set of fields to match on, and because all possible permutations of all
      +possible subsets of a list of n elements is a number that scales factorially
      +and reaches over 100 thousand productions at n=8, we currently do not allow
      +fields to be matched in any order like a true record, but only in the same
      +order as appears in the production itself.

      +

      Given that this only reduces the number of productions to the size of the power
      +set, this will still explode the parsing time if we create large productions of
      +10 or more fields that all have names. This is something that should probably
      +be improved, however, productions with that large of an arity are rare, and
      +thus it has not been viewed as a priority.

      +

      Or Patterns

      + +

      Sometimes you wish to express that a rule should match if one out of multiple
      +patterns should match the same subterm. We can now express this in K by means
      +of using the #Or ML connective on the left hand side of a rule.

      +

      For example:

      +
      rule foo #Or bar #Or baz => qux
      +

      Here any of foo, bar, or baz will match this rule. Note that the behavior is
      +ill-defined if it is not the case that all the clauses of the or have the same
      +bound variables.

      +

      Matching global context in function rules

      + +

      On occasion it is highly desirable to be able to look up information from the
      +global configuration and match against it when evaluating a function. For this
      +purpose, we introduce a new syntax for function rules.

      +

      This syntax allows the user to match on function context from within a
      +function rule:

      +
      syntax Int ::= foo(Int) [function]
      +
      +rule [[ foo(0) => I ]]
      +     <bar> I </bar>
      +
      +rule something => foo(0)
      +

      This is completely desugared by the K frontend and does not require any special
      +support in the backend. It is an error to have a rewrite inside function
      +context, as we do not currently support propagating such changes back into the
      +global configuration. It is also an error if the context is not at the top
      +level of a rule body.

      +

      Desugared code:

      +
      syntax Int ::= foo(Int, GeneratedTopCell) [function]
      +
      +rule foo(0, <generatedTop>
      +              <bar> I </bar>
      +              ...
      +            </generatedTop> #as Configuration) => I
      +rule <generatedTop>
      +       <k> something ... </k>
      +       ...
      +     </generatedTop> #as Configuration
      +  => <generatedTop>
      +       <k> foo(0, Configuration> ... </k>
      +       ...
      +     </generatedTop>
      +

      Collection patterns

      + +

      It is allowed to write patterns on the left hand side of rules which refer to
      +complex terms of sort Map, List, and Set, despite these patterns ostensibly
      +breaking the rule that terms which are functions should not appear on the left
      +hand side of rules. Such terms are destructured into pattern matching
      +operations.

      +

      The following forms are allowed:

      +
      // 0 or more elements followed by 0 or 1 variables of sort List followed by
      +// 0 or more elements
      +ListItem(E1) ListItem(E2) L:List ListItem(E3) ListItem(E4)
      +
      +// the empty list
      +.List
      +
      +// 0 or more elements in any order plus 0 or 1 variables of sort Set
      +// in any order
      +SetItem(K1) SetItem(K2) S::Set SetItem(K3) SetItem(K4)
      +
      +// the empty set
      +.Set
      +
      +// 0 or more elements in any order plus by 0 or 1 variables of sort Map
      +// in any order
      +K1 |-> E1 K2 |-> E2 M::Map K3 |-> E3 K4 |-> E4
      +
      +// the empty map
      +.Map
      +

      Here K1, K2, K3, K4 etc can be any pattern except a pattern containing both
      +function symbols and unbound variables. An unbound variable is a variable whose
      +binding cannot be determined by means of decomposing non-set-or-map patterns or
      +map elements whose keys contain no unbound variables.

      +

      This is determined recursively, ie, the term K1 |-> E2 E2 |-> E3 E3 |-> E4 is
      +considered to contain no unbound variables.

      +

      Note that in the pattern K1 |-> E2 K3 |-> E4 E4 |-> E5, K1 and K3 are
      +unbound, but E4 is bound because it is bound by deconstructing the key E3, even
      +though E3 is itself unbound.

      +

      In the above examples, E1, E2, E3, and E4 can be any pattern that is normally
      +allowed on the lhs of a rule.

      +

      When a map or set key contains function symbols, we know that the variables in
      +that key are bound (because of the above restriction), so it is possible to
      +evaluate the function to a concrete term prior to performing the lookup.

      +

      Indeed, this is the precise semantics which occurs; the function is evaluated
      +and the result is looked up in the collection.

      +

      For example:

      +
      syntax Int ::= f(Int) [function]
      +rule f(I:Int) => I +Int 1
      +rule <k> I:Int => . ... </k> <state> ... SetItem(f(I)) ... </state>
      +

      This will rewrite I to . if and only if the state cell contains
      +I +Int 1.

      +

      Note that in the case of Set and Map, one guarantee is that K1, K2, K3, and K4
      +represent /distinct/ elements. Pattern matching fails if the correct number of
      +distinct elements cannot be found.

      +

      Matching on cell fragments

      + +

      K allows matching fragments of the configuration and using them to construct
      +terms and use as function parameters.

      +
      configuration <t>
      +                <k> #init ~> #collectOdd ~> $PGM </k>
      +                <fs>
      +                  <f multiplicity="*" type="Set"> 1 </f>
      +                </fs>
      +              </t>
      +

      The #collectOdd construct grabs the entire content of the <fs> cell.
      +We may also match on only a portion of its content. Note that the fragment
      +must be wrapped in a <f> cell at the call site.

      +
      syntax KItem ::= "#collectOdd"
      +rule <k> #collectOdd => collectOdd(<fs> Fs </fs>) ... </k>
      +     <fs> Fs </fs>
      +

      The collectOdd function collects the items it needs

      +
      syntax Set ::= collectOdd(FsCell) [function]
      +rule collectOdd(<fs> <f> I </f> REST </fs>) => SetItem(I) collectOdd(<fs> REST </fs>) requires I %Int 2 ==Int 1
      +rule collectOdd(<fs> <f> I </f> REST </fs>) =>            collectOdd(<fs> REST </fs>) requires I %Int 2 ==Int 0
      +rule collectOdd(<fs> .Bag </fs>) => .Set
      +

      all-path and one-path attributes to distinguish reachability claims

      + +

      As the Haskell backend can handle both one-path and all-path reachability
      +claims, but both these are encoded as rewrite rules in K, these attributes can
      +be used to clarify what kind of claim a rule is.

      +

      In addition of being able to annotate a rule with one of them
      +(if annotating with more at the same time, only one of them would be chosen),
      +one can also annotate whole modules, to give a default claim type for all rules
      +in that module.

      +

      Additionally, the Haskell backend introduces an extra command line option
      +for the K frontend, --default-claim-type, with possible values
      +all-path and one-path to allow choosing a default type for all
      +claims.

      +

      Set Variables

      + +

      Motivation

      + +

      Set variables were introduced as part of Matching Mu Logic, the mathematical
      +foundations for K. In Matching Mu Logic, terms evaluate to sets of values.
      +This is useful for both capturing partiality (as in 3/0) and capturing
      +non-determinism (as in 3 #Or 5). Consequently, symbol interpretation is
      +extended to have a collective interpretation over sets of input values.

      +

      Usually, K rules are given using regular variables, which expect that the term
      +they match is both defined and has a unique interpretation.

      +

      However, it is sometimes useful to have simplification rules which work over
      +any kind of pattern, be it undefined or non-deterministic. This behavior can be
      +achieved by using set variables to stand for any kind of pattern.

      +

      Syntax

      + +

      Any variable prefixed by @ will be considered a set variable.

      +

      Example

      + +

      Below is a simplification rule which motivated this extension:

      +
        rule #Ceil(@I1:Int /Int @I2:Int) =>
      +    {(@I2 =/=Int 0) #Equals true} #And #Ceil(@I1) #And #Ceil(@I2)
      +    [anywhere]
      +

      This rule basically says that @I1:Int /Int @I2:Int is defined if @I1 and
      +@I2 are defined and @I2 is not 0. Using sets variables here is important as
      +it allows the simplification rule to apply any symbolic patterns, without
      +caring whether they are defined or not.

      +

      This allows simplifying the expression #Ceil((A:Int /Int B:Int) / C:Int) to:

      +
      {(C =/=Int 0) #Equals true} #And #Ceil(C) #And ({(B =/=Int 0) #Equals true}
      +#And #Ceil(B) #And #Ceil(A)`
      +

      See kframework/kore#729 for
      +more details.

      +

      SMT Translation

      + +

      K makes queries to an SMT solver (Z3) to discharge proof obligations when doing
      +symbolic execution. You can control how these queries are made using the
      +attributes smtlib, smt-hook, and smt-lemma on declared productions.
      +These attributes guide the prover when it tries to apply rules to discharge a
      +proof obligation.

      +
        +
      • smt-hook(...) allows you to specify a term in SMTLIB2 format which should
        +be used to encode that production, and assumes that all symbols appearing in
        +the term are already declared by the SMT solver.
      • +
      • smtlib(...) allows you to declare a new SMT symbol to be used when that
        +production is sent to Z3, and gives it uninterpreted function semantics.
      • +
      • smt-lemma can be applied to a rule to encode it as a conditional equality
        +when sending queries to Z3. A rule rule LHS => RHS requires REQ will be
        +encoded as the conditional equality (=> REQ (= (LHS RHS)). Every symbol
        +present in the rule must have an smt-hook(...) or smtlib(...) attribute.
      • +
      +
      syntax Int ::= "~Int" Int          [function, klabel(~Int_), symbol,
      +                                    smtlib(notInt)]
      +             | Int "^%Int" Int Int [function, klabel(_^%Int__), symbol,
      +                                    smt-hook((mod (^ #1 #2) #3))]
      +

      In the example above, we declare two productions ~Int_ and _^%Int__, and
      +tell the SMT solver to:

      +
        +
      • use uninterpreted function semantics for ~Int_ via SMTLIB2 symbol
        +notInt, and
      • +
      • use the SMTLIB2 term (mod (^ #1 #2) #3) (where #N marks the Nth
        +production non-terminal argument positions) for _^%Int__, where mod and
        +^ already are declared by the SMT solver.
      • +
      +

      Caution

      + +

      Set variables are currently only supported by the Haskell backend.
      +The use of rules with set variables should be sound for all other backends
      +which just execute by rewriting, however it might not be safe for backends
      +which want to guarantee coverage.

      +

      Variables occurring only in the RHS of a rule

      + +

      This section presents possible scenarios requiring variables to only appear in
      +the RHS of a rule.

      +

      Summary

      + +

      Except for ? variables and ! (fresh) variables, which are
      +required to only appear in the RHS of a rule, all other variables must
      +also appear in the LHS of a rule. This restriction also applies to anonymous
      +variables; in particular, for claims, ?_ (not _) should be used in the RHS
      +to indicate that something changes but we don't care to what value.

      +

      To support specifying random-like behavior, the above restriction can be relaxed
      +by annotating a rule with the unboundVariables attribute whenever the rule
      +intentionally contains regular variables only occurring in the RHS.

      +

      Introduction

      + +

      K uses question mark variables of the form ?X to refer to
      +existential variables, and uses ensures to specify logical constraints on
      +those variables.
      +These variables are only allowed to appear in the RHS of a K rule.

      +

      If the rules represent rewrite (semantic) steps or verification claims,
      +then the ? variables are existentially quantified at the top of the RHS;
      +otherwise, if they represent equations, the ? variables are quantified at the
      +top of the entire rule.

      +

      Note that when both ?-variables and regular variables are present,
      +regular variables are (implicitly) universally quantified on top of the rule
      +(already containing the existential quantifications).
      +This essentially makes all ? variables depend on all regular variables.

      +

      All examples below are intended more for program verification /
      +symbolic execution, and thus concrete implementations might choose to ignore
      +them altogether or to provide ad-hoc implementations for them.

      +

      Example: Verification claims

      + +

      Consider the following definition of a (transition) system:

      +
      module A
      +  rule foo => true
      +  rule bar => true
      +  rule bar => false
      +endmodule
      +

      Consider also, the following specification of claims about the definition above:

      +
      module A-SPEC
      +  rule [s1]: foo => ?X:Bool
      +  rule [s2]: foo =>  X:Bool  [unboundVariables(X)]
      +  rule [s3]: bar => ?X:Bool
      +  rule [s4]: bar =>  X:Bool  [unboundVariables(X)]
      +endmodule
      +
      One-path interpretation
      + +
        +
      • (s1) says that there exists a path from foo to some boolean, which is
        +satisfied easily using the foo => true rule
      • +
      • (s3) says the same thing about bar and can be satisfied by either of
        +bar => true and bar => false rules
      • +
      • (s2) and (s4) can be better understood by replacing them with instances for
        +each element of type Bool, which can be interpreted that
        +both true and false are reachable from foo for (s2), or bar for (s4),
        +respectively. +
          +
        • (s2) cannot be verified as we cannot find a path from foo to false.
        • +
        • (s4) can be verified by using bar => true to show true is reachable and
          +bar => false to achieve the same thing for false
        • +
        +
      • +
      +
      All-path interpretation
      + +
        +
      • +

        (s1) says that all paths from foo will reach some boolean, which is
        +satisfied by the foo => true rule and the lack of other rules for foo

        +
      • +
      • +

        (s3) says the same thing about bar and can be satisfied by checking that
        +both bar => true and bar => false end in a boolean, and there are no
        +other rules for bar

        +
      • +
      • +

        (s2) and (s4) can be better understood by replacing them with instances for
        +each element of type Bool, which can be interpreted that
        +both true and false are reachable in all paths originating in
        +foo for (s2), or bar for (s4), respectively.
        +This is a very strong claim, requiring that all paths originating in
        +foo (bar) pass through both true and false,
        +so neither (s2) nor (s4) can be verified.

        +

        Interestingly enough, adding a rule like false => true would make both
        +(s2) and (s4) hold.

        +
      • +
      +

      Example: Random Number Construct rand()

      + +

      The random number construct rand() is a language construct which could be
      +easily conceived to be part of the syntax of a programming language:

      +
      Exp ::= "rand" "(" ")"
      +

      The intended semantics of rand() is that it can rewrite to any integer in
      +a single step. This could be expressed as the following following infinitely
      +many rules.

      +
      rule  rand() => 0
      +rule  rand() => 1
      +rule  rand() => 2
      +  ...    ...
      +rule rand() => (-1)
      +rule rand() => (-2)
      +  ...    ...
      +

      Since we need an instance of the rule for every integer, one could summarize
      +the above infinitely many rules with the rule

      +
      rule rand() => I:Int [unboundVariables(I)]
      +

      Note that I occurs only in the RHS in the rule above, and thus the rule
      +needs the unboundVariables(I) attribute to signal that this is intentionally.

      +

      One can define variants of rand() by further constraining the output variable
      +as a precondition to the rule.

      +
      Rand-like examples
      + +
        +
      1. +

        randBounded(M,N) can rewrite to any integer between M and N

        +
        syntax Exp ::= randBounded(Int, Int)
        +rule randBounded(M, N) => I
        +  requires M <=Int I andBool I <=Int N
        +  [unboundVariables(I)]
        +
      2. +
      3. +

        randInList(Is) takes a list Is of items
        +and can rewrite in one step to any item in Is.

        +
        syntax Exp ::= randInList (List)
        +rule randInList(Is) => I
        +  requires I inList Is
        +  [unboundVariables(I)]
        +
      4. +
      5. +

        randNotInList(Is) takes a list Is of items
        +and can rewrite in one step to any item not in Is.

        +
        syntax Exp ::= randNotInList (List)
        +rule randNotInList(Is) => I
        +  requires notBool(I inList Is)
        +  [unboundVariables(I)]
        +
      6. +
      7. +

        randPrime(), can rewrite to any prime number.

        +
        syntax Exp ::= randPrime ()
        +rule randPrime() => X:Int
        +  requires isPrime(X)
        +  [unboundVariables(X)]
        +

        where isPrime(_) is a predicate that can be defined in the usual way.

        +
      8. +
      +

      Note 1: all above are not function symbols, but language constructs.

      +

      Note 2: Currently the frontend does not allow rules with universally quantified
      +variables in the RHS which are not bound in the LHS.

      +

      Note 3. Allowing these rules in a concrete execution engine would require an
      +algorithm for generating concrete instances for such variables, satisfying the
      +given constraints; thus the unboundVariables attribute serves two purposes:

      +
        +
      • to allow such rules to pass the variable checks, and
      • +
      • to signal (concrete execution) backends that specialized algorithm would be
        +needed to instantiate these variables.
      • +
      +

      Example: Fresh Integer Construct fresh(Is)

      + +

      The fresh integer construct fresh(Is) is a language construct.

      +
      Exp ::= ... | "fresh" "(" List{Int} ")"
      +

      The intended semantics of fresh(Is) is that it can always rewrite to an
      +integer that in not in Is.

      +

      Note that fresh(Is) and randNotInList(Is) are different; the former
      +does not need to be able to rewrite to every integers not in Is,
      +while the latter requires so.

      +

      For example, it is correct to implement fresh(Is) so it always returns the
      +smallest positive integer that is not in Is, but same implementation for
      +randNotInList(Is) might be considered inadequate.
      +In other words, there exist multiple correct implementations of fresh(Is),
      +some of which may be deterministic, but there only exists a unique
      +implementation of randNotInList(Is).
      +Finally, note that randNotInList(Is) is a correct implementation
      +for fresh(Is); Hence, concrete execution engines can choose to handle
      +such rules accordingly.

      +

      We use the following K syntax to define fresh(Is)

      +
      syntax Exp ::= fresh (List{Int})
      +rule fresh(Is:List{Int}) => ?I:Int
      +  ensures notBool (?I inList{Int} Is)
      +

      A variant of this would be a choiceInList(Is) language construct which would
      +choose some number from a list:

      +
      syntax Exp ::= choiceInList (List{Int})
      +rule choiceInList(Is:List{Int}) => ?I:Int
      +  ensures ?I inList{Int} Is
      +

      Note: This definition is different from one using a ! variable to indicate
      +freshness because using ! is just syntactic sugar for generating globally
      +unique instances and relies on a special configuration cell, and cannot be
      +constrained, while the fresh described here is local and can be constrained.
      +While the first is more appropriate for concrete execution, this might be
      +better for symbolic execution / program verification.

      +

      Example: Arbitrary Number (Unspecific Function) arb()

      + +

      The function arb() is not a PL construct, but a mathematical function.
      +Therefore, its definition should not be interpreted as an execution step, but
      +rather as an equality.

      +

      The intended semantics of arb() is that it is an unspecified nullary function.
      +The exact return value of arb() is unspecified in the semantics but up to the
      +implementations.
      +However, being a mathematical function, arb() must return the same value in
      +any one implementation.

      +

      We do not need special frontend syntax to define arb().
      +We only need to define it in the usual way as a function
      +(instead of a language construct), and provide no axioms for it.
      +The total attribute ensures that the function is total, i.e.,
      +that it evaluates to precisely one value for each input.

      +
      Variants
      + +

      There are many variants of arb(). For example, arbInList(Is) is
      +an unspecified function whose return value must be an element from Is.

      +

      Note that arbInList(Is) is different from choiceInList(Is), because
      +choiceInList(Is) transitions to an integer in Is (could be a different one
      +each time it is used), while arbInList(Is) is equal to a (fixed)
      +integer not in Is.

      +

      W.r.t. the arb variants, we can use ? variables and the function
      +annotation to signal that we're defining a function and the value of the
      +function is fixed, but non-determinate.

      +
      syntax Int ::= arbInList(List{Int}) [function]
      +rule arbInList(Is:List{Int}) => ?I:Int
      +  ensures ?I inList{Int} Is
      +

      If elimination of existentials in equational rules is needed, one possible
      +approach would be through Skolemization,
      +i.e., replacing the ? variable with a new uninterpreted function depending
      +on the regular variables present in the function.

      +

      Example: Interval (Non-function Symbols) interval()

      + +

      The symbol interval(M,N) is not a PL construct, nor a function in the
      +first-order sense, but a proper matching-logic symbol, whose interpretation is
      +in the powerset of its domain.
      +Its axioms will not use rewrites but equalities.

      +

      The intended semantics of interval(M,N) is that it equals the set of
      +integers that are larger than or equal to M and smaller than or equal to N.

      +

      Since expressing the axiom for interval requires an an existential
      +quantification on the right-hand-side, thus making it a non-total symbol
      +defined through an equation, using ? variables might be confusing since their
      +usage would be different from that presented in the previous sections.

      +

      Hence, the proposal to support this would be to write this as a proper ML rule.
      +A possible syntax for this purpose would be:

      +
      eq  interval(M,N)
      +    ==
      +    #Exists X:Int .
      +        (X:Int #And { X >=Int M #Equals true } #And { X <=Int N #Equals true })
      +

      Additionally, the symbol declaration would require a special attribute to
      +signal the fact that it is not a constructor but a defined symbol.

      +

      Since this feature is not clearly needed by K users at the moment, it is only
      +presented here as an example; its implementation will be postponed for such time
      +when its usefulness becomes apparent.

      +

      Parser Generation

      +

      In addition to on-the-fly parser generation using kast, K is capable of
      +ahead-of-time parser generation of LR(1) or GLR parsers using Flex and Bison.
      +This can be done one of two different ways.

      +
        +
      1. You can explicitly request for a particular parser to be generated by
        +invoking kast --gen-parser <outputFile> or
        +kast --gen-glr-parser <outputFile> respectively. kast will then create a
        +parser based on the same command line flags that govern on-the-fly parsing,
        +like -s to specify the starting sort, and -m to specify the module to
        +parse under. By default, this generates a parser for the sort of the $PGM
        +configuration variable in the main syntax module of the definition.
      2. +
      3. You can request that a specific set of parsers be generated for all the
        +configuration variables of your definition by passing the
        +--gen-bison-parser or --gen-glr-bison-parser flags to kompile.
        +kompile will decide the sorts to use as start symbols based on the sorts
        +in the configuration declaration for the configuration variables. The $PGM
        +configuration variable will be generated based on the main syntax module
        +of the definition. The user must explicitly annotate the configuration
        +declaration with the other modules to use to parse the other configuration
        +variables as attributes. For example, if I have the following cell in the
        +configuration declaration: <cell> foo($FOO:Foo, $BAR:Bar) </cell>,
        +One might annotate it with the attribute pair parser="FOO, TEST; BAR, TEST2"
        +to indicate that configuration variable $FOO should be parsed in the
        +TEST module, and configuration variable $BAR should be parsed in the
        +TEST2 module. If the user forgets to annotate the declaration with the
        +parser attribute, only the $PGM parser will be generated.
      4. +
      +

      Bison-generated parsers are extremely fast compared to kast, but they have
      +some important limitations:

      +
        +
      • Bison parsers will always output Kore. You can then pass the resulting AST
        +directly to llvm-krun or kore-exec and bypass the krun frontend, making
        +them very fast, but lower-level.
      • +
      • Bison parsers do not yet support macros. This may change in a future release.
        +Note that you can use anywhere rules instead of macros in most cases to get
        +around this limitation, although they will not benefit from unparsing via the
        +alias attribute.
      • +
      • Obligation falls on the user to ensure that the grammar they write is LR(1)
        +if they choose to use LR(1) parsing. If this does not happen, the parser
        +generated will have shift/reduce or reduce/reduce conflicts and the parser
        +may behave differently than kast would (kast is a GLL parser, ie, it
        +is based on LL parsers and parses all unambiguous context-free grammars).
        +K provides an attribute, not-lr1, which can be applied to modules known to
        +not be LR(1), and will trigger a warning if the user attempts to generate an
        +LR(1) parser which recursively imports that module.
      • +
      • If you are using LR(1) based parsing, the prefer and avoid attributes are
        +ignored. It is only possible to implement these attributes by means of
        +generalized LL or LR parsing and a postprocessing on the AST to remove the
        +undesirable ambiguity.
      • +
      • Obligation falls on the user to ensure that the grammar they write has as
        +few conflicts as possible if they are using GLR parsing. Bison's GLR support
        +is quite primitive, and in the worst case it can use exponential space and
        +time to parse a program, which generally leads the generated parser to report
        +"memory exhausted", indicating that the parse could not be completed within
        +the stack space allocated by Bison. It's best to ensure that the grammar is
        +as close to LR(1) as possible and only utilizes conflicts where absolutely
        +necessary. One tool that can be used to facilitate this is to pass
        +--bison-lists to kompile. This will disable support for the List{Sort}
        +syntax production, and it will make NeList{Sort} left associative, but the
        +resulting productions generated for NeList{Sort} will be LR(1) and use bounded
        +stack space.
      • +
      • If the grammar you are parsing is context-sensitive (for example, because
        +it requires a symbol table to parse), one thing you can do to make this
        +language parse in K is to implement the language as an ambiguous grammar.
        +Bison's GLR parser will generate an amb production that is parametric in
        +the sort of the ambiguity. You can then import the K-AMBIGUITIES module
        +and use rewriting to resolve the ambiguities using whatever preprocessing
        +mechanisms you prefer.
      • +
      +

      Location Information

      +

      K is able to insert file, line, and column metadata into the parse tree on a
      +per-sort basis when parsing using a bison-generated parser. To enable this,
      +mark the sort with the locations attribute.

      +
        syntax Exp [locations]
      +  syntax Exp ::= Exp "/" Exp | Int
      +

      K implicitly wraps productions of these sorts in a #location term (see the
      +K-LOCATIONS module in kast.md). The metadata can thus be accessed with
      +ordinary rewrite rules:

      +
        rule #location(_ / 0, File, StartLine, _StartColumn, _EndLine, _EndColumn) =>
      +  "Error: Division by zero at " +String File +String ":" Int2String(StartLine)
      +

      Sometimes it is desirable to allow code to be written in a file which
      +overwrites the current location information provided by the parser. This can be
      +done via a combination of the #LineMarker sort and the --bison-file flag to
      +the parser generator. If you declare a production of sort #LineMarker which
      +contains a regular expression terminal, this will be treated as a
      +line marker by the bison parser. The user will then be expected to provide
      +an implementation of the parser for the line marker in C. The function expected
      +by the parser has the signature void line_marker(char *, yyscan_t), where
      +yyscan_t is a
      +reentrant flex scanner.
      +The string value of the line marker token as specified by your regular
      +expression can be found in the first parameter of the function, and you can
      +set the line number used by the scanner using yyset_lineno(int, yyscan_t). If
      +you declare the variable extern char *filename, you can also set the current
      +file name by writing a malloc'd, zero-terminated string to that variable.

      +

      Unparsing

      +

      A number of factors go into how terms are unparsed in K. Here we describe some
      +of the features the user can use to control how unparsing happens.

      +

      Brackets

      + +

      One of the phases that the unparser goes through is to insert productions
      +tagged with the bracket attribute where it believes this is necessary
      +in order to create a correct string that will be parsed back into the original
      +AST. The most common case of this is in expression grammars. For example,
      +consider the following grammar:

      +
      syntax Exp ::= Int
      +             | Exp "*" Exp
      +             > Exp "+" Exp
      +

      Here we have declared that expressions can contain integer addition and
      +multiplication, and that multiplication binds tighter than addition. As a
      +result, when writing a program, if we want to write an expression that first
      +applies addition, then multiplication, we must use brackets: (1 + 2) * 3.
      +Similarly, if we have such an AST, we must insert brackets into the AST
      +in order to faithfully unparse the term in a manner that will be parsed back
      +into the same ast, because if we do not, we end up unparsing the term as
      +1 + 2 * 3, which will be parsed back as 1 + (2 * 3) because of the priority
      +declaration in the grammar.

      +

      You can control how the unparser will insert such brackets by adding a
      +production with the bracket attribute and the correct sort. For example, if,
      +instead of parentheses, you want to use curly braces, you could write:

      +
      syntax Exp ::= "{" Exp "}" [bracket]
      +

      This would signal to the unparser how brackets should look for terms of sort
      +Exp, and it will use this syntax when unparsing terms of sort Exp.

      +

      Commutative collections

      + +

      One thing that K will do (unless you pass the --no-sort-collections flag to
      +krun) is to sort associative, commutative collections (such as Set and Map)
      +alphanumerically. For example, if I have a collection whose keys are sort Id
      +and they have the values a, b, c, and d, then unparsing will always print
      +first the key a, then b, then c, then d, because this is the alphabetic order
      +of these keys when unparsed.

      +

      Furthermore, K will sort numeric keys numerically. For example, if I have a
      +collection whose keys are 1, 2, 5, 10, 30, it will first display 1, then 2,
      +then 5, then 10, then 30, because it will sort these keys numerically. Note
      +that this is different than an alphabetic sort, which would sort them as
      +1, 10, 2, 30, 5. We believe the former is more intuitive to users.

      +

      Substitution filtering

      + +

      K will remove substitution terms corresponding to anonymous variables when
      +using the --pattern flag if those anonymous variables provide no information
      +about the named variables in your serach pattern. You can disable this behavior
      +by passing --no-substitution-filtering to krun. When this flag is not passed,
      +and you are using the Haskell backend, any equality in a substitution (ie, an
      +#Equals under an #And under an #Or), will be hidden from the user if the
      +left hand side is a variable that was anonymous in the --pattern passed by
      +the user, unless that variable appears elsewhere in the substitution. If you
      +want to see that variable in the substitution, you can either disable this
      +filtering, or give that variable a name in the original search pattern.

      +

      Variable alpha renaming

      + +

      K will automatically rename variables that appear in the output configuration.
      +Similar to commutative collections, this is done to normalize the resulting
      +configuration so that equivalent configurations will be printed identically
      +regardless of how they happen to be reached. This pass can be disabled by
      +passing --no-alpha-renaming to krun.

      +

      Macro expansion

      + +

      K will apply macros in reverse on the output configuration if the macro was
      +created with the alias or alias-rec attribute. See the section on macro
      +expansion for more details.

      +

      Formatting

      + +

      format attribute

      + +

      K allows you to control how terms are unparsed using the format attribute.
      +By default, a domain value is unparsed by printing its string value verbatim,
      +and an application pattern is unparsed by printing its terminals and children
      +in the sequence implied by its concrete syntax, separated by spaces. However,
      +K gives you complete control over how you want to unparse the symbol.

      +

      A format attribute is a string containing zero or more escape sequences that
      +tell K how to unparse the symbol. Escape sequences begin with a '%' and are
      +followed by either an integer, or a single non-digit character. Below is a
      +list of escape sequences recognized by the formatter:

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Escape SequenceMeaning
      nInsert '\n' followed by the current indentation level
      iIncrease the current indentation level by 1
      dDecrease the current indentation level by 1
      cMove to the next color in the list of colors for this production
      rReset color to the default foreground color for the terminal (See below for more information on how colors work)
      an integerPrint a terminal or nonterminal from the production (See below for more information)
      any other charPrint that character verbatim
      +

      Using the integer escape sequence

      + +

      In the integer escape sequence %a, the integer a is treated as a 1-based
      +index into the terminals and nonterminals of the production.

      +
        +
      • +

        If the offset refers to a terminal, move to the next color in the list of
        +colors for this production, print the value of that terminal, then reset the
        +color to the default foreground color for the terminal.

        +
      • +
      • +

        If the offset refers to a regular expression terminal, it is an error.

        +
      • +
      • +

        If the offset refers to a nonterminal, print the unparsed representation of
        +the corresponding child of the current term.

        +
      • +
      +

      color and colors attributes

      + +

      K allows you to take advantage of ANSI terminal codes for foreground color
      +in order to colorize output pretty-printed by the unparser. This is controlled
      +via the color and colors attributes of productions. These attributes
      +combine with the format attribute to control how a term is colorized.

      +

      The first thing to understand about how colorization works is that the color
      +and colors attributes are used to construct a list of colors associated
      +with each production, and the format attribute then uses that list to choose
      +the color for each part of the production. For more information on how the
      +format attribute chooses a color from the list, see above, but essentially,
      +each terminal or %c in the format attribute advances the pointer in the list
      +by one element, and terminals and %r reset the current color to the default
      +foreground color of the terminal afterwards.

      +

      There are two ways you can construct a list of colors associated with a
      +production:

      +
        +
      • +

        The color attribute creates the entire list all with the same color, as
        +specified by the value of the attribute. When combined with the default format
        +attribute, this will color all the terminals in that production that color, but
        +more advanced techniques can be used as well.

        +
      • +
      • +

        The colors attribute creates the list from a manual, comma-separated list
        +of colors. The attribute is invalid if the length of the list is not equal to
        +the number of terminals in the production plus the number of %c substrings in
        +the format attribute.

        +
      • +
      +

      Attributes Reference

      +

      Attribute Syntax Overview

      + +

      In K, many different syntactic categories accept an optional trailing list of
      +keywords known as attributes. Attribute lists have two different syntaxes,
      +depending on where they occur. Each attribute also has a type which describes
      +where it may occur.

      +

      The first syntax is a square-bracketed ([]) list of words. This syntax is
      +available for following attribute types:

      +
        +
      1. module attributes - may appear immediately after the module keyword
      2. +
      3. sort attributes - may appear immediately after a sort declaration
      4. +
      5. production attributes - may appear immediately after a BNF production
        +alternative
      6. +
      7. rule attributes - may appear immediately after a rule
      8. +
      9. context attributes - may appear immediately after a context or context
        +alias
      10. +
      11. context alias attributes - may appear immediately after a context alias
      12. +
      13. claim attributes - may appear immediately after a claim
      14. +
      +

      The second syntax is the XML attribute syntax, i.e., a space delemited list of
      +key-and-quoted-value pairs appearing inside the start tag of an XML element:
      +<element key1="value" key2="value2" ... > </element>. This syntax is
      +available for the following attribute types:

      +
        +
      1. cell attributes - may appear inside of the cell start tag in
        +configuration declarations
      2. +
      +

      Unrecognized attributes are reported as an error. When we talk about
      +the type of an attribute, we mean a syntactic category to which an attribute
      +can be attached where the attribute has some semantic effect.

      +

      Attribute Index

      + +

      We now provide an index of available attributes organized alphabetically with a
      +brief description of each. Note that the same attribute may appear in the index
      +multiple times to indicate its effect in different contexts or with/without
      +arguments. A legend describing how to interpret the index follows.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      NameTypeBackendReference
      alias-recprodallMacros and Aliases
      aliasprodallMacros and Aliases
      all-pathclaimhaskellall-path and one-path attributes to distinguish reachability claims
      anywhereruleallanywhere rules
      applyPriority(_)prodallSymbol priority and associativity
      avoidprodallSymbol priority and associativity
      binderprodallNo reference yet.
      bracketprodallParametric productions and bracket attributes
      color(_)prodallcolor and colors attributes
      colors(_)prodallcolor and colors attributes
      concretemodllvmsymbolic and concrete attribute
      concrete(_)rulehaskellconcrete and symbolic attributes (Haskell backend)
      concreterulehaskellconcrete and symbolic attributes (Haskell backend)
      context(_)aliasallContext aliases
      exit = ""cellallexit attribute
      formatprodallformat attribute
      freshGeneratorprodallfreshGenerator attribute
      functionprodallfunction and total attributes
      group(_)allallSymbol priority and associativity
      hook(_)prodallNo reference yet
      hybrid(_)prodallhybrid attribute
      hybridprodallhybrid attribute
      klabel(_)prodallklabel(_) and symbol attributes
      latex(_)prodallNo reference yet
      leftprodallSymbol priority and associativity
      locationssortallLocation Information
      macro-recprodallMacros and Aliases
      macroprodallMacros and Aliases
      memorulehaskellThe memo attribute
      multiplicity = "_"cellallCollection Cells: multiplicity and type attributes
      non-assocprodallSymbol priority and associativity
      one-pathclaimhaskellall-path and one-path attributes to distinguish reachability claims
      owiseruleallowise and priority attributes
      prec(_)tokenallprec attribute
      preferprodallSymbol priority and associativity
      priority(_)ruleallowise and priority attributes
      privatemodallprivate attribute
      privateprodallpublic and private attribute
      publicmodallNo reference yet.
      publicprodallpublic and private attribute
      result(_)ctxtallresult attribute
      result(_)ruleallresult attribute
      rightprodallSymbol priority and associativity
      seqstrict(_)prodallstrict and seqstrict attributes
      seqstrictprodallstrict and seqstrict attributes
      simplificationrulehaskellsimplification attribute (Haskell backend)
      simplification(_)rulehaskellsimplification attribute (Haskell backend)
      smt-hook(_)prodhaskellSMT Translation
      smtlib(_)prodhaskellSMT Translation
      smt-lemmarulehaskellSMT Translation
      strictprodallstrict and seqstrict attributes
      strict(_)prodallstrict and seqstrict attributes
      symbolicmodhaskellsymbolic and concrete attribute
      symbolicrulehaskellconcrete and symbolic attributes (Haskell backend)
      symbolic(_)rulehaskellconcrete and symbolic attributes (Haskell backend)
      symbolprodallklabel(_) and symbol attributes
      tokenprodalltoken attribute
      tokensortalltoken attribute
      totalprodallfunction and total attributes
      trustedclaimhaskelltrusted attribute
      type = "_"cellallCollection Cells: multiplicity and type attributes
      unboundVariables(_)ruleallThe unboundVariables attribute
      unusedprodallunused attribute
      kastmodallSpecify that this module should only be included in KAST backends (Java backend).
      koremodallSpecify that this module should only be included in Kore backends (Haskell/LLVM backend).
      concretemodallSpecify that this module should only be included in concrete backends (LLVM backend).
      symbolicmodallSpecify that this module should only be included in symbolic backends (Haskell/Java backend).
      stream = "_"cellallSpecify that this cell should be hooked up to a stream, either stdin, stdout, or stderr.
      +

      Internal Attribute Index

      + +

      Some attributes should not generally appear in user code, except in some
      +unusual or complex examples. Such attributes are typically generated by the
      +compiler and used internally. We list these attributes below as a reference for
      +interested readers:

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      NameTypeBackendReference
      assocprodallassoc, comm, idem and unit attributes
      commprodallassoc, comm, idem and unit attributes
      digestmodallContains the hash of the textual contents of the module.
      idemprodallassoc, comm, idem and unit attributes
      unitprodallassoc, comm, idem and unit attributes
      userListprodallIdentifies the desugared form of Lst ::= List{Elm,"delim"}
      predicateprodallSpecifies the sort of a predicate label
      elementprodallSpecifies the label of the elements in a list
      bracketLabelprodallKeep track of the label of a bracket production since it can't have a klabel
      injectiveprodallLabel a given production as injective (unique output for each input)
      internalprodallProduction is reserved for internal use by the compiler
      coolruleallstrict and seqstrict attributes
      heatruleallstrict and seqstrict attributes
      +

      Index Legend

      + +
        +
      • +

        Name - the attribute's name (optionally followed by an underscore _ to indicate the attribute takes arguments)

        +
      • +
      • +

        Type - the syntactic categories where this attribute is not ignored;
        +the possible values are the types mentioned above or shorthands:

        +
          +
        1. all - short for any type except cell
        2. +
        3. mod - short for module
        4. +
        5. sort
        6. +
        7. prod - short for production
        8. +
        9. rule
        10. +
        11. ctxt - short for context or context alias
        12. +
        13. claim
        14. +
        15. cell
        16. +
        +
      • +
      • +

        Backend - the backends that do not ignore this attribute; possible values:

        +
          +
        1. all - all backends
        2. +
        3. llvm - the LLVM backend
        4. +
        5. haskell - the Haskell backend
        6. +
        +
      • +
      • +

        Effect - the attribute's effect (when it applies)

        +
      • +
      +

      Pending Documentation

      +

      Backend features not yet given documentation:

      +
        +
      • Parser of KORE terms and definitions
      • +
      • Term representation of K terms
      • +
      • Hooked sorts and symbols
      • +
      • Substituting a substitution into the RHS of a rule +
          +
        • domain values
        • +
        • functions
        • +
        • variables
        • +
        • symbols
        • +
        • polymorphism
        • +
        • hooks
        • +
        • injection compaction
        • +
        • overload compaction
        • +
        +
      • +
      • Pattern Matching / Unification of subject and LHS of rule +
          +
        • domain values
        • +
        • symbols
        • +
        • side conditions
        • +
        • and/or patterns
        • +
        • list patterns
        • +
        • nonlinear variables
        • +
        • map/set patterns +
            +
          • deterministic
          • +
          • nondeterministic
          • +
          +
        • +
        • modulo injections
        • +
        • modulo overloads
        • +
        +
      • +
      • Stepping +
          +
        • initialization
        • +
        • termination
        • +
        +
      • +
      • Print kore terms
      • +
      • Equality/comparison of terms
      • +
      • Owise rules
      • +
      • Strategy #STUCK axiom
      • +
      • User substitution +
          +
        • binders
        • +
        • kvar
        • +
        +
      • +
      +

      To get a complete list of hooks supported by K, you can run:

      +
      grep -P -R "(?<=[^-])hook\([^)]*\)" k-distribution/include/kframework/builtin/ \
      +     --include "*.k" -ho | \
      +sed 's/hook(//' | sed 's/)//' | sort | uniq | grep -v org.kframework
      +

      All of these hooks will also eventually need documentation.

      +

      K Cheat Sheet

      +

      This is a quick reference of the most commonly used K tools.

      +
      kompile (--gen-bison-parser)? {file}                : generate parser, optionally with ahead of time
      +krun {file}                                         : interpret file
      +krun -cPGM='{string}'                               : interpret string
      +kast --output (kore | kast) (-e|{file})             : parse expression or file
      +kompile (--enable-search --backend haskell)? {file} : generate parser, enabling non-deterministic run
      +krun (--search-all)? {file}                         : interpret file, evaluating non-deterministic runs as well
      +foo-kompiled/parser_PGM {file}                      : ahead of time parse
      +kompile (--main-module)? (--syntax-module)? {file}  : generate parser for {file}.k {file}-syntax.k, explicitly state main modules
      +kparse <file> | kore-print -                        : parse and unparse a file
      +kompile {file} --enable-llvm-debug                  : generate debuggable output for {file}.k
      +krun {file} --debugger                              : debug K code
      +kprove {file}                                       : Verify specs in {file}
      +

      During GDB debugging session (see here for
      +LLDB breakpoint syntax):

      +
      break {file}:{linenum}                              : add a breakpoint to {file}'s {linenum} numbered line
      +k match {module}.{label} subject                    : investigate matching
      +

      K Tools

      +

      Here we document how to use some of the most commonly used K tools.

      +

      Minimizing Output

      +

      When one is working with kore-repl or the prover in general and looking at
      +specific configurations using config, sometimes the configurations can be huge.

      +

      One tool to help print configuration compactly is the pyk print utility:

      +
      pyk print
      +

      We are going to use --minimize option (which is actually used automatically
      +when printing with pyk). This will filter out many uninteresting cells for the
      +current config and make the result more compact.

      +

      Then, when invoking the prover, you can minimize your output by piping it into
      +the pyk print ... facility with arguments for controlling the output:

      +
      kprove --output json --definition DEFN ... \
      +    | jq .term                             \
      +    | pyk print DEFN /dev/stdin --omit-labels ... --keep-labels ...
      +

      You can also use this in the kore-repl more easily, by making a help script.
      +In your current directory, save a new script pykprint.sh:

      +
      #!/bin/bash
      +
      +kast --input kore --output json --definition $1 /dev/stdin \
      +    | jq .term                                             \
      +    | pyk print $1 /dev/stdin --omit-labels $2
      +

      Now call config | bash pykprint.sh DEFN in Kore REPL to make the output
      +smaller.

      +

      The options you have to control the output are as follows:

      +
        +
      • --no-minimize: do not remove uninteresting cells.
      • +
      • --omit-cells: remove the selected cells from the output.
      • +
      • --keep-cells: keep only the selected cells in the output.
      • +
      +

      Note: Make sure that there is no whitespace around , in the omit list,
      +otherwise you'll get an error (, is a list separator, so this
      +requirement is strict).

      +

      Debugging

      +

      The LLVM Backend has support for integration with GDB. You can run the debugger
      +on a particular program by passing the --debugger flag to krun, or by
      +invoking the llvm backend interpreter directly. Below we provide a simple
      +tutorial to explain some of the basic commands supported by the LLVM backend.

      +

      LLDB Support

      + +

      GDB is not well-supported on macOS, particularly on newer OS versions and Apple
      +Silicon ARM hardware. Consequently, if the --debugger option is passed to krun
      +on macOS, LLDB[^1] is launched instead of GDB. However, the K-specific debugger
      +scripts that GDB uses have not been ported to LLDB yet, and so the instructions
      +in the rest of this section will not work.

      +

      The K Definition

      + +

      Here is a sample K definition we will use to demonstrate debugging
      +capabilities:

      +
      module TEST
      +  imports INT
      +
      +  configuration <k> foo(5) </k>
      +  rule [test]: I:Int => I +Int 1 requires I <Int 10
      +
      +  syntax Int ::= foo(Int) [function]
      +  rule foo(I) => 0 -Int I
      +
      +endmodule
      +

      You should compile this definition with --backend llvm --enable-llvm-debug to
      +use the debugger most effectively.

      +

      Stepping

      + +

      Important: When you first run krun with option --debugger, GDB / LLDB
      +will instruct you on how to modify ~/.gdbinit or ~/.lldbinit to enable
      +printing abstract syntax of K terms in the debugger. If you do not perform this
      +step, you can still use all the other features, but K terms will be printed as
      +their raw address in memory.

      +

      GDB will need the kompiled interpreter in its safe path in order to access the
      +pretty printing python script within it. A good way to do this would be to pick
      +a minimum top-level path that covers all of your kompiled semantics (ie. set auto-load safe-path ~/k-semantics). LLDB has slightly different security
      +policies that do not require fully-arbitrary code execution.

      +

      This section uses GDB syntax to demonstrate the debugging features. Please
      +refer to the GDB to LLDB command map on
      +macOS.

      +

      You can break before every step of execution is taken by setting a breakpoint
      +on the k_step function.

      +
      (gdb) break definition.kore:k_step
      +Breakpoint 1 at 0x25e340
      +(gdb) run
      +Breakpoint 1, 0x000000000025e340 in step (subject=`<generatedTop>{}`(`<k>{}`(`kseq{}`(`inj{Int{}, KItem{}}`(#token("0", "Int")),dotk{}(.KList))),`<generatedCounter>{}`(#token("0", "Int"))))
      +(gdb) continue
      +Continuing.
      +
      +Breakpoint 1, 0x000000000025e340 in step (subject=`<generatedTop>{}`(`<k>{}`(`kseq{}`(`inj{Int{}, KItem{}}`(#token("1", "Int")),dotk{}(.KList))),`<generatedCounter>{}`(#token("0", "Int"))))
      +(gdb) continue 2
      +Will ignore next crossing of breakpoint 1.  Continuing.
      +
      +Breakpoint 1, 0x000000000025e340 in step (subject=`<generatedTop>{}`(`<k>{}`(`kseq{}`(`inj{Int{}, KItem{}}`(#token("3", "Int")),dotk{}(.KList))),`<generatedCounter>{}`(#token("0", "Int"))))
      +(gdb)
      +

      Breaking on a specific rule

      + +

      You can break when a rule is applied by giving the rule a rule label. If the
      +module name is TEST and the rule label is test, you can break when the rule
      +applies by setting a breakpoint on the TEST.test.rhs function:

      +
      (gdb) break TEST.test.rhs
      +Breakpoint 1 at 0x25e250: file /home/dwightguth/test/./test.k, line 4.
      +(gdb) run
      +Breakpoint 1, TEST.test.rhs (VarDotVar0=`<generatedCounter>{}`(#token("0", "Int")), VarDotVar1=dotk{}(.KList), VarI=#token("0", "Int")) at /home/dwightguth/test/./test.k:4
      +4         rule [test]: I:Int => I +Int 1 requires I <Int 10
      +(gdb)
      +

      Note that the substitution associated with that rule is visible in the
      +description of the frame.

      +

      You can also break when a side condition is applied using the TEST.test.sc
      +function:

      +
      (gdb) break TEST.test.sc
      +Breakpoint 1 at 0x25e230: file /home/dwightguth/test/./test.k, line 4.
      +(gdb) run
      +Breakpoint 1, TEST.test.sc (VarI=#token("0", "Int")) at /home/dwightguth/test/./test.k:4
      +4         rule [test]: I:Int => I +Int 1 requires I <Int 10
      +(gdb)
      +

      Note that every variable used in the side condition can have its value
      +inspected when stopped at this breakpoint, but other variables are not visible.

      +

      You can also break on a rule by its location:

      +
      (gdb) break test.k:4
      +Breakpoint 1 at 0x25e230: test.k:4. (2 locations)
      +(gdb) run
      +Breakpoint 1, TEST.test.sc (VarI=#token("0", "Int")) at /home/dwightguth/test/./test.k:4
      +4         rule [test]: I:Int => I +Int 1 requires I <Int 10
      +(gdb) continue
      +Continuing.
      +
      +Breakpoint 1, TEST.test.rhs (VarDotVar0=`<generatedCounter>{}`(#token("0", "Int")), VarDotVar1=dotk{}(.KList), VarI=#token("0", "Int")) at /home/dwightguth/test/./test.k:4
      +4         rule [test]: I:Int => I +Int 1 requires I <Int 10
      +(gdb) continue
      +Continuing.
      +
      +Breakpoint 1, TEST.test.sc (VarI=#token("1", "Int")) at /home/dwightguth/test/./test.k:4
      +4         rule [test]: I:Int => I +Int 1 requires I <Int 10
      +(gdb)
      +

      Note that this sets a breakpoint at two locations: one on the side condition
      +and one on the right hand side. If the rule had no side condition, the first
      +would not be set. You can also view the locations of the breakpoints and
      +disable them individually:

      +
      (gdb) info breakpoint
      +Num     Type           Disp Enb Address            What
      +1       breakpoint     keep y   <MULTIPLE>
      +        breakpoint already hit 3 times
      +1.1                         y     0x000000000025e230 in TEST.test.sc at /home/dwightguth/test/./test.k:4
      +1.2                         y     0x000000000025e250 in TEST.test.rhs at /home/dwightguth/test/./test.k:4
      +(gdb) disable 1.1
      +(gdb) continue
      +Continuing.
      +
      +Breakpoint 1, TEST.test.rhs (VarDotVar0=`<generatedCounter>{}`(#token("0", "Int")), VarDotVar1=dotk{}(.KList), VarI=#token("1", "Int")) at /home/dwightguth/test/./test.k:4
      +4         rule [test]: I:Int => I +Int 1 requires I <Int 10
      +(gdb) continue
      +Continuing.
      +
      +Breakpoint 1, TEST.test.rhs (VarDotVar0=`<generatedCounter>{}`(#token("0", "Int")), VarDotVar1=dotk{}(.KList), VarI=#token("2", "Int")) at /home/dwightguth/test/./test.k:4
      +4         rule [test]: I:Int => I +Int 1 requires I <Int 10
      +(gdb)
      +

      Now only the breakpoint when the rule applies is enabled.

      +

      Breaking on a function

      + +

      You can also break when a particular function in your semantics is invoked:

      +
      (gdb) info functions foo
      +All functions matching regular expression "foo":
      +
      +File /home/dwightguth/test/./test.k:
      +struct __mpz_struct *Lblfoo'LParUndsRParUnds'TEST'UndsUnds'Int(struct __mpz_struct *);
      +(gdb) break Lblfoo'LParUndsRParUnds'TEST'UndsUnds'Int
      +Breakpoint 1 at 0x25e640: file /home/dwightguth/test/./test.k, line 6.
      +(gdb) run
      +Breakpoint 1, Lblfoo'LParUndsRParUnds'TEST'UndsUnds'Int (_1=#token("1", "Int")) at /home/dwightguth/test/./test.k:6
      +6         syntax Int ::= foo(Int) [function]
      +(gdb)
      +

      In this case, the variables have numbers instead of names because the names of
      +arguments in functions in K come from rules, and we are stopped before any
      +specific rule has applied. For example, _1 is the first argument to the
      +function.

      +

      You can also set a breakpoint in this location by setting it on the line
      +associated with its production:

      +
      (gdb) break test.k:6
      +Breakpoint 1 at 0x25e640: file /home/dwightguth/test/./test.k, line 6.
      +(gdb) run
      +Breakpoint 1, Lblfoo'LParUndsRParUnds'TEST'UndsUnds'Int (_1=#token("1", "Int")) at /home/dwightguth/test/./test.k:6
      +6         syntax Int ::= foo(Int) [function]
      +

      These two syntaxes are equivalent; use whichever is easier for you.

      +

      You can also view the stack of function applications:

      +
      (gdb) bt
      +#0  Lblfoo'LParUndsRParUnds'TEST'UndsUnds'Int (_1=#token("1", "Int")) at /home/dwightguth/test/./test.k:6
      +#1  0x000000000025e5f8 in apply_rule_111 (VarDotVar0=`<generatedCounter>{}`(#token("0", "Int")), VarDotVar1=dotk{}(.KList)) at /home/dwightguth/test/./test.k:9
      +#2  0x0000000000268a52 in take_steps ()
      +#3  0x000000000026b7b4 in main ()
      +(gdb)
      +

      Here we see that foo was invoked while applying the rule on line 9 of test.k,
      +and we also can see the substitution of that rule. If foo was evaluated while
      +evaluating another function, we would also be able to see the arguments of that
      +function as well, unless the function was tail recursive, in which case no
      +stack frame would exist once the tail call was performed.

      +

      Breaking on a set of rules or functions

      + +

      Using rbreak <regex> you can set breakpoints on multiple functions.

      +
        +
      • +

        rbreak Lbl - sets a breakpoint on all non hooked functions

        +
      • +
      • +

        rbreak Lbl.*TEST - sets a breakpoint on all functions from module TEST

        +
      • +
      • +

        rbreak hook_INT - sets a breakpoint on all hooks from module INT

        +
      • +
      +

      Other debugger issues

      + +
        +
      • <optimized out> try kompiling without -O1, -O2, or -O3.
      • +
      • (gdb) break definition.kore:break -> No source file named definition.kore.
        +send --enable-llvm-debug to kompile in order to generate debug info symbols.
      • +
      +

      Profiling your K semantics

      +

      The first thing to be aware of is in order to get meaningful data,
      +you need to build the semantics and all of its dependencies with
      +optimizations enabled but without the frame pointer elimination
      +optimization
      . For example, for EVM, this means rebuilding GMP, MPFR,
      +JEMalloc, Crypto++, SECP256K1, etc with the following exports.

      +
      export CFLAGS="-DNDEBUG -O2 -fno-omit-frame-pointer"
      +export CXXFLAGS="-DNDEBUG -O2 -fno-omit-frame-pointer"
      +

      You can skip this step, but if you do, any samples within these
      +libraries will not have correct stack trace information, which means
      +you will likely not get a meaningful set of data that will tell you
      +where the majority of time is really being spent. Don't worry about
      +rebuilding literally every single dependency though. Just focus on the
      +ones that you expect to take a non-negligible amount of runtime. You
      +will be able to tell if you haven't done enough later, and you can go
      +back and rebuild more. Once this is done, you then build K with
      +optimizations and debug info enabled, like so:

      +
      mvn package -Dproject.build.type="FastBuild"
      +

      Next, you build the semantics with optimizations and debug info
      +enabled (i.e., kompile -ccopt -O2 --iterated -ccopt -fno-omit-frame-pointer).

      +

      Once all this is done, you should be ready to profile your
      +application. Essentially, you should run whatever test suite you
      +usually run, but with perf record -g -- prefixed to the front. For
      +example, for KEVM it's the following command. (For best data, don't
      +run this step in parallel.)

      +
      perf record -g -- make test-conformance
      +

      Finally, you want to filter out just the samples that landed within
      +the llvm backend and view the report. For this, you need to know the
      +name of the binary that was generated by your build system. Normally
      +it is interpreter, but e.g. if you are building the web3 client for
      +kevm, it would be kevm-client. You will want to run the following
      +command.

      +
      perf report -g -c $binary_name
      +

      If all goes well, you should see a breakdown of where CPU time has
      +been spent executing the application. You will know that sufficient
      +time was spent rebuilding dependencies with the correct flags when the
      +total time reported by the main method is close to 100%. If it's not
      +close to 100%, this is probably because a decent amount of self time
      +was reported in stack traces that were not built with frame pointers
      +enabled, meaning that perf was unable to walk the stack. You will have
      +to go back, rebuild the appropriate libraries, and then record your
      +trace again.

      +

      Your ultimate goal is to identify the hotspots that take the most
      +time, and make them execute faster. Entries like step and
      +step_1234 like functions refer to the cost of matching. An entry
      +like side_condition_1234 is a side condition and apply_rule_1234
      +is constructing the rhs of a rule. You can convert from this rule
      +ordinal to a location using the llvm-kompile-compute-loc script in
      +the bin folder of the llvm backend repo. For example,

      +
      llvm-kompile-compute-loc 5868 evm-semantics/.build/defn/llvm/driver-kompiled
      +

      spits out the following text.

      +
      Line: 18529
      +/home/dwightguth/evm-semantics/./.build/defn/llvm/driver.k:493:10
      +

      This is the line of definition.kore that the axiom appears on as
      +well as the original location of the rule in the K semantics. You can
      +use this information to figure out which rules and functions are
      +causing the most time and optimize them to be more efficient.

      +

      Running tests - kserver

      +

      The kserver is a front-end tool based on Nailgun
      +which helps to reduce the startup time of the JVM. Calling kserver in a terminal
      +window will wait for all kompile/kprove calls and force them to run in the same process
      +and share the same threads. This also reduces the thread contention significantly. kompile
      +uses all the threads available to do rule parsing. Another benefit is that it saves caches,
      +and each time you call kprove/kast, you can access those directly w/o extra disk usage.
      +Running the regression-new integration tests on a powerful machine (32 threads) takes 8m,
      +with the kserver active it takes 2m. You can start the kserver in two ways.

      +
        +
      • blocking: call kserver in the command line. Close it after you are done testing. Useful for quick testing.
      • +
      • non-blocking: call spawn-kserver <log.flie> and close it with stop-kserver - this is used for automation on CI
      • +
      +

      Because we reuse caches, you should stop and restart the server between runs.
      +The Nailgun implementation hasn't been updated in the last 3-5 years, and it's not compatible with Java 18 onwards.

      +

      K Builtins

      +

      The K Builtins (also referred to as the K Prelude or the K Standard Library)
      +consists of several files which contain definitions that make working with K
      +simpler. These files can be found under include/kframework/builtin in your K
      +installation directory, and can be imported with requires "FILENAME" (without
      +the path prefix).

      +
        +
      • domains: Basic datatypes which are universally useful.
      • +
      • kast: Representation of K internal data-structures (not to be
        +included in normal definitions).
      • +
      • prelude: Automatically included into every K definition.
      • +
      • ffi: FFI interface for calling out to native C code from K.
      • +
      • json: JSON datatype and parsers/unparsers for JSON strings.
      • +
      • rat: Rational number representation.
      • +
      • substitution: Hooked implementation of capture-aware
        +sustitution for K definitions.
      • +
      • unification: Hooked implementation of unification
        +exposed directly to K definitions.
      • +
      +

      Basic Builtin Types in K

      +

      A major piece of the K prelude consists of a series of modules that contain
      +implementations of basic data types and language features in K. You do not need
      +to require this file yourself; it is required automatically in every K
      +definition unless --no-prelude is passed to kompile. K may not work correctly
      +if some of these modules do not exist or do not declare certain functions.

      +

      Note that some functions in the K prelude functions are not total, that is,
      +they are not defined on all possible input values. When you invoke such a
      +function on an undefined input, the behavior is undefined. In particular, when
      +this happens, interpreters generated by the K LLVM backend may crash.

      +
      require "kast.md"
      +

      Default Modules

      +

      K declares certain modules that contain most of the builtins you usually want
      +when defining a language in K. In particular, this includes integers, booleans,
      +strings, identifiers, I/O, lists, maps, and sets. The DOMAINS-SYNTAX module
      +is designed to be imported by the syntax module of the language and contains
      +only the program-level syntax of identifiers, integers, booleans, and strings.
      +The DOMAINS module contains the rest of the syntax, including builtin
      +functions over those and the remaining types.

      +

      Note that not all modules are included in DOMAINS. A few less-common modules
      +are not, including ARRAY, COLLECTIONS, FLOAT, STRING-BUFFER, BYTES,
      +K-REFLECTION, MINT, and STRATEGY.

      +
      module DOMAINS-SYNTAX
      +  imports SORT-K
      +  imports ID-SYNTAX
      +  imports UNSIGNED-INT-SYNTAX
      +  imports BOOL-SYNTAX
      +  imports STRING-SYNTAX
      +endmodule
      +
      +module DOMAINS
      +  imports DOMAINS-SYNTAX
      +  imports INT
      +  imports BOOL
      +  imports STRING
      +  imports BASIC-K
      +  imports LIST
      +  imports K-IO
      +  imports MAP
      +  imports SET
      +  imports ID
      +  imports K-EQUAL
      +endmodule
      +

      Arrays

      +

      Provided here is an implementation for fixed-sized, contiguous maps from Int
      +to KItem. In some previous versions of K, the Array type was a builtin type
      +backed by mutable arrays of objects. However, in modern K, the Array type is
      +implemented by means of the List type; users should not access this interface
      +directly and should instead make only of the functions listed below. Users of
      +this module should import only the ARRAY module.

      +
      module ARRAY-SYNTAX
      +  imports private LIST
      +
      +  syntax Array [hook(ARRAY.Array)]
      +

      Array lookup

      + +

      You can look up an element in an Array by its index in O(log(N)) time. Note
      +that the base of the logarithm is a relatively high number and thus the time is
      +effectively constant.

      +
        syntax KItem ::= Array "[" Int "]" [function, hook(ARRAY.lookup)]
      +

      Array update

      + +

      You can create a new Array with a new value for a key in O(log(N)) time, or
      +effectively constant.

      +
        syntax Array ::= Array "[" key: Int "<-" value: KItem "]" [function, hook(ARRAY.update), klabel(_[_<-_]), symbol]
      +

      Array reset

      + +

      You can create a new Array where a particular key is reset to its default
      +value in O(log(N)) time, or effectively constant.

      +
        syntax Array ::= Array "[" Int "<-" "undef" "]" [function, hook(ARRAY.remove)]
      +

      Multiple array update

      + +

      You can create a new Array from a List L of size N where the N
      +elements starting at index are replaced with the contents of L, in
      +O(N*log(K)) time (where K is the size of the array), or effectively linear.
      +Having index + N > K yields an exception.

      +
        syntax Array ::= updateArray(Array, index: Int, List) [function, hook(ARRAY.updateAll)]
      +

      Array fill

      + +

      You can create a new Array where the length elements starting at index
      +are replaced with value, in O(length*log(N)) time, or effectively linear.

      +
        syntax Array ::= fillArray(Array, index: Int, length: Int, value: KItem) [function, hook(ARRAY.fill)]
      +

      Array range check

      + +

      You can test whether an integer is within the bounds of an array in O(1) time.

      +
        syntax Bool ::= Int "in_keys" "(" Array ")" [function, total, hook(ARRAY.in_keys)]
      +
      endmodule
      +
      +module ARRAY-IN-K [private]
      +  imports public ARRAY-SYNTAX
      +  imports private LIST
      +  imports private K-EQUAL
      +  imports private INT
      +  imports private BOOL
      +

      Array creation

      + +

      You can create an array with length elements where each element is
      +initialized to value in O(1) time. Note that the array is stored in a manner
      +where only the highest element that is actually modified is given a value
      +in its internal representation, which means that subsequent array operations
      +may incur a one-time O(N) resizing cost, possibly amortized across multiple
      +operations.

      +
        syntax Array ::= makeArray(length: Int, value: KItem) [function, hook(ARRAY.make), public]
      +

      Implementation of Arrays

      + +

      The remainder of this section consists of an implementation in K of the
      +operations listed above. Users of the ARRAY module should not make use
      +of any of the syntax defined in any of these modules.

      +
        syntax Array ::= arr(List, Int, KItem)
      +
      +  rule makeArray(I::Int, D::KItem) => arr(.List, I, D)
      +
      +  rule arr(L::List, _, _       ) [ IDX::Int ] => L[IDX] requires 0 <=Int IDX andBool IDX  <Int size(L)
      +  rule arr(_      , _, D::KItem) [ _        ] => D      [owise]
      +
      +  syntax List ::= ensureOffsetList(List, Int, KItem) [function]
      +  rule ensureOffsetList(L::List, IDX::Int, D::KItem) => L makeList(IDX +Int 1 -Int size(L), D) requires         IDX >=Int size(L)
      +  rule ensureOffsetList(L::List, IDX::Int, _::KItem) => L                                      requires notBool IDX >=Int size(L)
      +
      +  rule arr(L::List, I::Int, D::KItem) [ IDX::Int <- VAL::KItem ] => arr(ensureOffsetList(L, IDX, D) [ IDX <- VAL ], I, D)
      +
      +  rule arr(L::List, I::Int, D::KItem) [ IDX::Int <- undef ] => arr(L, I, D) [ IDX <- D ]
      +
      +  rule updateArray(arr(L::List, I::Int, D::KItem), IDX::Int, L2::List) => arr(updateList(ensureOffsetList(L, IDX +Int size(L2) -Int 1, D), IDX, L2), I, D)
      +
      +  rule fillArray(arr(L::List, I::Int, D::KItem), IDX::Int, LEN::Int, VAL::KItem) => arr(fillList(ensureOffsetList(L, IDX +Int LEN -Int 1, D), IDX, LEN, VAL), I, D)
      +
      +  rule IDX::Int in_keys(arr(_, I::Int, _)) => IDX >=Int 0 andBool IDX <Int I
      +endmodule
      +
      +module ARRAY-SYMBOLIC [symbolic]
      +  imports ARRAY-IN-K
      +endmodule
      +
      +module ARRAY-KORE [kore]
      +  imports ARRAY-IN-K
      +endmodule
      +
      +module ARRAY
      +  imports ARRAY-SYMBOLIC
      +  imports ARRAY-KORE
      +endmodule
      +

      Maps

      +

      Provided here is the syntax of an implementation of immutable, associative,
      +commutative maps from KItem to KItem. This type is hooked to an
      +implementation of maps provided by the backend. For more information on
      +matching on maps and allowable patterns for doing so, refer to K's
      +user documentation.

      +
      module MAP
      +  imports private BOOL-SYNTAX
      +  imports private INT-SYNTAX
      +  imports private LIST
      +  imports private SET
      +
      +  syntax Map [hook(MAP.Map)]
      +

      Map concatenation

      + +

      The Map sort represents a generalized associative array. Each key can be
      +paired with an arbitrary value, and can be used to reference its associated
      +value. Multiple bindings for the same key are not allowed.

      +

      You can construct a new Map consisting of key/value pairs of two Maps. The
      +result is #False if the maps have keys in common (in particular, this will
      +yield an exception during concrete execution). This operation is O(Nlog(M))
      +where N is the size of the smaller map, when it appears on the right hand side.
      +When it appears on the left hand side and all variables are bound, it is
      +O(N
      log(M)) where M is the size of the map it is matching and N is the number
      +of elements being matched. When it appears on the left hand side containing
      +variables not bound elsewhere in the term, it is O(N^K) where N is the size of
      +the map it is matching and K is the number of unbound keys being matched. In
      +other words, one unbound variable is linear, two is quadratic, three is cubic,
      +etc.

      +
        syntax Map ::= Map Map                        [left, function, hook(MAP.concat), klabel(_Map_), symbol, assoc, comm, unit(.Map), element(_|->_), index(0), format(%1%n%2)]
      +

      Map unit

      + +

      The map with zero elements is represented by .Map.

      +
        syntax Map ::= ".Map"                         [function, total, hook(MAP.unit), klabel(.Map), symbol, latex(\dotCt{Map})]
      +

      Map elements

      + +

      An element of a Map is constructed via the |-> operator. The key is on the
      +left and the value is on the right.

      +
        syntax Map ::= KItem "|->" KItem                      [function, total, hook(MAP.element), klabel(_|->_), symbol, latex({#1}\mapsto{#2}), injective]
      +
      +  syntax priorities _|->_ > _Map_ .Map
      +  syntax non-assoc _|->_
      +

      Map lookup

      + +

      You can look up the value associated with the key of a map in O(log(N)) time.
      +Note that the base of the logarithm is a relatively high number and thus the
      +time is effectively constant. The value is #False if the key is not in the
      +map (in particular, this will yield an exception during concrete execution).

      +
        syntax KItem ::= Map "[" KItem "]"                    [function, hook(MAP.lookup), klabel(Map:lookup), symbol]
      +

      Map lookup with default

      + +

      You can also look up the value associated with the key of a map using a
      +total function that assigns a specific default value if the key is not present
      +in the map. This operation is also O(log(N)), or effectively constant.

      +
        syntax KItem ::= Map "[" KItem "]" "orDefault" KItem      [function, total, hook(MAP.lookupOrDefault), klabel(Map:lookupOrDefault)]
      +

      Map update

      + +

      You can insert a key/value pair into a map in O(log(N)) time, or effectively
      +constant.

      +
        syntax Map ::= Map "[" key: KItem "<-" value: KItem "]"           [function, total, klabel(Map:update), symbol, hook(MAP.update), prefer]
      +

      Map delete

      + +

      You can remove a key/value pair from a map via its key in O(log(N)) time, or
      +effectively constant.

      +
        syntax Map ::= Map "[" KItem "<-" "undef" "]"     [function, total, hook(MAP.remove), klabel(_[_<-undef]), symbol]
      +

      Map difference

      + +

      You can remove the key/value pairs in a map that are present in another map in
      +O(N*log(M)) time (where M is the size of the first map and N is the size of the
      +second), or effectively linear. Note that only keys whose value is the same
      +in both maps are removed. To remove all the keys in one map from another map,
      +you can say removeAll(M1, keys(M2)).

      +
        syntax Map ::= Map "-Map" Map                 [function, total, hook(MAP.difference), latex({#1}-_{\it Map}{#2})]
      +

      Multiple map update

      + +

      You can update a map by adding all the key/value pairs in the second map in
      +O(N*log(M)) time (where M is the size of the first map and N is the size of the
      +second map), or effectively linear. If any keys are present in both maps, the
      +value from the second map overwrites the value in the first. This function is
      +total, which is distinct from map concatenation, a partial function only
      +defined on maps with disjoint keys.

      +
        syntax Map ::= updateMap(Map, Map)            [function, total, hook(MAP.updateAll)]
      +

      Multiple map removal

      + +

      You can remove a Set of keys from a map in O(N*log(M)) time (where M is the
      +size of the Map and N is the size of the Set), or effectively linear.

      +
        syntax Map ::= removeAll(Map, Set)            [function, total, hook(MAP.removeAll)]
      +

      Map keys (as Set)

      + +

      You can get a Set of all the keys in a Map in O(N) time.

      +
        syntax Set ::= keys(Map)                      [function, total, hook(MAP.keys)]
      +

      Map keys (as List)

      + +

      You can get a List of all the keys in a Map in O(N) time.

      +
        syntax List ::= "keys_list" "(" Map ")"       [function, hook(MAP.keys_list)]
      +

      Map key membership

      + +

      You can check whether a key is present in a map in O(1) time.

      +
        syntax Bool ::= KItem "in_keys" "(" Map ")"       [function, total, hook(MAP.in_keys)]
      +

      Map values (as List)

      + +

      You can get a List of all the values in a map in O(N) time.

      +
        syntax List ::= values(Map)                   [function, hook(MAP.values)]
      +

      Map size

      + +

      You can get the number of key/value pairs in a map in O(1) time.

      +
        syntax Int ::= size(Map)                      [function, total, hook(MAP.size), klabel(sizeMap)]
      +

      Map inclusion

      + +

      You can determine whether a Map is a strict subset of another Map in O(N)
      +time (where N is the size of the first map). Only keys that are bound to the
      +same value are considered equal.

      +
        syntax Bool ::= Map "<=Map" Map               [function, total, hook(MAP.inclusion)]
      +

      Map choice

      + +

      You can get an arbitrarily chosen key of a Map in O(1) time. The same key
      +will always be returned for the same map, but no guarantee is given that two
      +different maps will return the same element, even if they are similar.

      +
        syntax KItem ::= choice(Map)                      [function, hook(MAP.choice), klabel(Map:choice)]
      +

      Implementation of Maps

      + +

      The remainder of this section contains lemmas used by the Java and Haskell
      +backend to simplify expressions of sort Map. They do not affect the semantics
      +of maps, merely describing additional rules that the backend can use to
      +simplify terms.

      +
      endmodule
      +
      +module MAP-KORE-SYMBOLIC [kore,symbolic,haskell]
      +  imports MAP
      +  imports private K-EQUAL
      +  imports private BOOL
      +
      +  rule #Ceil(@M:Map [@K:KItem]) => {(@K in_keys(@M)) #Equals true} #And #Ceil(@M) #And #Ceil(@K) [simplification]
      +
      +  // Symbolic update
      +
      +  // Adding the definedness condition `notBool (K in_keys(M))` in the ensures clause of the following rule would be redundant
      +  // because K also appears in the rhs, preserving the case when it's #Bottom.
      +  rule (K |-> _ M:Map) [ K <- V ] => (K |-> V M) [simplification]
      +  rule M:Map [ K <- V ] => (K |-> V M) requires notBool (K in_keys(M)) [simplification]
      +  rule M:Map [ K <- _ ] [ K <- V ] => M [ K <- V ] [simplification]
      +  // Adding the definedness condition `notBool (K1 in_keys(M))` in the ensures clause of the following rule would be redundant
      +  // because K1 also appears in the rhs, preserving the case when it's #Bottom.
      +  rule (K1 |-> V1 M:Map) [ K2 <- V2 ] => (K1 |-> V1 (M [ K2 <- V2 ])) requires K1 =/=K K2 [simplification]
      +
      +  // Symbolic remove
      +  rule (K |-> _ M:Map) [ K <- undef ] => M ensures notBool (K in_keys(M)) [simplification]
      +  rule M:Map [ K <- undef ] => M requires notBool (K in_keys(M)) [simplification]
      +  // Adding the definedness condition `notBool (K1 in_keys(M))` in the ensures clause of the following rule would be redundant
      +  // because K1 also appears in the rhs, preserving the case when it's #Bottom.
      +  rule (K1 |-> V1 M:Map) [ K2 <- undef ] => (K1 |-> V1 (M [ K2 <- undef ])) requires K1 =/=K K2 [simplification]
      +
      +  // Symbolic lookup
      +  rule (K  |->  V M:Map) [ K ]  => V ensures notBool (K in_keys(M)) [simplification]
      +  rule (K1 |-> _V M:Map) [ K2 ] => M [K2] requires K1 =/=K K2 ensures notBool (K1 in_keys(M)) [simplification]
      +  rule (_MAP:Map [ K  <-  V1 ]) [ K ]  => V1 [simplification]
      +  rule ( MAP:Map [ K1 <- _V1 ]) [ K2 ] => MAP [ K2 ] requires K1 =/=K K2 [simplification]
      +
      +  rule (K  |->  V M:Map) [  K ] orDefault _ => V ensures notBool (K in_keys(M)) [simplification]
      +  rule (K1 |-> _V M:Map) [ K2 ] orDefault D => M [K2] orDefault D requires K1 =/=K K2 ensures notBool (K1 in_keys(M)) [simplification]
      +  rule (_MAP:Map [ K  <-  V1 ]) [ K ] orDefault _ => V1 [simplification]
      +  rule ( MAP:Map [ K1 <- _V1 ]) [ K2 ] orDefault D => MAP [ K2 ] orDefault D requires K1 =/=K K2 [simplification]
      +  rule .Map [ _ ] orDefault D => D [simplification]
      +
      +  // Symbolic in_keys
      +  rule K in_keys(_M [ K <- undef ]) => false [simplification]
      +  rule K in_keys(_M [ K <- _ ]) => true [simplification]
      +  rule K1 in_keys(M [ K2 <- _ ]) => true requires K1 ==K K2 orBool K1 in_keys(M) [simplification]
      +  rule K1 in_keys(M [ K2 <- _ ]) => K1 in_keys(M) requires K1 =/=K K2 [simplification]
      +
      +  rule {false #Equals @Key in_keys(.Map)} => #Ceil(@Key) [simplification]
      +  rule {@Key in_keys(.Map) #Equals false} => #Ceil(@Key) [simplification]
      +  rule {false #Equals @Key in_keys(Key' |-> Val @M)} => #Ceil(@Key) #And #Ceil(Key' |-> Val @M) #And #Not({@Key #Equals Key'}) #And {false #Equals @Key in_keys(@M)} [simplification]
      +  rule {@Key in_keys(Key' |-> Val @M) #Equals false} => #Ceil(@Key) #And #Ceil(Key' |-> Val @M) #And #Not({@Key #Equals Key'}) #And {@Key in_keys(@M) #Equals false} [simplification]
      +
      +/*
      +// The rule below is automatically generated by the frontend for every sort
      +// hooked to MAP.Map. It is left here to serve as documentation.
      +
      +  rule #Ceil(@M:Map (@K:KItem |-> @V:KItem)) => {(@K in_keys(@M)) #Equals false} #And #Ceil(@M) #And #Ceil(@K) #And #Ceil(@V)
      +    [simplification]
      +*/
      +endmodule
      +
      +module MAP-SYMBOLIC
      +  imports MAP-KORE-SYMBOLIC
      +endmodule
      +

      Range Maps

      +

      Provided here is the syntax of an implementation of immutable, associative,
      +commutative range maps from Int to KItem. This type is hooked to an
      +implementation of range maps provided by the LLVM backend.
      +Currently, this type is not supported by other backends.
      +Although the underlying range map data structure supports any key sort, the
      +current implementation by the backend only supports Int keys due to
      +limitations of the underlying ordering function.

      +
      module RANGEMAP
      +  imports private BOOL-SYNTAX
      +  imports private INT-SYNTAX
      +  imports private LIST
      +  imports private SET
      +
      +

      Range, bounded inclusively below and exclusively above.

      + +
        syntax Range ::= "[" KItem "," KItem ")"    [klabel(Rangemap:Range), symbol]
      +  
      +  syntax RangeMap [hook(RANGEMAP.RangeMap)]
      +

      Range map concatenation

      + +

      The RangeMap sort represents a map whose keys are stored as ranges, bounded
      +inclusively below and exclusively above. Contiguous or overlapping ranges that
      +map to the same value are merged into a single range.

      +

      You can construct a new RangeMap consisting of range/value pairs of two
      +RangeMaps. If the RangeMaps have overlapping ranges an exception will be
      +thrown during concrete execution. This operation is O(N*log(M)) (where N is
      +the size of the smaller map and M is the size of the larger map).

      +
        syntax RangeMap ::= RangeMap RangeMap                        [left, function, hook(RANGEMAP.concat), klabel(_RangeMap_), symbol, assoc, comm, unit(.RangeMap), element(_r|->_), index(0), format(%1%n%2)]
      +

      Range map unit

      + +

      The RangeMap with zero elements is represented by .RangeMap.

      +
        syntax RangeMap ::= ".RangeMap"                         [function, total, hook(RANGEMAP.unit), klabel(.RangeMap), symbol, latex(\dotCt{RangeMap})]
      +

      Range map elements

      + +

      An element of a RangeMap is constructed via the r|-> operator. The range
      +of keys is on the left, and the value is on the right.

      +
        syntax RangeMap ::= Range "r|->" KItem                      [function, hook(RANGEMAP.elementRng), klabel(_r|->_), symbol, latex({#1}\mapsto{#2}), injective]
      +
      +  syntax priorities _r|->_ > _RangeMap_ .RangeMap
      +  syntax non-assoc _r|->_
      +

      Range map lookup

      + +

      You can look up the value associated with a key of a RangeMap in O(log(N))
      +time (where N is the size of the RangeMap). This will yield an exception
      +during concrete execution if the key is not in the range map.

      +
        syntax KItem ::= RangeMap "[" KItem "]"                    [function, hook(RANGEMAP.lookup), klabel(RangeMap:lookup), symbol]
      +

      Range map lookup with default

      + +

      You can also look up the value associated with a key of a RangeMap using a
      +total function that assigns a specific default value if the key is not present
      +in the RangeMap. This operation is also O(log(N)) (where N is the size of
      +the range map).

      +
        syntax KItem ::= RangeMap "[" KItem "]" "orDefault" KItem      [function, total, hook(RANGEMAP.lookupOrDefault), klabel(RangeMap:lookupOrDefault)]
      +

      Range map lookup for range of key

      + +

      You can look up for the range that a key of a RangeMap is stored in in
      +O(log(N)) time (where N is the size of the RangeMap). This will yield an
      +exception during concrete execution if the key is not in the range map.

      +
        syntax Range ::= "find_range" "(" RangeMap "," KItem ")"                    [function, hook(RANGEMAP.find_range), klabel(RangeMap:find_range)]
      +

      Range map update

      + +

      You can insert a range/value pair into a RangeMap in O(log(N)) time (where N
      +is the size of the RangeMap). Any ranges adjacent to or overlapping with the
      +range to be inserted will be updated accordingly.

      +
        syntax RangeMap ::= RangeMap "[" keyRange: Range "<-" value: KItem "]"           [function, klabel(RangeMap:update), symbol, hook(RANGEMAP.updateRng), prefer]
      +

      Range map delete

      + +

      You can remove a range/value pair from a RangeMap in O(log(N)) time (where N
      +is the size of the RangeMap). If all or any part of the range is present in
      +the range map, it will be removed.

      +
        syntax RangeMap ::= RangeMap "[" Range "<-" "undef" "]"     [function, hook(RANGEMAP.removeRng), klabel(_r[_<-undef]), symbol]
      +

      Range map difference

      + +

      You can remove the range/value pairs in a RangeMap that are also present in
      +another RangeMap in O(max{M,N}*log(M)) time (where M is the size of the
      +first RangeMap and N is the size of the second RangeMap). Note that only
      +the parts of overlapping ranges whose value is the same in both range maps
      +will be removed.

      +
        syntax RangeMap ::= RangeMap "-RangeMap" RangeMap                 [function, total, hook(RANGEMAP.difference), latex({#1}-_{\it RangeMap}{#2})]
      +

      Multiple range map update

      + +

      You can update a RangeMap by adding all the range/value pairs in the second
      +RangeMap in O(N*log(M+N)) time (where M is the size of the first RangeMap
      +and N is the size of the second RangeMap). If any ranges are overlapping,
      +the value from the second range map overwrites the value in the first for the
      +parts where ranges are overlapping. This function is total, which is distinct
      +from range map concatenation, a partial function only defined on range maps
      +with non overlapping ranges.

      +
        syntax RangeMap ::= updateRangeMap(RangeMap, RangeMap)            [function, total, hook(RANGEMAP.updateAll)]
      +

      Multiple range map removal

      + +

      You can remove a Set of ranges from a RangeMap in O(N*log(M)) time (where
      +M is the size of the RangeMap and N is the size of the Set). For every
      +range in the set, all or any part of it that is present in the range map will
      +be removed.

      +
        syntax RangeMap ::= removeAll(RangeMap, Set)            [function, hook(RANGEMAP.removeAll)]
      +

      Range map keys (as Set)

      + +

      You can get a Set of all the ranges in a RangeMap in O(N) time (where N
      +is the size of the RangeMap).

      +
        syntax Set ::= keys(RangeMap)                      [function, total, hook(RANGEMAP.keys)]
      +

      Range map keys (as List)

      + +

      You can get a List of all the ranges in a RangeMap in O(N) time (where N
      +is the size of the RangeMap).

      +
        syntax List ::= "keys_list" "(" RangeMap ")"       [function, hook(RANGEMAP.keys_list)]
      +

      Range map key membership

      + +

      You can check whether a key is present in a RangeMap in O(log(N)) time (where
      +N is the size of the RangeMap).

      +
        syntax Bool ::= KItem "in_keys" "(" RangeMap ")"       [function, total, hook(RANGEMAP.in_keys)]
      +

      Range map values (as List)

      + +

      You can get a List of all values in a RangeMap in O(N) time (where N is the
      +size of the RangeMap).

      +
        syntax List ::= values(RangeMap)                   [function, hook(RANGEMAP.values)]
      +

      Range map size

      + +

      You can get the number of range/value pairs in a RangeMap in O(1) time.

      +
        syntax Int ::= size(RangeMap)                      [function, total, hook(RANGEMAP.size), klabel(sizeRangeMap)]
      +

      Range map inclusion

      + +

      You can determine whether a RangeMap is a strict subset of another RangeMap
      +in O(M+N) time (where M is the size of the first RangeMap and N is the size
      +of the second RangeMap). Only keys within equal or overlapping ranges that
      +are bound to the same value are considered equal.

      +
        syntax Bool ::= RangeMap "<=RangeMap" RangeMap               [function, total, hook(RANGEMAP.inclusion)]
      +

      Range map choice

      + +

      You can get an arbitrarily chosen key of a RangeMap in O(1) time. The same
      +key will always be returned for the same range map, but no guarantee is given
      +that two different range maps will return the same element, even if they are
      +similar.

      +
        syntax KItem ::= choice(RangeMap)                      [function, hook(RANGEMAP.choice), klabel(RangeMap:choice)]
      +endmodule
      +

      Sets

      +

      Provided here is the syntax of an implementation of immutable, associative,
      +commutative sets of KItem. This type is hooked to an implementation of sets
      +provided by the backend. For more information on matching on sets and allowable
      +patterns for doing so, refer to K's
      +user documentation.

      +
      module SET
      +  imports private INT-SYNTAX
      +  imports private BASIC-K
      +
      +  syntax Set [hook(SET.Set)]
      +

      Set concatenation

      + +

      The Set sort represents a mathematical set (A collection of unique items).
      +The sets are nilpotent, i.e., the concatenation of two sets containing elements
      +in common is #False (note however, this may be silently allowed during
      +concrete execution). If you intend to add an element to a set that might
      +already be present in the set, use the |Set operator instead.

      +

      The concatenation operator is O(Nlog(M)) where N is the size of the smaller
      +set, when it appears on the right hand side. When it appears on the left hand
      +side and all variables are bound, it is O(N
      log(M)) where M is the size of the
      +set it is matching and N is the number of elements being matched. When it
      +appears on the left hand side containing variables not bound elsewhere in the
      +term, it is O(N^K) where N is the size of the set it is matching and K is the
      +number of unbound keys being mached. In other words, one unbound variable is
      +linear, two is quadratic, three is cubic, etc.

      +
        syntax Set ::= Set Set                  [left, function, hook(SET.concat), klabel(_Set_), symbol, assoc, comm, unit(.Set), idem, element(SetItem), format(%1%n%2)]
      +

      Set unit

      + +

      The set with zero elements is represented by .Set.

      +
        syntax Set ::= ".Set"                   [function, total, hook(SET.unit), klabel(.Set), symbol, latex(\dotCt{Set})]
      +

      Set elements

      + +

      An element of a Set is constructed via the SetItem operator.

      +
        syntax Set ::= SetItem(KItem)               [function, total, hook(SET.element), klabel(SetItem), symbol, injective]
      +

      Set union

      + +

      You can compute the union of two sets in O(N*log(M)) time (Where N is the size
      +of the smaller set). Note that the base of the logarithm is a relatively high
      +number and thus the time is effectively linear. The union consists of all the
      +elements present in either set.

      +
        syntax Set ::= Set "|Set" Set              [left, function, total, hook(SET.union), comm]
      +  rule S1:Set |Set S2:Set => S1 (S2 -Set S1) [concrete]
      +

      Set intersection

      + +

      You can compute the intersection of two sets in O(N*log(M)) time (where N
      +is the size of the smaller set), or effectively linear. The intersection
      +consists of all the elements present in both sets.

      +
        syntax Set ::= intersectSet(Set, Set)   [function, total, hook(SET.intersection), comm]
      +

      Set complement

      + +

      You can compute the relative complement of two sets in O(N*log(M)) time (where
      +N is the size of the second set), or effectively linear. This is the set of
      +elements in the first set that are not present in the second set.

      +
        syntax Set ::= Set "-Set" Set           [function, total, hook(SET.difference), latex({#1}-_{\it Set}{#2}), klabel(Set:difference), symbol]
      +

      Set membership

      + +

      You can compute whether an element is a member of a set in O(1) time.

      +
        syntax Bool ::= KItem "in" Set              [function, total, hook(SET.in), klabel(Set:in), symbol]
      +

      Set inclusion

      + +

      You can determine whether a Set is a strict subset of another Set in O(N)
      +time (where N is the size of the first set).

      +
        syntax Bool ::= Set "<=Set" Set         [function, total, hook(SET.inclusion)]
      +

      Set size

      + +

      You can get the number of elements (the cardinality) of a set in O(1) time.

      +
        syntax Int ::= size(Set)                [function, total, hook(SET.size)]
      +

      Set choice

      + +

      You can get an arbitrarily chosen element of a Set in O(1) time. The same
      +element will always be returned for the same set, but no guarantee is given
      +that two different sets will return the same element, even if they are similar.

      +
        syntax KItem ::= choice(Set)                [function, hook(SET.choice), klabel(Set:choice)]
      +
      endmodule
      +

      Implementation of Sets

      + +

      The following lemmas are simplifications that the Haskell backend can
      +apply to simplify expressions of sort Set.

      +
      module SET-KORE-SYMBOLIC [kore,symbolic,haskell]
      +  imports SET
      +  imports private K-EQUAL
      +  imports private BOOL
      +
      +  //Temporarly rule for #Ceil simplification, should be generated in front-end
      +
      +// Matching for this version not implemented.
      +  // rule #Ceil(@S1:Set @S2:Set) =>
      +  //        {intersectSet(@S1, @S2) #Equals .Set} #And #Ceil(@S1) #And #Ceil(@S2)
      +  //   [simplification]
      +
      +//simpler version
      +  rule #Ceil(@S:Set SetItem(@E:KItem)) =>
      +         {(@E in @S) #Equals false} #And #Ceil(@S) #And #Ceil(@E)
      +    [simplification]
      +
      +  // -Set simplifications
      +  rule S              -Set .Set           => S          [simplification]
      +  rule .Set           -Set  _             => .Set       [simplification]
      +  rule SetItem(X)     -Set (S SetItem(X)) => .Set
      +                               ensures notBool (X in S) [simplification]
      +  rule S              -Set (S SetItem(X)) => .Set
      +                               ensures notBool (X in S) [simplification]
      +  rule (S SetItem(X)) -Set S              => SetItem(X)
      +                               ensures notBool (X in S) [simplification]
      +  rule (S SetItem(X)) -Set SetItem(X)     => S
      +                               ensures notBool (X in S) [simplification]
      +  // rule SetItem(X)     -Set S              => SetItem(X)
      +  //                            requires notBool (X in S)  [simplification]
      +  // rule (S1 SetItem(X)) -Set (S2 SetItem(X))  => S1 -Set S2
      +  //                             ensures notBool (X in S1)
      +  //                             andBool notBool (X in S2) [simplification]
      +
      +
      +
      +  // |Set simplifications
      +  rule S    |Set .Set => S    [simplification, comm]
      +  rule S    |Set S    => S    [simplification]
      +
      +  rule (S SetItem(X)) |Set SetItem(X) => S SetItem(X)
      +                             ensures notBool (X in S) [simplification, comm]
      +  // Currently disabled, see runtimeverification/haskell-backend#3301
      +  // rule (S SetItem(X)) |Set S          => S SetItem(X)
      +  //                            ensures notBool (X in S) [simplification, comm]
      +
      +  // intersectSet simplifications
      +  rule intersectSet(.Set, _   ) => .Set    [simplification, comm]
      +  rule intersectSet( S  , S   ) =>  S      [simplification]
      +
      +  rule intersectSet( S SetItem(X), SetItem(X))     => SetItem(X)
      +                                                        ensures notBool (X in S)      [simplification, comm]
      +  // Currently disabled, see runtimeverification/haskell-backend#3294
      +  // rule intersectSet( S SetItem(X) , S)             => S ensures notBool (X in S)      [simplification, comm]
      +  rule intersectSet( S1 SetItem(X), S2 SetItem(X)) => intersectSet(S1, S2) SetItem(X)
      +                                                        ensures notBool (X in S1)
      +                                                        andBool notBool (X in S2)     [simplification]
      +
      +  // membership simplifications
      +  rule _E in .Set           => false   [simplification]
      +  rule E  in (S SetItem(E)) => true
      +              ensures notBool (E in S) [simplification]
      +
      +// These two rules would be sound but impose a giant overhead on `in` evaluation:
      +  // rule E1 in (S SetItem(E2)) => true requires E1 in S
      +  //                                 ensures notBool (E2 in S) [simplification]
      +  // rule E1 in (S SetItem(E2)) => E1 in S requires E1 =/=K E2
      +  //                                 ensures notBool (E2 in S) [simplification]
      +
      +  rule X in ((SetItem(X) S) |Set  _            ) => true
      +                                    ensures notBool (X in S) [simplification]
      +  rule X in ( _             |Set (SetItem(X) S)) => true
      +                                    ensures notBool (X in S) [simplification]
      +
      +endmodule
      +
      +module SET-SYMBOLIC
      +  imports SET-KORE-SYMBOLIC
      +endmodule
      +

      Lists

      +

      Provided here is the syntax of an implementation of immutable, associative
      +lists of KItem. This type is hooked to an implementation of lists provided
      +by the backend. For more information on matching on lists and allowable
      +patterns for doing so, refer to K's
      +user documentation.

      +
      module LIST
      +  imports private INT-SYNTAX
      +  imports private BASIC-K
      +
      +  syntax List [hook(LIST.List)]
      +

      List concatenation

      + +

      The List sort is an ordered collection that may contain duplicate elements.
      +They are backed by relaxed radix balanced trees, which means that they support
      +efficiently adding elements to both sides of the list, concatenating two lists,
      +indexing, and updating elements.

      +

      The concatenation operator is O(log(N)) (where N is the size of the longer
      +list) when it appears on the right hand side. When it appears on the left hand
      +side, it is O(N), where N is the number of elements matched on the front and
      +back of the list.

      +
        syntax List ::= List List               [left, function, total, hook(LIST.concat), klabel(_List_), symbol, smtlib(smt_seq_concat), assoc, unit(.List), element(ListItem), format(%1%n%2)]
      +

      List unit

      + +

      The list with zero elements is represented by .List.

      +
        syntax List ::= ".List"                 [function, total, hook(LIST.unit), klabel(.List), symbol, smtlib(smt_seq_nil), latex(\dotCt{List})]
      +

      List elements

      + +

      An element of a List is constucted via the ListItem operator.

      +
        syntax List ::= ListItem(KItem)             [function, total, hook(LIST.element), klabel(ListItem), symbol, smtlib(smt_seq_elem)]
      +

      List indexing

      + +

      You can get an element of a list by its integer offset in O(log(N)) time, or
      +effectively constant. Positive indices are 0-indexed from the beginning of the
      +list, and negative indices are -1-indexed from the end of the list. In other
      +words, 0 is the first element and -1 is the last element.

      +
        syntax KItem ::= List "[" Int "]"           [function, hook(LIST.get), klabel(List:get), symbol]
      +

      List update

      + +

      You can create a new List with a new value at a particular index in
      +O(log(N)) time, or effectively constant.

      +
        syntax List ::= List "[" index: Int "<-" value: KItem "]" [function, hook(LIST.update), klabel(List:set)]
      +

      List of identical elements

      + +

      You can create a list with length elements, each containing value, in O(N)
      +time.

      +
        syntax List ::= makeList(length: Int, value: KItem) [function, hook(LIST.make)]
      +

      Multiple list update

      + +

      You can create a new List which is equal to dest except the N elements
      +starting at index are replaced with the contents of src in O(N*log(K)) time
      +(where K is the size of destand N is the size of src), or effectively linear. Having index + N > K yields an exception.

      +
        syntax List ::= updateList(dest: List, index: Int, src: List) [function, hook(LIST.updateAll)]
      +

      List fill

      + +

      You can create a new List where the length elements starting at index
      +are replaced with value, in O(length*log(N)) time, or effectively linear.

      +
        syntax List ::= fillList(List, index: Int, length: Int, value: KItem) [function, hook(LIST.fill)]
      +

      List slicing

      + +

      You can compute a new List by removing fromFront elements from the front
      +of the list and fromBack elements from the back of the list in
      +O((fromFront+fromBack)*log(N)) time, or effectively linear.

      +
        syntax List ::= range(List, fromFront: Int, fromBack: Int)   [function, hook(LIST.range), klabel(List:range), symbol]
      +

      List membership

      + +

      You can compute whether an element is in a list in O(N) time. For repeated
      +comparisons, it is much better to first convert to a set using List2Set.

      +
        syntax Bool ::= KItem "in" List             [function, total, hook(LIST.in), klabel(_inList_)]
      +

      List size

      + +

      You can get the number of elements of a list in O(1) time.

      +
        syntax Int ::= size(List)               [function, total, hook(LIST.size), klabel (sizeList), smtlib(smt_seq_len)]
      +
      endmodule
      +

      Collection Conversions

      +

      It is possible to convert from a List to a Set or from a Set to a list.
      +Converting from a List to a Set and back will not provide the same list;
      +duplicates will have been removed and the list may be reordered. Converting
      +from a Set to a List and back will generate the same set.

      +

      Note that because sets are unordered and lists are ordered, converting from a
      +Set to a List will generate some arbitrary ordering of elements, which may
      +be different from the natural ordering you might assume, or may not. Two
      +equal sets are guaranteed to generate the same ordering, but no guarantee is
      +otherwise provided about what the ordering will be. In particular, adding an
      +element to a set may completely reorder the elements already in the set, when
      +it is converted to a list.

      +
      module COLLECTIONS
      +  imports LIST
      +  imports SET
      +  imports MAP
      +
      +  syntax List ::= Set2List(Set) [function, total, hook(SET.set2list)]
      +  syntax Set ::= List2Set(List) [function, total, hook(SET.list2set)]
      +
      +endmodule
      +

      Booleans

      +

      Provided here is the syntax of an implementation of boolean algebra in K.
      +This type is hooked to an implementation of booleans provided by the backend.
      +Note that this algebra is different from the builtin truth in matching logic.
      +You can, however, convert from the truth of the Bool sort to the truth in
      +matching logic via the expression {B #Equals true}.

      +

      The boolean values are true and false.

      +
      module SORT-BOOL
      +  syntax Bool [hook(BOOL.Bool)]
      +endmodule
      +
      +module BOOL-SYNTAX
      +  imports SORT-BOOL
      +  syntax Bool ::= "true"  [token]
      +  syntax Bool ::= "false" [token]
      +endmodule
      +
      +module BOOL-COMMON
      +  imports private BASIC-K
      +  imports BOOL-SYNTAX
      +

      Basic boolean arithmetic

      + +

      You can:

      +
        +
      • Negate a boolean value.
      • +
      • AND two boolean values.
      • +
      • XOR two boolean values.
      • +
      • OR two boolean values.
      • +
      • IMPLIES two boolean values (i.e., P impliesBool Q is the same as
        +notBool P orBool Q)
      • +
      • Check equality of two boolean values.
      • +
      • Check inequality of two boolean values.
      • +
      +

      Note that only andThenBool and orElseBool are short-circuiting. andBool
      +and orBool may be short-circuited in concrete backends, but in symbolic
      +ackends, both arguments will be evaluated.

      +
        syntax Bool ::= "notBool" Bool          [function, total, klabel(notBool_), symbol, smt-hook(not), group(boolOperation), latex(\neg_{\scriptstyle\it Bool}{#1}), hook(BOOL.not)]
      +                > Bool "andBool" Bool     [function, total, klabel(_andBool_), symbol, left, smt-hook(and), group(boolOperation), latex({#1}\wedge_{\scriptstyle\it Bool}{#2}), hook(BOOL.and)]
      +                | Bool "andThenBool" Bool [function, total, klabel(_andThenBool_), symbol, left, smt-hook(and), group(boolOperation), hook(BOOL.andThen)]
      +                | Bool "xorBool" Bool     [function, total, klabel(_xorBool_), symbol, left, smt-hook(xor), group(boolOperation), hook(BOOL.xor)]
      +                | Bool "orBool" Bool      [function, total, klabel(_orBool_), symbol, left, smt-hook(or), group(boolOperation), latex({#1}\vee_{\scriptstyle\it Bool}{#2}), hook(BOOL.or)]
      +                | Bool "orElseBool" Bool  [function, total, klabel(_orElseBool_), symbol, left, smt-hook(or), group(boolOperation), hook(BOOL.orElse)]
      +                | Bool "impliesBool" Bool [function, total, klabel(_impliesBool_), symbol, left, smt-hook(=>), group(boolOperation), hook(BOOL.implies)]
      +                > left:
      +                  Bool "==Bool" Bool      [function, total, klabel(_==Bool_), symbol, left, comm, smt-hook(=), hook(BOOL.eq)]
      +                | Bool "=/=Bool" Bool     [function, total, klabel(_=/=Bool_), symbol, left, comm, smt-hook(distinct), hook(BOOL.ne)]
      +

      Implementation of Booleans

      + +

      The remainder of this section consists of an implementation in K of the
      +operations listed above.

      +
        rule notBool true => false
      +  rule notBool false => true
      +
      +  rule true andBool B:Bool => B:Bool
      +  rule B:Bool andBool true => B:Bool
      +  rule false andBool _:Bool => false
      +  rule _:Bool andBool false => false
      +
      +  rule true andThenBool K::Bool => K
      +  rule K::Bool andThenBool true => K
      +  rule false andThenBool _ => false
      +  rule _ andThenBool false => false
      +
      +  rule false xorBool B:Bool => B:Bool
      +  rule B:Bool xorBool false => B:Bool
      +  rule B:Bool xorBool B:Bool => false
      +
      +  rule true orBool _:Bool => true
      +  rule _:Bool orBool true => true
      +  rule false orBool B:Bool => B
      +  rule B:Bool orBool false => B
      +
      +  rule true orElseBool _ => true
      +  rule _ orElseBool true => true
      +  rule false orElseBool K::Bool => K
      +  rule K::Bool orElseBool false => K
      +
      +  rule true impliesBool B:Bool => B
      +  rule false impliesBool _:Bool => true
      +  rule _:Bool impliesBool true => true
      +  rule B:Bool impliesBool false => notBool B
      +
      +  rule B1:Bool =/=Bool B2:Bool => notBool (B1 ==Bool B2)
      +endmodule
      +
      +module BOOL-KORE [kore, symbolic]
      +  imports BOOL-COMMON
      +
      +  rule {true #Equals notBool @B} => {false #Equals @B} [simplification]
      +  rule {notBool @B #Equals true} => {@B #Equals false} [simplification]
      +  rule {false #Equals notBool @B} => {true #Equals @B} [simplification]
      +  rule {notBool @B #Equals false} => {@B #Equals true} [simplification]
      +
      +  rule {true #Equals @B1 andBool @B2} => {true #Equals @B1} #And {true #Equals @B2} [simplification]
      +  rule {@B1 andBool @B2 #Equals true} => {@B1 #Equals true} #And {@B2 #Equals true} [simplification]
      +  rule {false #Equals @B1 orBool @B2} => {false #Equals @B1} #And {false #Equals @B2} [simplification]
      +  rule {@B1 orBool @B2 #Equals false} => {@B1 #Equals false} #And {@B2 #Equals false} [simplification]
      +endmodule
      +
      +module BOOL
      +  imports BOOL-COMMON
      +  imports BOOL-KORE
      +endmodule
      +

      Integers

      +

      Provided here is the syntax of an implementation of arbitrary-precision
      +integer arithmetic in K. This type is hooked to an implementation of integers
      +provided by the backend. For a fixed-width integer type, see the MINT module
      +below.

      +

      The UNSIGNED-INT-SYNTAX module provides a syntax of whole numbers in K.
      +This is useful because often programming languages implement the sign of an
      +integer as a unary operator rather than part of the lexical syntax of integers.
      +However, you can also directly reference integers with a sign using the
      +INT-SYNTAX module.

      +
      module UNSIGNED-INT-SYNTAX
      +  syntax Int [hook(INT.Int)]
      +  syntax Int ::= r"[0-9]+" [prefer, token, prec(2)]
      +endmodule
      +
      +module INT-SYNTAX
      +  imports UNSIGNED-INT-SYNTAX
      +  syntax Int ::= r"[\\+-]?[0-9]+" [prefer, token, prec(2)]
      +endmodule
      +
      +module INT-COMMON
      +  imports INT-SYNTAX
      +  imports private BOOL
      +

      Integer arithmetic

      + +

      You can:

      +
        +
      • Compute the bitwise complement ~Int of an integer value in twos-complement.
      • +
      • Compute the exponentiation ^Int of two integers.
      • +
      • Compute the exponentiation of two integers modulo another integer (^%Int).
        +A ^%Int B C is equal in value to (A ^Int B) %Int C, but has a better
        +asymptotic complexity.
      • +
      • Compute the product *Int of two integers.
      • +
      • Compute the quotient /Int or modulus %Int of two integers using
        +t-division, which rounds towards zero. Division by zero is #False.
      • +
      • Compute the quotient divInt or modulus modInt of two integers using
        +Euclidean division, in which the remainder is always non-negative. Division
        +by zero is #False.
      • +
      • Compute the sum +Int or difference -Int of two integers.
      • +
      • Compute the arithmetic right shift >>Int of two integers. Shifting by a
        +negative quantity is #False.
      • +
      • Compute the left shift of two integers. Shifting by a negative quantity is
        +#False.
      • +
      • Compute the bitwise and of two integers in twos-complement.
      • +
      • Compute the bitwise xor of two integers in twos-complement.
      • +
      • Compute the bitwise inclusive-or of two integers in twos-complement.
      • +
      +
        syntax Int ::= "~Int" Int                     [function, klabel(~Int_), symbol, total, latex(\mathop{\sim_{\scriptstyle\it Int}}{#1}), hook(INT.not), smtlib(notInt)]
      +               > left:
      +                 Int "^Int" Int                 [function, klabel(_^Int_), symbol, left, smt-hook(^), latex({#1}\mathrel{{\char`\^}_{\!\scriptstyle\it Int}}{#2}), hook(INT.pow)]
      +               | Int "^%Int" Int Int            [function, klabel(_^%Int__), symbol, left, smt-hook((mod (^ #1 #2) #3)), hook(INT.powmod)]
      +               > left:
      +                 Int "*Int" Int                 [function, total, klabel(_*Int_), symbol, left, comm, smt-hook(*), latex({#1}\mathrel{\ast_{\scriptstyle\it Int}}{#2}), hook(INT.mul)]
      +               /* FIXME: translate /Int and %Int into smtlib */
      +               /* /Int and %Int implement t-division, which rounds towards 0 */
      +               | Int "/Int" Int                 [function, klabel(_/Int_), symbol, left, smt-hook(div), latex({#1}\mathrel{\div_{\scriptstyle\it Int}}{#2}), hook(INT.tdiv)]
      +               | Int "%Int" Int                 [function, klabel(_%Int_), symbol, left, smt-hook(mod), latex({#1}\mathrel{\%_{\scriptstyle\it Int}}{#2}), hook(INT.tmod)]
      +               /* divInt and modInt implement e-division according to the Euclidean division theorem, therefore the remainder is always positive */
      +               | Int "divInt" Int               [function, klabel(_divInt_), symbol, left, smt-hook(div), hook(INT.ediv)]
      +               | Int "modInt" Int               [function, klabel(_modInt_), symbol, left, smt-hook(mod), hook(INT.emod)]
      +               > left:
      +                 Int "+Int" Int                 [function, total, klabel(_+Int_), symbol, left, comm, smt-hook(+), latex({#1}\mathrel{+_{\scriptstyle\it Int}}{#2}), hook(INT.add)]
      +               | Int "-Int" Int                 [function, total, klabel(_-Int_), symbol, left, smt-hook(-), latex({#1}\mathrel{-_{\scriptstyle\it Int}}{#2}), hook(INT.sub)]
      +               > left:
      +                 Int ">>Int" Int                [function, klabel(_>>Int_), symbol, left, latex({#1}\mathrel{\gg_{\scriptstyle\it Int}}{#2}), hook(INT.shr), smtlib(shrInt)]
      +               | Int "<<Int" Int                [function, klabel(_<<Int_), symbol, left, latex({#1}\mathrel{\ll_{\scriptstyle\it Int}}{#2}), hook(INT.shl), smtlib(shlInt)]
      +               > left:
      +                 Int "&Int" Int                 [function, total, klabel(_&Int_), symbol, left, comm, latex({#1}\mathrel{\&_{\scriptstyle\it Int}}{#2}), hook(INT.and), smtlib(andInt)]
      +               > left:
      +                 Int "xorInt" Int               [function, total, klabel(_xorInt_), symbol, left, comm, latex({#1}\mathrel{\oplus_{\scriptstyle\it Int}}{#2}), hook(INT.xor), smtlib(xorInt)]
      +               > left:
      +                 Int "|Int" Int                 [function, total, klabel(_|Int_), symbol, left, comm, latex({#1}\mathrel{|_{\scriptstyle\it Int}}{#2}), hook(INT.or), smtlib(orInt)]
      +

      Integer minimum and maximum

      + +

      You can compute the minimum and maximum minInt and maxInt of two integers.

      +
        syntax Int ::= "minInt" "(" Int "," Int ")"   [function, total, smt-hook((ite (< #1 #2) #1 #2)), hook(INT.min)]
      +               | "maxInt" "(" Int "," Int ")"   [function, total, smt-hook((ite (< #1 #2) #2 #1)), hook(INT.max)]
      +

      Absolute value

      + +

      You can compute the absolute value absInt of an integer.

      +
        syntax Int ::= absInt ( Int )                 [function, total, smt-hook((ite (< #1 0) (- 0 #1) #1)), hook(INT.abs)]
      +

      Log base 2

      + +

      You can compute the log base 2, rounded towards zero, of an integer. The log
      +base 2 of an integer is equal to the index of the highest bit set in the
      +representation of a positive integer. Log base 2 of zero or a negative number
      +is #False.

      +
        syntax Int ::= log2Int ( Int )                [function, hook(INT.log2)]
      +

      Bit slicing

      + +

      You can compute the value of a range of bits in the twos-complement
      +representation of an integer, as interpeted either unsigned or signed, of an
      +integer. index is offset from 0 and length is the number of bits, starting
      +with index, that should be read. The number is assumed to be represented
      +in little endian notation with each byte going from least significant to
      +most significant. In other words, 0 is the least-significant bit, and each
      +successive bit is more significant than the last.

      +
        syntax Int ::= bitRangeInt           ( Int, index: Int, length: Int ) [function, hook(INT.bitRange)]
      +               | signExtendBitRangeInt ( Int, index: Int, length: Int ) [function, hook(INT.signExtendBitRange)]
      +

      Integer comparisons

      + +

      You can compute whether two integers are less than or equal to, less than,
      +greater than or equal to, greater than, equal, or unequal to another integer.

      +
        syntax Bool ::= Int "<=Int" Int         [function, total, klabel(_<=Int_), symbol, smt-hook(<=), latex({#1}\mathrel{\leq_{\scriptstyle\it Int}}{#2}), hook(INT.le)]
      +                | Int "<Int" Int          [function, total, klabel(_<Int_), symbol, smt-hook(<), latex({#1}\mathrel{<_{\scriptstyle\it Int}}{#2}), hook(INT.lt)]
      +                | Int ">=Int" Int         [function, total, klabel(_>=Int_), symbol, smt-hook(>=), latex({#1}\mathrel{\geq_{\scriptstyle\it Int}}{#2}), hook(INT.ge)]
      +                | Int ">Int" Int          [function, total, klabel(_>Int_), symbol, smt-hook(>), latex({#1}\mathrel{>_{\scriptstyle\it Int}}{#2}), hook(INT.gt)]
      +                | Int "==Int" Int         [function, total, klabel(_==Int_), symbol, comm, smt-hook(=), latex({#1}\mathrel{{=}{=}_{\scriptstyle\it Int}}{#2}), hook(INT.eq)]
      +                | Int "=/=Int" Int        [function, total, klabel(_=/=Int_), symbol, comm, smt-hook(distinct), latex({#1}\mathrel{{=}{/}{=}_{\scriptstyle\it Int}}{#2}), hook(INT.ne)]
      +

      Divides

      + +

      You can compute whether one integer evenly divides another. This is the
      +case when the second integer modulo the first integer is equal to zero.

      +
        syntax Bool ::= Int "dividesInt" Int    [function]
      +

      Random integers

      + +

      You can, on concrete backends, compute a pseudorandom integer, or seed the
      +pseudorandom number generator. These operations are represented as
      +uninterpreted functions on symbolic backends.

      +
        syntax Int ::= randInt(Int) [function, hook(INT.rand), impure]
      +  syntax K ::= srandInt(Int) [function, hook(INT.srand), impure]
      +

      Implementation of Integers

      + +

      The remainder of this section consists of an implementation in K of some
      +of the operators above, as well as lemmas used by the Java and Haskell backend
      +to simplify expressions of sort Int. They do not affect the semantics of
      +integers, merely describing additional rules that the backend can use to
      +simplify terms.

      +
      endmodule
      +
      +module INT-SYMBOLIC [symbolic]
      +  imports INT-COMMON
      +  imports INT-SYMBOLIC-KORE
      +  imports private BOOL
      +
      +  // Arithmetic Normalization
      +  rule I +Int 0 => I [simplification]
      +  rule I -Int 0 => I [simplification]
      +
      +  rule X modInt N => X requires 0 <=Int X andBool X <Int N [simplification]
      +  rule X   %Int N => X requires 0 <=Int X andBool X <Int N [simplification]
      +
      +  // Bit-shifts
      +  rule X <<Int 0 => X [simplification]
      +  rule 0 <<Int _ => 0 [simplification]
      +  rule X >>Int 0 => X [simplification]
      +  rule 0 >>Int _ => 0 [simplification]
      +endmodule
      +
      +module INT-SYMBOLIC-KORE [symbolic, kore, haskell]
      +  imports INT-COMMON
      +  imports ML-SYNTAX
      +  imports private BOOL
      +
      +  // Definability Conditions
      +  rule #Ceil(@I1:Int /Int   @I2:Int) => {(@I2 =/=Int 0) #Equals true} #And #Ceil(@I1) #And #Ceil(@I2) [simplification]
      +  rule #Ceil(@I1:Int %Int   @I2:Int) => {(@I2 =/=Int 0) #Equals true} #And #Ceil(@I1) #And #Ceil(@I2) [simplification]
      +  rule #Ceil(@I1:Int modInt @I2:Int) => {(@I2 =/=Int 0) #Equals true} #And #Ceil(@I1) #And #Ceil(@I2) [simplification]
      +  rule #Ceil(@I1:Int >>Int  @I2:Int) => {(@I2 >=Int 0)  #Equals true} #And #Ceil(@I1) #And #Ceil(@I2) [simplification]
      +  rule #Ceil(@I1:Int <<Int  @I2:Int) => {(@I2 >=Int 0)  #Equals true} #And #Ceil(@I1) #And #Ceil(@I2) [simplification]
      +endmodule
      +
      +module INT-KORE [kore, symbolic]
      +  imports private K-EQUAL
      +  imports private BOOL
      +  imports INT-COMMON
      +
      +  rule I1:Int ==K I2:Int => I1 ==Int I2 [simplification]
      +  rule {K1 ==Int K2 #Equals true} => {K1 #Equals K2} [simplification]
      +  rule {true #Equals K1 ==Int K2} => {K1 #Equals K2} [simplification]
      +  rule {K1 ==Int K2 #Equals false} => #Not({K1 #Equals K2}) [simplification]
      +  rule {false #Equals K1 ==Int K2} => #Not({K1 #Equals K2}) [simplification]
      +  rule {K1 =/=Int K2 #Equals true} => #Not({K1 #Equals K2}) [simplification]
      +  rule {true #Equals K1 =/=Int K2} => #Not({K1 #Equals K2}) [simplification]
      +  rule {K1 =/=Int K2 #Equals false} => {K1 #Equals K2} [simplification]
      +  rule {false #Equals K1 =/=Int K2} => {K1 #Equals K2} [simplification]
      +
      +  // Arithmetic Normalization
      +  rule I +Int B => B +Int I          [concrete(I), symbolic(B), simplification(51)]
      +  rule A -Int I => A +Int (0 -Int I) [concrete(I), symbolic(A), simplification(51)]
      +
      +  rule (A +Int I2) +Int I3 => A +Int (I2 +Int I3) [concrete(I2, I3), symbolic(A), simplification]
      +  rule I1 +Int (B +Int I3) => B +Int (I1 +Int I3) [concrete(I1, I3), symbolic(B), simplification]
      +  rule I1 -Int (B +Int I3) => (I1 -Int I3) -Int B [concrete(I1, I3), symbolic(B), simplification]
      +  rule I1 +Int (I2 +Int C) => (I1 +Int I2) +Int C [concrete(I1, I2), symbolic(C), simplification]
      +  rule I1 +Int (I2 -Int C) => (I1 +Int I2) -Int C [concrete(I1, I2), symbolic(C), simplification]
      +  rule (I1 -Int B) +Int I3 => (I1 +Int I3) -Int B [concrete(I1, I3), symbolic(B), simplification]
      +  rule I1 -Int (I2 +Int C) => (I1 -Int I2) -Int C [concrete(I1, I2), symbolic(C), simplification]
      +  rule I1 -Int (I2 -Int C) => (I1 -Int I2) +Int C [concrete(I1, I2), symbolic(C), simplification]
      +  rule (C -Int I2) -Int I3 => C -Int (I2 +Int I3) [concrete(I2, I3), symbolic(C), simplification]
      +
      +  rule I1 &Int (I2 &Int C) => (I1 &Int I2) &Int C [concrete(I1, I2), symbolic(C), simplification]
      +endmodule
      +
      +module INT
      +  imports INT-COMMON
      +  imports INT-SYMBOLIC
      +  imports INT-KORE
      +  imports private K-EQUAL
      +  imports private BOOL
      +
      +  rule bitRangeInt(I::Int, IDX::Int, LEN::Int) => (I >>Int IDX) modInt (1 <<Int LEN)
      +
      +  rule signExtendBitRangeInt(I::Int, IDX::Int, LEN::Int) => (bitRangeInt(I, IDX, LEN) +Int (1 <<Int (LEN -Int 1))) modInt (1 <<Int LEN) -Int (1 <<Int (LEN -Int 1))
      +
      +  rule I1:Int divInt I2:Int => (I1 -Int (I1 modInt I2)) /Int I2
      +  requires I2 =/=Int 0
      +  rule
      +    I1:Int modInt I2:Int
      +  =>
      +    ((I1 %Int absInt(I2)) +Int absInt(I2)) %Int absInt(I2)
      +  requires I2 =/=Int 0    [concrete, simplification]
      +
      +  rule minInt(I1:Int, I2:Int) => I1 requires I1 <=Int I2
      +  rule minInt(I1:Int, I2:Int) => I2 requires I1 >=Int I2
      +
      +  rule I1:Int =/=Int I2:Int => notBool (I1 ==Int I2)
      +  rule (I1:Int dividesInt I2:Int) => (I2 %Int I1) ==Int 0
      +
      +  syntax Int ::= freshInt(Int)    [freshGenerator, function, total, private]
      +  rule freshInt(I:Int) => I
      +endmodule
      +

      IEEE 754 Floating-point Numbers

      +

      Provided here is the syntax of an implementation of arbitrary-precision
      +floating-point arithmetic in K based on a generalization of the IEEE 754
      +standard. This type is hooked to an implementation of floats provided by the
      +backend.

      +

      The syntax of ordinary floating-point values in K consists of an optional sign
      +(+ or -) followed by an optional integer part, followed by a decimal point,
      +followed by an optional fractional part. Either the integer part or the
      +fractional part must be specified. The mantissa is followed by an optional
      +exponent part, which consists of an e or E, an optional sign (+ or -),
      +and an integer. The expoennt is followed by an optional suffix, which can be
      +either f, F, d, D, or pNxM where N and M are positive integers.
      +p and x can be either upper or lowercase.

      +

      The value of a floating-point literal is computed as follows: First the
      +mantissa is read as a rational number. Then it is multiplied by 10 to the
      +power of the exponent, which is interpreted as an integer, and defaults to
      +zero if it is not present. Finally, it is rounded to the nearest possible
      +value in a floating-point type represented like an IEEE754 floating-point type,
      +with the number of bits of precision and exponent specified by the suffix.
      +A suffix of f or f represents the IEEE binary32 format. A suffix of d
      +or D, or no suffix, represents the IEEE binary64 format. A suffix of
      +pNxM (either upper or lowercase) specifies exactly N bits of precision and
      +M bits of exponent. The number of bits of precision is assumed to include
      +any optional 1 that precedes the IEEE 754 mantissa. In other words, p24x8
      +is equal to the IEEE binary32 format, and p53x11 is equal to the IEEE
      +binary64 format.

      +
      module FLOAT-SYNTAX
      +  syntax Float [hook(FLOAT.Float)]
      +  syntax Float ::= r"([\\+-]?[0-9]+(\\.[0-9]*)?|\\.[0-9]+)([eE][\\+-]?[0-9]+)?([fFdD]|([pP][0-9]+[xX][0-9]+))?" [token, prec(1)]
      +  syntax Float ::= r"[\\+-]?Infinity([fFdD]|([pP][0-9]+[xX][0-9]+))?" [token, prec(3)]
      +  syntax Float ::= r"NaN([fFdD]|([pP][0-9]+[xX][0-9]+))?" [token, prec(3)]
      +endmodule
      +
      +module FLOAT
      +  imports FLOAT-SYNTAX
      +  imports private BOOL
      +  imports private INT-SYNTAX
      +

      Float precision

      + +

      You can retrieve the number of bits of precision in a Float.

      +
        syntax Int ::= precisionFloat(Float) [function, total, hook(FLOAT.precision)]
      +

      Float exponent bits

      + +

      You can retrieve the number of bits of exponent range in a Float.

      +
        syntax Int ::= exponentBitsFloat(Float) [function, total, hook(FLOAT.exponentBits)]
      +

      Float exponent

      + +

      You can retrieve the value of the exponent bits of a Float as an integer.

      +
        syntax Int ::= exponentFloat(Float) [function, total, hook(FLOAT.exponent)]
      +

      Float sign

      + +

      You can retrieve the value of the sign bit of a Float as a boolean. True
      +means the sign bit is set.

      +
        syntax Bool ::= signFloat(Float)      [function, total, hook(FLOAT.sign)]
      +

      Float special values

      + +

      You can check whether a Float value is infinite or Not-a-Number.

      +
        syntax Bool ::= isNaN(Float)          [function, total, smt-hook(fp.isNaN), hook(FLOAT.isNaN)]
      +                | isInfinite(Float)     [function, total]
      +

      Float arithmetic

      + +

      You can:

      +
        +
      • Compute the unary negation --Float of a float. --Float X is distinct
        +from 0.0 -Float X. For example, 0.0 -Float 0.0 is positive zero.
        +--Float 0.0 is negative zero.
      • +
      • Compute the exponentation ^Float of two floats.
      • +
      • Compute the product *Float, quotient /Float, or remainder %Float of two
        +floats. The remainder is computed based on rounding the quotient of the two
        +floats to the nearest integer.
      • +
      • Compute the sum +Float or difference -Float of two floats.
      • +
      +
        syntax Float ::= "--Float" Float             [function, total, smt-hook(fp.neg), hook(FLOAT.neg)]
      +                 > Float "^Float" Float        [function, left, latex({#1}^{#2}), hook(FLOAT.pow)]
      +                 > left:
      +                   Float "*Float" Float        [function, left, smt-hook((fp.mul roundNearestTiesToEven #1 #2)), latex({#1}\mathrel{\ast_{\scriptstyle\it Float}}{#2}), hook(FLOAT.mul)]
      +                 | Float "/Float" Float        [function, left, smt-hook((fp.div roundNearestTiesToEven #1 #2)), latex({#1}\mathrel{\div_{\scriptstyle\it Float}}{#2}), hook(FLOAT.div)]
      +                 | Float "%Float" Float        [function, left, smt-hook((fp.rem roundNearestTiesToEven #1 #2)), latex({#1}\mathrel{\%_{\scriptstyle\it Float}}{#2}), hook(FLOAT.rem)]
      +                 > left:
      +                   Float "+Float" Float        [function, left, smt-hook((fp.add roundNearestTiesToEven #1 #2)), latex({#1}\mathrel{+_{\scriptstyle\it Float}}{#2}), hook(FLOAT.add)]
      +                 | Float "-Float" Float        [function, left, smt-hook((fp.sub roundNearestTiesToEven #1 #2)), latex({#1}\mathrel{-_{\scriptstyle\it Float}}{#2}), hook(FLOAT.sub)]
      +

      Floating-point mathematics

      + +

      You can:

      +
        +
      • Compute the Nth integer root rootFloat of a float.
      • +
      • Compute the absolute value absFloat of a float.
      • +
      • Round a floating-point number to a specified precision and exponent
        +range (roundFloat). The resulting Float will yield the specified values
        +when calling precisionFloat and exponentBitsFloat and when performing
        +further computation.
      • +
      • Round a float to the next lowest floating-point value which is an integer
        +(floorFloat).
      • +
      • Round a float to the next highest floating-point value which is an integer
        +(ceilFloat).
      • +
      • Round a float to the next closest floating-point value which is an integer, in
        +the direction of zero (truncFloat).
      • +
      • Compute the natural exponential expFloat of a float (i.e. e^x).
      • +
      • Compute the natural logarithm logFloat of a float.
      • +
      • Compute the sine sinFloat of a float.
      • +
      • Compute the cosine cosFloat of a float.
      • +
      • Compute the tangent tanFlooat of a float.
      • +
      • Compute the arcsine asinFloat of a float.
      • +
      • Compute the arccosine acosFloat of a float.
      • +
      • Compute the arctangent atanFloat of a float.
      • +
      • Compute the arctangent atan2Float of two floats.
      • +
      • Compute the maximum maxFloat of two floats.
      • +
      • Compute the minimum minFloat of two floats.
      • +
      • Compute the square root sqrtFloat of a float.
      • +
      • Compute the largest finite value expressible in a specified precision and
        +exponent range (maxValueFloat).
      • +
      • Compute the smallest positive finite value expressible in a specified
        +precision and exponent range (minValueFloat).
      • +
      +
        syntax Float ::= rootFloat(Float, Int)        [function, hook(FLOAT.root)]
      +                 | absFloat(Float)              [function, total, smt-hook(fp.abs), hook(FLOAT.abs)]
      +                 | roundFloat(Float, precision: Int, exponentBits: Int)  [function, hook(FLOAT.round)]
      +                 | floorFloat(Float)            [function, total, hook(FLOAT.floor)]
      +                 | ceilFloat(Float)             [function, total, hook(FLOAT.ceil)]
      +                 | truncFloat(Float)            [function, total, hook(FLOAT.trunc)]
      +                 | expFloat(Float)              [function, total, hook(FLOAT.exp)]
      +                 | logFloat(Float)              [function, hook(FLOAT.log)]
      +                 | sinFloat(Float)              [function, total, hook(FLOAT.sin)]
      +                 | cosFloat(Float)              [function, total, hook(FLOAT.cos)]
      +                 | tanFloat(Float)              [function, hook(FLOAT.tan)]
      +                 | asinFloat(Float)             [function, hook(FLOAT.asin)]
      +                 | acosFloat(Float)             [function, hook(FLOAT.acos)]
      +                 | atanFloat(Float)             [function, total, hook(FLOAT.atan)]
      +                 | atan2Float(Float, Float)     [function, hook(FLOAT.atan2)]
      +                 | maxFloat(Float, Float)       [function, smt-hook(fp.max), hook(FLOAT.max)]
      +                 | minFloat(Float, Float)       [function, smt-hook(fp.min), hook(FLOAT.min)]
      +                 | sqrtFloat(Float)             [function]
      +                 | maxValueFloat(precision: Int, exponentBits: Int)      [function, hook(FLOAT.maxValue)]
      +                 | minValueFloat(precision: Int, exponentBits: Int)      [function, hook(FLOAT.minValue)]
      +

      Floating-point comparisons

      + +

      Compute whether a float is less than or equasl to, less than, greater than or
      +equal to, greater than, equal, or unequal to another float. Note that
      +X ==Float Y and X ==K Y might yield different values. The latter should be
      +used in cases where you want to compare whether two values of sort Float
      +contain the same term. The former should be used when you want to implement
      +the == operator of a programming language. In particular, NaN =/=Float NaN
      +is true, because NaN compares unequal to all values, including itself, in
      +IEEE 754 arithmetic. 0.0 ==Float -0.0 is also true.

      +
        syntax Bool ::= Float "<=Float" Float       [function, smt-hook(fp.leq), latex({#1}\mathrel{\leq_{\scriptstyle\it Float}}{#2}), hook(FLOAT.le)]
      +                | Float "<Float" Float        [function, smt-hook(fp.lt), latex({#1}\mathrel{<_{\scriptstyle\it Float}}{#2}), hook(FLOAT.lt)]
      +                | Float ">=Float" Float       [function, smt-hook(fp.geq), latex({#1}\mathrel{\geq_{\scriptstyle\it Float}}{#2}), hook(FLOAT.ge)]
      +                | Float ">Float" Float        [function, smt-hook(fg.gt), latex({#1}\mathrel{>_{\scriptstyle\it Float}}{#2}), hook(FLOAT.gt)]
      +                | Float "==Float" Float       [function, comm, smt-hook(fp.eq), latex({#1}\mathrel{==_{\scriptstyle\it Float}}{#2}), hook(FLOAT.eq), klabel(_==Float_)]
      +                | Float "=/=Float" Float      [function, comm, smt-hook((not (fp.eq #1 #2))), latex({#1}\mathrel{\neq_{\scriptstyle\it Float}}{#2})]
      +
      +  rule F1:Float =/=Float F2:Float => notBool (F1 ==Float F2)
      +

      Conversion between integer and float

      + +

      You can convert an integer to a floating-point number with the specified
      +precision and exponent range. You can also convert a floating-point number
      +to the nearest integer. This operation rounds to the nearest integer, but it
      +also avoids the double-rounding that is present in ceilFloat and floorFloat
      +if the nearest integer is not representable in the specified floating-point
      +type.

      +
        syntax Float ::= Int2Float(Int, precision: Int, exponentBits: Int)    [function, latex({\\it{}Int2Float}), hook(FLOAT.int2float)]
      +  syntax Int ::= Float2Int(Float)    [function, total, latex({\\it{}Float2Int}), hook(FLOAT.float2int)]
      +

      Implementation of Floats

      + +

      The remainder of this section consists of an implementation in K of some of the
      +operators above.

      +
        rule sqrtFloat(F:Float) => rootFloat(F, 2)
      +
      +  rule isInfinite(F:Float) => F >Float maxValueFloat(precisionFloat(F), exponentBitsFloat(F)) orBool F <Float --Float maxValueFloat(precisionFloat(F), exponentBitsFloat(F))
      +
      +endmodule
      +

      Strings

      +

      Provided here is the syntax of an implementation of Unicode strings in K. This
      +type is hooked to an implementation of strings provided by the backend. The
      +implementation is currently incomplete and does not fully support encodings
      +and code points beyond the initial 256 code points of the Basic Latin and
      +Latin-1 Supplement blocks. In the future, there may be breaking changes to
      +the semantics of this module in order to support this functionality.

      +

      The syntax of strings in K is delineated by double quotes. Inside the double
      +quotes, any character can appear verbatim except double quotes, backslash,
      +newline, and carriage return. K also supports the following escape sequences:

      +
        +
      • " - the " character
      • +
      • \ - the \ character
      • +
      • \n - newline character
      • +
      • \r - carriage return character
      • +
      • \t - tab character
      • +
      • \f - form feed character
      • +
      • \xFF - \x followed by two hexadecimal characters indicates a code point
        +between 0x00 and 0xff
      • +
      • \uFFFF - \u followed by four hexadecimal characters indicates a code point
        +between 0x0000 and 0xffff
      • +
      • \UFFFFFFFF - \U followed by eight hexadecimal characters indicates a code
        +point between 0x000000 and 0x10ffff
      • +
      +
      module STRING-SYNTAX
      +  syntax String [hook(STRING.String)]
      +  syntax String ::= r"[\\\"](([^\\\"\\n\\r\\\\])|([\\\\][nrtf\\\"\\\\])|([\\\\][x][0-9a-fA-F]{2})|([\\\\][u][0-9a-fA-F]{4})|([\\\\][U][0-9a-fA-F]{8}))*[\\\"]"      [token]
      +endmodule
      +
      +module STRING-COMMON
      +  imports STRING-SYNTAX
      +  imports private INT
      +  imports private FLOAT-SYNTAX
      +  imports private K-EQUAL
      +  imports private BOOL
      +

      String concatenation

      + +

      You can concatenate two strings in O(N) time. For successive concatenation
      +operations, it may be better to use the STRING-BUFFER module.

      +
        syntax String ::= String "+String" String    [function, total, left, latex({#1}+_{\scriptstyle\it String}{#2}), hook(STRING.concat)]
      +

      String length

      + +

      You can get the length of a string in O(1) time.

      +
        syntax Int ::= lengthString ( String ) [function, total, hook(STRING.length)]
      +

      Character and integer conversion

      + +

      You can convert between a character (as represented by a string containing
      +a single code point) and an integer in O(1) time.

      +
        syntax String ::= chrChar ( Int )      [function, hook(STRING.chr)]
      +  syntax Int ::= ordChar ( String )      [function, hook(STRING.ord)]
      +

      String substring

      + +

      You can compute a substring of a string in O(N) time (where N is the
      +length of the substring). There are two important facts to note:

      +
        +
      1. the range generated includes the character at startIndex but excludes the
        +character at endIndex, i.e., the range is [startIndex..endIndex).
      2. +
      3. this function is only defined on valid indices (i.e., it is defined when
        +startIndex < endIndex and endIndex is less than or equal to the string
        +length).
      4. +
      +
        syntax String ::= substrString ( String , startIndex: Int , endIndex: Int ) [function, total, hook(STRING.substr)]
      +
      + +

      You can find the first (respectively, last) occurrence of a substring, starting
      +at a certain index, in another string in O(N*M) time.
      +Returns -1 if the substring is not found.

      +
        syntax Int ::= findString ( haystack: String , needle: String , index: Int )   [function, hook(STRING.find)]
      +  syntax Int ::= rfindString ( haystack: String , needle: String , index: Int )  [function, hook(STRING.rfind)]
      +
      + +

      You can find the first (respectively, last) occurrence of one of the characters
      +of the search string, starting at a certain index, in another string in
      +O(N*M) time.

      +
        syntax Int ::= findChar ( haystack: String , needles: String , index: Int )     [function, hook(STRING.findChar)]
      +  syntax Int ::= rfindChar ( haystack: String , needles: String , index: Int )    [function, hook(STRING.rfindChar)]
      +

      String and Bool conversion

      + +
        syntax String ::= Bool2String(Bool) [function, total]
      +  rule Bool2String(true)  => "true"
      +  rule Bool2String(false) => "false"
      +
        syntax Bool ::= String2Bool(String) [function]
      +  rule String2Bool("true")  => true
      +  rule String2Bool("false") => false
      +

      String and float conversion

      + +

      You can convert between a String and a Float. The String will be
      +represented in the syntax of the Float sort (see the section on the FLOAT
      +module above for details of that syntax). Which particular string is returned
      +by Float2String is determined by the backend, but the same Float is
      +guaranteed to return the same String, and converting that String back to a
      +Float is guaranteed to return the original Float.

      +

      You can also convert a Float to a string in a particular syntax using the
      +variant of Float2String with a format. In this case, the resulting string
      +is one which results directly from passing that format to mpfr_printf. This
      +functionality may not be supported on backends that do not use Gnu MPFR to
      +implement floating-point numbers.

      +
        syntax String ::= Float2String ( Float )              [function, total, hook(STRING.float2string)]
      +  syntax String ::= Float2String ( Float , format: String )     [function, klabel(FloatFormat), hook(STRING.floatFormat)]
      +  syntax Float  ::= String2Float ( String )             [function, hook(STRING.string2float)]
      +

      String and integer conversions

      + +

      You can convert between a String and an Int. The String will be represented
      +in the syntax of the INT module (i.e., a nonempty sequence of digits
      +optionally prefixed by a sign). When converting from an Int to a String,
      +the sign will not be present unless the integer is negative.

      +

      You can also convert between a String and an Int in a particular radix.
      +This radix can be anywhere between 2 and 36. For a radix 2 <= N <= 10, the
      +digits 0 to N-1 will be used. For a radix 11 <= N <= 36, the digits 0 to 9
      +and the first N-10 letters of the Latin alphabet will be used. Both uppercase
      +and lowercase letters are supported by String2Base. Whether the letters
      +returned by Base2String are upper or lowercase is determined by the backend,
      +but the backend will consistently choose one or the other.

      +
        syntax Int    ::= String2Int   ( String )             [function, hook(STRING.string2int)]
      +  syntax String ::= Int2String   ( Int )                [function, total, hook(STRING.int2string)]
      +  syntax String ::= Base2String  ( Int , base: Int )          [function, hook(STRING.base2string)]
      +  syntax Int    ::= String2Base  ( String , base: Int )       [function, hook(STRING.string2base)]
      +

      String count and replace

      + +

      You can replace one, some, or all occurrences of a string within another
      +string in O(N*M) time. The replaceAll, replace, and replaceFirst methods
      +are identical, except replaceFirst replaces exactly one ocurrence of the
      +string, the first occurrence. replace replaces the first times occurrences.
      +And replaceAll replaces every occurrence.

      +

      You can also count the number of times a string occurs within another string
      +using countAllOccurrences.

      +
        syntax String ::= "replaceAll" "(" haystack: String "," needle: String "," replacement: String ")"      [function, total, hook(STRING.replaceAll)]
      +  syntax String ::= "replace" "(" haystack: String "," needle: String "," replacement: String "," times: Int ")" [function, hook(STRING.replace)]
      +  syntax String ::= "replaceFirst" "(" haystack: String "," needle: String "," replacement: String ")"    [function, total, hook(STRING.replaceFirst)]
      +  syntax Int ::= "countAllOccurrences" "(" haystack: String "," needle: String ")"            [function, total, hook(STRING.countAllOccurrences)]
      +

      String equality and lexicographic comparison

      + +

      You can compare whether two strings are equal or unequal, or whether one string
      +is less than, less than or equal to, greater than, or greater than or equal to
      +another according to the natural lexicographic ordering of strings.

      +
        syntax Bool ::= String "==String" String  [function, total, comm, hook(STRING.eq)]
      +                | String "=/=String" String [function, total, comm, hook(STRING.ne)]
      +  rule S1:String =/=String S2:String => notBool (S1 ==String S2)
      +
      +  syntax Bool ::= String  "<String" String [function, total, hook(STRING.lt)]
      +                | String "<=String" String [function, total, hook(STRING.le)]
      +                | String  ">String" String [function, total, hook(STRING.gt)]
      +                | String ">=String" String [function, total, hook(STRING.ge)]
      +

      Implementation of Strings

      + +

      What follows is a few String hooks which are deprecated and only are supported
      +on certain outdated backends of K, as well as an implementation of several
      +of the above operations in K.

      +
        syntax String ::= categoryChar(String)       [function, hook(STRING.category)]
      +                  | directionalityChar(String) [function, hook(STRING.directionality)]
      +
      +  syntax String ::= "newUUID" [function, hook(STRING.uuid), impure]
      +
      +  rule S1:String <=String S2:String => notBool (S2 <String S1)
      +  rule S1:String >String S2:String => S2 <String S1
      +  rule S1:String >=String S2:String => notBool (S1 <String S2)
      +
      +  rule findChar(S1:String, S2:String, I:Int) => #if findString(S1, substrString(S2, 0, 1), I) ==Int -1 #then findChar(S1, substrString(S2, 1, lengthString(S2)), I) #else #if findChar(S1, substrString(S2, 1, lengthString(S2)), I) ==Int -1 #then findString(S1, substrString(S2, 0, 1), I) #else minInt(findString(S1, substrString(S2, 0, 1), I), findChar(S1, substrString(S2, 1, lengthString(S2)), I)) #fi #fi requires S2 =/=String ""
      +  rule findChar(_, "", _) => -1
      +  rule rfindChar(S1:String, S2:String, I:Int) => maxInt(rfindString(S1, substrString(S2, 0, 1), I), rfindChar(S1, substrString(S2, 1, lengthString(S2)), I)) requires S2 =/=String ""
      +  rule rfindChar(_, "", _) => -1
      +
      +  rule countAllOccurrences(Source:String, ToCount:String) => 0
      +            requires findString(Source, ToCount, 0) <Int 0
      +  rule countAllOccurrences(Source:String, ToCount:String) => 1 +Int countAllOccurrences(substrString(Source, findString(Source, ToCount, 0) +Int lengthString(ToCount), lengthString(Source)), ToCount)
      +            requires findString(Source, ToCount, 0) >=Int 0
      +
      +  rule replaceFirst(Source:String, ToReplace:String, Replacement:String) => substrString(Source, 0, findString(Source, ToReplace, 0))
      +                +String Replacement +String substrString(Source, findString(Source, ToReplace, 0) +Int lengthString(ToReplace), lengthString(Source))
      +                requires findString(Source, ToReplace, 0) >=Int 0
      +  rule replaceFirst(Source:String, ToReplace:String, _:String) => Source
      +        requires findString(Source, ToReplace, 0) <Int 0
      +
      +
      +  rule replace(Source:String, ToReplace:String, Replacement:String, Count:Int) =>
      +       substrString(Source, 0, findString(Source, ToReplace, 0)) +String Replacement +String
      +       replace(substrString(Source, findString(Source, ToReplace, 0) +Int lengthString(ToReplace), lengthString(Source)), ToReplace, Replacement, Count -Int 1)
      +        requires Count >Int 0
      +  rule replace(Source:String, _, _, 0) => Source
      +  rule replaceAll(Source:String, ToReplace:String, Replacement:String) => replace(Source, ToReplace, Replacement, countAllOccurrences(Source, ToReplace))
      +
      +endmodule
      +
      +module STRING-KORE [kore, symbolic]
      +  imports private K-EQUAL
      +  imports STRING-COMMON
      +
      +  rule S1:String ==K S2:String => S1 ==String S2 [simplification]
      +
      +endmodule
      +
      +module STRING
      +  imports STRING-COMMON
      +  imports STRING-KORE
      +endmodule
      +

      String Buffers

      +

      It is a well known fact that repeated string concatenations are quadratic
      +in performance whereas use of an efficient mutable representation of arrays
      +can yield linear performance. We thus provide such a sort, the StringBuffer
      +sort. Axiomatically, it is implemented below on symbolic backends using the
      +String module. However, on concrete backends it provides an efficient
      +implementation of string concatenation. There are three operations:

      +
        +
      • .StringBuffer creates a new StringBuffer with current content equal
        +to the empty string.
      • +
      • +String takes a StringBuffer and a String and appends the String to
        +the end of the StringBuffer
      • +
      • StringBuffer2String converts a StringBuffer to a String. This operation
        +copies the string so that subsequent modifications to the StringBuffer
        +will not change the value of the String returned by this function.
      • +
      +
      module STRING-BUFFER-IN-K [symbolic]
      +  imports private BASIC-K
      +  imports STRING
      +
      +  syntax StringBuffer ::= ".StringBuffer" [function, total]
      +  syntax StringBuffer ::= StringBuffer "+String" String [function, total, avoid]
      +  syntax StringBuffer ::= String
      +  syntax String ::= StringBuffer2String ( StringBuffer ) [function, total]
      +
      +  rule {SB:String +String S:String}<:StringBuffer => (SB +String S)::String
      +  rule .StringBuffer => ""
      +  rule StringBuffer2String(S:String) => S
      +endmodule
      +
      +module STRING-BUFFER-HOOKED [concrete]
      +  imports private BASIC-K
      +  imports STRING
      +
      +  syntax StringBuffer [hook(BUFFER.StringBuffer)]
      +  syntax StringBuffer ::= ".StringBuffer" [function, total, hook(BUFFER.empty), impure]
      +  syntax StringBuffer ::= StringBuffer "+String" String [function, total, hook(BUFFER.concat), avoid]
      +  syntax String ::= StringBuffer2String ( StringBuffer ) [function, total, hook(BUFFER.toString)]
      +endmodule
      +
      +module STRING-BUFFER
      +  imports STRING-BUFFER-HOOKED
      +  imports STRING-BUFFER-IN-K
      +endmodule
      +

      Byte Arrays

      +

      Provided here is the syntax of an implementation of fixed-width arrays of Bytes
      +in K. This type is hooked to an implementation of bytes provided by the
      +backend. In concrete backends, this representation is mutable and thus multiple
      +references can occur to the same Bytes object and when one is modified, the
      +others are also modified. Care should be taken not to rely on this fact however
      +as this is not the case in symbolic backends and thus you will experience
      +divergent behavior unless the Bytes type is used in a manner that preserves
      +consistency.

      +
      module BYTES-SYNTAX
      +  imports private STRING-SYNTAX
      +
      +  syntax Bytes [hook(BYTES.Bytes)]
      +  syntax Bytes ::= r"b[\\\"](([\\x20\\x21\\x23-\\x5B\\x5D-\\x7E])|([\\\\][tnfr\\\"\\\\])|([\\\\][x][0-9a-fA-F]{2}))*[\\\"]"      [token]
      +endmodule
      +
      module BYTES-STRING-ENCODE [kore, symbolic]
      +  imports BYTES-SYNTAX
      +

      Encoding/decoding between Bytes and String

      + +

      You can encode/decode between Bytes and String using UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, and UTF-32BE

      +
          syntax String ::= decodeBytes ( encoding: String , contents: Bytes ) [function, hook(BYTES.decodeBytes)]
      +    syntax Bytes ::= encodeBytes ( encoding: String , contents: String ) [function, hook(BYTES.encodeBytes)]
      +endmodule
      +
      module BYTES-HOOKED
      +  imports STRING-SYNTAX
      +  imports BYTES-SYNTAX
      +  imports BYTES-STRING-ENCODE
      +

      Empty byte array

      + +

      The byte array of length zero is represented by .Bytes.

      +
        syntax Bytes ::= ".Bytes" [function, total, hook(BYTES.empty)]
      +

      Endianness

      + +

      When converting to/from an integer, byte arrays can be treated as either little
      +endian (ie, least significant byte first) or big endian (ie, most significant
      +byte first).

      +
        syntax Endianness ::= "LE" [klabel(littleEndianBytes), symbol]
      +                      | "BE" [klabel(bigEndianBytes), symbol]
      +

      Signedness

      + +

      When converting to/from an integer, byte arrays can be treated as either signed
      +or unsigned.

      +
        syntax Signedness ::= "Signed" [klabel(signedBytes), symbol]
      +                      | "Unsigned" [klabel(unsignedBytes), symbol]
      +

      Integer and Bytes conversion

      + +

      You can convert from a Bytes to an Int. In order to do this, the endianness
      +and signedness of the Bytes must be provided. The resulting integer is
      +created by means of interpreting the Bytes as either a twos-complement
      +representation, or an unsigned representation, of an integer, in the specified
      +byte order.

      +

      You can also convert from an Int to a Bytes. This comes in two variants.
      +In the first, the length of the resulting Bytes in bytes is explicitly
      +specified. If the length is greater than the highest set bit in the magnitude
      +of the integer, the result is padded with 0 bits if the number is positive
      +and 1 bits if the number is negative. If the length is less than the highest
      +bit set in the magnitude of the integer, the most-significant bits of the
      +integer will be truncated. The endianness of the resulting Bytes object
      +is as specified.

      +

      In the second variant, both endianness and signedness are specified, and
      +the resulting Bytes object will be the smallest number of bytes necessary
      +for the resulting Bytes object to be convertible back to the original integer
      +via Bytes2Int. In other words, if the highest bit set in the magnitude of the
      +integer is N, then the byte array will be at least N+1 bits long, rounded up
      +to the nearest byte.

      +
        syntax Int ::= Bytes2Int(Bytes, Endianness, Signedness) [function, total, hook(BYTES.bytes2int)]
      +  syntax Bytes ::= Int2Bytes(length: Int, Int, Endianness) [function, total, hook(BYTES.int2bytes)]
      +                 | Int2Bytes(Int, Endianness, Signedness) [function, total, klabel(Int2BytesNoLen)]
      +

      String and Bytes conversion

      + +

      You can convert between a Bytes and a String in O(N) time. The resulting
      +value is a copy of the original and will not be affected by subsequent
      +mutations of the input or output value.

      +
        syntax String ::= Bytes2String(Bytes) [function, total, hook(BYTES.bytes2string)]
      +  syntax Bytes ::= String2Bytes(String) [function, total, hook(BYTES.string2bytes)]
      +

      Bytes update

      + +

      You can set the value of a particular byte in a Bytes object in O(1) time.
      +The result is #False if value is not in the range [0..255] or if index
      +is not a valid index (ie, less than zero or greater than or equal to the length
      +of the Bytes term).

      +
        syntax Bytes ::= Bytes "[" index: Int "<-" value: Int "]" [function, hook(BYTES.update)]
      +

      Bytes lookup

      + +

      You can get the value of a particular byte in a Bytes object in O(1) time.
      +The result is #False if index is not a valid index (see above).

      +
        syntax Int ::= Bytes "[" Int "]" [function, hook(BYTES.get)]
      +

      Bytes substring

      + +

      You can get a new Bytes object containing a range of bytes from the input
      +Bytes in O(N) time (where N is the length of the substring). The range
      +of bytes included is [startIndex..endIndex). The resulting Bytes is
      +a copy and mutations to it do not affect mutations to the original Bytes.
      +The result is #False if startIndex or endIndex are not valid.

      +
        syntax Bytes ::= substrBytes(Bytes, startIndex: Int, endIndex: Int) [function, hook(BYTES.substr)]
      +

      Multiple bytes update

      + +

      You can modify a Bytes to return a Bytes which is equal to dest except
      +the N elements starting at index are replaced with the contents of src in
      +O(N) time. This does not create a new Bytes object and will instead modify
      +the original on concrete backends. The result is #False if index + N
      +is not a valid index.

      +
        syntax Bytes ::= replaceAtBytes(dest: Bytes, index: Int, src: Bytes) [function, hook(BYTES.replaceAt)]
      +

      Bytes padding

      + +

      You can create a new Bytes object which is at least length bytes long
      +by taking the input sequence and padding it on the right (respectively, on the
      +left) with the specified value. This does not create a new Bytes object
      +if the input is already at least length bytes long, and will instead
      +return the input unchanged. The result is #False if value is not in the
      +range [0..255], or if the length is negative.

      +
        syntax Bytes ::= padRightBytes(Bytes, length: Int, value: Int) [function, hook(BYTES.padRight)]
      +                 | padLeftBytes(Bytes, length: Int, value: Int) [function, hook(BYTES.padLeft)]
      +

      Bytes reverse

      + +

      You can reverse a Bytes object in O(N) time. This does not create a new
      +Bytes object and will instead modify the original on concrete backends.

      +
        syntax Bytes ::= reverseBytes(Bytes) [function, total, hook(BYTES.reverse)]
      +

      Bytes length

      + +

      You can get the length of a Bytes term in O(1) time.

      +
        syntax Int ::= lengthBytes(Bytes) [function, total, hook(BYTES.length), smtlib(lengthBytes)]
      +

      Bytes concatenation

      + +

      You can create a new Bytes object by concatenating two Bytes objects
      +together in O(N) time.

      +
        syntax Bytes ::= Bytes "+Bytes" Bytes [function, total, hook(BYTES.concat), right]
      +
      +endmodule
      +

      Implementation of Bytes

      + +

      The remainder of this module consists of an implementation of some of the
      +operators listed above in K.

      +
      module BYTES-CONCRETE [concrete]
      +  imports BYTES-HOOKED
      +endmodule
      +
      +module BYTES-KORE [kore]
      +  imports BYTES-HOOKED
      +  imports BYTES-SYMBOLIC-CEIL
      +endmodule
      +
      +module BYTES-SYMBOLIC-CEIL [symbolic, kore]
      +  imports BYTES-HOOKED
      +  imports private INT
      +  imports private BOOL
      +
      +  rule #Ceil(padRightBytes(_, LEN, VAL)) => {(0 <=Int LEN andBool 0 <=Int VAL andBool VAL <Int 256) #Equals true} [simplification]
      +  rule #Ceil(padLeftBytes(_, LEN, VAL))  => {(0 <=Int LEN andBool 0 <=Int VAL andBool VAL <Int 256) #Equals true} [simplification]
      +endmodule
      +
      +module BYTES
      +  imports BYTES-CONCRETE
      +  imports BYTES-KORE
      +  imports private INT
      +
      +  rule Int2Bytes(I::Int, E::Endianness, Unsigned) => Int2Bytes((log2Int(I) +Int 8) /Int 8, I, E)
      +    requires I >Int 0
      +  rule Int2Bytes(0, _::Endianness, _) => .Bytes
      +  rule Int2Bytes(I::Int, E::Endianness, Signed) => Int2Bytes((log2Int(I) +Int 9) /Int 8, I, E)
      +    requires I >Int 0
      +  rule Int2Bytes(I::Int, E::Endianness, Signed) => Int2Bytes((log2Int(~Int I) +Int 9) /Int 8, I, E)
      +    requires I <Int -1
      +  rule Int2Bytes(-1, E::Endianness, Signed) => Int2Bytes(1, -1, E)
      +endmodule
      +

      Program identifiers

      +

      Provided here is an implementation for program identifiers in K. Developers
      +of semantics for a particular language may wish to use their own implementation
      +instead of the one provided here if their syntax differs from the syntax
      +defined below. However, this is provided for convenience for developers who
      +do not care about the lexical syntax of identifiers.

      +

      Provided are the following pieces of functionality:

      +
        +
      • Id2String - Convert an Id to a String containing its name
      • +
      • String2Id - Convert a String to an Id with the specified name
      • +
      • !X:Id - You can get a fresh identifier distinct from any previous identifier
        +generated by this syntax.
      • +
      +
      module ID-SYNTAX-PROGRAM-PARSING
      +  imports BUILTIN-ID-TOKENS
      +  syntax Id ::= r"(?<![A-Za-z0-9\\_])[A-Za-z\\_][A-Za-z0-9\\_]*"     [prec(1), token]
      +              | #LowerId                                             [token]
      +              | #UpperId                                             [token]
      +endmodule
      +
      +module ID-SYNTAX
      +  syntax Id [token]
      +endmodule
      +
      +module ID-COMMON
      +  imports ID-SYNTAX
      +  imports private STRING
      +
      +  syntax String ::= Id2String ( Id )    [function, total, hook(STRING.token2string)]
      +  syntax Id ::= String2Id (String) [function, total, hook(STRING.string2token)]
      +  syntax Id ::= freshId(Int)    [freshGenerator, function, total, private]
      +
      +  rule freshId(I:Int) => String2Id("_" +String Int2String(I))
      +endmodule
      +
      +module ID
      +  imports ID-COMMON
      +endmodule
      +

      Equality and conditionals

      +

      Provided here are implementations of two important primitives in K:

      +
        +
      • ==K - the equality between two terms. Returns true if they are equal
        +and false if they are not equal.
      • +
      • #if #then #else #fi - polymorphic conditional function. If the first
        +argument evaluates to true, the second argument is returned. Otherwise,
        +the third argument is returned. Note that this does not short-circuit on
        +symbolic backends.
      • +
      +
      module K-EQUAL-SYNTAX
      +  imports private BOOL
      +  imports private BASIC-K
      +
      +  syntax Bool ::= left:
      +                  K "==K" K           [function, total, comm, smt-hook(=), hook(KEQUAL.eq), klabel(_==K_), symbol, latex({#1}\mathrel{=_K}{#2}), group(equalEqualK)]
      +                | K "=/=K" K          [function, total, comm, smt-hook(distinct), hook(KEQUAL.ne), klabel(_=/=K_), symbol, latex({#1}\mathrel{\neq_K}{#2}), group(notEqualEqualK)]
      +
      +  syntax priorities equalEqualK notEqualEqualK > boolOperation mlOp
      +
      +  syntax {Sort} Sort ::= "#if" Bool "#then" Sort "#else" Sort "#fi"   [function, total, smt-hook(ite), hook(KEQUAL.ite)]
      +
      +endmodule
      +
      +module K-EQUAL-KORE [kore, symbolic]
      +  import private BOOL
      +  import K-EQUAL-SYNTAX
      +
      +  rule K1:Bool ==K K2:Bool => K1 ==Bool K2 [simplification]
      +  rule {K1 ==K K2 #Equals true} => {K1 #Equals K2} [simplification]
      +  rule {true #Equals K1 ==K K2} => {K1 #Equals K2} [simplification]
      +  rule {K1 ==K K2 #Equals false} => #Not({K1 #Equals K2}) [simplification]
      +  rule {false #Equals K1 ==K K2} => #Not({K1 #Equals K2}) [simplification]
      +  rule {K1 =/=K K2 #Equals true} => #Not({K1 #Equals K2}) [simplification]
      +  rule {true #Equals K1 =/=K K2} => #Not({K1 #Equals K2}) [simplification]
      +  rule {K1 =/=K K2 #Equals false} => {K1 #Equals K2} [simplification]
      +  rule {false #Equals K1 =/=K K2} => {K1 #Equals K2} [simplification]
      +
      +endmodule
      +
      +module K-EQUAL
      +  import private BOOL
      +  import K-EQUAL-SYNTAX
      +  import K-EQUAL-KORE
      +
      +  rule K1:K =/=K K2:K => notBool (K1 ==K K2)
      +
      +  rule #if C:Bool #then B1::K #else _ #fi => B1 requires C
      +  rule #if C:Bool #then _ #else B2::K #fi => B2 requires notBool C
      +
      +endmodule
      +

      Meta operations

      +

      Provided below are a few miscellaneous, mostly deprecated functions in K.
      +It is not recommended to use any of them directly as they are largely
      +unsupported in modern K. There are a few exceptions:

      +
        +
      • #getenv - Returns the value of an environment variable
      • +
      • #parseKORE - Takes a String containing a K intermediate representation of
        +a term such as is returned by kast -o kore and converts it to a term.
        +This is NOT type-safe. The responsibility is on the user to ensure that the
        +string they provide is a valid representation of a term of the sort exactly
        +equal to the sort where the function appears.
      • +
      • #kompiledDirectory - Returns the path to the current compiled K definition
        +directory.
      • +
      • #unparseKORE = Takes a K term and converts it to a string.
      • +
      +
      module K-REFLECTION
      +  imports BASIC-K
      +  imports STRING
      +
      +  syntax K ::= "#configuration" [function, impure, hook(KREFLECTION.configuration)]
      +  syntax String ::= #sort(K) [function, hook(KREFLECTION.sort)]
      +  syntax KItem ::= #fresh(String)   [function, hook(KREFLECTION.fresh), impure]
      +  syntax KItem ::= getKLabel(K)  [function, hook(KREFLECTION.getKLabel)]
      +
      +  syntax K ::= #getenv(String) [function, impure, hook(KREFLECTION.getenv)]
      +
      +  syntax String ::= #kompiledDirectory() [function, hook(KREFLECTION.kompiledDir)]
      +
      +  // meaningful only for the purposes of compilation to a binary, otherwise
      +  // undefined
      +  syntax List ::= #argv() [function, hook(KREFLECTION.argv)]
      +
      +  // Takes as input a string and returns a K term
      +  syntax {Sort} Sort ::= #parseKORE(String) [function, hook(KREFLECTION.parseKORE)]
      +  syntax {Sort} String ::= #unparseKORE(Sort) [function, hook(KREFLECTION.printKORE)]
      +  syntax IOError ::= "#noParse" "(" String ")" [klabel(#noParse), symbol]
      +
      +endmodule
      +

      I/O in K

      +

      Concrete execution in K supports I/O operations. This functionality is not
      +supported during symbolic execution, because symbolic execution must exist
      +completely free of side-effects, and I/O is an irreducible type of side effect.
      +However, it is useful in many cases when defining concrete execution to be able
      +to make reference to I/O operations.

      +

      The design of these I/O operations is based on the POSIX standard, for the most
      +part. For example, the #read K function maps to the read POSIX function. We
      +do not at this time have a higher-level API for I/O, but this may be
      +implemented at some point in the future.

      +

      I/O operations generally return either their result, or an IOError term
      +corresponding to the errno returned by the underlying system call.

      +
      module K-IO
      +  imports private LIST
      +  imports private STRING
      +  imports private INT
      +

      I/O errors

      + +

      Aside from EOF, which is returned by #getc if the file is at end-of-file, all
      +of the below I/O errors correspond to possible values for errno after calling
      +a library function. If the errno returned is not one of the below errnos
      +known to K, #unknownIOError is returned along with the integer errno value.

      +
        syntax IOError ::= "#EOF" [klabel(#EOF), symbol] | #unknownIOError(errno: Int) [symbol]
      +                   | "#E2BIG" [klabel(#E2BIG), symbol]
      +                   | "#EACCES" [klabel(#EACCES), symbol]
      +                   | "#EAGAIN" [klabel(#EAGAIN), symbol]
      +                   | "#EBADF" [klabel(#EBADF), symbol]
      +                   | "#EBUSY" [klabel(#EBUSY), symbol]
      +                   | "#ECHILD" [klabel(#ECHILD), symbol]
      +                   | "#EDEADLK" [klabel(#EDEADLK), symbol]
      +                   | "#EDOM" [klabel(#EDOM), symbol]
      +                   | "#EEXIST" [klabel(#EEXIST), symbol]
      +                   | "#EFAULT" [klabel(#EFAULT), symbol]
      +                   | "#EFBIG" [klabel(#EFBIG), symbol]
      +                   | "#EINTR" [klabel(#EINTR), symbol]
      +                   | "#EINVAL" [klabel(#EINVAL), symbol]
      +                   | "#EIO" [klabel(#EIO), symbol]
      +                   | "#EISDIR" [klabel(#EISDIR), symbol]
      +                   | "#EMFILE" [klabel(#EMFILE), symbol]
      +                   | "#EMLINK" [klabel(#EMLINK), symbol]
      +                   | "#ENAMETOOLONG" [klabel(#ENAMETOOLONG), symbol]
      +                   | "#ENFILE" [klabel(#ENFILE), symbol]
      +                   | "#ENODEV" [klabel(#ENODEV), symbol]
      +                   | "#ENOENT" [klabel(#ENOENT), symbol]
      +                   | "#ENOEXEC" [klabel(#ENOEXEC), symbol]
      +                   | "#ENOLCK" [klabel(#ENOLCK), symbol]
      +                   | "#ENOMEM" [klabel(#ENOMEM), symbol]
      +                   | "#ENOSPC" [klabel(#ENOSPC), symbol]
      +                   | "#ENOSYS" [klabel(#ENOSYS), symbol]
      +                   | "#ENOTDIR" [klabel(#ENOTDIR), symbol]
      +                   | "#ENOTEMPTY" [klabel(#ENOTEMPTY), symbol]
      +                   | "#ENOTTY" [klabel(#ENOTTY), symbol]
      +                   | "#ENXIO" [klabel(#ENXIO), symbol]
      +                   | "#EPERM" [klabel(#EPERM), symbol]
      +                   | "#EPIPE" [klabel(#EPIPE), symbol]
      +                   | "#ERANGE" [klabel(#ERANGE), symbol]
      +                   | "#EROFS" [klabel(#EROFS), symbol]
      +                   | "#ESPIPE" [klabel(#ESPIPE), symbol]
      +                   | "#ESRCH" [klabel(#ESRCH), symbol]
      +                   | "#EXDEV" [klabel(#EXDEV), symbol]
      +                   | "#EWOULDBLOCK" [klabel(#EWOULDBLOCK), symbol]
      +                   | "#EINPROGRESS" [klabel(#EINPROGRESS), symbol]
      +                   | "#EALREADY" [klabel(#EALREADY), symbol]
      +                   | "#ENOTSOCK" [klabel(#ENOTSOCK), symbol]
      +                   | "#EDESTADDRREQ" [klabel(#EDESTADDRREQ), symbol]
      +                   | "#EMSGSIZE" [klabel(#EMSGSIZE), symbol]
      +                   | "#EPROTOTYPE" [klabel(#EPROTOTYPE), symbol]
      +                   | "#ENOPROTOOPT" [klabel(#ENOPROTOOPT), symbol]
      +                   | "#EPROTONOSUPPORT" [klabel(#EPROTONOSUPPORT), symbol]
      +                   | "#ESOCKTNOSUPPORT" [klabel(#ESOCKTNOSUPPORT), symbol]
      +                   | "#EOPNOTSUPP" [klabel(#EOPNOTSUPP), symbol]
      +                   | "#EPFNOSUPPORT" [klabel(#EPFNOSUPPORT), symbol]
      +                   | "#EAFNOSUPPORT" [klabel(#EAFNOSUPPORT), symbol]
      +                   | "#EADDRINUSE" [klabel(#EADDRINUSE), symbol]
      +                   | "#EADDRNOTAVAIL" [klabel(#EADDRNOTAVAIL), symbol]
      +                   | "#ENETDOWN" [klabel(#ENETDOWN), symbol]
      +                   | "#ENETUNREACH" [klabel(#ENETUNREACH), symbol]
      +                   | "#ENETRESET" [klabel(#ENETRESET), symbol]
      +                   | "#ECONNABORTED" [klabel(#ECONNABORTED), symbol]
      +                   | "#ECONNRESET" [klabel(#ECONNRESET), symbol]
      +                   | "#ENOBUFS" [klabel(#ENOBUFS), symbol]
      +                   | "#EISCONN" [klabel(#EISCONN), symbol]
      +                   | "#ENOTCONN" [klabel(#ENOTCONN), symbol]
      +                   | "#ESHUTDOWN" [klabel(#ESHUTDOWN), symbol]
      +                   | "#ETOOMANYREFS" [klabel(#ETOOMANYREFS), symbol]
      +                   | "#ETIMEDOUT" [klabel(#ETIMEDOUT), symbol]
      +                   | "#ECONNREFUSED" [klabel(#ECONNREFUSED), symbol]
      +                   | "#EHOSTDOWN" [klabel(#EHOSTDOWN), symbol]
      +                   | "#EHOSTUNREACH" [klabel(#EHOSTUNREACH), symbol]
      +                   | "#ELOOP" [klabel(#ELOOP), symbol]
      +                   | "#EOVERFLOW" [klabel(#EOVERFLOW), symbol]
      +

      I/O result sorts

      + +

      Here we see sorts defined to contain either an Int or an IOError, or
      +either a String or an IOError. These sorts are used to implement the
      +return sort of functions that may succeed, in which case they return a value,
      +or may fail, in which case their return value indicates an error and the
      +error indicated is returned via errno.

      +
        syntax IOInt ::= Int | IOError
      +  syntax IOString ::= String | IOError
      +

      Opening a file

      + +

      You can open a file in K using #open. An optional mode indicates the file
      +open mode, which can have any value allowed by the fopen function in C.
      +The returned value is the file descriptor that was opened, or an error.

      +
        syntax IOInt ::= "#open" "(" path: String ")" [function]
      +               | "#open" "(" path: String "," mode: String ")" [function, hook(IO.open), impure]
      +
      +  rule #open(S:String) => #open(S:String, "r+")
      +

      Get/set position in file

      + +

      You can get the current offset in a file using #tell. You can also seek
      +to a particular offset using #seek or #seekEnd. #seek is implemented via
      +a call to lseek with the SEEK_SET whence. #seekEnd is implemented via a
      +call to lseek with the SEEK_END whence. You can emulate the SEEK_CUR
      +whence by means of #seek(FD, #tell(FD) +Int Offset).

      +
        syntax IOInt ::= "#tell" "(" fd: Int ")" [function, hook(IO.tell), impure]
      +  syntax K ::= "#seek" "(" fd: Int "," index: Int ")" [function, hook(IO.seek), impure]
      +             | "#seekEnd" "(" fd: Int "," fromEnd: Int ")" [function, hook(IO.seekEnd), impure]
      +

      Read from file

      + +

      You can read a single character from a file using #getc. #EOF is returned
      +if you are at end-of-fie.

      +

      You can also read up to length characters in a file using #read. The
      +resulting read characters are returned, which may be fewer characters than
      +requested. A string of zero length being returned indicates end-of-file.

      +
        syntax IOInt ::= "#getc" "(" fd: Int ")"             [function, hook(IO.getc), impure]
      +  syntax IOString ::= "#read" "(" fd: Int "," length: Int ")"    [function, hook(IO.read), impure]
      +

      Write to file

      + +

      You can write a single character to a file using #putc. You can also write
      +a string to a file using #write. The returned value on success is .K.

      +
        syntax K ::= "#putc" "(" fd: Int "," value: Int ")"      [function, hook(IO.putc), impure]
      +             | "#write" "(" fd: Int "," value: String ")" [function, hook(IO.write), impure]
      +

      Closing a file

      + +

      You can close a file using #close. The returned value on success is .K.

      +
        syntax K ::= "#close" "(" fd: Int ")" [function, hook(IO.close), impure]
      +

      Locking/unlocking a file

      + +

      You can lock or unlock parts of a file using the #lock and #unlock
      +functions. The lock starts at the beginning of the file and continues for
      +endIndex bytes. Note that Unix systems do not actually prevent locked files
      +from being read and modified; you will have to lock both sides of a concurrent
      +access to guarantee exclusivity.

      +
        syntax K ::= "#lock" "(" fd: Int "," endIndex: Int ")" [function, hook(IO.lock), impure]
      +             | "#unlock" "(" fd: Int "," endIndex: Int ")" [function, hook(IO.unlock), impure]
      +

      Networking

      + +

      You can accept a connection on a socket using #accept, or shut down the
      +write end of a socket with #shutdownWrite. Note that facility is not provided
      +for opening, binding, and listening on sockets. These functions are implemented
      +in order to support creating stateful request/response servers where the
      +request loop is implemented using rewriting in K, but the connection
      +initialization is written in native code and linked into the LLVM backend.

      +
        syntax IOInt ::= "#accept" "(" fd: Int ")" [function, hook(IO.accept), impure]
      +  syntax K ::= "#shutdownWrite" "(" fd: Int ")" [function, hook(IO.shutdownWrite), impure]
      +

      Time

      + +

      You can get the current time in seconds since midnight UTC on January 1, 1970
      +using #time.

      +
        syntax Int ::= "#time" "(" ")" [function, hook(IO.time), impure]
      +

      Builtin file descriptors

      + +

      Provided here are functions that return the file descriptor for standard input,
      +standard output, and standard error.

      +
        syntax Int ::= "#stdin"   [function, total]
      +                | "#stdout" [function, total]
      +                | "#stderr" [function, total]
      +
      +  rule #stdin => 0
      +  rule #stdout => 1
      +  rule #stderr => 2
      +

      Shell access

      + +

      You can execute a command using the shell using the #system operator. Care
      +must be taken to sanitize inputs to this function or security issues may
      +result. Note that K has no facility for reasoning about logic that happens
      +outside its process, so any functionality that you wish to be able to formally
      +reason about in K should not be implemented via the #system operator.

      +
        syntax KItem ::= #system ( String ) [function, hook(IO.system), impure]
      +                 | "#systemResult" "(" Int /* exit code */ "," String /* stdout */ "," String /* stderr */ ")" [klabel(#systemResult), symbol]
      +

      Temporary files

      + +

      You can get a temporary file and open it atomically using the #mkstemp
      +operator. The resulting file will be closed and deleted when K rewriting ends.
      +For more info on the argument to #mkstemp, see man mkstemp.

      +
        syntax IOFile ::= #mkstemp(template: String) [function, hook(IO.mkstemp), impure]
      +  syntax IOFile ::= IOError
      +                  | "#tempFile" "(" path: String "," fd: Int ")" [klabel(#tempFile), symbol]
      +

      Deleting a file

      + +

      You can delete a file using its absolute or relative path using the #remove
      +operator. It returns .K on success or an IOError on failure.

      +
        syntax K ::= #remove(path: String) [function, total, hook(IO.remove), impure]
      +

      Logging

      + +

      You can log information to disk using the #logToFile operator. Semantically,
      +this operator returns .K. However, it has a side effect that is not reasoned
      +about which is that value will be written to a uniquely-identified file
      +containing name in its name. The file is only flushed to disk when rewriting
      +finishes.

      +
        syntax K ::= #logToFile(name: String, value: String) [function, total, hook(IO.log), impure, returnsUnit, symbol]
      +

      Strings can also be logged via the logging mechanisms available to the backend.
      +On the LLVM backend, this just means logging the text to standard error. On the
      +Haskell backend, a log message of type InfoUserLog is created with the
      +specified text.

      +
        syntax K ::= #log(value: String) [function, total, hook(IO.logString), impure, returnsUnit, symbol]
      +

      Terms can also be logged to standard error in surface syntax, rather than as
      +KORE using #trace. This operator has similar semantics to #logToFile (i.e.
      +it returns .K, but prints as an impure side effect). Note that calling
      +#trace is equivalent to invoking the kprint tool for the first term that is
      +logged, which requires re-parsing the underlying K definition. Subsequent calls
      +do not incur this overhead again; the definition is cached.

      +
        syntax K ::= #trace(value: KItem) [function, total, hook(IO.traceTerm), impure, returnsUnit, symbol]
      +             | #traceK(value: K)    [function, total, hook(IO.traceTerm), impure, returnsUnit, symbol]
      +

      Implementation of high-level I/O streams in K

      + +

      Below is an implementation of the stream="stdin" and stream="stdout"
      +cell attributes in K. You should not refer to these symbols or modules directly
      +in your definition. It is provided only so that the K compiler can make use of
      +it. For more information on how to use this feature, refer to IMP++ in the K
      +tutorial.

      +
        syntax Stream ::= #buffer(K)
      +                  | #istream(Int)
      +                  | #parseInput(String, String)
      +                  | #ostream(Int)
      +
      +endmodule
      +
      +// NOTE: DO NOT DIRECTLY IMPORT *-STREAM MODULES
      +// These stream modules will be automatically instantiated and implicitly imported
      +// into the main module when `stream` attributes appear in configuration cells.
      +// Only `Stream` productions and `[stream]` rules will be imported.
      +// The cell name will be replaced with the one of the main configuration.
      +
      +module STDIN-STREAM
      +  imports K-IO
      +  imports K-REFLECTION
      +  imports LIST
      +  imports INT
      +  imports BOOL
      +
      +  configuration <stdin> ListItem(#buffer($STDIN:String)) ListItem($IO:String) ListItem(#istream(#stdin)) </stdin>
      +
      +  // read one character at a time until we read whitespace
      +  rule [stdinGetc]:
      +       <stdin>
      +       ListItem(#parseInput(_:String, Delimiters:String))
      +       ListItem(#buffer(S:String => S +String chrChar({#getc(N)}:>Int)))
      +       ListItem("on")
      +       ListItem(#istream(N:Int))
      +       </stdin>
      +    requires findChar(S, Delimiters, 0) ==Int -1 // [stdin]
      +       [stream, priority(200)]
      +
      +  // when we reach whitespace, if it parses create a ListItem
      +  rule [stdinParseString]:
      +       <stdin>
      +       (ListItem(#parseInput("String", Delimiters:String)) => ListItem(S))
      +       ListItem(#buffer(S:String => ""))
      +       _:List
      +       </stdin>
      +    requires findChar(S, Delimiters, 0) =/=Int -1 // [stdin]
      +       [stream]
      +
      +  // a hack: handle the case when we read integers without the help of the IO server
      +  rule [stdinParseInt]:
      +       <stdin>
      +       (ListItem(#parseInput("Int", Delimiters:String))
      +       => ListItem(String2Int(substrString(S, 0, findChar(S, Delimiters, 0)))))
      +       ListItem(#buffer(S:String => substrString(S,findChar(S, Delimiters, 0) +Int 1, lengthString(S))))
      +       _:List
      +       </stdin>
      +    requires findChar(S, Delimiters, 0) =/=Int -1
      +       andBool lengthString(S) >Int 1 // [stdin]
      +       [stream]
      +
      +  rule [stdinTrim]:
      +       <stdin>
      +       ListItem(#parseInput(Sort:String, Delimiters:String))
      +       ListItem(#buffer(S:String => substrString(S, 1, lengthString(S))))
      +       _:List
      +       </stdin>
      +    requires findChar(S, Delimiters, 0) =/=Int -1
      +       andBool Sort =/=String "String"
      +       andBool lengthString(S) <=Int 1 // [stdin]
      +       [stream]
      +
      +  // NOTE: This unblocking rule will be instantiated and inserted carefully
      +  // when necessary according to user-defined rules, since otherwise it will
      +  // lead to a diverging (i.e., non-terminating) transition system definition.
      +  // Currently, it supports only a simple pattern matching on the top of the
      +  // input stream cell, e.g.,
      +  //   rule <k> read() => V ... </k> <in> ListItem(V:Int) => .List ...  </in>
      +  // Non-supported rules that refer to the input stream cell in a sophisticated
      +  // way will get stuck in concrete execution mode with real IO enabled (i.e.,
      +  // under `--io on` option), while they will still work in symbolic execution
      +  // mode or concrete execution mode with real IO disabled (i.e., under `--io
      +  // off`, `--search`, or `--debug` options).
      +  //
      +  // TODO: More patterns need to be supported as well. In that case, we need to
      +  // have a way to specify such patterns.
      +  rule [stdinUnblock]:
      +       <stdin>
      +         (.List => ListItem(#parseInput(?Sort:String, ?Delimiters:String)))
      +         ListItem(#buffer(_:String))
      +         ...
      +       </stdin>
      +
      +  /*
      +  syntax Stream ::= "#noIO"
      +
      +  rule ListItem(#buffer(_))
      +       (ListItem(#noIO) ListItem(#istream(_:Int)) => .List) [stdin]
      +  */
      +
      +endmodule
      +
      +module STDOUT-STREAM
      +  imports K-IO
      +  imports LIST
      +  imports STRING
      +
      +  configuration <stdout> ListItem(#ostream(#stdout)) ListItem($IO:String) ListItem(#buffer("")) </stdout>
      +//configuration <stderr> ListItem(#ostream(#stderr)) ListItem($IO:String) ListItem(#buffer("")) </stderr>
      +
      +  rule [stdoutBufferFloat]:
      +       <stdout>
      +       ListItem(#ostream(_))
      +       ListItem(_)
      +       ListItem(#buffer(Buffer:String => Buffer +String Float2String(F)))
      +       (ListItem(F:Float) => .List)
      +       _:List
      +       </stdout>
      +       // [stdout, stderr]
      +       [stream, priority(25)]
      +  rule [stdoutBufferInt]:
      +       <stdout>
      +       ListItem(#ostream(_))
      +       ListItem(_)
      +       ListItem(#buffer(Buffer:String => Buffer +String Int2String(I)))
      +       (ListItem(I:Int) => .List)
      +       _:List
      +       </stdout>
      +       // [stdout, stderr]
      +       [stream, priority(25)]
      +  rule [stdoutBufferString]:
      +       <stdout>
      +       ListItem(#ostream(_))
      +       ListItem(_)
      +       ListItem(#buffer(Buffer:String => Buffer +String S))
      +       (ListItem(S:String) => .List)
      +       _:List
      +       </stdout>
      +       // [stdout, stderr]
      +       [stream, priority(25)]
      +
      +  // Send first char from the buffer to the server
      +  rule [stdoutWrite]:
      +       <stdout>
      +       ListItem(#ostream(N:Int => {#write(N, S) ~> N:Int}:>Int))
      +       ListItem("on")
      +       ListItem(#buffer(S:String => ""))
      +       _:List
      +       </stdout>
      +    requires S =/=String "" // [stdout, stderr]
      +       [stream, priority(30)]
      +
      +  /*
      +  syntax Stream ::= "#noIO"
      +
      +  rule ListItem(#buffer(Buffer:String => Buffer +String Float2String(F)))
      +       (ListItem(F:Float) => .List)
      +       _:List [stdout, stderr]
      +  rule ListItem(#buffer(Buffer:String => Buffer +String Int2String(I)))
      +       (ListItem(I:Int) => .List)
      +       _:List [stdout, stderr]
      +  rule ListItem(#buffer(Buffer:String => Buffer +String S))
      +       (ListItem(S:String) => .List)
      +       _:List [stdout, stderr]
      +
      +  rule (ListItem(#ostream(_:Int)) ListItem(#noIO) => .List)
      +       ListItem(#buffer(_))
      +       _:List [stdout, stderr]
      +  */
      +
      +endmodule
      +

      Machine Integers

      +

      Provided here is an implementation of arbitrarily large fixed-precision binary
      +integers in K. This type is hooked to an implementation of integers provided
      +by the backend, and in particular makes use of native machine integers for
      +certain sizes of integer. For arbitrary-precision integers, see the INT
      +module above.

      +

      The syntax of machine integers in K is the same as arbitrary-precision integers
      +(i.e., an optional sign followed by a sequence of digits) except that machine
      +integers always end in a suffix pN where N is an integer indicating the
      +width in bits of the integer. The MInt sort is parametric, and this is
      +reflected in the literals. For example, the sort of 0p8 is MInt{8}.

      +
      module MINT-SYNTAX
      +  /*@\section{Description} The MInt implements machine integers of arbitrary
      +   * bit width represented in 2's complement. */
      +  syntax {Width} MInt{Width} [hook(MINT.MInt)]
      +
      +  /*@ Machine integer of bit width and value. */
      +  syntax {Width} MInt{Width} ::= r"[\\+-]?[0-9]+[pP][0-9]+" [token, prec(2), hook(MINT.literal)]
      +endmodule
      +
      +module MINT
      +  imports MINT-SYNTAX
      +  imports private INT
      +  imports private BOOL
      +

      Bitwidth of MInt

      + +

      You can get the number of bits of width in an MInt using bitwidthMInt.

      +
        syntax {Width} Int ::= bitwidthMInt(MInt{Width})   [function, total, hook(MINT.bitwidth)]
      +

      Int and MInt conversions

      + +

      You can convert from an MInt to an Int using the MInt2Signed and
      +MInt2Unsigned functions. an MInt does not have a sign; its sign is instead
      +reflected in how operators interpret its value either as a signed integer or as
      +an unsigned integer. Thus, you can interpret a MInt as a signed integer witth
      +MInt2Signed, or as an unsigned integer respectively using MInt2Unsigned.

      +

      You can also convert from an Int to an MInt using Int2MInt. Care must
      +be given to ensure that the sort context where the Int2MInt operator appears
      +has the correct bitwidth, as this will influence the width of the resulting
      +MInt.

      +
        syntax {Width} Int ::= MInt2Signed(MInt{Width})     [function, total, hook(MINT.svalue)]
      +                       | MInt2Unsigned(MInt{Width})     [function, total, hook(MINT.uvalue), smt-hook(bv2int)]
      +
      +  syntax {Width} MInt{Width} ::= Int2MInt(Int) [function, total, hook(MINT.integer), smt-hook(int2bv)]
      +

      MInt min and max values

      + +

      You can get the minimum and maximum values of a signed or unsigned MInt
      +with az specified bit width using sminMInt, smaxMInt, uminMInt, and
      +umaxMInt.

      +
        syntax Int ::= sminMInt(Int)    [function]
      +               | smaxMInt(Int)    [function]
      +               | uminMInt(Int)    [function]
      +               | umaxMInt(Int)    [function]
      +  rule sminMInt(N:Int) => 0 -Int (1 <<Int (N -Int 1))
      +  rule smaxMInt(N:Int) => (1 <<Int (N -Int 1)) -Int 1
      +  rule uminMInt(_:Int) => 0
      +  rule umaxMInt(N:Int) => (1 <<Int N) -Int 1
      +

      MInt bounds checking

      + +

      You can check whether a specified Int will be represented in an MInt
      +with a specified width without any loss of precision when interpreted as
      +a signed or unsigned integer using soverflowMInt and uoverflowMInt.

      +
        syntax Bool ::= soverflowMInt(width: Int, Int)   [function]
      +                | uoverflowMInt(width: Int, Int)   [function]
      +  rule
      +    soverflowMInt(N:Int, I:Int)
      +  =>
      +    I <Int sminMInt(N) orBool I >Int smaxMInt(N)
      +  rule
      +    uoverflowMInt(N:Int, I:Int)
      +  =>
      +    I <Int uminMInt(N) orBool I >Int umaxMInt(N)
      +

      MInt arithmetic

      + +

      You can:

      +
        +
      • Compute the bitwise complement ~MInt of an MInt.
      • +
      • Compute the unary negation --MInt of an MInt.
      • +
      • Compute the product *MInt of two MInts.
      • +
      • Compute the quotient /sMInt of two MInts interpreted as signed integers.
      • +
      • Compute the modulus %sMInt of two MInts interpreted as signed integers.
      • +
      • Compute the quotient /uMInt of two MInts interpreted as unsigned
        +integers.
      • +
      • Compute the modulus %uMInt of two MInts interpreted as unsigned integers.
      • +
      • Compute the sum +MInt of two MInts.
      • +
      • Compute the difference -MInt of two MInts.
      • +
      • Compute the left shift <<MInt of two MInts. The second MInt is always
        +interpreted as positive.
      • +
      • Compute the arithmetic right shift >>aMInt of two MInts. The second
        +MInt is always interpreted as positve.
      • +
      • Compute the logical right shift >>lMInt of two MInts. The second MInt
        +is always interpreted as positive.
      • +
      • Compute the bitwise and &MInt of two MInts.
      • +
      • Compute the bitwise xor xorMInt of two MInts.
      • +
      • Compute the bitwise inclusive or |MInt of two MInts.
      • +
      +
        syntax {Width} MInt{Width} ::= "~MInt" MInt{Width} [function, total, hook(MINT.not), smt-hook(bvnot)]
      +                               | "--MInt" MInt{Width} [function, total, hook(MINT.neg), smt-hook(bvuminus)]
      +                               > left:
      +                                 MInt{Width} "*MInt" MInt{Width} [function, total, hook(MINT.mul), smt-hook(bvmul)]
      +                               | MInt{Width} "/sMInt" MInt{Width} [function, hook(MINT.sdiv), smt-hook(bvsdiv)]
      +                               | MInt{Width} "%sMInt" MInt{Width} [function, hook(MINT.srem), smt-hook(bvsrem)]
      +                               | MInt{Width} "/uMInt" MInt{Width} [function, hook(MINT.udiv), smt-hook(bvudiv)]
      +                               | MInt{Width} "%uMInt" MInt{Width} [function, hook(MINT.urem), smt-hook(bvurem)]
      +                               > left:
      +                                 MInt{Width} "+MInt" MInt{Width} [function, total, hook(MINT.add), smt-hook(bvadd)]
      +                               | MInt{Width} "-MInt" MInt{Width} [function, total, hook(MINT.sub), smt-hook(bvsub)]
      +                               > left:
      +                                 MInt{Width} "<<MInt" MInt{Width} [function, hook(MINT.shl), smt-hook(bvshl)]
      +                               | MInt{Width} ">>aMInt" MInt{Width} [function, hook(MINT.ashr), smt-hook(bvashr)]
      +                               | MInt{Width} ">>lMInt" MInt{Width} [function, hook(MINT.lshr), smt-hook(bvlshr)]
      +                               > left:
      +                                 MInt{Width} "&MInt" MInt{Width} [function, total, hook(MINT.and), smt-hook(bvand)]
      +                               > left:
      +                                 MInt{Width} "xorMInt" MInt{Width} [function, total, hook(MINT.xor), smt-hook(bvxor)]
      +                               > left:
      +                                 MInt{Width} "|MInt" MInt{Width} [function, total, hook(MINT.or), smt-hook(bvor)]
      +

      MInt comparison

      + +

      You can compute whether one MInt is less than, less than or equal to, greater
      +than, or greater than or equal to another MInt when interpreted as signed
      +or unsigned integers. You can also compute whether one MInt is equal to or
      +unequal to another MInt.

      +
        syntax {Width} Bool ::= MInt{Width} "<sMInt" MInt{Width} [function, total, hook(MINT.slt), smt-hook(bvslt)]
      +                        | MInt{Width} "<uMInt" MInt{Width} [function, total, hook(MINT.ult), smt-hook(bvult)]
      +                        | MInt{Width} "<=sMInt" MInt{Width} [function, total, hook(MINT.sle), smt-hook(bvsle)]
      +                        | MInt{Width} "<=uMInt" MInt{Width} [function, total, hook(MINT.ule), smt-hook(bvule)]
      +                        | MInt{Width} ">sMInt" MInt{Width} [function, total, hook(MINT.sgt), smt-hook(bvsgt)]
      +                        | MInt{Width} ">uMInt" MInt{Width} [function, total, hook(MINT.ugt), smt-hook(bvugt)]
      +                        | MInt{Width} ">=sMInt" MInt{Width} [function, total, hook(MINT.sge), smt-hook(bvsge)]
      +                        | MInt{Width} ">=uMInt" MInt{Width} [function, total, hook(MINT.uge), smt-hook(bvuge)]
      +                        | MInt{Width} "==MInt" MInt{Width} [function, total, hook(MINT.eq), smt-hook(=)]
      +                        | MInt{Width} "=/=MInt" MInt{Width} [function, total, hook(MINT.ne), smt-hook(distinct)]
      +

      MInt min/max

      + +

      You can compute the signed minimum sMinMInt, the signed maximum sMaxMInt,
      +the unsigned minimum uMinMInt, and the unsigned maximum uMaxMInt of two
      +MInts.

      +
        syntax {Width} MInt{Width} ::= sMaxMInt(MInt{Width}, MInt{Width}) [function, total, hook(MINT.smax), smt-hook((ite (bvslt #1 #2) #2 #1))]
      +                               | sMinMInt(MInt{Width}, MInt{Width}) [function, total, hook(MINT.smin), smt-hook((ite (bvslt #1 #2) #1 #2))]
      +                               | uMaxMInt(MInt{Width}, MInt{Width}) [function, total, hook(MINT.umax), smt-hook((ite (bvult #1 #2) #2 #1))]
      +                               | uMinMInt(MInt{Width}, MInt{Width}) [function, total, hook(MINT.umin), smt-hook((ite (bvult #1 #2) #1 #2))]
      +

      MInt to MInt conversion

      + +

      You can convert an MInt of one width to another width with roundMInt.
      +The resulting MInt will be truncated starting from the most significant bit
      +if the resulting width is smaller than the input. The resulting MInt will be
      +zero-extended with the same low-order bits if the resulting width is larger
      +than the input.

      +
        syntax {Width1, Width2} MInt{Width1} ::= roundMInt(MInt{Width2}) [function, total, hook(MINT.round)]
      +
      endmodule
      +

      Strategies

      +

      K supports a built-in strategy language that allows you to control how rules
      +apply. In order to enable it, simply import the STRATEGY module in your
      +definition. This includes the following basic strategy constructs:

      +
        +
      • ^ Category:#RuleTag - This is a strategy that indicates that you should
        +apply a rule with the specified category exactly once. By default, all rules
        +get the regular tag. This can be changed on individual rules with the tag
        +attribute.
      • +
      • ~ Category:#RuleTag - This is the state the strategy cell will be in
        +after a rule has applied. In other words, all rules that do not mention the
        +strategy cell are automatically instrumented so that they rewrite the current
        +top of the <s> cell from ^ to ~
      • +
      • <s> - This is the strategy cell and contains the current strategy.
      • +
      • #STUCK() - By default, a rule is automatically inserted into the definition
        +which adds #STUCK() to the top of the <s> cell if no other rules apply
        +and if it is not already at the top of the <s> cell.
      • +
      +
      module STRATEGY
      +    imports ML-SYNTAX
      +    imports KVARIABLE-SYNTAX
      +    imports private K-EQUAL
      +
      +    syntax #RuleTag ::= #KVariable
      +
      +    syntax Strategy ::= #STUCK()    [symbol]
      +                      | "^" #RuleTag [symbol, klabel(#applyRule)]
      +                      | "~" #RuleTag [symbol, klabel(#appliedRule)]
      +
      +    configuration <s> $STRATEGY:K </s>
      +endmodule
      +
      +module RULE-TAG-SYNTAX
      +    imports BUILTIN-ID-TOKENS
      +
      +    syntax #RuleTag ::= #LowerId [token]
      +endmodule
      +

      This is not a complete strategy language. However, it provides several basics.
      +The user can extend this strategy language into a complete strategy language
      +in one of three ways. First, they can import the DEFAULT-STRATEGY module,
      +which provides a very basic strategy that is essentially equivalent to
      +execution without a strategy. This can be useful if you wish to wholly
      +manipulate the strategy cell yourself within other rules.

      +
      module DEFAULT-STRATEGY-CONCRETE [concrete]
      +    imports STRATEGY
      +    imports RULE-TAG-SYNTAX
      +    rule ~ regular => ^ regular [anywhere]
      +endmodule
      +
      +module DEFAULT-STRATEGY-SYMBOLIC [symbolic]
      +    imports STRATEGY
      +    imports RULE-TAG-SYNTAX
      +    rule <s> ~ regular => ^ regular ... </s>
      +endmodule
      +
      +module DEFAULT-STRATEGY
      +    imports STRATEGY
      +    imports DEFAULT-STRATEGY-CONCRETE
      +    imports DEFAULT-STRATEGY-SYMBOLIC
      +
      +    rule initSCell(_) => <s> ^ regular </s> [priority(25)]
      +endmodule
      +

      The second way you can extend the strategy language is with the
      +STRATEGY-ABSTRACT module. This provides a slightly more advanced set of
      +strategies which you can use to compose the basic strategies in the STRATEGY
      +module into more complex strategies. Note however that the functionality
      +provided is still relatively basic.

      +
      module STRATEGY-ABSTRACT
      +    imports STRATEGY
      +
      +    syntax #RuleTag ::= "(" #RuleTag ")" [bracket]
      + // ----------------------------------------------
      +
      +    syntax Strategy ::= ".Strategy"
      +                      | "(" Strategy ")" [bracket]
      + // ----------------------------------------------
      +    rule <s> .Strategy => . ... </s>
      +
      +    syntax KItem ::= #catchSTUCK ( Strategy )
      + // -----------------------------------------
      +    rule <s> #catchSTUCK(_) => . ... </s>
      +    rule <s> #STUCK() ~> (_S:Strategy => .) ... </s>
      +    rule <s> #STUCK() ~> #catchSTUCK(S) => S ... </s>
      +
      +    syntax Strategy ::= Strategy ";" Strategy [left]
      + // ------------------------------------------------
      +    rule <s> S:Strategy ; S':Strategy => S ~> S' ... </s>
      +
      +    syntax #RuleTag ::= #RuleTag "|" #RuleTag [left, klabel(#alternateRule)]
      + // ------------------------------------------------------------------------
      +    rule <s> ^ RT:#RuleTag | RT':#RuleTag => ^ RT ~> #catchSTUCK(^ RT') ... </s>
      +
      +    syntax #RuleTag ::= #RuleTag "*" [klabel(#repeatRule)]
      + // ------------------------------------------------------
      +    rule <s> ^ RT:#RuleTag * => ^ RT ~> ^ RT * ~> #catchSTUCK(.Strategy) ... </s>
      +endmodule
      +

      The third mechanism for extending the strategy language is to define your own
      +strategy language. No special facility is required in K in order to compose
      +strategies together, so you are free to write whatever rules that manipulate
      +the strategy cell you want, and thus whatever more complex strategies you can
      +compose from the base builtin strategies.

      +

      K Language Features

      +

      Defined below is a series of modules used to parse inner syntax in K (ie, the
      +contents of rules, configuration declarations, and contexts).

      +

      Much of this file exists in tight correspondence with the K implementation, and
      +K will not work correctly if it is altered without corresponding changes to the
      +source code of the K tools.

      +

      Users should only import a few modules from this file. In particular, this
      +includes SORT-K, BASIC-K, ML-SYNTAX, DEFAULT-LAYOUT,
      +DEFAULT-CONFIGURATION, and K-AMBIGUITIES. The remaining modules should not
      +be imported by the user; they are used implicitly by the implementation of K.

      +

      Basic K Sorts

      +

      The SORT-K module declares the K sort, and nothing else.

      +
      module SORT-K
      +  syntax K [hook(K.K)]
      +endmodule
      +

      The BASIC-K module declares the K, KItem, and KConfigVar sorts, and
      +imports the syntax of matching logic.

      +
      module BASIC-K
      +  imports ML-SYNTAX
      +  imports SORT-BOOL
      +  syntax KItem [hook(K.KItem)]
      +  syntax K     ::= KItem
      +  syntax KConfigVar [token]
      +  syntax KItem ::= KConfigVar
      +endmodule
      +

      KAST Abstract Syntax

      +

      Below is defined the abstract syntax of concrete terms in K, the KAST syntax.
      +Users should rarely if ever have to refer to this syntax; in general, it
      +suffices to use concrete syntax in rules, configuration declarations, contexts,
      +etc.

      +

      This syntax is used directly by the K implementation, and exists here as a
      +reference for the syntax of KAST, but it should not be imported directly by
      +the user.

      +
      module KSTRING
      +  syntax KString ::= r"[\\\"](([^\\\"\\n\\r\\\\])|([\\\\][nrtf\\\"\\\\])|([\\\\][x][0-9a-fA-F]{2})|([\\\\][u][0-9a-fA-F]{4})|([\\\\][U][0-9a-fA-F]{8}))*[\\\"]"      [token]
      +  // optionally qualified strings, like in Scala "abc", i"abc", r"a*bc", etc.
      +endmodule
      +
      +module BUILTIN-ID-TOKENS
      +  syntax #LowerId ::= r"[a-z][a-zA-Z0-9]*"                    [prec(2), token]
      +  syntax #UpperId ::= r"[A-Z][a-zA-Z0-9]*"                    [prec(2), token]
      +endmodule
      +
      +module SORT-KBOTT
      +  imports SORT-K
      +  syntax KBott
      +endmodule
      +
      +module KAST
      +  imports BASIC-K
      +  imports SORT-KBOTT
      +  imports KSTRING
      +  imports BUILTIN-ID-TOKENS
      +
      +  syntax KBott ::= "#token" "(" KString "," KString ")"  [klabel(#KToken), symbol]
      +                 | "#klabel" "(" KLabel ")"              [klabel(#WrappedKLabel), symbol]
      +                 | KLabel "(" KList ")"                  [klabel(#KApply), symbol]
      +  syntax KItem ::= KBott
      +
      +  syntax KLabel ::= r"`(\\\\`|\\\\\\\\|[^`\\\\\\n\\r])+`" [token]
      +                  | #LowerId                                   [token]
      +                  | r"(?<![a-zA-Z0-9])[#a-z][a-zA-Z0-9]*"               [token, prec(1)]
      +                       // something that doesn't collide with meta-variables
      +
      +  syntax KList ::= K
      +                 | ".KList"          [klabel(#EmptyKList), symbol]
      +                 | ".::KList"        [klabel(#EmptyKList), symbol]
      +                 | KList "," KList   [klabel(#KList), left, assoc, unit(#EmptyKList), symbol, prefer]
      +endmodule
      +
      +
      +// To be used when parsing/pretty-printing ground configurations
      +module KSEQ
      +  imports KAST
      +  imports K-TOP-SORT
      +  syntax K ::= ".K"      [klabel(#EmptyK), symbol, unparseAvoid]
      +             | "."       [klabel(#EmptyK), symbol]
      +             | ".::K"    [klabel(#EmptyK), symbol, unparseAvoid]
      +  syntax K ::= K "~>" K  [klabel(#KSequence), left, assoc, unit(#EmptyK), symbol]
      +  syntax left #KSequence
      +  syntax {Sort} Sort     ::= "(" Sort ")"    [bracket, group(defaultBracket), applyPriority(1)]
      +endmodule
      +

      Syntax of Matching Logic

      +

      K provides direct access to the symbols of Matching Logic, while giving them
      +their own concrete syntax distinct from the syntax of the KORE intermediate
      +representation. These symbols are primarily used during symbolic execution.
      +The LLVM Backend has relatively little understanding of Matching Logic directly
      +and use of these symbols directly in rules is likely to cause it to crash.
      +However, these symbols are necessary when providing lemmas and other types of
      +logical assistance to proofs and symbolic execution in the Haskell Backend.

      +

      The correspondance between K symbols and KORE symbols is as follows:

      +
        +
      • #Top - \top
      • +
      • #Bottom - \bottom
      • +
      • #Not - \not
      • +
      • #Ceil - \ceil
      • +
      • #Floor - \floor
      • +
      • #Equals - \equals
      • +
      • #And - \and
      • +
      • #Or - \or
      • +
      • #Implies - \implies
      • +
      • #Exists - \exists
      • +
      • #Forall - \forall
      • +
      • #AG - allPathGlobally
      • +
      • #wEF - weakExistsFinally
      • +
      • #wAF - weakAlwaysFinally
      • +
      +
      module ML-SYNTAX [not-lr1]
      +  imports SORT-K
      +
      +  syntax {Sort} Sort ::= "#Top" [klabel(#Top), symbol, group(mlUnary)]
      +                       | "#Bottom" [klabel(#Bottom), symbol, group(mlUnary)]
      +                       | "#True" [klabel(#Top), symbol, group(mlUnary), unparseAvoid]
      +                       | "#False" [klabel(#Bottom), symbol, group(mlUnary), unparseAvoid]
      +                       | "#Not" "(" Sort ")" [klabel(#Not), symbol, mlOp, group(mlUnary)]
      +
      +  syntax {Sort1, Sort2} Sort2 ::= "#Ceil" "(" Sort1 ")" [klabel(#Ceil), symbol, mlOp, group(mlUnary)]
      +                                | "#Floor" "(" Sort1 ")" [klabel(#Floor), symbol, mlOp, group(mlUnary)]
      +                                | "{" Sort1 "#Equals" Sort1 "}" [klabel(#Equals), symbol, mlOp, group(mlEquals), comm, format(%1%i%n%2%d%n%3%i%n%4%d%n%5)]
      +
      +  syntax priorities mlUnary > mlEquals > mlAnd
      +
      +  syntax {Sort} Sort ::= Sort "#And" Sort [klabel(#And), symbol, assoc, left, comm, unit(#Top), mlOp, group(mlAnd), format(%i%1%d%n%2%n%i%3%d)]
      +                       > Sort "#Or" Sort [klabel(#Or), symbol, assoc, left, comm, unit(#Bottom), mlOp, format(%i%1%d%n%2%n%i%3%d)]
      +                       > Sort "#Implies" Sort [klabel(#Implies), symbol, mlOp, group(mlImplies), format(%i%1%d%n%2%n%i%3%d)]
      +
      +  syntax priorities mlImplies > mlQuantifier
      +
      +  syntax {Sort1, Sort2} Sort2 ::= "#Exists" Sort1 "." Sort2 [klabel(#Exists), symbol, mlOp, mlBinder, group(mlQuantifier)]
      +                                | "#Forall" Sort1 "." Sort2 [klabel(#Forall), symbol, mlOp, mlBinder, group(mlQuantifier)]
      +
      +  syntax {Sort} Sort ::= "#AG" "(" Sort ")" [klabel(#AG), symbol, mlOp]
      +                       | "#wEF" "(" Sort ")" [klabel(weakExistsFinally), symbol, mlOp]
      +                       | "#wAF" "(" Sort ")" [klabel(weakAlwaysFinally), symbol, mlOp]
      +endmodule
      +

      Variables in K

      +

      Provided below is the syntax of variables in K. There are four types of
      +variables in K:

      +
        +
      1. Regular variables. These are denoted by variables that begin with an
        +underscore or a capital letter. These variables match exactly one value
        +and can be used to refer to it on the right-hand-side.
      2. +
      3. Fresh constants. These are denoted by variables that begin with an !. This
        +is a convenience syntax which can be used on the right-hand-side only, and
        +refer to a unique value of the specified sort which is distinct from any
        +other value that has been generated or will be generated by the !X syntax.
        +Note that this may not be distinct from values produced via other means.
      4. +
      5. Existential variables. This refers to variables that are existentially
        +quantified and begin with a ?. They are not required to appear on the
        +left-hand-side prior to appearing on the right-hand-side, and generally
        +refer to symbolic quantities that are introduced during rewriting. Refer to
        +K's documentation for more details.
      6. +
      7. Set variables. These are denoted by variables that begin with a @.
        +These variables refer to a set of values and are generally used when writing
        +simplification rules in the Haskell Backend. For more information, refer to
        +K's documentation.
      8. +
      +

      There is also a fifth type of "variable", although it is not technically a
      +variable. This refers to configuration variables, which are used to insert
      +values into the initial configuration that come from outside the semantics.
      +The most common of these is the $PGM variable, which conventionally contains
      +the program being executed and is placed in the <k> cell in the configuration
      +declaration. These "variables" begin with a $ and their values are populated
      +by the frontend prior to symbolic or concrete execution of a program.

      +
      module KVARIABLE-SYNTAX
      +  syntax #KVariable
      +endmodule
      +
      +// To be used when parsing/pretty-printing symbolic configurations
      +module KSEQ-SYMBOLIC
      +  imports KSEQ
      +  imports ML-SYNTAX
      +  imports KVARIABLE-SYNTAX
      +
      +  syntax #KVariable ::= r"(?<![A-Za-z0-9_\\$!\\?@])(\\!|\\?|@)?([A-Z][A-Za-z0-9'_]*|_|_[A-Z][A-Za-z0-9'_]*)"   [token, prec(1)]
      +                      | #UpperId                                                          [token]
      +  syntax KConfigVar ::= r"(?<![A-Za-z0-9_\\$!\\?@])(\\$)([A-Z][A-Za-z0-9'_]*)"            [token]
      +  syntax KBott      ::= #KVariable
      +  syntax KBott      ::= KConfigVar
      +  syntax KLabel     ::= #KVariable
      +endmodule
      +

      Syntax of Cells

      +

      While the backend treats cells as regular productions like any other, the
      +frontend provides a significant amount of convenience notation for dealing with
      +groups of cells, in order to make writing modular definitions easier. As a
      +result, we need a syntax for groups of cells and for referring to cells within
      +rules, configuration declarations, and functions.

      +

      For historical reasons, the Bag sort is used to refer to groups of cells.
      +This may change in a future release. Users can combine cells in any order
      +by concatenating them together, and can refer to the absence of any cells with
      +the .Bag symbol. You can also refer to cells within a function by placing
      +the cell context symbol, [[ K ]] at the top of a rule, placing a function
      +symbol inside, and referring to cells afterwards. This implicitly inserts
      +a reference to the configuration at the time prior to the currently-applied
      +rule being applied which can be matched on within the function. Functions with
      +such context cannot be referred to in the initial configuration, because the
      +prior configuration does not yet exist.

      +
      module KCELLS
      +  imports KAST
      +
      +  syntax Cell
      +  syntax Bag ::= Bag Bag  [left, assoc, klabel(#cells), symbol, unit(#cells)]
      +               | ".Bag"   [klabel(#cells), symbol]
      +               | ".::Bag" [klabel(#cells), symbol]
      +               | Cell
      +  syntax Bag ::= "(" Bag ")" [bracket]
      +  syntax KItem ::= Bag
      +  syntax #RuleBody ::= "[" "[" K "]" "]" Bag    [klabel(#withConfig), symbol, avoid]
      +  syntax non-assoc #withConfig
      +  syntax Bag ::= KBott
      +endmodule
      +

      Users can also refer to cells in rules. When doing so, an optional ... can
      +be placed immediately after the start of the cell or immediately before the
      +end. In a cell whose contents are commutative, these are equivalent to one
      +another and are also equivalent to placing ... in both places. This means
      +that what is placed in the cell will be combined with the cell contents'
      +concatenation operator with an unnamed variable. In other words, you match on
      +some number of elements in the collection and do not care about the rest of
      +the collection.

      +

      In a cell whose contents are not commutative, the ... operators correspond
      +to a variable on the respective side of the contents of the cell that the
      +... appears. For example, <foo>... L </foo>, if L is a list, means
      +some number of elements followed by L. Note that not all combinations are
      +supported. Cells whose contents are sort K can only have ... appear at the
      +tail of the cell, and cells whose contents are sort List can only have ...
      +appear on at most one side in a single rule.

      +
      module RULE-CELLS
      +  imports KCELLS
      +  imports RULE-LISTS
      +  // if this module is imported, the parser automatically
      +  // generates, for all productions that have the attribute 'cell' or 'maincell',
      +  // a production like below:
      +  //syntax Cell ::= "<top>" #OptionalDots K #OptionalDots "</top>" [klabel(<top>)]
      +
      +  syntax #OptionalDots ::= "..." [klabel(#dots), symbol]
      +                         | ""    [klabel(#noDots), symbol]
      +
      +  syntax Int
      +  // this production will be added by the compiler to help handle bang variables,
      +  // however, it is valuable to put it here because without this production, it
      +  // will not exist at the point in time when rules and claims are parsed, and
      +  // as a result it makes it very difficult to write proof claims over fragments
      +  // of code that exercise rules containing bang variables. We put it here because
      +  // this production will "vanish" after parsing finishes and not be picked up
      +  // by the compiler, which is the behavior we want in this case since an actual
      +  // production will be generated by the compiler later on.
      +  syntax GeneratedCounterCell ::= "<generatedCounter>" Int "</generatedCounter>" [cell, klabel(<generatedCounter>), symbol, internal]
      +endmodule
      +

      Users can also declare cells in a configuration declaration. This generates a
      +specific set of productions that is used internally to implement the cell. The
      +most important of these is the cell itself, and attributes on this production
      +can be specified in an xml-attribute-like syntax.

      +

      You can also use an xml-short-tag-like syntax to compose configuration cells
      +together which were defined in different modules. However, it is a requirement
      +that any K definition have at most one fully-composed configuration; thus, all
      +other configuration declarations must appear composed within another
      +configuration declaration.

      +
      module CONFIG-CELLS
      +  imports KCELLS
      +  imports RULE-LISTS
      +  syntax #CellName ::= r"[a-zA-Z][a-zA-Z0-9\\-]*"  [token, prec(1)]
      +                     | #LowerId            [token]
      +                     | #UpperId            [token]
      +
      +  syntax Cell ::= "<" #CellName #CellProperties ">" K "</" #CellName ">" [klabel(#configCell), symbol]
      +  syntax Cell ::= "<" #CellName "/>" [klabel(#externalCell), symbol]
      +
      +  syntax #CellProperties ::= #CellProperty #CellProperties [klabel(#cellPropertyList), symbol]
      +                           | ""                            [klabel(#cellPropertyListTerminator), symbol]
      +  syntax #CellProperty ::= #CellName "=" KString           [klabel(#cellProperty), symbol]
      +endmodule
      +

      Syntax of Rules

      +

      Rules can have an optional requires clause or an ensures clause. For backwards-
      +compatibility, you can refer to the requires clause with both the requires
      +and when keywords; The latter, however, is deprecated and may be removed in
      +a future release.

      +

      The requires clause specifies the preconditions that must be true in order
      +for the rule to apply. The ensures clause specifies the information which
      +becomes true after the rule has applied. It is a requirement that information
      +present in the ensures clause refer to existential variables only.

      +

      When doing concrete execution, you can think of the requires clause as a
      +side-condition. In other words, even if the rule matches, it will not apply
      +unless the requires clause, which must be of sort Bool, evaluates to
      +true.

      +
      module REQUIRES-ENSURES
      +  imports BASIC-K
      +
      +  syntax #RuleBody ::= K
      +
      +  syntax #RuleContent ::= #RuleBody                                 [klabel("#ruleNoConditions"), symbol]
      +                        | #RuleBody "requires" Bool                 [klabel("#ruleRequires"), symbol]
      +                        | #RuleBody "when" Bool                     [klabel("#ruleRequires"), symbol]
      +                        | #RuleBody "ensures"  Bool                 [klabel("#ruleEnsures"), symbol]
      +                        | #RuleBody "requires" Bool "ensures" Bool  [klabel("#ruleRequiresEnsures"), symbol]
      +                        | #RuleBody "when" Bool "ensures" Bool      [klabel("#ruleRequiresEnsures"), symbol]
      +endmodule
      +

      Miscellaneous modules

      +

      The below modules are used in various ways as indicators to the implementation
      +that certain automatically generated syntax should be created by the parser.
      +These modules should not be imported directly by the user.

      +
      module K-TOP-SORT
      +  imports SORT-KBOTT
      +  syntax KItem ::= KBott
      +  syntax {Sort} KItem ::= Sort
      +endmodule
      +
      +module K-BOTTOM-SORT
      +  imports SORT-KBOTT
      +  syntax KItem ::= KBott
      +  syntax {Sort} Sort ::= KBott
      +endmodule
      +
      +module K-SORT-LATTICE
      +  imports K-TOP-SORT
      +  imports K-BOTTOM-SORT
      +endmodule
      +
      +module AUTO-CASTS
      +  // if this module is imported, the parser automatically
      +  // generates, for all sorts, productions of the form:
      +  // Sort  ::= Sort ":Sort"  // semantic cast - force the inner term to be `Sort` or a subsort
      +  // Sort  ::= Sort "::Sort" // strict cast - force the inner term to be exactly `Sort`. Useful for disambiguation
      +  // Sort ::= "{" Sort "}" "<:Sort" // synonym for strict cast
      +  // Sort  ::= "{" K "}"    ":>Sort" // projection cast. Allows any term to be placed in a context that expects `Sort`
      +  // this is part of the mechanism that allows concrete user syntax in K
      +endmodule
      +
      +module AUTO-FOLLOW
      +  // if this module is imported, the parser automatically
      +  // generates a follow restriction for every terminal which is a prefix
      +  // of another terminal. This is useful to prevent ambiguities such as:
      +  // syntax K ::= "a"
      +  // syntax K ::= "b"
      +  // syntax K ::= "ab"
      +  // syntax K ::= K K
      +  // #parse("ab", "K")
      +  // In the above example, the terminal "a" is not allowed to be followed by a "b"
      +  // because it would turn the terminal into the terminal "ab".
      +endmodule
      +
      +module PROGRAM-LISTS
      +  imports SORT-K
      +  // if this module is imported, the parser automatically
      +  // replaces the default productions for lists:
      +  // Es ::= E "," Es [userList("*"), klabel('_,_)]
      +  //      | ".Es"    [userList("*"), klabel('.Es)]
      +  // into a series of productions more suitable for programs:
      +  // Es#Terminator ::= ""      [klabel('.Es)]
      +  // Ne#Es ::= E "," Ne#Es     [klabel('_,_)]
      +  //         | E Es#Terminator [klabel('_,_)]
      +  // Es ::= Ne#Es
      +  //      | Es#Terminator      // if the list is *
      +endmodule
      +
      +module RULE-LISTS
      +  // if this module is imported, the parser automatically
      +  // adds the subsort production to the parsing module only:
      +  // Es ::= E        [userList("*")]
      +
      +endmodule
      +
      +module RECORD-PRODUCTIONS
      +  // if this module is imported, prefix productions of the form
      +  // syntax Sort ::= name(Args)
      +  // will be able to be parsed with don't-care variables according
      +  // to their nonterminal's names
      +endmodule
      +
      +module SORT-PREDICATES
      +  // if this module is imported, the Bool sort will be annotated with
      +  // syntax Bool ::= isSort(K) [function]
      +  // and all sorts will be annotated with
      +  // syntax Sort ::= project:Sort(K) [function]
      +endmodule
      +

      Additional Syntax for K Terms in Rules

      +

      Certain additional features are available when parsing the contents of rules
      +and contexts. For more information on each of these, refer to K's
      +documentation.

      +
      module KREWRITE
      +  syntax {Sort} Sort ::= Sort "=>" Sort [klabel(#KRewrite), symbol]
      +  syntax non-assoc #KRewrite
      +  syntax priority #KRewrite > #withConfig
      +endmodule
      +
      +// To be used to parse semantic rules
      +module K
      +  imports KSEQ-SYMBOLIC
      +  imports REQUIRES-ENSURES
      +  imports RECORD-PRODUCTIONS
      +  imports SORT-PREDICATES
      +  imports K-SORT-LATTICE
      +  imports AUTO-CASTS
      +  imports AUTO-FOLLOW
      +  imports KREWRITE
      +
      +  syntax {Sort} Sort ::= Sort "#as" Sort [klabel(#KAs), symbol]
      +  // functions that preserve sorts and can therefore have inner rewrites
      +  syntax {Sort} Sort ::= "#fun" "(" Sort ")" "(" Sort ")" [klabel(#fun2), symbol, prefer]
      +  // functions that do not preserve sort and therefore cannot have inner rewrites
      +  syntax {Sort1, Sort2} Sort1 ::= "#fun" "(" Sort2 "=>" Sort1 ")" "(" Sort2 ")" [klabel(#fun3), symbol]
      +
      +  syntax {Sort1, Sort2} Sort1 ::= "#let" Sort2 "=" Sort2 "#in" Sort1 [klabel(#let), symbol]
      +
      +  /*@ Set membership over terms. In addition to equality over
      +      concrete patterns, K also supports computing equality
      +      between a concrete pattern and a symbolic pattern.
      +      This is compiled efficiently down to pattern matching,
      +      and can be used by putting a term with unbound variables
      +      in the left child of :=K or =/=K. Note that this does not
      +      bind variables used on the lhs however (although this may
      +      change in the future).*/
      +
      +  syntax Bool ::= left:
      +                  K ":=K" K           [function, total, klabel(_:=K_), symbol, group(equalEqualK)]
      +                | K ":/=K" K          [function, total, klabel(_:/=K_), symbol, group(notEqualEqualK)]
      +endmodule
      +
      +// To be used to parse terms in full K
      +module K-TERM
      +  imports KSEQ-SYMBOLIC
      +  imports RECORD-PRODUCTIONS
      +  imports SORT-PREDICATES
      +  imports K-SORT-LATTICE
      +  imports AUTO-CASTS
      +  imports AUTO-FOLLOW
      +  imports KREWRITE
      +endmodule
      +

      Layout Information

      +

      When constructing a scanner for use during parsing, often you wish to ignore
      +certain types of text, such as whitespace and comments. However, the specific
      +syntax which each language must ignore is a little different from language
      +to language, and thus you wish to specify it manually. You can do this by
      +defining productions of the #Layout sort. For more information, refer to
      +K's documentation. However, this module will be implicitly imported if no
      +productions are declared of sort #Layout. This module will also be used
      +for the purposes of parsing K rules. If you wish to declare a language with
      +no layout productions, simply create a sort declaration for the #Layout sort
      +in your code (e.g. syntax #Layout).

      +
      module DEFAULT-LAYOUT
      +    syntax #Layout ::= r"(\\/\\*([^\\*]|(\\*+([^\\*\\/])))*\\*+\\/)" // C-style multi-line comments
      +                     | r"(\\/\\/[^\\n\\r]*)"                         // C-style single-line comments
      +                     | r"([\\ \\n\\r\\t])"                           // Whitespace
      +endmodule
      +

      Default Configuration

      +

      If the user has no configuration declaration in their seamantics, the below
      +configuration declaration will be implicitly imported.

      +
      module DEFAULT-CONFIGURATION
      +  imports BASIC-K
      +
      +  configuration <k> $PGM:K </k>
      +endmodule
      +

      Parsing Ambiguous Languages

      +

      On occasion, it may be desirable to parse a language with an ambiguous grammar
      +when parsing a program, and perform additional semantic analysis at a later
      +time in order to resolve the ambiguities. A good example of this is as a
      +substitute for the lexer hack in parsers of the C programming language.

      +

      The following module contains a declaration for ambiguities in K. Usually,
      +an ambiguous parse is an error. However, when you use the --gen-glr-parser
      +flag to kast, or the --gen-glr-bison-parser flag to kompile, ambiguities
      +instead become instances of the below parametric production, which you can use
      +regular K rules to disambiguate as necessary.

      +
      module K-AMBIGUITIES
      +
      +  syntax {Sort} Sort ::= amb(Sort, Sort) [symbol]
      +
      +endmodule
      +

      Annotating Parses with Locations

      +

      Another feature of K's Bison parser is the ability to annotate terms parsed
      +with location information about the file and line where they occurred. For
      +more information about how to use this, refer to K's documentation. However,
      +the below module exists to provide a user syntax for the annotations that
      +are generated by the parser.

      +
      module K-LOCATIONS
      +  imports STRING-SYNTAX
      +  imports INT-SYNTAX
      +
      +  // filename, startLine, startCol, endLine, endCol
      +  syntax {Sort} Sort ::= #location(Sort, String, Int, Int, Int, Int) [symbol, format(%3)]
      +
      +endmodule
      +

      K Prelude

      +

      The following files, integral to defining semantics in K, are automatically
      +required by every definition via this file. This behavior can be disabled
      +via kompile --no-prelude, however, semantics will likely break unless
      +they provide their own versions of these files, which are assumed to exist
      +by the compiler. There are, however, circumstances where passing this flag is
      +appropriate, such as if you are manually requiring these files in your
      +definition, if your definition was automatically condensed into a single file
      +with kompile -E, or if you wish to modify the inner syntax of K by providing
      +your own version of these files with different syntax.

      +
      require "kast.md"
      +require "domains.md"
      +

      K Foreign Function Interface

      +

      The K Foreign Function Interface (FFI) module provides a way to call native
      +functions directly from a K semantics using the C ABI. It also provides
      +utilities for allocating and deallocating byte buffers with static addresses
      +that are suitable for being passed to native code.

      +

      It is built off of the underlying libffi library
      +(https://sourceware.org/libffi/) and is subject to some of the same
      +limitations as that library. Bear in mind, because this library exposes
      +a number of unsafe C APIs directly, misuse of the library is likely to lead
      +to memory corruption in your interpreter and can cause segmentation faults or
      +corrupted term representations that lead to undefined behavior at runtime.

      +
      require "domains.md"
      +
      +module FFI-SYNTAX
      +  imports private LIST
      +

      The FFIType sort is used to declare the native C ABI types of operands passed
      +to the #ffiCall function. These types roughly correspond to the types
      +declared in ffi.h by libffi.

      +
        syntax FFIType ::= "#void" [klabel(#ffi_void), symbol]
      +                  | "#uint8" [klabel(#ffi_uint8), symbol]
      +                  | "#sint8" [klabel(#ffi_sint8), symbol]
      +                  | "#uint16" [klabel(#ffi_uint16), symbol]
      +                  | "#sint16" [klabel(#ffi_sint16), symbol]
      +                  | "#uint32" [klabel(#ffi_uint32), symbol]
      +                  | "#sint32" [klabel(#ffi_sint32), symbol]
      +                  | "#uint64" [klabel(#ffi_uint64), symbol]
      +                  | "#sint64" [klabel(#ffi_sint64), symbol]
      +                  | "#float" [klabel(#ffi_float), symbol]
      +                  | "#double" [klabel(#ffi_double), symbol]
      +                  | "#uchar" [klabel(#ffi_uchar), symbol]
      +                  | "#schar" [klabel(#ffi_schar), symbol]
      +                  | "#ushort" [klabel(#ffi_ushort), symbol]
      +                  | "#sshort" [klabel(#ffi_sshort), symbol]
      +                  | "#uint" [klabel(#ffi_uint), symbol]
      +                  | "#sint" [klabel(#ffi_sint), symbol]
      +                  | "#ulong" [klabel(#ffi_ulong), symbol]
      +                  | "#slong" [klabel(#ffi_slong), symbol]
      +                  | "#longdouble" [klabel(#ffi_longdouble), symbol]
      +                  | "#pointer" [klabel(#ffi_pointer), symbol]
      +                  | "#complexfloat" [klabel(#ffi_complexfloat), symbol]
      +                  | "#complexdouble" [klabel(#ffi_complexdouble), symbol]
      +                  | "#complexlongdouble" [klabel(#ffi_complexlongdouble), symbol]
      +                  | "#struct" "(" List ")" [klabel(#ffi_struct), symbol]
      +endmodule
      +
      +module FFI
      +  imports FFI-SYNTAX
      +  imports private BYTES
      +  imports private STRING
      +  imports private BOOL
      +  imports private LIST
      +  imports private INT
      +
      +

      FFI Calls

      +

      The #ffiCall functions are designed to call a native C ABI function and
      +return a native result. They come in three variants:

      +

      Non-variadic

      + +

      In the first variant, #ffiCall(Address, Args, ArgTypes, ReturnType) takes
      +an integer address of a function (which can be obtained from
      +#functionAddress), a List of Bytes containing the arguments of the
      +function, a List of FFITypes containing the types of the parameters of the
      +function, and an FFIType containing the return type of the function, and
      +returns the return value of the function as a Bytes.

      +
        syntax Bytes ::= "#ffiCall" "(" Int "," List "," List "," FFIType ")" [function, hook(FFI.call)]
      +

      Variadic

      + +

      In the second variant,
      +#ffiCall(Address, Args, FixedTypes, VariadicTypes, ReturnType takes an
      +integer address of a function, a List of Bytes containing the arguments
      +of the call, a List of FFITypes containing the types of the fixed
      +parameters of the function, a List of FFITypes containing the types of the
      +variadic parameters of the function, and an FFIType containing the return
      +type of the function, and returns the return value of the function as a
      +Bytes.

      +
        syntax Bytes ::= "#ffiCall" "(" Int "," List "," List "," List "," FFIType ")" [function, hook(FFI.call_variadic)]
      +

      Generic

      + +

      In the third variant,
      +#ffiCall(IsVariadic, Address, Args, ArgTypes, NFixed, ReturnType takes
      +a boolean indicating whether the function is variadic or not, an integer
      +address of a function, a List of Bytes containing the arguments of the
      +call, a List of FFITypes containing the parameter typess of the call
      +followed by the types of the variadic arguments of the call, if any, an Int
      +containing how many of the arguments of the call are fixed or not, and an
      +FFIType containing the return type of the function, and returns the return
      +value of the function as a Bytes.

      +
        syntax Bytes ::= "#ffiCall" "(" Bool "," Int "," List "," List "," Int "," FFIType ")" [function]
      +
      +  rule #ffiCall(false, Addr::Int, Args::List, Types::List, _, Ret::FFIType) => #ffiCall(Addr, Args, Types, Ret)
      +  rule #ffiCall(true, Addr::Int, Args::List, Types::List, NFixed::Int, Ret::FFIType) => #ffiCall(Addr, Args, range(Types, 0, size(Types) -Int NFixed), range(Types, NFixed, 0), Ret)
      +

      Symbol Lookup

      +

      The FFI module provides a mechanism to look up any function symbol and return
      +that function's address.

      +
        syntax Int ::= "#functionAddress" "(" String ")" [function, hook(FFI.address)]
      +

      Direct Memory Management

      +

      Most memory used by the LLVM backend to represent terms is managed
      +automatically via garbage collection. However, a consequence of this is that
      +a particular term does not have a fixed address across its entire lifetime
      +in most cases. Sometimes this is undesirable, especially if you intend for
      +the address of the memory to be taken by the semantics or if you intend
      +to pass this memory directly to native code. As a result, the FFI module
      +exposes the following unsafe APIs for memory management. Note that use of
      +these APIs leaves the burden of memory management completely on the user,
      +and thus misuse of these functions can lead to things like use-after-free
      +and other memory corruption bugs.

      +

      Allocation

      + +

      #alloc(Key, Size, Align) will allocate Size bytes with an alignment
      +requirement of Align (which must be a power of two), and return it as a
      +Bytes term. The memory is uniquely identified by its key and that key will
      +be used later to free the memory. The memory is not implicitly freed by garbage
      +collection; failure to call #free on the memory at a later date can lead to
      +memory leaks.

      +
        syntax Bytes ::= "#alloc" "(" KItem "," Int "," Int ")" [function, hook(FFI.alloc)]
      +

      Addressing

      + +

      #addess(B) will return an Int representing the address of the first byte of
      +B, which must be a Bytes. Unless the Bytes term was allocated by #alloc,
      +the return value is unspecified and may not be the same across multipl
      +invocations on the same byte buffer. However, it is guaranteed that memory
      +allocated by #alloc will have the same address throughout its lifetime.

      +
        syntax Int ::= "#address" "(" Bytes ")" [function, hook(FFI.bytes_address)]
      +

      Deallocation

      + +

      #free(Key) will free the memory of the Bytes object that was allocated
      +by a previous call to #alloc. If Key was not used in a previous call to
      +#alloc, or the memory was already freed, no action is taken. It will generate
      +undefined behavior if the Bytes term returned by the previous call to
      +#alloc is still referenced by any other term in the configuration or a
      +currently evaluating rule. The function returns .K.

      +
        syntax K ::= "#free" "(" KItem ")" [function, hook(FFI.free)]
      +

      Reading

      + +

      #nativeRead(Addr, Mem) will read native memory at address Addr into Mem,
      +reading exactly lengthBytes(Mem) bytes. This will generate undefined behavior
      +if Addr does not point to a readable segment of memory at least
      +lengthBytes(Mem) bytes long.

      +
        syntax K ::= "#nativeRead" "(" Int "," Bytes ")" [function, hook(FFI.read)]
      +

      Writing

      + +

      #nativeWrite(Addr, Mem) will write the contents of Mem to native memory at
      +address Addr. The memory will be read prior to being written, and a write
      +will only happen if the memory has a different value than the current value of
      +Mem. This will generate undefined behavior if Addr does not point to a
      +readable segment of memory at least lengthBytes(Mem) bytes long, or if the
      +memory at address Addr has a different value than currently contained in
      +Mem, and the memory in question is not writeable.

      +
        syntax K ::= "#nativeWrite" "(" Int "," Bytes ")" [function, hook(FFI.write)]
      +endmodule
      +

      Syntax of JSON

      +

      K provides builtin support for reading/writing to JSON. While the JSON-SYNTAX
      +module is not precisely the syntax of JSON (utilizing K's syntax for strings,
      +integers, and floating point numbers rather than the syntax used by JSON),
      +you can still convert directly to/from the actual syntax of JSON using
      +the JSON2String and String2JSON hooks.

      +
      module JSON-SYNTAX
      +    imports INT-SYNTAX
      +    imports STRING-SYNTAX
      +    imports BOOL-SYNTAX
      +    imports FLOAT-SYNTAX
      +
      +    syntax JSONs   ::= List{JSON,","}      [klabel(JSONs)      , symbol]
      +    syntax JSONKey ::= String
      +    syntax JSON    ::= "null"              [klabel(JSONnull)   , symbol]
      +                     | String | Int | Float | Bool
      +                     | JSONKey ":" JSON    [klabel(JSONEntry)  , symbol]
      +                     | "{" JSONs "}"       [klabel(JSONObject) , symbol]
      +                     | "[" JSONs "]"       [klabel(JSONList)   , symbol]
      +endmodule
      +

      Conversion between JSON and String

      +

      Given a string written in valid JSON, you can convert it to the JSON
      +sort with the String2JSON function. Assuming the user has not extended
      +the syntax of the JSON sort with their own constructors, any term of sort
      +JSON can also be converted to a String using the JSON2String function.

      +
      module JSON
      +    imports JSON-SYNTAX
      +
      +    syntax String ::= JSON2String(JSON) [function, hook(JSON.json2string)]
      +
      +    syntax JSON ::= String2JSON(String) [function, hook(JSON.string2json)]
      +endmodule
      +

      Rational Numbers in K

      +

      K provides support for arbitrary-precision rational numbers represented as a
      +quotient between two integers. The sort representing these values is Rat.
      +Int is a subsort of Rat, and it is guaranteed that any integer will be
      +represented as an Int and can be matched as such on the left hand side
      +of rules. K also supports the usual arithmetic operators over rational numbers.

      +
      module RAT-SYNTAX
      +  imports INT-SYNTAX
      +  imports private BOOL
      +
      +  syntax Rat
      +
      +  syntax Rat ::= Int
      +

      Arithmetic

      +

      You can:

      +
        +
      • Raise a rational number to any negative or nonnegative integer.
      • +
      • Multiply or divide two rational numbers to obtain a product or quotient.
      • +
      • Add or subtract two rational numbers to obtain a sum or difference.
      • +
      +
        syntax Rat ::= left:
      +                 Rat "^Rat" Int [function, total, klabel(_^Rat_), symbol, smtlib(ratpow), hook(RAT.pow)]
      +               > left:
      +                 Rat "*Rat" Rat [function, total, klabel(_*Rat_), symbol, left, smtlib(ratmul), hook(RAT.mul)]
      +               | Rat "/Rat" Rat [function,             klabel(_/Rat_), symbol, left, smtlib(ratdiv), hook(RAT.div)]
      +               > left:
      +                 Rat "+Rat" Rat [function, total, klabel(_+Rat_), symbol, left, smtlib(ratadd), hook(RAT.add)]
      +               | Rat "-Rat" Rat [function, total, klabel(_-Rat_), symbol, left, smtlib(ratsub), hook(RAT.sub)]
      +

      Comparison

      +

      You can determine whether two rational numbers are equal, unequal, or compare
      +one of less than, less than or equalto, greater than, or greater than or equal
      +to the other:

      +
        syntax Bool ::= Rat  "==Rat" Rat [function, total, klabel(_==Rat_),  symbol, smtlib(rateq), hook(RAT.eq)]
      +                | Rat "=/=Rat" Rat [function, total, klabel(_=/=Rat_), symbol, smtlib(ratne), hook(RAT.ne)]
      +                | Rat   ">Rat" Rat [function, total, klabel(_>Rat_),   symbol, smtlib(ratgt), hook(RAT.gt)]
      +                | Rat  ">=Rat" Rat [function, total, klabel(_>=Rat_),  symbol, smtlib(ratge), hook(RAT.ge)]
      +                | Rat   "<Rat" Rat [function, total, klabel(_<Rat_),   symbol, smtlib(ratlt), hook(RAT.lt)]
      +                | Rat  "<=Rat" Rat [function, total, klabel(_<=Rat_),  symbol, smtlib(ratle), hook(RAT.le)]
      +

      Min/Max

      +

      You can compute the minimum and maximum of two rational numbers:

      +
        syntax Rat ::= minRat(Rat, Rat) [function, total, klabel(minRat), symbol, smtlib(ratmin), hook(RAT.min)]
      +               | maxRat(Rat, Rat) [function, total, klabel(maxRat), symbol, smtlib(ratmax), hook(RAT.max)]
      +

      Conversion to Floating Point

      +

      You can convert a rational number to the nearest floating point number that
      +is representable in a Float of a specified number of precision and exponent
      +bits:

      +
        syntax Float ::= Rat2Float(Rat, precision: Int, exponentBits: Int) [function]
      +endmodule
      +

      Implementation of Rational Numbers

      +

      The remainder of this file consists of an implementation in K of the
      +operations listed above. Users of the RAT module should not use any of the
      +syntax defined in any of these modules.

      +

      As a point of reference for users, it is worth noting that rational numbers
      +are normalized to a canonical form by this module,. with the canonical form
      +bearing the property that it is either an Int, or a pair of integers
      +I /Rat J such that
      +I =/=Int 0 andBool J >=Int 2 andBool gcdInt(I, J) ==Int 1 is always true.

      +
      module RAT-COMMON
      +  imports RAT-SYNTAX
      +
      +  // invariant of < I , J >Rat : I =/= 0, J >= 2, and I and J are coprime
      +  syntax Rat ::= "<" Int "," Int ">Rat" [format(%2 /Rat %4)]
      +endmodule
      +
      +module RAT-SYMBOLIC [symbolic, kore]
      +  imports private RAT-COMMON
      +  imports ML-SYNTAX
      +  imports private BOOL
      +
      +  rule
      +    #Ceil(@R1:Rat /Rat @R2:Rat)
      +  =>
      +    {(@R2 =/=Rat 0) #Equals true} #And #Ceil(@R1) #And #Ceil(@R2)
      +  [simplification]
      +endmodule
      +
      +module RAT-KORE [kore]
      +  imports private RAT-COMMON
      +  imports private K-EQUAL
      +
      +  /*
      +   * equalities
      +   */
      +
      +  // NOTE: the two rules below may not work correctly in non-kore backends
      +
      +  rule R ==Rat S => R ==K S
      +
      +  rule R =/=Rat S => R =/=K S
      +endmodule
      +
      +module RAT [private]
      +  imports private RAT-COMMON
      +  imports public RAT-SYMBOLIC
      +  imports public RAT-KORE
      +  imports public RAT-SYNTAX
      +  imports private INT
      +  imports private BOOL
      +
      +  /*
      +   * arithmetic
      +   */
      +
      +  rule < I , I' >Rat +Rat < J , J' >Rat => ((I *Int J') +Int (I' *Int J)) /Rat (I' *Int J')
      +  rule I:Int         +Rat < J , J' >Rat => ((I *Int J') +Int J) /Rat J'
      +  rule < J , J' >Rat +Rat I:Int         => I +Rat < J , J' >Rat
      +  rule I:Int         +Rat J:Int         => I +Int J
      +
      +  rule < I , I' >Rat *Rat < J , J' >Rat => (I *Int J) /Rat (I' *Int J')
      +  rule I:Int         *Rat < J , J' >Rat => (I *Int J) /Rat J'
      +  rule < J , J' >Rat *Rat I:Int         => I *Rat < J , J' >Rat
      +  rule I:Int         *Rat J:Int         => I *Int J
      +
      +  rule < I , I' >Rat /Rat < J , J' >Rat => (I *Int J') /Rat (I' *Int J)
      +  rule I:Int         /Rat < J , J' >Rat => (I *Int J') /Rat J
      +  rule < I , I' >Rat /Rat J:Int         => I /Rat (I' *Int J) requires J =/=Int 0
      +  rule I:Int         /Rat J:Int         => makeRat(I, J)      requires J =/=Int 0
      +
      +  // derived
      +
      +  rule R -Rat S => R +Rat (-1 *Rat S)
      +
      +  // normalize
      +
      +  syntax Rat ::= makeRat(Int, Int)      [function]
      +               | makeRat(Int, Int, Int) [function]
      +
      +  rule makeRat(0, J) => 0 requires J =/=Int 0
      +
      +  rule makeRat(I, J) => makeRat(I, J, gcdInt(I,J)) requires I =/=Int 0 andBool J =/=Int 0
      +
      +  // makeRat(I, J, D) is defined when I =/= 0, J =/= 0, D > 0, and D = gcd(I,J)
      +  rule makeRat(I, J, D) => I /Int D                       requires J ==Int D // implies J > 0 since D > 0
      +  rule makeRat(I, J, D) => < I /Int D , J /Int D >Rat     requires J >Int 0 andBool J =/=Int D
      +  rule makeRat(I, J, D) => makeRat(0 -Int I, 0 -Int J, D) requires J <Int 0
      +
      +  // gcdInt(a,b) computes the gcd of |a| and |b|, which is positive.
      +  syntax Int ::= gcdInt(Int, Int) [function, public]
      +
      +  rule gcdInt(A, 0) => A        requires A >Int 0
      +  rule gcdInt(A, 0) => 0 -Int A requires A <Int 0
      +  rule gcdInt(A, B) => gcdInt(B, A %Int B) requires B =/=Int 0 // since |A %Int B| = |A| %Int |B|
      +
      +  /*
      +   * exponentiation
      +   */
      +
      +  rule _ ^Rat 0 => 1
      +  rule 0 ^Rat N => 0 requires N =/=Int 0
      +
      +  rule < I , J >Rat ^Rat N => powRat(< I , J >Rat, N) requires N >Int 0
      +  rule X:Int        ^Rat N => X ^Int N                requires N >Int 0
      +
      +  rule X ^Rat N => (1 /Rat X) ^Rat (0 -Int N) requires X =/=Rat 0 andBool N <Int 0
      +
      +  // exponentiation by squaring
      +
      +  syntax Rat ::= powRat(Rat, Int) [function]
      +
      +  // powRat(X, N) is defined when X =/= 0 and N > 0
      +  rule powRat(X, 1) => X
      +  rule powRat(X, N) => powRat(X *Rat X, N /Int 2) requires N >Int 1 andBool N %Int 2  ==Int 0
      +  rule powRat(X, N) => powRat(X, N -Int 1) *Rat X requires N >Int 1 andBool N %Int 2 =/=Int 0
      +
      +  /*
      +   * inequalities
      +   */
      +
      +  rule R >Rat S => R -Rat S >Rat 0 requires S =/=Rat 0
      +
      +  rule < I , _ >Rat >Rat 0 => I >Int 0
      +  rule I:Int        >Rat 0 => I >Int 0
      +
      +  // derived
      +
      +  rule R >=Rat S => notBool R <Rat S
      +
      +  rule R <Rat S => S >Rat R
      +
      +  rule R <=Rat S => S >=Rat R
      +
      +  rule minRat(R, S) => R requires R <=Rat S
      +  rule minRat(R, S) => S requires S <=Rat R
      +
      +  rule maxRat(R, S) => R requires R >=Rat S
      +  rule maxRat(R, S) => S requires S >=Rat R
      +
      +  syntax Float ::= #Rat2Float(Int, Int, Int, Int) [function, hook(FLOAT.rat2float)]
      +  rule Rat2Float(Num:Int, Prec:Int, Exp:Int) => #Rat2Float(Num, 1, Prec, Exp)
      +  rule Rat2Float(< Num, Dem >Rat, Prec, Exp) => #Rat2Float(Num, Dem, Prec, Exp)
      +
      +endmodule
      +

      Capture-Aware Substitution in K

      +

      One of the traditional ways in which functional languages are given operational
      +semantics is via substitution. In particular, you can view a function as
      +declaring a particular bound variable, the parameter of the function, as well
      +as the body of the function, within which both bound and free variables can
      +occur, and implement the process of beta-reduction (one of the axioms of the
      +lambda calculus) by means of a substitution operator which is aware of the
      +difference between free variables and bound variables and prevents variable
      +capture.

      +

      In K this is implemented using two mechanisms: The KVar sort, and the
      +binder attribute.

      +

      The KVar Sort

      +

      K introduces a new hooked sort, KVar, which the substitution operator
      +(defined below) understands in a particular way. The syntax of KVar is the
      +same as for sort Id in DOMAINS, but with a different sort name. Similarly,
      +some of the same operators are defined over KVar which are defined for Id,
      +such as conversion from String to KVar and support for the !Var:KVar
      +syntax.

      +

      A KVar is simply an identifier with special meaning during substitution.
      +KVars must begin with a letter or underscore,
      +and can be followed by zero or more letters, numbers, or underscores.

      +
      module KVAR-SYNTAX-PROGRAM-PARSING
      +  imports BUILTIN-ID-TOKENS
      +
      +  syntax KVar ::= r"(?<![A-Za-z0-9\\_])[A-Za-z\\_][A-Za-z0-9\\_]*"     [prec(1), token]
      +                | #LowerId                                             [token]
      +                | #UpperId                                             [token]
      +endmodule
      +
      +module KVAR-SYNTAX
      +  syntax KVar [token, hook(KVAR.KVar)]
      +endmodule
      +
      +module KVAR-COMMON
      +  imports KVAR-SYNTAX
      +  imports private STRING
      +
      +  syntax KVar ::= String2KVar (String) [function, total, hook(STRING.string2token)]
      +  syntax KVar ::= freshKVar(Int)    [freshGenerator, function, total, private]
      +
      +  rule freshKVar(I:Int) => String2KVar("_" +String Int2String(I))
      +endmodule
      +
      +module KVAR
      +  imports KVAR-COMMON
      +endmodule
      +

      The binder Attribute

      +

      A production can be given the attribute binder. Such a production must have
      +at least two nonterminals. The first nonterminal from left to right must be of
      +sort KVar, and contains the bound variable. The last nonterminal from left
      +to right contains the term that is bound. For example, I could describe lambdas
      +in the lambda calculus with the production
      +syntax Val ::= "lambda" KVar "." Exp [binder].

      +

      Substitution

      +

      K provides a hooked implementation of substitution, currently only implemented
      +on the Java and LLVM backends. Two variants exist: the first substitutes
      +a single KVar for a single KItem. The second takes a Map with KVar
      +keys and KItem values, and substitutes each element in the map atomically.

      +

      Internally, this is implemented in the LLVM backend by a combination of
      +de Bruijn indices for bound variables and names for free variables. Free
      +variables are also sometimes given a unique numeric identifier in order to
      +prevent capture, and the rewriter will automatically assign unique names to
      +such identifiers when rewriting finishes. The names assigned will always begin
      +with the original name of the variable and be followed by a unique integer
      +suffix. However, the names assigned after rewriting finishes might be different
      +from the names that would be assigned if rewriting were to halt prematurely,
      +for example due to krun --depth.

      +
      module SUBSTITUTION
      +  imports private MAP
      +  imports KVAR
      +
      +  syntax {Sort} Sort ::= Sort "[" KItem "/" KItem "]"  [function, hook(SUBSTITUTION.substOne), impure]
      +  syntax {Sort} Sort ::= Sort "[" Map "]"      [function, hook(SUBSTITUTION.substMany), impure]
      +endmodule
      +

      K PL Tutorial

      + +

      Here you will learn how to use the K tool to define languages by means of a series of screencast movies. It is recommended to do these in the indicated order, because K features already discussed in a previous language definition will likely not be rediscussed in latter definitions. The screencasts follow quite closely the structure of the files under the tutorial folder in the K tool distribution. If you'd rather follow the instructions there and do the tutorial exercises yourself, then go back to https://kframework.org and download the K tool, if you have not done it already. Or, you can first watch the screencasts below and then do the exercises, or do them in parallel.

      +

      K Overview

      + +

      Make sure you watch the K overview video before you do the K tutorial:

      + +

      Learning K

      + +

      [34'46"] Part 1: Defining LAMBDA

      + +

      Here you will learn how to define a very simple functional language in K and the basics of how to use the K tool. The language is a call-by-value variant of lambda calculus with builtins and mu, and its definition is based on substitution.

      + +

      [37'07"] Part 2: Defining IMP

      + +

      Here you will learn how to define a very simple, prototypical textbook C-like imperative language, called IMP, and several new features of the K tool.

      + +

      [33'10"] Part 3: Defining LAMBDA++

      + +

      Here you will learn how to define constructs which abruptly change the execution control, as well as how to define functional languages using environments and closures. LAMBDA++ extends the LAMBDA language above with a callcc construct.

      + +

      [46'46"] Part 4: Defining IMP++

      + +

      Here you will learn how to refine configurations, how to generate fresh elements, how to tag syntactic constructs and rules, how to exhaustively search the space of non-deterministic or concurrent program executions, etc. IMP++ extends the IMP language above with increment, blocks and locals, dynamic threads, input/output, and abrupt termination.

      + +

      [17'03"] Part 5: Defining Type Systems

      + +

      Here you will learn how to define various kinds of type systems following various approaches or styles using K.

      + +

      [??'??"] Part 6: Miscellaneous Other K Features

      + +

      Here you will learn a few other K features, and better understand how features that you have already seen work.

      +
        +
      • [??'??"] ...
      • +
      +

      Learning Language Design and Semantics using K

      + +

      [??'??"] Part 7: SIMPLE: Designing Imperative Programming Languages

      + +

      Here you will learn how to design imperative programming languages using K. SIMPLE is an imperative language with functions, threads, pointers, exceptions, multi-dimensional arrays, etc. We first define an untyped version of SIMPLE, then a typed version. For the typed version, we define both a static and a dynamic semantics.

      + +

      [??'??"] Part 8: KOOL: Designing Object-Oriented Programming Languages

      + +

      Here woul will learn how to design object-oriented programming languages using K. KOOL is an object-oriented language that extends SIMPLE with classes and objects. We first define an untyped version of KOOL, then a typed version, with both a dynamic and a static semantics.

      + +

      [??'??"] Part 9: FUN: Designing Functional Programming Languages

      + +

      H
      +ere woul will learn how to design functional programming languages using K. FUN is a higher-order functional language with general let, letrec, pattern matching, references, lists, callcc, etc. We first define an untyped version of FUN, then a let-polymorphic type inferencer.

      + +

      [??'??"] Part 10: LOGIK: Designing Logic Programming Languages

      + +

      Here you will learn how to design a logic programming language using K.

      + +

      K overview

      + + +

      Go to Youtube mirror, if the above does not work.

      +

      Go back to https://kframework.org for further links, the K tool and contact information.

      +

      Learning K

      + +

      We start by introducing the basic features of K by means of a series
      +of very simple languages. The objective here is neither to learn those
      +languages nor to study their underlying paradigm, but simply to learn K.

      +
        +
      • LAMBDA: Lambda calculus defined.
      • +
      • IMP: A simple imperative language.
      • +
      • LAMBDA++: LAMBDA extended with control flow.
      • +
      • IMP++: IMP extended with threads and IO.
      • +
      • TYPES: LAMBDA type system.
      • +
      +

      Part 1: Defining LAMBDA

      + +

      Here you will learn how to define a very simple language in K and the basics
      +of how to use the K tool. The language is a variant of call-by-value lambda
      +calculus and its definition is based on substitution. Specifically, you will
      +learn the following:

      +
        +
      • How to define a module.
      • +
      • How to define a language syntax.
      • +
      • How to use the defined syntax to parse programs.
      • +
      • How to import predefined modules.
      • +
      • How to define evaluation strategies using strictness attributes.
      • +
      • How to define semantic rules.
      • +
      • How the predefined generic substitution works.
      • +
      • How to generate PDF and HTML documentation from ASCII definitions.
      • +
      • How to include builtins (integers and Booleans) into your language.
      • +
      • How to define derived language constructs.
      • +
      +

      This folder contains several lessons, each adding new features to LAMBDA.

      +

      Syntax Modules and Basic K Commands

      + +

      Here we define our first K module, which contains the initial syntax of the
      +LAMBDA language, and learn how to use the basic K commands.

      +

      Let us create an empty working folder, and open a terminal window
      +(to the left) and an editor window (to the right). We will edit our K
      +definition in the right window in a file called lambda.k, and will call
      +the K tool commands in the left window.

      +

      Let us start by defining a K module, containing the syntax of LAMBDA.

      +

      K modules are introduced with the keywords module ... endmodule.

      +

      The keyword syntax adds new productions to the syntax grammar, using a
      +BNF-like notation.

      +

      Terminals are enclosed in double-quotes, like strings.

      +

      You can define multiple productions for the same non-terminal in the same
      +syntax declaration using the | separator.

      +

      Productions can have attributes, which are enclosed in square brackets.

      +

      The attribute left tells the parser that we want the lambda application to be
      +left associative. For example, a b c d will then parse as (((a b) c) d).

      +

      The attribute bracket tells the parser to not generate a node for the
      +parenthesis production in the abstract syntax trees associated to programs.
      +In other words, we want to allow parentheses to be used for grouping, but we
      +do not want to bother to give them their obvious (ignore) semantics.

      +

      In our variant of lambda calculus defined here, identifiers and lambda
      +abstractions are meant to be irreducible, that is, are meant to be values.
      +However, so far Val is just another non-terminal, just like Exp,
      +without any semantic meaning. It will get a semantic meaning later.

      +

      After we are done typing our definition in the file lambda.k, we can kompile
      +it with the command:

      +
      kompile lambda.k
      +
      +

      If we get no errors then a parser has been generated. This parser will be
      +called from now on by default by the krun tool. To see whether and how the
      +parser works, we are going to write some LAMBDA programs and store them in
      +files with the extension .lambda.

      +

      Let us create a file identity.lambda, which contains the identity lambda
      +abstraction:

      +
      lambda x . x
      +
      +

      Now let us call krun on identity.lambda:

      +
      krun identity.lambda
      +
      +

      Make sure you call the krun command from the folder containing your language
      +definition (otherwise type krun --help to learn how to pass a language
      +definition as a parameter to krun). The krun command produces the output:

      +
      <k>
      +  lambda x . x
      +</k>
      +
      +

      If you see such an output it means that your program has been parsed (and then
      +pretty printed) correctly. If you want to see the internal abstract syntax
      +tree (AST) representation of the parsed program, which we call the K AST, then
      +type kast in the command instead of krun:

      +
      kast identity.lambda
      +
      +

      You should normally never need to see this internal representation in your
      +K definitions, so do not get scared (yes, it is ugly for humans, but it is
      +very convenient for tools).

      +

      Note that krun placed the program in a <k> ... </k> cell. In K, computations
      +happen only in cells. If you do not define a configuration in your definition,
      +like we did here, then a configuration will be created automatically for you
      +which contains only one cell, the default k cell, which holds the program.

      +

      Next, let us create a file free-variable-capture.lambda, which contains an
      +expression which, in order to execute correctly in a substitution-based
      +semantics of LAMBDA, the substitution operation needs to avoid
      +variable-capture:

      +
      a (((lambda x.lambda y.x) y) z)
      +
      +

      Next, file closed-variable-capture.lambda shows an expression which also
      +requires a capture-free substitution, but this expression is closed (that is,
      +it has no free variables) and all its bound variables are distinct (I believe
      +this is the smallest such expression):

      +
      (lambda z.(z z)) (lambda x.lambda y.(x y))
      +
      +

      Finally, the file omega.lambda contains the classic omega combinator
      +(or closed expression), which is the smallest expression which loops forever
      +(not now, but after we define the semantics of LAMBDA):

      +
      (lambda x.(x x)) (lambda x.(x x))
      +
      +

      Feel free to define and parse several other LAMBDA programs to get a feel for
      +how the parser works. Parse also some incorrect programs, to see how the
      +parser generates error messages.

      +

      In the next lesson we will see how to define semantic rules that iteratively
      +rewrite expressions over the defined syntax until they evaluate to a result.
      +This way, we obtain our first programming language defined using K.

      +

      Go to Lesson 2, LAMBDA: Module Importing, Rules, Variables

      +

      MOVIE (out of date) [4'07"]

      +

      Module Importing, Rules, Variables

      + +

      We here learn how to include a predefined module (SUBSTITUTION), how to
      +use it to define a K rule (the characteristic rule of lambda calculus),
      +and how to make proper use of variables in rules.

      +

      Let us continue our lambda.k definition started in the previous lesson.

      +

      The requires keyword takes a .k file containing language features that
      +are needed for the current definition, which can be found in the
      +k-distribution/include/kframework/builtin folder. Thus, the command

      +
      require "substitution.k"
      +
      +

      says that the subsequent definition of LAMBDA needs the generic substitution,
      +which is predefined in file substitution.k under the folder
      +k-distribution/include/kframework/builtin. Note that substitution can be defined itself in K,
      +although it uses advanced features that we have not discussed yet in this
      +tutorial, so it may not be easy to understand now.

      +

      Using the imports keyword, we can now modify LAMBDA to import the module
      +SUBSTITUTION, which is defined in the required substitution.k file.

      +

      Now we have all the substitution machinery available for our definition.
      +However, since our substitution is generic, it cannot know which language
      +constructs bind variables, and what counts as a variable; however, this
      +information is critical in order to correctly solve the variable capture
      +problem. Thus, you have to tell the substitution that your lambda construct
      +is meant to be a binder, and that your Id terms should be treated as variables
      +for substitution. The former is done using the attribute binder.
      +By default, binder binds all the variables occurring anywhere in the first
      +argument of the corresponding syntactic construct within its other arguments;
      +you can configure which arguments are bound where, but that will be discussed
      +in subsequent lectures. To tell K which terms are meant to act as variables
      +for binding and substitution, we have to explicitly subsort the desired syntactic
      +categories to the builtin KVariable sort.

      +

      Now we are ready to define our first K rule. Rules are introduced with the
      +keyword rule and make use of the rewrite symbol, =>. In our case,
      +the rule defines the so-called lambda calculus beta-reduction, which
      +makes use of substitution in its right-hand side, as shown in lambda.k.

      +

      By convention, variables that appear in rules start with a capital letter
      +(the current implementation of the K tool may even enforce that).

      +

      Variables may be explicitly tagged with their syntactic category (also called
      +sort). If tagged, the matching term will be checked at run-time for
      +membership to the claimed sort. If not tagged, then no check will be made.
      +The former is safer, but involves the generation of a side condition to the
      +rule, so the resulting definition may execute slightly slower overall.

      +

      In our rule in lambda.k we tagged all variables with their sorts, so we chose
      +the safest path. Only the V variable really needs to be tagged there,
      +because we can prove (using other means, not the K tool, as the K tool is not
      +yet concerned with proving) that the first two variables will always have the
      +claimed sorts whenever we execute any expression that parses within our
      +original grammar.

      +

      Let us compile the definition and then run some programs. For example,

      +
      krun closed-variable-capture.lambda
      +
      +

      yields the output

      +
      <k>
      +  lambda y . ((lambda x . (lambda y . (x  y))) y)
      +</k> 
      +
      +

      Notice that only certain programs reduce (some even yield non-termination,
      +such as omega.lambda), while others do not. For example,
      +free-variable-capture.lambda does not reduce its second argument expression
      +to y, as we would expect. This is because the K rewrite rules between syntactic
      +terms do not apply anywhere they match. They only apply where they have been
      +given permission to apply by means of appropriate evaluation strategies of language
      +constructs, which is done using strictness attributes, evaluation contexts,
      +heating/cooling rules, etc., as discussed in the next lessons.

      +

      The next lesson will show how to add LAMBDA the desired evaluation strategies
      +using strictness attributes.

      +

      Go to Lesson 3, LAMBDA: Evaluation Strategies using Strictness

      +

      MOVIE (out of date) [4'03"]

      +

      Evaluation Strategies using Strictness

      + +

      Here we learn how to use the K strict attribute to define desired evaluation
      +strategies. We will also learn how to tell K which terms are already
      +evaluated, so it does not attempt to evaluate them anymore and treats them
      +internally as results of computations.

      +

      Recall from the previous lecture that the LAMBDA program
      +free-variable-capture.lambda was stuck, because K was not given permission
      +to evaluate the arguments of the lambda application construct.

      +

      You can use the attribute strict to tell K that the corresponding construct
      +has a strict evaluation strategy, that is, that its arguments need to be
      +evaluated before the semantics of the construct applies. The order of
      +argument evaluation is purposely unspecified when using strict, and indeed
      +the K tool allows us to detect all possible non-deterministic behaviors that
      +result from such intended underspecification of evaluation strategies. We will
      +learn how to do that when we define the IMP language later in this tutorial;
      +we will also learn how to enforce a particular order of evaluation.

      +

      In order for the above strictness declaration to work effectively and
      +efficiently, we need to tell the K tool which expressions are meant to be
      +results of computations, so that it will not attempt to evaluate them anymore.
      +One way to do it is to make Val a syntactic subcategory of the builtin
      +KResult syntactic category. Since we use the same K parser to also parse
      +the semantics, we use the same syntax keyword to define additional syntax
      +needed exclusively for the semantics (like KResults). See lambda.k.

      +

      Compile again and then run some programs. They should all work as expected.
      +In particular, free-variable-capture.lambda now evaluates to a y.

      +

      We now got a complete and working semantic definition of call-by-value
      +lambda-calculus. While theoretically correct, our definition is not
      +easy to use and disseminate. In the next lessons we will learn how to
      +generate formatted documentation for LAMBDA and how to extend LAMBDA
      +in order to write human readable and interesting programs.

      +

      Go to Lesson 4, LAMBDA: Generating Documentation; Latex Attributes.

      +

      MOVIE (out of date) [2'20"]

      +

      Generating Documentation; Latex Attributes

      + +

      In this lesson we learn how to generate formatted documentation from K
      +language definitions. We also learn how to use Latex attributes to control
      +the formatting of language constructs, particularly of ones which have a
      +mathematical flavor and we want to display accordingly.

      +

      To enhance readability, we may want to replace the keyword lambda by the
      +mathematical lambda symbol in the generated documentation. We can control
      +the way we display language constructs in the generated documentation
      +by associating them Latex attributes.

      +

      This is actually quite easy. All we have to do is to associate a latex
      +attribute to the production defining the construct in question, following
      +the Latex syntax for defining new commands (or macros).

      +

      In our case, we associate the attribute latex(\lambda{#1}.{#2}) to the
      +production declaring the lambda abstraction (recall that in Latex, #n refers
      +to the n-th argument of the defined new command).

      +

      We will later see, in Lesson 9, that we can add arbitrarily complex Latex
      +comments and headers to our language definitions, which give us maximum
      +flexibility in formatting our language definitions.

      +

      Now we have a simple programming language, with a nice documentation. However,
      +it is not easy to write interesting programs in this language. Almost all
      +programming languages build upon existing data-types and libraries. The K
      +tool provides a few of these (and you can add more).

      +

      In the next lesson we show how we can add builtin integers and Booleans to
      +LAMBDA, so we can start to evaluate meaningful expressions.

      +

      Go to Lesson 5, LAMBDA: Adding Builtins; Side Conditions.

      +

      MOVIE (out of date) [3'13"]

      +

      Adding Builtins; Side Conditions

      + +

      We have already added the builtin identifiers (sort Id) to LAMBDA expressions,
      +but those had no operations on them. In this lesson we add integers and
      +Booleans to LAMBDA, and extend the builtin operations on them into
      +corresponding operations on LAMBDA expressions. We will also learn how to add
      +side conditions to rules, to limit the number of instances where they can
      +apply.

      +

      The K tool provides several builtins, which are automatically included in all
      +definitions. These can be used in the languages that we define, typically by
      +including them in the desired syntactic categories. You can also define your
      +own builtins in case the provided ones are not suitable for your language
      +(e.g., the provided builtin integers and operations on them are arbitrary
      +precision).

      +

      For example, to add integers and Booleans as values to our LAMBDA, we have to
      +add the productions

      +
      syntax Val ::= Int | Bool
      +
      +

      Int and Bool are the nonterminals that correspond to these builtins.

      +

      To make use of these builtins, we have to add some arithmetic operation
      +constructs to our language. We prefer to use the conventional infix notation
      +for these, and the usual precedences (i.e., multiplication and division bind
      +tighter than addition, which binds tighter than relational operators).
      +Inspired from SDF, we use > instead of
      +| to state that all the previous constructs bind tighter than all the
      +subsequent ones. See lambda.k.

      +

      The only thing left is to link the LAMBDA arithmetic operations to the
      +corresponding builtin operations, when their arguments are evaluated.
      +This can be easily done using trivial rewrite rules, as shown in lambda.k.
      +In general, the K tool attempts to uniformly add the corresponding builtin
      +name as a suffix to all the operations over builtins. For example, the
      +addition over integers is an infix operation named +Int.

      +

      Compile the new lambda.k definition and evaluate some simple arithmetic
      +expressions. For example, if arithmetic.lambda is (1+2*3)/4 <= 1, then

      +
      krun arithmetic.lambda
      +
      +

      yields, as expected, true. Note that the parser took the desired operation
      +precedence into account.

      +

      Let us now try to evaluate an expression which performs a wrong computation,
      +namely a division by zero. Consider the expression arithmetic-div-zero.lambda
      +which is 1/(2/3). Since division is strict and 2/3 evaluates to 0, this
      +expression reduces to 1/0, which further reduces to 1 /Int 0 by the rule for
      +division, which is now stuck (with the current back-end to the K tool).

      +

      In fact, depending upon the back-end that we use to execute K definitions and
      +in particular to evaluate expressions over builtins, 1 /Int 0 can evaluate to
      +anything. It just happens that the current back-end keeps it as an
      +irreducible term. Other K back-ends may reduce it to an explicit error
      +element, or issue a segmentation fault followed by a core dump, or throw an
      +exception, etc.

      +

      To avoid requesting the back-end to perform an illegal operation, we may use a
      +side condition in the rule of division, to make sure it only applies when the
      +denominator is non-zero.

      +

      Like in other operational formalisms, the role of the K side
      +conditions is to filter the number of instances of the rule. The notion
      +of a side condition comes from logics, where a sharp distinction is made
      +between a side condition (cheap) and a premise (expensive). Premises are
      +usually resolved using further (expensive) logical derivations, while side
      +conditions are simple (cheap) conditions over the rule meta-variables within
      +the underlying mathematical domains (which in K can be extended by the user,
      +as we will see in future lessons). Regarded as a logic, K derives rewrite
      +rules from other rewrite rules; therefore, the K side conditions cannot
      +contain other rewrites in them (using =>). This contrasts other rewrite
      +engines, for example Maude, which
      +allow conditional rules with rewrites in conditions.
      +The rationale behind this deliberate restriction in K is twofold:

      +
        +
      • On the one hand, general conditional rules require a complex, and thus slower
        +rewrite engine, which starts recursive (sometimes exhaustive) rewrite sessions
        +to resolve the rewrites in conditions. In contrast, the side conditions in K
        +can be evaluated efficiently by back-ends, for example by evaluating builtin
        +expressions and/or by calling builtin functions.
      • +
      • On the other hand, the semantic definitional philosophy of K is that rule
        +premises are unnecessary, so there is no need to provide support for them.
      • +
      +

      Having builtin arithmetic is useful, but writing programs with just lambda
      +and arithmetic constructs is still a pain. In the next two lessons we will
      +add conditional (if_then_else) and binding (let and letrec) constructs,
      +which will allow us to write nicer programs.

      +

      Go to Lesson 6, LAMBDA: Selective Strictness; Anonymous Variables.

      +

      MOVIE (out of date) [4'52"]

      +

      Selective Strictness; Anonymous Variables

      + +

      We here show how to define selective strictness of language constructs,
      +that is, how to state that certain language constructs are strict only
      +in some arguments. We also show how to use anonymous variables.

      +

      We next define a conditional if construct, which takes three arguments,
      +evaluates only the first one, and then reduces to either the second or the
      +third, depending on whether the first one evaluated to true or to false.

      +

      K allows to define selective strictness using the same strict attribute,
      +but passing it a list of numbers. The numbers correspond to the arguments
      +in which we want the defined construct to be strict. In our case,

      +
      syntax Exp ::= "if" Exp "then" Exp "else" Exp   [strict(1)]
      +
      +

      states that the conditional construct is strict in the first argument.

      +

      We can now assume that its first argument will eventually reduce to a value, so
      +we only write the following two semantic rules:

      +
      rule if true  then E else _ => E
      +rule if false then _ else E => E
      +
      +

      Thus, we assume that the first argument evaluates to either true or false.

      +

      Note the use of the anonymous variable _. We use such variables purely for
      +structural reasons, to state that something is there but we don't care what.
      +An anonymous variable is therefore completely equivalent to a normal variable
      +which is unsorted and different from all the other variables in the rule. If
      +you use _ multiple times in a rule, they will all be considered distinct.

      +

      Compile lambda.k and write and execute some interesting expressions making
      +use of the conditional construct. For example, the expression

      +
      if 2<=1 then 3/0 else 10
      +
      +

      evaluates to 10 and will never evaluate 3/0, thus avoiding an unwanted
      +division-by-zero.

      +

      In the next lesson we will introduce two new language constructs, called
      +let and letrec and conventionally found in functional programming
      +languages, which will allow us to already write interesting LAMBDA programs.

      +

      Go to Lesson 7, LAMBDA: Derived Constructs; Extending Predefined Syntax.

      +

      MOVIE (out of date) [2'14"]

      +

      Derived Constructs, Extending Predefined Syntax

      + +

      In this lesson we will learn how to define derived language constructs, that
      +is, ones whose semantics is defined completely in terms of other language
      +constructs. We will also learn how to add new constructs to predefined
      +syntactic categories.

      +

      When defining a language, we often want certain language constructs to be
      +defined in terms of other constructs. For example, a let-binding construct
      +of the form

      +
      let x = e in e'
      +
      +

      is nothing but syntactic sugar for

      +
      (lambda x . e') e
      +
      +

      This can be easily achieved with a rule, as shown in lambda.k.

      +

      Compile lambda.k and write some programs using let binders.

      +

      For example, consider a lets.lambda program which takes arithmetic.lambda
      +and replaces each integer by a let-bound variable. It should evaluate to
      +true, just like the original arithmetic.lambda.

      +

      Let us now consider a more interesting program, namely one that calculates the
      +factorial of 10:

      +
      let f = lambda x . (
      +        (lambda t . lambda x . (t t x))
      +        (lambda f . lambda x . (if x <= 1 then 1 else (x * (f f (x + -1)))))
      +        x
      +      )
      +in (f 10)
      +
      +

      This program follows a common technique to define fixed points in untyped
      +lambda calculus, based on passing a function to itself.

      +

      We may not like to define fixed-points following the approach above, because
      +it requires global changes in the body of the function meant to be recursive,
      +basically to pass it to itself (f f in our case above). The approach below
      +isolates the fixed-point aspect of the function in a so-called fixed-point
      +combinator
      , which we call fix below, and then apply it to the function
      +defining the body of the factorial, without any changes to it:

      +
      let fix = lambda f . (
      +          (lambda x . (f (lambda y . (x x y))))
      +          (lambda x . (f (lambda y . (x x y))))
      +        )
      +in let f = fix (lambda f . lambda x .
      +                (if x <= 1 then 1 else (x * (f (x + -1)))))
      +   in (f 10)
      +
      +

      Although the above techniques are interesting and powerful (indeed, untyped
      +lambda calculus is in fact Turing complete), programmers will probably not
      +like to write programs this way.

      +

      We can easily define a more complex derived construct, called letrec and
      +conventionally encountered in functional programming languages, whose semantics
      +captures the fixed-point idea above. In order to keep its definition simple
      +and intuitive, we define a simplified variant of letrec, namely one which only
      +allows to define one recursive one-argument function. See lambda.k.

      +

      There are two interesting observations here.

      +

      First, note that we have already in-lined the definition of the fix
      +combinator in the definition of the factorial, to save one application of the
      +beta reduction rule (and the involved substitution steps). We could have
      +in-lined the definition of the remaining let, too, but we believe that the
      +current definition is easier to read.

      +

      Second, note that we extended the predefined Id syntactic category with two
      +new constants, $x and $y. The predefined identifiers cannot start with
      +$, so programs that will be executed with this semantics cannot possibly
      +contain the identifiers xandx andy. In other words, by adding them to Id they
      +become indirectly reserved for the semantics. This is indeed desirable,
      +because any possible uses of xinthebodyofthefunctiondefinedusingletrecwouldbecapturedbythelambdax in the body of the function defined +using `letrec` would be captured by the `lambdaxdeclaration in the definition ofletrec`.

      +

      Using letrec, we can now write the factorial program as elegantly as it can
      +be written in a functional language:

      +
      letrec f x = if x <= 1 then 1 else (x * (f (x + -1)))
      +in (f 10)
      +
      +

      In the next lesson we will discuss an alternative definition of letrec, based
      +on another binder, mu, specifically designed to define fixed points.

      +

      Go to Lesson 8, LAMBDA: Multiple Binding Constructs.

      +

      MOVIE (out of date) [5'10"]

      +

      Multiple Binding Constructs

      + +

      Here we learn how multiple language constructs that bind variables can
      +coexist. We will also learn about or recall another famous binder besides
      +lambda, namely mu, which can be used to elegantly define all kinds of
      +interesting fixed-point constructs.

      +

      The mu binder has the same syntax as lambda, except that it replaces
      +lambda with mu.

      +

      Since mu is a binder, in order for substitution to know how to deal with
      +variable capture in the presence of mu, we have to tell it that mu is a
      +binding construct, same like lambda. We take advantage of being there and
      +also add mu its desired latex attribute.

      +

      The intuition for

      +
      mu x . e
      +
      +

      is that it reduces to e, but each free occurrence of x in e behaves
      +like a pointer that points back to mu x . e.

      +

      With that in mind, let us postpone the definition of mu and instead redefine
      +letrec F X = E in E' as a derived construct, assuming mu available. The
      +idea is to simply regard F as a fixed-point of the function

      +
      lambda X . E
      +
      +

      that is, to first calculate

      +
      mu F . lambda X . E
      +
      +

      and then to evaluate E' where F is bound to this fixed-point:

      +
      let F = mu F . lambda X . E in E'
      +
      +

      This new definition of letrec may still look a bit tricky, particularly
      +because F is bound twice, but it is much simpler and cleaner than our
      +previous definition. Moreover, now it is done in a type-safe manner
      +(this aspect goes beyond our objective in this tutorial).

      +

      Let us now define the semantic rule of mu.

      +

      The semantics of mu is actually disarmingly simple. We just have to
      +substitute mu X . E for each free occurrence of X in E:

      +
      mu X . E => E[(mu X . E) / X]
      +
      +

      Compile lambda.k and execute some recursive programs. They should be now
      +several times faster. Write a few more recursive programs, for example ones
      +for calculating the Ackermann function, for calculating the number of moves
      +needed to solve the Hanoi tower problem, etc.

      +

      We have defined our first programming language in K, which allows us to
      +write interesting functional programs. In the next lesson we will learn how
      +to fully document our language definition, in order to disseminate it, to ship
      +it to colleagues or friends, to publish it, to teach it, and so on.

      +

      Go to Lesson 9, LAMBDA: A Complete and Commented Definition.

      +

      MOVIE (out of date) [2'40"]

      +

      A Complete and Documented K Definition

      + +

      In this lesson you will learn how to add formal comments to your K definition,
      +in order to nicely document it. The generated document can be then used for
      +various purposes: to ease understanding the K definition, to publish it,
      +to send it to others, etc.

      +

      The K tool allows a literate programming style, where the executable
      +language definition can be documented by means of annotations. One such
      +annotation is the latex(_) annotation, where you can specify how to format
      +the given production when producing Latex output via the --output latex
      +option to krun, kast, and kprove.

      +

      There are three types of comments, which we discuss next.

      +

      Ordinary comments

      + +

      These use // or /* ... */, like in various programming languages. These
      +comments are completely ignored.

      +

      Document annotations

      + +

      Use the @ symbol right after // or /* in order for the comment to be
      +considered an annotation and thus be processed by the K tool when it
      +generates documentation.

      +

      As an example, we can go ahead and add such an annotation at the beginning
      +of the LAMBDA module, explaining how we define the syntax of this language.

      +

      Header annotations

      + +

      Use the ! symbol right after // or /* if you want the comment to be
      +considered a header annotation, that is, one which goes before
      +\begin{document} in the generated Latex. You typically need header
      +annotations to include macros, or to define a title, etc.

      +

      As an example, let us set a Latex length and then add a title and an
      +author to this K definition.

      +

      Compile the documentation and take a look at the results. Notice the title.

      +

      Feel free to now add lots of annotations to lambda.k.

      +

      Then compile and check the result. Depending on your PDF viewer, you
      +may also see a nice click-able table of contents, with all the sections
      +of your document. This could be quite convenient when you define large
      +languages, because it helps you jump to any part of the semantics.

      +

      Tutorial 1 is now complete. The next tutorial will take us through the
      +definition of a simple imperative language and will expose us to more
      +feature of the K framework and the K tool.

      +

      MOVIE (out of date) [6'07"]

      +

      Part 2: Defining IMP

      + +

      Here you will learn how to define a very simple imperative language in K
      +and the basics of how to work with configurations, cells, and computations.
      +Specifically, you will learn the following:

      +
        +
      • How to define languages using multiple modules.
      • +
      • How to define sequentially strict syntactic constructs.
      • +
      • How to use K's syntactic lists.
      • +
      • How to define, initialize and configure configurations.
      • +
      • How the language syntax is swallowed by the builtin K syntactic category.
      • +
      • The additional syntax of the K syntactic category.
      • +
      • How the strictness annotations are automatically desugared into rules.
      • +
      • The first steps of the configuration abstraction mechanism.
      • +
      +

      Like in the previous tutorial, this folder contains several lessons, each
      +adding new features to IMP. Do them in order. Also, make sure you completed
      +and understood the previous tutorial.

      +

      Defining a More Complex Syntax

      + +

      Here we learn how to define a more complex language syntax than LAMBDA's,
      +namely the C-like syntax of IMP. Also, we will learn how to define languages
      +using multiple modules, because we are going to separate IMP's syntax from
      +its semantics using modules. Finally, we will also learn how to use K's
      +builtin support for syntactic lists.

      +

      The K tool provides modules for grouping language features. In general, we
      +can organize our languages in arbitrarily complex module structures.
      +While there are no rigid requirements or even guidelines for how to group
      +language features in modules, we often separate the language syntax from the
      +language semantics in different modules.

      +

      In our case here, we start by defining two modules, IMP-SYNTAX and IMP, and
      +import the first in the second, using the keyword imports. As their names
      +suggest, we will place all IMP's syntax definition in IMP-SYNTAX and all its
      +semantics in IMP.

      +

      Note, however, that K does no more than simply includes all the
      +contents of the imported module in the one which imports it (making sure
      +that everything is only kept once, even if you import it multiple times).
      +In other words, there is currently nothing fancy in K tool's module system.

      +

      IMP has six syntactic categories, as shown in imp.k: AExp for arithmetic
      +expressions, BExp for Boolean expressions, Block for blocks, Stmt for
      +statements, Pgm for programs and Ids for comma-separated lists of
      +identifiers. Blocks are special statements, whose role is to syntactically
      +constrain the conditional statement and the while loop statement to only
      +take blocks as branches and body, respectively.

      +

      There is nothing special about arithmetic and Boolean expressions. They
      +are given the expected strictness attributes, except for <= and &&,
      +for demonstration purposes.

      +

      The <= is defined to be seqstrict, which means that it evaluates its
      +arguments in order, from left-to-right (recall that the strict operators
      +can evaluate their arguments in any, fully interleaved, orders). Like
      +strict, the seqstrict annotation can also be configured; for example, one
      +can specify in which arguments and in what order. By default, seqstrict
      +refers to all the arguments, in their left-to-right order. In our case here,
      +it is equivalent with seqstrict(1 2).

      +

      The && is only strict in its first argument, because we will give it a
      +short-circuited semantics (its second argument will only be evaluated when
      +the first evaluates to true). Recall the K tool also allows us to associate
      +LaTex attributes to constructs, telling the document generator how to display
      +them. For example, we associate <= the attribute latex({#1}\leq{#2}),
      +which makes it be displayed \leq everywhere in the generated LaTex
      +documentation.

      +

      In this tutorial we take the freedom to associate the various constructs
      +parsing precedences that we have already tested and we know work well, so that
      +we can focus on the semantics here instead of syntax. In practice, though,
      +you typically need to experiment with precedences until you obtain the desired
      +parser.

      +

      Blocks are defined using curly brackets, and they can either be empty or
      +hold a statement.

      +

      Nothing special about the IMP statements. Note that ; is an assignment
      +statement terminator, not a statement separator. Note also that blocks are
      +special statements.

      +

      An IMP program declares a comma-separated list of variables using the keyword
      +int like in C, followed by a semicolon ;, followed by a statement.
      +Syntactically, the idea here is that we can wrap any IMP program within a
      +main(){...} function and get a valid C program. IMP does not allow variable
      +declarations anywhere else except through this construct, at the top-level of
      +the program. Other languages provided with the K distribution (see, e.g., the
      +IMP++ language also discussed in this tutorial) remove this top-level program
      +construct of IMP and add instead variable declaration as a statement construct,
      +which can be used anywhere in the program, not only at the top level.

      +

      Note how we defined the comma-separated list of identifiers using
      +List{Id,","}. The K tool provides builtin support for generic syntactic
      +lists. In general,

      +
      syntax B ::= List{A,T}
      +
      +

      declares a new non-terminal, B, corresponding to T-separated sequences of
      +elements of A, where A is a non-terminal and T is a terminal. These
      +lists can also be empty, that is, IMP programs declaring no variable are also
      +allowed (e.g., int; {} is a valid IMP program). To instantiate and use
      +the K builtin lists, you should alias each instance with a (typically fresh)
      +non-terminal in your syntax, like we do with the Ids nonterminal.

      +

      Like with other K features, there are ways to configure the syntactic lists,
      +but we do not discuss them here.

      +

      Recall from Tutorial 1 (LAMBDA) that in order for strictness to work well
      +we also need to tell K which computations are meant to be results. We do
      +this as well now, in the module IMP: integers and Booleans are K results.

      +

      Kompile imp.k and test the generated parser by running some programs.
      +Since IMP is a fragment of C, you may want to select the C mode in your
      +editor when writing these programs. This will also give your the feel that
      +you are writing programs in a real programming language.

      +

      For example, here is sum.imp, which sums in sum all numbers up to n:

      +
      int n, sum;
      +n = 100;
      +sum=0;
      +while (!(n <= 0)) {
      +  sum = sum + n;
      +  n = n + -1;
      +}
      +
      +

      Now krun it and see how it looks parsed in the default k cell.

      +

      The program collatz.imp tests the Collatz conjecture for all numbers up to
      +m and accumulates the total number of steps in s:

      +
      int m, n, q, r, s;
      +m = 10;
      +while (!(m<=2)) {
      +  n = m;
      +  m = m + -1;
      +  while (!(n<=1)) {
      +    s = s+1;
      +    q = n/2;
      +    r = q+q+1;
      +    if (r<=n) {
      +      n = n+n+n+1;         // n becomes 3*n+1 if odd
      +    } else {n=q;}          //        of   n/2 if even
      +  }
      +}
      +
      +

      Finally, program primes.imp counts in s all the prime numbers up to m:

      +
      int i, m, n, q, r, s, t, x, y, z;
      +m = 10;  n = 2;
      +while (n <= m) {
      +  // checking primality of n and writing t to 1 or 0
      +  i = 2;  q = n/i;  t = 1;
      +  while (i<=q && 1<=t) {
      +    x = i;
      +    y = q;
      +    // fast multiplication (base 2) algorithm
      +    z = 0;
      +    while (!(x <= 0)) {
      +      q = x/2;
      +      r = q+q+1;
      +      if (r <= x) { z = z+y; } else {}
      +      x = q;
      +      y = y+y;
      +    } // end fast multiplication
      +    if (n <= z) { t = 0; } else { i = i+1;  q = n/i; }
      +  } // end checking primality
      +  if (1 <= t) { s = s+1; } else {}
      +  n = n+1;
      +}
      +
      +

      All the programs above will run once we define the semantics of IMP. If you
      +want to execute them now, wrap them in a main(){...} function and compile
      +them and run them with your favorite C compiler.

      +

      Before we move to the K semantics of IMP, we would like to make some
      +clarifications regarding the K builtin parser, kast. Although it is quite
      +powerful, you should not expect magic from it! While the K parser can parse
      +many non-trivial languages (see, for example, the KOOL language in
      +pl-tutorial/2_languages) in the K distribution), it was
      +never meant to be a substitute for real parsers. We often call the syntax
      +defined in K the syntax of the semantics, to highlight the fact that its
      +role is to serve as a convenient notation when writing the semantics, not
      +necessarily as a means to define concrete syntax of arbitrarily complex
      +programming languages. See the KERNELC language for an example on how to connect an external parser for concrete syntax to
      +the K tool.

      +

      The above being said, we strongly encourage you to strive to make the
      +builtin parser work with your desired language syntax! Do not give up
      +simply because you don't want to deal with syntactic problems. On the
      +contrary, fight for your syntax! If you really cannot define your desired
      +syntax because of tool limitations, we would like to know. Please tell us.

      +

      Until now we have only seen default configurations. In the next lesson we
      +will learn how to define a K custom configuration.

      +

      Go to Lesson 2, IMP: Defining a Configuration.

      +

      MOVIE (out of date) [09'15"]

      +

      Defining a Configuration

      + +

      Here we learn how to define a configuration in K. We also learn how to
      +initialize and how to display it.

      +

      As explained in the overview presentation on K, configurations are quite
      +important, because all semantic rules match and apply on them.
      +Moreover, they are the backbone of configuration abstraction, which allows
      +you to only mention the relevant cells in each semantic rule, the rest of
      +the configuration context being inferred automatically. The importance of
      +configuration abstraction will become clear when we define more complex
      +languages (even in IMP++). IMP does not really need it. K configurations
      +are constructed making use of cells, which are labeled and can be arbitrarily
      +nested.

      +

      Configurations are defined with the keyword configuration. Cells are
      +defined using an XML-ish notation stating clearly where the cell starts
      +and where it ends.

      +

      While not enforced by the tool, we typically like to put the entire
      +configuration in a top-level cell, called T. So let's define it:

      +
      configuration <T>...</T>
      +
      +

      Cells can have other cells inside. In our case of IMP, we need a cell to
      +hold the remaining program, cell which we typically call k, and a cell to
      +hold the program state. Let us add them:

      +
      configuration <T> <k>...</k> <state>...</state> </T>
      +
      +

      K allows us to also specify how to initialize a configuration at the same
      +time with declaring the configuration. All we have to do is to fill in
      +the contents of the cells with some terms. The syntactic categories of
      +those terms will also indirectly define the types of the corresponding
      +cells.

      +

      For example, we want the k cell to initially hold the program that is passed
      +to krun. K provides a builtin configuration variable, called $PGM, which
      +is specifically designed for this purpose: krun will place its program there
      +(after it parses it, or course). The K tool allows users to define their own
      +configuration variables, too, which can be used to develop custom
      +initializations of program configurations with the help of krun; this can be
      +quite useful when defining complex languages, but we do not discuss it in
      +this tutorial.

      +
      configuration <T> <k> $PGM </k> <state>...</state>  </T>
      +
      +

      Moreover, we want the program to be a proper Pgm term (because we do not
      +want to allow krun to take fragments of programs, for example, statements).
      +Therefore, we tag $PGM with the desired syntactic category, Pgm:

      +
      configuration <T> <k> $PGM:Pgm </k> <state>...</state>  </T>
      +
      +

      Like for other variable tags in K, a run-time check will be performed and the
      +semantics will get stuck if the passed term is not a well-formed program.

      +

      We next tell K that the state cell should be initialized with the empty map:

      +
      configuration <T> <k> $PGM:Pgm </k> <state> .Map </state>  </T>
      +
      +

      Recall that in K . stands for nothing. However, since there are various
      +types of nothing, to avoid confusion we can suffix the . with its desired
      +type. K has several builtin data-types, including lists, sets, bags, and
      +maps. .Map is the empty map.

      +

      Kompile imp.k and run several programs to see how the configuration is
      +initialized as desired.

      +

      When configurations get large, and they do when defining large programming
      +languages, you may want to color the cells in order to more easily distinguish
      +them. This can be easily achieved using the color cell attribute, following
      +again an XML-ish style:

      +
      configuration <T color="yellow">
      +                <k color="green"> $PGM:Pgm </k>
      +                <state color="red"> .Map </state>
      +              </T>
      +
      +

      In the next lesson we will learn how to write rules that involve cells.

      +

      Go to Lesson 3, IMP: Computations, Results, Strictness; Rules Involving Cells.

      +

      MOVIE (out of date) [04'21"]

      +

      Computations, Results, Strictness; Rules Involving Cells

      + +

      In this lesson we will learn about the syntactic category K of computations,
      +about how strictness attributes are in fact syntactic sugar for rewrite rules
      +over computations, and why it is important to tell the tool which
      +computations are results. We will also see a K rule that involves cells.

      +

      K Computations

      + +

      Computation structures, or more simply computations, extend the abstract
      +syntax of your language with a list structure using ~> (read followed
      +by
      or and then, and written \curvearrowright in Latex) as a separator.
      +K provides a distinguished sort, K, for computations. The extension of the
      +abstract syntax of your language into computations is done automatically by
      +the K tool when you declare constructs using the syntax keyword, so the K
      +semantic rules can uniformly operate only on terms of sort K. The intuition
      +for computation structures of the form

      +
      t1 ~> t2 ~> ... ~> tn
      +
      +

      is that the listed tasks are to be processed in order. The initial
      +computation typically contains the original program as its sole task, but
      +rules can then modify it into task sequences, as seen shortly.

      +

      Strictness in Theory

      + +

      The strictness attributes, used as annotations to language constructs,
      +actually correspond to rules over computations. For example, the
      +strict(2) attribute of the assignment statement corresponds to the
      +following two opposite rules (X ranges over Id and A over AExp):

      +
      X=A; => A ~> X=[];
      +A ~> X=[]; => X=A;
      +
      +

      The first rule pulls A from the syntactic context X=A; and schedules it
      +for processing. The second rule plugs A back into its context.
      +Inspired from the chemical abstract machine, we call rules of the first
      +type above heating rules and rules of the second type cooling rules.
      +Similar rules are generated for other arguments in which operations are
      +strict. Iterative applications of heating rules eventually bring to the
      +top of the computation atomic tasks, such as a variable lookup, or a
      +builtin operation, which then make computational progress by means of other
      +rules. Once progress is made, cooling rules can iteratively plug the result
      +back into context, so that heating rules can pick another candidate for
      +reduction, and so on and so forth.

      +

      When operations are strict only in some of their arguments, the corresponding
      +positions of the arguments in which they are strict are explicitly enumerated
      +in the argument of the strict attribute, e.g., strict(2) like above, or
      +strict(2 3) for an operation strict in its second and third arguments, etc.
      +If an operation is simply declared strict then it means that it is strict
      +in all its arguments. For example, the strictness of addition yields:

      +
      A1+A2 => A1 ~> []+A2
      +A1 ~> []+A2 => A1+A2
      +A1+A2 => A2 ~> A1+[]
      +A2 ~> A1+[] => A1+A2
      +
      +

      It can be seen that such heating/cooling rules can easily lead to
      +non-determinism, since the same term may be heated many different ways;
      +these different evaluation orders may lead to different behaviors in some
      +languages (not in IMP, because its expressions do not have side effects,
      +but we will experiment with non-determinism in its successor, IMP++).

      +

      A similar desugaring applies to sequential strictness, declared with the
      +keyword seqstrict. While the order of arguments of strict is irrelevant,
      +it matters in the case of seqstrict: they are to be evaluated in the
      +specified order; if no arguments are given, then they are assumed by default
      +to be evaluated from left-to-right. For example, the default heating/cooling
      +rules associated to the sequentially strict <= construct above are
      +(A1, A2 range over AExp and I1 over Int):

      +
      A1<=A2 => A1 ~> []<=A2
      +A1 ~> []<=A2 => A1<=A2
      +I1<=A2 => A2 ~> I1<=[]
      +A2 ~> I1<=[] => I1<=A2
      +
      +

      In other words, A2 is only heated/cooled after A1 is already evaluated.

      +

      While the heating/cooling rules give us a nice and uniform means to define
      +all the various allowable ways in which a program can evaluate, all based
      +on rewriting, the fact that they are reversible comes with a serious practical
      +problem: they make the K definitions unexecutable, because they lead to
      +non-termination.

      +

      Strictness in Practice; K Results

      + +

      To break the reversibility of the theoretical heating/cooling rules, and,
      +moreover, to efficiently execute K definitions, the current implementation of
      +the K tool relies on users giving explicit definitions of their languages'
      +results.

      +

      The K tool provides a predicate isKResult, which is automatically defined
      +as we add syntactic constructs to KResult (in fact the K tool defines such
      +predicates for all syntactic categories, which are used, for example, as
      +rule side conditions to check user-declared variable memberships, such as
      +V:Val stating that V belongs to Val).

      +

      The kompile tool, depending upon what it is requested to do, changes the
      +reversible heating/cooling rules corresponding to evaluation strategy
      +definitions (e.g., those corresponding to strictness attributes) to avoid
      +non-termination. For example, when one is interested in obtaining an
      +executable model of the language (which is the default compilation mode of
      +kompile), then heating is performed only when the to-be-pulled syntactic
      +fragment is not a result, and the corresponding cooling only when the
      +to-be-plugged fragment is a result. In this case, e.g., the heating/cooling
      +rules for assignment are modified as follows:

      +
      X=A; => A ~> X=[];  requires notBool isKResult(A)
      +A ~> X=[]; => X=A;  requires isKResult(A)
      +
      +

      Note that non-termination of heating/cooling is avoided now. The only thing
      +lost is the number of possible behaviors that a program can manifest, but
      +this is irrelevant when all we want is one behavior.

      +

      As will be discussed in the IMP++ tutorial, the heating/cooling rules are
      +modified differently by kompile when we are interested in other aspects
      +of the language definition, such us, for example, in a search-able model that
      +comprises all program behaviors. This latter model is obviously more general
      +from a theoretical perspective, but, in practice, it is also slower to execute.
      +The kompile tool strives to give you the best model of the language for the
      +task you are interested in.

      +

      Can't Results be Inferred Automatically?

      + +

      This is a long story, but the short answer is: No!. Maybe in some cases
      +it is possible, but we prefer to not attempt it in the K tool. For example,
      +you most likely do not want any stuck computation to count as a result,
      +since some of them can happen simply because you forgot a semantic rule that
      +could have further reduce it! Besides, in our experience with defining large
      +languages, it is quite useful to take your time and think of what the results
      +of your language's computations are. This fact in itself may help you improve
      +your overall language design. We typically do it at the same time with
      +defining the evaluation strategies of our languages. Although in theory K
      +could infer the results of your language as the stuck computations, based on
      +the above we have deliberately decided to not provide this feature, in spite
      +of requests from some users. So you currently do have to explicitly define
      +your K results if you want to effectively use the K tool. Note, however, that
      +theoretical definitions, not meant to be executed, need not worry about
      +defining results (that's because in theory semantic rules apply modulo the
      +reversible heating/cooling rules, so results are not necessary).

      +

      A K Rule Involving Cells

      + +

      All our K rules so far in the tutorial were of the form

      +
      rule left => right requires condition
      +
      +

      where left and right were syntactic, or more generally computation, terms.

      +

      Here is our first K rule explicitly involving cells:

      +
      rule <k> X:Id => I ...</k> <state>... X |-> I ...</state>
      +
      +

      Recall that the k cell holds computations, which are sequences of tasks
      +separated by ~>. Also, the state cell holds a map, which is a set of
      +bindings, each binding being a pair of computations (currently, the
      +K builtin data-structures, like maps, are untyped; or, said differently,
      +they are all over the type of computations, K).

      +

      Therefore, the two cells mentioned in the rule above hold collections
      +of things, ordered or not. The ...s, which we also call cell frames,
      +stand for more stuff there, which we do not care about.

      +

      The rewrite relation => is allowed in K to appear anywhere in a term, its
      +meaning being that the corresponding subterm is rewritten as indicated in the
      +shown context. We say that K's rewriting is local.

      +

      The rule above says that if the identifier X is the first task in the k
      +cell, and if X is bound to I somewhere in the state, then X rewrites
      +to I locally in the k cell. Therefore, IMP variables need to be already
      +declared when looked up.

      +

      Of course, the K rule above can be translated into an ordinary rewrite rule
      +of the form

      +
      rule <k> X ~> Rest </k> <state> Before (X |-> I) After </state>
      +  => <k> I ~> Rest </k> <state> Before (X |-> I) After </state>
      +
      +

      Besides being more verbose and thus tedious to write, this ordinary rule
      +is also more error-prone; for example, we may forget the Rest variable
      +in the right-hand-side, etc. Moreover, the concurrent semantics of K
      +allows for its rules to be interpreted as concurrent transactions, where
      +the context is the read-only component of the transaction, while the
      +subterms which are rewritten are read/write component of the transaction;
      +thus, K rule instances can apply concurrently if they only overlap
      +on read-only parts, while they cannot if regarded as ordinary rewrite logic
      +rules. Note: our current implementation of the K tool is not concurrent,
      +so K rules are in fact desugared as normal rewrite rules in the K tool.

      +

      Kompile imp.k using a documentation option and check out how the K rule
      +looks in the generated document. The ... frames are displayed as cell
      +tears, metaphorically implying that those parts of the cells that we
      +do not care about are torn away. The rewrite relation is replaced by a
      +horizontal line: specifically, the subterm which rewrites, X, is
      +underlined, and its replacement is written underneath the line.

      +

      In the next lesson we define the complete K semantics of IMP and
      +run the programs we parsed in the first lesson.

      +

      Go to Lesson 4, IMP: Configuration Abstraction, Part 1; Types of Rules.

      +

      MOVIE (out of date) [10'30"]

      +

      Configuration Abstraction, Part 1; Types of Rules

      + +

      Here we will complete the K definition of IMP and, while doing so, we will
      +learn the very first step of what we call configuration abstraction.

      +

      The IMP Semantic Rules

      + +

      Let us add the remaining rules, in the order in which the language constructs
      +were defined in IMP-SYNTAX.

      +

      The rules for the arithmetic and Boolean constructs are self-explanatory.
      +Note, however, that K will infer the correct sorts of all the variables in
      +these rules, because they appear as arguments of the builtin operations
      +(_+Int_, etc.). Moreover, the inferred sorts will be enforced dynamically.
      +Indeed, we do not want to apply the rule for addition, for example, when the
      +two arguments are not integers. In the rules for &&, although we prefer to
      +not do it here for simplicity, we could have eliminated the dynamic check by
      +replacing B (and similarly for _) with B:K. Indeed, it can be shown
      +that whenever any of these rules apply, B (or _) is a BExp anyway.
      +That's because there is no rule that can touch such a B (or _); this
      +will become clearer shortly, when we discuss the first step of configuration
      +abstraction. Therefore, since we know that B will be a BExp anyway, we
      +could save the time it takes to check its sort; such times may look minor,
      +but they accumulate, so some designers may prefer to avoid run-time checks
      +whenever possible.

      +

      The block rules are trivial. However, the rule for non-empty blocks is
      +semantically correct only because we do not have local variable declarations
      +in IMP. We will have to change this rule in IMP++.

      +

      The assignment rule has two =>: one in the k cell dissolving the
      +assignment statement, and the other in the state cell updating the value of
      +the assigned variable. Note that the one in the state is surrounded by
      +parentheses: (_ => I). That is because => is greedy: it matches as much
      +as it can to the left and to the right, until it reaches the cell boundaries
      +(closed or open). If you want to limit its scope, or for clarity, you can use
      +parentheses like here.

      +

      The rule for sequential composition simply desugars S1 S2 into S1 ~> S2.
      +Indeed, the two have exactly the same semantics. Note that statements
      +evaluate to nothing (.), so once S1 is processed in S1 ~> S2, then the
      +next task is automatically S2, without wasting any step for the transition.

      +

      The rules for the conditional and while statements are clear. One thing to
      +keep in mind now is that the while unrolling rule will not apply
      +indefinitely in the positive branch of the resulting conditional, because
      +of K's configuration abstraction, which will be discussed shortly.

      +

      An IMP program declares a set of variables and then executes a
      +statement in the state obtained after initializing all those variables
      +to 0. The rules for programs initialize the declared variables one by one,
      +checking also that there are no duplicates. We check for duplicates only for
      +demonstration purposes, to illustrate the keys predefined operation that
      +returns the set of keys of a map, and the set membership operation in.
      +In practice, we typically define a static type checker for our language,
      +which we execute before the semantics and reject inappropriate programs.

      +

      The use of the .Ids in the second rule is not necessary. We could have
      +written int; S instead of int .Ids; S and the K tool would parse it and
      +kompile the definition correctly, because it uses the same parser used for
      +parsing programs also to parse the semantics. However, we typically prefer to
      +explicitly write the nothing values in the semantics, for clarity;
      +the parser has been extended to accept these. Note that the first rule
      +matches the entire k cell, because int_;_ is the top-level program
      +construct in IMP, so there is nothing following it in the computation cell.
      +The anonymous variable stands for the second argument of this top-level program
      +construct, not for the rest of the computation. The second rule could have
      +also been put in a complete k cell, but we preferred not to, for simplicity.

      +

      Our IMP semantics is now complete, but there are a few more things that we
      +need to understand and do.

      +

      Configuration Abstraction, Part 1

      + +

      First, let us briefly discuss the very first step of configuration abstraction.
      +In K, all semantic rules are in fact rules between configurations. As soon
      +explained in the IMP++ tutorial, the declared configuration cell structure is
      +used to automatically complete the missing configuration parts in rules.
      +However, many rules do not involve any cells, being rules between syntactic
      +terms (of sort K); for example, we had only three rules involving cells in our
      +IMP semantics. In this case, the k cell will be added automatically and the
      +actual rewrite will happen on top of the enclosed computation. For example,
      +the rule for the while loop is automatically translated into the following:

      +
      rule <k> while (B) S => if (B) {S while (B) S} else {} ...</k>
      +
      +

      Since the first task in computations is what needs to be done next, the
      +intuition for this rule completion is that the syntactic transition
      +only happens when the term to rewrite is ready for processing. This explains,
      +for example, why the while loop unrolling does not indefinitely apply in the
      +positive branch of the conditional: the inner while loop is not ready for
      +evaluation yet. We call this rule completion process, as well as other
      +similar ones, configuration abstraction. That is because the incomplete
      +rule abstracts away the configuration structure, thus being easier to read.
      +As seen soon when we define IMP++, configuration abstraction is not only a
      +user convenience; it actually significantly increases the modularity of our
      +definitions. The k-cell-completion is only the very first step, though.

      +

      If you really want certain rewrites over syntactic terms to apply
      +anywhere they match, then you should tag the rule with the attribute
      +anywhere, which was discussed in Tutorial 1, Lesson 2.5.

      +

      Kompile and then krun the programs that you only parsed in Lesson 1. They
      +should all execute as expected. The state cell shows the final state
      +of the program. The k cell shows the final code contents, which should be
      +empty whenever the IMP program executes correctly.

      +

      Kompile also with the documentation option and take a look at the generated
      +documentation. The assignment rule should particularly be of interest,
      +because it contains two local rewrites.

      +

      In the next lesson we comment the IMP definition and conclude this tutorial.

      +

      Go to Lesson 5, IMP: Completing and Documenting IMP.

      +

      MOVIE (out of date) [09'16"]

      +

      Completing and Documenting IMP

      + +

      We here learn no new concepts, but it is a good moment to take a break
      +and contemplate what we learned so far.

      +

      Let us add lots of formal annotations to imp.k.

      +

      Once we are done with the annotations, we kompile with the documentation
      +option and then take a look at the produced document. We often call these
      +documents language posters. Depending on how much information you add to
      +these language posters, they can serve as standalone, formal presentations
      +of your languages. For example, you can print them as large posters and
      +post them on the wall, or in poster sessions at conferences.

      +

      This completes our second tutorial. The next tutorials will teach us more
      +features of the K framework, such as how to define languages with complex
      +control constructs (like callcc), languages which are concurrent, and so on.

      +

      MOVIE (out of date) [03'45"]

      +

      Part 3: Defining LAMBDA++

      + +

      Here you will learn how to define language constructs which abruptly change
      +the execution control flow, and how to define language semantics following
      +and environment/store style. Specifically, you will learn the following:

      +
        +
      • How to define constructs like callcc, which allow you to take snapshots of
        +program executions and to go back in time at any moment.
      • +
      • How to define languages in an environment/store style.
      • +
      • Some basic notions about the use of closures and closure-like semantic
        +structures to save and restore execution environments.
      • +
      • Some basic intuitions about reusing existing semantics in new languages,
        +as well as some of the pitfalls in doing so.
      • +
      +

      Abrupt Changes of Control

      + +

      Here we add call-with-current-continuation (callcc) to the definition of
      +LAMBDA completed in Tutorial 1, and call the resulting language LAMBDA++.
      +While doing so, we will learn how to define language constructs that
      +abruptly change the execution control flow.

      +

      Take over the lambda.k definition from Lesson 8 in Part 1 of this Tutorial,
      +which is the complete definition of the LAMBDA language, but without the
      +comments.

      +

      callcc is a good example for studying the capabilities of a framework to
      +support abrupt changes of control, because it is one of the most
      +control-intensive language constructs known. Scheme is probably the first
      +programming language that incorporated the callcc construct, although
      +similar constructs have been recently included in many other languages in
      +one form or another.

      +

      Here is a quick description: callcc e passes the remaining computation
      +context, packaged as a function k, to e (which is expected to be a function);
      +if during its evaluation e passes any value to k, then the current
      +execution context is discarded and replaced by the one encoded by k and
      +the value is passed to it; if e evaluates normally to some value v and
      +passes nothing to k in the process, then v is returned as a result of
      +callcc e and the execution continues normally. For example, we want the
      +program callcc-jump.lambda:

      +
      (callcc (lambda k . ((k 5) + 2))) + 10
      +
      +

      to evaluate to 15, not 17! Indeed, the computation context [] + 10 is
      +passed to callcc's argument, which then sends it a 5, so the computation
      +resumes to 5 + 10. On the other hand, the program callcc-not-jump.lambda

      +
      (callcc (lambda k . (5 + 2))) + 10
      +
      +

      evaluates to 17.

      +

      If you like playing games, you can metaphorically think of callcc e as
      +saving your game state in a file and passing it to your friend e.
      +Then e can decide at some moment to drop everything she was doing, load
      +your game and continue to play it from where you were.

      +

      The behavior of many popular control-changing constructs can be obtained
      +using callcc. The program callcc-return.lambda shows, for example, how to
      +obtain the behavior of a return statement, which exits the current execution
      +context inside a function and returns a value to the caller's context:

      +
      letrec f x = callcc (lambda return . (
      +  f (if (x <= 0) then ((return 1) / 0) else 2)
      +))
      +in (f -3)
      +
      +

      This should evaluate to 1, in spite of the recursive call to f
      +and of the division by zero! Note that return is nothing but a variable
      +name, but one which is bound to the current continuation at the beginning of
      +the function execution. As soon as 1 is passed to return, the computation
      +jumps back in time to where callcc was defined! Change -3 to 3 and the
      +program will loop forever.

      +

      callcc is quite a powerful and beautiful language construct, although one
      +which is admittedly hard to give semantics to in some frameworks.
      +But not in K 😃 Here is the entire K syntax and semantics of callcc:

      +
      syntax Exp ::= "callcc" Exp  [strict]
      +syntax Val ::= cc(K)
      +rule <k> (callcc V:Val => V cc(K)) ~> K </k>
      +rule <k> cc(K) V ~> _ =>  V ~> K </k>
      +
      +

      Let us first discuss the annotated syntax. We declared callcc strict,
      +because its argument may not necessarily be a function yet, so it may need
      +to be evaluated. As explained above, we need to encode the remaining
      +computation somehow and pass it to callcc's argument. More specifically,
      +since LAMBDA is call-by-value, we have to encode the remaining computation as
      +a value. We do not want to simply subsort computations to Val, because there
      +are computations which we do not want to be values. A simple solution to
      +achieve our goal here is to introduce a new value construct, say cc (from
      +current-continuation), which holds any computation.

      +

      Note that, inspired from SDF,
      +K allows you to define the syntax of helping semantic operations, like cc,
      +more compactly. Typically, we do not need a fancy syntax for such operators;
      +all we need is a name, followed by open parenthesis, followed by a
      +comma-separated list of arguments, followed by closed parenthesis. If this
      +is the syntax that you want for a particular construct, then K allows you to
      +drop all the quotes surrounding the terminals, as we did above for cc.

      +

      The semantic rules do exactly what the English semantics of callcc says.
      +Note that here, unlike in our definition of LAMBDA in Tutorial 1, we had
      +to mention the cell <k/> in our rules. This is because we need to make sure
      +that we match the entire remaining computation, not only a fragment of it!
      +For example, if we replace the two rules above with

      +
      rule (callcc V:Val => V cc(K)) ~> K
      +rule cc(K) V ~> _ =>  V ~> K
      +
      +

      then we get a callcc which is allowed to non-deterministically pick a
      +prefix of the remaining computation and pass it to its argument, and then
      +when invoked within its argument, a non-deterministic prefix of the new
      +computation is discarded and replaced by the saved one. Wow, that would
      +be quite a language! Would you like to write programs in it? 😃

      +

      Consequently, in K we can abruptly change the execution control flow of a
      +program by simply changing the contents of the <k/> cell. This is one of
      +the advantages of having an explicit representation of the execution context,
      +like in K or in reduction semantics with evaluation contexts. Constructs like
      +callcc are very hard and non-elegant to define in frameworks such as SOS,
      +because those implicitly represent the execution context as proof context,
      +and the latter cannot be easily changed.

      +

      Now that we know how to handle cells in configurations and use them in rules,
      +in the next lesson we take a fresh look at LAMBDA and define it using
      +an environment-based style, which avoids the complexity of substitution
      +(e.g., having to deal with variable capture) and is closer in spirit to how
      +functional languages are implemented.

      +

      Go to Lesson 2, LAMBDA++: Semantic (Non-Syntactic) Computation Items.

      +

      MOVIE (out of date) [6'28"]

      +

      Semantic (Non-Syntactic) Computation Items

      + +

      In this lesson we start another semantic definition of LAMBDA++, which
      +follows a style based on environments instead of substitution. In terms of
      +K, we will learn how easy it is to add new items to the syntactic category
      +of computations K, even ones which do not have a syntactic nature.

      +

      An environment binds variable names of interest to locations where their
      +values are stored. The idea of environment-based definitions is to maintain
      +a global store mapping locations to values, and then have environments
      +available when we evaluate expressions telling where the variables are
      +located in the store. Since LAMBDA++ is a relatively simple language, we
      +only need to maintain one global environment. Following a similar style
      +like in IMP, we place all cells into a top cell T:

      +
      configuration <T>
      +                <k> $PGM:Exp </k>
      +                <env> .Map </env>
      +                <store> .Map </store>
      +              </T>
      +
      +

      Recall that $PGM is where the program is placed by krun after parsing. So
      +the program execution starts with an empty environment and an empty store.

      +

      In environment-based definitions of lambda-calculi, lambda abstractions
      +evaluate to so-called closures:

      +
      rule <k> lambda X:Id . E => closure(Rho,X,E) ...</k>
      +     <env> Rho </env>
      +
      +

      A closure is like a lambda abstraction, but it also holds the environment
      +in which it was declared. This way, when invoked, a closure knows where to
      +find in the store the values of all the variables that its body expression
      +refers to. We will define the lookup rule shortly.

      +

      Therefore, unlike in the substitution-based definitions of LAMBDA and
      +LAMBDA++, neither the lambda abstractions nor the identifiers are values
      +anymore here, because they both evaluate further: lambda abstractions to
      +closures and identifiers to their values in the store. In fact, the only
      +values at this moment are the closures, and they are purely semantic entities,
      +which cannot be used explicitly in programs. That's why we modified the
      +original syntax of the language to include no Val syntactic category
      +anymore, and that's why we need to add closures as values now; same like
      +before, we add a Val syntactic category which is subsorted
      +to KResult. In general, whenever you have any strictness attributes,
      +your should also define some K results.

      +

      Invoking a closure is a bit more involved than the substitution-based
      +beta-reduction: we need to switch to the closure's environment, then create a
      +new, or fresh, binding for the closure's parameter to the value passed to the
      +closure, then evaluate the closure's body, and then switch back to the
      +caller's environment, which needs to be stored somewhere in the meanwhile.
      +We can do all these with one rule:

      +
      rule <k> closure(Rho,X,E) V:Val => E ~> Rho' ...</k>
      +     <env> Rho' => Rho[X <- !N] </env>
      +     <store>... .Map => (!N:Int |-> V) ...</store>
      +
      +

      Therefore, we atomically do all the following:

      +
        +
      • switch the computation to the closure's body, E, followed by a
        +caller-environment-recovery task Rho' (note that Rho' is the
        +current environment),
      • +
      • generate a fresh location !N (the ! is important, we discuss it below),
        +bind X to !N in closure's environment and switch the current environment
        +Rho' to that one,
      • +
      • write the value passed to the closure, V, at location !N.
      • +
      +

      This was the most complex K rule we've seen so far in the tutorial. Note,
      +however, that this one rule achieves a lot. It is, in fact, quite compact
      +considering how much it does. Note also that everything that this K rule
      +mentions is needed also conceptually in order to achieve this task, so it
      +is minimal from that point of view. That would not be the case if we
      +used, instead, a conventional rewrite rule, because we would have had to
      +mention the remaining store, say Sigma, in both sides of the rule, to say
      +it stays unchanged. Here we just use ....

      +

      The declaration of the fresh variable above, !N, is new and needs
      +some explanation. First, note that !N appears only in the right-hand-side
      +terms in the rule, that is, it is not matched when the rule is applied.
      +Instead, a fresh Nat element is generated each time the rule is applied.
      +In K, we can define syntactic categories which have the capability to
      +generate fresh elements like above, using unbound variables whose name starts
      +with a !. The details of how to do that are beyond the scope of this
      +tutorial (see Tutorial 6). All we need to know here is that an arbitrary
      +fresh element of that syntactic category is generated each time the rule
      +is applied. We cannot rely on the particular name or value of the generated
      +element, because that can change with the next version of the K tool, or
      +even from execution to execution with the same version. All you can rely
      +on is that each newly generated element is distinct from the previously
      +generated elements for the same syntactic category.

      +

      Unlike in the substitution-based definition, we now also need a lookup rule:

      +
      rule <k> X => V ...</k>
      +     <env>... X |-> N ...</env>
      +     <store>... N |-> V ...</store>
      +
      +

      This rule speaks for itself: replace X by the value V located in the store
      +at X's location N in the current environment.

      +

      The only thing left to define is the auxiliary environment-recovery operation:

      +

      rule _:Val ~> (Rho => .) ... _ => Rho

      +

      When the item preceding the environment recovery task Rho in the
      +computation becomes a value, replace the current environment with Rho
      +and dissolve Rho from the computation.

      +

      Let us kompile and ... fail:

      +
      kompile lambda
      +
      +

      gives a parsing error saying that V:Val does not fit there in the closure
      +invocation rule. That's because Val and Exp are currently completely
      +disconnected, so K rightfully complains that we want to apply a value to
      +another one, because application was defined to work with expressions, not
      +values. What we forgot here was to state that Exp includes Val:

      +
      syntax Exp ::= Val
      +
      +

      Now everything works, but it is a good time to reflect a bit.

      +

      So we added closures, which are inherently semantic entities, to the syntax
      +of expressions. Does that mean that we can now write LAMBDA programs with
      +closures in them? Interestingly, with our current definition of LAMBDA,
      +which purposely did not follow the nice organization of IMP into syntax and
      +semantic modules, and with K's default parser, kast, you can. But you are
      +not supposed to speculate this! In fact, if you use an external parser, that
      +parser will reject programs with explicit closures. Also, if we split the
      +LAMBDA definition into two modules, one called LAMBDA-SYNTAX containing
      +exclusively the desired program syntax and one called LAMBDA importing the
      +former and defining the syntax of the auxiliary operations and the semantics,
      +then even K's default parser will reject programs using auxiliary syntactic
      +constructs.

      +

      Indeed, when you kompile a language, say lang.k, the tool will by default
      +attempt to find a module LANG-SYNTAX and generate the program parser from
      +that. If it cannot find it, then it will use the module LANG instead. There
      +are also ways to tell kompile precisely which syntax module you want to use
      +for the program parser if you don't like the default convention.
      +See kompile --help.

      +

      Another insightful thought to reflect upon, is the relationship between your
      +language's values and other syntactic categories. It is often the case that
      +values form a subset of the original language syntax, like in IMP (Part 2 of
      +the tutorial), but sometimes that is not true, like in our case here. When
      +that happens, in order for the semantics to be given smoothly and uniformly
      +using the original syntax, you need to extend your language's original
      +syntactic categories with the new values. The same holds true in other
      +semantic approaches, not only in K, even in ones which are considered purely
      +syntactic. As it should be clear by now, K does not enforce you to use a
      +purely syntactic style in your definitions; nevertheless, K does allow you to
      +develop purely syntactic definitions, like LAMBDA in Part 1 of the tutorial,
      +if you prefer those.

      +

      krun some programs, such as those provided in Lesson 1 of the LAMBDA
      +tutorial (Part 1). Note the closures, both as results in the <k/> cell,
      +and as values in the store. Also, since variables are not values anymore,
      +expressions that contain free variables may get stuck with one of those on
      +top of their computation. See, for example, free-variable-capture.lambda,
      +which gets stuck on z, because z is free, so it cannot evaluate it.
      +If you want, you can go ahead and manually provide a configuration with
      +z mapped to some location in the environment and that location mapped to
      +some value in the store, and then you can also execute this program. The
      +program omega.lambda should still loop.

      +

      Although we completely changed the definitional style of LAMBDA, the semantics
      +of the other constructs do not need to change, as seen in the next lesson.

      +

      Go to Lesson 3, LAMBDA++: Reusing Existing Semantics.

      +

      MOVIE (out of date) [8'02"]

      +

      Reusing Existing Semantics

      + +

      In this lesson we will learn that, in some cases, we can reuse existing
      +semantics of language features without having to make any change!

      +

      Although the definitional style of the basic LAMBDA language changed quite
      +radically in our previous lesson, compared to its original definition in
      +Part 1 of the tutorial, we fortunately can reuse a large portion of the
      +previous definition. For example, let us just cut-and-paste the rest of the
      +definition from Lesson 7 in Part 1 of the tutorial.

      +

      Let us kompile and krun all the remaining programs from Part 1 of the
      +tutorial. Everything should work fine, although the store contains lots of
      +garbage. Garbage collection is an interesting topic, but we do not do it
      +here. Nevertheless, much of this garbage is caused by the intricate use of
      +the fixed-point combinator to define recursion. In a future lesson in this
      +tutorial we will see that a different, environment-based definition of
      +fixed-points will allocate much less memory.

      +

      One interesting question at this stage is: how do we know when we can reuse
      +an existing semantics of a language feature? Well, I'm afraid the answer is:
      +we don't. In the next lesson we will learn how reuse can fail for quite subtle
      +reasons, which are impossible to detect statically (and some non-experts may
      +fail to even detect them at all).

      +

      Go to Lesson 4, LAMBDA++: Do Not Reuse Blindly!.

      +

      MOVIE (out of date) [3'21"]

      +

      Do Not Reuse Blindly!

      + +

      It may be tempting to base your decision to reuse an existing semantics of
      +a language feature solely on syntactic considerations; for example, to reuse
      +whenever the parser does not complain. As seen in this lesson, this could
      +be quite risky.

      +

      Let's try (and fail) to reuse the definition of callcc from Lesson 1:

      +
      syntax Exp ::= "callcc" Exp  [strict]
      +syntax Val ::= cc(K)
      +rule <k> (callcc V:Val => V cc(K)) ~> K </k>
      +rule <k> cc(K) V ~> _ =>  V ~> K </k>
      +
      +

      The callcc examples that we tried in Lesson 1 work, so it may look it works.

      +

      However, the problem is that cc(K) should also include an environment,
      +and that environment should also be restored when cc(K) is invoked.
      +Let's try to illustrate this bug with callcc-env1.lambda

      +
      let x = 1 in
      +  ((callcc lambda k . (let x = 2 in (k x))) + x)
      +
      +

      where the second argument of +, x, should be bound to the top x, which
      +is 1. However, since callcc does not restore the environment, that x
      +should be looked up in the wrong, callcc-inner environment, so we should see
      +the overall result 4.

      +

      Hm, we get the right result, 3 ... (Note: you may get 4, depending on
      +your version of K and platform; but both 3 and 4 are possible results, as
      +explained below and seen in the tests). How can we get 3? Well, recall that
      ++ is strict, which means that it can evaluate its arguments in any order.
      +It just happened that in the execution that took place above its second
      +argument was evaluated first, to 1, and then the callcc was evaluated, but
      +its cc value K had already included the 1 instead of x ... In Part 4 of
      +the tutorial we will see how to explore all the non-deterministic behaviors of
      +a program; we could use that feature of K to debug semantics, too.
      +For example, in this case, we could search for all behaviors of this program
      +and we would indeed get two possible value results: 3 and 4.

      +

      One may think that the problem is the non-deterministic evaluation order
      +of +, and thus that all we need to do is to enforce a deterministic order
      +in which the arguments of + are evaluated. Let us follow this path to
      +see what happens. There are two simple ways to make the evaluation order
      +of +'s arguments deterministic. One is to make + seqstrict in the
      +semantics, to enforce its evaluation from left-to-right. Do it and then
      +run the program above again; you should get only one behavior for the
      +program above, 4, which therefore shows that copying-and-pasting our old
      +definition of callcc was incorrect. However, as seen shortly, that only
      +fixed the problem for the particular example above, but not in general.
      +Another conventional approach to enforce the desired evaluation order is to
      +modify the program to enforce the left-to-right evaluation order using let
      +binders, as we do in callcc-env2.lambda:

      +
      let x = 1 in
      +  let a = callcc lambda k . (let x = 2 in (k x)) in
      +    let b = x in
      +      (a + b)
      +
      +

      With your installation of K you may get the "expected" result 4 when you
      +execute this program, so it may look like our non-deterministic problem is
      +fixed. Unfortunately, it is not. Using the K tool to search for all the
      +behaviors in the program above reveals that the final result 3 is still
      +possible. Moreover, both the 3 and the 4 behaviors are possible regardless
      +of whether + is declared to be seqstrict or just strict. How is that
      +possible? The problem is now the non-deterministic evaluation strategy of
      +the function application construct. Indeed, recall that the semantics of
      +the let-in construct is defined by desugaring to lambda application:

      +
      rule let X = E in E' => (lambda X . E') E
      +
      +

      With this, the program above eventually reduces to

      +
      (lambda a . ((lambda b . a + b) x))
      +(callcc lambda k . (let x = 2 in (k x)))
      +
      +

      in an environment where x is 1. If the first expression evaluates first,
      +then it does so to a closure in which x is bound to a location holding 1,
      +so when applied later on to the x inside the argument of callcc (which is
      +2), it will correctly lookup x in its enclosed environment and thus the
      +program will evaluate to 3. On the other hand, if the second expression
      +evaluates first, then the cc value will freeze the first expression as is,
      +breaking the relationship between its x and the current environment in which
      +it is bound to 1, being inadvertently captured by the environment of the
      +let-in construct inside the callcc and thus making the entire expression
      +evaluate to 4.

      +

      So the morale is: Do not reuse blindly. Think!

      +

      In the next lesson we fix the environment-based semantics of callcc by having
      +cc also wrap an environment, besides a computation. We will also give a more
      +direct semantics to recursion, based on environments instead of fixed-point
      +combinators.

      +

      Go to Lesson 5, LAMBDA++: More Semantic Computation Items.

      +

      MOVIE (out of date) [3'37"]

      +

      More Semantic Computation Items

      + +

      In this lesson we see more examples of semantic (i.e., non-syntactic)
      +computational items, and how useful they can be. Specifically, we fix the
      +environment-based definition of callcc and give an environment-based
      +definition of the mu construct for recursion.

      +

      Let us first fix callcc. As discussed in Lesson 4, the problem that we
      +noticed there was that we only recovered the computation, but not the
      +environment, when a value was passed to the current continuation. This is
      +quite easy to fix: we modify cc to take both an environment and a
      +computation, and its rules to take a snapshot of the current environment with
      +it, and to recover it at invocation time:

      +
      syntax Val ::= cc(Map,K)
      +rule <k> (callcc V:Val => V cc(Rho,K)) ~> K </k> <env> Rho </env>
      +rule <k> cc(Rho,K) V:Val ~> _ =>  V ~> K </k> <env> _ => Rho </env>
      +
      +

      Let us kompile and make sure it works with the callcc-env2.lambda program,
      +which should evaluate to 3, not to 4.

      +

      Note that the cc value, which can be used as a computation item in the <k/>
      +cell, is now quite semantic in nature, pretty much the same as the closures.

      +

      Let us next add one more closure-like semantic computational item, for mu.
      +But before that, let us reuse the semantics of letrec in terms of mu that
      +was defined in Lesson 8 of Part 1 of the tutorial on LAMBDA:

      +
      syntax Exp ::= "letrec" Id Id "=" Exp "in" Exp [macro]
      +             | "mu" Id "." Exp                 [latex(\mu{#1}.{#2})]
      +rule letrec F:Id X = E in E' => let F = mu F . lambda X . E in E'
      +
      +

      We removed the binder annotation of mu, because it is not necessary
      +anymore (since we do not work with substitutions anymore).

      +

      To save the number of locations needed to evaluate mu X . E, let us replace
      +it with a special closure which already binds X to a fresh location holding
      +the closure itself:

      +
      syntax Exp ::= muclosure(Map,Exp)
      +
      +rule <k> mu X . E => muclosure(Rho[X <- !N], E) ...</k>
      +     <env> Rho </env>
      +     <store>... .Map => (!N:Int |-> muclosure(Rho[X <- !N], E)) ...</store>
      +
      +

      Since each time mu X . E is encountered during the evaluation it needs to
      +evaluate E, we conclude that muclosure cannot be a value. We can declare
      +it as either an expression or as a computation. Let's go with the former.

      +

      Finally, here is the rule unrolling the muclosure:

      +

      rule muclosure(Rho,E) => E ~> Rho' ...
      + Rho' => Rho

      +

      Note that the current environment Rho' needs to be saved before and
      +restored after E is executed, because the fixed point may be invoked
      +from a context with a completely different environment from the one
      +in which mu X . E was declared.

      +

      We are done. Let us now kompile and krun factorial-letrec.lambda from
      +Lesson 7 in Part 1 of the tutorial on LAMBDA. Recall that in the previous
      +lesson this program generated a lot of garbage into the store, due to the
      +need to allocate space for the arguments of all those lambda abstractions
      +needed to run the fixed-point combinator. Now we need much fewer locations,
      +essentially only locations for the argument of the factorial function, one at
      +each recursive call. Anyway, much better than before.

      +

      In the next lesson we wrap up the environment definition of LAMBDA++ and
      +generate its documentation.

      +

      Go to Lesson 6, LAMBDA++: Wrapping Up and Documenting LAMBDA++.

      +

      MOVIE (out of date) [5'19"]

      +

      Wrapping Up and Documenting LAMBDA++

      + +

      In this lesson we wrap up and nicely document LAMBDA++. In doing so, we also
      +take the freedom to reorganize the semantics a bit, to make it look better.

      +

      See the lambda.k file, which is self-explanatory.

      +

      Part 3 of the tutorial is now complete. Part 4 will teach you more features
      +of the K framework, in particular how to exhaustively explore the behaviors
      +of non-deterministic or concurrent programs.

      +

      MOVIE (out of date) [6'23"]

      +

      Part 4: Defining IMP++

      + +

      IMP++ extends IMP, which was discussed in Part 2 of this tutorial, with several
      +new syntactic constructs. Also, some existing syntax is generalized, which
      +requires non-modular changes of the existing IMP semantics. For example,
      +global variable declarations become local declarations and can occur
      +anywhere a statement can occur. In this tutorial we will learn the following:

      +
        +
      • That (and how) existing syntax/semantics may change as a language evolves.
      • +
      • How to refine configurations as a language evolves.
      • +
      • How to define and use fresh elements of desired sorts.
      • +
      • How to tag syntactic constructs and rules, and how to use such tags
        +with the superheat/supercool/transition options of kompile.
      • +
      • How the search option of krun works.
      • +
      • How to stream cells holding semantic lists to the standard input/output,
        +and thus obtain interactive interpreters for the defined languages.
      • +
      • How to delete, save and restore cell contents.
      • +
      • How to add/delete cells dynamically.
      • +
      • More details on how the configuration abstraction mechanism works.
      • +
      +

      Like in the previous tutorials, this folder contains several lessons, each
      +adding new features to IMP++. Do them in order and make sure you completed
      +and understood the previous tutorials.

      +

      Extending/Changing an Existing Language Syntax

      + +

      Here we learn how to extend the syntax of an existing language, both with
      +new syntactic constructs and with more general uses of existing constructs.
      +The latter, in particular, requires changes of the existing semantics.

      +

      Consider the IMP language, as defined in Lesson 4 of Part 2 of the tutorial.

      +

      Let us first add the new syntactic constructs, with their precedences:

      +
        +
      • variable increment, ++, which increments an integer variable and
        +evaluates to the new value;
      • +
      • read, which reads and evaluates to a new integer from the input buffer;
      • +
      • print, which takes a comma-separated list of arithmetic expressions and
        +evaluates and prints each of them in order, from left to right, to the
        +output buffer; we therefore define a new list syntactic category, AExps,
        +which we pass as an argument to print; note we do not want to declare
        +print to be strict, because we do not want to first evaluate the
        +arguments and then print them (for example, if the second argument performs
        +an illegal operation, say division by zero, we still want to print the first
        +argument); we also go ahead and add strings as arithmetic expressions,
        +because we intend print to also take strings, in order to print nice
        +messages to the user;
      • +
      • halt, which abruptly terminates the program; and
      • +
      • spawn, which takes a statement and creates a new concurrent thread
        +executing it and sharing its environment with the parent thread.
      • +
      +

      Also, we want to allow local variable declarations, which can appear anywhere
      +a statement can appear. Their scope ranges from the place they are defined
      +until the end of the current block, and they can shadow previous declarations,
      +both inside and outside the current block. The simplest way to define the
      +syntax of the new variable declarations is as ordinary statements, at the same
      +time removing the previous Pgm syntactic category and its construct.
      +Programs are now just statements.

      +

      We are now done with adding the new syntax and modifying the old one.
      +Note that the old syntax was modified in a way which makes the previous IMP
      +programs still parse, but this time as statements. Let us then modify
      +the configuration variable $PGM to have the sort Stmt instead of Pgm,
      +and let us try to run the old IMP programs, for example sum.imp.

      +

      Note that they actually get stuck with the global declaration on the top
      +of their computations. This is because variable declarations are now treated
      +like any statements, in particular, the sequential composition rule applies.
      +This makes the old IMP rule for global variable declarations not match anymore.
      +We can easily fix it by replacing the anonymous variable _, which matched
      +the program's statement that now turned into the remaining computation in
      +the <k/> cell, with the cell frame variable ..., which matches the
      +remaining computation. Similarly, we have to change the rule for the case
      +where there are no variables left to declare into one that dissolves itself.

      +

      We can now run all the previous IMP programs, in spite of the fact that
      +our IMP++ semantics is incomplete and, more interestingly, in spite of the
      +fact that our current semantics of blocks is incorrect in what regards the
      +semantics of local variable declarations (note that the old IMP programs do
      +not declare block-local variables, which is why they still run correctly).

      +

      Let us also write some proper IMP++ programs, which we would like to execute
      +once we give semantics to the new constructs.

      +

      div.imp is a program manifesting non-deterministic behaviors due to the
      +desired non-deterministic evaluation strategy of division and the fact that
      +expressions will have side effects once we add variable increment. We will
      +be able to see all the different behaviors of this program. Challenge: can
      +you identify the behavior where the program performs a division-by-zero?

      +

      If we run div.imp now, it will get stuck with the variable increment
      +construct on top of the computation cell. Once we give it a semantics,
      +div.imp will execute completely (all the other constructs in div.imp
      +already have their semantics defined as part of IMP).

      +

      Note that some people prefer to define all their semantics in a by need
      +style, that is, they first write and parse lots of programs, and then they
      +add semantics to each language construct on which any of the programs gets
      +stuck, and so on and so forth until they can run all the programs.

      +

      io.imp is a program which exercises the input/output capabilities of the
      +language: reads two integers and prints three strings and an integer.
      +Note that the variable declaration is not the first statement anymore.

      +

      sum-io.imp is an interactive variant of the sum program.

      +

      spawn.imp is a program which dynamically creates two threads that interact
      +with the main thread via the shared variable x. Lots of behaviors will be
      +seen here once we give spawn the right semantics.

      +

      Finally, locals.imp tests whether variable shadowing/unshadowing works well.

      +

      In the next lesson we will prepare the configuration for the new constructs,
      +and will see what it takes to adapt the semantics to the new configuration.
      +Specifically, we will split the state cell into an environment cell and a
      +store cell, like in LAMBDA++ in Part 3 of the tutorial.

      +

      Go to Lesson 2, IMP++: Configuration Refinement; Freshness.

      +

      MOVIE (out of date) [07'47"]

      +

      Configuration Refinement; Freshness

      + +

      To prepare for the semantics of threads and local variables, in this lesson we
      +split the state cell into an environment and a store. The environment and
      +the store will be similar to those in the definition of LAMBDA++ in Part
      +3 of the Tutorial. This configuration refinement will require us to change
      +some of IMP's rules, namely those that used the state.

      +

      To split the state map, which binds program variables to values, into an
      +environment mapping program variables to locations and a store mapping
      +locations to values, we replace in the configuration declaration the cell

      +
      <state color="red"> .Map </state>
      +
      +

      with two cells

      +
      <env color="LightSkyBlue"> .Map </env>
      +<store color="red"> .Map </store>
      +
      +

      Structurally speaking, this split of a cell into other cells is a major
      +semantic change, which, unfortunately, requires us to revisit the existing
      +rules that used the state cell. One could, of course, argue that we could
      +have avoided this problem if we had followed from the very beginning the
      +good-practice style to work with an environment and a store, instead of a
      +monolithic state. While that is a valid argument, highlighting the fact that
      +modularity is not only a feature of the framework alone, but one should also
      +follow good practices to achieve it, it is also true that if all we wanted
      +in Part 2 of the tutorial was to define IMP as is, then the split of the state
      +in an environment and a store is unnecessary and not really justified.

      +

      The first rule which used a state cell is the lookup rule:

      +
      rule <k> X:Id => I ...</k> <state>... X |-> I ...</state>
      +
      +

      We modify it as follows:

      +
      rule <k> X:Id => I ...</k>
      +     <env>... X |-> N ...</env>
      +     <store>... N |-> I ...</store>
      +
      +

      So we first match the location N of X in the environment, then the value
      +I at location N in the store, and finally we rewrite X to I into the
      +computation. This rule also shows an instance of a more complex
      +multiset matching, where two variables (X and N) are matched each twice.

      +

      The assignment rule is modified quite similarly.

      +

      The variable declaration rule is trickier, though, because we need to allocate
      +a fresh location in the store and bind the newly declared variable to it.
      +This is quite similar to the way we allocated space for variables in
      +the environment-based definition of LAMBDA++ in Part 3 of the tutorial.

      +
      rule <k> int (X,Xs => Xs); ...</k>
      +     <env> Rho => Rho[X <- !N:Int] </env>
      +     <store>... .Map => !N |-> 0 ...</store>
      +
      +

      Note the use of the fresh (!N) variable notation above. Recall from
      +the LAMBDA++ tutorial that each time the rule with fresh (!) variables is
      +applied, fresh elements of corresponding sorts are generated for the fresh
      +variables, distinct from all the previously generated elements; also, we
      +cannot and should not assume anything about the particular element that is
      +being generated, except that it is different from the previous ones.

      +

      kompile and krun sum.imp to see how the fresh locations have been
      +generated and used. There were two fresh locations needed, for the two
      +variables. Note also that a cell holding the counter has been added to the
      +configuration.

      +

      In the next lesson we will add the semantics of variable increment, and see
      +how that yields non-deterministic behaviors in programs and how to explore
      +those behaviors using the K tool.

      +

      Go to Lesson 3, IMP++: Tagging; Superheat/Supercool Kompilation Options.

      +

      MOVIE (out of date) [04'06"]

      +

      Tagging; Transition Kompilation Option

      + +

      In this lesson we add the semantics of variable increment. In doing so, we
      +learn how to tag syntactic constructs and rules and then use such tags to
      +instruct the kompile tool to generate the desired language model that is
      +amenable for exhaustive analysis.

      +

      The variable increment rule is self-explanatory:

      +
      rule <k> ++X => I +Int 1 ...</k>
      +     <env>... X |-> N ...</env>
      +     <store>... N |-> (I => I +Int 1) ...</store>
      +
      +

      We can now run programs like our div.imp program introduced in Lesson 1.
      +Do it.

      +

      The addition of increment makes the evaluation of expressions have side
      +effects. That, in combination with the non-determinism allowed by the
      +strictness attributes in how expression constructs evaluate their
      +arguments, makes expressions in particular and programs in general have
      +non-deterministic behaviors. One possible execution of the div.imp program
      +assigns 1 to y's location, for example, but this program manifests several
      +other behaviors, too.

      +

      To see all the (final-state) behaviors that a program can have, you can call
      +the krun tool with the option --search. For example:

      +
      krun div.imp --search
      +
      +

      Oops, we see only one solution, the same as when we ran it without search.

      +

      Here is what happens. krun can only explore as much of the transition
      +system associated to a program as kompile allowed the generated language
      +model to yield. Since most of the K users are interested in language models
      +that execute efficiently, that is, in faster interpreters for the defined
      +languages, by default kompile optimizes the generated language model for
      +execution. In particular, it inserts no backtracking markers, which krun
      +uses when called with the --search option in order to systematically generate
      +the entire transition system associated to a program. This is why krun
      +showed us only one solution when run with the --search option on div.imp.

      +

      We next explain how to tell kompile what kind of language model we are
      +interested in for analysis purposes. When you experiment with non-determinism
      +in a language semantics, you should keep it in mind that the --transition
      +option of kompile allows you to configure what counts as a transition in
      +your language model. We here only discuss transitions due to the
      +non-deterministic evaluation strategies of language constructs, but we will
      +see in future lectures (see Lesson 6 of IMP++, where we add concurrency) that
      +we can also have transitions due to non-deterministic applications of rewrite
      +rules.

      +

      If you want to explore the entire behavior space due to non-deterministic
      +evaluation strategies, then you should include all the language constructs
      +in the --transition option. This may sound like the obvious thing to
      +always do, but as soon as you do it you soon realize that it is way too much
      +in practice when you deal with large languages or programs. There are simply
      +too many program behaviors to consider, and krun will likely hang
      +on you or crush. For example, a small ten-statement program where each
      +statement uses one strict expression construct already has 1000+ behaviors for
      +krun to explore! Driven by practical needs of its users, the K tool
      +therefore allows you to finely tune the generated language models using the
      +--transition option.

      +

      To state which constructs are to be considered to generate transitions in the
      +generated language model, and for other reasons, too, the K tool allows you to
      +tag any production and any rule by putting the tag in brackets. You can associate
      +multiple tags to the same construct or rule, and more than one construct or
      +rule can have the same tag. As an example, let us tag the division construct
      +with division, the lookup rule with lookup and the increment rule with
      +increment. The tags of the rules are not needed in this lesson, we do it only
      +to demonstrate that rules can also be tagged.

      +

      The least intrusive way to enforce our current language to explore the
      +entire space of behaviors due to the strictness of division is to kompile it
      +with the following option:

      +
      kompile imp.k --transition "division"
      +
      +

      It is interesting to note that the lookup and increment rules are the only
      +two rules which can trigger non-deterministic behaviors for division, because
      +no other rule but these two can ever apply while a division operation is
      +heated. Previous versions of K allowed you to also specify which rules could
      +trigger non-deterministic behaviors of operator evaluation strategies,
      +but that option was rarely used and is not available anymore.

      +

      Note that it is highly non-trivial to say precisely whether a strict language
      +construct may yield non-deterministic behaviors. For example, division's
      +strictness would yield no non-determinism if the language had no side effects.
      +It is even harder to say so for a particular program. Consequently, our K
      +implementation makes no attempt to automatically detect which operations
      +should be tagged as transitions. Instead, it provides the functionality to
      +let you decide it.

      +

      Now the command

      +
      krun div.imp --search
      +
      +

      shows us all five behaviors of this program. Interestingly, one
      +of the five behaviors yields a division by zero!

      +

      The --transition option can be quite useful when you experiment with your
      +language designs or when you formally analyze programs for certain kinds of
      +errors. Please let us know if you ever need more finer-grained control over
      +the non-determinism of your language models.

      +

      Before we conclude this lesson, we'd like to let you know one trick, which
      +you will hopefully not overuse: you can tag elements in your K definition with
      +kompile option names, and those elements will be automatically included in
      +their corresponding options. For example, if you tag the division production
      +with transition then the command

      +
      kompile imp
      +
      +

      is completely equivalent to the previous kompile command.

      +

      Please use this default behavior with caution, or even better, try to avoid
      +using it! You may be tempted to add the transition tag to lots of elements
      +and then forget about them; your language models will then be increasingly slower
      +when you execute them and you may wonder why ... This convention is typically
      +convenient when you want to quickly experiment with non-determinism and do not
      +want to bother inventing tag names and calling kompile with options.

      +

      In the next lesson we add input/output to our language and learn how to
      +generate a model of it which behaves like an interactive interpreter!

      +

      Go to Lesson 4, IMP++: Semantic Lists; Input/Output Streaming.

      +

      MOVIE (out of date) [06'56"]

      +

      Semantic Lists; Input/Output Streaming

      + +

      In this lesson we add semantics to the read and print IMP++ constructs.
      +In doing so, we also learn how to use semantic lists and how to connect
      +cells holding semantic lists to the standard input and standard output.
      +This allows us to turn the K semantics into an interactive interpreter.

      +

      We start by adding two new cells to the configuration,

      +
      <in color="magenta"> .List </in>
      +<out color="Orchid"> .List </out>
      +
      +

      each holding a semantic list, initially empty. Semantic lists are
      +space-separated sequences of items, each item being a term of the form
      +ListItem(t), where t is a term of sort K. Recall that the semantic maps,
      +which we use for states, environments, stores, etc., are sets of pairs
      +t1 |-> t2, where t1 and t2 are terms of sort K. The ListItem wrapper
      +is currently needed, to avoid parsing ambiguities.

      +

      Since we want the print statement to also print strings, we need to tell
      +K that strings are results. To make it more interesting, let us also overload
      +the + symbol on arithmetic expressions to also take strings and, as a
      +result, to concatenate them. Since + is already strict, we only need to add
      +a rule reducing the IMP addition of strings to the builtin operation +String
      +which concatenates two strings.

      +

      The semantics of read is immediate: read and consumes the first integer item
      +from the <in/> cell; note that our read only reads integer values (it gets
      +stuck if the first item in the <in/> cell is not an integer).

      +

      The semantics of print is a bit trickier. Recall that print takes an
      +arbitrary number of arithmetic expression arguments, and evaluates and outputs
      +each of them in order, from left to right. For example,
      +print("Hello", 3/0, "Bye"); outputs "Hello" and then gets stuck on the
      +illegal division by zero operation. In other words, we do not want it to
      +first evaluate all its arguments and then print them, because that would miss
      +outputting potentially valuable information. So the first step is to evaluate
      +the first argument of print. In some sense, what we'd like to say is that
      +print has the evaluation strategy strict(1). However, strictness
      +attributes only work with individual language constructs, while what we need
      +is an evaluation strategy that involves two constructs: print and the list
      +(comma) construct of AExps. If we naively associate print the strict(1)
      +evaluation strategy then its first and unique argument, an AExps list, will
      +be scheduled for evaluation and the execution will get stuck because we have
      +no rules for evaluating AExps terms. If we make the list construct of
      +AExps strict then we get the wrong semantics for print which first
      +evaluates all its arguments and then outputs them. The correct way to
      +tell K that print should evaluate only its first argument is by using a
      +context declaration:

      +
      context print(HOLE:AExp, _);
      +
      +

      Note the HOLE of sort AExp above. Contexts allow us to define finer-grain
      +evaluation strategies than the strictness attributes, involving potentially
      +more than one language construct, like above. The HOLE indicates the
      +argument which is requested to be evaluated. For example, the strict
      +attribute of division corresponds to two contexts:

      +
      context HOLE / _
      +context _ / HOLE
      +
      +

      In their full generality, contexts can be any terms with precisely one
      +occurrence of a HOLE, and with arbitrary side conditions on any variables
      +occurring in the context term as well as on the HOLE. See Part 6 of the
      +tutorial for more examples.

      +

      Once evaluated, the first argument of print is expected to become either an
      +integer or a string. Since we want to print both integers and string values,
      +to avoid writing two rules, one for each type of value, we instead add a new
      +syntactic category, Printable, which is the union of integers and strings.

      +

      Let us kompile and krun the io.imp program discussed in Lesson 1. As
      +expected, it gets stuck with a read construct on top of the computation and
      +with an empty <in/> cell. To run it, we need to provide some items in the
      +<in/> cell, so that the rule of read can match. Let us add

      +
      <in> ListItem(3) ListItem(5) ListItem(7) </in>
      +
      +

      Now, if we krun io.imp, we can see that its execution completes normally
      +(the <k/> cell is empty), that the first two items have been removed by the
      +two read constructs from the <in/> cell, and that the desired strings and
      +numbers have been placed into the <out/> cell.

      +

      Cells holding semantic lists can be connected to the standard input and
      +standard output buffers, and krun knows how to handle these appropriately.
      +Let us connect the <in/> cell to the standard input using the cell attribute
      +stream="stdin" and the <out/> cell to the standard output with the
      +attribute stream="sdtout". A cell connected to the standard input will
      +take its items from the standard input and block the rewriting process when
      +an input is needed until an item is available in the standard input buffer.
      +A cell connected to the standard output buffer will send all its items, in
      +order, to the standard output.

      +

      Let us kompile and krun io.imp again. It prints the message and then
      +waits for your input numbers. Type in two numbers, then press <Enter>.
      +A message with their sum is then printed, followed by the final configuration.
      +If you do not want to see the final configuration, and thus obtain a realistic
      +interpreter for our language, then call krun with the option --output none:

      +
      krun io.imp --output none
      +
      +

      Let us now krun our interactive sum program, which continuously reads numbers
      +from the console and prints the sum of numbers up to them:

      +
      krun sum-io.imp
      +
      +

      Try a few numbers, then 0. Note that the program terminated, but with junk
      +in the <k/> cell, essentially with a halt statement on its top. Of course,
      +because halt has been reached and it has no semantics yet.

      +

      In the next lesson we give the semantics of halt and also fix the semantics
      +of blocks with local variable declarations.

      +

      Go to Lesson 5, IMP++: Deleting, Saving and Restoring Cell Contents.

      +

      MOVIE (out of date) [05'21"]

      +

      Deleting, Saving and Restoring Cell Contents

      + +

      In this lesson we will see how easily we can delete, save and/or restore
      +contents of cells in order to achieve the desired semantics of language
      +constructs that involve abrupt changes of control or environments. We have
      +seen similar or related K features in the LAMBDA++ language in Part 3 of the
      +tutorial.

      +

      Let us start by adding semantics to the halt statement. As its name says,
      +what we want is to abruptly terminate the execution of the program. Moreover,
      +we want the program configuration to look as if the program terminated
      +normally, with an empty computation cell. The simplest way to achieve that is
      +to simply empty the computation cell when halt is encountered:

      +
      rule <k> halt; ~> _ => . </k>
      +
      +

      It is important to mention the entire <k/> cell here, with both its membranes
      +closed, to make sure that its entire contents is discarded. Note the
      +anonymous variable, which matches the rest of the computation.

      +

      kompile and krun sum-io.imp. Note that unlike in Lesson 4, the program
      +terminates with an empty computation cell now.

      +

      As mentioned earlier, the semantics of blocks that was inherited from IMP is
      +wrong. Program locals.imp shows it very clearly: the environments are not
      +correctly restored at block exits. One way to fix the problem is to take
      +a snapshot of the current environment when a block is entered and save it
      +somewhere, and then to restore it when the block is left. There are many
      +ways to do this, which you can explore on your own: for example you can add
      +a new list cell for this task where to push/pop the environment snapshots in
      +a stack style; or you can use the existing environment cell for this purpose,
      +but then you need to change the variable access rules to search through the
      +stacked environments for the variable.

      +

      My preferred solution is to follow a style similar to how we saved/restored
      +LAMBDA++ environments in Part 3 of the Tutorial, namely to use the already
      +existing <k/> cell for such operations. More specifically, we place a
      +reminder item in the computation whenever we need to take a snapshot of
      +some cell contents; the item simply consists of the entire contents of the cell.
      +Then, when the reminder item is reached, we restore the contents of the cell:

      +
      rule <k> {S} => S ~> Rho ...</k> <env> Rho </env>
      +
      +

      The only thing left now is to give the definition of environment restore:

      +
      rule <k> Rho => . ...</k> <env> _ => Rho </env>
      +
      +

      Done. kompile and krun locals.imp. Everything should work correctly now.
      +Note that the rule above is different from the one we had for LAMBDA++ in
      +Part 3 of the tutorial, in that here there is no value preceding the environment
      +restoration item in the computation; that's because IMP++ statements,
      +unlike LAMBDA++'s expressions, evaluate to nothing (.).

      +

      In the next lesson we will give semantics to the spawn S construct, which
      +dynamically creates a concurrent shared-memory thread executing statement S.

      +

      Go to Lesson 6, IMP++: Adding/Deleting Cells Dynamically; Configuration Abstraction, Part 2.

      +

      MOVIE (out of date) [04'30"]

      +

      Adding/Deleting Cells Dynamically; Configuration Abstraction, Part 2

      + +

      In this lesson we add dynamic thread creation and termination to IMP, and
      +while doing so we learn how to define and use configurations whose structure
      +can evolve dynamically.

      +

      Recall that the intended semantics of spawn S is to spawn a new concurrent
      +thread that executes S. The new thread is being passed at creation time
      +its parent's environment, so it can share with its parent the memory
      +locations that its parent had access to at creation time. No other locations
      +can be shared, and no other memory sharing mechanism is available.
      +The parent and the child threads can evolve unrestricted, in particular they
      +can change their environments by declaring new variables or shadowing existing
      +ones, can create other threads, and so on.

      +

      The above suggests that each thread should have its own computation and its
      +own environment. This can be elegantly achieved if we group the <k/> and
      +<env/> cells in a <thread/> cell in the configuration. Since at any given
      +moment during the execution of a program there could be zero, one or more
      +instances of such a <thread/> cell in the configuration, it is a good idea
      +to declare the <thread/> cell with multiplicity * (i.e., zero, one or more):

      +
      <thread multiplicity="*" color="blue">
      +  <k color="green"> $PGM:Stmt </k>
      +  <env color="LightSkyBlue"> .Map </env>
      +</thread>
      +
      +

      This multiplicity declaration is not necessary, but it is a good idea to do
      +it for several reasons:

      +
        +
      1. it may help the configuration abstraction process,
        +which may in turn significantly increase the compactness and modularity of
        +your subsequent rules;
      2. +
      3. it may help various analysis and execution tools,
        +for example static analyzers to give you error messages when you create cells
        +where you should not, or K compilers to improve performance by starting
        +actual concurrent hardware threads or processes corresponding to each cell
        +instance; and
      4. +
      5. it may help you better understand and control the dynamics
        +of your configuration, and thus your overall semantics.
      6. +
      +

      For good encapsulation, I also prefer to put all thread cells into one cell,
      +<threads/>. This is technically unnecessary, though; to convince yourself
      +that this is indeed the case, you can remove this cell once we are done with
      +the semantics and everything will work without having to make any changes.

      +

      Before we continue, let us kompile an krun some programs that used to
      +work, say sum-io.imp. In spite of the relatively radical configuration
      +reorganization, those programs execute just fine! How is that possible?
      +In particular, why do rules like the lookup and assignment still work,
      +unchanged, in spite of the fact that the <k/> and <env/> cells are not at
      +the same level with the <store/> cell in the configuration anymore?

      +

      Welcome to configuration abstraction, part 2. Recall that the role of
      +configuration abstraction is to allow you to only write the relevant
      +information in each rule, and have the compiler fill-in the obvious and boring
      +details. According to the configuration that we declared for our new
      +language, there is only one reasonable way to complete rules like the lookup,
      +namely to place the <k/> and </env> cells inside a <thread/> cell,
      +inside a <threads/> cell:

      +
      rule <threads>...
      +       <thread>...
      +         <k> X:Id => I ...</k>
      +         <env>... X |-> N ...</env>
      +       ...</thread>
      +     ...<threads/>
      +     <store>... N |-> I ...</store>  [lookup]
      +
      +

      This is the most direct, compact and local way to complete the configuration
      +context of the lookup rule. If for some reason you wanted here to match the
      +<k/> cell of one thread and the <env/> cell of another thread, then you
      +would need to explicitly tell K so, by mentioning the two thread cells,
      +for example:

      +
      rule <thread>...
      +         <k> X:Id => I ...</k>
      +     ...</thread>
      +     <thread>...
      +         <env>... X |-> N ...</env>
      +     ...</thread>
      +     <store>... N |-> I ...</store>  [lookup]
      +
      +

      By default, K completes rules in a greedy style. Think this way: what is the
      +minimal number of changes to my rule to make it fit the declared
      +configuration? That's what the K tool will do.

      +

      Configuration abstraction is technically unnecessary, but once you start
      +using it and get a feel for how it works, it will become your best friend.
      +It allows you to focus on the essentials of your semantics, and at the same
      +time gives you flexibility in changing the configuration later on without
      +having to touch the rules. For example, it allows you to remove the
      +<threads/> cell from the configuration, if you don't like it, without
      +having to touch any rule.

      +

      We are now ready to give the semantics of spawn:

      +
      rule <k> spawn S => . ...</k> <env> Rho </env>
      +     (. => <thread>... <k> S </k> <env> Rho </env> ...</thread>)
      +
      +

      Note configuration abstraction at work, again. Taking into account
      +the declared configuration, and in particular the multiplicity information
      +* in the <thread/> cell, the only reasonable way to complete the rule
      +above is to wrap the <k/> and <env/> cells on the first line within a
      +<thread/> cell, and to fill-in the ...s in the child thread with the
      +default contents of the other subcells in <thread/>. In this case there
      +are no other cells, so we can get rid of those ...s, but that would
      +decrease the modularity of this rule: indeed, we may later on add other
      +cells within <thread/> as the language evolves, for example a function
      +or an exception stack, etc.

      +

      In theory, we should be able to write the rule above even more compactly
      +and modularly, namely as

      +
      rule <k> spawn S => . ...</k> <env> Rho </env>
      +     (. => <k> S </k> <env> Rho </env>)
      +
      +

      Unfortunately, this currently does not work in the K tool, due to some
      +known limitations of our current configuration abstraction algorithm.
      +This latter rule would be more modular, because it would not even depend
      +on the cell name thread. For example, we may later decide to change
      +thread into agent, and we would not have to touch this rule.
      +We hope this current limitation will be eliminated soon.

      +

      Once a thread terminates, its computation cell becomes empty. When that
      +happens, we can go ahead and remove the useless thread cell:

      +
      rule <thread>... <k> . </k> ...</thread> => .
      +
      +

      Let's see what we've got. kompile and krun spawn.imp.
      +Note the following:

      +
        +
      • The <threads/> cell is empty, so all threads terminated normally;
      • +
      • The value printed is different from the value in the store; the store value
        +is not even the one obtained if the threads executed sequentially.
      • +
      +

      Therefore, interesting behaviors may happen; we would like to see them all!

      +

      Based on prior experience with krun's search option, we would hope that

      +
      krun spawn.imp --search
      +
      +

      shows all the behaviors. However, the above does not work, for two reasons.

      +

      First, spawn.imp is an interactive program, which reads a number from the
      +standard input. When analyzing programs exhaustively using the search option,
      +krun has to disable the streaming capabilities (just think about it and you
      +will realize why). The best you can do in terms of interactivity with search
      +is to pipe some input to krun: krun will flush the standard input buffer
      +into the cells connected to it when creating the initial configuration (will
      +do that no matter whether you run it with or without the --search option).
      +For example:

      +
      echo 23 | krun spawn.imp --search
      +
      +

      puts 23 in the standard input buffer, which is then transferred in the
      +<in/> cell as a list item, and then the exhaustive search procedure is
      +invoked.

      +

      Second, even after piping some input, the spawn.imp program still manifests
      +only one behavior, which does not seem right. There should be many more.

      +

      As explained in Lesson 3, by default kompile optimizes the generated
      +language model for execution. In particular, it does not insert any
      +backtracking markers where transition attempts should be made, so krun
      +lacks the information it needs to exhaustively search the generated language
      +model. Like we did in Lesson 3 with the language constructs, we also have
      +to explicitly tell kompile which rules should be considered as actual
      +transitions. A theoretically correct but practically unfeasible approach
      +to search all possible behaviors is to consider all rules as transitions.
      +Even more than with the non-deterministic strictness of language constructs
      +in Lesson 3, such a naive solution would make the number of behaviors, and
      +thus krun, explode. Remember that a two-thread program with 150 statements
      +each manifests more behaviors than particles in the known universe!
      +Consequently, unless your multi-threaded programs are very small, you will
      +most likely want to control which rules should be considered transitions and
      +which should not.

      +

      A good rule of thumb is to include as transitions only those rules which
      +compete for behaviors. That is, those rules which may yield a different
      +behavior if we choose to apply them when other rules match as well.
      +The rule for addition, for example, is a clear example of a rule which
      +should not be a transition: indeed, 3+7 will rewrite to 10 now and also
      +later. On the other hand, the lookup rule should be a transition. Indeed,
      +if we delay the lookup of variable x, then other threads may write x in the
      +meanwhile (with an increment or an assignment rule) and thus yield a
      +different behavior.

      +

      Let us discuss and tag those rules which should be transitions: lookup and
      +increment need to be transitions and we already tagged them in Lesson 3;
      +the read rule needs to also be a transition, because it may complete with
      +other instances of itself in other threads; assignment needs to also be a
      +transition, and so should be the first rule for print.

      +

      Let us now kompile with the transition option set as desired:

      +
      kompile imp --transition "lookup increment assignment read print"
      +
      +

      Now echo 23 | krun spawn.imp --search gives us all 12 behaviors of the
      +spawn.imp program.

      +

      Like for non-deterministically strict operations which can be tagged as
      +transitions, it is highly non-trivial to say precisely which rules need
      +to be transitions. So krun makes no attempt to automatically detect it.
      +Instead, it provides the functionality to let you decide it.

      +

      We currently have no mechanism for thread synchronization. In the next lesson
      +we add a join statement, which allows a thread to wait until another completes.

      +

      Go to Lesson 7, IMP++: Everything Changes: Syntax, Configuration, Semantics.

      +

      MOVIE (out of date) [11'40"]

      +

      Everything Changes: Syntax, Configuration, Semantics

      + +

      In this lesson we add thread joining, one of the simplest thread
      +synchronization mechanisms. In doing so, we need to add unique ids
      +to threads in the configuration, and to modify the syntax to allow spawn
      +to return the id of the newly created thread. This gives us an opportunity
      +to make several other small syntactic and semantics changes to the language,
      +which make it more powerful or more compact at a rather low cost.

      +

      Before we start, let us first copy and modify the previous spawn.imp program
      +from Lesson 1 to make use of thread joining. Recall from Lesson 6 that in some
      +runs of this program the main thread completed before the child threads,
      +printing a possibly undesired value of x. What we want now is to assign
      +unique ids to the two spawned threads, and then to modify the main thread to
      +join the two child threads before printing. To avoid adding a new type to
      +the language, let's assume that thread ids are integer numbers. So we declare
      +two integers, t1 and t2, and assign them the two spawn commands. In order
      +for this to parse, we will have to change the syntax of spawn to be an
      +arithmetic expression construct instead of a statement. Once we do that,
      +we have a slight syntactic annoyance: we need to put two consecutive ;
      +after the spawn assignment, one for the assignment statement inside the spawn,
      +and another for the outer assignment. To avoid the two consecutive semicolons,
      +we can syntactically enforce spawn to take a block as argument, instead of a
      +statement. Now it looks better. The new spawn.imp program is still
      +non-deterministic, because the two threads can execute in any order and even
      +continue to have a data-race on the shared variable x, but we should see fewer
      +behaviors when we use the join statements. If we want to fully synchronize
      +this program, we can have the second thread start with a join(t1) statement.
      +Then we should only see one behavior for this program.

      +

      Let us now modify the language semantics. First, we move the spawn
      +construct from statements to expressions, and make it take a block.
      +Second, we add one more sub-cell to the thread cell in the configuration,
      +<id/>, to hold the unique identifier of the thread. We want the main
      +thread to have id 0, so we initialize this cell with 0. Third, we modify
      +the spawn rule to generate a fresh integer identifier, which is put in the
      +<id/> cell of the child thread and returned as a result of spawn in the
      +parent thread. Fourth, let us add the join statement to the language,
      +both syntactically and semantically. So in order for the join(T) statement
      +to execute, thread T must have its computation empty. However, in order
      +for this to work we have to get rid of the thread termination cleanup rule.
      +Indeed, we need to store somewhere the information that thread T terminated;
      +the simplest way to do it is to not remove the terminated threads. Feel free
      +to experiment with other possibilities, too, here. For example, you may add
      +another cell, <done/>, in which you can store all the thread ids of the
      +terminated and garbage-collected threads.

      +

      Let us now kompile imp.k and convince ourselves that the new spawn.imp
      +with join statements indeed has fewer behaviors than its variant without
      +join statements. Also, let us convince ourselves that the fully synchronized
      +variant of it indeed has only one behavior.

      +

      Note that now spawn, like variable increment, makes the evaluation of
      +expressions to have side effects. Many programming languages in fact allow
      +expressions to be evaluated only for their side effects, and not for their
      +value. This is typically done by simply adding a ; after the expression
      +and thus turning it into a statement. For example, ++x;. Let as also
      +allow arithmetic expressions in our language to be used as statements, by
      +simply adding the production AExp ";" to Stmt, with evaluation strategy
      +strict and with the expected semantics discarding the value of the AExp.

      +

      Another simple change in syntax and semantics which gives our language more
      +power, is to remove the ; from the syntax of variable assignments and to make
      +them expression instead of statement constructs. This change, combined with
      +the previous one, will still allow us to parse all the programs that we could
      +parse before, but will also allow us to parse more programs. For example, we
      +can now do sequence assignments like in C: x = y = z = 0. The semantics
      +of assignment now has to return the assigned value also to the computation,
      +because we want the assignment expression to evaluate to the assigned value.

      +

      Let us also make another change, but this time one which only makes the
      +definition more compact. Instead of defining statement sequential
      +composition as a binary construct for statements, let us define a new
      +syntactic construct, Stmts, as whitespace-separated lists of Stmt. This
      +allows us to get rid of the empty blocks, because we can change the syntax of
      +blocks to {Stmts} and Stmts also allows the empty sequence of statements.
      +However, we do have to make sure that .Stmts dissolves.

      +

      In general, unless you are defining a well-established programming language,
      +it is quite likely that your definitions will suffer lots of changes like the
      +ones seen in this lecture. You add a new construct, which suggests changes
      +in the existing syntax making in fact your language parse more programs,
      +which then requires corresponding changes in the semantics, and so on.
      +Also, compact definitions are desirable in general, because they are easier
      +to read and easier to change if needed later.

      +

      In the next lesson we wrap up and document the definition of IMP++.

      +

      Go to Lesson 8, IMP++: Wrapping up Larger Languages.

      +

      Wrapping up Larger Languages

      + +

      In this lesson we wrap up IMP++'s semantics and also generate its poster.
      +While doing so, we also learn how to display larger configurations in order
      +to make them easier to read and print.

      +

      Note that we rearrange a bit the semantics, to group the semantics of old
      +IMP's constructs together, and separate it from the new IMP++'s semantics.

      +

      There is a detailed discussion at the end of the document about the
      +--transition option of kompile, because that is important and we want
      +the poster to include everything we learned in this part of the tutorial.

      +

      You can go even further and manually edit the generated Latex document.
      +You typically want to do that when you want to publish your language
      +definition, or parts of it, and you need to finely tune it to fit the
      +editing requirements. For example, you may want to insert some negative
      +spaces, etc.

      +

      Part 4 of the tutorial is now complete. At this moment you should know most
      +of K framework's features and how to use the K tool. You can now define or
      +design your own programming languages, and then execute and analyze programs.

      +

      MOVIE (out of date) [06'26"]

      +

      Part 5: Defining Type Systems

      + +

      In this part of the tutorial we will show that defining type systems for
      +languages is essentially no different from defining semantics. The major
      +difference is that programs and fragments of programs now rewrite to their
      +types, instead of to concrete values. In terms of K, we will learn how
      +to use it for a certain particular but important kind of applications.

      +

      Imperative, Environment-Based Type Systems

      + +

      In this lesson you learn how to define a type system for an imperative
      +language (the IMP++ language defined in Part 4 of the tutorial), using a style
      +based on type environments.

      +

      Let us copy the imp.k file from Part 4 of the tutorial, Lesson 7, which holds
      +the semantics of IMP++, and modify it into a type system. The resulting type
      +system, when executed, yields a type checker.

      +

      We start by defining the new strictness attributes of the IMP++ syntax.
      +While doing so, remember that programs and fragments of programs now reduce
      +to their types. So types will be the new results of our new (type) semantics.
      +We also clean up the semantics by removing the unnecessary tags, and also
      +use strict instead of seqstrict wherever possible, because strict gives
      +implementations more freedom. Interestingly, note that spawn is strict now,
      +because the code of the child thread should type in the current parent's type
      +environment. Note that this is not always the case for threads, see for example
      +SIMPLE in the languages tutorial, but it works here for our simpler IMP++.

      +

      From a typing perspective, the && construct is strict in both its arguments;
      +its short-circuit (concrete) semantics is irrelevant for its (static) type
      +system. Similarly, both the conditional and the while loop are strict
      +constructs when regarded through the typing lenses.

      +

      Finally, the sequential composition is now sequentially strict! Indeed,
      +statements are now going to reduce to their type, stmt, and it is critical
      +for sequential composition to type its argument statements left-to-right;
      +for example, imagine that the second argument is a variable declaration (whose
      +type semantics will modify the type environment).

      +

      We continue by defining the new results of computations, that is, the actual
      +types. In this simple imperative language, we only have a few constant types:
      +int, bool, string, block and stmt.

      +

      We next define the new configuration, which is actually quite simple. Besides
      +the <k/> cell, all we need is a type environment cell, <tenv/>, which will
      +hold a map from identifiers to their types. A type environment is therefore
      +like a state in the abstract domain of type values.

      +

      Let us next modify the semantic rules, turning them into a type system. In
      +short, the idea is to reduce the basic values to their types, and then have a
      +rule for each language construct reducing it to its result type whenever its
      +arguments have the expected types.

      +

      We write the rules in the order given by the syntax declarations, to make
      +sure we do not forget any construct.

      +

      Integers reduce to their type, int.

      +

      So do the strings.

      +

      Variables are now looked up in the type environment and reduced to their type
      +there. Since we only declare integer variables in IMP++, their type in tenv
      +will always be int. Nevertheless, we write the rule generically, so that we
      +would not have to change it later if we add other type declarations to IMP++.
      +Note that we reject programs which lookup undeclared variables. Rejection,
      +in this case, means rewriting getting stuck.

      +

      Variable increment types to int, provided the variable has type int.

      +

      Read types to int, because we only allow integer input.

      +

      Division is only allowed on integers, so it rewrites to int provided that its
      +arguments rewrite to int. Note, however, that in order to write int / int,
      +we have to explicitly add int to the syntax of arithmetic expressions.
      +Otherwise, the K parser rightfully complains, because / was declared on
      +arithmetic expressions, not on types. One simple and generic way to allow
      +types to appear anywhere, is to define Type as a syntactic subcategory of all
      +the other syntactic categories. Let's do it on a by-need basis, though.

      +

      Addition is overloaded, so we add two typing rules for it: one for integers
      +and another for strings.

      +

      As discussed, spawn types to stmt provided that its argument types to
      +block.

      +

      The assignment construct was strict(2); its typing policy is that the declared
      +type of X should be identical to the type of the assigned value. Like for
      +lookup, we define this rule more generically than needed for IMP++, for any
      +type, not only for int.

      +

      The typing rules for Boolean expression constructs are in the same spirit.
      +Note that we need only one rule for &&.

      +

      The typing of blocks is a bit trickier. First, note that we still need to
      +recover the environment after the block is typed, because we do not want the
      +block-local variables to be visible in the outer type environment. We recover
      +the type environment only after the block-enclosed statements type; moreover,
      +we also opportunistically yield a block type on the computation when we
      +discard the type environment recovery item. To account for the fact that the
      +block-enclosed statement can itself be a block (e.g., {{S}}), we would need an
      +additional rule. Since we do not like repetition, we instead group the types
      +block and stmt into one syntactic category, BlockOrStmtType, and now we
      +can have only one rule. We also include BlockOrStmtType in Type, as a
      +replacement for the two basic types.

      +

      The expression statement types as expected. Recall that we only allow
      +arithmetic expressions, which type to int, to be used as statements in IMP++.

      +

      The conditional was declared strict in all its arguments. Its typing policy
      +is that its first argument types to bool and its two branches to block.
      +If that is the case, then it yields a stmt type.

      +

      For while, its first argument should type to bool and its second to block.

      +

      Variable declarations add new bindings to the type environment. Recall that
      +we can only declare variables of integer type in IMP++.

      +

      The typing policy of print is that it can only print integer or string values,
      +and in that case it types to stmt. Like for BlockOrStmtType, to avoid
      +having two similar rules, one for int and another for string, we prefer to
      +introduce an additional syntactic category, PrintableType, which includes both
      +int and string types.

      +

      halt types to stmt; so its subsequent code is also typed.

      +

      join types to stmt, provided that its argument types to int.

      +

      Sequential composition was declared as a whitespace-separated sequentially
      +strict list. Its typing policy is that all the statements in the list should
      +type to stmt or block in order for the list to type to stmt. Since
      +lists are maintained internally as cons-lists, this is probably the simplest
      +way to do it:

      +
      rule .Stmts => stmt
      +rule _:BlockOrStmtType Ss => Ss
      +
      +

      Note that the first rule, which types the empty sequence of statements to stmt,
      +is needed anyway, to type empty blocks {} (together with the block rule).

      +

      kompile imp.k and krun all the programs in Part 4 of the tutorial. They
      +should all type to stmt.

      +

      In the next lesson we will define a substitution-based type system for LAMBDA.

      +

      Go to Lesson 2, Type Systems: Substitution-Based Higher-Order Type Systems.

      +

      MOVIE (out of date) [10'11"]

      +

      Substitution-Based Higher-Order Type Systems

      + +

      In this lesson you learn how to define a substitution-based type system for
      +a higher-order language, namely the LAMBDA language defined in Part 1 of the
      +tutorial.

      +

      Let us copy the definition of LAMBDA from Part 1 of the tutorial, Lesson 8.
      +We are going to modify it into a type systems for LAMBDA.

      +

      Before we start, it is important to clarify an important detail, namely that
      +our type system will yield a type checker when executed, not a type
      +inferencer. In particular, we are going to change the LAMBDA syntax
      +to allow us to associate a type to each declared variable. The
      +constructs which declare variables are lambda, let, letrec and mu.
      +The syntax of all these will therefore change.

      +

      Since here we are not interested in a LAMBDA semantics anymore, we take the
      +freedom to eliminate the Val syntactic category, our previous results.
      +Our new results are going to be the types, because programs will now reduce
      +to their types.

      +

      As explained, the syntax of the lambda construct needs to change, to also
      +declare the type of the variable that it binds. We add the new syntactic
      +category Type, with the following constructs: int, bool, the function
      +type (which gives it its higher-order status), and parentheses as bracket.
      +Also, we make types our K results.

      +

      We are now ready to define the typing rules.

      +

      Let us start with the typing rule for lambda abstraction: lambda X : T . E
      +types to the function type T -> T', where T' is the type obtained by further
      +typing E[T/X]. This can be elegantly achieved by reducing the lambda
      +abstraction to T -> E[T/X], provided that we extend the function type construct
      +to take expressions, not only types, as arguments, and to be strict.
      +This can be easily achieved by redeclaring it as a strict expression construct
      +(strictness in the second argument would suffice in this example, but it is
      +more uniform to define it strict overall).

      +

      The typing rule for application is as simple as it can get: (T1->T2) T1 => T2.

      +

      Let us now give the typing rules of arithmetic and Boolean expression
      +constructs. First, let us get rid of Val. Second, rewrite each value to its
      +type, similarly to the type system for IMP++ in the previous lesson. Third,
      +replace each semantic rule by its typing rule. Fourth, make sure you
      +do not forget to subsort Type to Exp, so your rules above will parse.

      +

      The typing policy of the conditional statement is that its first argument
      +should type to bool and its other two arguments should type to the same type
      +T, which will also be the result type of the conditional. So we make the
      +conditional construct strict in all its three arguments and we write the
      +obvious rule: if bool then T:Type else T => T. We want a runtime check that
      +the latter arguments are actually typed, so we write T:Type.

      +

      There is nothing special about let, except that we have to make sure we
      +change its syntax to account for the type of the variable that it binds.
      +This rule is a macro, so the let is desugared statically.

      +

      Similarly, the syntax of letrec and mu needs to change to account for the
      +type of the variable that they bind. The typing of letrec remains based on
      +its desugaring to mu; we have to make sure the types are also included now.

      +

      The typing policy of mu is that its body should type to the same type T of
      +its variable, which is also the type of the entire mu expression. This can
      +be elegantly achieved by rewriting it to (T -> T) E[T/X]. Recall that
      +application is strict, so E[T/X] will be eventually reduced to its type.
      +Then the application types correctly only if that type is also T, and in
      +that case the result type will also be T.

      +

      kompile and krun some programs. You can, for example, take the LAMBDA
      +programs from the first tutorial, modify them by adding types to their
      +variable declarations, and then type check them using krun.

      +

      In the next lesson we will discuss an environment-based type system
      +for LAMBDA.

      +

      Go to Lesson 3, Type Systems: Environment-Based Higher-Order Type Systems.

      +

      MOVIE (out of date) [6'52"]

      +

      Environment-Based Higher-Order Type Systems

      + +

      In this lesson you learn how to define an environment-based type system for
      +a higher-order language, namely the LAMBDA language defined in Part 1 of the
      +tutorial.

      +

      The simplest and fastest way to proceed is to copy the substitution-based
      +type system of LAMBDA from the previous lesson and modify it into an
      +environment-based one. A large portion of the substitution-based definition
      +will remain unchanged. We only have to modify the rules that use
      +substitution.

      +

      We do not need the substitution anymore, so we can remove the require and
      +import statements. The syntax of types and expressions stays unchanged, but
      +we can now remove the binder tag of lambda.

      +

      Like in the type system of IMP++ in Lesson 1, we need a configuration that
      +contains, besides the <k/> cell, a <tenv/> cell that will hold the type
      +environment.

      +

      In an environment-based definition, unlike in a substitution-based one, we
      +need to lookup variables in the environment. So let us start with the
      +type lookup rule:

      +
      rule <k> X:Id => T ...</k> <tenv>... X |-> T ...</k>
      +
      +

      The type environment is populated by the semantic rule of lambda:

      +
      rule <k> lambda X : T . E => (T -> E) ~> Rho ...</k>
      +     <tenv> Rho => Rho[X <- T] </tenv>
      +
      +

      So X is bound to its type T in the type environment, and then T -> E
      +is scheduled for processing. Recall that the arrow type construct has been
      +extended into a strict expression construct, so E will be eventually reduced
      +to its type. Like in other environment-based definitions, we need to make
      +sure that we recover the type environment after the computation in the scope
      +of the declared variable terminates.

      +

      The typing rule of application does not change, so it stays as elegant as it
      +was in the substitution-based definition:

      +
      rule (T1 -> T2) T1 => T2
      +
      +

      So do the rules for arithmetic and Boolean constructs, and those for the
      +if, and let, and letrec.

      +

      The mu rule needs to change, because it was previously defined using
      +substitution. We modify it in the same spirit as we modified the lambda
      +rule: bind X to its type in the environment, schedule its body for typing
      +in its right context, and then recover the type environment.

      +

      Finally, we give the semantics of environment recovery, making sure
      +the environment is recovered only after the preceding computation is
      +reduced to a type:

      +

      rule _:Type ~> (Rho => .) ... _ => Rho

      +

      The changes that we applied to the substitution-based definition were
      +therefore quite systematic: each substitution invocation was replaced with
      +an appropriate type environment update/recovery.

      +

      Go to Lesson 4, Type Systems: A Naive Substitution-Based Type Inferencer.

      +

      A Naive Substitution-Based Type Inferencer

      + +

      In this lesson you learn how to define a naive substitution-based type
      +inferencer for a higher-order language, namely the LAMBDA language
      +defined in Part 1 of the tutorial.

      +

      Unlike in the type checker defined in Lessons 2 and 3, where we had to
      +associate a type with each declared variable, a type inferencer
      +attempts to infer the types of all the variables from the way those
      +variables are used. Let us take a look at this program, say plus.lambda:

      +
      lambda x . lambda y . x + y
      +
      +

      Since x and y are used in an integer addition context, we can infer
      +that they must have the type int and the result of the addition is
      +also an int, so the type of the entire expression is int -> int -> int.
      +Similarly, the program if.lambda

      +
      lambda x . lambda y . lambda z .
      +  if x then y else z
      +
      +

      can only make sense when x has type bool and y and z have the same
      +type, say t, in which case the type of the entire expression is
      +bool -> t -> t -> t. Since the type t can be anything, we say that
      +the type of this expression is polymorphic. That means that the code
      +above can be used in different contexts, where t can be an int, a
      +bool, a function type int -> int, and so on.

      +

      In the identity.lambda program

      +
      let f = lambda x . x
      +in f 1
      +
      +

      f has such a polymorphic type, which is then applied to an integer,
      +so this program is type-safe and its type is int.

      +

      A typical polymorphic expression is the composition

      +
      lambda f . lambda g . lambda x .
      +  g (f x)
      +
      +

      which has the type (t1 -> t2) -> (t2 -> t3) -> (t1 -> t3), polymorphic
      +in 3 types.

      +

      Let us now define our naive type inferencer and then we discuss more
      +examples. The idea is quite simple: we conceptually do the same
      +operations like we did within the type checker defined in Lesson 2,
      +with two important differences:

      +
        +
      1. instead of declaring a type with each declared variable, we assume
        +a fresh type for that variable; and
      2. +
      3. instead of checking that the types of expressions satisfy the
        +type properties of the context in which they are used, we impose
        +those properties as type equality constraints. A general-purpose
        +unification-based constraint solving mechanism is then used to solve
        +the generated type constraints.
      4. +
      +

      Let us start with the syntax, which is essentially identical to that
      +of the type checker in Lesson 2, except that bound variables are not
      +declared a type anymore. Also, to keep things more compact, we put
      +all the Exp syntax declarations in one syntax declaration this time.

      +

      Before we modify the rules, let us first define our machinery for
      +adding and solving constraints. First, we require and import the
      +unification procedure. We do not discuss unification here, but if you
      +are interested you can consult the unification.k files under
      +k-distribution/include/kframework/builtin, which contains our current generic
      +definition of unification, which is written also in K. The generic unification
      +provides a sort, Mgu, for most-general-unifier, an operation
      +updateMgu(Mgu,T1,T2) which updates Mgu with additional constraints
      +generated by forcing the terms T1 and T2 to be equal, and an operation
      +applyMgu(Mgu,T) which applies Mgu to term T. For our use
      +of unification here, we do not even need to know how Mgu terms are
      +represented internally.

      +

      We define a K item construct, =, which takes two Type terms and
      +enforces them to be equal by means of updating the current Mgu.
      +Once the constraints are added to the Mgu, the equality dissolves
      +itself. With this semantics of = in mind, we can now go ahead and
      +modify the rules of the type checker systematically into rules
      +for a type inferencer. The changes are self-explanatory and
      +mechanical: for example, the rule

      +
      rule int * int => int
      +
      +

      changes into rule

      +
      rule T1:Type  * T2:Type => T1 = int ~> T2 = int ~> int
      +
      +

      generating the constraints that the two arguments of multiplication
      +have the type int, and the result type is int. Recall that each type
      +equality on the <k/> cell updates the current Mgu appropriately and
      +then dissolves itself; thus, the above says that after imposing the
      +constraints T1=int and T2=int, multiplication yields a type int.

      +

      As mentioned above, since types of variables are not declared anymore,
      +but inferred, we have to generate a fresh type for each variable at its
      +declaration time, and then generate appropriately constraints for it.
      +For example, the type semantics of lambda and mu become:

      +
      rule lambda X . E => T -> E[T/X]  when fresh(T:Type)
      +rule mu X . E => (T -> T) E[T/X]  when fresh(T:Type)
      +
      +

      that is, we add a condition stating that the previously declared type
      +is now a fresh one. This type will be further constrained by how the
      +variable X is being used within E.

      +

      Interestingly, the previous typing rule for lambda application is not
      +powerful enough anymore. Indeed, since types are not given anymore,
      +it may very well be the case that the inferred type of the first
      +argument of the application construct is not yet a function type
      +(remember, for example, the program composition.lambda above). What
      +we have to do is to enforce it to be a function type, by means of
      +fresh types and constraints. We can introduce a fresh type for the
      +result of the application, and then write the expected rule as
      +follows:

      +
      rule T1:Type T2:Type => T1 = (T2 -> T) ~> T  when fresh(T:Type)
      +
      +

      The conditional requires that its first argument is a bool and its
      +second and third arguments have the same type, which is also the
      +result type.

      +

      The macros do not change, in particular let is desugared into lambda
      +application. We will next see that this is a significant restriction,
      +because it limits the polymorphism of our type system.

      +

      We are done. We have a working type inferencer for LAMBDA.

      +

      Let's kompile it and krun the programs above. They all work as
      +expected. Let us also try some additional programs, to push it to its
      +limits.

      +

      First, let us test mu by means of a letrec example:

      +
      letrec f x = 3
      +in f
      +
      +

      We can also try all the programs that we had in our first tutorial, on
      +lambda, for example the factorial.imp program:

      +
      letrec f x = if x <= 1 then 1 else (x * (f (x + -1)))
      +in (f 10)
      +
      +

      Those programs are simple enough that they should all work as
      +expected with our naive type inferencer here.

      +

      Let us next try to type some tricky programs, which involve more
      +complex and indirect type constraints.

      +

      tricky-1.lambda:

      +
      lambda f . lambda x . lambda y . (
      +  (f x y) + x + (let x = y in x)
      +)
      +
      +

      tricky-2.lambda:

      +
      lambda x .
      +  let f = lambda y . if true then y else x
      +  in (lambda x . f 0)
      +
      +

      tricky-3.lambda:

      +
      lambda x . let f = lambda y . if true then x 7 else x y
      +           in f
      +
      +

      tricky-4.lambda:

      +
      lambda x . let f = lambda x . x
      +           in let d = (f x) + 1
      +              in x
      +
      +

      tricky-5.lambda:

      +
      lambda x . let f = lambda y . x y
      +           in let z = x 0 in f
      +
      +

      It is now time to see the limitations of this naive type inferencer.
      +Consider the program

      +
      let id = lambda x . x
      +in if (id true) then (id 1) else (id 2)
      +
      +

      Our type inferencer fails graciously with a clash in the <mgu/> cell
      +between int and bool. Indeed, the desugaring macro of let turns it
      +into a lambda and an application, which further enforce id to have a
      +type of the form t -> t for some fresh type t. The first use of id
      +in the condition of if will then constrain t to be bool, while the
      +other uses in the two branches will enforce t to be int. Thus the
      +clash in the <mgu/> cell.

      +

      Similarly, the program

      +
      let id = lambda x . x
      +in id id
      +
      +

      yields a different kind of conflict: if id has type t -> t, in order
      +to apply id to itself it must be the case that its argument, t, equals
      +t -> t. These two type terms cannot be unified because there is a
      +circular dependence on t, so we get a cycle in the <mgu/> cell.

      +

      Both limitations above will be solved when we change the semantics of
      +let later on, to account for the desired polymorphism.

      +

      Before we conclude this lesson, let us see one more interesting
      +example, where the lack of let-polymorphism leads not to a type error,
      +but to a less generic type:

      +
      let f1 = lambda x . x in
      +  let f2 = f1 in
      +    let f3 = f2 in
      +      let f4 = f3 in
      +        let f5 = f4 in
      +          if (f5 true) then f2 else f3
      +
      +

      Our current type inferencer will infer the type bool -> bool for the
      +program above. Nevertheless, since all functions f1, f2, f3, f4, f5
      +are the identity function, which is polymorphic, we would expect the
      +entire program to type to the same polymorphic identity function type.

      +

      This limitation will be also addressed when we define our
      +let-polymorphic type inferencer.

      +

      Before that, in the next lesson we will show how easily we can turn
      +the naive substitution-based type inferencer discussed in this lesson
      +into a similarly naive, but environment-based type inferencer.

      +

      Go to Lesson 5, Type Systems: A Naive Environment-Based Type Inferencer.

      +

      A Naive Environment-Based Type Inferencer

      + +

      In this lesson you learn how to define a naive environment-based type
      +inferencer for a higher-order language. Specifically, we take the
      +substitution-based type inferencer for LAMBDA defined in Lesson 4 and
      +turn it into an environment-based one.

      +

      Recall from Lesson 3, where we defined an environment-based type
      +checker for LAMBDA based on the substitution-based one in Lesson 2,
      +that the transition from a substitution-based definition to an
      +environment-based one was quite systematic and mechanical: each
      +substitution occurrence E[T/X] is replaced by E, but at the same time
      +the variable X is bound to type T in the type environment. One benefit
      +of using type environments instead of substitution is that we replace
      +a linear complexity operation (the substitution) with a constant
      +complexity one (the variable lookup).

      +

      There is not much left to say which has not been already said in
      +Lesson 3: we remove the unnecessary binder annotations for the
      +variable binding operations, then add a <tenv/> cell to the
      +configuration to hold the type environment, then add a new rule for
      +variable lookup, and finally apply the transformation of substitutions
      +E[T/X] into E as explained above.

      +

      The resulting type inferencer should now work exactly the same way as
      +the substitution-based one, except, of course, that the resulting
      +configurations will contain a <tenv/> cell now.

      +

      As sanity check, let us consider two more LAMBDA programs that test
      +the static scoping nature of the inferencer. We do that because
      +faulty environment-based definitions often have this problem. The
      +program

      +
      let x = 1
      +in let f = lambda a . x
      +   in let x = true
      +      in f 3
      +
      +

      should type to int, not to bool, and so it does. Similarly, the
      +program

      +
      let y = 0
      +in letrec f x = if x <= 0
      +                then y
      +                else let y = true
      +                     in f (x + 1)
      +   in f 1
      +
      +

      should also type to int, not bool, and so it does, too.

      +

      The type inferencer defined in this lesson has the same limitations,
      +in terms of polymorphism, as the one in Lesson 4. In the next
      +lesson we will see how it can be parallelized, and in further lessons
      +how to make it polymorphic.

      +

      Go to Lesson 6, Type Systems: Parallel Type Checkers/Inferencers.

      +

      Parallel Type Checkers/Inferencers

      + +

      In this lesson you learn how to define parallel type checkers or
      +inferencers. For the sake of a choice, we will parallelize the one in
      +the previous lesson, but the ideas are general. We are using the same
      +idea to define type checkers for other languages in the K tool
      +distribution, such as SIMPLE and KOOL.

      +

      The idea is in fact quite simple. Instead of one monolithic typing
      +task, we generate many smaller tasks, which can be processed in
      +parallel. We use the same approach to define parallel semantics as we
      +used for threads in IMP++ in Part 4 of the tutorial, that is, we add a
      +cell holding all the parallel tasks, making sure we declare the cell
      +holding a task with multiplicity *. For the particular type
      +inferencer that we chose here, the one in Lesson 5, each task will
      +hold an expression to type together with a type environment (so it
      +knows where to lookup its free variables). We have the following
      +configuration then:

      +
      configuration <tasks color="yellow">
      +                <task color="orange" multiplicity="*">
      +                  <k color="green"> $PGM:Exp </k>
      +                  <tenv color="red"> .Map </tenv>
      +                </task>
      +              </tasks>
      +              <mgu color="blue"> .Mgu </mgu>
      +
      +

      Now we have to take each typing rule we had before and change it to
      +yield parallel typing. For example, our rule for typing
      +multiplication was the following in Lesson 5:

      +
      rule T1:Type * T2:Type => T1 = int ~> T2 = int ~> int
      +
      +

      Since * was strict, its two arguments eventually type, and once that
      +happens the rule above fires. Unfortunately, the strictness of
      +multiplication makes the typing of the two expressions sequential in
      +our previous definition. To avoid typing the two expressions
      +sequentially and instead generating two parallel tasks, we remove the
      +strict attribute of multiplication and replace the rule above with the
      +following:

      +
      rule <k> E1 * E2 => int ...</k> <tenv> Rho </tenv>
      +     (. => <task> <k> E1 = int </k> <tenv> Rho </tenv> </task>
      +           <task> <k> E2 = int </k> <tenv> Rho </tenv> </task>)
      +
      +

      Therefore, we generate two tasks for typing E1 and E2 in the same type
      +environment as the current task, and let the current task continue by
      +simply optimistically reducing E1*E2 to its expected result type, int.
      +If E1 or E2 will not type to int, then either their corresponding
      +tasks will get stuck or the <mgu/> cell will result into a clash or cycle,
      +so the program will not type overall in spite of the fact that we
      +allowed the task containing the multiplication to continue. This is
      +how we get maximum of parallelism in this case.

      +

      Before we continue, note that the new tasks hold equalities in them,
      +where one of its arguments is an expression, while previously the
      +equality construct was declared to take types. What we want now is
      +for the equality construct to possibly take any expressions, and first
      +type them and then generate the type constraint like before. This can
      +be done very easily by just extending the equality construct to
      +expressions and declaring it strict:

      +
      syntax KItem ::= Exp "=" Exp  [strict]
      +
      +

      Unlike before, where we only passed types to the equality construct,
      +we now need a runtime check that its arguments are indeed types before
      +we can generate the updateMgu command:

      +
      rule <k> T:Type = T':Type => . ...</k>
      +     <mgu> Theta:Mgu => updateMgu(Theta,T,T') </mgu>
      +
      +

      Like before, an equality will therefore update the <mgu/> cell and then
      +it dissolves itself, letting the <k/> cell in the corresponding task
      +empty. Such empty tasks are unnecessary, so they can be erased:

      +
      rule <task>... <k> . </k> ...</task> => .
      +
      +

      We can now follow the same style as for multiplication to write the
      +parallel typing rules of the other arithmetic constructs, and even for
      +the conditional.

      +

      To parallelize the typing of lambda we generate two fresh types, one
      +for the variable and one for the body, and make sure that we generate
      +the correct type constraint and environment in the body task:

      +
      rule <k> lambda X . E => Tx -> Te ...</k> <tenv> TEnv </tenv>
      +     (. => <task> <k> E = Te </k> <tenv> TEnv[Tx/X] </tenv> </task>)
      +  when fresh(Tx:Type) andBool fresh(Te:Type)
      +
      +

      Note that the above also allows us to not need to change and then
      +recover the environment of the current cell.

      +

      For function application we also need to generate two fresh types:

      +
      rule <k> E1 E2 => T ...</k> <tenv> Rho </tenv>
      +     (. => <task> <k> E1 = T2 -> T </k> <tenv> Rho </tenv> </task>
      +           <task> <k> E2 = T2 </k> <tenv> Rho </tenv> </task>)
      +  when fresh(T2:Type) andBool fresh(T:Type)
      +
      +

      The only rule left is that of mu X . E. In this case we only need one
      +fresh type, because X, E and mu X . E have all the same type:

      +
      rule <k> mu X . E => T ...</k>  <tenv> TEnv </tenv>
      +     (. => <task> <k> E = T </k> <tenv> TEnv[T/X] </tenv> </task>)
      +  when fresh(T:Type)
      +
      +

      We do not need the type environment recovery operation, so we delete it.

      +

      We can now kompile and krun all the programs that we typed in Lesson 5.
      +Everything should work.

      +

      In this lesson we only aimed at parallelizing the type inferencer in
      +Lesson 5, not to improve its expressiveness; it still has the same
      +limitations in terms of polymorphism. The next lessons are dedicated
      +to polymorphic type inferencers.

      +

      Go to Lesson 7, Type Systems: A Naive Substitution-based Polymorphic Type Inferencer.

      +

      A Naive Substitution-based Polymorphic Type Inferencer

      + +

      In this lesson you learn how little it takes to turn a naive monomorphic
      +type inferencer into a naive polymorphic one, basically only changing
      +a few characters. In terms of the K framework, you will learn that
      +you can have complex combinations of substitutions in K, both over
      +expressions and over types.

      +

      Let us start directly with the change. All we have to do is to take
      +the LAMBDA type inferencer in Lesson 4 and only change the macro

      +
      rule let X = E in E' => (lambda X . E') E  [macro]
      +
      +

      as follows:

      +
      rule let X = E in E' => E'[E/X]  [macro]
      +
      +

      In other words, we are inlining the beta-reduction rule of
      +lambda-calculus within the original rule. In terms of typing,
      +the above forces the type inferencer to type E in place for each
      +occurrence of X in E'. Unlike in the first rule, where X had to get
      +one type only which satisfied the constrains of all X's occurrences in
      +E', we now never associate any type to X anymore.

      +

      Let us kompile and krun some examples. Everything that worked with
      +the type inferencer in Lesson 4 should still work here, although the
      +types of some programs can now be more general. For example, reconsider
      +the nested-lets.lambda program

      +
      let f1 = lambda x . x in
      +  let f2 = f1 in
      +    let f3 = f2 in
      +      let f4 = f3 in
      +        let f5 = f4 in
      +          if (f5 true) then f2 else f3
      +
      +

      which was previously typed to bool -> bool. With the new rule above,
      +the sequence of lets is iteratively eliminated and we end up with the
      +program

      +
      if (lambda x . x) true then (lambda x . x) else (lambda x . x)
      +
      +

      which now types (with both type inferencers) to a type of the form
      +t -> t, for some type variable t, which is more general than the
      +previous bool -> bool type that the program typed to in Lesson 4.

      +

      We can also now type programs that were not typable before, such as

      +
      let id = lambda x . x
      +in if (id true) then (id 1) else (id 2)
      +
      +

      and

      +
      let id = lambda x . x
      +in id id
      +
      +

      Let us also test it on some trickier programs, also not typable
      +before, such as

      +
      let f = lambda x . x
      +in let g = lambda y . f y
      +   in g g
      +
      +

      which gives us a type of the form t -> t for some type variable t,
      +and as

      +
      let f = let g = lambda x . x
      +        in let h = lambda x . lambda x . (g g g g)
      +           in h
      +in f
      +
      +

      which types to t1 -> t2 -> t3 -> t3 for some type variables t1, t2, t3.

      +

      Here is another program which was not typable before, which is
      +trickier than the others above in that a lambda-bound variable appears
      +free in a let-bound expression:

      +
      lambda x . (
      +  let y = lambda z . x
      +  in if (y true) then (y 1) else (y (lambda x . x))
      +)
      +
      +

      The above presents no problem now, because once lambda z . x gets
      +substituted for y we get a well-typed expression which yields that x
      +has the type bool, so the entire expression types to bool -> bool.

      +

      The cheap type inferencer that we obtained above therefore works as
      +expected. However, it has two problems which justify a more advanced
      +solution. First, substitution is typically considered an elegant
      +mathematical instrument which is not too practical in implementations,
      +so an implementation of this type inferencer will likely be based on
      +type environments anyway. Additionally, we mix two kinds of
      +substitutions in this definition, one where we substitute types and
      +another where we substitute expressions, which can only make things
      +harder to implement efficiently. Second, our naive substitution of E
      +for X in E' can yield an exponential explosion in size of the original
      +program. Consider, for example, the following classic example which
      +is known to generate a type whose size is exponential in the size of
      +the program (and is thus used as an argument for why let-polymorphic
      +type inference is exponential in the worst-case):

      +
      let f00 = lambda x . lambda y . x in
      +  let f01 = lambda x . f00 (f00 x) in
      +    let f02 = lambda x . f01 (f01 x) in
      +      let f03 = lambda x . f02 (f02 x) in
      +        let f04 = lambda x . f03 (f03 x) in
      +          // ... you can add more nested lets here
      +          f04
      +
      +

      The particular instance of the pattern above generates a type which
      +has 17 type variables! The desugaring of each let doubles the size of
      +the program and of its resulting type. While such programs are little
      +likely to appear in practice, it is often the case that functions can
      +be quite complex and large while their type can be quite simple in the
      +end, so we should simply avoid retyping each function each time it is
      +used.

      +

      This is precisely what we will do next. Before we present the classic
      +let-polymorphic type inferencer in Lesson 9, which is based on
      +environments, we first quickly discuss in Lesson 8 an intermediate
      +step, namely a naive environment-based variant of the inferencer
      +defined here.

      +

      Go to Lesson 8, Type Systems: A Naive Environment-based Polymorphic Type Inferencer.

      +

      A Naive Environment-based Polymorphic Type Inferencer

      + +

      In this short lesson we discuss how to quickly turn a naive
      +environment-based monomorphic type inferencer into a naive let-polymorphic
      +one. Like in the previous lesson, we only need to change a few
      +characters. In terms of the K framework, you will learn how to have
      +both environments and substitution in the same definition.

      +

      Like in the previous lesson, all we have to do is to take the LAMBDA
      +type inferencer in Lesson 5 and only change the rule

      +
      rule let X = E in E' => (lambda X . E') E
      +
      +

      as follows:

      +
      rule let X = E in E' => E'[E/X]
      +
      +

      The reasons why this works have already been explained in the previous
      +lesson, so we do not repeat them here.

      +

      Since our new let rule uses substitution, we have to require the
      +substitution module at the top and also import SUBSTITUTION in the
      +current module, besides the already existing UNIFICATION.

      +

      Everything which worked with the type inferencer in Lesson 7 should
      +also work now. Let us only try the exponential type example,

      +
      let f00 = lambda x . lambda y . x in
      +  let f01 = lambda x . f00 (f00 x) in
      +    let f02 = lambda x . f01 (f01 x) in
      +      let f03 = lambda x . f02 (f02 x) in
      +        let f04 = lambda x . f03 (f03 x) in
      +          f04
      +
      +

      As expected, this gives us precisely the same type as in Lesson 7.

      +

      So the only difference between this type inferencer and the one in
      +Lesson 7 is that substitution is only used for LAMBDA-to-LAMBDA
      +transformations, but not for infusing types within LAMBDA programs.
      +Thus, the syntax of LAMBDA programs is preserved intact, which some
      +may prefer. Nevertheless, this type inferencer is still expensive and
      +wasteful, because the let-bound expression is typed over and over
      +again in each place where the let-bound variable occurs.

      +

      In the next lesson we will discuss a type inferencer based on the
      +classic Damas-Hindley-Milner type system, which maximizes the reuse of
      +typing work by means of parametric types.

      +

      Go to Lesson 9, Type Systems: Let-Polymorphic Type Inferencer (Damas-Hindley-Milner).

      +

      Let-Polymorphic Type Inferencer (Damas-Hindley-Milner)

      + +

      In this lesson we discuss a type inferencer based on what we call today
      +the Damas-Hindley-Milner type system, which is at the core of many
      +modern functional programming languages. The first variant of it was
      +proposed by Hindley in 1969, then, interestingly, Milner rediscovered
      +it in 1978 in the context of the ML language. Damas formalized it as
      +a type system in his PhD thesis in 1985. More specifically, our type
      +inferencer here, like many others as well as many implementations of
      +it, follows more closely the syntax-driven variant proposed by Clement
      +in 1987.

      +

      In terms of K, we will see how easily we can turn one definition which
      +is considered naive (our previous type inferencer in Lesson 8) into a
      +definition which is considered advanced. All we have to do is to
      +change one existing rule (the rule of the let binder) and to add a new
      +one. We will also learn some new predefined features of K, which make
      +the above possible.

      +

      The main idea is to replace the rule

      +
      rule let X = E in E' => E'[E/X]
      +
      +

      which creates potentially many copies of E within E' with a rule
      +which types E once and then reuses that type in each place where X
      +occurs free in E'. The simplest K way to type E is to declare the
      +let construct strict(2). Now we cannot simply bind X to the type
      +of E, because we would obtain a variant of the naive type inferencer
      +we already discussed, together with its limitations, in Lesson 5 of this
      +tutorial. The trick here is to parameterize the type of E in all its
      +unconstrained fresh types, and then create fresh copies of those
      +parameters in each free occurrence of X in E'.

      +

      Let us discuss some examples, before we go into the technical details.
      +Consider the first let-polymorphic example which failed to be typed
      +with our first naive type-inferencer:

      +
      let id = lambda x . x
      +in if (id true) then (id 1) else (id 2)
      +
      +

      When typing lambda x . x, we get a type of the form t -> t, for some
      +fresh type t. Instead of assigning this type to id as we did in the
      +naive type inferencers, we now first parametrize this type in its
      +fresh variable t, written

      +
      (forall t) t -> t
      +
      +

      and then bind id to this parametric type. The intuition for the
      +parameter is that it can be instantiated with any other type, so this
      +parametric type stands, in fact, for infinitely many non-parametric
      +types. This is similar to what happens in formal logic proof systems,
      +where rule schemas stand for infinitely many concrete instances of
      +them. For this reason, parametric types are also called type schemas.

      +

      Now each time id is looked up within the let-body, we create a fresh
      +copy of the parameter t, which can this way be independently
      +constrained by each local context. Let's suppose that the three id
      +lookups yield the types t1 -> t1, t2 -> t2, and respectively t3 -> t3.
      +Then t1 will be constrained to be bool, and t2 and t3 to be int,
      +so we can now safely type the program above to int.

      +

      Therefore, a type schema comprises a summary of all the typing work
      +that has been done for typing the corresponding expression, and an
      +instantiation of its parameters with fresh copies represents an
      +elegant way to reuse all that typing work.

      +

      There are some subtleties regarding what fresh types can be made
      +parameters. Let us consider another example, discussed as part of
      +Lesson 7 on naive let-polymorphism:

      +
      lambda x . (
      +  let y = lambda z . x
      +  in if (y true) then (y 1) else (y (lambda x . x))
      +)
      +
      +

      This program should type to bool -> bool, as explained in Lesson 7.
      +The lambda construct will bind x to some fresh type tx. Then the
      +let-bound expression lambda z . x types to tz -> tx for some
      +additional fresh type tz. The question now is what should the
      +parameters of this type be when we generate the type schema? If we
      +naively parameterize in all fresh variables, that is in both tz and
      +tx obtaining the type schema (forall tz,tx) tz -> tx, then there will
      +be no way to infer that the type of x, tx, must be a bool! The
      +inferred type of this expression would then wrongly be tx -> t for
      +some fresh types tx and t. That's because the parameters are replaced
      +with fresh copies in each occurrence of y, and thus their relationship
      +to the original x is completely lost. This tells us that we cannot
      +parameterize in all fresh types that appear in the type of the
      +let-bound expression. In particular, we cannot parameterize in those
      +which some variables are already bound to in the current type
      +environment (like x is bound to tx in our example above).
      +In our example, the correct type schema is (forall tz) tz -> tx,
      +which now allows us to correctly infer that tx is bool.

      +

      Let us now discuss another example, which should fail to type:

      +
      lambda x .
      +  let f = lambda y . x y
      +  in if (f true) then (f 1) else (f 2)
      +
      +

      This should fail to type because lambda y . x y is equivalent to x,
      +so the conditional imposes the conflicting constraints that x should be
      +a function whose argument is either a bool or an int. Let us try to
      +type it using our currently informal procedure. Like in the previous
      +example, x will be bound to a fresh type tx. Then the let-bound
      +expression types to ty -> tz with ty and tz fresh types, adding also
      +the constraint tx = ty -> tz. What should the parameters of this type
      +be? If we ignore the type constraint and simply make both ty and tz
      +parameters because no variable is bound to them in the type
      +environment (indeed, the only variable x in the type environment is
      +bound to tx), then we can wrongly type this program to tx -> tz
      +following a reasoning similar to the one in the example above.
      +In fact, in this example, none of ty and tz can be parameters, because
      +they are constrained by tx.

      +

      The examples above tell us two things: first, that we have to take the
      +type constraints into account when deciding the parameters of the
      +schema; second, that after applying the most-general-unifier solution
      +given by the type constraints everywhere, the remaining fresh types
      +appearing anywhere in the type environment are consequently constrained
      +and cannot be turned into parameters. Since the type environment can in
      +fact also hold type schemas, which already bind some types, we only need
      +to ensure that none of the fresh types appearing free anywhere in the
      +type environment are turned into parameters of type schemas.

      +

      Thanks to generic support offered by the K tool, we can easily achieve
      +all the above as follows.

      +

      First, add syntax for type schemas:

      +
      syntax TypeSchema ::= "(" "forall" Set ")" Type  [binder]
      +
      +

      The definition below will be given in such a way that the Set argument
      +of a type schema will always be a set of fresh types. We also declare
      +this construct to be a binder, so that we can make use of the generic
      +free variable function provided by the K tool.

      +

      We now replace the old rule for let

      +
      rule let X = E in E' => E'[E/X]
      +
      +

      with the following rule:

      +
      rule <k> let X = T:Type in E => E ~> tenv(TEnv) ...</k>
      +     <mgu> Theta:Mgu </mgu>
      +     <tenv> TEnv
      +      => TEnv[(forall freeVariables(applyMgu(Theta, T)) -Set
      +                      freeVariables(applyMgu(Theta, values TEnv))
      +              ) applyMgu(Theta, T) / X]
      +     </tenv>
      +
      +

      So the type T of E is being parameterized and then bound to X in the
      +type environment. The current mgu Theta, which comprises all the type
      +constraints accumulated so far, is applied to both T and the types in
      +the type environment. The remaining fresh types in T which do not
      +appear free in the type environment are then turned into type parameters.
      +The function freeVariables returns, as expected, the free variables of
      +its argument as a Set; this is why we declared the type schema to be a
      +binder above.

      +

      Now a LAMBDA variable in the type environment can be bound to either a
      +type or a type schema. In the first case, the previous rule we had
      +for variable lookup can be reused, but we have to make sure we check
      +that T there is of sort Type (adding a sort membership, for example).
      +In the second case, as explained above, we have to create fresh copies
      +of the parameters. This can be easily achieved with another
      +predefined K function, as follows:

      +
      rule <k> X:Id => freshVariables(Tvs,T) ...</k>
      +     <tenv>... X |-> (forall Tvs) T ...</tenv>
      +
      +

      Indeed, freshVariables takes a set of variables and a term, and returns the
      +same term but with each of the given variables replaced by a fresh copy.

      +

      The operations freeVariables and freshVariables are useful in many K
      +definitions, so they are predefined in module substitution.k.

      +

      Our definition of this let-polymorphic type inferencer is now
      +complete. To test it, kompile it and then krun all the LAMBDA
      +programs discussed since Lesson 4. They should all work as expected.

      +

      K Languages

      + +

      Here we present several "real-world" language examples. These languages
      +demonstrate many of the features you would expect to find in a full-fledged
      +programming language.

      +
        +
      • SIMPLE: Imperative programming language with threads.
      • +
      • KOOL: SIMPLE extended with object-oriented features.
      • +
      • FUN: A functional language with algebraic data-types and pattern-matching.
      • +
      • LOGIK: A logical programming language based on clause unification.
      • +
      +

      SIMPLE — Untyped

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K semantic definition of the untyped SIMPLE language.
      +SIMPLE is intended to be a pedagogical and research language that captures
      +the essence of the imperative programming paradigm, extended with several
      +features often encountered in imperative programming languages.
      +A program consists of a set of global variable declarations and
      +function definitions. Like in C, function definitions cannot be
      +nested and each program must have one function called main,
      +which is invoked when the program is executed. To make it more
      +interesting and to highlight some of K's strengths, SIMPLE includes
      +the following features in addition to the conventional imperative
      +expression and statement constructs:

      +
        +
      • +

        Multidimensional arrays and array references. An array evaluates
        +to an array reference, which is a special value holding a location (where
        +the elements of the array start) together with the size of the array;
        +the elements of the array can be array references themselves (particularly
        +when the array is multi-dimensional). Array references are ordinary values,
        +so they can be assigned to variables and passed/received by functions.

        +
      • +
      • +

        Functions and function values. Functions can have zero or
        +more parameters and can return abruptly using a return statement.
        +SIMPLE follows a call-by-value parameter passing style, with static scoping.
        +Function names evaluate to function abstractions, which hereby become ordinary
        +values in the language, same like the array references.

        +
      • +
      • +

        Blocks with locals. SIMPLE variables can be declared
        +anywhere, their scope being from the place where they are declared
        +until the end of the most nested enclosing block.

        +
      • +
      • +

        Input/Output. The expression read() evaluates to the
        +next value in the input buffer, and the statement write(e)
        +evaluates e and outputs its value to the output buffer. The
        +input and output buffers are lists of values.

        +
      • +
      • +

        Exceptions. SIMPLE has parametric exceptions (the value thrown as
        +an exception can be caught and bound).

        +
      • +
      • +

        Concurrency via dynamic thread creation/termination and
        +synchronization. One can spawn a thread to execute any statement.
        +The spawned thread shares with its parent its environment at creation time.
        +Threads can be synchronized via a join command which blocks the current thread
        +until the joined thread completes, via re-entrant locks which can be acquired
        +and released, as well as through rendezvous commands.

        +
      • +
      +

      Like in many other languages, some of SIMPLE's constructs can be
      +desugared into a smaller set of basic constructs. We do that at the end
      +of the syntax module, and then we only give semantics to the core constructs.

      +

      Note: This definition is commented slightly more than others, because it is
      +intended to be one of the first non-trivial definitions that the new
      +user of K sees. We recommend the beginner user to first check the
      +language definitions discussed in the K tutorial.

      +
      module SIMPLE-UNTYPED-SYNTAX
      +  imports DOMAINS-SYNTAX
      +

      Syntax

      + +

      We start by defining the SIMPLE syntax. The language constructs discussed
      +above have the expected syntax and evaluation strategies. Recall that in K
      +we annotate the syntax with appropriate strictness attributes, thus giving
      +each language construct the desired evaluation strategy.

      +

      Identifiers

      + +

      Recall from the K tutorial that identifiers are builtin and come under the
      +syntactic category Id. The special identifier for the function
      +main belongs to all programs, and plays a special role in the semantics,
      +so we declare it explicitly. This would not be necessary if the identifiers
      +were all included automatically in semantic definitions, but that is not
      +possible because of parsing reasons (e.g., K variables used to match
      +concrete identifiers would then be ambiguously parsed as identifiers). They
      +are only included in the parser generated to parse programs (and used by the
      +kast tool). Consequently, we have to explicitly declare all the
      +concrete identifiers that play a special role in the semantics, like
      +main below.

      +
        syntax Id ::= "main" [token]
      +

      Declarations

      + +

      There are two types of declarations: for variables (including arrays) and
      +for functions. We are going to allow declarations of the form
      +var x=10, a[10,10], y=23;, which is why we allow the var
      +keyword to take a list of expressions. The non-terminals used in the two
      +productions below are defined shortly.

      +
        syntax Stmt ::= "var" Exps ";"
      +                | "function" Id "(" Ids ")" Block
      +

      Expressions

      + +

      The expression constructs below are standard. Increment (++) takes
      +an expression rather than a variable because it can also increment an array
      +element. Recall that the syntax we define in K is what we call the syntax
      +of the semantics
      : while powerful enough to define non-trivial syntaxes
      +(thanks to the underlying SDF technology that we use), we typically refrain
      +from defining precise syntaxes, that is, ones which accept precisely the
      +well-formed programs (that would not be possible anyway in general). That job
      +is deferred to type systems, which can also be defined in K. In other words,
      +we are not making any effort to guarantee syntactically that only variables
      +or array elements are passed to the increment construct, we allow any
      +expression. Nevertheless, we will only give semantics to those, so expressions
      +of the form ++5, which parse (but which will be rejected by our type
      +system in the typed version of SIMPLE later), will get stuck when executed.
      +Arrays can be multidimensional and can hold other arrays, so their
      +lookup operation takes a list of expressions as argument and applies to an
      +expression (which can in particular be another array lookup), respectively.
      +The construct sizeOf gives the size of an array in number of elements
      +of its first dimension. Note that almost all constructs are strict. The only
      +constructs which are not strict are the increment (since its first argument
      +gets updated, so it cannot be evaluated), the input read which takes no
      +arguments so strictness is irrelevant for it, the logical and and or constructs
      +which are short-circuited, the thread spawning construct which creates a new
      +thread executing the argument expression and return its unique identifier to
      +the creating thread (so it cannot just evaluate its argument in place), and the
      +assignment which is only strict in its second argument (for the same reason as
      +the increment).

      +
        syntax Exp ::= Int | Bool | String | Id
      +               | "(" Exp ")"             [bracket]
      +               | "++" Exp
      +               > Exp "[" Exps "]"        [strict]
      +               > Exp "(" Exps ")"        [strict]
      +               | "-" Exp                 [strict]
      +               | "sizeOf" "(" Exp ")"    [strict]
      +               | "read" "(" ")"
      +               > left:
      +                 Exp "*" Exp             [strict, left]
      +               | Exp "/" Exp             [strict, left]
      +               | Exp "%" Exp             [strict, left]
      +               > left:
      +                 Exp "+" Exp             [strict, left]
      +               | Exp "-" Exp             [strict, left]
      +               > non-assoc:
      +                 Exp "<" Exp             [strict, non-assoc]
      +               | Exp "<=" Exp            [strict, non-assoc]
      +               | Exp ">" Exp             [strict, non-assoc]
      +               | Exp ">=" Exp            [strict, non-assoc]
      +               | Exp "==" Exp            [strict, non-assoc]
      +               | Exp "!=" Exp            [strict, non-assoc]
      +               > "!" Exp                 [strict]
      +               > left:
      +                 Exp "&&" Exp            [strict(1), left]
      +               | Exp "||" Exp            [strict(1), left]
      +               > "spawn" Block
      +               > Exp "=" Exp             [strict(2), right]
      +

      We also need comma-separated lists of identifiers and of expressions.
      +Moreover, we want them to be strict, that is, to evaluate to lists of results
      +whenever requested (e.g., when they appear as strict arguments of
      +the constructs above).

      +
        syntax Ids  ::= List{Id,","}           [klabel(Exps)]
      +  syntax Exps ::= List{Exp,","}          [klabel(Exps), strict]  // automatically hybrid now
      +  syntax Exps ::= Ids
      +  syntax Val
      +  syntax Vals ::= List{Val,","}          [klabel(Exps)]
      +  syntax Bottom
      +  syntax Bottoms ::= List{Bottom,","}    [klabel(Exps)]
      +  syntax Ids ::= Bottoms
      +

      Statements

      + +

      Most of the statement constructs are standard for imperative languages.
      +We syntactically distinguish between empty and non-empty blocks, because we
      +chose Stmts not to be a (;-separated) list of
      +Stmt. Variables can be declared anywhere inside a block, their scope
      +ending with the block. Expressions are allowed to be used for their side
      +effects only (followed by a semicolon ;). Functions are allowed
      +to abruptly return. The exceptions are parametric, i.e., one can throw a value
      +which is bound to the variable declared by catch. Threads can be
      +dynamically created and terminated, and can synchronize with join,
      +acquire, release and rendezvous. Note that the
      +strictness attributes obey the intended evaluation strategy of the various
      +constructs. In particular, the if-then-else construct is strict only in its
      +first argument (the if-then construct will be desugared into if-then-else),
      +while the loop constructs are not strict in any arguments. The print
      +statement construct is variadic, that is, it takes an arbitrary number of
      +arguments.

      +
        syntax Block ::= "{" "}"
      +                | "{" Stmt "}"
      +
      +  syntax Stmt ::= Block
      +                | Exp ";"                               [strict]
      +                | "if" "(" Exp ")" Block "else" Block   [avoid, strict(1)]
      +                | "if" "(" Exp ")" Block                [macro]
      +                | "while" "(" Exp ")" Block
      +                | "for" "(" Stmt Exp ";" Exp ")" Block  [macro]
      +                | "return" Exp ";"                      [strict]
      +                | "return" ";"                          [macro]
      +                | "print" "(" Exps ")" ";"              [strict]
      +// NOTE: print strict allows non-deterministic evaluation of its arguments
      +// Either keep like this but document, or otherwise make Exps seqstrict.
      +// Of define and use a different expression list here, which is seqstrict.
      +                | "try" Block "catch" "(" Id ")" Block
      +                | "throw" Exp ";"                       [strict]
      +                | "join" Exp ";"                        [strict]
      +                | "acquire" Exp ";"                     [strict]
      +                | "release" Exp ";"                     [strict]
      +                | "rendezvous" Exp ";"                  [strict]
      +

      The reason we allow Stmts as the first argument of for
      +instead of Stmt is because we want to allow more than one statement
      +to be executed when the loop is initialized. Also, as seens shorly, macros
      +may expand one statement into more statements; for example, an initialized
      +variable declaration statement var x=0; desugars into two statements,
      +namely var x; x=0;, so if we use Stmt instead of Stmts
      +in the production of for above then we risk that the macro expansion
      +of statement var x=0; happens before the macro expansion of for,
      +also shown below, in which case the latter would not apply anymore because
      +of syntactic mismatch.

      +
        syntax Stmt ::= Stmt Stmt                          [right]
      +
      +// I wish I were able to write the following instead, but confuses the parser.
      +//
      +// syntax Stmts ::= List{Stmt,""}
      +// syntax Top ::= Stmt | "function" Id "(" Ids ")" Block
      +// syntax Pgm ::= List{Top,""}
      +//
      +// With that, I could have also eliminated the empty block
      +

      Desugared Syntax

      + +

      This part desugars some of SIMPLE's language constructs into core ones.
      +We only want to give semantics to core constructs, so we get rid of the
      +derived ones before we start the semantics. All desugaring macros below are
      +straightforward.

      +
        rule if (E) S => if (E) S else {}
      +  rule for(Start Cond; Step) {S} => {Start while (Cond) {S Step;}}
      +  rule for(Start Cond; Step) {} => {Start while (Cond) {Step;}}
      +  rule var E1:Exp, E2:Exp, Es:Exps; => var E1; var E2, Es;
      +  rule var X:Id = E; => var X; X = E;
      +

      For the semantics, we can therefore assume from now on that each
      +conditional has both branches, that there are only while loops, and
      +that each variable is declared alone and without any initialization as part of
      +the declaration.

      +
      endmodule
      +
      +
      +module SIMPLE-UNTYPED
      +  imports SIMPLE-UNTYPED-SYNTAX
      +  imports DOMAINS
      +

      Basic Semantic Infrastructure

      + +

      Before one starts adding semantic rules to a K definition, one needs to
      +define the basic semantic infrastructure consisting of definitions for
      +values and configuration. As discussed in the definitions
      +in the K tutorial, the values are needed to know when to stop applying
      +the heating rules and when to start applying the cooling rules corresponding
      +to strictness or context declarations. The configuration serves as a backbone
      +for the process of configuration abstraction which allows users to only
      +mention the relevant cells in each semantic rule, the rest of the configuration
      +context being inferred automatically. Although in some cases the configuration
      +could be automatically inferred from the rules, we believe that it is very
      +useful for language designers/semanticists to actually think of and design
      +their configuration explicitly, so the current implementation of K requires
      +one to define it.

      +

      Values

      + +

      We here define the values of the language that the various fragments of
      +programs evaluate to. First, integers and Booleans are values. As discussed,
      +arrays evaluate to special array reference values holding (1) a location from
      +where the array's elements are contiguously allocated in the store, and
      +(2) the size of the array. Functions evaluate to function values as
      +λ-abstractions (we do not need to evaluate functions to closures
      +because each function is executed in the fixed global environment and
      +function definitions cannot be nested). Like in IMP and other
      +languages, we finally tell the tool that values are K results.

      +
        syntax Val ::= Int | Bool | String
      +               | array(Int,Int)
      +               | lambda(Ids,Stmt)
      +  syntax Exp ::= Val
      +  syntax Exps ::= Vals
      +  syntax Vals ::= Bottoms
      +  syntax KResult ::= Val
      +                   | Vals  // TODO: should not need this
      +

      The inclusion of values in expressions follows the methodology of
      +syntactic definitions (like, e.g., in SOS): extend the syntax of the language
      +to encompass all values and additional constructs needed to give semantics.
      +In addition to that, it allows us to write the semantic rules using the
      +original syntax of the language, and to parse them with the same (now extended
      +with additional values) parser. If writing the semantics directly on the K
      +AST, using the associated labels instead of the syntactic constructs, then one
      +would not need to include values in expressions.

      +

      Configuration

      + +

      The K configuration of SIMPLE consists of a top level cell, T,
      +holding a threads cell, a global environment map cell genv
      +mapping the global variables and function names to their locations, a shared
      +store map cell store mapping each location to some value, a set cell
      +busy holding the locks which have been acquired but not yet released
      +by threads, a set cell terminated holding the unique identifiers of
      +the threads which already terminated (needed for join), input
      +and output list cells, and a nextLoc cell holding a natural
      +number indicating the next available location. Unlike in the small languages
      +in the K tutorial, where we used the fresh predicate to generate fresh
      +locations, in larger languages, like SIMPLE, we prefer to explicitly manage
      +memory. The location counter in nextLoc models an actual physical
      +location in the store; for simplicity, we assume arbitrarily large memory and
      +no garbage collection. The threads cell contains one thread
      +cell for each existing thread in the program. Note that the thread cell has
      +multiplicity *, which means that at any given moment there could be zero,
      +one or more thread cells. Each thread cell contains a
      +computation cell k, a control cell holding the various
      +control structures needed to jump to certain points of interest in the program
      +execution, a local environment map cell env mapping the thread local
      +variables to locations in the store, and finally a holds map cell
      +indicating what locks have been acquired by the thread and not released so far
      +and how many times (SIMPLE's locks are re-entrant). The control cell
      +currently contains only two subcells, a function stack fstack which
      +is a list and an exception stack xstack which is also a list.
      +One can add more control structures in the control cell, such as a
      +stack for break/continue of loops, etc., if the language is extended with more
      +control-changing constructs. Note that all cells except for k are
      +also initialized, in that they contain a ground term of their corresponding
      +sort. The k cell is initialized with the program that will be passed
      +to the K tool, as indicated by the $PGM variable, followed by the
      +execute task (defined shortly).

      +
        // the syntax declarations below are required because the sorts are
      +  // referenced directly by a production and, because of the way KIL to KORE
      +  // is implemented, the configuration syntax is not available yet
      +  // should simply work once KIL is removed completely
      +  // check other definitions for this hack as well
      +
      +  syntax ControlCell
      +  syntax ControlCellFragment
      +
      +  configuration <T color="red">
      +                  <threads color="orange">
      +                    <thread multiplicity="*" type="Map" color="yellow">
      +                      <id color="pink"> -1 </id>
      +                      <k color="green"> $PGM:Stmt ~> execute </k>
      +                    //<br/> // TODO(KORE): support latex annotations #1799
      +                      <control color="cyan">
      +                        <fstack color="blue"> .List </fstack>
      +                        <xstack color="purple"> .List </xstack>
      +                      </control>
      +                    //<br/> // TODO(KORE): support latex annotations #1799
      +                      <env color="violet"> .Map </env>
      +                      <holds color="black"> .Map </holds>
      +                    </thread>
      +                  </threads>
      +                //<br/> // TODO(KORE): support latex annotations #1799
      +                  <genv color="pink"> .Map </genv>
      +                  <store color="white"> .Map </store>
      +                  <busy color="cyan"> .Set </busy>
      +                  <terminated color="red"> .Set </terminated>
      +                //<br/> // TODO(KORE): support latex annotations #1799
      +                  <input color="magenta" stream="stdin"> .List </input>
      +                  <output color="brown" stream="stdout"> .List </output>
      +                  <nextLoc color="gray"> 0 </nextLoc>
      +                </T>
      +

      Declarations and Initialization

      + +

      We start by defining the semantics of declarations (for variables,
      +arrays and functions).

      +

      Variable Declaration

      + +

      The SIMPLE syntax was desugared above so that each variable is
      +declared alone and its initialization is done as a separate statement.
      +The semantic rule below matches resulting variable declarations of the
      +form var X; on top of the k cell
      +(indeed, note that the k cell is complete, or round, to the
      +left, and is torn, or ruptured, to the right), allocates a fresh
      +location L in the store which is initialized with a special value
      + (indeed, the unit ., or nothing, is matched anywhere
      +in the map ‒note the tears at both sides‒ and replaced with the
      +mapping L ↦ ⊥), and binds X to L in the local
      +environment shadowing previous declarations of X, if any.
      +This possible shadowing of X requires us to therefore update the
      +entire environment map, which is expensive and can significantly slow
      +down the execution of larger programs. On the other hand, since we know
      +that L is not already bound in the store, we simply add the binding
      +L ↦ ⊥ to the store, thus avoiding a potentially complete
      +traversal of the the store map in order to update it. We prefer the approach
      +used for updating the store whenever possible, because, in addition to being
      +faster, it offers more true concurrency than the latter; indeed, according
      +to the concurrent semantics of K, the store is not frozen while
      +L ↦ ⊥ is added to it, while the environment is frozen during the
      +update operation Env[L/X]. The variable declaration command is
      +also removed from the top of the computation cell and the fresh location
      +counter is incremented. The undefined symbol added in the store
      +is of sort KItem, instead of Val, on purpose; this way, the
      +store lookup rules will get stuck when one attempts to lookup an
      +uninitialized location. All the above happen in one transactional step,
      +with the rule below. Note also how configuration abstraction allows us to
      +only mention the needed cells; indeed, as the configuration above states,
      +the k and env cells are actually located within a
      +thread cell within the threads cell, but one needs
      +not mention these: the configuration context of the rule is
      +automatically transformed to match the declared configuration
      +structure.

      +
        syntax KItem ::= "undefined"  [latex(\bot)]
      +
      +  rule <k> var X:Id; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> undefined ...</store>
      +       <nextLoc> L => L +Int 1 </nextLoc>
      +

      Array Declaration

      + +

      The K semantics of the uni-dimensional array declaration is somehow similar
      +to the above declaration of ordinary variables. First, note the
      +context declaration below, which requests the evaluation of the array
      +dimension. Once evaluated, say to a natural number N, then
      +N +Int 1 locations are allocated in the store for
      +an array of size N, the additional location (chosen to be the first
      +one allocated) holding the array reference value. The array reference
      +value array(L,N) states that the array has size N and its
      +elements are located contiguously in the store starting with location
      +L. The operation L … L' ↦ V, defined at the end of this
      +file in the auxiliary operation section, initializes each location in
      +the list L … L' to V. Note that, since the dimensions of
      +array declarations can be arbitrary expressions, this virtually means
      +that we can dynamically allocate memory in SIMPLE by means of array
      +declarations.

      +
        context var _:Id[HOLE];
      +
      +  rule <k> var X:Id[N:Int]; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> array(L +Int 1, N)
      +                          (L +Int 1) ... (L +Int N) |-> undefined ...</store>
      +       <nextLoc> L => L +Int 1 +Int N </nextLoc>
      +    requires N >=Int 0
      +

      SIMPLE allows multi-dimensional arrays. For semantic simplicity, we
      +desugar them all into uni-dimensional arrays by code transformation.
      +This way, we only need to give semantics to uni-dimensional arrays.
      +First, note that the context rule above actually evaluates all the array
      +dimensions (that's why we defined the expression lists strict!):
      +Upon evaluating the array dimensions, the code generation rule below
      +desugars multi-dimensional array declaration to uni-dimensional declarations.
      +To this aim, we introduce two special unique variable identifiers,
      +$1 and $2. The first variable, $1, iterates
      +through and initializes each element of the first dimension with an array
      +of the remaining dimensions, declared as variable $2:

      +
        syntax Id ::= "$1" [token] | "$2" [token]
      +  rule var X:Id[N1:Int, N2:Int, Vs:Vals];
      +    => var X[N1];
      +       {
      +         for(var $1 = 0; $1 <= N1 - 1; ++$1) {
      +           var $2[N2, Vs];
      +           X[$1] = $2;
      +         }
      +       }
      +

      Ideally, one would like to perform syntactic desugarings like the one
      +above before the actual semantics. Unfortunately, that was not possible in
      +this case because the dimension expressions of the multi-dimensional array need
      +to be evaluated first. Indeed, the desugaring rule above does not work if the
      +dimensions of the declared array are arbitrary expressions, because they can
      +have side effects (e.g., a[++x,++x]) and those side effects would be
      +propagated each time the expression is evaluated in the desugaring code (note
      +that both the loop condition and the nested multi-dimensional declaration
      +would need to evaluate the expressions given as array dimensions).

      +

      Function declaration

      + +

      Functions are evaluated to λ-abstractions and stored like any other
      +values in the store. A binding is added into the environment for the function
      +name to the location holding its body. Similarly to the C language, SIMPLE
      +only allows function declarations at the top level of the program. More
      +precisely, the subsequent semantics of SIMPLE only works well when one
      +respects this requirement. Indeed, the simplistic context-free parser
      +generated by the grammar above is more generous than we may want, in that it
      +allows function declarations anywhere any declaration is allowed, including
      +inside arbitrary blocks. However, as the rule below shows, we are not
      +storing the declaration environment with the λ-abstraction value as
      +closures do. Instead, as seen shortly, we switch to the global environment
      +whenever functions are invoked, which is consistent with our requirement that
      +functions should only be declared at the top. Thus, if one declares local
      +functions, then one may see unexpected behaviors (e.g., when one shadows a
      +global variable before declaring a local function). The type checker of
      +SIMPLE, also defined in K (see examples/simple/typed/static),
      +discards programs which do not respect this requirement.

      +
        rule <k> function F(Xs) S => . ...</k>
      +       <env> Env => Env[F <- L] </env>
      +       <store>... .Map => L |-> lambda(Xs, S) ...</store>
      +       <nextLoc> L => L +Int 1 </nextLoc>
      +

      When we are done with the first pass (pre-processing), the computation
      +cell k contains only the token execute (see the configuration
      +declaration above, where the computation item execute was placed
      +right after the program in the k cell of the initial configuration)
      +and the cell genv is empty. In this case, we have to call
      +main() and to initialize the global environment by transferring the
      +contents of the local environment into it. We prefer to do it this way, as
      +opposed to processing all the top level declarations directly within the global
      +environment, because we want to avoid duplication of semantics: the syntax of
      +the global declarations is identical to that of their corresponding local
      +declarations, so the semantics of the latter suffices provided that we copy
      +the local environment into the global one once we are done with the
      +pre-processing. We want this separate pre-processing step precisely because
      +we want to create the global environment. All (top-level) functions end up
      +having their names bound in the global environment and, as seen below, they
      +are executed in that same global environment; all these mean, in particular,
      +that the functions "see" each other, allowing for mutual recursion, etc.

      +
        syntax KItem ::= "execute"
      +  rule <k> execute => main(.Exps); </k>
      +       <env> Env </env>
      +       <genv> .Map => Env </genv>
      +

      Expressions

      + +

      We next define the K semantics of all the expression constructs.

      +

      Variable lookup

      + +

      When a variable X is the first computational task, and X is bound to some
      +location L in the environment, and L is mapped to some value V in the
      +store, then we rewrite X into V:

      +
        rule <k> X:Id => V ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... L |-> V:Val ...</store>  [group(lookup)]
      +

      Note that the rule above excludes reading , because is not
      +a value and V is checked at runtime to be a value.

      +

      Variable/Array increment

      + +

      This is tricky, because we want to allow both ++x and ++a[5].
      +Therefore, we need to extract the lvalue of the expression to increment.
      +To do that, we state that the expression to increment should be wrapped
      +by the auxiliary lvalue operation and then evaluated. The semantics
      +of this auxiliary operation is defined at the end of this file. For now, all
      +we need to know is that it takes an expression and evaluates to a location
      +value. Location values, also defined at the end of the file, are integers
      +wrapped with the operation loc, to distinguish them from ordinary
      +integers.

      +
        context ++(HOLE => lvalue(HOLE))
      +  rule <k> ++loc(L) => I +Int 1 ...</k>
      +       <store>... L |-> (I => I +Int 1) ...</store>  [group(increment)]
      +

      Arithmetic operators

      + +

      There is nothing special about the following rules. They rewrite the
      +language constructs to their library counterparts when their arguments
      +become values of expected sorts:

      +
        rule I1 + I2 => I1 +Int I2
      +  rule Str1 + Str2 => Str1 +String Str2
      +  rule I1 - I2 => I1 -Int I2
      +  rule I1 * I2 => I1 *Int I2
      +  rule I1 / I2 => I1 /Int I2 requires I2 =/=K 0
      +  rule I1 % I2 => I1 %Int I2 requires I2 =/=K 0
      +  rule - I => 0 -Int I
      +  rule I1 < I2 => I1 <Int I2
      +  rule I1 <= I2 => I1 <=Int I2
      +  rule I1 > I2 => I1 >Int I2
      +  rule I1 >= I2 => I1 >=Int I2
      +

      The equality and inequality constructs reduce to syntactic comparison
      +of the two argument values (which is what the equality on K terms does).

      +
        rule V1:Val == V2:Val => V1 ==K V2
      +  rule V1:Val != V2:Val => V1 =/=K V2
      +

      The logical negation is clear, but the logical conjunction and disjunction
      +are short-circuited:

      +
        rule ! T => notBool(T)
      +  rule true  && E => E
      +  rule false && _ => false
      +  rule true  || _ => true
      +  rule false || E => E
      +

      Array lookup

      + +

      Untyped SIMPLE does not check array bounds (the dynamically typed version of
      +it, in examples/simple/typed/dynamic, does check for array out of
      +bounds). The first rule below desugars the multi-dimensional array access to
      +uni-dimensional array access; recall that the array access operation was
      +declared strict, so all sub-expressions involved are already values at this
      +stage. The second rule rewrites the array access to a lookup operation at a
      +precise location; we prefer to do it this way to avoid locking the store.
      +The semantics of the auxiliary lookup operation is straightforward,
      +and is defined at the end of the file.

      +
      // The [anywhere] feature is underused, because it would only be used
      +// at the top of the computation or inside the lvalue wrapper. So it
      +// may not be worth, or we may need to come up with a special notation
      +// allowing us to enumerate contexts for [anywhere] rules.
      +  rule V:Val[N1:Int, N2:Int, Vs:Vals] => V[N1][N2, Vs]
      +    [anywhere]
      +
      +  rule array(L,_)[N:Int] => lookup(L +Int N)
      +    [anywhere]
      +

      Size of an array

      + +

      The size of the array is stored in the array reference value, and the
      +sizeOf construct was declared strict, so:

      +
        rule sizeOf(array(_,N)) => N
      +

      Function call

      + +

      Function application was strict in both its arguments, so we can
      +assume that both the function and its arguments are evaluated to
      +values (the former expected to be a λ-abstraction). The first
      +rule below matches a well-formed function application on top of the
      +computation and performs the following steps atomically: it switches
      +to the function body followed by return; (for the case in
      +which the function does not use an explicit return statement); it
      +pushes the remaining computation, the current environment, and the
      +current control data onto the function stack (the remaining
      +computation can thus also be discarded from the computation cell,
      +because an unavoidable subsequent return statement ‒see
      +above‒ will always recover it from the stack); it switches the
      +current environment (which is being pushed on the function stack) to
      +the global environment, which is where the free variables in the
      +function body should be looked up; it binds the formal parameters to
      +fresh locations in the new environment, and stores the actual
      +arguments to those locations in the store (this latter step is easily
      +done by reducing the problem to variable declarations, whose semantics
      +we have already defined; the auxiliary operation mkDecls is
      +defined at the end of the file). The second rule pops the
      +computation, the environment and the control data from the function
      +stack when a return statement is encountered as the next
      +computational task, passing the returned value to the popped
      +computation (the popped computation was the context in which the
      +returning function was called). Note that the pushing/popping of the
      +control data is crucial. Without it, one may have a function that
      +contains an exception block with a return statement inside, which
      +would put the xstack cell in an inconsistent state (since the
      +exception block modifies it, but that modification should be
      +irrelevant once the function returns). We add an artificial
      +nothing value to the language, which is returned by the
      +nulary return; statements.

      +
        syntax KItem ::=  (Map,K,ControlCellFragment)
      +
      +  rule <k> lambda(Xs,S)(Vs:Vals) ~> K => mkDecls(Xs,Vs) S return; </k>
      +       <control>
      +         <fstack> .List => ListItem((Env,K,C)) ...</fstack>
      +         C
      +       </control>
      +       <env> Env => GEnv </env>
      +       <genv> GEnv </genv>
      +
      +  rule <k> return(V:Val); ~> _ => V ~> K </k>
      +       <control>
      +         <fstack> ListItem((Env,K,C)) => .List ...</fstack>
      +         (_ => C)
      +       </control>
      +       <env> _ => Env </env>
      +
      +  syntax Val ::= "nothing"
      +  rule return; => return nothing;
      +

      Like for division-by-zero, it is left unspecified what happens
      +when the nothing value is used in domain calculations. For
      +example, from the the perspective of the language semantics,
      +7 +Int nothing can evaluate to anything, or
      +may not evaluate at all (be undefined). If one wants to make sure that
      +such artificial values are never misused, then one needs to define a static
      +checker (also using K, like our the type checker in
      +examples/simple/typed/static) and reject programs that do.
      +Note that, unlike the undefined symbol which had the sort K
      +instead of Val, we defined nothing to be a value. That
      +is because, as explained above, we do not want the program to get
      +stuck when nothing is returned by a function. Instead, we want the
      +behavior to be unspecified; in particular, if one is careful to never
      +use the returned value in domain computation, like it happens when we
      +call a function for its side effects (e.g., with a statement of the
      +form f(x);), then the program does not get stuck.

      +

      Read

      + +

      The read() expression construct simply evaluates to the next
      +input value, at the same time discarding the input value from the
      +in cell.

      +
        rule <k> read() => I ...</k> <input> ListItem(I:Int) => .List ...</input>  [group(read)]
      +

      Assignment

      + +

      In SIMPLE, like in C, assignments are expression constructs and not statement
      +constructs. To make it a statement all one needs to do is to follow it by a
      +semi-colon ; (see the semantics for expression statements below).
      +Like for the increment, we want to allow assignments not only to variables but
      +also to array elements, e.g., e1[e2] = e3 where e1 evaluates
      +to an array reference, e2 to a natural number, and e3 to any
      +value. Thus, we first compute the lvalue of the left-hand-side expression
      +that appears in an assignment, and then we do the actual assignment to the
      +resulting location:

      +
        context (HOLE => lvalue(HOLE)) = _
      +
      +  rule <k> loc(L) = V:Val => V ...</k> <store>... L |-> (_ => V) ...</store>
      +    [group(assignment)]
      +

      Statements

      + +

      We next define the K semantics of statements.

      +

      Blocks

      + +

      Empty blocks are simply discarded, as shown in the first rule below.
      +For non-empty blocks, we schedule the enclosed statement but we have to
      +make sure the environment is recovered after the enclosed statement executes.
      +Recall that we allow local variable declarations, whose scope is the block
      +enclosing them. That is the reason for which we have to recover the
      +environment after the block. This allows us to have a very simple semantics
      +for variable declarations, as we did above. One can make the two rules below
      +computational if one wants them to count as computational steps.

      +
        rule {} => .
      +  rule <k> { S } => S ~> setEnv(Env) ...</k>  <env> Env </env>
      +

      The basic definition of environment recovery is straightforward and
      +given in the section on auxiliary constructs at the end of the file.

      +

      There are two common alternatives to the above semantics of blocks.
      +One is to keep track of the variables which are declared in the block and only
      +recover those at the end of the block. This way one does more work for
      +variable declarations but conceptually less work for environment recovery; we
      +say conceptually because it is not clear that it is indeed the case that
      +one does less work when AC matching is involved. The other alternative is to
      +work with a stack of environments instead of a flat environment, and push the
      +current environment when entering a block and pop it when exiting it. This
      +way, one does more work when accessing variables (since one has to search the
      +variable in the environment stack in a top-down manner), but on the other hand
      +uses smaller environments and the definition gets closer to an implementation.
      +Based on experience with dozens of language semantics and other K definitions,
      +we have found that our approach above is the best trade-off between elegance
      +and efficiency (especially since rewrite engines have built-in techniques to
      +lazily copy terms, by need, thus not creating unnecessary copies),
      +so it is the one that we follow in general.

      +

      Sequential composition

      + +

      Sequential composition is desugared into K's builtin sequentialization
      +operation (recall that, like in C, the semi-colon ; is not a
      +statement separator in SIMPLE — it is either a statement terminator or a
      +construct for a statement from an expression). Note that K allows
      +to define the semantics of SIMPLE in such a way that statements eventually
      +dissolve from the top of the computation when they are completed; this is in
      +sharp contrast to (artificially) evaluating them to a special
      +skip statement value and then getting rid of that special value, as
      +it is the case in other semantic approaches (where everything must evaluate
      +to something). This means that once S₁ completes in the rule below, S₂
      +becomes automatically the next computation item without any additional
      +(explicit or implicit) rules.

      +
        rule S1:Stmt S2:Stmt => S1 ~> S2
      +

      A subtle aspect of the rule above is that S₁ is declared to have sort
      +Stmts and not Stmt. That is because desugaring macros can indeed
      +produce left associative sequential composition of statements. For example,
      +the code var x=0; x=1; is desugared to
      +(var x; x=0;) x=1;, so although originally the first term of
      +the sequential composition had sort Stmt, after desugaring it became
      +of sort Stmts. Note that the attribute [right] associated
      +to the sequential compositon production is an attribute of the syntax, and not
      +of the semantics: e.g., it tells the parser to parse
      +var x; x=0; x=1; as var x; (x=0; x=1;), but it
      +does not tell the rewrite engine to rewrite (var x; x=0;) x=1; to
      +var x; (x=0; x=1;).

      +

      Expression statements

      + +

      Expression statements are only used for their side effects, so their result
      +value is simply discarded. Common examples of expression statements are ones
      +of the form ++x;, x=e;, e1[e2]=e3;, etc.

      +
        rule _:Val; => .
      +

      Conditional

      + +

      Since the conditional was declared with the strict(1) attribute, we
      +can assume that its first argument will eventually be evaluated. The rules
      +below cover the only two possibilities in which the conditional is allowed to
      +proceed (otherwise the rewriting process gets stuck).

      +
        rule if ( true) S else _ => S
      +  rule if (false) _ else S => S
      +

      While loop

      + +

      The simplest way to give the semantics of the while loop is by unrolling.
      +Note, however, that its unrolling is only allowed when the while loop reaches
      +the top of the computation (to avoid non-termination of unrolling). The
      +simple while loop semantics below works because our while loops in SIMPLE are
      +indeed very basic. If we allowed break/continue of loops then we would need
      +a completely different semantics, which would also involve the control cell.

      +
        rule while (E) S => if (E) {S while(E)S}
      +

      Print

      + +

      The print statement was strict, so all its arguments are now
      +evaluated (recall that print is variadic). We append each of
      +its evaluated arguments to the output buffer, and discard the residual
      +print statement with an empty list of arguments.

      +
        rule <k> print(V:Val, Es => Es); ...</k> <output>... .List => ListItem(V) </output>
      +    [group(print)]
      +  rule print(.Vals); => .
      +

      Exceptions

      + +

      SIMPLE allows parametric exceptions, in that one can throw and catch a
      +particular value. The statement try S₁ catch(X) S₂
      +proceeds with the evaluation of S₁. If S₁ evaluates normally, i.e.,
      +without any exception thrown, then S₂ is discarded and the execution
      +continues normally. If S₁ throws an exception with a statement of the
      +form throw E, then E is first evaluated to some value V
      +(throw was declared to be strict), then V is bound to X, then
      +S₂ is evaluated in the new environment while the reminder of S₁ is
      +discarded, then the environment is recovered and the execution continues
      +normally with the statement following the try S₁ catch(X) S₂ statement.
      +Exceptions can be nested and the statements in the
      +catch part (S₂ in our case) can throw exceptions to the
      +upper level. One should be careful with how one handles the control data
      +structures here, so that the abrupt changes of control due to exception
      +throwing and to function returns interact correctly with each other.
      +For example, we want to allow function calls inside the statement S₁ in
      +a try S₁ catch(X) S₂ block which can throw an exception
      +that is not caught by the function but instead is propagated to the
      +try S₁ catch(X) S₂ block that called the function.
      +Therefore, we have to make sure that the function stack as well as other
      +potential control structures are also properly modified when the exception
      +is thrown to correctly recover the execution context. This can be easily
      +achieved by pushing/popping the entire current control context onto the
      +exception stack. The three rules below modularly do precisely the above.

      +
        syntax KItem ::= (Id,Stmt,K,Map,ControlCellFragment)
      +
      +  syntax KItem ::= "popx"
      +
      +  rule <k> (try S1 catch(X) {S2} => S1 ~> popx) ~> K </k>
      +       <control>
      +         <xstack> .List => ListItem((X, S2, K, Env, C)) ...</xstack>
      +         C
      +       </control>
      +       <env> Env </env>
      +
      +  rule <k> popx => . ...</k>
      +       <xstack> ListItem(_) => .List ...</xstack>
      +
      +  rule <k> throw V:Val; ~> _ => { var X = V; S2 } ~> K </k>
      +       <control>
      +         <xstack> ListItem((X, S2, K, Env, C)) => .List ...</xstack>
      +         (_ => C)
      +       </control>
      +       <env> _ => Env </env>
      +

      The catch statement S₂ needs to be executed in the original environment,
      +but where the thrown value V is bound to the catch variable X. We here
      +chose to rely on two previously defined constructs when giving semantics to
      +the catch part of the statement: (1) the variable declaration with
      +initialization, for binding X to V; and (2) the block construct for
      +preventing X from shadowing variables in the original environment upon the
      +completion of S₂.

      +

      Threads

      + +

      SIMPLE's threads can be created and terminated dynamically, and can
      +synchronize by acquiring and releasing re-entrant locks and by rendezvous.
      +We discuss the seven rules giving the semantics of these operations below.

      +

      Thread creation

      + +

      Threads can be created by any other threads using the spawn S
      +construct. The spawn expression construct evaluates to the unique identifier
      +of the newly created thread and, at the same time, a new thread cell is added
      +into the configuration, initialized with the S statement and sharing the
      +same environment with the parent thread. Note that the newly created
      +thread cell is torn. That means that the remaining cells are added
      +and initialized automatically as described in the definition of SIMPLE's
      +configuration. This is part of K's configuration abstraction mechanism.

      +
        rule <thread>...
      +         <k> spawn S => !T:Int ...</k>
      +         <env> Env </env>
      +       ...</thread>
      +       (.Bag => <thread>...
      +               <k> S </k>
      +               <env> Env </env>
      +               <id> !T </id>
      +             ...</thread>)
      +

      Thread termination

      + +

      Dually to the above, when a thread terminates its assigned computation (the
      +contents of its k cell) is empty, so the thread can be dissolved.
      +However, since no discipline is imposed on how locks are acquired and released,
      +it can be the case that a terminating thread still holds locks. Those locks
      +must be released, so other threads attempting to acquire them do not deadlock.
      +We achieve that by removing all the locks held by the terminating thread in its
      +holds cell from the set of busy locks in the busy cell
      +(keys(H) returns the domain of the map H as a set, that is, only
      +the locks themselves ignoring their multiplicity). As seen below, a lock is
      +added to the busy cell as soon as it is acquired for the first time
      +by a thread. The unique identifier of the terminated thread is also collected
      +into the terminated cell, so the join construct knows which
      +threads have terminated.

      +
        rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .Bag)
      +       <busy> Busy => Busy -Set keys(H) </busy>
      +       <terminated>... .Set => SetItem(T) ...</terminated>
      +

      Thread joining

      + +

      Thread joining is now straightforward: all we need to do is to check whether
      +the identifier of the thread to be joined is in the terminated cell.
      +If yes, then the join statement dissolves and the joining thread
      +continues normally; if not, then the joining thread gets stuck.

      +
        rule <k> join T:Int; => . ...</k>
      +       <terminated>... SetItem(T) ...</terminated>
      +

      Acquire lock

      + +

      There are two cases to distinguish when a thread attempts to acquire a lock
      +(in SIMPLE any value can be used as a lock):
      +(1) The thread does not currently have the lock, in which case it has to
      +take it provided that the lock is not already taken by another thread (see
      +the side condition of the first rule).
      +(2) The thread already has the lock, in which case it just increments its
      +counter for the lock (the locks are re-entrant). These two cases are captured
      +by the two rules below:

      +
        rule <k> acquire V:Val; => . ...</k>
      +       <holds>... .Map => V |-> 0 ...</holds>
      +       <busy> Busy (.Set => SetItem(V)) </busy>
      +    requires (notBool(V in Busy))  [group(acquire)]
      +
      +  rule <k> acquire V; => . ...</k>
      +       <holds>... V:Val |-> (N => N +Int 1) ...</holds>
      +

      Release lock

      + +

      Similarly, there are two corresponding cases to distinguish when a thread
      +releases a lock:
      +(1) The thread holds the lock more than once, in which case all it needs to do
      +is to decrement the lock counter.
      +(2) The thread holds the lock only once, in which case it needs to remove it
      +from its holds cell and also from the the shared busy cell,
      +so other threads can acquire it if they need to.

      +
        rule <k> release V:Val; => . ...</k>
      +       <holds>... V |-> (N => N -Int 1) ...</holds>
      +    requires N >Int 0
      +
      +  rule <k> release V; => . ...</k> <holds>... V:Val |-> 0 => .Map ...</holds>
      +       <busy>... SetItem(V) => .Set ...</busy>
      +

      Rendezvous synchronization

      + +

      In addition to synchronization through acquire and release of locks, SIMPLE
      +also provides a construct for rendezvous synchronization. A thread whose next
      +statement to execute is rendezvous(V) gets stuck until another
      +thread reaches an identical statement; when that happens, the two threads
      +drop their rendezvous statements and continue their executions. If three
      +threads happen to have an identical rendezvous statement as their next
      +statement, then precisely two of them will synchronize and the other will
      +remain blocked until another thread reaches a similar rendezvous statement.
      +The rule below is as simple as it can be. Note, however, that, again, it is
      +K's mechanism for configuration abstraction that makes it work as desired:
      +since the only cell which can multiply containing a k cell inside is
      +the thread cell, the only way to concretize the rule below to the
      +actual configuration of SIMPLE is to include each k cell in a
      +thread cell.

      +
        rule <k> rendezvous V:Val; => . ...</k>
      +       <k> rendezvous V; => . ...</k>  [group(rendezvous)]
      +

      Auxiliary declarations and operations

      + +

      In this section we define all the auxiliary constructs used in the
      +above semantics.

      +

      Making declarations

      + +

      The mkDecls auxiliary construct turns a list of identifiers
      +and a list of values in a sequence of corresponding variable
      +declarations.

      +
        syntax Stmt ::= mkDecls(Ids,Vals)  [function]
      +  rule mkDecls((X:Id, Xs:Ids), (V:Val, Vs:Vals)) => var X=V; mkDecls(Xs,Vs)
      +  rule mkDecls(.Ids,.Vals) => {}
      +

      Location lookup

      + +

      The operation below is straightforward. Note that we place it in the same
      +lookup group as the variable lookup rule defined above. This way,
      +both rules will be considered transitions when we include the lookup
      +tag in the transition option of kompile.

      +
        syntax Exp ::= lookup(Int)
      +  rule <k> lookup(L) => V ...</k> <store>... L |-> V:Val ...</store>  [group(lookup)]
      +

      Environment recovery

      + +

      We have already discussed the environment recovery auxiliary operation in the
      +IMP++ tutorial:

      +
      // TODO: eliminate the env wrapper, like we did in IMP++
      +
      +  syntax KItem ::= setEnv(Map)
      +  rule <k> setEnv(Env) => . ...</k> <env> _ => Env </env>
      +

      While theoretically sufficient, the basic definition for environment
      +recovery alone is suboptimal. Consider a loop while (E)S,
      +whose semantics (see above) was given by unrolling. S
      +is a block. Then the semantics of blocks above, together with the
      +unrolling semantics of the while loop, will yield a computation
      +structure in the k cell that increasingly grows, adding a new
      +environment recovery task right in front of the already existing sequence of
      +similar environment recovery tasks (this phenomenon is similar to the ``tail
      +recursion'' problem). Of course, when we have a sequence of environment
      +recovery tasks, we only need to keep the last one. The elegant rule below
      +does precisely that, thus avoiding the unnecessary computation explosion
      +problem:

      +
        rule (setEnv(_) => .) ~> setEnv(_)
      +

      In fact, the above follows a common convention in K for recovery
      +operations of cell contents: the meaning of a computation task of the form
      +cell(C) that reaches the top of the computation is that the current
      +contents of cell cell is discarded and gets replaced with C. We
      +did not add support for these special computation tasks in our current
      +implementation of K, so we need to define them as above.

      +

      lvalue and loc

      + +

      For convenience in giving the semantics of constructs like the increment and
      +the assignment, that we want to operate the same way on variables and on
      +array elements, we used an auxiliary lvalue(E) construct which was
      +expected to evaluate to the lvalue of the expression E. This is only
      +defined when E has an lvalue, that is, when E is either a variable or
      +evaluates to an array element. lvalue(E) evaluates to a value of
      +the form loc(L), where L is the location where the value of E
      +can be found; for clarity, we use loc to structurally distinguish
      +natural numbers from location values. In giving semantics to lvalue
      +there are two cases to consider. (1) If E is a variable, then all we need
      +to do is to grab its location from the environment. (2) If E is an array
      +element, then we first evaluate the array and its index in order to identify
      +the exact location of the element of concern, and then return that location;
      +the last rule below works because its preceding context declarations ensure
      +that the array and its index are evaluated, and then the rule for array lookup
      +(defined above) rewrites the evaluated array access construct to its
      +corresponding store lookup operation.

      +
      // For parsing reasons, we prefer to allow lvalue to take a K
      +
      +  syntax Exp ::= lvalue(K)
      +  syntax Val ::= loc(Int)
      +
      +// Local variable
      +
      +  rule <k> lvalue(X:Id => loc(L)) ...</k> <env>... X |-> L:Int ...</env>
      +
      +// Array element: evaluate the array and its index;
      +// then the array lookup rule above applies.
      +
      +  context lvalue(_::Exp[HOLE::Exps])
      +  context lvalue(HOLE::Exp[_::Exps])
      +
      +// Finally, return the address of the desired object member
      +
      +  rule lvalue(lookup(L:Int) => loc(L))
      +

      Initializing multiple locations

      + +

      The following operation initializes a sequence of locations with the same
      +value:

      +
        syntax Map ::= Int "..." Int "|->" K
      +    [function, latex({#1}\ldots{#2}\mapsto{#3})]
      +  rule N...M |-> _ => .Map  requires N >Int M
      +  rule N...M |-> K => N |-> K (N +Int 1)...M |-> K  requires N <=Int M
      +

      The semantics of SIMPLE is now complete. Make sure you kompile the
      +definition with the right options in order to generate the desired model.
      +No kompile options are needed if you only only want to execute the definition
      +(and thus get an interpreter), but if you want to search for a different
      +program behaviors then you need to kompile with the transition option
      +including rule groups such as lookup, increment, acquire, etc. See the
      +IMP++ tutorial for what the transition option means how to use it.

      +
      endmodule
      +

      Go to Lesson 2, SIMPLE typed static

      +

      SIMPLE — Untyped

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K semantic definition of the untyped SIMPLE language.
      +SIMPLE is intended to be a pedagogical and research language that captures
      +the essence of the imperative programming paradigm, extended with several
      +features often encountered in imperative programming languages.
      +A program consists of a set of global variable declarations and
      +function definitions. Like in C, function definitions cannot be
      +nested and each program must have one function called main,
      +which is invoked when the program is executed. To make it more
      +interesting and to highlight some of K's strengths, SIMPLE includes
      +the following features in addition to the conventional imperative
      +expression and statement constructs:

      +
        +
      • +

        Multidimensional arrays and array references. An array evaluates
        +to an array reference, which is a special value holding a location (where
        +the elements of the array start) together with the size of the array;
        +the elements of the array can be array references themselves (particularly
        +when the array is multi-dimensional). Array references are ordinary values,
        +so they can be assigned to variables and passed/received by functions.

        +
      • +
      • +

        Functions and function values. Functions can have zero or
        +more parameters and can return abruptly using a return statement.
        +SIMPLE follows a call-by-value parameter passing style, with static scoping.
        +Function names evaluate to function abstractions, which hereby become ordinary
        +values in the language, same like the array references.

        +
      • +
      • +

        Blocks with locals. SIMPLE variables can be declared
        +anywhere, their scope being from the place where they are declared
        +until the end of the most nested enclosing block.

        +
      • +
      • +

        Input/Output. The expression read() evaluates to the
        +next value in the input buffer, and the statement write(e)
        +evaluates e and outputs its value to the output buffer. The
        +input and output buffers are lists of values.

        +
      • +
      • +

        Exceptions. SIMPLE has parametric exceptions (the value thrown as
        +an exception can be caught and bound).

        +
      • +
      • +

        Concurrency via dynamic thread creation/termination and
        +synchronization. One can spawn a thread to execute any statement.
        +The spawned thread shares with its parent its environment at creation time.
        +Threads can be synchronized via a join command which blocks the current thread
        +until the joined thread completes, via re-entrant locks which can be acquired
        +and released, as well as through rendezvous commands.

        +
      • +
      +

      Like in many other languages, some of SIMPLE's constructs can be
      +desugared into a smaller set of basic constructs. We do that at the end
      +of the syntax module, and then we only give semantics to the core constructs.

      +

      Note: This definition is commented slightly more than others, because it is
      +intended to be one of the first non-trivial definitions that the new
      +user of K sees. We recommend the beginner user to first check the
      +language definitions discussed in the K tutorial.

      +
      module SIMPLE-UNTYPED-SYNTAX
      +  imports DOMAINS-SYNTAX
      +

      Syntax

      + +

      We start by defining the SIMPLE syntax. The language constructs discussed
      +above have the expected syntax and evaluation strategies. Recall that in K
      +we annotate the syntax with appropriate strictness attributes, thus giving
      +each language construct the desired evaluation strategy.

      +

      Identifiers

      + +

      Recall from the K tutorial that identifiers are builtin and come under the
      +syntactic category Id. The special identifier for the function
      +main belongs to all programs, and plays a special role in the semantics,
      +so we declare it explicitly. This would not be necessary if the identifiers
      +were all included automatically in semantic definitions, but that is not
      +possible because of parsing reasons (e.g., K variables used to match
      +concrete identifiers would then be ambiguously parsed as identifiers). They
      +are only included in the parser generated to parse programs (and used by the
      +kast tool). Consequently, we have to explicitly declare all the
      +concrete identifiers that play a special role in the semantics, like
      +main below.

      +
        syntax Id ::= "main" [token]
      +

      Declarations

      + +

      There are two types of declarations: for variables (including arrays) and
      +for functions. We are going to allow declarations of the form
      +var x=10, a[10,10], y=23;, which is why we allow the var
      +keyword to take a list of expressions. The non-terminals used in the two
      +productions below are defined shortly.

      +
        syntax Stmt ::= "var" Exps ";"
      +                | "function" Id "(" Ids ")" Block
      +

      Expressions

      + +

      The expression constructs below are standard. Increment (++) takes
      +an expression rather than a variable because it can also increment an array
      +element. Recall that the syntax we define in K is what we call the syntax
      +of the semantics
      : while powerful enough to define non-trivial syntaxes
      +(thanks to the underlying SDF technology that we use), we typically refrain
      +from defining precise syntaxes, that is, ones which accept precisely the
      +well-formed programs (that would not be possible anyway in general). That job
      +is deferred to type systems, which can also be defined in K. In other words,
      +we are not making any effort to guarantee syntactically that only variables
      +or array elements are passed to the increment construct, we allow any
      +expression. Nevertheless, we will only give semantics to those, so expressions
      +of the form ++5, which parse (but which will be rejected by our type
      +system in the typed version of SIMPLE later), will get stuck when executed.
      +Arrays can be multidimensional and can hold other arrays, so their
      +lookup operation takes a list of expressions as argument and applies to an
      +expression (which can in particular be another array lookup), respectively.
      +The construct sizeOf gives the size of an array in number of elements
      +of its first dimension. Note that almost all constructs are strict. The only
      +constructs which are not strict are the increment (since its first argument
      +gets updated, so it cannot be evaluated), the input read which takes no
      +arguments so strictness is irrelevant for it, the logical and and or constructs
      +which are short-circuited, the thread spawning construct which creates a new
      +thread executing the argument expression and return its unique identifier to
      +the creating thread (so it cannot just evaluate its argument in place), and the
      +assignment which is only strict in its second argument (for the same reason as
      +the increment).

      +
        syntax Exp ::= Int | Bool | String | Id
      +               | "(" Exp ")"             [bracket]
      +               | "++" Exp
      +               > Exp "[" Exps "]"        [strict]
      +               > Exp "(" Exps ")"        [strict]
      +               | "-" Exp                 [strict]
      +               | "sizeOf" "(" Exp ")"    [strict]
      +               | "read" "(" ")"
      +               > left:
      +                 Exp "*" Exp             [strict, left]
      +               | Exp "/" Exp             [strict, left]
      +               | Exp "%" Exp             [strict, left]
      +               > left:
      +                 Exp "+" Exp             [strict, left]
      +               | Exp "-" Exp             [strict, left]
      +               > non-assoc:
      +                 Exp "<" Exp             [strict, non-assoc]
      +               | Exp "<=" Exp            [strict, non-assoc]
      +               | Exp ">" Exp             [strict, non-assoc]
      +               | Exp ">=" Exp            [strict, non-assoc]
      +               | Exp "==" Exp            [strict, non-assoc]
      +               | Exp "!=" Exp            [strict, non-assoc]
      +               > "!" Exp                 [strict]
      +               > left:
      +                 Exp "&&" Exp            [strict(1), left]
      +               | Exp "||" Exp            [strict(1), left]
      +               > "spawn" Block
      +               > Exp "=" Exp             [strict(2), right]
      +

      We also need comma-separated lists of identifiers and of expressions.
      +Moreover, we want them to be strict, that is, to evaluate to lists of results
      +whenever requested (e.g., when they appear as strict arguments of
      +the constructs above).

      +
        syntax Ids  ::= List{Id,","}           [klabel(Exps)]
      +  syntax Exps ::= List{Exp,","}          [klabel(Exps), strict]  // automatically hybrid now
      +  syntax Exps ::= Ids
      +  syntax Val
      +  syntax Vals ::= List{Val,","}          [klabel(Exps)]
      +  syntax Bottom
      +  syntax Bottoms ::= List{Bottom,","}    [klabel(Exps)]
      +  syntax Ids ::= Bottoms
      +

      Statements

      + +

      Most of the statement constructs are standard for imperative languages.
      +We syntactically distinguish between empty and non-empty blocks, because we
      +chose Stmts not to be a (;-separated) list of
      +Stmt. Variables can be declared anywhere inside a block, their scope
      +ending with the block. Expressions are allowed to be used for their side
      +effects only (followed by a semicolon ;). Functions are allowed
      +to abruptly return. The exceptions are parametric, i.e., one can throw a value
      +which is bound to the variable declared by catch. Threads can be
      +dynamically created and terminated, and can synchronize with join,
      +acquire, release and rendezvous. Note that the
      +strictness attributes obey the intended evaluation strategy of the various
      +constructs. In particular, the if-then-else construct is strict only in its
      +first argument (the if-then construct will be desugared into if-then-else),
      +while the loop constructs are not strict in any arguments. The print
      +statement construct is variadic, that is, it takes an arbitrary number of
      +arguments.

      +
        syntax Block ::= "{" "}"
      +                | "{" Stmt "}"
      +
      +  syntax Stmt ::= Block
      +                | Exp ";"                               [strict]
      +                | "if" "(" Exp ")" Block "else" Block   [avoid, strict(1)]
      +                | "if" "(" Exp ")" Block                [macro]
      +                | "while" "(" Exp ")" Block
      +                | "for" "(" Stmt Exp ";" Exp ")" Block  [macro]
      +                | "return" Exp ";"                      [strict]
      +                | "return" ";"                          [macro]
      +                | "print" "(" Exps ")" ";"              [strict]
      +// NOTE: print strict allows non-deterministic evaluation of its arguments
      +// Either keep like this but document, or otherwise make Exps seqstrict.
      +// Of define and use a different expression list here, which is seqstrict.
      +                | "try" Block "catch" "(" Id ")" Block
      +                | "throw" Exp ";"                       [strict]
      +                | "join" Exp ";"                        [strict]
      +                | "acquire" Exp ";"                     [strict]
      +                | "release" Exp ";"                     [strict]
      +                | "rendezvous" Exp ";"                  [strict]
      +

      The reason we allow Stmts as the first argument of for
      +instead of Stmt is because we want to allow more than one statement
      +to be executed when the loop is initialized. Also, as seens shorly, macros
      +may expand one statement into more statements; for example, an initialized
      +variable declaration statement var x=0; desugars into two statements,
      +namely var x; x=0;, so if we use Stmt instead of Stmts
      +in the production of for above then we risk that the macro expansion
      +of statement var x=0; happens before the macro expansion of for,
      +also shown below, in which case the latter would not apply anymore because
      +of syntactic mismatch.

      +
        syntax Stmt ::= Stmt Stmt                          [right]
      +
      +// I wish I were able to write the following instead, but confuses the parser.
      +//
      +// syntax Stmts ::= List{Stmt,""}
      +// syntax Top ::= Stmt | "function" Id "(" Ids ")" Block
      +// syntax Pgm ::= List{Top,""}
      +//
      +// With that, I could have also eliminated the empty block
      +

      Desugared Syntax

      + +

      This part desugars some of SIMPLE's language constructs into core ones.
      +We only want to give semantics to core constructs, so we get rid of the
      +derived ones before we start the semantics. All desugaring macros below are
      +straightforward.

      +
        rule if (E) S => if (E) S else {}
      +  rule for(Start Cond; Step) {S} => {Start while (Cond) {S Step;}}
      +  rule for(Start Cond; Step) {} => {Start while (Cond) {Step;}}
      +  rule var E1:Exp, E2:Exp, Es:Exps; => var E1; var E2, Es;
      +  rule var X:Id = E; => var X; X = E;
      +

      For the semantics, we can therefore assume from now on that each
      +conditional has both branches, that there are only while loops, and
      +that each variable is declared alone and without any initialization as part of
      +the declaration.

      +
      endmodule
      +
      +
      +module SIMPLE-UNTYPED
      +  imports SIMPLE-UNTYPED-SYNTAX
      +  imports DOMAINS
      +

      Basic Semantic Infrastructure

      + +

      Before one starts adding semantic rules to a K definition, one needs to
      +define the basic semantic infrastructure consisting of definitions for
      +values and configuration. As discussed in the definitions
      +in the K tutorial, the values are needed to know when to stop applying
      +the heating rules and when to start applying the cooling rules corresponding
      +to strictness or context declarations. The configuration serves as a backbone
      +for the process of configuration abstraction which allows users to only
      +mention the relevant cells in each semantic rule, the rest of the configuration
      +context being inferred automatically. Although in some cases the configuration
      +could be automatically inferred from the rules, we believe that it is very
      +useful for language designers/semanticists to actually think of and design
      +their configuration explicitly, so the current implementation of K requires
      +one to define it.

      +

      Values

      + +

      We here define the values of the language that the various fragments of
      +programs evaluate to. First, integers and Booleans are values. As discussed,
      +arrays evaluate to special array reference values holding (1) a location from
      +where the array's elements are contiguously allocated in the store, and
      +(2) the size of the array. Functions evaluate to function values as
      +λ-abstractions (we do not need to evaluate functions to closures
      +because each function is executed in the fixed global environment and
      +function definitions cannot be nested). Like in IMP and other
      +languages, we finally tell the tool that values are K results.

      +
        syntax Val ::= Int | Bool | String
      +               | array(Int,Int)
      +               | lambda(Ids,Stmt)
      +  syntax Exp ::= Val
      +  syntax Exps ::= Vals
      +  syntax Vals ::= Bottoms
      +  syntax KResult ::= Val
      +                   | Vals  // TODO: should not need this
      +

      The inclusion of values in expressions follows the methodology of
      +syntactic definitions (like, e.g., in SOS): extend the syntax of the language
      +to encompass all values and additional constructs needed to give semantics.
      +In addition to that, it allows us to write the semantic rules using the
      +original syntax of the language, and to parse them with the same (now extended
      +with additional values) parser. If writing the semantics directly on the K
      +AST, using the associated labels instead of the syntactic constructs, then one
      +would not need to include values in expressions.

      +

      Configuration

      + +

      The K configuration of SIMPLE consists of a top level cell, T,
      +holding a threads cell, a global environment map cell genv
      +mapping the global variables and function names to their locations, a shared
      +store map cell store mapping each location to some value, a set cell
      +busy holding the locks which have been acquired but not yet released
      +by threads, a set cell terminated holding the unique identifiers of
      +the threads which already terminated (needed for join), input
      +and output list cells, and a nextLoc cell holding a natural
      +number indicating the next available location. Unlike in the small languages
      +in the K tutorial, where we used the fresh predicate to generate fresh
      +locations, in larger languages, like SIMPLE, we prefer to explicitly manage
      +memory. The location counter in nextLoc models an actual physical
      +location in the store; for simplicity, we assume arbitrarily large memory and
      +no garbage collection. The threads cell contains one thread
      +cell for each existing thread in the program. Note that the thread cell has
      +multiplicity *, which means that at any given moment there could be zero,
      +one or more thread cells. Each thread cell contains a
      +computation cell k, a control cell holding the various
      +control structures needed to jump to certain points of interest in the program
      +execution, a local environment map cell env mapping the thread local
      +variables to locations in the store, and finally a holds map cell
      +indicating what locks have been acquired by the thread and not released so far
      +and how many times (SIMPLE's locks are re-entrant). The control cell
      +currently contains only two subcells, a function stack fstack which
      +is a list and an exception stack xstack which is also a list.
      +One can add more control structures in the control cell, such as a
      +stack for break/continue of loops, etc., if the language is extended with more
      +control-changing constructs. Note that all cells except for k are
      +also initialized, in that they contain a ground term of their corresponding
      +sort. The k cell is initialized with the program that will be passed
      +to the K tool, as indicated by the $PGM variable, followed by the
      +execute task (defined shortly).

      +
        // the syntax declarations below are required because the sorts are
      +  // referenced directly by a production and, because of the way KIL to KORE
      +  // is implemented, the configuration syntax is not available yet
      +  // should simply work once KIL is removed completely
      +  // check other definitions for this hack as well
      +
      +  syntax ControlCell
      +  syntax ControlCellFragment
      +
      +  configuration <T color="red">
      +                  <threads color="orange">
      +                    <thread multiplicity="*" type="Map" color="yellow">
      +                      <id color="pink"> -1 </id>
      +                      <k color="green"> $PGM:Stmt ~> execute </k>
      +                    //<br/> // TODO(KORE): support latex annotations #1799
      +                      <control color="cyan">
      +                        <fstack color="blue"> .List </fstack>
      +                        <xstack color="purple"> .List </xstack>
      +                      </control>
      +                    //<br/> // TODO(KORE): support latex annotations #1799
      +                      <env color="violet"> .Map </env>
      +                      <holds color="black"> .Map </holds>
      +                    </thread>
      +                  </threads>
      +                //<br/> // TODO(KORE): support latex annotations #1799
      +                  <genv color="pink"> .Map </genv>
      +                  <store color="white"> .Map </store>
      +                  <busy color="cyan"> .Set </busy>
      +                  <terminated color="red"> .Set </terminated>
      +                //<br/> // TODO(KORE): support latex annotations #1799
      +                  <input color="magenta" stream="stdin"> .List </input>
      +                  <output color="brown" stream="stdout"> .List </output>
      +                  <nextLoc color="gray"> 0 </nextLoc>
      +                </T>
      +

      Declarations and Initialization

      + +

      We start by defining the semantics of declarations (for variables,
      +arrays and functions).

      +

      Variable Declaration

      + +

      The SIMPLE syntax was desugared above so that each variable is
      +declared alone and its initialization is done as a separate statement.
      +The semantic rule below matches resulting variable declarations of the
      +form var X; on top of the k cell
      +(indeed, note that the k cell is complete, or round, to the
      +left, and is torn, or ruptured, to the right), allocates a fresh
      +location L in the store which is initialized with a special value
      + (indeed, the unit ., or nothing, is matched anywhere
      +in the map ‒note the tears at both sides‒ and replaced with the
      +mapping L ↦ ⊥), and binds X to L in the local
      +environment shadowing previous declarations of X, if any.
      +This possible shadowing of X requires us to therefore update the
      +entire environment map, which is expensive and can significantly slow
      +down the execution of larger programs. On the other hand, since we know
      +that L is not already bound in the store, we simply add the binding
      +L ↦ ⊥ to the store, thus avoiding a potentially complete
      +traversal of the the store map in order to update it. We prefer the approach
      +used for updating the store whenever possible, because, in addition to being
      +faster, it offers more true concurrency than the latter; indeed, according
      +to the concurrent semantics of K, the store is not frozen while
      +L ↦ ⊥ is added to it, while the environment is frozen during the
      +update operation Env[L/X]. The variable declaration command is
      +also removed from the top of the computation cell and the fresh location
      +counter is incremented. The undefined symbol added in the store
      +is of sort KItem, instead of Val, on purpose; this way, the
      +store lookup rules will get stuck when one attempts to lookup an
      +uninitialized location. All the above happen in one transactional step,
      +with the rule below. Note also how configuration abstraction allows us to
      +only mention the needed cells; indeed, as the configuration above states,
      +the k and env cells are actually located within a
      +thread cell within the threads cell, but one needs
      +not mention these: the configuration context of the rule is
      +automatically transformed to match the declared configuration
      +structure.

      +
        syntax KItem ::= "undefined"  [latex(\bot)]
      +
      +  rule <k> var X:Id; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> undefined ...</store>
      +       <nextLoc> L => L +Int 1 </nextLoc>
      +

      Array Declaration

      + +

      The K semantics of the uni-dimensional array declaration is somehow similar
      +to the above declaration of ordinary variables. First, note the
      +context declaration below, which requests the evaluation of the array
      +dimension. Once evaluated, say to a natural number N, then
      +N +Int 1 locations are allocated in the store for
      +an array of size N, the additional location (chosen to be the first
      +one allocated) holding the array reference value. The array reference
      +value array(L,N) states that the array has size N and its
      +elements are located contiguously in the store starting with location
      +L. The operation L … L' ↦ V, defined at the end of this
      +file in the auxiliary operation section, initializes each location in
      +the list L … L' to V. Note that, since the dimensions of
      +array declarations can be arbitrary expressions, this virtually means
      +that we can dynamically allocate memory in SIMPLE by means of array
      +declarations.

      +
        context var _:Id[HOLE];
      +
      +  rule <k> var X:Id[N:Int]; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> array(L +Int 1, N)
      +                          (L +Int 1) ... (L +Int N) |-> undefined ...</store>
      +       <nextLoc> L => L +Int 1 +Int N </nextLoc>
      +    requires N >=Int 0
      +

      SIMPLE allows multi-dimensional arrays. For semantic simplicity, we
      +desugar them all into uni-dimensional arrays by code transformation.
      +This way, we only need to give semantics to uni-dimensional arrays.
      +First, note that the context rule above actually evaluates all the array
      +dimensions (that's why we defined the expression lists strict!):
      +Upon evaluating the array dimensions, the code generation rule below
      +desugars multi-dimensional array declaration to uni-dimensional declarations.
      +To this aim, we introduce two special unique variable identifiers,
      +$1 and $2. The first variable, $1, iterates
      +through and initializes each element of the first dimension with an array
      +of the remaining dimensions, declared as variable $2:

      +
        syntax Id ::= "$1" [token] | "$2" [token]
      +  rule var X:Id[N1:Int, N2:Int, Vs:Vals];
      +    => var X[N1];
      +       {
      +         for(var $1 = 0; $1 <= N1 - 1; ++$1) {
      +           var $2[N2, Vs];
      +           X[$1] = $2;
      +         }
      +       }
      +

      Ideally, one would like to perform syntactic desugarings like the one
      +above before the actual semantics. Unfortunately, that was not possible in
      +this case because the dimension expressions of the multi-dimensional array need
      +to be evaluated first. Indeed, the desugaring rule above does not work if the
      +dimensions of the declared array are arbitrary expressions, because they can
      +have side effects (e.g., a[++x,++x]) and those side effects would be
      +propagated each time the expression is evaluated in the desugaring code (note
      +that both the loop condition and the nested multi-dimensional declaration
      +would need to evaluate the expressions given as array dimensions).

      +

      Function declaration

      + +

      Functions are evaluated to λ-abstractions and stored like any other
      +values in the store. A binding is added into the environment for the function
      +name to the location holding its body. Similarly to the C language, SIMPLE
      +only allows function declarations at the top level of the program. More
      +precisely, the subsequent semantics of SIMPLE only works well when one
      +respects this requirement. Indeed, the simplistic context-free parser
      +generated by the grammar above is more generous than we may want, in that it
      +allows function declarations anywhere any declaration is allowed, including
      +inside arbitrary blocks. However, as the rule below shows, we are not
      +storing the declaration environment with the λ-abstraction value as
      +closures do. Instead, as seen shortly, we switch to the global environment
      +whenever functions are invoked, which is consistent with our requirement that
      +functions should only be declared at the top. Thus, if one declares local
      +functions, then one may see unexpected behaviors (e.g., when one shadows a
      +global variable before declaring a local function). The type checker of
      +SIMPLE, also defined in K (see examples/simple/typed/static),
      +discards programs which do not respect this requirement.

      +
        rule <k> function F(Xs) S => . ...</k>
      +       <env> Env => Env[F <- L] </env>
      +       <store>... .Map => L |-> lambda(Xs, S) ...</store>
      +       <nextLoc> L => L +Int 1 </nextLoc>
      +

      When we are done with the first pass (pre-processing), the computation
      +cell k contains only the token execute (see the configuration
      +declaration above, where the computation item execute was placed
      +right after the program in the k cell of the initial configuration)
      +and the cell genv is empty. In this case, we have to call
      +main() and to initialize the global environment by transferring the
      +contents of the local environment into it. We prefer to do it this way, as
      +opposed to processing all the top level declarations directly within the global
      +environment, because we want to avoid duplication of semantics: the syntax of
      +the global declarations is identical to that of their corresponding local
      +declarations, so the semantics of the latter suffices provided that we copy
      +the local environment into the global one once we are done with the
      +pre-processing. We want this separate pre-processing step precisely because
      +we want to create the global environment. All (top-level) functions end up
      +having their names bound in the global environment and, as seen below, they
      +are executed in that same global environment; all these mean, in particular,
      +that the functions "see" each other, allowing for mutual recursion, etc.

      +
        syntax KItem ::= "execute"
      +  rule <k> execute => main(.Exps); </k>
      +       <env> Env </env>
      +       <genv> .Map => Env </genv>
      +

      Expressions

      + +

      We next define the K semantics of all the expression constructs.

      +

      Variable lookup

      + +

      When a variable X is the first computational task, and X is bound to some
      +location L in the environment, and L is mapped to some value V in the
      +store, then we rewrite X into V:

      +
        rule <k> X:Id => V ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... L |-> V:Val ...</store>  [group(lookup)]
      +

      Note that the rule above excludes reading , because is not
      +a value and V is checked at runtime to be a value.

      +

      Variable/Array increment

      + +

      This is tricky, because we want to allow both ++x and ++a[5].
      +Therefore, we need to extract the lvalue of the expression to increment.
      +To do that, we state that the expression to increment should be wrapped
      +by the auxiliary lvalue operation and then evaluated. The semantics
      +of this auxiliary operation is defined at the end of this file. For now, all
      +we need to know is that it takes an expression and evaluates to a location
      +value. Location values, also defined at the end of the file, are integers
      +wrapped with the operation loc, to distinguish them from ordinary
      +integers.

      +
        context ++(HOLE => lvalue(HOLE))
      +  rule <k> ++loc(L) => I +Int 1 ...</k>
      +       <store>... L |-> (I => I +Int 1) ...</store>  [group(increment)]
      +

      Arithmetic operators

      + +

      There is nothing special about the following rules. They rewrite the
      +language constructs to their library counterparts when their arguments
      +become values of expected sorts:

      +
        rule I1 + I2 => I1 +Int I2
      +  rule Str1 + Str2 => Str1 +String Str2
      +  rule I1 - I2 => I1 -Int I2
      +  rule I1 * I2 => I1 *Int I2
      +  rule I1 / I2 => I1 /Int I2 requires I2 =/=K 0
      +  rule I1 % I2 => I1 %Int I2 requires I2 =/=K 0
      +  rule - I => 0 -Int I
      +  rule I1 < I2 => I1 <Int I2
      +  rule I1 <= I2 => I1 <=Int I2
      +  rule I1 > I2 => I1 >Int I2
      +  rule I1 >= I2 => I1 >=Int I2
      +

      The equality and inequality constructs reduce to syntactic comparison
      +of the two argument values (which is what the equality on K terms does).

      +
        rule V1:Val == V2:Val => V1 ==K V2
      +  rule V1:Val != V2:Val => V1 =/=K V2
      +

      The logical negation is clear, but the logical conjunction and disjunction
      +are short-circuited:

      +
        rule ! T => notBool(T)
      +  rule true  && E => E
      +  rule false && _ => false
      +  rule true  || _ => true
      +  rule false || E => E
      +

      Array lookup

      + +

      Untyped SIMPLE does not check array bounds (the dynamically typed version of
      +it, in examples/simple/typed/dynamic, does check for array out of
      +bounds). The first rule below desugars the multi-dimensional array access to
      +uni-dimensional array access; recall that the array access operation was
      +declared strict, so all sub-expressions involved are already values at this
      +stage. The second rule rewrites the array access to a lookup operation at a
      +precise location; we prefer to do it this way to avoid locking the store.
      +The semantics of the auxiliary lookup operation is straightforward,
      +and is defined at the end of the file.

      +
      // The [anywhere] feature is underused, because it would only be used
      +// at the top of the computation or inside the lvalue wrapper. So it
      +// may not be worth, or we may need to come up with a special notation
      +// allowing us to enumerate contexts for [anywhere] rules.
      +  rule V:Val[N1:Int, N2:Int, Vs:Vals] => V[N1][N2, Vs]
      +    [anywhere]
      +
      +  rule array(L,_)[N:Int] => lookup(L +Int N)
      +    [anywhere]
      +

      Size of an array

      + +

      The size of the array is stored in the array reference value, and the
      +sizeOf construct was declared strict, so:

      +
        rule sizeOf(array(_,N)) => N
      +

      Function call

      + +

      Function application was strict in both its arguments, so we can
      +assume that both the function and its arguments are evaluated to
      +values (the former expected to be a λ-abstraction). The first
      +rule below matches a well-formed function application on top of the
      +computation and performs the following steps atomically: it switches
      +to the function body followed by return; (for the case in
      +which the function does not use an explicit return statement); it
      +pushes the remaining computation, the current environment, and the
      +current control data onto the function stack (the remaining
      +computation can thus also be discarded from the computation cell,
      +because an unavoidable subsequent return statement ‒see
      +above‒ will always recover it from the stack); it switches the
      +current environment (which is being pushed on the function stack) to
      +the global environment, which is where the free variables in the
      +function body should be looked up; it binds the formal parameters to
      +fresh locations in the new environment, and stores the actual
      +arguments to those locations in the store (this latter step is easily
      +done by reducing the problem to variable declarations, whose semantics
      +we have already defined; the auxiliary operation mkDecls is
      +defined at the end of the file). The second rule pops the
      +computation, the environment and the control data from the function
      +stack when a return statement is encountered as the next
      +computational task, passing the returned value to the popped
      +computation (the popped computation was the context in which the
      +returning function was called). Note that the pushing/popping of the
      +control data is crucial. Without it, one may have a function that
      +contains an exception block with a return statement inside, which
      +would put the xstack cell in an inconsistent state (since the
      +exception block modifies it, but that modification should be
      +irrelevant once the function returns). We add an artificial
      +nothing value to the language, which is returned by the
      +nulary return; statements.

      +
        syntax KItem ::=  (Map,K,ControlCellFragment)
      +
      +  rule <k> lambda(Xs,S)(Vs:Vals) ~> K => mkDecls(Xs,Vs) S return; </k>
      +       <control>
      +         <fstack> .List => ListItem((Env,K,C)) ...</fstack>
      +         C
      +       </control>
      +       <env> Env => GEnv </env>
      +       <genv> GEnv </genv>
      +
      +  rule <k> return(V:Val); ~> _ => V ~> K </k>
      +       <control>
      +         <fstack> ListItem((Env,K,C)) => .List ...</fstack>
      +         (_ => C)
      +       </control>
      +       <env> _ => Env </env>
      +
      +  syntax Val ::= "nothing"
      +  rule return; => return nothing;
      +

      Like for division-by-zero, it is left unspecified what happens
      +when the nothing value is used in domain calculations. For
      +example, from the the perspective of the language semantics,
      +7 +Int nothing can evaluate to anything, or
      +may not evaluate at all (be undefined). If one wants to make sure that
      +such artificial values are never misused, then one needs to define a static
      +checker (also using K, like our the type checker in
      +examples/simple/typed/static) and reject programs that do.
      +Note that, unlike the undefined symbol which had the sort K
      +instead of Val, we defined nothing to be a value. That
      +is because, as explained above, we do not want the program to get
      +stuck when nothing is returned by a function. Instead, we want the
      +behavior to be unspecified; in particular, if one is careful to never
      +use the returned value in domain computation, like it happens when we
      +call a function for its side effects (e.g., with a statement of the
      +form f(x);), then the program does not get stuck.

      +

      Read

      + +

      The read() expression construct simply evaluates to the next
      +input value, at the same time discarding the input value from the
      +in cell.

      +
        rule <k> read() => I ...</k> <input> ListItem(I:Int) => .List ...</input>  [group(read)]
      +

      Assignment

      + +

      In SIMPLE, like in C, assignments are expression constructs and not statement
      +constructs. To make it a statement all one needs to do is to follow it by a
      +semi-colon ; (see the semantics for expression statements below).
      +Like for the increment, we want to allow assignments not only to variables but
      +also to array elements, e.g., e1[e2] = e3 where e1 evaluates
      +to an array reference, e2 to a natural number, and e3 to any
      +value. Thus, we first compute the lvalue of the left-hand-side expression
      +that appears in an assignment, and then we do the actual assignment to the
      +resulting location:

      +
        context (HOLE => lvalue(HOLE)) = _
      +
      +  rule <k> loc(L) = V:Val => V ...</k> <store>... L |-> (_ => V) ...</store>
      +    [group(assignment)]
      +

      Statements

      + +

      We next define the K semantics of statements.

      +

      Blocks

      + +

      Empty blocks are simply discarded, as shown in the first rule below.
      +For non-empty blocks, we schedule the enclosed statement but we have to
      +make sure the environment is recovered after the enclosed statement executes.
      +Recall that we allow local variable declarations, whose scope is the block
      +enclosing them. That is the reason for which we have to recover the
      +environment after the block. This allows us to have a very simple semantics
      +for variable declarations, as we did above. One can make the two rules below
      +computational if one wants them to count as computational steps.

      +
        rule {} => .
      +  rule <k> { S } => S ~> setEnv(Env) ...</k>  <env> Env </env>
      +

      The basic definition of environment recovery is straightforward and
      +given in the section on auxiliary constructs at the end of the file.

      +

      There are two common alternatives to the above semantics of blocks.
      +One is to keep track of the variables which are declared in the block and only
      +recover those at the end of the block. This way one does more work for
      +variable declarations but conceptually less work for environment recovery; we
      +say conceptually because it is not clear that it is indeed the case that
      +one does less work when AC matching is involved. The other alternative is to
      +work with a stack of environments instead of a flat environment, and push the
      +current environment when entering a block and pop it when exiting it. This
      +way, one does more work when accessing variables (since one has to search the
      +variable in the environment stack in a top-down manner), but on the other hand
      +uses smaller environments and the definition gets closer to an implementation.
      +Based on experience with dozens of language semantics and other K definitions,
      +we have found that our approach above is the best trade-off between elegance
      +and efficiency (especially since rewrite engines have built-in techniques to
      +lazily copy terms, by need, thus not creating unnecessary copies),
      +so it is the one that we follow in general.

      +

      Sequential composition

      + +

      Sequential composition is desugared into K's builtin sequentialization
      +operation (recall that, like in C, the semi-colon ; is not a
      +statement separator in SIMPLE — it is either a statement terminator or a
      +construct for a statement from an expression). Note that K allows
      +to define the semantics of SIMPLE in such a way that statements eventually
      +dissolve from the top of the computation when they are completed; this is in
      +sharp contrast to (artificially) evaluating them to a special
      +skip statement value and then getting rid of that special value, as
      +it is the case in other semantic approaches (where everything must evaluate
      +to something). This means that once S₁ completes in the rule below, S₂
      +becomes automatically the next computation item without any additional
      +(explicit or implicit) rules.

      +
        rule S1:Stmt S2:Stmt => S1 ~> S2
      +

      A subtle aspect of the rule above is that S₁ is declared to have sort
      +Stmts and not Stmt. That is because desugaring macros can indeed
      +produce left associative sequential composition of statements. For example,
      +the code var x=0; x=1; is desugared to
      +(var x; x=0;) x=1;, so although originally the first term of
      +the sequential composition had sort Stmt, after desugaring it became
      +of sort Stmts. Note that the attribute [right] associated
      +to the sequential compositon production is an attribute of the syntax, and not
      +of the semantics: e.g., it tells the parser to parse
      +var x; x=0; x=1; as var x; (x=0; x=1;), but it
      +does not tell the rewrite engine to rewrite (var x; x=0;) x=1; to
      +var x; (x=0; x=1;).

      +

      Expression statements

      + +

      Expression statements are only used for their side effects, so their result
      +value is simply discarded. Common examples of expression statements are ones
      +of the form ++x;, x=e;, e1[e2]=e3;, etc.

      +
        rule _:Val; => .
      +

      Conditional

      + +

      Since the conditional was declared with the strict(1) attribute, we
      +can assume that its first argument will eventually be evaluated. The rules
      +below cover the only two possibilities in which the conditional is allowed to
      +proceed (otherwise the rewriting process gets stuck).

      +
        rule if ( true) S else _ => S
      +  rule if (false) _ else S => S
      +

      While loop

      + +

      The simplest way to give the semantics of the while loop is by unrolling.
      +Note, however, that its unrolling is only allowed when the while loop reaches
      +the top of the computation (to avoid non-termination of unrolling). The
      +simple while loop semantics below works because our while loops in SIMPLE are
      +indeed very basic. If we allowed break/continue of loops then we would need
      +a completely different semantics, which would also involve the control cell.

      +
        rule while (E) S => if (E) {S while(E)S}
      +

      Print

      + +

      The print statement was strict, so all its arguments are now
      +evaluated (recall that print is variadic). We append each of
      +its evaluated arguments to the output buffer, and discard the residual
      +print statement with an empty list of arguments.

      +
        rule <k> print(V:Val, Es => Es); ...</k> <output>... .List => ListItem(V) </output>
      +    [group(print)]
      +  rule print(.Vals); => .
      +

      Exceptions

      + +

      SIMPLE allows parametric exceptions, in that one can throw and catch a
      +particular value. The statement try S₁ catch(X) S₂
      +proceeds with the evaluation of S₁. If S₁ evaluates normally, i.e.,
      +without any exception thrown, then S₂ is discarded and the execution
      +continues normally. If S₁ throws an exception with a statement of the
      +form throw E, then E is first evaluated to some value V
      +(throw was declared to be strict), then V is bound to X, then
      +S₂ is evaluated in the new environment while the reminder of S₁ is
      +discarded, then the environment is recovered and the execution continues
      +normally with the statement following the try S₁ catch(X) S₂ statement.
      +Exceptions can be nested and the statements in the
      +catch part (S₂ in our case) can throw exceptions to the
      +upper level. One should be careful with how one handles the control data
      +structures here, so that the abrupt changes of control due to exception
      +throwing and to function returns interact correctly with each other.
      +For example, we want to allow function calls inside the statement S₁ in
      +a try S₁ catch(X) S₂ block which can throw an exception
      +that is not caught by the function but instead is propagated to the
      +try S₁ catch(X) S₂ block that called the function.
      +Therefore, we have to make sure that the function stack as well as other
      +potential control structures are also properly modified when the exception
      +is thrown to correctly recover the execution context. This can be easily
      +achieved by pushing/popping the entire current control context onto the
      +exception stack. The three rules below modularly do precisely the above.

      +
        syntax KItem ::= (Id,Stmt,K,Map,ControlCellFragment)
      +
      +  syntax KItem ::= "popx"
      +
      +  rule <k> (try S1 catch(X) {S2} => S1 ~> popx) ~> K </k>
      +       <control>
      +         <xstack> .List => ListItem((X, S2, K, Env, C)) ...</xstack>
      +         C
      +       </control>
      +       <env> Env </env>
      +
      +  rule <k> popx => . ...</k>
      +       <xstack> ListItem(_) => .List ...</xstack>
      +
      +  rule <k> throw V:Val; ~> _ => { var X = V; S2 } ~> K </k>
      +       <control>
      +         <xstack> ListItem((X, S2, K, Env, C)) => .List ...</xstack>
      +         (_ => C)
      +       </control>
      +       <env> _ => Env </env>
      +

      The catch statement S₂ needs to be executed in the original environment,
      +but where the thrown value V is bound to the catch variable X. We here
      +chose to rely on two previously defined constructs when giving semantics to
      +the catch part of the statement: (1) the variable declaration with
      +initialization, for binding X to V; and (2) the block construct for
      +preventing X from shadowing variables in the original environment upon the
      +completion of S₂.

      +

      Threads

      + +

      SIMPLE's threads can be created and terminated dynamically, and can
      +synchronize by acquiring and releasing re-entrant locks and by rendezvous.
      +We discuss the seven rules giving the semantics of these operations below.

      +

      Thread creation

      + +

      Threads can be created by any other threads using the spawn S
      +construct. The spawn expression construct evaluates to the unique identifier
      +of the newly created thread and, at the same time, a new thread cell is added
      +into the configuration, initialized with the S statement and sharing the
      +same environment with the parent thread. Note that the newly created
      +thread cell is torn. That means that the remaining cells are added
      +and initialized automatically as described in the definition of SIMPLE's
      +configuration. This is part of K's configuration abstraction mechanism.

      +
        rule <thread>...
      +         <k> spawn S => !T:Int ...</k>
      +         <env> Env </env>
      +       ...</thread>
      +       (.Bag => <thread>...
      +               <k> S </k>
      +               <env> Env </env>
      +               <id> !T </id>
      +             ...</thread>)
      +

      Thread termination

      + +

      Dually to the above, when a thread terminates its assigned computation (the
      +contents of its k cell) is empty, so the thread can be dissolved.
      +However, since no discipline is imposed on how locks are acquired and released,
      +it can be the case that a terminating thread still holds locks. Those locks
      +must be released, so other threads attempting to acquire them do not deadlock.
      +We achieve that by removing all the locks held by the terminating thread in its
      +holds cell from the set of busy locks in the busy cell
      +(keys(H) returns the domain of the map H as a set, that is, only
      +the locks themselves ignoring their multiplicity). As seen below, a lock is
      +added to the busy cell as soon as it is acquired for the first time
      +by a thread. The unique identifier of the terminated thread is also collected
      +into the terminated cell, so the join construct knows which
      +threads have terminated.

      +
        rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .Bag)
      +       <busy> Busy => Busy -Set keys(H) </busy>
      +       <terminated>... .Set => SetItem(T) ...</terminated>
      +

      Thread joining

      + +

      Thread joining is now straightforward: all we need to do is to check whether
      +the identifier of the thread to be joined is in the terminated cell.
      +If yes, then the join statement dissolves and the joining thread
      +continues normally; if not, then the joining thread gets stuck.

      +
        rule <k> join T:Int; => . ...</k>
      +       <terminated>... SetItem(T) ...</terminated>
      +

      Acquire lock

      + +

      There are two cases to distinguish when a thread attempts to acquire a lock
      +(in SIMPLE any value can be used as a lock):
      +(1) The thread does not currently have the lock, in which case it has to
      +take it provided that the lock is not already taken by another thread (see
      +the side condition of the first rule).
      +(2) The thread already has the lock, in which case it just increments its
      +counter for the lock (the locks are re-entrant). These two cases are captured
      +by the two rules below:

      +
        rule <k> acquire V:Val; => . ...</k>
      +       <holds>... .Map => V |-> 0 ...</holds>
      +       <busy> Busy (.Set => SetItem(V)) </busy>
      +    requires (notBool(V in Busy))  [group(acquire)]
      +
      +  rule <k> acquire V; => . ...</k>
      +       <holds>... V:Val |-> (N => N +Int 1) ...</holds>
      +

      Release lock

      + +

      Similarly, there are two corresponding cases to distinguish when a thread
      +releases a lock:
      +(1) The thread holds the lock more than once, in which case all it needs to do
      +is to decrement the lock counter.
      +(2) The thread holds the lock only once, in which case it needs to remove it
      +from its holds cell and also from the the shared busy cell,
      +so other threads can acquire it if they need to.

      +
        rule <k> release V:Val; => . ...</k>
      +       <holds>... V |-> (N => N -Int 1) ...</holds>
      +    requires N >Int 0
      +
      +  rule <k> release V; => . ...</k> <holds>... V:Val |-> 0 => .Map ...</holds>
      +       <busy>... SetItem(V) => .Set ...</busy>
      +

      Rendezvous synchronization

      + +

      In addition to synchronization through acquire and release of locks, SIMPLE
      +also provides a construct for rendezvous synchronization. A thread whose next
      +statement to execute is rendezvous(V) gets stuck until another
      +thread reaches an identical statement; when that happens, the two threads
      +drop their rendezvous statements and continue their executions. If three
      +threads happen to have an identical rendezvous statement as their next
      +statement, then precisely two of them will synchronize and the other will
      +remain blocked until another thread reaches a similar rendezvous statement.
      +The rule below is as simple as it can be. Note, however, that, again, it is
      +K's mechanism for configuration abstraction that makes it work as desired:
      +since the only cell which can multiply containing a k cell inside is
      +the thread cell, the only way to concretize the rule below to the
      +actual configuration of SIMPLE is to include each k cell in a
      +thread cell.

      +
        rule <k> rendezvous V:Val; => . ...</k>
      +       <k> rendezvous V; => . ...</k>  [group(rendezvous)]
      +

      Auxiliary declarations and operations

      + +

      In this section we define all the auxiliary constructs used in the
      +above semantics.

      +

      Making declarations

      + +

      The mkDecls auxiliary construct turns a list of identifiers
      +and a list of values in a sequence of corresponding variable
      +declarations.

      +
        syntax Stmt ::= mkDecls(Ids,Vals)  [function]
      +  rule mkDecls((X:Id, Xs:Ids), (V:Val, Vs:Vals)) => var X=V; mkDecls(Xs,Vs)
      +  rule mkDecls(.Ids,.Vals) => {}
      +

      Location lookup

      + +

      The operation below is straightforward. Note that we place it in the same
      +lookup group as the variable lookup rule defined above. This way,
      +both rules will be considered transitions when we include the lookup
      +tag in the transition option of kompile.

      +
        syntax Exp ::= lookup(Int)
      +  rule <k> lookup(L) => V ...</k> <store>... L |-> V:Val ...</store>  [group(lookup)]
      +

      Environment recovery

      + +

      We have already discussed the environment recovery auxiliary operation in the
      +IMP++ tutorial:

      +
      // TODO: eliminate the env wrapper, like we did in IMP++
      +
      +  syntax KItem ::= setEnv(Map)
      +  rule <k> setEnv(Env) => . ...</k> <env> _ => Env </env>
      +

      While theoretically sufficient, the basic definition for environment
      +recovery alone is suboptimal. Consider a loop while (E)S,
      +whose semantics (see above) was given by unrolling. S
      +is a block. Then the semantics of blocks above, together with the
      +unrolling semantics of the while loop, will yield a computation
      +structure in the k cell that increasingly grows, adding a new
      +environment recovery task right in front of the already existing sequence of
      +similar environment recovery tasks (this phenomenon is similar to the ``tail
      +recursion'' problem). Of course, when we have a sequence of environment
      +recovery tasks, we only need to keep the last one. The elegant rule below
      +does precisely that, thus avoiding the unnecessary computation explosion
      +problem:

      +
        rule (setEnv(_) => .) ~> setEnv(_)
      +

      In fact, the above follows a common convention in K for recovery
      +operations of cell contents: the meaning of a computation task of the form
      +cell(C) that reaches the top of the computation is that the current
      +contents of cell cell is discarded and gets replaced with C. We
      +did not add support for these special computation tasks in our current
      +implementation of K, so we need to define them as above.

      +

      lvalue and loc

      + +

      For convenience in giving the semantics of constructs like the increment and
      +the assignment, that we want to operate the same way on variables and on
      +array elements, we used an auxiliary lvalue(E) construct which was
      +expected to evaluate to the lvalue of the expression E. This is only
      +defined when E has an lvalue, that is, when E is either a variable or
      +evaluates to an array element. lvalue(E) evaluates to a value of
      +the form loc(L), where L is the location where the value of E
      +can be found; for clarity, we use loc to structurally distinguish
      +natural numbers from location values. In giving semantics to lvalue
      +there are two cases to consider. (1) If E is a variable, then all we need
      +to do is to grab its location from the environment. (2) If E is an array
      +element, then we first evaluate the array and its index in order to identify
      +the exact location of the element of concern, and then return that location;
      +the last rule below works because its preceding context declarations ensure
      +that the array and its index are evaluated, and then the rule for array lookup
      +(defined above) rewrites the evaluated array access construct to its
      +corresponding store lookup operation.

      +
      // For parsing reasons, we prefer to allow lvalue to take a K
      +
      +  syntax Exp ::= lvalue(K)
      +  syntax Val ::= loc(Int)
      +
      +// Local variable
      +
      +  rule <k> lvalue(X:Id => loc(L)) ...</k> <env>... X |-> L:Int ...</env>
      +
      +// Array element: evaluate the array and its index;
      +// then the array lookup rule above applies.
      +
      +  context lvalue(_::Exp[HOLE::Exps])
      +  context lvalue(HOLE::Exp[_::Exps])
      +
      +// Finally, return the address of the desired object member
      +
      +  rule lvalue(lookup(L:Int) => loc(L))
      +

      Initializing multiple locations

      + +

      The following operation initializes a sequence of locations with the same
      +value:

      +
        syntax Map ::= Int "..." Int "|->" K
      +    [function, latex({#1}\ldots{#2}\mapsto{#3})]
      +  rule N...M |-> _ => .Map  requires N >Int M
      +  rule N...M |-> K => N |-> K (N +Int 1)...M |-> K  requires N <=Int M
      +

      The semantics of SIMPLE is now complete. Make sure you kompile the
      +definition with the right options in order to generate the desired model.
      +No kompile options are needed if you only only want to execute the definition
      +(and thus get an interpreter), but if you want to search for a different
      +program behaviors then you need to kompile with the transition option
      +including rule groups such as lookup, increment, acquire, etc. See the
      +IMP++ tutorial for what the transition option means how to use it.

      +
      endmodule
      +

      Go to Lesson 2, SIMPLE typed static

      +

      SIMPLE — Typed — Static

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K definition of the static semantics of the typed SIMPLE
      +language, or in other words, a type system for the typed SIMPLE
      +language in K. We do not re-discuss the various features of the
      +SIMPLE language here. The reader is referred to the untyped version of
      +the language for such discussions. We here only focus on the new and
      +interesting problems raised by the addition of type declarations, and
      +what it takes to devise a type system/checker for the language.

      +

      When designing a type system for a language, no matter in what
      +paradigm, we have to decide upon the intended typing policy. Note
      +that we can have multiple type systems for the same language, one for
      +each typing policy. For example, should we accept programs which
      +don't have a main function? Or should we allow functions that do not
      +return explicitly? Or should we allow functions whose type expects
      +them to return a value (say an int) to use a plain
      +return; statement, which returns no value, like in C?
      +And so on and so forth. Typically, there are two opposite tensions
      +when designing a type system. On the one hand, you want your type
      +system to be as permissive as possible, that is, to accept as many
      +programs that do not get stuck when executed with the untyped
      +semantics as possible; this will keep the programmers using your
      +language happy. On the other hand, you want your type system to have
      +a reasonable performance when implemented; this will keep both the
      +programmers and the implementers of your language happy. For example,
      +a type system for rejecting programs that could perform
      +division-by-zero is not expected to be feasible in general. A simple
      +guideline when designing typing policies is to imagine how the
      +semantics of the untyped language may get stuck and try to prevent
      +those situations from happening.

      +

      Before we give the K type system of SIMPLE formally, we discuss,
      +informally, the intended typing policy:

      +
        +
      • +

        Each program should contain a main() function. Indeed,
        +the untyped SIMPLE semantics will get stuck on any program which does
        +not have a main function.

        +
      • +
      • +

        Each primitive value has its own type, which can be int
        +bool, or string. There is also a type void
        +for nonexistent values, for example for the result of a function meant
        +to return no value (but only be used for its side effects, like a
        +procedure).

        +
      • +
      • +

        The syntax of untyped SIMPLE is extended to allow type
        +declarations for all the variables, including array variables. This is
        +done in a C/Java-style. For example, int x; or
        +int x=7, y=x+3;, or int[][][] a[10,20];
        +(the latter defines a 10 × 20 matrix of arrays of integers).
        +Recall from untyped SIMPLE that, unlike in C/Java, our multi-dimensional
        +arrays use comma-separated arguments, although they have the array-of-array
        +semantics.

        +
      • +
      • +

        Functions are also typed in a C/Java style. However, since in SIMPLE
        +we allow functions to be passed to and returned by other functions, we also
        +need function types. We will use the conventional higher-order arrow-notation
        +for function types, but will separate the argument types with commas. For
        +example, a function returning an array of bool elements and
        +taking as argument an array x of two-integer-argument functions
        +returning an integer, is declared using a syntax of the form
        +bool[] f(((int,int)->int)[] x) { ... }
        +and has the type ((int,int)->int)[] -> bool[].

        +
      • +
      • +

        We allow any variable declarations at the top level. Functions
        +can only be declared at the top level. Each function can only access the
        +other functions and variables declared at the top level, or its own locally
        +declared variables. SIMPLE has static scoping.

        +
      • +
      • +

        The various expression and statement constructs take only elements of
        +the expected types.

        +
      • +
      • +

        Increment and assignment can operate both on variables and on array
        +elements. For example, if f has type int->int[][] and
        +function g has the type int->int, then the
        +increment expression ++f(7)[g(2),g(3)] is valid.

        +
      • +
      • +

        Functions should only return values of their declared result
        +type. To give the programmers more flexibility, we allow functions to
        +use return; statements to terminate without returning an
        +actual value, or to not explicitly use any return statement,
        +regardless of their declared return type. This flexibility can be
        +handy when writing programs using certain functions only for their
        +side effects. Nevertheless, as the dynamic semantics shows, a return
        +value is automatically generated when an explicit return
        +statement is not encountered.

        +
      • +
      • +

        For simplicity, we here limit exceptions to only throw and catch
        +integer values. We let it as an exercise to the reader to extend the
        +semantics to allow throwing and catching arbitrary-type exceptions.
        +Like in programming languages like Java, one can go even further and
        +define a semantics where thrown exceptions are propagated through
        +try-catch statements until one of the corresponding type is found.
        +We will do this when we define the KOOL language, not here.
        +To keep the definition if SIMPLE simple, here we do not attempt to
        +reject programs which throw uncaught exceptions.

        +
      • +
      +

      Like in untyped SIMPLE, some constructs can be desugared into a
      +smaller set of basic constructs. In general, it should be clear why a
      +program does not type by looking at the top of the k cells in
      +its stuck configuration.

      +
      module SIMPLE-TYPED-STATIC-SYNTAX
      +  imports DOMAINS-SYNTAX
      +

      Syntax

      + +

      The syntax of typed SIMPLE extends that of untyped SIMPLE with support
      +for declaring types to variables and functions.

      +
        syntax Id ::= "main" [token]
      +

      Types

      + +

      Primitive, array and function types, as well as lists (or tuples) of types.
      +The lists of types are useful for function arguments.

      +
        syntax Type ::= "void" | "int" | "bool" | "string"
      +                | Type "[" "]"
      +                | "(" Type ")"             [bracket]
      +                > Types "->" Type
      +
      +  syntax Types ::= List{Type,","}          [klabel(exps)]
      +

      Declarations

      + +

      Variable and function declarations have the expected syntax. For variables,
      +we basically just replaced the var keyword of untyped SIMPLE with a
      +type. For functions, besides replacing the function keyword with a
      +type, we also introduce a new syntactic category for typed variables,
      +Param, and lists over it.

      +
        syntax Param ::= Type Id
      +  syntax Params ::= List{Param,","}
      +
      +  syntax Stmt ::= Type Exps ";"
      +                | Type Id "(" Params ")" Block
      +

      Expressions

      + +

      The syntax of expressions is identical to that in untyped SIMPLE,
      +except for the logical conjunction and disjunction which have
      +different strictness attributes, because they now have different
      +evaluation strategies.

      +
        syntax Exp ::= Int | Bool | String | Id
      +               | "(" Exp ")"             [bracket]
      +               | "++" Exp
      +               > Exp "[" Exps "]"        [strict]
      +               > Exp "(" Exps ")"        [strict]
      +               | "-" Exp                 [strict]
      +               | "sizeOf" "(" Exp ")"    [strict]
      +               | "read" "(" ")"
      +               > left:
      +                 Exp "*" Exp             [strict, left]
      +               | Exp "/" Exp             [strict, left]
      +               | Exp "%" Exp             [strict, left]
      +               > left:
      +                 Exp "+" Exp             [strict, left]
      +               | Exp "-" Exp             [strict, left]
      +               > non-assoc:
      +                 Exp "<" Exp             [strict, non-assoc]
      +               | Exp "<=" Exp            [strict, non-assoc]
      +               | Exp ">" Exp             [strict, non-assoc]
      +               | Exp ">=" Exp            [strict, non-assoc]
      +               | Exp "==" Exp            [strict, non-assoc]
      +               | Exp "!=" Exp            [strict, non-assoc]
      +               > "!" Exp                 [strict]
      +               > left:
      +                 Exp "&&" Exp            [strict, left]
      +               | Exp "||" Exp            [strict, left]
      +               > "spawn" Block
      +               > Exp "=" Exp             [strict(2), right]
      +

      Note that spawn has not been declared strict. This may
      +seem unexpected, because the child thread shares the same environment
      +with the parent thread, so from a typing perspective the spawned
      +statement makes the same sense in a child thread as it makes in the
      +parent thread. The reason for not declaring it strict is because we
      +want to disallow programs where the spawned thread calls the
      +return statement, because those programs would get stuck in
      +the dynamic semantics. The type semantics of spawn below will reject
      +such programs.

      +

      We still need lists of expressions, defined below, but note that we do
      +not need lists of identifiers anymore. They have been replaced by the lists
      +of parameters.

      +
        syntax Exps ::= List{Exp,","}          [strict, klabel(exps)]
      +

      Statements

      + +

      The statements have the same syntax as in untyped SIMPLE, except for
      +the exceptions, which now type their parameter. Note that, unlike in untyped
      +SIMPLE, all statement constructs which have arguments and are not desugared
      +are strict, including the conditional and the while. Indeed, from a
      +typing perspective, they are all strict: first type their arguments and then
      +type the actual construct.

      +
        syntax Block ::= "{" "}"
      +                | "{" Stmt "}"
      +
      +  syntax Stmt ::= Block
      +                | Exp ";"                                  [strict]
      +                | "if" "(" Exp ")" Block "else" Block      [avoid, strict]
      +                | "if" "(" Exp ")" Block                   [macro]
      +                | "while" "(" Exp ")" Block                [strict]
      +                | "for" "(" Stmt Exp ";" Exp ")" Block     [macro]
      +                | "return" Exp ";"                         [strict]
      +                | "return" ";"
      +                | "print" "(" Exps ")" ";"                 [strict]
      +                | "try" Block "catch" "(" Param ")" Block  [strict(1)]
      +                | "throw" Exp ";"                          [strict]
      +                | "join" Exp ";"                           [strict]
      +                | "acquire" Exp ";"                        [strict]
      +                | "release" Exp ";"                        [strict]
      +                | "rendezvous" Exp ";"                     [strict]
      +

      Note that the sequential composition is now sequentially strict,
      +because, unlike in the dynamic semantics where statements dissolved,
      +they now reduce to the stmt type, which is a result.

      +
        syntax Stmt ::= Stmt Stmt                             [seqstrict, right]
      +

      Desugaring macros

      + +

      We use the same desugaring macros like in untyped SIMPLE, but, of
      +course, including the types of the involved variables.

      +
        rule if (E) S => if (E) S else {}
      +  rule for(Start Cond; Step) {S:Stmt} => {Start while(Cond){S Step;}}
      +  rule for(Start Cond; Step) {} => {Start while(Cond){Step;}}
      +  rule T:Type E1:Exp, E2:Exp, Es:Exps; => T E1; T E2, Es;               [anywhere]
      +  rule T:Type X:Id = E; => T X; X = E;                                  [anywhere]
      +
      +endmodule
      +
      +
      +module SIMPLE-TYPED-STATIC
      +  imports SIMPLE-TYPED-STATIC-SYNTAX
      +  imports DOMAINS
      +

      Static semantics

      + +

      Here we define the type system of SIMPLE. Like concrete semantics,
      +type systems defined in K are also executable. However, K type
      +systems turn into type checkers instead of interpreters when executed.

      +

      The typing process is done in two (overlapping) phases. In the first
      +phase the global environment is built, which contains type bindings
      +for all the globally declared variables and functions. For functions,
      +the declared types will be ``trusted'' during the first phase and
      +simply bound to their corresponding function names and placed in the
      +global type environment. At the same time, type-checking tasks that
      +the function bodies indeed respect their claimed types are generated.
      +All these tasks are (concurrently) verified during the second phase.
      +This way, all the global variable and function declarations are
      +available in the global type environment and can be used in order to
      +type-check each function code. This is consistent with the semantics
      +of untyped SIMPLE, where functions can access all the global variables
      +and can call any other function declared in the same program. The
      +two phases may overlap because of the K concurrent semantics. For
      +example, a function task can be started while the first phase is still
      +running; moreover, it may even complete before the first phase does,
      +namely when all the global variables and functions that it needs have
      +already been processed and made available in the global environment by
      +the first phase task.

      +

      Extended syntax and results

      + +

      The idea is to start with a configuration holding the program to type
      +in one of its cells, then apply rewrite rules on it mixing types and
      +language syntax, and eventually obtain a type instead of the original
      +program. In other words, the program reduces to its type using
      +the K rules giving the type system of the language. In doing so,
      +additional typing tasks for function bodies are generated and solved
      +the same way. If this rewriting process gets stuck, then we say that
      +the program is not well-typed. Otherwise the program is well-typed
      +(by definition). We did not need types for statements and for blocks
      +as part of the typed SIMPLE syntax, because programmers are not allowed
      +to use such types explicitly. However, we are going to need them in the
      +type system, because blocks and statements reduce to them.

      +

      We start by allowing types to be used inside expressions and statements in
      +our language. This way, types can be used together with language syntax in
      +subsequent K rules without any parsing errors. Like in the type system of
      +IMP++ in the K tutorial, we prefer to group the block and statement types
      +under one syntactic sub-category of types, because this allows us to more
      +compactly state that certain terms can be either blocks or statements. Also,
      +since programs and fragments of program will reduce to their types, in order
      +for the strictness and context declarations to be executable we state that
      +types are results (same like we did in the IMP++ tutorial).

      +
        syntax Exp ::= Type
      +  syntax Exps ::= Types
      +  syntax BlockOrStmtType ::= "block" | "stmt"
      +  syntax Type ::= BlockOrStmtType
      +  syntax Block ::= BlockOrStmtType
      +  syntax KResult ::= Type
      +                   | Types    //TODO: remove this, eventually
      +

      Configuration

      + +

      The configuration of our type system consists of a tasks cell
      +holding various typing task cells, and a global type environment.
      +Each task includes a k cell holding the code to type, a tenv
      +cell holding the local type environment, and a return cell holding
      +the return type of the currently checked function. The latter is needed in
      +order to check whether return statements return values of the expected type.
      +Initially, the program is placed in a k cell inside a
      +task cell. Since the cells with multiplicity ? are not
      +included in the initial configuration, the task cell holding
      +the original program in its k cell will contain no other
      +subcells.

      +
        configuration <T color="yellow">
      +                  <tasks color="orange">
      +                    <task multiplicity="*" color="yellow" type="Set">
      +                      <k color="green"> $PGM:Stmt </k>
      +                      <tenv multiplicity="?" color="cyan"> .Map </tenv>
      +                      <returnType multiplicity="?" color="black"> void </returnType>
      +                    </task>
      +                  </tasks>
      +//                  <br/>
      +                  <gtenv color="blue"> .Map </gtenv>
      +                </T>
      +

      Variable declarations

      + +

      Variable declarations type as statements, that is, they reduce to the
      +type stmt. There are only two cases that need to be
      +considered: when a simple variable is declared and when an array
      +variable is declared. The macros at the end of the syntax module
      +above take care of reducing other variable declarations, including
      +ones where the declared variables are initialized, to only these two
      +cases. The first case has two subcases: when the variable declaration
      +is global (i.e., the task cell contains only the k
      +cell), in which case it is added to the global type environment
      +checking at the same time that the variable has not been already
      +declared; and when the variable declaration is local (i.e., a
      +tenv cell is available), in which case it is simply added to
      +the local type environment, possibly shadowing previous homonymous
      +variables. The third case reduces to the second, incrementally moving
      +the array dimension into the type until the array becomes a simple
      +variable.

      +
        rule <task> <k> T:Type X:Id; => stmt ...</k> </task>
      +       <gtenv> Rho (.Map => X |-> T) </gtenv>
      +    requires notBool(X in keys(Rho))
      +  rule <k> T:Type X:Id; => stmt ...</k> <tenv> Rho => Rho[X <- T] </tenv>
      +
      +  context _:Type _::Exp[HOLE::Exps];
      +// The rule below may need to sort E to Exp in the future, if the
      +// parser gets stricter; without that information, it may not be able
      +// to complete the LHS into T E[int,Ts],.Exps; (and similarly for the RHS)
      +  rule T:Type E:Exp[int,Ts:Types]; => T[] E[Ts];
      +// I want to write the rule below as _:Type (E:Exp[.Types] => E),
      +// but the list completion seems to not work well with that.
      +  rule T:Type E:Exp[.Types]; => T E;
      +

      Function declarations

      + +

      Functions are allowed to be declared only at the top level (the
      +task cell holds only its k subcell). Each function
      +declaration reduces to a variable declaration (a binding of its name
      +to its declared function type), but also adds a task into the
      +tasks cell. The task consists of a typing of the statement
      +declaring all the function parameters followed by the function body,
      +together with the expected return type of the function. The
      +getTypes and mkDecls functions, defined at the end of
      +the file in the section on auxiliary operations, extracts the list of
      +types and makes a sequence of variable declarations from a list of
      +function parameters, respectively. Note that, although in the dynamic
      +semantics we include a terminating return statement at the
      +end of the function body to eliminate from the analysis the case when
      +the function does not provide an explicit return, we do not need to
      +include such a similar return statement here. That's because
      +the return statements type to stmt anyway, and the
      +entire code of the function body needs to type anyway.

      +
        rule <task> <k> T:Type F:Id(Ps:Params) S => getTypes(Ps)->T F; ...</k> </task>
      +       (.Bag => <task>
      +               <k> mkDecls(Ps) S </k> <tenv> .Map </tenv> <returnType> T </returnType>
      +             </task>)
      +

      Checking if main() exists}

      + +

      Once the entire program is processed (generating appropriate tasks
      +to type check its function bodies), we can dissolve the main
      +task cell (the one holding only a k subcell). Since
      +we want to enforce that programs include a main function, we also
      +generate a function task executing main() to ensure that it
      +types (remove this task creation if you do not want your type system
      +to reject programs without a main function).

      +
        rule <task> <k> stmt => main(.Exps); </k> (.Bag => <tenv> .Map </tenv>) </task>
      +

      Collecting the terminated tasks

      + +

      Similarly, once a non-main task (i.e., one which contains a
      +tenv subcells) is completed using the subsequent rules (i.e.,
      +its k cell holds only the block or stmt
      +type), we can dissolve its corresponding cell. Note that it is
      +important to ensure that we only dissolve tasks containing a
      +tenv cell with the rule below, because the main task should
      +not dissolve this way! It should do what the above rule says.
      +In the end, there should be no task cell left in the configuration
      +when the program correctly type checks.

      +
        rule <task>... <k> _:BlockOrStmtType </k> <tenv> _ </tenv> ...</task> => .Bag
      +

      Basic values

      + +

      The first three rewrite rules below reduce the primitive values to
      +their types, as we typically do when we define type systems in K.

      +
        rule _:Int => int
      +  rule _:Bool => bool
      +  rule _:String => string
      +

      Variable lookup

      + +

      There are three cases to distinguish for variable lookup: (1) if the
      +variable is bound in the local type environment, then look its type up
      +there; (2) if a local environment exists and the variable is not bound
      +in it, then look its type up in the global environment; (3) finally,
      +if there is no local environment, meaning that we are executing the
      +top-level pass, then look the variable's type up in the global
      +environment, too.

      +
        rule <k> X:Id => T ...</k> <tenv>... X |-> T ...</tenv>
      +
      +  rule <k> X:Id => T ...</k> <tenv> Rho </tenv> <gtenv>... X |-> T ...</gtenv>
      +    requires notBool(X in keys(Rho))
      +
      +  rule <task> <k> X:Id => T ...</k> </task> <gtenv>... X |-> T ...</gtenv>
      +

      Increment

      + +

      We want the increment operation to apply to any lvalue, including
      +array elements, not only to variables. For that reason, we define a
      +special context extracting the type of the argument of the increment
      +operation only if that argument is an lvalue. Otherwise the rewriting
      +process gets stuck. The operation ltype is defined at the
      +end of this file, in the auxiliary operation section. It essentially
      +acts as a filter, getting stuck if its argument is not an lvalue and
      +letting it reduce otherwise. The type of the lvalue is expected to be
      +an integer in order to be allowed to be incremented, as seen in the
      +rule ++ int => int below.

      +
        context ++(HOLE => ltype(HOLE))
      +  rule ++ int => int
      +

      Common expression constructs

      + +

      The rules below are straightforward and self-explanatory:

      +
        rule int + int => int
      +  rule string + string => string
      +  rule int - int => int
      +  rule int * int => int
      +  rule int / int => int
      +  rule int % int => int
      +  rule - int => int
      +  rule int < int => bool
      +  rule int <= int => bool
      +  rule int > int => bool
      +  rule int >= int => bool
      +  rule T:Type == T => bool
      +  rule T:Type != T => bool
      +  rule bool && bool => bool
      +  rule bool || bool => bool
      +  rule ! bool => bool
      +

      Array access and size

      + +

      Array access requires each index to type to an integer, and the
      +array type to be at least as deep as the number of indexes:

      +
      // NOTE:
      +// We used to need parentheses in the RHS, to avoid capturing Ts as an attribute
      +// Let's hope that is not a problem anymore.
      +
      +  rule (T[])[int, Ts:Types] => T[Ts]
      +  rule T:Type[.Types] => T
      +

      sizeOf only needs to check that its argument is an array:

      +
        rule sizeOf(_T[]) => int
      +

      Input/Output

      + +

      The read expression construct types to an integer, while print types
      +to a statement provided that all its arguments type to integers or
      +strings.

      +
        rule read() => int
      +
      +  rule print(T:Type, Ts => Ts); requires T ==K int orBool T ==K string
      +  rule print(.Types); => stmt
      +

      Assignment

      + +

      The special context and the rule for assignment below are similar
      +to those for increment: the LHS of the assignment must be an lvalue
      +and, in that case, it must have the same type as the RHS, which then
      +becomes the type of the assignment.

      +
        context (HOLE => ltype(HOLE)) = _
      +  rule T:Type = T => T
      +

      Function application and return

      + +

      Function application requires the type of the function and the
      +types of the passed values to be compatible. Note that a special case
      +is needed to handle the no-argument case:

      +
        rule (Ts:Types -> T)(Ts) => T requires Ts =/=K .Types
      +  rule (void -> T)(.Types) => T
      +

      The returned value must have the same type as the declared
      +function return type. If an empty return is encountered, than
      +we should check that we are in a function (and not a thread)
      +context, that is, a return cell must be available:

      +
        rule <k> return T:Type; => stmt ...</k> <returnType> T </returnType>
      +  rule <k> return; => stmt ...</k> <returnType> _ </returnType>
      +

      Blocks

      + +

      To avoid having to recover type environments after blocks, we prefer
      +to start a new task for block body, making sure that the new task
      +is passed the same type environment and return cells. The value
      +returned by return statements must have the same type as
      +stated in the return cell. The print variadic
      +function is allowed to only print integers and strings. The thrown
      +exceptions can only have integer type.

      +
        rule {} => block
      +
      +  rule <task> <k> {S} => block ...</k> <tenv> Rho </tenv> R </task>
      +       (.Bag => <task> <k> S </k> <tenv> Rho </tenv> R </task>)
      +

      Expression statement

      + +
        rule _:Type; => stmt
      +

      Conditional and while loop

      + +
        rule if (bool) block else block => stmt
      +  rule while (bool) block => stmt
      +

      Exceptions

      + +

      We currently force the parameters of exceptions to only be integers.
      +Moreover, for simplicity, we assume that integer exceptions can be
      +thrown from anywhere, including from functions which do not define
      +any try-catch block (with the currently unchecked ‒also for
      +simplicity‒ expectation that the caller functions would catch those
      +exceptions).

      +
        rule try block catch(int X:Id) {S} => {int X; S}
      +  rule try block catch(int X:Id) {} => {int X;}
      +  rule throw int; => stmt
      +

      Concurrency

      + +

      Nothing special about typing the concurrency constructs, except that
      +we do not want the spawned thread to return, so we do not include any
      +return cell in the new task cell for the thread statement.
      +Same like with the functions above, we do not check for thrown
      +exceptions which are not caught.

      +
        rule <k> spawn S => int ...</k> <tenv> Rho </tenv>
      +       (.Bag => <task> <k> S </k> <tenv> Rho </tenv> </task>)
      +  rule join int; => stmt
      +  rule acquire _:Type; => stmt
      +  rule release _:Type; => stmt
      +  rule rendezvous _:Type; => stmt
      +
      +  rule _:BlockOrStmtType _:BlockOrStmtType => stmt
      +

      Auxiliary constructs

      + +

      The function mkDecls turns a list of parameters into a
      +list of variable declarations.

      +
        syntax Stmt ::= mkDecls(Params)  [function]
      +  rule mkDecls(T:Type X:Id, Ps:Params) => T X; mkDecls(Ps)
      +  rule mkDecls(.Params) => {}
      +

      The ltype context allows only expressions which have an
      +lvalue to evaluate.

      +
        syntax LValue ::= Id
      +  rule isLValue(_:Exp[_:Exps]) => true
      +  syntax Exp ::= LValue  // K should be able to infer this
      +                         // if not added, then it gets stuck with an Id on k cell
      +
      +// Instead of the second LValue production above you can use a rule:
      +//  rule isLValue(_:Exp[_:Exps]) => true
      +
      +  syntax Exp ::= ltype(Exp)
      +//  context ltype(HOLE:LValue)
      +// The above context does not work due to some error, so we write instead
      +  context ltype(HOLE) requires isLValue(HOLE)
      +

      The function getTypes is the same as in SIMPLE typed dynamic.

      +
        syntax Types ::= getTypes(Params)  [function]
      +  rule getTypes(T:Type _:Id) => T, .Types   // I would like to not use .Types
      +  rule getTypes(T:Type _:Id, P, Ps) => T, getTypes(P,Ps)
      +  rule getTypes(.Params) => void, .Types
      +
      +endmodule
      +

      Go to Lesson 3, SIMPLE typed dynamic

      +

      SIMPLE — Typed — Dynamic

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K dynamic semantics of the typed SIMPLE language.
      +It is very similar to the semantics of the untyped SIMPLE, the
      +difference being that we now dynamically check the typing policy
      +described in the static semantics of typed SIMPLE. Because of the
      +dynamic nature of the semantics, we can also perform some additional
      +checks which were not possible in the static semantics, such as
      +memory leaks due to accessing an array out of its bounds. We will
      +highlight the differences between the dynamically typed and the
      +untyped SIMPLE as we proceed with the semantics. We recommend the
      +reader to consult the typing policy and the syntax of types discussed
      +in the static semantics of the typed SIMPLE language.

      +
      module SIMPLE-TYPED-DYNAMIC-SYNTAX
      +  imports DOMAINS-SYNTAX
      +

      Syntax

      + +

      The syntax of typed SIMPLE extends that of untyped SIMPLE with support
      +for declaring types to variables and functions.

      +

      The syntax below is identical to that of the static semantics of typed
      +SIMPLE. However, the K strictness attributes are like those of the untyped
      +SIMPLE, to capture the desired evaluation strategies of the various language
      +constructs.

      +
        syntax Id ::= "main" [token]
      +

      Types

      + +
        syntax Type ::= "void" | "int" | "bool" | "string"
      +                | Type "[" "]"
      +                | "(" Type ")"           [bracket]
      +                > Types "->" Type
      +  syntax Types ::= List{Type,","}        [klabel(exps)]
      +

      Declarations

      + +
        syntax Param ::= Type Id
      +  syntax Params ::= List{Param,","}
      +
      +  syntax Stmt ::= Type Exps ";"
      +                | Type Id "(" Params ")" Block
      +

      Expressions

      + +
        syntax Exp ::= Int | Bool | String | Id
      +               | "(" Exp ")"             [bracket]
      +               | "++" Exp
      +               > Exp "[" Exps "]"        [strict]
      +               > Exp "(" Exps ")"        [strict]
      +               | "-" Exp                 [strict]
      +               | "sizeOf" "(" Exp ")"    [strict]
      +               | "read" "(" ")"
      +               > left:
      +                 Exp "*" Exp             [strict, left]
      +               | Exp "/" Exp             [strict, left]
      +               | Exp "%" Exp             [strict, left]
      +               > left:
      +                 Exp "+" Exp             [strict, left]
      +               | Exp "-" Exp             [strict, left]
      +               > non-assoc:
      +                 Exp "<" Exp             [strict, non-assoc]
      +               | Exp "<=" Exp            [strict, non-assoc]
      +               | Exp ">" Exp             [strict, non-assoc]
      +               | Exp ">=" Exp            [strict, non-assoc]
      +               | Exp "==" Exp            [strict, non-assoc]
      +               | Exp "!=" Exp            [strict, non-assoc]
      +               > "!" Exp                 [strict]
      +               > left:
      +                 Exp "&&" Exp            [strict(1), left]
      +               | Exp "||" Exp            [strict(1), left]
      +               > "spawn" Block
      +               > Exp "=" Exp             [strict(2), right]
      +

      Like in the static semantics, there is no need for lists of identifiers
      +(because we now have lists of parameters).

      +
        syntax Exps ::= List{Exp,","}          [strict, klabel(exps)]
      +  syntax Val
      +  syntax Vals ::= List{Val,","}          [klabel(exps)]
      +

      Statements

      + +
        syntax Block ::= "{" "}"
      +                | "{" Stmt "}"
      +
      +  syntax Stmt ::= Block
      +                | Exp ";"                               [strict]
      +                | "if" "(" Exp ")" Block "else" Block   [avoid, strict(1)]
      +                | "if" "(" Exp ")" Block                [macro]
      +                | "while" "(" Exp ")" Block
      +                | "for" "(" Stmt Exp ";" Exp ")" Block  [macro]
      +                | "print" "(" Exps ")" ";"              [strict]
      +                | "return" Exp ";"                      [strict]
      +                | "return" ";"
      +                | "try" Block "catch" "(" Param ")" Block
      +            | "throw" Exp ";"                       [strict]
      +                | "join" Exp ";"                        [strict]
      +                | "acquire" Exp ";"                     [strict]
      +                | "release" Exp ";"                     [strict]
      +                | "rendezvous" Exp ";"                  [strict]
      +
      +  syntax Stmt ::= Stmt Stmt                          [right]
      +

      The same desugaring macros like in the statically typed SIMPLE.

      +
        rule if (E) S => if (E) S else {}
      +  rule for(Start Cond; Step) {S:Stmt} => {Start while(Cond){S Step;}}
      +  rule for(Start Cond; Step) {} => {Start while(Cond){Step;}}
      +  rule T:Type E1:Exp, E2:Exp, Es:Exps; => T E1; T E2, Es;               [anywhere]
      +  rule T:Type X:Id = E; => T X; X = E;                                  [anywhere]
      +
      +endmodule
      +
      +
      +module SIMPLE-TYPED-DYNAMIC
      +  imports SIMPLE-TYPED-DYNAMIC-SYNTAX
      +  imports DOMAINS
      +

      Semantics

      + +

      Values and results

      + +

      These are similar to those of untyped SIMPLE, except that the array
      +references and the function abstrations now also hold their types.
      +These types are needed in order to easily compute the type of any
      +value in the language (see the auxiliary typeOf operation at
      +the end of this module).

      +
        syntax Val ::= Int | Bool | String
      +               | array(Type,Int,Int)
      +               | lambda(Type,Params,Stmt)
      +  syntax Exp ::= Val
      +  syntax Exps ::= Vals
      +  syntax KResult ::= Val
      +                   | Vals  // TODO: should not need this
      +

      Configuration

      + +

      The configuration is almost identical to that of untyped SIMPLE,
      +except for a return cell inside the control cell.
      +This return cell will hold, like in the static semantics of
      +typed SIMPLE, the expected type of the value returned by the function
      +being executed. The contents of this cell will be set whenever a
      +function is invoked and will be checked whenever the evaluation of the
      +function body encounters an explicit return statement.

      +
        // the syntax declarations below are required because the sorts are
      +  // referenced directly by a production and, because of the way KIL to KORE
      +  // is implemented, the configuration syntax is not available yet
      +  // should simply work once KIL is removed completely
      +  // check other definitions for this hack as well
      +
      +  syntax ControlCell
      +  syntax ControlCellFragment
      +
      +  configuration <T color="red">
      +                  <threads color="orange">
      +                    <thread multiplicity="*" color="yellow" type="Map">
      +                      <id color="pink"> 0 </id>
      +                      <k color="green"> ($PGM:Stmt ~> execute) </k>
      +//                      <br/>
      +                      <control color="cyan">
      +                        <fstack color="blue"> .List </fstack>
      +                        <xstack color="purple"> .List </xstack>
      +                        <returnType color="LimeGreen"> void </returnType>
      +                       </control>
      +//                      <br/>
      +                      <env color="violet"> .Map </env>
      +                      <holds color="black"> .Map </holds>
      +                    </thread>
      +                  </threads>
      +//                  <br/>
      +                  <genv color="pink"> .Map </genv>
      +                  <store color="white"> .Map </store>
      +                  <busy color="cyan">.Set</busy>
      +                  <terminated color="red"> .Set </terminated>
      +                  <input color="magenta" stream="stdin"> .List </input>
      +                  <output color="brown" stream="stdout"> .List </output>
      +                  <nextLoc color="gray"> 0 </nextLoc>
      +                </T>
      +

      Declarations and Initialization

      + +

      Variable Declaration

      + +

      The undefined construct is now parameterized by a type.
      +A main difference between untyped SIMPLE and dynamically typed SIMPLE
      +is that the latter assigns a type to each of its locations and that
      +type cannot be changed during the execution of the program. We do not
      +do any memory management in our semantic definitions here, so
      +locations cannot be reclaimed, garbage collected and/or reused. Each
      +location corresponds precisely to an allocated variable or array
      +element, whose type was explicitly or implicitly declared in the
      +program and does not change. It is therefore safe to type each
      +location and then never allow that type to change. The typed
      +undefined values effectively assign both a type and an undefined value
      +to a location.

      +
        syntax KItem ::= undefined(Type)  [latex(\bot_{#1})]
      +
      +  rule <k> T:Type X:Id; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> undefined(T) ...</store>
      +       <nextLoc> L:Int => L +Int 1 </nextLoc>
      +

      Array Declaration

      + +

      The dynamic semantics of typed array declarations is similar to that
      +in untyped SIMPLE, but we have to make sure that we associate the
      +right type to the allocated locations.

      +
        rule <k> T:Type X:Id[N:Int]; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> array(T, L +Int 1, N)
      +                          (L +Int 1)...(L +Int N) |-> undefined(T) ...</store>
      +       <nextLoc> L:Int => L +Int 1 +Int N </nextLoc>
      +    when N >=Int 0
      +
      +  context _:Type _::Exp[HOLE::Exps];
      +

      The desugaring of multi-dimensional arrays into unidimensional
      +ones is also similar to that in untyped SIMPLE, although we have to
      +make sure that all the declared variables have the right types. The
      +auxiliary operation T<Vs>, defined at the end of the file,
      +adds the length of Vs dimensions to the type T.

      +
      // TODO: Check the desugaring below to be consistent with the one for untyped simple
      +
      +  syntax Id ::= "$1" [token] | "$2" [token]
      +  rule T:Type X:Id[N1:Int, N2:Int, Vs:Vals];
      +    => T[]<Vs> X[N1];
      +       {
      +         T[][]<Vs> $1=X;
      +         for(int $2=0; $2 <= N1 - 1; ++$2) {
      +           T X[N2,Vs];
      +           $1[$2] = X;
      +         }
      +       }
      +

      Function declaration

      + +

      Store all function parameters, as well as the return type, as part
      +of the lambda abstraction. In the spirit of dynamic typing, we will
      +make sure that parameters are well typed when the function is invoked.

      +
        rule <k> T:Type F:Id(Ps:Params) S => . ...</k>
      +       <env> Env => Env[F <- L] </env>
      +       <store>... .Map => L |-> lambda(T, Ps, S) ...</store>
      +       <nextLoc> L => L +Int 1 </nextLoc>
      +

      Calling main()

      + +

      When done with the first pass, call main().

      +
        syntax KItem ::= "execute"
      +  rule <k> execute => main(.Exps); </k>
      +       <env> Env </env>
      +       <genv> .Map => Env </genv>
      +

      Expressions

      + +

      Variable lookup

      + +
        rule <k> X:Id => V ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... L |-> V:Val ...</store>  [group(lookup)]
      +

      Variable/Array increment

      + +
        context ++(HOLE => lvalue(HOLE))
      +  rule <k> ++loc(L) => I +Int 1 ...</k>
      +       <store>... L |-> (I:Int => I +Int 1) ...</store>  [group(increment)]
      +

      Arithmetic operators

      + +
        rule I1 + I2 => I1 +Int I2
      +  rule Str1 + Str2 => Str1 +String Str2
      +  rule I1 - I2 => I1 -Int I2
      +  rule I1 * I2 => I1 *Int I2
      +  rule I1 / I2 => I1 /Int I2 when I2 =/=K 0
      +  rule I1 % I2 => I1 %Int I2 when I2 =/=K 0
      +  rule - I => 0 -Int I
      +  rule I1 < I2 => I1 <Int I2
      +  rule I1 <= I2 => I1 <=Int I2
      +  rule I1 > I2 => I1 >Int I2
      +  rule I1 >= I2 => I1 >=Int I2
      +  rule V1:Val == V2:Val => V1 ==K V2
      +  rule V1:Val != V2:Val => V1 =/=K V2
      +  rule ! T => notBool(T)
      +  rule true  && E => E
      +  rule false && _ => false
      +  rule true  || _ => true
      +  rule false || E => E
      +

      Array lookup

      + +

      Check array bounds, as part of the dynamic typing policy.

      +
      // Same comment as for simple untyped regarding [anywhere]
      +  rule V:Val[N1:Int, N2:Int, Vs:Vals] => V[N1][N2, Vs]
      +    [anywhere]
      +
      +// Same comment as for simple untyped regarding [anywhere]
      +  rule array(_:Type, L:Int, M:Int)[N:Int] => lookup(L +Int N)
      +    when N >=Int 0 andBool N <Int M  [anywhere]
      +

      Size of an array

      + +
        rule sizeOf(array(_,_,N)) => N
      +

      Function call

      + +

      Define function call and return together, to see their relationship.
      +Note that the operation mkDecls now declares properly typed
      +instantiated variables, and that the semantics of return also
      +checks that that type of the returned value is expected one.

      +
        syntax KItem ::= (Type,Map,K,ControlCellFragment)
      +
      +  rule <k> lambda(T,Ps,S)(Vs:Vals) ~> K => mkDecls(Ps,Vs) S return; </k>
      +       <control>
      +         <fstack> .List => ListItem((T',Env,K,C)) ...</fstack>
      +         <returnType> T' => T </returnType>
      +         C
      +       </control>
      +       <env> Env => GEnv </env>
      +       <genv> GEnv </genv>
      +
      +  rule <k> return V:Val; ~> _ => V ~> K </k>
      +       <control>
      +         <fstack> ListItem((T',Env,K,C)) => .List ...</fstack>
      +         <returnType> T => T' </returnType>
      +         (_ => C)
      +       </control>
      +       <env> _ => Env </env>
      +    when typeOf(V) ==K T   // check the type of the returned value
      +

      Like the undefined above, nothing also gets
      +tagged with a type now. The empty return statement is
      +completed to return the nothing value tagged as expected.

      +
        syntax Val ::= nothing(Type)
      +  rule <k> return; => return nothing(T); ...</k> <returnType> T </returnType>
      +

      Read

      + +
        rule <k> read() => I ...</k> <input> ListItem(I:Int) => .List ...</input>  [group(read)]
      +

      Assignment

      + +

      The assignment now checks that the type of the assigned location is
      +preserved:

      +
        context (HOLE => lvalue(HOLE)) = _
      +
      +  rule <k> loc(L) = V:Val => V ...</k> <store>... L |-> (V' => V) ...</store>
      +    when typeOf(V) ==K typeOf(V')  [group(assignment)]
      +

      Statements

      + +

      Blocks

      + +
        rule {} => .
      +  rule <k> { S } => S ~> setEnv(Env) ...</k>  <env> Env </env>
      +

      Sequential composition

      + +
        rule S1:Stmt S2:Stmt => S1 ~> S2
      +

      Expression statements

      + +
        rule _:Val; => .
      +

      Conditional

      + +
        rule if ( true) S else _ => S
      +  rule if (false) _ else S => S
      +

      While loop

      + +
        rule while (E) S => if (E) {S while(E)S}
      +

      Print

      + +

      We only allow printing integers and strings:

      +
        rule <k> print(V:Val, Es => Es); ...</k> <output>... .List => ListItem(V) </output>
      +    when typeOf(V) ==K int orBool typeOf(V) ==K string  [group(print)]
      +  rule print(.Vals); => .
      +

      Exceptions

      + +

      Exception parameters are now typed, but note that the semantics below
      +works correctly only when the thrown exception has the same type as
      +the innermost try-catch paramete. To keep things simple, for the time
      +being we can assume that SIMPLE only throws and catches integer
      +values, in which case our semantics below works fine:

      +
        syntax KItem ::= (Param,Stmt,K,Map,ControlCellFragment)  // Param instead of Id
      +
      +  syntax KItem ::= "popx"
      +
      +  rule <k> (try S1 catch(P) S2 => S1 ~> popx) ~> K </k>
      +       <control>
      +         <xstack> .List => ListItem((P, S2, K, Env, C)) ...</xstack>
      +         C
      +       </control>
      +       <env> Env </env>
      +
      +  rule <k> popx => . ...</k>
      +       <xstack> ListItem(_) => .List ...</xstack>
      +
      +  rule <k> throw V:Val; ~> _ => { T X = V; S2 } ~> K </k>
      +       <control>
      +         <xstack> ListItem((T:Type X:Id, S2, K, Env, C)) => .List ...</xstack>
      +         (_ => C)
      +       </control>
      +       <env> _ => Env </env>
      +

      Threads

      + +

      Thread creation

      + +
         rule <thread>...
      +          <k> spawn S => !T:Int +Int 1 ...</k>
      +          <env> Env </env>
      +        ...</thread>
      +        (.Bag => <thread>...
      +                <k> S </k>
      +                <env> Env </env>
      +                <id> !T +Int 1 </id>
      +              ...</thread>)
      +

      Thread termination

      + +
         rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .Bag)
      +        <busy> Busy => Busy -Set keys(H) </busy>
      +        <terminated>... .Set => SetItem(T) ...</terminated>
      +

      Thread joining

      + +
         rule <k> join T:Int; => . ...</k>
      +        <terminated>... SetItem(T) ...</terminated>
      +

      Acquire lock

      + +
         rule <k> acquire V:Val; => . ...</k>
      +        <holds>... .Map => V |-> 0 ...</holds>
      +        <busy> Busy (.Set => SetItem(V)) </busy>
      +     when (notBool(V in Busy:Set))  [group(acquire)]
      +
      +   rule <k> acquire V; => . ...</k>
      +        <holds>... V:Val |-> (N:Int => N +Int 1) ...</holds>
      +

      Release lock

      + +
         rule <k> release V:Val; => . ...</k>
      +        <holds>... V |-> (N => N:Int -Int 1) ...</holds>
      +      when N >Int 0
      +
      +   rule <k> release V; => . ...</k> <holds>... V:Val |-> 0 => .Map ...</holds>
      +        <busy>... SetItem(V) => .Set ...</busy>
      +

      Rendezvous synchronization

      + +
         rule <k> rendezvous V:Val; => . ...</k>
      +        <k> rendezvous V; => . ...</k>  [group(rendezvous)]
      +

      Auxiliary declarations and operations

      + +

      Turns a list of parameters and a list of instance values for them
      +into a list of variable declarations.

      +
        syntax Stmt ::= mkDecls(Params,Vals)  [function]
      +  rule mkDecls((T:Type X:Id, Ps:Params), (V:Val, Vs:Vals))
      +    => T X=V; mkDecls(Ps,Vs)
      +  rule mkDecls(.Params,.Vals) => {}
      +

      Location lookup.

      +
        syntax Exp ::= lookup(Int)  // see NOTES.md for why Exp instead of KItem
      +  rule <k> lookup(L) => V ...</k> <store>... L |-> V:Val ...</store>  [group(lookup)]
      +

      Environment recovery.

      +
      // TODO: same comment regarding setEnv(...) as for simple untyped
      +
      +  syntax KItem ::= setEnv(Map)
      +  rule <k> setEnv(Env) => . ...</k>  <env> _ => Env </env>
      +  rule (setEnv(_) => .) ~> setEnv(_)
      +

      lvalue and loc

      +
        syntax Exp ::= lvalue(K)
      +  syntax Val ::= loc(Int)
      +
      +  rule <k> lvalue(X:Id => loc(L)) ...</k>  <env>... X |-> L:Int ...</env>
      +
      +  //context lvalue(_[HOLE])
      +  //context lvalue(HOLE[_])
      +  context lvalue(_::Exp[HOLE::Exps])
      +  context lvalue(HOLE::Exp[_::Exps])
      +
      +  rule lvalue(lookup(L:Int) => loc(L))
      +

      Adds the corresponding depth to an array type

      +
        syntax Type ::= Type "<" Vals ">"  [function]
      +  rule T:Type<_,Vs:Vals> => T[]<Vs>
      +  rule T:Type<.Vals> => T
      +

      Sequences of locations.

      +
        syntax Map ::= Int "..." Int "|->" K
      +    [function, latex({#1}\ldots{#2}\mapsto{#3})]
      +  rule N...M |-> _ => .Map  when N >Int M
      +  rule N...M |-> K => N |-> K (N +Int 1)...M |-> K  when N <=Int M
      +
      +// Type of a value.
      +  syntax Type ::= typeOf(K)  [function]
      +  rule typeOf(_:Int) => int
      +  rule typeOf(_:Bool) => bool
      +  rule typeOf(_:String) => string
      +  rule typeOf(array(T,_,_)) => (T[])   // () needed! K parses [] as "no tags"
      +  rule typeOf(lambda(T,Ps,_)) => getTypes(Ps) -> T
      +  rule typeOf(undefined(T)) => T
      +  rule typeOf(nothing(T)) => T
      +

      List of types of a parameter.

      +
        syntax Types ::= getTypes(Params)  [function]
      +  rule getTypes(T:Type _:Id) => T, .Types   // I would like to not use .Types
      +  rule getTypes(T:Type _:Id, P, Ps) => T, getTypes(P,Ps)
      +  rule getTypes(.Params) => void, .Types
      +endmodule
      +

      KOOL — Untyped

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K semantic definition of the untyped KOOL language. KOOL
      +is aimed at being a pedagogical and research language that captures
      +the essence of the object-oriented programming paradigm. Its untyped
      +variant discussed here is simpler than the typed one, ignoring several
      +intricate aspects of types in the presence of objects. A program
      +consists of a set of class declarations. Each class can extend at
      +most one other class (KOOL is single-inheritance). A class can
      +declare a set of fields and a set of methods, all public and called
      +the class' members. Specifically, KOOL includes the
      +following features:

      +
        +
      • +

        Class declarations, where a class may or may not explicitly
        +extend another class. In case a class does not explicitly extend
        +another class, then it is assumed that it extends the default top-most
        +and empty (i.e., no members) class called Object. Each class
        +is required to declare precisely one homonymous method, called its
        +constructor. Each valid program should contain one class
        +named Main, whose constructor, Main(), takes no
        +arguments. The execution of a program consists of creating an object
        +instance of class Main and invoking the constructor
        +Main() on it, that is, of executing new Main();.

        +
      • +
      • +

        All features of SIMPLE (see examples/simple/untyped),
        +i.e., multidimensional arrays, function (here called "method")
        +abstractions with call-by-value parameter passing style and static
        +scoping, blocks with locals, input/output, parametric exceptions, and
        +concurrency via dynamic thread creation/termination and synchronization.
        +The only change in the syntax of SIMPLE when imported in KOOL is the
        +function declaration keyword, function, which is changed into
        +method. The exact same desugaring macros from SIMPLE are
        +also included in KOOL. We can think of KOOL's classes as embedding
        +SIMPLE programs (extended with OO constructs, as discussed next).

        +
      • +
      • +

        Object creation using the new C(e1,...,en)
        +expression construct. An object instance of class C is first
        +created and then the constructor C(e1,...,en) is implicitly
        +called on that object. KOOL only allows (and requires) one
        +constructor per class. The class constructor can be called either
        +implicitly during a new object creation for the class, or explicitly.
        +The superclass constructor is not implicitly invoked when a
        +class constructor is invoked; if you want to invoke the superclass
        +constructor from a subclass constructor then you have to do it
        +explicitly.

        +
      • +
      • +

        An expression construct this, which evaluates to the
        +current object.

        +
      • +
      • +

        An expression construct super, which is used (only) in
        +combination with member lookup (see next) to refer to a superclass
        +field or method.

        +
      • +
      • +

        A member lookup expression construct e.x, where e
        +is an expression (either an expression expected to evaluate to an object
        +or the super construct) and x is a class member name,
        +that is, a field or a method name.

        +
      • +
      • +

        Expression constructs e instanceOf C and
        +(C) e, where e is an expression expected
        +to evaluate to an object and C a class name. The former
        +tells whether the class of e is a subclass of C,
        +that is, whether e can be used as an instance of C,
        +and the latter changes the class of e to C. These
        +operations always succeed: the former returns a Boolean value, while
        +the latter changes the current class of e to C
        +regardless of whether it is safe to do so or not. The typed version
        +of KOOL will check the safety of casting by ensuring that the instance
        +class of the object is a subclass of C. In untyped KOOL we
        +do not want to perform this check because we want to allow the
        +programmer maximum of flexibility: if one always accesses only
        +available members, then the program can execute successfully despite
        +the potentially unsafe cast.

        +
      • +
      +

      There are some specific aspects of KOOL that need to be discussed.

      +

      First, KOOL is higher-order, allowing function abstractions to be
      +treated like any other values in the language. For example, if
      +m is a method of object e then e.m
      +evaluates to the corresponding function abstraction. The function
      +abstraction is in fact a closure, because in addition to the method
      +parameters and body it also encapsulates the object value (i.e., the
      +environment of the object together with its current class—see below)
      +that e evaluates to. This way, function abstractions can be
      +invoked anywhere and have the capability to change the state of their
      +object. For example, if m is a method of object e
      +which increments a field c of e when invoked, and if
      +getm is another method of e which simply returns
      +m when invoked, then the double application
      +(e.getm())() has the same effect as e.m(), that is,
      +increments the counter c of e. Note that the
      +higher-order nature of KOOL was not originally planned; it came as a
      +natural consequence of evaluating methods to closures and we decided
      +to keep it. If you do not like it then do not use it.

      +

      Second, since all the fields and methods are public in KOOL and since
      +they can be redeclared in subclasses, it is not immediately clear how
      +to lookup the member x when we write e.x and
      +e is different from super. We distinguish two cases,
      +depending on whether e.x occurs in a method invocation
      +context (i.e., e.x(...)) or in a field context. KOOL has
      +dynamic method dispatch, so if e.x is invoked as a method
      +then x will be searched for starting with the instance class of
      +the object value to which e evaluates. If e.x
      +occurs in a non-method-invocation context then x will be
      +treated as a field (although it may hold a method closure due to the
      +higher-order nature of KOOL) and thus will be searched starting with
      +the current class of the object value of e (which, because of
      +this and casting, may be different from its instance class).
      +In order to achieve the above, each object value will consist of a
      +pair holding the current class of the object and an environment stack
      +with one layer for each class in the object's instance class hierarchy.

      +

      Third, although KOOL is dynamic method dispatch, its capabilities
      +described above are powerful enough to allow us to mimic static
      +method dispatch. For example, suppose that you want to invoke method
      +m() statically. Then all you need to do is to declare a
      +local variable and bind it to m, for example var staticm = m;, and
      +then call staticm(). This works because
      +staticm is first bound to the method closure that m
      +evaluates to, and then looked up as any local variable when invoked.
      +We only enable the dynamic method dispatch when we have an object
      +member on an application position, e.g., m().

      +

      In what follows, we limit our comments to the new, KOOL-specific
      +aspects of the language. We refer the reader to the untyped SIMPLE
      +language for documentation on the the remaining features, because
      +those were all borrowed from SIMPLE.

      +
      module KOOL-UNTYPED-SYNTAX
      +  imports DOMAINS-SYNTAX
      +

      Syntax

      + +

      The syntax of KOOL extends that of SIMPLE with object-oriented
      +constructs. We removed from the K annotated syntax of SIMPLE two
      +constructs, namely the one for function declarations (because we want
      +to call them methods now) and the one for function application
      +(because application is not strict in the first argument
      +anymore—needs to initiate dynamic method dispatch). The additional
      +syntax includes:

      +
        +
      • First, we need a new dedicated identifier, Object, for
        +the default top-most class.
      • +
      • Second, we rename the function keyword of SIMPLE into method.
      • +
      • Third, we add syntax for class declarations together with a
        +macro making classes which extend nothing to extend Object.
      • +
      • Fourth, we change the strictness attribute of application
        +into strict(2).
      • +
      • Finally, we add syntax and corresponding strictness
        +for the KOOL object-oriented constructs.
      • +
      +
        syntax Id ::= "Object" [token] | "Main" [token]
      +
      +  syntax Stmt ::= "var" Exps ";"
      +                | "method" Id "(" Ids ")" Block  // called "function" in SIMPLE
      +                | "class" Id Block               // KOOL
      +                | "class" Id "extends" Id Block  // KOOL
      +
      +  syntax Exp ::= Int | Bool | String | Id
      +               | "this"                                 // KOOL
      +               | "super"                                // KOOL
      +               | "(" Exp ")"             [bracket]
      +               | "++" Exp
      +               | Exp "instanceOf" Id     [strict(1)]    // KOOL
      +               | "(" Id ")" Exp          [strict(2)]    // KOOL  cast
      +               | "new" Id "(" Exps ")"   [strict(2)]    // KOOL
      +               | Exp "." Id                             // KOOL
      +               > Exp "[" Exps "]"        [strict]
      +               > Exp "(" Exps ")"        [strict(2)]    // was strict in SIMPLE
      +               | "-" Exp                 [strict]
      +               | "sizeOf" "(" Exp ")"    [strict]
      +               | "read" "(" ")"
      +               > left:
      +                 Exp "*" Exp             [strict, left]
      +               | Exp "/" Exp             [strict, left]
      +               | Exp "%" Exp             [strict, left]
      +               > left:
      +                 Exp "+" Exp             [strict, left]
      +               | Exp "-" Exp             [strict, left]
      +               > non-assoc:
      +                 Exp "<" Exp             [strict, non-assoc]
      +               | Exp "<=" Exp            [strict, non-assoc]
      +               | Exp ">" Exp             [strict, non-assoc]
      +               | Exp ">=" Exp            [strict, non-assoc]
      +               | Exp "==" Exp            [strict, non-assoc]
      +               | Exp "!=" Exp            [strict, non-assoc]
      +               > "!" Exp                 [strict]
      +               > left:
      +                 Exp "&&" Exp            [strict(1), left]
      +               | Exp "||" Exp            [strict(1), left]
      +               > "spawn" Block
      +               > Exp "=" Exp             [strict(2), right]
      +
      +  syntax Ids  ::= List{Id,","}
      +
      +  syntax Exps ::= List{Exp,","}          [strict, klabel(exps)]
      +  syntax Val
      +  syntax Vals ::= List{Val,","}          [klabel(exps)]
      +
      +  syntax Block ::= "{" "}"
      +                | "{" Stmt "}"
      +
      +  syntax Stmt ::= Block
      +                | Exp ";"                               [strict]
      +                | "if" "(" Exp ")" Block "else" Block   [avoid, strict(1)]
      +                | "if" "(" Exp ")" Block                [macro]
      +                | "while" "(" Exp ")" Block
      +                | "for" "(" Stmt Exp ";" Exp ")" Block  [macro]
      +                | "return" Exp ";"                      [strict]
      +                | "return" ";"                          [macro]
      +                | "print" "(" Exps ")" ";"              [strict]
      +                | "try" Block "catch" "(" Id ")" Block
      +                | "throw" Exp ";"                       [strict]
      +                | "join" Exp ";"                        [strict]
      +                | "acquire" Exp ";"                     [strict]
      +                | "release" Exp ";"                     [strict]
      +                | "rendezvous" Exp ";"                  [strict]
      +
      +  syntax Stmt ::= Stmt Stmt                          [right]
      +

      Old desugaring rules, from SIMPLE

      +
        rule if (E) S => if (E) S else {}
      +  rule for(Start Cond; Step) {S} => {Start while (Cond) {S Step;}}
      +  rule var E1::Exp, E2::Exp, Es::Exps; => var E1; var E2, Es;       [anywhere]
      +  rule var X::Id = E; => var X; X = E;                              [anywhere]
      +

      New desugaring rule

      +
        rule class C:Id S => class C extends Object S                     // KOOL
      +
      +endmodule
      +

      Semantics

      + +

      We first discuss the new configuration of KOOL, which extends that of
      +SIMPLE. Then we include the semantics of the constructs borrowed from
      +SIMPLE unchanged; we refrain from discussing those, because they were
      +already discussed in the K definition of SIMPLE. Then we discuss
      +changes to SIMPLE's semantics needed for the more general meaning of
      +the previous SIMPLE constructs (for example for thread spawning,
      +assignment, etc.). Finally, we discuss in detail the
      +semantics of the additional KOOL constructs.

      +
      module KOOL-UNTYPED
      +  imports KOOL-UNTYPED-SYNTAX
      +  imports DOMAINS
      +

      Configuration

      + +

      KOOL removes one cell and adds two nested cells to the configuration
      +of SIMPLE. The cell which is removed is the one holding the global
      +environment, because a KOOL program consists of a set of classes only,
      +with no global declarations. In fact, since informally speaking each
      +KOOL class now includes a SIMPLE program, it is safe to say that the
      +global variables in SIMPLE became class fields in KOOL. Let us now
      +discuss the new cells that are added to the configuration of SIMPLE.

      +
        +
      • +

        The cell crntObj holds data pertaining to the current
        +object, that is, the object environment in which the code in cell
        +k executes: crntClass holds the current class (which
        +can change as methods of the current object are invoked);
        +envStack holds the stack of environments as a list,
        +each layer corresponding to one class in the objects' instance class
        +hierarchy; location, which is optional, holds the location in
        +the store where the current object is or has to be located (this is
        +useful both for method closures and for the semantics of object
        +creation).

        +
      • +
      • +

        The cell classes holds all the declared classes, each
        +class being held in its own class cell which contains a name
        +(className), a parent (extends), and the actual
        +member declarations (declarations).

        +
      • +
      +
        // the syntax declarations below are required because the sorts are
      +  // referenced directly by a production and, because of the way KIL to KORE
      +  // is implemented, the configuration syntax is not available yet
      +  // should simply work once KIL is removed completely
      +  // check other definitions for this hack as well
      +  syntax EnvCell
      +  syntax ControlCell
      +  syntax EnvStackCell
      +  syntax CrntObjCellFragment
      +
      +  configuration <T color="red">
      +                  <threads color="orange">
      +                    <thread multiplicity="*" type="Set" color="yellow">
      +                      <k color="green"> $PGM:Stmt ~> execute </k>
      +                    //<br/> // TODO(KORE): support latex annotations #1799
      +                      <control color="cyan">
      +                        <fstack color="blue"> .List </fstack>
      +                        <xstack color="purple"> .List </xstack>
      +                      //<br/> // TODO(KORE): support latex annotations #1799
      +                        <crntObj color="Fuchsia">  // KOOL
      +                           <crntClass> Object </crntClass>
      +                           <envStack> .List </envStack>
      +                           <location multiplicity="?"> .K </location>
      +                        </crntObj>
      +                      </control>
      +                    //<br/> // TODO(KORE): support latex annotations #1799
      +                      <env color="violet"> .Map </env>
      +                      <holds color="black"> .Map </holds>
      +                      <id color="pink"> 0 </id>
      +                    </thread>
      +                  </threads>
      +                //<br/> // TODO(KORE): support latex annotations #1799
      +                  <store color="white"> .Map </store>
      +                  <busy color="cyan">.Set </busy>
      +                  <terminated color="red"> .Set </terminated>
      +                  <input color="magenta" stream="stdin"> .List </input>
      +                  <output color="brown" stream="stdout"> .List </output>
      +                  <nextLoc color="gray"> 0 </nextLoc>
      +                //<br/> // TODO(KORE): support latex annotations #1799
      +                  <classes color="Fuchsia">        // KOOL
      +                     <classData multiplicity="*" type="Map" color="Fuchsia">
      +                        // the Map has as its key the first child of the cell,
      +                        // in this case the className cell.
      +                        <className color="Fuchsia"> Main </className>
      +                        <baseClass color="Fuchsia"> Object </baseClass>
      +                        <declarations color="Fuchsia"> .K </declarations>
      +                     </classData>
      +                  </classes>
      +                </T>
      +

      Unchanged Semantics from untyped SIMPLE

      + +

      The semantics below is taken over from SIMPLE unchanged.
      +The semantics of function declaration and invocation, including the
      +use of the special lambda abstraction value, needs to change
      +in order to account for the fact that methods are now invoked into
      +their object's environment. The semantics of function return actually
      +stays unchanged. Also, the semantics of program initialization is
      +different: now we have to create an instance of the Main
      +class which also calls the constructor Main(), while in
      +SIMPLE we only had to invoke the function Main().
      +Finally, the semantics of thread spawning needs to change, too: the
      +parent thread needs to also share its object environment with the
      +spawned thread (in addition to its local environment, like in SIMPLE).
      +This is needed in order to be able to spawn method invokations under
      +dynamic method dispatch; for example, spawn { run(); }
      +will need to look up the method run() in the newly created
      +thread, operation which will most likely fail unless the child thread
      +sees the object environment of the parent thread. Note that the
      +spawn statement of KOOL is more permissive than the threads
      +of Java. In fact, the latter can be implemented in terms of our
      +spawn—see the program threads.kool for a sketch.

      +

      Below is a subset of the values of SIMPLE, which are also values
      +of KOOL. We will add other values later in the semantics, such as
      +object and method closures.

      +
        syntax Val ::= Int | Bool | String
      +               | array(Int,Int)
      +  syntax Exp ::= Val
      +  syntax Exps ::= Vals
      +  syntax KResult ::= Val
      +  syntax KResult ::= Vals
      +

      The semantics below are taken verbatim from the untyped SIMPLE
      +definition.

      +
        syntax KItem ::= "undefined"  [latex(\bot)]
      +
      +  rule <k> var X:Id; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> undefined ...</store>
      +       <nextLoc> L:Int => L +Int 1 </nextLoc>
      +
      +
      +  context var _:Id[HOLE];
      +
      +  rule <k> var X:Id[N:Int]; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> array(L +Int 1, N)
      +                          (L +Int 1) ... (L +Int N) |-> undefined ...</store>
      +       <nextLoc> L:Int => L +Int 1 +Int N </nextLoc>
      +    when N >=Int 0
      +
      +
      +  syntax Id ::= "$1" [token] | "$2" [token]
      +  rule var X:Id[N1:Int, N2:Int, Vs:Vals];
      +    => var X[N1];
      +       {
      +         var $1=X;
      +         for(var $2=0; $2 <= N1 - 1; ++$2) {
      +           var X[N2,Vs];
      +           $1[$2] = X;
      +         }
      +       }
      +
      +
      +  rule <k> X:Id => V ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... L |-> V:Val ...</store>  [group(lookup)]
      +
      +
      +  context ++(HOLE => lvalue(HOLE))
      +  rule <k> ++loc(L) => I +Int 1 ...</k>
      +       <store>... L |-> (I:Int => I +Int 1) ...</store>  [group(increment)]
      +
      +
      +  rule I1 + I2 => I1 +Int I2
      +  rule Str1 + Str2 => Str1 +String Str2
      +  rule I1 - I2 => I1 -Int I2
      +  rule I1 * I2 => I1 *Int I2
      +  rule I1 / I2 => I1 /Int I2 when I2 =/=K 0
      +  rule I1 % I2 => I1 %Int I2 when I2 =/=K 0
      +  rule - I => 0 -Int I
      +  rule I1 < I2 => I1 <Int I2
      +  rule I1 <= I2 => I1 <=Int I2
      +  rule I1 > I2 => I1 >Int I2
      +  rule I1 >= I2 => I1 >=Int I2
      +
      +  rule V1:Val == V2:Val => V1 ==K V2
      +  rule V1:Val != V2:Val => V1 =/=K V2
      +  rule ! T => notBool(T)
      +  rule true  && E => E
      +  rule false && _ => false
      +  rule true  || _ => true
      +  rule false || E => E
      +
      +
      +  rule V:Val[N1:Int, N2:Int, Vs:Vals] => V[N1][N2, Vs]
      +    [anywhere]
      +
      +  rule array(L,_)[N:Int] => lookup(L +Int N)
      +    [anywhere]
      +
      +
      +  rule sizeOf(array(_,N)) => N
      +

      The semantics of function application needs to change into dynamic
      +method dispatch invocation, which is defined shortly. However,
      +interestingly, the semantics of return stays unchanged.

      +
        rule <k> return(V:Val); ~> _ => V ~> K </k>
      +       <control>
      +         <fstack> ListItem(fstackFrame(Env,K,XS,<crntObj> CO </crntObj>)) => .List ...</fstack>
      +         <xstack> _ => XS </xstack>
      +         <crntObj> _ => CO </crntObj>
      +       </control>
      +       <env> _ => Env </env>
      +
      +  syntax Val ::= "nothing"
      +  rule return; => return nothing;
      +
      +
      +  rule <k> read() => I ...</k> <input> ListItem(I:Int) => .List ...</input>  [group(read)]
      +
      +
      +  context (HOLE => lvalue(HOLE)) = _
      +
      +  rule <k> loc(L) = V:Val => V ...</k> <store>... L |-> (_ => V) ...</store>
      +    [group(assignment)]
      +
      +
      +  rule {} => .
      +  rule <k> { S } => S ~> setEnv(Env) ...</k>  <env> Env </env>
      +
      +
      +  rule S1::Stmt S2::Stmt => S1 ~> S2
      +
      +  rule _:Val; => .
      +
      +  rule if ( true) S else _ => S
      +  rule if (false) _ else S => S
      +
      +  rule while (E) S => if (E) {S while(E)S}
      +
      +  rule <k> print(V:Val, Es => Es); ...</k> <output>... .List => ListItem(V) </output>
      +    [group(print)]
      +  rule print(.Vals); => .
      +
      +
      +  syntax KItem ::= xstackFrame(Id,Stmt,K,Map,K)
      +  // TODO(KORE): drop the additional production once parsing issue #1842 is fixed
      +                 | (Id,Stmt,K,Map,K)
      +
      +  syntax KItem ::= "popx"
      +
      +  rule <k> (try S1 catch(X) {S2} => S1 ~> popx) ~> K </k>
      +       <control>
      +         <xstack> .List => ListItem(xstackFrame(X, S2, K, Env, C)) ...</xstack>
      +         C
      +       </control>
      +       <env> Env </env>
      +
      +  rule <k> popx => . ...</k>
      +       <xstack> ListItem(_) => .List ...</xstack>
      +
      +  rule <k> throw V:Val; ~> _ => { var X = V; S2 } ~> K </k>
      +       <control>
      +         <xstack> ListItem(xstackFrame(X, S2, K, Env, C)) => .List ...</xstack>
      +         (_ => C)
      +       </control>
      +       <env> _ => Env </env>
      +

      Thread spawning needs a new semantics, because we want the child
      +thread to also share the object environment with its parent. The new
      +semantics of thread spawning will be defined shortly. However,
      +interestingly, the other concurrency constructs keep their semantics
      +from SIMPLE unchanged.

      +
        // TODO(KORE): ..Bag should be . throughout this definition #1772
      +  rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .Bag)
      +  /*
      +  rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .)
      +  */
      +       <busy> Busy => Busy -Set keys(H) </busy>
      +       <terminated>... .Set => SetItem(T) ...</terminated>
      +
      +  rule <k> join T:Int; => . ...</k>
      +       <terminated>... SetItem(T) ...</terminated>
      +
      +  rule <k> acquire V:Val; => . ...</k>
      +       <holds>... .Map => V |-> 0 ...</holds>
      +       <busy> Busy (.Set => SetItem(V)) </busy>
      +    when (notBool(V in Busy:Set))  [group(acquire)]
      +
      +  rule <k> acquire V; => . ...</k>
      +       <holds>... V:Val |-> (N:Int => N +Int 1) ...</holds>
      +
      +  rule <k> release V:Val; => . ...</k>
      +       <holds>... V |-> (N => N:Int -Int 1) ...</holds>
      +    when N >Int 0
      +
      +  rule <k> release V; => . ...</k> <holds>... V:Val |-> 0 => .Map ...</holds>
      +       <busy>... SetItem(V) => .Set ...</busy>
      +
      +  rule <k> rendezvous V:Val; => . ...</k>
      +       <k> rendezvous V; => . ...</k>  [group(rendezvous)]
      +

      Unchanged auxiliary operations from untyped SIMPLE

      + +
        syntax Stmt ::= mkDecls(Ids,Vals)  [function]
      +  rule mkDecls((X:Id, Xs:Ids), (V:Val, Vs:Vals)) => var X=V; mkDecls(Xs,Vs)
      +  rule mkDecls(.Ids,.Vals) => {}
      +
      +  // TODO(KORE): clarify sort inferences #1803
      +  syntax Exp ::= lookup(Int)
      +  /*
      +  syntax KItem ::= lookup(Int)
      +  */
      +  rule <k> lookup(L) => V ...</k> <store>... L |-> V:Val ...</store>  [group(lookup)]
      +
      +  syntax KItem ::= setEnv(Map)
      +  rule <k> setEnv(Env) => . ...</k>  <env> _ => Env </env>
      +  rule (setEnv(_) => .) ~> setEnv(_)
      +  // TODO: How can we make sure that the second rule above applies before the first one?
      +  //       Probably we'll deal with this using strategies, eventually.
      +
      +  syntax Exp ::= lvalue(K)
      +  syntax Val ::= loc(Int)
      +
      +  rule <k> lvalue(X:Id => loc(L)) ...</k> <env>... X |-> L:Int ...</env>
      +
      +  context lvalue(_::Exp[HOLE::Exps])
      +  context lvalue(HOLE::Exp[_::Exps])
      +
      +  rule lvalue(lookup(L:Int) => loc(L))
      +
      +
      +  syntax Map ::= Int "..." Int "|->" K
      +    [function, latex({#1}\ldots{#2}\mapsto{#3})]
      +  rule N...M |-> _ => .Map  when N >Int M
      +  rule N...M |-> K => N |-> K (N +Int 1)...M |-> K  when N <=Int M
      +

      Changes to the existing untyped SIMPLE semantics

      + +

      When we extend a language, sometimes we need to do more than just add
      +new language constructs and semantics for them. Sometimes we want to
      +also extend the semantics of existing language constructs, in order to
      +get more from them.

      +

      Program initialization

      + +

      In SIMPLE, once all the global declarations were processed, the
      +function main() was invoked. In KOOL, the global
      +declarations are classes, and their specific semantics is given
      +shortly; essentially, they are pre-processed one by one and added
      +into the class cell structure in the configuration.
      +Once all the classes are processed, the computation item
      +execute, which was placed right after the program in the
      +initial configuration, is reached. In SIMPLE, the program was
      +initialized by calling the method main(). In KOOL, the
      +program is initialized by creating an object instance of class
      +Main. This will also implicitly call the method
      +Main() (the Main class constructor). The emptiness
      +of the env cell below is just a sanity check, to make sure
      +that the user has not declared anything but classes at the top level
      +of the program.

      +
        syntax KItem ::= "execute"
      +  rule <k> execute => new Main(.Exps); </k> <env> .Map </env>
      +

      The semantics of new (defined below) requires the
      +execution of all the class' declarations (and also of its
      +superclasses').

      +

      Object and method closures

      + +

      Before we can define the semantics of method application (previously
      +called function application in SIMPLE), we need to add two more values
      +to the language, namely object and method closures:

      +
        syntax Val ::= objectClosure(Id, List)
      +               | methodClosure(Id,Int,Ids,Stmt)
      +

      An object value consists of an objectClosure-wrapped bag
      +containing the current class of the object and the environment stack
      +of the object. The current class of an object will always be one of
      +the classes mapped to an environment in the environment stack of the
      +object. A method closure encapsulates the method's parameters and
      +code (last two arguments), as well as the object context in which the
      +method code should execute. This object context includes the current
      +class of the object (the first argument of methodClosure) and
      +the object environment stack (located in the object stored at the
      +location specified as the second argument of methodClosure).

      +

      Method application

      + +

      KOOL has a complex mechanism to invoke methods, because it allows both
      +dynamic method dispatch and methods as first-class-citizen values (the
      +latter making it a higher-order language). The invocation mechanism
      +will be defined later. What is sufficient to know for now is that
      +the two arguments of the application construct eventually reduce to
      +values, the first being a method closure and the latter a list of
      +values. The semantics of the method closure application is then as
      +expected: the local environment and control are stacked, then we
      +switch to method closure's class and object environment and execute
      +the method body. The mkDecls construct is the one that came
      +with the unchanged semantics of SIMPLE above.

      +
        syntax KItem ::= fstackFrame(Map,K,List,K)
      +  // TODO(KORE): drop the additional production once parsing issue #1842 is fixed
      +                 | (Map,K,K)
      +
      +  rule <k> methodClosure(Class,OL,Xs,S)(Vs:Vals) ~> K
      +           => mkDecls(Xs,Vs) S return; </k>
      +       <env> Env => .Map </env>
      +       <store>... OL |-> objectClosure(_, EnvStack)...</store>
      +     //<br/> // TODO(KORE): support latex annotations #1799
      +       <control>
      +          <xstack> XS </xstack>
      +          <fstack> .List => ListItem(fstackFrame(Env, K, XS, <crntObj> Obj' </crntObj>))
      +          ...</fstack>
      +          <crntObj> Obj' => <crntClass> Class </crntClass> <envStack> EnvStack </envStack> </crntObj>
      +       </control>
      +

      Spawn

      + +

      We want to extend the semantics of spawn to also share the
      +current object environment with the child thread, in addition to the
      +current environment. This extension will allow us to also use method
      +invocations in the spawned statements, which will be thus looked up as
      +expected, using dynamic method dispatch. This lookup operation would
      +fail if the child thread did not have access to its parent's object
      +environment.

      +
        rule <thread>...
      +         <k> spawn S => !T:Int ...</k>
      +         <env> Env </env>
      +         <crntObj> Obj </crntObj>
      +       ...</thread>
      +       (.Bag => <thread>...
      +               <k> S </k>
      +               <env> Env </env>
      +               <id> !T </id>
      +               <crntObj> Obj </crntObj>
      +             ...</thread>)
      +

      Semantics of the new KOOL constructs

      + +

      Class declaration

      + +

      Initially, the classes forming the program are moved into their
      +corresponding cells:

      +
        rule <k> class Class1 extends Class2 { S } => . ...</k>
      +       <classes>... (.Bag => <classData>
      +                            <className> Class1 </className>
      +                            <baseClass> Class2 </baseClass>
      +                            <declarations> S </declarations>
      +                        </classData>)
      +       ...</classes>
      +

      Method declaration

      + +

      Like in SIMPLE, method names are added to the environment and bound
      +to their code. However, unlike in SIMPLE where each function was
      +executed in the same environment, namely the program global
      +environment, a method in KOOL needs to be executed into its object's
      +environment. Thus, methods evaluate to closures, which encapsulate
      +their object's context (i.e., the current class and environment stack
      +of the object) in addition to method's parameters and body. This
      +approach to bind method names to method closures in the environment
      +will also allow objects to pass their methods to other objects, to
      +dynamically change their methods by assigning them other method
      +closures, and even to allow all these to be done from other objects.
      +This gives the KOOL programmer a lot of power; one should use this
      +power wisely, though, because programs can become easily hard to
      +understand and reason about if one overuses these features.

      +
        rule <k> method F:Id(Xs:Ids) S => . ...</k>
      +       <crntClass> Class:Id </crntClass>
      +       <location> OL:Int </location>
      +       <env> Env => Env[F <- L] </env>
      +       <store>... .Map => L |-> methodClosure(Class,OL,Xs,S) ...</store>
      +       <nextLoc> L => L +Int 1 </nextLoc>
      +

      New

      + +

      The semantics of new consists of two actions: memory
      +allocation for the new object and execution of the corresponding
      +constructor. Then the created object is returned as the result of the
      +new operation; the value returned by the constructor, if any,
      +is discarded. The current environment and object are stored onto the
      +stack and recovered after new (according to the semantics of
      +return borrowed from SIMPLE, when the statement
      +return this; in the rule below is reached and evaluated),
      +because the object creation part of new will destroy them.
      +The rule below also initializes the object creation process by
      +emptying the local environment and the current object, and allocating
      +a location in the store where the created object will be eventually
      +stored (this is what the storeObj task after the object
      +creation task in the rule below will do—its rule is defined
      +shortly). The location where the object will be stored is also made
      +available in the crntObj cell, so that method closures can
      +refer to it (see rule above).

      +
        syntax KItem ::= "envStackFrame" "(" Id "," Map ")"
      +
      +  rule <k> new Class:Id(Vs:Vals) ~> K
      +           => create(Class) ~> storeObj ~> Class(Vs); return this; </k>
      +       <env> Env => .Map </env>
      +       <nextLoc> L:Int => L +Int 1 </nextLoc>
      +     //<br/> // TODO(KORE): support latex annotations #1799
      +       <control> <xstack> XS </xstack>
      +         <crntObj> Obj
      +                   => <crntClass> Object </crntClass>
      +                      <envStack> ListItem(envStackFrame(Object, .Map)) </envStack>
      +                      <location> L </location>
      +         </crntObj>
      +         <fstack> .List => ListItem(fstackFrame(Env, K, XS, <crntObj> Obj </crntObj>)) ...</fstack>
      +       </control>
      +

      The creation of a new object (the memory allocation part only) is
      +a recursive process, requiring to first create an object for the
      +superclass. A memory object representation is a layered structure:
      +for each class on the path from the instance class to the root of the
      +hierarchy there is a layer including the memory allocated for the
      +members (both fields and methods) of that class.

      +
        syntax KItem ::= create(Id)
      +
      +  rule <k> create(Class:Id)
      +           => create(Class1) ~> setCrntClass(Class) ~> S ~> addEnvLayer ...</k>
      +       <className> Class </className>
      +       <baseClass> Class1:Id </baseClass>
      +       <declarations> S </declarations>
      +
      +  rule <k> create(Object) => . ...</k>
      +

      The next operation sets the current class of the current object.
      +This is necessary to be done at each layer, because the current class
      +of the object is enclosed as part of the method closures (see the
      +semantics of method declarations above).

      +
        syntax KItem ::= setCrntClass(Id)
      +
      +  rule <k> setCrntClass(C) => . ...</k>
      +       <crntClass> _ => C </crntClass>
      +

      The next operation adds a new tagged environment layer to the
      +current object and gets ready for the next layer by clearing the
      +environment (note that create expects the environment to be
      +empty).

      +
        syntax KItem ::= "addEnvLayer"
      +
      +  rule <k> addEnvLayer => . ...</k>
      +       <env> Env => .Map </env>
      +       <crntClass> Class:Id </crntClass>
      +       <envStack> .List => ListItem(envStackFrame(Class, Env)) ...</envStack>
      +

      The following operation stores the created object at the location
      +reserved by new. Note that the location reserved by
      +new was temporarily stored in the crntObj cell
      +precisely for this purpose. Now that the newly created object is
      +stored at its location and that all method closures are aware of it,
      +the location is unnecessary and thus we delete it from the
      +crntObj cell.

      +
        syntax KItem ::= "storeObj"
      +
      +  rule <k> storeObj => . ...</k>
      +       <crntObj> <crntClass> CC </crntClass> <envStack> ES </envStack> (<location> L:Int </location> => .Bag) </crntObj>
      +       <store>... .Map => L |-> objectClosure(CC, ES) ...</store>
      +

      Self reference

      + +

      The semantics of this is straightforward: evaluate to the
      +current object.

      +
        rule <k> this => objectClosure(CC, ES) ...</k>
      +       <crntObj> <crntClass> CC </crntClass> <envStack> ES </envStack> </crntObj>
      +

      Object member access

      + +

      We can access an object member (field or method) either explicitly,
      +using the construct e.x, or implicitly, using only the member
      +name x directly. The borrowed semantics of SIMPLE will
      +already lookup a sole name in the local environment. The first rule
      +below reduces implicit member access to explicit access when the name
      +cannot be found in the local environment. There are two cases to
      +analyze for explicit object member access, depending upon whether the
      +object is a proper object or it is just a redirection to the parent
      +class via the construct super. In the first case, we
      +evaluate the object expression and lookup the member starting with the
      +current class (static scoping). Note the use of the conditional
      +evaluation context. In the second case, we just lookup the member
      +starting with the superclass of the current class. In both cases,
      +the lookupMember task eventually yields a lookup(L)
      +task for some appropriate location L, which will be further
      +solved with the corresponding rule borrowed from SIMPLE. Note that the
      +current object is not altered by super, so future method
      +invocations see the entire object, as needed for dynamic method dispatch.

      +
        rule <k> X:Id => this . X ...</k> <env> Env:Map </env>
      +    when notBool(X in keys(Env))
      +
      +  context HOLE._::Id when (HOLE =/=K super)
      +
      +// TODO: explain how Assoc matching has been replaced with two rules here.
      +// Maybe also improve it a bit.
      +
      +/*  rule objectClosure(<crntClass> Class:Id </crntClass>
      +                     <envStack>... envStackFrame(Class,EnvC) EStack </envStack>)
      +       . X:Id
      +    => lookupMember(envStackFrame(Class,EnvC) EStack, X) */
      +
      +  rule objectClosure(Class:Id, ListItem(envStackFrame(Class,Env)) EStack)
      +       . X:Id
      +    => lookupMember(ListItem(envStackFrame(Class,Env)) EStack, X)
      +  rule objectClosure(Class:Id, (ListItem(envStackFrame(Class':Id,_)) => .List) _)
      +       . _X:Id
      +    when Class =/=K Class'
      +
      +/*  rule <k> super . X => lookupMember(EStack, X) ...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack>... envStackFrame(Class,EnvC) EStack </envStack> */
      +  rule <k> super . X => lookupMember(EStack, X) ...</k>
      +       <crntClass> Class:Id </crntClass>
      +       <envStack> ListItem(envStackFrame(Class,_)) EStack </envStack>
      +  rule <k> super . _X ...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack> ListItem(envStackFrame(Class':Id,_)) => .List ...</envStack>
      +    when Class =/=K Class'
      +

      Method invocation

      + +

      Unlike in SIMPLE, in KOOL application was declared strict only in its
      +second argument. That is because we want to ensure dynamic method
      +dispatch when the first argument is a method access. As a
      +consequence, we need to consider all the cases of interest for the
      +first argument and to explicitly say what to do in each case. In all
      +cases except for method access in a proper object (i.e., not
      +super), we want the same behavior for the first argument as
      +if it was not in a method invocation position. When it is a member
      +access (the third rule below), we look it up starting with the
      +instance class of the corresponding object. This ensures dynamic
      +dispatch for methods; it actually dynamically dispatches field
      +accesses, too, which is correct in KOOL, because one can assign method
      +closures to fields and the field appeared in a method invocation
      +context. The last context declaration below says that method
      +applications or array accesses are also allowed as first argument to
      +applications; that is because methods are allowed to return methods
      +and arrays are allowed to hold methods in KOOL, since it is
      +higher-order. If that is the case, then we want to evaluate the
      +method call or the array access.

      +
        rule <k> (X:Id => V)(_:Exps) ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... L |-> V:Val ...</store>  [group(lookup)]
      +
      +  rule <k> (X:Id => this . X)(_:Exps) ...</k>
      +       <env> Env </env>
      +    when notBool(X in keys(Env))
      +
      +  context HOLE._::Id(_) when HOLE =/=K super
      +
      +  rule (objectClosure(_, EStack) . X
      +    => lookupMember(EStack, X:Id))(_:Exps)
      +
      +/*  rule <k> (super . X
      +            => lookupMember(EStack,X))(_:Exps)...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack>... envStackFrame(Class,_) EStack </envStack> */
      +  rule <k> (super . X
      +            => lookupMember(EStack,X))(_:Exps)...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack> ListItem(envStackFrame(Class,_)) EStack </envStack>
      +  rule <k> (super . _X)(_:Exps) ...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack> ListItem(envStackFrame(Class':Id,_)) => .List ...</envStack>
      +    when Class =/=K Class'
      +
      +  // TODO(KORE): fix getKLabel #1801
      +  rule (A:Exp(B:Exps))(C:Exps) => A(B) ~> #freezerFunCall(C)
      +  rule (A:Exp[B:Exps])(C:Exps) => A[B] ~> #freezerFunCall(C)
      +  rule V:Val ~> #freezerFunCall(C:Exps) => V(C)
      +  syntax KItem ::= "#freezerFunCall" "(" K ")"
      +  /*
      +  context HOLE(_:Exps)
      +    when getKLabel(HOLE) ==K #klabel(`_(_)`) orBool getKLabel(HOLE) ==K #klabel(`_[_]`)
      +  */
      +

      Eventually, each of the rules above produces a lookup(L)
      +task as a replacement for the method. When that happens, we just
      +lookup the value at location L:

      +
        rule <k> (lookup(L) => V)(_:Exps) ...</k>  <store>... L |-> V:Val ...</store>
      +    [group(lookup)]
      +

      The value V looked up above is expected to be a method closure,
      +in which case the semantics of method application given above will
      +apply. Otherwise, the execution will get stuck.

      +

      Instance Of

      + +

      It searches the object environment for a layer corresponding to the
      +desired class. It returns true iff it can find the class,
      +otherwise it returns false; it only gets stuck when its first
      +argument does not evaluate to an object.

      +
        rule objectClosure(_, ListItem(envStackFrame(C,_)) _)
      +       instanceOf C => true
      +
      +  rule objectClosure(_, (ListItem(envStackFrame(C,_)) => .List) _)
      +       instanceOf C'  when C =/=K C'
      +//TODO: remove the sort cast ::Id of C above, when sort inference bug fixed
      +
      +  rule objectClosure(_, .List) instanceOf _ => false
      +

      Cast

      + +

      In untyped KOOL, we prefer to not check the validity of casting. In
      +other words, any cast is allowed on any object, simply changing the
      +current class of the object to the desired class. The execution will
      +get stuck later if one attempts to access a field which is not
      +available. Moreover, the execution may complete successfully even
      +in the presence of invalid casts, provided that each accessed member
      +during the current execution is, or happens to be, available.

      +
        rule (C) objectClosure(_ , EnvStack) => objectClosure(C ,EnvStack)
      +

      KOOL-specific auxiliary declarations and operations

      + +

      Here we define all the auxiliary constructs used in the above
      +KOOL-specific semantics (those used in the SIMPLE fragment
      +have already been defined in a corresponding section above).

      +

      Objects as lvalues

      + +

      The current machinery borrowed with the semantics of SIMPLE allows us
      +to enrich the set of lvalues, this way allowing new means to assign
      +values to locations. In KOOL, we want object member names to be
      +lvalues, so that we can assign values to them using the already
      +existing machinery. The first rule below ensures that the object is
      +always explicit, the evaluation context enforces the object to be
      +evaluated, and finally the second rule initiates the lookup for the
      +member's location based on the current class of the object.

      +
        rule <k> lvalue(X:Id => this . X) ...</k>  <env> Env </env>
      +    when notBool(X in keys(Env))
      +
      +  context lvalue((HOLE . _)::Exp)
      +
      +/*  rule lvalue(objectClosure(<crntClass> C </crntClass>
      +                            <envStack>... envStackFrame(C,EnvC) EStack </envStack>)
      +              . X
      +              => lookupMember(<envStack> envStackFrame(C,EnvC) EStack </envStack>,
      +                              X))  */
      +  rule lvalue(objectClosure(Class, ListItem(envStackFrame(Class,Env)) EStack)
      +              . X
      +              => lookupMember(ListItem(envStackFrame(Class,Env)) EStack,
      +                              X))
      +  rule lvalue(objectClosure(Class, (ListItem(envStackFrame(Class':Id,_)) => .List) _)
      +              . _X)
      +    when Class =/=K Class'
      +

      Lookup member

      + +

      It searches for the given member in the given environment stack,
      +starting with the most concrete class and going up in the hierarchy.

      +
        // TODO(KORE): clarify sort inferences #1803
      +  syntax Exp ::= lookupMember(List, Id)  [function]
      +  /*
      +  syntax KItem ::= lookupMember(EnvStackCell,Id)  [function]
      +  */
      +
      +//  rule lookupMember(<envStack> envStackFrame(_, <env>... X|->L ...</env>) ...</envStack>, X)
      +//    => lookup(L)
      +  rule lookupMember(ListItem(envStackFrame(_, X|->L _)) _, X)
      +    => lookup(L)
      +
      +//  rule lookupMember(<envStack> envStackFrame(_, <env> Env </env>) => .List ...</envStack>, X)
      +//    when notBool(X in keys(Env))
      +  rule lookupMember(ListItem(envStackFrame(_, Env)) Rest, X) =>
      +       lookupMember(Rest, X)
      +    when notBool(X in keys(Env))
      +//TODO: beautify the above
      +
      +endmodule
      +

      Go to Lesson 2, KOOL typed dynamic.

      +

      KOOL — Untyped

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K semantic definition of the untyped KOOL language. KOOL
      +is aimed at being a pedagogical and research language that captures
      +the essence of the object-oriented programming paradigm. Its untyped
      +variant discussed here is simpler than the typed one, ignoring several
      +intricate aspects of types in the presence of objects. A program
      +consists of a set of class declarations. Each class can extend at
      +most one other class (KOOL is single-inheritance). A class can
      +declare a set of fields and a set of methods, all public and called
      +the class' members. Specifically, KOOL includes the
      +following features:

      +
        +
      • +

        Class declarations, where a class may or may not explicitly
        +extend another class. In case a class does not explicitly extend
        +another class, then it is assumed that it extends the default top-most
        +and empty (i.e., no members) class called Object. Each class
        +is required to declare precisely one homonymous method, called its
        +constructor. Each valid program should contain one class
        +named Main, whose constructor, Main(), takes no
        +arguments. The execution of a program consists of creating an object
        +instance of class Main and invoking the constructor
        +Main() on it, that is, of executing new Main();.

        +
      • +
      • +

        All features of SIMPLE (see examples/simple/untyped),
        +i.e., multidimensional arrays, function (here called "method")
        +abstractions with call-by-value parameter passing style and static
        +scoping, blocks with locals, input/output, parametric exceptions, and
        +concurrency via dynamic thread creation/termination and synchronization.
        +The only change in the syntax of SIMPLE when imported in KOOL is the
        +function declaration keyword, function, which is changed into
        +method. The exact same desugaring macros from SIMPLE are
        +also included in KOOL. We can think of KOOL's classes as embedding
        +SIMPLE programs (extended with OO constructs, as discussed next).

        +
      • +
      • +

        Object creation using the new C(e1,...,en)
        +expression construct. An object instance of class C is first
        +created and then the constructor C(e1,...,en) is implicitly
        +called on that object. KOOL only allows (and requires) one
        +constructor per class. The class constructor can be called either
        +implicitly during a new object creation for the class, or explicitly.
        +The superclass constructor is not implicitly invoked when a
        +class constructor is invoked; if you want to invoke the superclass
        +constructor from a subclass constructor then you have to do it
        +explicitly.

        +
      • +
      • +

        An expression construct this, which evaluates to the
        +current object.

        +
      • +
      • +

        An expression construct super, which is used (only) in
        +combination with member lookup (see next) to refer to a superclass
        +field or method.

        +
      • +
      • +

        A member lookup expression construct e.x, where e
        +is an expression (either an expression expected to evaluate to an object
        +or the super construct) and x is a class member name,
        +that is, a field or a method name.

        +
      • +
      • +

        Expression constructs e instanceOf C and
        +(C) e, where e is an expression expected
        +to evaluate to an object and C a class name. The former
        +tells whether the class of e is a subclass of C,
        +that is, whether e can be used as an instance of C,
        +and the latter changes the class of e to C. These
        +operations always succeed: the former returns a Boolean value, while
        +the latter changes the current class of e to C
        +regardless of whether it is safe to do so or not. The typed version
        +of KOOL will check the safety of casting by ensuring that the instance
        +class of the object is a subclass of C. In untyped KOOL we
        +do not want to perform this check because we want to allow the
        +programmer maximum of flexibility: if one always accesses only
        +available members, then the program can execute successfully despite
        +the potentially unsafe cast.

        +
      • +
      +

      There are some specific aspects of KOOL that need to be discussed.

      +

      First, KOOL is higher-order, allowing function abstractions to be
      +treated like any other values in the language. For example, if
      +m is a method of object e then e.m
      +evaluates to the corresponding function abstraction. The function
      +abstraction is in fact a closure, because in addition to the method
      +parameters and body it also encapsulates the object value (i.e., the
      +environment of the object together with its current class—see below)
      +that e evaluates to. This way, function abstractions can be
      +invoked anywhere and have the capability to change the state of their
      +object. For example, if m is a method of object e
      +which increments a field c of e when invoked, and if
      +getm is another method of e which simply returns
      +m when invoked, then the double application
      +(e.getm())() has the same effect as e.m(), that is,
      +increments the counter c of e. Note that the
      +higher-order nature of KOOL was not originally planned; it came as a
      +natural consequence of evaluating methods to closures and we decided
      +to keep it. If you do not like it then do not use it.

      +

      Second, since all the fields and methods are public in KOOL and since
      +they can be redeclared in subclasses, it is not immediately clear how
      +to lookup the member x when we write e.x and
      +e is different from super. We distinguish two cases,
      +depending on whether e.x occurs in a method invocation
      +context (i.e., e.x(...)) or in a field context. KOOL has
      +dynamic method dispatch, so if e.x is invoked as a method
      +then x will be searched for starting with the instance class of
      +the object value to which e evaluates. If e.x
      +occurs in a non-method-invocation context then x will be
      +treated as a field (although it may hold a method closure due to the
      +higher-order nature of KOOL) and thus will be searched starting with
      +the current class of the object value of e (which, because of
      +this and casting, may be different from its instance class).
      +In order to achieve the above, each object value will consist of a
      +pair holding the current class of the object and an environment stack
      +with one layer for each class in the object's instance class hierarchy.

      +

      Third, although KOOL is dynamic method dispatch, its capabilities
      +described above are powerful enough to allow us to mimic static
      +method dispatch. For example, suppose that you want to invoke method
      +m() statically. Then all you need to do is to declare a
      +local variable and bind it to m, for example var staticm = m;, and
      +then call staticm(). This works because
      +staticm is first bound to the method closure that m
      +evaluates to, and then looked up as any local variable when invoked.
      +We only enable the dynamic method dispatch when we have an object
      +member on an application position, e.g., m().

      +

      In what follows, we limit our comments to the new, KOOL-specific
      +aspects of the language. We refer the reader to the untyped SIMPLE
      +language for documentation on the the remaining features, because
      +those were all borrowed from SIMPLE.

      +
      module KOOL-UNTYPED-SYNTAX
      +  imports DOMAINS-SYNTAX
      +

      Syntax

      + +

      The syntax of KOOL extends that of SIMPLE with object-oriented
      +constructs. We removed from the K annotated syntax of SIMPLE two
      +constructs, namely the one for function declarations (because we want
      +to call them methods now) and the one for function application
      +(because application is not strict in the first argument
      +anymore—needs to initiate dynamic method dispatch). The additional
      +syntax includes:

      +
        +
      • First, we need a new dedicated identifier, Object, for
        +the default top-most class.
      • +
      • Second, we rename the function keyword of SIMPLE into method.
      • +
      • Third, we add syntax for class declarations together with a
        +macro making classes which extend nothing to extend Object.
      • +
      • Fourth, we change the strictness attribute of application
        +into strict(2).
      • +
      • Finally, we add syntax and corresponding strictness
        +for the KOOL object-oriented constructs.
      • +
      +
        syntax Id ::= "Object" [token] | "Main" [token]
      +
      +  syntax Stmt ::= "var" Exps ";"
      +                | "method" Id "(" Ids ")" Block  // called "function" in SIMPLE
      +                | "class" Id Block               // KOOL
      +                | "class" Id "extends" Id Block  // KOOL
      +
      +  syntax Exp ::= Int | Bool | String | Id
      +               | "this"                                 // KOOL
      +               | "super"                                // KOOL
      +               | "(" Exp ")"             [bracket]
      +               | "++" Exp
      +               | Exp "instanceOf" Id     [strict(1)]    // KOOL
      +               | "(" Id ")" Exp          [strict(2)]    // KOOL  cast
      +               | "new" Id "(" Exps ")"   [strict(2)]    // KOOL
      +               | Exp "." Id                             // KOOL
      +               > Exp "[" Exps "]"        [strict]
      +               > Exp "(" Exps ")"        [strict(2)]    // was strict in SIMPLE
      +               | "-" Exp                 [strict]
      +               | "sizeOf" "(" Exp ")"    [strict]
      +               | "read" "(" ")"
      +               > left:
      +                 Exp "*" Exp             [strict, left]
      +               | Exp "/" Exp             [strict, left]
      +               | Exp "%" Exp             [strict, left]
      +               > left:
      +                 Exp "+" Exp             [strict, left]
      +               | Exp "-" Exp             [strict, left]
      +               > non-assoc:
      +                 Exp "<" Exp             [strict, non-assoc]
      +               | Exp "<=" Exp            [strict, non-assoc]
      +               | Exp ">" Exp             [strict, non-assoc]
      +               | Exp ">=" Exp            [strict, non-assoc]
      +               | Exp "==" Exp            [strict, non-assoc]
      +               | Exp "!=" Exp            [strict, non-assoc]
      +               > "!" Exp                 [strict]
      +               > left:
      +                 Exp "&&" Exp            [strict(1), left]
      +               | Exp "||" Exp            [strict(1), left]
      +               > "spawn" Block
      +               > Exp "=" Exp             [strict(2), right]
      +
      +  syntax Ids  ::= List{Id,","}
      +
      +  syntax Exps ::= List{Exp,","}          [strict, klabel(exps)]
      +  syntax Val
      +  syntax Vals ::= List{Val,","}          [klabel(exps)]
      +
      +  syntax Block ::= "{" "}"
      +                | "{" Stmt "}"
      +
      +  syntax Stmt ::= Block
      +                | Exp ";"                               [strict]
      +                | "if" "(" Exp ")" Block "else" Block   [avoid, strict(1)]
      +                | "if" "(" Exp ")" Block                [macro]
      +                | "while" "(" Exp ")" Block
      +                | "for" "(" Stmt Exp ";" Exp ")" Block  [macro]
      +                | "return" Exp ";"                      [strict]
      +                | "return" ";"                          [macro]
      +                | "print" "(" Exps ")" ";"              [strict]
      +                | "try" Block "catch" "(" Id ")" Block
      +                | "throw" Exp ";"                       [strict]
      +                | "join" Exp ";"                        [strict]
      +                | "acquire" Exp ";"                     [strict]
      +                | "release" Exp ";"                     [strict]
      +                | "rendezvous" Exp ";"                  [strict]
      +
      +  syntax Stmt ::= Stmt Stmt                          [right]
      +

      Old desugaring rules, from SIMPLE

      +
        rule if (E) S => if (E) S else {}
      +  rule for(Start Cond; Step) {S} => {Start while (Cond) {S Step;}}
      +  rule var E1::Exp, E2::Exp, Es::Exps; => var E1; var E2, Es;       [anywhere]
      +  rule var X::Id = E; => var X; X = E;                              [anywhere]
      +

      New desugaring rule

      +
        rule class C:Id S => class C extends Object S                     // KOOL
      +
      +endmodule
      +

      Semantics

      + +

      We first discuss the new configuration of KOOL, which extends that of
      +SIMPLE. Then we include the semantics of the constructs borrowed from
      +SIMPLE unchanged; we refrain from discussing those, because they were
      +already discussed in the K definition of SIMPLE. Then we discuss
      +changes to SIMPLE's semantics needed for the more general meaning of
      +the previous SIMPLE constructs (for example for thread spawning,
      +assignment, etc.). Finally, we discuss in detail the
      +semantics of the additional KOOL constructs.

      +
      module KOOL-UNTYPED
      +  imports KOOL-UNTYPED-SYNTAX
      +  imports DOMAINS
      +

      Configuration

      + +

      KOOL removes one cell and adds two nested cells to the configuration
      +of SIMPLE. The cell which is removed is the one holding the global
      +environment, because a KOOL program consists of a set of classes only,
      +with no global declarations. In fact, since informally speaking each
      +KOOL class now includes a SIMPLE program, it is safe to say that the
      +global variables in SIMPLE became class fields in KOOL. Let us now
      +discuss the new cells that are added to the configuration of SIMPLE.

      +
        +
      • +

        The cell crntObj holds data pertaining to the current
        +object, that is, the object environment in which the code in cell
        +k executes: crntClass holds the current class (which
        +can change as methods of the current object are invoked);
        +envStack holds the stack of environments as a list,
        +each layer corresponding to one class in the objects' instance class
        +hierarchy; location, which is optional, holds the location in
        +the store where the current object is or has to be located (this is
        +useful both for method closures and for the semantics of object
        +creation).

        +
      • +
      • +

        The cell classes holds all the declared classes, each
        +class being held in its own class cell which contains a name
        +(className), a parent (extends), and the actual
        +member declarations (declarations).

        +
      • +
      +
        // the syntax declarations below are required because the sorts are
      +  // referenced directly by a production and, because of the way KIL to KORE
      +  // is implemented, the configuration syntax is not available yet
      +  // should simply work once KIL is removed completely
      +  // check other definitions for this hack as well
      +  syntax EnvCell
      +  syntax ControlCell
      +  syntax EnvStackCell
      +  syntax CrntObjCellFragment
      +
      +  configuration <T color="red">
      +                  <threads color="orange">
      +                    <thread multiplicity="*" type="Set" color="yellow">
      +                      <k color="green"> $PGM:Stmt ~> execute </k>
      +                    //<br/> // TODO(KORE): support latex annotations #1799
      +                      <control color="cyan">
      +                        <fstack color="blue"> .List </fstack>
      +                        <xstack color="purple"> .List </xstack>
      +                      //<br/> // TODO(KORE): support latex annotations #1799
      +                        <crntObj color="Fuchsia">  // KOOL
      +                           <crntClass> Object </crntClass>
      +                           <envStack> .List </envStack>
      +                           <location multiplicity="?"> .K </location>
      +                        </crntObj>
      +                      </control>
      +                    //<br/> // TODO(KORE): support latex annotations #1799
      +                      <env color="violet"> .Map </env>
      +                      <holds color="black"> .Map </holds>
      +                      <id color="pink"> 0 </id>
      +                    </thread>
      +                  </threads>
      +                //<br/> // TODO(KORE): support latex annotations #1799
      +                  <store color="white"> .Map </store>
      +                  <busy color="cyan">.Set </busy>
      +                  <terminated color="red"> .Set </terminated>
      +                  <input color="magenta" stream="stdin"> .List </input>
      +                  <output color="brown" stream="stdout"> .List </output>
      +                  <nextLoc color="gray"> 0 </nextLoc>
      +                //<br/> // TODO(KORE): support latex annotations #1799
      +                  <classes color="Fuchsia">        // KOOL
      +                     <classData multiplicity="*" type="Map" color="Fuchsia">
      +                        // the Map has as its key the first child of the cell,
      +                        // in this case the className cell.
      +                        <className color="Fuchsia"> Main </className>
      +                        <baseClass color="Fuchsia"> Object </baseClass>
      +                        <declarations color="Fuchsia"> .K </declarations>
      +                     </classData>
      +                  </classes>
      +                </T>
      +

      Unchanged Semantics from untyped SIMPLE

      + +

      The semantics below is taken over from SIMPLE unchanged.
      +The semantics of function declaration and invocation, including the
      +use of the special lambda abstraction value, needs to change
      +in order to account for the fact that methods are now invoked into
      +their object's environment. The semantics of function return actually
      +stays unchanged. Also, the semantics of program initialization is
      +different: now we have to create an instance of the Main
      +class which also calls the constructor Main(), while in
      +SIMPLE we only had to invoke the function Main().
      +Finally, the semantics of thread spawning needs to change, too: the
      +parent thread needs to also share its object environment with the
      +spawned thread (in addition to its local environment, like in SIMPLE).
      +This is needed in order to be able to spawn method invokations under
      +dynamic method dispatch; for example, spawn { run(); }
      +will need to look up the method run() in the newly created
      +thread, operation which will most likely fail unless the child thread
      +sees the object environment of the parent thread. Note that the
      +spawn statement of KOOL is more permissive than the threads
      +of Java. In fact, the latter can be implemented in terms of our
      +spawn—see the program threads.kool for a sketch.

      +

      Below is a subset of the values of SIMPLE, which are also values
      +of KOOL. We will add other values later in the semantics, such as
      +object and method closures.

      +
        syntax Val ::= Int | Bool | String
      +               | array(Int,Int)
      +  syntax Exp ::= Val
      +  syntax Exps ::= Vals
      +  syntax KResult ::= Val
      +  syntax KResult ::= Vals
      +

      The semantics below are taken verbatim from the untyped SIMPLE
      +definition.

      +
        syntax KItem ::= "undefined"  [latex(\bot)]
      +
      +  rule <k> var X:Id; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> undefined ...</store>
      +       <nextLoc> L:Int => L +Int 1 </nextLoc>
      +
      +
      +  context var _:Id[HOLE];
      +
      +  rule <k> var X:Id[N:Int]; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> array(L +Int 1, N)
      +                          (L +Int 1) ... (L +Int N) |-> undefined ...</store>
      +       <nextLoc> L:Int => L +Int 1 +Int N </nextLoc>
      +    when N >=Int 0
      +
      +
      +  syntax Id ::= "$1" [token] | "$2" [token]
      +  rule var X:Id[N1:Int, N2:Int, Vs:Vals];
      +    => var X[N1];
      +       {
      +         var $1=X;
      +         for(var $2=0; $2 <= N1 - 1; ++$2) {
      +           var X[N2,Vs];
      +           $1[$2] = X;
      +         }
      +       }
      +
      +
      +  rule <k> X:Id => V ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... L |-> V:Val ...</store>  [group(lookup)]
      +
      +
      +  context ++(HOLE => lvalue(HOLE))
      +  rule <k> ++loc(L) => I +Int 1 ...</k>
      +       <store>... L |-> (I:Int => I +Int 1) ...</store>  [group(increment)]
      +
      +
      +  rule I1 + I2 => I1 +Int I2
      +  rule Str1 + Str2 => Str1 +String Str2
      +  rule I1 - I2 => I1 -Int I2
      +  rule I1 * I2 => I1 *Int I2
      +  rule I1 / I2 => I1 /Int I2 when I2 =/=K 0
      +  rule I1 % I2 => I1 %Int I2 when I2 =/=K 0
      +  rule - I => 0 -Int I
      +  rule I1 < I2 => I1 <Int I2
      +  rule I1 <= I2 => I1 <=Int I2
      +  rule I1 > I2 => I1 >Int I2
      +  rule I1 >= I2 => I1 >=Int I2
      +
      +  rule V1:Val == V2:Val => V1 ==K V2
      +  rule V1:Val != V2:Val => V1 =/=K V2
      +  rule ! T => notBool(T)
      +  rule true  && E => E
      +  rule false && _ => false
      +  rule true  || _ => true
      +  rule false || E => E
      +
      +
      +  rule V:Val[N1:Int, N2:Int, Vs:Vals] => V[N1][N2, Vs]
      +    [anywhere]
      +
      +  rule array(L,_)[N:Int] => lookup(L +Int N)
      +    [anywhere]
      +
      +
      +  rule sizeOf(array(_,N)) => N
      +

      The semantics of function application needs to change into dynamic
      +method dispatch invocation, which is defined shortly. However,
      +interestingly, the semantics of return stays unchanged.

      +
        rule <k> return(V:Val); ~> _ => V ~> K </k>
      +       <control>
      +         <fstack> ListItem(fstackFrame(Env,K,XS,<crntObj> CO </crntObj>)) => .List ...</fstack>
      +         <xstack> _ => XS </xstack>
      +         <crntObj> _ => CO </crntObj>
      +       </control>
      +       <env> _ => Env </env>
      +
      +  syntax Val ::= "nothing"
      +  rule return; => return nothing;
      +
      +
      +  rule <k> read() => I ...</k> <input> ListItem(I:Int) => .List ...</input>  [group(read)]
      +
      +
      +  context (HOLE => lvalue(HOLE)) = _
      +
      +  rule <k> loc(L) = V:Val => V ...</k> <store>... L |-> (_ => V) ...</store>
      +    [group(assignment)]
      +
      +
      +  rule {} => .
      +  rule <k> { S } => S ~> setEnv(Env) ...</k>  <env> Env </env>
      +
      +
      +  rule S1::Stmt S2::Stmt => S1 ~> S2
      +
      +  rule _:Val; => .
      +
      +  rule if ( true) S else _ => S
      +  rule if (false) _ else S => S
      +
      +  rule while (E) S => if (E) {S while(E)S}
      +
      +  rule <k> print(V:Val, Es => Es); ...</k> <output>... .List => ListItem(V) </output>
      +    [group(print)]
      +  rule print(.Vals); => .
      +
      +
      +  syntax KItem ::= xstackFrame(Id,Stmt,K,Map,K)
      +  // TODO(KORE): drop the additional production once parsing issue #1842 is fixed
      +                 | (Id,Stmt,K,Map,K)
      +
      +  syntax KItem ::= "popx"
      +
      +  rule <k> (try S1 catch(X) {S2} => S1 ~> popx) ~> K </k>
      +       <control>
      +         <xstack> .List => ListItem(xstackFrame(X, S2, K, Env, C)) ...</xstack>
      +         C
      +       </control>
      +       <env> Env </env>
      +
      +  rule <k> popx => . ...</k>
      +       <xstack> ListItem(_) => .List ...</xstack>
      +
      +  rule <k> throw V:Val; ~> _ => { var X = V; S2 } ~> K </k>
      +       <control>
      +         <xstack> ListItem(xstackFrame(X, S2, K, Env, C)) => .List ...</xstack>
      +         (_ => C)
      +       </control>
      +       <env> _ => Env </env>
      +

      Thread spawning needs a new semantics, because we want the child
      +thread to also share the object environment with its parent. The new
      +semantics of thread spawning will be defined shortly. However,
      +interestingly, the other concurrency constructs keep their semantics
      +from SIMPLE unchanged.

      +
        // TODO(KORE): ..Bag should be . throughout this definition #1772
      +  rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .Bag)
      +  /*
      +  rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .)
      +  */
      +       <busy> Busy => Busy -Set keys(H) </busy>
      +       <terminated>... .Set => SetItem(T) ...</terminated>
      +
      +  rule <k> join T:Int; => . ...</k>
      +       <terminated>... SetItem(T) ...</terminated>
      +
      +  rule <k> acquire V:Val; => . ...</k>
      +       <holds>... .Map => V |-> 0 ...</holds>
      +       <busy> Busy (.Set => SetItem(V)) </busy>
      +    when (notBool(V in Busy:Set))  [group(acquire)]
      +
      +  rule <k> acquire V; => . ...</k>
      +       <holds>... V:Val |-> (N:Int => N +Int 1) ...</holds>
      +
      +  rule <k> release V:Val; => . ...</k>
      +       <holds>... V |-> (N => N:Int -Int 1) ...</holds>
      +    when N >Int 0
      +
      +  rule <k> release V; => . ...</k> <holds>... V:Val |-> 0 => .Map ...</holds>
      +       <busy>... SetItem(V) => .Set ...</busy>
      +
      +  rule <k> rendezvous V:Val; => . ...</k>
      +       <k> rendezvous V; => . ...</k>  [group(rendezvous)]
      +

      Unchanged auxiliary operations from untyped SIMPLE

      + +
        syntax Stmt ::= mkDecls(Ids,Vals)  [function]
      +  rule mkDecls((X:Id, Xs:Ids), (V:Val, Vs:Vals)) => var X=V; mkDecls(Xs,Vs)
      +  rule mkDecls(.Ids,.Vals) => {}
      +
      +  // TODO(KORE): clarify sort inferences #1803
      +  syntax Exp ::= lookup(Int)
      +  /*
      +  syntax KItem ::= lookup(Int)
      +  */
      +  rule <k> lookup(L) => V ...</k> <store>... L |-> V:Val ...</store>  [group(lookup)]
      +
      +  syntax KItem ::= setEnv(Map)
      +  rule <k> setEnv(Env) => . ...</k>  <env> _ => Env </env>
      +  rule (setEnv(_) => .) ~> setEnv(_)
      +  // TODO: How can we make sure that the second rule above applies before the first one?
      +  //       Probably we'll deal with this using strategies, eventually.
      +
      +  syntax Exp ::= lvalue(K)
      +  syntax Val ::= loc(Int)
      +
      +  rule <k> lvalue(X:Id => loc(L)) ...</k> <env>... X |-> L:Int ...</env>
      +
      +  context lvalue(_::Exp[HOLE::Exps])
      +  context lvalue(HOLE::Exp[_::Exps])
      +
      +  rule lvalue(lookup(L:Int) => loc(L))
      +
      +
      +  syntax Map ::= Int "..." Int "|->" K
      +    [function, latex({#1}\ldots{#2}\mapsto{#3})]
      +  rule N...M |-> _ => .Map  when N >Int M
      +  rule N...M |-> K => N |-> K (N +Int 1)...M |-> K  when N <=Int M
      +

      Changes to the existing untyped SIMPLE semantics

      + +

      When we extend a language, sometimes we need to do more than just add
      +new language constructs and semantics for them. Sometimes we want to
      +also extend the semantics of existing language constructs, in order to
      +get more from them.

      +

      Program initialization

      + +

      In SIMPLE, once all the global declarations were processed, the
      +function main() was invoked. In KOOL, the global
      +declarations are classes, and their specific semantics is given
      +shortly; essentially, they are pre-processed one by one and added
      +into the class cell structure in the configuration.
      +Once all the classes are processed, the computation item
      +execute, which was placed right after the program in the
      +initial configuration, is reached. In SIMPLE, the program was
      +initialized by calling the method main(). In KOOL, the
      +program is initialized by creating an object instance of class
      +Main. This will also implicitly call the method
      +Main() (the Main class constructor). The emptiness
      +of the env cell below is just a sanity check, to make sure
      +that the user has not declared anything but classes at the top level
      +of the program.

      +
        syntax KItem ::= "execute"
      +  rule <k> execute => new Main(.Exps); </k> <env> .Map </env>
      +

      The semantics of new (defined below) requires the
      +execution of all the class' declarations (and also of its
      +superclasses').

      +

      Object and method closures

      + +

      Before we can define the semantics of method application (previously
      +called function application in SIMPLE), we need to add two more values
      +to the language, namely object and method closures:

      +
        syntax Val ::= objectClosure(Id, List)
      +               | methodClosure(Id,Int,Ids,Stmt)
      +

      An object value consists of an objectClosure-wrapped bag
      +containing the current class of the object and the environment stack
      +of the object. The current class of an object will always be one of
      +the classes mapped to an environment in the environment stack of the
      +object. A method closure encapsulates the method's parameters and
      +code (last two arguments), as well as the object context in which the
      +method code should execute. This object context includes the current
      +class of the object (the first argument of methodClosure) and
      +the object environment stack (located in the object stored at the
      +location specified as the second argument of methodClosure).

      +

      Method application

      + +

      KOOL has a complex mechanism to invoke methods, because it allows both
      +dynamic method dispatch and methods as first-class-citizen values (the
      +latter making it a higher-order language). The invocation mechanism
      +will be defined later. What is sufficient to know for now is that
      +the two arguments of the application construct eventually reduce to
      +values, the first being a method closure and the latter a list of
      +values. The semantics of the method closure application is then as
      +expected: the local environment and control are stacked, then we
      +switch to method closure's class and object environment and execute
      +the method body. The mkDecls construct is the one that came
      +with the unchanged semantics of SIMPLE above.

      +
        syntax KItem ::= fstackFrame(Map,K,List,K)
      +  // TODO(KORE): drop the additional production once parsing issue #1842 is fixed
      +                 | (Map,K,K)
      +
      +  rule <k> methodClosure(Class,OL,Xs,S)(Vs:Vals) ~> K
      +           => mkDecls(Xs,Vs) S return; </k>
      +       <env> Env => .Map </env>
      +       <store>... OL |-> objectClosure(_, EnvStack)...</store>
      +     //<br/> // TODO(KORE): support latex annotations #1799
      +       <control>
      +          <xstack> XS </xstack>
      +          <fstack> .List => ListItem(fstackFrame(Env, K, XS, <crntObj> Obj' </crntObj>))
      +          ...</fstack>
      +          <crntObj> Obj' => <crntClass> Class </crntClass> <envStack> EnvStack </envStack> </crntObj>
      +       </control>
      +

      Spawn

      + +

      We want to extend the semantics of spawn to also share the
      +current object environment with the child thread, in addition to the
      +current environment. This extension will allow us to also use method
      +invocations in the spawned statements, which will be thus looked up as
      +expected, using dynamic method dispatch. This lookup operation would
      +fail if the child thread did not have access to its parent's object
      +environment.

      +
        rule <thread>...
      +         <k> spawn S => !T:Int ...</k>
      +         <env> Env </env>
      +         <crntObj> Obj </crntObj>
      +       ...</thread>
      +       (.Bag => <thread>...
      +               <k> S </k>
      +               <env> Env </env>
      +               <id> !T </id>
      +               <crntObj> Obj </crntObj>
      +             ...</thread>)
      +

      Semantics of the new KOOL constructs

      + +

      Class declaration

      + +

      Initially, the classes forming the program are moved into their
      +corresponding cells:

      +
        rule <k> class Class1 extends Class2 { S } => . ...</k>
      +       <classes>... (.Bag => <classData>
      +                            <className> Class1 </className>
      +                            <baseClass> Class2 </baseClass>
      +                            <declarations> S </declarations>
      +                        </classData>)
      +       ...</classes>
      +

      Method declaration

      + +

      Like in SIMPLE, method names are added to the environment and bound
      +to their code. However, unlike in SIMPLE where each function was
      +executed in the same environment, namely the program global
      +environment, a method in KOOL needs to be executed into its object's
      +environment. Thus, methods evaluate to closures, which encapsulate
      +their object's context (i.e., the current class and environment stack
      +of the object) in addition to method's parameters and body. This
      +approach to bind method names to method closures in the environment
      +will also allow objects to pass their methods to other objects, to
      +dynamically change their methods by assigning them other method
      +closures, and even to allow all these to be done from other objects.
      +This gives the KOOL programmer a lot of power; one should use this
      +power wisely, though, because programs can become easily hard to
      +understand and reason about if one overuses these features.

      +
        rule <k> method F:Id(Xs:Ids) S => . ...</k>
      +       <crntClass> Class:Id </crntClass>
      +       <location> OL:Int </location>
      +       <env> Env => Env[F <- L] </env>
      +       <store>... .Map => L |-> methodClosure(Class,OL,Xs,S) ...</store>
      +       <nextLoc> L => L +Int 1 </nextLoc>
      +

      New

      + +

      The semantics of new consists of two actions: memory
      +allocation for the new object and execution of the corresponding
      +constructor. Then the created object is returned as the result of the
      +new operation; the value returned by the constructor, if any,
      +is discarded. The current environment and object are stored onto the
      +stack and recovered after new (according to the semantics of
      +return borrowed from SIMPLE, when the statement
      +return this; in the rule below is reached and evaluated),
      +because the object creation part of new will destroy them.
      +The rule below also initializes the object creation process by
      +emptying the local environment and the current object, and allocating
      +a location in the store where the created object will be eventually
      +stored (this is what the storeObj task after the object
      +creation task in the rule below will do—its rule is defined
      +shortly). The location where the object will be stored is also made
      +available in the crntObj cell, so that method closures can
      +refer to it (see rule above).

      +
        syntax KItem ::= "envStackFrame" "(" Id "," Map ")"
      +
      +  rule <k> new Class:Id(Vs:Vals) ~> K
      +           => create(Class) ~> storeObj ~> Class(Vs); return this; </k>
      +       <env> Env => .Map </env>
      +       <nextLoc> L:Int => L +Int 1 </nextLoc>
      +     //<br/> // TODO(KORE): support latex annotations #1799
      +       <control> <xstack> XS </xstack>
      +         <crntObj> Obj
      +                   => <crntClass> Object </crntClass>
      +                      <envStack> ListItem(envStackFrame(Object, .Map)) </envStack>
      +                      <location> L </location>
      +         </crntObj>
      +         <fstack> .List => ListItem(fstackFrame(Env, K, XS, <crntObj> Obj </crntObj>)) ...</fstack>
      +       </control>
      +

      The creation of a new object (the memory allocation part only) is
      +a recursive process, requiring to first create an object for the
      +superclass. A memory object representation is a layered structure:
      +for each class on the path from the instance class to the root of the
      +hierarchy there is a layer including the memory allocated for the
      +members (both fields and methods) of that class.

      +
        syntax KItem ::= create(Id)
      +
      +  rule <k> create(Class:Id)
      +           => create(Class1) ~> setCrntClass(Class) ~> S ~> addEnvLayer ...</k>
      +       <className> Class </className>
      +       <baseClass> Class1:Id </baseClass>
      +       <declarations> S </declarations>
      +
      +  rule <k> create(Object) => . ...</k>
      +

      The next operation sets the current class of the current object.
      +This is necessary to be done at each layer, because the current class
      +of the object is enclosed as part of the method closures (see the
      +semantics of method declarations above).

      +
        syntax KItem ::= setCrntClass(Id)
      +
      +  rule <k> setCrntClass(C) => . ...</k>
      +       <crntClass> _ => C </crntClass>
      +

      The next operation adds a new tagged environment layer to the
      +current object and gets ready for the next layer by clearing the
      +environment (note that create expects the environment to be
      +empty).

      +
        syntax KItem ::= "addEnvLayer"
      +
      +  rule <k> addEnvLayer => . ...</k>
      +       <env> Env => .Map </env>
      +       <crntClass> Class:Id </crntClass>
      +       <envStack> .List => ListItem(envStackFrame(Class, Env)) ...</envStack>
      +

      The following operation stores the created object at the location
      +reserved by new. Note that the location reserved by
      +new was temporarily stored in the crntObj cell
      +precisely for this purpose. Now that the newly created object is
      +stored at its location and that all method closures are aware of it,
      +the location is unnecessary and thus we delete it from the
      +crntObj cell.

      +
        syntax KItem ::= "storeObj"
      +
      +  rule <k> storeObj => . ...</k>
      +       <crntObj> <crntClass> CC </crntClass> <envStack> ES </envStack> (<location> L:Int </location> => .Bag) </crntObj>
      +       <store>... .Map => L |-> objectClosure(CC, ES) ...</store>
      +

      Self reference

      + +

      The semantics of this is straightforward: evaluate to the
      +current object.

      +
        rule <k> this => objectClosure(CC, ES) ...</k>
      +       <crntObj> <crntClass> CC </crntClass> <envStack> ES </envStack> </crntObj>
      +

      Object member access

      + +

      We can access an object member (field or method) either explicitly,
      +using the construct e.x, or implicitly, using only the member
      +name x directly. The borrowed semantics of SIMPLE will
      +already lookup a sole name in the local environment. The first rule
      +below reduces implicit member access to explicit access when the name
      +cannot be found in the local environment. There are two cases to
      +analyze for explicit object member access, depending upon whether the
      +object is a proper object or it is just a redirection to the parent
      +class via the construct super. In the first case, we
      +evaluate the object expression and lookup the member starting with the
      +current class (static scoping). Note the use of the conditional
      +evaluation context. In the second case, we just lookup the member
      +starting with the superclass of the current class. In both cases,
      +the lookupMember task eventually yields a lookup(L)
      +task for some appropriate location L, which will be further
      +solved with the corresponding rule borrowed from SIMPLE. Note that the
      +current object is not altered by super, so future method
      +invocations see the entire object, as needed for dynamic method dispatch.

      +
        rule <k> X:Id => this . X ...</k> <env> Env:Map </env>
      +    when notBool(X in keys(Env))
      +
      +  context HOLE._::Id when (HOLE =/=K super)
      +
      +// TODO: explain how Assoc matching has been replaced with two rules here.
      +// Maybe also improve it a bit.
      +
      +/*  rule objectClosure(<crntClass> Class:Id </crntClass>
      +                     <envStack>... envStackFrame(Class,EnvC) EStack </envStack>)
      +       . X:Id
      +    => lookupMember(envStackFrame(Class,EnvC) EStack, X) */
      +
      +  rule objectClosure(Class:Id, ListItem(envStackFrame(Class,Env)) EStack)
      +       . X:Id
      +    => lookupMember(ListItem(envStackFrame(Class,Env)) EStack, X)
      +  rule objectClosure(Class:Id, (ListItem(envStackFrame(Class':Id,_)) => .List) _)
      +       . _X:Id
      +    when Class =/=K Class'
      +
      +/*  rule <k> super . X => lookupMember(EStack, X) ...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack>... envStackFrame(Class,EnvC) EStack </envStack> */
      +  rule <k> super . X => lookupMember(EStack, X) ...</k>
      +       <crntClass> Class:Id </crntClass>
      +       <envStack> ListItem(envStackFrame(Class,_)) EStack </envStack>
      +  rule <k> super . _X ...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack> ListItem(envStackFrame(Class':Id,_)) => .List ...</envStack>
      +    when Class =/=K Class'
      +

      Method invocation

      + +

      Unlike in SIMPLE, in KOOL application was declared strict only in its
      +second argument. That is because we want to ensure dynamic method
      +dispatch when the first argument is a method access. As a
      +consequence, we need to consider all the cases of interest for the
      +first argument and to explicitly say what to do in each case. In all
      +cases except for method access in a proper object (i.e., not
      +super), we want the same behavior for the first argument as
      +if it was not in a method invocation position. When it is a member
      +access (the third rule below), we look it up starting with the
      +instance class of the corresponding object. This ensures dynamic
      +dispatch for methods; it actually dynamically dispatches field
      +accesses, too, which is correct in KOOL, because one can assign method
      +closures to fields and the field appeared in a method invocation
      +context. The last context declaration below says that method
      +applications or array accesses are also allowed as first argument to
      +applications; that is because methods are allowed to return methods
      +and arrays are allowed to hold methods in KOOL, since it is
      +higher-order. If that is the case, then we want to evaluate the
      +method call or the array access.

      +
        rule <k> (X:Id => V)(_:Exps) ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... L |-> V:Val ...</store>  [group(lookup)]
      +
      +  rule <k> (X:Id => this . X)(_:Exps) ...</k>
      +       <env> Env </env>
      +    when notBool(X in keys(Env))
      +
      +  context HOLE._::Id(_) when HOLE =/=K super
      +
      +  rule (objectClosure(_, EStack) . X
      +    => lookupMember(EStack, X:Id))(_:Exps)
      +
      +/*  rule <k> (super . X
      +            => lookupMember(EStack,X))(_:Exps)...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack>... envStackFrame(Class,_) EStack </envStack> */
      +  rule <k> (super . X
      +            => lookupMember(EStack,X))(_:Exps)...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack> ListItem(envStackFrame(Class,_)) EStack </envStack>
      +  rule <k> (super . _X)(_:Exps) ...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack> ListItem(envStackFrame(Class':Id,_)) => .List ...</envStack>
      +    when Class =/=K Class'
      +
      +  // TODO(KORE): fix getKLabel #1801
      +  rule (A:Exp(B:Exps))(C:Exps) => A(B) ~> #freezerFunCall(C)
      +  rule (A:Exp[B:Exps])(C:Exps) => A[B] ~> #freezerFunCall(C)
      +  rule V:Val ~> #freezerFunCall(C:Exps) => V(C)
      +  syntax KItem ::= "#freezerFunCall" "(" K ")"
      +  /*
      +  context HOLE(_:Exps)
      +    when getKLabel(HOLE) ==K #klabel(`_(_)`) orBool getKLabel(HOLE) ==K #klabel(`_[_]`)
      +  */
      +

      Eventually, each of the rules above produces a lookup(L)
      +task as a replacement for the method. When that happens, we just
      +lookup the value at location L:

      +
        rule <k> (lookup(L) => V)(_:Exps) ...</k>  <store>... L |-> V:Val ...</store>
      +    [group(lookup)]
      +

      The value V looked up above is expected to be a method closure,
      +in which case the semantics of method application given above will
      +apply. Otherwise, the execution will get stuck.

      +

      Instance Of

      + +

      It searches the object environment for a layer corresponding to the
      +desired class. It returns true iff it can find the class,
      +otherwise it returns false; it only gets stuck when its first
      +argument does not evaluate to an object.

      +
        rule objectClosure(_, ListItem(envStackFrame(C,_)) _)
      +       instanceOf C => true
      +
      +  rule objectClosure(_, (ListItem(envStackFrame(C,_)) => .List) _)
      +       instanceOf C'  when C =/=K C'
      +//TODO: remove the sort cast ::Id of C above, when sort inference bug fixed
      +
      +  rule objectClosure(_, .List) instanceOf _ => false
      +

      Cast

      + +

      In untyped KOOL, we prefer to not check the validity of casting. In
      +other words, any cast is allowed on any object, simply changing the
      +current class of the object to the desired class. The execution will
      +get stuck later if one attempts to access a field which is not
      +available. Moreover, the execution may complete successfully even
      +in the presence of invalid casts, provided that each accessed member
      +during the current execution is, or happens to be, available.

      +
        rule (C) objectClosure(_ , EnvStack) => objectClosure(C ,EnvStack)
      +

      KOOL-specific auxiliary declarations and operations

      + +

      Here we define all the auxiliary constructs used in the above
      +KOOL-specific semantics (those used in the SIMPLE fragment
      +have already been defined in a corresponding section above).

      +

      Objects as lvalues

      + +

      The current machinery borrowed with the semantics of SIMPLE allows us
      +to enrich the set of lvalues, this way allowing new means to assign
      +values to locations. In KOOL, we want object member names to be
      +lvalues, so that we can assign values to them using the already
      +existing machinery. The first rule below ensures that the object is
      +always explicit, the evaluation context enforces the object to be
      +evaluated, and finally the second rule initiates the lookup for the
      +member's location based on the current class of the object.

      +
        rule <k> lvalue(X:Id => this . X) ...</k>  <env> Env </env>
      +    when notBool(X in keys(Env))
      +
      +  context lvalue((HOLE . _)::Exp)
      +
      +/*  rule lvalue(objectClosure(<crntClass> C </crntClass>
      +                            <envStack>... envStackFrame(C,EnvC) EStack </envStack>)
      +              . X
      +              => lookupMember(<envStack> envStackFrame(C,EnvC) EStack </envStack>,
      +                              X))  */
      +  rule lvalue(objectClosure(Class, ListItem(envStackFrame(Class,Env)) EStack)
      +              . X
      +              => lookupMember(ListItem(envStackFrame(Class,Env)) EStack,
      +                              X))
      +  rule lvalue(objectClosure(Class, (ListItem(envStackFrame(Class':Id,_)) => .List) _)
      +              . _X)
      +    when Class =/=K Class'
      +

      Lookup member

      + +

      It searches for the given member in the given environment stack,
      +starting with the most concrete class and going up in the hierarchy.

      +
        // TODO(KORE): clarify sort inferences #1803
      +  syntax Exp ::= lookupMember(List, Id)  [function]
      +  /*
      +  syntax KItem ::= lookupMember(EnvStackCell,Id)  [function]
      +  */
      +
      +//  rule lookupMember(<envStack> envStackFrame(_, <env>... X|->L ...</env>) ...</envStack>, X)
      +//    => lookup(L)
      +  rule lookupMember(ListItem(envStackFrame(_, X|->L _)) _, X)
      +    => lookup(L)
      +
      +//  rule lookupMember(<envStack> envStackFrame(_, <env> Env </env>) => .List ...</envStack>, X)
      +//    when notBool(X in keys(Env))
      +  rule lookupMember(ListItem(envStackFrame(_, Env)) Rest, X) =>
      +       lookupMember(Rest, X)
      +    when notBool(X in keys(Env))
      +//TODO: beautify the above
      +
      +endmodule
      +

      Go to Lesson 2, KOOL typed dynamic.

      +

      KOOL — Typed — Dynamic

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K dynamic semantics of the typed KOOL language. It is
      +very similar to the semantics of the untyped KOOL, the difference
      +being that we now check the typing policy dynamically. Since we have
      +to now declare the types of variables and methods, we adopt a syntax
      +for those which is close to Java. Like in the semantics of
      +untyped KOOL, where we borrowed almost all the semantics of untyped
      +SIMPLE, we are going to also borrow much of the semantics of
      +dynamically typed SIMPLE here. We will highlight the differences
      +between the dynamically typed and the untyped KOOL as we proceed with
      +the semantics. In general, the type policy of the typed KOOL language
      +is similar to that of Java. You may find it useful to also read
      +the discussion in the preamble of the static semantics of typed KOOL
      +before proceeding.

      +
      module KOOL-TYPED-DYNAMIC-SYNTAX
      +  imports DOMAINS-SYNTAX
      +

      Syntax

      + +

      Like for the untyped KOOL language, the syntax of typed KOOL extends
      +that of typed SIMPLE with object-oriented constructs.
      +The syntax below was produced by copying and modifying/extending the
      +syntax of dynamically typed SIMPLE. In fact, the only change we made
      +to the existing syntax of dynamically typed SIMPLE was to change the
      +strictness of the application construct like in untyped KOOL, from
      +strict to strict(2) (because application is not
      +strict in the first argument anymore due to dynamic method dispatch).
      +The KOOL-specific syntactic extensions are identical to those in
      +untyped KOOL.

      +
        syntax Id ::= "Object" [token] | "Main" [token]
      +

      Types

      + +
        syntax Type ::= "void" | "int" | "bool" | "string"
      +                | Id                              // KOOL class
      +                | Type "[" "]"
      +                | "(" Type ")"           [bracket]
      +                > Types "->" Type
      +  // TODO(KORE): drop klabel once issues #1913 are fixed
      +  syntax Types ::= List{Type,","}   [klabel(_,_::Types)]
      +  /*
      +  syntax Types ::= List{Type,","}
      +  */
      +

      Declarations

      + +
        syntax Param ::= Type Id
      +  syntax Params ::= List{Param,","}
      +
      +  syntax Stmt ::= Type Exps ";" [avoid]
      +                | Type Id "(" Params ")" Block    // stays like in typed SIMPLE
      +                | "class" Id Block                // KOOL
      +                | "class" Id "extends" Id Block   // KOOL
      +

      Expressions

      + +
        syntax Exp ::= Int | Bool | String | Id
      +               | "this"                                 // KOOL
      +               | "super"                                // KOOL
      +               | "(" Exp ")"             [bracket]
      +               | "++" Exp
      +               | Exp "instanceOf" Id     [strict(1)]    // KOOL
      +               | "(" Id ")" Exp          [strict(2)]    // KOOL  cast
      +               | "new" Id "(" Exps ")"   [strict(2)]    // KOOL
      +               | Exp "." Id                             // KOOL
      +               > Exp "[" Exps "]"        [strict]
      +               > Exp "(" Exps ")"        [strict(2)]    // was strict in SIMPLE
      +               | "-" Exp                 [strict]
      +               | "sizeOf" "(" Exp ")"    [strict]
      +               | "read" "(" ")"
      +               > left:
      +                 Exp "*" Exp             [strict, left]
      +               | Exp "/" Exp             [strict, left]
      +               | Exp "%" Exp             [strict, left]
      +               > left:
      +                 Exp "+" Exp             [strict, left]
      +               | Exp "-" Exp             [strict, left]
      +               > non-assoc:
      +                 Exp "<" Exp             [strict, non-assoc]
      +               | Exp "<=" Exp            [strict, non-assoc]
      +               | Exp ">" Exp             [strict, non-assoc]
      +               | Exp ">=" Exp            [strict, non-assoc]
      +               | Exp "==" Exp            [strict, non-assoc]
      +               | Exp "!=" Exp            [strict, non-assoc]
      +               > "!" Exp                 [strict]
      +               > left:
      +                 Exp "&&" Exp            [strict(1), left]
      +               | Exp "||" Exp            [strict(1), left]
      +               > "spawn" Block
      +               > Exp "=" Exp             [strict(2), right]
      +
      +  syntax Exps ::= List{Exp,","}          [strict, klabel(exps)]
      +  syntax Val
      +  syntax Vals ::= List{Val,","}          [klabel(exps)]
      +

      Statements

      + +
        syntax Block ::= "{" "}"
      +                | "{" Stmt "}"
      +
      +  syntax Stmt ::= Block
      +                | Exp ";"                               [strict]
      +                | "if" "(" Exp ")" Block "else" Block   [avoid, strict(1)]
      +                | "if" "(" Exp ")" Block                [macro]
      +                | "while" "(" Exp ")" Block
      +                | "for" "(" Stmt Exp ";" Exp ")" Block  [macro]
      +                | "print" "(" Exps ")" ";"              [strict]
      +                | "return" Exp ";"                      [strict]
      +                | "return" ";"
      +                | "try" Block "catch" "(" Param ")" Block
      +                | "throw" Exp ";"                       [strict]
      +                | "join" Exp ";"                        [strict]
      +                | "acquire" Exp ";"                     [strict]
      +                | "release" Exp ";"                     [strict]
      +                | "rendezvous" Exp ";"                  [strict]
      +
      +  syntax Stmt ::= Stmt Stmt                          [right]
      +

      Desugaring macros

      + +
        rule if (E) S => if (E) S else {}
      +  rule for(Start Cond; Step) {S::Stmt} => {Start while(Cond){S Step;}}
      +  rule T::Type E1::Exp, E2::Exp, Es::Exps; => T E1; T E2, Es;           [anywhere]
      +  rule T::Type X::Id = E; => T X; X = E;                                [anywhere]
      +
      +  rule class C:Id S => class C extends Object S                     // KOOL
      +
      +endmodule
      +

      Semantics

      + +

      We first discuss the new configuration, then we include the semantics of
      +the constructs borrowed from SIMPLE which stay unchanged, then those
      +whose semantics had to change, and finally the semantics of the
      +KOOL-specific constructs.

      +
      module KOOL-TYPED-DYNAMIC
      +  imports KOOL-TYPED-DYNAMIC-SYNTAX
      +  imports DOMAINS
      +

      Configuration

      + +

      The configuration of dynamically typed KOOL is almost identical to
      +that of its untyped variant. The only difference is the cell
      +return, inside the control cell, whose role is to
      +hold the expected return type of the invoked method. That is because
      +we want to dynamically check that the value that a method returns has
      +the expected type.

      +
        // the syntax declarations below are required because the sorts are
      +  // referenced directly by a production and, because of the way KIL to KORE
      +  // is implemented, the configuration syntax is not available yet
      +  // should simply work once KIL is removed completely
      +  // check other definitions for this hack as well
      +  syntax EnvCell
      +  syntax ControlCellFragment
      +  syntax EnvStackCell
      +  syntax CrntObjCellFragment
      +
      +  configuration <T color="red">
      +                  <threads color="orange">
      +                    <thread multiplicity="*" type="Set" color="yellow">
      +                      <k color="green"> ($PGM:Stmt ~> execute) </k>
      +                    //<br/> // TODO(KORE): support latex annotations #1799
      +                      <control color="cyan">
      +                        <fstack color="blue"> .List </fstack>
      +                        <xstack color="purple"> .List </xstack>
      +                        <returnType color="LimeGreen"> void </returnType>  // KOOL
      +                      //<br/> // TODO(KORE): support latex annotations #1799
      +                        <crntObj color="Fuchsia">  // KOOL
      +                           <crntClass> Object </crntClass>
      +                           <envStack> .List </envStack>
      +                           <location multiplicity="?"> .K </location>
      +                        </crntObj>
      +                      </control>
      +                    //<br/> // TODO(KORE): support latex annotations #1799
      +                      <env color="violet"> .Map </env>
      +                      <holds color="black"> .Map </holds>
      +                      <id color="pink"> 0 </id>
      +                    </thread>
      +                  </threads>
      +                //<br/> // TODO(KORE): support latex annotations #1799
      +                  <store color="white"> .Map </store>
      +                  <busy color="cyan">.Set </busy>
      +                  <terminated color="red"> .Set </terminated>
      +                  <input color="magenta" stream="stdin"> .List </input>
      +                  <output color="brown" stream="stdout"> .List </output>
      +                  <nextLoc color="gray"> 0 </nextLoc>
      +                //<br/> // TODO(KORE): support latex annotations #1799
      +                  <classes color="Fuchsia">        // KOOL
      +                     <classData multiplicity="*" type="Map" color="Fuchsia">
      +                        <className color="Fuchsia"> Main </className>
      +                        <baseClass color="Fuchsia"> Object </baseClass>
      +                        <declarations color="Fuchsia"> .K </declarations>
      +                     </classData>
      +                  </classes>
      +                </T>
      +

      Unchanged semantics from dynamically typed SIMPLE

      + +

      The semantics below is taken over from dynamically typed SIMPLE
      +unchanged. Like for untyped KOOL, the semantics of function/method
      +declaration and invocation, and of program initialization needs to
      +change. Moreover, due to subtyping, the semantics of several imported
      +SIMPLE constructs can be made more general, such as that of the
      +return statement, that of the assignment, and that of the exceptions.
      +We removed all these from the imported semantics of SIMPLE below and
      +gave their modified semantics right after, together with the extended
      +semantics of thread spawning (which is identical to that of untyped
      +KOOL).

      +
        syntax Val ::= Int | Bool | String
      +               | array(Type,Int,Int)
      +  syntax Exp ::= Val
      +  syntax Exps ::= Vals
      +  syntax KResult ::= Val
      +  syntax KResult ::= Vals
      +
      +
      +  syntax KItem ::= undefined(Type)  [latex(\bot_{#1})]
      +
      +  rule <k> T:Type X:Id; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> undefined(T) ...</store>
      +       <nextLoc> L:Int => L +Int 1 </nextLoc>
      +
      +
      +  rule <k> T:Type X:Id[N:Int]; => . ...</k>
      +       <env> Env => Env[X <- L] </env>
      +       <store>... .Map => L |-> array(T, L +Int 1, N)
      +                          (L +Int 1)...(L +Int N) |-> undefined(T) ...</store>
      +       <nextLoc> L:Int => L +Int 1 +Int N </nextLoc>
      +    requires N >=Int 0
      +
      +  context _:Type _::Exp[HOLE::Exps];
      +
      +
      +  syntax Id ::= "$1" [token] | "$2" [token]
      +  rule T:Type X:Id[N1:Int, N2:Int, Vs:Vals];
      +    => T[]<Vs> X[N1];
      +       {
      +         T[][]<Vs> $1=X;
      +         for(int $2=0; $2 <= N1 - 1; ++$2) {
      +           T X[N2,Vs];
      +           $1[$2] = X;
      +         }
      +       }
      +
      +
      +  rule <k> X:Id => V ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... L |-> V:Val ...</store>  [group(lookup)]
      +
      +
      +  context ++(HOLE => lvalue(HOLE))
      +  rule <k> ++loc(L) => I +Int 1 ...</k>
      +       <store>... L |-> (I:Int => I +Int 1) ...</store>  [group(increment)]
      +
      +
      +  rule I1 + I2 => I1 +Int I2
      +  rule Str1 + Str2 => Str1 +String Str2
      +  rule I1 - I2 => I1 -Int I2
      +  rule I1 * I2 => I1 *Int I2
      +  rule I1 / I2 => I1 /Int I2 requires I2 =/=K 0
      +  rule I1 % I2 => I1 %Int I2 requires I2 =/=K 0
      +  rule - I => 0 -Int I
      +  rule I1 < I2 => I1 <Int I2
      +  rule I1 <= I2 => I1 <=Int I2
      +  rule I1 > I2 => I1 >Int I2
      +  rule I1 >= I2 => I1 >=Int I2
      +  rule V1:Val == V2:Val => V1 ==K V2
      +  rule V1:Val != V2:Val => V1 =/=K V2
      +  rule ! T => notBool(T)
      +  rule true  && E => E
      +  rule false && _ => false
      +  rule true  || _ => true
      +  rule false || E => E
      +
      +
      +  rule V:Val[N1:Int, N2:Int, Vs:Vals] => V[N1][N2, Vs]
      +    [anywhere]
      +
      +  rule array(_:Type, L:Int, M:Int)[N:Int] => lookup(L +Int N)
      +    requires N >=Int 0 andBool N <Int M  [anywhere]
      +
      +  rule sizeOf(array(_,_,N)) => N
      +
      +
      +  syntax Val ::= nothing(Type)
      +  rule <k> return; => return nothing(T); ...</k> <returnType> T </returnType>
      +
      +
      +  rule <k> read() => I ...</k> <input> ListItem(I:Int) => .List ...</input>  [group(read)]
      +
      +
      +  context (HOLE => lvalue(HOLE)) = _
      +
      +
      +  rule {} => .
      +  rule <k> { S } => S ~> setEnv(Env) ...</k>  <env> Env </env>
      +
      +
      +  rule S1:Stmt S2:Stmt => S1 ~> S2
      +
      +
      +  rule _:Val; => .
      +
      +
      +  rule if ( true) S else _ => S
      +  rule if (false) _ else S => S
      +
      +
      +  rule while (E) S => if (E) {S while(E)S}
      +
      +
      +  rule <k> print(V:Val, Es => Es); ...</k> <output>... .List => ListItem(V) </output>
      +    requires typeOf(V) ==K int orBool typeOf(V) ==K string  [group(print)]
      +  rule print(.Vals); => .
      +
      +
      +  rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .Bag)
      +       <busy> Busy => Busy -Set keys(H) </busy>
      +       <terminated>... .Set => SetItem(T) ...</terminated>
      +
      +  rule <k> join T:Int; => . ...</k>
      +       <terminated>... SetItem(T) ...</terminated>
      +
      +  rule <k> acquire V:Val; => . ...</k>
      +       <holds>... .Map => V |-> 0 ...</holds>
      +       <busy> Busy (.Set => SetItem(V)) </busy>
      +    requires (notBool(V in Busy:Set))  [group(acquire)]
      +
      +  rule <k> acquire V; => . ...</k>
      +       <holds>... V:Val |-> (N:Int => N +Int 1) ...</holds>
      +
      +  rule <k> release V:Val; => . ...</k>
      +       <holds>... V |-> (N => N:Int -Int 1) ...</holds>
      +    requires N >Int 0
      +
      +  rule <k> release V; => . ...</k> <holds>... V:Val |-> 0 => .Map ...</holds>
      +       <busy>... SetItem(V) => .Set ...</busy>
      +
      +  rule <k> rendezvous V:Val; => . ...</k>
      +       <k> rendezvous V; => . ...</k>  [group(rendezvous)]
      +

      Unchanged auxiliary operations from dynamically typed SIMPLE

      + +
        syntax Stmt ::= mkDecls(Params,Vals)  [function]
      +  rule mkDecls((T:Type X:Id, Ps:Params), (V:Val, Vs:Vals))
      +    => T X=V; mkDecls(Ps,Vs)
      +  rule mkDecls(.Params,.Vals) => {}
      +
      +  syntax Exp ::= lookup(Int)
      +  rule <k> lookup(L) => V ...</k> <store>... L |-> V:Val ...</store>  [group(lookup)]
      +
      +  syntax KItem ::= setEnv(Map)
      +  rule <k> setEnv(Env) => . ...</k>  <env> _ => Env </env>
      +  rule (setEnv(_) => .) ~> setEnv(_)
      +
      +  syntax Exp ::= lvalue(K)
      +  syntax Val ::= loc(Int)
      +  rule <k> lvalue(X:Id => loc(L)) ...</k>  <env>... X |-> L:Int ...</env>
      +
      +  context lvalue(_::Exp[HOLE::Exps])
      +  context lvalue(HOLE::Exp[_::Exps])
      +
      +  rule lvalue(lookup(L:Int) => loc(L))
      +
      +  syntax Type ::= Type "<" Vals ">"  [function]
      +  rule T:Type<_,Vs:Vals> => T[]<Vs>
      +  rule T:Type<.Vals> => T
      +
      +  syntax Map ::= Int "..." Int "|->" K
      +    [function, latex({#1}\ldots{#2}\mapsto{#3})]
      +  rule N...M |-> _ => .Map  requires N >Int M
      +  rule N...M |-> K => N |-> K (N +Int 1)...M |-> K  requires N <=Int M
      +
      +  syntax Type ::= typeOf(K)  [function]
      +  rule typeOf(_:Int) => int
      +  rule typeOf(_:Bool) => bool
      +  rule typeOf(_:String) => string
      +  rule typeOf(array(T,_,_)) => (T[])
      +  rule typeOf(undefined(T)) => T
      +  rule typeOf(nothing(T)) => T
      +
      +  syntax Types ::= getTypes(Params)  [function]
      +  rule getTypes(T:Type _:Id) => T, .Types
      +  rule getTypes(T:Type _:Id, P, Ps) => T, getTypes(P,Ps)
      +  rule getTypes(.Params) => void, .Types
      +

      Changes to the existing dynamically typed SIMPLE semantics

      + +

      We extend/change the semantics of several SIMPLE constructs in order
      +to take advantage of the richer KOOL semantic infrastructure and thus
      +get more from the existing SIMPLE constructs.

      +

      Program initialization

      + +

      Like in untyped KOOL.

      +
        syntax KItem ::= "execute"
      +  rule <k> execute => new Main(.Exps); </k> <env> .Map </env>
      +

      Method application

      + +

      The only change to untyped KOOL's values is that method closures are
      +now typed (their first argument holds their type):

      +
       syntax Val ::= objectClosure(Id,List)
      +              | methodClosure(Type,Id,Int,Params,Stmt)
      +

      The type held by a method clossure will be the entire type of the
      +method, not only its result type like the lambda-closure of typed
      +SIMPLE. The reason for this change comes from the the need to
      +dynamically upcast values when passed to contexts where values of
      +superclass types are expected; since we want method closures to be
      +first-class-citizen values in our language, we have to be able to
      +dynamically upcast them, and in order to do that elegantly it is
      +convenient to store the entire ``current type'' of the method closure
      +instead of just its result type. Note that this was unnecessary in
      +the semantics of the dynamically typed SIMPLE language.

      +

      Method closure application needs to also set a new return type in
      +the return cell, like in dynamically typed SIMPLE, in order
      +for the values returned by its body to be checked against the return
      +type of the method. To do this correctly, we also need to stack the
      +current status of the return cell and then pop it when the
      +method returns. We have to do the same with the current object
      +environment, so we group them together in the stack frame.

      +
        syntax KItem ::= fstackFrame(Map, K, List, Type, K)
      +
      +  rule <k> methodClosure(_->T,Class,OL,Ps,S)(Vs:Vals) ~> K
      +           => mkDecls(Ps,Vs) S return; </k>
      +       <env> Env => .Map </env>
      +       <store>... OL |-> objectClosure(_, EStack)...</store>
      +     //<br/> // TODO(KORE): support latex annotations #1799
      +       <control>
      +          <fstack> .List => ListItem(fstackFrame(Env, K, XS, T', <crntObj> Obj' </crntObj>)) ...</fstack>
      +          <xstack> XS </xstack>
      +          <returnType> T' => T </returnType>
      +          <crntObj> Obj' => <crntClass> Class </crntClass> <envStack> EStack </envStack> </crntObj>
      +       </control>
      +

      At method return, we have to check that the type of the returned
      +value is a subtype of the expected return type. Moreover, if that is
      +the case, then we also upcast the returned value to one of the
      +expected type. The computation item unsafeCast(V,T) changes
      +the typeof V to T without any additional checks; however, it only
      +does it when V is an object or a method, otherwise it returns V
      +unchanged.

      +
        rule <k> return V:Val; ~> _
      +           => subtype(typeOf(V), T) ~> true? ~> unsafeCast(V, T) ~> K
      +       </k>
      +       <control>
      +         <fstack> ListItem(fstackFrame(Env, K, XS, RT, <crntObj> CO </crntObj>)) => .List ...</fstack>
      +         <xstack> _ => XS </xstack>
      +         <returnType> T:Type => RT </returnType>
      +         <crntObj> _ => CO </crntObj>
      +       </control>
      +       <env> _ => Env </env>
      +

      Assignment

      + +

      Typed KOOL allows to assign subtype instance values to supertype
      +lvalues. The semantics of assignment below is similar in spirit to
      +dynamically typed SIMPLE's, but a check is performed that the assigned
      +value's type is a subtype of the location's type. If that is the
      +case, then the assigned value is returned as a result and stored, but
      +it is upcast appropriately first, so the context will continue to see
      +a value of the expected type of the location. Note that the type of a
      +location is implicit in the type of its contents and it never changes
      +during the execution of a program; its type is assigned when the
      +location is allocated and initialized, and then only type-preserving
      +values are allowed to be stored in each location.

      +
        rule <k> loc(L) = V:Val
      +           => subtype(typeOf(V),typeOf(V')) ~> true?
      +              ~> unsafeCast(V, typeOf(V')) ...</k>
      +       <store>... L |-> (V' => unsafeCast(V, typeOf(V'))) ...</store>
      +    [group(assignment)]
      +

      Typed exceptions

      + +

      Exceptions are propagated now until a catch that can handle them is
      +encountered.

      +
        syntax KItem ::= xstackFrame(Param, Stmt, K, Map, K)
      +  syntax KItem ::= "popx"
      +
      +  rule <k> (try S1 catch(P) S2 => S1 ~> popx) ~> K </k>
      +       <control>
      +         <xstack> .List => ListItem(xstackFrame(P, S2, K, Env, C)) ...</xstack>
      +         C
      +       </control>
      +       <env> Env </env>
      +
      +  rule <k> popx => . ...</k>
      +       <xstack> ListItem(_) => .List ...</xstack>
      +
      +  rule <k> throw V:Val; ~> _
      +        => if (subtype(typeOf(V),T)) { T X = V; S2 } else { throw V; } ~> K
      +       </k>
      +       <control>
      +         <xstack> ListItem(xstackFrame(T:Type X:Id, S2, K, Env, C)) => .List ...</xstack>
      +         (_ => C)
      +       </control>
      +       <env> _ => Env </env>
      +

      Spawn

      + +

      Like in untyped KOOL.

      +
        rule <thread>...
      +         <k> spawn S => !T:Int ...</k>
      +         <env> Env </env>
      +         <crntObj> Obj </crntObj>
      +       ...</thread>
      +       (.Bag => <thread>...
      +               <k> S </k>
      +               <env> Env </env>
      +               <id> !T </id>
      +               <crntObj> Obj </crntObj>
      +             ...</thread>)
      +

      Semantics of the new KOOL constructs

      + +

      Class declaration

      + +

      Like in untyped KOOL.

      +
        rule <k> class Class1 extends Class2 { S } => . ...</k>
      +       <classes>... (.Bag => <classData>
      +                            <className> Class1 </className>
      +                            <baseClass> Class2 </baseClass>
      +                            <declarations> S </declarations>
      +                        </classData>)
      +       ...</classes>
      +

      Method declaration

      + +

      Methods are now typed and we need to store their types in their
      +closures, so that their type contract can be checked at invocation
      +time. The rule below is conceptually similar to that of untyped KOOL;
      +the only difference is the addition of the types.

      +
        rule <k> T:Type F:Id(Ps:Params) S => . ...</k>
      +       <crntClass> C </crntClass>
      +       <location> OL </location>
      +       <env> Env => Env[F <- L] </env>
      +       <store>... .Map => L|->methodClosure(getTypes(Ps)->T,C,OL,Ps,S) ...</store>
      +       <nextLoc> L => L +Int 1 </nextLoc>
      +

      New

      + +

      The semantics of new in dynamically typed KOOL is also
      +similar to that in untyped KOOL, the main difference being the
      +management of the return types. Indeed, when a new object is created
      +we also have to stack the current type in the return cell in
      +order to be recovered after the creation of the new object. Only the
      +first rule below needs to be changed; the others are identical to
      +those in untyped KOOL.

      +
        syntax KItem ::= envStackFrame(Id, Map)
      +
      +  rule <k> new Class:Id(Vs:Vals) ~> K
      +           => create(Class) ~> (storeObj ~> ((Class(Vs)); return this;)) </k>
      +       <env> Env => .Map </env>
      +       <nextLoc> L:Int => L +Int 1 </nextLoc>
      +     //<br/> // TODO(KORE): support latex annotations #1799
      +       <control>
      +         <xstack> XS </xstack>
      +         <crntObj> Obj
      +                   => <crntClass> Object </crntClass>
      +                      <envStack> ListItem(envStackFrame(Object, .Map)) </envStack>
      +                      <location> L </location>
      +         </crntObj>
      +         <returnType> T => Class </returnType>
      +         <fstack> .List => ListItem(fstackFrame(Env, K, XS, T, <crntObj>Obj</crntObj>)) ...</fstack>
      +       </control>
      +
      +  syntax KItem ::= create(Id)
      +
      +  rule <k> create(Class:Id)
      +           => create(Class1) ~> setCrntClass(Class) ~> S ~> addEnvLayer ...</k>
      +       <className> Class </className>
      +       <baseClass> Class1:Id </baseClass>
      +       <declarations> S </declarations>
      +
      +  rule <k> create(Object) => . ...</k>
      +
      +  syntax KItem ::= setCrntClass(Id)
      +
      +  rule <k> setCrntClass(C) => . ...</k>
      +       <crntClass> _ => C </crntClass>
      +
      +  syntax KItem ::= "addEnvLayer"
      +
      +  rule <k> addEnvLayer => . ...</k>
      +       <env> Env => .Map </env>
      +       <crntClass> Class:Id </crntClass>
      +       <envStack> .List => ListItem(envStackFrame(Class, Env)) ...</envStack>
      +
      +  syntax KItem ::= "storeObj"
      +
      +  rule <k> storeObj => . ...</k>
      +       <crntObj>
      +         <crntClass> Class </crntClass>
      +         <envStack> EStack </envStack>
      +         (<location> L:Int </location> => .Bag)
      +       </crntObj>
      +       <store>... .Map => L |-> objectClosure(Class, EStack) ...</store>
      +

      Self reference

      + +

      Like in untyped KOOL.

      +
        rule <k> this => objectClosure(Class, EStack) ...</k>
      +       <crntObj>
      +         <crntClass> Class </crntClass>
      +         <envStack> EStack </envStack>
      +         ...
      +       </crntObj>
      +

      Object member access

      + +

      Like in untyped KOOL.

      +
        rule <k> X:Id => this . X ...</k> <env> Env:Map </env>
      +    requires notBool(X in keys(Env))
      +
      +  context HOLE . _::Id requires (HOLE =/=K super)
      +
      +/*  rule objectClosure(<crntObj> <crntClass> Class:Id </crntClass>
      +                     <envStack>... ListItem((Class,EnvC:EnvCell)) EStack </envStack> </crntObj>)
      +       . X:Id
      +    => lookupMember(<envStack> ListItem((Class,EnvC)) EStack </envStack>, X) */
      +  rule objectClosure(Class:Id,
      +                     ListItem(envStackFrame(Class,Env)) EStack)
      +       . X:Id
      +    => lookupMember(ListItem(envStackFrame(Class,Env)) EStack, X)
      +  rule objectClosure(Class:Id,
      +                     (ListItem(envStackFrame(Class':Id,_)) => .List) _EStack)
      +       . _X:Id
      +    requires Class =/=K Class'
      +
      +/*  rule <k> super . X => lookupMember(<envStack>EStack</envStack>, X) ...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack>... ListItem((Class,EnvC:EnvCell)) EStack </envStack> */
      +  rule <k> super . X => lookupMember(EStack, X) ...</k>
      +       <crntClass> Class:Id </crntClass>
      +       <envStack> ListItem(envStackFrame(Class,_)) EStack </envStack>
      +  rule <k> super . _X ...</k>
      +       <crntClass> Class:Id </crntClass>
      +       <envStack> (ListItem(envStackFrame(Class':Id,_)) => .List) _EStack </envStack>
      +    requires Class =/=K Class'
      +

      Method invocation

      + +

      The method lookup is the same as in untyped KOOL.

      +
        rule <k> (X:Id => V)(_:Exps) ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... L |-> V:Val ...</store>  [group(lookup)]
      +
      +  rule <k> (X:Id => this . X)(_:Exps) ...</k>
      +       <env> Env </env>
      +    requires notBool(X in keys(Env))
      +
      +  context HOLE._::Id(_) requires HOLE =/=K super
      +
      +  rule (objectClosure(_, EStack) . X
      +    => lookupMember(EStack, X:Id))(_:Exps)
      +
      +/*  rule <k> (super . X
      +            => lookupMember(<envStack>EStack</envStack>,X))(_:Exps)...</k>
      +       <crntClass> Class </crntClass>
      +       <envStack>... ListItem((Class,_)) EStack </envStack> */
      +  rule <k> (super . X
      +            => lookupMember(EStack,X))(_:Exps)...</k>
      +       <crntClass> Class:Id </crntClass>
      +       <envStack> ListItem(envStackFrame(Class,_)) EStack </envStack>
      +  rule <k> (super . _X)(_:Exps)...</k>
      +       <crntClass> Class:Id </crntClass>
      +       <envStack> (ListItem(envStackFrame(Class':Id,_)) => .List) _EStack </envStack>
      +    requires Class =/=K Class'
      +
      +  // TODO(KORE): fix getKLabel #1801
      +  rule (A:Exp(B:Exps))(C:Exps) => A(B) ~> #freezerFunCall(C)
      +  rule (A:Exp[B:Exps])(C:Exps) => A[B] ~> #freezerFunCall(C)
      +  rule V:Val ~> #freezerFunCall(C:Exps) => V(C)
      +  syntax KItem ::= "#freezerFunCall" "(" K ")"
      +  /*
      +  context HOLE(_:Exps)
      +    requires getKLabel HOLE ==KLabel '_`(_`) orBool getKLabel HOLE ==KLabel '_`[_`]
      +  */
      +
      +  rule <k> (lookup(L) => V)(_:Exps) ...</k>  <store>... L |-> V:Val ...</store>
      +    [group(lookup)]
      +

      Instance of

      + +

      Like in untyped KOOL.

      +
        rule objectClosure(_, ListItem(envStackFrame(C,_)) _)
      +       instanceOf C => true
      +
      +  rule objectClosure(_, (ListItem(envStackFrame(C::Id,_)) => .List) _)
      +       instanceOf C'  requires C =/=K C'
      +
      +  rule objectClosure(_, .List) instanceOf _ => false
      +

      Cast

      + +

      Unlike in untyped KOOL, in typed KOOL we actually check that the object
      +can indeed be cast to the claimed type.

      +
        rule (C:Id) objectClosure(Irrelevant, EStack)
      +    => objectClosure(Irrelevant, EStack) instanceOf C ~> true?
      +       ~> objectClosure(C, EStack)
      +

      KOOL-specific auxiliary declarations and operations

      + +

      Objects as lvalues

      + +

      Like in untyped KOOL.

      +
        rule <k> lvalue(X:Id => this . X) ...</k>  <env> Env </env>
      +    requires notBool(X in keys(Env))
      +
      +  context lvalue((HOLE . _)::Exp)
      +
      +/*  rule lvalue(objectClosure(<crntObj> <crntClass> C </crntClass>
      +                            <envStack>... ListItem((C,EnvC:EnvCell)) EStack </envStack> </crntObj>)
      +              . X
      +              => lookupMember(<envStack> ListItem((C,EnvC)) EStack </envStack>,
      +                              X)) */
      +  rule lvalue(objectClosure(C:Id,
      +                            ListItem(envStackFrame(C,Env)) EStack)
      +              . X
      +              => lookupMember(ListItem(envStackFrame(C,Env)) EStack,
      +                              X))
      +  rule lvalue(objectClosure(C,
      +                            (ListItem(envStackFrame(C',_)) => .List) _EStack)
      +              . _X)
      +    requires C =/=K C'
      +

      Lookup member

      + +

      Like in untyped KOOL.

      +
        syntax Exp ::= lookupMember(List,Id)  [function]
      +
      +  rule lookupMember(ListItem(envStackFrame(_, X |-> L _)) _, X) => lookup(L)
      +
      +  // TODO: fix rule below as shown once we support functions with deep rewrites
      +  // rule lookupMember(<envStack> ListItem((_, <env> Env </env>)) => .List
      +  //                     ...</envStack>, X)
      +  //   requires notBool(X in keys(Env))
      +  rule lookupMember(ListItem(envStackFrame(_, Env)) L, X)
      +    => lookupMember(L, X)
      +    requires notBool(X in keys(Env))
      +

      typeOf for the additional values}

      + +
        rule typeOf(objectClosure(C,_)) => C
      +  rule typeOf(methodClosure(T:Type,_,_,_Ps:Params,_)) => T
      +

      Subtype checking

      + +

      The subclass relation induces a subtyping relation.

      +
        syntax Exp ::= subtype(Types,Types)
      +
      +  rule subtype(T:Type, T) => true
      +
      +  rule <k> subtype(C1:Id, C:Id) => subtype(C2, C) ...</k>
      +       <className> C1 </className>
      +       <baseClass> C2:Id </baseClass>
      +    requires C1 =/=K C
      +
      +  rule subtype(Object,Class:Id) => false
      +    requires Class =/=K Object
      +
      +  rule subtype(Ts1->T2,Ts1'->T2') => subtype(((T2)::Type,Ts1'),((T2')::Type,Ts1))
      +
      +// Note that the following rule would be wrong!
      +//  rule subtype(T[],T'[]) => subtype(T,T')
      +
      +  rule subtype((T:Type,Ts),(T':Type,Ts')) => subtype(T,T') && subtype(Ts,Ts')
      +    requires Ts =/=K .Types
      +  rule subtype(.Types,.Types) => true
      +

      Unsafe Casting

      + +

      Performs unsafe casting. One should only use it in combination with
      +the subtype relation above.

      +
        syntax Val ::= unsafeCast(Val,Type)  [function]
      +
      +  rule unsafeCast(objectClosure(_,EStack), C:Id)
      +    => objectClosure(C,EStack)
      +
      +  rule unsafeCast(methodClosure(_T',C,OL,Ps,S), T) => methodClosure(T,C,OL,Ps,S)
      +
      +  rule unsafeCast(V:Val, T:Type) => V  requires typeOf(V) ==K T
      +

      Generic guard

      + +

      A generic computational guard: it allows the computation to continue
      +only if a prefix guard evaluates to true.

      +
        syntax KItem ::= "true?"
      +  rule true ~> true? => .
      +
      +endmodule
      +

      Go to Lesson 3, KOOL typed static.

      +

      KOOL — Typed — Static

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K static semantics of the typed KOOL language.
      +It extends the static semantics of typed SIMPLE with static semantics
      +for the object-oriented constructs. Also, the static semantics of
      +some of the existing SIMPLE constructs need to change, in order to
      +become more generous with regards to the set of accepted programs,
      +mostly due to subtyping. For example, the assignment construct
      +x = e required that both the variable x and the
      +expression e had the same type in SIMPLE. In KOOL, the type
      +of e can be a subtype of the type of x.
      +Specifically, we define the following typing policy for KOOL,
      +everything else not mentioned below borrowing its semantics from
      +SIMPLE:

      +
        +
      • +

        Each class C yields a homonymous type, which can be
        +explicitly used in programs to type variables and methods, possibly in
        +combination with other types.

        +
      • +
      • +

        Since now we have user-defined types, we check that each type
        +used in a KOOL program is well-formed, that is, it is constructed only
        +from primitive and class types corresponding to declared classes.

        +
      • +
      • +

        Class members and their types form a class type
        +environment
        . Each class will have such a type environment.
        +Each member in a class is allowed to be declared only once. Since in
        +KOOL we allow methods to be assigned to fields, we make no distinction
        +between field and method members; in other words, we reject programs
        +declaring both a field and a method with the same name.

        +
      • +
      • +

        If an identifier is not found in the local type environment, it
        +will be searched for in the current class type environment. If not
        +there, then it will be searched for in its superclass' type
        +environment. And so on and so forth. If not found until the
        +Object class is reached, a typing error is reported.

        +
      • +
      • +

        The assignment allows variables to be assigned values of
        +more concrete types. The result type of the assignment expression
        +construct will be the (more abstract) type of the assigned variable,
        +and not the (more concrete) type of the expression, like in Java.

        +
      • +
      • +

        Exceptions are changed (from SIMPLE) to allow throwing and
        +catching only objects, like in Java. Also, unlike in SIMPLE, we do
        +not check whether the type of the thrown exception matches the type of
        +the caught variable, because exceptions can be caught by other
        +try/catch blocks, even by ones in other methods. To avoid
        +having to annotate each method with what exceptions it can throw, we
        +prefer to not check the type safety of exceptions (although this is an
        +excellent homework!). We only check that the try block
        +type-checks and that the catch block type-checks after we bind
        +the caught variable to its claimed type.

        +
      • +
      • +

        Class declarations are not allowed to have any cycles in their
        +extends relation. Such cycles would lead to non-termination of
        +new, as it actually does in the dynamic semantics of KOOL
        +where no such circularity checks are performed.

        +
      • +
      • +

        Methods overriding other methods should be in the right subtyping
        +relationship with the overridden methods: co-variant in the codomain
        +and contra-variant in the domain.

        +
      • +
      +
      module KOOL-TYPED-STATIC-SYNTAX
      +  imports DOMAINS-SYNTAX
      +

      Syntax

      + +

      The syntax of statically typed KOOL is identical to that of
      +dynamically typed KOOL, they both taking as input the same programs.
      +What differs is the K strictness attributes. Like in statically
      +typed SIMPLE, almost all language constructs are strict now, since we
      +want each to type its arguments almost all the time. Like in the
      +other two KOOL definitions, we prefer to copy and then modify/extend
      +the syntax of statically typed SIMPLE.

      +

      Note: This paragraph is old, now we can do things better. We keep
      +it here only for historical reasons, to see how much we used to suffer 😃

      +

      Annoying K-tool technical problem:
      +Currently, the K tool treats the "non-terminal" productions (i.e.,
      +productions consisting of just one non-terminal), also called
      +"subsorting" production, differently from the other productions.
      +Specifically, it does not insert a node in the AST for them. This may
      +look desirable at first, but it has a big problem: it does not allow
      +us to treat the subsort differently in different context. For
      +example, since we want Id to be both a type (a class name) and a
      +program variable, and since we want expressions to reduce to their
      +types, we are in an impossible situations in which we do not know how
      +to treat an identifier in the semantics: as a type, i.e., a result of
      +computations, or as a program variable, i.e., a non-result. Ideally,
      +we would like to tag the identifiers at parse-time with their local
      +interpretation, but that, unfortunately, is not possible with the
      +current parsing capabilities of the K tool, because it requires to
      +insert additional information in the AST for the subsort productions.
      +This will be fixed soon. Until then, unfortunately, we have to do the
      +job of the parser manually. Instead of subsorting Id directly
      +to Type, we "wrap" it first, say with a wrapper called
      +class(...), exactly how the parser should have done.
      +The major drawback of this is that all the typed KOOL programs
      +in kool/typed/programs need to also be modified to always
      +declare class types accordingly. The modified programs can be found
      +in kool/typed/static/programs. So make sure you execute the
      +static semantics of KOOL using the modified programs. To avoid seeing
      +the wrapper in the generated documentation, we associate it an
      +"invisibility" latex attribute below.

      +
        syntax Id ::= "Object" [token] | "Main" [token]
      +

      Types

      + +
        syntax Type ::= "void" | "int" | "bool" | "string"
      +                | Id                     [klabel("class"), symbol, avoid]  // see next
      +                | Type "[" "]"
      +                | "(" Type ")"           [bracket]
      +                > Types "->" Type
      +
      +  syntax Types ::= List{Type,","}        [klabel(exps)]
      +

      Declarations

      + +
        syntax Param ::= Type Id
      +  syntax Params ::= List{Param,","}
      +
      +  syntax Stmt ::= Type Exps ";" [avoid]
      +                | Type Id "(" Params ")" Block
      +                | "class" Id Block
      +                | "class" Id "extends" Id Block
      +

      Expressions

      + +
        syntax FieldReference ::= Exp "." Id          [strict(1)]
      +  syntax ArrayReference ::= Exp "[" Exps "]"    [strict]
      +
      +  syntax Exp ::= Int | Bool | String | Id
      +               | "this"
      +               | "super"
      +               | "(" Exp ")"             [bracket]
      +               | "++" Exp
      +               | Exp "instanceOf" Id     [strict(1)]
      +               | "(" Id ")" Exp          [strict(2)]
      +               | "new" Id "(" Exps ")"   [strict(2)]
      +               > Exp "(" Exps ")"        [strict]
      +               | "-" Exp                 [strict]
      +               | "sizeOf" "(" Exp ")"    [strict]
      +               | "read" "(" ")"
      +               > left:
      +                 Exp "*" Exp             [strict, left]
      +               | Exp "/" Exp             [strict, left]
      +               | Exp "%" Exp             [strict, left]
      +               > left:
      +                 Exp "+" Exp             [strict, left]
      +               | Exp "-" Exp             [strict, left]
      +               > non-assoc:
      +                 Exp "<" Exp             [strict, non-assoc]
      +               | Exp "<=" Exp            [strict, non-assoc]
      +               | Exp ">" Exp             [strict, non-assoc]
      +               | Exp ">=" Exp            [strict, non-assoc]
      +               | Exp "==" Exp            [strict, non-assoc]
      +               | Exp "!=" Exp            [strict, non-assoc]
      +               > "!" Exp                 [strict]
      +               > left:
      +                 Exp "&&" Exp            [strict, left]
      +               | Exp "||" Exp            [strict, left]
      +               > "spawn" Block  // not strict: to check return and exceptions
      +               > Exp "=" Exp             [strict(2), right]
      +
      +  syntax Exp ::= FieldReference | ArrayReference
      +  syntax priority _.__KOOL-TYPED-STATIC-SYNTAX > _[_]_KOOL-TYPED-STATIC-SYNTAX > _(_)_KOOL-TYPED-STATIC-SYNTAX
      +
      +  syntax Exps ::= List{Exp,","}          [strict, klabel(exps)]
      +

      Statements

      + +
        syntax Block ::= "{" "}"
      +                | "{" Stmt "}"
      +
      +  syntax Stmt ::= Block
      +                | Exp ";"                                 [strict]
      +                | "if" "(" Exp ")" Block "else" Block     [avoid, strict]
      +                | "if" "(" Exp ")" Block                  [macro]
      +                | "while" "(" Exp ")" Block               [strict]
      +                | "for" "(" Stmt Exp ";" Exp ")" Block    [macro]
      +                | "return" Exp ";"                        [strict]
      +                | "return" ";"
      +                | "print" "(" Exps ")" ";"                [strict]
      +                | "try" Block "catch" "(" Param ")" Block [strict(1)]
      +                | "throw" Exp ";"                         [strict]
      +                | "join" Exp ";"                          [strict]
      +                | "acquire" Exp ";"                       [strict]
      +                | "release" Exp ";"                       [strict]
      +                | "rendezvous" Exp ";"                    [strict]
      +
      +  syntax Stmt ::= Stmt Stmt                            [seqstrict, right]
      +

      Desugaring macros

      + +
        rule if (E) S => if (E) S else {}
      +  rule for(Start Cond; Step) {S:Stmt} => {Start while(Cond){S Step;}}
      +  rule T:Type E1:Exp, E2:Exp, Es:Exps; => T E1; T E2, Es;               [anywhere]
      +  rule T:Type X:Id = E; => T X; X = E;                                  [anywhere]
      +
      +  rule class C:Id S => class C extends Object S
      +
      +endmodule
      +

      Static semantics

      + +

      We first discuss the configuration, then give the static semantics
      +taken over unchanged from SIMPLE, then discuss the static semantics of
      +SIMPLE syntactic constructs that needs to change, and in the end we
      +discuss the static semantics and additional checks specifically
      +related to the KOOL proper syntax.

      +
      module KOOL-TYPED-STATIC
      +  imports KOOL-TYPED-STATIC-SYNTAX
      +  imports DOMAINS
      +

      Configuration

      + +

      The configuration of our type system consists of a tasks
      +cell with the same meaning like in statically typed SIMPLE, of an
      +out cell streamed to the standard output that will be used to
      +display typing error messages, and of a cell classes holding
      +data about each class in a separate class cell. The
      +task cells now have two additional optional subcells, namely
      +ctenvT and inClass. The former holds a temporary
      +class type environment; its contents will be transferred into the
      +ctenv cell of the corresponding class as soon as all the
      +fields and methods in the task are processed. In fact, there will be
      +three types of tasks in the subsequent semantics, each determined by
      +the subset of cells that it holds:

      +
        +
      1. +

        Main task, holding only a k cell holding the
        +original program as a set of classes. The role of this task is to
        +process each class, generating a class task (see next) for each.

        +
      2. +
      3. +

        Class task, holding k, ctenvT, and
        +inClass subcells. The role of this task type is to process
        +a class' contents, generating a class type environment in the
        +ctenvT cell and a method task (see next) for each method in
        +the class. To avoid interference with object member lookup rules
        +below, it is important to add the class type environment to a class
        +atomically; this is the reason for which we use ctenvT
        +temporary cells within class tasks (instead of adding each member
        +incrementally to the class' type environment).

        +
      4. +
      5. +

        Method task, holding k, tenv and
        +return cells. These tasks are similar to SIMPLE's function
        +tasks, so we do not discuss them here any further.

        +
      6. +
      +

      Each class cell hods its name (in the className
      +cell) and the name of the class it extends (in the extends
      +cell), as well as its type environment (in the ctenv cell)
      +and the set of all its superclasses (in the extendsAll cell).
      +The later is useful for example for checking whether there are cycles
      +in the class extends relation.

      +
        configuration <T multiplicity="?" color="yellow">
      +                  <tasks color="orange" multiplicity="?">
      +                    <task multiplicity="*" color="yellow" type="Set">
      +                      <k color="green"> $PGM:Stmt </k>
      +                      <tenv multiplicity="?" color="cyan"> .Map </tenv>
      +                      <ctenvT multiplicity="?" color="blue"> .Map </ctenvT>
      +                      <returnType multiplicity="?" color="black"> void </returnType>
      +                      <inClass multiplicity="?" color="Fuchsia"> .K </inClass>
      +                    </task>
      +                  </tasks>
      +//                  <br/>
      +                  <classes color="Fuchsia">
      +                    <classData multiplicity="*" type="Map">
      +                      <className color="Fuchsia"> Object </className>
      +                      <baseClass color="Fuchsia"> .K </baseClass>
      +                      <baseClasses color="Fuchsia"> .Set </baseClasses>
      +                      <ctenv multiplicity="?" color="blue"> .Map </ctenv>
      +                    </classData>
      +                  </classes>
      +                </T>
      +                <output color="brown" stream="stdout"> .List </output>
      +

      Unchanged semantics from statically typed SIMPLE

      + +

      The syntax and rules below are borrowed unchanged from statically
      +typed SIMPLE, so we do not discuss them much here.

      +
        syntax Exp ::= Type
      +  syntax Exps ::= Types
      +  syntax BlockOrStmtType ::= "block" | "stmt"
      +  syntax Type ::= BlockOrStmtType
      +  syntax Block ::= BlockOrStmtType
      +  syntax KResult ::= Type
      +                   | Types  // TODO: should not be needed
      +
      +
      +  context _:Type _::Exp[HOLE::Exps];
      +
      +  rule T:Type E:Exp[int,Ts:Types]; => T[] E[Ts];
      +  rule T:Type E:Exp[.Types]; => T E;
      +
      +
      +  rule <task>... <k> _:BlockOrStmtType </k> <tenv> _ </tenv> ...</task> => .Bag
      +
      +
      +  rule _:Int => int
      +  rule _:Bool => bool
      +  rule _:String => string
      +
      +
      +  rule <k> X:Id => T ...</k> <tenv>... X |-> T ...</tenv>
      +
      +
      +  context ++(HOLE => ltype(HOLE))
      +  rule ++ int => int
      +  rule int + int => int
      +  rule string + string => string
      +  rule int - int => int
      +  rule int * int => int
      +  rule int / int => int
      +  rule int % int => int
      +  rule - int => int
      +  rule int < int => bool
      +  rule int <= int => bool
      +  rule int > int => bool
      +  rule int >= int => bool
      +  rule T:Type == T => bool
      +  rule T:Type != T => bool
      +  rule bool && bool => bool
      +  rule bool || bool => bool
      +  rule ! bool => bool
      +
      +
      +  rule (T[])[int, Ts:Types] => T[Ts]
      +  rule T:Type[.Types] => T
      +
      +  rule sizeOf(_T[]) => int
      +
      +
      +  rule read() => int
      +
      +  rule print(T:Type, Ts => Ts); when T ==K int orBool T ==K string
      +  rule print(.Types); => stmt
      +
      +
      +  context (HOLE => ltype(HOLE)) = _
      +
      +
      +  rule <k> return; => stmt ...</k> <returnType> _ </returnType>
      +
      +
      +  rule {} => block
      +
      +  rule <task> <k> {S:Stmt} => block ...</k> <tenv> Rho </tenv> R </task>
      +       (.Bag => <task> <k> S </k> <tenv> Rho </tenv> R </task>)
      +
      +  rule _:Type; => stmt
      +  rule if (bool) block else block => stmt
      +  rule while (bool) block => stmt
      +
      +  rule join int; => stmt
      +  rule acquire _:Type; => stmt
      +  rule release _:Type; => stmt
      +  rule rendezvous _:Type; => stmt
      +
      +  syntax Stmt ::= BlockOrStmtType
      +  rule _:BlockOrStmtType _:BlockOrStmtType => stmt
      +

      Unchanged auxiliary operations from dynamically typed SIMPLE

      + +
        syntax Stmt ::= mkDecls(Params)  [function]
      +  rule mkDecls(T:Type X:Id, Ps:Params) => T X; mkDecls(Ps)
      +  rule mkDecls(.Params) => {}
      +
      +  syntax LValue ::= Id
      +                  | FieldReference
      +                  | ArrayReference
      +  syntax Exp ::= LValue
      +
      +  syntax Exp ::= ltype(Exp)
      +// We would like to say:
      +//  context ltype(HOLE:LValue)
      +// but we currently cannot type the HOLE
      +  context ltype(HOLE) when isLValue(HOLE)
      +
      +// OLD approach:
      +//  syntax Exp ::= ltype(Exp)  [function]
      +//  rule ltype(X:Id) => X
      +//  rule ltype(E:Exp [Es:Exps]) => E[Es]
      +
      +  syntax Types ::= getTypes(Params)  [function]
      +  rule getTypes(T:Type _:Id) => T, .Types
      +  rule getTypes(T:Type _:Id, P, Ps) => T, getTypes(P,Ps)
      +  rule getTypes(.Params) => void, .Types
      +

      Changes to the existing statically typed SIMPLE semantics

      + +

      Below we give the new static semantics for language constructs that
      +come from SIMPLE, but whose SIMPLE static semantics was too
      +restrictive or too permissive and thus had to change.

      +

      Local variable declaration

      + +

      Since we can define new types in KOOL (corresponding to classes), the
      +variable declaration needs to now check that the claimed types exist.
      +The operation checkType, defined at the end of this module,
      +checks whether the argument type is correct (it actually works with
      +lists of types as well).

      +
        rule <k> T:Type X:Id; => checkType(T) ~> stmt ...</k>
      +       <tenv> Rho => Rho[X <- T] </tenv>
      +

      Class member declaration

      + +

      In class tasks, variable declarations mean class member declarations.
      +Since we reduce method declarations to variable declarations (see
      +below), a variable declaration in a class task can mean either a field
      +or a method declaration. Unlike local variable declarations, which
      +can shadow previous homonymous local or member declarations, member
      +declarations are regarded as a set, so we disallow multiple
      +declarations for the same member (one could improve upon this, like in
      +Java, by treating members with different types or number of arguments
      +as different, etc., but we do not do it here). We also issue an error
      +message if one attempts to redeclare the same class member. The
      +framed variable declaration in the second rule below should be read
      +"stuck". In fact, it is nothing but a unary operation called
      +stuck, which takes a K-term as argument and does nothing
      +with it; this stuck operation is displayed as a frame in this
      +PDF document because of its latex attribute (see the ASCII .k file,
      +at the end of this module).

      +
        rule <k> T:Type X:Id; => checkType(T) ~> stmt ...</k>
      +       <ctenvT> Rho (.Map => X |-> T) </ctenvT>
      +    when notBool(X in keys(Rho))
      +
      +  rule <k> T:Type X:Id; => stuck(T X;) ...</k>
      +       <ctenvT>... X |-> _ ...</ctenvT>
      +       <inClass> C:Id </inClass>
      +//       <br/>
      +       <output>... .List => ListItem("Member \"" +String Id2String(X)
      +                              +String "\" declared twice in class \""
      +                              +String Id2String(C) +String "\"!\n") </output>
      +

      Method declaration

      + +

      A method declaration requires two conceptual checks to be performed:
      +first, that the method's type is consistent with the type of the
      +homonymous method that it overrides, if any; and second, that its body
      +types correctly. At the same time, it should also be added to the
      +type environment of its class. The first conceptual task is performed
      +using the checkMethod operation defined below, and the second
      +by generating a corresponding method task. To add it to the class
      +type environment, we take advantage of the fact that KOOL is higher
      +order and reduce the problem to a field declaration problem, which we
      +have already defined. The role of the ctenvT cell in the
      +rule below is to structurally ensure that the method declaration takes
      +place in a class task (we do not want to allow methods to be declared,
      +for example, inside other methods).

      +
        rule <k> T:Type F:Id(Ps:Params) S
      +        => checkMethod(F, getTypes(Ps)->T, C')
      +           ~> getTypes(Ps)->T F; ...</k>
      +//       <br/>
      +       <inClass> C </inClass>
      +       <ctenvT> _ </ctenvT> // to ensure we are in a class pass
      +       <className> C </className>
      +       <baseClass> C' </baseClass>
      +//       <br/>
      +       (.Bag => <task>
      +               <k> mkDecls(Ps) S </k>
      +               <inClass> C </inClass>
      +               <tenv> .Map </tenv>
      +               <returnType> T </returnType>
      +             </task>)
      +

      Assignment

      + +

      A more concrete value is allowed to be assigned to a more abstract
      +variable. The operation checkSubtype is defined at the end
      +of the module and it also works with pairs of lists of types.

      +
        rule T:Type = T':Type => checkSubtype(T', T) ~> T
      +

      Method invocation and return

      + +

      Methods can be applied on values of more concrete types than their
      +arguments:

      +
        rule (Ts:Types -> T:Type) (Ts':Types) => checkSubtype(Ts',Ts) ~> T
      +

      Similarly, we allow values of more concrete types to be returned by
      +methods:

      +
        rule <k> return T:Type; => checkSubtype(T,T') ~> stmt ...</k>
      +       <returnType> T':Type </returnType>
      +

      Exceptions

      + +

      Exceptions can throw and catch values of any types. Since unlike in Java
      +KOOL's methods do not declare the exception types that they can throw,
      +we cannot test the full type safety of exceptions. Instead, we
      +only check that the try and the catch statements
      +type correctly.

      +
        rule try block catch(T:Type X:Id) S => {T X; S}
      +  rule throw _T:Type ; => stmt
      +

      Spawn

      + +

      The spawned cell needs to also be passed the parent's class.

      +
      // explain why
      +
      +  rule <k> spawn S:Block => int ...</k>
      +       <tenv> Rho </tenv>
      +       <inClass> C </inClass>
      +       (.Bag => <task>
      +               <k> S </k>
      +               <tenv> Rho </tenv>
      +               <inClass> C </inClass>
      +             </task>)
      +

      Semantics of the new KOOL constructs

      + +

      Class declaration

      + +

      We process each class in the main task, adding the corresponding data
      +into its class cell and also adding a class task for it. We
      +also perform some well-formedness checks on the class hierarchy.

      +

      Initiate class processing
      +We create a class cell and a class task for each task. Also, we start
      +the class task with a check that the class it extends is declared
      +(this delays the task until that class is processed using another
      +instance of this rule).

      +
      // There seems to be some error with the configuration concretization,
      +// as the rule below does not work when rewriting . to both the task
      +// and the class cells; I had to include two separate . rewrites
      +
      +// TODO: the following fails krun; see #2117
      +  rule <task> <k> class C:Id extends C':Id { S:Stmt } => stmt ...</k> </task>
      +       (.Bag => <classData>...
      +               <className> C </className>
      +               <baseClass> C' </baseClass>
      +             ...</classData>)
      +//       <br/>
      +       (.Bag => <task>
      +                <k> checkType(`class`(C')) ~> S </k>
      +                <inClass> C </inClass>
      +                <ctenvT> .Map </ctenvT>
      +             </task>)
      +
      +// You may want to try the thing below, but that failed, too
      +/*
      +syntax Type ::= "stmtStop"
      +
      +  rule <tasks>...
      +       <task> <k> class C:Id extends C':Id { S:Stmt } => stmtStop ...</k> </task>
      +       (.Bag => <task>
      +                <k> checkType(`class`(C')) ~> S </k>
      +                <inClass> C </inClass>
      +                <ctenvT> .Map </ctenvT>
      +             </task>)
      +       ...</tasks>
      +       <classes>...
      +       .Bag => <classData>...
      +               <className> C </className>
      +               <baseClass> C' </baseClass>
      +             ...</classData>
      +       ...</classes>
      +//       <br/>
      +*/
      +

      Check for unique class names

      + +
        rule (<T>...
      +          <className> C </className>
      +          <className> C </className>
      +        ...</T> => .Bag)
      +       <output>... .List => ListItem("Class \"" +String Id2String(C)
      +                                  +String "\" declared twice!\n") </output>
      +

      Check for cycles in class hierarchy
      +We check for cycles in the class hierarchy by transitively closing the
      +class extends relation using the extendsAll cells, and
      +checking that a class will never appear in its own extendsAll
      +cell. The first rule below initiates the transitive closure of the
      +superclass relation, the second transitively closes it, and the third
      +checks for cycles.

      +
        rule <baseClass> C </baseClass>
      +       <baseClasses> .Set => SetItem(C) </baseClasses>  [priority(25)]
      +
      +  rule <classData>...
      +         <baseClasses> SetItem(C) Cs:Set (.Set => SetItem(C')) </baseClasses>
      +       ...</classData>
      +       <classData>... <className>C</className> <baseClass>C'</baseClass> ...</classData>
      +    when notBool(C' in (SetItem(C) Cs))  [priority(25)]
      +
      +  rule (<T>...
      +          <className> C </className>
      +          <baseClasses>... SetItem(C) ...</baseClasses>
      +        ...</T> => .Bag)
      +       <output>... .List => ListItem("Class \"" +String Id2String(C)
      +                                  +String "\" is in a cycle!\n") </output>
      +    [group(inheritance-cycle), priority(25)]
      +

      New

      + +

      To type new we only need to check that the class constructor
      +can be called with arguments of the given types, so we initiate a call
      +to the constructor method in the corresponding class. If that
      +succeeds, meaning that it types to stmt, then we discard the
      +stmt type and produce instead the corresponding class type of
      +the new object. The auxiliary discard operation is defined
      +also at the end of this module.

      +
        rule new C:Id(Ts:Types) => `class`(C) . C (Ts) ~> discard ~> `class`(C)
      +

      Self reference

      + +

      The typing rule for this is straightforward: reduce to the
      +current class type.

      +
        rule <k> this => `class`(C) ...</k>
      +       <inClass> C:Id </inClass>
      +

      Super

      + +

      Similarly, super types to the parent class type.
      +Note that for typing concerns, super can be considered as an object
      +(recall that this was not the case in the dynamic semantics).

      +
         rule <k> super => `class`(C') ...</k>
      +        <inClass> C:Id </inClass>
      +        <className> C </className>
      +        <baseClass> C':Id </baseClass>
      +

      Object member access

      + +

      There are several cases to consider here. First, if we are in a class
      +task, we should lookup the member into the temporary class type
      +environemnt in cell ctenvT. That is because we want to allow
      +initialized field declarations in classes, such as int x=10;.
      +This is desugared to a declaration of x, which is added to
      +ctenvT during the class task processing, followed by an
      +assignment of x to 10. In order for the assignment to type
      +check, we need to know that x has been declared with type
      +int; this information can only be found in the
      +ctenvT cell. Second, we should redirect non-local variable
      +lookups in method tasks to corresponding member accesses (the
      +local variables are handled by the rule borrowed from SIMPLE).
      +This is what the second rule below does. Third, we should allow
      +object member accesses as lvalues, which is done by the third rule
      +below. These last two rules therefore ensure that each necessary
      +object member access is explicitly allowed for evaluation. Recall
      +from the annotated syntax module above that the member access
      +operation is strict in the object. That means that the object is
      +expected to evaluate to a class type. The next two rules below define
      +the actual member lookup operation, moving the search to the
      +superclass when the member is not found in the current class. Note
      +that this works because we create the class type environments
      +atomically; thus, a class either has its complete type environment
      +available, in which case these rules can safely apply, or its cell
      +ctenv is not yet available, in which case these rules have to
      +wait. Finally, the sixth rule below reports an error when the
      +Object class is reached.

      +
        rule <k> X:Id => T ...</k>
      +       <ctenvT>... X |-> T ...</ctenvT>
      +
      +  rule <k> X:Id => this . X ...</k>
      +       <tenv> Rho </tenv>
      +    when notBool(X in keys(Rho))
      +
      +// OLD approach:
      +//  rule ltype(E:Exp . X:Id) => E . X
      +
      +  rule <k> `class`(C:Id) . X:Id => T ...</k>
      +       <className> C </className>
      +       <ctenv>... X |-> T:Type ...</ctenv>
      +
      +  rule <k> `class`(C1:Id => C2) . X:Id ...</k>
      +       <className> C1 </className>
      +       <baseClass> C2:Id </baseClass>
      +       <ctenv> Rho </ctenv>
      +    when notBool(X in keys(Rho))
      +
      +  rule <k> `class`(Object) . X:Id => stuck(`class`(Object) . X) ...</k>
      +       <inClass> C:Id </inClass>
      +//      <br/>
      +       <output>... .List => ListItem("Member \"" +String Id2String(X)
      +                              +String "\" not declared! (see class \""
      +                              +String Id2String(C) +String "\")\n") </output>
      +

      Instance of and casting

      + +

      As it is hard to check statically whether casting is always safe,
      +the programmer is simply trusted from a typing perspective. We only
      +do some basic upcasting and downcasting checks, to reject casts which
      +will absolutely fail. However, dynamic semantics or implementations
      +of the language need to insert runtime checks for downcasting to be safe.

      +
        rule `class`(_C1:Id) instanceOf _C2:Id => bool
      +  rule (C:Id) `class`(C) => `class`(C)
      +  rule <k> (C2:Id) `class`(C1:Id) => `class`(C2) ...</k>
      +       <className> C1 </className>
      +       <baseClasses>...SetItem(C2)...</baseClasses>    // upcast
      +  rule <k> (C2:Id) `class`(C1:Id) => `class`(C2) ...</k>
      +       <className> C2 </className>
      +       <baseClasses>...SetItem(C1)...</baseClasses>    // downcast
      +  rule <k> (C2) `class`(C1:Id) => stuck((C2) `class`(C1)) ...</k>
      +       <classData>...
      +         <className> C1 </className>
      +         <baseClasses> S1 </baseClasses>
      +       ...</classData>
      +       <classData>...
      +         <className> C2 </className>
      +         <baseClasses> S2 </baseClasses>
      +       ...</classData>
      +       <output>... .List => ListItem("Classes \"" +String Id2String(C1)
      +                              +String "\" and \"" +String Id2String(C2)
      +                              +String "\" are incompatible!\n") </output>
      +    when notBool(C1 in S2) andBool notBool(C2 in S1)
      +

      Cleanup tasks

      + +

      Finally, we need to clean up the terminated tasks. Each of the three
      +types of tasks is handled differently. The main task is replaced by a
      +method task holding new main();, which will ensure that a
      +main class with a main() method actually exists
      +(first rule below). A class task moves its temporary class type
      +environment into its class' cell, and then it dissolves itself (second
      +rule). A method task simply dissolves when terminated (third rule);
      +the presence of the tenv cell in that rule ensures that that
      +task is a method task.
      +Finally, when all the tasks are cleaned up, we can also remove the
      +tasks cell, issuing a corresponding message. Note that
      +checking for cycles or duplicate methods can still be performed after
      +the tasks cell has been removed.

      +
      // discard main task when done, issuing a "new main();" command to
      +// make sure that the class main and the method main() are declared.
      +
      +  rule <task> <k> stmt => new Main(.Exps); </k>
      +              (.Bag => <tenv> .Map </tenv>
      +                    <returnType> void </returnType>
      +                    <inClass> Main </inClass>)
      +       </task>
      +
      +// discard class task when done, adding a ctenv in class
      +
      +  rule (<task>
      +          <k> stmt </k>
      +          <ctenvT> Rho </ctenvT>
      +          <inClass> C:Id </inClass>
      +        </task> => .Bag)
      +        <className> C </className>
      +        (.Bag => <ctenv> Rho </ctenv>)
      +
      +// discard method task when done
      +
      +  rule <task>...
      +         <k> stmt </k>
      +         <tenv> _ </tenv>  // only to ensure that this is a method task
      +       ...</task> => .Bag
      +
      +// cleanup tasks and output a success message when done
      +
      +  rule (<T>... <tasks> .Bag </tasks> ...</T> => .Bag)
      +       <output>... .List => ListItem("Type checked!\n") </output>
      +

      KOOL-specific auxiliary declarations and operations

      + +

      Subtype checking

      + +

      The subclass relation introduces a subtyping relation.

      +
        syntax KItem ::= checkSubtype(Types,Types)
      +
      +  rule checkSubtype(T:Type, T) => .
      +
      +  rule <k> checkSubtype(`class`(C:Id), `class`(C':Id)) => . ...</k>
      +       <className> C </className>
      +       <baseClasses>... SetItem(C') ...</baseClasses>
      +
      +  rule checkSubtype(Ts1->T2,Ts1'->T2')
      +    => checkSubtype(((T2)::Type,Ts1'),((T2')::Type,Ts1))
      +
      +// note that the following rule would be wrong!
      +//  rule checkSubtype(T[],T'[]) => checkSubtype(T,T')
      +
      +  rule checkSubtype((T:Type,Ts),(T':Type,Ts'))
      +    => checkSubtype(T,T') ~> checkSubtype(Ts,Ts')
      +    when Ts =/=K .Types
      +
      +  rule checkSubtype(.Types,.Types) => .
      +  rule checkSubtype(.Types,void) => .
      +

      Checking well-formedness of types

      + +

      Since now any Id can be used as the type of a class, we need to
      +check that the types used in the program actually exists

      +
        syntax KItem ::= checkType(Types)
      +
      +  rule checkType(T:Type,Ts:Types) => checkType(T) ~> checkType(Ts)
      +    when Ts =/=K .Types
      +  rule checkType(.Types) => .
      +  rule checkType(int) => .
      +  rule checkType(bool) => .
      +  rule checkType(string) => .
      +  rule checkType(void) => .
      +  rule <k> checkType(`class`(C:Id)) => . ...</k> <className> C </className>
      +  rule checkType(`class`(Object)) => .
      +  rule checkType(Ts:Types -> T:Type) => checkType(T,Ts)
      +  rule checkType(T:Type[]) => checkType(T)
      +

      Checking correct overiding of methods

      + +

      The checkMethod operation below searches to see whether
      +the current method overrides some other method in some superclass.
      +If yes, then it issues an additional check that the new method's type
      +is more concrete than the overridden method's. The types T and T'
      +below can only be function types. See the definition of
      +checkSubtype on function types at the end of this module (it
      +is co-variant in the codomain and contra-variant in the domain).

      +
        syntax KItem ::= checkMethod(Id,Type,Id)
      +
      +  rule <k> checkMethod(F:Id, T:Type, C:Id) => checkSubtype(T, T') ...</k>
      +       <className> C </className>
      +       <ctenv>... F |-> T':Type ...</ctenv>
      +
      +  rule <k> checkMethod(F:Id, _T:Type, (C:Id => C')) ...</k>
      +       <className> C </className>
      +       <baseClass> C':Id </baseClass>
      +       <ctenv> Rho </ctenv>
      +    when notBool(F in keys(Rho))
      +
      +  rule checkMethod(_:Id,_,Object) => .
      +

      Generic operations which could be part of the K framework

      + +
        syntax KItem ::= stuck(K)  [latex(\framebox{${#1}$})]
      +
      +  syntax KItem ::= "discard"
      +  rule _:KResult ~> discard => .
      +
      +endmodule
      +

      FUN — Untyped — Environment

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K semantic definition of the untyped FUN language.
      +FUN is a pedagogical and research language that captures the essence
      +of the functional programming paradigm, extended with several features
      +often encountered in functional programming languages.
      +Like many functional languages, FUN is an expression language, that
      +is, everything, including the main program, is an expression.
      +Functions can be declared anywhere and are first class values in the
      +language.
      +FUN is call-by-value here, but it has been extended (as student
      +homework assignments) with other parameter-passing styles.
      +To make it more interesting and to highlight some of K's strengths,
      +FUN includes the following features:

      +
        +
      • +

        The basic builtin data-types of integers, booleans and strings.

        +
      • +
      • +

        Builtin lists, which can hold any elements, including other lists.
        +Lists are enclosed in square brackets and their elements are
        +comma-separated; e.g., [1,2,3].

        +
      • +
      • +

        User-defined data-types, by means of constructor terms.
        +Constructor names start with a capital letter (while any other
        +identifier in the language starts with a lowercase letter), and they
        +can be followed by an arbitrary number of comma-separated arguments
        +enclosed in parentheses; parentheses are not needed when the
        +constructor takes no arguments.
        +For example, Pair(5,7) is a constructor term holding two
        +numbers, Cons(1,Cons(2,Cons(3,Nil))) is a list-like
        +constructor term holding 3 elements, and
        +Tree(Tree(Leaf(1), Leaf(2)), Leaf(3)) is a tree-like
        +constructor term holding 3 elements.
        +In the untyped version of the FUN language, no type checking or
        +inference is performed to ensure that the data constructors are used
        +correctly.
        +The execution will simply get stuck when they are misused.
        +Moreover, since no type checking is performed, the data-types are not
        +even declared in the untyped version of FUN.

        +
      • +
      • +

        Functions and let/letrec binders can take
        +multiple space-separated arguments, but these are desugared to
        +ones that only take one argument, by currying. For example, the
        +expressions

        +
        fun x y -> x y
        +let x y = y in x
        +

        are desugared, respectively, into the following expressions:

        +
        fun x -> fun y -> x y
        +let x = fun y -> y in x
        +
      • +
      • +

        Functions can be defined using pattern matching over the
        +available data-types. For example, the program

        +
        letrec max = fun [h] -> h
        +             |   [h|t] -> let x = max t
        +                          in  if h > x then h else x
        +in max [1, 3, 5, 2, 4, 0, -1, -5]
        +

        defines a function max that calculates the maximum element of
        +a non-empty list, and the function

        +
        letrec ack = fun Pair(0,n) -> n + 1
        +             |   Pair(m,0) -> ack Pair(m - 1, 1)
        +             |   Pair(m,n) -> ack Pair(m - 1, ack Pair(m, n - 1))
        +in ack Pair(2,3)
        +

        calculates the Ackermann function applied to a particular pair of numbers.
        +Patterns can be nested. Patterns can currently only be used in function
        +definitions, and not directly in let/letrec binders.
        +For example, this is not allowed:

        +
        letrec Pai(x,y) = Pair(1,2) in x+y
        +

        But this is allowed:

        +
        let f Pair(x,y) = x+y in f Pair(1,2)
        +

        because it is first reduced to

        +
        let f = fun Pair(x,y) -> x+y in f Pair(1,2)
        +

        by uncurrying of the let binder, and pattern matching is
        +allowed in function arguments.

        +
      • +
      • +

        We include a callcc construct, for two reasons: first,
        +several functional languages support this construct; second, some
        +semantic frameworks have difficulties defining it. Not K.

        +
      • +
      • +

        Finally, we include mutables by means of referencing an
        +expression, getting the reference of a variable, dereferencing and
        +assignment. We include these for the same reasons as above: there are
        +languages which have them, and they are not easy to define in some
        +semantic frameworks.

        +
      • +
      +

      Like in many other languages, some of FUN's constructs can be
      +desugared into a smaller set of basic constructs. We do that as usual,
      +using macros, and then we only give semantics to the core constructs.

      +

      Note:
      +We recommend the reader to first consult the dynamic semantics of the
      +LAMBDA++ language in the first part of the K Tutorial.
      +To keep the comments below small and focused, we will not re-explain
      +functional or K features that have already been explained in there.

      +

      Syntax

      + +
      //require "modules/pattern-matching.k"
      +
      +module FUN-UNTYPED-COMMON
      +  imports DOMAINS-SYNTAX
      +

      FUN is an expression language. The constructs below fall into
      +several categories: names, arithmetic constructs, conventional
      +functional constructs, patterns and pattern matching, data constructs,
      +lists, references, and call-with-current-continuation (callcc).
      +The arithmetic constructs are standard; they are present in almost all
      +our K language definitions. The meaning of FUN's constructs are
      +discussed in more depth when we define their semantics in the next
      +module.

      +

      The Syntactic Constructs

      + +

      We start with the syntactic definition of FUN names.
      +We have several categories of names: ones to be used for functions and
      +variables, others to be used for data constructors, others for types and
      +others for type variables. We will introduce them as needed, starting
      +with the former category. We prefer the names of variables and functions
      +to start with lower case letters. We take the freedom to tacitly introduce
      +syntactic lists/sequences for each nonterminal for which we need them:

      +
        syntax Name                                      [token]
      +  syntax Names ::= List{Name,","}                  [klabel(exps)]
      +

      Expression constructs will be defined throughtout the syntax module.
      +Below are the very basic ones, namely the builtins, the names, and the
      +parentheses used as brackets for grouping. Lists of expressions are
      +declared strict, so all expressions in the list get evaluated whenever
      +the list is on a position which can be evaluated:

      +
        syntax Exp ::= Int | Bool | String | Name
      +               | "(" Exp ")"                       [bracket]
      +  syntax Exps  ::= List{Exp,","}                   [strict, klabel(exps)]
      +  syntax Val
      +  syntax Exp ::= Val
      +  syntax Exps ::= Vals
      +  syntax Vals ::= List{Val,","}                    [klabel(exps)]
      +  syntax Bottom
      +  syntax Bottoms ::= List{Bottom,","}              [klabel(exps)]
      +

      We next define the syntax of arithmetic constructs, together with
      +their relative priorities and left-/non-associativities. We also
      +tag all these rules as members of a new group, "arith", so we can more easily
      +define global syntax priorities later (at the end of the syntax module).

      +
        syntax Exp ::= left:
      +                 Exp "*" Exp                       [strict, group(arith)]
      +               | Exp "/" Exp                       [strict, group(arith)]
      +               | Exp "%" Exp                       [strict, group(arith)]
      +               > left:
      +                 Exp "+" Exp                       [strict, left, group(arith)]
      +               | Exp "^" Exp                       [strict, left, group(arith)]
      +// left attribute should not be necessary; currently a parsing bug
      +               | Exp "-" Exp                       [strict, prefer, group(arith)]
      +// the "prefer" attribute above is to not parse x-1 as x(-1)
      +// Due to some parsing problems, we currently cannot add unary minus:
      +               | "-" Exp                           [strict, group(arith)]
      +               > non-assoc:
      +                 Exp "<" Exp                       [strict, group(arith)]
      +               | Exp "<=" Exp                      [strict, group(arith)]
      +               | Exp ">" Exp                       [strict, group(arith)]
      +               | Exp ">=" Exp                      [strict, group(arith)]
      +               | Exp "==" Exp                      [strict, group(arith)]
      +               | Exp "!=" Exp                      [strict, group(arith)]
      +               > "!" Exp                           [strict, group(arith)]
      +               > Exp "&&" Exp                      [strict(1), left, group(arith)]
      +               > Exp "||" Exp                      [strict(1), left, group(arith)]
      +

      The conditional construct has the expected evaluation strategy,
      +stating that only the first argument is evaluate:

      +
        syntax Exp ::= "if" Exp "then" Exp "else" Exp    [strict(1)]
      +

      FUN's builtin lists are formed by enclosing comma-separated
      +sequences of expressions (i.e., terms of sort Exps) in square
      +brackets. The list constructor cons adds a new element to the
      +top of the list, head and tail get the first element
      +and the tail sublist of a list if they exist, respectively, and get
      +stuck otherwise, and null?? tests whether a list is empty or
      +not; syntactically, these are just expression constants.
      +In function patterns, we are also going to allow patterns following the
      +usual head/tail notation; for example, the pattern [x_1,...,x_n|t]
      +binds x_1, ..., x_n to the first elements of the matched list,
      +and t to the list formed with the remaining elements. We define list
      +patterns as ordinary expression constructs, although we will make sure that
      +we do not give them semantics if they appear in any other place then in a
      +function case pattern.

      +
        syntax Exp ::= "[" Exps "]"                             [strict, klabel(list)]
      +               | "head" [macro] | "tail" [macro] | "null?" [macro]
      +               | "[" Exps "|" Exp "]"
      +  syntax Val ::= "[" Vals "]"                             [klabel(list)]
      +  syntax Cons ::= "cons"
      +  syntax Val ::= Cons
      +  syntax Val ::= Cons Val                                 [klabel(apply)]
      +

      Data constructors start with capital letters and they may or may
      +not have arguments. We need to use the attribute "prefer" to make
      +sure that, e.g., Cons(a) parses as constructor Cons with
      +argument a, and not as the expression Cons (because
      +constructor names are also expressions) regarded as a function applied
      +to the expression a. Also, note that the constructor is strict
      +in its second argument, because we want to evaluate its arguments but
      +not the constuctor name itsef.

      +
        syntax ConstructorName                         [token]
      +  syntax Exp ::= ConstructorName
      +               | ConstructorName "(" Exps ")"    [prefer, strict(2), klabel(constructor)]
      +  syntax Val ::= ConstructorName "(" Vals ")"    [klabel(constructor)]
      +

      A function is essentially a |-separated ordered
      +sequence of cases, each case of the form pattern -> expression,
      +preceded by the language construct fun. Patterns will be defined
      +shortly, both for the builtin lists and for user-defined constructors.
      +Recall that the syntax we define in K is not meant to serve as a
      +ultimate parser for the defined language, but rather as a convenient
      +notation for K abstract syntax trees, which we prefer when we write
      +the semantic rules. It is therefore often the case that we define a
      +more ``generous'' syntax than we want to allow programs to use.
      +We do it here, too. Specifically, the syntax of Cases
      +below allows any expressions to appear as pattern. This syntactic
      +relaxation permits many wrong programs to be parsed, but that is not a
      +problem because we are not going to give semantics to wrong combinations,
      +so those programs will get stuck; moreover, our type inferencer will reject
      +those programs anyway. Function application is just concatenation of
      +expressions, without worrying about type correctness. Again, the type
      +system will reject type-incorrect programs.

      +
        syntax Exp ::= "fun" Cases
      +               | Exp Exp                              [strict, left, klabel(apply)]
      +// NOTE: We would like eventually to also have Exp "(" Exps ")
      +  syntax Case  ::= Exp "->" Exp
      +  syntax Cases ::= List{Case, "|"}
      +

      The let and letrec binders have the usual syntax
      +and functional meaning. We allow multiple and-separated bindings.
      +Like for the function cases above, we allow a more generous syntax for
      +the left-hand sides of bindings, noting that the semantics will get stuck
      +on incorrect bindings and that the type system will reject those programs.

      +
        syntax Exp ::= "let" Bindings "in" Exp
      +               | "letrec" Bindings "in" Exp                 [prefer]
      +// The "prefer" attribute for letrec currently needed due to tool bug,
      +// to make sure that "letrec" is not parsed as "let rec".
      +  syntax Binding  ::= Exp "=" Exp
      +  syntax Bindings ::= List{Binding,"and"}
      +

      References are first class values in FUN. The construct ref
      +takes an expression, evaluates it, and then it stores the resulting value
      +at a fresh location in the store and returns that reference. Syntactically,
      +ref is just an expression constant. The construct &
      +takes a name as argument and evaluates to a reference, namely the store
      +reference where the variable passed as argument stores its value; this
      +construct is a bit controversial and is further discussed in the
      +environment-based semantics of the FUN language, where we desugar
      +ref to it. The construct @ takes a reference
      +and evaluates to the value stored there. The construct := takes
      +two expressions, the first expected to evaluate to a reference; the value
      +of its second argument will be stored at the location to which the first
      +points (the old value is thus lost). Finally, since expression evaluation
      +now has side effects, it makes sense to also add a sequential composition
      +construct, which is sequentially strict. This evaluates to the value of
      +its second argument; the value of the first argument is lost (which has
      +therefore been evaluated only for its side effects.

      +
        syntax Exp ::= "ref"                             [macro]
      +               | "&" Name
      +               | "@" Exp                                     [strict]
      +               | Exp ":=" Exp                                [strict]
      +               | Exp ";" Exp                       [strict(1), right]
      +

      Call-with-current-continuation, named callcc in FUN, is a
      +powerful control operator that originated in the Scheme programming
      +language, but it now exists in many other functional languages. It works
      +by evaluating its argument, expected to evaluate to a function, and by
      +passing the current continuation, or evaluation context (or computation,
      +in K terminology), as a special value to it. When/If this special value
      +is invoked, the current context is discarded and replaced with the one
      +held by the special value and the computation continues from there.
      +It is like taking a snapshot of the execution context at some moment
      +in time and then, when desired, being able to get back in time to that
      +point. If you like games, it is like saving the game now (so you can
      +work on your homework!) and then continuing the game tomorrow or whenever
      +you wish. To issustrate the strength of callcc, we also
      +allow exceptions in FUN by means of a conventional try-catch
      +construct, which will desugar to callcc. We also need to
      +introduce the special expression contant throw, but we need to
      +use it as a function argument name in the desugaring macro, so we define
      +it as a name instead of as an expression constant:

      +
        syntax Exp ::= "try" Exp "catch" "(" Name ")" Exp [macro]
      +  syntax Val ::= "callcc"
      +  syntax Name ::= "throw" [token]
      +

      Finally, FUN also allows polymorphic datatype declarations. These
      +will be useful when we define the type system later on.

      +
        syntax Exp ::= "datatype" Type "=" TypeCases Exp [macro]
      +// NOTE: In a future version of K, we want the datatype declaration
      +// to be a construct by itself, but that is not possible currently
      +// because K's parser wronly identifies the __ operation allowing
      +// a declaration to appear in front of an expression with the function
      +// application construct, giving ambiguous parsing errors.
      +

      We next need to define the syntax of types and type cases that appear
      +in datatype declarations.

      +

      Like in many functional languages, type parameters/variables in
      +user-defined types are quoted identifiers.

      +
        syntax TypeVar                        [token]
      +  syntax TypeVars ::= List{TypeVar,","} [klabel(types)]
      +

      Types can be basic types, function types, or user-defined
      +parametric types. In the dynamic semantics we are going to simply ignore
      +all the type declations, so here the syntax of types below is only useful
      +for generating the desired parser. To avoid syntactic ambiguities with
      +the arrow construct for function cases, we use the symbol --> as
      +a constructor for function types:

      +
        syntax TypeName [token]
      +  syntax Type ::= "int" | "bool" | "string"
      +                | Type "-->" Type                            [right]
      +                | "(" Type ")"                             [bracket]
      +                | TypeVar
      +                | TypeName             [klabel(TypeName), avoid]
      +                | Type TypeName   [klabel(Type-TypeName), symbol, macro]
      +                | "(" Types ")" TypeName                    [prefer]
      +  syntax Types ::= List{Type,","} [klabel(types)]
      +  syntax Types ::= TypeVars
      +
      +  syntax TypeCase ::= ConstructorName
      +                    | ConstructorName "(" Types ")"
      +  syntax TypeCases ::= List{TypeCase,"|"}     [klabel(_|TypeCase_)]
      +

      Additional Priorities

      + +
        syntax priorities @__FUN-UNTYPED-COMMON
      +                  > apply
      +                  > arith
      +                  > _:=__FUN-UNTYPED-COMMON
      +                  > let_in__FUN-UNTYPED-COMMON
      +                    letrec_in__FUN-UNTYPED-COMMON
      +                    if_then_else__FUN-UNTYPED-COMMON
      +                  > _;__FUN-UNTYPED-COMMON
      +                  > fun__FUN-UNTYPED-COMMON
      +                  > datatype_=___FUN-UNTYPED-COMMON
      +endmodule
      +
      +module FUN-UNTYPED-MACROS
      +  imports FUN-UNTYPED-COMMON
      +

      Desugaring macros

      + +

      We desugar the list non-constructor operations to functions matching
      +over list patterns. In order to do that we need some new variables; for
      +those, we follow the same convention like in the K tutorial, where we
      +added them as new identifier constructs starting with the character $,
      +so we can easily recognize them when we debug or trace the semantics.

      +
        syntax Name ::= "$h" [token] | "$t" [token]
      +  rule head => fun [$h|$t] -> $h
      +  rule tail => fun [$h|$t] -> $t
      +  rule null? => fun [.Exps] -> true | [$h|$t] -> false
      +

      Multiple-head list patterns desugar into successive one-head patterns:

      +
        rule [E1,E2,Es:Exps|T] => [E1|[E2,Es|T]]                   [anywhere]
      +

      Uncurrying of multiple arguments in functions and binders:

      +
        rule P1 P2 -> E => P1 -> fun P2 -> E                       [anywhere]
      +  rule F P = E => F = fun P -> E                             [anywhere]
      +

      We desugar the try-catch construct into callcc:

      +
        syntax Name ::= "$k" [token] | "$v" [token]
      +  rule try E catch(X) E'
      +    => callcc (fun $k -> (fun throw -> E)(fun X -> $k E'))
      +

      For uniformity, we reduce all types to their general form:

      +
        rule `Type-TypeName`(T:Type, Tn:TypeName) => (T) Tn
      +

      The dynamic semantics ignores all the type declarations:

      +
        rule datatype _T = _TCs E => E
      +
      +endmodule
      +
      +
      +module FUN-UNTYPED-SYNTAX
      +  imports FUN-UNTYPED-COMMON
      +  imports BUILTIN-ID-TOKENS
      +
      +  syntax Name ::= r"[a-z][_a-zA-Z0-9]*"           [token, prec(2)]
      +                | #LowerId                        [token]
      +  syntax ConstructorName ::= #UpperId             [token]
      +  syntax TypeVar  ::= r"['][a-z][_a-zA-Z0-9]*"    [token]
      +  syntax TypeName ::= Name                        [token]
      +endmodule
      +

      Semantics

      + +

      The semantics below is environment-based. A substitution-based
      +definition of FUN is also available, but that drops the &
      +construct as explained above.

      +
      module FUN-UNTYPED
      +  imports FUN-UNTYPED-COMMON
      +  imports FUN-UNTYPED-MACROS
      +  imports DOMAINS
      +  //imports PATTERN-MATCHING
      +

      Configuration

      + +

      The k, env, and store cells are standard
      +(see, for example, the definition of LAMBDA++ or IMP++ in the first
      +part of the K tutorial).

      +
        configuration <T color="yellow">
      +                  <k color="green"> $PGM:Exp </k>
      +                  <env color="violet"> .Map </env>
      +                  <store color="white"> .Map </store>
      +                </T>
      +

      Values and results

      + +

      We only define integers, Booleans and strings as values here, but will
      +add more values later.

      +
        syntax Val ::= Int | Bool | String
      +  syntax Vals ::= Bottoms
      +  syntax KResult ::= Val
      +

      Lookup

      + +
        rule <k> X:Name => V ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... L |-> V ...</store>
      +

      Arithmetic expressions

      + +
        rule I1 * I2 => I1 *Int I2
      +  rule I1 / I2 => I1 /Int I2 when I2 =/=K 0
      +  rule I1 % I2 => I1 %Int I2 when I2 =/=K 0
      +  rule I1 + I2 => I1 +Int I2
      +  rule S1 ^ S2 => S1 +String S2
      +  rule I1 - I2 => I1 -Int I2
      +  rule - I => 0 -Int I
      +  rule I1 < I2 => I1 <Int I2
      +  rule I1 <= I2 => I1 <=Int I2
      +  rule I1 > I2 => I1 >Int I2
      +  rule I1 >= I2 => I1 >=Int I2
      +  rule V1:Val == V2:Val => V1 ==K V2
      +  rule V1:Val != V2:Val => V1 =/=K V2
      +  rule ! T => notBool(T)
      +  rule true  && E => E
      +  rule false && _ => false
      +  rule true  || _ => true
      +  rule false || E => E
      +

      Conditional

      + +
        rule if  true then E else _ => E
      +  rule if false then _ else E => E
      +

      Lists

      + +

      We have already declared the syntactic list of expressions strict, so
      +we can assume that all the elements that appear in a FUN list are
      +evaluated. The only thing left to do is to state that a list of
      +values is a value itself, that is, that the list square-bracket
      +construct is indeed a constructor, and to give the semantics of
      +cons. Since cons is a builtin function and is
      +expected to take two arguments, we have to also state that
      +cons itself is a value (specifically, a function/closure
      +value, but we do not need that level of detail here), and also that
      +cons applied to a value is a value (specifically, it would be
      +a function/closure value that expects the second, list argument):

      +
        rule cons V:Val [Vs:Vals] => [V,Vs]
      +

      Data Constructors

      + +

      Constructors take values as arguments and produce other values:

      +
        syntax Val ::= ConstructorName
      +

      Functions and Closures

      + +

      Like in the environment-based semantics of LAMBDA++ in the first part
      +of the K tutorial, functions evaluate to closures. A closure includes
      +the current environment besides the function contents; the environment
      +will be used at execution time to lookup all the variables that appear
      +free in the function body (we want static scoping in FUN).

      +
        syntax Val ::= closure(Map,Cases)
      +  rule <k> fun Cases => closure(Rho,Cases) ...</k>  <env> Rho </env>
      +

      Note: The reader may want to get familiar with
      +how the pre-defined pattern matching works before proceeding.
      +The best way to do that is to consult
      +k/include/modules/pattern-matching.k.

      +

      We distinguish two cases when the closure is applied.
      +If the first pattern matches, then we pick the first case: switch to
      +the closed environment, get the matching map and bind all its
      +variables, and finally evaluate the function body of the first case,
      +making sure that the environment is properly recovered afterwards.
      +If the first pattern does not match, then we drop it and thus move on
      +to the next one.

      +
        rule (. => getMatching(P, V)) ~> closure(_, P->_ | _) V:Val
      +  rule <k> matchResult(M:Map) ~> closure(Rho, _->E | _) _
      +           => bindMap(M) ~> E ~> setEnv(Rho') ...</k>
      +       <env> Rho' => Rho </env>
      +  rule (matchFailure => .) ~> closure(_, (_->_ | Cs:Cases => Cs)) _
      +//  rule <k> closure(Rho, P->E | _) V:Val
      +//           => bindMap(getMatching(P,V)) ~> E ~> setEnv(Rho') ...</k>
      +//       <env> Rho' => Rho </env>  when isMatching(P,V)
      +//  rule closure(_, (P->_ | Cs:Cases => Cs)) V:Val  when notBool isMatching(P,V)
      +

      Let and Letrec

      + +

      To highlight the similarities and differences between let and
      +letrec, we prefer to give them direct semantics instead of
      +to desugar them like in LAMBDA. See the formal definitions of
      +bindTo, bind, and assignTo at the end of
      +this module. Informally, bindTo(Xs, Es) first
      +evaluates the expressions Es in Exps in the current
      +environment (i.e., it is strict in its second argument), then it binds
      +the variables in Xs in Names to new locations and adds
      +those bindings to the environment, and finally writes the values
      +previously obtained after evaluating the expressions Es to those
      +new locations; bind(Xs) does only the bindings of
      +Xs to new locations and adds those bindings to the environment;
      +and assignTo(Xs,Es) evaluates the expressions
      +Es in the current environment and then it writes the resulting
      +values to the locations to which the variables Xs are already
      +bound to in the environment.

      +

      Therefore, let Xs = Es in E first
      +evaluates Es in the current environment, then adds new
      +bindings for Xs to fresh locations in the environment, then
      +writes the values of Es to those locations, and finally
      +evaluates E in the new environment, making sure that the
      +environment is properly recovered after the evaluation of E.
      +On the other hand, letrec does the same things but in a
      +different order: it first adds new bindings for Xs to fresh
      +locations in the environment, then it evaluates Es in the new
      +environment, then it writes the resulting values to their
      +corresponding locations, and finally it evaluates E and
      +recovers the environment. The crucial difference is that the
      +expressions Es now see the locations of the variables Xs
      +in the environment, so if they are functions, which is typically the
      +case with letrec, their closures will encapsulate in their
      +environments the bindings of all the bound variables, including
      +themselves (thus, we may have a closure value stored at location
      +L, whose environment contains a binding of the form
      +F ↦ L; this way, the closure can invoke
      +itself).

      +
        rule <k> let Bs in E
      +        => bindTo(names(Bs),exps(Bs)) ~> E ~> setEnv(Rho) ...</k>
      +       <env> Rho </env>
      +
      +  rule <k> letrec Bs in E
      +        => bind(names(Bs))~>assignTo(names(Bs),exps(Bs))~>E~>setEnv(Rho)...</k>
      +       <env> Rho </env>
      +

      Recall that our syntax allows let and letrec to
      +take any expression in place of its binding. This allows us to use
      +the already existing function application construct to bind names to
      +functions, such as, e.g., let x y = y in ....
      +The desugaring macro in the syntax module uncurries such declarations,
      +and then the semantic rules above only work when the remaining
      +bindings are identifiers, so the semantics will get stuck on programs
      +that misuse the let and letrec binders.

      +

      References

      + +

      The semantics of references is self-explanatory, except maybe for the
      +desugaring rule of ref, which is further discussed. Note
      +that &X grabs the location of X from the environment.
      +Sequential composition, which is needed only to accumulate the
      +side effects due to assignments, was strict in the first argument.
      +Once evaluated, its first argument is simply discarded:

      +
        syntax Name ::= "$x" [token]
      +  rule ref => fun $x -> & $x
      +  rule <k> & X => L ...</k>  <env>... X |-> L ...</env>
      +  rule <k> @ L:Int => V:Val ...</k>  <store>... L |-> V ...</store>
      +  rule <k> L:Int := V:Val => V ...</k>  <store>... L |-> (_=>V) ...</store>
      +  rule _V:Val; E => E
      +

      The desugaring rule of ref (first rule above) works
      +because & takes a variable and returns its location (like in C).
      +Note that some ``pure'' functional programming researchers strongly dislike
      +the & construct, but favor ref. We refrain from having
      +a personal opinion on this issue here, but support & in the
      +environment-based definition of FUN because it is, technically speaking,
      +more powerful than ref. From a language design perspective, it
      +would be equally easy to drop & and instead give a direct
      +semantics to ref. In fact, this is precisely what we do in the
      +substitution-based definition of FUN, because there appears to be no way
      +to give a substitution-based definition to the & construct.

      +

      Callcc

      + +

      As we know it from the LAMBDA++ tutorial, call-with-current-continuation
      +is quite easy to define in K. We first need to define a special
      +value wrapping an execution context, that is, an environment saying
      +where the variables should be looked up, and a computation structure
      +saying what is left to execute (in a substitution-based definition,
      +this special value would be even simpler, as it would only need to
      +wrap the computation structure---see, for example, the
      +substitution-based semantics of LAMBDA++ in the the first part of the
      +K tutorial, or the substitution-based definition of FUN). Then
      +callcc creates such a value containing the current
      +environment and the current remaining computation, and passes it to
      +its argument function. When/If invoked, the special value replaces
      +the current execution context with its own and continues the execution
      +normally.

      +
        syntax Val ::= cc(Map,K)
      +  rule <k> (callcc V:Val => V cc(Rho,K)) ~> K </k>  <env> Rho </env>
      +  rule <k> cc(Rho,K) V:Val ~> _ => V ~> K </k>  <env> _ => Rho </env>
      +

      Auxiliary operations

      + +

      Environment recovery

      + +

      The environment recovery operation is the same as for the LAMBDA++
      +language in the K tutorial and many other languages provided with the
      +K distribution. The first ``anywhere'' rule below shows an elegant
      +way to achieve the benefits of tail recursion in K.

      +
        syntax KItem ::= setEnv(Map)  // TODO: get rid of env
      +  //rule (setEnv(_) => .) ~> setEnv(_)  [anywhere]
      +  rule <k> _:Val ~> (setEnv(Rho) => .) ...</k> <env> _ => Rho </env>
      +

      bindTo, bind and assignTo

      + +

      The meaning of these operations has already been explained when we
      +discussed the let and letrec language constructs
      +above.

      +
        syntax KItem ::= bindTo(Names,Exps)         [strict(2)]
      +                 | bindMap(Map)
      +                 | bind(Names)
      +
      +  rule (. => getMatchingAux(Xs,Vs)) ~> bindTo(Xs:Names,Vs:Vals)
      +  rule matchResult(M:Map) ~> bindTo(_:Names, _:Vals) => bindMap(M)
      +
      +  rule bindMap(.Map) => .
      +  rule <k> bindMap((X:Name |-> V:Val => .Map) _:Map) ...</k>
      +       <env> Rho => Rho[X <- !L:Int] </env>
      +       <store>... .Map => !L |-> V ...</store>
      +
      +  rule bind(.Names) => .
      +  rule <k> bind(X:Name,Xs => Xs) ...</k>
      +       <env> Rho => Rho[X <- !_L:Int] </env>
      +
      +  syntax KItem ::= assignTo(Names,Exps)  [strict(2)]
      +
      +  rule <k> assignTo(.Names,.Vals) => . ...</k>
      +  rule <k> assignTo((X:Name,Xs => Xs),(V:Val,Vs:Vals => Vs)) ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... .Map => L |-> V ...</store>
      +

      Getters

      + +

      The following auxiliary operations extract the list of identifiers
      +and of expressions in a binding, respectively.

      +
        syntax Names ::= names(Bindings)  [function]
      +  rule names(.Bindings) => .Names
      +  rule names(X:Name=_ and Bs) => (X,names(Bs))::Names
      +
      +  syntax Exps ::= exps(Bindings)  [function]
      +  rule exps(.Bindings) => .Exps
      +  rule exps(_:Name=E and Bs) => E,exps(Bs)
      +
      +  /* Extra kore stuff */
      +  syntax KResult ::= Vals
      +  syntax Exps ::= Names
      +  syntax Names ::= Bottoms
      +
      +  /* Matching */
      +  syntax MatchResult ::= getMatching(Exp, Val)                      [function]
      +                       | getMatchingAux(Exps, Vals)                 [function]
      +                       | mergeMatching(MatchResult, MatchResult)    [function]
      +                       | matchResult(Map)
      +                       | "matchFailure"
      +
      +  rule getMatching(C:ConstructorName(Es:Exps), C(Vs:Vals)) => getMatchingAux(Es, Vs)
      +  rule getMatching([Es:Exps], [Vs:Vals])                   => getMatchingAux(Es, Vs)
      +  rule getMatching(C:ConstructorName, C) => matchResult(.Map)
      +  rule getMatching(B:Bool, B)            => matchResult(.Map)
      +  rule getMatching(I:Int, I)             => matchResult(.Map)
      +  rule getMatching(S:String, S)          => matchResult(.Map)
      +  rule getMatching(N:Name, V:Val) => matchResult(N |-> V)
      +  rule getMatching(_, _) => matchFailure        [owise]
      +
      +  rule getMatchingAux((E:Exp, Es:Exps), (V:Val, Vs:Vals)) => mergeMatching(getMatching(E, V), getMatchingAux(Es, Vs))
      +  rule getMatchingAux(.Exps, .Vals)                       => matchResult(.Map)
      +  rule getMatchingAux(_, _) => matchFailure     [owise]
      +
      +  rule mergeMatching(matchResult(M1:Map), matchResult(M2:Map)) => matchResult(M1 M2)
      +    requires intersectSet(keys(M1), keys(M2)) ==K .Set
      +  //rule mergeMatching(_, _) => matchFailure      [owsie]
      +  rule mergeMatching(matchResult(_:Map), matchFailure) => matchFailure
      +  rule mergeMatching(matchFailure, matchResult(_:Map)) => matchFailure
      +  rule mergeMatching(matchFailure, matchFailure)       => matchFailure
      +

      Besides the generic decomposition rules for patterns and values,
      +we also want to allow [head|tail] matching for lists, so we add
      +the following custom pattern decomposition rule:

      +
        rule getMatching([H:Exp | T:Exp], [V:Val, Vs:Vals])
      +    => getMatchingAux((H, T), (V, [Vs]))
      +endmodule
      +

      Go to Lesson 2, FUN untyped, Substitution-Based.

      +

      FUN — Untyped — Environment

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K semantic definition of the untyped FUN language.
      +FUN is a pedagogical and research language that captures the essence
      +of the functional programming paradigm, extended with several features
      +often encountered in functional programming languages.
      +Like many functional languages, FUN is an expression language, that
      +is, everything, including the main program, is an expression.
      +Functions can be declared anywhere and are first class values in the
      +language.
      +FUN is call-by-value here, but it has been extended (as student
      +homework assignments) with other parameter-passing styles.
      +To make it more interesting and to highlight some of K's strengths,
      +FUN includes the following features:

      +
        +
      • +

        The basic builtin data-types of integers, booleans and strings.

        +
      • +
      • +

        Builtin lists, which can hold any elements, including other lists.
        +Lists are enclosed in square brackets and their elements are
        +comma-separated; e.g., [1,2,3].

        +
      • +
      • +

        User-defined data-types, by means of constructor terms.
        +Constructor names start with a capital letter (while any other
        +identifier in the language starts with a lowercase letter), and they
        +can be followed by an arbitrary number of comma-separated arguments
        +enclosed in parentheses; parentheses are not needed when the
        +constructor takes no arguments.
        +For example, Pair(5,7) is a constructor term holding two
        +numbers, Cons(1,Cons(2,Cons(3,Nil))) is a list-like
        +constructor term holding 3 elements, and
        +Tree(Tree(Leaf(1), Leaf(2)), Leaf(3)) is a tree-like
        +constructor term holding 3 elements.
        +In the untyped version of the FUN language, no type checking or
        +inference is performed to ensure that the data constructors are used
        +correctly.
        +The execution will simply get stuck when they are misused.
        +Moreover, since no type checking is performed, the data-types are not
        +even declared in the untyped version of FUN.

        +
      • +
      • +

        Functions and let/letrec binders can take
        +multiple space-separated arguments, but these are desugared to
        +ones that only take one argument, by currying. For example, the
        +expressions

        +
        fun x y -> x y
        +let x y = y in x
        +

        are desugared, respectively, into the following expressions:

        +
        fun x -> fun y -> x y
        +let x = fun y -> y in x
        +
      • +
      • +

        Functions can be defined using pattern matching over the
        +available data-types. For example, the program

        +
        letrec max = fun [h] -> h
        +             |   [h|t] -> let x = max t
        +                          in  if h > x then h else x
        +in max [1, 3, 5, 2, 4, 0, -1, -5]
        +

        defines a function max that calculates the maximum element of
        +a non-empty list, and the function

        +
        letrec ack = fun Pair(0,n) -> n + 1
        +             |   Pair(m,0) -> ack Pair(m - 1, 1)
        +             |   Pair(m,n) -> ack Pair(m - 1, ack Pair(m, n - 1))
        +in ack Pair(2,3)
        +

        calculates the Ackermann function applied to a particular pair of numbers.
        +Patterns can be nested. Patterns can currently only be used in function
        +definitions, and not directly in let/letrec binders.
        +For example, this is not allowed:

        +
        letrec Pai(x,y) = Pair(1,2) in x+y
        +

        But this is allowed:

        +
        let f Pair(x,y) = x+y in f Pair(1,2)
        +

        because it is first reduced to

        +
        let f = fun Pair(x,y) -> x+y in f Pair(1,2)
        +

        by uncurrying of the let binder, and pattern matching is
        +allowed in function arguments.

        +
      • +
      • +

        We include a callcc construct, for two reasons: first,
        +several functional languages support this construct; second, some
        +semantic frameworks have difficulties defining it. Not K.

        +
      • +
      • +

        Finally, we include mutables by means of referencing an
        +expression, getting the reference of a variable, dereferencing and
        +assignment. We include these for the same reasons as above: there are
        +languages which have them, and they are not easy to define in some
        +semantic frameworks.

        +
      • +
      +

      Like in many other languages, some of FUN's constructs can be
      +desugared into a smaller set of basic constructs. We do that as usual,
      +using macros, and then we only give semantics to the core constructs.

      +

      Note:
      +We recommend the reader to first consult the dynamic semantics of the
      +LAMBDA++ language in the first part of the K Tutorial.
      +To keep the comments below small and focused, we will not re-explain
      +functional or K features that have already been explained in there.

      +

      Syntax

      + +
      //require "modules/pattern-matching.k"
      +
      +module FUN-UNTYPED-COMMON
      +  imports DOMAINS-SYNTAX
      +

      FUN is an expression language. The constructs below fall into
      +several categories: names, arithmetic constructs, conventional
      +functional constructs, patterns and pattern matching, data constructs,
      +lists, references, and call-with-current-continuation (callcc).
      +The arithmetic constructs are standard; they are present in almost all
      +our K language definitions. The meaning of FUN's constructs are
      +discussed in more depth when we define their semantics in the next
      +module.

      +

      The Syntactic Constructs

      + +

      We start with the syntactic definition of FUN names.
      +We have several categories of names: ones to be used for functions and
      +variables, others to be used for data constructors, others for types and
      +others for type variables. We will introduce them as needed, starting
      +with the former category. We prefer the names of variables and functions
      +to start with lower case letters. We take the freedom to tacitly introduce
      +syntactic lists/sequences for each nonterminal for which we need them:

      +
        syntax Name                                      [token]
      +  syntax Names ::= List{Name,","}                  [klabel(exps)]
      +

      Expression constructs will be defined throughtout the syntax module.
      +Below are the very basic ones, namely the builtins, the names, and the
      +parentheses used as brackets for grouping. Lists of expressions are
      +declared strict, so all expressions in the list get evaluated whenever
      +the list is on a position which can be evaluated:

      +
        syntax Exp ::= Int | Bool | String | Name
      +               | "(" Exp ")"                       [bracket]
      +  syntax Exps  ::= List{Exp,","}                   [strict, klabel(exps)]
      +  syntax Val
      +  syntax Exp ::= Val
      +  syntax Exps ::= Vals
      +  syntax Vals ::= List{Val,","}                    [klabel(exps)]
      +  syntax Bottom
      +  syntax Bottoms ::= List{Bottom,","}              [klabel(exps)]
      +

      We next define the syntax of arithmetic constructs, together with
      +their relative priorities and left-/non-associativities. We also
      +tag all these rules as members of a new group, "arith", so we can more easily
      +define global syntax priorities later (at the end of the syntax module).

      +
        syntax Exp ::= left:
      +                 Exp "*" Exp                       [strict, group(arith)]
      +               | Exp "/" Exp                       [strict, group(arith)]
      +               | Exp "%" Exp                       [strict, group(arith)]
      +               > left:
      +                 Exp "+" Exp                       [strict, left, group(arith)]
      +               | Exp "^" Exp                       [strict, left, group(arith)]
      +// left attribute should not be necessary; currently a parsing bug
      +               | Exp "-" Exp                       [strict, prefer, group(arith)]
      +// the "prefer" attribute above is to not parse x-1 as x(-1)
      +// Due to some parsing problems, we currently cannot add unary minus:
      +               | "-" Exp                           [strict, group(arith)]
      +               > non-assoc:
      +                 Exp "<" Exp                       [strict, group(arith)]
      +               | Exp "<=" Exp                      [strict, group(arith)]
      +               | Exp ">" Exp                       [strict, group(arith)]
      +               | Exp ">=" Exp                      [strict, group(arith)]
      +               | Exp "==" Exp                      [strict, group(arith)]
      +               | Exp "!=" Exp                      [strict, group(arith)]
      +               > "!" Exp                           [strict, group(arith)]
      +               > Exp "&&" Exp                      [strict(1), left, group(arith)]
      +               > Exp "||" Exp                      [strict(1), left, group(arith)]
      +

      The conditional construct has the expected evaluation strategy,
      +stating that only the first argument is evaluate:

      +
        syntax Exp ::= "if" Exp "then" Exp "else" Exp    [strict(1)]
      +

      FUN's builtin lists are formed by enclosing comma-separated
      +sequences of expressions (i.e., terms of sort Exps) in square
      +brackets. The list constructor cons adds a new element to the
      +top of the list, head and tail get the first element
      +and the tail sublist of a list if they exist, respectively, and get
      +stuck otherwise, and null?? tests whether a list is empty or
      +not; syntactically, these are just expression constants.
      +In function patterns, we are also going to allow patterns following the
      +usual head/tail notation; for example, the pattern [x_1,...,x_n|t]
      +binds x_1, ..., x_n to the first elements of the matched list,
      +and t to the list formed with the remaining elements. We define list
      +patterns as ordinary expression constructs, although we will make sure that
      +we do not give them semantics if they appear in any other place then in a
      +function case pattern.

      +
        syntax Exp ::= "[" Exps "]"                             [strict, klabel(list)]
      +               | "head" [macro] | "tail" [macro] | "null?" [macro]
      +               | "[" Exps "|" Exp "]"
      +  syntax Val ::= "[" Vals "]"                             [klabel(list)]
      +  syntax Cons ::= "cons"
      +  syntax Val ::= Cons
      +  syntax Val ::= Cons Val                                 [klabel(apply)]
      +

      Data constructors start with capital letters and they may or may
      +not have arguments. We need to use the attribute "prefer" to make
      +sure that, e.g., Cons(a) parses as constructor Cons with
      +argument a, and not as the expression Cons (because
      +constructor names are also expressions) regarded as a function applied
      +to the expression a. Also, note that the constructor is strict
      +in its second argument, because we want to evaluate its arguments but
      +not the constuctor name itsef.

      +
        syntax ConstructorName                         [token]
      +  syntax Exp ::= ConstructorName
      +               | ConstructorName "(" Exps ")"    [prefer, strict(2), klabel(constructor)]
      +  syntax Val ::= ConstructorName "(" Vals ")"    [klabel(constructor)]
      +

      A function is essentially a |-separated ordered
      +sequence of cases, each case of the form pattern -> expression,
      +preceded by the language construct fun. Patterns will be defined
      +shortly, both for the builtin lists and for user-defined constructors.
      +Recall that the syntax we define in K is not meant to serve as a
      +ultimate parser for the defined language, but rather as a convenient
      +notation for K abstract syntax trees, which we prefer when we write
      +the semantic rules. It is therefore often the case that we define a
      +more ``generous'' syntax than we want to allow programs to use.
      +We do it here, too. Specifically, the syntax of Cases
      +below allows any expressions to appear as pattern. This syntactic
      +relaxation permits many wrong programs to be parsed, but that is not a
      +problem because we are not going to give semantics to wrong combinations,
      +so those programs will get stuck; moreover, our type inferencer will reject
      +those programs anyway. Function application is just concatenation of
      +expressions, without worrying about type correctness. Again, the type
      +system will reject type-incorrect programs.

      +
        syntax Exp ::= "fun" Cases
      +               | Exp Exp                              [strict, left, klabel(apply)]
      +// NOTE: We would like eventually to also have Exp "(" Exps ")
      +  syntax Case  ::= Exp "->" Exp
      +  syntax Cases ::= List{Case, "|"}
      +

      The let and letrec binders have the usual syntax
      +and functional meaning. We allow multiple and-separated bindings.
      +Like for the function cases above, we allow a more generous syntax for
      +the left-hand sides of bindings, noting that the semantics will get stuck
      +on incorrect bindings and that the type system will reject those programs.

      +
        syntax Exp ::= "let" Bindings "in" Exp
      +               | "letrec" Bindings "in" Exp                 [prefer]
      +// The "prefer" attribute for letrec currently needed due to tool bug,
      +// to make sure that "letrec" is not parsed as "let rec".
      +  syntax Binding  ::= Exp "=" Exp
      +  syntax Bindings ::= List{Binding,"and"}
      +

      References are first class values in FUN. The construct ref
      +takes an expression, evaluates it, and then it stores the resulting value
      +at a fresh location in the store and returns that reference. Syntactically,
      +ref is just an expression constant. The construct &
      +takes a name as argument and evaluates to a reference, namely the store
      +reference where the variable passed as argument stores its value; this
      +construct is a bit controversial and is further discussed in the
      +environment-based semantics of the FUN language, where we desugar
      +ref to it. The construct @ takes a reference
      +and evaluates to the value stored there. The construct := takes
      +two expressions, the first expected to evaluate to a reference; the value
      +of its second argument will be stored at the location to which the first
      +points (the old value is thus lost). Finally, since expression evaluation
      +now has side effects, it makes sense to also add a sequential composition
      +construct, which is sequentially strict. This evaluates to the value of
      +its second argument; the value of the first argument is lost (which has
      +therefore been evaluated only for its side effects.

      +
        syntax Exp ::= "ref"                             [macro]
      +               | "&" Name
      +               | "@" Exp                                     [strict]
      +               | Exp ":=" Exp                                [strict]
      +               | Exp ";" Exp                       [strict(1), right]
      +

      Call-with-current-continuation, named callcc in FUN, is a
      +powerful control operator that originated in the Scheme programming
      +language, but it now exists in many other functional languages. It works
      +by evaluating its argument, expected to evaluate to a function, and by
      +passing the current continuation, or evaluation context (or computation,
      +in K terminology), as a special value to it. When/If this special value
      +is invoked, the current context is discarded and replaced with the one
      +held by the special value and the computation continues from there.
      +It is like taking a snapshot of the execution context at some moment
      +in time and then, when desired, being able to get back in time to that
      +point. If you like games, it is like saving the game now (so you can
      +work on your homework!) and then continuing the game tomorrow or whenever
      +you wish. To issustrate the strength of callcc, we also
      +allow exceptions in FUN by means of a conventional try-catch
      +construct, which will desugar to callcc. We also need to
      +introduce the special expression contant throw, but we need to
      +use it as a function argument name in the desugaring macro, so we define
      +it as a name instead of as an expression constant:

      +
        syntax Exp ::= "try" Exp "catch" "(" Name ")" Exp [macro]
      +  syntax Val ::= "callcc"
      +  syntax Name ::= "throw" [token]
      +

      Finally, FUN also allows polymorphic datatype declarations. These
      +will be useful when we define the type system later on.

      +
        syntax Exp ::= "datatype" Type "=" TypeCases Exp [macro]
      +// NOTE: In a future version of K, we want the datatype declaration
      +// to be a construct by itself, but that is not possible currently
      +// because K's parser wronly identifies the __ operation allowing
      +// a declaration to appear in front of an expression with the function
      +// application construct, giving ambiguous parsing errors.
      +

      We next need to define the syntax of types and type cases that appear
      +in datatype declarations.

      +

      Like in many functional languages, type parameters/variables in
      +user-defined types are quoted identifiers.

      +
        syntax TypeVar                        [token]
      +  syntax TypeVars ::= List{TypeVar,","} [klabel(types)]
      +

      Types can be basic types, function types, or user-defined
      +parametric types. In the dynamic semantics we are going to simply ignore
      +all the type declations, so here the syntax of types below is only useful
      +for generating the desired parser. To avoid syntactic ambiguities with
      +the arrow construct for function cases, we use the symbol --> as
      +a constructor for function types:

      +
        syntax TypeName [token]
      +  syntax Type ::= "int" | "bool" | "string"
      +                | Type "-->" Type                            [right]
      +                | "(" Type ")"                             [bracket]
      +                | TypeVar
      +                | TypeName             [klabel(TypeName), avoid]
      +                | Type TypeName   [klabel(Type-TypeName), symbol, macro]
      +                | "(" Types ")" TypeName                    [prefer]
      +  syntax Types ::= List{Type,","} [klabel(types)]
      +  syntax Types ::= TypeVars
      +
      +  syntax TypeCase ::= ConstructorName
      +                    | ConstructorName "(" Types ")"
      +  syntax TypeCases ::= List{TypeCase,"|"}     [klabel(_|TypeCase_)]
      +

      Additional Priorities

      + +
        syntax priorities @__FUN-UNTYPED-COMMON
      +                  > apply
      +                  > arith
      +                  > _:=__FUN-UNTYPED-COMMON
      +                  > let_in__FUN-UNTYPED-COMMON
      +                    letrec_in__FUN-UNTYPED-COMMON
      +                    if_then_else__FUN-UNTYPED-COMMON
      +                  > _;__FUN-UNTYPED-COMMON
      +                  > fun__FUN-UNTYPED-COMMON
      +                  > datatype_=___FUN-UNTYPED-COMMON
      +endmodule
      +
      +module FUN-UNTYPED-MACROS
      +  imports FUN-UNTYPED-COMMON
      +

      Desugaring macros

      + +

      We desugar the list non-constructor operations to functions matching
      +over list patterns. In order to do that we need some new variables; for
      +those, we follow the same convention like in the K tutorial, where we
      +added them as new identifier constructs starting with the character $,
      +so we can easily recognize them when we debug or trace the semantics.

      +
        syntax Name ::= "$h" [token] | "$t" [token]
      +  rule head => fun [$h|$t] -> $h
      +  rule tail => fun [$h|$t] -> $t
      +  rule null? => fun [.Exps] -> true | [$h|$t] -> false
      +

      Multiple-head list patterns desugar into successive one-head patterns:

      +
        rule [E1,E2,Es:Exps|T] => [E1|[E2,Es|T]]                   [anywhere]
      +

      Uncurrying of multiple arguments in functions and binders:

      +
        rule P1 P2 -> E => P1 -> fun P2 -> E                       [anywhere]
      +  rule F P = E => F = fun P -> E                             [anywhere]
      +

      We desugar the try-catch construct into callcc:

      +
        syntax Name ::= "$k" [token] | "$v" [token]
      +  rule try E catch(X) E'
      +    => callcc (fun $k -> (fun throw -> E)(fun X -> $k E'))
      +

      For uniformity, we reduce all types to their general form:

      +
        rule `Type-TypeName`(T:Type, Tn:TypeName) => (T) Tn
      +

      The dynamic semantics ignores all the type declarations:

      +
        rule datatype _T = _TCs E => E
      +
      +endmodule
      +
      +
      +module FUN-UNTYPED-SYNTAX
      +  imports FUN-UNTYPED-COMMON
      +  imports BUILTIN-ID-TOKENS
      +
      +  syntax Name ::= r"[a-z][_a-zA-Z0-9]*"           [token, prec(2)]
      +                | #LowerId                        [token]
      +  syntax ConstructorName ::= #UpperId             [token]
      +  syntax TypeVar  ::= r"['][a-z][_a-zA-Z0-9]*"    [token]
      +  syntax TypeName ::= Name                        [token]
      +endmodule
      +

      Semantics

      + +

      The semantics below is environment-based. A substitution-based
      +definition of FUN is also available, but that drops the &
      +construct as explained above.

      +
      module FUN-UNTYPED
      +  imports FUN-UNTYPED-COMMON
      +  imports FUN-UNTYPED-MACROS
      +  imports DOMAINS
      +  //imports PATTERN-MATCHING
      +

      Configuration

      + +

      The k, env, and store cells are standard
      +(see, for example, the definition of LAMBDA++ or IMP++ in the first
      +part of the K tutorial).

      +
        configuration <T color="yellow">
      +                  <k color="green"> $PGM:Exp </k>
      +                  <env color="violet"> .Map </env>
      +                  <store color="white"> .Map </store>
      +                </T>
      +

      Values and results

      + +

      We only define integers, Booleans and strings as values here, but will
      +add more values later.

      +
        syntax Val ::= Int | Bool | String
      +  syntax Vals ::= Bottoms
      +  syntax KResult ::= Val
      +

      Lookup

      + +
        rule <k> X:Name => V ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... L |-> V ...</store>
      +

      Arithmetic expressions

      + +
        rule I1 * I2 => I1 *Int I2
      +  rule I1 / I2 => I1 /Int I2 when I2 =/=K 0
      +  rule I1 % I2 => I1 %Int I2 when I2 =/=K 0
      +  rule I1 + I2 => I1 +Int I2
      +  rule S1 ^ S2 => S1 +String S2
      +  rule I1 - I2 => I1 -Int I2
      +  rule - I => 0 -Int I
      +  rule I1 < I2 => I1 <Int I2
      +  rule I1 <= I2 => I1 <=Int I2
      +  rule I1 > I2 => I1 >Int I2
      +  rule I1 >= I2 => I1 >=Int I2
      +  rule V1:Val == V2:Val => V1 ==K V2
      +  rule V1:Val != V2:Val => V1 =/=K V2
      +  rule ! T => notBool(T)
      +  rule true  && E => E
      +  rule false && _ => false
      +  rule true  || _ => true
      +  rule false || E => E
      +

      Conditional

      + +
        rule if  true then E else _ => E
      +  rule if false then _ else E => E
      +

      Lists

      + +

      We have already declared the syntactic list of expressions strict, so
      +we can assume that all the elements that appear in a FUN list are
      +evaluated. The only thing left to do is to state that a list of
      +values is a value itself, that is, that the list square-bracket
      +construct is indeed a constructor, and to give the semantics of
      +cons. Since cons is a builtin function and is
      +expected to take two arguments, we have to also state that
      +cons itself is a value (specifically, a function/closure
      +value, but we do not need that level of detail here), and also that
      +cons applied to a value is a value (specifically, it would be
      +a function/closure value that expects the second, list argument):

      +
        rule cons V:Val [Vs:Vals] => [V,Vs]
      +

      Data Constructors

      + +

      Constructors take values as arguments and produce other values:

      +
        syntax Val ::= ConstructorName
      +

      Functions and Closures

      + +

      Like in the environment-based semantics of LAMBDA++ in the first part
      +of the K tutorial, functions evaluate to closures. A closure includes
      +the current environment besides the function contents; the environment
      +will be used at execution time to lookup all the variables that appear
      +free in the function body (we want static scoping in FUN).

      +
        syntax Val ::= closure(Map,Cases)
      +  rule <k> fun Cases => closure(Rho,Cases) ...</k>  <env> Rho </env>
      +

      Note: The reader may want to get familiar with
      +how the pre-defined pattern matching works before proceeding.
      +The best way to do that is to consult
      +k/include/modules/pattern-matching.k.

      +

      We distinguish two cases when the closure is applied.
      +If the first pattern matches, then we pick the first case: switch to
      +the closed environment, get the matching map and bind all its
      +variables, and finally evaluate the function body of the first case,
      +making sure that the environment is properly recovered afterwards.
      +If the first pattern does not match, then we drop it and thus move on
      +to the next one.

      +
        rule (. => getMatching(P, V)) ~> closure(_, P->_ | _) V:Val
      +  rule <k> matchResult(M:Map) ~> closure(Rho, _->E | _) _
      +           => bindMap(M) ~> E ~> setEnv(Rho') ...</k>
      +       <env> Rho' => Rho </env>
      +  rule (matchFailure => .) ~> closure(_, (_->_ | Cs:Cases => Cs)) _
      +//  rule <k> closure(Rho, P->E | _) V:Val
      +//           => bindMap(getMatching(P,V)) ~> E ~> setEnv(Rho') ...</k>
      +//       <env> Rho' => Rho </env>  when isMatching(P,V)
      +//  rule closure(_, (P->_ | Cs:Cases => Cs)) V:Val  when notBool isMatching(P,V)
      +

      Let and Letrec

      + +

      To highlight the similarities and differences between let and
      +letrec, we prefer to give them direct semantics instead of
      +to desugar them like in LAMBDA. See the formal definitions of
      +bindTo, bind, and assignTo at the end of
      +this module. Informally, bindTo(Xs, Es) first
      +evaluates the expressions Es in Exps in the current
      +environment (i.e., it is strict in its second argument), then it binds
      +the variables in Xs in Names to new locations and adds
      +those bindings to the environment, and finally writes the values
      +previously obtained after evaluating the expressions Es to those
      +new locations; bind(Xs) does only the bindings of
      +Xs to new locations and adds those bindings to the environment;
      +and assignTo(Xs,Es) evaluates the expressions
      +Es in the current environment and then it writes the resulting
      +values to the locations to which the variables Xs are already
      +bound to in the environment.

      +

      Therefore, let Xs = Es in E first
      +evaluates Es in the current environment, then adds new
      +bindings for Xs to fresh locations in the environment, then
      +writes the values of Es to those locations, and finally
      +evaluates E in the new environment, making sure that the
      +environment is properly recovered after the evaluation of E.
      +On the other hand, letrec does the same things but in a
      +different order: it first adds new bindings for Xs to fresh
      +locations in the environment, then it evaluates Es in the new
      +environment, then it writes the resulting values to their
      +corresponding locations, and finally it evaluates E and
      +recovers the environment. The crucial difference is that the
      +expressions Es now see the locations of the variables Xs
      +in the environment, so if they are functions, which is typically the
      +case with letrec, their closures will encapsulate in their
      +environments the bindings of all the bound variables, including
      +themselves (thus, we may have a closure value stored at location
      +L, whose environment contains a binding of the form
      +F ↦ L; this way, the closure can invoke
      +itself).

      +
        rule <k> let Bs in E
      +        => bindTo(names(Bs),exps(Bs)) ~> E ~> setEnv(Rho) ...</k>
      +       <env> Rho </env>
      +
      +  rule <k> letrec Bs in E
      +        => bind(names(Bs))~>assignTo(names(Bs),exps(Bs))~>E~>setEnv(Rho)...</k>
      +       <env> Rho </env>
      +

      Recall that our syntax allows let and letrec to
      +take any expression in place of its binding. This allows us to use
      +the already existing function application construct to bind names to
      +functions, such as, e.g., let x y = y in ....
      +The desugaring macro in the syntax module uncurries such declarations,
      +and then the semantic rules above only work when the remaining
      +bindings are identifiers, so the semantics will get stuck on programs
      +that misuse the let and letrec binders.

      +

      References

      + +

      The semantics of references is self-explanatory, except maybe for the
      +desugaring rule of ref, which is further discussed. Note
      +that &X grabs the location of X from the environment.
      +Sequential composition, which is needed only to accumulate the
      +side effects due to assignments, was strict in the first argument.
      +Once evaluated, its first argument is simply discarded:

      +
        syntax Name ::= "$x" [token]
      +  rule ref => fun $x -> & $x
      +  rule <k> & X => L ...</k>  <env>... X |-> L ...</env>
      +  rule <k> @ L:Int => V:Val ...</k>  <store>... L |-> V ...</store>
      +  rule <k> L:Int := V:Val => V ...</k>  <store>... L |-> (_=>V) ...</store>
      +  rule _V:Val; E => E
      +

      The desugaring rule of ref (first rule above) works
      +because & takes a variable and returns its location (like in C).
      +Note that some ``pure'' functional programming researchers strongly dislike
      +the & construct, but favor ref. We refrain from having
      +a personal opinion on this issue here, but support & in the
      +environment-based definition of FUN because it is, technically speaking,
      +more powerful than ref. From a language design perspective, it
      +would be equally easy to drop & and instead give a direct
      +semantics to ref. In fact, this is precisely what we do in the
      +substitution-based definition of FUN, because there appears to be no way
      +to give a substitution-based definition to the & construct.

      +

      Callcc

      + +

      As we know it from the LAMBDA++ tutorial, call-with-current-continuation
      +is quite easy to define in K. We first need to define a special
      +value wrapping an execution context, that is, an environment saying
      +where the variables should be looked up, and a computation structure
      +saying what is left to execute (in a substitution-based definition,
      +this special value would be even simpler, as it would only need to
      +wrap the computation structure---see, for example, the
      +substitution-based semantics of LAMBDA++ in the the first part of the
      +K tutorial, or the substitution-based definition of FUN). Then
      +callcc creates such a value containing the current
      +environment and the current remaining computation, and passes it to
      +its argument function. When/If invoked, the special value replaces
      +the current execution context with its own and continues the execution
      +normally.

      +
        syntax Val ::= cc(Map,K)
      +  rule <k> (callcc V:Val => V cc(Rho,K)) ~> K </k>  <env> Rho </env>
      +  rule <k> cc(Rho,K) V:Val ~> _ => V ~> K </k>  <env> _ => Rho </env>
      +

      Auxiliary operations

      + +

      Environment recovery

      + +

      The environment recovery operation is the same as for the LAMBDA++
      +language in the K tutorial and many other languages provided with the
      +K distribution. The first ``anywhere'' rule below shows an elegant
      +way to achieve the benefits of tail recursion in K.

      +
        syntax KItem ::= setEnv(Map)  // TODO: get rid of env
      +  //rule (setEnv(_) => .) ~> setEnv(_)  [anywhere]
      +  rule <k> _:Val ~> (setEnv(Rho) => .) ...</k> <env> _ => Rho </env>
      +

      bindTo, bind and assignTo

      + +

      The meaning of these operations has already been explained when we
      +discussed the let and letrec language constructs
      +above.

      +
        syntax KItem ::= bindTo(Names,Exps)         [strict(2)]
      +                 | bindMap(Map)
      +                 | bind(Names)
      +
      +  rule (. => getMatchingAux(Xs,Vs)) ~> bindTo(Xs:Names,Vs:Vals)
      +  rule matchResult(M:Map) ~> bindTo(_:Names, _:Vals) => bindMap(M)
      +
      +  rule bindMap(.Map) => .
      +  rule <k> bindMap((X:Name |-> V:Val => .Map) _:Map) ...</k>
      +       <env> Rho => Rho[X <- !L:Int] </env>
      +       <store>... .Map => !L |-> V ...</store>
      +
      +  rule bind(.Names) => .
      +  rule <k> bind(X:Name,Xs => Xs) ...</k>
      +       <env> Rho => Rho[X <- !_L:Int] </env>
      +
      +  syntax KItem ::= assignTo(Names,Exps)  [strict(2)]
      +
      +  rule <k> assignTo(.Names,.Vals) => . ...</k>
      +  rule <k> assignTo((X:Name,Xs => Xs),(V:Val,Vs:Vals => Vs)) ...</k>
      +       <env>... X |-> L ...</env>
      +       <store>... .Map => L |-> V ...</store>
      +

      Getters

      + +

      The following auxiliary operations extract the list of identifiers
      +and of expressions in a binding, respectively.

      +
        syntax Names ::= names(Bindings)  [function]
      +  rule names(.Bindings) => .Names
      +  rule names(X:Name=_ and Bs) => (X,names(Bs))::Names
      +
      +  syntax Exps ::= exps(Bindings)  [function]
      +  rule exps(.Bindings) => .Exps
      +  rule exps(_:Name=E and Bs) => E,exps(Bs)
      +
      +  /* Extra kore stuff */
      +  syntax KResult ::= Vals
      +  syntax Exps ::= Names
      +  syntax Names ::= Bottoms
      +
      +  /* Matching */
      +  syntax MatchResult ::= getMatching(Exp, Val)                      [function]
      +                       | getMatchingAux(Exps, Vals)                 [function]
      +                       | mergeMatching(MatchResult, MatchResult)    [function]
      +                       | matchResult(Map)
      +                       | "matchFailure"
      +
      +  rule getMatching(C:ConstructorName(Es:Exps), C(Vs:Vals)) => getMatchingAux(Es, Vs)
      +  rule getMatching([Es:Exps], [Vs:Vals])                   => getMatchingAux(Es, Vs)
      +  rule getMatching(C:ConstructorName, C) => matchResult(.Map)
      +  rule getMatching(B:Bool, B)            => matchResult(.Map)
      +  rule getMatching(I:Int, I)             => matchResult(.Map)
      +  rule getMatching(S:String, S)          => matchResult(.Map)
      +  rule getMatching(N:Name, V:Val) => matchResult(N |-> V)
      +  rule getMatching(_, _) => matchFailure        [owise]
      +
      +  rule getMatchingAux((E:Exp, Es:Exps), (V:Val, Vs:Vals)) => mergeMatching(getMatching(E, V), getMatchingAux(Es, Vs))
      +  rule getMatchingAux(.Exps, .Vals)                       => matchResult(.Map)
      +  rule getMatchingAux(_, _) => matchFailure     [owise]
      +
      +  rule mergeMatching(matchResult(M1:Map), matchResult(M2:Map)) => matchResult(M1 M2)
      +    requires intersectSet(keys(M1), keys(M2)) ==K .Set
      +  //rule mergeMatching(_, _) => matchFailure      [owsie]
      +  rule mergeMatching(matchResult(_:Map), matchFailure) => matchFailure
      +  rule mergeMatching(matchFailure, matchResult(_:Map)) => matchFailure
      +  rule mergeMatching(matchFailure, matchFailure)       => matchFailure
      +

      Besides the generic decomposition rules for patterns and values,
      +we also want to allow [head|tail] matching for lists, so we add
      +the following custom pattern decomposition rule:

      +
        rule getMatching([H:Exp | T:Exp], [V:Val, Vs:Vals])
      +    => getMatchingAux((H, T), (V, [Vs]))
      +endmodule
      +

      Go to Lesson 2, FUN untyped, Substitution-Based.

      +

      FUN — Untyped — Substitution

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the substitution-based definition of FUN. For additional
      +explanations regarding the semantics of the various FUN constructs,
      +the reader should consult the emvironment-based definition of FUN.

      +

      Syntax

      + +
      require "substitution.md"
      +//require "modules/pattern-matching.k"
      +
      +module FUN-UNTYPED-COMMON
      +  imports DOMAINS-SYNTAX
      +

      The Syntactic Constructs

      + +
        syntax Name
      +  syntax Names ::= List{Name,","}
      +
      +  syntax Exp ::= Int | Bool | String | Name
      +               | "(" Exp ")"                       [bracket]
      +  syntax Exps  ::= List{Exp,","}                   [strict]
      +  syntax Val
      +  syntax Vals ::= List{Val,","}
      +
      +  syntax Exp ::= left:
      +                 Exp "*" Exp                       [strict, arith]
      +               | Exp "/" Exp                       [strict, arith]
      +               | Exp "%" Exp                       [strict, arith]
      +               > left:
      +                 Exp "+" Exp                       [strict, left, arith]
      +               | Exp "^" Exp                       [strict, left, arith]
      +               | Exp "-" Exp                       [strict, prefer, arith]
      +               | "-" Exp                           [strict, arith]
      +               > non-assoc:
      +                 Exp "<" Exp                       [strict, arith]
      +               | Exp "<=" Exp                      [strict, arith]
      +               | Exp ">" Exp                       [strict, arith]
      +               | Exp ">=" Exp                      [strict, arith]
      +               | Exp "==" Exp                      [strict, arith]
      +               | Exp "!=" Exp                      [strict, arith]
      +               > "!" Exp                           [strict, arith]
      +               > Exp "&&" Exp                      [strict(1), left, arith]
      +               > Exp "||" Exp                      [strict(1), left, arith]
      +
      +  syntax Exp ::= "if" Exp "then" Exp "else" Exp    [strict(1)]
      +
      +  syntax Exp ::= "[" Exps "]"                      [strict]
      +               | "cons" |  "head" | "tail" | "null?"
      +               | "[" Exps "|" Exp "]"
      +  syntax Val ::= "[" Vals "]"
      +
      +  syntax ConstructorName
      +  syntax Exp ::= ConstructorName
      +               | ConstructorName "(" Exps ")"      [prefer, strict(2)]
      +  syntax Val ::= ConstructorName "(" Vals ")"
      +
      +  syntax Exp ::= "fun" Cases
      +               | Exp Exp                           [strict, left]
      +  syntax Case  ::= Exp "->" Exp                    [binder]
      +// NOTE: The binder attribute above is the only difference between this
      +// module and the syntax module of environment-based FUN.  We need
      +// to fix a bug in order to import modules and override the attributes
      +// of operations.
      +  syntax Cases ::= List{Case, "|"}
      +
      +  syntax Exp ::= "let" Bindings "in" Exp
      +               | "letrec" Bindings "in" Exp                 [prefer]
      +  syntax Binding  ::= Exp "=" Exp
      +  syntax Bindings ::= List{Binding,"and"}
      +
      +  syntax Exp ::= "ref"
      +               | "&" Name
      +               | "@" Exp                           [strict]
      +               | Exp ":=" Exp                      [strict]
      +               | Exp ";" Exp                       [strict(1), right]
      +
      +  syntax Exp ::= "callcc"
      +               | "try" Exp "catch" "(" Name ")" Exp
      +  syntax Name ::= "throw" [token]
      +
      +  syntax Exp ::= "datatype" Type "=" TypeCases Exp
      +
      +  syntax TypeVar
      +  syntax TypeVars ::= List{TypeVar,","}
      +
      +  syntax TypeName
      +  syntax Type ::= "int" | "bool" | "string"
      +                | Type "-->" Type                            [right]
      +                | "(" Type ")"                             [bracket]
      +                | TypeVar
      +                | TypeName             [klabel(TypeName), avoid]
      +                | Type TypeName   [klabel(Type-TypeName), onlyLabel]
      +                | "(" Types ")" TypeName                    [prefer]
      +  syntax Types ::= List{Type,","}
      +  syntax Types ::= TypeVars
      +
      +  syntax TypeCase ::= ConstructorName
      +                    | ConstructorName "(" Types ")"
      +  syntax TypeCases ::= List{TypeCase,"|"}     [klabel(_|TypeCase_)]
      +

      Additional Priorities

      + +
        syntax priorities @__FUN-UNTYPED-COMMON
      +                  > ___FUN-UNTYPED-COMMON
      +                  > arith
      +                  > _:=__FUN-UNTYPED-COMMON
      +                  > let_in__FUN-UNTYPED-COMMON
      +                    letrec_in__FUN-UNTYPED-COMMON
      +                    if_then_else__FUN-UNTYPED-COMMON
      +                  > _;__FUN-UNTYPED-COMMON
      +                  > fun__FUN-UNTYPED-COMMON
      +                  > datatype_=___FUN-UNTYPED-COMMON
      +endmodule
      +
      +module FUN-UNTYPED-MACROS
      +  imports FUN-UNTYPED-COMMON
      +

      Desugaring macros

      + +
        rule P1 P2 -> E => P1 -> fun P2 -> E                       [macro-rec]
      +  rule F P = E => F = fun P -> E                             [macro-rec]
      +
      +  rule [E1,E2,Es:Exps|T] => [E1|[E2,Es|T]]                   [macro-rec]
      +
      +//  rule 'TypeName(Tn:TypeName) => (.TypeVars) Tn              [macro]
      +  rule `Type-TypeName`(T:Type, Tn:TypeName) => (T) Tn          [macro]
      +
      +  syntax Name ::= "$h" | "$t"
      +  rule head => fun [$h|$t] -> $h                             [macro]
      +  rule tail => fun [$h|$t] -> $t                             [macro]
      +  rule null? => fun [.Exps] -> true | [$h|$t] -> false       [macro]
      +
      +  syntax Name ::= "$k" | "$v"
      +  rule try E catch(X) E'
      +    => callcc (fun $k -> (fun throw -> E)(fun X -> $k E'))   [macro]
      +
      +  rule datatype _T = _TCs E => E                               [macro]
      +

      mu needed for letrec, but we put it here so we can also write
      +programs with mu in them, which is particularly useful for testing.

      +
        syntax Exp ::= "mu" Case
      +
      +endmodule
      +
      +
      +module FUN-UNTYPED-SYNTAX
      +  imports FUN-UNTYPED-COMMON
      +  imports BUILTIN-ID-TOKENS
      +
      +  syntax Name ::= r"[a-z][_a-zA-Z0-9]*"            [token, prec(2)]
      +                | #LowerId                         [token]
      +  syntax ConstructorName ::= #UpperId              [token]
      +  syntax TypeVar  ::= r"['][a-z][_a-zA-Z0-9]*"     [token]
      +  syntax TypeName ::= Name                         [token]
      +endmodule
      +

      Semantics

      + +
      module FUN-UNTYPED
      +  imports FUN-UNTYPED-COMMON
      +  imports FUN-UNTYPED-MACROS
      +  imports DOMAINS
      +  imports SUBSTITUTION
      +  //imports PATTERN-MATCHING
      +
      +  configuration <T color="yellow">
      +                  <k color="green"> $PGM:Exp </k>
      +                  <store color="white"> .Map </store>
      +                </T>
      +

      Both Name and functions are values now:

      +
        syntax Val ::= Int | Bool | String | Name
      +  syntax Exp ::= Val
      +  syntax Exps ::= Vals
      +  syntax KResult ::= Val
      +  syntax Exps ::= Names
      +  syntax Vals ::= Names
      +
      +  rule I1 * I2 => I1 *Int I2
      +  rule I1 / I2 => I1 /Int I2 when I2 =/=K 0
      +  rule I1 % I2 => I1 %Int I2 when I2 =/=K 0
      +  rule I1 + I2 => I1 +Int I2
      +  rule S1 ^ S2 => S1 +String S2
      +  rule I1 - I2 => I1 -Int I2
      +  rule - I => 0 -Int I
      +  rule I1 < I2 => I1 <Int I2
      +  rule I1 <= I2 => I1 <=Int I2
      +  rule I1 > I2 => I1 >Int I2
      +  rule I1 >= I2 => I1 >=Int I2
      +  rule V1:Val == V2:Val => V1 ==K V2
      +  rule V1:Val != V2:Val => V1 =/=K V2
      +  rule ! T => notBool(T)
      +  rule true  && E => E
      +  rule false && _ => false
      +  rule true  || _ => true
      +  rule false || E => E
      +
      +  rule if  true then E else _ => E
      +  rule if false then _ else E => E
      +
      +  rule isVal(cons) => true
      +  rule isVal(cons _V:Val) => true
      +  rule cons V:Val [Vs:Vals] => [V,Vs]
      +
      +  syntax Val ::= ConstructorName
      +
      +  rule isVal(fun _) => true
      +  syntax KVar ::= Name
      +  syntax Name ::= freshName(Int)    [freshGenerator, function]
      +  rule freshName(I:Int) => {#parseToken("Name", "#" +String Int2String(I))}:>Name
      +
      +  rule (. => getMatching(P, V)) ~> (fun P->_ | _) V:Val
      +  rule matchResult(M:Map) ~> (fun _->E | _) _ => E[M]
      +  rule (matchFailure => .) ~> (fun (_->_ | Cs:Cases => Cs)) _
      +//  rule (fun P->E | _) V:Val => E[getMatching(P,V)]  when isMatching(P,V)
      +//  rule (fun (P->_ | Cs:Cases => Cs)) V:Val  when notBool isMatching(P,V)
      +

      We can reduce multiple bindings to one list binding, and then
      +apply the usual desugaring of let into function application.
      +It is important that the rule below is a macro, so let is eliminated
      +immediately, otherwise it may interfere in ugly ways with substitution.

      +
        rule let Bs in E => ((fun [names(Bs)] -> E) [exps(Bs)])    [macro]
      +

      We only give the semantics of one-binding letrec.
      +Multipe bindings are left as an exercise.

      +
        // changed because of parsing error
      +  //rule mu X:Name -> E => E[(mu X -> E) / X]
      +  rule mu X:Name -> E => E[X |-> (mu X -> E)]
      +  rule letrec F:Name = E in E' => let F = (mu F -> E) in E'  [macro]
      +

      We cannot have & anymore, but we can give direct
      +semantics to ref. We also have to declare ref to
      +be a value, so that we will never heat on it.

      +
      //  rule <k> & X => L ...</k>  <env>... X |-> L </env>
      +  rule isVal(ref) => true
      +  rule <k> ref V:Val => !L:Int ...</k> <store>... .Map => !L |-> V ...</store>
      +  rule <k> @ L:Int => V:Val ...</k>  <store>... L |-> V ...</store>
      +  rule <k> L:Int := V:Val => V ...</k>  <store>... L |-> (_=>V) ...</store>
      +  rule _V:Val; E => E
      +
      +  syntax Val ::= cc(K)
      +  rule isVal(callcc) => true
      +  rule <k> (callcc V:Val => V cc(K)) ~> K </k>
      +  rule <k> cc(K) V:Val ~> _ => V ~> K </k>
      +

      Auxiliary getters

      +
        syntax Names ::= names(Bindings)  [function]
      +  rule names(.Bindings) => .Names
      +  rule names(X:Name=_ and Bs) => X,names(Bs)
      +
      +  syntax Exps ::= exps(Bindings)  [function]
      +  rule exps(.Bindings) => .Exps
      +  rule exps(_:Name=E and Bs) => E,exps(Bs)
      +
      +  /* Extra kore stuff */
      +  syntax KResult ::= Vals
      +  syntax Exps ::= Names
      +
      +  /* Matching */
      +  syntax MatchResult ::= getMatching(Exp, Val)                      [function]
      +                       | getMatchingAux(Exps, Vals)                 [function]
      +                       | mergeMatching(MatchResult, MatchResult)    [function]
      +                       | matchResult(Map)
      +                       | "matchFailure"
      +
      +  rule getMatching(C:ConstructorName(Es:Exps), C(Vs:Vals)) => getMatchingAux(Es, Vs)
      +  rule getMatching([Es:Exps], [Vs:Vals])                   => getMatchingAux(Es, Vs)
      +  rule getMatching(C:ConstructorName, C) => matchResult(.Map)
      +  rule getMatching(B:Bool, B)            => matchResult(.Map)
      +  rule getMatching(I:Int, I)             => matchResult(.Map)
      +  rule getMatching(S:String, S)          => matchResult(.Map)
      +  rule getMatching(N:Name, V:Val) => matchResult(N |-> V)
      +  rule getMatching(_, _) => matchFailure        [owise]
      +
      +  rule getMatchingAux((E:Exp, Es:Exps), (V:Val, Vs:Vals)) => mergeMatching(getMatching(E, V), getMatchingAux(Es, Vs))
      +  rule getMatchingAux(.Exps, .Vals)                       => matchResult(.Map)
      +  rule getMatchingAux(_, _) => matchFailure     [owise]
      +
      +  rule mergeMatching(matchResult(M1:Map), matchResult(M2:Map)) => matchResult(M1 M2)
      +    requires intersectSet(keys(M1), keys(M2)) ==K .Set
      +  //rule mergeMatching(_, _) => matchFailure      [owsie]
      +  rule mergeMatching(matchResult(_:Map), matchFailure) => matchFailure
      +  rule mergeMatching(matchFailure, matchResult(_:Map)) => matchFailure
      +  rule mergeMatching(matchFailure, matchFailure)       => matchFailure
      +

      Besides the generic decomposition rules for patterns and values,
      +we also want to allow [head|tail] matching for lists, so we add
      +the following custom pattern decomposition rule:

      +
        rule getMatching([H:Exp | T:Exp], [V:Val, Vs:Vals])
      +    => getMatchingAux((H, T), (V, [Vs]))
      +endmodule
      +

      LOGIK

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K semantic definition of LOGIK, a trivial language
      +capturing the essence of the logic programming paradigm. In this
      +definition, we explicitly focus on simplicity and mathematical
      +clarity, not on advanced logic programming features or performance.
      +Those are covered in the LOGIK++ extension under examples/logik++.

      +

      Specifically, a LOGIK program consists of a sequence of Horn clauses
      +of the form

      +
      P :- P1, P2, ..., Pn .
      +

      followed by a query of the form

      +
      ?- Q1, Q2, ..., Qm .
      +

      where P, P1, P2, ..., Pn, Q1, Q2,
      +..., Qm are literals. The
      +symbol :- is read "if". A literal has the form
      +p(T1,T2,...,Tk), where p is a predicate symbol
      +and where T1,T2,...,Tk are terms. Terms are built as
      +usual, with operation symbols and variables. A common
      +convention in logic programming languages, also adopted here, is that
      +variables are capitalized and operation symbols are not. Operations
      +with zero arguments are called constants and are written without
      +parentheses, that is, c instead of c(). Horn
      +clauses without conditions, called facts, are written
      +without :-, that is, P. instead of P :- ..

      +

      For example, the LOGIK program below gives a few facts about a
      +parent predicate, then several clauses defining some useful
      +predicates including an ancestor predicate, and finally a
      +query asking for those who both have ancestors and are ancestors
      +themselves in the parent relation:

      +
      parent(david,john).
      +parent(jim,david).
      +parent(steve,jim).
      +parent(nathan,steve).
      +
      +grandparent(A,B):-
      +  parent(A,X),
      +  parent(X,B).
      +
      +ancestor(A,B):-
      +  parent(A,X),
      +  parents(X,B).
      +
      +parents(X,X).
      +parents(A,B):-
      +  ancestor(A,B).
      +
      +both(X) :- ancestor(A,X), ancestor(X,B).
      +
      +?- both(X).
      +

      Above, we only have constant operation symbols, so these and variables
      +are the only terms that can be used in predicates. As expected, the
      +LOGIK program above will give us three solutions for X:
      +david, steve, and jim. If we inline the
      +both(X) predicate in the query, that is, if we replace the
      +query with ?- ancestor(A,X), ancestor(X,B). then we get
      +10 solutions, one for for each triple A, X, and
      +B satisfying both predicates ancestor(A,X) and
      +ancestor(X,B).

      +

      As another example, the program below defines an append
      +predicate followed by a simple goal:

      +
      append(nil,L,L).
      +append(cons(H,T),L,cons(H,Z)) :- append(T,L,Z).
      +
      +?- append(cons(a,nil), cons(b,nil), V).
      +

      Besides the predicate symbol append, the program above also
      +includes a constant symbol nil and a binary operation symbol
      +cons. Additionally, the query also includes two more
      +constants, a and b. The capitalized identifiers are
      +all variables. As expected, the LOGIK program above yields only one
      +solution, namely V = cons(a,cons(b,nil)). On the other hand,
      +if we change the query to:

      +
      ?- append(L1, cons(a,L2), cons(a,cons(b,cons(a,nil)))).
      +

      then LOGIK yields two solutions: one where L1 is
      +cons(a,cons(b,nil)) and L2 is nil,
      +and another where L1 is nil and L2 is
      +cons(a,cons(b,nil)).

      +

      The programs above all generated ground solutions, that is,
      +solutions where the query variables are mapped to ground terms (i.e.,
      +terms without variables). Let us now consider the following query:

      +
      ?- append(cons(a,nil), Y, Z).
      +

      There are obviously infinitely many ground solutions for the query
      +above, e.g.,
      +Y = nil and Z = cons(a,nil),
      +Y = cons(a,nil) and Z = cons(a,cons(a,nil)),
      +Y = cons(b,nil) and Z = cons(a,cons(b,nil)),
      +Y = cons(c,cons(b,nil)) and Z = cons(a,cons(c,cons(b,nil))),
      +etc. However, all the ground solutions for the query above can be
      +elegantly characterized by the property that Z is bound to a list
      +starting with a and followed by the list that Y is
      +bound to. This property can in fact be described as a symbolic solution
      +to the query: Z = cons(a,Y) or, equivalently,
      +Y = Symb and Z = cons(a,Symb). It is possible to
      +define a ``more general than'' relation on such symbolic solutions,
      +in the sense that the more particular solution can be obtained as a
      +specialization/substitution of the more general one, and then it can
      +be shown that the above is the most general solution to the
      +stated query. Logic programming languages, including our LOGIK,
      +attempt to always compute such most general solutions.

      +

      Logic programming languages are highly non-deterministic, in that
      +several Horn clauses may be used at the same time, each possibly
      +resulting in a different solution. Implementations of logic
      +programming languages consist of complex, optimized search and
      +indexing algorithms, which we are not concerned with here. Instead,
      +we here take advantage of K's builtin support for search.
      +Specifically, to find all the solutions of a LOGIK program, we have to
      +use krun with the option --search. However, note
      +that some programs have infinitely many solutions which cannot relate
      +to each other by the "more general" relation. For example, the query

      +
      ?- append(L1, cons(a,L2), L3) .
      +

      To address such cases and terminate, logic programming languages allow
      +the user to choose how many solutions to be computed and displayed.
      +In LOGIK, we can use the --bound option of krun for
      +this purpose.

      +

      Finally, note that some queries have no solution. In some cases that
      +is easy to detect by exhaustive analysis, such as for the following
      +query:

      +
      ?- append(cons(a,L1), L2, cons(b,L3)).
      +

      Logic programming languages, including LOGIK, terminate in such cases
      +and report a no solution answer. However, there are cases where
      +exhaustive analysis is not sufficient, such as for the query:

      +
      ?- append(cons(a,L), nil, L).
      +

      In such cases, logic programming languages do not terminate. While
      +one may devise techniques to detect non-termination in some cases,
      +one cannot do it in general (same like for all Turing-complete
      +languages).

      +
      require "unification.k"
      +
      +module LOGIK-COMMON
      +  imports DOMAINS-SYNTAX
      +

      Syntax

      + +

      The syntax of LOGIK is straightforward: a program is a sequence of
      +Horn clauses followed by a query:

      +
        syntax Literal
      +  syntax Term ::= Literal | Literal "(" Terms ")"
      +  syntax Terms ::= List{Term,","}
      +  syntax Clause ::= Term ":-" Terms "." | Term "."
      +  syntax Query ::= "?-" Terms "."
      +  syntax Pgm ::= Query | Clause Pgm
      +endmodule
      +
      +module LOGIK-SYNTAX
      +  imports LOGIK-COMMON
      +  imports BUILTIN-ID-TOKENS
      +

      Variables and literals are defined as tokens following the conventions
      +used in Prolog (variables start with _ or capital letter, while literals
      +start with lower case letters):

      +
        syntax #KVariable ::= r"[A-Z_][A-Za-z0-9_]*"   [token, prec(2)]
      +                      | #UpperId                 [token]
      +  syntax Term ::= #KVariable [klabel(#SemanticCastToTerm)]
      +  syntax Literal ::= r"[a-z][a-zA-Z0-9_]*"                 [token]
      +                   | #LowerId                              [token]
      +endmodule
      +
      +module LOGIK
      +  imports LOGIK-COMMON
      +  imports DOMAINS
      +  imports UNIFICATION
      +

      Unification is at the core of logic programming. Here we are
      +going to use the predefined unification procedure (the same one we
      +used in the type inferencers in Tutorial 5).

      +

      Configuration

      + +

      The configuration stores each clause in its own cell for easy access,
      +and the most general unifier in a cell named mgu, same like
      +the type inferencers. The k cell holds the query and the
      +fresh cell holds a fresh clause instance to be attempted on
      +the next query item. To more easily read the solutions, we add a
      +second top-level cell, solution. Both top cells are
      +optional. Indeed, we start with the main top cell and, when a
      +solution is found, we move it into the solution cell and
      +discard the main cell.

      +
        configuration <T color="yellow" multiplicity="?">
      +                  <k color="green"> $PGM:Pgm </k>
      +                  <fresh color="orange"> .K </fresh>
      +                  <clauses color="red">
      +                    <clause color="pink" multiplicity="*"> .K </clause>
      +                  </clauses>
      +                  <mgu> .K </mgu>
      +                </T>
      +                <solution multiplicity="?"> .K </solution>
      +

      Pre- and post-processing

      + +

      Before we launch the semantics, we first scan the given program and
      +place each clause in its own cell, and then place the query in the
      +k cell and initialize the mgu with the variables from the query.

      +

      Note that we put a fresh instance of the clause to avoid interference with
      +the query variables. By a "fresh instance" of a clause we mean one whose
      +variables are renamed with fresh names; we need that in order to avoid
      +undesired unification conflicts due to particular names chosen for
      +variables in the original program, as well as conflicts due to
      +subsequent uses of the same clause. It is safe to rename the
      +variables in a clause, because clauses are universally quantified in
      +their variables. This process of creating a fresh instance of a
      +clause is similar to how we created fresh instances of type schemas in
      +the higher-order type inferencer discussed in Tutorial 5. Indeed, we
      +can safely regard clauses as "clause schemas" comprising infinitely
      +many instances, one for each context.

      +
        rule <k> C:Clause Pgm => Pgm </k>
      +       (.Bag => <clause> #renameVariables(C) </clause>)
      +
      +  rule <k> ?- Ls:Terms. => Ls ...</k>
      +       <mgu> _ => #variablesMap(#variables(Ls)) </mgu>
      +

      We also sequentialize the goals for easier processing:

      +
        rule L:Term, Ls:Terms => L ~> Ls
      +  rule .Terms => .
      +

      When all the goals are solved, indicated by the empty k
      +cell, the calculated most general unifier (mgu) is in the mgu
      +cell. In that case, to ease reading of the final solution we move the
      +mgu in the solution cell and delete the rest of the
      +configuration:

      +
      rule <T>... <k> . </k> <mgu> Theta </mgu> ...</T>
      +  => <solution> Theta </solution>
      +

      Since we are not interested in seeing the failed attempts to solve
      +the query, we collapse all the error configurations into an empty
      +configuration (recall that both top-level cells in the configuration
      +were declared optional). This way, if we see an empty configuration
      +when we search for all solutions, we know that some attempts failed
      +(but we do not know which ones).

      +
      // this would be nice, but we need feedback from the external unifier
      +// for this.
      +//  rule <T>... <mgu> _:MguError </mgu> ...</T> => .
      +

      Semantics

      + +

      Once all the infrastructure is in place, the actual semantics of LOGIK
      +is quite simple. All we have to do is to pick some (fresh instance of
      +a) clause, then unify its conclusion with the first query literal, and
      +then replace that literal with condition of the clause. The intuition
      +here is the following: to satisfy the first literal in the query, we
      +need to find some instance of some clause that matches it, and then to
      +similarly show that we can satisfy the conditions of that clause.
      +Mathematically, this is an instance of the proof principle called
      +resolution: if p ∨ q and ¬ p ∨ r hold, then so does
      +q ∨ r. We let it as an exercise to the reader to see how the two
      +relate (hint: assume the negation of the goal together with all the
      +clauses, and then derive false).

      +

      The following two rules are tightly connected and they together
      +perform the following core task: pick a fresh instance of a clause
      +which unifies with the first goal item, then add its conditions as new
      +goals.

      +

      Pick a clause and generate a fresh instance of it when the
      +fresh cell is empty:

      +
        rule <fresh> . => #renameVariables(C) </fresh> <clause> C </clause>
      +       <k> T:Term ...</k>
      +  requires #unifiable(T,head(C))
      +
      +  syntax Term ::= head(Clause) [function]
      +  rule head(L.) => L
      +  rule head(L:-_.) => L
      +

      If the goal is unifiable with the fresh clause's head, replace the goal
      +with the clause body, and empty the fresh cell (so that
      +another clause can be chosen using the rule above):

      +
        rule <k> L:Term => . ...</k>
      +       <fresh>  L:Term . => . </fresh>
      +
      +  rule <k> L:Term :KItem => Ls ...</k>
      +       <fresh>  L:Term :- Ls:Terms. => . </fresh>
      +

      Note that there is no problem if a clause is chosen whose
      +conclusion literal does not unify with the first goal literal.
      +The search
      +option of krun will systematically try all clauses, so no
      +solution is missed. Of course, the above is not the most efficient
      +way to implement a logic programming language, but recall that our
      +objective here was to present a simple and mathematically clean
      +solution. We encourage the interested reader to consult the LOGIK++
      +language definition for a more efficient definition of a richer logic
      +programming language.

      +
      endmodule
      +

      LOGIK

      + +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      + +

      This is the K semantic definition of LOGIK, a trivial language
      +capturing the essence of the logic programming paradigm. In this
      +definition, we explicitly focus on simplicity and mathematical
      +clarity, not on advanced logic programming features or performance.
      +Those are covered in the LOGIK++ extension under examples/logik++.

      +

      Specifically, a LOGIK program consists of a sequence of Horn clauses
      +of the form

      +
      P :- P1, P2, ..., Pn .
      +

      followed by a query of the form

      +
      ?- Q1, Q2, ..., Qm .
      +

      where P, P1, P2, ..., Pn, Q1, Q2,
      +..., Qm are literals. The
      +symbol :- is read "if". A literal has the form
      +p(T1,T2,...,Tk), where p is a predicate symbol
      +and where T1,T2,...,Tk are terms. Terms are built as
      +usual, with operation symbols and variables. A common
      +convention in logic programming languages, also adopted here, is that
      +variables are capitalized and operation symbols are not. Operations
      +with zero arguments are called constants and are written without
      +parentheses, that is, c instead of c(). Horn
      +clauses without conditions, called facts, are written
      +without :-, that is, P. instead of P :- ..

      +

      For example, the LOGIK program below gives a few facts about a
      +parent predicate, then several clauses defining some useful
      +predicates including an ancestor predicate, and finally a
      +query asking for those who both have ancestors and are ancestors
      +themselves in the parent relation:

      +
      parent(david,john).
      +parent(jim,david).
      +parent(steve,jim).
      +parent(nathan,steve).
      +
      +grandparent(A,B):-
      +  parent(A,X),
      +  parent(X,B).
      +
      +ancestor(A,B):-
      +  parent(A,X),
      +  parents(X,B).
      +
      +parents(X,X).
      +parents(A,B):-
      +  ancestor(A,B).
      +
      +both(X) :- ancestor(A,X), ancestor(X,B).
      +
      +?- both(X).
      +

      Above, we only have constant operation symbols, so these and variables
      +are the only terms that can be used in predicates. As expected, the
      +LOGIK program above will give us three solutions for X:
      +david, steve, and jim. If we inline the
      +both(X) predicate in the query, that is, if we replace the
      +query with ?- ancestor(A,X), ancestor(X,B). then we get
      +10 solutions, one for for each triple A, X, and
      +B satisfying both predicates ancestor(A,X) and
      +ancestor(X,B).

      +

      As another example, the program below defines an append
      +predicate followed by a simple goal:

      +
      append(nil,L,L).
      +append(cons(H,T),L,cons(H,Z)) :- append(T,L,Z).
      +
      +?- append(cons(a,nil), cons(b,nil), V).
      +

      Besides the predicate symbol append, the program above also
      +includes a constant symbol nil and a binary operation symbol
      +cons. Additionally, the query also includes two more
      +constants, a and b. The capitalized identifiers are
      +all variables. As expected, the LOGIK program above yields only one
      +solution, namely V = cons(a,cons(b,nil)). On the other hand,
      +if we change the query to:

      +
      ?- append(L1, cons(a,L2), cons(a,cons(b,cons(a,nil)))).
      +

      then LOGIK yields two solutions: one where L1 is
      +cons(a,cons(b,nil)) and L2 is nil,
      +and another where L1 is nil and L2 is
      +cons(a,cons(b,nil)).

      +

      The programs above all generated ground solutions, that is,
      +solutions where the query variables are mapped to ground terms (i.e.,
      +terms without variables). Let us now consider the following query:

      +
      ?- append(cons(a,nil), Y, Z).
      +

      There are obviously infinitely many ground solutions for the query
      +above, e.g.,
      +Y = nil and Z = cons(a,nil),
      +Y = cons(a,nil) and Z = cons(a,cons(a,nil)),
      +Y = cons(b,nil) and Z = cons(a,cons(b,nil)),
      +Y = cons(c,cons(b,nil)) and Z = cons(a,cons(c,cons(b,nil))),
      +etc. However, all the ground solutions for the query above can be
      +elegantly characterized by the property that Z is bound to a list
      +starting with a and followed by the list that Y is
      +bound to. This property can in fact be described as a symbolic solution
      +to the query: Z = cons(a,Y) or, equivalently,
      +Y = Symb and Z = cons(a,Symb). It is possible to
      +define a ``more general than'' relation on such symbolic solutions,
      +in the sense that the more particular solution can be obtained as a
      +specialization/substitution of the more general one, and then it can
      +be shown that the above is the most general solution to the
      +stated query. Logic programming languages, including our LOGIK,
      +attempt to always compute such most general solutions.

      +

      Logic programming languages are highly non-deterministic, in that
      +several Horn clauses may be used at the same time, each possibly
      +resulting in a different solution. Implementations of logic
      +programming languages consist of complex, optimized search and
      +indexing algorithms, which we are not concerned with here. Instead,
      +we here take advantage of K's builtin support for search.
      +Specifically, to find all the solutions of a LOGIK program, we have to
      +use krun with the option --search. However, note
      +that some programs have infinitely many solutions which cannot relate
      +to each other by the "more general" relation. For example, the query

      +
      ?- append(L1, cons(a,L2), L3) .
      +

      To address such cases and terminate, logic programming languages allow
      +the user to choose how many solutions to be computed and displayed.
      +In LOGIK, we can use the --bound option of krun for
      +this purpose.

      +

      Finally, note that some queries have no solution. In some cases that
      +is easy to detect by exhaustive analysis, such as for the following
      +query:

      +
      ?- append(cons(a,L1), L2, cons(b,L3)).
      +

      Logic programming languages, including LOGIK, terminate in such cases
      +and report a no solution answer. However, there are cases where
      +exhaustive analysis is not sufficient, such as for the query:

      +
      ?- append(cons(a,L), nil, L).
      +

      In such cases, logic programming languages do not terminate. While
      +one may devise techniques to detect non-termination in some cases,
      +one cannot do it in general (same like for all Turing-complete
      +languages).

      +
      require "unification.k"
      +
      +module LOGIK-COMMON
      +  imports DOMAINS-SYNTAX
      +

      Syntax

      + +

      The syntax of LOGIK is straightforward: a program is a sequence of
      +Horn clauses followed by a query:

      +
        syntax Literal
      +  syntax Term ::= Literal | Literal "(" Terms ")"
      +  syntax Terms ::= List{Term,","}
      +  syntax Clause ::= Term ":-" Terms "." | Term "."
      +  syntax Query ::= "?-" Terms "."
      +  syntax Pgm ::= Query | Clause Pgm
      +endmodule
      +
      +module LOGIK-SYNTAX
      +  imports LOGIK-COMMON
      +  imports BUILTIN-ID-TOKENS
      +

      Variables and literals are defined as tokens following the conventions
      +used in Prolog (variables start with _ or capital letter, while literals
      +start with lower case letters):

      +
        syntax #KVariable ::= r"[A-Z_][A-Za-z0-9_]*"   [token, prec(2)]
      +                      | #UpperId                 [token]
      +  syntax Term ::= #KVariable [klabel(#SemanticCastToTerm)]
      +  syntax Literal ::= r"[a-z][a-zA-Z0-9_]*"                 [token]
      +                   | #LowerId                              [token]
      +endmodule
      +
      +module LOGIK
      +  imports LOGIK-COMMON
      +  imports DOMAINS
      +  imports UNIFICATION
      +

      Unification is at the core of logic programming. Here we are
      +going to use the predefined unification procedure (the same one we
      +used in the type inferencers in Tutorial 5).

      +

      Configuration

      + +

      The configuration stores each clause in its own cell for easy access,
      +and the most general unifier in a cell named mgu, same like
      +the type inferencers. The k cell holds the query and the
      +fresh cell holds a fresh clause instance to be attempted on
      +the next query item. To more easily read the solutions, we add a
      +second top-level cell, solution. Both top cells are
      +optional. Indeed, we start with the main top cell and, when a
      +solution is found, we move it into the solution cell and
      +discard the main cell.

      +
        configuration <T color="yellow" multiplicity="?">
      +                  <k color="green"> $PGM:Pgm </k>
      +                  <fresh color="orange"> .K </fresh>
      +                  <clauses color="red">
      +                    <clause color="pink" multiplicity="*"> .K </clause>
      +                  </clauses>
      +                  <mgu> .K </mgu>
      +                </T>
      +                <solution multiplicity="?"> .K </solution>
      +

      Pre- and post-processing

      + +

      Before we launch the semantics, we first scan the given program and
      +place each clause in its own cell, and then place the query in the
      +k cell and initialize the mgu with the variables from the query.

      +

      Note that we put a fresh instance of the clause to avoid interference with
      +the query variables. By a "fresh instance" of a clause we mean one whose
      +variables are renamed with fresh names; we need that in order to avoid
      +undesired unification conflicts due to particular names chosen for
      +variables in the original program, as well as conflicts due to
      +subsequent uses of the same clause. It is safe to rename the
      +variables in a clause, because clauses are universally quantified in
      +their variables. This process of creating a fresh instance of a
      +clause is similar to how we created fresh instances of type schemas in
      +the higher-order type inferencer discussed in Tutorial 5. Indeed, we
      +can safely regard clauses as "clause schemas" comprising infinitely
      +many instances, one for each context.

      +
        rule <k> C:Clause Pgm => Pgm </k>
      +       (.Bag => <clause> #renameVariables(C) </clause>)
      +
      +  rule <k> ?- Ls:Terms. => Ls ...</k>
      +       <mgu> _ => #variablesMap(#variables(Ls)) </mgu>
      +

      We also sequentialize the goals for easier processing:

      +
        rule L:Term, Ls:Terms => L ~> Ls
      +  rule .Terms => .
      +

      When all the goals are solved, indicated by the empty k
      +cell, the calculated most general unifier (mgu) is in the mgu
      +cell. In that case, to ease reading of the final solution we move the
      +mgu in the solution cell and delete the rest of the
      +configuration:

      +
      rule <T>... <k> . </k> <mgu> Theta </mgu> ...</T>
      +  => <solution> Theta </solution>
      +

      Since we are not interested in seeing the failed attempts to solve
      +the query, we collapse all the error configurations into an empty
      +configuration (recall that both top-level cells in the configuration
      +were declared optional). This way, if we see an empty configuration
      +when we search for all solutions, we know that some attempts failed
      +(but we do not know which ones).

      +
      // this would be nice, but we need feedback from the external unifier
      +// for this.
      +//  rule <T>... <mgu> _:MguError </mgu> ...</T> => .
      +

      Semantics

      + +

      Once all the infrastructure is in place, the actual semantics of LOGIK
      +is quite simple. All we have to do is to pick some (fresh instance of
      +a) clause, then unify its conclusion with the first query literal, and
      +then replace that literal with condition of the clause. The intuition
      +here is the following: to satisfy the first literal in the query, we
      +need to find some instance of some clause that matches it, and then to
      +similarly show that we can satisfy the conditions of that clause.
      +Mathematically, this is an instance of the proof principle called
      +resolution: if p ∨ q and ¬ p ∨ r hold, then so does
      +q ∨ r. We let it as an exercise to the reader to see how the two
      +relate (hint: assume the negation of the goal together with all the
      +clauses, and then derive false).

      +

      The following two rules are tightly connected and they together
      +perform the following core task: pick a fresh instance of a clause
      +which unifies with the first goal item, then add its conditions as new
      +goals.

      +

      Pick a clause and generate a fresh instance of it when the
      +fresh cell is empty:

      +
        rule <fresh> . => #renameVariables(C) </fresh> <clause> C </clause>
      +       <k> T:Term ...</k>
      +  requires #unifiable(T,head(C))
      +
      +  syntax Term ::= head(Clause) [function]
      +  rule head(L.) => L
      +  rule head(L:-_.) => L
      +

      If the goal is unifiable with the fresh clause's head, replace the goal
      +with the clause body, and empty the fresh cell (so that
      +another clause can be chosen using the rule above):

      +
        rule <k> L:Term => . ...</k>
      +       <fresh>  L:Term . => . </fresh>
      +
      +  rule <k> L:Term :KItem => Ls ...</k>
      +       <fresh>  L:Term :- Ls:Terms. => . </fresh>
      +

      Note that there is no problem if a clause is chosen whose
      +conclusion literal does not unify with the first goal literal.
      +The search
      +option of krun will systematically try all clauses, so no
      +solution is missed. Of course, the above is not the most efficient
      +way to implement a logic programming language, but recall that our
      +objective here was to present a simple and mathematically clean
      +solution. We encourage the interested reader to consult the LOGIK++
      +language definition for a more efficient definition of a richer logic
      +programming language.

      +
      endmodule
      +

      Projects using K

      + +

      A list of projects using the K framework. If you are working on something interesting, and you want to share it with the community,
      +let us know on our socials, and we will feature you on this list.

      +
      + + +
      +
        +
      • +

        KAVM (Feb 2022 - Present)

        +

        The Algorand Virtual Machine and TEAL Semantics in K
        +KAVM leverages the K Framework to empower Algorand smart contracts' developers
        +with property-based testing and formal verification.

        +
      • +
      • +

        KPlutus (2016 - Present)

        +

        The K Semantics of Plutus-Core

        +
      • +
      • +

        Dedukti (Mar 2021 - Present)

        +

        This project aims to translate real K semantics into Dedukti.

        +
      • +
      • +

        KWasm (Aug 2015 - Present)

        +

        KWasm is the K semantics of WebAssembly.
        +WebAssembly is a low-level (but simple and streamlined) assembly language that was originally developed to provide a fast execution engine for browser-based tools.
        +More recently, it has been used in several blockchain smart-contract platforms as the underlying language for executing financial agreements.
        +KWasm has been used for measuring coverage of test-suites over Wasm code and verifying programs which are compiled to Wasm.

        +
      • +
      • +

        KEVM (Sep 2017 - Present)

        +

        KEVM is the K semantics of the Ethereum Virtual Machine.
        +It passes all the Ethereum Test Suite, and is used for verifying EVM programs.

        +
      • +
      • +

        IELE (Oct 2016 - Present)

        +

        IELE is the underlying VM integrated into the Cardano blockchain.
        +IELE is a register-based VM (inspired by LLVM), which attempts to avoid many of the missteps in design present in EVM.

        +
      • +
      • +

        K-Michelson (Oct 2019 - Present)

        +

        K-Michelson is the K semantics of Michelson blockchain programming language, which powers the Tezos blockchain.
        +KMichelson provides additional testing tools for developers, including a unit-testing framework which is extendable to symbolic property testing.

        +
      • +
      • +

        C (Jul 2010 - Present)

        +

        The K semantics of the C programming language specifies the translation, linking, and execution semantics of the C language according to the official C standard.
        +It has been used to build tools like RV-Match, which detects undefined behaviors in users programs by running their test-suites through the C semantics.

        +
      • +
      +

      Archived

      + + +
      +
      + + diff --git a/exports/K.mobi b/exports/K.mobi new file mode 100644 index 0000000000000000000000000000000000000000..06530372d7d3c593d0a46dff8eaf48bc14585619 GIT binary patch literal 2360651 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�fFFN8-kVgYV{FMM#Vq*XqJ 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%0DR9Sf`8d3% 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

      rMzmRaAE&hkG;29I8s)*`M!-E7E_3YxMYif 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%0A9#~@M7_munTtvaW`i;ui56c_nX(> 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 %Ss9#m9?Z(;|7f&&v}g4D2r zZQ!S8I1r`Qz-lvwkEDc@e*RDT!TWYkz2I{LTk)b?1sA zuwrn|>(s@(d5OAAZJ^HkMV>7ycol5P1M&}Yb#dZD@$!wR)y$f+Dp}-=qaGw$XR<+X zEh$01mb1xZu$^03T2Nq{Z@aRx+$6P;-dIp&c6aV5mYC-=;SJL&F| z-3djnamy?@wxn#4zGwM^j7#VTH^KjGsA-8``t{KgV1OjD7`BZyaiAIhaDd%We7P-(2(J)XYVXu8)h-n+ z?NYT(woO_yF;{Gt3dkql`TEXDV%)5FQUzhlc23Ib|JORcSUaQD zgA0KH6twnOJH?{uzr>biZL_k;5Wpa`A}>Pr-w z_mocDgYJE49t$0(d`gnDqlX#CDJ-(ig3Y@qoO|a~7 z)ZeyJ$S3TtijN4JW^$dgnC{)n^`b-n^BD0xHZNa~%t+B))nb1!&(e`;tjsNLKE-|> zdq$r4Xo&etSH!yllr;h=3nTO!cozw_HXxl*&^@2zLT!__OGXo$l;=t-w}BeXbb%h- zmkU87E}Tf+Ao0>^Xd+zA#|g7-@3?>LDv=34CVq#>qWwq@)W#qzKp=0 zR>xty)kQ_Y&U`<=gD;ghVYzTnUxxJ0@A=h?ci#f!T1;QBT~kP@+h@sarMmijB|>ZNWlJho<^c)f z;_dz7GO?S!#&3jUk_LL(z@anWqi(Pi+q#)8+GaVv=De(|(^bqZ2+Y*7T!6q!<@E-p z`a(km?dCS4phFo9H8%CmVAC z0M9bkZ7$}A>GJZD=JPI0Fug=(L4Mk$SAO2kxp_B*i^2#avCd9w(}t?& zgy5>I9kH*`m#7`;uJ)Mf%WAviIxYWYsNg*oGUzw>;E5D%!GLeTM{o-6oo+3PIy%$d zO_+UTy9z|DHaMmk$Q&xPzBL)UDMy4WR9}yC9?MF%zY5VWlFk;xdWwWCd zG;^J&S0P(rGaeGgLCyGmf3Gk~-j*;*j2#z7fsGK^53;8cCZwRkz=h|N8ws6UHYqG+ zxuRT394Rs0E8ZlUxI~43A7?SJdg(*U;v-U^;1R)3u|c=-Aq6EOkAtaj>sk~)Ns1KA zG!aUb?Y&hyN(cv%wB!pRY?crLN~H1_ayPNsk=o&=IYfb?2_J|^cEIpnQ=Y}TnNlob zVdAm}^VQ5%*}DcrbJ-Bi_nh(o5aDEFd-r(2AH~O>HTzviKFm~tX0DKePN0l%H<0Cz z*`c~dpQ9TC;d($=_ZRF>l$YY>p+n*CGouB2={`U5g=*|L`7Us&TKNC_*CzZ=`M`z> zq4I$ZWwV7)(zl31j1_=2fJ3gB3BVZZqN5r}MLvr_^+YNQfW48)x zFY+jGpu~Z?1u-zTd@5}Fbu!|&7@@kGm(Rfk_3Ot__+Ted71?T3yeUZvpL{Qu;&*73C#V8(Z*b4|10oQj?3~IBnu>wO9Wx8>=Z7^V*;y#?d?v#y~bD-8x_ls%TGeSBp5k} zWN8}-hnjrT{4|^OaymavhW3zN{uJfZCY?y8+vn_8B-*lPR_cKADN6S#)bhokUnMD1 zb?IiTzn_rJEpVO(lzb?*0B;UPl8@WQMbfusD$z5c0Y~2z8IX6)&C7rWq+ee`mVmqo z;&Zp!bXj+;K<;!$A?Ye9cIr#%SIBq_+2+dP$xz`?#3n4aij0iPmrY@g`}c#d4I%` z(oxcUlYSD6eRi`E5mpg(qvpZ~dIRCmexk%(l++b4G|qR?ecA$2wj^7$u)fM+jJcsU z;k{Is>trUWkNFGuWwmol)XbQ8(+CwWR2xd@6310OC{PaK^nq)Pho8pvtFdo2o}=fh znIwV_TvwZFg5}C-Hk&ODLZ7zCv8MJ}q;sUCdQ--vS{CLp7m#vtQ93f%oCwx&ijxVFwSZP-p1oV0Ht?M%R#X~1M! zAi-elBw#1Ob~bRG1hPzVl1{NeLZ}8EA_)U-I-FHUyM$Q8YBt+|W3zYzZ^2I6fa5ke zON-NaJ2rL_a5ix41}D=A?{%LeVUlL%o$vd7|9rlGK1ULg&e3zub3gZT-Pdj2(I(_L zHVMz}{HBS$CiFLqdoTHIyUN|=W?Lb6ckouB)jz@w5#Ubvu3T?@qT!dYDc>u#Ezy}g zgVZikj3}ybCYTL9*9-;h=0Z7+v;gEmDaSJdd(N}LehSXRo|Hh8!MsKOr4VJJc(~x( zRqOl>k^P3kzX)2luQbB8={A5Z#M2nE;H&hikUp%^A%qAv*L}}-cEbZSB??tQ))$>- zpO8DWo`R~>s#RLgXUMlH|E@Y;L%A=;ykqHcMrEE&52SQ%((IfF^z{88PZ!t@icUDgO-D5f zJV)piN|=^}vbGb=IqLW~=QQUO0p#;>nrO@agK+CpTncq;~!6m zx&JlLfuse_%~o6Je`W*&UFFQ>2SDSb8X)_o-xnSLLipsp)~ zDPU_tmSE7qSHojwp_f}Hh6&+lU=j|FtpKFz@vNsG<||P>dq>bDT=N!%#T2d};PjM0 z05$N@afM2pbGjfVRwI2QRxM?nK)WBM!yMXY-JfR?o?+uDzL?IhS7Qn)=ecc2X_=EK zl!)YCt@K&AtymJLKsKrvjrpawWipJ5dhL=b`Cn2>TRCOL*uyc;})?(Z1 zxW*RideFVbdcPyuG?uI6X%+zB;Qy6Y$Nt3T3x3L5W@7jmX_Nt#40W;hUE-e>qCDB= zB5{2Ya)K00zRG+8M&hKpH*GyYxbrc!sp`NKGj(TcHc&p#8qfR%rHz2ggP=YGDCq`P zyvZ46wD`+4tPjzHUvMRA{-XYzLTlS$(mAT!>uR!8p{pL7zOnl6%&xOYC3!)~ZjUj$ z+W7UZ{xW;{1)&@8k3ho43`BB578fsNm{kcTVFUD4%JxrD#saa36ES2oJ_@ z_wP*QQel2iC7tAb+%t`i5ON@Zj=cz&TP@3<_#T#E+1t{<@L zN*iEJU`04zs-LQ9(@nb@fB5GK2j{Rr|QfH_U)Gq_Iy@! zL~TXS!}^I(1%xy$pavoqaRr6qj*J##zYmmb2iUGndAnm~Yo_H4EKTS3oX_8Rq9eQ1 ze9YezXbS9dq1#020=WwY>QFjW4Ztj8DA)+JRZ#dcG1B=!O#H(M|M9DLi`r&>`70`T zqSUB3()(k?D-K2U$j8FzQmUdd>?uH0ER+WWZyj02B14_8>0aOWO-bK-;h+rK^GaFo zOK?4)rlJic)n|u(0rkwDH&ty}t}7R>nS0llXa;OF8T;z}3F4;q$lzSD^EoxXlA(Jk z0X-C3F?7LvB-N&O%Bl#%PPs4KsV9;2yW+U{p`|O-7aqDgJJ0R>v!~S=$$2?1rc2^Q zlfhF?CGuS{7U#Vtcf;Ygoa<4233iVvj-{X@I*aj(pm41X_9QWsc|;0LXEOX>q4dP4lDt}6M@h3ov-uTD!Q^sH(h1AHWevR zHWoom3OW1F>iDQG^w`U{)SV1~Yi}LJFwh~MslN}gO}ou(ajehN?Y@u)%Pg~L3@7%v zTH=Sj^$u_6B=6x zX<$@63j0|xC-XI2h55c@At9K7Zet2g&%#vJ&FUslWu&2UOL2=*1kWu~jcxWM26_T$ z9}v`SL#O8(FQKQfVpa;R8n#}G8d{AWUId^Nh+bY2d@6kgV#8D_%eT!!OV|p{7Ia2M z4F3Hj;h+D8Zk=O8;~Xn~SB*vAjYSVxq{iTK7edp0*?5toA7ilgRK)N<5>t`qtXHPL zXML!cR?Orp#kqNy;ffToS9Q2(qC0Z|Ds+sxZ$~_~$l$0)nIoDnYdt45A5rk!vyWoA zCWEWNljX?*K>t(Mp9+~WS{hL;T-#yx-=Qun%V9zz=SSVxy0_BED(cXlQE_058=T*DOX`wiK^W$|HB-R{p64W^rPq)PsX`0T$yJ;(FOXFue!6GEjiJglqI|hU{vjc2* z?T4$r;D@DTxmCw+lk{8}W>yUZsk41^oYY<|{oZ1%{d*Xtdg0zjqAQ#MQ)6 z6}u3iG>Ut=CPSe#$x#vkU75|7G!mcmW>+I6ED&J1MZOJ{(I6AzA4FO?zvo8xW4kZz znL-mu>J2a-pBK(@i}GRphgM;-q>6O><;3=Fw2JKaJI*+ND{OP#s7_=qZMoUdw^^|$ z#0b%E->QBP?Q&^V?`ulDa3EW27}_jHS^r(os7ac`dimPn6gFF0a(J`wfmZcZT;qC8 z&tmCk)+}eHHM2g3VTVjj4<^35^a%J#>^xfidp_pH zb%`N+ZM&f^t1e4i)bVo5$CmmNma1;CU&EEw`&*ahq4Ktpr0pMvKQj~r#O~*J?a;~B zQ0c&I9oUEDoB1ZA7w(FG3=-roL(oX_Y(3Gtf66* zd_uLZq%*c|GbQRkS;q*-GWGpKX@3tj;uB)rg=+L}w$R|NcU&Pp22AbWN-I_EHUh=$N+|zAV7pMVmLwiB#aD3ndRFkEm;cVykcbo;#ZPU={wiBKI)^&b6 zZzyVLB<`t}IaTh<6Dyr@&KSk||1p=0BG~pdeUqMH&u|d?p)M`@kRzcONGlL$R#q7H zKv2^{-M|Dj0cOd5h9!tlBUFB>VVh8Ia3Z(@VL2do+kz<2G}iM=G;1j@qSLZAtWLjs z^rw#zDIk$e{t98=Gi(As!jGh*v8{=ZDXK_1sVpayKfB8O#Vl+BgC}}|6l;)l$~Oxu zG;EuhUsqgWC=$+)kts~5x1I2>L8yVWoVx}@JguF=bH;Z~CdPC@2iOc^3nqDSUWI&v zaKNOjhM~J!sVm`;1S~Js73Vo;gcGPnl%wQ4ev@M^al$O0EY?&&HF1Z{r3MSZ%CKar zH;TK=UaxmeOc$V2%_1d5>A2D0K4H{~+0ISEviWvo9)+_`+@wvay61o3>p4z@7QLE( zR@Xdo^rXR>$(r+_<<9ZieAkYzL61{$fKU>`XNiaGuy`$)^MT2+u`LaX{!qG z5BDOTY+Yy4*dk2Z4|hZa^Z(8EGS>rKY)z_KUQ?s5(X%pby@N9L2*eFPNp%on!&^*A zjSOLhwKdNpy|-HPUVA2i(fD$J(Nb2eN)vL0pQ*ut2b+er;IhU6IGAhitJ=oc&WnGj zns~bH)!G#ga%?MW_J98=6pz(jUTL4)9%&zBWy;%FD~ZS;6%TUl2kMWlOj^0-mDg^sJ%@3Zi6Xi~U*>+7ofIfd5}Fu5;?^bPRVc9Rlw@vTDs~1>V+S z8?vnr;oEjN95RV}nEZ>-);+8o2wV3s2@a*~x!_)XCgD?{Xjit%p@yX}9Pp*P){GsD zFJd$=B|LTf^QL6STE|*<87b({7JK>~*t*L|@b$_bU$5*JZt?YaP5JsVuUBoVTJ zq9ZJMb+nY>oveqKaaJ^g5G-Fg!IXl0Kdt?bn;#uU%+qp?+fv|jnq1*vP^Ko=vE z_6!A7L{rrjg zX39aR&_e!?-0O%?X_SnN9%zH703D&!AU8)_5>NvG6{Mtzk@pI7I#xNoPH*j6E7It- zYq3WoHvxP4k8Lh(zfNj~)mN3PHA#~V?>@4+cCEdSPxVErB1HOb(U^VVBtkMwuj@A= zUnymHrv0ES7ouVD;6_w9M{ry`!++&juDa)fd-a*RWo6o5zY+a$DJ#~zC0=`sCJENO z>sUtrw4;olQ`t?xZ*orf-#{}4$xf23adb}I(NY|SC{7jr9Dgo-O>n&YBeio>Vp2P& zjL;nR>ImTx2}UUR=x_Fw>MNlUvJc|fUs?tQa;EoZamk^r3Q^Q65TWvcwi7%+YMSFn%dux~L*?3}=6W3AbWPi3P@lyX1Q%V0d7Mip>OW6X=@Q>XIxA`4Ov4hB4h2Cslp2Np;vF+D`i~jvBhZVJoj^d(nPQ^i zEY-Uf4mmW||4ck|#9VV$sdJKFXj<)l8jhG~SWe_NI?sSkivn9vL#Bj01CFl=tDYp` zQWT2tbSkkc9#OWkbYvBHiiLqWkyC8&I=KnIIU2oi3O@x+^L`v#uiSjXnZ!5W8A z|I%jfBMtigENYQ1b`AaG_6{MYX0B$g>kkgD{(VQ1u*UJHZd3IuLv8uaflvV4*9xh( z-{_w)`}WR7juictE9LlQOLW_l!`FG>Ew5P&Rvn@<}Akr}?F* zb%hw+P4N6Yg=LQRp7YjzcqBjG6Gv}}P2bP-jQ5OlviNa)h%!Jxotb{)HH71f6qZijvnYD_(IDF zxlbF=L)Qf0wFQkf7Txei_M1}TX)5KLuk{8)j&9AoUWZBt1UpnMLWt2&Y0q^!SE5EB z7gD#d1{rC`iBPyXsN>;`=9iL7EX*cz=v^1IBw3WRf~F4{MdlOKc5x@M$XwN#`8#OZ zViue4<+m0YBxImhs^*s9GpkM0*nxaHGOU}al^%NRVZDPtV zw11ZPA=Muhp&GeTNd`+)cbMU>=ib!!YDOF{sQJ3)&AG3OTArUFBT+KIr+@Y@^KnFD98 zG+s3)?HFK->`v?ZT#q5&fO+P$1Y@8zt%$V=Z@?`ZWjI~QBZi%*mzOU6x|c_tioZ*91b;H7#t3vx3s9V!TGot}q+SLN-%WQ`yIc$ZfM7fr- z#MA{S-s)ItmNdR{kRg@Z&+=zCzT)UsR+&p?S3MRK;dS?BUyf^xALIvFTM_@ez45L; zFIS_CQ!Q*DO}pGbbI63^J=nrA@ee+_A;EQVwrjMo{Tk)=bRqqyG3|Sq*s&3M(xG|7 z@AB)9XfBu-&4ESYS)H`3W=YlN`X_8r2N-ossx$X|7HBJAS9D%+$Mc*6J#berWi^+? zY@NRSjon>71hcoI@*!A9!4&xheFMFHDZPEYeO1$#RY_0pX|G=_uHX2k?JPJ+X(i}6 zX1^n0&$)fc0=qJZa7T0OCow~5u)s=l{BZO0N@RRjTlWggY^q#&DV(+>4F#=Bx4}>U zUwhx!v!cCz?l~MAluYaZgREy;%cI;UzLBvL@`qu+ZxFYV*3NLWuHx3)LON1hTqUJ8d#*s zJ2Iuo7e^I%7IK2Srq)08boHT*5dtD{ww4{opYz!%liLtZ+b_w7l(s>2yzLy}H+pBmOZ&aMuvs7yBZqr0x0T?J(Q-65i0uzMy7skO!#k=< zI|3a6=^W7d;~iB;+4koPXH<=EOwy=!%}KFm@Q1XBao3|PeSwTJ-abD8-9Lt_UPql6TcM6te05($s$I7 zxMyhQcp>+rg40Q_>B=1aw#8=D?E|u|<}8G|eKQE8TBb`oHtV#)+d6KNn+zr$7v1my z@XPmKZ!bMxb)uO9V*mcwLW`xuye2t$3o!4h;g$sbn!IH>Fc@l#7(oSG_h7SkECBcM zH!BMae`duBHD0&zD)*1V4=Gy5Ju5Cx;OW%jV61C+Zbp_!L zd)}bLn}H;UklLM>p^_qbM3Ix(j}mn^%7?*tkVJWI5JYT!5>u0uJNzPmAt~c|mHCkE zHrjp(nvqhA?Gp@{Az!KCE~?-*Y@Fbh;HrQg*lx2&3SEjULTa!SGkkzF4cA45!I1s} zb5T;hISHvNgOM?qlhE`zxx~akWm(LQ?qq{hQl3<3DK1jpJ)k!+Wma_Gf(59tlv;g^ z(fYPg`w>M6*!ShPoqa%4r#kzr42^`fFh@5l`PfmT+2AOtMwS<(@a<%DS-1$qvM*V% z?rueAy$LX3m!k`ON!9Dq1@nqY@Hx9p%ZX?+sPN-#i ze+x^p`a+><=YmkR*yVgjaRN64K}FV|_=YwLUvNG#N5};t2^s^cx%eq)1)UrbGL|*M z&GIJClv6{{Ly!hsGM3bx2Ws*xd$={tz(uHbeqw#R#crb*n&7SL(`;$j+)!T(-ad`{ z_B_E+oOH7B_CjkKXvq2VunZD`7yf(hp!#b)UB1us9izpyD|f!NtHOGxbRjJWhOrmui*>x3r|DqP*Fl3tt)VcGsePx^Bwyy6na*zK%KkpbG(X~)Cf%G!c(m>r zU-@2^O#|;Cy8@81d&NH%iDzviD{UhrLXNuU;%p;@_n`bf%$Qw)T>*KRujDJ!+jDm5o$W^HE+oSTZY?SrJl}uXotMZ7yN@bup+ z=K94-)f++Y2u5VMRL4J^GRoZs^A%{nVvxadC*jr$k)-gs^D5C`RTzDr#50b56aTxK z%l4;*1O;3j3A-QvV$~%feSRT8<@fdSL%e~)LTbT~T7C%1wP^&LO&=jl4(pd}R;b)h zK)!yJnV1S1+7;6U?-{swxDcEh6xhO#VCb)76Q~p}oqt`&orRl$yc~FVwqVK>@+ZX@ z04+bH5>hi;1w~p~B0ga-vY&wSgPe~G@V3j=SYIj;hURhdA#dm_K+B1F{x(aj^i9gd zDJ}Z=OrTBcgD%jwUv47_f&`Pcpt48)OipJf?!5p0`_;y^_uolwA9b8w(8@11DJd4O zC><)7FMnbAa;kQ~3y<(;b5mfm9|c9XcxSNh?Wz~J@u01Y?nRH&pZNe4%dj~@7w$t& zxSxG^`JDvO;C|`<2RVW7;=;IA^kV+J?zD9jWQ^6;-pBYxM+OQRK6H5TU423y+p4CN zg}&U!sK7ypRK5@_i`+SOHBqZ!akJJFpo;U7Edv_cWTbjWF!mcZsxPy5Ad~CBy z0~-|oxg78fmZ@jQO*dyWhc##H=xwiUeV)~|pF^^OXsFviX`9{U-DNB5IicH;vxBTz zlydPwgJsF%VK9r|>J97twz*{AnLNGlm|~IkMhJ7gBQO_|tUu*W`uad`?3J7e@+4$p zm9m?}^!s^<^(JMFsP$n9^m6 zh?QaX@fWN=1FY%FzI*u(9h2?nRT~D@&8{4su&(TLh5@qdJ=E2228PuZVa_i#n;jRn zs`#f5(3BRH9#{GvGV?a1j8SNx&0X6_{xgspkGDPFlAW)qJ<>I+2#|8hgNA8XGOPDY zhWO3wsTf}9b=62=ei*!-l&=ZabT@86t}F{+S8S+m|E?L4k-3g?Th8M zbCL{Jr(g6BS;x@{7mO2RCZR2RPOH9kv$=Y;R_SKu&J{%r{&d3|whs_ly9h=+J!5J{ z9@}=yJL;Nk%k8f0&kdqz#w6VXfG(7pmp`s?^*_@3O#B0nKa$XLvKY3CHFaKA2Bzv- z>sm2CJWNSvxrNz(zUo$kkvgqds$xS8WBM~fkK|X2bmfiNMOP}Cv&(6iixDavu88iU=%3hW4KEu?%(#EFe!B@Q+KK5Dg2~$x^b~}w;H&zc5gLUUMeSF zLyi{bI?GV1T2AHgG*1!Etw>fhV{>6$f`=3Sqs!;rMfaWTyIa`>glX*Ss=6D_5adQ? zxLN6(%;@+yrhv}d5~J$+P|QE5+-K18RB22!QJjaB5@@*T5IM(u{E71UrA6%1!3Y!8 zmWR~um#9mE1YN?C&@I895DXV#&3)f2UQ<#PSAi;2u?KW}h<_1%U%EY%8YXK21w}X% zQz-r?mX|f0QOc#e1E_;OdEEM_Jv_w@H`MkBst%tFYIQ`v3tXFAF*JL9uol>SvpB|0 zT2nm^`*(|iai7E~gQo=Ef+61#pM*~cDTPLoTm z2J+33$TO>`ovts{H%GsaUXtR}Khc&O$M*C2GMPxaZdH-jMV_X|bYE9RiaB_EGwchw z!Z#_l!s89|y<>)C~Q2Vg~lR-KQ*t%{SIwQt=a|r?whgk#Z06-wMfzo*%a+r{`D~*@kE>wnytu zThUXi4!)@OcL=xdst3cxTihb*l)K#qdIwtyJB5ZdrvQx^7y9gf=!rXb}&7; zGX5!no@-WHzPw4-`+ZHGxsA=Y)Mq0UU+{f7 z?5Y=p5w=2(dCD^_r|?tknJrznbF6BpaoN?IVCx&jpYVOitas6esH71sp701(nO_)o zyZ6b(WpRe}^K_{Nu_zs7htO`>8Uthc0#nX*6Ra|5RdcJ^ zvoNd?4wL>BWNjI8JpmsSc|=JVS~S8Eh12MVl*dpWMT@ts3O>L?gAuA$m@#T?&$Ibh zV4o-xd~CPHg3KZ7voIgp+m)A~!gkFq^S3sI}Ugyq4okx#Z zSW@b4kY3}rVU4M}HT}MZ2{i^S{7A9*SJ=bnS?#y*`>bDZ6V1`W_n>}7tPRySh;F6C zW`ui%AC!hw;j^$GI+iWabK4Zas+K>eh6RKe&(Es6bQh^> zU(4-?MJj1BU9q@qYt1HShG(rR!nkK`^<|!;k_C8cgS00@tbeliC>q!<&EwZXqk|I@ z$zns1`(pOqqXU)PkbM|@8f$;2vjnEDSXxVVn>F6Qmhg>Cf&CipDTyVcV|Bv$O9Qz}J+>&lS14wJ4RCK=nyiw);GQcB!fegZ3=<3gHLtweGcu zGYm_`Nw3tiRhPlng{Tsu0hcV&BB~kS=4u9wOsT%mzIdxaS0?8*je?n>c!G_(0HE}i zL$7n0!8*KVwk6?oC~~bXWue{6bp2#r%cU= z7>v@*`~%2yN&URRvqYyc8$6rDMTeJc@n3BHD_3#o$t0Jxq&`d)&v5-W9&UX(FiWBo zalN0T>l$?pm6`(C-uRc|bw*oLo!?#9@oRT(;A9@k@TlE*;%x0yO&ZpBgVx>}tmaYe z>Hngp=k&Wuq7~LCBDpkoDYeSJuXe`3#Dl4;N8s|lWc~?&0{`D;c#(6BP8Solz*e~u z${$NVL47Er(dx9pxuY7~=7|rj<)%bTIWxN+W~H<<&m=`4Dg#R<{VztYbE24$ZH#c% zWQ&)l%n9;KMFy)3TVL(XEu>=4D!Rd8GdWILpOAc7XQ$>WwYg?50neZ)s{U2VZcu%~ zkKyG3`4_^mjaRYen3G|bLrK#jA`IQ7?C9aJ|8xFr{;dfra0%9C3NxB~ijCUVb6Tcq zDo@ASOU27dPK=-_0^|8McR%|Hbb$MYAjKnUO+#&7S4e}`m4NLHTap?~q)CJp!PiLz zQ5YO1F2=GX%%Z@VX8tUS_`^ejAYZucCM+g4u)xuW#oHRjAO8cgCPCwRKk{zS}$+=&Ej2 z#Yy{yg6^1VZ?%_3!umZ|jGQayB0Tle{th$Z<_o1F&tPU+;v`wA*H4w$1INToh~*`X zS0`+&jw)c=_Vj3^+iGV3B~48yV3MIG&1ez7jjT|veAHLtjk0Iiv(UvY3;KX_1nLAO zUhMr$oGH`Pd?t05>Gr09;*N`uhPZgN(ldzN%|AnJeQjHipa4PgQT{w?^*)j6bxrMk z*UWu?oX>uU=kpFN*#ZbFYO-5XSGK0Mrh0!xhyvuxgU>BT@sAVay~zSyFxD0`{j_iXo*3g7mwi-B-gDqX8n4>_l~916_| zH-TlstYV0nIumoG2Nb>$N>sK!MzF)w z8Z`&%d!}COQg47mcyp0=wyZ4oOk|~t! zeIuXowHdwF4yWmQ`!z?N;j;@XN|4m@w>|8r=Ta|PXR2@3Y%fQy%hI0^%xYVWNTv*Q zRQChP#%{_NBf4i*lsZ|(?&k}{C|jfZP-1;oZ@ugJz!Fv0SZ)_=1?L_U4i^DEAke{)l&_*LJ9r zKO`3l|Kd7l+&=4Fwlfz^SyR!%^w`cUE&~z&n52{YeopBQE~oS9#xUDxds)LsNJ0@6 zbv-~h0{=o$^Z6JG87aZi8#d)D7U8rhh9GMctyX#axVQNfC^I#y4hWo{B_tGB2&18g zu<(kv(LDwA2&^|D(5PN-Kd2_o5ey>htm*3A6hna$gddS4E2>D~ORfLFR|rLUIx-%w>ausI;(>$)yHR$RuLHO5@FVt~s`9WV6pUcJZxkw*wMKF)o za~Z^(gNBt@wKT|MC)!qf%1yc%@ky1@fT$Xvwhs|ersoOwl>6@;cVDS+7M9x{E;U#E z&RF3*$Q`LUz`Y&J?RIfjw2Zr52qcZxOd$k8%>Tj>U}~(OaVe^pW=Bm1tOA>PsOYJ`Cu8P=WW+BhN?5w4+%Ez z*KOz2!LOd{e7&u}KjQyQTbU|Cs*sxgNKZ${tU0mgTk5|psv%6KQqf$q|5@Q)aYMiyaJM2;E&}Xmx0i0*5ylfvpZas2BIoy zNbHGf$XFl`^JxuwsJln^WB|Qq2-cnPGXIkhw-6uLKe_Y4#&4M?2S<%N_2OiEjxCZz z>QndfEbjhs&}dd)9?15kwM_K=MdOR9b$X}0)0DM5XcwQ`H*m<3bjqk0Ye3V^7<7$M z!V?E_s;i1M{b?^Y^**Z_ob5^ly;@5`+dglf7ga&D&PO}q><)vhcRWnN*n<{=?h&gK zoLf96;j==IfM1*2=iO&ddQ+$SMCs-#u5bNWM~bJ&c4ME|5!3TKZRZwRN(KFqFym~0 ztmPw}hM(cr^K*{geP_V3`T`eK{hQ8_mRu4?Zs$nn2wD%8NqR@Ag6(n0onwwJcVFii z!N)pZwa#>QadX^Uh(Zc=1pn4IgBDfoVf2!aBW2MW0|8!^%ACU_QW$<*&(r%a@GqGg zHdS~&fgP^X`WpOuz5Pu$=6Bv~sao9_Q=uS9IM7{Gr&gy5-eU~fQSfJXuIN~*0HC{< zxRyS8y&TXSC^44=){|n`mD&5;u2F;0aQqHK-H1BA1Y$K5SIm2LN4X)t z^*K0b?d9q;M>tRixQ08%F+jX0))QQs`!8-=oz3@ww-!3vWKgv_n5!x#%$F=5p|2%N zp}~-1SLweJ*spr|@8H{r55#hnL1fj;f_jr%2fsMq0{;(e!rP3{G|f=WmKx{Zmb$?sF7mw(2ft;&>FlxcV>Ys6||0JY6C8nM0% z7B;s8U8B)taj8a1HrCw>K&nye`gZWM2|;Fnz)5GexR~7y6iMR*-GM?p?pLdWF|pOM zonqk^7;Qz}xHpo7lK!#jPxG5R2Mp#lK=PaqC8B*X^_6@V-{x&|`INq4wQ?=51~`Lp ziGvESW1R*R%KCKgDe;yNAvCDiw&%IIRon&E|;2{Ce-@g`d2ll6)(?F{j#N|r#51Dl$kx>91aqjNfJ?S zo9leeTG4*i9%=sp(ZO}vr12fVQEgE&Bk{Qjwn^K?9m~K}n7eC`6shdf#yC_hlcTaL zl9o}6@ad$awL%7%81=k9sK)oFNsLdgY8$@Q7map46`sqQ!>czESH!+0T`LM&0px!% z(|6Su>Fq9JcD`=+F?j{0=6uek{lMkek-H;T=-Tmfvvq}0pV+HKImGT$!`T{Ob)PS- zKI!lF*I&}^*tBQG&IrNYw_>NwT)V1fYKsQMwJ_u$yR5$A+Ou6}>u$CFI_XrwEP8MA zZ1-k_^fwPTcCSNJX3uKd-@Q1AR5}S*f~>cLsV?)-{}up*G?ubGjwZIgyUqTA_3)k! z*5@1R$mz(bo~@o0Q>y|E4_D82gwyIEy;uFn_FYJ@c{%Tx6^&6e#U%sloKfvpKx{P2 zlpdTZI}(4`Y@I;^qNw9rGG9#>m?J##$ok>MM)_F=h6@TlhcDRIX_UUQmHfZjI%La>Yg=U!6+seUU56QCO+;P& z)}|%Y@B6xtSEn>Y925t!XT{GB7+Pb*H>A7vhEWXR%cA_q+boP5!ew!f*A;X=T6^n} z)+5V655k?-?W*6%FVX500%qS-BKt}Aw?ZMDp48oiRhfAe{7T{n5|;KFM14`!ilU-D zF>Fe66!%20zqd>shMK{F7qq>uq&HEd0(#=!lGY2Y10dZq3EhF$t&_d)NxOTuX`1d) z-@O|J7>SPc1OJh)smc^8s@$HnRT-)XSydUw$LTSQvbnn4o_F5r(paQ&c7?ZV{}Z(G z;x;X?Hk7%~_+IC4RSlwgMozvi>N92OAG0EjLwdR+?f9r?#51BZ?aWaH767!sBkGEP zXrjt8^(CDC^_XxdL;96~@IrtJg2NM6u0vG*mLL|GASfcCfLqUM!6tEws!{kKsZ6m# zF?%o=Q-;2H?3u^19{T4;A0}qjel~tSUjjyOyShv&)YvCg>IG?p*eR4(MwIQZA7PjW zG^PhM+i13vqLFf7nOWC(awslKf?mc!2Gx-1Beu%_aJwAyWdhZ|VG$Lth~wfo_@}1D zar=n7Z0tz*c}jA4s+Lz3yS`sSc=91ia3+a|%KnUo-Yh3YeO zF#0$o{yFsxbd=Z-=dY^vXb4mRRGM%$5W?O8eFq)9J5=*ooY)f0N4t*hVAXtAjxrJfF<>3r8NTzoFIX$-Y^{|cIaqV79@)NGs-_TU`K;y~ zahBdeui<$g-{63t(5iY`UOxg!NI`7 zE5P^B_^U^vPlx_WM>rTb7~msS`I-^$`|61I4t{0C4|K2XW~5xz65;#$QXwl=N?pph zb%7*95qcSI$#anI!QF%VM;W#4c>BUZ!_TbjTeWTBnAKvWzC32z;cSF1n0=(1p>Z&5 zQx!mnV;>x{UqkDZ2+ECee>zCujQ~s8b=3=6xogh2U)|v7R-dzrGQde z=~)CY*(485Nd-;vx)6GooNMvc4aWCO?5HFAG@YDFlv zXB667p>IACd^=Q}qtDSt;Z5nWn0RSjvGSGlwb9^~Lhp~DIV3)TI;~s*Jd&+hJ>Ran zg+P?)6OL{mABhRYc_Z-|0d77IAW9V?t*LB(9K58$I7b;3H-Mk?oOsqOzTvs@G5P!a zkBbccF7cGVi-ez6_t@^>NBv#YNG&A(PAFpPKSU==Z@Ye$VlMO^cP|>rC}8MrYu=s{RcTa?$K7Rk~dJrvg*!54cVq9p&h+|E)@mvX1Kl{s< zGTF!Ndb?ijTT+)Al2z&heme9*-Q6_W6cpwI>vIXE~<>nr-p9iMa{6&L8DEzQ}dh z*kv^C!W`dKudmP3pnO0r$3etL`$1h}LSpq{T8j~|dZcE$W}489+&O!g6mAbwh0n5w z)qK2-{&-y+8IBC~JcF-&2sj?@z2V5=2m~dE0Z}>fG+%Ge2nnyZXT+w9|3(-XTI;Q^ zl_0op(E4V$`>lms4wsW&3<}mT1V)niZFxGy^3*jBSP&{x&1;2d@-5cRM(K>Gb;=jI z^D0g|9(P5gXJj92$Bs{{GPo@9UgvkrhqI(Xf><$*pTwE`GvsAU*;-wRZ_%!ocYZe^ z=@f_fuMXG{Yd7dR;c2^WXu0f)3yE0iiu29VGj;H*)>hqHpJvU@E7j|*{d-2uAAxm< zZT-kyNExmP`8;BKhoXRYJ`Gcy;Ex(re_H-;F0|rB&SIurP-;eqc~j{S*Ka9A!Ze20 z@wZ+NnJQ#)lmg;^tLA~(^FkTOY*nvU)pdMn^7TZJ^kWLcnW049y*{4rD1Nani4c8I zb4eSFp`MJ1mkRi8+%+WgD3J}%8L4i52yTO+1kgCvs25^D8pw5+VcFY$@sp>r9uIjX z8`Yo9&mcuP&!If2cFFEVz@be=_m-%8L(ndP7PbnHH3E8VuURoCwDiM+YY+ps}eS+S`*b1|e1knK(n=cH2LfZEY z>wxf6?!1lR`<(yAPB~{u;8{7)N&|dREp^UXVVQGK$dYEMT6e-Coh6znvsA_>QTet# zns0^Xn0g8xfST>M1&rpz4*|RLfEKmP)Z9N^;u&B}iR?b>Z`eV{GOz5Fg;uYXUwnH@ z+U;znG3It}Ig7*$uSX4yk+EP^5n~OehPU(4#|sr45=V9Bp^E8_6S&`-t~DQJjBVM- zO64~f@|)miSEo9nNl;23DMVzO47H>1xXk`M5GwLRMOy{*+-x{wFq=!!GQMq?yUAp^ z)G)wB`f7B>&xZKJLnnJQyr0^ip6>khMd6;-k`L&5P)8s1KfgnQO+}W9ztc zwsQ&Uy?Q<`*a2$wiLH!5>xMB(La3eC^bN={ni*XZ~ z#0?zao-Wk&wt~zO|Cv%L!n&BZmFbQR`BG|58Fx1Zo~l7Q+*tKpGYIsA7_M>S1B_*V zq2qvqQKKllX{)H@lyk!~z9G_NiYzqKRAUb3S?-n{n%KO-D= z=#2zZBB8Z+;5VK9eiqq!1b)s213$Z`_?;^e_~~$UJ2REQ&+*B@PgWki57WLaWWu>$ z6bg=nk->XB_4q349dKj{fFS^BkKLqpu{r33*zwc`XeB%aa6Z^Cjt{BGQ6jxZ-V#GK8H7!P*@57$T7hJDO9YPnu5uM|c@oa%t%lFay7n~YCuX=3i&A|70BP|Q>gu1Z0 zu0B31Kw+xtlQN`?1?R&^iqQF}XN2wFoDZFmdOoUm{MGZJ z?^AC~A)10y_`4E9p!+iPUiEa~hAF2-H=A-BKR170-cR*4u~I7CKvL>;X-cJ2RE83E zRa0tH>X(PIDRtqgz(VJ3yxoKjBDhD+0ic=Hu6Oq7vdujj_1VF(E@o2_8$mFv)oK z+26FH@{LjieTq+$ck@4 z_F^FDghzy&a0NsD{sW4EXECce`HQx*NLm#E0*HLX75AbGrH&}2B>e(N>0qi~(G;`s z>}OcPEwk_$-?i6~<&)0;r#1=YT?T8id$l#0gm2|r9){&5{mfvVI8C~iv@!qLDrH9x zzgT}7%1cHtzu0~g80k^_eF@+qt$nRx3fS*bEdp#kK@tyFpU`GvJFPSP5m$=)+W_GW zyQalH7eolSc0XQw-m}qC=vby?tN3S&3eD4|PuMhJoo|r_S#IHFp@?DQO;q?HU%p$} z%_5akuz}xKlZNJ4$V=Z0q7CO%&0uvu`w1LKezk(8u-+;Dhf(1a@yZ|PStG1ZT1<{8 zAn)GO2vZjTbOZLrti%QvAGJCtaEuW?iDLp4JhZ@Z>ysUxh6q0HrO8+X?Jab5X~p+aw+_KJ>u8}7Qb z%i1Nh`sOMEZOE4uYm(lozl`!RdxOq)s_X5&7tvkFVn7``w^&DA(9w7!MY<#83b}G! zKhtSogu)nQJ1VC00W3+Zzr)D13~&#*&CQ)^U5HR1MY|*SUvo{8fH--~IJ2)DE|;sD zIP6OsV|05a_grY7Je?>#dpsv7*=oFJZa&`g6hE{Qb{7IEHpByMsZBaRd;2{Td5ot` z%Xn8fmlVSDMRhm3n#(q`>yl2@+-ziL)P+d6&33+Y_nC@@6)5*_U0T8a!d`iaZ``w} zOjA+4p>Fe@2$gYD2g$! zpvin<(?A_(VLA3_$h5i})DG;--!R0%&y3-J&MzbFbRU0;of4jb$Gu$fxcPVrg2bj< zfRQdzS8HJ{R&Ol-!4x66etJIXzX1#(Qr#3xX*`A~0#PC(>3#ua^6WDN?4?NGEU_z1 zgc!WIG)kpYFfk^Ux{K&cvEmQ&Ok!2A)5&}89cKOrYTT4)!bL{~5Dn;Vg+5xkH!`1^ zF8Blq7IV^DtPfGIf|agjmrMdU$Q@NEng z1Zs}aRUN<#_e`}dsov@MYh#p=*?!}@&zIWHx12>F1jTelwH=J&{i8)@9%HdE#rJv_ zGwvA^0JU0Awm-X2V|JaRN&tS5SYOmWRoClk<+A+mRP|T=5|OkTz+fw86l#K^sy3Z} zr~n1qt$dDcTG4w(OZ&PF?6r=35ZE`B+g1>poVK*;Ctg(4*6emxdV(TMdn!8^Prwrp zqCuP9*Ad4kaQ{|ryZ6u5fyOaIe$y01%e+9&>J5$)J1Tcn8rsiNX*%R_Z!&;*;dTGi zH0#Z!5E&qVtJ`>gGRDEnd3EI0gScvp%iuEnKk6I@iFdA!GO&D(W0J}ylEwm!2iBRp zE>>kNl-3b+!b*j?G>rY-YU3o?_tA^j49jI+>-n&)(4Q=4QR^3fGT@~XO6RGU@>~Ag zJf6^aR`+qoP(?F)C_&e>UZ>q%sfr3oc*LDhuHh>Zx${C)8Hz#*YTtCWh6JTstpT<>cXKk~s?1hHardU8DnfHXP?z@os$u=3wGutO{FzK03`g=B7A{2{?+&D&4N z0Ffoj@tE3W{u>S!b~}RnVP>0+9a0>U==wmN4@99sQkwuzyec2=8*MAuIb{q*$Zfeo z+4aZVxRhbr^f+TZubUFjayir+g#@Xn${K(!M7g~JCj%mjz9C6(D^o?tvX#ZAudrpWBb&w293{|z-;5A?kx84XtR=I;<{V68rU+ZiO ztv}TUBw(?qk(;UYL*) zTfgisE1~Gu|8J?N>#>A8b1>gy5siQa9CBUM{k(%SX@`mXW%HJPB>f#*1YLu{gisWm z;sl{pi@qx8C+6}$OOzDPHgp_BMBY>u9~wvUA7Ieu@K68CSG@UqO=g29?DxH(g zQ5k@Au4b_2zzfnjayjTlRcgA#`AncV-XQ;XKcQ2f+^JtU2K>3}V}RF_?HB_ZfslzG zH1sh7>KJtDzwC2$>goGb%Y-65+nI&GobTJtY%gXXR}%M(z(_gXRPS8`VUifqxT-@> zTkpLaQoOnFnjlg*pCx_o&V?CI#b3SL^tu$WQi=a0gGxD)XQW$HwcI8~@FC?#2+0`JNIb)U28;3+?%Lf1r`v!CAZ|C7t2 zTpZ;V6vv%|&VdkF3-0YWK91r8sx;RUX{B=4C*$%Y-Jg8FZ<=&5;&0KaIO3E$5nm?G z`KEmztoZWXjDdVTq6m&c~<2y{ThAl6pydF8<3gA=xq3bqsuF_-VGH|JcK8eyTAc`Vz?U283MP4q5S3;9|Xj%RuKQMR?lQlifkfp!g&7N z!epS#9Obzc?h#RUkv(d{p;dV1r}QF^TBGcJu=Q z;pm5q>O7lWht-UpI|dmxlu7{@3jS>OrToG*&Ex!3=O0^cTiFuba_j%0?p@&GEYG}Q zZPyapZHaH+F0s3BLF^|G2@_*0NvsfUm84pU^?<2bGQe<9m_cTc;MV4O?&mZIW`^@X zLIUJO4kklPDkM=!wymV?yCt>l65H*IXf4TFC2B3P-7fF{y6@+i8FDbX+i!p0m+P0A zVGhsXK3wPPe`z}{>Afw(H)K>qT?bq1tNYd?69`))Ftj_oJ8Xob#epG{sZ3*^WnEY8 zxmlg2ZxE$ld((~f8^2tNq)Nd&=uw%zu0k=tV!FLYy}v}z17d&EaXhT^<->PDZs8*6 zf1O&s_^t3Ap*b=f!4@BDooRjh7Qc@sU)9nL3&+@wck7GukK z7fTWdXl#^y9|yht?gw~S0V)9GS5b`F-J+$6I}=-;jfrRBYJ{p#l%Ds{xypk2=XE$@ z^NescDsbTWGx8Q`$uuk$d%^RktYPLH_ZQck&plSDW9k^2VpDj`U|(FWj#(qC4}l4b z+alj25zzRM=oOzfmifrsBZ@Su_!o9QoG@)WD|S{`!=xtdtPtZUAkZ*Gqx;A9kNFyW z4HQ>IEOy98kLD`&x$>}wtY6b0`?wMjAL7=cZ`}Tk#PQvaas1$M-EZEjkTERU1N}y< zN@N61KRudwZ**sQtDX%D6;8qYsk6_9#aLOt_l?DW&vLj5z%tM0*gx+dOVncqlZE0S zLRiF;5{_cqGBC(D7Tw8?fgJa3GNer(*3)`BDrm@? zF_}hfA~_9mk-!Ez?}td}LkLrA09Uo;#n>uu+zPgO+Wk5qRs!3r4hZ7v8E}u&65K>} z`ccY_KqkQ}>^Hu0(oXW;b-iv>DPQ0@uIv=6^;D7vQjk($fZ1xxlm!!M%@J?Dk}FSW zsrumxl+M-GQI0+l5)u*G#!)tI5F5d%Wbs;ZmaV-5g%v~ z5;XHcu;JJvHo)O8W!JD7xz|*xkf9+BA{O9Qeelk}5se|2zlZSMJOG%IkK}iz_Y5~j z0q1CnpTfk=$Z-9do}hjH&-iBJ#72F8L24Sk zLD!-_;`R+gb{n6U3)OrzUe8R^x#`iHUn8rEj=&+e`Hev zMpsY4e5L6BvmkiAtMvi$ugf!PKFybgjG)rT9(4$gTKgdM)Hzr;5r_OTFl;?WXzlzyLh0KpF|zJxP8Tl!Id zetBORnHC~6M(J#sD&zzV8k1n6j>N?=?2h3}nbt6@o*yu|A8rmmhBE*BSfaJ(&mB%4 zPG%`Yl#oY6?`RpZ87LZ#1z?R7yyh1b8-BvNcUSVPxP166@~QsA3U!(mPPDTq&MbX1 z6hfteH3yXI5SA7}YKHY|F(>B^EW7>!CVpFMOd%#4liW%$kix7fTg#>EwG2-d?fQke z3lo_;z2;xTGlV{vyLQzFI|J$vuQVMhd;x=XoR`OI=`2~&-8LCYig1?m272s&m`0m? z5>{7~?Xc3Ho?svMm|! z;W~&YN2@K_I&B+_*c+@r=o+k#tV?K178d}$5tq=GoOpJwm%dZ-UpxDf|JvD0|FdV0 z=?8n}=xpstLS-X84muoG7~YAg)}c}S#T92$BZp>=`7YyDbNeIbavZj6pkN>zcMf%p;V-V! z@m1+!qi_smsL=m8VfUs(|K1d}G(vW{rG3w_Yx*OmTFKLS*r<10ST(?u#C?Axvu4l8 zxg$qon0P%GwQ9KeA+!S${TI%~N6sXCB|jr?C}5l95^LlByKuCyPg}MMGKNRa@qdy> zk{fyn`t^k^y%|bZF~?*=fXzeMK6b9Jk+Q2T#anCetxZt9i_bA{&eOaL{`)PP{$gtl z!gw54Py7`uo3_A!KEZu{Gw}K4JpxezCTB@#6sk1DPswciv5`n8C)(Mtvq8vnh@PaK zrqN;`ZRjmW14^f>8InI7Wp8r#%)8Yt4_jJYO_qVF$jACF z%$pmR$s(-TG#>6lPP%GSbC$>` zuQVeo0>MLF0d$BNij3pJ)FI)38jSo$7Ho{9*=2-z8h=^ z+=^t5#g>*M@-mfj0Gp?eT*nDS z;I2xS>oMB+)?N5Rt`}KzcTYRJXzYZ63 zt#*jHhQAe^?8wjxhx3Q?y+f=aFd8_z2IWlpgL_wc?cTe!RzL(yJHIzi=|Vlhp@>!y zUQaOe%7|{02Jam@>8$XE!xdCTqSd$${uq8(XAn)MDYxUmJnYq|JbiE<@8X3{&O?7& z0_SV^l~cRcy0NSj{4-g}5^BogtT-o? zhg&BWizA1K^fOUe%#hBI^$5!m!>e2k)8vYn=0jdrE5HE*>Vg3dMViC?xZm`udqwX% zB(K0_bPAg}O`9?4jPP(xnHgE^6?1)EyX3xrkLnVY1}w0@2%re{)hhD1xE;&cb+x|B zjNcK&r}1O9!1By{Z_=Zou=0z!94Hjk3R#MG#0!{F?+Ah<{lt8@4oVpUF$?&<<=zTw zWf>{4l{FnRg5S6|{N#NuBa>>IX=Py<8B8@-7EK5+lOLj`D@d6&Z88#yM3COs^3q{i z%cQPnU%<#U6T;Y!e3&ryh1S*X%M;fPdNj`PmB;xVt*fV>O8lJNm6P}dEJf^+ z{aybt34-v>vFiC|GO%d3tEh(mFjmXz2fk%%3R0`Rj#WA@~E?7y6%sMy2|W*tHR$l zehQgTk*A?X4h5mF`D+1TV}H(TuLJBlddd7D)bCcVQMB)kzL4=khR;QhFJy%Bk*6Zi zOa`ww_^r%z$X!giyWWY%IzZu*)Txpl^hmoJfSr<)o@HdTj7t?-ZfHm=3=OF$B}6y5 znp&6t9mR{j6%DT6?J0Br-r+$_R`^REO1uky!KmQ5a~o&{1LSDJONIX~R|klckMPKPd@0d8^`kH3>*KLC z`oQw8;tyVMH- zJ_^UdMHcB+Z7$zC%sC@Yl0?L!ho|<;#={|9qj@~lAj4FzJb8j!of{v*#}|%k%il_b zG2r|i`xmy_mC)DN<#5riL1f6LuG^6oi0G5caxqEbw1vG3Ojx13|KkBfLr z?&T~sG^G_16A%I>WDS5RT|%$7O=@2yqkz!3U?eoqYd#Nn#^2a{ZL>J_lo{>G$Z9wJ zpL8V{{vr0vrI_u7qsb-E?sKa=&^=I%Q-S z*U}1RClFgU(7O9Bdn1}+L7n-mat*3K3bkn(RP14t6cpHMy;IPs$-l!~f%gQO4@Cp0 zqqsLiHA3S83{WdHK>;K32p}N-25`hks%#o`p`R;Z;yR?Yk2$oJ$oG~%$!=-=I}*}) zl9%$d0pVMj-hiY?hq|)Vk)HDlqtaapC$^*R9he4BIM^%7-}9uxmaDzkoM#XljS}fL zm;7?0ej7^s2rCK6$eAULfhD!=X^y&_f1>^{*)ztIr#(ghnvgzA0ac}_T7D4y3o8H+ z>!VmUFmp{}(;*al?;8kC^GJ3>CZM6Jr2WpUN%zLT%jw9~y_=ut`0kR9^&L;fJ>i>2 zA+Tl-796})Z0GIyFfLQPMc$(A`Q9RZ?BJc9-#KJ>2l$#mI~Dc>+};_n{hVvMy)8=z z1NW&TNeJ>`tCETmD|^Yj`Jrz={IK)khwC0$n3b*pAPIA;<_YXb%Fb>&r{lgD?9%1+= zqyVmYBzsqABo(WB*T6`sT4N?iL?fKqky22q7DLdcQH(?R67nH%6v~Hqez4x-8)d5o z^Yx+|2;z}Ne2%ZaaM$6F0aN$T@u3!{9mx;Mf}xm#I0ixhfr!$4fXvl=rtAjF+Uk&RtDetAE6^Qm}`%J(ou-C0@z z9gW^5LVX^JR`$F%H?gtV)|`D_Vq^35?)`^Iy(BdRMp#iZ9_d)7X$D!=obv3eq!E%l zB(*q<0y2I!Qy!xJaCS!pvZ6MB*l_r*)gBZGRa9o5)>b*7P)Q%T9H0xA!4u+cs#Vi0{g+g0?Oy_)(vvJwX7!}>yq2?+l1gf*)|rWd zhe~_x#&IKAUN5g_E<$Y~LYiCguAxJt1n#61tA)G1gcNM(*{FAE|5s_*)>k?Z@<-B^ z|Fk?z&Y-5|&PvoARH5s0T@3+;D5;jMDfkoa6V(P(&xJZKYdX?0EuNKVaDJEwJZGUa zPg$(P)bbRYJdSe`Tgw8&Ra-DJs2G{&c)hMpYeprA8-NnaWjMjuN}${31C%LEv5_d? z;-FAR{>~~=B~H+ysar06RShhE55@RE3x)@cBbBFR7~YH=%2t;)q2jGJ5%nPM*HcsU zVtviM)avpzdo@rTu^OEfydRO9^daA)RmjFrhf6(DYl#DnAGNa1Q6Wo!1gov{os?d! za{Fd{GfJ=TkA#-+7~ta_)H z+;viRiMX0N#zs{f@7nuOkW;s+4B456k}8ijrEYr#4IXWRz$a{K=3N_(ia+I1Wae~z zt22TQ)WsVLLJgV`r|lz4wvTA*l@zGM8QU8=a<$_kzhcwl9ZzvBa!0M@#pw8**vvfS ztS5mntoj>j@}f->L9+fC3wx<0$c0E`cava&P)s)IZ<{xfKFF>1LPYDo3r&;T?Ic}{ zd`r_zA-^Tu7QM!2FD~*Qk+LB5A@51tyD0P@Q|nwUnskl8A8Q@ZBLaqqWKP~gdJ+i$ zi!YH-I*=jUX}AU2nWht$zSZB)Q?%!VbF;FAAhftR8wwrqM!ivPn8tmx!ebr_QK-2W zaL*1t(LMrO#)8{$$pjZAU2i8>5XjDGDJMfPBIuH7TA`6#5z6glqEeG*l z0?s9Y=4Pusm2b+6t#%diJYN@*g-hhWcfsN9kc%DK=ky%H)Xo#JkZPvpjH`>w)XORz z(nc#W8nueURcI%ODllHosGg;O3HBWsx*%Qqfws;L?ZNE0ZQM3#%tO<^$Gn&6%hfFD z$I{A1=^eS*EuFEuA#C1q$$iQwrx$&9u{CuLS9#9s=<*xrM|xaZOT?sRu55&iO;_+d zZc}5c%e>ZDo|z75mY$uK&h=Hj`F{Ct(zCJ%m&+7U_nXkO{;NqS3t|K2tM6ZX7vZI> zDidtQR;%@OTBE?G0mX#3Zi`=UQx~t5N|m*?I8%6^$NbrVEG9O z-`tZF`RezgT9~8_RO%7-0{Bu~<6Up@r6R&2GK#>L?!7o)y0j@mBgOT0<06hMZcI)k zc=@f+65Zz0hd5W7lj3qdR|AL@ zj_T3ANMHMR^eA1095z!_kkOtlfRqIJ-@Cu7Oh z`{HE&q-vLGxh8}qz%t;plNM4U)tqdp7>kpeV;qjHwbt=mF{dm86EiVRk=i=09Azsk0 z|A8wlmeTc~S!-$`N)#ssw2Jf}BA9J~7=o!KyqP^Q= zqou-^Tevx#u-wApU4IG@UvBu^*GmhI0Pg6704QDGjCb|*^j&>D5te26@;+j4&0)UY za5iy1Jww5_^^Ex0KInWnu0QTF2&abs;leJ1@K?_*GQhs1_$r^sYY# zzdBu6%+(xC&$E`{ITrW}-#Xs_-!aoW)0a!Ony4#mw(Tg=CinsI9xS*h9-Fx#bSeA$ zUd#Lz4(af$7%($TW18PehV;If*Xwa4*fy80N{T@y)H{JlSEjnu$Jk;u44vw0aKKd{ zMq|lc2V_~aRAJ5VK@!p~aNFI{VZMXJNnG ztn8ORNziNA+BZw>hrcU4#FUSXG*;zmhvA2@hK498SLPK^W{sVtc@b~=pt=<<;pb$F zi&2?_9%$OBv0*_1M5#dkPb9KVQLFfdJv^8T9rAudCLua8phgin) z*8nOzL!4AZpCRamfZsd;XE3P=6Bm)R8-`RK;8v1ZA!y|z=Z6}5MiX>>sFVwF~1>(l~^Kd~#hcy1o2(GjG7;gnikImP!=h z#3syV939~-i1mFDv7IcI#g`bqxtH&ck)uF;N7otXpp$O5tF)?b{u5HOGNxvX zq$v|OC=;MU{muKG)QtE|f_xzLn%rX2(h3wqY+dK7Lz#p;jP}jwEP++{2fO<*L}b5- z#jh;(R35wcKJ^kt5bTvV zT%$~r2h6TRr=8vfRqj`P^CwBVV(i|kt#Xt)e9M$K-rII!hR~~im>oJGUluMw49KHo z$pt`j44;x$_wEz^gkx@orao@!?{k{f1s0`0PPdJok!d8>@>=Vwiy$A0q5{2u8Lzu$Bf;m0oTEtb!2?d;vL zq<5fqOFXKyb!tOyWK{XJP=&f1b{BW&vy`5Ko`T)QY+R2HUw!+!+5^x5V|)66OJy=Z z?T6wICV(|t6m#!GuSu3?Wkhac^qIC7=IE(h4@^~4^^`zz01)E|#w=O-f#gIn75L2c z0UR(E<`pKcSqym5U@y%BAZ1?8d(k-ECf`x;uy_!d+B zsofKNC3F&o@oA^P^KndKD@$jp5vc`SFaH0GWEZ&<9nLfC>pc4UhSSyHoODY&1*gb4 zCL}BHZlt50;Lp?(@)hZpr_EF8J8nmiv{F9BnySjBVaM;_nhUIuwwB7v;P2`!g@lyyp0Hz|Gfma`7KCILqk4a2H^EBD_Y z`kJe}>-c_oTc3w4eI?peSh=Oo(KRnJpK7#gJ?`Dd>Ku>y&UQS^-eG-xpRC(aD=%=W zUVF=GG*Mew2N0Ahr?gh+G0HyeA2aRc8;9$@|4A z4vn_`BYVqtv-ZBD@$l0n%HwWV^%LRB)}7_`9CzGZUs`F7&yLM&pQvhHtaojUY#tEA z@SL7kJMz-z-p##~fv6VktA*nfjDrY{)711lJHgVD7l*c#nnD@12Nye@%RE^1?0mo~ z^;YexZNDdwg3|CI_AF4oUM-ItcULM`w|{T&?VjpMCUL^yPZLa{TRjhdZ!r_k_;B*!Pj{{2GIc=SfsBe1&Qjm< zJBL@0ybj*Fdwz4X9-c!@RCB2!ofY=bfZ<{wa`-oHn73(oq_ty_ znkt-}Mv9Vby@G!@YNY7hnTU2&*OzVCUDr7eYB=xq_o`88tmwXH$Fxz5c^dNWch2-K z1MHh`@y;LTyr`@IOX$43bM2e1?XSr5(A3@08`|cJTr2uBY|ZWI6KrAliRHZoGO|c{ z&7qRk8(h*G?)ATLndR5&{i9iuVWE_rSIIHgQveskY4{naEs9Kipm_~C`>a{ck>EOz z22DjBiZLV&9^=@OyfpEiOBseAUYL@*)O(I8{t+drjU?(^AstBelYPB}Pqa&S369A7 z4f5GJyV~@l}US@j&7@NS6o#{Yo0Mlq^+v)KH}>Z zHrk#f&l@o_uVG~QPn8Exy8serlcVxJ)~lHW6Q)<|&eZy{w5S&4@t{w*G&`l)2x9Bi zTxl@VcOnbXU%V#^C85j_zN!ihtNdw{1J$~|bF}mO9MNJ({~f6fk+qF2KXSCZNWu*@ z-Owx}-j>tDBJ{_bwxJg?5N zoRGEH(C!9q!R$Em#LiPWFHwBI^>OK_G}g$G^WJlxay4+(MOp`3bKu>%8akJ5oCmAL zW2r9ft-8oXsm*26vpKbSWp=;pwAI8S*EE2BbV8&>Dh8`teN?fXzUbUZD&a zS!@^#vZl6LpC`Q(Ia9JPO&T)Z$Ex4^{=W75){B#L+`FMmn{3YaeYbCBTaq9pV_VYB zrPnuJzjbEo3>Tnd4bQCE`_Gg&pjJ?mgHoYwBQ=~?v2ukLnck*$ZRQ7NLa)ub-sF`D z;U;-Vw%Fp6*qLbr4rnq_Wrcj2-HM!{AF3Iw0Z=as7ClLfgkQw}qFQ|Ub0u|hCCcH8 z<>EXtLmiXuSSn3~A*sgqJ#BypYo{2pj2MOFQ+UPVE(IZL%LfRQzf^pUD{ z(_9;bWeg2GP#h>$BF5j91H3O={}U3!s`Xl(lYkeTzR|eD2xJ9SUc{e6zsb8_W>^HSm#-U zs$~aPn>J)xsta)kctc&Du73|!x?MG@jLhrKHApvDpda(LbapmwIMrZxdU9UgxXkXA zN?^8y<64{X~pVE)@KGt`q`}HSU8L^3`l%}f!kB7%wUlcrjXKLGwedC$t*EgTk z-VRLKOM5oDm1BmtH4X5XxP}sk2=^*?>`dB|B8V04NlDLZ{e0i^RLDk|KYi0yAy>}$ zrpuvwb)4BW+ym^sZ2w{a_*M6>ax{IayT~XYLC8&$o+STj->qy$d5~@CMomq%ym~q` z9FDT1#7OEKyJy67a%XY&G*l}z4<fLugbQ6dslzuB%O3zWkQ$&8|#oZMNjg`gM57*Oz%i)+6EZ@VHvUX0@7} zE$aYP91TS&bcSg4H=9O7`?sNwY9+i3Y<{Td(1O5AO(jY?6wjV!brhW*IjOlmjEi?Q zrR?&Yp?`*W9ZBb~nCp##;aeTM7auu!+up&}k7pZ7@4vO!vfpw@!``a^1=9Irk~q;5 zL2E^ZU0n@b4caiF@J5&Va|dpywh#R6*4Neb9Rq^T4qQ{>(jOnVdvI0|rA_7CI+U-S z_02nUD*%|b?0h=&&VxC-hBR`#=${mT!;an+!4y47S+6J6V0WRdio0g-y!*UwW_#ap zS8YBd)s>Y+u7A#^zP;^h9Z!)aX>Ba|gqs{`-LJ5Z1;0Ps#};lG*>d>#9vD^I)~U;- z2Vq)uy&_~r(8e7Dt$jno{>Az?OIVfPv-Rh0*Ye;5>r>Y}UjKY!=>J&~$_QD0*h4Re zf<564RWLjyp@DAujZ(fbO5R0SKO4FKwPgk~at~C?%{%E~Wb+8EClmPMQbi|;z!zq8 zF}OxG;b!1suz5#J_z(xXs1{hY$LSLYstln3Iqd zHwwwYbGvwJgt!AH4$MSRB;hWX7bgggSP(CvsEFi`rJR4qf}K;Yf(S`SI|b^@pY$sd zy+_x^F4K0NUkc7Aq4ZwEmEHoqfYRrXd>s}kri!`KeVhj4z!JISi1k#Jd?a|{}aag(WxONx>yKdELKMKkc-n0isfe?r+M zdOCX?%I6_qzeV0NZ@+vjuuQ9{&9V08-OVf68=las?)JqsRVXusULRUnj(%0*; z*O75pAHErop^iG^Zz)*>!k$Ryf~d}^toFDa)#Z8;qnOTgxp6!Di@LK+lo=S_D*ddy z4hepHokEj)*AYzjcG_wqY--3JnuU^YM)SJ)wAlP z;&ruL&OvQ{=jv!6Wd>2@&hX2v1@cko5AOoc=ru%}yvNzpB$tB0=9>0TmZt6ib_!C%4eT^qQpt&4TR3*|ED z8oRe;Ltm%FmZ_KZozyQcRgQ07Q?9J6Dp9-GDTLHyZ|{S>FFMP__t74_NIqJHpnx;9 zKs(j?pgmaG-Br$xhOTV6)i|Lpu-Ci0jwwFrr{;hfJ#ROkXwLKiaN1Sxdq{Cd=IdSv zI7ho7h^iKlW7pKRskOGguHU=W?m!=mmyilrwaL5b?F0EHEfvnwp;*YU?YXAxDu;LT zfud)7S+X{g4Yyy0obSJm*(hwzL+6Ef4DCEkd8taSJfVGCwOPc9=+*v@ku{{`%TsD@ zAMmQxB0y1w)zdS!~GHM>~f5?ni3Vt0g zUx#abE*}J-15DSnqjY^ZwxRM9;UzkYfr@xm!e-`*?I<0+(q z&$nFPZNkHeE3_W1$-`;Rz0iR<7mB~mxln|W{@=LJMSt}RgK5ovqkm3D|!1#Of^r3~8`v8@YiLWD=|Q$MOPBqo|b9AE_QmYL?ak>yB#mrD5fNpu(SN zzMCkyIqzL~c__;0&N&8~+RRyGUwsP>5V^k^W-|B3@~D(sdE0xeq0$AAsWgunSP3g( zchfwC8J%ne;;sLf^9$C;YTc;I`(3p$=+Jk0Ton#wU0wFOt{Jrj0TN5h5_^XXRtB{* z1P!sX?-V<_yeX%aWwzYWVgoHSBb7ZZ;VYVpyCP;Oy3i%9jV`9w%CGpK9$oBOs}^Z) z)#tgsS<(0BujZS*6dz%`IFC%+qwH(vLASA8e+~ZF9qoSlydoT+i_gX@aJu)|x}&7J z%Zbt21Xc)6cP@hg@B1K5h+j-mGy{~+@^N(Vbc?Hl3xbn&7eWP&#<+Mcy(hG4Ym=UH zk8B#^ZUp_`mU)=?Ry1MKv`;eAuWf1_mJ;5fn4vc$W$5>+|OT+ zInz><7kyJC(1HWOt=uaR96%lQBtA36nkmt+!u=J&a4?)OuU8vCyTGiD2uUWL4Fblf zHfVqtSN<#S4qroQHBx5FE2rI5lO;VqV{dGKTbM;H4@R~i&j8^TPa_3VPD=|yU+4%^ z*+z$ton&77A7PQm^J;2b&Nr*v9^~ccyiA?6SE8L(wQ{^t@p?SU@p^3mIrWJ)H>kGF z4e5EoC?$Ey0~(5FvPsz!#EO&|X|VrKB%jGoto(<6);|ji;6Hj-V5OSGDzt+1yn)Y9 zuDFsRkEuB#L?3)Vyli`_B%{L&ysvFq%S)}9jnZne`X~@eDplyJMcME8*GMajLG6k5 zUpaDi6m?OUzAM}nhVFL-<$$!G+4ZmsHZj1@9qzpwY8?K|2JP*=C+ghtHO|NMd!!%j zS-Z*^m#w=aM4M8?b0|X#qZ7<`w-pAV_c!M@=WZ(`^pI_L3c=Kz(VX#L)%dSJ&(CoY z^_G}!x>ZcOD=d=BSducWoHnap1Og+f^x@{{ziy5<2rULjxgI{zHrn=s^W+TrnI_1Y zwig$*jed}vX&V)ChAs)m8;xHJeuwwu=@=N~=)vDn`kT}fEj}~gd;u$$lt-Zde58*T6MSG?&p1S)? zp*StsR7C0=?AS;Hk#&(M*gDsF7HQa%yL$>=p*cRY9me5;L{}LbiNWj$u7_Rx-{U0{ z%uj39FH4-JxUX!{`D^GifsYudy`PGVp~_NTkSCk6-r@`tsZ%_HN9@DF(De8;cfSxD z0V|fb#DcZc%7b;Ho-~c{3^}dkydU^f2h8{r!cW&fNnM_K^yu4^5XS>X?>X&Of>w2- zA&IO@dQ@!cIHIHKNwfhWLIi2b|7&;yY=YnouzCN4EC!Vy5~<+tlS5oCmcL!%nDk#k zjnydMA^Wtm^~WN^Dcm4Z&=Vh(BrQWPgMpC~&W*-~y5e zFS)k>?54K>NesZZhTG2h*lWN{LuYhje~GJYex<7cp=O|6cS$QndWpTS+2wl-&Lgvi zDb!pp-;jZ>U%kFwCF%IV=4MOOWgXF`tWL`F)0+nV#l-Jv9o{jR0a{wfr~8EYmqV<>Ximb?1qex!H^%) zn<336GVS!dy5@UgTzl3_)sH42i3dRg64aq3KSk#^VkY)uQfX3w9#%M^xH8>G&->O<8UF3hLS=h)p$3SXr*W z4}P}QXf>2VsKx){4y+_|%y{|E<)I?ItM6rCWqTZ<%}X%48%&dEb7Lz!$B^T@g(jeF zB28dG*@G%d=p`ukIY62~N57J)k5UE8t<|;LkJi`V6=C;M{vub`+HV0$2v{lMFqw31 zU4o6BfY5*{O%tRc9q<~3NH@rj(X!4d&84~e7PUD0Qd^9^RN|jU>;U+Kz1g?e-ucK@ z*Pc;I+Se<((LJ}@)m_!Rm&%ICWbMx50kF-t^sVbZ<0$LyM~kk$jJ^z{O@CpF3sk-J z?R{6l!8VX47s}trd2w48x!us{G5bfRSGcpL>4w)(!~ViazEr?W}Y!q^W&&UgrYsg&|?3X^L zk_uWNd6~MPgY&7?ziq#sUeK=&{|aO-IJ=1k*NlgEq71q zo-brRgl#01W$nqOGA|Th3acs7RK$JNI4WuvZF_PpAdo$|L{_Xxnc0&o&S1?6eM&$e z^xQYrH%9wTxr%~2zeDP2{hr!V^<{3vY+F_1lKRlkYTzEEyPp&goZBULHt{gsZ=$K;PI!KyOpr08s;ebdTl zsdDa(?%n4;W#3m@f?NyE1RP~IE4AJ(lEXqQY4f~Cd1B~HCAt&BiKK*ItMd;IhWsbl z+U!##Or=%N^hq!23+krpgMESSz!^YBc$;0SR8n7|c;Rc}zfwZLps3ZnWjXtMn@KgN z3b6L~+OKNuFX>1=Jj&?@+~#YaZhwPib|i!Sp}{CO;Ic=Y?3418Jf)=)0W=wbacV9r z>aLVrErmdU=r4Q+k3{&^4?CO1>)1Euw;n>>ND@oZas>f_>os(?Xn%nI#Mg4^Kpm^O z7%Ksaf?F%zVRQ@;vEIn^j%5ya_eu8RjsueY@=%m4AD+?l%RlRA5%8^Nhbn5DmuXe|Ar>DtpQx*UL%ln=`t>-`ZqDc9X zbKBokXYYPlShu@AhWPhSdcC{S^e%vgOiCwoBk%=sUMlPNzC#w!_Eh$x#;14gy0(-A z;_gi3p&C1@kwER-@s8^!IeSm-3I|qOp(p#gDp!sB>7&(hpWf<#UiXY$-+G{#Cm@IB zORs2G?Y*%o_~UZ_u++!Bn(%Daqfuw@vS$`lH|G4vqqQL;&c8yM@=I=1YKM^DuqZU8 zj|tJ;I_vJ)SZ>U3mZGig>zYrnbuQ<0Iq8dn6PI$M(*btO{gpt;K=(*Ttk0|{49!Bf z+hsgw$z<2>IVnO3hLR%(KcFvcI{TW)Q2H{mOqFXaC^_W{6sv&bdg*(n(pg(yf;1i_ zBu{EtQW|?)dJd@~w^>ze3GHiz;A9hQLR(e`C#c6EOjV^&E1<+#(}l|n%@r6RQfGrx z!O1%XS|ywkb>Nbsgr*rT2@moN&QKK$+`8}bVB)0vb!=M%W1BudEv+_gZ2m+G-`2;f zt66=Oo83~v5u?p$# z@`ItT%STjC@Z)0NBlEsR{`1zMt`s8LTj_ZSw;HcfYUOJXg%z#4!iU;RG^MH4vG=t=4<$;6D&Zm6cOrDgWvur7Fw&fN5%al6GL;FSTRFj+(jz(4+Zd;ZP7=D_^^uRyR->P}hUgzM0lVWSd9k>fqEii@>9 zw>A~2xs)SAq}YstLj~lHKrQh^Q&Rr{jwJ;=DIQ3>8)4n8Wt4?2hz;ojSSnLG&j8h< z5l`z>Z*<$j-l6R`_U;T7g^JiX`BD&i+EvY#FELDhQxwN%9B^$A^n7~#^E3>H~Hh7qEr69)MW*2O=gIYuXK#^+OI}l`!{8D za}=@N#8es<&4Xi;*i}4}o$9>UJs0S6ia8^@nsg~V=FEW!M6`&IQnBF7npONE$=K<5 zMyfVyTfE$az#f`4=}#Am{KA`J(d`8BMnN_K^>%q5uqFxf(f7Y3SBxH| zB|s({mPEO=03FUU!fGKcnV#`#nm=+ZLQhREAe5$c%dr57)qtUrl4@e?e}rD zg7yOG8(+HUUg#dBDkWG~-zvYA8lC z8T_m)GYfZ)RUEtXp^;*!z*q_(+q2=3VnIV|hoW+&-as5Z&S19;jEp}&YRznS#2cpl z?G391-muqqU;nk0G}d#6HI4$*$uVstQ~Pn?!R${bBkya}V8!yD0 zqMfNvF{3wWhwa>*iRrv^6>?+w5Yt`dvWguUJ2GM;L9a2h02#o2>$7kL{>5JQC{VWc z-b>YVl)8)Ggm--7-2Opq7u7Z^$wWLzveHuN>3wyEMM?P=BZcP+H(mjfb1yIjv?R_7 zlc306s2#D;M&^F)5iJSZ-xlxX{GV^7xKIW>uKYftC-(p%H$%A&6CW!V$3}v!LCuKD zX){^diEpMttq=vuRz(h>1=N((F0X~WC_$k5G3gb_kXWq+jy4xSK>f5Rey7I@wdX;t!~yfK-Z<$%$H1C+SW1Uajv!lin2HXGvdEj#I&8;Ox384|;dJpFw?-stk609E=2d3Sf9c7ZdC@I71a*uxNpEo1@%%l>0B~gK`5qlpdFrB>jBF( zEnS~XS3lSM0B7mbRJ;p?tFxg>sbsbOW^Rp5y4gE*4iCDwacnZAkZ(b`gsZbiT=Wdv z?^x$3t@r55*p**u;i{Kw+Se4@%N-Dm8aznKvZ%L9yJ$^c4`+^@e2ZS@T8^ zskx3K+=A4C;H)^G&ql;XHxwUnkhfau8BRVtG@NmGh$KNC66~l8#>i>AX9R{$-bpy%krZzw&o`Dz!{$K~vvMopBk^FMzUf8(>qB@#$_$<4S#K zrMteS`MbiZ@Q$#@e`l|%cE5)zqiO^K;ESD>PSrJ3sY~t7GO`Wcb;uhj93x1z`J!8I z>@0Njy8QY6e3q&g=qontC%iqm*ywd>;}#*{2WS3bGODPyvAZ~A4|q^nS_(KYcMiL$ zc54b81zS_Lrf5&?=q`cpe@GqtDz_fHuKB)q*uC7)ZE_ccbcOM2Kv~ZiGmGK)i^riY z$DhfBD9*}Dk6~z#3I!G`{C_1<8j75yBkW_Q2}#+@XRuQvc~t$vzRj+o7}!_XkEBz| znpZ2>A~Gqkv3A@E_P{Vl56u-UF8N0amLz%{H2OpC-s(+I(0vqz8H#;_c|1Nwx)`_ zM3Z$6;fhn|QL-$2LJs+;vSE=2P?YvE>9onSY9xC#?67*U_8gNPZwBYmB%r6&*P)8p zk^K{bPT{7dz7lmJc}v38;Uc17Qu|2z2)wclN*?Jq?a7pgZBbhC7j&)*0eM9 zPi;4$j&NKaC#yKLvh1|e&q6E8k#dU4Y)FRSO&v)@Ml?==nZS(bPKtf?52eaViboqS zBP?I<&6L9gUqu8Q_0jaag;b4Ci>axox!8(i@aK2(>4`p4-plzx=*f-u$b}+iq}tek zYHONkdij?0h3SOI-&WjKtWJA>BO=ZnJeJ<(?pVDgt#J|sWcE7WnZ~#3Yf2n-+rPf! z-`bDc->Khmrl#wslwqM1b=o=?{@mg5cze&Ke0qa2RG}vU6x@5i%URv^1%tC9-`=MI z7Fykyws^WOjVctM1wfOsYA}88nSEC|U7~=;A4TKDuk%*g%4!OEL=SEGw7yC{1&4~f zDqGrJ9a%1l=7-^k2T+3Lzx!Vt5VE^ z>I396LU6r^zq{-PBhScHCidDaii`--!Ux9>jz@|k#qxk*dwTlmX-tVB2vcID=WQM) zQBHLw>QmVWQJaLE0I<2cs@!~9z~z*g!5J&K#Gn7?H|({1{otqjlkVtW&`JeZj%=ha zNDYqP?%%z8x?_Z)C7zoidiM6ub-di}b1!etXA5G98twWLBrmhLz-^!QHt4C!pDkOW zJF1*eHXCCkhWsP`Bix+zkHCh!9Mac6R({pC*$t&V@) zH$$A+IxlwJgm1|D)Hjr#cdx_jsZGpXnNIIAb%d@NA~x1F;~&B^ZUP`c`PYgj(n}X3 z>O3t-%`mG<=+AhO%POaTj1DQ!iU5E*;QawX`_W25j-9Q4;AUG~ABjZzcZzS*qngwb zHOFaMbdts+A~~_4q}Qe<{lm*}!*B;3CtenvI9#T+sk3sQT{ zXLD5ed)C~{99VB1MNQ!|$Zv{XVFpL(DxS{(C?2r55~c(mPC*!TfRWY$ve6_p$$E`V zEL5Bec1z)rPsBV;1RZHmxYg(8;!8JD-xPT*gJCFI)&AHl?_~gAB-cOsdt#sGS!ZXL zS$qK(bsnIWI`1O87eRk(UK4lk#g;*GI4%D5OYL4rhxoR^?!B&}ZCZ@@hGZf(MvvWL z@=ye30S!~27U+eFvB9PnShv-jv0>q&#~hJaiyf({d49-eB7ZRvR{jt9ZZhZC~ftHb$k=R9K@W1#~_>zg(XirK{%Ekt|7k`Dn zg5OJlV)!fK_kyea7AZxJMK=i3h91>?|9bOw*84$hw9VkHsQB&dZP@Eck5*V?uBP_H z_-ao+_#q5qmYm9CcJW;q@pz z`XZP->|)yPD$HV~z@Ma>SKv>&(SGBXOVjge>|$@%x??#C9w|#Iy_mTEuu@q_f`#n& z^80Y>oLkdC#gfW}TDN_TTfGRrrE%Z<03Q2zJdIgp4cz>ZPePWa6IujM5pc|b`S@*p zZMDRvOSu8!ER{~W%B3?7^3MqSnC>3mGlCdBzk8Q=9>t;*6s4(S6cY>m zE4mm5h*p-WRSu)rD2AojNol*4Op@O(uLC?>-Kzk_3ccZ|cA)c;{}ekAt|^o4HG~CX zUh)V#DW67JWALmtQ|)eX)`VAh!X-JsP;TX!5l#2N+3-5gpD|t%T6))n39Qk)M*r9F zQm0*Fb@j|%t}j+sy444jN{9R{_wwLPwMtt51O54+<#D~Ye@DyuoypqYSbDE|)z0MR zLYCCFz76lUtv5!EV^Db8a@%rgbCZyN`n~F>V^aPiEuIG_#5xzu0RnNnc~f8v`Fy!N zl->}!Vi7#kV3Hzm&mXUbYRR)RFy|^VF4&hck(@z{bV3k(?7Qal)n;GZz`sCW3WU+Y z!8>JbHf1W$>UzD{rs;W%PZ z^O-&$hqCkY9H@L;V-QJ)3`vL3^iN14QUN=zn8Dr_u#IbZt+WcRFixri=@`Ycs<%$$dyC70Nmup*+lmj zg(%YVZnIaY_|U3++dl4_5QCs46R|PC%go^R=@1x%)=?bD~Ttv+^->;BnvTzd=b!82gy@ z;ys->ddZfuYN~4x>4F_*Nq6&J&@P0GTx_qkH+Zu;7u_|*`~-#I5D+KEg0Y1jj*nKT zXpZ+aly43f7nign9M#}2PP^xl`=V=pC@DT;>RY!!a&Y-zO_@Jq6}{vGp9~%Q4zw*t za0-MRC{Ao7LQ7IyDlT+K0Vda!F_9Uu%EihIj+@tMuFM^_?XO*AW%h$l2=Wz2d#%^B zC{^qIgk>3@9xv9P^=iut;hIy?0r9Rr(k!3)ts|aLZhvt){wQ1Zi`xXz>-?WfC3>- zZfa%wQulp6aSgQCLd+yD zaevRWhRv00adeZH#0{*uY~8mO?42(fmgFnOETO-JxwOg7_N_Np6uKef^=NAmw<57t zutp%7G9xyjo|~c(Z6RsB;^sMLM|#QjDby9sVG{u6O62V0IFfk*t>djPS+7Z~c+F2} z3*q&scX}1=sszp+(~-FuVjc!}lI*$pxiN8C0V2c3TF9{Fi<|_?fn*^x%>_6T7n&q8 znGK;PlQRV;b`2#ANlK@6QKqSUz;+-Tn+(IlWBab{1>3)Np-mR5z>UT>+4g+vwnN3C zhZCo8`g|7sp?BH#8L`E%&0<^3+GM!X*AP+tsH)9!bCyMQ7C74(~JQE;5AuiIB(B$*XL>eQ0nPJ=+*NU}BI!w{u5|3&WRkz) z&WhwFE>B$YNc_TSd9qAWO5wIbu0K~xk+pN~&WoYi+!8V+h9#)y?m+Zij_tt6P~@49 zv;(0*n(X5I9hjB40evZnTafO-J8Nw*mh7F4Z!$HdHCbGP<&9#a2W*L3tgoW4?9yAT zk8~o=5nl%O%j~EyqCgNciVDbwy!8pxH#*F+W zVSSvZx?*3(@R>L`(<;72MIzZp=orO?9lOIiEt_Zg_eeq|UO;?jvQHQ{Aoe-O+wYr~ zAgJ0N-Y4==U@Y}U%b4lrVC z>ykTQE;D8cx`Gfid6`hW%?%Qq2>!-83sjiom>mP(o^Z);PernjX`8ZwzI^S1{1d8| zwJS|!9{LL%fn?|Ofs_NLB>^Q3%9KT7{b8tV8-IMR!ujFWFeQBQeQH|Cao8Sd>7|@} zq@c=st&w0?Chple%R6z?UNA`apL7S_P4JpLJO2=LMbDYWi?fvNwt#FwZw|$hHWxB#16LXg69Cmgis{lbDK&>mJE2l(>HAQ z$lnOwEl1=?o^}@1fsULP0}D{Dmpg}UprGF^cXgbl4nn++yt5R(#=yc-WgVP!Hfsw4 zYvrVyQt7o4>FcgK!b~LpObHx!KoQGLq+rF(o6>^~^c5(35#zp`W7M^-J2O&h9Itm< z`IF}JRXL=gkEvrk@!_W)SLbR2`yZbC;<1a{n-3{96`x1(f^CT+ZGT%4&Ia z?V@V5rKqn}qMY`*2rD(HbbnU;@@e&Ir}VPEG*pRtulfNg^XdKau(Y&hYkw9R)V?Y_ zmB@!riM+4mW}og_s`r<-oY-`@-Ro4ARZB~S`?jxn<54(o;ddc&?K}aet)5lVIIS(! zPQhX8?%U-5w@GJkt+TNeSZ<5RXRG$RbAGz%GxEzw+#Dg&f5kflYOjRW1mD+d6}0!R zd1iHBy*n*4@G*I3_v4XVi&VVYp55%-o*K!Is=kM=e)W9un@$<|s9&EE6lfw9K4Ouq|Ul9QT2 z&z;fW2$7!Zb@c5v!bVtbFv9&Ovzl}i83Q(B$5Q=_Z`S{hR_A#m8Oa~XMzY9ClP9$G z`m}Z=NB)mQt_I`f@A=%yS^=deoyE@1e#e2h zlH&<^CH7wDwb+i&oOt0VInSzyA{^)3b?&yV{sInkiowp&l`ic-KgY_vkV8fondCrk-53jqlbQLyFX=!( zPoMjU&X*nO{|&yEkK|I1*gn`kJaFqJ&BNUzmoN*X@x>O2Ms^AHj2@K>_(!?(o$Dqr z?4bEsIuPEUB+kxKEmBj@O$6~Jtr8#$mc#ylsVu@c$>8Bs^T#Uw5(hTlAH_2%O6G}o zjc%J3mr2qYdSimsOj=}++zytaHr;D}m$F)dKQWC}(y_RnHD+mBIJgZzg}|pnTL+FG znhxv(xe}=Te^gtWf58YCQ^XECo#L?8H5NVb921JhF4# zBDjgS=r%5zH!;UBxKN5VSR=`IQ**r|w*3=<0Lgo+o}RP)g?ECKb@2+(E2N}yF%|dq z^55Yrf_Ng6nwijRQcuYgAH|w2!!N#yvK3JtI|WT9gMBf9gZPbA&dvsFy~0nGZT>nQ zg1h!!I+SJ2c}IjXM_={_RKJ)fCi_yw{^&Swk7zIXT(-uO` zDUcwjX^WBuG-*Ve3nr$bX;U0v7^Z>QWCjF!348zd-m~Yz+_)nsH+Ap|niw=O!Q`A4 z)4UDl(t|lYEuvAhO@fIgXmfh_erxa9!+_-0p7TB5`#oRQlesa@?AiPOUzgun>$k-3 zvgMj5i!9^v!|SEwJ?gjYu$G1-LO~s*i&@_;0*<_3n9W0?#4`w0*B*;5A#T;=?OSC zL)!k;B6Mi42qY0|p7g@U))wSw3IR$X6}1Hq;+d)tfhT59a~rNqT%kRUVktLfIjDtg zsf_ddZGjv^%QOO(xVAY8pz4GMt$vtRa1MU7R`|#Kg^!Lnw#Lrb+8voQxAru9a+nh5 z@D}yT2R7gwR~=HarSKOI=S(@Gd!zS8Pi@@2(V^=VvgU`gp8ng1z?uCf{W?%Z&Ys@? zL-*_ea+R7$nOAPv{neTo7g5Q>vTCR5E;MVb|4Z%JG&@~u(ycTWZ0gg&$PL8?ZV#0K zg^BV$U7muad}xMZ#s-YUI+diE35txcl_sa_|3ka+AG6W_@NS%@$Y(7?q76Ca#7*Cj z`gSDuIt<`XZO9M){|!m**?;eboE}ia&LFX&=~!FodagnGdxYprS5SSj8`)2wHC~_)5q?3&;7FSug8}bddE915w?$FqDHbO(>6a zk^h0NXC3PQ*y5>a5jFcn6{!*7FqLh5^oIJ>6{-Iyp!O+BQV(Vy{QQUPw|}4{_2cog z>447E`n%Gl3b|Hf+F@uKBdRI>F7Rtdsve1cx-hvt3~1>XmF{t9KF3FZUo(9~6k4I& zD)fV<%1HDLIXlQv`^?{$aipwyxMk=Hu#0ciD}X`{He6$1TQ3uModocDQuwb>2Jy>! zi4Y}d3Amnes>$X0h*BSHuW5kYl*!g0JIdR#P_@s^)P?`ac?&^84i-A%sC^ea7HD@i z+Ae@Ml~}Rj!ZS~c)cmBF8_G|5ZgsCDaK)+6Od?@Y1}7D@Bb>9nMWZw^b4+bPm@o>@ zpfiDdo;iG<*-~!r<3Q@A4Rlng1BdLOp`&aceUqB)vk+rA(Nw!Hf!OOb<@0~*;=2KRi?P{4^l7QY~U0~{wc>9#U!Ii~7a z(GLv1ILKp#ps29F?vD0GX~KNosO`g^NzWv@a}(&k#B8%koyz~kH&?ZuZQyA@AZ8lg zqLB@FbCpaYGXaLsu)!pp^#<4%rJ&NJ2^&+I;xn38qn+E`Tz7w*BZ>t1^YIM(I*=!@ z&kEznA5EtbX(k$xt&=47z26JIERM)y@`(qwUH=1dvL~~rNm?o9+^RM*|7h3C>iya^ z^%t89seMMgV-el4e&-+W+O_=dU26*4E4d0=>j#*LanfKj=QlSR;}U%z7;KwYo~Epn z&uIR=D-U%P$3Nz*2J?U5Y&06nC4i1d!w3@g!FqgNaKMhOfgHDUSAT{IKU zXn95;nx(t$qZS+L;g^F1g8f+L)F_VA3eaIWcPxMK!3WlmZPdXV_5&Ke1ECjHqltIz zRw&4Bf2(zE`$#L-K0*hQ@nHKBH1O}*nMZ@;F*9*Olf3|Vw{e@ZN?KM|V30y7oRU z?X&l3Szhs3$9PSYCM>%qDn4T;AJ>!j%F5P+npB$M=uDW{zfa4@sySH&w~r73G(+Eb zO;kOn^;>DT&-_8V$8wJvb<8QZ)hE`^BPux~#-)Ju+V;#stM||7tY086@(y{27)Eh| z0ikTcvl|S7BPlN(K1Vd06UH~eicmXW<;XmIw5+Q68`!|jH#UtETpphxl{O6s2|_~c z5cP<;OvNFBuPZ09B5}y?3(-?xZG{wXg!d%03(XM)KXPps7jHaoS6`wFzX3n zrJuF4misUq^qlmEnnA%Nm_R2@dqGJ&RgCFlo&-S=6vqcvqhl9H3yX}3!;$D}Qs)>b z9)(Td5r5bH^qelGBb%) zrS_u*LUSSK*+(;Eag7_l1S^yBLSbVWt}C=HzX5b;?AwiF8d=JgEN4!H+z$m@KjO@x z?`X)eo44F*ziiJ`UTKZdL|ZK@%mI9OYiet%P%Ts&Ew*x(uQh=lwT%Lxq zwsr1Bo9FIyxefXbD>alA@qO&gbB(Y0m-{Yb_EJ;jmYkX#1R%??eLWSl=tM()%VO~= zkE7*i=OfB~u&)x$8l2@cnso{WX;@9Lz_XuI1&z^hpy6fPzGWIaJXP6jNwvR!;Q8Q0 z$Z#FEwI8{U+tLa8)2l7{p6kUwLK_%ODeT>Q?pb>;|4dT<4>3}6fKvIwt8A zylJ50QqHdX1KaEO*QdK(G>4MFrj8xnnADI~^S`Y*Ko(fa_wmgc z-!Cr?3k8c)`oRE@akDg4SmLokZ2!dAZB6<)Fo_=)#8FivKpM7@`aA z{92Dczo_L1=J|G3nhUotOtQxXS2vxb#>ytX``zR*eA#OEhAsQl;_~~_l{AsrKNQD+5OG>Kh^IO zw=7Fi8A4Euad5z9f7x8%&9g}dZG~nK{~D7V(U7ZeRqvvSaO{q9bMc`*ew=Tg+g*cVrd!^*Yj1%ZvL)`bHelc3(VbUGv0V zc~CyGdQ0-Xn^x^y#g*7F-H}6!jFnF~ zgExX_aC0fQcU}FX$wC^YmKt`vaCmjgzil3&F3>0II)3L`Y1p<}AFbuv#lK}h^Qad4 zhURUZ2Q9GCYDpfqo+~^T?rsYc*Uo^dscsEKJH*KxmkK?R`j(+Azi5;-TLHzso5J>d z1Tj!NHQ|dJ9t6{mN);>iy?90jfs5I8&K8$```yG#l%9I~-5}*XYp`8Fhne^eb*Dl{ zUF70!7w)9e9nkf?eLE{nK3z!^zv4PrE^>g_cZJXJmsH05(~p8Ql*YhF7Jd>lDw|Yk z1S_1eSauM@jjhOBimuc{$~^h3&A`q|^U9<|&vJLE)MtFR$PsT4{&l>Nf68X`rfQp1 za6;$W!TPAY+L*m2XkqvK@OU<129paN}GckX(*na|KV$lCK=_}A?2MxYBCYydpH$Uk9aFYA&uF-ZIB3 z@J8pH0XyS)AL`376_2X}96 zqYXf+2*$opNObXeLWh4Hza9)q9S%%bP>ZU1U0-Xs${q0B|G>&M$tTT?tGap5lDd@I zOMIVb=PyZqt(a3hSYR&Xk9s#~C!xa!r^&tx%tysWkB?@`I0soZ@yo7vI7);-^L!h+ za2-FkC+trLsn~&L*Nu-@a5jGEUSuw7QRFeCMaJ|1#nHBRiMgmG0tMxB(mT?Rsj5>{l(pL@TOaQG zQ~g=@wShYK$+o2Kua`7DvMW~!{U=4WeaqeuFz-?cMyoFJQL(%$UFRIR6g3pJ0Nf71_nM^xCU6mj1sK8}f|Bz6T8UjFi`f z(yj-j8e?Twv&|NKOy7+SOAnv0?#L`PAXqduEZmgHAK7eenOk6X{uM!NanrT-^8>4# zON^C=`fRQ-?dpgfZO8lm;5g^H%BC`f?Xh~VEiB*mD(0Sat;ZY*NMM|Lojd-_y14eh z*5-~^%H`w4L?)jz1O(eYR$N@(vCL3cmS@DAL9=7NQYwA3C9UOqwo*?=o=N;Q2-g-C zwk(q>S|(a9*dG&KZpmW*g%K>*IlkZ;pgPH6&j~KrF}^o0xY)kPb-MN{F;g!L7IXDS z_B1rg{&ia-xX(7$R&M?&y7gD1mOi=lA>OZ+0Ozuwk^>_gwE2fMq1?&N+x)5in;WaF z#)Cb4V;*O<)-Ne&`TA3f%=`xVNQp2XT@#0rLNsdfxD1Cy9=C;f-1K0JN;{z_*t)yq zTjCbQB`$w8`24Hja9@DYLB&togl{B?CRVgBdSCSJ3cB4F9q9FC`^WcPvo?LLp%^iu z+6jq!vuy>(C9b6c#-2;?Wcg!e+Z`Ce(43TL!@gbtjY3NC0b|H|fx;4o0iThWl!Sx` zupRzpLV^gQ1;{gF-W#z&+#bJp+K@{CzUGYY3xOFX?k=_1(-^lnF7ZA!f{VKe-Z!Wf zt`Uxsbwhlf3ejgoV%Cfp5Pwd(O<2uW$~!>xH7}&wzVLhpiMTKEPNh)&q5KmM@cn#$ z;$66X9Bj^u67NdJFMfcJyAuSP?<6Ji=NBj5>8judZcSXs5AXxuNnFGaz;_xWp_&0@ zz&+$XN`n?oyD#$VXrMGgpE&k6@NnqtRS&BR%Qa7ob`8d7pR*v|kR zio)#85FuZ>;4z$qF1m^I_!S_K)*(p(eV^Ba*1Df@fEZdUu$Y|M{@T=o) zUAQ>eyQHj$=1hb2T|9&8`( z;jTNgANT<+*KM`k?ZLkRRs!`!BA`a0!)%1BjKAax#4CMwQc@!OUv<%22Y8dc8U!g# zt|+<5IiB$&OtOB2qSlROu6*0qY{~w=!h;_#^iMi6{gWgj=TPtMIsQpGx}m$_fgNKz zMlIZ%oCVacqiwNmu`Ct0-=HwXKVd~2N4}HtbDN?4n61=oH4AZktEyNpR&b8tkW0Bm zTvgGvvc9D^+m#j}-|_EqWx2A%Xq-Cx_LIu6&U&ZaH|=b^?O(Yvoaba`bL0BsNh&B5 zWZCjJlYJYuq7%U#;ga+gTK<~OGz0vZkcN%nDNB~Tc8vpKM<9BkNM`Q zPGDT3ImMXLbO*)a5Ig&9*JWE3`3+>rHDSZ97|h!HtV(PUB~?qmD&Y3};e8STOY^#h zC3OqcApX$t;v|0EmgkMaS^0kxuRj}R!{z27|d;}qZG zcxhMeUejLFR+AGA3gnkaIgTO6(R&Rv-CX?n@?tY}Fa-O1qE*+`#DAR_<6J@W z>Vd2BJqG7-gUNKTsO5*7eKMyL{6jI{T4Gn26~ zQU3$o(;t=h7IY>O)T6d}#KNUa(*?*?nqz_Xtht}XNYxpwb5Sd?7n7;>^;o*+76*>j zHzVqA{qqyYY_Q$tp1HOIOUw9Y`T2&v)sB^Q1C|zxI7sq4;dyKM<0nS<9O2ghwBx7l{3F;Q~iB8qVDv5B-UPPP5!IrtZn#(#afxNYIwY5jk zoJ78FQxQMk@j8*&IBwA0TKQ`!4|flPfwfD|5o;v)Vqw=96$)<~+jdH8-yksWQ8E|A|Bn0ZQQM;cHUM2m7fM08 zqe5%l7ABMgeKdr|0dJoK3;YLa_GTPuJB&P7wB*+BEnO6!5f2X|UdzDg-F~4w9Nq{) zz!;v%Ma9Kxfid9rC)+hVUdz|VXIz2EI|uMJq0a!_QspnFr}09cH1&pGVtPbf6Xgn6 zf>ut8+b`~lm9yk5^*3g@Vz%~zm;`5p#pu}tdPPp7zl#Yt2d1sPQ>Orr)hvN_3Rtgw z@~RH+rN{{tv(B=1zd|X6sa!+S%v?ij)YLCysXKhyx8U|KDygS%wuJVao^55(;zUoA z_8xsQ7Ts&-MjCE1A>A`ff7eegUfb~V$YW?SX@@{>vj2WY)?F_`AA(teu-;%oYmP%r ze@HMFtvNI2IPA;bmn{=Uh11MT?*AfpMNXiEUwF)3g6oDutD8pDhE1JWI`tEh&d6d=|x)*r4s)hl)IH;c(^sb)vj^p9CRHj{d6CK`~dO1`{G z9UKrPM#)hCYw!FpJ{JO-r6DY+e@c>u)H6Ip4T^ZF*ZH`*kg@!vVQ+hVR6R0wB>Eok z27ew|v*`^+T!Hs8wX10#)CP>T{CR~HB!L-48zKsE%f{C1c)!`qIKpjTA)|Vie z$mMcI@4nx40g#h(VPc+&;_ZIl9VJW(llGfgELl>|Li<_I3ip5x5Ucmsi9d9Y<|e<8 z6xUt*0#Uz!DoXHoz__APIadWnAF-dC?9NW8pW(; zEB_yeTVd4Awj!g=9kfqON#`IbFgAgXNO_~#;D1r`5n7g6ONf(C7!m%&6$-DYK1Yi9 zQt4jmtKHkQw+RvW!}s;A#2AdSx0+wDy}`9smNk7JAxXK_hM~6n2ATnCZewQac!lM3 zrLvNS8V2s~J7Ts`Brmqh@1s-Jc!3+O`8s85tWtuN_p{%%))yluCai~1 zb85X>9D!V6x!Gc0iV@sqtM9A<=b%j!{#nzOYW9vyKEM*(PK`E#dcaJObVr!RREY_j{Bf;;6(;{LvzmN3 zTvwQU_lTaqmt&E?|JH4CG%a@k0nwT`C#A8F%^E|F_=S(O=gxlb&`cHM{ogh+FjPr_ zgU^){yu+byh>=wRN9dUL9k@+pH_tW+^a|6ePyU8QRjq38lx=0HP54jK)l;^$^Jkq+ zI0|yvGFdepk@gPV_+fy@u%;{3fAi`rGd5q>s%vki!&dDm?hkW^Ib1!6?wa^gJBQ>{ z_2;G%0CsrFJB!6**m78Nb!X#3y?+lJZM1xiiP3-}Ccw*n&o872dW&w6pyPMAkE!-z zf`!OJk~K3zZ|mjalY2SsgbI`BBl(r~4O$lodeVAZhWMmSG0rq+npzK>Q#)DvSJl39 zs(t0Of(x0eyYAU$EVXs&dZ3FH%W^k;UXIc}PZ(FCre+O^BekK^7wQP61l<=8#>-t2L#iwzPWSEkrqB1 z*|*I+8?D)`QRK#?PVKpj@0V(mdBoXBU3G(Xx{@6)h?7S`a$GZ4Lt%5}b6iTkocvb@ zB`ZK#pjxXeDQhvpzNr?C*+M?OI+TARgzcI6j>_B4@k^?b|BB9NVJV_Y1b`vxX_Qxm zoS>6hnh0h|4b~`eCTz>I3YSphfGeBvHdjW$VU_S#ZFKiVa6o8g;uI7R|3N6@NzfZ| zQe7&PLzft0VP*uA!sT!_=^VRTNfnN3X_m##4&^eD605=-U#ICQWd5WPUBylyai-2I zG&)vuv^^um$}NEXAh(2we%1L&_c)K1skxT`c=wP6#K|r#h)Xoszlx`yyt5# z0eVK&i@iBCuwm`g*bA1e^fpB|UCrOtlkqe0{0OABi@%^8tm;PAimpf`4E zL>C^R_zN*NUWCAApv|^!zKXD;9_d(F(Yr=MCd=w_5o*BcArY%_dxxr^Z~}1uZD|8d z$rFOYcAKHIw8GGJ9h=mh959zow&b`o?HUGCZI7jFwR`E54~=Lqp*x4p4M}5;F4D#C zN*D8VrRx7@RFo8Luf+G=#FpVGa>NHQf~A60WB?o3Kge#@-56HkSh0o+^kIzBF2@tg zDbDR1H53EX>n!EUYmW#gYLAw9UN~^K{Xo~chO~w>Dt(jBK6zBd1Rj4kF42Z;DPm%_ zPaKfMq?FgiWBKltPd($z2{Z+oYJ4?5Da{p2_kmt5AJ;h1_?~^CL3Y`1?7P-l-gsFq zr5r(TQC}j5lEY`7bC&YQoF~BKo~Z!=8N#cGlk*|IS`w)HbyYlr5*uw*r zwIj-%pl6tyEba6kD&W!;PFxsDNY(Tx2No;+%6{pHZg01Y)n;{a@^v%KY#@`AbbU_! z8j7j62mtKHsH}5MSqUMr_(M)uXa6MK!G+_=*sy&Kxnoe<>Lc~-Q7kt+rXl{ecsWM3 zoiGf#G(_|FQRxWzMKZw#bse2Z$WqwV9+p-L`^d`TmS_+o149_4-u-!tXaj8jAYE@H|vO4NYCB&eW3>Pht%);i>5$l3~R z@oD|!#>i+1tW_7vjHSt#cNAs|r(wBq`q)%^hgQft#XX*TTP~?PhHyzI8sgAs|bBJ?WL=Dsef|IJ$_j zN;cm|YKrU(FR_-tvG5xyJc1jza z?1~fLlGeNY((k20DkyV5ryA+@u4pwka=Bq)fziJNS)Jebml-P!UB`@`xrO|nD?AQk zx_y!zed4E2WP$VNj@@%~#pw1mwKpV4;f`&o`{{(nb{5mp+tT}Vf;$G~fmPUuD>!ON zp%b;D`r7v0QN*WvF-zrPzZq`&VRWh68vH-t^nZJjxBKg zOIk;k zt6yniF*NK5kFaEXt?H}@s794l`ah{w5_&j_MbYt0$&~Wk7KMYK2su-lE>yilZE&R? zlIj-dcI2O@rr3u5mGI`3nlKU`Q*+)^VIM(y?Eb_^Ob;(X3*D{aT4Ns$c>T*%SVN{I z6kKU>5t$aYL*J~QM&oHPVsm@*rqJNlG_tOG2qdTZKHJ>qOGUh;uc5UV+8PzMsWI)n zn)%Tq)`oHWU?|EQX19bv>R-e|$xjL}dSN+rH(e!lsZFAvfAUv2C#t9y4}SvFdpKal zzdD&t{TFp}5zeHMPei7+lM7UBWb25g{}Bkm#?!MY0}%QVMbFn)>%W?GrQ#nxY6f2ZM%A&K4^AZZq5J(+~vH)s3P0 zvzBP>=V%uJLFbnu*X7ndGjYky!`Si@B)CtbXY}vs$B`=Vw&NA`ci=X4cOhLt1ji9L zZ3w~Cf9cKIw5mkp=bI~N=T7b2%_EyB?pKAGTru>F{;nAx%qoe-E9x&%`|3Y*H;0^= z#80}JF_$`*?G+9YHXGWVH(mipvmMa25gT-hQ}h%6> zqO%<^J&|4cY{jn-{HqeW+#n_1X4cUcF@c%t27<$KDlH6cA|>W5r+VLQo>U_{06lb% zXPN2+&!j2Rb*xfF7kNkapVeBXHG;e@y#QVOPqWQ>8Q6_ zTjaFF+4qvjBge1NH5u#QO{sy<5^m1f+!T2g8E`b|ojb5L@e}yA+5F4d(Rt$;LeWvu zaS_Cja3{}%TrtWws~sHVD30om4<(%88EM`q`UcKfq;2xE6n$l&Da-oe8&v9U7MCW& zf4L}a08(t_S4+#JOwMx7CZ$4>^uiJOA+)8vjYQ~ti;$?H!o~7I$t_i<{Mv@*i!!r# zb#k277ZQi++`3I+{KahBx6qs8%@HXMAC`}yv}@N!C0nQ#s%zFTL{OTr3c2a&=T%}r zxWUpj73SjNi$*@t)i+UO^d7X1o;O%MXyrhC*m-M-_i{LWq$QCG?xwZO#sr_dwzkJW z*#}Kng*fTV)f$1Q4Jg^$?rj$`WnxSW84Q%O#Kvd*V#Tl0u?llZkd{dBK9O(eTqb0p zy-F3$=kQi7B~-y(gxj0-fO@GB(D=V^Cj;cs;C3Fboj^2O7X&TJ49e}bwLFy$_?oT#MQQpWp~7sB^gH7jPxxglqv=zN*yJ3#HEeloGM7Go?)R>ob73PvG>O zGz#|ucj^G{)C9KC_w)t_tpFz(02K%34Xrxi4gO7ojnHLH#CB>5yy*_E49ylQju|5i z$Ul-^IVqgf0*-SQiX4P7<$Eed0QdP#&ScI{8fP0YRo4aw)@)JkPsRw!kcgZT#rKgl z9J7z9q0SdPT_|8grDxfAd6|+Y`-=-|4;l1*B#nvL(imcn+8|y!<4P6AMPuR zhO%>Rhb8dEi&*A0SEI?tP&{tEP!ia{A8r3(8HYZwkcblwuHB?PlYNe#QC)?jsJ*4A z?UKQp=1oKA&9k+SdrdmNB*Ulkn&`QDfwC~86Cw<2#cI-^m?{n4p*_J58SGxVx2VlU zfkW*HqdU$u?t&5B9aWNt5wqs99Y@Qp-2%cA8^0{se*BcdYNQcVHFNUniqJV~Q68my z4u7of&o$4hs3F&;@O=$)w_oME#74{2B5rKkJ;%x|=10qoXRJFaIg9G);VC@!$2m zk>{HX$$x5brK7p?GyWX^8dmDB5EW5E92jIl$LbI+`SdmHhkAI-np|fdbj_D@w(l3e zeXhW>l0Ry+0X^dv_MNryJ?`I@7+lAwC{>uBZ>#;Hx7u4RwtK4srRBDcdHz!IjVh?d zox4h{hKb|(gJ1v*e?@8pDB1jo(k&!HpoR>gU)@i@9$^tq5&6fO)tB) zs69lEhqUu9T71@&*IJ(IL36K-acb#Idxz(&xEj-U-!@8ofpnFe!oSmA8>+eTviIud zZ>};@G0uXb{g>-p$~uE5#uJmQG^4T0v#OA@=9vo`{LVR{TC08#8-7{&QrV17pg4x>UH$Af$6L6oZIjBaH&gI*b z119tqenyXR#P#CZt?;T?RFDfkLI~T|QH=H;B!n#(-JeTlPW23~#J1Rub&;0V`I}o- zS+>8gxfhz2}z{j_sJ?FQ=E4WE$TJoG6}2t2aHSpq*D%F)VqDR=|)l8vGwAFFv-P9uLukLbuf z`?~G{Q0w7j`Ls+*klxP5Jm!G^N|#RlpZv!m^NRA__J^=>O$3TP!hs^gH`}2PP$S(*+807ff=FsX1q}Px#Q(z$~=$!+n{8;*HG!{k|I740jm}V1Y(BQq9 zoC`zPQkij-Hcpvs)G}Vm42I%!mNFyN-qPL=9A`#<6#0R5e(cEl6PB>$jXS zSkr<&MPtp+wjUES+}Wi2TQR*#6Z9G4kz-hU1~22b8n>aWCWby(SPfj2 z5?HP@(v`x>x@Kd3FxG5KM)9xJ_7*z$Ps13w=c3`bIog?x3~h`OT^r-M*~XQ-FIkNy zgSCL~*nhsZy!P$K9}-?n*?!*KoTlX;(5h1?7W`MQZhG(`p47V;Zi)z*QQU<#Ag5r3+dEZrhLxud)1@kPfVwwoyrn` z*lq!Rxb!kq?iC;rWdT(E3e9(O7)?r_1x?C9W&WBnY$OT})s%E5Q(WKrrJSm&KmE6+ zVw7|kSOLlW)hWtaa9L)NgipxLnueU3jipi?V2{W_tcJ1>QdXg!#0ohiu66)7 zf`-3;o5Dr1V!#zQF8$upB}=~-pOKmhqrYIm0)9S!D~&bQL`e`Q#0e!~N_J(b4SHBJ zN)8LQep5x?Ol14D6F|2+ecLoZCP&P{o@?4^k~7tlgcS^c112XvBWFzns+8K18~H2g z9rTL6>bw&fsxt)t3eJ%3VMr6+$wLY*2iB>I23Fu2#mG6rxJA$QeN@;Q+P}x^ z-l(R;4Vw7h*4;Jr?Dnc>w^t5HO}=n0tQ2TDax$<`prIT-cXwh6f`05j)l9%tu>MAu z3SS zf@jt0p=-N(P_9UC*DX0~d?vz1sZI(= zY4sMLRw)(2OYwWQ_#!?cZHte-VhX#(UqdTP8g7ZkvxrqipjJx^$<&&{@mj$9bQq7KPF7=znk`lwNiBjpT_>vlj?T@Gn{FXz} zM6U2ySLo-Rc2ajm=&B5> zo2R!wH*yKKHO*Xt-Pzi|#%*fd7~VbOs_n@{t^;VP7zKM5jb~A6w+wCXI86ej(&!q&->zkPe^?X)&y7-Y)R z3~*B>KfndJ>6glK)Q{_Fn-L?h7_l9&fzvr4cqK7jmCwK(Y7}9>KuJ zc@w-h*&A6b9EoKG+}j*~kQ%{6Mc_om_cdF&atS34ga%P1m}9d38aG;DFHjd%vg;;( ze*LutsK72Jc83HT)s+D(GUu6zT_WX$Estq94WQ@{l}55yMsbJu8ObE&h2ls5+!BO6 zO&h>WWZft&^&c@7Sd2DXh$jLw#$QHwvYtm2y9eJ9Op@_LWNT?MYhrp z1-~Ud(5{iM^agsu63?9oydJq{@Gw`%u{Q}69llYZE^f}vX~W)M*5un?8? z(wib-HVR z-qmFbymzAhg)-c_wv>b7xEu^!49)!#264Y9#U1O86)J>{584lwaGoX9V`J}A+fDeD zW!kcD`i{dv%E9q8AZmHF;INg8gQ4b4|GAmfqDoI52AK^iM@SvOmZZu9@}YG3`IV%> zkN_bdMe-M*0+)(z!FmHKL;F?GXEg^M9p)07N|)836p%U-Ip?<<_c^NEgWeHMm`{mq zRlLLAVKGL^l75h)?Cg59<~%T1_X(-Tv$V*dY~W82OmFq91X+pfDz|iBG8YhoP_klD zOi)#YO%J=al{n45YqwV_^Ub90`~l1*E0tVN)4XB)MB7FNzFL=mTTUuUFbnMtty{E@9UnPGNUKj^Ch;-lS)OW4JH(w zKI+=k*d$D%=095#Hp2d(_it*iAkxUD^3;|?Y754ug^8QSyql8j(d^lp91=0rSK%xD z(ShT(hPf90m<2?S#ev_Vlg7Tp(Ea?O9(f3b+u4MviJZO3ImcYWjuf)joN29!hz_0l zm*9&#)|Ef=XL*rO5$2;Bk_PIcXt-EQdkdUoqz-PCnsi}4si`)bo~b2f*@5=Fstcvv zm4#JKnWo}-t4enZ)_n*09j+Y-Pd=$+u}LUB)*E=szFYPeHY`QAF!jyuTxA=#qW2#-Tscyx`xERrVy`{t(3#|M#}Z_+ z_RMz(Qo@Cr?}YPMxgrpxeMyvpINXyj7Zuk0xPtST_U$Y%?p-}lYOw9!pc1pBivz0i z7Kg;6y7EQ`)b+(?$Fbt_x}&=CR(+obRu#GrZcb=_*MC{MTw<_3BAu_BK;^V5Vs2A( zYdbxrGa`TU$>%LnhM9msVF@z5?B9qVsF7>@85y3Fk|i)g=wn0mK=-B_KsNMJv3RVe zdT~uPiI}b3&%Etcx)pj2pC7B<VqWPSBT7O>ii(9paV)m9ScD(J?or0}u z>ypZvXkFNNO?0zjOe7NY?SG>1XCS90DE6~lhc6M#eWfY7#X;nuNF)BSeEkKnpG;6v zvNz}r3R(7VRqXaZRRNw9RrJdIP_ws2=?wjc|Foeg8+HB&`c7TTPM<4#ieq02r&dSb zM0wzN;rr|-NHBtX)rjmG<}5Q@vjcd=3{e^gk=J5gJW8fv!M0((Hbe(LYma;Qj`VsVhXR0`*T@>MC0CyO!m zP_;K&^TSM?7f%(GtY`%%UrnXg#$tsikP}!a? zZ!Z;&=n&#M`I*H~m`{lgy_V4aZ89@NYT{oC3@O~xL;qUDYuyW5rhdSi--@Cxir_vBPG5YFU_nWqJZ9d1eB~b;IEj6{tuRQxTDHtoUI$ zhCWaaOy~put{e}tr7B?o7#SjCVc~?f$kcUB2_LL86w8*E(88C#DyOK`n*txIOg87I zgJ4rQBEKZ}L-t3kwr{zV8m_gsbtl%BH|R9cd9G1N?505dPOiqJttW(BQ5`Ct1H4QX z#Lj9GP+v<=q+WR)KV~WIgn8^f7!v}oib(|f&(U%eqBb63YXf1|jgx_qXT)E^SI|Kw8e>^(Ou0ldMN* znoqtU!#)P#XaDWXa+T%06}lE9e5WnTcZqz1&8H6LsnU6rH?bupCFT4EqN0Gy%{%kJ zMI`N!e?y>Q2JaxX%)-kz-TqjqaNgc%uZH}53e~Znac6td+A7+t_D)Z>E0slgvPoQ- z_NLBUPYkU?Z4t1~TeF2QmAG+B}P5{Fn_@r|MP}gv5rz2h7+|hd4RT6{~^# zD#UO9@l1%H?dbnK9gp6iQHS59sxocUL%Y_UmxiPvWH!cdo523*iq3o-g$jgfP-xw6 zktLWQ31wXRr8mN>lkj|6od|5b1CcsYvjfW`zsWfU1w$XB?d^Whb)O1#OoY zhH^G*XKfG5S?Y0977oICyCy(U7Ey1xCvDHI(0Uy?p^Lx~FeG!X-RpW{wQC9FGi!g^ z{?JmBjyDoB5rW{UrHR{UGK;GMQAK~@dz^kHhgd6rcMxFl;Eq=M;o)pOpJS*W?Jo@pS|pLDu9xa383LsH8Rd#dpi)m4I0&oTng*c)f)l zmHO#jjT$mk+$bzYL4&P`e@MFBn}IyJl5v{2kKm%14aG_CJN^dx@R}l!g~p}UY;pA0 zw%4TAq}s=w)lRS@g56u5>mILF15i0dqpb+vUQaleR`&^LC5D=r%59D#;0Mhws@bMu z9AmsBcpms|M#Argaq8Tgw3*k{EGiSch>i=QBK^jHnt?i^yqcM1k?c*!o07FDi zfm+~_e1<<^tTb$$Zw!9H9!-f~r3Xw-TF3!lX;kemZup|3UOZNRR0O$&VhWt+3di{k z)<&E1CoNh08rLMsR=_B8m9L`=#D|&l#l>PlVR`YW>pWmiVO@#%RJ#gMo+7B!_n1~% zCLh|gS^Ood@(AzMz+Rojjc}rNmwpg0{*kx($V8M=LpCiT!W@0A3 z89~zmwROr+=IJQzSmt@uVki+Y1fqlU-2g@>*ZaPI_8w~VX#(&Rtm-T3eT_TWzPisA z7+ViY=MSZcUwOP&{OMw7)rXvO^$_LpNzVxUB=UPS1$fe=_a$m2S$c5DKM~S_>duDS zM3b!PpM`3^gsu>z#^xg%k;#_m3Xg)Fsfj-LnUjDmC#6gIrKNXS%1a&u1VJG?U>4k> zfO)M}a+XU`hMqsf{g0^_J$lOG&Pq;{8@YdHv1ZQ4ZTY~W3w$@K35ZNBcjtU736>Mq zNH0-f{qik0Wm}6WwzgPoA{aHJu{SM;-edUO&a$9(ckMp=;& z7%Nry680L0(sE6XsTm127%C+5jrmR|<~EJn6T}J@EB#4T8@7w`{DZ45a_2!U<`zH4 zzU*8<-7XpLOW#-bfQ{p1H4mKbF}|FRn2E35L5NlBNyrR-qs7XssuKRYhzE4y|r zas!aY0XcVD`)6T}Xml}#7f)g|bcVhgnLAYlV+ zVA~kEA&3RF%iqg()xqBh*D+ME@?<$yeFI)3L4NHQpl~85gB(f(3t6tuyP|0c!TC{z z^`lVcOIT|+8EE3igY?<@a$`@Vx5j914t*thJMLV)TE25Cm)Id+d@TSCEcvI~y!=Yb+bw4>u5BVKLiQ0I|AYa(Qo%4+-N zoF@&AtVND2M;2@He^2QL4?(|@6*0G0gX47tgsB)bDkEea@zKEhuTVlkp(CWG^e;j^ z<>*R4?tB~!+ce&TthLK*#O2SM+wzrHHh;GE8Y1tI=OFg1IW4@Z9Hc3y zt?RogHLAqMTyeo|{5pejsCkpSjs3BZU&fC37lU80>OG59Sxe=JA!&jI zv|(o2tyCQvZ8izDH|}`5q`axJ?W!j>_=bJ7Z{J4BwPj9e$NkNfzV|jApmgVg&ea76 zZVhf|>?B*8^1Jr0?7QApzGZ`YC)jH(@l3HwNxQ(`b& zyZ0}3r>Oiy4{6y?5+h?;M0vgLh>|?#u=Ci*RX(EXJ4v(Jn$3n0?VYmPIHuXl!h_$8 zj9O;pKG>5J8Kc%m?FjA&(rH4KgIbLwSNpQ*#ONoedGf=G@bC^C$By>!sTsy&)f8zb z2K0@Chu$eNys_SQb}ts-P4nCk%i651rWA>m`$CUS{X3 zWCO^C>SP@3o`9Nt<@2|^Natg}hGLXKV%*6Zn4xu0k=3{xx6hXnBJBE4Msnp-fq1p&Ms z!pl)$;2M|o4YMFr=oc#4(igCHPs@rHj&q=My09r_?(!^OSlgro4|nlhzLh%@uMseP<}&i*wN&Iu|(N zg!-nL&8$Ha{(Usxt}D*%4F0C&mIB=ULS2|fzV0sS8zj#dUF*hQ{fhTp z)v-v)k?$3gc%$5e^DFm4c1peIJXr|dLuG;l#TM$lG9iW^DHHgVLVlq#$p>(QJCoe5 z03T5>ZAqB~;u46aLLj(RaqKkuD$m$TYxkMhU8*B$KaaAUV0?zsE^lO40YFHR1{>b2 zph+qXmmB(vtKL99l2{()qP!}#5`x{{%%SvJIS;Ctl~oHJMq@2dOT zf!P^`viEHE=g6_36y;MkX`#(~d872NHrLsA%lTEDRVAnox>g8&hMYYrZ7^D8j>e6x zhJF}i#=k3$zQM60(sLlA##kA%_p@;0!t~&Bhe3W)I9g(?@VC5gHt^J+(E4zqeJ9gD4j26?^Gk?&=E2y{aOn z{h^A>y=swaU7|&NEz5>=nQkzlJ1;IK1*)6WEgYr%IreA^S%2e~Jj4kG>&(=t{XpGl-Eph~j_EMQo)ss=BoQ1#Bhtl>!~ad#vTsVrcPZ_20DaY1DfMS7E+qrH4u49*+3}r9fz?VgX@)??oXSd zH~ct8FMTcDE_gnI(QA66qwt(+tl=9#K1H|AEzZdtJi0OrXT<9mw z{Anq(AX2ltVEI+eZR$L%k^tXy~ z#q__kJ6>viAkTNi9p#QWZ*SLx1?}zKvDA5vw);$JDZB+T-r%#&(gmSa z__35#f66-s7Ks^x+)}jT-lEMbEnLkrww9uvV|~l@&OfPNjMX0ps)aFWvgzO3(%RBA zs%q^P&w^4AKPu3jNV|1>&ju3maZCvDr&eD1(`v)bl*pidpo zl6*LCwAk7oS0%(5EvG}pahPl?rfA4a&kI^zQcaxR!w84DNetY((;#-BDyi~xrGZ~{ zXf@x18DJ=9nJ1n{wgxscUCj0_3;SSV<6``)S~*;SB>tDyV5v1RLcz-Shpiv*9tad< zL=$6th8ECY*~J)P|3V2;&6QM3EM_>6>FMw*sewuDUlbk+Wd?xc@h`(>o}bc>V*2cRGUF|W4J!y({?bdgl|7#Bvl7891KRHDTn1YO%0*~1ZvV)^#%(6 z;bKCmUgV&P~JPI#87EQ4z?>($P$MGn~JpE z+_tQ7DaD^cziclBc`%4ylFup4T}QU`%A7iFroP?zt&YpWckKqvfOHKx`b?;dFWYui zQD9wdDdGS_aZN%^!g$lq#M_fy&lG@s(O~WB*WS+dyA~F+T+240+}~ji+_>qI!7~^7 zZ=+*_Z!9q1exfbAZKd|smRR|N#_X0%O_<`(+|IS6wxkL^DLP}^>6cEpGEpRyGgBBUTU?pbKTG>m`YhLyKFbvoi#k{9 zs#c_`?#rvnT9&KIwSB|RZzrGG+T&hV()Zha!F`>(>vu$_OR?S!x}JS}om8-xT2y-G zsoAEk7U_4+erJC;bsCDYRjoTCe-VnY!&(@c^74#K>hpRgbqO-5;r{ZOs##o$EW$sd z@&~@GrYdK|C)1b&Z&wwq8k105f+pxs9H0C@pj4;SHp>1g>MA0AacQi%y15z%Qw$<6 zL`cqY?|}AW^z97?cUV)6qyoKgaHqSwgmh3%%HCd5(qU!&(Co_k(}qaa#wP zx=#DF>Y99K3@+3sE+Az=2`%dO*uju%>v);?pa_0{@V8cWLqa*pF=%BjC#zmed2Y)>bfjUYT@&H|IYxZc!4(H+DvA`qDm_EFW(xE!$jWKx17< z#3;`M-v?D*D4D#`-e}A;>6dO4qQg9ACJELbH_kr=;Kvqj2*~5(_@8`urV)xzSTw^^T!9dQkRO$b zjTwc!km?hTm+5U;?8_?rCLLr0{65(tfh-b@Sl6;Ktkb)+k_AF3iHC0tR}jq}$uHV5 zc}JLw<{->9nd&-boAa!W`*|d**;vMTb@VT#d4=OvcA38ey>;TFq!MiDt~6Gu>w2T> zvBe<1jVNAqopCB8s&;oONb_GG*5=Lul27VWuTfzX@(W{#S~A_ug%KrGorW~_2sMM* zN1(CQ`%oFdU12vkeN8;vN(ecbA-SpvAeEfZ@o>Yl9oY@T9oeKjGalS@grKiX? zMKMPA1Ltf!@WR&L5^mYji~zOmZsCil?!{1_H!)@5Axm3-TfgXQd$RjwEspCRbY_us z53=6w!S3g_Cz2AOuv5A>mZl{ky)uZ4g0>lcdU8nP)zfXG#=k}|5L}A0_C^{`!kg%;3xrLTk%&oM#R&GaP3~Adn*vqC=tyiN=ul z?n=_`mbh(2yZe?9tB}?@(by8ZyXE~~_x(IG!yzWR-Tl7L`{ytan0e-YuKPOvum8n= zSIWmLUw4Ql>yWO~*P*mSX{t%ips%fCtz+%!GM*j!Oy3emHO}y+eLF4GYg4&zd3(EA z=r*_iI}W#)S+e!IFM?-{VoY@QcJ1ww!+W<6WOn?O^yK~nN6sB7JW}}7;-35+6Ikce zzw?B}e0fZMjflo+^#!E@IoKDh@2c-=G|90et^P&Uy}$S7iFIO~cG79C^_?ignSJht zgYD5*X+E*5qQQIc?uJLqdv`ZfISHS5Xo>IWvo{;J>`)=7I-jc`{-EPu6Ba9r0J&>e zz<9ugyNQK-lhb9k?K@|0o~*1QDhe!gk~Z}c&7bTIo_1!vuBpS;TLL;+7IU)&g;x*898c~Mq5(WGsP;sd^C78NJuwY(lC8@G*~6q z9F5Z2H7b|W*KHHDdVA;yAB}dT(2~=i8a9A=<{Yk#SCkT45D(bnO88Gf8Dx@f`Tp#R zI2$Yg_lg`XJR&9fgW130-Sth3HPqu+rqEU!f-6oD$x&$69Hkbja}RUhjl$ZvQk%s@w&;DHGz1i>m^V|fpn^gLSJONC#E1C-WOexSAydMtMdN2B49 zBkEKGQMYTO+(k7_5q-Y7S?6U$jPTqbnCb<0Hw|tl8-TRhK-D#6We^4hyEQ;%wCN;8)%Y zBZ^~*{(SYp*7DYC?ZTrN%XG2fU)}8}a0YLoEWVb`@pR;(dCoNWOYJo_d4;+0tI$EU z7wO!KA8-GwT6?uNP}LMt3Y4!IFYbQPq6Xzq>m%7O`Ff$Ws9o<_)F6ef-*=5+{UT9o z?7pwLi`MR_n$b6yq8EajhiJ*^eG^B*M_Ty7=^IU`UWWgiUFjL>NiOsZ^&|&U(7wL~ zypJq1sbB^0zIkz}{u2x&I)%*U82r<@yo^H{KUp{mCan2r2)k4!|LLgGrywevJ8Q$M zpH6y>NO@%A+|<@jfuT)gnxy z=t@5P950j54gM~F7k?#o5-0HZ`U{^J%rU|*szjp%&9#`za0!j9Ao*ZdR%g;@4a&%w z+-JBQ(oe+KxJ3m0*;Ng|OvZ2wB5P=D18sy(o5W!U49C%&yc3tjajYXfvqeadq%dFs zQ~`YrPlu<;XM@*Pr!SiD%I+`(33oU@Je`~-q;xcXG9pdrtvVSk>HG#6IEK10T{J)qi>iIJ2sqqd2MtO>Izd5Hv!=hn7!%%Tvm6*s zv|R;Wx}}em7mZ#{WvV$!!o@@+Ce1>o&`W`W>IVnyd~X4O!2+iCxk$cyOqymZ&p&*q z+}L|1XGa0Q0Pgr=2c91I4z-P6E%lImJx^}_#%8a15035U$%NI&M2{a}nfIU2G9v;DsvbUhj9LpcKqCsI=TeQURVn zPlGgBwEHG1-|^(4R4ya;h*UQHi2d__WdGD2ya6F6w7c)GDFi)lbJ+z6;1%R2X;Hp% zE6S3n1$Qaao_7NGIF-AbFIdHeW*h6_9u;3HcK6bl<^5<7_UM)wUEEn~c$^6%iecUmAIpOiA;Eau5y0;O<~RFu1I zO{w>|w3KcNHO_+dbW9qfh?Wy`&ZIqHnA>i|oBkqI^AFOJdK!8fy1z;O9q_8otd<)( zJ&cp5_H8>R+yla5wTMUBw^%sPz$Hv#7G{aE)9THa z?Z!xXBHwm!x{0%nYH^_xMzgI#IxJ~mk*-h|dNRZen2jCgD)+|heal%9EsF}w;^6)a zCDU_Tb7qA$4llIxi}12;L=d<{UW$oB?zK)|RjeZzkxP<0vam6JofVXrR)`QqJ4P#Y;Bni2STopDr#8xBxyDYXQWSVJ;C` zi6_y{gPlWk#Bn5Y!0J+e=DyKh?UMh(`KxM&dW0gy5_>6lK0u*UqIT)gR#-em%p&Oc zkp>tf1jc$euXCb(7YuyFg4u{kHTLu9$X@R%RA+rl13YX{;HDZf%>!B zDyswDiQQKPGTo}c63-X1LKi6e(|V>@o|N~-{jt%cXRo*mfIBVFMq)PggtcsZYp)6? zCexulTY(D6IZNXPvC6&0Y%6`!OhIP$OOZtu?udlz2zen#TPxuGNf+e1y*K&3L3Q-D z8&(@M1Ve^-qdjS4NV_`)8ulBcXPET93Z_4bf&Qr}a*i{%>Xdq5j= zEpojyhK{LO(iQ)Hg(?@h6RR82jm(03G@e-)PJn7J=fsc#c8@mn7)n{5kk1+hF+Nf| z803xtF3I#!ofoNZZyvKx88Te;&}itV`|bwLCPhl2D2T7{&HM~MsxXS=K zs;S;-e3x{A(y*F=pTN8_6H5lXYnB0jdPaLvWDa_;xyP{Jk}1%If1hQ+nVH7r;pe7E z+Xq5ECDYOAnO848MQ3VTY9c;6Ix*||qB{$A7U=LruEa_nf1(;x{&5f^8W?7DEzV!t zAgj9sb&YZHGj!O+OQI)!*2Nd}vu@yimgYkCfc%rHP2xBbdw0r|B>n621_bC0-7tU> z+o=p2OHNZj6uz8FNh}fAnSIh$8*>4u2uo@y7uM8TEtRECs7?``9TGY_CHGIb63ze^cwCQbiyZ?$kg$R7SgVypczi3F_U;2{E=b{j6nS=bD2v$#j;p1 zP`NCtF72vlI6+nd^8;#Z$S%BRhvq?E%KevBt%b0>t%a?HXpz1ZK*KcxCTMU+3YvJ9xW5s6u0QZ2S_YWo3K-ST#IZ6w{DYIe6@SN44 z_jaG%Yzak;1<&D;N9@(FH!LS|ZVvaDiMd>SgYX>IeCb;8-|%Dz=-C-r+Qw#F4T%G${HTl2TS zVRo+er^tXo9QeBfm?h``>Ud={nr%=H_8;~ZXxBh}EHQMeyhDE2lS7IHzj!~>tNsFQ zLK}x(J=p8d@#h%lciu>D#u1kO_Gq1c%0|cy$8@%5Nn0@8Jc`J=V}6YH6i%?NW;#9t z)g@&fsYyPqy2fF@f>)crYj9UEIUbA@Asxchm4C?p{L1Ca4UNr0n8&#GH`+|d*WZ`o znet2t9X%7z~&gPF5$p&`|-yG5!b}MkBG~z#f&ADYq5rMZA=?$fL|@Y zk359?NCom9FB~|&z&umgyFq>Ce5M$f92Ok(lSs zLv?A#*WrO%m36)qPH3tM-@d@PhIGKG)l-|BKIt@Xs?S5pMZhPcy1E>!zq!PpiG*{Y z*D9>F1y)fWI$QfmrPUp-*Bx-wVm|etyFmS$3TaX28W0+uZAcHL@+IdR&#{~YPZI|z+LOY2x>p5-oKUr$T-6F^ zCCr*c-G;i#nPVkwG9^4K`SVOwcs~^)Y)k02gCOYg~|774mUS5 z9TAwuWRn%p5zTeYb?kiq34O0fASr)jOogP={HJiet{ThPQ$EuHd+KPie*+zwaXAO< z`LzEQ2P~l$Nh$8I&rCrPEnPe;MFxecE0ie0PR}J*YlG~S$i;Gv>zWhqTFq%v%tDR_Q zLBOg{cICVb){+ZUA#?(W_9BPs^7MO_p#Ug7fc1cCXF>EhrnkwbY*SV#WRsqAPnIKh zj>cJByZc0iSvgzfPz0xid`Tj)z;aW%0o8V-Q3#Bj{WFw;7b|P2-Xm?4yD|2_;*ign zUFYQ|E)en(J)~-;MO|n!B60)B=CaER?3=Bn?z7dPtOPr$up@9|6;vzI7_YfXv@PZ1 zmF1qsicPZFrd-47PcgB|QKM}!(%YLbZ7MWb3RHzv-J*G`r3(K_s8b=N+~BC?y&|vK zt9e$S(zD!IAs_Tt86TseuX%Z`bZ$KG^V&duAivrsUvj=LhaN}jtFag5J-N5W->9wO z7PU2JQ?nWPh=}`A{R#Pz$hy`w(i;1ubhf>q{cC|=JN^E)#j=G$`%T4FtE8YuDverXj`u@+WX+()DulbA2&OJ8lwm+Tmia!U!QoMGDS z_*tdaeCV1kbm6Q_IU#oMzL!CE38lvrunDoi73aiXq(lUFnxV?j;L@xY zBI4zPa~(g4V=RPwg+gLAR#KD{bz06>|M;ZJ)SwzOR^w2zZ=9GskM5f^CN^n=yhto| zscE>>?>w3?7E5o+x%2i?vp9LYhdwJUIGq2M#r3IYnlH2jj(SE6ciufAWj>2?)43{ZvJ6L`w z^&uCrYbUP$QwKMy$XA!<>E6R6HXa3Gmatqek``V z_tD3eF4=zOWPKr~Uc-8*)4A|%#ZSSxG}4xT8b6cdV9C;3mM&R}ca)woNjD(2e}ZM# z@31;&?B=<851m=(p*@!~?eOh$PP963Jgq!Yi3j4f0UY<_#_Gm-eQOGP!`C-x*L#Q?1=x6_>fIzP|P1}#r z$rIjR-HLlfmY2LhzTU40b(6eOB?FIn(w81L_BpLy-q+cAU77e`1g=c}TzHu%eu8k7OQ|>J{qpj&w? zGNFH#QF3gkxEMK;e38<_+1c4M+vudB#5`;4tZAUb#62szkb$0o9%D!4sevASHvx6@ zjA1wVSG+r}#1sxBdzJL=QeOoGbLO4xDA%tL_Z#;byKR69a68C*R8x`B*h*rT>_5_O z1V-^T`bR~YPj6~YcyLe*hqgRdZpa#L$s2QI4WxWYg4X=wA>E6eU(WVoyZJ|!QuY?^ zEsSqPY;WN#!5V#G^6qRsSp*_*@yh!k~dz;eRPf_E5BjIQj#V*;#rW?WH>T}Wr)2*TmmFU z=bR+1^Q(cWaMuTkZBy&jh^zhog}X`I zod*l56pw6U5T^$dN?AVc$?&D_E!z8S+3d^EpwE06vTd$URnwts(<3h@3pyx5 zQ|PqNTl3ZYbDznmW5Ab2{*}~eI`fOzi{NF3T2io;@q5yLEJ;B7hx>;O9RfloXn@-c zT>!f9WQOoR5f*Kp232yUlkYZ+Eshx}1t!`|xRY6$xlWc!lO2MOpqZiPlJ8r8-cVC4(&Qf^l-`w)S8gFlKK$|JE9Z4qMgo z;NCREmzycN^uJRbc;96|N67-^j1VcQEvdAetEG{p4!_m&YdcuVsALAk@^;|;hIhn) zCa-tkf>{o{}~lolGcx;9n=fV@aKoa7ktyc zX|YgzSjy+5-&`vt2z`mIGKt=jeWckV<4Lg~qfX?O;>!qGmSJlAJfw1TOQ|sf{g4=p zf=spOVX$+DK)1coX%W9lUL)=f!Ydi!mAnz;asd5;BHLamHo{cOKw_X!2(0HhsY=*_ zp%PY`ybt9&n;iKry3fH}TB0t(r~V20;-%}sgjVG=l1);ryVvn1_%x;*R`nn%a21#t zxdHCq`BE#|27%2uUnX5!J7slNWN{RWFIiMSVLat#bUkwSiTWn5-c%0)ow_xy(T;K3F`0A(Dqj0f}kM;bH_WDn^NH}extyq ze%=4&&>9=kh3B2Yi}mkOd!gl`d!a>L?#x=!oaWwvqHtSkd|gM{jJ~7$sQq4e+d4$YInrdeAda*g62xX;%YBz4>fE+h*%FZd{yPZ=z-@!517ElJZY1@P>|99*E2?H#`6FwII z5bYRWKzmI!kMZYntofIXi>SHZ(f3T(TK6}onL^m8U8A)NXSEh#{VwaiVL)l}wR|L| zzEfk}FO*w)2P8ooG?p}^4GIHRr+%g~J=ZMrqpL(#{{1M%UL*QfIz6=q{{+TB&MTIC!cy@CY&NK2EF#tS)Umb7+Ora_m)c4LNtHcV~lPs>=TCq~|w- zHPoLLdEehl%~t#Rlr6ra$`fT}&tDkw9Jcc%Bj(NBCDbuNywmkld@1?$Q%iH(T*RF~Dya=rk}l8Z{P|+JSpE_X3qpUu zp@msfyRY|cxxe+IdAIDjF7UpE@{_xt5w{$=RZ8W1>+}>UlME`^r#GXl2_*BViWW?oN@%QLBoVlv;MlWpFl-4)UaVKF!KW zo;1J?sGJo186G@^oD+as<9fTT zVnW(J9)bAKJ-4!tAv*bxqN$s-|rCB%S~#&H8kA$HNfg@$-j z4fdi2bIgz^prz&DIsArsh}viAb+*BAy{`A$Vwa)T=L}VaB|;v?@Cs?xoU?HHOk#;ov-8`IElV6T%L5)pD6wLoz<)1@)#c@-DrW( zb&1l|Sjdx~bS=tgVrB5~?vo1yeMY|IX+4=q_k!418S-iceaDwPx=cqK)Q|Ed4TeXtG@-Cz zs9}gMU7eEi!=uSbTlj&orWr}w@GCc?lKVyB3lZv#!(s#rMaCn$>LOfqQ6$ZH>qr`Y zH-4RopNp}X&+#3*8^-0~@2(dfXvk>DV0X7DTo-nJo2b0fg~if_|l{Uk#h=14gzfguQ?kBm@!ULi$v9R0>HRm5P&Ewm&t=Gy zaW3g(Hbwi>`qOA%uro|AOH*ok(Vo}#OsnOF9aPKvO*qmx-n`xkNlH50l8KS*vcu2c zg4#WdH^G*eqGKPNgT%j2@k^9acf^d3M*`Lqow;$*vFI2bYvE3#9+QL)odqA@;n(~S z(RI}OIb{~ky6hzGRY@#rZ4c9=Ru1 zx{g8xxlin58iB^Rs1*zfB@Gl)Vwnf91@QpZX?a4oZQy8oACcZSEAB&*e-y=i6UXb~q;a0jSr zD}S|q6D#JgMn8tSI9_+<5G&uM%T~2~zpF3szK;lSfNLRTQZL2&^XOdyMS({-QmM$T zxkV^BJ)FR^fIVPmmg1xMm-n=6F7S zOUH92X*`PJUJ&<#s1`Dh7gXp_mnR&dLgC(oBZOyv{$J||J-hljO6Ri$?uO4KIYGzI zGZ$!O(yEG`MXD%Ptf)_B8ew&e67^+0Id0PqJIL?YOQ|w@rVr zbF_^WFz7nAP2+d0lXRbMx{%3a>(7()Z?^7W(B)tg zU}ckzlD;{(a1&PM6}_;ltrs=*%+%b{KjO=J8w?mAD-`}#|F4e{PiW%o-QeqOk~r@R!z(I~$o9h%;wwNK z$8UhCzd*`_)HLJ$X~o56MtG3qI5F9ScaRdi?SmaBN~rUc`u}Gfr=JyVdwJUwKj874 zEkC<6aL>lM)3*;{z_oFv!L11xv_WPM_GUdHAc2V|kqtv+5N?0E}u`NC)0K z@d5HWLG@_*_k_F}+JGN(R&o1am+Y#K`78%*#xcM8g2h9iG!Q|WWAq%pOQl@GProO; zW3>ruEZ{pJT5JQtt)wsKW8wz^y6K~M1^%i(Fe#V>} zCjx;1JJTQIqQp-vKwxn}A^1ZC02=yto?ej#m9Yq~6YCc_KL|`WYFy2JWI;M^V|4mp zF-es&lBi>7T!vAlVMt@jz7V;nUFZ)YCp*tvl)|6LD88-u(KqmgI-5Vb3zU#2^CO=8^s+31(~a%=;k zWI0toaaUkW_q)?eW=yZ=Hb0(w5S~dGemXjkdE^kUmUr{XC#7sIs`3rz%B7D(DhAb5 z78B6Pfy2r2oM`~llu<%2eI}Gf{d}^o#Ur334L5(@cq);`S-RCfya<+fSwIM8=h%^o^4Au zKzk4EU|Pcfmr8>jLx%Z*RvGr5jEhXdIYTgE;wqf-lK3u--a^ z7GA_alrl3qD`~8_a=Yh`)FqL-q&`ny3{s*^N(G*-rMXHk2!2_6WvVzR|IutKRnm=x zsyC*kS)NdG;_Eh-cmkarzLrXwSLg4x+I(xxF5eTiuLC||clj4POT>)?2SHoqsQ9Y( z2`l<9Ok3Y=a$s;tzL+n4R}pGxz-&`@2;=i&4iSBh!Xr)w$A}TzGjR#3<5nj)=iv8J zQVTxN=afer_R1KTNz`*-l6s-`yps=J0ii}i%vkbRLrfU(nAnURU}1R-W42M00^%bY z9wDp}W;0=4#DpCSKo?*Z1BZxMUF;A~3Cn0GK`sZHT*N>e42`eFZeDQMrM1pj8E3x) z$Yc^&6X9;`nzRa^!;B^X+j$pDTFOy<_1ZwveXVq=viA2DM=?68lodqiVIfcoynXkp z267}@{yHP|5J4hufIJf80+%wd!~!&Dzp=%vc|cEHrfv1CaZG^^6cjbe_2Wc=CSI$7 z7sKjA!#27L)|i*nm&*(E*i7Eiu)=3Me(F8(NKIxJRK}#EYEqq)qtoV zOIuyyatrP+sZH*M#lG7DXRU$N1UE9el+~y_qDJA6fj}v$M#<$@Ef|St`EA3U!7R0k za<$@^2BHC?{|GJ9Jk(dPB$Kg`N%krtSTk2LaMrTbp<(HWo|J8BYW(C%WVo(NgawV8 zJtOWu&<;clPfz)ZY}2NsbSWM2#p^88^i60r+7qxbzA+!mbim=6zpOprZ^o=9Oydn6DA1UVWjVvxIjF}OdLl=~Hs9rW-)_&N3f;Y?-)+8^|xo%iwE$HlDm0 zHY&HcMf#1BZvB&GOFyEwHMcY5zaEB+4W>KBLkoB`e?N~r&h{CapPCCpo*|NZzl3eY ziJ-MNXKxNyAuJ%s;XnQ0fM9O>(LH7d61_}V@zVL>wjX+@bzdE-MopDQywe?B2|_w( zH{5;5H5SXDlZ+3CNBHf=EjJ7C>Z=oV1!^WvV5S5o3XOGv9 zMPSGfdwjhb97KOZYNhRWT9*;Ut$!T&zq{`<=S?Q{*&Al1`bYp zyS^}x7Y#;z?tcx~{RL7wl_Bx0NQ*_%137ex>9$Iy?)Pw`*o}wFL~M{;f6%n&B*=$R zz`?-6S>+pHD>37W9|iz|LzG~NBxNeyeO1PF_1qf-K~J1Vr1IyIdj@u~J~n(>CSh0Z z35r-}fj){liV{NBQKX;9c|!;f4jun@h~X&pP@}7opBZ|@WTh$n&(S}K=fm`fuXJ^| z8*NV|8$VnxMDXk8DsnlPAA+Oo9c>#lUa(=JLC=J<7f-`?>_$?N$(sha&EFeUryOt2 zhml|Sj=ik?Q`}Nn`L?}=#%W3G%`Sl5FW4*3gM-(ygcu~*I>nRGL%JX754)r8sQd}g zdX&6wQ5UEfy;nPW zH%5`pKBt^9PKK{AIM`4if75Uw)vraufe|Uaaino167~+cO?#aXQ2LhH`gDlrSFTDt z8+64@N`?!E%33Mg2Py){f zO~W;i3y3sAk`Sv7r>te_X_jJ2!lJQ5`j+m^Bz%g?1JVB9(?i*Y^nElpFM2OYJ-v+gV~eP%~R>@slL6?Vpug z@s7+?-g8X&+#18xHKRc$pQl7^25C&aLXa`LKX~tx*gd9E;g{9yt%+NK*xnjljmN9+ z$G>{zl-o?Ftm&nBoHB?cop?)aOmh6=&F?eO~T+u5#RLC!!N3K%z zP+_v$L*Fq?qH78y$912K*-O(Ez5L61WOwm%%$pRcQ<=`>M=SbB|A2sgM$s57`SS?F zY}flr!Z5E?fH+Gy%j{&559gGJmGml^=EcaPSo!WZbcgVDj|X52yX>Jp z4GS_j)GCBT$-9a(R%KECOgU;+{z>_iH<1CT$)R{h=!4d5mp2)Qx_|sNG-#N1tjwpmRcC$#Dw^!%Z@R{$PsxzM&pM; z{#IiwY07x!u2I5xUgZeA?5-m)UhqyNzrJW$-IS*-YO^)DS2k%)QX}^@y*IQCxrfmo zQ_NLb*WHa>oq6hnluqtBf!7^8GM^%Y--LJ$+pT7^aGoP!0L@2mFEs>6p@;mcq zp7PH8Un!__U8q{rJzR`Fj ze`H9%x(V)&7&?Z$^1x8w=nn(>txUYZ&Vqy99p~oag z!kBAhO!F`@97%99R-Tf+X%bHYmwJQHfwy>DGD#+uH!>MmGYHMwy4f$SRfua_T7aY+0R$ZwEe0!wjzG2XdeFe1l zphU=JO!mYb2CD4|cR4N0?F40(UIg=80?6ALr)96dvtgAP)Nu9T`mhkGuTx*OJ3!mr z1G3Pb`qkQSYfo#BFXoF$HJ%{#PWz^?M#Uk;w7>mlEsqF`!6k-9X#z4i8_l4AX*Rd? zNoXJAORiB(p)?kJrK%a;uLaBe6%5VPC3amDyGvXs2=Nwju6Jx%q#k+-4DNXvEvr0WxTrT}juI}Vb!l6V-o`5RkUA-y3L-0twZ|;%R9v$IJ zcyXfv^7jNDSd1@-Ql5P#NpLse>-wXaEh)my(u* zACEWDT`huK)+^iw5<7H^NpXD*8YgM*(0f!LP0*O_9NIa=t(KG`$2{*CT)-^tgT&9^ z?x^quqWlrI4Hlred$1g;cF@cfIt z<>LSYZkq_!xa+8yLcL>XQu(TSjaZ=A`2q^izBCtxhG2o@CgSVe=x=6879|yx-qfYJ zCCy#*gWxYw=_*v#yL{{EAUcC!GC1cMO=|xiQBGT(ks5L$Kp7rZLe%1mY3Z>t{GGn= zj)lsD_dnP@O;>;h54%#4{j;_MRdJ?oc)>JCh>oN=m1b*gReOe@x%Le08S;O;?{3fOVt+bcU60ikJFKPn z=JV2We_ldg`A4*X^i{5>NK@@kx9K#R@+DXOTGTh4S?2@2;8b^79i*rl*11}${I9kR zVMGF{4zZolXV&M`=g3|4cc6CHX3}D9CVv_&&*0NPe|pHDh8-GI^4d&ID-^-p^hR50 zOR>7HVrQ?_B`)MWI>P$0>W*GUi=H9h-1fWD?%gHsqlh<3?A@OBM-KjiYJkq|6Y3!6 z<@XFhB!`+u_;+d-z8+oOG@`8;x^KwToYwqT37ykE2C~1P?B@!m;ey`%g5+%)8mm)1 zpQPGryBA%=MbzTAGYb#k>;*(i&e8KXTs!JXW>QwV3Zi-CWx^>c(9f4$7Jp|bHNAIN zyzId8M1V+H1LbAvD88Ih`p6x{|9@_z5hp)NM{yR%{3JSx>wj9ojspF}P#OfG* zY78!XhUv=PYDVD%OxGnB=o@e z7OQ=e(xC38!gVeH9B&~q+f!-*zk*Z@;54Z7_?l$8(mmF!GT^jFQF`$=~CE zL`u%)-g9p^3WvOGDCIQdCr4ZK3(7B^DpIE8R9aF&U^@57!8*R}9Gk36A1qs$j7I>< zeO6@aeLdNOjargDSOj5F?~fC?G)ytteMNTs=Tlk#!_FW#U@++MWrSVcu^z|4ldyoW zdl^aT>Qn&K!XSgi>6deeN}wmq9bjWidQbpO>_=pD_I_Yoe1HOZq2ov%%pwiEJn|qn zi*Y0rnixgs`=OV4&A>7qcf@RyOg_2BnF8VYyC6$LmKq}=E?{grk)6kfoLz225SwR# z{EKag*eZTihtE(hnnFl%0oodW#}PDOc<+fbyc-hbl4dkEZpwZQ6B*r z%d=NYe_4gWS$2JB2ybXqUPVJ=aAABVP(q)(l%Kmz@;hKUI%23-!)H`;m`>00e39X4 zJbCV*+Y5EB`-z?c5APZ_p@sU2N`yg_;iH4QXAh0S`ZIk_*PGd*!$4&0o4Uhwm%@-O>Rlk~?}?p&~W^s^sIf$Y5f zKdnFphqwZK-w4c+a}P^vjnPGpeZNKz}bAL{HyrQtpE z<3nrZH3nWyT#Q-Qw>mBGWT8t+-?BOp1j9vlNfz$|Oyh&Q2)ya1sa7fhxc&weL9>Ld z@o^8ri;<0F-lX-&$!f+@Odbs*zVYr{dBNe#)LV&{#Z%|hF)6Ha31(s293*45@H>DP z*8;qlC+6jjxWGtE!{spFok6s4u}&yQ`4ZQILQ@&T5>h4_7fK(%Nf%x!+vdy`ONJr- zE!T(O4=)A>*g>6boWoe5WMHbD((gq<=Z7x<$C6!F+wP6p2CI5jCvbNQcHmSoDSR9w zy&T$Nf~Hk!zu>@D28p=n@?KM3OK4I#?E9m)50iSZ(=_%CRLdgnhyPCS+kiOASEYb9 zZGD#SN7VpdERjEMCHScXo-K5bdp3(XVvh1Lr`5f@mQ{|`E^vBxiQCO@W9W~vSPgl; zVA-N<4x}ty>0jQmtVKLmF5Sfxd|&Y4$$h zJq3rQ&jq6`+Vxd@Qv`DH2QURW?1LJ!+UrL%< z!Z5-8nfnTQQfPrGwg5GWos*$|%j|m5T86=W%bx1nz5>U{Vk7RfhU@OXXxS7vS>o(^ zx=4H z@BP6WH;iyShR2*|?b*A=#A#aG*^-8ukc!kVWoge-*8=1oT@Q$A#uZ=Gy!<))qz?(`-8rHvJBb3;&C~*z(c47An6quf{=i4;} z49h656i{U*kP=9VzrKlm$C96MfXa&oKm{b=tc@eXU!lkXTRpS$#HbYzrj*2t z85-Ih5|WSJTK}PiM7o1&vay7aD6wQQp$%zD?&AATiwTT|aTleG50(=tsomZkyS&|p zoQx#oq+z;Y+IR=W#J-y$Ck)QSB`k)Iw`|tkhVtxVSvVJqkWyv1LQp_o%S`Ud#EaeBLDLW!&St=1xlZ^g0`+g~C5%&NQYabZdz$<5FW-0t@fA4kkS0 zt{``djByE4e~D+~Yz012_0I9q^48?nn53(dBp{R9=hur<5N5gAlPfE5$#n zLKY0YALIY~mRsVL2E=#7TnO-^T;E8O>>{I8*@ zhEXX!G)1dn!aWoo3=JhK9@vJCF5X!ZPjK;3VF|_J5;~1~W4vUT%%a62ka#}qYLH7* z?3Z2<$9cj)Man>0H&2rn$s;MMDIOZ&2s~hj@Le;{hBD=SeO+=$4&)6BjSPR920W1n z;^&Az^%M306cMBl)+!Df9`gPROGA)eguROFnTabRia{=LWU@NKAKGMn6kSBb0{^8( z>*?XAUo2tv3RWo{rK3D!1qu-O#_d!`K2$Z+Y=Qhe`oW{!2&B%YtC%}wVsI?^jzO2< zhS2?;(fIl1f7xyA2;z3eKghl$BcHgTANH0$(_<)o3C@R-ae4Pc%1W@f{5P5vgIj%R zE;lb9#)Hta+nJXev4EuDhcrg|G@7f;rWOJ_^d6Wc&O0xfDb*ybN4psG-x7C$zSi=} zQC_?t%bY@-Fn7K?UrrZ?mH!~ny7C%h=E!wj0gkwH>K$#j)RIf`^9RP-y{|SD8v>r7Uh1EVpr^Px?-oPfM_)HFVSmAzERX? zfmW(-vo@`?P3kKmF_d8x9X#2k6qqtT#ZT1t)|=dr|J?k|@n#9+@W*`w-m5S8UrWHD+;@4?`8VAN2*XJmP}phZFTMJ|axsZl;Qk_ms1Kqd28kiR5)i z9KLHo-0SGQUao4}B1D2;^{?F#B+}vdy2c%{mb3-^CaOoFq*m^d7E(SvL8=x?F_bm` z>dGuxMt%=tV0)#;x^u;j$$(&e>Td&)wm)9ve^-Bd|AzW^fN$u&(DKO6Yj-|qR%>io9+Sr;4|}quM>=<}cBhF( zdt&1m_hTzDJ@ea2tsbPhUkXk&oW>2*yA#`v=tVMcgQiJoO({)(#v2q(ZoAtGv&`%6 zP3cYPNKFA?fC%TI)t++hV!>fdi&x!aZnjW${|&G(?lJe60fL(sm*YQ?Y{{kn)w);r z@$}qSC`!R){3Y()&#DzhYa@>4TZu{m+-+kh6TL{>(;S*kIGIhsxJjRu|9!_e*W>gk z$G*t_seTYSEAAjAk-)S4Fn9ulXLXf{t$}w$Y{5y1F0n~Z!AlE;mvK>?;fx+**@<^-`vTAQp-EL&yanv$IEFh) zFLUl^^!J_@*ILCz4#vz#74P@#;_ubZy0euud~i7f6C9!AzXx6!z83IO*HoaBmAa&( z7-}*mQPtngykKoD#nsx6ly>bmYC38+dhjFHsp(sT1b5Nb&Dr7~t3qkeuc5RM(JWXB zgWCwm8d{g6@`p*~$7vli>sLS#e9?E)7niJDrr|$%NGezVXI3-1qtW=SZgg5&?*!6D zuisVH{uZ43XzIq2x|)aD{!d%|ISW#g;a%Y(;pOa~Y`u`>T~c|`y%S>~fm8&!2Xqm43*W^{BgHSUcB{UtgL>_SaO)2l{636=QE&0 z5#A@J6eO*$@$4^kytC}@9aa9d){@|c@EBi|-ICVc9XF%}QlY!R*XXOGpCDVD;$CM) zLac9~Ewpd#+jfAXT8_~4iE*dXUSidjmkJjN!9>wY=vAcj?9HjosdAp2M=)K!q$1-P zeC<>`zqdScYWoJa*tD*!y~U})bt3g-4j30Z;z2zk3mr0dLeJG-WMj%k6Op}sQrlF+1 z^;kma?sGxK|$Ck>>^H8>8$g>7G$&$UOGha!03Tj+G-B; z9Oyw83)g*@<)#Va8jF{25k37PFYJ3N(QCtUPSGx2!q#}{3zEwwdRVO36 zU@MaP?5L6Ha(#A?ghY^tSokmI9pdHvw^{INFS3+OCBmE_vVpes&YaQprMd9xxT>UN z#vD~idRZ2>4sJb2TQ4uFMcGsdIf;FN=k1X;;8<&DJDN?X2yz*f89Jvsr#J;s_jC_|{!K^HP67~M?E89_)u{l(iFs2PX^de%+GeQe{+TVEr1p^&Dk6q4hIP@4oK`gpu zw4}k_ps=iWG?A+680q*C7Z==FZ9*Ml+0!8vOHOO9X|CbfQ#$p{HOW1PbPt1dGu(rF z9_tPt!KwDS){%#_{~yurTW{!|d^=-bv= z)LEpz`~=G!4B{scjafsIXU@VsJ7X5^Z8MIQ@+r0C4*6wt7jD(-Qs`WSHL(4Y8J)Bc z8G3fJkfx~c)E2@I4qMlsZ;1Vl2yF(R(^(==Lm7jJW z*`&TwT&sP{Et2y=e`OnY>eHzo&W=aPG_8gw1K~W(xJQIwoz1~QEQmsHDaa0O)Hi*O zjrfUGyPQ_xl)Y@+hS-O7-DI7&F}R!=FB!{I*TPje5J6-|2-V?^_V z-b_d7ttjnTetb90hdQG?>ivmHJgaYZR8H513N7xno3*v2rGZQ{7sod}i$g!xj>_-J zuWoWSzPAZXJS9$#U%e+#9w?WCfin3sEz6DJ^F*&=E3d{RX(!N^jjV;%S--e`9qy~; z4YSj#fG?&hc&UDSQ!0O3t8KHra?v zbI@gbiq0=y{|2kncCRaGU0xnIRa`3%lvTT`-IES@ASD=LqHJglHcrr@`CPlkErHF> z)nNMHV&tBiE=arC+3DOtj?fNoBphj6$q>?VPoyii`B9=j#OXmbva)o=YCMbVUy&v3 zUMcjfT;`onKP8=S|D*b_Csnn3QWgB4`+#<>3*Nbq+1hKjH67{oR9Y>qFIEMc!q>Oo zDK2k%t@Towb&D`z+cO+A5mnPkq%Gdq(_SJi-o1SPjlt!O?~v)Tglf&=Qe}N;{lE<( zrdqSLy{5w6n<)-OLzeD^-Ty3qyUgCXt__8Z@@lvbou3jbLSb5d6aN|t1BV_Cg)$%7 zzSg=kGqY&f7nb282tQn!xilEdd;r8oKgaiC&(f@=Vz&^hT=oTgyDU$9Ni0|<)ih2w z715%UggeJy^vwGQFZeu;skTebqbF-G0)(++$urmOc|y6{>F?OSTO8QAzPD;ug?Pzn z6@L+!3QWme$IGkw-#fNpQ}k7fvH(1 zsiWuHMw-7~@%#~+9k2pLP}V4U;ug7~F})FJG|T)v$Z*&8$EiN>*=_U!Cs?wh4+ z10(Vs>d@i5o*(<|e!HkWmEQ17*0}-4!4sX`9pl=oos+>kDS3dxa><)}muc&*;(E_2 zOUYJ`*|B}nK4E>K!ft!EfKTi?^zN>KLl*6-K%$bO3c-b zt9IAz{vpVx8ei+%P~xyOZ|OU!n8bxuo)cB}or{YriO5Lq(eeri}?Z+0j z_9@l%OQcuiJ2zD;yOhN(z)8zBY;A^fR$VNg5ihn!-_XAAU+5H094{TX&PhX?JjecA z4%Ko=Xq<8{_g0l`^TakwTUIPzE=BCsPT^%h5;ZQ-d5>FOPceaZ9@@wr;B0E;uLw zAxB$NEv_tCuCcacI$gqwqZ=yirR}%u6P(Z8>9THW50y3iA@YZ}kh}8av_5W(OIxwL z`!54O&`w6~tT69f)AjwIDJO-+PUu{9iL#>gyG@rWn|@tvE^aO4z=g&qx;&27%+Qt! z@8Z^~EOlDFL{w4or``Y3{!Y^guxT9js2dzYX6K8>Ubrf%)l04e9WG^2aN%aF<>-w~ zweqBO8xS|t#!u@YxCcn_%A*IS4_qp6oH4uh3ATZ3lem#td{}*kOy+L7Q9kB{<7B`g z4Ru3f44>OXf%`bAcs@yv8Kd)M=;(yiik1Bqu7DM1-!O+sKttU3_6yunIKj=-j*qv* zyh+HcE*36r${r;X2-XE9NZDK4kM-6R1J|K0XQ95lTHGUkTThA@xI{Tr42r}!E)j#x zbQkER0*CaNNj!~~wi}6}OL^eyUlY2)N=C7>Z=p@`#k)nTN`-+k|Nd<0kF)J}!$t#1 zh-k1}Hs5D=cu$!()t|u-doN@`#~w;;D*=6JLe7-buyR`Z4{w3C3^yxeL^A3Q`C(5H zC5Ze5{`*-L$X$r_4Ja%GEqL?`cqldtnZiTg!?XI-`c#r9mDaO7IAINg9hTTDP@M4!7k;@2Ca1pofY19yf>Sq^#=Q%9CQZ@Y_Sq=1sse|S4ayg!Rv=E0`12A=HkFv z;qNN#_Q!u$rG$_x33Q96%Ydx$t)tPta+mLB_e7bs9PJJ_?K<7~c|d@WT~{``rjQvu6SUs0~rwCYr zxsE;B=u_pix(7XJ^mR|PXAtY4=Qlk=yKAJho*`QP33px3^F2j9MJydR4N&C2!_P%> zn;{@r(7?f&dI|z%M`_t=gU(Hya*xInsl$3jqU-4A=FOr~q~ab$2*zGpoR%l#v&(q+ z!s9WD$bv!7Ab%^o(Om3_6x}&yw^3?@mFj_eod+8)_3eoQTL57tuR#S9b>ruIuARdh zo2RfGB;F106udKN0F}mAf_JcEj6yONpn{?f-{JE4V%bq~a=G!n7?VdkM)XfIL=7KO zv?1*2(YI{0scv5}6`pxclm~k3@!~o)HPMHQ0Z6lA!H%(x#`s_mf`gIm17`E~gz?5Dhj{5N0y|^#9Gxh}PgD}0b?@-`zvScm_ zD+5s###GK%^CeBa?=GKC)5BqN(ui6B&6d2E@zg!tm3SZ8j5}tC9=l<5%bM-Y8J@8Z z*-~*Hjt4oRF62m|J*vyiz`&m)yyuVKbcko+o{tMlO6?XWh~RZbO`(?{vL&dYDNm^{ zk#5MnSY1_xV%vF}d|k1*tw`PPD68M~J9WYX4}aG{j8wT2dT z-R-(%Yu;9dKw}tfC?pr)($E@Q6B&=mYT^nS>FJSVjr8=0ah8+S5h)~nx=lhId48M^ z)Oq(2OX)-QsxMnA``+~CaHS$epEaq4BwnOwXi3qQF%&|$Qkh?QNqqx(GnCi2ALF?l zp6msjA^O6!uLEIx_f6*2Dl50LfF*))s^^ z_{Q>-sx;i5!IM#6wquTUd9}J8haHrN!*t+*jT@4VEmO;x^ua99lA>x!QbsgEg5)dY z@2)2p0Wn(F(xyU_lK)0u)vqw+n@1O5Kx@=IpDEcqMvmb-cITy($RI7_;+1?nXa7PH zK{6o??;P7%w=?J+r5HjD6I9$gYWy{Z@4oyvx0UoL$Gmm=pVxV@q~WHXxYnoFGqnDJ z;DI1FFZ>#%q3{?>Y2v&Q7-}G#C^-hw0&xJ4JQYaeZ(v||!$GV%s?`|RM|mCnwSy`a zZX|uRt9Bl4q6Rq#^6Wakk%8FWk-a0v=f}Ay2pP5{=D#)CGh%G; z?CoV6ybH#1Uj7OCtND$kp%~-F()0X|^c{=+?=)q2^C;N_1vNZSlg;y!{9F@TNHQ(7 zUVlM2WlXR!iZID1IZ>yUz6F{Pu1;~5P0}so*nBjO5a}d$K9Y{}ZOH;4{frJXlP`AX z=g0s)-Ygji{Q7c7dA2k_CXSKIBXrIxU2`genF)6Jv&!SLw;1lfk;D8l*l#G3wA+lR zb}oTAlBLe^8RUI(ZY()1t5%f)@JZpcljV0A)J2?BzUBQJ%9CJrJ2^31-a}niUc`EB z{>faG^^fSh$r_i}eA6PVMN34LQmZU>D$y8v(QQs^ab+zXAgs1x2XFat7ppG|YcU5!rAg2E72UeQar(2 z4)1|*-L?rOC#;19lL=nza{O;6@FwMG@x@YU*#v)ylK;wYET#BTTq|bN5NjT4`j-fy zGJMz6NDohlU1GcMJ_-(JipFm*_3(jie=KHf^((t#A@kZgu&ay458|OEo%tM zVfvdz@_O_rsb?$2D&g&HahxJFHAl_yeAP;Y2eS=G8b_%`Tu@b64Tkj~t!uis_DU1d zS+dZ=FU3{vd+yg>7Hrz-Z?0Y~2txFJ?IgY%a;IxU+Vf5&JvUp?#IP2nrE33|yLXR| zvb@%Yv3+-gcDKQ{yTQHNCd9T$Y{+m>gQyAE4FOLMRsezoPam_X0CKinhC`tkg|Z{iDAaO>|`#Hsjk-_oVR z8t(97ZjgR=Gk$lof*Ap7PDZ&@gU=k@*SoKZ2KwNc+oKqfRi@1s?^&4n$|5dhF_&`l zDOd5^{hjScY}H%4Oq)=8)9vPh#ey3#amOP?c30Up^ETk-+e&xda=yB}$Zp*-yJuOY z4Y548%>QxLi#D#Gd-~}jt_q;7)1*OLy~)V?$g7pZyZ0)`N=&;}TWmXz6_Jj}-q%XG zgHK;$ck&j3N9*15?T-2Wru~VKZ3T*fae&`j|2O%`_e|AJ&+o+9P&N4dPD4=LofK4Q zvhSYbN#W)yd_;vQG`kwAG@r1Q(>z9mVR&;$cVMG{7%_#s3BCOhajokqO8(&fM4d<@3 zUEjFf#+jh(w_ zIzcCZ1fk1;W(%;C8JXwpXJ8Y-XmMJ^rVDo6P?-pu0evJa97h62XyGrO;Md!LNONz( z^qqBB><;c_R51eb0l~%0Zy^k*vLZ|T$$wh12RvR{uo|ftsCNpSg6So^Sm8j7ryg{g z%Bf7OShKrY`s{XDm3h8HxvzxQr5ICRHF}Q=^So;+t)4$A512|mst9o0TYQJrBwk0X zCmLh~Q*%~&j+iuA58#6GoH#D%n=3R-#|42m3V)}tKQ3Z}(+}(TpcZq9rBm`XjN}lP zuVG3XMp%exdJlvOUHX3?gefnT5~oSeO$#@tYdL-LI+VdcRP(@Q;zE=DMyTc!a3NvG zwqMK$t$uJtXeI3E8D$_rnwTahhKIwyWsYwexlNOdth8t^+%Y!rGaIj_5f7m6STnu8 zZR?%Vq^srYZmXI)1w6-Tfoaf719*_??$^#h8dipO{OwcVLGl;B;~UXjIz2ojRW{8n z$D`ibFJ47L&c8M~&7Ee_hM=<)%%1U1bNo}%=qyotHvLmrbyZ#bd+@%i3*={7x#vG^FlOH@of3PnSlws<^C)LgF+SEbaxv)nid})^yGU z0_t8ptkK>ey@owWyU=lDazKv*v`CJ)J%j=2?X@Ns zIU5?I7`HbWjKPw0Ig!qgW;P9AEjvo5Pf~hLZ=jzNAXZjwGW`w0H^C$tW~7(+3=;b5 zRFG`O*uaV5)ieMG(dXnPr_gJ2e&?ELm%OvEvyd)54JirFvAm$j1|25%1Vx9!;W(eu zll@;+&Zb6=ai&6wJQ^Rz85vU;jx+6>LUK11_ezC1u=@xwwIP_rF|MxxzY#|HkT_-m z>!F0Sw>cxWqx0cs-!{2V7xPF**qp+*{J#|Jf<1>c*0dqyLv3wd%6C?C2N%*_M-2YW zPe9Qm3!@GQNf5fQTk76Mr~n+sjYVQK7z(=YlmCXi`zxgmqgi~t zy{3IQo&-x$ka@U=g%eIsf%uK!4IU>0AyAEPk(LA&RyskDJ6_(F!Oy~uixxKCY;U$0 z-8_gb)G7QsDRx$RJA@Mz;ftsto8|Q8D?Qtz+iM_K@u4z_0(vJ}^3epLSl^eF5%Jw4@Nb9|D;C4+^*$gMMADQ+>9 zp-E{{nvy1(y@^Vi{z2ZvoEdP0H@+_E{dhiDJ8~n$TwRn_VHPz_FgLCIscg{Zx29r; zSl)0W*JRyQmS0lBh+-f>$%R6cp2y#aXLvp&7k+b1-hE_;DSm)8E)2!$I0K%@~ zE;M;!<8>kJIOFBQgPWt9qo4aZdTsu^Lo;EMXF2(VTcNvB(<$CF+d@y(;!evMT+MKm zIyL$jJ(B#UIIbPf9V+#Uo0%erhu9u7R{$IkQ$p*IO6Y($TglV@A%1_0l&$ZR{H5&M zZYeQ}7t6JLF12r{)^QIZk8}>FzCU$R;^Zd%0>P$_h{O6T&qQd!)Z0DdE_ArkZ?ljf zk9hj^zk2$icW81=9>#U9ugsVT{O^#o}WG@En z=%69Fgm{2#K9>F8BX7OJ~A6+wV&KU+BjkWyXR($_Tb-mH0ddZ@dbBFb01zP074vssFpsST2#j-|GJ-ylx#_{thPd5#I zNE+~LJE7DS8@csP^cC@D87h>+jVl`s7&m#B=;@2bMy0B4Lj1FCxHN})b0RRlhqmgjWVg!fMmDzU(xpq~Bz+F5X>rXp-NBb)%3mpk%BI|~khO5h;#+T9 zn3|K?F<6o+XA|H-kbyRKWbeq9?d+57g4vsUHBZ)C0DC#PhxcbrSXop9m!>;Sv^1^|P?^>Cdm zTpNE90a~t5gRv={0KThf0MD>Ol&aKcG8_m`HfHiID+#-yTqBjw%89sAUvOVE$dfCH zB`3$VOD|4%KAWK}G0m((k73C3c|t_lrN?R)KDm<#lqHxSOCJ>Y&GgGT-Z(gOq3fNi zr_e{L3?OJ3$_xE+RY#ike&`kzM$`29fdy;Ueoyblb1e9dG;*T!b994srkje(PB0<< zFL6bXiN(LHHG7gh$ybFSKmAgltYz%)XMF<=s1m$IPer0~Xdc%15v-hYC%51O#KM6@ z5WLhbR(Ix&Q&td~svj$3D0=w8%moy*%fnbeIKQCXJ)s(+8(^WMRS-5$iWhK!n2T&# z{4T0V`tli@D&Pu@t4V4SOKhZJM*TQlP9yuL2Y2KeuXG}fXQk+4veNqAff~(9##1D{ z&&BjS9)1FSyNV=2+xwpoY_bKaxeN%xn#QiSK${bqk#V8J)s{f>HT@oBxa0P_U+q`* zvlS=$)%Y!q&v{|6Da}2~ChVACkj4;=#cw+Hmp65*k9}v%J*@p@Dt22v9sQRR+@}p# zGVwvti2kodJdgj|$tdNTjt5t){T_3N$bm@~3gu+N<(bo=nTP)j_@DAT^wgKS_n)9?=h zr`0p#qTpbBVhm}aljn^|JH}i%+&38$&GY`Zt;o^DuV8c{I-#GCI1&BZ^!vuF)ndAW zO{j)pE+D&tp4rn}K-!e2KAlEoN0njj~@CD!%_Od;W>xQi1n$J5b-nJ$iJp!dX`oj@PWkKxhpQgs1cW^*o4*%I=z|t6WpTBZ3U^mh4SYpfY z)P3|M>6;F_k#s9tMzkA=gEsVx?>iHW|HHT)!VWX#)faH{cJ#{Q@;HUFcr?%}{hNX# z!D)_SG=AouQ5t0ZqhmCu^ywBI!#nh2oH5t*-+Ph?6a3VTr$0qSslGb(ZZ^W>+H@6H zBaXNQ*Lze>#FG9WnzNpRcYfleU2uhG|EVXf=lqmefI0=+f5@l#G4p7qCh!#fpfol* zH8aq=<#LY(Or&X(8EDYVgQJb?E~9yRDUoM5aCn*-r*0)v-w=33pL@(9fJ-nG7@nGY ztz+9y)XrGb0_GkKww&M))ecTS01ZQeP2E00>y~T#G>Ogmk|=fxHx!|EXfq2Pq}c9n zvCsjjh4~dgVWb-ANst<2@H)Q-wfZWdDhC)%ijqrlnnv}K^O0cq10?0Om&`xS7pmlY zb-hj~>%YUW6LTfl#L&7fE;ANctOzULwi+$vZ3ZQ3sPK;fv!Oawu|NDz%f+%X(-EU{ z1Kfg>AYYk0?qc_nGS5*fG7YY>G4%&tN8k(6pmbQerIrz{a^wq?h!K7(o^_g#kT_){ zvXgMpDI8%Gtq%`Y5Vbgyzt3ZkQ^a02_7tJ!MmXv{D9v&}o^+hj85X6&UMlT6A^zx$ zvo+rvr9o~Xsln(1yuyhhQ*gnFBH<{S5)!0iRE~<)DvS3${sDD%IcZ#q$x1NYQYt(q zoD&w6+r24DPq5l)EEhLf%1xQVY2;~>Oy#U;vb(vMa%@PD#KE2}VP5!Il5hb($F3|X zx0eJS2&9AL|AcZ$D^C@cc~4R#jjF83iQs-cs}wr!3Opiyc~ZC-a9MP{|7TK4b*&H` zi2jVKRK!)qwP#i8!{{&y3(Cu*d#x64Mul)KA$Q=hysPr!!h67zn=Q`H-1cxs@9x2^ zqgzK6b7xiO#`*Jo|2*G!-F)A*+w%4#h&8C9{z7Kt6)mWFF6kK-Rw#!wP6I;~VV zU&-&S+G&u-n8HTlojewpuCACe-wd_k0-5 z)`mK;Z&(;m#s^Y<-+gdf#@?a5LwX)ab9JuPM|!$K5z*qgdObRd^TqG8gBQ*O7!eFz zOZBGfxX0praM~QjZwU=?KL~4#Wy&Z=HV&%wnRxAwspN!{BnQVze-p3L`c37p?Pg0c zwIqMv$SvT~A;fEy?nCL;i(ERTzj7E7sNCe_);nH-rXw+1sgB#p_{yLpU9g`wq0_a6 zYep%P9z0Xw*cqqR!9v_Z$=tV%6|PE$*r{fK!H9L0lCGjld5ZAA{X?mXyeUk=mv#?P zQ+V_r7smq8)SShJ1%b~^apYw=18Z9vQw^$t?^UxXm0M!+Gy`jMmMeK;0m-D$5EGQV z#VMfJr`$rhDG?HpN@>>E1R>gSFhn3BHjmnR3(s%F zRAKzcX7R0Z=en1wc5R45;t)hQ&~4GX1oENc%Z&46DOY=1to{|OBo|s4OMGv+Us3m0 z*&Q4FMNE1=sy>d2Ll};pKp#w|vfh??QaR{SXREv0Q=-vmWZRsq*xDi!ItK8wi=)@X zv*}|0R;)wtQiFFyjs}yre(3T&(s>DKgl|ydnnqheZ=n=w4XtIm8ojx_ximk-1ffcq zNX=O;yA||i_oi=BzrT6BGeH}Ov};mxmURqw3=^jA3sU3i;IqY@vn(b1k2J3Fb<4}V zQEJJgM&(hMwy2!EVw15UC9HU36n%+_YE(&7uD#2ImDtoN_rWuHKl)Dj^SaiB7JKSaI(~Cp=2~rP1{N6?C!chURbZ&vNsgf<&yDKC8++p_%{&DxPe_X}?IUNuB?=CVr{YQ4Yp*hjM zY}c9kVQ*fvpN5$2ONjP)#T0M#VXw0(zbT(gS=0UUs;*}&rJ4d5Bb*Q5@ed@kKqVwS zX||FbRXeKq0{&q*?{UzF0YD2E(Mx)hoPB6h|7eLW`y-jLYn!J=;1qU?lm%J8+q>Pl zx3{53UeBj=&ayl9o`ohhH9ruBg<*cZb?cml$a520lT1%X0FgBw78)#wj?BXPR!(`9 zPvg@>!O3VFmf{1lGqZI85egcEpvl39JXGOuU*CRIc01&~)q%q28(e#OcXjXTZtthk zpZ2HSKXbQLi#t3wm^K|a?A&=qFSiRv#hP%G>+AYX`tn%XT|0yn!%N)V5jCQUqe94& z<+Aq<)96mnek$+^z^gp=Wcqh^53!MJ#nTtkpG?1tAH?`YIE$aKrr*`u&k4&j)<^7n zhB>o35KdEv!)eN}Hw}QVDfC4nl|0^=TIO<9IF}j>=7w-(Q5K3+4I6+OmYZm)88(0w zWUx4$l_sYld(mwGhc+)+Qe2#x!$4s5E~s5ZDEr7MuH(+=6m%r092Te{3D9)+^`|a!A7@*Ecy?0F z-FHOj_QPU0%UxDWk?)WE31EP?iHUr_^iU?@*V+&Y@bk0t%fP&#(q6WcCmFF>Wa~qy z!n2!^87nuU-aJ=K;Q$|28N+zH?N&Hw6slTs04Qd6S;V@R8s_!Oby(Zzvcv*n4vn%1yT z={ZQ*nVd?rH}tQf?N&->JQ`Ku2l#=#yW(V*P6NE_w-)Q7FxpRX!aqWlMs(fyA$jn? z4qwx@Yb?=LR`U9~oa+4k4DH4eGL;t<0Ru6Tf-^%P=TkZpJIf+R;wo63RZ4+4ARf|!X*sNEU^QYl zNCI+db{Dg1KesvFRKT6=PG$id5qMBVvFBYa;iVT)#OV`b0wYihH!WQX8ppUclwloS zMMi=KvJ-fukHY|1G?|_Fsjn|pVuDqyT7$le4gIa2p>S*_dq5hUf;Cof^C$oYoFD1BzYtMrPuznQ{WbjFe~4%b_k~ap2Ea&rMw3j*zKgUDl8=o#iEk^bJ;$ z7835K3rs`Go!%B9b+RYePc@uSFC0P3rU;x5bU*+sJ0VPfC6O!Kk%0^hU0n*>X$bv+ z{wbD4pkGL5`z)SJeVa0>eX=r21A+I>E11lvx|ke`HQVY5c|vkjj;b}%aDzc*@U~h* zLkr#E7}Tw!_+H1r>mGVcVxZ;Z-Rt*P`K!Ex+`}wZ8yCmr(e|YFul!gZp#!242W>PP zq+$J511db~pTW)1ry9Kj7h(S7tahfu$^L+40273OV zPv@(k_B4}-A2@w3^$tug!J+E|#ihwpIuOfYbKpR1>ZbIjU3O1)6;gQ-xVod#P(!G} zkCPi_HyR%lAFnknDP$KMJ~d#Ky!{_A#t6*@HiZ6gw>}r75%5Vm*<1*BPkn7vo%yxT z4Pn$w-ueRW-<{=MQBM`6W>m8@P+S;x zP?v|f5kFKMAU;GJzJbT%2LWmqqjyD{|9T^{4C4YR_1vm~$O{%ur_JeJZk$#(g4b^@ znxc$J$?;k|&CN-Fbg4`is_gKxw2p-~X9`UVHjXjG zOB|Zap#7B00~4u9;CtmtiiP3pXamjSlDNJ?%%XV+NDa&Z%F2`$^8XU}B45aZ*954_ zcOAUL^UTk?U|%Y>13!S@64B>hxio~rAps+mDLZ|5A%6)>5h>P06PRN7HV_Fq*C}W@FmO6*E8A@Ne5LQ zU1MEiL}KIzaf{c@V- ztp%4o`#1vfUUP3zR!4tFANKy|lX^FFs2z%O`z-@!0Pm+e!vfLW+f z%mlnv#7p26FBN;%AE##5T)LChk?!5A{_`pTng?E{Vp1R=>aBq)s-t>?Kh|~5jxrF@ zNU{%4&lV@N>I`v}$vdZVpscCWD6X@MhaFY|`aDf;K z7d-6wrM)7d=|TSeOBTS5u$gYtF6^Dz33G~SBdgWX~`*m{-TLM4p`lc7!W7Ot%<-*>p0 zm6s*bb%l!eW`EDFRYi+OnHEj8_$ET(5_>t5b2@1P zq6e~mrabEk^1l?e@hM>A88?|qq;fT4PzS_*^-xju2?n3L#A;TtAXh*cB4A%8~R zNU;L;?yr)SwRx6P`2=?nLWiK2dMcO-QE-m*A7eItmc5vkup7{)_#kFK)F#>RRB5Uz zQVb089&8u1uLS-i{E;t1NW_NFt>)hIkyA<8SQ$PX?j*~njE1*>QVw3_X{!==G_c4~GHOrz1X2~Dy-1Jtu7v*B2Y>JwF}^kCH<`HDR? z2i0DcEgfVG8T=aEe0KBxKikb)7Fg?UXggk)?yBu1K}`w`DZ8L1)wNSN$Pc_xX5t6j zo3@>3yenD;V^JbsL#s2os!wfzS5AAI}>E%3m`VdC-XD}AHs`EX0+dKF7 zd&W&?gYPxvd3uEy{x=AQ)-uwyA}*x0Is^N3>ndmcp#SaGCSUY9gSP0!=5#IUf9`Y7 zUK`lilq9Zff7_YSg)N2#q4uYo?(19bDK~CVI<3|z96(IdpW`Tc8z-b?q#_nL>NzGw ze51Py8qC_jez9`7&}7+2L6q$B+1dH|_7dry(aywV?d|zZP>ld+OV#g)cOI0)| zHqB){F0KQ3#J~C6m!Tcx3`S60)7(^hjj7zfAo$t$l?UD~vp@aXzGa}(Nfp}Jv=5b; z$~|tE-E8Wr?tM*|t1N)@r|CoqK%ipeF6!0Q{L9{MZG_`$LsC^}B6M+u@5@Vn?-}3! zzW6wQI-Z;A7t_?}ca_=7G37dC)uBtx835y(D@5VYzI0@w(7?-cu&28Dboo+oP?@X6 z+g&$EUswdQbDj5~e;sR7;ZAEBZH&pE*E82}N@8kLQp-4`3dUPLqEOp+y)dkf5EW&4 z_@@kjZnd}CQJz^yEJoS7EzZdy>MzK@gK{CsR3t%v5d-A30{N>1TD;JxW#fUzYvbz_ z6R?nJJQ~${0|A%z#_0@t_$d7;lo!gAv9D{o7~X8X@>Irek#!#Q8c^mgCmEcY9fz7J z4DUZG$(>^6=x59T6@IsNaCbPx1xVFTBjIp;(`t1O=%u@2l2kn_Bm>JBU;mx-^g-NaLyN7X z@lbwfwQSJ2KcLTk4PFs$XsCeJn_$qB%kivo8h6{LjRjDjPkI~ViD;qH#iP9#+Ok>Dj-}@b(^Ba`g?w6i6|LUT>`gqVvrOf0cr*e0oxUgy zIKSG@VYf;Xj;Y}z=3>$F|C)bAxb^1RH7mZmJ$ZYwoKKZwa=y?l=WkDrUtTkl3>ft0 zG8|$|7{h&<5+m26Rv5A!PLO%Da2Stx%VW_z4I$EkI_MKWg-PuhmJ`^dP7n(A4DN|@ z3AE`v^A_QjT*yUujDS-A8vJ~1-DSk9el5&IWmta>wHnrrn|yE@Qg2^cET$T0?$G3y z^UxNSO&x9GV5#MWM{rKsz#Wdov=7w2Q|OJgf#x)IUa=T1AO+(Tn~op|?#Blv=;st1 zh~dBK(++3$b=-xPG0>S1Cd-LJUJI_Fe$XvrEpZM`oSWFIjQPfZ-w+lwA>=j;0KA|p zfJhv%crQlJmP*iD4m-FZ!Xs3r$?cFsj4Qa++NE6bi&(ciHLFnHxvSS22 z9<@u9U7w9tmtCSAGcHkm+N5o8X$E6@CL6LtOmOHEF*WDnI34IRNX?Kl)$?oeGVjAh z#0tmb)YTRqo?(Dw#>U-E}!noRu?3 z(k*4Oy~iv9Y1DL4RYy{DVAQBn3d^&89n=VfHz&6qLyvcs|M#43TN&sgqm-jubXlC# zgOS8ut<@hB>QhI-W!BJU11a@*hKQ1RZ8mkBq3C5)AV2p-P6^tzo zwnJ$F(O#MAF?KC*A+H@DP_K`1ea~)UZZ?1hbtPh*Txk@#kBo%4{FcY5L{x0@QN*ap={Dfq#z2WJh+O*nv zi}8RV)YPUq7iB1aNq0ibU~>_WhfN=$&e`E~*^#6|!J5@r+#;0=$GV=Qewf83=ezbu zRxm~=fOqANZt%~qArjV(MBX4|3k#Xl0%;CksIG`5_{X(@8i{f7++ACb`D6YV>!VP< zeTC;jZ)vn?myz{UGboKkcCTARO;EfbuS&^H&535yE52Jwie~dkERfSoSL#2oR}6>a zj>qd0;xmn021rSAC*U6OZz8N)h{A+kz9;VAfZ`P=l37jEUNeOckqQ@rMkzEoyl8D) zBh}D+k$#H!Dale7D z!G)n6QWhL$U2#J62w9wAdQHdSNp#r>0nmnE25Gr~VsIeUiPGn@_@LF|8(mwwPPY2pnG!dgX3y06y#XCg1*UBq~qH-~mc`-W%o97KGXGw$4M?b9E@A z;~YP#!);=&oZVPO+iHUXOpPmmPIf~V6tWw-8@3d&-Ei4*5Dq&Yoy0#iyOP5nCQt$( zD!c|}SGpb*bGMIgA8$$GbES&Oyc}=fhPYRN2c`K7TU!@q_-9o+{j-edV`S~x=j
      fyRL4=?k^J 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

      sG<*A!@K6^7+`aw{KL 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

      RrxhC#b~kZRbxi zKwRO6u_9@X{Wa(2RiV9M2P-}4fWm3(D3+8W%j zbScUfUFx&ccCIl``H{^o^{ON4p={~OY8{c0Gp9lQQ%pasR+(cdLqoCY4ZMz3b(6R? z4%(!7?h>HMm9Fa6l}pOlzlj1hyX|R>6BB%Qll-b;u=n=CDUUAVF*#oG&)$JuasJB>0mXe#`K*+2dhDx%2(#yx!`81 z_uzR_Jo<*MX;Kza3m{_aizv&bHc%`I9q&fe@44!G`&J_K4#Fuyj`VZ&=NzIrDD1Kb zvM*9BWw0>Sh$e72g5N}=Y>G~;Ed&lIj%l&&Z z<>HxiA=t3C>@MmBG;FMcq;bkhR;JpTLR6?B^`aZxsgqm#EUkc`3FQuVW(Arip46Ys zoG0zAbS%|>FkbpjRmDTg9mk-juB^7dH}0W0X5KILTUa%kxjEjfsH|>$sj7C`v1~{7 zw71>I{VDQSYwMiSYE+%uE2^Mdv;|&WU})4HiuEm9#@rPye}TEs8lb?v{hF^)=X`&$ zzgSL{!b)jomEQH5vyNIc>fK7$GJE||&%ugHZJ@FqdMaI1g8dwNwQkdGY?!^^eZI!Q z4m+q-kN2%CR5rZlT<*EV*9;UvO~#Qb-zVLzfxpn+ls7syo2`EAm1quFqW-XDpZ~_d z;CS6pDt(#nxf#XJ-?P3}cWYl|<-4Fi zgjnlNf}2;BtUJ{FtY?D#l=A&(2KASP`0;n_P#a|hN@$f^{{G{aEG>V`tA55G5Z*m| zZ2kOIGo+c)cO50(Y-;By>s`E;n!jVyV3{`+o9VolDp$E2dRzBj1<{coCr`*Xe%t-G zqBp=$>!7F8(^>Kpsl@!VcW8N)`ey{zQQ7;u1zk_Gu9^u{;=87eS2^CPT4LZjPS-s9 zV`qi)*Wq~CYo>u;Nds>!x0j&5LB&#cb2;w%fOS9QFwD3E4HYkj`Cbd(Q zf3aYpVA;z4NJ*|!eeeQHa$!`@FJm{ZU(xtYQLWZg;K@MB5{nzrMH){R5Qa=O+rG7R z3rC24Mw>AqD8tKtLcV`B)5*N;n+>_sH0C5gp`*|veg_h%m&fy~q@`+rd@G`{FFkIY zQ3TVrpt5PHy{$7!blAeIz>pCDfQJM43kL5rbN`;@fJ^k@8@BJP08_nA%c?f$Fa{!0q z>8)~tyazN{N{M=2n}gOSOLW44-z}*1r9_>|z@*Q}go(&C3vccRm>Pf*p+ZWBqSfS}Zx_e#+>^nhhji4x>JnO~QyQ z%$5TB4bdhEx|XBsI*X!`{wDQHQhP;ulx+2TB0b7q1@$WV2vj{e=Ir^HZibTPAS>;LFPyD5NTTvdmU%491Dz)A?s1 zxUvT_1*{-1%PbKyBBGFjXkuYL5(`(WVKpod%ftAYDt}^;%Iz$@ zNDESvw7@f20m4%sn5MEXWm{Dh0*ccTwy&08$F$b#mIVy0GEH0Hr%_%J8@Rz7

      dI z9*kA3=6#OZEro&w$Z6!t!vu0}VIJ3y{dGcLl~Mng|BpgjEr)z87<)+V73vMNwQGfg zypl*c;^|uhT}u*nLCV$M^G?;S0{IfTtXfVd#Y&gcv9V=3&)yAyy;Lu+b-a!3_?M1T z6I2SAP|P!~y0nOI?mgy`cB;pe#hzaif6rsTm0CpSQu#Ak*)MpfxSzJyx{ofgqf}$Q z{51TH+VW-cy><{2d-D$}>tE9!FnK?@6!HT|L$JQ(>T2yPtj|$e+O~*wRdV*8{Y%en zAd0REmuH5uQuRnLn*X@%bzTdCMn3Z#+AaEq9eUHjmV&^QIf1mmKg*G-(w5GSNwJiP z)oJTfI!3xC*ksRWM19v^%*!-V=(b0+7aQw3tItn=c_p1GaglwvkFeXRNQjP&(jarS z+#u{BrGw=$c?>@@-3e^e1jDd<2J+WMCZqw^tfKT9vub4fi|Dpz4no!D0CJ_2YH(BxhNX!@vt zrfDqOu&pLz--*Z#r`M#^sd6g#MIrk}!nkd-eb)Jn>GI9Gb0%F7Zrmps0yGKJ;n`+T zGVhoYDfacg`UtEaUCHQr^UfSA=-};f*V;S)xh3#&kMP+*DvGp`#fz-ApOL3UUlO;l zklmJ0pW^*X4)+iYD&l>2I$Q)g6SxgxwT-L|NALL)FIdk5Uo#Z=i87*$Q2rY~lT9jS zo5?prL#izW(OCPAerxQWJcu3rZWNVVAR4uP2OR)W`h~t|gAMZBxE5YU%4Yu*6O#($ zxe-)yA51`{I*v-pb)Hu#PLp@cC4W};vfrBhlz~dq#%o?FEtQY0a8%ZdzyLZO4tY|H zxK4fRJ-`_CCHVn#LuJB-xY1sWal8ue_RtK3Z2{nL~ru;M|O8&8-5xsG9!7jpV5WLQ*CafaSw+S zZJdg8+di+);5~*BN<%x2U^ro3Y2UZG=^-LX1no=H;!R`oyCkf{0mv&32dx53x3lMu z9V5yFS1(Y&aLDRbDiemqe|*@?=TN=}`FgGehWQJ5-@PDPzqZ%;Fze?<=Bpfyp? zG??C|i>0M>)!|aM6}J_yY5;>Si_b`+*>9W;Za+m9le9#H*UwhNp4G-ZV^OyixY0t%KsjNWD45-BMDq z^APQd-u*qx=FX}t%zGAO6z-Rb_A!B%qhvHfat~xWLQWoOhS~WC?CpH&0{3?A?Av*e zV1rmFisy>`yUjvu0h8F=>4bS2<13@p8Na!+FV(ualMVKz@@PflxaR^ducs0)GNb$|({t`8SA8pr>C$KlcVGDnsoym?-@*eOa)H|Qy;T1b#nu)ffBsYpjD=mdBZ;; zq`(BVh;vGukqaIkiJc*oe1V*Ndng_#DiE}Y620kJfqsKn3n&S1DG<&oh1cVPR=l!G zXijsdRsLA0x!qCAyLcPAvx9~!#;8uS@v*oyHfF&Y*nSWiFfq+&hgD2nw)#FF#PXZVK^<>%y1XGznWZuFOQwOKnl1Glt{1ygyWopgE(15a4y{mfF;ud^+0_H5IGgSZ_xQv*hA zo%E)9F^?OEz-ym{UqzxsCLSkP6klFfJrx_5b6GB`93$%zqyF`W?)ltyQ;vR!jj&%W zQX5DNd1V2r3(iL?AN~OCcaj*DD2{6zj^<}r*$1+7(&Lb3f$*}>7i>v4FusW8@A|dyf#Tu)`-8C(c_C%mbh|~RrZz;in%!mCNta3su5;m5{FUR< zgebD!`nn_F1n?NJ_4uptu+_8NNK*(>I4X~V8m7yiTci$g!2(mH6%j0QiB0~Jq;S*s z+yzM$jKhTWv{|Uz9iL6zZN%^mNJaE^L%zb(6NqBupJv~prDn{%dVeRfT>GD#wLi3f zOQcA|2*W>qlvh%E2ID6gYS(em*rY!txdstQQA;V%3Kf+#cDQmzNhRV*6d$K)V4zn?s=MAsAqV`V zNUfy{0ZwYsB?>mBDOA(xpf4d^hPum3c-`fZ8uuwtaG5RdwpGiAk`@ZEmy-7GQa_ha zD4_nxEEGU#ueP*1)~wc9)7YvwSc%%N&K(TKPw6x}N&|)bD@X zEbjC=l?-B4e5ZPW`BToovw79p-)Eup;VUQ2l0|JX|f)b}*{n zK|_cR;X1cLgRj)QjBgAR0%vM+tmU;an? zu58b{R6~}BN~FsAx1H>j`d3y`;LIg|Tsuf}a;G$v8S4Q`*?BLM8@xm7>Y8$!asdZv zPX>L90{I>3zW$E%j&!xNBVERC9Vs0tN|>eT{d#{#3LDW<5j)s3qK7GfrKYh0H7!X$ zv$M~JZ7IKZ;a3X3vEb%ClUC5*#{dPkOTT5XLDv%B_A)B>t(0?7n!oo{x}yFW94L>;QH-`B4e@q-rOphfsC?x4PYd_0Dfsv}etfVzMbB?WZ>1yiqy zjBK{u<n7) zftb20Up5{3;|YSa1U-?pE(JrFv-Amlf=-hj^|$fg3ylh2{Xc3k;}$QVoY1Aa@dOhY zwAVaSC`GN`o(-;nV6*9!(_$hhjYIV4A4FQ1e^E93xxV^}Tx}hLg?PuZkyKsdos-Aw4f^fX`S~_zEw^{4xa6Li; z-`KD6cjU^s2-dCOQ|MTADZ6Ex9tqDii?I#cY%+pyz|C& zyKVGs_l>@7H~Q`+7~3XMU?8>*T1^y7BUOo8Y=cER1~Lq3Lnh4x2Ucxno^#He%;Yi& z37LeD4EF#61ELO~CH7`?+irC2Hg(%=z*ZxzcD%I4ZoB6H{XNfl=A5|%0$$$F`~LlX zJab`kF37)3o*&eAZYtqqr^B>FCTiSC!tIi%M&OiD9_K%WpKM`4GWyf|3f9 zb!d-oz8Tu{J)7ZgPZlyN7r)?2E4aQPWlPxXV(We2{;;`1BP~j19%vO>g&5im)ZDRL ztKg4?FA3-mQ2kPGQasmzDnvkpwceeY8jfbhO}=7`@*L8??k+$v)HHt`KjPOE>N$9B1+~lVgK6?17 z$9B1_7BGwLat-F=J3HlHQ_zToce&_(fGVPaUTlkf3%WR?k27dlvxO(|$wJ3$L@N*f zmhP96XoA@`xvZN=OSZ|?9qk?!H!E&;$C!0&5R2haS{z!Xu{H^Xz^0AiQk=ZBNdh*i zO?Fg(;P|CTzv-wDw<=iycG4Cqv*5?j4vyD&my0Pmhe+ac2lT;=`eIPDzYX|YPp1o%cxNyIj3NB9J~?-VX>|; z^A@_siY5IDr2^?gP%wmQkxIqc9o3fbJkXhaMR=&?b`(hh;Hb#H$Z`n;Ycv?7K$1!9 zUGZEimIzV@tr4}a^O@96^kTqO&N>f9x0A4ijHR9!r1ufc=tEGP-YL?D=+Ws*0=@zG zZA~3f9;sPLGd#0oy3>n0kk0`>`|`}2J1e%r_Vk3ikC;@mWq8Zu+1Nt(rloyTc)mp@ zPr$pMX7Gfqo2_^-IAO&D&JcbZ+U;!QNQr%y%{())Vf$-Vl-&NE?IVV>cZ`e1`1TPP zc4CvpyQ0SmQ>B}A6N&te71DxBSW zO8k9tJ&C@=6Vu8PeLY+$s0&11$Z#$EJ;H0o-^belVm)!Rbq&n1o}PXbt8RZ{e7i^Zl|2 z>U1f5TDk0v!gx{e-3zR7Qj^f0X(eM!J#tzXVcnXTb;1Sn{|fnz3clH@c}PpRxBz?AX7w_qCZ2-CnOi5*&df#REJ5YsC^P&2{xC1?AR3aAhThY^nu4bNvG{F-u!1q5+V?L)Td)(F2|3S?S1lcy zd^}+i@bRYOP5OvF!kO%dI@K9XC*b2vRs!xEOW(gOVZm4h0Uzhicavez`K<&@pZIen z3HW$Zf5IeS<}gfnhXvx~e94G7u zINM=T+Dq@p&>P@0nL-9!+LodiWmAz8ro;@61)s~BNEglx=VEY|aV3VLyydBv!h`HV z+X+6dTB?k!m8Klg{ctRW(i{ujl3v)8CG&7QHcg_kX6vR;DY8f_?-s;>+rdfk;M;Y& zjQQY$QE^FeCz^e5VsL^e7&KfdAmk>@H6Lhj!g>Z4qrVuOFxB6_$@E9*oAecLDzh3y zo60tok<5hU9u^S(nN@1C*+r>x4Z(;vx`jGI8twGj2-}^mA(Q==6rkW4NdXErZ0m~d z9ukiuS@7#S z$jOqVoJ@5Do=%oa8aMJuiv4Y3O|Hu#*KvCGs8|9VZEVh2%GXR%_|ObUA!*f%0wkLt z3$U9&3WK?6Z39x68o6f=1@2UjT0I+g>~T7AL^XUPqT_J9wLNKDEga5sR>0#7FP{4I zdGmD#@huwXWCeo}(|316<_8WIEycOO$w+yIFd^sL{l0o%udT^q0`H~O*+V)BV@G|HVpK(k3*OD^}E%M%!IG_sp?4zc30p3vb?4v1_qaf#}P# z@-rg9@TG_L(B)+Gh247CU=fBj6Wd?8A2xzS!9Mzw#+Ugo_=<@&+y7d zt2|#vAxCCqw?nK4dGyJTsZI?>#Cj=(STEOpPUv9mSVb)tuD&MAdgbqT?{^EvE>}wZ zL+F3Pv*9Msm*QeWY-snWvEtZ9Y-DWrD1ph^w~resv4(xmZGB($S(*7srQkMBsO*n6 zRz--ZgwaI$Css+$N>fFI7UIZmWN(AK(r_-z0{Sj7lxeV5>BS}WmL8K{g`!(fnl3YD zr^}4sAA;i$JB0+a*1_>q+zh7h?BFjmgii1mgXa$x3eT)!W9~uBNhN@7h zxLHO<8FOJSAnw)N)Nrm4J;FK+UuYE$_?OszegAb~campRCf_Z};2vGM!F=jh7R(QL z+a`is9}4CRV6nCr4qe)HkyR6KN5Uk(m82;>kUxNSv!426G2LwzGlQvy3hZ=inLJgr#S#CYPH0cs74A ztP*w^f{p8u!TJWJIVct6Up6}%3Od4~>_v6Wm_-YjO*9Qc5_%r~Ar|@&DrZP2O|dB) zQGipN9%)s7WAG1)U}_&W9VNtODaez;KZ0XcqNE=fJTI#Y(xlK#MGja+BMa( zwm#c+(dIEzY_=Ds-(7oQdtr;IMVQyS3`SquFWL*Om!MCyN|Fn}3-Fm;d8a%5uKyK6 zkjYfZS#6e>cB(zcv5a&DJLw7;@snPcuedj6H5XFjCu?N$=6b9TZ0Gf!fD6Mw##2I? zi0cY9Dv)m~FWDS28-MLs)c+w)J2nMWgOuyqxmJ(22A>?yQ0dS0S>hvXBJ`->;4wxV zJSHLZ7ztQXLvWlc;%h~#&@d*z!e~Zn>i5YNtCr`(&qkr(4Kgu~hVl^IwBo zMsuUNGOmF8*6Fh$F~K(o!mFa^Me}eD4iros&NVo0KIuU$7X91fFVDo^R8YFe%03Wy z$dGW`E2Pf}X4S;*GNOL@uxymp1jI`*fKsVMOdBaM<9&Sj5IAgXSnKrf6i;Wg7-XLm zIZeJ3Y{Ykv8zx!l3`mk8`tY6lb)|;pnW&LKL>W__EebTz(gd0W(4H^C&t~N6XL~^N zV|>fW;F)`t22TbBY(xanw}i}ZBadN!iVcH=84p=2jb1m7K!rS!p|4%rTuz+3x!i<-$D8w; zIRVjYbH08IXIV6V6Z}$}78rKTq7rV{a2g0+vg3CDYVP&g=5OmCqLd0XM3G1~# zcQ6O!H7Tk_XuAkm=@s8X5UBrQ3cKD&Z}M{}p&Xlt9{@cJ0D8Pat_W)?7`^AeF^tI! zEhY;Rb}wDZ@l9gke?naXrps<{7!G2o{OWb|-o<&tIU`Wz{;zBsHxbB}X~9^rso!D6 zCc>xwuf={rz0+lkwm))uY=WmYm1;-^q@u|gG?$+7RKC5{z7AP$FiO~W*ahrc0W}C4oB#)BP&fNNkPuKkOp^K0)hu)u;X6^mi@)lZuVzEkJ z(Ozfs+wu(HlUwztSfsfrvW}>xb+UC*$??b3>(PK$uUTKO@1@M)=2>Vi9oECEUO}5o z!F$jc!hJ8=WL3-P=yWOJ(>MAQT|+I+K5KDy&&fJVzfUhRXuZn4^~r{x3##4BZ*BPL zA#V}jt7qNuQ#-*Met!4eH2kDKI>8kmMAOfzx))p-O+Rm4y!4K?kBDGXDO=1J%S+yH z%`ehX!*3BmfFz_8Z!>dD|4;S(bY$uKxjVD(=cjhwzzr1$ZYca1BedMg(V$y^VG(Yo zTD3G}g`~lR0Q%96H>^L|UvB*c{vCZkg}W9+W?05q=27(_7nrp&9UZK zTOo~Fdh@}jP67E74b>QJR_(ux`h3o(bnsWJ*6XLJY3Fa&A}_D`8d*iu{kN@8k{7!4 zr>mXokws3);>x@g>#1mcoo`t~Rdvle-xIY}bt`@A8XKHW&+N(7nD_arv#QRc-qgr0 z_N=WxRHei?96(2ynw2%$f?DMSpOvaT`3Lt4XvxshQSJ03Rw?Jd5}GwT>}d3NLKF9W z&oi6SGXdxvTJ2ote`a>*VD%sCtJzJ#NT&g$!F6_OIc>#mqdjN)HOW~)vx>Z{+w1?; zcPQ}ehNtzb-E}T!19{^WJ#er7d~s{Nv+k79cr)nhIOTjpJNdGHW9UZFc2nu#Z8!P7 zcMr4Gv)PS-ZA*$f)(4tcv*@512)4Jcp)BJK=P8?4HLzzzZ*L`9+WozbGEZY$S=)kb z;kH0Yo8Bh7yy$2#hbQ+{aG3=MiIxkQl{-8M zw>J>fK+!wTH0f$m|8#4OXj|W$)0{(r?m!-dV(s!k9-%EkL9&^oUnrS$R1&)$75|L> z=>X)u{WrSPJXFv;#f?nvoHlaOvS+#vq(!x6U*~VN`7h-s{hd%E({fA6=t3QBE&G-K zlmc~L;njobx|BL~{>-Kx60fonBD-#`l@dXEpjF`G7iO%bUNeAXazS88-w)y1hchZTBv9)HBQ@3fX0=&*awl4jxha; zo;8iNH7oc4gM1)D4s&#jTUizHnBb8$jSi3VTaL}J1&C;cE3Y%(8aiU}P}%ugcpprw z2^F@dYp?2`(A)?4*U3c+f9An)LpwE|pW`eZe8I{4 zz;T@mHXW=tS6_a*LoN6Ro)iZ!xYR5|@Q~4&jK~Ylw3nC^ zjfMNaw1?%d|F~}=v#A%j`YUV?%|HGxXM_92oqzVE^`i`q8}M^t`C79Q50n*@&OMOF ztMp=;!@pav2wo6+Qtv6zBf6ymxrKMY4mX9Hlqrnp7$Jq0O?A6iS?|@N)U#Ws1s0pY zj~@*kN|l#qU`7X#VIp=-G~5*228aZN7;9k1c7e=Sq)b%*T#sLC})p=7=Ub$YqgBCmH0n*PGz52n}N)TF@fMP z;V8v_-ac%QoIz6Uk8^_&gaC4wYrp1m)m5yB7r&uZ5$7JnKeBYEJiL1z_0pB3iq5%d zq?+1GS288bNw>Ps%#^k^P0N(POePSmvny03;qA;pV2cPGt{wsw@3atjXAUdMXm{Dd z&1*Om#|f~HqTS`@vA~pMwOQI-ZjGm`=(W`Da*{fZBwa7&FnO}yQVpzn**^BFl)^sc zlj=9ElcSrvq`m}ZB4DeBpOLgbSWXtXCiI%~VmT1c+v*0jXMgz9GhPsB(?b5Ns ztxaeX=+zTRwikE=k)Wy_UV$`868~7srDsLpfyoWI5Op>JIQrcO!U9Q%;e*-7*n_u_ zEFgPZ$r0r`R{I!IBDV35hEoQ1JgJFV1RUd)1A8-HZv~-^^>Aqtml|(y!0KQ6SV^thl66vzF zg_wyUTU!#6^eyMz8cjWKR(&KfE$I(jNF*-P1v>xceVF3aclZ>U2q<{Xq(IRXgij56 zara?NF?j{FyZ#g^XP;EhFL)k?lqv?7o4t|IwTQkm-(8d?Gvb)tzT6A zd#9@kirKAm<|~!TSDgOU%H{qy=007Q@YU-WcSL~6A?TJrYu+gjy8?Z>LcW$ys&~$r z?|ZSf$~PWwYH!|9*#5JU_ObSVGpT)pw`W{{HnKHmXtF2XH^!#=N0QV&^g3@QGLbIN zZ#i^|yWmJSv%}lI3IaV(pdLEd70NMMkQ@YP&G6^wVr%iaDZ`f+;19u91?AK6$RtFW zfmUdfcw+JC=l2Cig5SM6I6~(DcZL`w*z_~b9IhgN1H}(C9r1%7FW0<;keXM3!5sF_ z!;mVA5}8e;d$=`k(Q0QXtq-~c1&F&M;WK=X)pd&k`(z_&e&Z}Y$OW1hIw+V_avW-s zTlspW#l%H9;&P&p9eoc@A-G55Sp5IY>H8A~J1Y|R;s1SBbBgpR_N4z=67z zFkQ}+d;eT9RYXG?%T=ck3oJ8}<#Y^n?BG^P$B@Zw-k0t^H^IKIYIMR7@YX9fDrzUm z5)E9>srU$*S+avCfA93p3KkkLi_6nzSVGhLMrh_in;X@^L2XOpYV`{gkW;rb`qtG~ zHDGAOT1?#HjKVjMUEjI{rPX?AI@w#O-S0D~Jygbe+nx*sNHNQN5S{w=GN-Ce%BB1v=k$*z%;L}-CY5FLM&w$bTG zPWyP|dnC)rkk)cp<-=v^W?jsoj!B|yA1_^8x3wvi;s^)C57deF;r3%R9&b+jI1?^D zE{;HCe?9ai{seR#8>@unmlpg`|HQjngzRRjL&$!2h_eVViF^U!Jo91<^=4V(1yI%x z-|l_{lr0y4W%iy3K6j3EeS9LFuGbR&4a7{lm!?^aitUjmd~Z|=OuSxc)xvAxJ4mYG z8EvN@`_4VImy$O3c&*L}Fcl=ecv48SV^@~(Kq5?b1+mz3(pJS-;e;`7@KiP2%QX6j zR9G~EOIl$oe6xIaopywRe}0;-MKoGf_iGH+X>^`^1-!_Q&P21=5B=Yx%p!{ZE#O5C z{@xWXwg%=ZK*>+eOQ?0$xf)k%SBo*LN-ib={Y3xj>=&z6uJ)e?LgFKZC~HE1lCO^X z4ibes)e&_>p^(B4XH!cW^yd29iiXztz9N5asrC(F^O{ab__ZET8 zL19L&428Q%xN!}d>(F}!@&r06xzrA+<#lUf3!;HYyfTB#Pz-*$xUPlUI9!qzmd+M9 zPJI=5Z^c;PM?3N`?hnMPY5P!L9@1^w7iI_(}<%(>T;5PiK`79ab&C!X8ZVp3au zt@D*f-{!I^nCst-Ae!POVdYi4Y$Bi$AvB+75mspp=pd{{yXHOK6f6&x`-jwUDfgP6 z^1Mi6SpVQwnhAi+)uAt~^xqS} zU`=6$aOKLO<@gSI8dj41%qIO&^)1qzMRWOEifMN3rYBqS{A2zx^1eF*KW9@~LIBe> zSQocY-wC=;ZQK+3va&T~S1U~D%ZD-SVi=a9B8E_{=15>JHK%u+{5t-yl0dD0h2Jgz zj9Yy|#}b|;3}C^3;HC{Lll+VnCLj1um9O6i#^vvqr5B>3wAAp8p3+ZM-HQdA1-_3# zTyh*MJWH1%LN>rTmpV_WP$vpX`4Y~$@?U3B_VJG>NUJzlj&|FhYMiyz2)2j~LyO|M zY%bWTIs8TV7POmFTnhyzPioW_1)>C;DFveN0rYXEWK8r;VM=WW`5@gaObKlGEV&XF zflmE0>%3fce^F*CGVqeL1%uvNpg$5tCbh^|2XI7iF5n6pz0bCiH8C#r&8-`(Tqc;v z)FVtT(>vVzI9MCZ14Csgl#DCM*naYmJuo5DHZU?OZmH_$ZxY?eUNEK+g<%(3Rp49vO3(O|jTcaCy_Z4n@t7PNk#y3pj>+{ka zkAd-laZTSh{AiRKx3H;grbSI|66hrD_H-?v@8nsM+pbHuOzJtw+)cs9gumSIadCUm zw^`bX(iEIYkMwL7VV3?^u=Y3~vl1h_<60{M3Z9Y$$=nM_?FRh ziotlKq+P;?Cz&)pDrh)K=3!1b{f6#vL2XAV!c{~J0PTDj``qQ$hKAC`Xs`kj%(tT25-6F0S=Fj__nnzsi9%;U!P z2{sAGY!^ASIn8f;0SN(X-1qA9q(oLLumcsogR9^W`(lId87lQw3jL!h2u}=#dWl^E zCgEGm$~#KQx++bq@^7kbdlo`Jpi96!Q$3(AtXjEkB+#Ug-#d(K;s;i+1<1y}p=R%@ zKmtxH*Jx2u=*cV9jm6n$eHPKWauJP?+^TQf(r4fJ`;v``jlZ?fx=z!<2NDAbZEWAr zqdH2F;XT_nmNerHT3@$ql8Bv{u>l|Ld-g1e9i1*+PHU&!BSTi4B+T6z6EYQYwG6Nz zgIt5Z*i}jPvkazm{6@9lL4>j#VV98+i(l)@)Yo^r`)k{xDz3$jJs zB-_andjs2`9mWQIlWnxI^T}DG*id)oX5YLvnc&GS8Qjz-%$u?@55&C8n=7^wdtel? z?;i=BClN?Uxy^1}ZY3>JBxW4c3%&_sV`GYWpD~$*?a4GYvPfpWl`^`aB2Bb+f3jC4 zSA1AJ+B7pqfuW|zcz?&?8qbb0(^2qXnN_nQ96`5As5Da1q2855Ln5X{fp>hvUHUlM zI^x207Z;L>RSFV1++1LmtzWb$`2IXd? zbs!(V(HE?G)7kh(4{7i1`377aujY@9*n5--xG;YvYua zj^k-sAHyz5^_f3bE+|l#eDE#&fI?z@O={8=Kq8fXL$4%5!Rcq#=sumQ4uaA76NXn@ zFrxxWJfAM*+;@V<_mV>xYH0LS>I?>MtFhlhl-o*+&G}Q~+?5??G=IwUYNrO!Q(Sk3 zn_UoOfTs;PYU)Uta-_u4UcK8IOw)47bN+61@q*IkPXD!Fc3J1UA&v#PncnT&S5@_j z@-$iE#s~*xSX-xGt$w5g_VZtvc&+O#2?5$jWGph#GSUwFts_&^b)<>9&Eu(jBR>AV0wRr7FR|& z;9RJg7)3sC*b&N2SI#JPO74SQM(|5wB`&hmH)>Wuwctdk(_gt+!3mbA1 z{6W4;3QBK6V`S%dLf_}Y!sA=!QQhi@wSBVQwz%<>=QX#-Q-f9(e{lORQi>ZXu6q)r ze+84up8VLGRwcu|+rAT&sbpN6*aymOR~i$6QE@xu-(nbZ7*#*ZpReW#U|uzkCcCJ) zYA$!O<+>Z_9#nfKz*e?5msPzIx?rw<(TWCtudmo2_J>QwBa+)sLxPMpC4h}+_+h&=hN8->#;7Vf5{F zdRWWqs(TUocGhuQz*((?*z@cVGK+n$`A#6HO)1B7+j3l@&!y7SZrAOhLIF&d?{M+_ zb{pM>0Os9LwxNuc1vi}6Zg1JkI|8>txO<#^xfw&A{Rd?acQp<=zIch7{c}}g+q#ui zYdvfe#p?f9*Y=89(tgzUec!{g***Qywr{{`KBhzi2U?efe$m_)7z_NH#~nB*8{@B6 zRw@^|lam!higVXxqMl7@@4mgdX4NX~pzk&9YoQD4sv6feRMjel>)mT#4ZeQT<5|1L zIeT|i&p-9OHutAqw=t*g+oOo~#9(RIfi(*Zd*0Ec=$zn8P_#)7aeG^}~>I$lg2Ga8mX> z+q<@;*W25m-dy9VyS@M+&)#1RPHaAkt+_yw=o)u5dZ{X_26*Ia%jA|fxxaFAInuPA zhrGS1;?`Ri-E_y|iX}^%OSvw;b!h7l&-8(cr9Cc+2sW%@`2JY%%Nx$b8) zeLo>nQU@>`9GB1ohqsm-e%Wdi93HXm2bq_LM|?%7r*>!#UTx>tH@@!|QdB#U zzz0b!Gxzvw1%e`lHZ%0`?n>9Ftt=IoC{t>sbs&!Z51GYl$2TD1tL~JTn&9i$b;!48 zg?jnP+Q73_r|N#xGZ-8shK%wS<+Anl%8KYeDL-#?^BU(bdS27!tXQx8)e4Bg@Kcga zE@?gCe}d*GCreQ1lNW^jdTmW@W1s`IyN#;@&-1zvNZ(i7E=*k*5q zc+Dg4=;i)#|9JCc^BYJNWhG8Ar=fkZG7j0rL2(4e3QF%=I7>8{-*6u4{U4yd7ZjX& zFxFQtfXM8Qj^`sk;2zZtH}o|t5%Ny)Ss7CSgzEyGfp8#9chK?@1>{V@>{fH(;0rxL zvRQ${JroT^J8$0o#n4M7p^4B7{Xds7V<@T(DP^(3*k!TYSgr~`1a)|fp}K_+gIHSe z<>L{3nCt*8pH*o8Fvp6v+#Glv(*oUbEEji9MVjhD$4ub`|axN%Wl0ps+4nS@xu2@&fh z0dsyM1e|K=-3F?S{y5SP(x8zu+wnJxn)HY8V9 z^7-h}gLtCs&xhN#G27sXKn!vr;XQCj4%3niKI!q)F4}ot9@49o{KNN3zn$>YA3><8Wh1@@RHVMHkDDKA3UjztJgS@`32YNc)b!KUu^`C6Zm%_q^^Yv?Yiok zdx7T*dUpa;3LZ_zMTAU-e;3WlwHF>Fp%)Yn+~i%7SO<-<3*a9o}{dvyaGv z?X2JatIc2a$NaHUnVg~}!0QsegJ@f?9lJfzK;;tzszbfAxGmZiRo7ijFKtoMA#Ymk zT=`9&t%KQmiB)Zh&RoJorQXh8=&e_2sHr2rH3z?KZS9V{9eEJ;fYK#TWWZQztsK|A~&1~4~1A?ZeS`QzxudC8ip z^)Cc%!7H5A8;|&x(fs%g&yWrT>h_Rv>U&m9OFEVZZ30UBN&h>j;ce}8!O*R1^z=Mc zTdSOO_WskO%c^@_$1ah!OA0>44oE02AERbYX? zm}JDMHAL9#Q|XG=#<sST1&sHD5-8B9w=8U)yhD* z5*dgO#Ki*!Dg_)EBVs2?#Bokie*+uUE<8QiqQ)J6lA<|w%>pjB- zlSZ+7jJ*`<6oLt#AcAd$4Kh8!c1=oxWypQErjhIUqz)3OWicLJfJ!$(KoPUq z&7|QbpwdCVB^8WZ`|FJPQw?Y1{xCEFGo6MPK_qzqEdb4-%n+|xCxxy!8%p6yy+JKt zBNZWZGUtyZX$6lo15v~FtaJBTw1f6X&q3HItE7&SK{DNsnSma>`{}~X7tN4lKr!bR zXt}JA70O_jcoj?$rX>u{Kb%T223|{n6Z#Yv zIJCNX3S6A5k`xKPx_Bj(g2lRXOkQvrffLQ7nD3{gNga<^?Lkg4P)y}B%9aCB?rb$E z#-MM5Qey9#Vjh_Z#psz7<8Cnbmf1E}B3uS8OS&c=0GQvtEd%e-x;SkeVKwerz_rRa zrdW^^R?3-9HlxrGrOg`Dyo8L=~vH+QN!XYqiejQTpct|&yV0YKOPNxGo zb|#x=b1;K8Y?q`X3gewtE6r}L zrs}4}v#q)*Jo#wng6k3I;91tW@FV9yqq{XrmhX&MM=Anf`t99T6yQi;Wc*DpXa|}G z?$6{JhfU0aqFS-7LYPZZ!kSVR4B*P7T`N3)+GPbWP_g_s?9glWqklf_$e zCFfAbTXS14}URyLal`fP{D2ip-gdJ34G(2Hv^6IG(t9Tp-C>xrv8k$hZV&o z*+>$wgz^x2p-{jFXWUJbz|s01Sa+q_GLr`^_8r)Q4ywsZl`O4!7OKf>y_i$Yn1yP% zUiBVQP1{VUCMKwclj~1-Z)@p2VY$j=zgIj%^Ed&ExBZZdT4X&;lFC93+GZd<{k4H% zT*qCpa~T)4k4DcxFnKd480gR7m|1E-9`2?~OAV_1-)C%v4ZeP0()4N`m^?5kon=U$ zIqzD*!jiNyT+aC9x+J(_0fpYrGK)Hm+$#X2gYMotweHK+y zW-=0QqZOkZ1$RMZCC@e7i;{Eetq~rEuU&2Q@WjiAlBidPC}m^_kQaCa?nq?)qeBm} z{FMtEQC|F}bEOhOO`fNJwa52#a9Ir+nY><8_alFQ+oQqHPy$+M0&!IT3!Ycl6VB?B zD=lXr z>~`Qif=TiU26`BhJvcFFw{kS@7^>`!V(NTY0U-TuG}P1`H69nA@y$rcYk6EReG>mJ zm1p%81k(DHg(-si{%b|&4`L^cpmJTfb z4bqEn0lWw(7E7`o3iz@wiiJ_;L!1a?DV|8jqJ9pvJA6OBkZqPsYd$W;0k3v^8aFuTcx%4(+*s>a;6JcZ>{M$m z!m!v<;Fb4s5l$yGYt0qEH;~MZ22O@fMrcOuoXnl2hwCsN3|F@^dxyag=(#$k(yu&_ zH;^Zugq%oP`9NMOo@wRg9y8mz1CTo+izu(CJ((s=0ca#3^{@t%Hqdj!v7oka#~KbT*?c zt{_)xy)DU&$mYzVo;m=qi?fJ(5GBZfo>aLI@0EXK#UjBCf`6kR2TF%`Y8;_tdMjR+ zS{86_==$tz_f4KoxlX22y5y51f2tbv8!{Yb;^8$%sKO+&usu9K8{&6|yTcC36z3Vx zUW^_d4jU=1B7dBXYF-QaxI%!mZFsXg(j5`#tX05?Th<*hc7gL2;`HGK;o%+S8ibtU z*4)SjiHG9IQwN%6y9%?>8Pl!;Qov3UGE5SZrpp`rMQ8VT_qae)*o;8a?s4NjB)7Mq zsa4)25$cZ!+4XfTv@!yg!tL{{+}`8`l6urce^Wa3sIQ}yOOi|Dy}?BN32N&iZcsAl z0T*c5!j=c}du`UG)XIq^n+QEUOD1+7%{dYgd_e&>-chy#B9$*W7p~aYGS0d9k}_MU zFqMxH<%4r2@0|LP3-(WJ7#+zuh&yK^7}T5JS||ky)9Lff?>tqUsIh_k$Mf|<;>9AS zqZcAI2VFS?z2dFN*rB6YmeA-+j@z(Ovwx?}KcC;qhlH~(i%HJSeM{aBvGr5gY0yAI z>^PhW#&9|!ET?tfIYPZIgl(};%%SFG2Be5Y&@)v9xe694nJ5YZfSm%7AQPKH>$5OX z^%ZwRWIh;+!&ICYhKye;`kiovB&Xjk7M_Fx@}@@ge5kZK3AYb3!XhBN6Pa+C>NKJ~nNuqe}z{hyU02`&0 zb(VLQw{k?n`3%2(kIk|UdHpHEm5`DXfLJLTje5wq-+Xz$xKBNV`xSQ}?>B_=iz{HA zZK2uO*kYf(uS6()q|1~s@0JR4iMLd2sSu|WOALJ=H)V+nGjQR}g*}x$m6Bg`NyQ}q zo*IG>qL3sN{h1;1@jkhRorRr+scYCUdxPX$bwQLw{qk0xKPr{L$e*Yv~bmv)VDrHXecyf{2Gr%5DuG*5vmB?az^Hm z4Kur&x|^(&M4#v~*)S6fdCsb;p88Bw>Z`6)Ze3JRp^dN>X}& zqCilAqA=~sNR3NnN}Yv05A=-mjFlpHk{L4h1PJO92x>vmSByYM_j3!0 z$hevat#k7yu~-QKt+vg%*2Mz5EVt5f&v1`%=Yn`}{NutNZ;v;Hmc7P}C285bu^unx zv>P-bPeG4+K6p6rN~*3NFLzt~gmDMiPSCza&hSvUm3rN5?|5ae-a z7%f4pEF7Qc7bfCK23}GiW$ZKs&DVlhzf0loOVNrw84AN<{@yBd#d@%hWJ+8$M!7M@ z#-u69K#Z;#D#@X;&~@iTgJ?L~!0wSMGJPRql0e4O4%7r~oMsg#$+N6?D z5;)ql$%uieT7m%hpIA7bdjO0Ob|lYqRY&q7d14a;O{%fZVJi-GJ_fgL4$CJnGGNBF zoP{NnFiq7(IF_|cnCEMm2u!4&58qJcJZX=BfvAFXlUgnX1&pMhu}~rZhHfaAm9es7aYt5%`Mxsxu}J+! znE&IV=I+5MW+R|H3jv38u7PnAgkh*kK`Afrq>DB2cPRA?Z<$HC9nCN8iy_>Rt3ae8 zw7Vor`?YVn8(N3VM`PD#bggUuzVPnWtfWOJX^urlziaAdO3Q>V`EJDeDkQo>L*nRa z>(1@|7-)!(Uv=<3G_Xr^^x3pRvvRJ_W{rY~bQVJ@i#ixcVf=?aFuaBk!~xnyo~zJV zg`(~ASsYcV4e^j3&;B9_AM}$ZoTY^fTpd=$Xf%#5*qPb)$+Ai+@#R#HQqhLBKq)XL z5EYOsFb2QUPesAD2VBD_ufe+;7V2KzEB$)x#}8;;zGg6F30SN(S^L9mowm-RGx7@j z%uc5u=(KmvU)6qdC%2YZu0h}N&a%$WcTA$j3p|4i-Hu7k#;SmHEf3vAZ%%KHxG%ZA zfnN=j9vEAwH|b4$sUmE&KWxP-y5ZIe+!%j+diZ@QlGtjT@Wm-JQM|M4SfLfM*+^il z^XiU-X))8X(Tzznh{al_%xlr|h{aRK$onK{m^@eMinZH!2n0>7ol;TF7(i|zW&az} z=bSNvTvYPImcS#Y2uz^5;6N$5wbQCjaHZl#D_XL-2C*CAVr(tjV?4Xsq-B1B+U7v)lg+koVqw!~2F!!t4+48x}Ys{i;^010GP_#HZf!-f}BG zfl>bZz`ZvtB7{r#uW5>P>pRXiyj>j(Z zx}C00m-V_Fk6jDr^Bgrp+s8Vlk*QX4V_kKt-3$WKd$FDfq1d4!VU3~ga)1h+(`p|m z1fw-hh+kVyNLbkmz9Vm+*^Y9(!eo0#^9fA8LGStF<2>9#jvdWEGA1^gS`G{~;Zr%? zfmDdKa$>CJ75WY3Jjqxee6;D&`};;|LHQyNv8h3Tcn;vpRDWDNA8ms^1RV96_|oY( zGWL1Hi6sb`oLfn^R;q{H5d~L)y*8#F$2N(3gnP< zhJ}!9)u6LxGOo3XE_AyVEz8rG&VMmu6vC(p(k0ZQX0^xlIaDeW?aYBeb3ht#Xu2a!TXt0(p>)(vn&QC=J&)^bZ&%CeSlknVWnf7VBI=Ybu|q zV~RkW0auI2SfnusCuTO!;Z9^C5D=vFP}?lxHkGV13QLm|o284+4KU0uSwyo?Jm#IT zuq0dvNQx-Q6^Tf~Et5Cd`gyCO#b&=(RCa}Fda-J02FRu-Xgz@aw3=Yrm&gP|godI( z^e%h19ZEyjR*6nJx~5a>2o0~Ax}ldFJYjC|goTjgM~lIueQMeUDHQU77l=;hpav=U zWH}WZCl|c1oRA}rQ)cwzd5bK+O+3Y1a23rK9oytUK#LyJO~4Y-F=20}j-txelQVmp z67_GimApmgk!s$c6OCnQC}ZcC|7My*kw-};c}gDBvvv34UEg?vuZLEnt-P<}p>O&2 zHms;=Y^Z8jKc~LIxw6J{*cJ@a4wRnK-eecat|z|UAI(M6ujkj-tN)vq8FirT*OW4~ zip^>MM{*J?L$B$dT(LgzTWWpLc@Pb$)tg_cS?8>t6a13;j=FgEn@*=cw83jYJ@xEr zD^e@lFwpz9#Y^tkP_dzcP5Fnkw|Ww~LwESy{%@>s*1ElOJ9Gi8kQJ8Rp@&l-^pzz` z7nd(t^o2S4Q*%Vm7n(g=;a%O+Rk^J@n$@Yi=Q>ic+&t9N;14DDV3k)H)F zU0c`pGNt2GHFg*I=JmhEo(P?wk$LQCrMMPzH8CGdk3@c@mlID?;y1fR|FS=!of&%@ zWa|D+&A^eyT8sf$6+KwDvi~6aapy(7H?$P#=dblNU#i~D8=`oXd)q5JM+C5n&XJ*6 zolOLaP0h#a`riEBOZMmVt}5wu^{!|>qWgHy$$gFh7U1y2;gg#u4v(q{me&k8Jc|Bd zQrkXTvtne&cpoo_OetoNn;}js^dcDZziipElD8+x6^^mPmBRT%KQlZ$CCNKM2CeM% zZd@^bz$((9CXUeI?VnICQh=ehNYlB1105TKPZ4)>c7H7&rF5q{Y6sYpbag_!k4GRR4=*OIp*V)k{juf$uXlQz~>XPg&Oi6t$2@5 z7L+HoX!kd2?nUV(L<^~Ao5EULi~Bauq~%(h`fK(46>9$OJFL3QN!e>{-vqjIL#c6* zQsYuw5MZy)q}iHw!rE+Y({^-pUfW1BwqB@d^wxNs{#hbV*T1f9!hjQe;>9IOS#Y$V z^xMH_+REF?NgYxDldDTDJM{nUt4B{Z&m66AE_<@JrrD+4*z6)u!gNGWQFk4Ct%hg* zHkV6K@|)3q?CatqPB+}VP~Xygn};hg!K?U7n2m{7y#;#IwpS1Lxm$g1|LTU;14Y`H z;C{`cssrzy`n2eZ=#K?*N{gGnzGaoa++SYW#w`-k{aJ-(_Z__PSK5u=`#ujK+Wq6| zXKKWx#GXrg&=*S`l>lKe>N{AZKBN9i@ht6skgUcc=c?~e+p?FdJSS;jh_fLy9vb(L z1ddlBAW`4w-o0$=57wcL+s1srrJv<5KqGp6t)aVU<&Id;05*Yld#>n;2Fv-}Mt!q; zvzt0AJv7hgurx-mk95}T%ORaF3CnHbEfy@SFKdWCw$@|m=r%+h-J*8-20tioiSAgn zmgbjqPjyfEC;Trp&NUW-O-{V#i~8hkhWv$MfH_XqyjFRb@%82FYN z6Ydv%NG;Td3Q8~kB4z4OvsES6AJ_gJJsL+hJbg8P8D*8?RhghdSptUt3ra(;wMXfb zKMrrJED#bwlSIR-)a-k$2d(f0f3q5Se6(v--3zWHXUlAX&wOC#Y^}{Q;`K}FmsbH1 zPYJ!>!zZ`+2hhm=H8irH@K2QfaP7+4nrf$3gl2>_9^|3VW;gSBnIM2<()lUR$y#sK zde86Ob#u@}3s`%v6ASZWq2ek%E7t#)vq4*jA>&r~u2>=Zj#fzh%3ObYZB6NQqQ{|n ziM>D?E%WLd3npvOTHd#kRRV6mNf2R>p})Iml|@JR2SsC6^O3(o4Lk{1;IpQOJ=I9>n{&7nf5M01t!fcFQlbmDa8?5-v)itXc^-&3m0|j9R zDP7uk8JP&pIsS3Yj@J)Ar#`>=<=*0|KD|#TU911L*VkfZJy5)Fj7o+i^o`;3XkZi% zKGa?TSbPnCslY&Ie0;^(cBJih!BK+dXmivP0_Rlp(7k~X@nvw7RmgV;4o->p^XJk0 zEKJaH&{1%x-eq;w!SRE&2Ua7vHfJR!@$w;Hsts_(eEvdj3FfZbae?KFxh0kl_*Ya{ zJpNSYC39$?n1JihS#iS+#%N#ml&Y0D*QmOBvZ|K%AKv)1`s#)#ff%D%9w-mo$c4&= zFu}R?8Qfbg)Mpu)O;c~LJd=7$sFL7dtQT zKw+SemMc&QgSU2hAddtf^?MT_Xbb?)BZA_L@n zi6nQAsGU6>4qmxACBoh8y5hFD$VWDWa=a}Lm65N5I^GskjsYtCAr7uD*79+NIRZG?Tb}3RGJe9@Zw51P7a9LzB=k zT5oMk!1QFhkM9e93HLX0TVmn3q*`?hBQ~~vv$hHjCm>y(0JZD@KQrYs6X48y9o%e~ zKs(6Mo^Vg=*G1nqsZZhc>ArdVaSa;&jt*p)-_6&> z4bxE>1C8K$0dEOr!ZI2kSsXUwW&_0cvUiK<1sI4EE^s!};H)JTP1YE)yY6cl7Pm?C z1X_w~A6>b+s^Olycx(jhNXsE@KyV{^uonDJkVJ(T+wGw1FpdnYu;r0dTtEnTFX4sw z_m-xX`!7rV0siq{Qv1Ga*G_mt@)`OYkL#699IVvZf{C&LU_pdwQNgz=pWKK z)zNd~RP}E7ElgH5{KJ_xhq{cnht5;;0y)S@uDxG_90D~?N$B3rLy;WO(cq=bO8r7# z5Nrgj#Hs{*{nP5(1scy)6O=8F#B%7jyk;qllUP_1ihjhEr1K4*U+f+6Rq{|oREeTk zWSsqKxu)~m<$g{0V5Zd$9vTstB5nh0#$~dZB)Vtvnv6bbDZHkv=Q=#+7~!mlMA7jm zt7}BIAQ(Q0MikaRe0(N#_3n-#;x^Y8q;@#sQr-w78=+(LHq4UDS?d3-AZ`DDClk0J z<|uE|LfRixZ_}c52Fng%!V(%xCsze4WDqaNc-UZ86jmlc#BTfL+!C1-u2Yd0fR?+^Gnf8?7@_$d6DgTd79-WkO z2H2kLu)&4@wBp|#t6f~zoM$|op#lti!a{AP0&v9#t^gbwPNmEc?;#3_54T62!ZlE# z9b-%J9jTw_=@ygZ%WS)%rJQh4Hj@3T%)nLk571QUNeqSkY`Tyq12eRyfzd0(($W!%Mca^AC2FU^8*1!mjy1=K$3q&; zwVEEl{agX>VOL=?S2Fa7mbkb@$?UZcRbk|*<>|ATD=(*t{m7&#_6HwbTsIUG^aFVm zEzLAkA_-IMM-u5`e`nYrKEa5FceWjuEiUKp6fi1oWwiZU=fbUPQ&rjzOU8PHM;Rmm_2xNg$-`G zA!Uf%a~7!dRnjLKs)T>1_lHn+^$)_q>$|gYPSOj8b9h(RtXz#(G_HqF(09U3PQk_V zn#;+2!B|M{wpAzTRfh&ZuXJKHuep4`WB;8QD$9;8tIF~aR0&#rB5o6;8p6z3Ii1g+ zwdvC}N~TYDct)nr;5~$ornY-LKNU-@mQSim@@T~5Y)PY?8z9{N*~9Ih(~kAbD6+I6 zq}w9uK~M#fsW~KLxlni=>`DK##1{<@$Tet%l4d`BkgZT=Y)qNVJjuZ%0+3(^3X+_b z!M@D4$s3#SuZFt1v1#MF_t_X48nf6!cW3gj$hyNQn>?MvWqJ;_EAZH|(|cOZmVw0_ zRt6SxoC^bMM3gisa8W06cP3gHdCbY?TfRl0IIGR#9cav80LSd6b^x2D+{ysbgZSno z@=u?G>T^~MAfqMN0sBljK#Bw8V4?UksocOWC@6KL%|#%R_AO}iRr&g@;SK8;IO!?) zv~(X_m!8Fz#sw^!b^ZSvJODNtBp_i&DtMLe8yPAuYxMJGQu7Llgo zfb9?LhPEM8n&u9&rG%sqS#teS9qra^2X;N7v`>F zI0?z~IVqirEo7N+v5v7aiI!8`j%!JnD%OV4RQ_u4Su$zh>kYhcwvFy3pUslQMBYEr zNu+MIS;x-6uo8L-S-J(Ko7bJ5MYZpxUftxR5N?X#*trmzvpsI!#<>yNpnEXWf4H~M zDvQ-;j$CBLy`(;7s96?u9IRP8?_D6WGOCPfBUqG=E!Vg`NC_|mr29#Pv})v!kERE1 z!V&Y{S<$o+#DjUM_=12$-_jH;JeF&1pNGt(xQT=qwt#$vb3wvwF6j$Gu+-Re!*_+k zqEt0`&!QP%ALU0tl@PRFB(o!?AEA;=k;wE-VE5Q@|I@-ZhvY9iy9ye^1kqt~&qV`8 zP6FiY0s6wZgC^%02)uVDeztQ)U<$H<>jdmcKU;urwSxHmsz%Y6mKIvmXB2Hy?iKXD zaapF%?XNkl6C<$(-L5(|o&+SU9K0=zzcfR%k``qXT z1%*J9L0s+}x@xYS0Uhni7hIe!x4lfP3LUqUr+dr#T*6mI-m*Sd--`Fw#C*KMVqtz= zSeQKEaE3JSE3Gm<**?Nd0=I@7k|u+L9q=FJaWI5sSs}aZzSQj}HhfpAJ_;(NoK=w~ zfVKdi$cVPhEI;7A8?G=D##2?DVnbkR+c`Mm-pknAoO9qO@6wR92_!#fev&F(t)Bcx z(uHd}SDBNFR_f@{|48L3kNnT~*ptsSz*FbE$WP7UnQZ!Jp37*q}X5&$JV@a%g)tr%}>+)rHO)NoPC zBVjwsG9|p3Tcv%-<=P28Bdtx^XgZV7$cenvlPTmSEP+PIBeQ zwx9+V4?J+6@!dPxr7yUw1!Nd5oh{w(gB9nV)eWh%`9UZBnF%>VuA%A-r%?D!(?6n) z?Xz1cPHZGL*g!aoIsKVhO0hl%3hvH%7Zki_NMLF<3Qmo2rFgg>)C~kT2#(0O#xg^@ zoPB|nNoL1BboEtLSAA|}?IkACSpv_uW-n>$opfXWc$d0X+h8FUdd0`wPNF!1T*Y9w-jl zajzUyn`)Ck!TTc80g9kv&h@OWRm)kW0A4}CJyy8O@{J8V!?Z}9*L z;@{#cin(Zi zCv6>-DWr;53hhn*kuES=r?MklmEaz0>OT)gP>^IG(~e>|jW+=d$V_6QQZngMQ(w+N z|6iN2B0K_6enLcNakMG3XPlRs;hGFRM@idfk(V;PPCIQ3m&_%RpYoZiEgjgUT$U@8 zMt(dscry_av2Ps9*!9I7ae+^UW*P5@o4(DCc!x+u?}(eCERtrVr;0M6*_KPn%H~!& zv&q~tBBeB3TO*kRe3q@1S{MePY;(oKA9FS`3i9Zo)4RgP6j!wV)q(r&N@#x z+cP73G<}Nr2Q9#4)_Srx&Y6P=+~Ee-BXMLn8=j|%^ZCANfrwSc)|3=4I&k3T3x_*P;`Pdg*;CPF?{&Sew%WsZ-J;vRdmH?apcPm)a1yYS>25E z)>dB7p;)~#|qQ^UM*>g zNS{>^`P;*1P(=DHib!9EB62iM5gE!*M0TE|B4Q35#;7*Km0%2KPOWGtrjmxIA@jwo z)~{u0Gm}xTBr;GFWznMy-5O{iYIJL7f5S&Estnntjyq>D8LLnl)?JoUE&UwQ8NO zN{K3y^-7F7CBy*vf$vbKgysd%qK)PUN|Vww3yrY_ETCd@?PWy|L<>sUiLgCX7%D{3 zyS-HXnm1`0N z#$X8Q2+C6>Tp`3)~X)(Aji#f zp~P9R3c)@^?>yKEB~qQpmYk50qf{(Qg#GUb^&-vbh^Hj|$(;SncXM%;Ve2!oztE=4 zd;n%|f8-p(fy!4UNoM%}tOa?N%H1_p>&VRlHVE%ml5#l(3kpFarZbaJ`_bT2Rw9rj zE>8g>`R;p8Me1+1IRq6cyw0jLOJ{b2jP}zHrFwq%V;l=j^*s28|KAc(U}SnC!Yn>- zYNgw*e8C5W?nIStTg#!TfRBkC*jy>Jle4TxfkXoB%7psUApSW_^Xz$rOW7M&c-*yU z8}wFH?OLZ|SHks5Ii#zU&4NvE32hzYNIhVL3qdq0@;xEN?@2nJ51o>5I`o4sL+4pC-`W8rjAVf4qJ414H3mY=&T%+4CPk0>xC+h zb5@Cxm+ZVCx{Qa%^F8{^){6vHQb~KdoKYTzJlFhZh-SNi~bmV`-|i);*T?f=K#x4^|!-TCXbD|Wlv(cS%*w)-HG zDxf5jhnCbeV0;8qHDkNB*lLO-OeSoBL54`u)-rSMy>pr2F%Td?43LKkd5|FwGl|C1 z)_;rEuA{XT{dfPx_!`|+@ztVz@&EqLxo7U32MLL>+yCz7d@|3=oqNyuJ-)x^F$COV z%5mVy4`V}hkqBM}r( zHu=tFTrwLjn%=4zYpx6({m=lo;Gx5dABsG50IF$SqS1R*g>OM+#Tpb!;NI$M6gyeE zP#SE&zm!z1e#EqNxylCNzl|2Y-mjs(vFFul-=Eb{_dZ{M3NUsRG`1=Z#ZmY+r)QtH ztgnLorkb_!Uds8$*;{CPSL3X6mcLY?Tv_|8Y7cs2dA;u1#y7oR%=bMEW1B`ldw2ev zP}mqlq`8}JVcpHP>_XbvdqW8Slnh^3E%In1Ydy}omuuZsa~Al|EmsHRK!<<Z>;BY5f{;Pt$dwzs!H94vmF3O*h$C0V^o%IIC`*zeEmJ?=J~X`W=3U zlA&e|clwuOZ*W_KpzCq>&DqyddzI;r)@21{{4NbI$Mxv%i#mEqq_|-fzG;Tt`A+coyD= zhe3H?0tq?;k64|^i>V`>GNnvu6A%iQ=4xCOY7=5$OMn4W90bGd4MH5CtT;!VD;trj&XG z>{A=hHKKiLtjZ;()EIH==%{1r%^IQ)hNI?EH4B>HHW;jB7Wbqj>pM zP38A}k6Hth9z^fdSeHu+(X`7B^(=f(jyavd(&2G)fwpI*E>OyfAMLiTIL%A)ii`D0 zx8nZj+1t+aitqhlBK(7=W!$_$(wnEb;IzdF_)+jSUhq8?hyvnVJ&U90U+IOhT4!0E@-g_fZ}X0`8t=pTzVp{t`z}0Q?N;Abf7a>JpJ^Iw zyl7ElPGk1*%8u)}tZtfWD;2}<@;f=;YAa|f=qO>+UByybcfZ2-9q4i~tFX3dNzPu{ zFGc0e&7^NoJkN-?CYB~z4(b4JyJN@|klYgkZGw{|bQ90<6Pg_v$OE}lJ1-ju4N8{! zBAY`V9+(aw|A;urI1PZ>K!C6pZ?uaAz!tY*w(nMr`!qzCca6v)Z4nr|ZQtYK`bqLo z1R?lkaw_c@Q>7EMgiLHYhMU^c#Mqs73nS%O3&pId>?ezeNB9DgIl&MbH z0cL{t$&9p&bq$o%iy-lK`x^Eq-eSA1nc=#>gwPw&>;Ng>?ADdt%DGJp`BD zM{vm^gnU1cPM#%bky*-0&8?S|^To15VqP3js0JYrU` zu=^|s=fvTDmbTC3A2;!}(kb-;h#7l5qKsvNhsmTuHnpu4I8n#eOn)YDP>w&dkJ>T# zZ8S;3eMOI*d(0Cjw_}hpK(cdE#;SHM?UG=J?;3$QbI79uQ-P^u=I@B1khxx~Cs?f2 zvr%^JR?S5hMDl>f%&b4mF`wyA4wlctpWInw;r)anQ7i8sl8{bjv|7tpVD5i*+o$0# zL&_$N?71SNwePPfqqP8E^AVgj>O?C;(=1C2q_h?Z-xN=2{a97qJkq?mjd$d!d@BH= zZq=b04lEqx`0mEk%vQBGIk9yptmKG6(=LAkug?p4MPe&9qA-SPPsnS{YgtW6t(A4i zS9Qpt78&`fBgH&5s-Db58X7j4{Wh(S7})iJQyu-HGVwr$#7N{Klvjb*uVu?W@J-$` zc9H9zF*$kcY{_*?^$GFeo6zIt4)jRtY)zIwq@r{<$|C1{O9 z^UjpgIK3V|M7O7)GgecVf5RtXZqz7&1Oh_`3_pW~tGyQ>O!U=6Ji)Rhp6CId7)2e+ zt%;@#*E->J)^nO%fFQPmIBBN&2VixYBuKYXbY#mS5wF>pi4St4!W-@c{ojwtBcYkL%^F*8-I00wh*LtY!%yM?vW##NJ z$3K`{c#i?ZXW6*a)m0#n4Ib@>=Ktq1_R^)N(NDNzyfZVw3f!Hff8}oKan}WW7m`U& z$$7DYeKp>4GmY~CNZ`X|X)`mET@;5uOX2SUKNBP{#*-90nS@>^o|+WK)Qs}dPSGh0m1Xc_1z80Tu&t-JX#Dz0`hVYk#Sy@1Z!XqGi+3-um9!4_Ol2uUjQSylc5{YIFT&Ly6)lCmNrz zLRq{vAg(ge91*XZBQ#j}A$M~_a|4Ts?9b+uP6_SbOoRmkx|vem^oJGI;UWo>sX1wA zQoNI!C=A3~lB*K~4Fek!&B|e!3u5#p9sY;=V^-mDKbOm=DmvrREa*YG z2oA|or4$~h0oHe`R!oE-w=|yFGEFrHuKr^Qlr2+R-o^C67eGF?iTHT7Z-{FX5+zeY zlo*bnxF{L4h?2p!?Lw3cT11I1*uVr3vlAuz>P=1Cb^mN6Nogv&D6jC;RgCb0Itkgg z3|iw01TnV6Z-LpjU@xi@3;&#YCAil9Y2k z@~a0Xtup5UFa?cM11!}ErpRd5j53FN`_bACT#noY!TW2zamRXhozs%?k(lsp7zOWC zeABr!`!er_)!t57q++CmU4xCi%AFo~8{fi-eOJ;Rc{U0HKrONc!;nbGKjX0gXYFLQ z^HmBWcyD*!>8!5Y_@eR@-21*yV{6|E&#MRyIMoZ09@6X0B}YP`a+62-Oto+OJI*!k z>T;zJt+v)zy1hSLTT$z&^FFS8$|>RqlxQ+v?^fC>-NE1Kzg(nG=>Nye%xH2nePNMz zLmj)$Q`7jV)hu1_jUJU6w4BCP=>$xaEI?y{X3I`M{cqNOwg>SWnHeuDz7&Tax zdf>_(~9m?R*l?XnUyQ>b&I~o#0aUcP+^k^vm=y~4fs@K#y z4?aP=H6upp$$wyZ*_$5c`f`*~6sQY)Bejtu&hn#!*liWTp`+VycUMwI!jU$Yvzqoj zb|1Ug`M@@Jjn~(9-m&*;v9nxFt@nsBRDN9lrQ)FRt7>gwt?von(M^3GeFYcENZ`;{ z9?LREYt|-R49&Gw-|E^_+SS0OyIrh^juG-(g!kFFW}`3&SM+$k&uyL3l;yD>%M?Ck z-;{s+Sf*fd3J+l;v9LM-nB1Ee2qQ8ftx{JmB(fn4{8Op{ReaNYyI=7|aoobeFALuvyFVt9hsD~mTT+y2;Hl)e^`^mODBF>;Z`3{m5XZyTySLt9HC%h{ zYKN-yr_tSyz%C8o`vAK z!0Tlwf@61hw_;BaF0U5(M&OswnOE8dNm-vpjCW1_%b11w9?2Ir6uxDr(d_JMn14-)jN$5v2uhJ({6MxjWUYO zNNt_Qb8>nMXlyAhkqt5V)^8Gsk#V0Mt##B`L1EHFT92V=?D|?KaY1|yZ%YvZ2L`m92rvwT~J*OCm#XvPKysy@JFACDVWZ&6W)$m5u$P5d!}OT#+Now{-H;E z&%fK_uC1HXo@tEpDEX@Sdy1o_{$NpCtS#mnfRJ7GvvtmmFS_4w*BxKGw&@Xli>G-T zHg;U2Eu=m@tW+GUXb%9QJax4ocW z*R(CLPG&#_`;j14<+(T1xuB<@^E-=B?etAkIS_4?*pv&YCEi(=N{O7OU zc$MRZ6<6a}&P^2N$YgF-d24bS^^scMqXai^q3naYRhxhw!=3e^D}zvAvWZcsuy4cQ zy8Thc!$2~hp|gbI z3NT~$WcC$f2Ke$|iN1*`uc@`}e5^e!((Ba>H3KaGinHg&x4f|9;AL`K<287*(p_6s zR$1{)zFn|C$}mJq7k_+IgfwXlke9DF=hT7}vAuQ%N{Wl+X#V&LJ~bpjY4Xmw1hNsY z=pb`^gr<@!%}F+26jjNb@3^x@=q-K}w#ym~99c?^Ti9AQ7aI!=p1tiBtTjZyR(f7Z z+`~=sQZ~?)(PeZ9F=EA0Jm1cxJS`|hdC&=XT>){YDAxsnwn{%{IQu`)PdS&QZAxRBb+6B}~jVqF;4oWhB0m&j|(^WG@(o7H zL{_9>uu-juLs?9z8rwCxYjh@l#-!T=kwS>5CL_~Fim29US`=DDOmOi%cB_0Mj=jfz zk6p?o;%RzkCDZL4w6X=yqCUPH$Fks?2#}r_EHufoZ(Up}Q2ki+jw` zE+~aD80RJa6OghD7fypkH7;>+lWNn5>RJOs;volAKqLM)9Fi7&C-q{7PNH)SEd0R$G*Fm8}4Hd4Eky4r=5CHabHFA0d zRFV@AOCkTK%rPZJ?t zr34ZsNY+Ys+O06T-<~Lu)X7<+WbM2gZ=e~aa2h=a-HC2yH8$M7^5$i?1l>V5Fb0e+ zTuMYM#k&x{Bmqe#08GwH1g#H+6G3YtX1&I_wxYUhbwy=G-9{+MtKkO3P9yGW{}|&# zcvSpj+omWX-k(7-!=KTd)%+PC*5T4b>Dm0zxmPaWHYssVQ;U1O(r9eZ$nto1Q?RqD~Wri^u^+r!vO6s7&!usDYt1kC0 zz~WZwc0F!7GPTDhe!%dDhI{@pVQJg5a9{ZSxIZf#%m`*ky8vD!J(!Vrf*m$1X#_Kp z|9(3_usL(7k`N|Jg3hq&$`gPi;qjuoAOhFy`*Zex76g8;J(0kBukFR$6LBj<+$Fu4 z;_7Ak_D=XDErh-Ja&h@|P}BIa2|+lbQeGXr+r}$=BssotVJbOx9lZz8g1az@5M6SU zYTu-8!)pK!8cJ-)2nb8}W#gnIL(G=l|F5$n!hW~mnZiBbE+Ub;&Kw0ACcI$p6C3j2 zRD(+K3OfIM2m|_a!;bg;AF1|lg4(ZVHG=SKh=|R`TxxxxLB+l|wDX^L`F>Ay3`+jg z43wO!*=d;sAp;?#lT&$CYQzjBP&57p)NDNqeZK zb)m6qIMuT7dX{kGFU;@+g#S;LBKw{j0z|2R1VFz0nRLPwiGy$TcPGl^{?0{oL>v~p z9C&tV+qmKTF|Ikl&18}(xW4qbU{Elk#0CA|k+>jJ&lDOE-1q!f<)RAlqX;*r@f0) zXfJYaBIyywEL~A;K=wErpQew_MCa6%I~|%e*hvtre-x$651Lqk@6^Y!+pH*8zhv%d z1A#;$CRA}UR2w|!Brsrm0u`SzSj!`ZMg+WEx;%vG4{%$+jSqX=^mk}qIAg{?MPqs) z&ZJRKuZdFQWCnZ%V;!aN@vLmNly-HaW5_zgVByvWWmW;%Ji^Js-2EYI=!@pRw^+L+ zWW*atxpscyz6I&b_24&5+xU74Q!7PE5k2>o!fAt_7NQ=0iJa`hYrpvAWjD~anmCNS zAtm@2+iYq&%Yq9)r@_#{AUFsjyvpIA=0n=JGD-tBJb%ZJ6t5<<@m<|A5=KsgwxT3w z!5bo?c5os%8XSeU9_P^pai;rf4;i+ZHY!GN5MA?N`C;I(h+T2Hm^iuvf6UZw2&?nZ z`k?<838u!2NP*^+QG`v!c;GipM-ntk)2O&SI%m^p)2M;*Vw7N~4pM2h;QK<{eVp|z zFnuNsE~${4By71*f6Bt=UF;uZQwA25R=fJ}XiGNcAHTb3|9~#8wgfF% za`q2kx@byEX|SkPy3K(}29Myeh!t&f7}smamiGAFsN;e0aPg_lSGc$nF}9gzi{|U( zvqdu`!;guxMZRn6Y-#p%vlYU8$rWezUU`48C$Uap%pb{6k`b{$bnoQeNtzv};99X& z-%M#i-si~q_Cmb+87zMNB2(3Jj`uAjS9~5^@jkfXe?vC8f^}eRLUXsRW!E_+dxH#- zOD?8gFBSu)_|+twIMaQ75y5+DP)G(=7D z^$Xjx+Py?ioQjKCcj&@ABu3*fL1ZAfNC+6zoVGKF7?Xkwy?U<-X|b(DP_DcHbJehV zn8Dr>F)_Z$LHnSc)`;1J+y>W1?slBL?e6_FW&Dmxo9*`wLk8}c5C=+6^!{IxB$31( zZm=p+V%_#klXXGt4b}-J;Sg>RQ>)mhd=KASrj|v*4dI4Rj+j)w$lc)vVU`%I%jZe?Xy>GpGxM67UMAMf13%w=7S(4aUQ6Re1 zKAgicX&65J@xa9Oi~8NXgogy2i*-kSPBPW-@WH&Ho8lK0m#CQ}Z3KZf7bH#^Q6){9 zNs-BuCZ^3wi#Xmwij)&BNs%UvrcM05oHj9O78!vl6qEKm6&o7a#_5U;-QN8?N!Xhv zq0geDXUyp%B`1ApN*;9c{{rJA$!9kITVj>zlCp)G^1Xs7#gxHXWEqBG6ZZeibmv{q z^RhT8lhD2h)c~Z>U3{fnB2fa5YoLm3nvK)5jR4MFR)QvEm_X1IfoId@vxF{P>24l0 zSBTx1yV-7-(^6y{=yAk{!gJtOrdQk&Z5UORSQ8I46v=?ezUiv>C5r$moWGiGwqgp#!RaEs01M^X&C?FLJNStJr zz~l57`b1}*cQIQ3bZgy6l*J<(zqeT9A{q%(7^K&-3sE?MJo~zC7k)8|g51c!UX^C= zfE8*~jk1_1%VVF#4(8(=y?~DR@468Y? z)ku_~JK6gC1>%OJD@g6;@y$u%NbD3g*cDcJXqN|dC)t=f*|m%Kl40Pn;GTa?c0;0J zf82TklceikW~}reOgFjGUC3CYD-mQv1i^+{2h4Rordt;WzYsa58mSC%n_0*J;&lLO zLgWy7jcT5p8Nt2J!i2(zd26B<-{aLT08 zj&L%ScI-}62_%fL)}0|!Fuh8of6zv@YxZ@%;ugl?q@lzag&2Ct*R` zt8 z8x}J2ikUoQ zCS0CKpeK@}POcpcm6?V_cm2^w^rZUqLnYDu;}*eVoA<#;^ug{^Cs9+P1ftoLcAHum zz;&mgU75Y3Tc`#hE?D@%1Yyxv+A)wM)do5SOfJFe7#B7mHKLeAnn@>}LEbwEUSR-U zAw4}!N^}~r*OMaldQK+xdUPuT^rVPAg6*c;TZ+KADxW=IKT!-jfgIBzMYcci+?gQB zgq)C+>XV=X-+O{mDMxNI-xwyUjZm!(VF|Krf;>{avq(0V46w7C6kLr zGUX~O1wM%EEUxx=z?G{#t5Gsmcu8Dy8|$@qd^Sc2S{6@+b`w`;H>U zbv|NTLCMr-fvIy?PGMd?n{Sv!h7X4wIH6sA3Kq?&>gIXmMn9o$PLKGL#ONi-V)Q>l zJNK1ZiS&Q8Gj@}YLH3aO9rqUgf2EyM{2U)hIg?bC!<2mRr{@YFZUFR|ooS@0MFh=^ zoq3*wF#_>(GV^##+Sg@XQx$!mtdKV1dQ zZcFhu_gMO5Loei~IC%a$XlQ6`i}&Wi(Ec$)t{CJ)m6E1i3I&~Pms%BcIU&4kUw8OKg4NJFS>&(2(deUfTb{vLJ+eEzM9g*bA z*zto!{E8qo@l{dBXbMY3EmuMJVdM8<<5LjRY<+iYNMh%no*a03PGChJsy7|nJqW0!q-)+w&(70#a33x@^H#JaZx^=7pUI5fZN<1349yWAv&h)(e+0$4 zUl++q2wU=8RtjK#ds7?Fk+tNrimX;zLcRoe*8VP~vUlKe$Bj2SRt7&{=NI*L+1e(k z2X)P@=n5WT`n!X=XsBm4fRV+Z`1~Ewg^E{$_RP%fMqr%u^2(d9V3l^?vw-mn>9&-Q zfU>TX%sWqp&V@~b$A33E$)Hb+5of@3D=x*wC;bL^MfkKeuq>nj(?s$STr)#zad6-a zq!uTZ@cOeztXNJQ}^ZIKm{9*)-i~))r1G zuNZrhQRxaVUkMNW+cmc|jyI0eY^sy2xN+QU>_wl)OJFAPnnw}o(?-M?8lS%5+Lg2W z)9iTp4F6mH*H2NGUJ{k+I4_?$xvyH5mPudrJ)ZDK?UoOvu>xG)CNtVMkg9_kYPKGwyzP%R1|I2jIk&@mU0VXavUT0M77}9b+AU zFk%AL%HTuChg#a~Nq+#1;$@lO*6D|Y7I zG`Tfmy#Y3=EmpIN@FxI5OgBSan(WnACrn&_zj2gfizJgJ8ErWL`8bJ;VZec__Pp5*DeGC?tp=c`}}_-a6I#roDA4iGAM) zJh8ggge%CS<#2`aY0Kjcu5^yHbpzt*nnv1=XS~>%W2eKuG&sOAX^?E95z^@9>AD;|4LJrwC0VVKhTiF4QT;sg}CQ&__Phr4(iX0upMis^?9UW|U8LL!6z2?=y z_VW8|v|@5mb&@VKu4${gBTO~r9P*%CrSCCXRLw!z6LG8z7zdNZ4X8gC)V6FAOC_3f1Y&`>>NZSzJ5?EQ>n(2ByVzN$Vr<+q+Ap zSYUQGFOO_7tf(lo!dgc5$1E#4*806mnqrA7+B$|_eEcUA{u8ZZi9bQcocR-YXZZn2 z0i;j3*quaE%CSB@Su&YthZ-uyy9_$NyaD=kd3Hk+3pVC^b8=0bcbYc%u(cnP@(K27 zS}>&;#~Jc!X*oo`8ZLS>nPZz9S8q?e zXZnP`7c;ZxuY(J4&q?#LC$n%*>7G(8s)UuW7KQsLy2l8dXki*KrNj5RO}*R~HktOr zRLd3&9fOnQIPLf_O$^GAD`$*9h#m?=dYX+TRj^L^C&aRdlzsFQ!8D?UD$yIx*z~h> z^rpU3?XIJ4m!vq!u!HKXXLsfb%q=t;$J|L-Zo#as7-0)lxU?Bz*QhZOxP5;V z6R{PThjs=~&f1)%7m+c&?MQM8PMM}JR zkpYV{HX2+j8j))QTo(*z#y}%Aj$v?5c6EB!C}bRFhv-O+C2wRtqK||G9-yZ3g-gYp zN@%PO_#a-2ZmsJA5j{iN{mi{9Ca2y%-4ZpYey1UX~;q@X1ZoJigIc=_v-Gnf=?lR=M!8gGh z_;hohIpiS*pEJn@a5!YvP4 zl^J@nq?ax$dd?wk=5Um*?;7Eh?XdykVMtxn2apMGVUG9n*bXGV5lGeQn#*g-T+Y?l zg8LiZ=e)X?)x6@YaILFbnw_{ei27IBn$Iaussrj4z86SGro?`twxDb2lpsOk^b|WYTYCt%6;Ffb@Kf_-r-wwPp&;){i^5z z?`#i-YsBWskUcB$zSys8;=?Odq0EXuC+DOYz zca6WItg_=uS91(~76!HP+)I?3=FH1`*_eY32#F5g$+Tliwz zl~uku>Q6_jsf0)AW?87W{=(YYvNhh@l(P9hY+s^0(ssUTudUO3&EsU4VAQaP@87G| zd+MHVx~@ihZf%9LeUbC^GPITVc*@#WaDqOIEMkmS=Y|@0^`=Jx&GqXl)~suBv|N9m z%^2rW$NFvGQ{3C@hu*w5dT*4)d?EGMf#-ZSWl{|0QqW2LT6#lYDzE1U>$^VN@$2?j za1w^tbpIoLZ?}D`XSJ`UWuj$5san5wZN-M>JN1Q|Y+^p0os0eBfruDP4@9u> z9KE441|r^RWkL*AqD*8LE~hvA$0m}$DxdkQYs{~D?aGv8yj`<$!;Pvb@p7MNy%Yz%MY?HN1jY%sEUEYi^z@--Tg z@C76UI9~$6J8OScQ{zSNkk{Px&e}C)9_M_vxyG`S&q8Na_EbfA-MXdO3u@|A9Wdd2 z?3(avqE;~3%T_K$k7jHlP*(Y>$M*=fc&KxhANPP*mG?ZC|A;o&dDqyD=SpuL=Q~Mb zEC4aV{-x|~rN>>ZETLUloVDOBXZ5RfzJ*omE9)w7YUPpD8|N%s@GcLWC_09>CXnZU z($|AM6x`L$>bm?XqDl6aKF3)LCinmErklL&V2^z7?d2~z*J3LMk1`|)`J33{=hd~^ zYd}$NLdhvZ^8>f*pQ_xL?|re>y&jtb9q}t~ILmz3`8K%WPF`K9+xU;_Ex)L!24()= zx{Wo?ra8**l(UPL21-+SW^bPkK0gcfBmG>-#=cIls4_eP2XyGIgvOK=$&YqGGlw6i97R_j8wUJjtidhf{U&Sz>jE?%UD)v%J~8&mhKrN;f6 zpKHlz$)FG8V^=x-VS7V+gF4#cz#clrU@o=5J8})Z<%IltzVcSJyRkXHWvs<;0&?e^ zOPy@_(dRBDhaUY9ecSTG;6!l3H|~2HSbaha&^fr2n2OUnm`Zsg_lOK$20x`{K!@*($-d-HdiY`&N;rbXnyX(Qf|;FQM2f-+~%WB z?bD`|U8EDFcLE-}^_6{31JJ{qY0PN+=w%c_Xw2{z`}Gvh=a7k(TKnug zD`w)z>HUBHDz)-$s}?cYQY<2-n=k2Y28h);h=tWFMi9L&1dQb;_}y|6Ggjm*a63Mk z~+^MUTow+8FwL@&_RF4I@cGNi z%g|N9jXk`q(D>haoQ4Vu>^Qib9VQNqTf0e!$J(ok8AxuMBh^!JG`)-!08o>QX)!^q6k2iDIBdl8P zc+8(sMDxrPYqxd%WZl+<>QP3amdD{h8mGa3UA&s0_vFW3*%m^S#-TXScmjK9T8(=a z)(YA}+v>@YHM`xuu2t_=j;>b5_g%4o?0T*p0OA0yVClhP?XFQAWFz9|us>i6Z5-Kn zE}9n9R$!M%pwKrs!kk?Dd<8c7TBiKy)#~GOf(^#lKuAk_Pnq(E{d?i!vMU+Bu+}$U z4+SvYL%Ci3;q;^*hmniTH7~|ts znWAC`g=WL|EZ~3v3b{ zhKhungVE#=e|F(_yJ;DZAny?F zvyyO{20^plH1k8Gql07O!buQvGTQy!Nt3P(cTZxA@w`=L$SXBrES=a8bs%gv8!^aF zpcd~It2?(wN~uKOt@6LrZ&;-Jy933DVZVcr2X?Ddt+ zffrPaH#uQ$Q^o**Zw{bYCD*`J$35z&RwLl$EUTXXGi-j~)0(S&QD3z1bzh^$-{9X! zyLZ;j4@|M#mOF!mi$LZeT6XTz>`Ld_mNC$9(I)#QI}-i=l}pIR0va$4e+$EKiNt3@ zXLlDQ5-`fXr>zF*RV{5;k_?&sB$f!DShQ#Y2~VUbZU4hv3wyKRR4SlB*>a?`v&51k ztd(J<;XVIh&@jw?v1LH-L*5H|rvsTJQIsO&05u@Gl0!#vD;%kc!zC7JxGF_) z2j>zMZyh^v;3GwEPp9bZBguN3U31U~$eBdE{Z(RiX_5E+d=6CAqgKUAuaCR zddxuraP8t_u4AiH1YrIog*L=g+Ed2PK zfNl&gC$R-+un^m83%CL<DGGm5q^+Q>K(qBv4MzbP!;pkokc7WBz+cfx2+8f<12Re`B|%6asATk) zj*u!mFrNIA{z)0P3WtRchRDJH(%l0l`rGxCAS83==iWZ=1>S47WTAZ#>~r29n5DG`E`Q8u6x+Uecuoqj<2Q5L|DQo>3K^Q9lf z((wsA7*>Dhsj4G#G4lVGOV&-v+*e1b|6Bv=@)a7Q>=BVw+N@55{lx7@5}X^mR30)8k=pU{0N9QU^Vc$LUB zj~mxDEJo*36&}Oi;Itx z*Fx%Jaeb!f`jA8uXYB!H-z=Zr&HA0DRI9+9( zyXLeM8G|FL##fZAz(984ym{L*TI?-$-zcc-35u2Yo}I6{7>M)Jt6uLd7Q>gf700)J-=BCkMf#2N_rH7#q<*I$i?Cf{7eeS}S$zSWC7}VSHXAsr8Nkp{}9Y)Bk`fUmmAwvDG@Af;^yXz{PtWCMY>lKk# zJa)b7_WhvRS%&CRodKxl>vvXG6kZ{S%egfB(rk&W5L^>+Ht!n3^2(K0`#+*wj3~vN zz@Tp(L?ato#M z{QDh5R~$b1i)f^WPi!S=J-AW9x_ta)B7AD8w|Wj!9M$s@uu~dGHF;De)VetCr=HjQ zPuY-3c6ikQAIu>S4aC~Ul7Dy0gQWhvB@{Q}iDeNS{o1WsHy2jj!hJ>>V3rm^up>pP z(XG?j=$Z5v3#;#Ysy3Cx6ycG(8xW|A$zPG?ZSH;@ z+N#8R0cD*WsP~tU6!e!UgGX|X=SZ7?u{P-$=UHh|a&Bk(&GikGq z_$p8H79lofGZb$W&u@j?*tisMhJ0jjK_W@@*5qb;`~D)0-a0m(thYi1fCRWGHp!dD z8m^kLE^EUpGHg#)GsQaJsyn9AVNM9{$mu&l33Ju+*m5v<&9hywqwjaN63H0*TW4PioxtNmM*DfhFRi zYl+T=5J-`9HdGSM5qO(rXoKvm%f(GLI>bO^39s}h5h+=WYKdCnhe!F|mk1j*78@jL z#Axnsz+G@!!1E<>61`YEEfOul7V(@wMUEp-crjg^NUB7*dqyd=pGzwonIXWHNuuib zcGq?n>*tPyP{V)$s+$xJymK1wnK)1oSXk4jVyYoNLXx;_C>6yF!!NiLxxNe znq`r$oi%)YFcpvk_J{0N1Wmt^U5GRefPbD^u~O*7n=722o88ym>8!>VbGZPHDp82x zPjGrw&RwWQ`29mPi_!VdRw_{cFE$wxw*!fnm6vz7q`+~yJvO?13K1r;I{!?C-N*M3p=(_EJMLRKF_zZ zIrQ)-JBnXS=Jj|qRtVu!VRlf8b(x{EX3gyW9DfcarucLE!hL(c?a!i_61Bwi*!h%c z=&9p78g?`ob1@~alAeiV@R%QGXZvZfbEmD-etPUY%;7?Mc4n7w9m8^=Vk~<(*pnIC z|MOX}_0hpZwmup@AzL5qPGxJDPXFcE8oCQXgeESG%vI4oGVrNV;z21nQ#n(8C6P0` zr!)sI>u^ZfAVh_!fH{-KZI(20f{=s28U}i}>#lDJhV=bG$Pnvp&~W9Mm9`3wQ008>X z7>|~kN1#txxAg#0#(}m(mft!cSss;KpCtA^YLuWbn;I@m)xlc_{V}tZmyizxDw0}( z#5acLSP3Qvw$Tvn`zT$7BLrT($al-gGx&Q35n-rr_O$P~@Lp;F>uiOQP9;?%?rxT7 z9rSa$%uZ+>mqVFP24KIB>pNu|nN)t4#If4oEOEO)KV93>fcL)JEZW|*FE2SQ$q@Q4 z4c^Pj%m1561mEQDNZ}=dkqF+?P`lOkQjYyenMPTTKa$M;O(Tiy-#ePj{*erUIcH%1 z-Z9wkV&wFW4Z6e?0PfrTKft?b8vZeX0FZPhNri_$N;#t^x@Bv!ff~UpM zrw`v#;;W`PPS^FPh2K5vSN}KU?A->IkMniMp9Wv^RN>J<=R;vQWNb7zZ$6allHHx+ zHhTyzS!p+z4hTvbJL%S!zOTkJ$3P8`6;D#$*rRA4b^*EoZ(&oA5Cy1M%Ucz1{~IH> zF5HX*bQQ2`tP4jz|KEsrhwh! zb?b~E%-e2v-JF&IWAsocC2*Z$4@_qlvWnnm=yM*C`;`&1^SxYIp%1753U28G*vAu( zXo}&k^j5H1JtT*crH8yD?1;|)`Nq@<@k-ZZ{431%eTia5?4iweDsl>4SLgOVhKvxKfBD_NR2+(<@NG&koRh0(1q;ML-;sj$quL|EVj8}2wPfd$ z^MBTgBv{Y-O1&3RWEl#?t8F*(C?nEX8-G+^QCazZg|o7}V|P=1>y8~41*d3nks(pN zeNJViKa?<Xge!kg-QJ$(%T!CnU~aWEyRf4QX??v@bbdbW3@oZ~)>27P;5uHP zf?A)o>uZ~zsP#Uw?Rf7JclA~q#>Xz@Pc}A1&t-LY2io$gog3LB4t`_TVF%-NSI-r-*@QrC1&3R2nLJ#Fu%y-Uz>FXO%jg!&%XG{1~hC**L8qcY8 zyF?``@>GnW6zEeR%r@~Jgo)36&vI(+{XBm%h}yrc+Nl@F!J>Kr{%oCik3S0;-(0qE zfw5y~gr2?6=??1{>T-W~TzsGo$S)R(7pSPhvG0PK`<{^TU%iAP!1rEI*4k^_X;cl1 zSNd&>#Ea^>IRfbrQmg5qj4g;Oax9v(wh-FEn_ttO)!M& z--poqB4_?#3-il>t=hP7adw)3Ed*f%*STtqv21er^eW~RuR&F##;4VniWm43I=lj< z#4e|AiCUu9i@~PxT*Dg0JN)IC@y(r=83#m+4~#$1>-nFoU!*tC0Fg!YZzKM$H+l4K zj7^{8Pu(m^&##wlsHj?BC61*>%zgvbSzhTF8b%rSk-e}$yu@GPqt`2{Uqgh(>qdKuJ*02Rga*!v_WYoWE7g8kTCiXqYOWRKxTL&UGaq+3g)*s&YY+y7oFY)eHX@=+- zEphh+>XF|yVwWN-F5yRg?3%Wpcev^%gERvJAjZAX2H=rX^l9Ne`d>2YL4RJ9C20T zz*Q&7y()ywQnUY4Eii)=E!M0xtC;aVX*g#QAv3X(@@XV&q^l1~O5nP7R(6p8(?IJ0 zA0)Aw3e0w#tjcH-L3e`An|5hrDpMhu|BOO68t_qlq&3G|(mELErn((vlyWiId$(#F zWl}W@4RZI)Hs@jIEOQ<@9ctWLzPTk$oRP0zOavwHSkza7JObR2kwt*@>-b($%0rrD zy}>zFTXg4N{Yhjz94Pkl(3D!B)bDf^rm=8&Z1h-ER0$|Nr?-n!IL&}=)6cc8>i$we zvobG_g+UmQkf?!r(2ade3zPyai?WI@Pi_c=W?_IKJjgZPG}ZL(it47A5kZ(%bMP9! z1{yN>)BmqB-3vf(TQO4Zfk(9h7HXPKtl?terfHcNf!>$XcxRke%^Cc-^`yl1{>ONJ z0tk*N zc5>GVUkw;TyxP}nG2=@q_f27S?m3CDgGTGOq9kR zoKiK@@zWh&v@YMU8>hiAmKT_7*gfp-FZGu6PnfKApKI7nwbib=e%Q92# zyKLeZ%CjGKNmi}hq^X#y0HaT2xO%5ZSf=?`ZX{aGtFAdjI z;+IU$rq}c<^eocB@IBX9!rJd~i))Z%JY0|O<3!AghwF{+LB{GNet-9luX1zTU?$Ad zB%deoy_}~K%+t7Ko-lXfJOY4Vo+j#Q`(N4RNRU6~JlTfpE%RhtgDHK6>swut&IF|m zyR3vpGl@^Q_7-JXL+-?R3hKiyF-uA&<$uc*b~#V#G`^ogf`w4dQX9`07%}3b*f`kk z`!v7R|42@WOGpYHDDN`ZdNKRxWW(6C!fsYFGfPOG&0_W3Nq(VaVJ$TtvN!V7H|GMO5{ypbqB?DwuJY?`ud>V%P z)>)?kXG@xfq57fvUR-6bg_pNC$n(T`c^t;@J&u{CVaUSD@=wia7^+X62HfT#zfFk@ zahr7O5{jozLvTkLRbl!iDF+HcO{7DuPDIdxL#353tLiOV6#?ZCt+DlX8LUJvRR_C1 zzTsees#ATWX(JbyDC>-$UbfK*BNuDj9In?f ztx3i`sod-^vV$%Z>_;{-wS_GJp5Tg<% zOAD#ImMPb|amUiQMua#nN7Ha?l0JcUq3ehXInpxL+(-sn(@+ZzIRp(FpN9`QI;Zt4QYoSq?_g9Y6;b&@DTab?ZN+CwB6`+b1aU!t-_M4ZxQKjRp?^M$Ii4W|IG`(k3w zO?cEYErWDVW(UKmX}m*iRuI&8?|-t( zY;TC_FNPf^)KBj+L%;Y)$xJBsL5p78Z?KNJjDbI!nbEr5JB@`r7)(<>l(?S6F~Nni zS$xU9SJ%vvpHWaAZ%}6`td{(Y8MRUZ;Bdax1i@vYxJWWR{1=K%vB8UBc3%^! zi7WNgbivlqMEwNXoOR*Y>G;t)pQ1REV0Vi;@0>o<>U{V!2KG+S=DiU?N76j(jr2x> zAnm3sQmnjCA!`#p^K)<^m90Mu^9w2U73#5yopFlHE+@U?#tDn4Sr*7?uWnl>G_+cS@0+31?hr8@Shit1xoya#`YQi3(}G8o~)s?#U}Mw{rbLXH76yW=YK5Dr`E-0-pZ9(VQ7G#ZDlO3Z7z zn)RSpvg}dvvaB*DHQi3fbOY$*PZVj%a5T=a-DC)cd7d2z*oqjU&vOo zTagldhxZ5h${p*geHR|DcB?;DADI7m@EPC6-RDrTiQ<|Qnlc9OtkblOIhsqd3vZdT zbZK+#vuzn|8A<_4{x3pPbG29wwR-pZ(Z4BV^J3UmB(5BYV`|fC+*qv`C8}u?)6h;zM9svx^{NhkeQ$y zn_T-2HkG9Ionol2##rxq+DMO5zcIeN#ye8xze!v2PFYpQ5@&5y;|r8k)EHas)DQZ5 zs!_0ZJK7yqBB1_=QE|Un`Jz542XpJ_G`@5xn)QLVeBH_)+(=A9rqPDx>&noBz*SpT zwf9O_+wIk^^=MR&9=_B>y<*M!%Cg#g+GjxwC8pJ*+i=;+IZN$ZI=$%|n4q2AHd^xo)K(cCki3i8BYQ@V@yeHc7vo_C!d)uSj6&1f$0=vR8& z&0m{;DC8eG(t7CWMTf=@{nYn_EZaXafv)zhhl(F6R$Z!7RP1Nawwb_)Nez#-)oeIf zQUPr=0s|9Oq{4KRk7V3p*fDYwiuNb&bC8gOs2roA4)D}Qel$rF^~r-aU<5L2;Ag_C zsPT*=@Xj8uy`w#HmM*UpVi6pb9fvt-ilb)ZJv4V~f#YzV6sOB8)%UE|!>{I@xF|#I zc!^fRWn>AugEXh0__#TrAk5PF(*ft3r%gB?TABvVbAdX4_(c=Vo=vaD&;tZObz*5?0ve6+7wxU2^@=?$Nvr}ec%GuuP%;_vXGZn4DYdlpg zHVYTrn1%}uj0+9`7ZjPPI6@K>=6)bKu(l>a4A|KvY0^k4>#WPh@?i;0@W85N-GJ2j z5|Y@OVDouyzkc=~mxI1VG7_r^VM-%=?&lVlExv3`c46tak}AVDp-r3^n~IILxhNl< zyXda&dLnKb>e%LpK*I167O9^nQIyLe_58{@q&k$!p*rAZ^=8qt;6fS&X&@8sXoavX$)l1VB_l3 z*^QC@DRdv1f>bHc&f%eTOokCWj_x1q8tWRji15&?Mfg1~aY53E3tl=42|n~`t0(ch zKTJ+O_wuCjGTt}SJq0>Pf-G$51OaPt5d3sqH4=OvL;9=jtX9VimHGW z9WcBg1|Pt`=`!bl*$<2+`!^39Y1M_Q#H0PdcRT8Zz>)fQ$6yK!LW70>TyA2!k6dsP z92A(by#R1f_XFKh#-14*RFHs!3WQKJP$52aQlaMvS)^gj&ZZ;c312PV% z@qCG7TJ<+pF!dqY7Hiy9RdjlStN2L=y{3hVFH=~3%Tv`pX(F%Ad1;W>EbNbt2TpE( zK!3s1qv;^F1At2AyFvX=hwproJ2T)f5Q4!!B?dLSE2T}#Sqv4ww(e6;lV zm54fi?+b*&I7uQ<(6(v6$yL zB;2!mHlhKmF_%thM0%Ht9(7kPOgx)9+2i5V2xJeMEJ*43l{etvwn2sw6dyb2Kk=w9&wC^H2~x3^5>i5%-s)(*f$!!Uq6y_2 z%7o}~&)nrZiomAii<)LdZ0Y5~n4zih$GYr7xQR+?7WGeJ^I{=9rkGv*6*fcWVU8Tx zu93ww+u7TeZ!Q3z;FNeQYML_7*fiyzOg^8qiX}W*4yZTP-jauQ>mN@I`o!B)|?A~y^y8PwlV&%A6RHIB$9rYB3OaF7;7#(e9 zcho88Dr@W9$CYo0IED9nv@wqNnR;vti5ADazd98rtMdZip|0wMZ`S&}{-654D8fg+ zEBU@B^Ph#`S?O`3J4TM0l?2@gDbLapJY6&_zbMos?n z>%Hrm?xSc1(#GE@yVG640<5Ooy&i>r^OVo{7kIa!LetY&=FwlRsGieRZ;TqM+istu z#M;NR3n|0DuZX_!MYXWDyLkf&l?%i`Afq6=umyXq!k>W=w6iQ#SG^T$n@gHY0!ORe z?Otc#wX)z7!H;#iI&W_ewFgB+p}hoKJkH@)UZvlCU~U92~*32km~Zt zcQ2$ZUQRb$tX_~3OWfbGKkT2T)EFg;+)l`%<7h{CVjyv47Twk{Gi;11p=p6nq{F5y zD(?c%@%DMp2oKiBfmuOex+bc(-B!^R@=p=}La{;gee14NeRw!TJZ^0BnhXcmA zaC^Ycg`{-K>fE)STU1k{w4i~4)YE($%s8KeLOmj$eT zN7O1rDO$DT5jCnt83D^E%VD3j?$sV^>x$s2D8V@>D{O+P}@PRXd84 zH;o}p2$!JX5?KAFF+&1oakC`6X)NIq=8hJhw2aE=n2_i|6@3$oBon|J_GQCI!dd!1 zh~x!~&s`++`J^H{?$w^iS3VpCGlN1$t|X#-y5BigMe3tqCb!SDt^_tUw8 z`R-bZ{`Wst*&js!1^Fae2^;K>HXCjY%}s+vH8){#q6Ch~-<>y)G#+7NLlIAC89Sqx z0=GE@o%M-RursL zyOO4d@5EW!AM1a?+_tkDWNsJx0vL}D&GG-ZdlTrk$}?{qzIMj#>0;U`6>VqgV5YSl z5-V{A98zLK+F(*>#5xX5QsdaN;;AFKl8lpSJHC4Fy}DX#%g$yyo1E2-lb|FJoDhf$ zoz`^Pe+{Lr=ybj@35!Wf5fG?hy7>D&?|ZLwCCiDEW@gU$pZ6T?%f0V?mfy3>1y=Kb zk~OOu7c?TRWEC=YzA3#ZX%cHR8i%AeL{dJc*4!vR2S?Kuy&uWF7&7Q|c;s=#)+pza z6a;8sE!x$0xm^#{*V=1+-*el~B0b1{j`xE=qY~#?E=0SYt@iG^LfU`7v%bbvi=HCO z&pLlh$Xj_Vc#66xmA$jBQC>x0M1H~RqB#?F@?STqUs$zH`L9*g7yxlx?uk4mz%MT3 zZ{-(jn%r(l!u;*`YFyI$Ub`~C_GOpd^M=d&YEy&srl+Z~5qUhX_~z7xLQ@!qt{S0j@HtD6+)I7!Wj?3`tta1Z8Ver|y z4Ev5Y3v)c2NbvC_>ZCxu=XW&M8l6NEZcGqiYtM-j@qNI^jz^0Q@48}nrM1!2%W7`= zkVeIVb=7^!hxv7o-|~3f{`nsHxjW8!UbZ)&8x8b+?U{8i!;tn-JJ$t+ZVWotX4F(WPd7HALHh6Q?o~)2Tl31=8hfKx9`=2ou8^mp z+Ov8VH?Ux0Iql8?l*2siVgH(@O-8AETv@$hr{ToT_LedtYFt~##1oj+r?vL!$0P(I&K&&JSB zjQEeQS68r?SLlyloR@rg%*kF0|C~@W)_eb;Kfn_=dkjBnXScD9?T^qGc8%ev+wvLb^a*UmYeupRL=89@AvokpS&Lm?l`;0aJcxp z{9SU3f3x;BUU}O8%eiylHGLUvVHi4+)_n88zxn@Ma&$yn{^%Ti+KN_(#*BMH=p@h9 zl9g&`!@=w1&AwZuT4rIN_B0-TbCrXAL3kTNBj}`bH?+*X_uaE(X$5=L_m(i3xC$zQ z6ebxfWH7(IQjBA7`xnt^hQu6n1Bp9z#i{F64S!(~y#eSpBy%S%iS-GrKSDe`zE+u_ z4<&IBy)hwRJqgFG6J)bE7c+z68)x?9iP!}M9&!=#%Zdebr4#5F>=>j!rG=D%KNvHZ z1LI(nR&@ z*>$(hzHQ~VOTH_`o20n(>_15H<@eKr`QI%nnyGvwKbVJfLu)WExjxr(R+`7B)`4|` z4&+i>QavHK(UE0@`tDMif2|h}IKAm9##05xe9QFSfYM*SqO~%n_Pgv zn1elNkZDp)CIe$oj{5qlP?r~&ZY`*oXqOvpxL0Roq2VvvzVzI? z2U9HS>I77k2Lw{es_=LUzTlrT&%nm_Q@_MU@oQH#y6Yc;a0k;ZS$dy3LQ5W$2h|Za zE}ro(@YnGL+~boxTY$1kd7~rTcXXNOd$5>V(a}Y1;S7ER_M&HLe@?I5!E+ID<>@{Y zOV6TL3-Zer-+lkBcZT{xeSm8&j1sTJZ&%`(#*Yd-jYp&4>^>aTBAX4JrUuo)=}lN` zQ(jW8T&3hGpXF#}<1HMlNXMNu$}LW)D~#WEWDH{b6Zbc+WeNK`&8~CuE(};4DO_6g zPW>8tF{YQDYpQ`p@}S9WsvBf&)QwMPbKFS`G>+ZNx`7Hf-94=(kgHC)RVhx4>6+TRG*m4qE(lhqd~ zr#$|RSW4-}ydJA)xz%H3H|#Rq(|`pOss+BMHCKn!_kmV{|Zu~|e2a$}8; zEAjA<`RB~?2%mwsBpH&rUj4{=tlG3Hf41pyT ze#hSLntegA)?gig=5>be zlI{h+;(j{*%S{J*K0tjljqY{_B4(jaL!DZ46g^-`dAFwuGWphkEL;Rw4dwuqaNyqQz$GI@*Bn4OId(OAI!7e>pYk$+_f1yarR|>U-DS9sUPp}um#oBEps1R9{ z@>7Oe!v9<%t!?XUJA1~V{DKUC$Qbmw%wbSuC^95%gSqu*mNw8jIRAq69rw2XlbP-= zMU#EMX0>~J5&G2Sk{ePbU;RV6uU-T~@KP*1nj%)x*@$6@ppu!v3>E`}!Imh>B={&= zMn*@>ZK@C$Dj?D_yZ<=NAGVqZzG@P|hpr<5X(qz%;Y?cYTb+fLA05r4;`m^ub+S7L7XgfnTdOkBXGGhQkrPAuknA}g71?v7AC5=G z;pl=trbPWuyWF+MqvBe~+$kK@k6DjO#ne1Qawu_Jir0nyIX@K~AJoq~DSL1d1>#a5 z1HFZwr7i@C0=!}pI`oXckJq4&`1@(wKbpDy#|O<8Ve;-9mBu9jxN@d582oN(3bnmR}? z`6|~Nq4^863hv>7Yv3;7;c+#<;j~kDctWokUD5+&&VQxYk-Wkff?b`YT)^7-Nw|C2f5g6zmFRJF2U<&Wr_2cWuWvee9{`jgU?<;H7 z+}7dNVc(GNl$aB1x?KPxkqlbD)iKVC_O&YW=NMAzVF>o@F& zAE>>%F!1YoukQih4cnGEBesZ5ZjLPV4~ELcVzyBErab%F8B|H}O2iSe(NZExm`Wn` z15#qhB#3Q@C|1QP=i$(;p$8l6o}QqL-KR3mhTZ%3mK<<}bEtb=Uv5!nPUn?YSA*}F z!_LmnmmJFJ{B~rS?&Uc=6le*w94k0hptzJZTzChnXhC?Jit{4N$g>#gV-{Ldp_Jo~ zoS$h?nRl#D07)ORYs#|tF;4zC_`DgVupNcxhbbNKl+ZEh9ut%2M8J^22Q#I1YoES)Nv;L%VuQh){4)Pl_O-2At0w38V$q+Tb)v3Xd%^9W6aJ*sVJloZ z^K0Df*!*XIA2}+2#{KS|l$)4E{OGAZdoH<@srp#?e0^Q}XIp=GmPbx#2E_LA&RaH) zcD9#Lx={+?ZL-pj^mO%fDT#g;E~FU8z$SLIurlFf>-`=Hg-9u}-_$~38o(;eH4)Du z6?Q+h@5fq!RzPt`ipHI&G)Lp`O6=5Es@L^hRddRL1Q?y^T5mKn9g^Q-ohAbZ-6yVU z{gPRBOop0=P%cRzfw+xxTugc1X}8xl*v(L)ePj|-;nRekh&$UyFal!=35C}IEZavi zpv=#AJ!3y&Qzm4K46(*4+lMpTO9e+ve=z)r%ZywxU7f=;`g<-tW>1zL&vQYa&PK~8 zGo_)-%xBvj%{<%37Pwr<)J_`hC#~jRB4Nk+&tux>mmnXKdN6u~*nw~6%!SIOi1QF$ z`xW_ee9!9X)4pB8lqzA@z!hAc(fgb-eBqfNEYk}+gu50|UEN9VHyp>)O(?pcxo|2HFU8a^t*%}Nd{gsHvrcJUIElP-Q&bVji(GRd@@9n; zum4}7@5+my@8*l9Z*HGVAX#n$OG-&h_>pnDP%ic@yS?Ox)=yt-%+;gC-t`<4oC`ZUw5RoHn!oQvS zz^@5Em7%z{&d;v55>9D>Z>REx2Wd=8xythWz`y*Q_Ssp|El_1zeYN-WOS%GUOX%x0 z?hNmiV<7T zZgZzJQKv&2)5bQ9Y#LFj_Cz0U(MGjVHnC-pl^-wT%o-{n{gcu_$3a^{{E|q2vecj+ zE>?t)aT#tMvqMKZno20r3$IenoUOj~hIsi9FTt{wEm&ZTp#r9T(~uv!`trS@UP)eI zc-3JALw}OYBEODi(JbUkBrBEu%cOK6^}4Lg{)J3t?-(~Rdrstv=@`xDVR#Q=dY(Fp zOw9JUnoDFZa6U0Y(Bv&?kGIFM!PxN0m>aK?M&nY&(3?2_pYQq}yx+JO(^Y9@(?AVb z)LODlhFMUuhUJ-?m%T|w_s}HOwhH`@!jdHaS6(9jx1ZV7K^H$wlfFA;x1YiuOUgfk zYA{ab19>``BiKf3cb=Kd`ylJch|raPCJ3-DI5L>DyyDp`FZbrFd7q>T#H_7M>$Rv> zP6HJ8#A30%9~4?>FH9Q)V?7x+Z!J*@?6D;FiRAX7GY!0sW^xfkV;nk>%Oi#lE3SjA zxByv~NRwwAg2&S{2D6o1Plw6VT230r2Ubp}XLjELGe*PN#mpFu%`~LLrP1|YKix~q zOg(JHG!uxsW0_PPx-!$*n6;19c`#dsVheE6HVKgK-~Bga=(hE8T7pabX=DNVuHgRg z?gF_3l7JpKu>9db~8rR9W2_n>tH^BU+x}YGqn~A2Agz=z&it4leUvKBR&cbW)(f7?-P-bM>80|vX^Z8_O6uJW%nPc6#pT( zkj0Kv9=W@pqOo9m8P4EM<7K?`s)7!T>H@{up0_728}n~mg(MGm zlV&weMow(cOFxyz5`mGx2z*MAPwlw}KE~_)b9j0xKU_NGT>w|&bRiT{LsP@Q%FnzC z-L`HUG79+dAfKQD&rHY5hE=>muNf!Bv~C+6kMO|?=^$(lb3;30esvvk*6a`sG;hUs z6I$A#qDg!c$NO;|BIpVJzBfd^O19{)@2TX)OO|0~&)y}7nBXhz#DA8L>zHR`t@7)7 zrLbORs>swe7iswrsnHW9MIUie#K`3N*6 z7=msi1qM@4C_s7d;u~;fG3W(a$>5E$LW8J?JCx;uIq6oO=+|{buz(h(dyRpd_?|)C zApE)9%p7ln>-98{H1MXct>YnI+!rs?qo;_zA_V&myG3vZ!Xs{ZM9ie}kI0qA zBR`xx${#$g$g)C@-L5=Oo9wkZL@0ggyNyN&*oc-K8J|%cEzjT?{TT%~X0%1C4I zfofFe=lV3CpEav3VlkWA(ovzeP#oXX4!55r@=2Gw-cj$YZb->Pq@Cu8g>nvbO+;{K z>U?WCirs&U=uo`|{N(Dq|1_o7iUlKEed4FF2HT}PN*Rxr+uPt1!c*0dLT z+79lqQUk~IMckscY`Dsot60Qh4#kpRwx+SpUDX&|=B-o8m2w#^I$Lw@3%?e&ge^XY zx%Mg&1~}6hn-FT-(9!eqrE`>2szRo z6-8Il3w2$0x4kgC(WT9&(qB{&qk`g@R074GPnYbm?D^#G8AjFXo_`4s)8g|g!^6;y zS8|tLI6^BudX-c;44X@wrUZ#22}Qr`8f_}iqEiP0nDTOEBnqf?zKK7+qKd^{6dDbF8XcQ`7%0J4?2m$A6Qh3H_Ey9u^D~NS?r!p)%_5Vs8+~!@05iK$ZFEf$IkLm)sVOYF5hak$FDJ z<`1>z2s4bx1Aeu^)(>(E7YxijH)!@kT_ov;#IBN~VpngLbec)zx8+QP^g*7HNfi03 zm53G-&GEmYKTFcwUTex}6Dt)?o3-Z58uHroRtl*?dkYEk-qtOd7d>`A@h+i7+?GH2 zr&IdLA!I(Dblk+nG<4+GJpbhLCBZXh$BW6h-qf_h%%nSxWS0C8^Kl3lLl77xT~iODxnSqo4VTk@Aq0ykNT05FxpWVG+ws7^ z0n(fmjWK-J2q(r}9(hp7ZIp)z<_=?(`hUS;?p^HHCYU=G6zfF}b2|WYEBuQI`06nC zX?c#%O2~i~)2Q3T66gAHC6A5!qFpT<=6;F8+}Ct;+Zw3#{jTFxR?14t+Fr{mOp{R7$k;KJge3tX*WY&*1alXGLyzx}5ekjox+V?4qnoEvf~+@@}|M%R@k`E75rH zEzGc9_of@^Fl(t0jlJN39w%73zGK6uLiKfoN)mz6)Dq9wI5gc}udAy-$xW@U0z5CE zbAHqjng~t!%GIjQ_d|DWyx!^BJ~zB%<4x~6kq_hX$n|PK-`>5pY7^{A>dh=o4pZo3V+WNKO zeeFXeT6VqJcDrwVcxHQVwR0U$nhJlhM4LJ9Mk+3lm-##;JgaBnPo=NSoinTBN>boh zr*=F)V@~%cmd>8L@0S2bwXiU6ojX^yNsH#)D1Q}J+BG+cPqsDtZ}*+9t4Fqh{G&Oq z+r8e$*7oncb5qBL>c-X8fh&|@<>^H(@9K9^wdV#RL?N?)^*d2`=i4p+OLh1|9=6Qo zez=N||x%x|#Q_5VK9 zLW{$`Pzx$re#Bv4sDf4|>=QQIg`nSnB|ZBFIf(C(665g6f_@+0SU`g;AoOWzIfg$2 z@|YH6@VT8&1mDyuoHR*L;3IMi@e%{voVUh6x8X1xROq>zvy4LF#RNi6;?`>Tl7$oH z{E|FN)~fP+N-kGQ^Qabzrol*&D}Or6^`V>&vQ?e}c^WJ$dZnJQ}axUx2GVbcz4I9P`tZiDGjGg^!J(fjm1-NUx1!`ME6o@t^RBX53c-@;P(eA zwF;_jl3fHUk`ND?9-2RfIzJtu0pb;e{$5+Hn4&ZyR)ZL|f#9qsx&#%_w{WRrO8i6t z4Iom7)nR#59>s0m2|T7x(Q7KAi!6p$fEWz4PtW-Kc#RxfsH}e~BgupYe(8p$~#3#yA#~oE4Vm6nVXU&D@A&ddymiCu9N>3dxKzfSu&E8 zytqGKg+ny&I=gd$dE0>uW5MCn5&orNBop7O4%H#I$Staa4Y4PdtK2l97inQ0FwY$_T?2mr=sLh}% z4ShK2e9>OcB znuTNT^uyuz4E99AX`gk@wMLrbLP|mD?pt4@zF1s7;={^scAY_M^ zGHLZ3T5@gcK37Vt*YjP-?>xgWu*@}xUc)QQn#dcR;SYB6W47Pg(7@315Jk}J0ZMmQ z-kn7*ZLuKW=@CG)Y{AH!T%2mk{mq)`@ofYol}e?O+`4T`*Vw(QU9}$HZ1mEX;9hR_ zHJ6=6dyiT)M5?c;ZkY87Z~x%884G^SdNIq&$h-F>$jk( z!22RSF{)x+8mPS&5@-tLiPxvmQeZe$4{VCY?vCce&sM=I44<3sdD9ULo)r}eNo1s= zKn}f}OlhJD9fAi1%+>j^OqY>4?S4aI3qb*Z109*+87%`GP+I=1_Cz{xS6E8L9WA^V>(;N2mH5+9rBG<3C>AdvFbSf+Day7+B6UxQMJIzV*F;yhG7*(ybNA ziR7H`KO#B#MUkA0e|b5ntGSdeN4{7o<%=cj%K%7(oVjqaY;w%1^ggT+b4uIOdSsi; zM@m~2`WhxNiu?%!JW?t1G~lE1ex?@qi;_wV8Hc`a$z&t82FhS68{i`Ic{d`pLr@c^ zD{3Zk!91mm!BSalg6urgecyRYG=J5IVQekXeu(}r2fCi zF&i&8$4ugvSJ9xzE)vEpvPI2B);uHzF{Lgyz?A7pjActU#WR?0EQOichuTjT!LKtx zi(WRC5I_W~E+Xk*QoU#J`HSL~B(q-!kn(R|B#Wtcr&tWW?mz#xve?ZW&g3Iq9wl!in^Q|%F=oXpH%;QRDRk4{otM)l zwv1gWr^POdYU2Eyp_<5)+55!hX0&Xo$;d`DoyxSc5wmrTpH3T(laISxC!;C<1p8W{ z*~TDCdD;ym`hG&h(icxv3$yQ@CzQCuWMuYF71rr5721TZ49NbyC68Js%MRh`A=&ZR zuOAyTtW5u;bljxfAT&H&gr+Vg=_=f8Hb~EK)d{+N#HI8yWn-Z zmb*ryaulx7QT89pRgHr@O{BL>%vBe-zk4veERqQCD+%|7ccs!KJIXiqiRHKK9y>a;v84+pSWg6@*xN)rp(jRm zNh(7UgH4lm3GqHMBxBf)7WQ?MeUYtY(lppad4D=HMlK3nnRqT+zoALPgDzoO)cMAyeLv+X#G{{I zSU{SuH-=h#?)(EZk?LzEo@}9xNy)Q=k-@{jGi{O`zCTK`4L&F=3N+vs!rX4I zkkNp#Z@BMYk;S(@OXZ|j1I1Xt$!M`LMn32$e}CHniLb(*gmPlLZ`^6N97w#&*6 zrkR`mlx&A|ytE;`Q@$91iN0QhIuvAcM1kg0{xq$r$t|R z>A12IQ#|_6xZd}SD0laFG$LnmdqabCYuh#Tf%3r39y?-By?G+h z-52z(w(}B=M5FIncB>X}{&;hF=!&+9(9#n0c=~F}0BN_a9~4U&+vz%7u|BdX#wK8d zlpjNcJMh}tt|5{KDf{DCxxswEB@>UA;u+r8)lyu)H>sx!X0~iy;&8dwQBkM4>B>=; zG5*1qpsu&fVnjM8OPTG4e9_aJkVh)1dg4C?6;Q&i2Rm}{Q=X?87zrbW9K7Mx~q zI*UdP&AXhUf{26mhM30CGCfzHr;fXVvUj#vP|Q+63oRF!AxXdEw{od(HL71W{Y@>Z zG`7sFrjGx-q!zgtMv}%RP2_0MSG2F`QW%$6EELE^1v>|;Xu;XNf>&JPvMX_B?JqZL zN{Yz$mz&Rlp3(OWVLKGzJ0uL)p=}e}-sd`9zlQxTv^60I z1V>c_()(RfVgF!HL~S7!QCrwZuPDo1iLRtj26Ho1g`mi&f)&V<&_0n9aOX#{0%j(f7ssBv$D${l0jY z@8tfbrutelzJK^n=oo~Zgu#=b#Rl7df==U@PeCGqQ)Mm${EA1oQI@)*!K13s)!t1ycU{2=f|I*K4%A@yYN_yRMJ-@|w5b%WN^=oMoFsK<{n zHb8ojj4RPGIaxCcJfXZ#aC{**smdApWeDR+EdW5dw}fbm1Nc%{S{9R~1%plSgkiX) zTUyE=v)ABGV{RjiDsnQHm@ft^+gt>4M2#k`{OfLC zBs{`AqLha^6<@C;=9&=#7E7t1>TBcYQ21$+`IV-tEsqE0F4)>ax}6r~BMUO1+YaZJ z7UOH%w4E(t3%Z(VVSD5KF5GhiP|ZcxVVALC`X+(h3`URk{m&`I`O1eOX$qG+4 zg2|UJlbR;xhXrg~Ke5|k{PX6-Zb$0Ox0Y_5lR84hvb$<`Rq{m3@mSwA#TKndeJ)_d zJNh}&S*G6UaBR{|c$S0na{F_U9gWqc(PFUucRP%;WT2Sc4#BEG)^v=fb0mUm8#2xk z|AO~3&k|II0kdS1lE~uqALYnMn%qeiBtb(v_f@9EK&U)ICL{h)PYH;t*3AXj`J@Ss z(h6}23@;mz)B3CejN00$H~yHj>BmI((zi1HODR zFc=slZK1?bocoh0xc$2NIvgf#=K3MkMZM2up2x>}3(YyAs*SD-1Y%t5CvL4>!SP;5S3+E)LjFQhK~}{=f4z4o^(&#A%wOrr74PEMVL|B?;B&;M=-d^H ze@N_tUX~H#1sPl~;#`OPC%R(defn%!k$+gQj-C-a7%Qh@Wk$O?#!3%ViCxv5X4v*{ zG<9?bsumtCC9Y4e{05KE#*&ghH#>D?>zmg%n~%&tbo6S#UFXs3IEF0MN@;tsmwo*f z^X}5cK58+YwRLBe_#N7BypDH|T4?tSBuG0k+HU_mEx#?_+27kC}I-$LdQYakkLOXd8Z!`N@Jz zg)#;hF9ITG*CK&%9VV!}4cDDGWmI+=L-UNYW&==rrt@aACY2(FK4AJlu};2V9I@e9 z$@hti-*7gos3??Hufc{wpITzxbLDsDJ%{{!iA6}W~rY9U7V$$6~>h} zO;oZ8PY0J)9tnxbb~M)O}E=}DxmW>j>WnMRK)2*&?m0; zvF2mVhV+26fb>YG^iU3cM^G|6W0Rx@QWE&PBt5z(^2;tla6|`8%1LHexz``LuSkblV7Z2yp1upV%w zi`4@z^Zt-Jr}u?gCo@Mmvu_DE=JM1$!qiE3d!}bD(`H6_^@VNbd*`yplAsxc#fl~| zCfkpTW9Izx?_ubQG)|vPX`w4q+sF(??-&<*nU&9<{O{rOH_TfNoi?bvbX{G&G;`Ag zpiwz8CatU`H8mBriLkCc;6;jzaIWOH%VA3pmdXX3wZao!j6w06L1%kL_4@1ihhod?Q0Ja+VyqTRzRvIXP z6q>y{ycP_7NP&3;0-$X*>e}gX`c~(crNiDVD!=`=)5Eq5ZS|F26fD5CG-BAPajXs>`ZZ>z}MkbM=V!?bRS2nsWl)4qy* z73UYM>EF*(PSHq8szxL9O#l6C%IOl2>YhV;2Gf!1{;mwvWKvutO*bKYWpH^af6Hyi z(OfP^bCYi9k7SdhG~w=lK#o2+_T(7A6JM~=n|E8q<|PHk!F2gqFiCz+q^|9Ti47B( z^3!P8B$T&kSAF4VInUawf*OC0T;D$e(7qNxdyA2De-&cnr6{~FGSIeRB`E)qq6Job ze!jmHQS3h>9+ODS@H-e4-O7(+@gNwUkg{Ay_i{A6VM&SP#HG%HNC!(KG|B8<`snel_zw^LLea)i?!c-pX~A(yij*0OIz91)3SNR`;W zk$rHWrTpf*3@#^=dK^tj;=AIa53gLn9L!;yso*jUolc}EqbEVn#P2JXypknRLz#B%=xAL))ZCjwW=;UtQ1k~C98^W0H+6|-jzPoTJ^9kbuIUB zbp+ka7oE@kg6UDgK8M%|`t)Qf@V^56iHLdzA((-Aaz3C`jhCk$56F=YQgi1f6YVo= z_oc(S!;C9)A!3LW4VJ#1EYJk88i`_k{q|B=Ee+p;)Qk?(M0WfN=mf|x%7(LLM&0qO z%(z43+eFPFDnCh5GYoHBCtObb$57U0F;lbgzA&WW@wyt!+tb6t5(P5(KS9u$t)+Lj zh(4RE8Gp{>1)Hp9DYMC{ z|F(WzHd!};%~De4n9fVab=j1+Dertz1_LD^{J2<%KVI;7K}yPOjf;OWNg2}>*)m$j za~B@35Rx&84a7M^%&584vu%=?iR~TVTbc5Og<2qJwpS2eq?Ax-gJr<${`MAGpFUneu5-T$B34jk~AG7Vk-8>q)=H1X@B0!5Vh08V?;Cz{b~FoTBH2fq&?YEp%WpZDIQaVYJq7-9mdEnMJTW%v zFF%=k@lBGl;(RVTU8d~HZO;eYtstc7qw9i|!)a$vHg2w`2K3z0qp zEs-pkC^Sp#v?Q=pmUmKeb4iFcUBbm(t% zAv3il4`zs|pG%4Jq{A-FzTU<$0-QwLS7TPQN_U>BFw zz>j+;_QDgF!jF4D-_+1G2|l{F{F+Pj0+U3~HA^1CetUD%w&D)68By@CmFZFxjvsIf zEfZ|aA$iKpdI*M~N87&S}D?K<;{ zzlHTNwhy`BDP1&KN^UGoF@HAM-K+m%l2D%bV#AKXl#Q|V<3uIAnBA~3gq4w`5?C4O zRHFQ1??ckkeL2*R{AR)1I%7|#sKn6IWV9M1x^I??&N$fBMqL{lHp6fMB7j5+xIIZ$ zmc7u7N!45s99MK{B)8N=a^Z<-Sgvj7z?|(MKC$2AmM|22y5eWBdyRJt)gS!S#VG!u z&b~tLL+ck@+52TzQ(!zWE?Z;^LEHcYnb>#m#`qGXRq)DY--JAdR0N%T;RY2k_`t8H z6GVS&lAfF=fW!uuIw6nqRVtT0tY2_-lopFUJoNC8nM%96bbqX(-FK5%^(66-h)K-wT4jjB0N106r% z#k#KZ1BN5(DHq$PN2PTwt!JRWl->&m z<0Mm|t$TET7)ni~=dx<(G*>uCrgNf!c)!gsN~U=OL{hA>NV;|*Vwmp zrSvR)o__}Sw15Dvhd6M0ck8|-h&adYU(Vhg*DWlrKGcH#A@V?wq*fBK=9nifcpqyP zBxgu|HZY0%7i-O0v)m{5!CzR_3Uf`5xDAsvs16&eGuqirfPzXDe33ux7~dFdUoI^~ z-L1#;?U!>YHLWa7%Ac|^i&*l+!@A~60gJXb)8GL)Z#hrlUV)f{|BUX(`6^|l;$85Z z{{GIvl$hH&NYBIuE0#wb8C#v^_UN*eEsRCX{wvDK+i_q22svuGKQ_XK`$zgm^u5r? zPpfKp<;U>Taj!->#031482rLDhr#5?`W-Wi33^6{0)Mw)XOVznFtee11>1n7&%&(s zN<~tQ@1M;)jV-+D|BqI)yUPOdOVSp5a2hzGJJ&3ENpkMY3*{P$hd_dXPYn*=Ua%b& zzd`3rqsMen=$?2R++CE-W9WijA?Lh{4R4I9F8&p~hUfUo#;Ex^hhS*X`}7(e61{IW zDf)L{Y?1Jf38Xn_*vLiFQeJ27l3i-m{(}A2q1P*K4y+Bq{Kujadh?=2nQ9k~xr^pA z5Oe8s8scgT#Jp$<&rdfGz3b@|XU$FzVnTynd57(u#m7PQhHING%`(08n=W@Nga{=e z;BiGY8sr%F%M`Wz|Y5W&C-vTXYyGMCwk+uYWf{+7Rnuld!2=v7@lVGGV)!O-Ceu3#DR%nB4MCHLnZ>XDRPO=68=s@1~$^tnOG$JCk|<>$~Ka0{Q;onJQixu=`z>g?|I7T;RxsC{jT7u8RPuX)hIUve@fLiWoMml+TC@Ss!)wl-s7w7!4G-f_0UXj=PPxOHP+jGFRp3wRvr`) zwLeiOWV`A1_#(~>YC=s&+Z*c3ZWh--UN$e^V5m8b-u&_UTJLI5I^W#n?e>xoH^D>-FFz^fut*Y+V`OE!<+Jq4x!>cJfg+4n7;x( zwF>{OG|1o$m-H+yki)Kiao|!R+~%nNM>MdvWA=cuw(WLmUlQ^a zZ!6d~!-@*1Weu*HZ+@%E<+X1sE3vNu{q~>+&*9`9=ePCwV@kR5B}0F;-ws!kycuRU zzzgaQPVx%sz>t=!eK?6=DC)w~u%<#Vi|)Vew#E0PK$w7DBuT|1SP$cD{ljvz8G@JK%u2!>2x)#)Ig}hWX%ZgWzjuewDL86jR-t$02MOj3 z_Cg()K#p3q{agy>EV}jHC0|yX5x}dGtLT1Xvv~pu5K6_yMviiliTpq@eP}dIKS}1F z1DeIr-*xPl>KHBZbKo{teN{A$fZGV0EgVSv_CKD8xk;1oKXfrn(?W}Wo4}}O(O;!^ z)S>YOw3Mhe&v42paaNpc_)r|Ivb*z;87eCV@wZfT0jMPgvxx^qUiSPd~@D0s94{iY!y68lxp#Wz!G8vPvtMNxwP51 zz7=e1a{sPpTk}cnxsFn0Aoiai;e8>2O3H~g(&-4p?1B?^5Zq70I!=J$81T8)0iLBu5rFM6T^i9pB zxdJw z+D_bB2eupj7^D{W9cf|MSX4-k@uoef9t;oqxy^wKfL=h?bGI%DGe`vC;2pSydzj$< zQFB>o7;Yc2*jXwm)Ez#uI3UR;y|q6OZS?0h5bX(f{n>YgqE{mg}%)bx@k9}{3wkFZJLeqARW$NEjU_!X-@1v5f_Q6L=k(30$gm; zmdF$PpVp~lIKUT+bypY@Z~=$L`1n|yhmIabl<`Nx-A$ZT%i-*+!1{`?I=fqNURXl! zs*deL>Yc(vBaBWwUO(CB480(XPC^EG=kd%;57*pov)!@yD?NycB-Q6PvWzna^sE7J z>x`Q|hiMQdIYBw?J+47G$n*kJW#_GA_e2^t-7Gwlj0In{KS#~G( z_hn#~SEj-&r|!{FIj+0`TzV}=CX!Y6v8Hm9E-)!}a_1iEbiwRa-*Yf8ipcN9{=fx6 zvYd|?lna4@%u0$f_V*SAL}yShp4g9V|rh_i&vnGxDBf$l!Q!@a&N2?yKO1WYV<WDSYOKVhOseBK14jo(Y+Xuu#2g#;3eKKfHYz(=FH zNYO;7;nAqTe>wuZ`$7mXbL!EFt`l8?<>fp==8x*w$vCNC{6v=ke6l55t0MZo$vJFG z{ysDq?Qi<~^x4$@WA|gMpCnH;ibGSsav}=oF>d4ou|YPty-!KiM-)v3D^E6y3*sMj z3B8{5shYLBbcBO;NpG(w+Cp&TE}4C*ztL5^?=V!n#w0^ur?=OWZ#v^(Ul7KF0RaV0 z5$ue|&?y2Q8n>j_xyA!xyI_By;BFzvrh^yN@226!9hVC)UOI1*lr&%2?upFnpI}DM^5QA4zTRfAVe;n#+9(sxah6m0O;H#W$FVquu49kg6y_qx4_rHxHn(7r! zyLOa21?{zg6POKDNgBcBTjuthb_Z8uTo3zV@%N>jp4G0VhPH0|JJsQCOdt>3>b5tm zlMjdgP*<%yxLP>1^+SKG+T;7RbPZb{I*u`!{=%fQJW||lUFT{Vhhy=TwQyP1w_Pca zyX>#6S6*~M09zh58NXRX(Poa zSPh(Q3&p!uhV#OC=J2Fv-H~N$)e$;wb;MYkHuhf2g#<~=Qs!WF%O~gOaYi64tDBqb zW@=QAKO}%li%?Y5B>+IWBe!JwmMMX2&x%>d~3Di6h;NZ6(+4vc0UZ66-L(zdsBz{;$;s~euMHS-EH z#p*=lL4F2=%>xgDuv3i>z48y#Jgow2k!GdEEc$(1v+j`|8Pf8IgbDMh1!dW2IAh3M zc2%`_>6dL^Ssb+qgjpiQC&{VoxoXQHLzArwja)U1I^*S^zCR_iOk*rohLi()X5*t- zlj#ynnRLk$G~lX=xw2#)r28OKK%V&x);BbIRl2Pk`X*<4{tfIH-6NA?Dz*>#RU`yS z+f&!8?B+%zP?R2dl@}{p^xC#~Hh~*=~0}O;R0d<9V-J zdPcD*u12MRMgSBj1#*{W=OX}Kw9C)gFah1p!uJX6Ix4t+5Pw3 zHhVtJc_!ts5En3(I4mDc;{mLgGJ8s4J#IDf*#X?C)lD~y@(!)x5UfIw>~wm zBv3%l=xeh&j{5RwKmjex$17EC2vjJgo5wf5xwW~gtfZ^FYe9-ow+@rjrnjmWRmFQN z2fj6+DI;KvyuHv&d%q#T_+BoJ`M%TMTh;4RP#ll`xNFD^!&zJaaRT84)miZcLHK^p z{+Yxca;03!`>kv)RLhBF=~B{y(EZZGXWHR~PZF4`wNx;*aL2(}o2%%qaU~wf+YI+A zi8gU8#%;Y_}M z-kvaygk;IIP4o>3GghVl3O<(!@cRbSQ6$wsa_%r2*z7CC3N{Z4L|>#pjtp-f5xH3^ zY6rT1IB6CoO=h`ym2TJpZ2@v6t3w0~lX^`C+=Z&mve|J-0TVaU*wsP~n$na`-365n zpqi`JZcvO)Go6!Zrkr@$d^uYenlC3^Q1x$8uJTA;yNP|jsG!}3iz>y&o{ zoH#r}BKPpf;h#1h_Rq5miI9eKlFi$YAb*3jc9pcTMo*(N^yr#K?>e&SPLnMO=g&

      J{o%bBIQ@s`2B`o=R=`bHZrmfTla^DCQ;xy0Q?<_8 zda^e?$8%1V(vk~Um%r3MrxKm&q<)^u0|Ebz%Ub7lt$`Eb$!8r%_Zli)=Xojk3Hv)p zy*u?(wdWP&SlQjL*L%H4YqJN0C*l?Vq8Wwt_F1pnt3BFjhZC7P>^-k6*U>29qJ;ZQ zy~7vr1=hHHn$Jfr3aou>uxL|ru)8fU_-aXTEO_R0gS?g}*0i}g<6rj|`NwJ1-GmJ&S~Nrl)=ou2Pp zoUbG(aA@dyai4{1NEqZ_r<+LMY^Yvke>^4>9R=l%>B1t}W$M80c^l6y+7all2v!&^ zFAx8DXjmMg?tmI>&r@{Au`=3P+B%op0G9^+;OKz|_T8-y;i!}r z2U-FxlzioP_1b#x{Epv6AJ>xuU4B=aEv5DFfhCK2ZFIKg^X2vMNZ1vE3bqVnjZqdq zb;k=`>MS=JUf^%fnm4DxI0xFDLU9gAG0{FWY1q@MddFf;sT|5=wtFv{B`#|c%EAtZ zLgI-|2_WRr*1Xog72Brc4j_;6G9!h9N9q0C1t7x5GqpS|FWuiam3ecu@=ZCo3WU2$ z7t8m;?_#e7Lq(!UyMuR+3>gBlV5=LZVk#%v#DlBOY?#4?d6Kngw1CcA>TAlclAJ|z z&wLw-)d}D6;J^59D?xtSqSFn&?{P*6j zH!THB5-{FLGRVM=>mIe5OCm8Qk$YUY zU#fr&w&CIm?!ZOPdDQx-)%ZQ79G?Z5gV045M(k1Rfjjrznw2Zcdv88JSCseObpO$x zfGLr1s z65(7u=c7;Ay{5_IJ!99iqic)xj@7_AZ`(aha6&sBXT>?5^<2o;{Sx#U znC{HF-`T639{lZ0H(cCoy;r`1+1Y0^ywtoc{SP=knj^g^H>Y{2m7iLDzd~evF8LwU z&y$W+=DSa0e4%GHX3{kx0UMUE@LRD@yY2o)k5A%`^jQhE%=xa<14*L2C{0Lztdrgk zt(Ya<9+>HAwAVn5+H1+xkM-~>ZMA$?t=(O$?MTOcW-u9yAzr_PuAd@_iS=Bs({)sf zf;``ua-L;tYaB_WAxGo6|S@H?*70Q?-eV!_Xm+c8Rg^#+Om5(%5*VgV{ z*1Yfb8FS>DLIGdc*|cWWArwh?>b><3$q})towYOO5^>@x*&X{HLW5eV z&*gKq_CNmO_JU*OVo?O)=v61?*^gaQd+>%?XIx!@ptfn?<1sh{yb*{a4)2>cla*m?m z)m1|;YIjAJQHppyN+2k>FGJF;+(gVt_~=8#J@$L_1Q%~-nkapvhP>h6bqwEkbJ zz58FNmY-RAeaze7ayn+cjS|>I zhi-q7tJmJ8ZB|-5YSLz<3IlG>wB^v6u02BrBdHEzLGO>jyLEk< zcQ0;)2!=&ECPD8_7s}Se(@5VQ~O8Fv5Wk&S!RPm&m0u+E+hU2 zBqgvHKuuDBnrpW*-Bjpg_wDmc?o?+8jASGT$>r4guB^yhT&fnpZFF7AZG=sjHO zb|mnVf;6%}vSx85tEmr0_B3GDSy4NY!HzqtX65PjbB<6`qo7n#L)94+GovVvbD-gCBmi@ z(wQ6=QzeVvpu1x)+#P+eh19Xq|zW#e`151qb==19pw@uvLuTf|5bY zae8cg7M+nsbReUD5{+bjl%%w-K6sPLk&B4_1p7apNgGIzO&$VhW4c+xmyI?s4q=?r z4>pRnWcohh`eV1RI%YGx+wg5W5JsGmE|T71K0t12(tu9^ z$q)%fLk3a3ZA7^sM5gY@khF_D@?W!0(7(utAd#r}UuOKQ>HgeyH=NYmSk%o^VN3{P zkvNLmqf1?P+Bl^IxiI>2(9k5>O9*!uKH#)VJ8=Zh5>> zjuB3eVdeRs2jbH)HFIjY7*B zj;hb;gVdUEHa$j!o^IKP~AT>HN3T4TH~c z-MeWNog%8XRBVBaM1ycwtF6_>CZg7)X`7FccVyf~x%HJYZVxzwx`i0BLgv4>A%f>P zeqH{@^?MRh(+j8V{Ax)st`(#@vmJ8@VWwMfDEryxGArC;GtBxH{-hYN^mJs{p65uD zaql;;!tk+QEms>^74l@6K>tlBl;*%cGH zy+US-6LC@vM?|T=#0l)yhLRm^B#L?!vbBjcWyE z3&~Ow0!SZJ3XfBrOR7!>8zQW3c*c#`m+$M+G2QnB@FKDp1*fuOm|!9<8iY@Tg_F6? z*sj+MC$v&SM=F*)VRT8f2KfS>xSkAoq0ue^m|Q-Wao1qxrJHVq(zEmAs+~jTi$~gL z(#88rWmVhZKW;M)#nx=+o z_Zj)wv+z5Ia`bftmsp1pd~o<{;SU}od8MvN@RTp*Zd>78E}1rdzO~&q>KiTlx&Jk! zq%}48-t&k~i*(C|{N>W&>u!VX+v@UHaIxm9uOnZCSj>S`fWvJeGIY5>%=NtC3Vk)Q z-%Z7$zn)WETynz=D--UNK;e%*f);D`we+xUxNVqI_C3`bpR2D`J6NOc`u2F#_mpM- zj8Kbu#NoDgzu=Y*ND``7s~g}SnJMs=$TZtvtMly&6c~$Xfr74PdIl@Qs$B11wx;Mn z-j4TnMWVNrL@T23_!&7~yGGTx8t<#I4ELXl<^kteXi?gA>lJ39L}E$#Lki)y zkF~!Hg(}eDWIKoicl%H~dQ^MAG`oG2JPgP!gJ9(AgGVP)Q8`xGJ}P9fF4bef3Df_K zwvU?sgbk&PE&e9}v@6?(bTo_1Fk=aiw~mP*in2{h&TJ+L&-eM8NgAc0>{Z`eB;pa` zBq9I6Bq7hIvRpohA*u?NUUluMGuQ;fz9$T@2?f+7Vsfzqx$VdZi#d0VP8>XvK zwvlqP$u?-2m0Y>K5MFy4Jt<}gynx$6Qew&rERJN@)?jW>=$P+vB_=%uv0U%eZdVR- zWs|5o6Ue7nE7apzVB*f=)*Wn^4VU=`jm2!nBjB`g`JEI%pHYY$Xt({R0OSjVX3?&c zz7_d&QSr|uN&5}Y<|z;2FNi76>hP+j0j|*6vmR<%!KIoRVkPqck{FB51>SDLSbE57 zxyK9ry@YgOak1T5E8SDX-nFu7IKNNG5mu^0v6S@yD~2SGSm?t(E*<7}6gJx>lRdH~ z@SeGEMcHYoyKx;1A4)K%?03&QuCv~kT}a#(wuLk1d{I!Y|t zDvo3<87E(9EuEQ>EXkJa#E#?Kq=XRXMwF0%10@*fwuW|#q3y1ryIT`(CS5>*gc{my z{XOqFGn&yQ&V|s@|3Bv!X>{?7&Ybu1yqEL7q|cF^%WTKXBQhVi;#yEVf=$`a|(Ne)D^4FZ1`<)tLav?sSs$5&I`Hb$3TXIAH@64H(2 zh+Ghi3*IF+k#`X8pnuy{#2r>@#%nMwQxF1++faBk1&4#fLLSk%5@kxo$@uB$q^fiy z!FiVAsp~AVyY@O#5&7QQbYm(*%HYGvdyBSw3@SLkcs@nJ5O8|s(WxpbcSr;EQZosz zW~rIQy=~lSa49dRvIY)=3Uw^x@cSY*sPsJ%@fZ1vq|eArGT84utE;iWE?1-v&cL@f z)!J6p9(TS@I9GnwgRWQ~wg_#LW`T60CI!e@b+Z*54Mq@)s6=DaSVY|fJ;p~!jS%JW1#8`Li{WVsJG z8&;A$V-(x`t<9b!z6|~ooAWh?6~={UA&)eYp72&`Lu&R`s-loWTJ#f?uZi6)$LzuK zx;pQhPM6hE^)_vAS>rSN%pl__t?z1bFK%zU%{Re!*$S~^$Jz4PP!B~wk2`(6+K`5P zy{au_rSdo=?Ls+gvo%wQp1WZNks*Y~zqv}z(gv%Pvm!oeL>g)9gA_EiT+?~C1ty%W zD*U{6;S~1$dUla2>_T&D`L+~=wxx8;No-5eA(Bh^CkoYhn}o1yLcn;N5O!g2*zZUd zc3TgSuxss06?U6$JV#--_wkvo?ajU-+D|Q2q7Y1kL>*5^;G5pD@f|*n-JnlcA^G!In-=w{0GXh%X51$It!6dc;Bgqi&OI7})^Z z2R#uX1yxBnkRl0x2Kpl3qvn|j_8HwtW&%>w?Z^vAe+vbw{wE=SIcOOuL zCw5RRridNwu!9a}EHA=HdR(=8D@rS0ZFu z>&lx1cL$OJ5TC{dw#n|-xEC0S0d>}DS0TwP7GN`Z%0M3bwCAx*84OlJbcE?7I6+jg z3jES2+YK2E@=+e|SEbiQbi-OEL3$Atiy@ihAq~jkEs|dT5TsXdSzt6U3gM0fz)%fJ z>(zPZRINGY3O<8d2e*zoqzZ41cI&wGgJ4=0X}P>BfAYG&C0DXi?{q2GP^JrP|F7^0 zU7b$f*AXG-CB3Rbg_W9FNr%o zKEHmYZSxp@ZLg;{@Lu3Htq8F)z?u~lhQCvF1u4VIFo8XJ#`b8#dh5Ey-tSmzEcb6C zA?Vc*-yCGoWe|aDpHGOu4cBn5&HXPaOUX#|#)JTj0bU(X2taQ*SpaH&ZMGm) z1m3^s97W*aCl`h9*c0~gogl~!?q=O214~F)BogQ#1C!z2hUG?iBNN)2xIbI?rKMcT zhUoaBQBJ^(5yL)y&;cPXc?exbPnFvreZnB(22(`bbNg$&qq@5&(H=q-U(^RkI~%1~ zKq716@@rZ#Z;l&33e@X1&Vi(A`u32$MX9oG?=@!!^-2jdNV&qtvjNfIY%)VN=&qZg zDIG%$QNQRw^k37Wex1J$UNaBe{sSNU?XW{(iH2FYi!Uga6hUPKlw(~pk{2|RL${x* zuM5EhbVUiBnH}o9T$uZ??o$^M4$$jEN;-cRmR>pP6F#lss(&Pc&9-`_wl>?iiHo1`@ziGF*z`Byv<^-YHdlu zw@`m^H7zJ^XBXLx$aYgs__DRJ@VBRhE5qN^K;_2E){YUR?XKyr@n-ETK9EbGmyK;U zvyw;D(tw*CBtSKu!}I4_pFT$cy7{ejh*0UA_E57BWE!VE^u1(GD=thEo&U$c2WOwz zlF?6=R`iU(9{nH<_OT49EoT?|JCH3VM$;jQ&-QHJM`zWzaLbkq5?w_~#t`rR&nO3;-+;^QmsSyIpGnMUBWfI{yi+zN< zlG!PQl=9fmJU>z85xZFw6^O2=VT~N@D3@Vp;ehh5%Jq7Vru?&0)`nF?&LXBX#b?H5 zy@dD1w|<(h+qYIDHfy!-kKQ60LVp*@Vc9SAw~2f>XRE(CHYXKHYVLx#dwYW2z)0ul z%t@osc2(J)qqXp-rqRQ(R2uEim3i)xl+Db{yrm;i2#IbmVj7`eI#;>sY%53xaAlm$ zDnlb_djAi-ea1AJKwjEr&ZKR3=M@||Fx!2A3I|#3mYpNg9a3MtAk9w5^;6t&_IIz0{(s8u_03} zdb46qs^Y*mA_kA8R%4ga_aJEL@Z7r}uYQ^!3S5&z^-`D^A}qlk@@`o|=|`&&EkVLN zd)I|c18)cZ!BdM&d8f~y!YuQG zS&K@Slx~k0HqzVgOx+W`4`CWtYh1Sn9!N7iqFD{$g#i-++hx>3g89P58(UDXe`^iw zUkuu;L!+~%vqnU}@uiB+8l(E>TIEBr?RJ}k%sa9FUnz+VZUvl!AIL=28*vm54?bK8 zUk9%yg*C^~4l~}*0bJtWpvQ1L99IhH7Qn$@5r)<>LJeH)1C;aMVG{T(~9#a>>m zGXZ~&j$*bTdr|ky*WHYpECKgwB^1D&)jV;F?ERe2aGeriS zdkYq79bdr2LNP2Xh*ebdDA1M*>DHMG`JDYMaZ*}CEi;(S%g{z8QK=+x*I*0Ym6p%2 z?tef9>-!BSn@`1baBJxbf>O3tjMGOYtz75UqOCGR8>9M`tY@T^UW$nPTF!)q{8==i+S1)4=7qc$WR^RM6;ukjW6`0X?28Nb42qn|14P6Wxd z)##H?>gr@mY|FmPy@By{%?xJ1AvWaENxj3&TG@_=Y zCe=V|i4sC6q>K%vSu`{R7M^|9WKEtbZtZE?KPXa6$23uT#%qvdesL06v#(Az(lt?b z=+z5F*IW9)1{CRuvyv^3aJq)81rSL{d3xM8mP*&n7m%)ZUMRYbW?cxnZaNFP_WeDP zG8~JX4zN|cNu^Zs&vPGrtZl@baLJJ@$PjKnFUq`!v>8>Yjxn)Shr5B_`3#rV*$#ns6L+!OdArd0ysy_P7q z*R3g5+$&Ld0QYR3RvWCD|3U~@b*#ZnO4f+ad2?t`F%LYJcyoAh^)W6I#uRP*9x|M# zUAK(FGmQaqX=05T_NJ8^RT%p!GTMeT_6o-R6EtV8XH1H#?qO;;%bU)|+J0I}HO{sC zu9gAFXeb;JswKxGJCN8^w6+&Ey$O{*bD6_GYQ*FubNufu<(qD;Ra`&Q_i`A@tQ8u+ zh_{jo8g&hJ{aZ#=xUGL%Kj1c>IHujS?Z~zPF)3Bbp(|dUqh{KcA;3$br7TL46;MF; z-tFv%tb=aHC}0Kah6HQU?cy?Ugp7F-|A?>*t^4Iw!6Ctrq|EifzYu3vt9?+XYx~r3 znVev+%I*EssuLkmdc+Col)>KMHdC$2eIgHCkB1Ov3wov7E;@!jRH^EApQt7sz8>Uyq(mtr z5g`?@8l|jwQS!jdWvyjmMxMAdwA~?&wT_@IZ&&I}E)0fqtgCV3jh-$+Q8ziI39o3)@vd{f z%>C^Ns&}&AvWtoA1>rN>$HGHrED5+~co z48r7{WMQ&xP+b#Emi*fpWXazCz5TifAt548KmtR7WbmI-_qGBv2%C{r?j1>WF76!F z;b~X@-VtDnY?iH>J%jS-wpch@hz^wHYudJdTVF=OF)*&+h+TNWaf8O|7ea8{pCpD3 zd-v}7t5QFm(U%)Ci8FiRA(MWr^zSSY?^6TZ zzz~2+2_bd9@?7}=ff`VxJOYJ!FriOTC&_>!FWf#wUO9@v!J}>k!Vbksc4wi6>JvW4 zj9C;JnM6LB5E9(?OG*`d+lz+v zYw2xKK_o2rG3}V%#h=7l9w=>zwZyc0yXkZ^XE5v9`r01S%(}Cw7F~SPd9;FEH}4wv zg#2O@+^=b{tU6wWVmy>4*AVr2qLdS%N8)^q?8ST85w#}2R)}9(#)B1aI2ukMXZFif zcK=_IR8fc8#gRZ3g)EBW)h7|IVAEGR*((<8adg+y7RR@+r?Aog=G&Gv$_LKcQw}tT zJ>`9-A>IV{`R~cii1CQc&NF?bciFA6g6=(@2Y(ueT~MKL$ldYd+(Zd7^I zH0;w=-lR{q4|xWI&t3h)(8Ud|o|in8Y9*j%)`z1ta+zGl;+}5#)}EU!T57VKh3Z7e z!fvUdZ5VvyuU|+TYuc}{xt#AX7`@xeF2%6+d8U3VT`tG`BNC)@-JMm?8fq{ zU^@c34;(>~LhxX9gEhA6fuenLoG#n;YxXU+*w^fS(~4FBjeF*JuHS9iZIZgZTWhR# zYJ|G)*){uC?)vGj3h!>TA7u;s|K9uKX}bn}6L%g^n~rw%wdDo|MEY25a{-0`7VYMD4!iJ373$|i#t|7f3-0H!wu(SqP{;tQsM0v;FM&83R7e9 z=p(g@%w>ya&IjF&kp)Z7H2Amp5sU_egk~;UT)v=e{U3#grADdY9u_<+RhrA8TkU2A z2$Xqe<%Z0OX~{diZ&_MCZ%O$AhE10rA|>rMZUIh2PJ zm&6f%KPqA^LHDr*i^*1L*K8Gp-LxXH%3W%W79ZVgVT00R_)fYP+>oYw@xSF&P`2cl z;MT47sEJf^kR@&88_ZDUCvzi!NhRbkzv9lBSAWxT_5VeI|GVz0{8pj+KJ1kra^G`h zzPE;cs+MMp=at=G>@M;~ghdDkhod+xJc$TIgLNf0l0hZVe+3uEmF~=!#AQpA677%9bV<4>3u&DaP+8;Gd*MB91;2EpJ!vmnXixe|zF?vuy2s(UcHQ zyBO-1nZ(rdxrrpKrIgkR8uupd%LNLaa&K-&#^7oB>@(iLS?2lk%?kpz3bB?X5j3%8 z2rQCEIpE-40+PEqXm;x`id~4B5g~K~4t!4)FSI0hWjGJwjbUSeQWVJE7^a*vuZec= zc#+xdogx;}TR=jI$_A-pVzN*YwK1@`_!fPlj|AJM3Z{6PVA?#pYMTECz!)TykEClUurtL27bg?wfP? z>$;jm!o%Dt#;-umA)L!a-ZbYy2ZHe>eCtUwYu@rfhRPd9hqszw&5+rH_A$G%jt(mo zT(4A6c?m@J;UU(v3VKbC?Hdy^SJNllyyFrV{t?sBexY+bqu#-zDo={2E66S4ee&r2 z)5@!i3l~K|Lx?(9PdW0PbZIf9u_M{y6Mq2>77LGP9YtkC9{Yxq6=&aY->_IJk?;P{ zh|$ca?$d(R>m1bKjt4=|908*19CEMVFu(1ir(6jRN?OBAy)DI-?`eD~$%9YJNU_WF z>22xT#j6w_J{^z?*> zTSmrZxwc=G383m|;I3J-WCrnu4`nMwbR~KZufZ$p{sG1U_HXab)pMgr67p~1S;?Vq z9p#cp07?poBm+ti?uTkHiX=35IH0&5t2(555CyVhu|qkBzIdpzr%!1jTTE$UgV7i~ zZN8ZB*^oS@(c9PChsERrr>W`f6L&{D4cnXKO+M5p;?VS^;LyHi?e0k^BPv!dZ*}&I8 z|0=*1W`Nt+%`!ux1lz7516AR&+iChNSDJ}v$kmAe=rDfAca5r7`BDaxN7d(c?kTB| zD(G3cDSbT%Ig17V&izH9ZjAM0ocrf^NBv{@#WQBi4b_BdI((i;OIzO6*qHHp z@MkMT>!y}`7qaG^Q+`ex!dsqa&|6|i5v7PHysY=Z=QQT&RZ48FM{2F@&$Mk&zT^4c z`YE0P&p`3oZ?GYeNu>-jhccL7T-`Z`su@XH*kh8T3|Ud-K{+{v71!C?$KR@BO!FAngA&H2*ak4kxY4u$$kD>G7 zhW~4=nlk9Qtf9%~v`(fLx9Hw@J?lVHY6ES*V*Uktr+Y57xI9y_C8lM1M~}01$MUOJ z+8S0i()LZwYa`O-+NRT%?T3~**Y&MCNH+e2*k{%~H*HU4=T*_?RU5yvsMQh3et6{J zV-F8LJQ#$v8EOtSKRn1FU7$95OF~WLV}k@JQa*jP(Xq?1!AqsLEj1>2iRduN8F2); z8qY5l2(;so44C%O#Yb}lcWI(CJnsi@-W#pQ#cx6O8?6~utzYU_h5&H+D=v)0(J+7K z`I(E6P}u~TTq#x3b9=;?y9KFHhCbTc3#i6361=*lZm`{u@_p4T=_M>eH9EuyysCpC z9Q`jPhRJb~?|ST;jx-?&ag}Uj52s;S?m!oRfOhVx#rn_}#aa28O)VOb8uDU5W9{i4 z?0!b8D?hiT46VQ_L6~JyM3>%RAsFH${dGh9$S=uiRbsrBt`Liq5vq3dKKr%`>ZZMv z=5iVkKD*LVXN87QwtSTlC($vdAUt!R8OS>bH35CKG3Su4&T*a(KLX!E zCJ%#G^MBC!rJ=&MUZZaT1@d=L4L)#i8OoP<&a3YJImj~TdBaksHr;_%VxV+YDfbFg1p(L(VH&<+4 zy1CM*Rpp_s?;1{PY7ZMPiwpJ9I~v)xhuI`9Cvc#mak=EsK=KvUEAx5a_?0?rD_Je@ z2FDyllfEl{f%u}AhcqT8e&i7Qn#c~xo2mmGIa^KY(&`Q2zV5zjmBm%tuzkcE*Fj-W z1x=oKwB+%y`orQ>t6%PZ;8Sz8oD#qZQ}C!)O@rZL2~%C$g!gfyFbdW-vAk(XKVavm zfIX_&(jWbDO@pJcUfT_-WV4EgyHg<|dgD+gW~sZdeOT<`LB>zh!7rS4504)3;)Qmv zrR*m1B71W-^>2FoK5sV7iG0Ljv`?ICAo4N;o14JrfUzW|^zrw|Kn;_~;sULg4Y8l! zsQ@mLtCNDng7>i%_Z&9iYV4hH53ZEUH{d30BLN6WRA~kl3C{5#_MeE=xwDyM00^rJ zyEtqco=G;`6T4beJdW*KsOC4OGroUJklQ&kzTJAhjK8~EXTxzBe}{R;ycwn$;O#M# zBpTL67vqjqV$~65YVS_teY}(4{cer-4HrGE&RLT-e`?+bU#IiFMq|n)cI!Qrb7?&^ z!Rvn?3_41K$PVs{K3JR_qRA)96`IUY#)US#Vnc0 z3XOgHw6&NE-SY*`X$I5?OJSw?(Y{9y3#b7;0eVJZ9hc4ORK_TQkDSS3v|nWnn(&Qa z%q@{whr<{_9+DXjEwXr70$Qzn zwP6q}0P({}>e7Jk=%j{}AiSp}jMRy?>U^Pe1V3tz8aew1{7;?GTyos&|K#kW+mLp44U-;$Qu;H3fXV%fst#p74SvO_=< zg+g2d8f4hYqKVk#89K|&6lmxK%rh^vU}gq}Wa)kN$^qHSnAcdv5G(3W3lCbO@f zh#DE$-N}Q0vm00+;NG~w3_zduEzPC-Ele3DYgY}VV_eS}m51|-dt%~7N?H157R`*2 z<6F0w7nKri8w60s<;4c1jwakN6@EURmF$jZvBxi2vucF{U1vy@^Xy5U4t#%1+)tt4 zS!`?WmKOv;!Feh?;GNl>pBFBPR2N@hrJhO6t)@XTe!0~&2&;*|;^;vf4Z$@k&;j?5 zatG<$a}fdw{Czq>;65P#Tz>H!j6)FzO~_6{HT|&p$Ryjrvo`z5Oj7!_5x#FKm-%#? z#~9*>lv;xorQsbRVIUlG8ZMP%-dDL{Mf#D(TQf+5lJWrEtK+4)!6&Ej70!~fAaKf1 z|3f_|{Bi@q0ri{$gQ7Z!@r=PAX7a^#ckyM;76L)ZnGwhqYF^2u0piS^JB^Nrv+&x? z7G#ha=eVO`U-rIijcBmJvuR(p_~Bw>4I2p8&@CY8iAPk5_^#2(4#^vPAit+Xr(yr# z9#werJBL5oliic2Zc8FP#LaFqi-?>bwgHl1VZ{ldp z-BV)}?hL7_G&JGPOkL_4kouxu*A;Jn=LeN=ZB|Hdr?Ku30;9C<+_eVx8mb6o<9mF9 zBq?G=f-bbbj}_4{D03Y1zgLAli}BAn*CAqJ>Z!oD%V<8@4Mdi9nYe+t3a-#&7FY1Z zcaH8HRjEW6@&j^gQ_02AgJB>4y;241ZY?+%7Q$7WPboVXj+Ow}s8okzK4a}})BV!t z;~$6>>Guo843UK)n7R5oAbsQZP;fUTBSCBd&p!(D-4`$DRe#< zHS2VaVx0y$2c_ZOCDFM%;%V<9Q`ow3f8^0I#OS@yN zFHpi!4z0~Fo z{DZ|aOsbWh(7t@@c5+nWj7ds!Iaekzsq{5AmBg}CiG0s3D&_Lcb(OkcPLs=QcS57V zsiNcbv!>zi8drpfxZ}#HsC%&boap%DlNdd|9vNsNT9LkJf{kd=SYc0vCeC{cdJB@p zxp!z&*{0pT5+Tl&iq?V$9xxpo5T+$b3mOLph=sX4A7f=_pz}d|ZiwI|(>Zw|Q|UZ3 z6mx_N#-nqR3qmrSKb`9vm3kl-c16a!WvQIhQ}JMq5kEYbBkqsT?DFV?Idi9Nt)$>I zhYl4i()TclRn?>-u^MYi5v$n-v1*Dn8E=_(T3r-&Y5p4xGK{s4#>_foAkZMrFF=D4 zGC%~GVr9vqAy!617o`vl5c^!&o}a7Djg)v}VA6Ai+s!UVdf`2&c=sFHsv(u3g{xab z+Ju2waq=1{w0p-v1(H&Q6fjm`b3GYZwyPQ{Y!p z%(PY-CF8k#u5#%#BR#X(s6|Fs(NrY_w*hdWE7Y?Y1x7NcOIe}N{&gEVvk1y%hIJ&K zlVM$c@twv+;#g((IU(g(8I`@@WayxJG(F8d-xX$NtQ&FwBiY1Mxm1|u^y3{7Tc z&znXgQ~A{C;${8jeltj)UlZr5=so}^jL~K#3pTJg$)-~VX^>GQ^=C5aP%Q#J4Ki>s zij=JOTtVNOanqh_sKp=_PG3S}m@W)#3%k2XYC?GwB#PmckLAGg?4yBc`tXiwNz;V_ zmB|+(WGpOcjXYAXgJLeF`yJuta5HXbOv24%ab z-*uzNv7%-4W$C6h(!TkSW4=$3XAOUN%T%8Bg&PD1T9faed<820LS_^EWqs?rxOWZT ztaLA|wsnLx2M>#FiqnlpLJhgp@MFaYth*(Ov_@_m!=a|+h~2qxo|;$zDfuZ<{G7mqe=D0vA)e#oHAQGWgv`KT!jgrARAN)0-rUa{Phuh!|==52!8z} z(AL^*n=6m>N!KfJX;2!(W47{+kVKnfsw5g!_;{j>M6*=jzTrY8h|IUTETWthGD8p% zbyHr5-hRZlRLcu_1=~=Xjx|`1y$ z@;7PoihP~_KPW4q_*vA8N6y82R*C_IrnBWPY*CS(w^Mt+TI;IUI-g%D^;n#4zx!tS zMeJv(LE&lIl#PM2IUDQikq35tI-7S$=^&u24<*+-R6McX(%`g`bfXxhH|{}s zuU}g3wmL&|L_!w&pws3N_Z^m>hM%Ma7i*QRE4pq&*9oVueq(;iq_yU?X1D~WSWdA? zCmUDRcCJ}}X+vOb&!cPdlo>e?TVbO;Hl9NNn`4*5B0c_&PggS=VE$YIC%$YMrs|ODDHJ6MUm< zIk_;4t*b5D3j^Qx+${Hb!k+N!6esoWmcG`st--yfcgwN*dTZB)z#Bb|p6^_X2aJvq zF;s_z5T_z-6NyXshqbvI4b5$J)~eYy(3Q*4uqI(885|kzsjoWNmsD3ro>)G#a;deR zKt%bJ!@Xi2|c<&=Ip^04bnyKLeiGSugO1}B0pDWE51ok49XY( zOTK8UG9&+*dRP9a4RyBNE7=a-^b6ChtI(pvhCC`Y zPsi8fYl83M7n)uW)$*kEUNh-tzt1o6%{YD^iqmd`e4Xnr@t4r-2$5t&B8y6IomV<* zNx6B!x~+P^3d>F4L%EL}&7pQB#&QuWQ8ls>3rM%{TpLJTDM#X!N>I;;Lph--fh3UH zH8)TRGdU40Q;P7ahM$S{=b$?}9xoFaviFCT5gJ_XjX>_HC3Tfy4mySvb!u7XyL zCXGjv{6`_Ca15H#u#dW~_zs4NnGR9xgx`8^{7{Whp=ufhvcExk6P-Y_B>#v)aIT67 zu0r3_D1^l#3*|w1kd3I>q5m#&Gw413eyrUm8~nF@!{REM@6MP6PHXUx`nh(0{X-88 z0~}@3pu4j!to}V9lRPQ{nL^&^DdKZ=cE~Jb$jlSD6nceD)-)yEXIf2_GO)(QbQ_FL zMs^c=ge5r{X^8|(Q(c>YP3mH)b+LT48B@BI+la->UDj3Pnc~^XMIh!gwpslBM4q`# z!Bzq-M4ardNjkjq#svk?`iqfhR4O_;Q%~oX-*;uV#P!?#I z2Wzo%`pM`%?l0J1pl92#ru_wCHHkIA7P0W>HV?~jg2GZ3wU8<q*eSg&_euVIJ5`{`u5-=U>Ax{3vJC%iLfN`Xq=?x}`KJWs(H zbGdsngx)(O_KNS+SX~oCY|q(J`7c!Z!{TTQMGKU?P|C%rypXY!uR%~{R1Si&h%wl1 zfo+ZJKVCb|gsBMqudd{C8r)DbWesaeD|^2~C=XH$5bhtGjrvH*l}+FG<^5qg?xSpJ zvAvh|M}JhPIEZ!>hZwA{H7N{oI4r11Tc^X}!$~STrhcyRh<_*+HmVElb5(rAV&Pa= zaEQ>u^olQ?#v}WCOby1hh+*po|ADI23l`x++*T>f2HCSWTz|v#8?MhUHc`gUDyzl5 z=jH0gIvhLfbyOLx+R=bVnALcM?5cM-txoszWSp<`f77yIjprf6eT!07sudZa56LuCG;G*9+up_MljGf2*Rh;<8licu&-|r zKAZ%+=o?I4y}m*E3%Z(=OUhpRTw6W*T&y0+H)hs8*H(}JJ(q71ToSCQZ&1sI7E

      O#y?D!eLI=}h0*h!ZL|Ck+U)wE6GWxWbolHI=7)|`woMXLB+ z+n=f{Vc6&}(a7-$Xl|6gn}>~hv%dg4(unR=tqHmx?Hd(%PlBsIT7XxEwIOi6wM488 z$ye-!T4lOyJ@H8gk_E{ziKQ-AP1$63TzvlVc1e)782Lan&(CzywG8#2K_-Lwz5_ufe0~ zD1I6Lt>Rt$_0c}#^3W^#T;p;2T$9io#q=hx%+Wsl1*EZtV(1nBdrd;ejvnZ(cWoH} z{wugi?fs}`N$cRC+TEiiIjY`-!f$C{;0kzgzv&rGl+pflVi#B+de9g#yz~Wjxhg@6 z&dhsY;c|0nLj!zUWeDgMLBo_mO5F?YQBfAG+alGvB_K&dj`%*8*}Anm7Lp4JP19Ks zeDi$z+M`AaczyXK(8?HhlyhoPSBcY#JQ5lVJ$q(Nj(p0O3jM>UKMhD$D;rE}kw1}d zd-1%25mF*z$4^Z!#%0;4F68@Oc%4CS*u=a+;{9`SA%V(oHO|q_+T5IR`-ZJx~kFX za<8^I3C_`g@3p?pcUj$ z75+kx_jM1OBK7g{$Q;zgfP-=JaTj~mTMNVzcxe@?%)Dv=JQ+m{fP2_lX0B|l@L64s zmW9XUW!j&5T2?{3y=SdPj{^Hj?*vCEC-kL`W-;h~6fZ%O)^;a6UM)`n__R%eMR&39 zo)z8?s^Z>DJ*yX*7nd(P=?YG_G*nGSfh70Ss~n+RZ$D{2ltFS$`LX92_#s30OlE%@ zDN)CC^3e61kg_)R9yqZ1L{%g=k}G9-V)FjE8?FyV>z%>db#lBR`q^MkC|e9UHfCtF; z=BeB{?05h!UWdJE`)50|*{HU+5l5e~HZ<5B%BX?>67Iy-;3c6KSFAx|1a-iuTN9g$ zB2lY)U#_bQ#Y1mCmL0x+TDT}Y?O5IY8)oFA0pz1K-eDQ-dNo`@uE^aZ3g@bZ8cXV#5#9qpS1E7cWtUXh{81zcR$e#4G+s{Czkq@r*wb zKFbu3CHG(QFN>pL`kW;Df?$kXr|vDrP))t&S-v)@W4ENp|0#XA0vl=n7S3@ z^XsG-d|94l6p<+)u>m8Tb$cI}>9kc@-$1FZADM5Rtac53kM~ZtR=u(&FOaQ{ONsiG zIg&$xQW?FUS%f}ISQS#tkm!Gw`Ubk0W?Wn%m-7)!CT^;*$>w1FH#c?(l z{tHLbvw?4W=0GZNaysQW;cz-_E2QQ3QUg6FI8iq>tO4% z?6L08_(}-L|Bv0#WN$k-cd~#fTqDN316@-a?d&mV)sBlfu&nTmb@_VYoo}K?>gMUL zTHoK=>@I6fXt^(c-RGuk8S~X|`~KEjr)@3UdJEg2x!bo5`W!yT&fcB9O4H8Xy?t~h zHnz8qmF#^)*ur~bq-!*Vgy+w-&b}Zz{J|6XMx-Winh^&kP;RPPjXtlbKL)IvL8}Hk zT83MO38Mk4A!oXfnymwq3OhxHrP9`CP^*KQS{>BR3$^+!qgM3-Xp(-_H1XETt;_B+ zVmppie{pc+;0V-d4Gq@Idb>DM1->)WfWF^%G|7dxXLV{gJDepauxvOhd=V;4$SQ^;Q#UYGkc_fhJe8BLTaCkznTu=k~O+AZZ}`M^8{h<9fjhj!P2U9>XzsU!jRHBL7Z zP25j)Imnw!$Qu43>N!m`F{WAweQg5Ch)!I22&t(`40D$b<=NQ5m$ zF)$(Hl;}Oc9N@UThWz&o+@mZgjD_{(ErooSYjO>&(?C6?8wABAfmYJY=+T zqgh5Hm(zWcksHm@=|0N+BM_rdzNCZ^N6Lz3MQV~|6TLT{Y{KV%WuA{ULX2PE5lLPb zbv{{1e4GV7&N9p=Ro1>^p5HQps!mx_7O+HFWC&gw(j<I- z$gto;4aU>65L0+IMTRw!ST`0KUY8KV;M(C7CG~5w(PoSc7%fIF(~~Sle4aR2WFQSc z4@3qc1t~O+_r}vv_=~3(&n{nt2|?~AOI}q=kwuW05G;b>B>bEWCl|ssxDO#X$aVNgnStdB1+#1n>WG;^Wb8xtf>Z?*@3JK`GXa(YT1TKnba6TT> zu~}!<2F`B^69$oYL1m0et+P zd3NdT7mSTRCd;1KSg^32ioj`X>_*cCcTe(8Q@!>01>xZZ=F$a!v55Jj@bGV!mCm|g zX5v`z;Gf-0yky=ivU|tjT!Y=41H0G2xoLLqSa6ro)cLdc4+lX zoTDR=KSUnr5gi=`0j~_`NQGJkPh3H?AmSr*^yg>bB}?FS{>$`OeG~>hwG0;Ug$hr6 zBHTO+OBc=mWV?Bif?^rs14%MzB=So6!qN*ip*KE0PaJiQ66#lNA7e;eac@b@T)FS; zGgsihW{-HD67mYhuTk?Znz^8?^#7NPYrd6YzlbVcfVko(f^iowEMM3U*G8)EO87BI zHYZ23F?$s|XNZ)(^YJ)(&IwGsw`kU!zlWe3Wl>~qETn#f zrHdCw%f_8oSpsdAM9Y%qrT!Kz$`UR8B+P5(yhVs+-w`#j5*ngng<7{lB-+4H7d0g& zRS-3G78n-Glmelz4nFSB@@MhAsMsbLMVbp=ti*PQwqbp-f};TEi9mt2@CFE-6U~V< zX^UmjGxpQ6M?W?djA{vsLCpCm=#g@J@XiH^_da2~U#tr8Uc()OV(3f0V_Lj-R9l2` zeharrk(F{|;YUY}I~W@V)M^jUpuR4+2-upCLtmF8B@iGC3RYKeKt9Sh-F zN7gPj^l_)Y_DIAE7r!xDP!xrUs*zEKXu;Ql&-ruwIZ}~?Bp22cEfSkiROvwGa9ro* z)~sleftS@gWZ>nZXi=nFn8N}{i!FD?Vx%9l7n{D2b#! zatf&gh14XtxiVUV@8*aB3aLrq=IY>R@Leh~!pkj{u}IX1x^Wax5-Gi)kx-6-Modwk zfku33%Gnq7MMgAvuTnnVGYYCS%J)S*B%zn!(v_Jfg^7_LNWC1gMJuB|ZBjg@q<)gn z%rX>{PfSXxWD%McO-i2@O-f8l9&W{%_4COk+I2M2r%xjTG^wahB*0Sep59fbucp8n zgZKDUF)xJf>GVV^)45qF9?s2`iM1+Jqt47>l@3K@?g?BE9t{x7)XjEQI274EA!cb)`*gGkJs>ZtiP--tH668q>$_J4kn3_%`Vk+_wK3y`ivpHHZu4=AG5J*|HB1tu?r%q7) z(%^8k;&icLiVi1F?ewu>FESD7r>Dk-X+q<&az%78;70j^rHe~}veT59f$Yl?vnm40 zHj;f=3fbQp{MpB$#B^IZ3dJ_=tcs%7fs<$6KC^sY)XZvV2=S;2NddFXkWl8ttjtk! zr`f>F=9F2PgCl;E-=y^+iPoU_HpwSpWs%s;GKk$=h;$uh*Qg{lLY6H&SAvUq&qT4E zRWBdzeu!^@b!$~hQ{W`ey<}69Se*S1)v>5V4tvu50?LN9C#>sa-u9NHW(ynhq!*Mf znQg9E@D~QV38m@wN`i~egxtQobODU8S#w~7jb}0IMpy}qFr&qsYJ{1B|87Jfe-?{* zHf-h6B|zBYg=UHp1aAVuHW>&$6=4^BJfRr_8v_fE%fx~EGX6t(!BTyYw1 zCZx&7je71OYK9x)$8^^?G2}yuWVA~l*a6T!%I>AXB}O67T+qt}Tp$)`)=ILiqUq%< zjpQ=vWs>Z|WYNh4I_yl+e%b=_ElY1*9L*hXe?T-hK_R)(T;u+LXl@FH{L?33f564% zix01fW{o?eEW?bll4g{ZGNVs_5@rOQ97WeA@&KqbGNwM0rA%J0Y;8j5JeVEL)<^}| zIy-qnEEY`i;+(733kZ6=@X`k1gw}#gTFr?>y{fZjV`!w?Gpgh>Gx6d%OI3|*N)5Hc zsJ$TIdcYWaXLVp%k;pv=qS3n}Rr ze>6#N+!&JyVAFf!>M$fq^>-x(C{bf|lsrsup_^-xwyHGh3`f`zz zYTQYwiute`X2T~zFS}lKPyt(^lJ(M(C?cbJyw0h&2YXO0E0d1B<*!JE1TvwUw@6(H zoNc^WoUv~>oo1e6Ui`^tYAuO5;ZGr!ZsMkLfx%S9yFw^yvP@4jkcWtdmS`yZLLs-3 z;IIGe?0nlivw0zq#yF931JcL_(lDyAbfoby?E5*#gpgzA+e;VSI?r4Iv@xE9($R(~ znw2D>($U6`&PPHKiWWSqW_$>?<_t~kw5TW)mGes8mPwcX{9qbcU7C!#Ek zqx^_*d|8y2L3!aKDla2nH(8$U`J47)PlczV*#C&A?n#fVTZy<2h^kT4GegSu^r0)~ zfNatSe~mNYJg8rennqUVx_`E;+tuh?cNGe?)LBzKaXT-4@~TDpK$@_|^SbO(-ynFe*wzaX4&oDgF&2~qq zDbz&OOhWhG-|L;zd;9(GOuIjR|8I^Z>T~z@Qm;a4yeExGe-QPwabIv}#@O!xHK%J* z+PP-u2dfX}5T-QLa`;@ixpx9ZY|f#UuU-NSV*Zy0a??w3$s+{Ncy+H=)5>zRKe+qV z$bYXdQ<_9=C^o1x;Z=nHGV#+HskO~vJHytb}zN!9T@wEp_4&EsD$p@qtR!H%O zV-N2_LtJ~X{fP?!z4@hO;1ng{Kecmm1I2xaD+vDs6`>+1;xo9z9LsJhv ze$b5)gK^ZskuLT-{0>^qAFO{$ewHfGSnA$(RLL(1`k>_Ry|50Yaj4!7druzmsYAkZesQ&U>4~A9CU1t|d!hB7SyQM!qbKIs zzeG7AsM|Z;yVvHge9h`y*-iM;^zD-4&ioEzA&7s0RY%H3?N)F~6%mK&kwMuMe~yK+R%LLYTYA%dS>=~>}1YO-fXUIH^=6_Eal?#+H|kg zqmn;ugQhAa_%f=LQ1N%ro!D9~kMb@qd>0w_C|t>zZC&)tRqUwNU14Z2oppp|0|wHo z*l9#c_31KK{{5D*Y$1LqzL*iiU7?IAVG)9h#;;x~6yt;F5g`v3kw@yn5 zi6YBQLhdR}y`#OS(2vI#V_7t`YP^BgiQzCh-|#{1;U3ih6N`kOws*0ya`+<=Q8}EJ z;ZWb9KCz}rwXjogOyN1=m^8-LRN9P;-M&svBzC9jlQajI@fB>zBx550L?&>5lP1Bw zdZRvz;Gp1NF%x=}#wH6=ZW$1R#n#3Q1z@jCh?<70^5wX=q3A$s>S-2#CmOckvU^le zM&&f!o6ZZ8m04XTr`3gGXuPAyar+ynrG|ox!}U@(A+v6bEbjx*N3XWz)kt{&VXyK| zBsV*%tEES!dW*!~cdo0=qk4UOEF)Ovy%eylA6m+V_Bw%*Kndw7#X99B#f4UGj+0jF z-5#a&Kd2mG@hOLQI(m+{Y%3elF~|G9w^tuhk$0yYrq?L(H!Q#CXppnD!D?{yH>LI} zxj-(Eay-9&eC3s0)g*J z*R{b+$^I8hOXpT1LO|v#U0bd|-N=>JP*^tW zV{K$@gkIrebEr48^H``a)aM!Y{5sT&D;9{s!rp>VFI^CqE5g@$wF}X6sJC>%Z2cmk z9ldW`SMAJ0qjS!<`s3WnSxXnu%QlohBPFR!ePzwtD9P>IJ3;>zT2;h5uby=4?8$it zA9F7(%)6@GGsnFD#{L>5CJi&RU3s+Id*rD1(O*w{bokL<9a^m^>Z3zI+0EYXQ(43( z4$@sM9v2=0v#(|g1kooD;^)iFfe(xd{49Ds=unL5<-|I_c|Hob`alho>=^3Cjk1#V zN1$)wP`;3hTsFpl^Ao~;UH7{7?k9~JDe*mEQMHGLfEqVZ#eQQxZi0Oa^C6pFfQ{uT zMB&{PiSUN!cfupe{zmhKvi{R-Wji;`{V^&K;$wcB==P1k6u7DIG%6&eLB(lx$m#na zt7ZBth_44!ZY{I+1=|M5cr3g&_TvC(Fvimzn5SeL(dR>h%fQi zf0Y5YRaX(@NRZ9LXCj+KQ9q4h#IyEOz~I{^hkBEd!tMuAv~+tBbT28HY*rEKH|iLO z`j~%Mr%sYyM%pB_#21I#Nz4>_q7dS3jE3YnhLvGyR2o%=ca`m$eV;N+%ua8Laesw=J9icBnmV!LLuis+4pu~i^u0Dz@}SrM zppwT7wQu6Ivkq1A_T|-8kOwc3JWz}6d$tRi!2UpCoZ=g`6a#fNWAbYTU^hhrDrX=t zrsIdn`9>X;{EMrc}%OI$SMj$1HyC^f&eKe|H={Y*@~|#>294T=vrj8RK0QFGC-}CAOu6t+rXW_7j+B>tp>4M+Ds3{Cc zMPtu$PtB=X%cJ{M|IUVcP_5Txt(x-GNmqmPlB4=})&|F0t+z;*$&&PH;APeMvDR0& zHoVq<|M1%Xn6`Fk?aw=2){x8&Q|mzMz^?9H-QJQ1yI~Hr_S0Zv4>qx4!DEM?;r*%} z6ka6G7aYUDzXj&I5CCT1_VWTT+am@|lm=j^>MQ1>!V)c9a}N27m>j!a=nd(LS87g& zPq@^MlS|G3$qLhCjr^)EkSpBRl4p_k$?b(ied|u8n+qLyS!s|BmDwASCKLkeE|gJB zm8AJx#x5A9*)oKlGT>u)@qD`~icg1R%FU{i*{u5{+4s>dfo}~GUP-N8LXPH^jKM7_ zlo2zDwLAb8YmZ~nfP*iocu9iQAqN!-GxvZxgq-X{`^`vM@NYRu? zl)X5gE1GAT=sU+w3aNqW<_3jx%5m%sn>*U*bibUZc~gx!&@OjsZU^b3YuqnWZigE4 znONWGTFF+KJTIZa&{UHBs)u#TOVD%DbkZuL^bpT(W^#+|w<; z;|bLVFG_U85OwV3=}Bem^IH#S>cS;oC!ATlAprVHL6x3|<$G?n%W3+4My@oo_nB-Zp=R-U4$BZ3z|Ap*hC(kChK7t&qa_8l;r9;D=MpWX0(oka}eWAnLgyD=xN|!o>p5BT7Q7o8Qbq?pQ z7oi=-v0zrR6IS-x`_eZkPRU0tH&-U$mkq*PVXsh=Uy8AJKY}oNLX`Kta8`nRb0pY% zQ@AYn&a_}WXoz8lyGdTJ8(Rk-<%Y3?VG+LGFw9DRP%ZFSPZp7bfloenZqoT^r4Gal z*7k<`$K5iI>wWf&JlKBJ$b%rhWUpjo-G(z*|KwgOOm#2)naTN4#HYAm8R9GoXI6gk z?pH`5Yelx%Yy&OpTRDV8xeg-5C{FYUtuWZ(RQV826@#7Qd0N}VG2Q(FkA8nkbFCO^ zcyfHGg;0nZ&eNKo$Lax_Oz7A0lzSnugulS^3}LPG01A6I-tfM33-x(&#;YY40{br^ zqLLSIsDpEecY-wNB@U5h2Fw97VJ4*!jji;g7Usb57kw)!^5Nbb_98muC{84pO!;NY z^ZuVWUH+e2T>kH@u-4e@cK=I(Wp01qJKn;Ttlef89dD@d7KYb1s10WJ;lgMrRt|^c zYTuA=NTT4z7gnr6!b$Cd^>2FXeR)gmw$&%sP3^1t75`d?XxgUm zrhuNs67jXg+G5CTiOXZV;;@L@!Zg^}u0hSh&ljdyc!(r{K^A=e+$6zia9Z!$KM78| zKRaD(3B3hJUvKFCG&i&S+C#Ynmw1J+0_F$}DLEWM!LJSrjl9gGGLM1aku+llwV1fT zQ0Nzb5qk5;?z4kvXKRm5(!Clei%Z_*)4G`{kCqbdgdBt15)K;8lroAeqgkc5X3sZl zL}|2>&63Zm0Z1^U+u)#?kq98c3#VMnSCPXOUSax+XH+-rrW?o8H%z3UAerVYv`z+U z)8xq6(VU9Ll4vf)G8hW|`(Fml{eU2ulr3e$Uq|hT5RMT@ZH$*N?+ZPCUe4y=<@Yo? zTvnu%ou>U-TFT`DtEoM#oV5M-Ch;1 z_V!Zr+#Asbx}rtAJ@QlXqZN{c@)#uSw~u_`xsE(E5zd*J0aoyRy5o zAMick^P2bgpu;-*X|S<9H7Po5^`3B&3PTUK3+1L(@^=4x-1==0ILSgr!)ij}rKIX$ z78C+gw-FfdTB`6vH0^;txo5~DgWd27LBdH=6 zw7+|Q$3!QDLKTEU1$p-NkFgpWnYNANy>FaRO|}1FJT0|uc-@QT_TG|oFr=CA07Kg^ zoKbXWfG`srPdtYJnCX`n%A2&OU{9Wcx?mJPp!)VG&=BHk16$*ZXdp^?>Q80jFR`s^ z@p&e}kYS^68naQ18tF;`A7Zl>C&;yOwpv3*r+4~4Z$n{g$%Z$`=Dwma(As7dN)WNE&4u{`K!It0~Zp!cQi(Y#jdm+)V?m%E>bRer@A?mVCidlkAoAGad}(*A`1cCu%S zJ$;Twm*-KK^X?cr7&{ue$Gk@ZG2dsV`LcX}rIUDIEL)iD)7h%A@5MgGv;7(&wHQ+GZ z^xOZPWT!+f$}G5N?mC>6B2iDd9LN(TZX=H`=2LM9$Mhw753hj&4vmHXMRXOS+)46; zc(Z%Pdj9u5Z#I3A-V~!}OxU!?Li8TLvrG)H6cvDz#d@Cg(r!cW5)NfZdJP%k_7ky+pu=%t9`05;BWeU&LhC0k<*+MbWV~-Ei zr4l~7@|tU=U%!G)y2j{wq#Fz|aKcKgy& zkVbe4l9Rgy133Y(t*2kv60f&5Sg<2#$`36K8~)fD!oHzc@!O3~*DKajmbNH`>wlgfYD?7lo_t)sE7 z$~Qgu9RM=g^#|W1WtMl0W*WE`y&ad)dh`5>Q)|LSkhDJm0o(V8qdBgQLOuym!{9@CUAPnnjn+s1Xv6l)@SDMDFVi?X1 zUp_gUdwNhxUpOnt3E7g3A8nm`-$zH@UAQG2ouATS}YHVrLOs?pbq^gQe@( zOYY8<(hfEMXNh%Hy`uppAOd4nCz3b1>m@U(8na|({oZepsR(Zg1IcX{c$$_U_d#2NgXQL#jv|AyTIN{p6F@HZZSY zOkL$!E}IkM8-ev*g&T&t?w!`v)YYKtfSv+n2;)B}&uHVt=fA_|)~;nlqCCb^!W_&F zwUC=o3nneCFbn1eh8*!-vObrN_#dEc4ExR`V^oO8g?7uw>fkChqW0ELrvkpfmvqS) z8VS7yM()i6BXP~ea^#XiVgXNFRKoBgwoOOpA=~%ihtP?1teGy_H};-Mv>zNcsu~jh zk1X5a5QtUcVr7H>G&$lsn$9kp=P^Sz=#D|Ws-T-8wzM$3!aIhQ!Yji%J;p=k*p#j< z(`QP_T5OH9Zg5}W77ZC|T59Alw#PMLxbE{d@w-be_&89JQBh3XdMvzq+{%Oq*IbdV zCDQgUcP};GVzTUv+hx}ctb6kGq8xQ6sEZ#YjgUm+btOscr%FyA8uR>7pqSI8DOXpq zAA4S)jXPq;7rP-X*d@QJlPo*i4HoB;VnHi%ZbBbBCRf$p3Ry{FMXN)9f$OSY>C5%y zo@chhY!aC;1dhEC9+0MIlIFe_tJsHD_7*}&x7l3IV=J5v)ERi*(eR!XLd15j^#nG; zd%o(TyoY{u9O0t8R<7~ouHV&QUFEpfI~<6)w*-I8vb;6L2{YnZmr_p|pH4zxVlX`O z1kXWvkSBQhv@}rvhthISvt0B4*n1cFsLC^cT-t4eb=zofvA=d347N!WGKkeEmBf2w z6^9CKu!>;5u--Nd>-SyH(xPR8}-oXt6EdEfZGS=zXUB^2An zS?R%T0-5*ba;DBE2NfUhF`Fp(t1Zsp1kE&Xd^YnO7)x7^^U(Hp?JlyGU#C064-8n0 zj-_D-!FIb}{vZS|yFEjG+a$*Yp(vtz%T=Sko9-d+ZMMq}E_}Ts?e zpV&v)X+WQwd>*9Uc-VweUaw>m=AmnE4*s3MJTOfOSiriZ+8uBEe&hAu37)Bei9JhM zsFk4x?LPfh{b9JDU*k|mTdu@tb@FUw`7$3D5s7d@amd4(JINqFcf(Z2QfdNDbL73P zcai2tIbs6L|3ta86rUG1(6 zXp$>%3|2PykBn=CWh?XwHmu*_S_N+juVBN@VYh&Rono*t-I-THxtnbxx`&+kYD|DH ziVg?dogZ=iq0WoAYwg;(`o8vh$_jeDV@QYpf%TV2Azt*S>r7=VXbkuz0Q2fxt2t`G zDkineTh~6b?MnIOq8B$U51!ZZ17BV3+Sh9v{WZa7Hg`4E=) z%jWrudVO-=_FwcKnBSY|eZ=DQ`|@c4Q|K>*zjn;P!tXM%!kK?cN+hiSPTMmX7C5Iw z&DiyD{~Pfeikq44|76%K_^aK+w7P>*no+W`ncY(`Ij0%!OZWo#D8(Yd7S0vm3s`OV zA|Cl0i*Jyz^CFmkYn&t!4YgFg?9safBMI0A(DmAb2|b(qssiP-j2MhIAv~)sz(qoy zsKYHIG_0fLm7FdN*A=&8I1&Ki7fwl%>?u!|B-66tA1&Y|@W-J&Mp*GyH&Q0~Oc{?g z(Y}Mn*>*cEVba;3e#zQL8uEM7n}KTNM9Sb*`08^XxL z{a0_-NO#M#e&?>Nfn(0U+JEFOC`fq1u#7~`Tji>R)2^yW-MgwmeO4;q5sjfb`4P%z zkbgZ#>hSvi1KvGl3F;0gKbF4{aIXm{E;ADH8X?#sc9W5oao`4*|4w)zm6%I8PpS9& zT^{#X_1kOf-OoZUe$(%6xJi0h?Wm+=jnEoOBvE|EsPWgkE0IYkKcgK9{mfA>Ki}5g z)`Zc}y3$;^(f03@1u8F*)&$rM{`$6#RUYL>B1#x7R-4rC@VKD*d2=-`SnMxs$}nJ3 zy}#!a!P%Yji1(~)paMI^5^iR@NltceQ0rvQn#g^^y_6Pev^C8#p z@WvA{8z2oVFqtn8aEm2H#}{m^0LO7K#E>$ubscgLIb(`A4FcdV3dU@8&>;YRr_e!lgV{(f*YYi&LGF?W+^+p zs&pUc%Tcw@%gu6g2YUY0AIO+O$f5kH05CJug%$ z?Kjt91sb%cT8dkWDdB$SlP|*04$u(1GJJN8%dZx!29q}&H^75G@(osOI@6RW_AYBZ z${`0eTOq^|ju&`~+zARb$|dhh_%+ z9WNiLJGQ$)z08Cag+)J$J+uByb~f-zyjgdUnky0YZRnLbgTw1ag5yB~eiJQU^}qI= zMlX29ExogDmbdOM-<{p}ZtO6b1ng6)A`$Y=$VccSC7WYBAu&ZFrtovU?eo>X?!yyw zzwT}D2j0e%NNWh*n7K&;3KmLSXtH89ua-+ku`rpE#k_DRNjJYWdFnkW(vF%VXkQW1PF{go`T75pvfKK$nQ`7TEcdr`>ab$0sRE$%1$*Yx(zdf!Fa*i(m>9CLzv&utVjgLc3*wk5X6t zz-qY7?$ZHdL$p#rcE=a&uB+2$#%%39xsdyQuYs?Cs`wQ>(0|LaCnavC7$)D=t|_Ek zf9yjdZrIw6FQ zqcYD3 z`=@kcc5D1(Q~T1hEw^3Vw&_4c!0vCRjbk+g=!C+=YmpttB3*+S8dEJj5ssZgT`tVK zI8|Rx%4J?;23onnJXU>_bw)E#aFvg z;_{dusz=RM|CalmdLv?N(t~If+GH zE~yMJS&abtAJlqZwGpj|2a0~IZEtX^XOmN5-4%65*PpAO!Q?=VdRevGwet=49DQWb z;w2Yes6DH$qAWa&ZGlFF=e@4lM;)=Vx5Q(2%#T&XzHKR%EfedS)-_QdHMOk2tiOC+ zZdWs#*jbiLL+by==4aOI^wHEOAu>{smv%?&zU^s5A!e^?tX{t)I3avt?q&oe#bK}XO*mVD3=oroec$U%~WJ`^MR zXYbxl;ukaa(Sg!ZLR#Zz|BXPXi0sj;GK#<@{#zakjniOp1S@mfo2im_Bs+q@J)I_$ zAI-I&g~f5||3f&zy$ESwExA^5XS7(@h;&H(^AFSzkTCeiRwIz&e>7kK%%)aXupi+P zGi>=JyP<$Azckav?{;)My7;AaJ3^)6(iA;Zn*5#d0J`V;c9x0TSCCl4eBIXVW0J+) zmt0{OooRK>Ak-+4#4Nxle*s0#c-vvD1%{{Xgmt6~rJI#Y*j2)sLs(>wsYYO3VvQK3 z0mWb_J4AI5`z!qmzKhRJMxh;$a_EL}-2!Z{bxPlsZdi27b=NGr=~lc4xjS!>Ixd*I zbQyXSEygE{o!5Tzrt6j>-Uad(!4>gJPBD_E!2#yM{$tB%K>_~3&m{|XTA%adm3&y( ztdd@Gfpf@r$9--1$XiEtZorE`S(S9OPAY)tt@T!V1Ja);1S-9xkE(;}pjl(r+|oJq zQRcz>Bi_1z4@U~r=mo2R3H3kdM{C?t{mRgumHIqGz=WQqTozY@d}!A~-blML%GIP2P6E0^k@tZ&etuMA$KpVNNt%G>ngE2K9X zI(j>{MCa<@bsDtt!Wwi4B_D_I#6H*hE1Vmyxb`=L*EhK9Yh9JySCM_*al5ZhDy;4p zLQ>R?dP0rS&=cm^IjB$Q6EuT5u-l&UJ*8SR7aYwR1|nk3I4o-VFS?np7y|60t#Hj$);mq6yqpmg5gXQqW%iKHf{pdEppyWF=(xs zDrbs&!n-&>R$RltvEtg!7ZW+lf*DP@R+2ws7gzgipkI^cJf7N6i*LGQ{8DroUkI4MFs9ak!WZP?8|E8G^?o*`WmO zP<}G3$}2ga&pi1HVC-e9HbZw5!Up0VKWCgVzz zz{|>Q$kfvjw^5T!YMQ+Kq~v_$2myT(E#S47eT|a5x%{PIpDD>QT&?&~XjlvuZyRkJ z4QJD{6VkVBRQ$s5b)Y!zZ0!u-8oTjA`}8Xj{3g(<&ETNL{@|h?i)I`COySi{ME{mw zGHH(ybK)I%#>Na=GY?f`e1;{)pYa5~Zp=FQ#xd9+`+=xBYt{e`_lA2Ztqy$mvlN-! zb+8KTj93B5DYJ$d_FVyK7B&;|c=*_lKtQRX~ zH1y*86Zb!iL{X7Y$+EOEF}e~UWInL9(ryT@a>xqo(0vQa-B#L75>~b1kyxsODViVs z3h=|lob8B-bvE2r+T$>pgxYE)A5k{;IrGp{puqiEhAzrCwoI9G%k=wS4@$yP`_dDmpCB=|`57$ZDDw}g?S+1$ys0m~7~irDbxWQGXI3-!+n_dCRsCt3&b4yofy`E0_80O?$&ed@wU zHXa+vfAIiEv|LVo4cFATy2c>k^QY)G$5S7zd?*4o1$QGJ_$-2g@_9fu-}Vk55BVp_dEC?!fQ)EWe~LTbxH8+nTdA z$Gkmdbn9mfsh$Y&!4jQ5jM}g#?BQw^9C`nbpt&4cugQs)0OP{Y{Fr5{IS&jQEGlki zkl#*IxJmKQVEr8kD>fKTJuo}2OlVpDDuaBgvECH))1Wy~t<8ZPbSLxmjM|f=1f!-E z0iTm@n}mPGIT1pxp>+hS@JmJ1k1!5B2#$3C^dZsnxWpo14I?`>lbwF4=Ij_2k4{8# zVPyck8p3aQ^T6iE7B1YAu(OI_7!Vd6lbGlDT;VCB!?eXNvL8(x(>xwTsg>|aQ2VyM zZ>>PEvXqsI3#QjS6MH5ebZA2~JCK+|Y?!@po7PN6C1l6Z9ptZo(sX`P!{3Xmpl?hVNCRu_hS@&janoXIIup;r%zTzDoBTy!Td1vjS~rkd;Odzfvv;$SYmgGdO5{T+KF& zAd(Xz&+){?Uy~ji$!tDrtU`k@k=PfIMg1MA2m0)Ktn!mg$Uw^|%Nlbe*! z8>zLT3?5ES@k{9Hg*u>rH9MNKo)rr;crxJ20QJ&fiD*Ui_H+%$UL+_8!zv95M!sZY zrECiYrf55^`S{GoF!Mhzm^|~QC^|8cL25(&rpw7t&Zrb=@{=-aD@q}NRmD)V4Yill zSn>WFlg#Gly@m~LWA|(?rvuS=$X9ZI)Ta3UYqH|o=L-!B#$pag+oKEbjobN(R8UVD zPs1m{P|SQWtSX{oCox<+MJ%)fjL>WtpalA3PjpXIx;PTm1~nn22bCPWOUDb-(yh8` z`9|`$JI(vt;@R#Lw`potb)c^zILfJtmNKHkO%<uuS_VOG6XRR3baW~)zNN*G;SYK&5sv+|nR?Kp+V#_%q`hEu z(lWyC)zUnh6qr;7k=F_oWe{P55SV~4vFMTQbg*+E0=%RGl&>T4qq)Rd6-Fj6)PQ#W z$&`SZiviis<-bh}kkmG%%0kCN!VeQf0USq7n6D;bh)#Ax=$Omeq zf=ZWPnkVGGv?P26*&}eVxIKHWl=|SVpp}?#2iMl)b6>S|&mt#wkamE$T&S7O7izYR z;*ep2go=A}de7l&)yha-CPg*aK!|EQSO;^&xB`T7GYpVebMI4JOz$!Bf{_}cGaUlD zm?yJW+RvzXxI=J zuuUl?o;3|96Sze#wL|>vgBJeFn=M?Z!fr4ZVWgTHAU(t0uz4rs^%T{mcJwo`Mje?$ zCKxo=ToD*7F&?n|d-dH{Jo0}7y2V)>$1{N|cd9#}pXlB)d1z8p6gmwI(KOJ_Kpx^y z;a^&^i*9ymtEZZYi* zGK_^^X-m_IqILMzF4Ap{c}!1@Iun5#)Aw#(m^!f0BlIJ&GRem&+5`DHU4*i3Jagg6&<(9+Dp;%3z}i0_U^YlWb158**T}+^e1UVS*ePJQ`Sqd^M7H za7%)!guN5W4rNoUH;8r2+na*im=5OCAmO#$kN}`BSPR{~g7Qq^wr+>%a}g%#y1{k- z)ZH(POTmCzR(C&9A(6Z~N=29i1DRUg*mCw_j=a>k)NPr;(WViMfBS&o(58`0%jmmu z?9e3YG#-NiO`^_N$Fc@*)FYDbG(=yc)y8sSVaY&uB%;1e!<&ZFamgOtG#c3q5kCn3 zhGm;W&5lP62C_RyduN!&b+p3rlO7&Pw|fY5n9fs~BS88ZNQ+@UP)UxLs)|v!S=+tgmY&F+t z8+HT)1#jESqpf4|??t{yTCZN4Sm0ED-t^U;`WTpt!pNN5$x`_9Y14ce#8W$YxVU!% z;Kr=kkfKn61DO>{N5Za9I?U%Q5OlmFVOJ<@HbD>21i-pbDA-R1GHkg`7pJI{{xZ8p z5mxN`*C-F*B4|uy$HskA+p*hzK3SnK-?l_Lp52DqHvt37-xW`ldEtLclKF}Kkl)v> z+4(*?%oxQq=xA`O8ajNk@u>9_)Nv2pVv8Pnv3m1|qq>b(d=^rc6sR)G|YuARd)Mm9glw}QlKp%i(6@&KlC&>KA z|JJ#wjxg4t2Sb&WzJ`r!^ydS<(30TubE}YZRTq3W~26EkkG?{ z@N9ih)m5FW5&JOCL7)Ao*6j*P`Z?r;sKNrr29Lg-@}rCNv+I0ybK&n_?X5%D^O-_< zC5jmHR-0i-)Yg!n2|X)qFVcr-C9heA+1wiE7{dFXUPEm+>yR;~7qsp6H`XJiBoNz$ zB~KkQ+TUDVAG;U*g+u4+YmkysSrht`ek{5x{6f7{UoAC&VS2I98;oNg#=+^cUwh$m z)z|f3uyrMpNJ0hfB2UqrU@lPgh*@^R+=~C=@BWV6x}$}N{7%A9QmA`nLD$&}rMtg{ z$52#MB!9*se@Q|bi&V)ix~_K$zO?}MggjUzJuCl4ep}uW8l#j5vze5+6{nzg4}E!S zU-vyb>$=W#1@}F8(B076(*2PRPe--1d*era_50=_`zHPceN2t3aY{BMqceSV;GlZ_s>0rx2xD&wM-PTS-+olO9K~0|U-GYAy~>AFpm1&- za)A2Pelz#S+#1(9iubRz-{{ldiIy4T$||ov>P$o;xnAGNrx86_S86Y5@L{FWtsC@C*@f!_BE_O z3W5V^*X>zZ=U%^QPvI)*sRunX`dre{raiMBd1=vxT@T&|2b_EB40*ZyQ!whFI%u(} z*b~R*`yWGBa&6zkEB8FEhsEk1sm9+}xn+51XXhYg<{(KkmOA*A$Czq*Iv@LnND8nV za@tj7vvMpm2FX}-+Z7JO6N5MoLc4qw`qcK8y*N%Xq9d|n>b@x?7x(3IKW-^Zux57m ziUq7lILM9FUkUa|1_`Tc+`R`ob$F`SOZd+wh-One_u}CJ08R3zC*V&XFDTObxihh! zDkN(Ch)_RF+(#~7ZsANYXEH@)VI(2WU<50Mw9jE~weu*e$L=tT%(VjyC|1PsELc8e ztfuvnQUN^7G&^L2t%C~ZVS^+{-)Z~^8J9!T0qGn5)1C*}7PmAgv@YJ|l_b%P-yTA2 z8!?@FhNM`_r3%PA*L_SWrp_#MM^yA%8zDew_@GXj z+f-r44W0c0H_)Lv`#bxsE9tyXP!8Q8zsp2tFOBU^(a`5ha%j!($ZY<8JmS8?r3h3s{VGh}G|)mskjy*Vryt zun@0#v+I0|oOx=#Ouh9;qxWYQY+qJT5evzs(PDg7AbZ$jh+P!SmTpjfP*6cSp-_5h zVI+(%i(uHSxvlLJD{u$W1<{xg6D?75=sxL!7GH~x65?8X+e^1E5E-N45Mq}=fc8{T zv2P}fYTY~xjajFyNX_e5=_GoAMmS!{A5D9w~ z-qk{ukS0#99Xh3?e%$zt>`D1q;$SuoIdX|9(&pN;6?v-2FBdsUoYYH3HQ!QXweY+} ztyH_hyE;8{F;WIgdz#sXxXnd3mucIyQ5wpSGKAM`ZPd&%<$3qP936-Y7U~wIl>k)bIUe#8<~3H(r_vFmpP{JSkLys9e?u7IM|mHl&hrV zVEIrvTT)nv$sI>9JWCAtG*Bf9ZUqMo^880~gv?6DZ}*)4&@7%ihnYd{Trs=YmhQKs zRG1&uZ7CCG7T_A0epjh@6fA3d?)Kc|Bg)yHYZ4~U72?tmdpjSCb8RrJ3~R$m&i51P z&Z-?>A*$k%B#TvOS(GdyK!#z`nbG6aB$8=_k1N<>hx`~q#^-Qv@2g}|BA{X-4Z{bS z5ovJjO$vR`$}dnpTVTI-%HE4aRqist@p0@($Zp!=n>b}P^UUS}D+w&ZgZ$8k12muy zADm{Y@6{AsB{-sFlQ79Ep*jiBhBVB$3`$hm0y9YnF))1(RVz<+=3=B6A-zj4j1&VO z<{~+;j0Q5S%RtUVJ%Ra1HTPKYiEfX$7BfD<_FivS;QOj~jtLhrm&hY*VCNXd?4kk;PEPJB!6Pp#d83 zTlzwS#QBsj798pK3D!3P=EzW?A-*R@!U{AyW>SHgV&AnpPTTwK6=vwd?j62&Sejo! zaSfj0p|g>VIqA-^NEL-zq7%0Cjz69#y#w|8d`X_mE!j9>$fcn$2J$7_{-#JTV{m3)msK`hjggMgq_AG3_YG&+_Q9bon`z z*%JAjIjgBkK1G(^Z;B8W49*0d%;y8$vvN zoF0Vr7-;Xr;%@ax#NFV%gX!WfOVdS+R;cnxks2s^5sNVcHl~Z!<~Jak2X?1AQ+97F zGR)UW&$BSp`w=9CCX@qY1(a~v$*vcZjMtgA#W|@+I@e~vap_6&ll=hFvzH{ODL>O= zlc!69u1=-pNg|ZTpfgF)WG)JkU*7Dg1u1c|vF<3*S<$(I(um0U1B)YQT1p&2mXQuI z#g8-7HyGG-rXex%tHd}PJ}oGbka_!JBjxxL?x#7H_IiN*aepvb&da#;l#*amFj&K$79-n2DVn~Xc+OXU{Tbv6rBVRYZ=-hErY_dBdzf$>1#5+LNLw9pQXwIanaj%3k~nU* za=TPYT{0A4<96?al{Ok5NJHs6N~fl&tIrKMgA@4qS4Ag%!TW1D3Zd_i?Aem3G6s89CK(r_uVjEzMijOu4Y4 zb16><&VoUa&&v9G9Se8Hk=BmEo#_sEg^_lwxiR8ZdU{b^@bim;Ichn=1pl>Yf!slr2joPu{(x19AS?Ls zrCPr-j+oZwrR;0uL6nDtCs7+%pC8Opnu0TZ{tX`~s0e>s*(Hr^xK%CY<5D>uYOT=A zE2R7qep(lvt_kuef8vS8x2*2#)?@sAuNtal?S(PodZjt&)t#ap@D^?-pVzW_uZ?UTq zrp_+>z4~xA-AMqt-2!eaiw4BFF6*RBi-;E`k^XM1=iN9AF1*A?o`pT zKrL6xtL2e;?I+~I!`QZJ?b|i(SFmVi-Ai-W(JJLlWLhGjqA}R_JCqjk|H1E8F0WHU zce$m$mi@{BR23qSg3(^-ZV0%Pv)g~^*M=L4e(YCsJm}?OSU4*roe2_vfSr*)Q_^gl|8SU`h*l~{jg5R}T z*|?!TTox|dm`gOI#DgE@nKjYySpE8oT(yzqp1StswJ7k^xxC{gSIb6J6t1g`{zsM9 zgWBVTudSixwknDjYmM}Dl>S(DaHp%b$+g!1TBl#RZ0`-;HSI&@P@L^U(!Tne+Xvg> zP?clqzc=;%y_`?!W;9r{nw?joW~o_hRF0}y_kAgRmV^wA$}KDFJkiG@)(EsdyQ+?kvW_E%DT{%C?-QGP8iCV zK7jnZ`pc-)3LBSu+Xwv!Y#W1lP(1PbcVG5hHCN45a!~jD?{cdVg0jJQ{O%B>ga{@9fdK6CfAZhvKickcz?#euh784A}C z?)AoQrM60xCidV>(yl${W5-vGmxpiGvbCAmp$0V4GkA$Ujh6=ZBUk#_5_c6l2k++R zvze7X<&#Bnha)^5)Pp*DNSfnKb%63O2_7S(UytTKehtDzxKHu{h_T^f?ye)f1Vc0l z{_^JMnI0fY9?9hMG1vDbJ1LcWs{%DJ4UbSUfnUPSa}hcyJz%cvnT3@-Wvr~^yXKl6 z@>!^3z_ZjBZZUut!86NOcz5cP#_}A%cy&yH4#t0#(L3(tFpm-szhr}exRVS^h`Eq} zZA|D5uchn?Y5;-baAZthz|dR_7Pi}m?24lFAE~cytgs!Wq;Lf;2HH{F5-tzvC?Xlg z)P@v_C!qq{$0{Fk!IgdUgv`Vf@CvbsJwEvmh1hNCDa0!>L-9&A1l>j0xxk@wI6&%K`-gwaao3`Xy z^Mq*_=MRvBYdpS_PE%(L2%X4n7-uiCcMjd$Y?clmOm+_ap-7_{2Us6rmnIWjZ@c~W z3+JvVy=~sy%U4`@Tm6z1($YLEkHP6_v5Xk470`Ie+Z;$@TKPYX?nD6}syqwWO0UTk ze3sWC^h44 zPLv-pg+>8{hLhc3((_zXcG$}majVXd!o+kPX39u~W-FOB=^6#7ics9^F4Qu^-9;YL zhG@VwozRBhQRDCUJ&C;$`ea5Q)uGaUK@opxs~tN{fs~Xs^k12=3QFn!7(nT2Z$N&0 ztoo;rdEnSyJ4g!tnz|;0mW$5Azi(W<%H5z`1YzKpu2K$p>(IjQpLwUKS&>m=yv&O` zo~y#l&nrQ%l1~SD6k8tE07r`Sk?`{^?V+#E59NpQj?|h}!&^oux2t2IV?dec80Z=z zmSGcJL#(vxXF_Up4RS@14IL!LSs4|D5F21-NY3)s-F6YpuKliEMyq2G4g-Su!IzHq zMEkz(W??>?@>guRco+qZUT7B&nHmfKu+JGD*7GT(4JUb&wHF|{6I>`F+V}`pWy*3g z*jedjQ`|w?lf2*DyV)l0Hg78gXObj0221RAcR^m7oSU)HtJw@yI8l*cg|vuF)pw7d zQtAK6byv6UKBzY4q#$DR_JWd;hueMGg|5(Q}Y;o>mt@V0TJ4Bz{gOAc&YXsQRIC=WUbQ%M)BL5NYIhZC-8U)4@`!p@$4vQ?8@?=;%jG4e z84a`A$(umVnN<5N6;tIn_>L-{n|g~Jb=~DYqMqTY`}#4k^)1Ix z&eb1qyYwP1yb5Wtd(_)HK+AITLyv^9W(v)9W${O!02CRgP&bEsJHSu}0++*9U>IZk#RqA)jpB}50{$ble zw0Di(AY3~;i-V@=4`nW>U@5psxJF#Af#do9WS0lOXG6(qwF>*zzKHO{>aqWXs&OPkc2gil!szezI-j*0PWiLmENn>lnZFUKA2-Y2))U+vC z9G`G5#8tz1KlC4|7Y$%|Xz`*APV16V?MmF~d$TJYcHo%NuI%WT-!Y(P5rrrY%81@Q zE*=v|cmm$9Tr;ktjP5!jzA?+MB7@P$K_(cBF}Z8}v_(ev=TnG`%yG6%ei-Rx9(_x? zVZe1{ZyIKmd<2e|%i)N51dL9`l(QsR^i_adP~HR6GCmCt1x>V)qwu6J^s1m*H~P$yN9ZxOfHotp2$w; z(oI`84Zw4gYX;Iwrr9tft(_vQIjE)wyCaLKA8lkpn-GsyDPK2Ua*sAar`7PO7#n{V zuYl7fDONV(TQPzY*q;zX88tsQ^1UGaH;!>f6E2tR$Bkp)D>}09>G1FE23@A_H;#Rz z@9Dl7A8nB&Z6@~kNbX3pG8;I@Md>BJtXkS^=JlCOdru~p3rfPqrF~Y-w?^;}X?ns- zT<2n*QnKEH6Lx{Bylm$8nCWiu(DAl$`&>=CyGh2$628}hjZSJ?K=VQ~rcJCH$5XS- z7rccN8~@X_2A`hNjL{{Fi$2vEi#V)K3G4DRC9g!U@jr|eTY{i~czqj-?f4X=`A}Lq zh^-1n%Sb4hpP-EP@LRVMOxp&MYiWiNi~q^V6ROP86-I>w)AwVj`7!Qobs*yK)ZC7k zh_(|_vj%tUj4?+~zQ70aSWAD)jP&Pd%nL%rhyUKgH5w8W zxF4D&o|t%If*kE+iD<>GSx-!0Sp|+IBsLq=%AWYMYYjd%ritK0H|JjPFIa+%h$kjg zo?#(!uIZhS3N0h|#!RUIA%-b}FVsT&lM-;Jv5E$A8p@xSbp8R9{}-el+~)5IrCcz?S+iiCn6Ka< zOVFN48!hpcIA)sW9y5+TKJ(aO;MGCji@8YB^FJE`L>SUZ9*yKgKAVY0BcI^{uq{gv z0C6ev^$v)GngqZesIX_7v-79s)5pYribQZq1&pxT>_N~$@Gx{b8hOzaDbW+o1Z_+Wb z#QI~bxU1iuD+YNYGXCW=lW8`c7UGR+B+E?6fx#4W| zBRH)}1dyraiWo|+nvnJ_RtIRTYH0a_RKTIij6hA;7xszIjn~K9{vUNv9aOU9IEt98 zL0V1tjJ3b@`Tb+nZ#1Yc`;q(6eylG123(s`U*sDuzh0`BBC-F+`q^;H${jwAtl2j_ z>sB`UH>@#>hUi0zM@JfiAL$hh)yRx!9ij?pxD2PZsIE1a5v zm}QC}lgKQ(X9aePH8_$X61sW3yI*&RMbIq9Vj27={iCLpO`-PIv(v5Yj!}#9+sE7A zK$m3$kaC}{!EQrFVqToK<|WcT{1yD?`0;E5!HJ*ZXYpNbo{O8Ua7%6KILYBR>@fC3 z@GbIn>0$zK!R%l*PMIIfUN^q(?R$clV}O5rC`R?!2PwOdqYlTqoOP3Qj|i(83At%;3TUv@1vp7QArU0RjSTPo3(Cu89Xh_eiL@He>0iXxb{a4(G$3R(JqY^Te7MS} z*^!$*<^K_n<-|UlTp;7n^Y!yNs?nUJ8m-8-=Ip7M(YJ_aZZ|8A#Lq6Lita?vKsrYcyqObU+)Tf(RJdN_NzQ z00?!X?n*ogrEi_^ahzUUP;2v+s5w>gg!0;?ncnKZKL;y#Pddvz<>G+0InGI&P(Od@3t z37t;zia8Z08wjot$YTL>lw5&=U|^5Sq+>ZR(Qe_b1 z>1%we(fGjqHgYn(0n{FI%dkAi%M0wzyXykaH$!8u;MIm(65t%TrTg~&gWMRzs8sEU{L)$kW==0v|5K9P**H<0> z;5ZFjU~fx~>@Y*%I9@U0p2l-%`SdX)k?{bryXuIaLd?<<>0u<}wq|2|;u5~eR?2Dn zyVx1Ejee_p9vjus&iX5@SyZhH=ZUpunP*Xp={$IEoToL*8hMwBeH;{@Zp>Ck&Ejip zOdr`evr!Z)qYH1%PQCEf?BoG)J&AK$zbHS75co`qS1BrKbJ7UjP%L&>FKstDgSk{p zodz2X=ahVGJ^~8KfZQu4T+T9Gyu!9IG>!tFjI?_^s!+ONP zWO-UDl83$R#ceORk)u&%LSVI=C1^jnmdD7x!Uk#j2qs9EO-g$}x;D=ymKUySkUKC# zI)-GYwl{oK@DHiZ@_##Oy(L!&?nhDgi!RDDQ^=7-lE-Zssgk>8&$WcXk))V;ixnQP z@m2?B1$)^UkV?u8^Vu5RtN#EZVXtAiR3t4IUX$-U7lE4K=TTy}49KCvSN%4)E;;Z( ze9}JgK)}fPC~a2sV)!yYe=6-c?KyI<_9TlEMxX)TxUr|{${6}}tzGY2?+mOj!?<=n z-;^mH+Wyw(p}v^w9qS#TGHa}NNV94~Q5pbr_!4ttTnt@GYuub0{NtSTS)un`jxLAV zyRMAJebIGJj2kZI8>ixC#onqj`&emS@#2x?1 zMdPBc84}XNw>PixHCX8uN|v4_?PDtq(Fjb^Qi|i1ih<*yqNsU1QC;*Bu>tAgtCkX! zn1qDc^we03t~E&NQ2hQ{zM zddm@)mB#ja(GF7BYQy0Fi-gZ+m_A4R)0X@YJh`pLtORJ&c|tIC8hLGpHuQ@ym6A;{ zw(y7mGKOmg!Ar_lHZ73Jxyxo!EUYaDl`gRxgPFpYgO+=XU69O*{oeW?eLI}v?6MkJHFiY>~%1zrSJkmZQOh&SI*xa<7Y9ljBSRk|t z2z|fJT#2Md!vZ4K0-&^D1G|MSPj-gMU~IsnIYpQhmpVa%Zbf~!h8BU?;)TgZQ_I@YMWK8?R*PYUYlM&MBw|hb;k9&#)&B+Nk zH0z}K9_rUo>`5!ri&cHLuvsN6aOpJGI#@(2@PpN?{_|#ul9-p@!{ihcho6F@>6a!ZKy}PL<8^ zL5Zo=jqPzO%Ed0pD5dP=`r(yQPw>zjxg8))o%D`q&{UuZpdoxiOeYi-z2o0=RYloB zco3$Hb0i7N;cq>2l7wp?waYh%skAfU6Wf{SUD}xp!In`a60>BcmV=zBOb;I}`NjPn zyTsb>q0`uId3qAd56hctBv=MeGo=R?whtJZN<5oH`(gj;?G={DIxshr$cm-tsF-mr zb{#cnzgk-Jl*|`wSSWbiD(;@b=PAyK%);yn2YZt(u|WmpaU*b{NYV?y#7j)dO-o3C zK@<;803eVEN!9(QLmXJ@@+%)AQlgwIP>PB2KubSAebC3>;7%zV#jYs)pQk8}>81~R zhC5!I1bYtV+R1_5rEpgqpV-)(-tq5GB2XGXL;|HuFsUE|E>L`S7Txa?-zR10^aM)d zNd!uAJ%k1OdE-Z9{k<2=Z}M}-HC-aXNd2XHjMFuwkd+jiVaevIyZA+?Ab-1jIt|p+ zg#^{QE<*&8hGL6PvwZmwQC0@|vj4P@R+?z}Yv`)!&;mj0-BUp8QZs5Z9cX+yT*^ z=74A?L!OH}Iu-4wp2{@yO$S7pp`VUwk|1Bmfb?e3)jnyXnMlZ$Khjr$?teh&{tH0& zw@g_M$h7p?zstvz92&6g%W2N|^%}OmIx&OiINJsMsoVOlsw%t9H-)V~?Ud$d3XqB# zGT08J2CSL*0E~T-Qv*T|d=PSKZU*Wj+7r}Ah8SomP1TyTC$M`u^_|4Ylumo(Ifj=D zD=ZHdi-&6|z-c)O4wl=sX~Ubsz_jFT)k3*vfvrZx2w~k}HBuS7 zCUcdDjD9Q;3L*HPhgC%7tX!mh@Yk=ymsNpf;E;+aZJEiJ70t2dhR{1MXbcpHn0Jn4 zRx-y)#G*x-88ql=MCdiOcG{alU~MNdCv*8j?VLOabKeqH^o~D&lNsaq#E#PO&OSd= znEggjsP(Em|W-Kuz52xkVR=;JM3zN*e;Jg0=#=jt_+7AyweW3EC)?ah5$uhYP zB0O;tkJ718Rr}N)rRkvb1B)hO^o@n^e*g6$`d29s+j?Fe;7}UwhFTPi*f zka|q@ZZQ0`y0;R_Vn3E&Aj4jGF4^Ui3N5kSsC|^C>*gR0m4ag&QG-h1C4vN){+h#d zk3uIf7=OwpM8`VZ_ZyKTd4Y?fI<-c4CTNS!yieqHiqV;mW<*a2`L~{vr{ypQbBM%3 z{`#4A)KIa}DW^jlosOa95Lc9(PO+axrxa>Lz;T-9q=lOf51bmE!sM{7_V9=}$a~bL zJC~$U+Q}fjsgp9PR1lS*Y!U#SQR9M45_{hv-wzPjPnWz5z%QhN5!theh4-~kDe3FD zhvRzoElO&zr8WEwaJ|jqJoOm0k=-EZblNfM4@2k=UBD4-B^JXgqLzj2aYIRua57G` zKZsHRWz(|(^b~57!UOGzDa+lRbQSjgGc&KjK2v&NHR^JD{d*h^S&~*v&NJ0t zVlNd-^bp$px+F)*Y+U zW>Wbbo?SVMmVN7GI%SQ2D%jCjCwH=|sqkshFQdz-j7_vT+N{UTp=OzTdR*&|ey{b? z-eKJ-$K|*_uWh((SSb!V#6S|Mv4^|R4~+GEqj#cb+x(v1p3SYx+X_V07bh*n-jUdm zP$u?!plZyO*}Hr9SM0xCtjyj$z;bMhQnIxVqJ-CJS=-W=6CAbVcb7?k{y9t5}-sqUmLf_Q?`lOn|ksw>Xocy=~Mvf_Q@R`3h2!Xyv}=>uDmE*SP@ zCa(gaIGcW)6321YeP3RMX~DSD=z6F{BssaPc8Y`pZqaA`RXq=T$AU3xK^%-JqaAnL z6XXgw7&Qkx>p-?Nf#f2kcO>$Xc!50cHa7sh8o^kS#9nuG+&+oMg4F000;EN^DD89y4M|8X^tTq~Ayco6VQsHDqFJ;shGtPi zI%*Vino8jK#75xsE|tLXiG?kuPjeaE64N6(@S%<9vQLTV{Iza7fIs}}Ok`(IhB~zH ze;B#{wWQL*#t#pPBsirl%rp863C^Ehfobp)rzSH|@R-q8KsIxQ*gTXtLIj{BnM_Q6 zBt#J7>Yq=a4n(tOJDpA8e*ZAU3sa<2M@0r9)pZRdRG0Gulu+=5`2Vj`BsJ~#*s;^$ zUt|(bcCC2mlK)-eX$H!Yknga>;CT+#dFW6o$PhWSY7r&90p#^)Mp;>ZJ6}bN`ki!nrzTpkwwFF%hYkp2q>oL zLgjVScRM9)|3H(8IqiLjK-sC{_R|Qe4#RC}RtPvel1VrI{|>q@T=?NhHcku)o9sR1 zTA4j$z+Oc}N{p&K^rX-SWQFj@Crg%`Ae|i#DB_8DgvSaCc<-4cmNr}n+_Rzhg9GXd z9SbuA0x1kA0)c3z;6%_b&5vM)0S({PSh^np-=B&f;lQbd0S}~v0S}y77_iQ5rsrI_^xucP7}`csw3avbUs3TTMpwzJSuTa1l7wsHeX(xU2sf3df2U@#mD$7Ix` z-LpoGtGiH!Hl8vbGCx6K+W5ZwjxxDaE-lgiwXrS|)5cQ9ZyU{z)I?+h5A{a|P0r*^ zWad>1;DD=0Ryz^M!6;GExY)IZECPUqchmg;gYr{`6d9v>0PSEFKKrBk{SF_X^Vo`cOeU7NGeNp;lCoLdG!M(ff^|ZlJ(_NI_WOu85(2LT4=zpMD z&oU~NQUzFVfxT2Iatv_U!~#}eysOvn^x;!{j@9VqdUW{N%euBvlXVi-#$buwX7cBd zs}NotXLvMS9^n(4Uo-s5q|)%cI%Iw_GvPf%d^;1Tpa3T?N$>ZiUvj_KD)x_OfTm;_ z(qQ~xVe`?6A5B`6b>OO5rkm8rj;Z&mnGa}yKdnHq&wYFu{dDmL#T6IUSWlUq^< zT|L3aU$isfPxvIA4%K`H*de15=uD%Uav#-zHpazNyP2=M&pttZV%u{hHAzI#PbXDJ zHgj$!^G3-uyB|#Ak@i=?1)N7j3@2;^f(#o8?WavHAtnpIK8Z)duktyg)PfQAUK}2O zZ65J<#)Wht7J1_O^t8qQbsW;tYjFss3QNILm~EuR5U;63E=pB#@_uZ3iD6zQsmZjsrnFKTuh=r8T>yf{~I{qB;DkkC3l<5Z z!~`nKROR6GamR<58ApUudv0!=Ahd71zFuef^`2~OkehDNX zzkrg)h3I~=9WX%9DS9HB>`#ITB#iziRE{M@OkDv#!5D|0Ch&Q$egf_qqr;oo%~uo@ zOg<#w7KoqbEs41PkO^^}E+#R{_5xhdKh2p>%1J@-WeZTlJMx_7R8p0^H_F^j0D z#NtOHND9uH0R@YSTkwAW3@L zlEWtUX0sAg2Z*e~z4`1EvI-BygeeLEg{AX^S&4|a#39`q{-O4fLj#sGgsu2)swKhV z+DEtHAFM2q_B2@AK1!urxM_%UKm?|pVq?E>MVYz2_8M!w(F_H*pUkH!q2w+(aSJvq zci>@7DxWw-zEXM%HbN@tNlH_}{rOxvWGmVH(cSdjLaXkIxk`pa2%sNN27Ygd{d8fH zt(abGMhW+AT{jK0mNOpNm0bG48aYuG)+8?&5{0XUH%57eyfHhTo#cyAex&8<+3M{k z2`76X>t$*_b5Q!OeJJ^Ocjf9;^$Y4<9``C_3g0QcEa?)f*Z+92KCZuo)q^W9RbEhg z)y;+jYH6SWZ13^9{c5)AsaNvJ#g?z+vzR{j#^a6kyfyNXR~o&wfw|tg&k9zZ*Ff^a^bIQ z@BHGiI{k$PT9kscpjId!g+<6w;w_&&b zRG_A1vtM+}a#y{o{pPhbuF8PC+=nu&MNhA7+wE$s-7qhv}B9H zqAj0naC;hSU7gjDcqA?lsAX@vJe~JcD&KLxTC?qJz0X${dHgPKRii8TZ=n&^PqnUT zC=(jW4l8evq>toAaM(kj9%&5tR=WZ{2WuZZwlk0YVEyxcpWaDi|zALhG)QZV32Ltyy~yw4VtmbEFosscP+!fS&TF^jmK=pRRAJ*mNt3sOsk?z1N%WLJ`$XO`Be@ zil}ZH3Fd;rI!zh5+E*3nP`b5j((@rl=tAzu4mpCJpbMI2sUcX}KA&`oQHYCoO&`<- zwSO{Otqx0>k6$Al*U6gM_ZBQb8(Z$!mdEu{19|8+!OTC&x1a5L@RC4H)}P<9eJRY2^kgc z%&}MBt0OXrhpLp~p*C;ui1W&08$264^oYbzCX99j;ao9Tyln!~7v4<_)LCZ*chPR#nigz6ky(L7xC{ckS*+wY=(%8AS2z!?nF2CT$&(3s36s;gTvPa zn}SXJi8U!dHhFZ?a|?QH&&@GAnKJjiNe@nab#})hqDczu5=|BpP2MJm{Umey-X0~( zQA_(O#I%S?_UN@zQR{VA_4#z$)b;rUtqKc_CHj1QclITEW9Vibr=j)s#(LMmCam^) z8iBSTgf%iFzz*hEH-XzQrW7vg0#b1BZfA*+H~Z3yT^CsP$6=dTV1Zq%kYHiEZ$!iTWWq`$yX_4JB2w96v`w^4m}gSP+a`>& zaI=mLq8rzfRKK23qL$xN+;g!&r8^wBatvZ*F}7zB_)vT_SX_(cm5?+fI;Ac4hP7r$ z8|6v5+Qsac0BAb(7X#$Hm*54uVm4+7HQI+J(dZd_3(z}&Ks}0 zdFi%zbSOHc4N{*Jj9jRarwp+=#&08>;9l4UF7hDb{`9*BQ`h_}}vvrhmSBkF_=*25Q^Fq_q6;iM@d z|5VKT70Nddds>*xWgRneStYdfU@N5y*l#tbv@Jt34@F9eMJqWN=PU!NKjsI9JR-e8 z4K@O9pe~NLxcve1rsx?w5H!!4b1Z;97C^vm|8Z%PtCmB5f04RVdy)`j3A`YG02F#P zv=aV?$gH>3MaqD3_*h-QN1bNm&l|vdo3{?Wma%H(h6cBL+_lzU^kZ*>KQKqy=w7R? z5;P>qv)XfwaV|$|E!oLZ{?}f2{Z-$*Y1v$p1vxgYU|HHP)*qikRvP&|nh0>UWx4+7 zZdlv;U*XXJtf=U2tn);dGB3e4Ec5i<<*JpWw>jH@b?V$}+?9P9q7pFE5o?D&(Y^-A7DA_G5Q>ASRV$z zu0Ma>$hr~EGLSFY*XG)JhI7uD-6K|TRd}j6S7p&YxGL)!=grsLa^14)aJ1C0VunWN z5S*0__rGHu5W4*K73uDk@0UqdX;utKk zF24|K)5+Ccdh6n=oi{DI2BZjw`i zCk*MWv@Rzjg|gl0(MpR<+5M(iHLZ^{g4NdI`b^1Ur(Ba(4drIi?oZMwS3Cbylxpu6 z$ex)@xx5$G31}BHKPNMWx$h|xSxkXp1eO8Ss$*>fZI5T>0Qf`FSs()9w-|s8X{7`l zi2ON#c>AQ}kH|_<5iFYt8J%zqEH@CQqSQDBF%cU7z6eedr(xMWBRwPLy(r^7BL+$u z31Kkwf86sa3ng`CcmA#5iU-C|A6Fd8O6Q70XBgJ)p`1fGT2%N@;C6xIMG#g@Hwa}w zLKlAmSiHPE+QfRT(Q=^7}QjKM2- ztGiJ)st&Pyc77qy2(YKXqr){f9n_@Zz>MaA$O1GemADSJ z0<;dxO4pB79p{U2b|{Y%40nBNj^IN5)&rNYfALFS6waLdd;%XU}#YBFyv#kRl=_woL6rE+at$o z!;jUjm1n|xT6LETaIPx!Qedo_oZ)Pgy&hiXWg(6&BX>3W-EaHk(CT`hbZcbaDsqI& zG5@hT>1l18s*BK2eSDi8&L-)Z!tJ^}3D8LmL^ z0<$ZCt9D1W(oCbI)m^pzO(X)>*1qMggyLDH%p(t2g&+20j#prMSk@mhiUh*UM zmq=_|6eF^&X%sKJ7@EgZL5}thXUevr$a9^S26JdA6MU3n|7>BE1+xiwh#su`^{m;qbnZ&C%1-X= z`V5ai6J6Vz(-i!_%)JSGTjiBL4DECbGt(N{`F)1z%s6qF+F_h1K#M~FI{|`86HrJ( zoi<4w*_Le;$1;+P;wi1~s;kAe?8J_2XOXiy3q&C-O4tnTv<`*Vq0?5-POF5aPNt;_ zgjS*Lzy6-{zV}MkOBR@!|M%tma<%&E-gi0gbIy6rc_+CoLg`RC>+gYTxM8MR!Z>>{ z{ka75D7%mq0pakak=bK7T+krX352V}_RJhV&8l^Yr>b1G>Idx}u3zb>7Z@Iak)MCL$vu4c_uHk#zf=W2uHz<2$uWv9b z!c1T4uQ}t8?K>ZnV_LrSI|JhARx!*9I0E#(!sAh#T8~DJa|V9gKA0W2eNq9tu2k1x z*H1VBlJ@0heyO2QIMg=DBNYmB)k`Zsz7Qx1S$TIE9z5FW)aX&xfj3UkqXv4wqvdfZ zbKXUdCrFHLQF0#F-`5p#tk3#*BICiyr|%vb;urmR!ra_S2{rn*5nqC=9cT_b-*$|F zvpUkhR4kNBcLI8siv@b{JPxKKO_?DywS&pDP~a@r&mM15kY8yqk~Qcyj6DBO!5qFo z@F6aZ1i|h#V3}mWD|YMLuR=r6Sn)XE0wm*(Q^R$Ny=CD-<#$4DxaF{*?>p?uGB_~d$iW<@&BtcmX5lm62*{H< z_=qJ$bazV;&Ec&UV-mw{+kDskkwDvX&MNynn9 zY1T@^YF$T}sYxxdC_jUg(^1kh99KY{5yuyq~_0d0Dd`@?EvGX;47V+Vm>XW@kMkPjIwg+ZkW{I`#^~6!}vZ!fs~=ZslWJA zWSTWbuw%TcNVgj{i(y}Xk9$+hMjYjQ$uR_6VjH!M%G8>DW19}vne&Cz?F~?#s7%}yC#IrB}j$LsD;QoK z(@R9(HV>l~)4;GHq}ZB2j|+WXZlTMqYFwvG`zyIfu}Hq(O1BQNKrTL&cD-tvO1l!fbYq3wJi8`n12w0Usz_VZ1pzKB@~@BTk~a;BO^2JM4C8j5vi{?2O(uAiiR`xE0A7rnwb zwRwTT`QU@t7{U^K1NtB)S{tLb#h!Z8Wp6^A)sAbK50}Oz0xggAtO3n{#xI~d2@*O- zqy6+uAG#M((-pI3K_$oKxG`7gaZf9Y=hA@9lLn&;T^&$PK>b-72k2s#kU$`=6rRc| z5*Q6HLwkrXfi-q5SYsQc6m$l9n{B*qcrP(0F5|?4@oVi=%mUL$mx>Ln@o~mG)Pt_& z0_iL&4EzD?Sn4FcKF|@>^_lCFhAEKd@!L1X&yP@*^v1Xuf07-!@d<)H6uHA9WmW$0 z?SKyc^)+Zj&C3E$V5HHBCm;^CaRMdX8<`mTGvnWmc*ms6Gfhf1&VjoCHpr5h4bVWt z2<9aTsX+rPGx(Gb`amuPk!G5MZ4^2U7iL?9PhO-)a)1T97-K&JhoRdD5YHstW}3g} zfmab7+S0nt!WTNcx;`7j*qXQXv)q;X+&SC_MibqYS>!^?NARV7Q15WnylbyUfn$ez z-LIXlci>G0xwK9=V?Vp)E+fo;+WmnOJV!^P9X?lA%G;=HRiCDqeJQ-^&9i^xJWK3a zTf?ty)s6&GFXZQ8GiqAUL zmruIvzjoREbDe28pi!e)tbbUZ@9H=rb_(m?^}miNx^T>(2?U0;dnlSNf5U5Q1og79 zM!c-qEmy2_Dsz0>$$9E^i#w`q!4V#P@jvQY?_8(+O_fb(sv;V7;Dj`^Q)?={jq$YG zia1TXmuT7>A|#vsQqtp4hL!K=G|Zmy%lauI|67dD9LO zc2}3}tlbrO%~>1VyX7VK@7>~69cNIH+P~h>*ckG24ZPvIMGkv$pe0liDv_h165$Y7 z2l793eYRNWBW_aYGLQ^<4^=nV;Bz<;c8LA!J?@#I1eV#R8)&TsujQBbHdoink8kz6 zf9+_nZ=LIKD@%QIJ<|PRrz?1-$=O(AZ>-+5)ZwY`{Bqx^4JX&BFDlQLs5I~U@`Jg7bmTiX^`Q}#P z{+5$2;ooXRQ0}W89)vQ!By`!=Vf-;ZT&nh!*}j{NIg!a-V3VSW=ST!jjbjM~z7_nB zn}zjN>S!=`%MBFdc;!FTGrPWS5u20}xeQ4RWU9sd?ZKm=L^zKN!il-N%V;w}EDCvT zTRN)WwpSmxr(+=WkQm9_e@cmN+^cvMuQV!#m51HIGm%#|?5*Euvp2Zy;mS}^R>^h5 zLf()o%bW@4`O4(9eAZYY{j20!)k#ppZ}l(cL}V)>1}_1&wY}%}`n?wnaOk#)AxYy?1f2>cFp5!hI6+Gpt%Yno#8UROlU+$6s2h2`k=~71GV_YZ&}PIM~um1N3Rw2iG!)*#RR(MPR7RsQ<=>gi_kqNeu_0}U_`l5UDuvOlb2=V{ z7b+htr8>1PYbsv$$&G@bnhZwzD2w#&U81Lonw&{2Ta+-PbPZ5nnKaiJjZ^Mb%S;iS zxK1vWPN9g8ISecc?6Bdr+MuN{9y^PN0SB<9|T;fOu#nl+B$_NJQb+adpQ}61{35w z$y>eY-ZVOjz*~u=u~!xBqAQ4HFD2B9-ZScSVLH8H->Lw_^C4DHk}+n=^;iJ~!$_3q zK<>J>L9IfoAUh4+KBU&QA(Y9^%NiEv4Xggl7^O~N3ZPO7?}l+tV~M1|uxTc7J~uNs zEvEDUd~9=GhnIzv=te9ZUK08_=nz~u$;PoKb8w@WwsIlD9d-Tb%ncOcIr}{x?LgY? zSdX*qASH8>=Sg)!8aOt@s*C&t3l<)%E?l}W`6<#q4jfLEq{bCJ5^~0AdgaqxNp5;MdapRL(x!F8WRWAch$d|EzWBHmFN|{r9TCW z)P0tcylUP@8WU1%YTrS4{FLos-wEgY_FAC{xiNIUC%nF^2SDvjyY?E^a(~RfkH)JM*1qC9 z85CUYx$Rf%sB8bqjqMff%d!jL_94I1m%Fcg--3OXeHKlFQfv*j?z14%qvGIk&>a@t zSN?3>CkMVWz!jT;zRWvcOz8}V)-%)?R~^!QeE7<@z~}WZ8P;*aTtRm+tSSH%EVgR7 zTFz|ra^m7(b}~Dj2DnyY%+6fOm(_BS!Sc5*--vHSN|Sd|x;f)$TeW)i>Vh>zMXSCp zELy#~arJ7KuypmBnU53+Cs(go)#&on3cnGCgd^+MteP|H7Tc`a1+(s6^UWK-B_x`K zgmCmDk^BHULyOo^dOfMi;q%}4A+ z*N@NUbKS`OQ(B%9eKwyD9vVK+=0E#++pK?EBg|Yd>ud2dYp#zw(W4NiG@&@-&Ul!7 znn$d@2#5A^rCfQ$sw> zFtBGcmWWiu)(-eca&`Yoi5`sbCAmnkr;~$~S_!Rgw0H~@4pw62qlVI#4z*%%^#e^! zc-w0D=cHD=(%VQY8?5Bl#oGwpndo3;W`dOrRu-%pyk@X+u+rQ#Xldu3R%#l2H^Ljo z7m@KTUk;s(8iqAZ3s?WqdnvV#n-WoH+j|wQZcHHzB!;^8?SRXH>P@A zkze72Y1dzj3+Vy)*Qh1oTiYtlGPk94ceX7{CpD%qEw5*uKN`omQjMY8{`-@J0kV8G z|H6jF9o7{qg7GwHhq`;GY*P?;q)G zRW(}ovGT`Nt$zd{iZC<>QAs=on3YYe0S3nL2p{nn4T~%o?@t6P`L)Ydx^}$EKye;3 z*bQi#O#=v4OuYYC1TAE0NCN+KA-EKNOUa;jF<<_8bwxQWht)x8guh~69Hi$6dJXnF zCTAvfTFfX|id{-(lA-5fmT)W_QwNdvGK60kdnWu$SRG-lIif5Bs=$K58PV|M!cK+~$wu%)qoKE1 zB0*@BI)+3k%P5ag9y1`*XJQfoOH5seJZFni0zO#2{IH=*9`WTfJ(b?wk_Qn-7oHS2*(+~*OV#4rcAz6r{*Jkg|FaCc$Z{PPS{Dymzq}7TW5 zo8ObG-xM1?bjCfod;V4{)5`cdzB_;SKk8b#g03UGnh#v}(b;c*CcWO~Ya3}B(W3IO zj5KwSKw@npYJ#0Sfyzb+V5-F7Tnhhkrmy5|OQ`ta~y1k^Vihim&EhU&~(;C|@)4U)L6742$y?wYkXh{ebhXg!8=EKkEFHhmv1g51N8`v4im8)B05xEuT{!Ya6H{H4 zU6ls#kkeh2{C#rvhf1UveHvin(e&dQz01F6{BGB3SC*P#GJcB6D3UaN6~HWzEbN;# zGgr+J>emR7HP`R4@;v(toBHoU7NH_EMAJ?lkwNc{w?#LU^Hw8tqC}L4Pm_N( z&H!>d*V#Sw+(@KkOep0Vr`_FHDBL49H6W=JZ+H>Sz=Jr~HtS(l*#MCRzm*gkyt)|? zX8I$H?tqnDE0;$0%+@DYl#Tx=-{Mk@ZaT1diNhVJAGhAtT#Q`$=eD|yqjWFr75+lS zs#tv`a@be$L@RFsUx_YXWM0@50Dj^L?-R|l!^;l0(qf!ljt{p6t?Lmo^ikGtby|Z0oFv+)t+%&dav{lzyNbU@OHv_G7$`*vHoguV;Ppj{}34XQ`a8} zow4;RSE|d_TqrJpN*>FuW2{ZD36?`?my<}Eq?N7$@i7=0>_4OH-V4aXy` zV*?iC?Y`n}s_5j(6mnU{EsjpI{|vd7Q8#cLVZ%q_Y<4j?W`tW zq_Hg0spw}7NDmA1!{$auAg*Kx06lolzLI7L5v$?TIXy|N-z6lJ|JsurKYV+V+3V^_ zKArQlY2^Zx`b)o*RAcBsqh5`#+m__9qv# z{e=7UB295Qt|p}q#woECPN=6U`@l*!^W7k4m)tc7|GJ^rEbV7Jo|aiiuWIxN0^YBq zvSs4jaRn*d@ZTUnlJ(x;Ss8!=d2h<3y7s)bF<`GefCN|xc$QF0aHhq}7v8Vdaw}3( znH|Q=9fezw!6CA13~LOwSUWtocz}?>22(B0UuC}p^9LpyjZ5;rG3(*)W{sy8qEp^j zVKr@bPQ7IQ3OYZDY7o|CVN2Koj|9jyavjASo|=nrBjWSyKDJeT(q3qsnn6juNJxb1?8Rm@DXo}nmu$>2ls58SP+exSQR160l6`MCH_}+M zFL>DLU|UMFP(=wb{?_nV1s^pSH(3LwzfP#=A61ibnn{U#V+IJRNosUH-s#wd#mq29 zcBOXx*RD|xv{~qCR2khh8q8x3Ua}C%rSPt_5h3Zz+m+sxrv4_8$9Cz{mh6du1?)R~ z%E7gq2Q#e#pEKcR8fwv6vML}nYCe}z79Acxp;3@>xTiv>=!t77x+UCN3BAX^W!z2M zkZ~_c0-t_&-n_-pB)>eayp*wMGJp(ZLR7GWE2YY4jGsbGZ5)Zl_;=}MjQ2BzijYuX z?%gQzZs~T6n~~!1?q>|8&}cMf=qII2x$V+>byw2dsp!(!u4Ml*GR|prP%XPGyNai_ zD}wTbAoUb;4LVi#J0hiqJ>&7Y1LX(qV&wJ%R#F$xDp|=mcch8~<$NWeCX3b`D9<+6 zfpXrA)I|O?T{aA?<=_fYOyo8`yNybirfBMT&)}pTe&A#6;bZ1D`Pw(@q)%lc5wOjO z)GIyB+Z;!W?j$7It)dgIXodTqS>U95b%;#so4&>wlb(i_u~zmBO&k_IL;Mmk$1FWV zAOo_32FBnZN5uJ|2UGr8n^Mxv8SNHQwYdGQCD5r5?go={+Ul~6u8xwhEKVdrhY&Hh4GeKkocmjN4 zAK>`+oum8?WG#Mjs9(C*qxg zQWV6bVt{vmSDE1zKn43}21|6Mh82W3*TFBcx?W3-eCu*FONCs4W+5kLnW1c^w6XL} zp$PYr5ORI4mKkb53TobgvIDnW0LHKo%6~f!-0=u&pE2!q541Ko9vDv@+SGJSC@R{-tX+&*I0AP=2qtN%T0i)PmKbxG|kdAxw%1kgZ{|&eGJ3BSH&DD|yFlGIr-H2HAI-596UF#H& zxISoUQvA+ZPMDPUH26{8@ub`B2)t2kSC7h_#Od?Wnx+n9Z&AHhhON zoEvMjn=N3EH5m+o8^$pR3dmko?pY!EtDP>iJFyg%JF4s+uU)HO?5|LS#pp1hBlMzn zs@B;6@_>7ulFJIl5>v=17^^rHFiihoYiLH49R*{BH^ee^59~r-&QqSl!$!V)F%TfW zu}o>G87rJk%3m_o+z0*9(rL4%i8+j)G$xNpmGW3Y>1q#q{TEAv!(Sm^>#rao?wui} zGswpVGO1VbYEBWMcE3}}<04fmd45L~e}Q5H%1ylD0DadGzi^+^Lnp%@57Hl-f8XzD zq?hbh@BiZDANMc4)9z@X0;^i37^7r@44Dzn{9mo+Fa34?sxRRHq3;^vUwe0h)9FGJ zI`QLicICO8?1(GR^*d_$3sBE0|a2J8!XP@4RHH zJ70hN?mM4{dFkl?hJ(NGNBliE%<)G_C@I~L?fZzw0kzhuMR3~@f5fEb6;6)8MTo`d9=+cC(4XA$H+<+PhnQFBDpP?G9KM}YAyoowq<|0t0miv;5 zY#1}BMhk@rt(_)h0}9P@#sbwU0E|dtDy6jR8lW(Sc^PDdDMHf zNtkZz8RpY`8uy{^8{7BiM|`bx%b9`!t&s{PW2NH@f8=Y`{yc`<5k<=iza_wB%lWq*$yZR&ubMhlXebvtivz z@0v$7T+OXpG$k{t@%fy)fkI+sQXvV`*ty1$8dA+gCUu!HrgwT{W%zEU0k^RkBWA{Q z>~=m!%;S1ntNFf+acy)`Xf#%lZNr#8M+}!T?yG_rjG3uF$x5WZK3^NsZ^bHN6>1r| z?}!K^g^gdxv>QG@h@nUlt1#M4PSD@+7B=)jw%ru^bUBb`On1hZ^(enF_Rb%t;26NT zXZsG)q-N8Z&+G}48goADm&rI)XCem7_EQvRB7QR_{)NK?zB^*=mjt9?nYp4;Cg6*q zjJ!G1TqrPD*5~!Jn$`LY-0J^^Vqe!_ZK9~S5fY`PmD=1`Vx^e!9_b=;4ML*@(28|C49-%k^dqi(Ho>liH$6(@+lXzd(am-E9ev3nl`?7V zMp+Pa>J4V%eVx)){a#tuw4BYri$K2J}=Sl|&Q zB2l6}v8fk$GHWiV8KEmLpENc*lb##M1Id0qpXeVm)qLIYgSSbtwIe^uh&rO931i`t z_V;XH4wf7_M@dQL@!#(q)Ripv^2OVS43q#Rn+UzeRy3{9&^t<5Ow;G45v+RWV~wRD za}Q82eblj(EzoN~3h0rAM1!PAsFrtBJE}aQ<W4AHtex@>MPRHAajqXRlCTW1gWVZXK0Er)~|A+s#`(LTez?ut= z0&nc0Z^pcQvQgKNJQ;p6%x5EIuc-N@1v9wIK((S@A>@0^3Qb$~MQdrnw9a5*L{ z(_u7mk75Aw`SaM=(Zpk8M#CbSl*ivUrs~n3bbi;omLDC5Q6{hDN0aD3Xit(SnFh=T zl%?3w5*<;nG^C3tRVOFIy?=O!7v+@s!bh|B`vj;OfZ7$8mLJy+zxiB>p;om7^`v z7Li7&7AhAy1%C!rKT=TINH3&O&sp8gX|9Suc;GFat)00Bto}sr6tBhV4|XTJr2k@0 zZ4f+e%wD0KFs_CJ1anEm3_z%n4vI(V^3HRCKhiI6{Kxbo?e?3d`YrD2!Li>#PtSYe zk@h;eZ91=1NKIgzti7)Ei^g-JKN&Y+oVb6OpA~;=`a7dV>8!?i`Fs3a?RD)nU&@|V zO=k+M4*Hp36hEG+yu^?J?N-Q<0iG@47Cp=&y__pH7E{NFU7?O; zK3N3~emZ1eF(D_CW|7D6>Uty#V3JT)jxMjzu%$_g<5VsJ4l_tI7}kk2*-1c=p^xMw z;LZY?Q7U{eS<1|e-XjGF*5VR5M>%_B-=#3_*L8mlHSQ$k}{zNx)4Am zQcg_Cd}X_LB8J`m5c$eY-G;BEXu%uL=jK!O;!8d)bcSt@RD51Z>9EfAmWr_GgOF5O zY*ckOu(a~QL?kUeFr`UPZsnAcGNq8B(iN^23$%{T0>8~t2r?-*lhtTQ*NEtXiE7j^ zE?}f~IT){Wf)=7~V~S0=VoEJ*s04rirV>NdWR-%U67YEJ0$OZJjhQ*KuEM5PHdsT> zt86Z)9L+jRDm?Vw6v^i2bC!@+fpQ_dc6iLkD!JfTVw$p6SAmZeJ>&)g9pk?tAevn= z$AxO2$(d~aJ!61%W3uiK9btR%Fb}L$(*4t7M5AdmU_`S~9dG|dc03^W^xqj;4-J#< zAOR_IqGQDO_Q#s67oiw@oZ0G}G+Q0agMn&pnb7q1u-SnDH5m__rCCT?g=q$Y8R!qD zYxo?2uIV4l>YDyR4l}xPsX>s(4lK_xK6&@dYrXEm$JSQkmU;sk;3s~Yfdlk=kSXdO zE0I#i)XO`a;L;{m&4m~741AdiAN+qmv!rQL)p59lsf8Iv&L`4!IA$|tXYjC>y8vcr ziBzH$W@I|Y;A~m6Vp;s!r7erkSa|l3HcNifepD)Ed|59v5w`wl9Tc0#dv{dM~ ze4?fJG&|2k`&f2SV&cL{b}^`>%rya41jw~`l}BoT`@qQ(AaW^#FG+B2el^8j+EW1%f%vJQ+Us$ zy9f|Mxcf{=!F~4Z|2_BFLRM&CQUY09?hQ24nS0C%gWNiMqLr=YcNJzWcBu}O@?1X7 zF9jfTaum^{qLbDrIPhJ3Te_p{{} zb+w+o1AG4t`DsG4RHi)1Nzds9^hu6YO}&a>BsOBotd9N3sg#8=NU%$9Atg{FC7^Y4 z&KlLibOs`@Bw5SrVt%w|N}l=RBtP1YTqR@3Kbd;w#=D6d(C}0~`9|O!!L^e-mH$i$ z?=|ind8Wkd)0Bo(`kXmEq1fQ|#4Eki4puxwNwQFt8y2DCIsq0t>$HYTQw=&UxM=8()V=gG@g(6A?qH*pjLjt-nc(#q>S?=+ zTIT{ief7kiK99jLRaZ;jMi}rseLYzn8UFXp+o$rsho5EU+y8CD_+JM#}_yvP#%j=yhMqojC=D8u!?PLv6h2g)hiLbXbRF{@g^^j8HXmeK^LL?5H) z+e%{AtQ#?ArIW*phk|_+y3ZzKPr>hD1RCK4GX%`;eQJ4=tuNhz%BP3rT;0ZBGttJE z_MZ>nW+TEE2(*VDR1&;va5M$lK{mP|Uj+U2;iMt2ylq4}v%~&>Xw**;SD3_aGIyJ_ z3ppXCj-##{-*I|~p{>MF_EXrbF>B144OOD6$7xjrs;%Zt10PF1_VbTR8}6MeoS@p7 z8SdwWt49@-^3AD<#M=0ZVo|gvxt#dI8R6v6YlDg)p2}T?RoBaeQjyfBVnt4NmLz>gj9H_rR zCyr`P@FhR7jBl$2GKA#z$ta!KvDAN0i-*H*V9VAEhZ>1W>M=04+k zVrjKD|6zwMP`u7=YjpSLL$1AvJ>bJv@{AlrypwGI=Ab)+h5yKv2kvw#MntzwsfG9XIV#HM;vY-QwtH-j2KVd?2y1YZ-lj96Z!b6xSySwy$c*enMxNaxo}!K6G52U5xlxyG z87PZ()Cm=HKERNF(_ZIjlwQY>pQhX^{TEgNrRYX^ZKl?$+{3BWN_mD_J>R!UJc=5t zSF>UFL;pWlxx{;fnPQm;M_RWppXFhG;8ahzwG+)3iNvF?ckd~h`PTz;e7V@JAUbC49{67_7|%xT|ka> zk!pqb+173E?K{H~7K0M(f83SRq#7 z6$ANj!U!E-_#@jaxZ`2Yx>KrOFb~cD1`@VCi~QqaWbuRCEk(p0W5VeOtN<)d&ix zX|hI->c*aFo#kqbnRYQM!w7C#3n%X#)sp>bpPnE5iZcLq+z+vMJuB7^pX;Ikx{HBipoXu59iG@ zb_fF2K4T0g%SjUR^eS%}kVC znf{2d@{##7vE#?pYs9j`$~D(NQu#K(o?vp{3SU@iMkX2VyDYEkNEEs8MPl2yE; zsoizsUOY9agobU5h4^U*YUWp@Nbb^k8(ZFL!f-?u%q|VsoariIgkq_*mVl-&k}09Z4B?3&Wu-eWNnhP zjhW92`bhLp{LtZxpHn@w#8zc*XiKZDAUiryc&-(tpwen(=ETg30XwanixTZi^`+Y0 zpRy3Hw0ENZebhpFLx^S*Nc2qrG6l~s!II$-Fx^fz0^mm3dEHd`E^vxFqfDxVX~OCY zWXF}>Cf@Lt^c?gO?L$;SsgNJk+u!7gbsxB}^MLy;`G%A3_qnlx1iqT)YD!#WNq{FC zTT)dW0PM4$b8$56}GX?cgj<56u%|68eqv`-_hdJjVap9;RENpHebCLfDN2_tw?(a ziLZ`Ep;vpzjxz9e*X)DE`2p7tGH9SE-o+*G=c-!bl7Sv2Atg7qH>YCQ_7PiT#vv<8=3r?erAfyuw+7bI~DoNZo;Cmh5 zt_nM3bo`a*=(}a3jn+(vuS#C(Y^=8R&1pZ>>8Q7_^IcYF-(1~st-Q$h{ZPPGrjCMbRmHw{ zwdg>lR*o_kt-fbBo^v0V*0pm-I@n>Wg^BC6xoX_ABeybW&i4>_1DN-TyZPO!0qMi; zg6=K5%G&SOKIK?vkG<~LenPyx*(Dy4J7?LN}Z%-4Nf-f^2(jja~xF~%9_7o zUxT6r?o6T?ta|&>eQ7Pn2mna;&I~2_?dWHYg9nujA0Y=L3fh6jO%CPEbuU3kbBr#WUp8(#i+M7oWEk&y zI@QgkEKpyL{1s!|J)*MKRL3%6YE8+K<;~27@|x`6{8Ion3|)(y3#ex;oeJwsrqA^1 zpou8X{*)B!P4p&sr6>dqti3;*#C6_~>5B7loul#beL?rR(LsX~j4C68(LtIdBnW%yfXoOo z(5L3&SNNP^6k~7^dz%k0gcy?MbD_eFelBBN(Wg;BHk?tv7Ztx39W-|x088@nfjhfi z_gNTf^rFsEC5)m(f-1^HgB6(D`%Lm0;XI=n-|!RS_()I z&l37Ru6$C%e#5k8`+4x=niBKkLn>Mc7lngP)qadi2lb6X_I>+b-p|jLJ+<@DTU{s zQ-|1q8d7x`tQ4Vb1m zb*X1r_ey2PF^e5q$+RSVtNvbnS^RY1>tcmiQTnF+4A3HWXIsZhqF^75leHdAM4-ik zeYsM#!Z)<{QZBJlTv=rYFUl@_$WfcTsq^^kmxIToZ+h#UZt1wV5)OCwNog%H8JlSz zsfX>w(#zsy!ci1;ay)En5a+ht?`$-jqP9k-ROAxo*GPACY(S4W{MU9&560UExybrs z`yej3Ouc2p-YWH;wr_5DeFZT7yX5pIe2cO287dPRTrU)f$2uNsY#;HWEI?QYo&x|E zPCdFn7;F2dLNX8J){TWg-<{Vqw$FD)j$$_uPv;3~e_&;EW23EW&L4EQPk2Y$VlQ^7 za~ETOJKAWdzGE%7)8#!>ob-3i>#C$V-2--1OzAqT-H!Ss*a$!hJ8GQ2b4qi<`>UMI z;gw<$Or1>u-crFBs(K#jh&SzsA+oh2wu1)fI&6R*iyTy!MMfe&=++F86UMV{O?7HN z?&#S&*XauEr5Y(HQ4kZ8ftXXfC;Y>XGokM_1#ftG$6iN`aAe0W|E!&b4VzZ&h;sN{ z8Ym;NHF6dCW;Pv*4UB9$mTszIcpz5$8WJ>2h)9fzy}B8C60R52l$-s1+859UZ@j&D znm8y9=(d%7NP0+m8IhL=Qja6deO&8wk^@;e_3AVsAe|64P~~=c7&Fsee7cs_cP^4s z!6qR~sGJ44ivwSAxKI8TW?V7rWU(0mgkuOG42eUfXZ7~CyHd69(C#W2aKB~+VklG7&Nv$zTCl;4or(o>fd(&+q?HOTk+kciC-gdPy@u8qr1(q+ zw&Hs$bQNZ4jj$|KN5Z{B427q9p5Azl@+%~`@I$R6ROZ7Fyuz7jcReKv#>0!w#?Tw< zoNkY>GO!Ys{Apo8SlU?EV5cfTa!HePgnP*QZ1r|WUA;#gze!s`-wC5GhDUuzD^st< zCTqP0M}o zMbyqMB3l3X3XW&k$Y9sC`~Dx@BGT1juz9iJHfE+%l)uuyq`&IS?aVbw{Y%!)+{r(> zWYO{!RN$Zgob1HnwRfB^-BF9{M^#}r9{S%BI)$~NJMA^a0-BE%N_63UTQe&8#Otf$ zueShrB;_Qj7hM);`6LvR*779{&#&bXE05jnYpQi3oZNuDD>b3|`R`~mS<&JHuW4;I z531-_HKVf%AKzDq-wDyhPBCe+SYKF)6-GE zScnMSqGS=nt6&cJuPKtsZk@Tt@1^hnFZ;ufD5i{!r~N~uys-iG$j;gR0~1q?_ud&u z1^!F*s$NDp@k)czu6Y|PGqz}5W+(14T8XqW)DypTN(=>MbU~UDmR56Zgbb|d`<#I| z2>MUKw3t!TJ;03C963ip@~(8(%!4`*)!9Jtn{-UcLFGpQl6o~k9>OxVL&61JrK`|2 z9OWVifNjCeK>!$#=cB#|)2W0HjTK*1{(~`7AMr)$T)wCw?X60}VDgxD5-30|nKUd= zSTwr)B9MeJkWT`#_xRd(-A-l^b~}wml*dYqHe~q}JpE}#qZ32NZRQS6Rkw6QA`1ya zqXQ;#(STKl`=f>-H30U>Kt#ho8eb>~I}-hZZXZSIVhkmrM%!9pNT--s0FKWsYV??~ zFo9}pa8-hu32Z6>0n6hwfvyA)4Ap(6m=8osz(W<47Pr;Z*lSQjNxVf6fMc5Advyux zshn@Uy`f2%1Lj79aH0ynKfIMGKHgWU43m%>%`9{g?Db#Q>lN7WSE$Z5&A%3KsM$AN zyQ!&JI4Vp7iAB4`UTtf33-=J}b_yqhxxv4cmR(#=gsU5!zWH{reucRw4dz$!(PLUkH+Cwg?y7cd`Y?Q3wRoI1Gu?JFniu`-Y@DpZzo;*#FUJlGdqjcHV7%}P zrS}HYTT_E+{6PWOH4b-uLFc(zPsbaZ-t*sB>u++`_x^L=&-a0$Q~lsRM{|=lsthWF z+UR)EZ=2qI=it!6=eC{zHKw|L@2$emtL*i*haFD;72biXZ3CME->J5BebxVB_2UlV z2nar?g?6zE^nW@$6p!Ho^_3$&63Fw!F0*Qz~Iv zHQ2Rsg=hmWgnj^?U$&5BG~@roh7Pj~%{Ik+ra5g)d6RBq`)IT43u-}49i+nfykM2w z${*>E@IGh;dhL)5;)HQa4m);cM4)kg?7d2vVNj~{Ci@_UYUL)Ss%v+qA^`%>0VJT> z6?NIjV&#(E&U<6o##^O2LlkGvwKGFr{zurO79u6skts7}49_3pj!gYabnXomW=)Cm zH}5z?FE`qhB;2Jv$1%Ky+*lg!<`K+A2?5wiLuTub$aU6&nZ`jzR#Wi@50hN#&`!d@iO^{G{ zrjANjW*wCsm9P`P^;Ktchc$SayvALx4b1Y`>f}n>`e2~i>0d9-$Iiu9hkwp8btBqm zJkC0M;EapKEziCWx;E8ozYin$I zMXq+J&p^Rwo$~$R`OZfBubaDGoTXid)NApfTcx6Acle&?H2ya!ZJuQ5trM!;?>5UX z5*f`V-XcHhb#xsIZx{bat_ZoZD^BBMbFgzvDvCZGjdqoH-QhcDVE?XzyPSI>kPUlU zNu)geG2u%>lkiQc_jvbs2_~>)hvHd?DPVH&3=Vd@oI(Azzi?j6IHhytqCO$PgFMd^VMoPwB++&xIg;Da;ne5~m{+d4ZlL$DA- zYhHXKSnc!sUhwJhddZZXs&BKhMz{++jMb}Wt+~Dc@HZyK3U1`;5eD_8QlnXm!PtI- zsv*3FpyNysqjwlV%0ELFm6fhCf(>YOW9zH)aWll<8NOKmPyUCw87DKm_?v z>8q2UHnjC4zDgPuzDh&FGiLDZ85u`|#ko>42}WZtQ?K;>-qGGsLt$ds`=C>IDF=p0 zq*!NuXMUiScpcao#mcLt%5i#^{@VCG`W`VtI`hGyN*KSTCS(iVN$_vd-*o0@f6F+7 z>6iYY6E-cZ+As&6VPm7bC>u|@4XQ@NtM0^#L6d<`3Sj4P6%4g}Bhr@UiDihiojvcm zIw@eY`L57=G+2ezAUtn=(L-e#l4?>OkwlYFzPlH7|JDf)pSo z%sz*W9!v*+&%zEg{wvi=Vo~X5(a}Rs8TpuLsl?H;Uo*V_`?dYbW{|K!$ zGe8_baK7V~i}{G#Q(1!`<0IAz`Q^}R_jFkA-chm(updbH>2k(~p^LY~EKip|T|WNe z=^fr7az2?ePnTz4PClOV!NU3jYiBy!8+&pNRPM>)=Q3RE2PzJ*CLzqlK-B}5186a7 zPii@}GLsBpkUVs=4jMCqg-pJ)i99i^x&J!VtUhlei@(#ZoMb1?z)r+=7mA=_G%D#p zA-h@&6q^dCdS?(mrmKifOc%JT*H#hkCx3e>{oHYE?XNF#7OcSTda%%hLjII`p zT+p-F(ACro#YlP@@Ut${FJ1$FT8U#sEF&E6Z4p|vVG>dnG=+Bz8B=&uY{$@!A!C%t zV>^a;zXnD~q}YxZssrUMw5^XhYhp*zoHK#YYkWu2)EXstHD;W1M{@kQ!#R^XHfA&* zN@7v)kiesFXiI#{laKh=CHRI6X^$!2cVY{D-b2}I<$9LHLe-Vs&@*#HWG|>6FBA#rd7Se!Q}G}rj53d#|G2- zK!^t*)HZ|ZO;=L@%a{~{nt4i4iwtU}7Rke_%pe%l#FSCiK(B2`2~B6S`^yNuG`mfX zbUp7Wvkk3qh}UkvUJ6;n53#P_PuaHe4A=l`jTJKk!lhaQ;gZD+!BxbEgmal{#vg-> zhVj%tfqV92ZLb?UQHGmjE2Y&~Wveu#Js^GKE&mB1PJ1?X#G$G1UIV-k_LNKb(B9~7 z7Gkr%FC3`?_l(hfW-0dIUlR^375wX(;99Rj1$Ivhg-Vov(5e04s-dRzpUI8!rc)>q z-V0agvXnv(!7G%?;7~!S{H3rpZ1vSKK{%&|uk&<7M8Jzu)QE7A^P3#w%4Z(5w|JeQ zQ@8%ae+&iop#zIg5v~>%Ik2xhp&qhNRTRT&c{6n7I_JYeuS4FZRnYyO{55t@KP4V- zu-n3?HYT_br>RtRgbTwn+&rsA@Q0_X`w(Vvbc;fl>+EHk3T+L7i6hSoZ*BoQ|nu z;P?EcwrA;vA4GaL&Scv*%nt0|6jRESQc(Pluj^UwY-GlO9&PYdsb|(n(^Z?Tw(XES zhJ+a96WGvu_RF63nKnN%I;1AeB`4bRxt$W|b&DVRU+*jF9yZB$1Ao<>>`uxcXhq9| z^0x1jx5uMi=GbwLyP$Ty=WJ}7zoCu`-E(P0--|3fsBf0gF+ipI18?lifd{Pd!Tr~g z7c?t7@^<7Aza!m|79-*&%1oHmyRGY3?-jn4uJpj=#qT`qpX>1bY2&=E z6V-4o9d~$wa~c{DaEW}^2n#khwqMbEtIrwGxJZM>GdW)z#&fB7%Z!1qbTqLnBA^d0 za+xwF9J<5lY#?7H>-ArTu<=0ifhz(loxx-s+mXc)RFa0=j=r!wI>Q)(kNCp$$G)&3?GMgawxO5xB^ev# zgncEgCy%F}*}F%i5)xX2Nj4-2>oZqZJ_=*paffrm2&e8Dxom)Ran=7#%IU z(+0c}Q~j~sY2#kxvEBNrDyBL|cc(Y5T!yMYK-OG#CwQk*ZXC;xi*Fcf&odxK$g(?; zT~P5|+!yX_l#3MGo!Fh|9^wGV+!nhN<~9IQ57RgKz02j2)}8Ktj~0XO7{5#djBFUf zufcF3($LhT3KNP(W^b^6BzxmhUiN+L+?umHjnDME zR?6`ila2}!0ut?c{Jx>6(3rbH^5fU0lo{tS?i%- z#tclo&%4vK0(TGVK*3295FSk@c}Ao$X$;4*J^6d`_3q9n(r{!_cPF#my*s%($*+}S zWV@5Rm(bm*-N^>~!md22f(vfN=&7_Dzf0ZU_kCLFpw00|R zGY~=RVkMzE<4h>vTw-oBR=)m5X5cVqdtbC~3&;5#y{eVni*+K*w-`9ZWB>2L{Cgd4 z3T4`5Ci@5oeS&!Px{3O2uO~;Sj8Qn>>v%CB!q;v=hrHOYQc^=iDvQ z-t}jZH``F7PJ1iZDZE_OBLA4PD`x9-{B7ENw_W>!^k}2gBfadK=5$G~)oj0_+M~>o z|It5J&JBJT9tqujBl6Vm$ilX8VYjv^2HCeMLL%kqj|q*u)r-mb!qrg*OaN1$vSh7O z=sO>tFciitv7LA2Z4+7DnOarY+f;f1dOl4#Tv7>vQ~DDgPzO*;DzDRSD-?4Pgdz?B z(cir62Ks#oS`_IdZUDG^KtTAWbs?gv8Z`U6gHDAlzd9Eorld<3-(j7=ZGpR6M}e(0 zA~UCh%X<>fc6xZpc!c~7EPP90nDb7O(mcnuo(i2xNeg^-^6rh0?*N+zzXcTl;~h2 zbb8Y)VnxXnGUhhH?u_M(b|m#+v|_8;f<}&zFtQOn+d!XY8wWSg+I5Pe7SxIKc-T3y z6AMZY+pPCe!xO)WcfiEX80dWNmi>v%X`^$cLG?bu_bVs$ZT}asX)cwn#JT8ks*VlY zvYaKAk({3@pLo>=A}U;YtkFuOI=sr`N=i&0h?tuU!!YXm69}mXqDD_*?oZj1>J{Vq za`I+A+i!g8jd6W>>!iMXX2e{jcavq4#kj1_5j^L8nI=ED5~WX{D?xm_5~f4B6jkp= zPd;Z=HP(xo3c<>#jqgKLDBx3?svsD1m2cgY@wHws?kr6=_WjJbXBbI*vGjuYGK~T$ zEo_y(q<(6O&5UU_XB&W?nIpq!>QO|Y7OYsY=+1>S>3fYy4|{K%-Nz<eo}Td~VB`w<*5<$@KwL%71i@#jz} zD=s$Hv5VpzS-6B}#pt%j27y3n@;NhDbi&koBA*Z8tX}GVbio5FtOTUkWWZxMF>zuQ zl-`NdsO8c8Xud%iL}YEoIOdL-!x#JoarmOYnUceYb&D-c6Ipy+F~bK5id{bBpL8Zh zmcs{y?B4U9(AnhDUSt`S+KW!VOY@8K*Ui&%DHy}|K*%1+KEvs9A)j9ETPd}Gawn`S zm?tbK5FQt=W;Gq!iHcWka|`EYX`iju?$NOGci<{vExfqG9JW)quy?I=^;-Wxpi8=@ zxhl}-A0+1iFYui`^54q5-s6AF-w%ReHMW0aTg~~y_#Hd1H{<^)k!QdmuWjD2cEe%R zX|aI}Ti4uonX@raP6gq=>l@?K^piKEiPn>t^a3xC9hr^N!Pa!KK!dfX%!(X1e><`;rEt;PPE{JW%m{tCecnrSVTE}`VrZ^QRTyW!r zcQSkLF=xk%$QWop<2&x#N@IIPxJsA~PjzjxHpk=iy@}*ykJ!rwIovyehuqEDhc@@T zi=UW-DV%XJ{_BicTY;LCqFAhwAjyWI?#LgJGLsg!!fZK zYyXMnNAtE_vHQV2OU0(gUbENi-drW#bFfTut**LUNsN)@5o^SnU0c)&1C(oQebxwu zkOV^$cTNm?C$Cm4Cjhw2Dq9g~4R4Qb?{m}+EZE!9bLZY)gl5=l_Wl0QVb|XEL@B4` zXy1_*t&mNnLWBChC6A^O?<+Q`{>f!$iqLn&SH-uE-ggDop-w)9UI)qiTm!uR?s>jp ziY-tu+bsM{?49o|RFBXybkAcail5#q1Xdlo%(cWfzo_8)f|(tc@pyAlVP$dU%r(9w znPz-j_v}$WR}%01Qu?ZJ(<8nUvlqI3X9SscK+!%S7HK*1FbR82@99E+$)960Dq7k| zCvX*rbS97*@X|?S{44<%fg~gq;VpMF%BNK|2uqPnFHd|VIDZ$zFyxQ?&d1D@7RzN3(|3?R^mqPoF6F`4J|`X#491BrOZN2Nv{v& z9*OKq9;t3_Kec4n5t>GiM`-HHR>NoS3rC$%r!P*>fYML;D|U^k5vJA{WZ=NT3?HNz zzR^0~+}kyFIYLf%T9@6$fOo#kxOcmA&D1+7rsfosLi64Az?~}=S?}9jwh6`)A23pK zQ)+h^liT^Kx@`nB%*&k5?Z%W^r^T6Kj%&JXu#kf09dgG@3V{-{&(!XSq6bV^t!F8{hwo-Ix``p?KbDU=bSk+lglI!NPxfuxdc#|;4PqHwB0pW z+XidfNc-!?;3d$iLxCFG?l%AL^ShAu2|MmGeGZ|*ioO9mi{XX~S5k?9j zhbV^=K;?bSm|PUk@8SL(L#4CU$Bp(bu{%uZHp9%{8|_wtOJ~{ggO`|yzFK^4U2ACV@aS`P+VMI z|AM{Z<;L6Ibh%&rDVPw&w?FZ(_NY-Uzfw(tixoXNlay-zr*0w7DBEvWx=YZW2mN3? zaJ3GuNA(|dR~$z0>MV*UfjCHxU@MVBkHW=h$vG9#U0UEJ~vWe%j* zao<}kAkn>hKph}t1lj6_%{hO==CQ{Q3wI@VB|{g+Mxv;0IKS(YScZu!*Xx=iWUKp< zxSE!P;=d%{U(h5kWm1hcLT*%T#6o|-!FC^&{PDtl-xgoBubMX(!LtvHSIjYF+Ym`7 zW-~#wc|f}@E}uk1&oo_4JWN2P72I(_dK+x8Vmx`JO7iwgezT7y-lK?nyzkY74m;(m z6KQYL*<14OX%UbZwSzfKbj2lTbFltcM$78+wvO6T;em&TN+c`5Q&k~!h+ro%3|OYx zpeky8Xz|i&|1?fT>s|MV?uWrpFoa|3iVh!GujayEVScnQRj0x27S^Vi2_ss*mao`Q zpn>OL#F{Sx`JIxMEAmBnZinGAWIg;Zi?+5lKwu(g&GY`vH^K>dKVm^J`w z25KNbM?B-zfYu#6JjTB19BtnOcM18lxxgF_ue1UcYVlWuA1y-VML1d{@;cdA6I_7aXpij3rjN)Zi!vO84zZU!z;#ZG| z2wn|np*`0L_}td24HJ=phsRWH*oeRGGrJuwNr zsqb`Q<)Q{y3H6|P7xo}f;{eqGPaRJip~^XDYYTWfd9SE2tn)N2XZl=5fFolXZ8lT%;k za<8K)f@myA?@T26S-q2~0?!&x@|5aA&Mk#zcFU%ITnh;oh!@bfgPR){T~g$}&w+~L z&y7$rs+?m=7EETQ6U6JWP4t`kn)#vtKUj*H`^;ug>_GUNvnUHvNm7zj zQ4gL4H~^UuK&1Ng2wtP>tm`-Be7||zahmP>hJ40psl2xh8DkFjhrybg7ja$O;LP2X z#UzEDE@_cJBgUV5=7KrpYaRYq!IfRaqBnyz(NQshH9h*s#VUWziqkEh8ILzxu;B6g zJ}z%Q(ws0-e8-Rq$pGl*#3C%x-Eg2+9Z^!06dbFNeRZ69;@3?yPh5C@+6Z6*cs%qm;yT+vakURTDNFjc~Hn7eK*5v{%`qv@GUm>OodJd=@(q|8uMrJV!xRIFeSEs19kySKV+c%1%=Rr0sq+%~wj>&!|@^^_4bUuT9pfr9!fWluo42 zN5E&V--}KQ5OZWAa5DjzX{wWnu8%CM9f!oENU+WecipbSxJ;xwLkAPML7T0;TkSV5 zt-U)fmt(e`YVLMwMqu5ae1{(30R)`eklM%6cZJkG@ew(C(A>=3FCQ! z%jG+Mp_I9VpijwBAkSEJ(|@kg(&^_-^MrLD%|Dv|$gouSXsItnO(#-Hw_{wzcYMk8 zyS`+Tj=V#hBe4J2@UeGo#|#WJ{WmC=&BNlsy=A(+jzzUvItaPt;UC8B#yd%IcU2g! zcmD5qj~0ynotDPDuCdGYpe~jRkG2PO`n0%FYTmvO9SJAQag@p+1pJt;7Q^*i6jNu& zdNRgkCz@5#HkQt&%{AT4IOu6}$JyqIwUghasRQie=7we6m^!e;+$LC0TIejXr^Gtr zJv6HY$Xu44B6Nj5DnpaJ7(-UYfpyyf|hwwfS#XX?c9v4F!qLg*@e} zrRm%pAayEb+sHOb)DRAFtpL|xi@Sl*)IA|t!yK*A;kV(UCU#wMp@dJA6W*6p@wPyX zJabJcvIJXeeYK|GtxwLa8@76);3&z_!8hC~lEiYfq;WFLRxDh8M=<;HQ$>R-MtQ2n z<`ZI^&--#zjd3i66S+Gv%yd`Wv!v_ggo}U#hf!?GxDU&>9XbMy6M6Q5(2Wn6eHOYOAqAul5jD2%>SlI=X#%G#fkc(9;Ej-Cm)gO|nlYI7*{`zq~oiceA&w$`k06-t+x+%^C08b|+x1 zq9*&KJh|@d>n_=^Rw5f-=j7upVj5+-Z9PsPSB69zkk>`AR`6^ethxd`K^n zL9H7C&$*@J#g3^Nj_lHG^0f+LL)x&^weK-AG>sblpJZkq?)S}nqVbV`ob^cRBcI>+ z%7OX3wg2PzEc|Y_n9{N3Hz@q(QRQ)g93=;N(3r^uW0I>kB0teAiE6Tuw<6K)K=T}9p16N zaBB!@Ue!cO_r{`)E5|f~*;oV}0&xL03_Y=EW6^!K<}=Rw?sKo2-i&ZFQ9KG0Y!$Ue zb-jE-flGDyqMK4d|3DGb3dg4OP3d|O9ZO`CDc$sruUdRdFV#!wMD$YrZV?Fz(T)b1 zND*&L&Ci47;NP#k_rCjZt(!i1-+kUyn^LJ-h}9xO#A#D%Ff5LVDLhGfk{VJ&deWx6 z**DI)aduj+%_ej-e7}(J1uEHEM@&H*$6S(EU#eRG2jFodTqe>B%_dQ|(F#7qHUVF8 zl-RNI-{(zSs?ZY|37c?Pk18QrTmsYtGP^NVF#!@=dBy~!8tEP&8tUM6n=-lXPx|^}~lSwXA?h8xR!yIROaYN5D*$MNR9}m?0W(7I(i; zZ|G5pez8h=GO2L17lo5@Nt6eCRUnrjVPQ2=bywuU~j>F}5n7-~3fgTcX_ zMl89Zzai!tSB4w!BlBz#m z;Eb+CqWr$5EE1wMr!e8tQ|_h|iVLo@>Kw=5TgqGP2u)xeRG+5|!F6^wD%8GCQaqQk zEZ8IHYv+?pNJ>Tp(%4Uwp=*Y^Ah^x#VSjW?-I8w5RO*7!^or8gjP?ajM>Y?!AvvTK*1f*2 z{?5?Hvp2R1Vqq4}UEz~NMm5{DL&2a>Qg?z=Hok(MdrwaD|GI9tZl?1^OdaCtMpm7x z4gqT4KeiOKEZV%b;hWAk+-{dUrub}n3VPY^yBsTRv~kViO*hbn8vR)0siLJeYMv9i^{2&A%bTYD6}54bmq{DEY!NvxO>JYH zudBlM37fn?Du&AOIZvg&VNEIff-uRIbwEFg=~$|h$j6{vF^=uH;EtOY=YMtaip2}> zY6wer2u$nK`jjDMNW-&cj;|Xg-Nw|EwBg{3ZVg%mgk=*t`pec>W-C$0=+1C84o+Gxv+ zdm=~~G2#%`_{PIM(o%FjFW{Mih3)(;&6?BTSf?-m)LM)=K-)n?gl&vr_3Nlc^t+|I~MtIcO66rpPXf zmS7_A_h_4)RbF!Qsn~;}6VC5|EyWPReB45=@0Q?d-_2*ZNhYmDK|qyP z`C3VNg(5kN-@>4>VQsRqvdmEf_^oogA(x+bxlIdaol8CoeR3h($i92v&OTZ0p-eQr zOltFA#WT7u!23UN@`eIjfl z-2mDF{DeeLKD=W2;-&c{)Ol1I&*;yR;1(pu$z6PAEYBFSW{|*!=LaKOo@bC~Qx-2> z!Cjt+Khrac4WI(V!=!37Sp9Tsu!s98dlWpgKXLv2@%L<`zCUcIJY9-~U?RBNd;7y} zlH(Rvg|zb6tI|W#G7RA>AlXK>J8prcu~d0;0t6+y8f8V2(ZEU+F{3%K&8Rqj+V`JS2XX6*NLe{UrnQeibv1P*_7353}=q{S{|@X_w@-yPo(|BKX@U(KZ~>HpQR&; zGf2zLw4MTfJYt^0`$NxAt2mCCOF_@p3n$IX9*V^8l-b@GL4b3VoWOrwZ^=_nbOjR^oDef(M1?N^(E6-a#(R%WHS;{zmKHg8?1os zRX?Sz%^^j$@n2`sD9$A(+>VN>VqJ%TUsVZ(wTVE0h4e41D1+ihRgK_|H_cYSi+*lGl*c=#U@&*;mDSuDq*t_NS z3kdP4%d>wf-D5N&cfZy!=peNPx^c1TSz=q8S`BIDRe>98lXGW1Da$k+JS9#7S}`m)e6YE9PpT_HOf2AN-a*3aAxcRJWN z-45T#YvpcaECZ{c(dk#qpRH8<8^0O)5){odx=ncF?3MZyWVqVBN`|M(cU8;k5@>b4 zuLW0EwJg~5H_G+;q0NWoWo}x1kh7(;ZG)2LmO7oo$}6o=gsE{QssZcEd@!hGIXaiy6n-dRbH7oV9wk) zfqB7J|BVQS#lk|O-A%)x08fjokJLZJyPnlY^j`frNRoP2y^A(7Vi?)60O- zr)epqVa0=J+GiU2#2$m?h-SS+hR8IcH^BlDz~X@T*V~Ix5?7A(DTOWw61faYQm`~w zs+GdAv2Du)N>%IKH?$VEE+^}fZ%UK`bS;6N!ZMuCQ;ov*m(V;O7N31>L%w`^dx6ru zJxS?C(P7VuT^ZyMQx;Cmxb@b>nGbBO+B<32%i%WruzmLw*K2Uqz5{8o{y^UYkpB-< zmni?_+0}-Yf(ZYUvzN6kF-=E|gxx!7-{)_6?&ig4;kRpw$EE%wx#vOak$V6~akMledu_}LvQ^K{O+!( zQ4Um;uR-2|bfX)#i!aBQ!@7O5GvtN#(?~y?msaNWR(j^zY@V*lwT^0ia<H+b+_r3SYj>7X=25Qm-KQ*6w%zY&JEE^fn?_?U?53Wce=`nU(+s6U(awgtpgs&sBw`b#19_*F2cBuezS=D<5mNM!mb5Cj|hXv`8=#JlOS`s5j!S;aYkO?tb(% zk7bhHmje2m8CJ!QXFZ%Tv`8bNy~s>P){3p#cDtFKEb?rO3yR8ErkF^y?ukC#4$bCJxU63pH zOnG8HKz{E^&(S@5TKBXn;r%%-wk=kE-@#GPm-_gBa-lfw@tL<^2l2kEXz!@rO8E}^ zGtv2ff1B@VOp7ipJ9Of}b8wfs9$Kc=%OB&S1t~d!*N;5wj8&Ewu!vqDb?Ni7%P7F0 zB*_u=?lm=!AC(6WB@s2Z(xb3vw+w6A0wecO>D+qR+`>4;6PE`QOfz^{!yx6DIQzF(lDS7n7?<~6)YkW zZ^?IBNIr9aoczMm;|$EpVUh5;|NiUgId$FaFgc16#eE8053UGmKzPKwqL!raNK2CC zibh5)&`8g(ubXY{58shw&Fq0{-<{YUz9UJjP+IP!D|bth#%C)~n#?Fa-l~M288M{| zmMU-6d|B-T)lVzeh*5q%o1&OD?HCsJWm*?JUW_&kK`QTcv&U*ifOT=RK9tS;qV@KT zH-a_s297g=wS&7U%$y?@=}78GB0jfnUPbRn8qMd{y^HT$QPnc%`dJ-G7h?@9pRspa z@FP~%Fi*l{_Ku{Yx`a!+T+SeFGY=NuyZoA}rNWM+_}-=WMqiV4DLay;J$B=G*CW=C zSUvH2@LBvgkuqYQLi~C{eObsEp}DG3G(5|s{aXqge)ez`@eme#7rYY0$)V>a^+fH9uvPe zjn}$r!XcM&`77;Ev=1PE>0YI27TwEKCqG2-o1kB^3h2@n4HK^9Q5vRMB^J|K)jU(p zGldmbGYdzH-?3_@Rs7;Rzpe6=Ax!uG7Q1^O^(~Gi(l3c<{Sw8m93_QfV)2W5l>g{R z3Zw{24R%^J1T-uGGlyL0nZg!O2kLRG_|eonQ<$4e#I*^&M5Ip$^M*8}*yjxUCcZ>! zKmPSfST|7cVcLyn+`;IBxnSx?o5Q!6P^rsbKBP8 z`|&+90kV!=p#%e-91{sEG#ozHk||V)j#MNWfGEmqlA$=~z!pd~_ijsiM`}xYeD8Lo zCYrq+sYP|sKu#csn&6=7v$Z2%%jZ~xXQY5)>oz8fi^Ab;_30h?|F>*inlTJtdm1EP z4)XK)BAJgLqSXCqAT^N68@s0?Q4?+LH54ILs%pzs;k}DqRdol)+m2Q=YtfNx>>^U~#WP)%Xk^^cDt--m zMNvnq<(iE5O)-pXXvO~Q4!A^Q6LqeA9o+^*agRRsa(*15>Wlul*p3PELI8`@ql<}M zY1?QaZJgIT|CNp`UX5{4TNp~mXEMwr1%NfNo81p8{x4rqP_v;Qj5cBz}c?X6^^Vor5-i?#eUz7Lu@Be8$ zqX4XrcxOSJ5-ZD)WiU>&c@a5yY~axW)C5o%2<3!Ytq9t9G@YeFG1M&t{G|Lij-Y=x zaU`f3oolT5MAc*SiQ)mEo9{t`Igy2|^eVmD0FKYIlKHQTSNsttdzZ*+8qz>YpVEiN zWO}U)@ehkv1N3*@k%EHTwSFR{2l+_-Y()IUKgi!lc^IB?R0=^|=0_JV)%qUJq2P|x z{sGI7{>}Gyvkxyu_mt&EXufmu_Ys%!=NZWwlu9SEHGYL`jj6#rgXT~;OP#|?)hKFi zz+CDX^iZo+D3<&bD5s^d~%uyp(Qa0;_GPlD)gE#D`Mw%P!5ftc7+jLb!KZdWJS?Y4mV5cyQ zqaoT5H7uA;UvFCOV(kF37u?umKgw#XRr?xiiP*5#+E`nWfj)HszbETCcd2we1*@cG z%Y#o!<(Z+*P^X&DqV+qy_WK=MW;cw;rE+O#QNtu;ra0V#>e^^YV`bCb89aldxzcym z5nY1>Sw$@eZ@h+F;fOo<(oC&4o%5YjW2W13k9jq|1G zH~TjmyABBx0i_5-o9@WW8bs~5K^Oq&lDY_0)MPc8QjPt0yGp3po**n%5=O<lhFnpc?C$NK$^v%yA-4KaGTYaB)|Ojn#R>ODU&pn+&AmL64b5z3-MR2uaksLz@M)W(Lev^sBb1Rl~X+^Tiott8Nq)sQji_)x@002!Q-dUVPGo7E(M{?&3Hu> zT+O|@&G#I7kyp8$`Wk%|T3EF40J}udxzY0D{I;=iL!LQ3~T zl&C_R65;-8&6WvGR2;(4MbQ!`cAggbMyeK9x6laS=`T>2mwp320CYbb(*hvya+%9@ ze`2n4#^_vUc3{&hT+tY&+A1*h4cXSVYj_Jkwf3=5ouM*UA-`bQZ1SN-p@dm$s-^8# z)U6yhf7z@2t$M!_Sc43U2aG*^H=!8-3&N|YQb{3*O;J*q?)$=Gz@6i~gOah{WxsWL z+rFrOS{{;za;J(MAv`W3jL_a=1-^&?-djS;2+Rl^IGWA8wS0r4c>iH(wf-aNJIndr zk;?0$by2lfaiK&W{|SIf%e?@I^9(vo9c%o&e|ZC0ErfmISE3~t4Jx{uW=X5rLirEl zfEn9sf|*hn12cjq-m44%mPz2DzN=Qs$tHXdKBeUnK6wbhI6!@RJb+?LgTur}zANOT zYq39qrSS$6K4e5uAsatDUYiHEVv~cQiSR}J2M-$7eH-AkX`57zhWd`;U~jM&H@Box zluJ0=Xju~`%n_vExh_w%BgcfRyu`Dw%M(XdQ|s`ly1c+`9OqJfvw61?ta)7_5y!k* z-5@0rdxdk_k*-&3S8&Yh9MSV>`TZv;*|eD5M2P3#Ur{Aj%ih5UD@BHovfh^;C=|pB z0)_iZ#W)HyGdV}lr!D$upl{3Rno!wC3Vlyhei+F2h%PWErg&c(`JTLv(2Qda*UJ-; z&BVToA)onu6B)%3#5V~Uq39iZ>k{C&HSdz(Xle)lbr5-UWs%9t{Pd9_2yEAxnz@R` zMw7;Kp7Pxdh?ym#AvcYmHpKNK=`kRZbhTup(NC9=5Gn>iCl=RFh_3>E5-~QPCajgO zWg|*qrIJh#3pJC~`u>4KtTeUUU2G_oS!}cKPx62~kULeLr}cCFb}k3m)4+kS0kS}u zjK!Y2)z4rLXFVr?5S@i$%HvXwx>-LFaC-nHW)L%quKk#_NDs~Af*M(3KZTal4j%wj zJ&xQ-XDO=h0$uLFFN}4RCwYROlxIfW@3_2KgYr=hyGFHKt^QQBL^;8J#pYARnjj^m z&QSRRp+JaZ-V@_OYTXb)Dzd|pB|oo+s~fD_Wj7SQz|E3B7!5{A*V~ja5t>r2=@>L^ zOCrPrlBTBRax67)b4y_RwZX>&j0O<1u`kLN&&_5*cD&|TQ}Ohd1dQr}eGTIQ_T z>el+Gw-%8a@(=8LuD;*j<8%33@=$ZWe*`r&Z>y)Z1{9m8R7hPN^Y;!Z>;Jr`(D#D;NssKJh^vYxAs2YzJtw0Bxn z$K6S$>ZtxG`^j|Q)MJfLI%hrUdh#3bDw<;hTt(bRD&jLop&^dsPN*X8eDj6@knAxR6ivsbT66gWLj_xw<&aHE>@9&yB`%~ zl$SJ~L%1Rcb4CiKve;1wc0yv4lm85?128X~{br?Z_+tF-nMELpS;n2up%orLm zNs0Og#396nXA%FeFff7sFl!Zo0{q)l2L&G|JpPQ#+CV2X@DWrUA#XJ>fQ81XiY3OK zhy;GobxmMM9WfhAQNLgAK85u_#JcgX;N;j5h*c7f0GV85wGrqw{{)`7fe=woE_Z;9 zqh?uVV+3{vh>Q;+vJb!~n+|h%oT8-QXA9YiOk58A62BZ=P$cjhZr#w%>OYWw;48et zCBBZkY#vG-rmkHuA+b0jxN|h04uV1~ZhTRI@$r1H5pD=5kL9)XiGMe5$>E~IMe+Ji zIxas6exmrT$V2cS$8Q(C=KqdoIz<+Fpqp-&d8s?_7yoy>hnt9hH^Q3&_rO3@ETGwT zChzQ%6R3>_vB-{3 z?;44-2rGDeAjV+mVZGSdS}-w(?H$@XMBjBe#fBFuN}8#hjN_)6iy=DF3)tnT<|~%J zCJ&p*8Pc!4Ly5(;0g+t~qC+xSkmpjyMf4{l3{{C^fxb?aB!NpD8O^=Ps z#p?MO)R03241mrKai}qMX)x3Qf)S34w8w{tp%ZTa_RViGTjjyfL|jc=sh)GAPXfLg z1A<1p=A0YjY_|V#m*8wAiRH8W0Kd=i`cd#Y+z(u)^s^b9Jz2&~Gm?YPrTBUTb5h?w zUk~z{pO(+?dhKL^fK9E|-A3nyclcgXlCZYA5Q(yr9ZvLX}(83wdjEs`S?-)y; z3a2+ngU2QC_NG3u2ZYy&b?+(NQwm>6iU1z!g&n_e+SGUlo7Y_T9g)P7U=ef<22%3l z!`DKu>HGA|rA?$Qep_q@N)MEZn?N^YbEh~Ha%1^=S-0=`<&GWIMgjXU%imKw`nTAA z0U*=qrh1ALCcbsS@u;r~`A?{0Oae&#rSkRce!uQw44-ZHZP;lD^{(m&f}y zJ5SR{PEo1l4{yKwj#KEsf>7QC*EvUJ!z;>h-WTDF=WX>H#mavM-XuAnOLe$>NFQ{_ z8kE`&+1+c{Wci*7eQMZm_B6;El#Vz(=u+xH;cB!*-LJGsSEKo^{*EZ(V^d)*Dos@t zcDMHA>n;bHBzaHU*E{4%G~2SR<>|q-ZkIHt-0OM6>8(5dR(Xko`pt-7veH=Yd^;$k z@eTUSyo}~@=d=UbZ>mt%XEeXbdc#xcSX=J@RymcFvPs^$8dO)CUv9Wl`&}T-(dcMs zTjRK3Z=BS)!{caZ@^6q=x^Zio4c}U|E9h62`P|A^iZ_4EceQld+4x@Y$XZviBm23a z)Z9hUsx0LXd!F^51*`ul>tyy~g`;_r^75K0cX4oP@GKHwR?H!nxcJQ9P1E7-&8rs%2wLMd?*G16_qC-WXRpb&;<|t8x z0)E?`b*;@<;;6}bna#<1t^yIh%tQT$`VRx?15Z%bszKkqj;V5KY{&Lc^CxvHwFu^3 zim$J!@wV)zW_OLN)efK3RTL5i!&&#ivK?icf3RsKnuit&V!gh?&~@q@^6M%|W;KgI z?`hnjjiiC8A|glq2TwT$&!Ve_8_jR3T?mmm4d_1O9rO%Ngx{=Bo+q6%?6`yq=JDck z+)K^Y+2oVJ;OmqmIikFa)Sh(|xqO@Nx-*{NIm^NN7%PU#YA?LY*kV$p*Yg`kjlP^F zWJuqjJH_1*MatI$UFZ_Bvcj(HzuZ_^_@rM|o+PSD%BZS;MR2l}zjZEaoZm zsF^>6ZfJHcr~En*WRxXpHnEJ_`mGNkZl+DGXg+b#+-B$;SB(`wuP<5bb*!U&0%Cip zSfyGjr7S~8BI<>=iQ-cM)S*rNo2Y#HVsbR@a}WZG`#lU1MFNWceXIZzB8+=YzMnbX z2QDGu;6Hfg*OwM@mlHP|Bjv^koIQHVs#mhFAZ`XBmuMH8+8(S|XnVdX_kXj><#puV zG@)B}bl8l{0|dF?HHAENRVwKu#;{I$h-ey*H^l(TURKZ`E6a-Ex0ml{&wo zLTGS<&Z)8sZM!+KUbXe1Ji;Y8jK_O0Pd0cp_G>T$(r_@i8yy?IRYF+=rx2Htn%Jt) z*J&nk?)OCRthcM=LDnJWJJTZ@(o+#*R~K=gFYUJW^*?h~_;&dMa-nJvtd!Vmwb1`d z0*+z3XK*L_Hy{G_Dq3I}1VgB^W!tV)HKIo3ZZ#6gLC3E=IS*Q<p!9k#&a^SP)(eH+YsmJp+1Xg)v#Y8Aba7s-(&N$Z_&0suHCvyRua0(A=}lgbsS;!>U#!%ZDILUAfn@@#w6nk} zb|i*X`UZ$8UZ?KW-q!PpI9BO2<+7P$m63yRnOH@_jrJiIavzyKtxaux`2&Q(Ucb3> zwI>nE#tcZYLfHhWGC3j-pZSQ8VHq%-e@;TuFUl6_<`>FQx`OfhKDE5U6yY*_z_dF-b|?nu5P= zejAjD-dwT|II^mzYSe9wdZW&p6_hsWrUFOL^gbzYayNn{4cB_S^(Xm&C)ftQI=gdE znXfBUrrS6B^=pv-Py%deoYMIF`bs+m&#+>%(PNFhismA3@W9O^XDQkcI6hbQT;Jq98+E; zJ#N4zM-g}qPm<^GeVXS>c+5Bn35O|gO5FdQbj)^ycnZ-H2$DtCAarSgvXHG^!_q-j$~hd#CBx*SkPFG zjRHj@F?@`6lOO{!rc#GNK!%fg;5gK)cn(e$4DL*7f*l+|FWJ3n2UHH0@eX4GI|jXj ztP3j4RF({p!$~RCTGMj1>*$V=VWfQm$u=&UJSvD)t0_`fUanbU)wj&^D+I z4)!@r6YO(9Q~kSoDfLi2Q{o#jiIw_BFySst1Pr>eSXk<3T}=S7!TOI;H?8w%DC3a2 zTqRqIU`(I|{IGAB4YPNZA;GY|0YK6K_0y$18l^}rz^nOG+;gb(f&KeZ9(Z@w1H%uT zi$_>@bL;P5-@!h$@F-2)6+KMYNTi$Pnz1e6>5BAI?z5432WO)8$q!>Ir5$#m*GSIj zk`}xJkq@##7F{=HCt1BujYExti=DgvbaC}QmUtI~7J*NELYwgVnc+yZD15{K8r%@R zym$uETrnyf`2$1UV)GG>EM==r-&~qC9C@mgeF`>CkCtklGd)EPCb%c`5*;TOuMh(#-`_^Ze0M0KVy6%3Lv=}r)I6;2uc#Pi*Fj5=CqWDx zeWvFV#$*xPAJ4*h+e5opea7p0NB>I`7379cuG}y8=MMT;10DpY(<2KZwYw`gsEueq zIJtBCJ3kGs)_z*|*)@)HTTh?GL}Rz_w`&~D&({5*P9i_YVErwm*D9$Eee9^qSy6M^ zURmjIo+)Yktnyfy-NXE7sRk{+(N7jb=o0`G&xO%LlK8707n=5_BMp?b6BsWN!gGvZ8g5Y&=396r{<$ z>5J@eDWxJL+Wy~GInbrrwQJGlD|dfmlbro{r?2DaryqZ3*5lE~e;o&`CkhEK zkM$nwMXxo7Fej3zA^up`N5kZC(&j!C%$j!W-olN6G?dL1vO;qS#B&U`^0XT-4qMU2 zGnaO1JQu?)+NPXdfAri01_wc#QC7RA)U4S_#5QZHg%NtCZ?Y+ir+Bn3!VZzK@?WWbumgNv?fde5aL-Z-D>g-#Su>+o(`6+V&1ePhV`RYuO*mr_ zfxC?Ui9fijV5w?T^-2uWJwm>G)~(;M#OPM(L60f;2b||I91!*LZ@S#)geGL$cvPBy z!G(;{eoWURm%`M#ut9BP#`~7382^x#%buGdILOBm{qro{SDpKI)5bI8-S@o$ zkGuyRGqu}1!DMCS)C}JL?_0jZn8zahPCtOzHd2>o-;YH@x-%m2*hA3vCVFrLzE?%;d=qj!`Xc|g52I4GxxhDT~XEVBG z+Lljm;h*!>`Hwy4d3a!ZM@QcFD9C~g;Z|Rg;_6K8yrwg$GYLW#l?nco&Lr0F%Y*#Z zqk5F$OiD6}XH#>>8K&NGL(9)5n3z(&Zr@3d7GbHVjf$8Q+&;QNa%*Dr6%CSGiNx#` zrIq!gxn8UFFl+!#_%<39P5^cu6UH;4ghj%Ua3b*&;zv4oGZjFkYw2{E z^c)N)2FTT68g6x|@m9fYx87c`0JZ!!9^wT!TW?vEhMC>NihYGNW5Y5tXG)ErwYTd7eb z5F|AwVUh7eN*=3awXK|4kV1eZ$4^JJ^mt|k8tT5qYdo9ys?e`u6r<5zUNn>N4N+c* zk!VzJSq2MG?5EQcAfOMxLx9xS%1*g{7s?u@yUEeEYuv*@(eS+pgAP&sVE=-yM~)X z@!x%>FE`DJ`FYO(BKYkvyiA8iBB@egeMsw5dQd&sN1So2)?C4dT94I=&$ARI_I@Bt zM42bYzFjX<3YD4GajZ3Q3uD!G5bqINf&&YVl_qXY4Eoeno|{5ePg6hseZ)Awykn)} zEX>{?Eb`#+w(f1!R4U$(=Xa^qYBgeZ-Fth+%sOhwiyu_&@6Hzo6>c?VIM`wfGJ@1o z&alKjaiV|cf4zJOg$0q6ZgBwN!8XrqmuHzfJ z&)C>>ro+sp4u41F5ydZpUd1jHoHy<;*E7Z@i0x@HQA)brSM9?+#$5*0<-@&(+eAt) zDqteMqPhiyCbSn)wN$A2K^8e&O$zb~ea^i3EX0EM0uTAEAB`0>Ur11V zNId$AbE0h#nhOVL>}hWUJw5rm+s*yBb}&yIUGNVO1Xo~QLsRd;yr$TysCnjR&E0tr?`+HG_a()=FTNsrH<53w z_l4Q^e(~PD>52D+z5;$i@J&glAZc#es?qo5VBV!586WM#)8i@IBi4NXJs&3u3?GsHDJn)En(7_u^PpuI5) zS#%>Xk&i)CO(?0R$E)JU>iG@`FWYD}pA>yt%s-8w=%17NbBhZqFLgrq&E%uJol~Ki z_c536j8-F^)`#@hNMC1dw8hhM2_N(x{VC-teL%@Uc`FP@XxoGahuAbKU4LCa>ks`ZzkGf075jPRv%_$wcqM;11tiOhf8c*F3#m7+Y0}#IN4#ge z7hJF#bf0c(N!3$yXw!O1eI91T4NKcLf0`QK=AL({JSoJCe~Rb2ZhyxtkyHg$8}pXA zp||;L_H)!fKRBqKME;VS4_WiRv7v5dv7?xR2JmCtjDwdT8D=5!?jED_=MAVSe3u9Zh-M z-PKy1yvz7wu0-)_(P8Ri2GAU#g;ak97aOd#HPexR9bR-9s=T3c<0>H@EDKNd^jfAcLt@ z>jdpV`-Im0V=M$%3ed+)WnBBGaf}XO#f9@|s%4@sz5kZcdUWuYB)7RVCY9wswm}c4 z4L(+y<9!TMOh_z@nz4;ukvyt~x3uo5)>DO6j=}_;$r<2A5*sEzLcDB`2(bZWD39gk zW+Dj#pDNfjtgsoIZbYj=L=x&Svhm{SuH)wcj!Kc()Hzx?!aH1iiSuA{j^!Hw zJ;Xh@0+k}aWb^fmA zM`r1n9PD5|@r6>2g`!)44Sp~EkRWBmn4m%}&xw%DJ&ih)2ptYwart#Hm*IHc*fV;a z(sEnF)|JZ59?dcAz@fFX4n1d8l@5hQcU(RcLMxLL6o*3eX({1>@Gndc&YzF$mvZ4O zx9@n)Uh!kNKY;INoG&8BiY89#XDREDMRhIa#)DV#V)qcXYKIq?}?@%6%?pm}j zbyq8BqteD9TRXY8I@qgqKQ!{tdk+mgG!z(ODfRvJ{SN`L{W`WAhHKUj)eliBKG*an zo@CIth5M4prlg!yZd+oKL5QKKi@ZJ|lY*YbOVR2kl^-*e<&QTND_Cu9hQt4|90jhL z5YElg4F_JEo&CO4BFa915X$%cqd*ZKHnyeO_YfQ;X=Xu9ERm zH368OVuDwcM&^-%d&Kf8DWsv|FJpQ2l!HA&;EJ^+pGtgfnN7I2SVq&GYE+ceAQW!% zo8Rg8flvz)~vC!$)*|IdBi%yCPlLf(0;#v=6m~CTn z_b?>NhzzG4ci;6G&rw+ZL!|Xg5Ln$WUs4P4y1e!ZQl^N(@sox0nyWi_#^3Prpvo!c zMd%pHseRk@ZR*$6K7PzTqzVXn;ejdqQbr6< z%5q`L+ZEbk=i`Q zBbAnmnaY)}>bQ}|3YrFR&DhR{QVFFe@P{%|&u|C0?`j0yFW_Y1*Dy@qWDyvIldgOe zuAZ1#2;hwwhL!+R;*gVAV>vcE+jP((&Qu!j@JhElmrig1*FS9bltK2%5I;rE0a*1| zdB>>9AJ=}d)ca*XtuM!yLmSeUqxiU?sYoP`eEBA;YWiHk-K6gmp?nXIdLOL#uK+*& z`GQ$}`ARtM*O@*JulmZl$`1xIF!IiOtvtlJ=)mPh(EfNC9I5glxSTcm+imSx@0TUn z7fr~YKAJHfIb}~6xq9exe?DId{v<~3_YFN7j-!RIU#tKjg+L46%LWf4x@+=qd+BHw z1?S;)RZSr^=2~rqT@+_w-16?gA1}qiEV4^lup*Jq#w0?q11Lp~Gh)u=Ga@AiQL2$I z>2S{B8@{7)SfP9aK`pxv&*vKqTtmPU=P?_246+sgBb@v3#~6ow^)fl^;qKA*F7W%7 zJgKk+4 zfq&!h_odNXJR1IR8c_}_Tqq}sWkhURjSjzff!#`^=8X}{9}WDW4CBvdzK;n1uJ~TZ z6T?eDtAQU=X>V>+ zndvHd3%QIJ%IwZ8sfd-cC%vw$p}@0hm;6uC2`MBO9-b{^`vsSLM0wUXI5!ZMpKbhH z;LTZqp};94vF_oM4X%xSg4EJo>mMoD*txlvjkI>hW)~jKq#S_OegZZ#uBavRfHF5s zm<=25y_;Rn7|lh5>0&-|{S@XKn?AQGRY-Pu*f(I#Bor=bUoVWx??Z8D8t{#nVJ}Ns z?Yw!cjFRqB;g89)5cyL{-A1Acn@AbjyDM(~Q6vi!$H`!M|B)=W{GO?d#6nqIO=tfu zpP|!GQjl{}Na#aihn~68A5q`q4sovfe&B5%7gzJA{mlVmd9X7 zhQ-Ym>i|Qty(xl!GCt6BNEniln8Ye*4H?3c`=6l${capXa#VH_DK1cf9N(m0A-@=Y zA-`z|HX@xLC$0gV8>58NXXqx0&%oH*cI0vtpiY%bd_3A3J6EB75dF@8Ad4{=e!*}y zTu&{{(5NEamvXT7;CH^`OQv7-C7aap;6aI&i54$W{hnu=$5vB*dOAxtGjGjj&T}~z z;knUCk`MPbc(=pP>oLd_}T@>VHFz!(UD$KO8)U8Wg!xhV8Y>3T{AiDQsb6620>kf@2I>p0Ty z;j88`DNQS6IV^|LDPxq6{JRv0zx?;X7!MDPzIz4~bzU|U^&EYAEEEkSffa(=zOH5_s(AW-cm3O95Lv zPK%q%vHEeQ{c2q7?VVWc#bVRk(Qc7_7v;N)KvKnr3rV}VVuUmUtUCEm0{`(o-JBC^ zPX~E+0z`XU6pq59$A*yj1xzr(h;`SU`v~Ev;(y_Y_NLH+xgI>O^ZS1$9FaMX+^hLc0@Y)BHM4R7y!NUt9VK>{_y ztTH@N56Ng>5*7;koM2oDXirEXDouegHXNT1% z{8W*(Un;cpNYnFHeY*45=yCzo(gzi43gPaib1qov@#~>tMT(6M-V2=&*E>Z>G%4A&*Tq92Z-xe8_ULMl)jImsUn( z`I#S(6Gt1)|I3TUF1Wlf(q-|YbtxMko-m^RAtSeuHGLE<4W6em4rF7Vz_`W(z4B@5 znb=KjW4b}<`Z2=tz?`+p8t>pa_&J?s@{Mv5p3-+5c66!ozNyZuRBx2C%MKLHVi{Tj-O|4{je-G|EVE&RzqIH+_=1GF7(&>YqxZ7=~mPC z7Cn*gul857k?rA_ym(?k!|EMFiSpv9Jm^FM)o6u(ABq5h$UFib;Z>jUOsF>ur+J;1RPfBb*4h! z=L10t`VlpKbYgjL##&G+AuplHVWGMaQTZUebL3pB8&P9{!Mc$;IKTwKMRTo@B})f2 z4orvVD}norrmPcW5qaBNEf85WVXJuFZkH#oCO7pr{p7<-UQO(@ppMFZYgsq4S@>vw^vYevvo*8D|Wb*#a=Wlc@s6q@=B)%1B5)% z;oydH6b9@ncfKeq^@oDD(xlj2WM#VLQ=Yfjvq))O<67^?{+Y+;XT?8Ru;T5|n)79@ zs)}M%Afr}TomyiS3M+M<8m(-@>(m29snnX_!IzZlJ=wt|LDa80cYz1(B+I2&*m1LA zkpqR%+5yxFobjIV45LuG%!jirRVUlM=Nfl78^cr}poDyn01Mb0_d0vU#yRMxs!m>O zceKObNFobrrU|+Fdf5ExJWY7c564>hm0S5(_;JQv(mj_rNhk3X2y{<&H0 zDea$?Uo{i|4i@SCO84QR!-I$W4)-BAl7fKG(BVE5Gf-;m-ZIK?x@czXEd_VnQLuEQ zF>?c+$arRKSH`~ij}BuULFUy^R;-y9tEG<3i%rWF#SZNenl6ZmZ#}58>|`U;Zk&DN zoEvAS<=SjGuX5-52j`&M9bURh@bE==AMmso|7YR<+oTQcZ4aEltGUv_9sBV-QyP#e zXGxViDy2V2H%qS^UX3@`x{zMGt_?myB7cuTPf{Y6Kc8wI{HR237&^8I4z(0SvoH1Py-0I7zPLBSNPIf>2A#JyG;HrrdFylw8w&^c*s9uaVm2jV#I=E@Z_0z_{!* zGyT>ypXu2Y7wk)M#JqTGOtfzv+eHGYbHDdHlG#)u(8&ll*QcH$a z^+c@^4k)Ou^9J)J978FYtAqrNm2k(B2dDF@YhG}GSEnw5*_SzH6>dGcM;F~=cinTx z%>}nFzNM`d9|R2IM!F8-OLWTSZKf0>;UFkqo2a6XDbZ;B52s_gRY>zu3*XSc{ zPRB;4jt7q=kItQUKUOL-n<(#&2pwkfrE90%;wY~mxFW%X!}YNrW@y#?R#zL9<+#=J zmtSX9j@b=!N835<05(IYKsAD$POoqb2|!4TWvbX>x)pa2C2Cc|WjtY|i6_wE`sOd6 z#om;EOIDeZ3Wre%@bt#>?_ zH2V7wzzw+@mJ$dfxaAgT2iol;Z_Tr&}%v|0VXg?uwQ^U^VW0iD%W8tGiS}p!c%UyWqR~OuVAfI z%N-tRNP5i%JF7@3(vwYU&l7W~)HHNEKok4V)cEimz$q-}LJ4^v z0Hb{E6Ua;%CK+q;2%dkt+}^n1E*{tfjA_Z3dXh{!1(twthc5;_26<``7nsRfaxleu zAl9v70@0G-q?QOWmg8lYQTkh8f)){k1~)htei)olFl<9}wFF>l>2B$UyrpwV!MUX1 zFUy&*zF=w)XGsT8=#r9ysn+kao)!>0gn&FjOdiv<+(XhjS8+?Nu@wQGM28~Vl4t{p z)<@trYC>77)pCs!&v=EFK%rL_tO!L#-3?9yWmV(k%Zi<$_XA8*loY6eNOf9eO);Y2 zO2~B}-P~xJErc?p38Z>xNw7Gy5gpXHNT+A5ct#@R0CujsT$vs`TD7L4d~FZ{Uz8K$ zjufFEIDo>$OyFjgsq4`2SI8D!(KQ#tEBqDaNPtDfs{t*{KVdyqZ{o2Y`yp_Ndgf^b zB%mO^@Ctv`^23NbJAh_O^a<->Iuj4G*}*l9Zhqp`RQ1O-jqcH!#=$;tIW>FgBjOOz z$A-mU{1^HAIB`7Vle`Pl&l7c$wDAEYUhXIWrHBBS^v?)c2L6zRwQp z;wb9-W(gZbX@J6W+}z6qEiBjAH&BK+1#$MK!9{Y13*Q`gZ`M2LX2 zW=oSc1?QEqxFruEd64;&p(F@fVbSCS(}U@1lpiWe#sxzb0^Y$VRphV4UOeacq?bV4axQ!t!@?jrNl7I7o$Ibi35Pw#dV^o0=c$XL*9uqNeW& zCKkytlpfP#duB*46+2I}HK#l?gj^7U>3kyWu>7MC+t$-IG+H{4Z(vtMfSb_3)K1^e z>rNtN<$7x1K*%NF;Y(2ehyh}T@{Xm%DO;9tJ}FQNaN|O(F)I;8Q1fTQ{op^Y4(#aM zv4>z^-!@OW^NFU6XQu2d&^TYv#qKOHF02QgGI~f2izMmY=Dlq0X+F}LF8GyJgQ&hU zzOGpO-qC6p-sv~LALu<|fQXqdxxIGNoe!tb)lp%$R?2!FPI)**`~qP!QE+L;fOR9_ zFUvllb8N{ouaD()40H_CzX!HoJh$VKLn+eryZ&`om;B|xC$b($5lzO0rl1b!$?8v= zBUd6J{wA9+8$?3d<#=JOJ6PT;&i5uI6I}}a))eck*P0B!m^~wwACEcgpA!}z+r_&2 zzJ9F#%a#n1OE7_UCoCcCB)-8+o3lPoD2cS3^?CJq#t%e!QE(^Tv7sM{!CDZCrNRWM z=3Bp7*kM|A+jqFS00FEev;1b%SsN<@$)qU=b+c#}7_qN40 z_g>8Hy@k*POpqBs888tv8xW0S)CAKs#Q_e(#9+-)H%qx{mW4 z6>!oZ=K*Gx(;!Cj9URIHRG9B{YrC}#_8mPDd}k;$J)`8HJm$cmfkOi_-vOIQ^u`<- z2z612?=(%<=HGDOb%j*2&*M5h-@Kmb9Qn~KhEsbz!$}DDA~Kv4j~qj#I6Je+Qq_v&{9+V=TdGWa3`v*td8mW@dz>G= zR3f)Jtjz<0@Y_iKah*Qz%$q&RW-*JpbJz0mU4<3U`BT9(vu&<0re7&b~}%!c)@ixo|x>*Oa2Eow0*xgA~r z#4~+HQIR6#&MaP`qEa82hgYzj^vcA%1aN~5v%}$fSwg>5Xd9%B5M*XttG5e_BK28G zhk7qUHD)yPNR`<-l>L+$Fc4Vv&;n990dgXu6|%pL20RKEuwirfAAwKHHO0grA9 zh*caI-1OW9UlpYc_OFJ(%C4t|Pn=t!k=fH;$%T}DXxSeo z%}(xPg2%MV1c1E;&v0CY?4Tew)-c(CAVM|(T~K}YSm0Oy%vtOr310*LR{&R}4q~IA zgA(8@qIZ~4KIT{e`US=ekP81^9=A%*z?Ifx<8C)!DWT_;%!p#s27A$Q2VP`YqNA7} zMwNjdo=Y;C#Ef`UO?lXpbATkzcjur;OCz-t9I8i68&U6*K$|G0pjFkcL7AYyM*!MH zJ76?QBM>x3KKhQi-{AOGr2aE7E#Jqt^hj+fzweGuQs~KlG*LuKLS-IS(UONxYSQ-@ z2rE!z@9jzmh0?m*YqBD}F>>%RYnNOPx5~3aG4)X-hWg``Szw|G{cc8j3qLB^x1);P zt?Xy|L*r403YG<=$qEpROig!qo{;8r3@exWna>jn24sk^+z*a)aUoXdmt!9yMmjdG zFqLQGV&z#$PqX97D);h|*|te0xO3VzWAR~N23XhANL<2>D7kx-fDMocJE+^XkBhP4 zI>>;sC*Y^>sgY2g&0lNdy1600P&ERh3@36l zyq-QVB0m?tT}xE>-IVJy%YjeU4ax7ufgr-SP(BN3X`$~>-Yv9;i3n9PB3gl--tC*) z3V2@{UodGI)$Wk^lZO=(+?}&KN1iimEclKJl>0c70IkLQ_w07>8k!kIBi?L8hUQMs zU8B23fqCFtC*WJ}8dct!o(L^0ub#Ow$&PkR%V)MRB&eqHUk~7_Q7Gk*d$mW;=3cPw zd^9u*yfBceK9Dv4BIm%DmCtxYk0}3y@~WY|)M)nMw#Vm{Q$|^YO9iu}NGPaO0lW)U z?HM)u^UG8)cPn!kBpg`JijSVnyr^e>sOaIyPWeR<;x2ji`sOp!en#9~KcT?`YMiex z9FO5N+n}qbST;x(R zH3S+0Af*+-rf&#|4OuS$qcR{%H9&Yk7%6x0$>4g>J_`3|9swT*J5>>CprHK$LSTY5 zVYUx}$vtwvD?`}T6Zr!(6|6%)z&!2p$@gKKup@bg2H`pY>_(B8fgNb`OXH3k+o3u9 z{Jf(E-sPY3kfA8*O;5gRWz#4VgYNK) zW@@W@3sp~@e>#KlKhWjF=isL01!kpfwhajNGFx_iPuF|%=w{X57FZ26x9m=Z4scpWJtINA=usi#2NC zZS!P?07qYP{!6SwVF4;+03i_l^ANauBP@K(1%zxsy`YD(ZLkG`6*pz2S`cxP2;vN} z4@3?-(5hED-Apu+qIWypc%*1OAuof+h8mgVUnVT#4xG1eu7>}xuxk;)rc!N!Mnc{- zSQ|^Cl#tr(2?&)kmduFGnkN5HzS*=JQUcYz`Wq&Kmxlt3U~|<2*sR+ z@!6Uq6YK}XOhL}&=N#vyRHfoq8^U;;cTcWQz34xvwil^}_g*2KtpJFlHGORVgP ziL_I2W_LUh*=N`HY2!_i_nEZoaLn!qspBWxU)`G^k9b+$U{JKbQkFQfF$HJQatrN^ z*&8DtDOppT&p9p(Nev2Gm-F4FdwQ5C$vH32dz1AFEIS!W|Nfl#J$myDt_G7R590S; z1^b^q10J^9AbzivnS%H|4Wr4LiH*jWL{7y0S9pXnH`W56Zxw#U+^(>frNCakz+wmK z7Qyz zS5jqtNs9#}y~CEMODaT^Hk8AK0t>?-F2Y_42YpKS6db~eRpn0=K7|3Hm8FKFQrH{l z+;Y+au^AAO3~q8Qrxiyd$St~MrY5?*V_rxfl2$aymn3e!;?(j^g$-bCx_MN#KJe{e zI)a-q{GOm|&n~Y$suVvRR?2G&FEqUunb$RwP=g~Bs-wm#`ae5;EuNUG9DMHn1AL$=@sq zfd7mbUpM9y3OqI^mJiU6Z_FpF9k;-|s+|gV1ye9j1-n^&F^{RxFc$8NhOvfF!(%6K z-&S%dq+Xca4~(jbY${#ZH87WhBQKXaY6=%Ho69j2jtQSo*@v^1wrNpRflD8RFw%j1 zX^=+A;(Dh_>AeK0_drjVslU?b9ah9GqwlYDWY6YY?u2lQH%v85&3%sk%6^nIpy^6j zcyzzwgGAw-1ITa;+>gaE&PvvGe@Km0CRINux!eqv*|; zAfnmbaDNILGAsxie3G<=p9izN0L~&N8UBE4DE#vczPUetuqUk5xJF&C{m?lnx3m2G ze3T!45PlMk_9;dKXLCdiT$zzt_TgiCK0<&n<9xLJE$Q*Fp8ykXANYJo_*em?wvI|I zG%Ae%7#GS&fZtImaAPP@K+Mp;KuZ$+|y9eZJ{0&HNdV?e@EvQl=Sx^>+BLWF;A-SWY^MzDdPCi(v(9 z4cB#1&(z)Fh2FdbC}Ox% znVj#-d{YUz#alAjUk^8}eaL?N3jr7VFq4=P***C8EwTQY$WC76z_T1ls|-yLJ_lm> zB#w+z*%1S(18{C&8&bzATZs{j+J~-J9oil1q&LO^4w$ch)IW+7AdLCiVPq>27g-W$~$ z6^7CrWUs`wz;pt803fwtN5Pklu6lr1cdhDvJ`55#^u58^PBC5sS7xL&AJrS|4MsK( z#8W;D#gqBmNG36(hTvZ!p(uuc+vqT;iD%f1vKEMZq_F_ti5cGlQzOHy3ed^~pZ=dn zJ~ofa`84#5(scf*fw6%xWYu6A!OtQMjBTHiIW-ITBA=5r5CVP`%P3OGlon^1)6oNg zfq+t~K?$X9hiXrgs@Onqu@jqTTx0jGOhpJIV<-}XZVW{APIM~8KY z{;h60vh`ctk#dq5;$y>d@^fsMkY)mil-n0p5FPpZFrX4ScDx_7!|9TdeX-j95LW(1ZuoSF2fh$qUk9>1bl3(gxPStk^RIA2&R1OqVW>{Uhb z2;>i*1Do;t6p!CLPM6s}&{k6Zi4b=QLjKe#e01y%V0Jl8`mkeZUoiAIp_80>O1A_kJdyAUHGy&LU;DV+>oUmnheWcJ|X!2^|=|X60#>f^|U|e4@L?T z;GL89^C6t!=y!f(9GHS2dJ=*G^C1^uT}wh}fMDb>P@^_HKpYx}CbEf<4S%5tICu^L ztJzW%E)-(8y9I*oaoHY$WX73sc}W0y`;SX=g#pO+;Ek|+C76z12vbyQ)|ik>?2A{x z00um}zQ?=_cozGdx3B^XRAivss4M8&pJx(hTuod;mZE`!D@Za2BaA|rAD@%Wj7i!c z0zSvwgLOf7Q@i(4>vm6tr!;eVMhjB4KbW`~?eKMIwa)`E!`033A0#Sl5rG8Ty>A`t zk*`rUkz~i&agmIm1Ti6Gswemh{EyCO)bzye$O&6CJ)j)mG>epIn8B%ZXtGJlm)1jF=G@o&K{E60ikjBleBdsG4P6{v^gp&q%ed|bwFUz3*Fkb-o zL77nuhSm}JM-)liIuiNVcqToJd{r_S)H=O;Q2E*}% z;qSLk+y8odymaXQcF<{b`5?0w8G^ zRt@0K<7|*54A{x@*cFbWk#cb!$=q1`1(G?^zuw^P$nVIPpH-f!+*EH(_-&XRf3qUw z0A2uaXAU7Z!fQ_lx|MMgdgboQjoqqlmEw_M2Kbt8RcN}xXory6VFz4^RGqt3IP+lc zNqP?x>{dm-E1uz9yvB{7QVLh3I3t+w8b+i1wWQL5mlp1ZWFI%$;D)mZhJ^2Ge|gq> z`ruh2UXdA>Ulm_af;1A~el)g}+@kRLR%i!VEe?09t_nU9?$md?6DW7_E%80=Bi)tZz!^N2T4BaMfGZL90h~p=r&Mn2@`gDtTKNSp z`lKUnp5FWiLG~{*FBPMlyA~>5`1x}IYIaCX1Puobl`zj_u)nnN@0tw_wey1JbBD^8 zniBl?9k*S_QT#`x+`0{SbuZ|?om!_19d-yg0#r?xT-cI=CZ{6fwsD-BR-__m0N3s} zlDm935}A;ARc0=J2znn^0og3za}Y-$GUZHbo9|Z*rva z1(yJDH}_4H^i9f;I}3<6qlXozBP&yb?_s7eQKIbX)qr}R1FlF7EQkDG^PwV*cO277 zCZ>jk&oY&b`E!%hves3U%^u?s857Q_eKW1dj(1JVtteN{VuE#}>!HqsZPYfZyu57` zC9Eu+|1Pv0lsURx=`Z@zkY1i7{~rB;ti@lSCv#s_Ir9qrrp#oemR-FfjI`n+*UEPS zq;x)niQ#2w{p+CZrC9^<<#{JBcjfzF6r{qe(b>nqEX#&$iX5hf`2~bU;qxgX4f}9T zTlxm(GF#BPXPE8$Ad@g8zw`{!aU2^N*9%n|8K*0LMxM5kAS;l^mOQ!wHIai0?jMk& zZ9-!Pl}#Kos=#RAjrqomIfaVB_RIxMI= zVor>o7@y7DPKT|CC$SAHGt2S5Mm z;eN!^w+ClG{qdONw@~ZQ0VHGT9jcBbxsK0qJ+LMqsa_Anp8#pWU`(Jg3yoya)+Z}S zE0J|qSz-B#a-E(iG!we5)OkvznDPn2pf9zqjQ^r#&F|5bTPw`O($$qvF7fq>LW|X4 zt-wmVxWxGYA6?Fl*jBM4K-uE&v?gM*T`dJ$y<1@_qFy%Y zO!^8j7gjYN)I-dbX%Y%U>gby|!XdChHkfqgChD&J-xDlc%`E?8t&Is40EqKL@_te?Kjj9eruObc#$7FN72{sbHVSkE;H z9tplf2MdG~=E)Mup=5U?U9e0MMxzqLt1Ne2J;!RGpQJx6B#Wy-TYkI}78*C0rZ9Yr zUJM1gDon)}sJId{L2w5wZ|O`dSg%0MWKmItna^P2Fr1bsBWSg-!%P;zs#{!UAz{@m zH50`Z+yilmP?nVYSXX5r%jnywayB4Qhf!BnSghmYj71g33d@p<)qf#$CT4~1N~j0e zLK0ifN}9z(2FnHL9QJ=?tb=tG8$v5QJI=~$#oI+YD}L(OO7&1(P-bzH|MWOD3zC+_AXz)enfu30R$@xzyXwjeBxDIpVZ94V*HFdvVO8 z0jTxD-m^RYyqoTx?4D#?&3Y!A$&O2u;^zgwRFY}Q$Biu(tKZgs%_R06%&;1II(56N zbk)i2^|E@lo8}X2u`+Qv%8@OWALlQ2FKQ2pTAHNEK<+^4;YUmMpQ`(mA5(}K<;SSL zykgYqm`U2lkC@mgg%~|MMfKgQeQEAp!SU)AAD6 zQ|#G6_izE30Cx^}YH($8+Q+$Tx8S$Z+0N(+{)mM-ZF0m}0)`SZS;mhl#76U@RNuyD z22Fa&6Ac~CowSm2h81oZJs0Du!By{(2A?`{-cnIs-t?v`ukkDRBQk;N=8n(0jkB%b z29W9o5R$Cx+f#U=;E)yxc_*y>F1Qt9@&&gu2E*%}G3?a7`=x4Y)y^%Kio0^5=vs%m z>ock5v(AVU(tGXgiu#m8Jxv+n2X?7q5LS?riP0)YqKchl|7`h7g~d9k*6*L_{gsih zTE&d|&cS}D!$q`{f}W`n^o<9L_%5Qc*Ld{Yv0JM@Bg`aYFJm^dU$rFR0`k-YYyrK% z;thIx!_3|LNve0s`%$={bp1~q*|u+kcXf+m4MBye3ggi%dp;Ax#MEkQ*Fs!k$?{sQ zO=C*|(Yxl6)f;LHY70=bqVVSbV`-%BAZZXE$|YFCGEBNUOT)k_TkAJyb2hAgP=XL+ z*bw?FYkS9_=IQ5Xd-FlC5esO+SFhf%F>hTCYAJq7)>4>vRLn!N1c3SkCzRI>)vjV5 zVPcVHBx60i>)j9Mt=*KjPKxSJfG}``)9+du8MY!RCO7BZ8&((aXfAjjpS4N5=Du|s z-6igzI|x-ohFGa4E#EW0dFAewxE-ohV537+U;*<}s1F;h*iT}t5(hjbgV$g{T`@~` z2u9J3F*Ajd;uEt`vAXTC)k}Y@TlzEg(#)Uyq~P%-)Kip>8l|4RJzmgbc&d~i0)rT+ zsNPWT76Mqff>kjjLqfV^jHFwIa*#l~+JnWnfpd*3)%cjZ62Xd^lqpnUm7WL%N#Ip> z6c$^StUsknE;CT~l9a4B3Da(DX0aVBxs@=I#F=M@sO>RX)nlUB zDesv48p+>NJgQALkaYZ90J6XwwX1{$=Kilx*&g;yx$1^OtK8XWX*2%fa zu$?TeRUnxtF-)<-MgH+FX$;8S!A67n5}P#-Qw`P0dqlR=!Pg%yl&uutb4x7Dt*Al{ z2%!TH4svSPJ0Ro-`$T5O;M4;aEHi3H4SX{6b%2T%z*)pMF=Oz3i$X;+fh%s@v;kOa zYfw-jp?DQkY`%~zj|?FJM~0A~kf(k2$oLYRY$IrDCVeW(L#zhR<}*GZPa>bK3@I^z z+loIU6FVI;!|fWG0HI8i%yHx`qad_zv>46YB|zp|$?)|ru^tWgDURTm}rX4b#wVhzcYyHSMoFj#?-^h4Tvuhhl$DKR`4x zP{WA3qTwtb8v~6#I2z^i;Yx)3fU}VF5M%puxJ~EC;0)k`f6W zQK|@ruDpcqFI4m;Fe6s8pmeaepbj6AP&JL}2sFxHLjzs{s!{ky1AbQg_-x^iT_z(T z*Sk2GR}|&|h=>>rLGYou>1dQ%ToUsdXbd34(im%EBrqaDBYS3L!ZANsA^RM#{hi}; zxy2E}Ci~v-nqGsr(rcGjKqA z-~o(|mKm>G<-S8^xd)>fkGjvNd3O{9AY9MSl2HAu{46DdFD|GUM%Hn#RjdTNQ-dJzbJhd7UmI|^W>`^(!M%GJ?P`8`^6M2vr5AY8 zg!amWZkz3=^#`!`vxF`06FR!nT1kFDFP7FHhg#doZ-|>q3}yh8hK=un4M+P+Xb<_3 z;~?8@UqqI$L5U7nc2c;EgiK7OeVpopsRE%!qiFhb|CV$CN^tjqXTo5zxb_y36_kHl z2)q%m7;R_7NpaFD6&1`D*V(@Z`KW_THI?f;XRxp@B)>?S->K3e&XRP7reG7|9q{tnM;^QwDgmARMkOi1XC|xVohn$_Wd+SZKU?gpID(kL-E@xgCcTk}qj{$o zpK3cjgZI$yNO+Ia4}(x^?**vG`D_^K;nHDw2QHs3;PPdHBF*{S`aCO9#uab{Y!n^j z9(OKslv{`*(s|yh+v>guR(*&-1pprKpst(~Igy#71GYaQD91%B#8h(8wUemFc=cXA zeB+O|64kbH+bOO_A;!nm)WzTz*nC_zcjq>pv4XH9aT|PYf4Q!x^quWLztnnXnXdeT zl`Ml&>qcXBa%YW92zF-Wb*RlIW_1#C-e9>zEe=Gn?d@)UL1DG`8swnDEbXdul1|`Q zV!AEC86rmOgu>y)#Pj9~!xOy&&Kx#@9^qmD*Mcg@r`j&TxEIR1e^Y4mcTwdgT^V&1 zaYbq}`9+G7(g0L0k_niJ3q}ihg#6tr&M&Q*l7c>f-pO~ zNOLijYb6zE5bQjt?RQ#+{Oa$ld(KQ$nhownp7loKg$i$9o!|TX1&ak1gW>KMe-nZT zeNAzVr@*wGDi!+JpZ9p4J_l%Dsr|X`H<|ZXXMHcX6&97*ey)(v8(dlPjPE)o93jmH zx=&|hesh?n_BaoVe=aPnnnflS=r{iQ9B%ab6@qc_Vl`QQjJ8aAI=ud`0U!a>3_?288AG*j$?x`_#$(dv29 zt@fy+%-i-1W^-#!yIv+{yj>rkwbfiFGJA>B!s2o18x8{HeglnO9+cN z3FhO?s9!&P_r^_mn;zbjr(IW@E@}HVy-klV!w&=f>gimmuKkE4WJh>~UJ9$|53XJ> zUzYx8gqf1h!hZld{RqDZEhwKTqi7N)0qm9k{rs2&|B|E_p+-H88uia3K@L!|K@-|o zw`H~w^$Qskz>Ct2;P!8Dm+j->c*WVqfM?`-SYrycR7I=&{)`&(SUi9dppBwRAk+4z zkRM1!Eoy7AjGm8$P!3sJ!OLMn9Rl5oLXPR9>Iit9TMnGg97aKBMEUx%R|$7O~Xe5hF!XQ9>pI^Hg%A zKMJe}G%Zj@fX8L_PcL!D%8FLV#Wvvn572_Z6%h@7I8^4N(Tj0iezv0aCU$_CF{3h4 z@(8cB&71e`*!Tq_sO13|*U~_lmSc~ZyRI8S_I~ce|DQ$>e+vi+>Ak@&fcMVlqfy<5 zQ3m4-ngi+N*Qwh&qd;MYmS(fTWm|JHWKCiFV?&?JIhiB(EgK6>S1@y5(uU>xVaMdj zoVhlj^!JkScf;>r^`OpFEj=iXbg)ZKYGF1^frTi|1+WhXPHN%WOb5cTgvQAFI1Gm1 zNi85n@II0{9sRWa=|Tm;5Xrd;HR`P3BD^-k;r=lX;hM8+->3jbltE_%1g)kV9D#jO zV+O_hatSj5K0A7|(Fn?;*)%~`UL|3bH&8lWqDo04<(2CSy^n4|;haVGb6F-!E?faY zM)gu#EJYv!O+`A3^)KW$syF!zEb8_Vs0C$Zb!UlU#zC^*W>>-ba6gu$sLo1FfXE}v zNf(JC9k+VTyM)f#eA;rs=}A5N+PakYNG>hv&*jFYR*%s&>21o$C@PB2qQAz!%5C06p_qX2SB!_{ZbeUx&sBj2oiGiIU|eif=}VW^K50=2 zze_GFW}}<5O?ggj<0KVlG*F2ZMt1>ZYKpiO+_>dp+y!fKiUHF05?*i@uyJXUWc=ZB zY4?N2(v~GGOLweVuQOZYQday5)>UNpu3i1$-S@6$N0Ay-u+6EfiOzPH8bDRD@l53lfvzA`0Fc@J?SNb&TDXU1L?lyF- z;u!;Xi8;cpB8n$Xt&1@1z)w-9JA3? z(lXSV%*^HVxKHcLT?<}!VL?igyKTkmk|g^ry2J?EKi}=FcAUQlcnJjj`g{C4`KeU& zH}X?l3~WD4lTNOrs?*Xl=y5#3+sDq7m6K-ILVeO}LT1wM-QGfKGd~IRewwtK#+|b#bw9^WB~Qap&uU3w`HJ#ewG~AM$^vOS>_4 znjfoQn6gYd`{Q!;vJ4Hp#27yY_cszoV$a!agttamuo@Q4tS%#WpZBXIi1_;&87by+ zgaq~SgcRxW50_`AIH&PO9NfN_FbfNdopy%T7ZJrv z=wAZ-d2=RWpkg#LBu1;#4;H}jw=~N%>V_J;8V7e*_j$#I){_elX7qi^Gp@KJ%SA01 zq(1Qhw7J9#RfQ4aB92TRnZUmV7Sh!UiK%Qfe_ZgWMSq$`+%CB}buPyq*037UDO;M+|co%&MZ#AYk7-edvN+JPxSJ?CD9DM5YJ zPwS^r>Zj_b!1b%CpHgQgq%6nN`YRc!%hLuc@i;CeN&I%5%6{rW(s90FO;sQm2>N^Y zgQ*h#8em8HfrFP*Q)F(IsZJe?l@9yx{^7uu5`(_NmFd@jA4y1q4G`PIiz(`av|TDV z<5E&GGgDz8!HqPYa~!NV@m)*OYlLN&hsr%TdFN{t2dmDQwvondyW=4;XVu3`;R^HbH=aqiXg}6;V{-euA!opciA(1)3t5 zPHGk4WOgujJcT-zVis2D^q$-bi|`>~+Ga45Cg-gdr=tk;A`qCCWbqYtvlTQ@3wxB> z$7FHmAY???Y~|H&f#5DG5~7mrT4{jV3+$Vf0csE0_cZ3DH0CtsIL000jXCP{gwzZ? zZM;{b(E$I$V;G;WtY}^3JoAF{Xv@XztDJ_$9A)ZTD%uha*1Gtmg*ppSob<5?^hBo) zSON3B?UUl3R56GIYp(^>83}6nbRTeo^h|mj@4%H6uR{ddc3V+g;yV89MvxXe9x7VW z_J;~<_bq6T?nu~?AgoLivXQs~A$vz$YKnArXJ&fpa`}23++Xn;;k)I&DnsomDp&Y5 zre7RLz%4(-j`2fj327SX?0BX+GYzH#-jCyl?j>I#t^7yC^F~l-jn%gy^8GZ4TZx*1 zpJqx&-eu~P6pbbw{uDn_%KIK9ciX%NyehAX9|yXSF73v-D1JO}bDDJWR;oHPB@m6r zad3OZs99HD?z!}Ed4Em+Q@vkL+@rE~Y;2!AlyfMjPcPKqo>v{pd2Cra=naSNTXraC z;KM^IB*efRIgT9p?4v`;(mZi(uq06*>%l2Rbw1O1Fs}3+BXRH#^w+IA{gtlvzWit2 z!dOzefT$|fRkWSkMm&4g!Yv+H-+wE_e-sh>bf)fW#TcVkW?Mw(7EPL&76_s+a7)5VB{>Q8Q?e@ZfpiFft-1~dzY?t1p_wUdoEZZ3ay1=gGDVcjl;Gkz< zkA26AJ>~X24U}qNZ^Id#X>Y<>#}E6CR{66##-Gg*6uKXj5Z{~9>8do1TE6q_-NL;m zRy9rUEpP5}ufFrerZXm*LS5kSl&mfAlRHNemP^O)F9R_T>`1zOnSXziPVap6&etm- z(ytVFyo%aT1ibyFeG3gn;RS8E?Jxn-^sQ0 z3oUn^Y5gZ{>p#72Z5?bG)C*BU)U(sLMXJwENK;FPH)%36YV+~%+0TTp-rKX#cP8m| z-8TQ$;`(w6*m%^F_Yiw7H*9X{L^VS*pcP;%Xt;bKJtZY!nREtYXiO{qw5}pB_ALD``qPv@uokTVB=3?n^#Kn99yh$j+8dKT1h~ zf!>gSCvlox0npW}VLk8P?CK&c4X1W~mINWtk2U_HPA^mn6&bJr;(T&Mfh;i~uHZ4` zBeDcQyJofwSeBBiNne(hbr*GEuE7(M1sNy{?zlsqEx@xsE`M2P))Qtb19V@Asoo2O_J)M>&ZNq<-_GjuLx69|^qt1ZB7*l8vMV1GHv z4cuDgA(?gq#{L|EkUbc+?*aD!(R7u|v~YK#-AYz+AJX^P{bmxtZGtW}U$Isjsr3~W z`qnkcyk26(kT6xQuwp)qr$5JR8eRXT>EpY;bJ1`-`>`<|XvA^#{et zRCMu(lgyMj>EE(kK6`JuIy2R;$Ln!;<-JI^hzQHb_7di$T61yB0=g38FZpQkud+0> zMcEc4U11YUAsKKpQ7qLIe=|)kEzXYG#-vduo&GUBbs35PJi!nA(WCben6n_|EhNbM zci31AK>&JrnS20|&ml@l2Tj7;gQszL^QG0V=vvCXmPBm1|HQR>q-EGg8 z?C7<@fbW(s#H3_qEK3I-famhfZ+m0AYHZO++?2eRw*QnapTOTrH*L|W z>Sbw1r883;-u&lhVZC>-lc{6(G_w|!IN}e8qufwLeao{N`Gk#CE~chvmS@T*ad6W; z=9~1rU+BKLo-~4%Z!QOg0mELwZ&-s~!w^+u$OrH&p-ZW02d{y2!c*y3g!l$ZK1Fj9@bh z0UIpCsQk9AT-Ks&_k$LNE4RbU+nb6?dyQ~aJgv5k25z&)rLXuc;6b2d>P!U8nGx&Y z;+I~ORB0lR0~y>f@3ctlkf_PZwW}j>tPAfFm6L2^3EPOC%Zm`sNexz*j&HG8DQ_uR zN&o0-sm{v$tW?){O(#PhR{+JDLV)E4v#mi)X%HJkoMa86<8X2^J6?Bk2HM~=wo;uK z*6bit0rIMJ9Zq)*03BNEumeka8O?C!+^-1m+&JUxXE%nT=q(>x=-bvn=@%ewRT`JW z<9x5VCa+A2lmDC%2K;HV>01dFc zW#ID5x%~IJhwZ;e7M5MII4F9EpnuAOG5>D+#6h}wv9+|(OXZf6hK?;}YCTa^M3hs1 zEvo=Ke`&EHkZYklI^zYiSyxS`fJ7f9c9r`E`P>qN$+y7d&$V_}6@S8Pp*@o&+(gDOqexToi#vL$v(ylEBx#CZo-W*enjUPO@SOABt$Q0~K2>h*6pv#Tk5{c)&&9zQ)EXncUk$s=zKekZxnq=W; zmn;|PQTlgu1VZ7U+9dFQ9;&4LYA-UiCEs&}1>V z5+Qov`6T8nVY=Y@33WAzd8?455_RscvHz}X+$rUWP`Q?5N2MgZ9HN7gg_qsz7;TP; zPic;6j;W2VjmAAvraDD~Y7riH<~sLwW;cy)kM7JyA4UXynx3{SEj1m)8eZ(o;67`e zZk@)^t4@s+fThJPQhJ6uJyTNN;RLEOsCMP^37xT?!1h>fsx!7TmhHi9=86{|Ue_6; ze-S~mrqeoOU{WEBg@H0)!+}53A46a>;Cgg6jMjI$5+sT%;eDOcNaCZNA5HL^33KNJ zVA~LRbggS?`(9ME&D24{nnW#u_}!$-h*)!RWfGivD(NGlgii#)W1-dHzo#J=|*bMn@7MR%?z^;~J^xI)}8 zkj6%KUI^@|CMyCxK;12I+=_r3NZ=A$vXMB^1xGG;H#ENNlMMqveK;xAU}@r6ONP@? zKkkkWLCoSJIe$vx!_J&kXAbZ7d`;tt;<7zoT{F3}6H#O|B3ybILAC|svvSC~BQ{^@ zo~p1nz@2EVNG>E)#714-n%sx9D*5^~A zE#TJJ0`>Xz`Mj$B;kE4t+wR5_=aBq%;!u3n(Nz}f&Lf4@!YM!siYtoPo5eT5^zJM# zk>sd*)lq5`6YGpGAB98P#G2Vj(+z50OM{DJk(JLw#@U z!u|gGQ-q=R36E!&#ac>Q2sr?ZH8GzwUSs~eN(qiW{yw zta3;jzm{HwQbsnSEuiI`(aQBEmrJ`GK1U6<6JYG_0l2Vw)1&L}+sNn88YtfCUVRmW z;uXn+0Ur0NB%mZ+#*%94#=s>^0sbFj^4oN+TKar%H;iJ-(T6gs8?as zQ|HTNoy~%%Oiw;;WeUDZwy7cHhy8EIV>sh>>2WKQql92q_it|Ovi5g^BZ9El7Ic0^ zc0>@C<|-?-1zZV|0=y<&)`LUaTnkaQ{hFcZBe4b|(Uxm494$mCuFa0XI7lVoY@15_ z5dDb~1b#F_+DUl0@E-ePN8j0d@9*4^yXnETZ_6$WKl>VHfIYYIp1i!SN)twbaX-$K zc6eA&|6iseV@2`aMY5;J5|?N&xxu@+YwO*;r+~d!me9F$`OZZ1_AFc;rRxDTM=As< zI=#iUtG3m8I)ozeEV^v1wy43_{y={~Vk)LhrTaR2``8TTRjW=sVj=p~xe$F}EhX}*<68W$Ij#j-yRqByVBq!ID+5OkUk1lg zOGfeFw~hyo2O$G&(jH@vIewtB=fO#LFUHbY+0ETAB>@C$Uts@RtF9^DvAFm65kJ*; zxaM#T>puKTM}xaLN%-v9@1M{Q6>zyl;?7!)nD5bxQXj`>fmOtueXCC0R;4q&Q&w)R z4jgr#@uqPW$PG31CnAt$Fo_vQ{l!pCGD?gB&-~XDg+=^_5XEF&!u*T{h6$h!vzGpz zS-5#g@@VbiA&O3|{r5F;T^+WhtESe^1laqiPMxdD*g6O*#P$s4L}SkJEm?O-(SCeJ zp`QKE5{yx8+{}(NMaO5!xvR-rYhCn*5SE?C#?r%lo#X!#3puZ-5jAvBOc$P8<2g;z zeV(6)zi=)Qt)3~FSQV@Cd}6Wcj$JOScD&&^rSs?ee@Go+FZrgrG~on5?qAuJ0jkZv zKh8{571i~kTFEjH=hsv&PB;@>*)p*KS9W|B>vXAHDhzL}6_S&al|SB8U9=~LXzoK7eZ3YZ?DAXJ|NK}39B?qL{xmJf)^%Vt}y}neF3% zhn7J`w3LN=fvE%i@jSHzRf4SN*WE9y2f`X*V}Slyjhc zI4Whr{C(j6_5sH;r4T!C!CD8w&2_)2L|27t%5@bAyHYKM;ELHwSYaKL1ckQ0%yu{e z3NZtY0LXP1=#Bx$07e-*p0yIj<}I#Q9hWUceF_8*5>q<5ih52SuNTV8jeu?ZyzO*h zePw;6l(}>eVj;;Q13dw&gS^jC1fbiHV6^-;%eMyuAct<5>taIxyN0Efa?O;E|GuD(#)V_itski$f%u?jnJt8guCf>`y#=NoURSv9ysk*3c0)%J z#M7OP_jYu0adh7^dpby2o}DpGGUv@xM?75*wJawu077_pf@^0tx5V!`&2AQ+)0@eP z^1X?mOl|*)BFu{I8`+hG+)dPaed}g1uZ&t^Fi#drQ8d7h^{{j#v1CtG8Qp6r5~fg9 ztk0Jw>>{zN!i>lycN0bgY;;ZSJ59#kNIqv}!pRgjTT<0^9ZCwz{YH z|9M|^86p0bxMVgH?nJ|}#H3wmhT1qa`#Ei7$ zQ+ewWk8@-k<2!f-+$kGUODOFpJwh^?X=N znp)OZZ@<+1<0i(?rSCpvFyc4L#Ev_Lj;Hz@$y?Fkg?!TSE>9P+xm(Gya?a)~a2C)5 z-T?>vws1H2vK(8ASJ=mCC30(@+Oaeh)_}Wx*F;zE%J>rx35R7UP>MeVxG=!A2w#N= zRNEuM_iOXe+F z0PfLC#ekR?tkv&Jx;^tvV7*&__2xs`(FNH_j4I*^x?NRH56%SHDgNp?sQ}^3ZEHMa zdc(3(^m?jFxJ{_OsAr#+v!3Y3K?iz_KL$Nn1^<&NH9x`~woOtUyapT&lEVIg)NHnO zWaayW^<$_+VKl}$1F|bx$dx1;Gdxp#0mGj8ARk1&SbINdl06K#h0OXWs?YOavPV0k zem&~RMsiHadkloZBX*kotNlZGAc*VuzK6u(+7O*a@-Q|=_Q^W>Q?wl+oZfz!@pI8q)JL|M&1%GK*8u8GVia02OOoGkZMJ{M{Y_A}!PX@X z+yg$v@(OF42B~>S-V39`C?0|Bv8R-*J9puyS5!I zbsqvj+}XU6_U~AT_Ugenq1WDU$qE$)2Em!)f8B9f?>;r*i7NyQ*^>z(J1)_A&{0R=-aNvv9w*gU5jIByB5aM(MPwZlmhZt`~fUbTt8U-0kLiG zA`{VY)>mS%_{b)GQ=zM>Ewf>|VVV`)AFO#gXtIDjc$;L;S;q;-f+C%{{Y*7MoeQjI z`zrLD2h^5{3U4_zSlD?7BoT$UjbdsFnm)eR#_p*}f)aYFm5iw(t|Yi45K8c4)B9#FF>SX8FlXI zl&1H%1&S~aewSTf)%BhhSyJeQ`Y@jfnZV8)hTJh>YB=gDa224A<|^O{`Hf&J7aun? z{H=9BCT5%&Z|wsno%DX^mI{l5bHd{p5BG?nf8bRTMY`lz-_mWNWUi&5YBT%lYz0tp zWeEEBDckZoL3cdcof8T`u}p(Ve1b$Lk3SpHX$P3B?Q_vG7DMf9r zN~RvJPOe%)sj0Z1ErBSv$Jtw{4E9N?ogYKaKLzv=c#}1pdL8xy1~3^caYQWnxZ?jDDT@norrFnzfxk$Y+> zq#-p#)gJ_H(Av-kv!%dv$?}%qh)c8rv`2h#ED=hJ`3WPv z$O0vqsB-E9usPl~aJ>M7$0g=Lh_3;ZHsvq*kEq2h7t7cvL!lDa)6_SweS3$B^^Zf>seRFm9cE28c z$UwLUDh9nnuk(%a)BLn=lpAnuEdm|hU~*Z&SgE^QGzq1g&y^MOy$_ap`hu>+dhmQ@^Mr)I%sFI(MC0s?|CG+jR|}RzX~E4|G733%5W*RAT`BboUd4vFn8awY{zD2nZ>Q z{Y-6!&N%5%o9%C04h6+LuP2J<7({Z2^_bl6;n}->19MFfp`# z=n(5_IYpi4H#6Um%ciiuWbXne!pS2&=Loa8NnO@(8vQ;X`W*mHrZ}P;QBe2v<2;k_ zW7D(O-e)|`4-xdKeSQ2Rj#nD*`>107t-*Vmsw8*6u^JbjWqth#kWfbVwM@33CF@pk z53n1HuT*z*R(;G?8L2bX@1WjpTfotPvsplU6yKGb?u}q|rEb?*VS+5|dUCSDygSa^ zp|1NXz!!Q6@^lPx>nbeNku^?@OtO-lL-Gfi|7@`BIgb&2J?9~uPm0wY>HU=)v%a== zdumeC`zs*e*Es>f38Z;o0^)XS4N1Qr{BQmd9mG5!Jvk>}AKV5qMqj;rQ%TBwKYrwi zjQfNjWU^d%Q2R*UeS2)XdUp;M*PdJQM~pj;e;g2n?@IWl1L|XAjWsC@osS6&IK*A+ zG>B`G&qP17P^p#T&FmhtP04Y3E{M0!-*=mtXn_tkwR|&B3P4xjT74$lk|a!r2HLjg zRiP1<0Pk63Cd=DSb4!@MZH~vqs?P8F2ORkgIgWfB6wQ~c%()Yv8B7)I;x^Av{^2Nz z79b~apJm29VtkhEmgKGdBmE<2uh_olTw$=DgmPAZ*Sc1T<-wnw>@|?QZO=Ve9R&%q ziJ)K(W8<_q3y~Q3A1|*#(`&;E_*G&Fz&D2{im$r2SnAKxl`~bGMzD&La|qQ@+Q$|2 z)_XSWKes<;|0>DLAWZa|VKvEYhHTDmyJjNVRu!K-Soi0misM`8Ew1UlEvUV>Bnqe5 zRb+*4!u^<>>XRmmnUIKq;Lz(sgHkfU516i=FEnT?II+RD#`8_ zl#xm(QltaRU<3PS_Cr~*1-q)kg0hBQEGfP8p8z)s7j*hEW`glL8N&VRj0_p(UI-O{ z2T2ki0;t6e$y?*0umRUe-OhiNc@AXAtsp~0lp&~owX$PC=PXdJ57I}hHZ%Jvw}qf{ zCAi1HtyW~@2Ot#bY639`$TOwu`MM;ooqrZ5ah7BzU9wyTymmf9zRT4zP zu=nYD@X~U_jy$Zl!)oa%{(BWB?<(;D?{-w2A)n-A^Ar-@Bkz?h3w36aUuo)cJt0oJ z78Kc^BU}y6N39mZSmN}qsq+cL;0qguw{q0YOT1@iv{Qh$)qwQIv;0TG`^4 zvQg?6hBATTstGImBvkaXu%bi)e_G090^O1AD$`XnI|MbMvs7Ot>u#}F+s{*HE0a5- z{VHIOC~Dwu_=m9$p4;phK;;vO@ik1xXMyJivfspCHViim11_Wm=+E6*oaA_@?uc;i zFC=8NR=549c#e6GXQ=ZK7Ae70lgtN^^POGPw!AHtY29fo#*9&!*kPN#t)Q&{4SE~I zy+6IPb-im^CQJy8&syh5Z2TPcF)rqg@& zkaTZIacjS3boM&!>|v2A@A4|b3G6Jox9mhaaAVg!tlCPr^p2^WchebWM+Rp0LkT5t z=CD37+5)B$b(US+P3ata?Moa6W~wRZpOT3c{eTPP75jaDA2Uh&dZz#cwOrZnF&6W; zTFv_t+ikAP?ssu1A*P^p(x6}H>pL$%dB&ip_kVQO!yET#r6PaRq3x%R z_pmY_!n6ZF#kd_hTlm}E)g50!SR_gIXycZFniVpE6;QxEP9NERxv8!0{zq* zIKrPS|DEm4rs~6sMT4g#-J4flhV?{Z)1D6uVUiD`+E+qvbIx(ju;6t`5i zl%H6!^A|)F0;YzZXXv;S{|Xfdj+$$K#111J80hfpVH$ZC_vo1Q5+}4RY{+TW%EZPt zYq8ps?I&1cQObdTSGaUMAQKMZ;~jN3@0uvC7H>PY;Rx&dgR9hBF?9YlO6}STMy_Oj zJE-Qb*p6VKBUb#sjJ*k5RQI_)j>&B$xwjS5dkeO|R>CUW`+y?g#<(&r5lowaNmEFZ7Hsb=Viq(TL`}f+I<~S0coRRHkFXF~N2p z*CUGU2m+XmU&52--9IHfpREEKfT)pSCicNH zBMUT%)wBBi4}qV6!Ua#&D{k82Il~i zjCnH#tPz#YU*@83F*)vi)`soA8#U}L06>a9bxz#9geATN(f{SI9P&&fetLs|B3Z8?&C5D6r@WJAjegO zN<}HH?+bYvAe{v`U~aV@138^i{_U97L4U>C6fXNl8jy_d~K zq-SKEwar+*m1$ok5od6gU&Z-giD zN@|V4mBOz==fI_az?Lq23r&EqR_&V6+01;e@ZCy*ta!U1oSJAROcu=WfIxRnyZ#urdeqE;3%)NpZ80U&3LrTfqbG0uLk%o!7 zq77X0U8KoOKV83F*r3(cWy?Y4A~^S~c~wT?iOz-pC;-sxu!X9d#v9(Uj)#*mYAf{4 z(e@Lpx*U`X^ocu2i|<_NfzlQ1B6Ze?u6YaYt8R&lIUo-3OT~e<5NY?NNzQKZKfH6I z4d@J|tlgjwUa~!6NiHMt@FfdKDcwqvsxP8dT`)bB!0e zzkX;Hvmi$BAMGWNg0oyF+XIS3aTPhabu3OG;H&=(b!4UH4> z-^mZFe43MqEs>B}Jl^=cLf3fC&=jRxUJ*8u1}dO!P&W+6($aSQ$sUdF&>YbgV3yY0 zEeBD714ykT{9{27|K&RD~WqmTPM!jgFXCPoEn z6(-PS&H@ZXB)bUVw+%%kBut(t;H=BG3Nxt9%0UZIuJ8m`oXQ~%%USJzb@Yc20O= zncyKby0eW)HOtz@O^QZe z-H*Er$|^P~J$O^|sP39;OGnQ@0q&GWb-kvmzj+}qHZP=M9kgq4uL>@sh<)oh?>?0N zLPVvg`yp|1lKMXOd|$ICfu;^5oD4~clI`go5{twluJ6PI@_0PZXXu$o4S`t6 z^~ryD^g`cowZ5t@$udrryUkCjkEJpxQTMU;B_EWq%~*A00nX=YDtKN_whdwF@bQY( z4N1P&aLP3%9X1?EH}dz@d`Nh9!ZN0`=~ng*Ho5<~GXA36&GKz3O>>5!>D)0v&+RMY z&8HjTI_*c_g;F<#B0X@+sw*ZV<5OwG5DTzJ!njWs5fLsw<{RY_NO=`{rFDZNf&mhB zEOj7-yF^5ye)A-uW}Ljp7DF7c*hHDRg!n;$mSRw+$|f2SezE%*&Ie+xw@gmCj4SHvnX z|3B;VAA6u!wWVUi`n#XF%SuRC3#2|jHJuQU-xkbLpMU2KeLi54FEskAz`N>>d5y^J zzMyp!fW{=t4Qvy_uem&!MlB=(`gS)VFU?ZH1ho8h`$0vjGj8(gEK|!@amDj_o0Idl zWsYBK?OUE-M_YcvPJ&Renv|UNzX<+8I4C89#-&)OJro*(xvQ>ebJm#H)3Sx6KD6E| zO%xN|BoDCE#>%DyJGQ2I6O}b&*(Bl@!rRcvUD01My{-48B6V5)6o@4JJwBs zpFqYszW0FPN~2=?T)C;rGK!+XI>?Of7EtBm{3RQOxmjznZ*y&t92{QBN5B`*V_`Bj z!K+(Xw-7r`RKkI3hZ=Oi@~xQ{#JSKJ-#F9b*&^8@&G-R_&~8 zSL@u*F?LHiZf8`m;Z5c48Hp9-StcX_Xy#D}oMG0oGeHQKQF4dV zF1B0Xm)5q@x)_`)$@bp!TWgl*tzGM$Vxp3b1)C}}aeBHfKe7(!tOYYw##5zK7=BNZ z4RwV^FjuRCDF@$jC3~03AuNi&f<}43ax!!GE6_?f#z|+vHu(CE+=ju%{?(`$q8X9< zO*?%|$Be#tw7sB((XC+4w3Nc#$=T!DpjLDx827AJ_y^=ut@qXL@6lC}#64#$VWp$T zo$mN`%RW!Uwe-;Jq1pH-;_!9rrBGp=-Tlg`!TxD=usMN+V+Sz-1gy4M{U|b z9c4Z?c;MNAUsY0VsbQ7e)CST{PM`cR^NQ!cG@cpfr9;d1CE-rsZ;kW~M8$-f%FYeW zn77r4KNUqs;NSTqU#}h|`hltT5jos_cs~0RMSVTiiuZ$WFtl$O@f&bQ%A0IujiXXo z+7pzaq2ps>HnC&oOJYOX%}9ErFM7iLEi(R+*d$*C{o_ISvFjQQf#``YT2UEjY@DGR z5?rax%b91%sFGjXJ#=uY+#f}$_7-g8A?+r?ueaqMD6nob+p=vE^-1^?O;U@x>9$>O zE0ju2!xDwo{ta%oxSr(RmWNx4DRa5@Xj0pu@bkwf(zTlUrJw@O2kxCQqL5_=EG2Y? zcLN32G%2LLsX5SBkZC&Fj5vKtFLSEC)NOzvd+m$kc6NvzL;@mScJs}LyqSWqb-&zx zfKq3`h+|R(ydIQPplG_wRXXB@7DK~9BUV#2NLd&ag4IG4Hts=j2W_`pP;viJVZSIjL;sZ&B40R#q=L<{m%v-(46^({ zr>~CXLJABm41Z(6jahOrUARWbh=fq$T^J8SS16*agKN#>#?2=^Mi1)c@yKqPg8 z%ltMOAV_@E>58|!soBsQgfi~^&>#|yfq6BaURqM5V~kq>#s?o(SGi^` zV=`QShQEmntI^V!+?QHDBcf#z1Ump@z9Eh1aNH4s=?6o1=G`foUyRiMGKT3pE<>L$ z{%FmReXB6}fIVBUyXQBK6xd%#fNWFLQm=riS%1TbwOfjgf0p$D)T}h$U8Y>Qh0w)G*O7A&fMfLsEQ|pqsoZe4W&Pc3XSDu47q!1eu#3X?scB z$w$Op%$ahKq)^bs2Grq|mNy+8-bCTM7#~VWi_Sc*vin~d|$D-zh!+hIKz{CO}rcw6mFI#~akG1=d-1laiGTzKc)r1_XZ$=t4bdRD~}e&R}{2Pj^HDMM^An0DUzx^PXw-yzgd~Huq11UR5o1G1`Kjfg)z&%QU!XpcXd4zA>z54d z7}!xCI`N`Pv(r#TH-^lb%BsqEuU#R`Y5KomJ$`yZ`jv8Vx+l4^0a@#-d;WZw(byLR zC#80rKhC#WqZ;pmkHGtjWFNV8LyY7{+6y_`5Gl9RWRM3kzKJ&)v3zm~R$(9MP47tX z{j3qbU6*2q4vyG(zF>N;s#$Za1EaFeXe;$JY^tymh`&XC@8Nc#tmMvc_tM0tNcjm$ zJvgHBhm{I!@qzjeZ-`F$fd-6JNa>{f^J?rbS_y-M?}a}rw~+`&E3A1GO{J!DX8~zr zR}dPi4+&{9i~H}tYkxk^e9NW&&bQINY`!tGhN`JpTL$SurPwPLI-iClUA*T$3q$De zmSHhjOy))Ln~z8gyUZ(YOd8}N-4>|*lD8Kf(0`{nz|STtE8d z_RFdIQv2mhKrLc#mm`}?gqOM0UGwW5V?`8kC2I!?psWd=rIZb~1wWHWeHEJe#p$%Z zc9eHpOO~$!MTYp02NS??|Dgn;S`GY^nATLRwEUUH6pdR#CJL6SjJn3a;fBrN95t0R zm9Vo-zbNyJV-^)2RV$P|J=26z;^3y+UaZVI+q0tWqc%-jwhnVMj9>Wb_7cnP%<#85 zMkyxGnWn?s{~_Mqkt_>6&|TOH_gwThfrg;4>%+&!DBrMF>kW5?Eh)go{%FY)3*&GZ zT~||H_kY<-#wvR#lX+aLsXRQ`y9T>sC}R^_pKijbzCXQMeR!1lxMugZ_*Dw7k+vqh zwxNW4aA_P+!$T(ydJj5iYP;Q_bvB}qZ3M2^Dp{+SwU0%o3}Nw*p1?ox-4 zFO@6yZy$THcKpENGU^kWE4QyazL~(owT&(8LWM977GS_C?|-;ITz;8R_pkCNpyhJ;h&l8zFOoo{UHMOyhB*&V0{mVpJZH}%3ofDR7Q zE^*iK`1L*SHx~v*i4df%r}I|_*9Q)=sjWG!FVv5aaCDP&wP&34F}wHlDY%I}yMhPm zo&`6zWf@q_V%d;&7N57iw%v8L$)8FQLtLQ4u5I#pKsbjCCYqF?a(aI_@YS8W<QneL#%B!Tgfv;q`LdRD99aP4S%576DgORZh7Qs@?d4Pa) z)*BS8w%=i!zBJ?EQ_57_gYg*;H~V)p9uE5^=9M_Y(fK}0T=0*FJWtt+^*Svq(2*xU zfP&%@TAB|ux~+~Up_%<*o&==cF}aiqhTl3C&NUs^1Q8(aTh|HA-E^ zq@15qNCPjdAoL8yLnw;BB3u&Bkc4)?EPkU7WCcfxHq-s=CRbRmox~`r(qNx)C&4ls zL#9ewib5GmWYb+muA+JNIlKfY`{RlbLu{$}#mz@Os_E^`>D-%*#ShJ!&0Fr1uR~sE zv1vG#dye!p$ij4Ri7N$6_G|oZ;de^+NIc-^Fv3Lcz+LX{b4%1~cVCNM4$=+Anp+2` zht=_fX)WT0tVMN8>y}!p$q(k7l^{RY&5GXfmK9g@z7$C1HQ}LhPrIibMz9Ac^S<*m z?a%NH_)cglL|{yEfXxgAiqM}WUXe&SDsGV_zcz(k6qm^XNz*USPhWY*s@w0($i6F; z3>5B7T}l2ok3TF_HU?V18kmfqaV~Z3idD7QwYRtQNN3!E4&nEb$zZlT=*UL*vy9Np zahf@X94~pdlU@w7jp|Up#T)7;C5ANHQ0{x*4=_HGp6Qy1@xv#$Y1af3!A-O47nU(s zHK@hjtlv7%kWAA0G#TUUy0|xb+$n+3yEg3lZD=Gk!VT2choa>;W6-*EZ`{*UPS^;h z&TbO+S%_qCheI*fAO1*R-QP2ir*F%(=e4L#j-zFop^OK&9Qe4}sE?d4-xaPhS=VGr z8mxwci}vLmR=j;Oox4yb?PSaPReO&{Y1h~b_-W6Mc<@u69qj{kb1V3ZD?pN7h=mr} z)*W0s#u+uXSHn9j**C=PE3?yAW#5@W9PK4-&%l!!-=yQ1Ku~l*m=^YZtI3aZx6$3X!sMNIoE^QEx6`vk-F-7R>6}>DJP!azeC^2Y21O zl+Z@W*RsskK2lL-3|%w|{a=bhso5KuC|UYTt~$HEEuqzp89Wo7b1ro*W&7DG$}OVDd-dUb0dcZd)gC@z6W(pOORg`$r+vuTfCo6&t;4k25}#z<24F50%teLV)a z=kNAa8N6ZC+TH_?S5v(O2O_ z!C4p_jQ-8L(D}=)6lI_OZpBzCsL8;y7)!PE8J`KcGg*%t|4hB8!(f_X&f&h)2`YCZ3Y-Xjc z6e$IUs?b%Np^hf+l}>4U9W^RB5ABOF^8rCtJI#cxm*KPWp#$7*ahQ0I^4(S#U@9rB z>QHLzx8jUzB93mDk>H4?xj*vfL9&44!)|azkwNSi4eoRbCW93FV!TAf?TL*FI)%x- z<|Dms#k1IQXrGlMc8h9+8OxkrC@|Xk?1^@}LQ7VQTJx-z^w#$o#U|UW=nsZq=>4)i zpSB#g`9L{0@oH|P4s|Ynrb0+Xo1-hYMfvYLG+A%58G82Pcn`|XC{kHU0|8kso8!KY zsZxZHFRcHkQWz$6#0PqnrrZ{CUxfS!__xvE_0^s&_id%UVcV=lPpUz5=dL z=;KzWgCL+VWCX)XX~ejmyAM;2N|4D8SWDRTJfGf?0{s#M1sPeR>|uJ+h+@kN>*=nk9!Ftu&yQ z`GlFB-X7T3vIbdL5l1GQ6-djPK$=`daac`jiGr6qS*c)bOu7}CGDWa7HQl-ae8_W~ z-s*(XYj?!7lj;3e_$h#n5UbnT6qXdqlB3n`9d8L#RGB(@Ef;C)j9dLg*PxNR#+E7^ z?`QHC9hb!l`Wh`M%xL`u*?pZuPDeOX#e#%(J1V!`}`sI<0iu@v-%Vu-bXZw}wQa0A}m=7d27jqSRQ(xFwKaj0G zJ{nlRDzKgeKZeH#I^GLBX}^3ZQFkb*VGaje?&Qly%#Y+-0s;z_P>JF;|%Ou30B?`$#TNb+}|7_ zI$fb!Fm6z6cU;#Aq0SA#bLGOas2RvdCNpE2#n17$peCTx&X#BD$7MbjS#HaVyOWy- z`P{l|oxZB_#yQ^BSa8Cum^nON?{IC@y^ymrHL1XIOnZJ=xqBU>GX$|hq;HGV--jJ#hGGx2wjO_AUMgKu& zeSJRW&xS)U^Z1vbw=DLX|6C1^5z#+G(Aps$TjG- z$Uy#wt8M^<{=q=r^6&f~<%1K5agA|U4K8P7 z_`-yQ3R9F)g`D{N*cuj@n2cKh8w%v{cGPUq3VH3J= zX4^M=b~uxAlmG-d0UW{mR1 z9#{y-23+QdfpVC2Dt?2tfZ}%Zp9+5#QuJ4iRTTfQ{#{=J<(ZO$5ScL945R{5w{ndo zh@V%{mc`=Jin=`4h__!3{<;@6I{ytaY$O~9`=1pib`TtU$}{a$p$Yf0r85fJdb`F{ zpQ6<`CM(EZWMEr{r>x_QmYtItPmkYeXGR0t<)qZQ!?UHXv6@Kzlei4$&C1{q7=+Gy zu~r@fvbXTnhCIFTrlxbI#|w*rk3BhY+-CnG*8t+Q)YP~J;EcLJHe^9t^Pt&)M;W?V zuBlkg2+Kq37#&rY!cBqu{K#FgR;jZ&~l3Yjy1HbS~aC zqIKr(Pu=TwMVrPvT}_Kf$k$}gd*zN%-M)m{1kM)ubzdQL3#&OyCEALa;;QCwP3Kd- zWs3cU+Nzy7Kr9#5F68@azZ!^kt-`GBaHln_Z(G-TdvzpCRYJ2>ez~e|ZjG2stPPy_ zxG|98Xki(C6io#lx+eV@fyMqXUiyi+w*((j?qx#aZ`r=?Rcseq%_1#5|ToSz{LRxPLK-o!Ry-q+D|3e20(19+L zgGi5;=eyPr@QNgO;cHD(B%A}JJI0J4nBiPqMK>@N`<{#+M~z{LgnC3z@NNn7-hs!( zC1gfH+9B(wW5Qc>RbR1Sp~0P?S}vl-ZQIedgIn*;@7h#l?21CLLwAj41{UxBOYK&2 zbDGpg|I*E3I(e+KE(H2j8W&P9zG}A6Suf|gGdf3!qlEj=GQMYJUUrf9L^WD412#fMlMDK~eX*Lok;H(qx1?SDIb=6G>M zyaK~`zia-J7JQ4kSemiXCM~|AOk=R%!zU z7m^gu4*7B-2MK@ieovC7F*&}pU3$J8Cjm$0>A;xM`d*vOB>Kc{ zDrVTg6w{{@Y2buR$h+3N7WPD6?N|gls>Z~n1QQ(graxxA+yfGUqTcWP9k0?kmquqz zlq_eF(+d2qzA(~XexvqXp5R=G>EBKNWLFdWbLMEQf08cNRT4@;)|i_BFX8FV>>NBI z*;05~nIq4KnA^Dps2Z<9_3}8=8o$|1)Vx`*Wz6z>*{VXGjewGNRiDbW!d;le35h<< z_089!mSL%opGMRDBhU~m2CWu?WXkxCaO(4%4u%kNI+SbOLO1EQg)XRms_045f}!`a zqYY5DbL=NPFtOwuR#_I%Yo!;1l)L zpR}xr*`Q(!7fSM+mq!0}OJq2a-%kfbIY{+G22btXH&}7nBdA!gKmv0oM_r5qQ2Tyv zrXax05{(k2{8g>)o|lMMMB^)kU?q~w%_cr6FRePQ;FE!4jK?&wBbLY)M^N)xzl}z! z@a_j5DlAfNwJn5^`|2BOj-3X=23UF54JC&=T;>{{Cj;#5cTNO9lPis2ZZOA@+`7Y& zOrr0D$a=d3*YE?*&7He6bf;KH%M6P;pFfFzgUPdeqjL;sa=N1Z?$AQg-CttOdfj1L zHF3TJ8)Q!it5uj`{%6e)F}4m;%{|TLP(mf`UZ(F!FbeY{56fE6|NccH|7ACKDwVx2 zvenE%gY)Hh`9Zrr4xcaITPjiHHB@V^JGox(PUhMXp(5NvwqG4tE`HiEL)pUqq*+Je zTcnn;t6kTDNEVjacUY4#`b~Cy$2sJDiSvR4{X(i);a-_3^unUIOcN|;^J4|Ehfg?m zTtXB!vyqrax+kf=8-TjslNV30%|!<{BOa3ytP^j)@VGS{_b!=@keLX%k5Px^rCFvA zEj+ZaRuCOt03v<(oK0owpv23~k-*THhjItn9WO}G%sDGjx2F|n4a?J-u>zDHka zOVtJKryF9ts4zJf_D1>XeR^M^*aR^JvJSz^jt;m>#P;?gv7KbD`@4HirC4+0!HMx# z$zM+ zPS=!wu4|iy3kMi}B7UXw3-Rg|I?MS!$+vtiJ0X7Esf?Zn-icc9cmc$eLvnD_!qD=3 zg(n15zw^8dJnrw_-;JgA-!xL-ij-RtsFva8nSQe)udKBo@*H-0rElkZ$kZ+CtmVAK zx02xe=**F5oO=@Yw6-O4n{CO<^N&QM`C^}|o$Z#z{c>6$68}ts!;uwSn43%+HE7>a z=*AH=W+h1r$R0O}TFPStGrR)`d52$&Y=#acHlB!4MY-3qxz$Jjegb62(#QM||I94!@{MY_t)T{#*IMgGjdb7 zzJUkH3I@;V)`t>b49mehn9e@Rj=~HNo4K$)EybLX!7XH`@Zsm9K%TyWO(sk+$(llV zC1=15&pb@BC7Z}xyq(Eo^OzK7+a36-D^@}!Kj#`iNUxQi*W8v1wnfX%U($a8?g5(#IhQ9`aGLd>Vjgb)32z~+8H1(mP zrfIa}6RXOqSYcI)SA-><*Axa@gt+#BB1%~bAULU_n}$G>Y!KIKOqWTW)*6}8>dTrF z%fWI|F=l&+Ur?r3wqC4Y%0v&$N;!iip$srKP!w9jpO*_cez&7g;}{HwxkSe{VWs1{ zsp(x)t+^z6*Ylfu*MqD4ZrzT$9VFG;MABS%qqJkxVTW&wGgmFzoaYIgL6BHl-~Eth zDO;!@9A4s2c7(sExT0TSyHs1s|4@U{Y9XJ%HJHSQ*izvD7?MN6i;X>HM|^v1_(a93 zjy;3qDn_fR(3WFquBjX1g2qffBj1F7$ayXk)rtMMz0_a`r25}-tk>&Yv#wc`692d9 zk4-;p$mI$S!&T&DA?i(=t|s(y@QEXfNbK&Hp9%euys}ImS#+RKbD-eJ(#V@fmhSIn ziVo!;{7nQ#6g99+8f8*yA`{q-xS4E7WZKCiV(B6Akmbaf^{@Q{{R4ap*T7XXMNARd z(oMqpjp&4>kN-};ml>;;2o3CfcROajvd+8$SwO?+HB#$@pOQ#53hhKI*Vq=sEF#;zPZC z)Ox>}i5QO#Dj6nLUS)Q#+B-#Td|Eemub1LJyWx0(#AZYXYx{%8>_~H@u|)?|dZL@_ zK7JyA0hQhx@eL~7@Ab5tj=J5Rb=uv9Rf^r}1K0HZ#o&UUwjte<1V@4_>#aS1Z0y*Z zID`~IfORKIjm{MB5;Ce7xMlB={%2{8Yo$CBur)L!@`+U}maABz6h?yg!CFnkGVT3? z?A(Du=ORzC9Q@e)t3?*^_)BEs>9Xl9DJK9v!cSK(>e*>guf=wjC&Wx{rI3TWL7ZW> zt-$h&s!H#$_q${sE%wJlSc+E%!(~}prCALbyZm=+w;Xc+_LMp}y!(Qw`eaV`!f6b) zjoTICMw*L&ScpMOJV3ty4$-deD&~s;s{~lJ!Z9AJ9{KYtw9a8=!>z&Yz*)wR&B|*@ zPLT7+-?t1>YKRk(=lvXU27!kBI%vr3*_h{7nUN`m=5mTXAIlDmjqGq%zyaiv4k<~( zf?`BmCQzX$XA>}y&b+F>0vge@j*^803btt8&xD9PB?N`NKqe&6BI=av-R5^Fbg%1lt|gsT<R94aoE`zFTSOb_lSG(&VI&hl7b@U3DZ-)}9ks>qiS zib7}EWMUFUg45%1u10!^|H=Oi=3M=rgBoRRil!nEq8%4?zQUG^3Zt*kndq2yOmp4V zHoietmtiow8L!M_TMPjSn%B}G>qskx==y)d_^a7gpF`A@VxoVOx^a{akBX(`;$t8r z)0#4^BMa#SuwP(-sdIeyN&5g1gx@8mXozzqS77!fiI1`AxaL(X1sAT}qrA@uBDyj- zURDFjU-tqgQW;*ivGr+E2XYP8+_Ls?<-RjY2&#y0S7!lkjr~h14o0k(?2q}k*@vO0 zH^XR98h4Y5D{kpgEoHYu7j-qx=Rvok=>0W6iiG_smFW1q9n6DFudPp_sIPUjK(jN5 zELWqiU^Y}#>5e?z@ck;1GR`v!8V(OC{WO}%@chAUO*+Bdgv=Cj*3 zQ``lt8@#M|x8?hMLY(-y26&D+R*?w?N7pJxx1;m(ip=?Sc|<8yWcFFhQjZrk5-G>x zeTs&8l2lcUfq)UVXsoQl>-2bGwPn7nvi(HEs+miql5$PErkPd|HtS+PjMir@v-y!c z_d$aC5(Qp;*c0tH#`OAoQ|&$sp>?73?G3XHm+R7GSgkHiSYMY`mnMlp7FlNNegF%0 zs{eFAMd-iN)(tNt^!Jt>K5NV*jz@BEQ2${q65edW(jo0Rcbxl9Q#yE|$0PSz#_!A{YZ>oiN35q}-MOze zFFsOu4YO>G;iUS$fyZ~H-#<@Rzf{RfAmZIIr((g?C0ynft{G_Pl-D314#s-ua3FhGNBl@@;RZ4;QoZv6_dhKuwB%}yO#O6KRYOMy7;I0QUfkQ`if{FP-^SQxsQp7h_98B%wR`q_%ziE!2lMImJaUe~;Bt8PzZ&+80iu?ns8 z72<3ROZ2<<{;(|xN96uuzOarpG>=oZ#rg_@waUTk5b_uTFUUAr^eH^Bg~|60?*qh%%q!zh&7d&5!I z37sK(=IAZVFe(o)T@lv)XF=$6{Zu8e^mwtFNiuj4Y=yQ7sK} zkQA}s8A+_tG`twvz*XCZ;~lJ@;ZCiBIp+!6OdQtXe;_Mgr2`WUELzygs@QQ!6zP;} zz^=FJ!3Rqgr!3jx6iKN0wc$vbvMQ1i^1C(@<6~=yHXspo`5nc; zC?r`yo8+LT|;#}erl?Krnh;_<*X4g*er#JYmzwnsVR#V0=ES1rMZxyg9YG1(DH`}VxL5aK z&xXto2wEWK(I)5vx}$AA>2_&r_D{qac;vZjNS3BscJ#gt+_+FO%4}XH9JkkdRO|#h zAuUtwCy!v6LRMo>KvD4WcFHqV&A+A@Yxr zU!!%sbD7k)uW0QIo~zfOdMK~o(l~Nt?8sPOA9*C!Z&s1K0$%l3d8mN*xcJEB2b~K^ zS~@a&WR`edwwIvoa<|_}XS$b24*0;P<%5^V@Jw)6mpM~}%Jex*|Np}hEB{CAYsx9ojKH^s{t)&MLMfS;87JAKazNlZrWB{M z4{9l55yB_)-!#Nn)1D$-)@#7qfZ`a@a#Zs!VuWx>=ZKJnTPtW7s5ospJ_LpXiJzo5 z1!Op7N>5qGsT#dy)S{j)dxnW>w)5X&A10z>j0&|GS&VrNa+cLLga~z9Bv+7W##La#=ZtzI6V*&_T{W^1t{Gqx~cfiSjcU zXOUM(nEw;q(*Kb>@GbmlIy3NK2Cl7aM*Z{JwdDJVc1OG6VUpHT0$mR!QIe+P z+qOmT%p>d3bJ>yhmRL3K+`2km&7b*IXH-iyT@o%bYDb2D!vpp|Sbm`Z1$l>Hmd_`v z-ctBaD*4UkyQ+#GFqCh(`!2B?oyWQPO1@d6bPtmO+g&#n^4^&*6!LpVoICdHmJ9jb ziQaL0zx~hywQt*_o9rW`>Xs9UwBR+n4Cqb;^V1tE&@auNkukn(^u7^LkA{|wPp)CW z(Sx^!A#aVo8th)B@?A{!v0gZ#lJIt6Mv676uYP{2W=e4X>tF{v0R@)F(Ot zl3(N>oFd#L&R9RYF81~cH?S7KQW zjQ4bC1}1fATomj^8V*t5|CXy|x+lM#ow^hlx7gU%SdR29^*&ov;w=g5RNM-=X|aFq zPpq|#o6}1&oG;%XS7{g891n&jZP*b_7A)0-J`BBLl92R%-$?!In(g(8ZZoJ#ViPyV zSlpK$u{2IgzU-fB6gKe-A*@)z{l@kRnF+>D>__zm%OBxKI~EVf6~~t66WxL!3L@dC z2=`{fd@>eX5ng?)pglhz|Ap=5XEXijN{KpASaK64SWZ_NeU0M|AjrSt62`Y)A18m%q?=q+RH<@5YX-W2Kh0 zwu$`B#(jXdYJ}7LXZ^E82+WsoBY3_!vV=)>W_xnw;2JDAxU#be+Do!mQ;9MD!|<~x zit*#zF1eE5E@TVYJaC)(l0yYssZ(c<|K!k)i0;6!JwUb*0zdn$yQ=n980e$)7*L?l zM|M^QvPm!^dGw6g`vTc;6r0L_;OMCXV>+4c3BqSJHwA5S@s9&Z`*VeMthr%*beLLzHDeBwVMe*;SeD~S6lh4Qx#(!F$gEP{W zbZXpnqVAES+scB|!D)gZmHXy2Tso!n+x*?k7A4oym{dkJW?(ZS%>upRpV-8wy7Ep3 zG>1I0Z-I1&o-)&K2fxoh(FiMM5;8k|U2_yPe?{~019`R_hEeG!!2q{*FsVv_x(8-3 zXuZ|G!CG8~m0CJo`y464;78wG!Jd%04lw?#;?GbJ3Me$(YMd;G?jvl4#^>l7vDnPM zp`mx?iz8tKBa%nkQ0+u`#4=W!oWH?_-Lkgi@IZLLmF7z0Ros}ZJ3J6l30}$98oAd} z#6*^bNWI&PqVknYZm@AiLuXDmqyQ#px~S5(4VO{7N{Kr<38?DR>}m0xO7e*e zhbj3+k0bG9ayySw{7m{)J*Sisp3d|Xzq zk4P!35_c5{4U~E~H^0DHvh6_4czhkr592BT6`#e;@Cki|$x~QgB?vvX?ByuMGep`g ze1+Mg&`G2BB5_d_R=C_rq&crzw`xQ`DWOP^rh0k4R7ME~*KyBFj)yIK63fg=V3Mbs7m71$oN1vD|senE`P_ITq8HvVKirpBPCy z(>h!mMl5gp6ss;#mos)h*3;q*>cEWwysc=0fb)VOekk(yn~H} z)tX?9Rx3P9Q{~Ricz)nESjqzTX1y6yK&_=!UZ6gPmRCrSW@Q>SVb=CI8*2GImPo1Q z7eL0dkOcq-neIY-<0{q~Xs+oQXk`2fhZUjJ!&A8}=Qt*KBGDW2gpOqHyBwJDD&s10W(v5?>}jyJln^ z{0hSc)g#*;dvuec+_|>(KTv=%k@+e~uq*e3GyZh9WI4`%rii(c*ivrD6P9GSl6aFl zAC#6U>H*uD3j?cHt!bHY)wEoM81L>vA*{SM3vg z`En8ShLo%a{&n}a#3G&WG&B&XHXPA44lF^0-WUAI;+PPksn^l>BUuRHNs0?0oB%JJ zZ#mcRy1nx^jpw}?mHT`eXQQ+ukrKVxS`9yRWU*{ED?jc!yRE9Hr^BrE<`B|)UAX3y zdS7a}Ya0`;DnB_)-g+V7PU(rfTqxY!du~%2%|q8p^Xn1!-z7bfm+Qs#Iw~`mx4T%O zZ8itAwf9GUhb`FTZ{74m=}G<)3u==Z9}}N2?>|ddJI$C$A5EwUIjb~YbJGUfj<zd=a%t{k1d%{1vM zP#ld`G9WIxqu@9(QPj$w9AhXAMfdZ0c#y(Y)c!i=rVU_ry)bV3zOSUeS5am$*z8Pc zC0G~=n0i&BBv}Sw#NPhB{qo_T|A^*P$ZOym<*xfU`@)e-ChAYwHHb4*@Pou|Pok-P z1@0bO9^LZ_1ztr@c273HWA6YA2tq&=PCj_*FNX@UeytZ)SCS=eybl%{v_A7gg(a14 zT+rLQ_Z&`0>>q8AqZzVW&P=}$?%RnP?h!}PiM1!zG9r0&EqcXIrz;h~oMO|^-#f+3C0bZ&NThRy6_ zWT4$>aNctN3T@y_Tfg@v4=womhlGK{V~1al6K#pPJymBT2g!k6zO=1IrDs?3c{F8E zVDc|OWMn4pbunBj;pRVMW8nYdIYLY3O*pLK+>0ZVBz!Hj+bx14c>a zlb%uwW?@jTMQslQ5{kAy&p#t=brYAxPtbRzExqD4Nh1x13ax0DP)^ZWkIrP;2;3hT z1WXq0xAZ05WXw82qpe}b35a7BetCrm+xa)*c27lW4Le8%7!)^5eWZs?u|_FTZlH>z zbRM;s4wkI7xJtZ;*|zu__b+WX#i42YQv3h0`W;$dlfJ^lW63CFz6z7@JGR?%NO}*L zv#~d=o&Bt?jSmwdwb;Yj>V6+5M+0)t&G#0#HkK{Zoo_oeMD^c{A7k5nnP$1z*Ez;4?WiT}j@&D;~d2{}OC!Fc^Ky~$^8 zENx0LX4;YzrcSd`-*CR!P^oW@FyV%4XYsPa%|bwvUB8-Vh1XZRw6ee&PHu zwBK@ldH#L!r);-SWcllT{yB=@K!CI_#9>T4;Nm$z{%uSdj+e2o6UOol@x+s+N@;Db z)H-g~8$I2gZnkJowJ9`HxoZ;h%NwJyP*n-VUxP&3Xt0mRV6i{ENcV_63Eo5Wftw`e^-}J;8l?j|4$wO2tQUQq&9?45l8G^u8gdRw zY~suH=H3pIzH91mPK`{0I=nQL08f-dPca7N$!GZzw#RXX`S@@uUrKh|Fw^{*gBkKQ zad;^-L=DP4y=BG&gX-uRI8T65ka?LBV@qHT49G#iFF1)Edj8M~2kJn5l{K>aA^tKJ z^}S3W5VGrm*IUQjD^-?=V-uHSP4^`@E)rK*&KGlqJ!GfMTkd zZ@~faOFB4Nc_o1)WLA91Buxzf{?Ls2?~QUnpL+yGUBsZ&#D?W9SD7UL5EG6SCjAO9 zW7W7(0oEgz@IS>#o67x-JM<4G!u-$Wo(rDui{^VR*jI4tnx5BDON)b5$Xkp7Ff3|BknJ;VwO}m$24vk>$y;F=i`(3S=Q|+>8NT}d z+jSi^$LH~VY8!cDoOhp;yO%Jv8AW-i&f`7%`zxOi1>n`t^n zS#vY3OM>^eYzBT`x3N`SWwe2KcM+LuUIyKfqoLmcT{NWTH_T#)Z0n8(cb&W{H>Iyk zU6o-Qv5k;TCc=j?O0hL6+U2&APe>wCB^z&<6B4?(u3SMdLkBTy0&G3bG{*$?k4i4OP*Ka*eSZO%qsU zF%wyA$L4WqHs>jMEB`&=L`zc7y~;)?(dFBn_tago-f=iPIEds;^;~=+@*(vq{ARW7 z&oN;@f}b>eTi$v*94p%DA5lC-!FSqGP*%nN(i(9LLJhkB%XE>%Rs0^b?&2mDrHlLu za0crKSp`|GMrO^5xoWC1>*ZYoCktA7EWalzH97drcwRv6z1{6ObK6;l`Pxxy$U$F18d<1&ZTH(h;ty9x5XKaq_z0d!9p|JK9Qu%P} zxrb_B>%VXJLOD1U2foVzpGn<;1}!*;bF}t#lfAh4PcQ_<9TXju?s4ccKm;z*838%6V z8P4}DqF#8f!XD{eZN05)!u3nutWaVJM2%zE++SwEo+mc7g^^a>sB0VKceO^wL3UlM z`N)y(faV*wwWjCI{yAG(7lv+H_C-C|0lp6;5*g}o!hGo?=8P|-Lir;F!OHUQBSU@q zKoWlmhn{7)%FQ8%A6RW;wo*N-U1uyQHI7#(E53N&?PTNlw2>q<{LpP!4(Lre+7lSG zogr!?67f={z7X4_4OFl&q9$Ay$HS31uS?8;>x@#?VnZPq+$wb#zwYSgLE`& zR2bmaefH797?e*AELh~;=wkQ}xI=tund%>MhbkdoPS1D_+bW;uTC=%ZP|PZbfJFEK zrvIW(Z|Tt~rzq3prwXk``77(uEb&`PJq57@n?QaKECelts7Np+a!|#%e*8w-ez4ln z1i=B5E)jVg=Ov(pDR6EmXY)uiVal9j&QVwOh80@equS{T`5@tUv&XI9-OLz_v5}j# zkQv_YIj?j#u}^P$Tf_HY7nkkXbeaN&2irH_!|}goFTCRpKHpwSgSAGs-teWqaqC~m zIM_a?#pcsW{dVgNb4dKI<;eVB(b>k`PkSC$C~=OGRi^F=SFX3lRd9v)d{t81A!m@V zArZ#_gO;m9Pr&ZZ`myJ z%2OBXN?T;ch>*%%n=kLgElgPJiQ3M2&Dc0BRdukM(y651>)O`briHQsp%oWqYi|A{ zLcwzzm6^*km$$BMT}!M6ge*X7-vaXF`%7?A@~<>G4Kb?(WZ1S8X^+>H-ISOs=JJcg zyX`CK_F^6P4TaYCnCnuEgW(Lg?^=a>X;p(d&hK%z$virl5Lt~~ZFcKTgbR5eK4eL> z{qnlZr=GWNCj58se8j+rr9Ci0V2=F8dz=Z1kErV49K1k9d!SIr-5*HI^K&s(;tZVh=YF3@z?vp0LqWN7;(`@9;naI>5t4d zhuFWwuQ3#G`s%vG^cTKoog!O`q)kP5#Ob0l-SgM|i|n(cdlYuqFK_QjRf;M_Wrm|b zf9hey;q#3)@ABhj>@LnG#DQb%roM-qYckQ2Nxs)7!&=Sh4V2&aiZ|4qVY8Z7TZ*6;WkriNff;I`yuP$*a~8Y!7eWCaa?n_Zs&1m!*F9o1L9 ziQBa~RhzmpHC>*gWVHN-)W@QsLhnt9*;EM2JTpk9!VFgTfGGo=qRzUZ9VYQDAuhqh zjyuwEv(}B{?!u-5$!V!E#~!JqLS}Y#N1-!C!r8}c3c1$_4XK-1+H#wHt~%4IaDkDj ztm-UnNm;{$(4NAZAK&0M!vLzoi#vcx|)i^#9x4NYgq?#Axh zDvS!%3zuG)ynokE0k?;SJv@E-e7W%C{VoO7`5$paolPRGfyk3>`Tu z0Dbok*9J%d*>wkhumWR)`uE_1{-bQkJXcOce{Z3SYYJOi@ui4cR4la+Cbr2cJa*^l%L~EDk+gCLSDl_YewM z0h3O|=tQcwGAD;=XA|yacI10XwM5ODzAT+BB~2{*|2X>+xTx-PZEf0Oa&HSJZN=QC zpzRG1M;2`&Y6EC)1I8wx<_0vkg#ivQ6=rZ|a3Ebc`#gD<*9< zXbeRYyzk@FI4I^-@ zo51kt01f`SZm$8o5Ab&DcAz*67Db+P6#pFn^Q-G7>!(SdFEA{% zDZ2xo7SlQlZ&xVkY>$YaplPu4o(m|%u1UUH1P>iJr1gWx*!4`L_J^2Ts5oFQ>W)O* z`3@_%KPEMGiZ~ZCaB}D9!H&yf8+lsj|LjnMy;N2q(v86(2)>YoyA1R|u(h ztoN(rnEXsI@_aVJCfKQ=7H{eyYE`VEYN@2ci?8iI(m}+qn>_!-zz_H4lE;Wy!<{k2Ts^KHavyvnWAHY{bgt5LobOEU{15E< zp`$D5=ql`-ZVBuBMRQo|WY>fAc+2bTM9ZB2$BirH&LBJjUbLMN!N_ae#f%Rwc8{KuQTQc6{rU5?hYCSQ{dv# zKqaf!U`Fs)LT~qS`f__Jem@9cM^?%+1n4Oer!CIM=BqoGuj4Y*rNufaxulG_#r*ek z?DI!v=wJ6se8BdV#Qq*8_t2cMcxaBk)gRs;&V=_T^v80~RC3$+kDgmoWf|#f>z-l5 zEPu4Dpyw=qtzt9qjk(rUlv{1hv}Q6cA-84>I&{yvAFI;{nVz3(hMGNB59c2KC7(dB zD5jYILR}*NdG8Y=m$@DM3T{JV!pXab(udMJd>uY=-`>;SGnC#o)Ar_;UU6uXVVcaN zGUN1lT(ol#O(<7}$|zxRYe2_&Ub>B6$Zv!# zmPsTnVN8WHPhk8l4MCAGZ9zo3h;@5q)J#hL=3adnl(RaZ-#iRN!f*RP9<^qvq*;>fAuB9PE3dbPnig#sEwiV|eo+&s~g zrc1aznVH{X9%&d1jyyiaJQ~!)DiS6jUz||lPE4q)L~5Quz<~r}#U*RY(Yz}!U5m=4 z?!3A*VO=i&7WRlc6p|j1F=Q&852~4q7~h|dYkS}N7?2oqPJTtrjyRQbl}XKhS&AWQ z0Z=NjN0w2(MPE`r)!_zQg6R!@kh1R4Q?_Uagz>IY4bd3xbBv%}e-9bnQ&%e3J|`9u zwhC1!+}LjWvWAf7nQ{;|FVOmyCoNyZ0ObrbjeKo3FkjlfoO!zl{TE}2+81rKgb5P6 zL6FGX=l8QE<|XX`wZRgB+z^gY1L-YaPTTzpCFWk!fy%bELXnDzQ=Zc<0Y)(x+9#l) z^(@5eKDGRYd#ylE*(c1G)pARU>FnE5O4&_H1{AFE%Y=rSKVd?(=i_higIGaDzeC2UJgrQJFd!T<>V$A&gA2ZUNUwh2vSNxR_|t5fI)9)& zpOV1j)f5gq)NnP+!h0OK;qVGl%B7_f0eHbN-Dpj~TpseQu4X-d@gc^y_A9?Q~- zH-M`$?OMozEb^z~FZKUk>(6_)l@5GjOU3@jYH7@*5qiZX`o=$7zpnOYA(uCv%EF&O zhgj0&&mlu&+{)qH;W$Dvg-*lzjfv~lKa82N6PHhne@}d2oeI8h)6ays#@Ey@@C&-r zMJF>+i`^6I(VR&sF&fJaXVScWg(>m)`i)PklTP>_ds5mU=mgDemV|eUG8LA%F(&C@ z$hEBCze(tH=XU4UXN1&RqSgsfwiU+a0FjlD8KoxPXdNUA1B!{c->0L^1HtP$%-Whk z>HX&^?*{LN6Yp?sXP!8Bl;G8j?{HL|L_U}lcG<8W?bF_Y`9cm#s008#o#hI{{0jcD za5=!A3`fmumM~E$s2jl^)9(j`raOZ&oQW2<(~;X%;#~92kqMdq(lm$a#U$zuRs!Gc zn^JZDqPyhW4?d`9tsFFC=b!|~f9Ml#fl~4F z5$u0z$kZU)a?P5!q46iP&MhP8k`Z->5)5Uw7q*NW<6pWimzNc2Vi1N`uvH%veu|^3 z7>LdVw;YlsQz&PcOK5}uX<~B#93yaG&JFvOkO>o!a?%dngGJd?DU*x_1F*GgSfQsZ z4M68RRK649c}_f*_x^p9`%Jw<@KiSTF-a%P^Vej@$xo43i2(jiu&2yD$vzP(d=&9h zF%CQ}rS9SGh@aZRxq$F7yAn9uJ}#Y^6CCj`ST({9OR6Q6aamGCp~7JI2x&P_es3-4 z-gu|@`)|@)=qWN}p?8;a`bemX;D+SSKl-i*F5UtwhKN2f|-Nfj=WQ05ymHzFNjbAs5N zd8?`}tF*4q5#~-;jB9hl%{)!WMI@R2S#L>^p@}le_V_xe+id;J z1nv>iCJ|%gx=V}!hS~rE_#iSwQc68dr2BzZ(&_~Ihqg({CAk1O&3ICUTOJhTD9Qbu z9Xm?Y`#b%vd41?!6A`t;L<^ao{RT(>sHnV{T*@uMS0LaOq3GyUw|+Um`CCG-p89(o2xPUfz<$+}6K z%jP2YP+Az4XA|GwZZ0R+uhnv3inyek3P;+$#6-8(MBt+dJU5znApO8rbDQlbVU;nbvHg^zOgh z4y>|$L;Hrhfw}<{H9qlJjqku{AS&>6NHqoAc|<*iDkKOcd(l3rgSv0f*kT;@LCfi5 zl1c*C3yXhAT)KZS=$3D_wp5GLDR&fBr*#q`e<*|@1Jl1@aFh8gp z0kgM_(jT}b<&x?o~?ZW1o`^@*rE2Y|`AD|Cvv_Ny^STcs+?AMQj zuGwp;4Cc7DEdcZSmL4YyL;>enM_iYVrz>uM@U;`~R~V1F)uo4r4-cN5IeYo=t;3&s z(;Ca=<;X{hY%#>-s~R(l;5Immoq3xEj2UBy04 zd^VTNj^Dwm{wL_O?}!9~+X0>y(HOx`0E800`ysBH=valdDr8Y_fU|344uh$@1SQo1 zvydXbs+*SkNa-O2h8-jL3z=7!QGc=yAi&KQk zs1jC$3=O{(-iu1UjN7|6G0t-9#BJ~0m5B!{=?g zv`L(z4<*pYX|?Bb|L}o7=NTZA%XG7}&;h1KM>=_PKxV9OsGHKcO7y{b{MvhfRlcO^ zNN%Wgk~0--8+|dOh8H9J&OqM(fD$Gxm=s~EfnIdBjD|^yNW4$jVx03@3~G7 zp*xTARoaam21boH@;Pqa|0lUM@SeK7R!7WUtlWogvFJnox^l~e*UT&p#6PJnXa1EQ z239W{-DZxmUj#$tB2h0%**TPBo3gXDcXw_exqv0La|3(16V`v#K^+Y&zx;_BHKK~*eh${4sXO-DCPWA>;qp)r9?KVFS7mE-qw zuc}5j5!p&6Pg_)BaOWM}Q2=6S1zC<#*8$}honm}g=m;^;b+lG9I&!pDj)G&jO^bIY zmZ%Nwn|8o5NnHRw;JWJD4WxDn$jCg5E`8?kQXRbgBr!?prZxQ~)tI!{8-!YuS{uhxX zbd(f+bRey`ea0L08T&fTl1Jo43D2DIs)N(}_GLlp^)2{EabH=?80vLk~MK*hG1W5t=r=}(BFMHzHe&&9H3PT<&n`wHQsiq%t z54(ryCi_CG$r0XaB7GsO2C2VaOI5Z;pyD5S$E5KFNdBtry00}yuR-Qk!9+9Yc{k7QXa*4T|y|W-(i2-u0nUu6~<3ym8R zW$klOmvXzN4T+v7emiDe(w&;N{O?rHNm(m=ox7$~6rsA-M(SFkwG=X8Cp&H#2r|;c zY;D20N7uiZC?*gbN1e{MBq9FY2>})}2?5dESt)b%Ixg{c;NvJc@JV_63L^2iUHl?5 ziio#d$%7rE1(q>`imAxgn;AM5s)S=HB5*g;P3y-&o}Vp3O;i=%lF}sUCXw(&D8sHN zAj#ARc1EeUgj~>d1f6R&{PjXf6@lz9iGku+%}g0}A3Cqto+A|s6N~CiNq4x%xhSo; zUGLo$f7Mwlr^XaD{gQY;U}HYgdrF!w@D4SH`{sOewB(zs$*swC_qYR(_~u-bu0M9< z3g^kvv--9`I+xB4n{|zCY{0bxMPr4z98*K@>C6)bTcET)Ov9$alC5q0WCGFKVKmSv zfnfO+$NTDhZp1V1m~qT7la9A)@+<3yx|0?Df(=XikSAhYjKP{Ge)l6oU{ynS)0|@5 zoE`7vPf1DB9Nr8TA};CrSa(FBHJnL>B`cRS65Kg+E=a8d?DhOAMq*-^n8u@eZjKx< z(M?JAJT0qZGMP-rE6vu{E6yc^Bl>L%Itk3ncU=>Q*^dbqN~q`ve6O#!GH$wgsyQ0i zDIo(kX+3ZjY*K@R?53GE{UG9eThoJ;Kv-T+!0J8zNju@Bi*7aw*Gu@fU#3wD& zy%!oXwVm|S{$>7rL-W%5UVEZEt!X+O-taTO59ZZq`(nB3o}7abfV`Ug==So`^EWcEkI=-e zBl)~@L>>V#Y+!YY_gNR#3%b-KnL;u5Os#7$eDGgt3z_9*$HG{1Fy%2voOB(_Jhp9g zHk9(5Tp*s*`~x}VG3N>iLY$FELmhe%H^z1J4@eF>rj^nyW0tYeCxt(arV0zAsr&|h zLrMcyN2-nHj$^AjDvfHx-p*LxY*Si3)p>y+q4bsR=$iAC-hS8)%!zE3< zcAuXn^a*ilV4h2)m}EnV5Aq=WN8GQ;6RDl!`NMP&LnES}(4}~g%ozzf|FC~B=qGKl zwv|>)tB-^+y*yy7)ky?xU}wxvI(GOLxi6@Vbe=U)>Z@?JAKwQC=)v!srw%>UGo!K% z*ao=b!!u2>&Y$UQBcAsmfY@Zjw04&Vl!~&{wI$9=ew2V^2{+3cmAt!o0xiFQMW4~a9IiEh|l_)@x{+duJcb4s9NYzl5&*7 z{L-99w`|7gNz@FTShPT&XGG=(6HgLfx<$MQ33YK2_BtX@ zln{whLnf{g1&w*|h7FD$j3mPxJ?xyL$I~W^31lSI${15qn++HB;HYOU%x|K$L zAY@z&k2lKtJdr47Z}Ar!GYfB`@mOeyHQX>V6^<{GXd(h4MUh6X3xs4K5-(GtyU_OI z(u!hRHKCb@439AAfonQUSW4j08(O1I^c!sd8BdzjU<&r7pkfP%c|U{v`tW-G zht6q!%&~&=VqiChz#0XFG*ZkJGwB@880#cF4Q!XDOoMDv_>w*(5MbNq4d{eqJ$+tg zggdTiv@$$7SI#5>>12+E{sKoHi1XNG#=MPKie0YG40gMD&{_+25+s@{oaI&5^z^8A z32#<@!kMWnw>_!QV7N`wK)j|tgqJa>ZdQmTYB5%+o*D@Ie{Th%oiwh@_tf7)(k`4g z57(wyHgU7s+Nr(35@zepx8xP;TS~4GF#zcu+Yc2N4!Y#J%i4n0S(Yrs$}9B8dP=R| zDQKP0*jlW40gd?-(_2yMzo>k7YgEgBTW0N5*b6qy{j?nVcxtWZFSNN(Q|JwN8 z3hRyNAGGf1ZPd*nQultK%kS9d0h0qr`Wj0vBq=sNENR$(tD`NhE<+IA_Z#dHK96D|s3Y$mylUN2k*pi0=5F^7}5ocbcqZ(UbT?>_eRhL=I= z1n;vxlQI?zrOVvP4cm&)0*LE`$0;kvx(ce`=(3?oC1Fxx;dQ-7gh{Z zw0bnggT}5?bh)sFm85ji5p3X(Ra#!LJQe>7TQt0^M7!tDzQ}fH54AVCF|647;wKua zw9v4r>ncYF176SUfd|$dh&pgT=MF`@1EMn9D*F>_7{J<9TawmnSr>FD#IbB45%8z< zv(J8?9yfoPzD&Qw_}HaPDti9YbPm%`k3ai;CKX?Q5nnga4-r6$Zn9(_ku16+k~AO< zq->-8mR0r%tYC9}dhYe(e@Gbdop^xMPW4MrD)=XKo-j`sm+JW!M)}`kG^|DBF4xlegASoRokqbX2|35-|7^lfcUTkJG1%L&2)}r$F75aYFV2$lhhb`=q5S+eHKO zM+Gf|2<5S0B;*(Q)8=^Q6VwhnNciUeGybaFhj`7q3;H6Mim~5qpf$`bInW^3aM>i_ zz@5X8{e@X}XzC^aDwq1)TBBFOYydK2jnPjVJpteI;xvW=M+jtc$80W9HaywP>Xc1< zRh2E$7SJ`CTfgs(7M>*%f^4ev4Q1p+!;CmiZN5>|kmH!-?j<}rt%@DO%EQx0F__50 zYgKiNWCTTgP{C!vtl>$B>kI@(cbclOEJ5EIK{x;u_dNGNGku^^Tbw|`0iCA&5Z4N^ z;N~TQTUVgrIzR;;YOXG=YPLHkL&gm_(P@xJpqyh)c@Rx_rl2a!Kw01aESk*dh>)DO)Au-<+7)VuP2debk9r?m2m=guO&^RCPWdOWe~9CH`~fU@z*rH6T@}*v}EU*I?Vf zGaGxmP&21-~{u4e)y(^0@C?uanK z=9O*Y?n7VH_HWxQ&+>Vr=dDP*Wi8|zs%x^|0<*R1U00;_isCG}{lwAMj>FA5BXnA~ z%MI!5@=Y={;Ta4T3m&N@#v}Q@NQwpS7IY_)gT(@6aJ-#m*+p%ZN_Hwj7lFC<^t#-- zT=2v*CDJU^T@!|^dmMF|QVqsUis*xMG+=ti6ZO^g)l^5IewoTThGl8h)^lZS-ia-q zLEY_zg@InjX)Ne{&U+m*EP5sun1Oo`N6t`e@ zrj*Yzax>l>^IaOHV0SJWVhAA%=F~gB>FKdwB}SsB{faQ`yMiKFIN!RIDzxWVGP(!) ze2RVN&Xh;U{|6nO#;{#^$)P}zK?AZC z<~=kI(jaq!KO<$@us}g}M1gGBL?$-00SK#%a1AfHQ<4Zvh27VR*~79E76V+al#NOn z-AZDB`0tCwW*>eWk?$pF^OZ{9G7w28xr$F^!AV389${n#i*$N)DR|XRw|H zltWZwRScvtWJjm6REDAzTpML6FQlyUDm!byx)0er@c5VYh*t%rTyjuGm!ZojvenH1 zbu&IqoK`AT0I8vQ9tWl!9Dul=+4PLM)Dh!|AqWZgvB6lgs4aFxVrm?;U&YvA-0vpk z6)Bdrzz+8igKM6Tb1yLU}$&DBuRUeGStF#!VWf+&F(PmqzVZmsT)Yd`{P5i>E5Y zA!>iF`CGAa+9_n{49(M!!(ENmMFGUg4-TT(&aY@U$I&l?oToWBpuCynl2tMU;ko!< zbi{PtO@Wk1S+`+tQkr#FPcoSm6EgT5wN^>}xgRJ_p#7!}J5J|{`kpAY(*U(0Y(JDj zkD9a8{jqGC`;v7pbAcIAE|ktp&*j=l#n{Zy5wvW>8sBxiW?kax5-*^mb~w7s8mZHc zEU|uyDPrB)d}?huDo1)^poom5q7F|X#P>32`*6#UDNWazPkb^Msr3!Ai=G*NOWm7% zls{K_Gn)1ZPoVNE7P7djwb9)1_)DyXb{D7(-pKlYZ z8R>4ai@hH1O~hxIwT--WgvG?fva|U;P)GpN%W&{7k_CzDnl&H7J7MN)IJz;$w!weX zUn%PzRZCxPI6@~E9l`jL-JM_6m+Oxr)|bnL_vQBGlD+mEE*Sn7wsp3M)=PlUo{&b` zrU~8BKt_^S6TAQD<)bg18bEP+41_gRN8|8Qz;JJ(El^Oh_QVSBsgNr_u~Dxv*!MZ< z+9&J2=D*u>y-m0`&qTaK+mDnK#x@p zn0z++ddZKewK2w526h_S)!Vc!*w~)4B`{wW@Vll;t5OG22Yg+_UBe(EOVU*YP3TN1 z)eGXryYP57@#$2N4;(%nLqd8?4HzKc#3XLIO&-=@jqA2hj0(n{r*x~B2NGmFc~$(c z)K&Qa>Pc;bwV9NGIRP>-G`3_i@C~D&0g6V}BT&M26B_4K5#fRVStme98f{M|i;mQa zTes5_x>Aw|ze(Z)#y=EYn0oZa-qR^7prDq>eG_~SAOKYsEZ*JAjD!YuIJ1tfte`)! zj>0E`6dp`LOr(2h8!?aSiiFq7%!}Gtz#x>RQX^ccQgRlGe;v`PSZV;r7_|$wVS>zj zMQseF-9lbzAs4ZqdJ9`){CXi!SivW2jH{kk)Ynzk9l8q3`(&b)5|T)fCC6Wl=ZYds zCF2QPYj75ZJ>|3#x&(=YSW;tMYEBbQu`wyTNq_5M$k5|GDq1KZ_}Y0 zzSlPUlHwLHnDD$t+w`Kn+LkE^{$%lBL#C~(WwC9da84U~=h%(ve5<*wz0OOPU+3GF z7@J?G3hMGaIW7O@*g?~tmz}+`%uKtxbEv$gT=_ZASdlnRVxb5jZ(UjQ^|~y*Wqy~= zeUM~osI#5x`BQvELk39y8v3aHWhJC=F3Yv;*8Li*zVk=y5DIqyhx?_fz{>793=&7yQd*iTQiDZ!9yh7PBdY{ngJ-zn9iqNT4 z_muSSvBK_Vy8Gv~#oYtly)Dt@J)azp;ljD_)hV(9mF{>d>BC6J38?{K?=yO<=a@H; zRX0V-Ih$Wx&0kWv2gUsz8Ri$Uv>J6hgc{@G`62+c^0n?C`HW;&IR~Bu84e{1rGX`P z3h{T9j7>(^tA*!+dE*whd*@)>Hn|HaBt3>EWZzQ>%sB6YdsdbJg_(b{rMsj~Wj`uS z6{+>7zfXo;^%`%6i85!LTyr9+jO!7CWQ{trRL#wCZ%>!@CCcGVnvt%pqbrR>M0?~) zelh<)MM^P-hL6xE>_!A*HMo%#f^o0Mn0<2VB3dhW08&Sx?-jQs9N^SgwmE8jM10U1 zBc@to$Xr&6>2xwx|4eWw=xrjG?VMswE`$|vRLB)_NoiSsW3fz>8zbi#7CCU9!ScFKWLckj z)nQXreOkkbf`*|@oU86)-9?vtYrRU0JQjR)7x6MkdA+ypSk9(xh4tUqhA)s_&HD-T ze}jKyaZ_{^*3FsmHf#egT7)iSKur56-$%Sqzx0M;sZO6jI{d);sQT(4=92d zH3RI$8Z?yl$`mqWqcu*aWpo*EHSg8ottLV|J^YGcOrt$~<-qF*4}Ir`V%Qm^t>fs) zSp$XFPDF)vpvd6v^@{{-^p9B_P>(LV;;HAy|M*61A;=dcz;T;+mn4Vd#~p>0TQZzoi_ zvFJAlcLRQeG)0G&s4%BNi5ux0&+ZB>!NdzUA2_eN393B7&N?Hw#!wx=k5{q!hLvdS z=ufR-$3>~`VVf?b1q6IUhc2=+6SYvvca#`*yX}JR%Rls8;^OK5`3E@bGbCJ+Suu-G z6ABa}07d5Kv3f{m`@ToWs}L10yrHFEC)J5OqcaQIC%Xe1(3w>R{;L?~OT-4hTrM|d zu87S54n{;H3puO+O9Oi={#9<7l*-J8Ag&Sf-AcEIty2&#@s7A{e7w1hu)(Yes5B;5 zr|@q1Ltg;v)nJZ>8#h0}pVW|O%1j{REu+j|OOX4$8&yP9lS#Ea2tg}t;aleO++`-0 zLHD!F(aTg;6j_I?C1TVYI_r=a%S1Tb6-FN2BUp*WrwFtXcA57frL9hHDOJ1sP!|V{ zopV;xgYxz4bU9t*WU)T3F*q}j4A?Xmw0#=# zvRxw(4Y|HOhI@d!z|o#z@&Z<;ljQuKMk`F6P}<&4Bt)$?6sn{A3AVS|gotKFnNo=sylf-dr-xZ#!AhTPk`6NlN{cK|4*(op9wd(fLc@^dTVTxhSe0X(AW)bbj7C0f%{pYh8$M=j(0}($lg+O;Mn;8^S#Z=BErs$5mWS%G!t}=tJWd!kKOT-7( z!9Ct@p+jv0QFLAA^JyKov-8T zu?+k$-MNiS(rzg_SHir?{M1}8Q$rsGpZyQpAlUkMX8&IOiux6FGpO5hwyT~wvZXg= zD`hylWZ(*gOZ+{4;$upmkCG~4aCb??=s0Gob@Ue9f@gQlmZ1{w3eQymAU9_^wwf?Y zxb2i)uhXvuET^S5do^-uTgojlk^Pi(dogvkGEnUC5epQ{mhV_fphyz$gp+N*C6oM2 zwUlt+FM9j7wI$Z%wYF8V678>~E6rE*Eqf7HWj8GL1!o1V<3%rpD)WOhidM_pNEGcm z9b4N1ZJ1U8M$^`(HuTS73u7*u!)Lb}h=d4M3jgA;j=4Dcm9u&>`pM`{gh`#G?dn!r zHXU5DmIznSZdNi!ak3#tb?76F7W;Aw>?Qrnk&la?+P;cST-?^GIq4E{{-x@2KwpZBmsQ*4 zjY;`*Y!O}gcXh}dP)&8A{MXGx+Et#@C?$iCRhZ8JCUB#ONhDK%RN=G%-WgJh`YO6t z<`BKB!_*#RP*w&j4L5Q0vYalp3Cf1oNxI2op?8KsD>@7K8b6{d;#a=(Az=9%hClNe zc<-4X-)^};MI@5zzz_)-OL#{~dqgyg99jCVE*1AP2Ea36@!bD)E<}c&VhKIb+Q6=5 z9ts8zCUB=e@>?Z(u+r`Rh$Sn2FJI5RhW5@0!)NY+E*(qF*Fev*nyp`xUPsc*9zOkTwEw|i2 z-!xgPmGcJLgf&7HDD^}14(2@#>Dx0SNJ*U~fVIsZBZbapcGx*zH&yE9nlkj1d8)uX zg=KkyNieZGVZT}P9DSuR8G2K#SCn>)e z#Nce_;M*H(KuI*di!|O5YpRc+ir6dOn;na#lrwgFXlAwM75G;{Bd?v>(0{RldyIhe z4H=@j{vm@qt+k7!p!@?NDk`bS2x0NypzGIa787}7EY6v>e&hP&bsHXLF1x-J+`VAF z>)R^v#-F~4I!|?_c}aBA=2xrA+XCkDokxa*lWH!Uzv>?%vkk<8 zQ>F6c9Og=^S|Tdq^Qna5-C27}G*7SFRk=mFC2kOtf;_|4c7D9DFFEe_Nr^G*$s&f} z=$wq@pH2Ro;kn61Ah4DBys6=0!+C2$$b<)2x5cEyKJK!uID_go*Cd*tcv_!u?1lPI zH7D+?e@4|leJZU`M`SK&nz`wV@z{>NsH*3oxl_)qGWFj)Wai5cr4kr`+=Yc!@Z(|~gZ3#bhds2!X3*(-{j_G__r0gcZZ|25^=mD&NND?WotUq1CYU@! zJvX~v5$A)Vq1H)dJ0*Cmmo2-5Q*Y_?!fN#qcga|eWpJP!dLZ6qTEQoc^H7s3Em})e z4(4gqr{}BqN5piJ0HaE!RHNrjRBg%V@|wl%{sPR+S?D9bhZ`zzWnf6SvM#aqM*Thf zEaZFlX=>y#aL&by8lg>w*aDu|C$w(QuxLRo*K_l#R@Hhn(zrq&fG zphpU;Afl@YtaPSJnPkB0(ily3z1DT%&$^D-rmW$m){)XG|4X)B@2Q5Y?t?0tfc`yw z-J?{)PNmFuW}Dbq$1}BY+$cmch-!)kXD%d$D5NReLc+9R(Uncy`GyaS6;- zyQD5vrn4>E%10-B%XOr!jD56D@e{~I8e4m%aW?-5EhO%%bCsV zh$*v!MTtt7B3}8kD)x}J4_4*5SSfn}BY>nT<}cfO;jrULmB5&o{ZBj1F$Q-sC=1S5XATBXA#&ujx@?|pMjiS^ zH|aR?w08_!)fPlNlOQ>7F)Kd%H#l!895?5!&1N9Wkfobsbixma->_aHcq3tfH@KVf z^u~s}8&@rWk0Ha)wo8OyL8hPzf?3Y|3L<+{H7#qQ zKw-tXTSrH7SIGEHF>q@3opM)}cM+WlGJDZ7rClrB!yl~kDL;PX*CD*MG9$_UnMN%xyg`*d7{an`wtTcR$NiwY^rN<);PX>agaYtv{iLCfMQJ5}G# zo^n3{@9K#=m?pl$Y+tkH_M%|8XX}sD_VdMBbaxinS4z}16DD0_cF4Gx#_V8a+L+sz zOVS?xSDS2U(nHSOsKA1T3M`wHafGOVQ@kaNvPU1J!FAn_{D|M@%yeclR|C1$VS}+L zk=~(dUsfo3bt8S^Ek5e@jCzlFi`yzkZ#)UPVk*iD>yo8^0jsD&h%AyvslwSWGYt~j zo4&UQ+Bo)KlGSPAtEHfEmqSNVwP0%c*Mm98Euq&^C{*TG$tnIAbFREI15(OlsSjxu zD#i|rE9k-4+-U#Xm*U9am(2ZgoY`%i5X-y14<+CM#Xu$-Xh9LFnDrbPzbLHQbaE;B z!b7qB^GCBzxXCmf8`IF%KY?{nc|B$ipo}78Lle#EyQftj^#@9s-6;CFP4smArhMmU zZ3K0wTKUvs3rcm!RfdugMYM5>5Xr*8I5!HP%4M9nr+|r2F*}a-9l4}2j^!{Kp}`)h zl=9wOZ!WvI_Ye@ck>Mk$#MmCT=g4=4MZy;1mW{ZXw6fD9n&Wr7{bl7Ru8c*4RWugq zlsrM>W;_!1Zzla_9r+6Rq&I?KTID8`y_fB#P#w<_QkGs$P#e&HA(0Li6x>>X9r z>>0Un=6OV*0;4rR_hH(Vj-|>x=P}ULb8Fz1F*F&jc=G?Nh&y^B#F=YInawPd5p#g$ z%y$!*Oa@Baq^m*H6^o-|nF?lS(4`|T+{xen8P_+SJ9lR^f`2$pbyEi+7)t!zXB`c{ zYF84e4+xRQ`~!^vT|0sw6O8H(qQG9p@t(hu;`le~xmTUtbjN8OhhiIFgo zW+c2$ai99L)Pc|nY_Xb)!EqH5zzyWt#0?}!L7sB~LzXqW(R?9#Oh|CV_vIoVLu@*& zXYTLk-PzlohMz;Wzx!!6Pp+`o-@zXjvM-|9HiDTAbjP__NMHkUvm}CwK^!`EMe$kw ze4~zxHFJ^;oG~%cQ&Og3r{J7z7f?~yW4S5wu);OBwQ(D4Nb7|TqD3b=gFjVh_1G*S z?lXHVv!$hNYB~Cmi<*t`_aKIXC4okaH$qAlhst#hjKyAa^cIvLV4jjYNX`#zZKXk8 zOMRG9ys~*%48bm!V@chtP74~aXGsCA_U52^4TwL?SE5gg6$5^H?CbX2QjA1SA~Ood z7uZNR_XJOIFM6VHQbzs;;q$2TYnFP|&2K9m2--txDlSHPu;wkRgSO70=dRI;S!%35 z($iDcNN8(5*T72Ujo87!hbv8-fiPX|hLEwvwV**H)~={sK|CM#Ui_=g)yr~rPt?rGA^3vWcM@IbBHaAnn zAEhsImA*te5K5b%nyu5;zE-!cyh884f+gbt-Hp=H3i=i4K1-@SN-?g@jv5lAKi9AA z8|)i^YoyvnsMd#U%iv4|qvdV_Rb!&$i+ajfq1Seg*5&v&^IPaG1d~?zDGbHmCVikD z4GS4xY!0Ibu`FOgS|Dd>?Srx>O_k!eIhS>=E}%N29fMWnqd&7;53FoSM(^uo&wsZh zdhdoFQIKI-XHt;o?uV)NkGk{N9M4`kvT<3R-_%pkE^FU?cto!&Z&=2ZH~wdjNih;m zM)&ql9Ql$p-I1UeJLX8R`L`9;B{+}^AR%(~exDk;al&>g>qOPU>1&K}oy zbxKS9_5)BQSg;;NOTb;OG1BkLAU;%!Wd@2P@5ttcjIrmLG`+rV5NTljc!9bmjvb+s zJHD+htB>aP>FK`0Lp@3c(XC+y2a=8!4g5$ayxSPoxI~@>MM~M~YxVY;i?}P$@#>MS zo2ndIt`RG}`Xg=3v<7oS!^~jaM2V1L{~ZGelKp^CQ_Sc6Ul!g~bzB=kgs9pqWDD7B z@tBE?u>K5#pSCIAI92IeEVRX1Vxj*=m5;n=pb$yL{Lx(`k25yC66#bUp!Fs@YbYUb zV6kSPeo`@Zrhalbt=?5HSM_7J087;9AjOrg7(2$NH{GARIhQ2vIS)9;fmoq0qPKq5#rh3lK0inJ2cD_%(ClurUFUdfJhzQ z!K-K@F_Qc@5+koNQ))15s>lxS5af!XY)s*DS$g&ZWwiuhv_eTXSyx1l@NW69Bzm_& zmWIMJ;7+pT(qk&Ik4u5KV&4E=)f_LZA*HS(F2(T^dC^g(eb_$uSg-)_ z|9(q;&3QFkw(1Jd!ssOar)&gN!zXPkWLBZ?agCI$>}$S;j((B6ofT{r%MI#d;16#x z8=IC;<-Q&Detuz^UuX@prE&wd)NL3guU{;6{;uI(gLAbnt%$9pYx60i$-f-eNSXm_ zJ~|V1w?)t9`i3rx<(DH-oMlc|ZaQ|76_e&Vxv$ ztgorMMoXYQuC-NSCl+-$Qrc?XY-7!Fw&ifJWJ->UscY*>EvQ+nk2snSrWNOQs)eZA zQ&ic~t$r7Igx@;ZZ)?k;WAj~DmRB=U(^J#ly;6vjQ|szu!@e|i>B$lJ%DOc6#S#F< zo`~An(b-|749H7;al^yIgOA&DRmw~8W}ZqKU4E)Xl0s9h*hLQ<0WGys>6}%vN~F{B zu1<<}PNAra>xtGHP+@hfZXFS}DD#tE_on^?Y+zBi$d=i`%zjhRCeBu@r93#h@y_*ePYPW;T!n5~?Az3IJMN_v;JM!0s=A467E=kHxv zsOxnPz9T15d|vyG@^U(H^qZlq0E^Ftj?U*>mKBr)-aF|pw19}RiMC?vAvQ-9H{HuG zl|EMTsdKp`HjHksqKxrZxxAKT&Rl2isT`|KHEoaV+eoMB`0}9N$3%`ib>PgS*jVPU zMp3mpm}koN>UQyw4CA=t~Vsv5V5HI76%&CmJA#b@osLNyfTs-;i4pLZ`asonSS zm-$QdV#PqT{=|zFT!Y&}#zY*;YF}3u#)mG5EryZ7`U#-=syn`n+I+)!qM1!J930dX9mcdl{ni38&)~~2#}R&rGY`S9 zZq?XT|+FzEEOyc6$pxzjm=y;Nk;I15yI-ls<+1ep*rb`{0(IU^&*L+&_o*K$v z2j6bW;}#8KR%zkkWyNRP2vsRs33tX4YC5P1@c$f5iT)>2@$v{`ODJq$zJD-?e8B-h zT}scLOZd#v)-NfnWt0*@q=pnQM8uh_;EqmG{Sq||rta6pKOE0}@$XBDJ3&N9z=@%e zg&azO+Z2)lhp67tJA!c%YgE)myis%LTcI<=|Cs-J61Y=T6~Sk~3I8*4bR=WbrKN9z z#BLv)HqbeQTu2qNdk~W8kpc>e0+l9yIaurgs z8RTxD2O*D>JU&@W4i1*{%4;yiL_k>X0O{#?532VvdG7)_YR+Qv!E4n!(+UZq#<`>~ zgB{ZAd<^3!@K|);2NisYrK@%p4Dkv;m~~nClzXMd3Q28)Q5DLolnaKsK~Hl5Y^FAw zbmFoChgnZ%2COC4D8-1T9Qqzj*g}WCN8@^vdrO&Ub$+Rk^2BPaPx0jt>+oQ4eisZzJo z2vGc4SK~K%pP_hy3l8U|_k5MHl%;-q)H7#*c)`!op^=(cs(xM6#^;3h80C-{+sL@3B`8WD?_C zj&#QsbS2{lbOSn4>()!8S|lbb1!dY7Ef>^|aYP3?@6cK)W=KQ5)Bj)n8~U=rARKdy zai-DK!^Lc5*OkMr!;Ygl*pTduUyzWupYgD3%(E_y$!S*2=`DlokEMvym5rC&bX!DGhrcd*B*B+T zOzuEmdHUqW;Xv<3sx?b;8z^?(K5_ERu|1>f=oSOwB}1v5BY})EoxbKG%He7$Q`W1u zSK5|JTeiPNST{s+Rdv&|(VFOKXrDj*x@&+NYKjo{-j+b^-3`ov-Xb%feCF6vP2*Ji zWLMC*6!-S~X7;?m$tcS8la=U(0M}|A1V~Zk- zzh=#uwli(!VL3{N+kr=9oMBp5)<1FPrJCWI;not*RmYS0`igR6Y3E1@6YaZPi*v0u z)2ER!iQdoEo-G3H$Mvj?&I6|mX71fsAX8#42?ay8kJ9effbKA`Ey2(-#nNPJc>Hf< z@i|T1jjHYfbEdF|+rP<{F0cEn4YOqh*L{{^FsfZy_X+LIq}8+3lDpo*Rz-yZnOJUI zExUiZ;BVzxf{hepy&vk7;TL*7G~Ys)XMpUOKIRX>T8GWL4aKp760^7sw_E9Cf~KJ0 zZ`NS(Zz=%`fkH?G7g^Y0RP*NzT6H-Bh=3xEeE{v3a!lG3v&AXF;6p-6g;67AOatih z6zinNHRRf4=9T&K4IvHAHJR_DeX5}5QZk?qZxy0Cuxcxzp zK};F=3-+AgTg){iK*dcD?Jm5>vH-v*>u>7-{B@UDc@0@j!Jl>3e8*(zV{5!4J~?pu&|#-3^9yk6_Wbf@?9|> zM()wLtI$Z*Mm}059PrUZqG_A>NBd5!|Flo4h;|s{5?z=+!qf&fBfo6Tvi1R-DDq9Q z&llpw>)^FkB~+9K$*)|cLVgX<5{>%y&!D|ZbJASv3&bA_;VrjX7PrW!=nEy{xZTY! zKE@>DisQ8)n}0vZALhc%ScpwIdrhR6XfB4X6_l+y)Y#x_ELlsqGOqJ$4-DEfD%6go z<^|F;vuR>GdqC)wjmD@W*VGA%M^^+vVzV z9Zl$;Cj<#4yYR=yu9(T}n7I+`W!m zcd=sZup0$VXn8YP*~CRL7o~IV4G^U+BN-K)m+X95_6kV>gT~-`s$0N$h%50$^Ddz=-*(!r5G7qB*yt{J^&>m2acvhw5^5zNXZY*ke%Jr-B~TXEsY%F`RxfimWhoE~|g3 z{tWwEeW@)2Df{Tl7(g7-HOAVT%XEf@i;A8HTe|i{8l^R8Ml-OMEt53pwDG?ITzPB> zSAwb~U!C7n$yI?!p}g6g#9S&imy~r}Z26&DjMRd7DEZZ0mm23>ng3`Q5k@WAd%m=O zUvY^XMz1<1m1=`sVVG50uMq6y;7EZl*>Xjqp+?rf2F?#;rC$Bm0)0OCoTBUH+Ssx= z{gFs^Q{x83SRd;<#rvKB>AzraTd$!&uPJXE+GHOK8JB>gb8p%&+b@%k%o~NA&AfQx zn`P>*N^jnQyDN<6Vl2aKDx2#2Emi59FNZ#b&0IJwd9ZD%p!-ukK^e^h??02wL>?J{ zgbAtBf2SH5`rA$_l%9gURP)8yfnNiJpbDBHx;(XG_9W_1G_#cU^B1Ka(lx>A#CM=?pYk1rI$LnN z=}tU%sNGH<57rxdgPnE)RT*hD-Gm$^)MtkyX1;`}lst4nKq^9?ocb6q5V+nv-f{|K z`ZtW2;f_XwZ7LWlghYO6s1YaLE06HWZ|yHAz7I_w0D^?sRa(W5LQ6vU33H2|RE*0e zB;Nhx0r>$^aG)iOXSH(Tav4Mv?`E%(iEDZ4dQup6w~-^fZ^bD$v@Yy%lUq9~TBB7k zUUJJW@YU7?a)j@z=BqF=NbvF+FwduHY;Gzw&J|%h>7sNIim)sA79#p6%!elBLV`0R|GVJK2{D|Q45*0M56OKJE8a%{ z6yYzp-HU(mbY(1^_AtRy*5Kc|xHx)yQlc%4Kz($xxPi#cWWt`n!YLPTZtXolwS_Ae zha*$A?MV;I1bg%f_$O7JTRy{QFyVOV2J!{cN#MV*N?}=ayiT?oU?Y(K7g%XL^EWpA z?DwPB074SNg>Y_#5Z>9-G~6`IWHt?tJkGkvpg1uW|C)YIo|d4_{F5=g{% zzqoxw0U6Jb&1c159yxY)8Ks{+;;*|2Qq)3d-yE08-#T=rW!a(0Lz6;vSI@z@gLBI5 z!8x)`g*-M(!r7EwwHr*d0?>!okU#bhZ>or?p_zoHY7M_%g4Qql@(1!Of=RMh5USRzv~w%VCFHm5Wrz&uji zD4CnMJu&f5gsKQU5=>yD8B~0C+5>D{aCYGfw_%>)+c1xkG_O_KcR^RczL~)8;IGQ| z3SlYzjSlTB$<>*kBX5pG-W<+`rzjoH52aX>Y-_jhK6T(JoiC_g5yLd=t!VxSw8%)+9DxD+UV|FT?csMbc)g>ph zKVQv+)0lU#J&0_FT9d+Mr7(FKwu{rPTFZ2J(mZKc{gemKNA#?1dZPU;_C5iIXW(hH zwyroo^id@df=Eg+!fjWm?376kuN}m9lh)Y^s$?bTo_e~IN$U@b6eADjkYo-bi&y2GZYzG z{!`jfBzKqD6V0ErJ)C;RpGkAC8|*z%!v=w#>Pe}&?-6F~yd?82zR%_na27F;H8!~? ziT^@cUtIf;<9#x^JH#B!bHqy8lkX#r*_Uf1T1_S?(;Bux3*A?gM#?l-EA736Lu(C1 zjSE;qr|%{oNsj&DGVhes4yOuN{1o)m;wY0O@?5)WtrWu%U93aCq$t8odcH=$#N-X( zXWAF};)(Vt!O$TIAOW|}+8qy+Hi26ZOke8DJ%{JuU=Pn7o+Brp7`$bICnO&g^GHL@ z^QJzHau$3?sB)KxZx>L?=5x&RCEiSv(!0GqPIe)Ri4tRfuvoos(3W6J;BzV`J3dqv zmSP@F6_!*?DfQvUijPi{>aa6jWng^ASJ0*Vw%a?UE{MVYs4S-WO1Ju8m|OBl;umK_ zLH=Cb>-@P8+nudpbdN}C6XoJAe&ndtR_5F*o3J%{g}Yu)@>a{e*Sbr_re2aA)Xjn&(r{-K zHlPV@E@=6b_^p#$KBZdX4WUG~1n@4o<OM-M$2K#w%pDc+4m9)sVt*b*u(c zGDtHxPUu6)z`Q`;IZv`@C7CzZX0xqr2OMXnRDHP;Ph&ZdQ5{nIwcmJ z@-K2rBkd}1A}bt=qbBThEM|IDDrv(x{D%2zGD#jtN{fz0(Ly3bqF!)#6_!RK%Wzy4 z+(g}q?MexhJFk;P6?IeE3fDz!ap0tJiv672Py4)niB-hNVB%5Q=sT};WNIRMhgU_$ z^3-iq0Wby1%F0qBo(b!$!0;k{YT>(J(5F3KSd_-+IesrU^B@1-!{%p|Ea<&88tm)X z%5HKz{0N$8NChyJsazp>%ka0!6k1t6Q)JC8(S?Ur9wO_zwHO*H~QJ>*`frRccl3ORZmU4!7%konkkwhlX2- zSYvTX2{*y*Z;Wr~RF-yoi)e?B2^Umw&Dzo&A z*c1v`UZd+w-^UQLK0!c{%yxdLEx4`76V~*^$|tgw^(6%QD(~#rWn-1xv@e@vaczqg zY?rnwR8=p37km>*9_^L<`R7gbI)igS2832mFoR?g51vwq$S4nFy9YGx@&dYx5&9~( z`qN|+ilbM!E#_8cwOo{q^cW%W;CQ=J6O-bNs~>fnPk0{TAvy329wk*FJU`%G&ye^d z1(;~`u-?tS%6tY;&{y)Q^>qW8b+QVyCB& zm#smMRvx6B4p=g57vzpiAwO#Ft6O)v;N=aF4QJg~tYQ>JHEM7)E&)4FJroE9{m^_LyL39ubvU>2Y_1o&%DEU9SD z*1qbWP*smANmI9fg-R_9G@q2(64qB#oEmk{)ye_K65km5$a}>y%U5jI44SrC?*Dw# zz2Aq1aQ@(RhOL>ay(t@iw)SRkM{h@(9I2vl>z^z0N|>#;kS|XgX0+J!^tmO5=nzd5 z?g7jlT1M=pB7`Lbp$RPsumt0DodT26fElsWK}lf;rSF@utGIEDMitQjRe}iwHciav znJvIcnN(Qn1f7xXfF2V}?G+OA_*VX#hSZi$LkN{3=Ns?*x#u0^mta>8kPI7d&4#S%>7AgGBGM&EPO)(**WHKQzkJdtT87z&UXD?nv~OB z30?6~>XdCJjmx!V$k25R3X--p?(iozW9lBH?sRpzA)-$iI`1l>?c=tUWmTJxJgCt-G937P$Nl7#cPhxNt~2H>SFh$kKEGbb z>wU>TQ#tQhQ>qlyOrm_N97&rjp$iTyWz8Ci`?_7=>_tT5fa6L5d^^0znjwTOCl!4s ztmS^4OKB-HhK`%dxH)dF->TGT*?PL0`P_7DJg?eUPVr6UpxnXcOFkb#Z%VTGG~o^Vsz-E`^kmj#fS4!yV&D*$q?xyT7r2)G}uwf(d2g=fd zLggyN9-xXe3Pu1MLSocyAZpA!Egp)}WBx?npb;nd@&$%B$(-Rc`P4LYbaU8k8?1Rk zZlveN>#Xf-tR2>ti1aH+O18U67=%ukEI#B=7Zme9l*Nba#pI^=2Q|L!5xo0Erw31| z`27%mKft_WX-j@gO)GL052Y~ksj2LRH1@Ln(S@6b`>89J{WCkjRHZ=#V$Aw2Gidde z)l8!`n9I#Q~2&U7hjGggVknslpDq2WT zY`-X zSO+kWA5r`AyW%Z%zP-)A{)lGY)f9Tip_6F!c`_Y8lO4x_G=SV)HgO3^WCVz5UsK^6 z-=Ew1iy}Y|p5FkHQl4+8{Ha-0516xkKJ&=FL2h27_Z_P&JGlA0_9~yRU|NXkg#2mz z|8gZ&`NqKOrF8G({;vq7!5Bd&wlEiTOt_?PDY^szzBj~qmTI7h-6Pqd`gc{52!!4H zv3D@Al;myIxt0sZ{?E|hQyP=%Z54BrIj+#k3JW0~FhprLhTOfXYW6v#6-|8{TqP#I zl+W7d25gF$T>{Dn0}JR8^bWfAc41J*hRjcy@A6q8RUm~QcZRr}9brfO|LJnf!s?`blv)#35p{xE=bQW>bml+=(r{FB?Lmul5a_`wT?cUQ)MDldyn;eegt5}YB~ zDRu1V;2+OHkeA3S&D{X*Ym zf3EwNLM4$ZVu9zVd{{n1W0rL9_QLkfXca6wxzs$RKAtO)s5ex5ICaEPS!1eyv!;5i z`VDS#G+z0$n#zbt@v0_(VcsHP863~;%}2*A4}`yYYD4=h@l5O&h=YQX4I7_?3xLAe zYiaCf);+ge(>o3|8{(c~)X(IyUtWbzTJh+Q8C4oC zY0=b8d1JjXX!N&*cy$z>1+5(LJ?kB8`byUAz0PhD=3v*FKdiq)romu$9$g=*uRYXJ zwUt<3KhZcQ!7LKq$g*9`>hWu3)PI-*z7^LI4{A(^s=>>-x6htP7fZ@yyhNKruB5%QQaX3O&Rs5tO# zU^VV0Y+gQiR`jJ%G@?d<*cArvr1LHtk7uTL#iO=ZTPzttyS7?q|8_o2%4d=@Id4W+ zT#@-#gz(Pv8ZT49urt;*i6my{Wvo?|#^Go>SaP^B3zCyu=@S0{|5x-UXQIXx^E2)Y zGKpXV{G5G*RtAVsNe2HMyIpDRG~m3d)WP+E#q4r2gys|Ye-~mST75HIj%B7PO@@Z> zGxiT#9z)XrT*JK$6>FuZy-p zCj`I3+r0eq!<)((@;+cVzcnirup_U88q+z7(8nY)?pzZ0?I+Zs>@wwn0?3782NOA~XO^on%`D@FvGb0X8|QqcvU5DO zCfejTH6%LGvP317t+X`n5ntqI^;F{#n^M6is+26#H^{$=JR(u8Y)X;8Lo6zO$Ba_1 zR4JxA2MkqVKE|M|s6QJuerNqzruT78ajCNYV*N#eKn^c=Cl_GI$B!2Jy$-ec`{H%? zfH{t|s<|9@f_cgajrxzZ(XPNbxZ%ssnHm`T76C9q*)YN`ZuX`&cZfSl0BubJgrwyr zG1Ap+nWqS6R;lmWZTlYA-aa7B?25=?;$I{6k?ryxWm{Z9^Xmolp5B1G@KSy}kSDK( z6!N_0kge?WiO_k2=ceZ-d)D$FWC;xFB!DYz_oV&;M8ghsV{YTN#&LcmT0ir}(JS10 zbHXgDFch5!m$jb^tn@Bg<M!zZ63`;zWl&z z5anJ-miZ5Mr{w@iVjI3>G8|lC(qjA?%xw4=)7E{-TBWG#fTl)pMh>rKn(jEIYbI)( z2&yDOX5H@5SNv0tPP4X%OD7P6_n;7^DM1Ax!2sT)iQh$^_A*rgS~$Z{H&h@7v+FT4 zHgLZ#(DR8HV zy9vLvF8p|$)$^gV1u2s~*OlY`HJglXF2+GBqj1Bq3v*))_@kJBY*tbX3YpRfN5j|@!8d|d z!c?jKhLW`3OgjIa8-yGYzB97SL#SDUrIMAm5+&iU(Tc8lOLOhzVspD(&Ph^*JN_#-nf;|3+36GV_L(Y>NALc7Xeu z5SzySw>PJ2aTn&e_6+w$dye~})noN!J<;iP{t}}~!8kHBpb`%hJLV*t zC8_=)FHiSug?Jc|FeG6r@KixXRbA_wpAS?kv!0Rw2lxab%MoAyLhx&@I~t1{i`k3p zAHrU4(tK7nuGoCmc9UF_(SKGFf<_0+<_KxBAprr^=27wi`Ol6N+q%i9uX9-tRT8aj zA0)EgZT)^UvA7Zcg`;Y1cjoC{ZSe=q@jc7h3SKUxCQRj6jq&nk{%j;c>IwF%b^Ev3 zV%pA<3QV?^lZh9}x`e+ro=+sTabn9GiK!`xP3M?-Mqpl#-ZtbpYp447CCfB)6H5E8 zsX+T(!qkcxrz^yDBwTqHM~$EJE@pbo^WNp&<;0nLmz%lTKy84fS&Vhb7}tNKz_PTI zG8|3}e_hemR2irYFv`;>1e%Oki3yQsG0(DzowRHUo!1TwgYpXPmiCLdm;S~aGaws1 zLgu43-ab-4R=t=Qf&Z+O2lapC7){`uxFfKn2+pT&>rm`a?9n0eIE0kTCOreK^p?wua!5#UwT)Ojh3s@nawqiE%U$lt5cc`T(ym_A7U`6&}^quO^uEk_t&D>85Kr zV74@PmxR^^Ci|<`t5*OL!o7rv`tgcNT^WIRruS#VwXrdsZ!uQc^_a`B(R1_Q`2KR& zUpS@4^F{P7PACfb^<-YK9|M{r`33_7s}z;Z(T;=pPDARL<%<{w7t;}-z!dN@VELi> zL%>?Z$u9`XGplbbEJ0it$A2E&3mxTM%rR67WYGzJ(9aF!Bf(@^F3Ani6N7^i5YmuG zDodnOLtd9v1d4iV`Jojtf_OS%^FIZ22@epsra2(@90R1iBoC=^W7y{LAj3{9D*N~8b67p$|%vq!^5jK5H5Plc}j4zYE4u(128)g8} zD%BR?#{le+xJuB=e4LhcworwUbetbWELW)~{D2SmQQ86HfD{eDUDXvP-Kb%=2>C`R z_}dN(583vRw*{)iNNxB`0}2g8>d)vZZ{Tt%<=W0XCInSXzSc?@)t-5Ipd0BP8Z76K z#YqV#Z?PP+uxIPdR1ds;qE2soQmlp?hTWnW>{O5?@?peZoRu|QFJoT*4y(- zO6tSU)z?-hI2P3)XHzvMR;`khw1t&5i3VoY=xL6=PJwmRvEF(NnB6nj=Q07c=4AH8 zh$Ro(+A${zpv>N7o~8a+24ezSUKA-Yuuv4M!z*DXQ5kM|B{CBO=M zIcF2U!QSA17))m%)<$WGGmwtIedZYCM_BKw;JPN4M5| z=)D73mX{5<0z|1aa5$i|7r6W1uQ^;zC>Qf%o|{n&xpImRnjLYgxoUE$rRez>o?C zeba$K`3DgbPHa|&2j-L&{kct6q<`+0269!JzJk7Y!FWIFIbRkCvV+)aDb3&NcY-99 zVaw=z3!KO#BT`=R3&Df_bG4i6S^sM?#pF$js+x-$M_0`qX01P2wMvcE3Pe+f&jF13 z#{{n>VYVck#TIX}n{i)b&%mWx&(S6(*Ma2|MJ3Hk$YP&EqwaWHr=B`8-gW`&iY`M9 zf@)l=w_UVdwF*jnR{kl(D;=Us|jgOc731uT%KeN`h*M$=eC%Zw=ci-^KNL;nz(@4tq&c6qkp> zq|gDJQOGu5u=pAlbus(YJY`R}+^AoXI@Zt`x#v7wGm%$-ZhkKJw7xKWE%=kZPuznA z)MWpZ_C_h~7;cDhF2Qy(+Y+>8BeTsu1L~JV+wbe2)*f2QgDvP9DD>Usx#-rhZPAI7 z7jw3nd81mm3puJs(e_#IC9>M5q);q(#8_Xbx+B`9vz1KfS~8J=Q}&>XbV%|!^&^TC zuX1O!!nXF$Iy3{zG>&uPC7lTj23r16#V-N(c3_L4A-$x~^|Xpms}4`2ldgDmUn1`n zo~N`fM%DF5*S9C4$-M9`-;c>}TfBvFJ=i&n!aDSwjrJ+@k8HCTF{twP4j8(s3b8mQ-tYEw02QMYoy5Z zhN<|QQO`6X_oGB74g7ex(Ny;Le>b4H#e!eSRY&?<7>%$&8KliWAmiHDA1?&Z-C)M^ zMeOU42u@)d;4wW}WLb;3T!NTd)mQ_momkaY-y`upt< zBqrPcoB~lEqkW#sCKDW296yD!pMReL;mv5^``AU6#Uz;`CS=%375|33r2wL?lN~7KZO4JSM4Jr zKyBhygyoQrSylSL1ay zmHmkH7|-`@WW{d|bHK z-P_g+DyXLrg|_d~sg+n^A{l8V5=8=jHTNy$)d=RomArQS`uo@12h4^0D-p~E|9;|H zg_VFV-k?nV>f)c5Yn+#u?8mJ==KoYe26Zde&}GPGUix{UMIc?qSv>f(ddH5P_Z!NJ zgjqh#+_5ri0cqj*v~XW~$~&1!>1%ESS^#hKcSwt^!3feKm=KJ&(ZqxTcHG(@aZm~N zj%_|=sNDD6nrmgXcDO*SbvvM|EN}Tfly@kDB6wF*vR)W(XM|r7l`Nia=rRArK2hTD zHQCCqQp!^khC}x_&a1(y(NuL}%VSTrw*H4JNN>)YAd(^L&8DQrGMIsR9o4@^<*zoU zg`Onqj5PYV@!2XZiLkUYEOD{*K0AI=HTt%MoD}QT-{Tg}ql_kvqSzD4g zh4xP^cOKb#e6MWW-XL1A=rM^~gaVD@mq5(Z z#4Karq4Ne3nr&D!g#MtuB9&{DLL{LLkYz~(+02gK>S67~;Bb46E!~?_e9gpc zGv``{U9SMedt?I|kltExez%s%g;0%_(WojRR_wYYO}jmqc9#PQ#)BRz7g`42dKvTx zsxhT>ZQC>kUc2IaQt1THbecjBl)}mCG@&_KNYvCJ-Sn>EmXJQ5_dfSa675_3jzw>I zg|s2ARt9l?9OFpqj3ofyNn>lsk#O_DOoSDeS6MX-IJ>+&&3Def!q~t#7Fpxn^A(B7 z0C6COo8t($uUuEBMw%Vbv-b6yE4a~ybS?K6vD`N0PcA7*@#V=z#!Fd{GNd3$7^oZ|sJhDz9r!sJVKcio3UHX_~*Mm^n2R~$m@K+_b69H_g zOx(0A7G^*1{wnCuD3O#m?p*iCV}->JZre(WTTvfZEO@`_zQX!&$~$Y5)~vqG`}wT} z9(7buUP75I_gs>?1v1o3D6tPvHtk>R2jn3%8Co9tW}v);3XFp>KzhN);#8>9q)|@r9J766!#xl= zBQqq05TPE0CfhTQ_Jv;2p&(^)$&jc2p1w{r3N^j+TROH=wY|M<;SYEn?jkaciB^Yp zb@Og)AKZOl#ue-LxX`+RsX-n|GW zlM=bgd0tu%)%LtfW&Q&@fh2A{sk~Zm62BJOz52ja@%4gZmk5N)I^bW9<#U9ThNj9wGh?OYNQ6TJ2oE9AxNH7@C(%@MuD!0k%?~-h zRGr~mUY#M4Xr8Fr>=}{C@Reg+aphR$7+LoPBy>XMTcHnv`53&P^14Q;!bVNiOQesY zXwgmY>n3m(Fuczg8a5HLE+zpAk|uOn%aX9BWvQM%9aB0jl$b}XW3usScpk0VWgW4O z@Ug;}_16Y<+lAUo;(4iybnx3zcodva``Pxh+|C0RTjMNtG#?r6=Dzd9>(YA1x&2+@ zSk(B73s(fFCOBgxtTk2W{zyz<18l&TyWg~bDIA?C9CLcA=Nkp4V()gNIyzCZ^z(Zy z{eh=e*>$U<9O~ub^6DWX_0_nTJYthMj9gg*)=K0?c+WbRj_lQV)@bc_w^k(Y`^bC) zAMM8PRA!j%zazYc?PG$>Xn9IU#l6fnP<1_`hbZ`w=LU~?#Qf{3dHui_h}@+AoD!5H zzkMLhI!DaCShBnBCA?yixeCV=kVcFcx0Aof^p=wk$=~r88=q*zUfG;O;RN|jQF zPmWw#!Vtpr|NmR3ulzO&Keq&>$}I-JO!Z{{3pjvs-~hnN%bGSMu8t~`D$Loa8WQ`HpCzQV}Obj*PI6oLdCT>(aZ4t|S&3NOCm4~@mQ58a-nD*xl_YORaI^+A?zpdEL=}w!+yw2) z=Z0-}ph!wwmuis)E>Wbw-_USk(Xy`1F7*W|tYF~Y*R#{y?-Yq^6M+XwOnwv~g$?j( zsB+j{>lE)%sMN91rg%mRCfyvLXa0nX*GuChT02wpDvGOFfU`*-X(Q5v%Va=1%$#30 z;hB$w6k%N0Z%}|u73ug<<%rE%C-g2*{Brvp`C8X~#;SNjO7Jd#VyzFYl_MU692Zq_ z(fS{&N+X6f6ah;Aw1r#LuRs9h+{c(p?vQ`D>`i7 z!VxeD<;y(${WALCP-XYQ4>lb7{jna|NV^*AzqHiRUFNWMck4Qr)jZ34OFNbBSa+45`SM z;~&Ut{qw-mzRR|2eT&8UdtctQZ(r)KJefienw=-k``%TaBBI2_k`>jTDML{GhJlo* z_0vpZ+0UO1VY1$kM)>T}gqN z6L_}V0I#%;D*)t;$Rk>Q=>Gqo81V3!A3-luZqBgB#lqI0RCnbnG~6D+AG zEKWOikeL-mk*}dT=wkbloCn)`^_7_zj1PX|_)USyczCI?`izW&DtS4=B-)~dQ-aKw z1SNQv)?(yMDjg-dfPhYuK|F|{a9}Fpsj*Q@0}hSEnNhMD$zMzx*xbJ_dd_`LbooOX z)kOuz@#%z5jdt%wviCrG)k(pC%A!=#uVRyp(HaLu4TvT1jB}P`dRm*vUSaDZjkepx z{JDpu1Px-z92y>xVU-+l2smv`R1D!aY1|fMZM8haQOy5BCQ_Ct+Sv$k6!BBxA4{Xy zRttYGjAGx6Kp#~Vh@=5~q@{Mu`%310@ew8{ekYm_;5nJSNiu>@<&1#HlofK80#=XV z!D9AqW<@eLdoP=r;vOO3Hm1QAAbJ8AeA@OC?JaR?Cm`gw@oM7HUJ>J~zE|`rGbr`h zjMax%qVkZ2iz^XOrSLX~I*Q#^y|a2JUsnATMbPN(ad7Uefe#cns;x$T7fIa+bb3Yz z%KWz5{2W`0CDEnOav~ED5AT*L&D7u2O`|D*IuyF){PRK#ZW`?TDzJR|NJBbZ((p8K zU!hBEuqv1Fq9cXy!I#zNL^hlo>KBD#OC>(Et#=QF>VLahX|F2Mv})`nYlUVp9b1y6 zFX8t{VbNMHk(c>6z2Y+MX1EJ$5lETG)(JxsXcV$9^TVi>K~XZG|15o*-d+#Gh4syI zSRM~+p5r>2aXZ{wGgdPuWl*WMWTNbB*>0JqEtiM}fo$AGq4<`s*ngVrYk;rlI50qh zpRhA(oCjAsgiXYd!$1d8`CUBX#bnIF%vd9rp4s zb_Z8Al=F92{%iesWn4kU=~`28b9fE?!J+qsFKDz8^H5+%-`%u!6@rSHql^K;8eHZ&KS^}0p-$h}p?_%pNjX}|o z*YRw}b_mP4<}0wO#-yUEdujVlV*FY8Ir@n3&D*k=rKip_mY2&J=4AV+%eGIFhx#LS zjJ@a>iJEn>V+8oeM{CsLK(yWI*nFVx(7Eu8Er(d^93R^{w=%0ds*iD?1LjgDWy@Zm~Tx)@qQ{<7$HOm zi43tfdWC2aEAB_ed@@Bi@3!uHgfO&QG^%$i!yK$B=}ny>6tn@;bb zBzM2}bWZpGi5u$umCM$qj#TEm6KN({KgCU1t&J)JH88+mYFr3sO`)dx#@+rh(zT76 z_XF<;gy@i8VUJBSW&JYx_|yyjH{15M{X}W-U22#iESCbk93uXq@Z)8o-%9#nL@NOK zF5-tFI&h=3(?$akfV{^2=Rfk_zmEEEe(!?+F8`d^z4=S%vj}e!NvZq1EFmbiWJQdsCpP(z{_&4C)M_e zhTNOn<|nWKVfPB*SvHf1nLv_k6D)I^R(OFlxZG;MbE?WAmt5{W>-{Ogi21C*AI^!C_%>ci!$h$~tW>FwqR|kj@L^YabwQ;noNGasX6ivtY zy7bknGcxXHN1QK5T4w$~-*>BJ_G?@4P3yX!Iug!H#LP#PKy=Z9I?B;7Z~ohcS%jFG zle@>byF~f8^6?#F0LA+Gg^royLSgG>(lJ|`aa+d>E#u>ri0;tLlxdlC;F#PitC^{p zk_C)y0WJmt#v_t#vX8XBa%_8Rhk@!meBc_|T+FalQ}fltWKAlSs_4qru9ESQOlL~< z#cB|LsxMm7lqG}lmP|$OXKK0(LZTRYcRW8Z7zQUcqVC!@SfS_?>u2PEQ`ggVOrG7? z*K`dz18rMnbLDjnwH3Fa{6Z+ZDZbuP6^=DOOZIDVNv*MDkHt`#rRO&5E;Zp#J;X)q3Uh<6U4cxFdMo1DD%LWO7#jbv`7X}@ry=^}@ zV>r}H*27iWG}>R)zPV1}_zZa_$vK#OrP1$oZ*p(qdThVd(sh|!ITv4lu1wjtnfpTT zB|xg4ruQ(T>|J%64&T$RW@m%_a^fBA?>|Di$H%>7kjej4r?kA%Gs^FR$6z{{a*=bz@| zyzeo=31c<0hgS7%1QvkWP=ApNMAQ!d zoj_ONQ3gRl0ReOq#Um-=zuR`;PjBbBBsaXu_HJNbkwkXh2e6QxlC=_!Ji@+{#=gfW z?Lh_-=FFd%2J)@4&v3uxkMm#56TT$eBX2oDQ~=mbh&>hX7oQeg_jl2*oGzN|gz75Y zT^-bv96n$8Vf7+|sb#|g2IQip8M-6fQ5xg`y?sj?AH}n zX+2S;lnn}&z;2bA2=j>iM3%3Le{}?ikjpD3qc78(U-J#c2jZK0$~S8Nqo@EzoE&}G z__G#dHGDdx^Aapl5Hy$hYtbW-VXVtxjY!g`jNbTX`Gp|g2m z0U&sLQ=J=i^{vFA*jC7_V7w17YWA*`8ZGnVXG)bSJ^f?rZx;Z}gtGh-cDU5U2`f{% zud<5?Ntur;IkdDq`A4Ou7r(vwrPLR{z2+q_G$Kq_Gtnb?cmp?)i)Tv=;f~>-&P1x+ zzJ*=GE@j>?H8GE+GEleyNtfNv=-5M^oxZ)ky-b5^Q)`cFXKN1;@6Fmt)en@?dwjVE zMr7r{z+%b1j1n0AI3i0*JhlI~O6|aW-;4ES2w@9`k8&dReMNhWO4;_j#@PFg@xZXE zE*m(thKz;`Zn>pcTXFC@gqhHvC9_HneI)&E=crMALlRhMNEfYx<*Xy+a0W5Ahd;}o z1t*n0I=*NBMy;u|fYRHa_ARxaIQ%J92sp=;Qxi44L{msMZ136XcyK&1_2-TGN>Qj_^Bl8a=9 zQ!G7Q8C|QT1KIgZ=N%n2o&U$>z%M?-%(85R&!=EFr?BOzsZ4Vk_nn@=!DpFi`vh^S8`NY20aR8QDE|Xy>7wWF8$F zadtS{A8*}2DFdT${!RU!VqyUg7W{ac`kVUABZ0H*SwZYNL-fK-WX{~`Ekw%Xttn`I zE4ZyGxy@&&O$WG;=7zY_?L++BLX-`Ni?b|amND|8wTp)^0F!1a-P=H@i`2S8F{ySP z&sF|T+De$jj#y8t1}`5QZdKcsKxD?8&I9TJh7T98-z3?l(}o=e`_J`_va_hY+Q$tq z*D=;(nQRyi@6^WBUy%XYBz-{TzD63{l>T@Iu^O73{*_q|69FZ(3)ta~X74vPg*-1XJz}JTdeyi2rJUUDK!yqhuJj(1sj6`gaE4|n!?O#_O-}3U4|Cx{&6dR zC7~^`v*f%ce#n0)vCbb#Nqm5m!ax5j^B~iiM7sL?lVG?I_4p7M%1UH;?i);QBAGc5 zBieIWk4C78OfvPZRE4D9szR)Dj5<=+a5~!=`!Yljndj)p=XW|2uoAJ)G2@saC|R*c z3(6Vr*q146rKJj)Y`kzpFx9r#wwJ^Hb~52&y@it40HF-a#+|jGHhPHEh2-rO9@Ri& z4qY9BD7TOezXrzzlJW}}Dqw3|sj@;uaYQ)nQcgF)A8r_hv?7-8=5+TRA3 z6C*Vkm%Fo4SLrRZrjtA5V~l#r$hRRIA1f{ga@e_9Q_?yjf>H!@M?zp}6x$&rN$8Fh zz{(MD2YJneyBTTKJK;*Avx}B6IDifDXxp!2#lAroo?PwWg{&N4Y z8vEF~2h1CITV%l&Ut_mg;#}G7^Vl$w%>6q$0qfkquX^~ZNo)B`vG2l!F_L+9D9wyN zPLdTJ(D75LXRr?lst1elyjbhMaqqnY#o}VpuM^{{8>hYFSc_x(3|Np&vY`Pzf=bPQiEg$iy;E|f z7Mfp|z9xPB>UHc$_;+%p*7&{q6_!04#>812y!vl+oh!d*{vK1y-e=yUh>x&qyQkqfo% zjP7*XkZi(XF4-1K__(lQ`<(woN3K8QZ{%Mm5c)=I)xYqc0A0iMLWP4?uzjQ|_Fwb^ zRqX!*c1(9AhF0ra#_7_w0t##lrPeyWAL2<$kx?1CtsojG*kz^cpr&pLU7yB3c`u3= z$!`+Iv1OOycOT0en30VWT|+Cg4z#B39w-}-j@>|6eWE>Ct!W!@Mz`1_&K~%FMU=2Y zglJY~4YsTu?AZS^ezUeGriam;&ZSaMyt|IG9$C@#SzXMBox?rDB+;afBzR(Zk7Y0a zqenb3(FH3nD|LLFys2o4A9X{fTn#5s>r3|! zb79qtp3TgYbL6o} zG$(lWk}H9(KIwjS!_SV?HF`l;Xo+o!wFby}5%V0AEq8Jn*OZZHcXJnNepseF3UZRl zG&Ec2y+e3#jrT^?Z1s~YgDNc0x#u`j;_*bpDc%FfM@y)UJ|v6-vECJ!HZ( z0ep$rZ7Jpb!juqvn8sFF8SN77NfkqeD6+vD37x>gkY2`4x&4e;!N;Vr8!eE zrEvXZ!nXMXCfB57bkrV@$0$Rp`L`t+A@sn?H47TOO&DtZiS}9HXQ*nx+lo!DyZOn8 zO{`tGoaEmviTiCorq+fUbzyC$zBWuiDE$07>4{w4;^;Au&Xw*F}fzXpqRZP zHz~~*7fM3VS|~j*z(%VUbDd0X2akM8_;DIDN5+lBxEwtGn+m)P@{#n{37`MlEJ?jn zLxQjeoEWLENW>I=TvG;n{yyocjN4gLR{d$! z@@SPto;_dgVvdN!fwKKVhW&T;v4t`LUdH~G-sDL@iALhM?f%$Up*VzbDXnde$7 zjB1l#mPO|hk-)a!v4>(*h^|b!;dri|*YE#E;lUyi?oNC=LwdR>(Bj2|t4jDFcrHR> z=NpvaWPD%Hs_yDD9(-P+at&rmPeanTOvu4eK}sh2<17)q;l3VCT{?Tt=I1p-7!lkDCfXm-1= z@xS!MVAk)AGn#;eSC$-21c%IHD?v5p;JoJyRa1Msqc}bW!#=O#in6h%DuZ|>`$Wwh zAXi*HoNID>9kuXS_uiZOvziA>1s|>Fo6#{*niCD|c8u~kZ>i3CA)+75dxn;1xqRO! z9aut85cWJALrL(hhAF5Yjv(EgF5G%6%KE?aFr`JZ<3TVw(|Yfyll$8w2X2MDD_o8p|1$Lns4CESS_e2p|t5^ z%-PVb$~1cN9Ao@m$CzgY*W#a5`L5M$H>uin&RTBEhrwkS9arj225&Au#s8KKIR7dK zfVV8^X!^IOD=L=(na7V};LIR3gY&D>)Gcez=XZ!*{GR=Oo_3_wc^qj{wwL%_bEn4t zIyYU@Ymc31$?j?prhZWSe&RY|+jety;u@i``q=IFY||)Zv{;E})7e8xY4hq8f(47dg>?H)TDqG|GN{IjJO~~u@8yB=uxERaQwJW2J{WftF zp-^V~ih1TC@mU?_s|0WkZb%OvRmf&6vr0CmRMOwYyDKtX6WCqTYIVe}s19Z>Fdme1r~xaES%97mJ_6p6MTXT*d&XAjs5==vDQ9}z7K z=OHqL0Wl=Y^^OJmdJOhq`vq4vS?SE`Y*s!E($SLfIhM4_G5H$864y7Phe!$63Tfu) zIi+w!Du(s$JTZyO5R>>MK+7b9-pax?62u$k@&f9%3TCeW2?+^%LR<=I-FVA{rKC(F z+i;6C`kJ`9E42ysA%al1obx@<@FH-p4Xq8&B-d^aZI+XO>BhTm02|2WSKW<3!)BJ& zd?FvV>Ip<{s#sYv!;WKRZX6*8zK3-HEftrgZ2)ayUT0)=;={sKu}a1e0V(sNl=eU+-SRo9y9^63YxyUe}DA zT9gXo%HpF2YcoG^Bm}ElCq0D-oq?FJv&OSBORX%a*-MP=sM*{8vZO2vh{~TNEY*n{ z7P2mi6jd7!Pg*)GZTI2fHZ#XsIvSI8$}+7yfM9zpJtsDuSZ^>|nA$Z}TX1Uo-#pS% zmrmw^2Un_@(Gv-tetx;9pOR`~-~2Rp(xCQxnHNrMmw|AoG*(=FISYw;#WOP~cHQI%4BF2#I+58{^YylFW_rzZY zVh&vB886!(bD~9D(i5;_T0vJeT6g6eNK76f&Ot6w1&Qu zD<6>kJ^sPaZd+U3Tw}!eq()Q?+lx!3vHBbvLP$}ndInXN*|9ni*qDDX2;yq( zCzumK?rOCC#$ki{!VCPY3H5jOpGFqMhcCZ zp0^A`@3mv|AxIa(lIqRA>-;4WS)(%WOfc3*SLeybCspUI z%p!V})y37tQucF}#^f{fQz+FNqdAvQ#*GPO(AP1Rp31`qBuOf3vl{!xo7W>V18<2K zGPA9Xi%F}C4GEjpuFO)%em^?c_-E`wc<&ELTjWm=%A&8Ev~bu!gP|0N3_EV$(vryi zg*$v(AYr2P!XHP6=ECBIp}E0SnhK@@_fi@=jf8Xy$rQ~$PnEd$|D-|2_n<#^jdZuf zM5R&ORxzQHWsoMV*#^SkLkg$1uHhfj$c-JjA`$kGX@TQG**!{wj~U08jkI{$mB!An zGZ1mMVIn?C#v@5S~+N zX>PDKo&T#p7Mw511U#eCP^#K+(^Q*m@U5G_J~`FFq&me(~pu2?*8CL-Dc~%Wt!<-x?IzifzTDAP}<1n8;>rdWosHYE7&y zivpv~8Q2qLu+=K|S!WGKXQ%THz}llMCAax*UIKkIrl9kuE+E4oA&ZS; zy}Y`N?b0I#>I*A#Wbew`ut{;88|_Yj-ILtCbg=)xUmciqL_NpBr+rUa3Rdw$m0a+c z7+hMCpMH+q*Ug}Mouj{)f5HZ^~3;u930n|w#P9+)n%$}JCMh|WRvYg^-Ws{T;Pl>UpAnaM+dkb z?w|xUIofRt9xpGhs99z~n}X?TI2XdN$d8W>PD{RlTUIq+)wO>OLAP8fDykZ--R}M# zGJ#sUL4BaJQI|S~G014-1$7s2+1w)QumMu2`>G2yye@RzcC%%dDx{w>y6xChl@9xQPzZT5z(>2X2?Y||9MP9&~qD}q;*`SAzk+rSJzNE=k zwW%gYHZBmo;uD0NHnHrW&gj`)97ZAqKLl#E+PVvnm9LR`6FQ8qHEDfT>|#8+>QrE# z4re5FBs_xp#i0&=vanBEOtNRl#^pq>@UO=T|6;q|`4jP;fomloan+asm^$w5xcgW$ z7b0X~V*Fh6$~I?1Z^Qhj$h0b?GG}Y_&V;r^Xq&fwfC_bnpXR&6CbXy-+c~A}4;rHEiHIQwjDiZHLl+GjX^=83&@-Ev6s9&h z5{Xm*vQRovahWzS+o%cxu{X{k4JQ)>_(%g-5k|~wBY}ifGZQSj6NmYO@|%PKadga# zx`AkHMFl2UCUUFJ5J(mJP}&N9kWb|Q00x9X{$eqKyborTf#&*{Cy<>R)gS*q*4_m! zs{2|S#8!%}DnlxbgwmQH76NlM2GdN&R%D&Cs zduEs`mzm+>40rGbs0d!cv?pNF29l%%r}Vy^uU(hWT^I@>2|nF4PM zd&Tj77}@^BGbb0lHDu<)ObRumL@9eq!8n=*nq%El#`;0`w0o0hbH^LfzqpoN%OFx` zm^7`^(g(;c9UrjUKhmfyb!94`EmiI#Rmnf^`fp{K8`VIYG=bDY?`0+T7}Pz91R-pX zAoJi^`%cTlT)Vz@XZN^0UkL(2$}>F6-lTY2DIw02V4V&S;k1-($>4C3K#tlaPT4Cg z)5sxWs@~dTi!Y{3fyk6f9bK{rXo-Q)RVzg)LGmt{F&rXnH3Fav?6eKo{lJG#R0L-R z3kmQSiclDdrGT#S$yzXtK7wB0_zj*LnKu%iKiMfR7Y}@u}1yC1F83?rIH;14fP=c zn)CR^B$RUyZ2r_1N003wO>BSRmKOj7m+2VV{IrVgN2$3&_B7|TyGkBfTV^y?7_i-^ z`qY(5BHAp=-}_klo=s0YQIReNz=wThWwv46S?q{k_nXwTga-%*Er$P^j1`@B6?R92 zRhw}e&2hGxV5^K3nF5yrQ!BHLJ~ke+jd?kCSr?z8TK>@TLqFv?*3UJxbz0l^8ItN( z8OsLe0{a^K8~eGQ#(sZID0cY1mi!t+)AMxbE$pq~b~J4}_Aj;Z{{Bap1GRIbS-CIOF`9QREk}y!^ z!|^4}g9(P~m9_7lk5HeR6aI8=f2H9}r0rzWxO<%ZA`>q6^Pnu=4_p3T7XfOnYIN>k zsJnD~g^Pp@=6=(;pOAJjuKJR5+{kUM7`i}Ol!mp|n+93J0vZF7qUMb_V`vt|KRsQpdY00Ei`T-j%R(oTw>%@9jO3bB z-T+cm2LE%CTf$O<@B{_z5=B>G=OLfRP03>zbF6Zya1Ma_Y`PIyk=?B>X74c=xpd*K zW2v*G;H!+_HmEQvNTq(Uw+4la)mn^v$!X`jBD?*E6^(2p<}-E|(XEQ9 zXy^ei(at-s;y+IqL}^LNZ;3@g_a z=#a3r3`q$#qTC%is$SAH6sX=&s~X1C=9}#EKvmS@iz+Rp6P5}qnVr%=nPU~eC@S=) z57__N`mTM+`uqCFkp4AlXQW1$sHa5>JMf|2UFl40%5iQpd9&2+Vdd@BC=NOsg>uLN zVl^r@PsP1Rcw9mO+VYv^Q>}NXb&ZDB^^Ly^Lkv3CBH}|~rV_4q;)Fp}KS#fAL$BBN z7z}3H* z%If`W&pc|kPt^{Db=5oolG}C?NM*SB{!O|0h-A=w;qOf>m1P7E(R;R$yAULw4^rqq z(<*_bt6_I1;WuGlS;PD%^9}o~_#N{qI^Ddpf4qO(hJl6cG7)j-tD9ayl{?^^FnBu+ zWUsb$l3i4u!;k!M_?30ilBUmCVVN<%Y4ni_cEumlzQY$u+%ZYgWxgIxzV>{A6x#Ep zo^xM1O8XyzgRMW>w+B8D09oU?^)`Ghh&NJ6@x*1W45gkRB3sgzwtv0@(xT8IKhKsD z+C+iOpuqp^TI{*ewS3su+kGOjvNy9glepV(nX*PbPKX1#8HW^2J|uq?_v=9#tnhqN zwUa>dN^{7s7$+u6-)poc^*?;Pp#R>w0lnIEW=ehAiVYLL?93(~<5QRUrQx|xeogim z@+IM)n3ra_C27I4%d-n_{!e6o%A>Ik3DCjN$jQ^B6T4A%aN!In!~Lni`TaLlhvU!e zW-h>AnlwX*Z;uD3-;S9(*Eu;1x@(~*Nn8pcD zA`=4`R}Plq7GceT*Z8s)GuF*WyQQlTys7#a6Gs2ZCodf)yOj^898Lk}dFUyBEZnq* zcX#Y`{L~q7`W_9JwYSp02@4RB4fQbS!a27RdmP`x5SR6}-OrsPqTD?iwZ6ws!E`6I z-%#D!ro;KrFm@om{R1qf8RdHH{fb?AXCOFfr5*l44V_5)(Om|Y_?Nid<{xpr8l(6- zD@5g|FlBTBc}R4q=AmqvNdcCsCYPA!NudQ@R7)>?9nw(;19!czbKWTXByc? zrL&^b$p}UvkhT1OOngr;BS7mw`-O7k8JUzApUC|y^E^3)*j_fBd!5I6FgCQ)l8alp zFV{Rl=HrBI%O6>%AYfWzsU_dfvMw(9Rd`crwdPo=oc)UB8w6j?5Io@@%ZHWLY5XYY z0hKXijVygZU&*1SM_U|aP6$`me4G@uMp`YcCO0mg{|Tv=$eO@BdsG3*ij&MA!gq!s zYX(Oj)JJp>MtOu*c>}L88-(bcP@MqCy+i4pm%~Zc{EZ~6SOt;3$XNUQj6IUogb7o) z$n*IZwlL`+Ni42-QK2hzm7y(Fc-pR+8G`{kP0&}udEuHnz0%0tP(VH0CR~^E5KN@x zxTB`b#b97 zx%EeNxpldql_gm9OiXwz6E+R{A82K+RMK}M!>lIAX>gH(GtL}k@~wW4D(X0B0DPu) z<*0?1-96;GbDONM9t@H_GVWM!7M+O02GsI@C;YzF(=Gqb#4ERbOH|9hCck`iQkR{Jz`f|8b<|-A8tYBB12#sab=^)z=riJ=(7GJkDN(oXugWzSK zp!|PTy%Qi#1`qiv9!P!Q!TTS4keT#96*jLi+#hO$UQ?Bp@>5%W8Rkr+&^wCE@h`Q% zc=pS=6%8Kqc@*>speH zY*HUcNd4w*JrQ&{w==%vu4uONzm%@1W4U9=`i-Z^233t^KU^Vy%fG;;TjIzifQ!In zi}JsFe91rQ?~$V$6q>iF`mJYX<%MZt<1@0AkncgGidm4o%>8{qn6wgePyds^rF&uX zTBYl~^9JFW^ck4BaM`C}JB9Y6QG;cOPNBKSUR8qpNTp<28{%<3wjRq%fOpUs^fH*)M}CON_zszuDCPT+eP< zseN#COE39c`1-nOdChN;zvA@R@jq{9e8-PbE}Ql< z>Y7nWV3z#weiTYcS0Sq|KyIMFll7Cuva95L$u%9}3*g**AHxO1hfIWwx~iCe12r10 zJxmG8?D)|xdduncjMo)(C1OOu~kHun0vb340H zNn!k#{&q_WJy0DkW4ZSe3^MNg_=pn;-pKsIp}t%y5H?LZH2n;$z#ZwAwm0vE;yncD=#a>#^Hdr3cYun8zd=)as$+7uM%J(k2OKX8v%)OhVm8&A%+7ifH_1(AAS|6ZZr>iK@~wvp5M;*c8l_ z)!oz7O_J!8g^GlKVfoeLDAjsmRn9iuxzxjBT-Im-_e1tRg8~({FS`5AKYm^+DZxrI z+}7Iah7af|jW?3LQlf&yiL>Fh25D`uop%?j52s>6Das+3A7sZ0tC<;MjU9%0?epw% z_%%6vhVl;%lyf74uiKaH%e6ljeT0#M)xQpFofkIC;gKe)A8UoRSLcX5U7@3{Vpo>0 z41IyF^h}n1k9DfuSEljrHV34BC3s5eKM(^KDzA{w%wvGQy{@Y3!&7}y@WhYItHZ&? znOC1kAm%9KTCxw16g5Op`r`T}|5)22DqDrQtlIH3q4=;)A0-TU7c@;*x?&U#csb6d zLvx2eRgLX`q2PB(J@y_+ltf~wFJ$+@wCkBl!-?S&LyjM?3yy4aPdKc4!o| z;j%!Oh@9w)IDZL8_m z4Li^NfgRA>z2qL!Lcu+!=HMq!bRk5fYhV|3hPNu!yvja+VFQT_PmQPA6;v2#=4TD^ zXhowo*s6J*m`6{c`td{*R@RS+5Ql0*^T$Sban;>jQfah6;9f*;ML$l<2FKjkH@Rvc zNmyxUEd#eamJpL(k){5+qUv=Gp9<+1x|yXSm%QKvb+{$o(qrk8@}=*~O-+&XjPyBR z4*%UXiiLrxbI zsxd;P^yr<7)bjiOj5%Nqa5d%w@_LDQj_xdK`!0GRm`~NZv|7Fp=GreS<$LF-t|JN? zR9B)S3Lj%19hb?MwvRKXaD!=xN%D;Y(O}Z;vDHz9ww%i5sxsX5wp5~$VMp6iv`}f( zB~t#PAZ?&*5p>%qJ?HgUGvuaECod%hn6M3K*Op- zWrt9_t*SP4^RJKp-0ttZv*;7 zb@AbQG^c%1ufFs6OLZ5IPhtX)0?ESo1M0JUO85AQTqQ{UAwtReLyfyJfvB4`wC%9Q7xw=? zu+B1uEy(N7w}GvIE+t_WK-J^A2}kn}MBkNz|cu*D&7M4a)cFPEeJy zOWm7`#fau@++Ny$o~b`pX*9aN#q1Y)3mbCwsEvI~JGrtV#}vRPq)@nhjmz| zBY0mE`vH>r=^kUpHGYls>GH;{gXy~9$4p89GARyOnXEqWyC=vZSGmSG@^arv!j)LYn1e!b(KGL?lhG{31e zbXxfWY(MXrRDwWXJrizKN2Jj_<}EOsm|j#3mJLam;A16*yiG%I@9TQ{q_f8>jFNg= z7-6Hq+L6zI5TlnWxf(V!!jbqP1uW=>eCYy}z}WpQylZ692mG+^2&a$#+bt`hbNmzK za%lRGgz`^N!52UUpUdQCkens#hwmEBd7K>c6-FUvGuK_gCaw&1l!=Z2GuE}tN@=_H z*4)Y{R4S|gV(9Hlw3W6Y@p2+yVBAw3AF^ELUqw726%BiQDBgk;$>_bCWORlgq;K4NOOf_(2JP zG!O@ptAsRKp3f4vnVIC%t`phDj9$8+o=0Y?kE@S^N$$%)T$uMvWbF5*xvJ?(DG1QE zERw`+)5NpSwouek+ThYRpHHIY-CzEvmE6FN&70Hp+>2K$9S-ObDn;I0VXIjG*;mo_CfpORy9z8z zwZY#v6ZL`M&S^VcGk8}Ik+xb^}ci+o2oCiR9L@N zKizy$wE)66@t@OMr{(OE{8MQP1irQ<=z?+Ey`+@XLr&>h$A$VYgSO|T&FHVl-V)CO zBtuw=N-q`ptE%4;$7-W}e`+~k?NPoeLz#6)q5F!;pWYCCZshpq?Y?c!Sg<{kJg0=E zeb!he`qWlpwzX!s%2>^hD9M>~K=gXx5s7wkR+jVT$*~@1y6UPTB4PDkR9H}NlNA$rv z-qGwkn%6z+Q#Hoczq9RpO#QpMK#lz}mtw!n?r=_k0<@~-UT$h&yilfXuc@VkfMZe! zkUl))DK76!cI`Nc^QCO*d7yvmdt)10YZGb{xJ+hN96tKwh{m4^iG_zgx*J9?2UqDD zpH){ik7-&51?c+eHa#&aVwZhl*VmiI>UY~|Jv-hJSsu7o)tp|vU+q{w+ED~!B+wFn z55v(&szk{PTqCw>9ey?s;MQnfi^V;)N7t0sHzw>K?bE4)6(=q@B_IatxiLDcxW5nZ z3W(^5${#%&=h%HD?#P!tWtI)nYPq63JnHTz!4Xw)-ot8XOuZPy1~P4BN2K?vb`YIt z5U>&!)tA~chS>;{cyK$>vvZ>GYj%}M)7)EjXv*a~;~8C$uDIhjGoNz5 za&YeLqdzrVbG$p?a|W$f>QB3$50?rJqHk0QHrF@WRV6o*fscG%pBFvHYF`7SL%8?q zr;BZglqXO8yyWqh4dqG~HMMn+WfORU%XN=Cm%QnezN?C0z54=M8$MH8*40kQ&mYOno0BexA&=qD{wqP;R#~2bU{Vt^89z~ zUm`bd23LR-cg?uwb=i2AE&CAX1I}Z%u$WG_Wr_2I^D3{!by|T;E2=v4OmfiKK27=D%!*!R5y_1W4Th<>qE<#MEr~7Oc6D}IHW4f%Gm<+t;ME9k0 zOjtHuGkjQ$wE=`Zp(LdGQs%nGzlr;+N##G(6kW8ZX{X$pTJQ86l0m`dRKV$X7JmE^MU-ouwY965P1Q*(!QW9upU1t}*{a?4v4d zcN<#!l_0ckGFb566&@_ugC@2AMTJ{emqn*buh(VPrAwMXm0pKw2)%$rkqPkl1qC?t zWT_e+_wCd;w;~U>Jz~qzYW8q<@R1IP2f%o1yqn(LS4F3;0iYxQM-qKT_Ms`t@mbY7 zHhFYVTlGNdH&ZvIr!$lG{}mb?NWXs|G&=aDy3Ysl_s=nWGHkhM!5S6rNn^9CzO2-& zQ?cXl+mr0eicNxf_a~TvFofSI(N0VF4Kxc)!@0)wtOBfr0;zu86Zm z%}!YD$pL$D4ByQQLw`LW9uUzw#Wn56Tq;Tllsq^hD)jy`StPoe>F2-Hc<|7SGDc`0 zKHz1>f#F;^l+)|SfX#YUYZy)qUZTz=s%`rYTyeU@{q%>BU#p9bWGVbMKvcsb z`9!=FZnH--FXsXk)fD4B zc!5b|Ch2>- z(*<*#nIt-ZDs|+JxWvS5Jf?l?YNKkSxHRT6|Mj*4u$&I{hfyy1d1sHv%R~$*<-jXo z)Kkroj0lWY4)!vSeEvB3KnA(hWccezcVwxI-Cy>62W&RO0i9!%3@WTHjXUyi>>-P* zs_lYN?YkDjIf6Ai;t|qkQ3>1i`87sIgGEXQ&M0hCi=A zp!#s5W!y4ODhN-CCnfv^k<)#xl6XF;iw^-(#to1qUIbz6)(E{B*7~kcXM%A;JQKr2 z-@><;8FtgvQs$hTHn<#+Dxk^Uh=*k|1Lv0YY9a>1X^f$>@g*Q4YT`(v1ZH48^uTv< zzi&esh<%`!|~zopsWb9+&<~~jwJvh$2^JCUA;)hs<2v+?9jU{*a~bHH^9WTCKp8QMCRdXh`RLH@VhF@Xi zGT-z}i0UqWs>qz>UZ8YMKbP(*c9_I`tj(ZQ=*HZGaD{ET)A0e2JNC|&bX$7IDeD9E zGc-tN8m%XFJ^;<=TC)fZnH;cdpK9cw%e>&ZfTCEz58;gDk|nFtUN%9UccR$i_y)`*Fl?MtfSp&cUDxRi^h%oPw> z8jOMG(Gmu;`ctf#t{?I*u_YlTH7S1W!`14w>wEy~xM6k|-(&eqJZrSHiwnBI^#eb%#lsvsMNDCx^$CiQ zl>jHTA1iIpFqM4KI>oy5i?&Gn$eFofs^wKvQ$gFbElcV94&`<{>+Cu|5=b;pxVmx3 z9do>zbk#RdY3Th=D08&M?`sV1H02hubexYYT{zeqnBzvO``&<_Q|+E0hr3w(eX`BVx6NP zz(p3GAVeFs$DaUbEfhetR$hZrcD+nB`qSF?8g3do69)^b$y5OIT1T172TibtDy-}s96i`Pv1d5KSk_S1y1lrv)fXCx zVON#Tpd95g5y3$8XB5S_MZ^?hQ70XMV z`&F=>)mDRT1X$F*a0`w^RvERqXRHp+F55vo^z45PJL5_%tHwfNj8Y zFmIhV#}Wf$S!?6kkG-3y9A+?ACv&4D--Ym3B&6{PLYiZlfMV8c_&mN;f9=3D1|a0d zW}J+pP<^AQObza?Oso%5H+vlLa*9`@p_T9_aQ2{T7T;_ZoQ!Zivvlsf7H%M&27qW z+D@`F!Q`yF{M)Um?rqj}COzfA_*_}M<@_ld6Ee4pL-`-qQDcq?#TSOJ6qOx#Tvmg4 zgWiTm8U|Fp*x;tX(8yl@!@7BL(9jZHhS{PxE$=XJ!_&1ra`-0-v7x?zi+%jGLC97X zN?EdD|GM%T=;D*gR89QDylybqn;?A!V$$kA8V+ny$p+Z7=W+8uO#*JER&^-8BVx1p z^A*fe2nOXw%H(a+;uK)e&iL^7XKn57aE)pde_=@=As4BZ1X$Ae`FfP1mS+=la=-hX z%`JB%;iFyawg@6okpcefMd5x~lTjyo_4mF6OTV|ZpHha(iJU!m40Uz{i16}*Q_PR64N!?HA`TVu32<{wcDE3YV_|^ z4$YOSTds&MV|9|H@lA1+w@f!uK<)|_c6SS>B0vp3Hs+7Do9rg8v?~sFNwrg`hxV&H zX{1=Q4tvtrNl%);pZp8{exBl=O&a}Jz~aP0P5YR>nvX9IY%JDv>@^6};_0wLOlDWI zmvQtz-0`}m>&vIQtgB|M(P~>6oyA2onWStITIE2Noo!2G&Nen!$lf26mOd6LvdN_u za{su!%;jwJ4eIJC{Z8uM=bjE+Fxq?I8SC5&W^P~9-{d8M^g8fldYwKfxE=gfBz z_Zh}+;9`rJ+K((b1QidEu=gwVJW)9^H*v*WueA3j&FgGA{BAYbO;TND$h!Q?M72^;92yen8hd77W7sJ8M+ZXA9JZT1XK|{AA#u0;A!>|A$k(lnt zsau7!9`=0IK#{(r*jY5zC@AK4iF{x5hJ&pUy`c%b3~`767}Esy@42Vmuacgh5P@u) z{}usIM2`d=A!jiE)sToOG=*=y04rzo9#>gw zyz07tLlNb#0tK^z738Ijz96~&@>d4C3_+RpX(iI%NAo-##U{Pjcv|0>#aFe+eZXW z6iv#Q%7j_GUo?msoDFi9Xq!m9e;rLFJ_yE8Vj3)d{V7aGZI312l25k?{k^%ucyBJ@ z#=yqYvUjhgU$+2R+sV5QNy@i=>k)l` z*h7MuHD?Z-?9FUT1AyC>)&|>P_A8ID(PBElBulhEQ7Hu8>l!impD#SUMyEUbx#JoU zP?a@LrI+@eo+C9Xfgj8?^Rnn-UMYkJkuBYRM%-ofD#4{$yk}cKQ=Y^5@d{QMagdq&QM) z3t&uj2Yr#b7h;(p*pb0y(Mfo++&D24mJNk-1u%?S3*c+^&{~7BURq1+bLGAA8G%39 zD3pAmP?i^^rYZ+FPH3#VBzFhiEV)?>&v$P}MCc8Fqt_-fxX_dsbuG*aepa%mTkK2}9QmmKt(q&i4jYq$$@Mm!8 zfEfxSEy4xVDN`NmsE+N_7)bLVq{5U~qorSjyA~jNc`&Kvr*-6QBR_1ks^KA$W!N&z z_PbZJ$1T@ys705G&XL|p;;w`TaY~;lGm6s9C;x80IyW7z)I3lju`}|St89Xhw?Wj@ zhtFKCuaT@eB8RT)9~`>Ym&1o{_`c@m*<5ZOb7n_O|s=77k9?5jT`$feQ8&uxv3g7)Eiaz3*f*bTy^DE|Ta$}O< zGo{=^$G=0y;)g~Fe-4zrgw82qx5Z?(|IL9+|i$i$p?mt$x@hTztzKLG@lyG4U-^IFXRVk;ao8Uu@2z3XRU3nI4}?OQae_ z;aQllNpFv)Qyp(OUXg1+anA9XqV}8Ev<_|}3C?L>Zc4EalQ5^${jxS`zCyf!5-1ex zBu~);>(?Kw$2g*W797=VAQ2}w_pP?29&dvt_H1I`_cr$B_C0naHC$Eqom6)CDah|E z-sGEBqPYv6!GrL9^6-rFC^3FQJsmi@Y#u(kOj?qof5DM}Stuq;g0q%l1GSXv5;>r2 z6Zp)NU+jFWVNRYboQ!XcAKguCq>@GnlH~V8oKi_u8no5Eo5kjlu21{p{Bc;w_6?%p zth>(U8K}|S&4UMPxOS?9J@Utj)3xR97!tNp<(VwRA+OAnc#P&3)(^ht8n&g`(pn+9Uq?{Xw49lkq`TkVcpn~@5k_9X(*^$RcCETBLf+-)y# z{Wn2757I~PDhx(+eD2vw-5yuK6<|mEhKIA*DsEO7SArFV@sk~UQcgO_xrBTHW(7&V zNpEBSu{ZTdPPI^^;%CEwo_3Z77guZK!5fx)iIX^tuaxt?dEGVtR;nU-vV_Tl`L8;O zOl`0zCZiBCBiKb}-|7X!uh?aDBuQl|1E15F+J=s9G%s*dW2B$gom*9YE)T2TZ>o)> zKMJ`0%NzX5{$)^Vez?tZT%H>_e3mOF^=$Wrj)%FYJ1WdQQa}lA<&_k`jnO3CNr)1} zs`@hjx?|EY$wnO+ExFpU&Cq~_zG1V|LlGfsq0ya&mCTXLo(uwLslJ~z1ud;poU}$pmGw7UfO_V16QngPx$MFHMYWPbMfWlSH)KD$<3R(H4(?fE zc&qb@kRO~OWxhiV6S;kA{#pv9zi$4N zng_x7YO!fDqYZz9fqkde4pafe(q8a2LP z?TmYNX;IEvYdt-0ZelrB_nCOLbJWvz*F zCC}ub%C|;v)y)@^U*pmn3Mv9ql20W?v_$z09m&eSz+7Y>tLBOYB0uMBQ@&~EYO4J73a5CdO}y@Y#< zCL$${jJd*DF7q&vI9eP2UD+a$=HRLN!e%b9lQcC!N+^&ok zAQNC&9m?6KIub0@ny-<}!cC!38CbBbIqmK^(v+#|k0Rk14;xU*&j znNbv*aG{>$6O;hJn85$fp7z8t1_g;PQEmZ2THwFpYIHAD>a-e9)%lU{;s$Ptc%Ux+ z=w)}n9blaYX9xb(aMXF!c_>QTKV@>qDM0|WwHc>_f&WD`%X+P5INsa@2rme3s-gZ= z`^OF2Pj4S`>snGZL(!xLy!gGm!Ars-soF-S^^~qOd1}~boeiy^j$+3h7*Cs{acV2S zg)a=o>;U9ULeK~voGno+ZLQwi^VU9%nYOGk%mjON)QMyu;ltRUBawZj##7M;u2ILA zW{lP+->&M&f;EHs?1OMybAP`rw!EW_#{RoG1>A4RCp(mcg7)l6?7%G$66|wl-75Zp zk#|R4Jn*nVwXb1XSXMY=K;qSG#bFh5jgtl|C{b*r&#L6L3r@%)l}u1{#8{Kj07?v?bpwnben;i&=c~6gL#7R&+%q(UaJ!@!h4#- z6U~L}UhehUUc(;Y+Mu6W0L3|_f~s)W*#1}TbN;=d^CkeVZA*c{SgloWnb(`oR~nAD zyDt*OY$=z|ZYA<}B11U2kQBPzy9+BvCHr=6r%vtKE%eI%CtTgo&`eQLcMvnSA=rvU zs`Rzd#xgz8h=Zc@N&Alf6M~N~qzJpQ!)GcUqREOY1Ps5yGXM7xkeic>J@G*ZkG{~hcH za&peFs}9z!4~D!X?gx_p@l%y-FQ|%1f57nx9t`Zf)%4ZS+%bImt3!6{@vL1d)C)w_V}HK(BEdyf*6^HXa+zFq2SGh*+iZIQalzlv{4i;h z$TnVnMyGcBY6s9|nPZhzV3g4j2`sgSOKDt2yR{&>iwlD>@#sB1HJyp63u zCN1CG2xZmAhUswi-Ex5RMD_V{^g7Hfhx#v4Poh+@a280eV9rlrdnwW;&E0~g9#W+clW+DAHm zgMELtL&OwBr>VPY8)*v|YkylCLxQhSp2LqqCV6H3QSBF#6{vX^^F(-*s5}$QxOO!L zC@+4S(y5bs15zf5-T-Ur4FG0qi%0E8pmoAKYbilv9X@6Gzuz6w7ob-l9n$n=)S|{T zBzN`RI%Sjp>!4Ka+j1}xqeI!PD(7r3^t-XXvF`cqd6p8yC%iMHdg*?%egPD*rn06n zEQ=e>@z0RPg87^)v1bz;V@@19`;Nx?v~oC|>u2{H&mA4S%BPlb68$=z%17&{kASkC z922I{o4b!5I&fb3L38H=zdzA2R60~jj~!E~uu=!`DQa{zj%JMX=>;{n9dIZPc0>tD z2*c6R+bkUYgb0J-+{L7~1veY)I;Eo=TN0gK&!`d{>?2%rg!o0;5p(4_#@kB=hc^U= zgTu@+^OtSbEu?fm>@yff{qAVZx%k5*QK-&F7ah5m*$z+kTqU?k5rsEXX43tVVEg24 zul>W>UWK4^-i-uFwvoYQ=)B^`-s)>wC>oUjjLonx?QHH9b`nFf;`K<)lzwOp6JP8c zBg<=AAND*LHZG8&_<#f}Q(_2DzTUQRXRZ=N6$Y*O5@r5_>YXDCr0VB)KaiT9w(*KCm@~6vfgTq`Wu$%oeo;H9je+TKTPoc9*J%RwcE6dZX|o z6*p|I5vfpU{!dkWj($URNfGoUyM#n8MYy~+W2JoWW{RDJJ@!Dt{i%PWId@I0(8tc! z)Qaw>m8#w4bV=6n+rxZIbN(o7Gbvf?c zN%V!5<(6fxrsb~(3Wg?%spe-Wj*)ffDC*h0-%vWH(C`mT9c*w_T%-PP zB@ObG^A80L$R;nfyKCRV3NzKqPT3iVjDwGNeZT*ims^Ql1bR2kovsg-I&xKkF! zF#?9}jdb7Sdf|UUNJPS8{LjSbLN#*k0+cb>&c_7l2{On25IR43SU76QH5%Ax=~RLt zoFM56Ecc-2-V}NbWlSW|RWLP1K1=;Rxn8T4%8>gJ&RYKC+G%SWyK7FsDn4Lj_G93m zJ(>J6HP2P)*|>1yVg3O6v41X3LaX@)R&9QhzG~f6t|s{%TL-MKgkdvvGKZEH@kH%4 zY#Ul9k*-QhZ@2F?@H><}8Q7PFYzn6sBj1K?=okHCgi6m`wALv97V9?qOV!MvMsHu# zS*HrCWqTQ6#(ioZT_Ctymh@sDy!hzX>#^RhkmG52C!OaOzvxQy!1XyW+Z{^*sA1g!&bt;EH8APefyU%VmRQhSM{P6FC%jaj6-<9%u z(+8wOW3v?1G*_%vkt3E3oJ*s6zTLZ#)FMi- zCBO$*rU&lDXw)g+84hKmtY_FWv~Kf}TwB?hNMd7mbmBX`9Saun!A6k1a*`vr93$gcQZSBLZN_pLV-!sfNN@1p{W5~LDVywLxuGvQB zzLY)8EHm5n3iHu-MGdj0;|SzOZ1335FnMeYT#OEykJIDyy+p`IH(M`{h}Ojs(UN9K z8=-x3(y}MdduaGc`U=!vqp5)b19ln0^t-95$=g)tM;;z;8t0ttnZ|eAv4-I?SQxys^gf3|0e7!s&M_nL<@F1KKlN+J;B( zDa5^o{7`r>UA&n@CN_B2KMR3T?=(Bp$-vCHF|ib;0vZSlw)IzuZSBX&)y}2sxQH_w z{1e5MwuRcQkWrxQML5uDSgWvI5fk$P3u%fC?UP!KCAVoOS#@s7+dW*J_mu1 zj(*;{sl9461SHhXj_hEr8OlcXH!gJb>R+neq0w@0Y090w+!Cr^b9(vk;MHpLCcW`Y zSqP`u=a{JUMti2nAzb@9(si-vSY6=m(|LN&UxcY5ib<7c_UEl|jfGfZmGUh%T|W24 zEwvY1QHaR<<)Td>R)L>%)dRnqvi zmbh~-qKx~ntkQ5ZG$^ms&!eJ7U4A2+fRe-MCq)YfEQ+jc`NvdF0CJ4#ZxFmkDLw8l zbVNm<*5U}2H3tAOz}=KvoDbO1^oMoF3P7^c0RsdVdoC9KbMa2P8cqwgWyy zUk}Y^_@!H|NUJi|zimGdX+?O0K|a8wee4D_BNlEKyPE$VGL=S%H++bcfYl1ZQuQCn z#0CvMxxz&pr=?|Eq*X-}sJ`H%-mKkiP-{!b{F6%&_mN5zz}(}cCBgo{DvJyHiX>J; z=jpDi%NC3o_S&N1hnu4dI>!BP# zk%fs;aSaGWAd^?WiDXr(u8T^k@LVQ=dnG&LVeI5EF9?a2D+Fm5X&{e(G{9UY6dayc zgy_yo&P$|Hw0wz+Wui#6O@b}OBeo^$2x~^ht3ONH_@*neHmq*ReK$sU7b$0)Gmed7 zKkv8$uw=DjIzS%TfRGJi2L&mCMv>4+Nq^Ury-jxmdM?;<)nSg+zGgEab=W4@y8sCKQilS(2YFDvKrMhyp?Ub?UNN<7y)>Z17zg(OY z3_|;RH?|hGS=x@N9n0b1ypH8Q?Vi3&@*9w;l=}A+D^?ri5ui~f|1Fs3C`)jV*mC)8 z$2)r6z*owQBtbEwy*0hns%A;sn{H3<8L?izeUFCFv&CTSDL~_mU>5mhVaT;^;GjQ^ z(jDGj&W<#G{%{%z;zi9xfvs6wp0IFZV1FQoLtbK&X)E({nfV(nTHxMIbpPS_{KUs*mL z9>YwaefQBZ^KJ+S3ByB%>`<5m7vRDm(Cm`eWsS60QOfKji9pqTWpN1lep ztEQ`_6JE9?bpAwWn`qMSvtMYK^`|Jo&ihk3SNo$#05llwTz%_@L0)Z1>5RPfv*`RR z@;rDDGhyC3-@}gMb*Hh+(OYZ*$&epKoiWOvBbPH%%9NVt*#Pn7BEfpeW3j=!NCKyV z*ZjxLJuyObsHJbL==tHso?Si9wC9|emi=COUihTn3jjqw(Mt&V24Nc-cdKs2a*4hl zNJX|B>OIURd{V(DY%iIKdOiIy8^_GEai{!TF`I=?fiu(nPq1l?U0{~PFlpvd{2eLG zeGU_o#-#E4hxNRJPvz~xXbSTUrtb%xkN>cK*`4Xmq+483!!@pi;Tp2z7M4kUdB^v5 zT`8vw#UC%|Tw0*OEZyn7(`t7EkrXJ4Q7$ej6PNg5}sW`j??9KkG zhO>7bIWzpRX*g$K?8&U5CD>-+CZqt$MkB_V@9wpj>Lc9QY~Kjhjw zg-2@F;A#;*f9q=b4g==tKe|eYH!8VIe#iV1w~I+ZVOh$TG6{S>Q|z8%zRN3asr-+h z;A)sJve~5KvJ>y2Uw)1WuBK^HoB;azsCj z-bGdiCN*RgQ64nChU<r*2Qfh{mv}s@}YaOnA-EXlYn(SjOJX zzY@(icsPXb((G$qC?YA0tMXqdujbyMpOL8#@6hpnV(N@03T{5c%p~)`WgXU^>@8eu7%CP9x$YLtFDcedsKdmX&6hJWQN4Q<^^$!<|(nTeYtF*x?Vt5-$ z;p0UnAHJ?JMGA z&1-BeaDH$nklO|~j)ut0_qlpGe+k@DHH8{@G*{QRx!HpcI0rP}V%ftI1-z7f(RWYs3x`ZrtCY`F0}G}0otzOaap*$0{1f7#%Or+J+1%mL;WHgC z8HO*DZVd-o?(pvjJ_f?+dYr9Y zS65n_U7J0UJCaNOVb8e5YiW3*_5)wq(cGhtcgG%V>!t~3WF%d+=kUF{x+Q=DRHcrn zj=5~#=*eBU#+=P(`ZPTe6$6;RR5G!QzWnThhMWUEf9g*!hpDsND|C1pvOPT{eA$pI zXJ_0?ZeP;9alaM{gjGxm;joZkMLwzr@KBGJP;QW4YI+)ycn_sJTgK*)q=%wqQPuwN zsl@(NS62UDhy)h&ke5}318YWA)FL!gVKq(odCMLVkgMoK${XjO_f#=4;j|}LAX{3a zZzVn3uMP)YKPJ?*V|_Z?*fGhSsFD|QWH#ml94l3VFwMy}6-AZFXM1w3*PU4GiJb4v zhgdjD2?$a@-y6;M^Zo216X1{FW)B%{7|Yae0t-P)K=2=e$k4n0v8mo|!Ug60pf4%| zee59mV4h9{y{3>H>g4Zc?d-$1s8uVqJFBp(Qt2xk@a5Ywgt^fBM4B=Rr z8{pk#j@B67MA>bIxj`uwx+l*PfirXrk)vfnAAnq3F!=!$04V0p~K=MC-`PZ8L9e{ z#EWQK-^1!rn$pb_iwn}VaME!7rq1G8CZp(ZkTnrRDnPz^XNp05H!Ku+Tb6TJCFGe9 zU3doDqaoS_=@kqm%A%DHIk*r)wOy< znNxMu99d{iHP&CTFF6eM*CFxWC-~Jm$3kNT>7Bvk(N>eK(VR(|*A=_YVF@T1sB5b& zJ|TgP4dpy;Oeo(dP{OmflAQ2sXMlv9y_sAyz#v9V3D|rx~DIW$n*zP97OA^K{>#WQ5!}Y@$gsgUn);O0a z?UHt7d|%g)4v+d4pZ$)WN6<4Lp0?){Q))wZbg)go=Wv_r;^XctN{hwdZV!gAi`MJ2?Yb{p8i?26V8FrduM_%oU_HOK4ZYU+uxy)Yb z1Rm7+8`o;rY7RuVq5elZ77tAxdhtk5Q*3{usI05kJ}<_wUNHt<3r;0)3x{5z+F$1W ztkIbzCN4Z_VNHC(+KeMvIwR@oWcAHglDhTQ0(W+qs&|1OGm_LX>}^P}VpJ{kyoFU!KJ3#TJJ7y#<+bThD5;24Ra9pfsKBGsonA+3|4+KBx#I%YJX%U z_vglE{SkpkgQDuaROW-fh0208bfn9&L{~JWvU8TPB71ZxHB-i2wBl|oKX%i9u_YE= znt|*PQG%Ov#?+;edYp>_Sooai-)vnzF@IwI;3e`%xLaoV6`ycoeqf96wSjFXb{|VS z@uy>HL%SH~$y|FB(K8;4I~GS~BOWJQKkQ&8CKzt0eG{%RXHJ46SV|d_9h5?Ua!_21 z1Jt=a^}QNx*Aqev%IQ&lvTiL7*#sqU$R_adx9z*{>!Ck6vmyYx>`WZP$8gYv4LsVK z*_z2@nxA;Wdq>OG6$>C=nlBZ=S4XC6AiVn2z1qEs0ACO;rf*owIQ(mYe35^6%~RZh zP#PAvvUs&N!@p=q@ogox=me(-X7{{)xVPt6(xHJsqPDNo(APh(L0?W!S95V%jg)P^ zsW6ebSt(o1{C+_{+{?xDSs0C#s0ThKso%bX`I_eNUSLGOiZ~bYR6P4O6XI!YWD9QP7`xJi+-B8JoI%Zx-Xaz8zfCZRS;PbsR!%sB zlcel2szSO0Yx!oe5o)FSmy$O^V|uTJ4v%`JMy17+Ug!n2L3^2*-7;CvMA{-oN2Hrx6JAH zB)#LzBKivjWNkEgR(n<}?*`ct1hs9FJ6qxExwGMp4WPzaVwtqSu@S0@?_85AbWKHs zxG9c=qz!JY*7YQcRmDua!cix56w4ZR$lk~czsa@sH_ux|5-9NA1-r3hJD5KxlRETL zyfwaD@Boca4uTzBnheoH~z+@f%^LIczmD3{}>wEs4_Rg5zKCXf6u zKe(B2UzK3`D5ZRR^#FixDjw@137aI8t;%kHu+>#POrI=Q-GB1q?PdK*3BS~B@> z7CBwR$C#}eou@*jWwtB%W$MI0BJWqeF7ALka=_n{cWTb)THrRY(|XT663xBn-qssQ zZ*ADgy)O0JdX(T}Y&~l;`aiOb+u-Vn6Y^KVGwTjNE#@*cOw9}D9#dM>Bl9CsBT>gp zYVU95tbAG)M4=s$|f)LnBG^${M0$>9OY65YWTRY?1TtVWWv5iCl_(# zxR&KC-#D;$=JY15=I|BZg=ZrARl;wi_>rjLBO_O^L%LEQh&Pbxhs(5z5Y&N2<8w5A z;OgJt>UZ@MLz^en?YoPU-rjd^XGze~U)90%JClM@)=Rg=YuZA%Z8SpN#l3zAXwnb7=~?YVq#jaoAcwtK6~)cWljz2RuJeYEZN!92@_{^YXq zjtK`Ez#Z2zcOcq9TRv7laui-mtA+Q+xZ%5*YLd<~^_ zX(1G~(`3XD*u$h@QeL#mK8`6}C+qw~uf}dtExR=F)F&m#p2=2ih_g$DZ+fhMVD1y`Op0U>M}=ZT zqEg>;;^XLXek=yWGqwfNA&~C-qWrBmd`)gUE5e2!DMGiF_mzoq1y|sF7)fIju#V;- z)wK#~^PkA%^)(R1gqeB!E9fKe2lzZ-F;WiKXG&KAN>gfGOAvjYx{-*nm3Vauv9PYU zu2*ged`nfIf}0S?bD2hb!CG#VMiF;bDcON%iQFo%eJA;m)mD?*$W-Yp<2c$taz3n0 zGxy1w-`H$%$UWw~9gw{v&s}XxvrNjFx0kjp0T=$h$i4eRXD6}?9_?rqGsl_?@b&tS z$rc&0sj*z#S2xG!am%W&m3adyMk{5PHl-@R0>L&(g3vHssb-c2?k5^(WY;GCs}BtE z8SWwFUS&_PHgqo=e1F$j7Z*G0?hy<)Rj()QDIvwTsV-EO--2x%L|L{qyCp{0OzFB? zOTb|jKj19{Gv+FVKP__83c43s<}PD1=yK^!rXO}7@g47=ws8Ty+t+JHtD%Su2lD}P zGV6rSh?KX69T9%T|JzK_y!}E6#a=O8=$bR7Xad6}yR#`!ZMhQ|%WIwCmmC`Hkd*gn zi$7$0KspObiuDB*tq(UORklI(rP6(A^lp2-n)$UYRcUx|TK8<7J6P`c>sn`@T&wOH zix@}k8l(FjdN6g@$S%+~n4o`oQ}k6L+w01)mNS(RH5yEtfWw-+8o?u%cz*sDyV9B_ zk3t8Rh>bHrrlquVL7zCb=O?bWJK`)Mno+<-dwZzg7EfV@$9BJRpC1{kyI80x^=ERi zu5eO$}DA{>a7VYP84SSJ5U^iqf#wShwPkw)D^r zM_0rH_@H(Jo`SBxJl(ijUhGS!`Pcc^KIZB$6_D1y@`X~AaKro-GiTo_%@EwDw*9~h z{(kh}W#h&g{6xJ%uF{*U7>RM-U+i^rsbbjBzC-BR?p)eDK)gO_4<3#Q zCR?spZ_Jj{YYoEcmoLaOjGDr=lHZXNPI)~p>31pMg}vum;tI&E5YrP%n3pqN{D4`) zCh4D$S)e6|Ms^`t-T=vUA% zM?W#R^%Y9oNGHilT*^a#`6E2kwQ}sFCxuvCM6Q3aCrwX;Hw!iX-4Gz5lNdfVpoWM` zPFXBClnL%zI|XrE5;(a$5ym=*x86N-_{j3t!^M*l$SyCmJE`2;r_309D|>BUrMi=1<5*&k!< zc*Za-RB@TybqsZ&I0KUlA}CA1rv;C9nrjDIWgjI`JPb@#Qo;(ZBk^tO=DJkq<-;A+ zG4>97hwS)U5H!U5D9l1?px!0i2W>#$$8*+N+kIBlR*v70tqg4NG+CmjF0`<&0OpXn zrM?UTTSJJtlyDJ_q{-A$tUDr zAQk7yJ|~T;>i)}qhN^6HNp@>VrP@ZzLz9y_N-Ed08D-_RIH;u~o0c=`8{7?yHBsDc z?7yimhsT;k`r+i{hgT;<5l<>41jk^W^_jTT@LbcYDA2G*30wB6^&z!V_d2~*s@&Q6x`U|$uBG9GO?K| zU}_oc3+*}0XUYOB?RkaRl_Rs~m|^}k!%XW#1&|rIORZ!70M$`#(VhX(ZGE2eG_4O! z+2=!3#Q0*z(23uLW<#?I%SqgNRb#Bsiw|iFZQsyoD!WVtQk>DeUV0(%9mh(vO!iM# zv}Nm#V?UPOXjy`LOUCLsr>XDIl53he`dCK$Aw!v|&wPJhRe|MpL){~nyqxv8<|Dei zB5)xrV6ac>_%nB~qY6|)>`{SYWKjjTpr@@JgWN=apex$3n(wl&DWD98WBpUDlz$3n z8?@3kXbvT4YU}s8^!v*D?=sK9_4=0-Q03K<-km!bjaBOuv&3PLC$qwpll|5(=l3;uE-Eqr(wN;h%bAR&1nTFd3g_7dd=WxK2 z*rZN>V-GUEYo7I?Ul}^SU!t+5brf62t#4r$49+2}#dVr{&USw9efC|}-|fl}t9DYm z%lFUO3U<>Fgn$$>0w=Myt!>#&UGaNdSUy(fngK5VPo{g++%z|#DaM?NJQ;t`^ekmv zNt%N6LKr~k5GU9t%~)&^d3)I*H}FnlvOCG0BxfW~+aVt$UnyKImLgZ|rn=pKyI-rb z+SWI7wcl>u(K}Ii@{m01O!$86$gY^4s?dfy8o8;#F&fyUZO=fh;+i>Fcp_NUTuIPn z#R@1ggRX?3755_~k*JgoWspkU&9GDcrD2DNa7;39LL$Tji4auk>64JqSk#IGuatSyRo_*ATJ1?mF#3onT&9kLqw1L_m>Syhn)gK^=f6_#8pB`X!+GcjtyU03UL zRJEENSj!|6moKUT*nCn+@gBnR)-uzk7;f3k$Ywfc#*#elRk@I|b7z z3=~(G44#q}#29P!QK@>k3Hdj$a!-2*)Id)?I6krzC-%FL$o~cu*nt$&2vxC(*`$FqI z+qf%wOJ{GD^MbG_WWmP*LjGZbF?l6H)rrcZsW|vO0>3a2%nEioo^dsS&0}^A@7>`P zIuDyV*gu6!sY9)3$b$f3S}df*S)AThfbs6p=JHDP&a_32~7501S2Q{phKLx$SHA-_S@W-04gvzP9vDcEk0 zQL3V6YxSlF)P?ptOj^A;ts;LF!Ql?9-E*bxCAwjci>_xzW!Oz^DefpD3k_lD zEFug|Xeio38K06xbyJ!1yEk_4pz5l`WD@80M!!7a>MPRjkLwRf{>1U1oeq_$+hS1f zCUHq-`~EjxKEwBtkqKf@A%cfpEuoc5F1Umx+Ri(U3=rrXvIH+VUTAv{{o?bAaa$v= zP}H1HPi)1mgSxLY8_1i$j96}TZEjq7wW7b%nnq-P>+%A371b{(k*c8K4et5 z1C?;!lgAR!-V7}{@(O8LSzVa~R&Tw_`l>vGfPOq05tz$XygSAq$l%eutolYXO6Qmq z2((M?hyYuLzmQ3*moVv}t0*U^(qc2@%fvvZV%viAM$j%Ecs>FUjgj*$>{Ch1AR6L#$$sTc=?zWcWAdT( zGky``C4{eRFoL2ZsSB}ZZ^nwvcGhSxN37M>JGeU~Q2TxZ>dR%&#=|}~Nbom#7ZWYR zQM2p?J#Z|f6ojlob|f$vlxo^q0#c5i38{rOWbxX^LiXaYCg)Q_$@mU(2vxQl5o3pJ zXnm4nRtPRHIcU~j*>ml=%q-uba?ir~p!?oW*K=9=j&J-GaACaCuJ7Sr)$0E2) zLH`Tm_^X%<>@Bj77y?DI2eM|60I2vNY-%u;{9wguAXQTUqSidwI1HaYS81t<7#p3GX}QkdRio8>N`kRhZBsdgA?U-}PX zs3B}<$)be^KdqBt6PyD6+XkaMuIVmAU3N!xcgS#AQ(2#pui3ivQW=RuqQ zH}ndmb<#TcltcjNv5Eme55GcN7?rYgcjBp1Lt9Cy_Ylc3-H&7C0Jgt}t0uwK9uLqQ z%r)~jnoGK7EJ4UYnp)E=M;pf#BiZ^22rwB#GeTA4Ox^S1C<;>koB0iQ=?eA-P&9RA zY!|O;Wa-Hx1ym8CvVv{8XMdVrvkzMW`tpx=gKx=}6cx3VScad%zM?s0hhh6bv5Zi* zn>+_Dqs6qxOjSm5bv&E%g_kXPmJP>E;ts7IEvpPw@XtrKF<(=@#@^4)9a^%bq`$o1 zOk~*wQ}sZc-R;UAm^_p(UQsJzt>lp#_d#>!fYVna-}t%eqMixI&&-dKGtHc5&YR|p zCH^zSxryt&cUz;?^-0H*jz7Q`Lmf^wZc5s?BK^S!t7Lu!E|DN6zTTW!KcQ~!lU4SD z((>BmN&T*cG6DdblRP=SBxM;>Fc|rOWK$D-qTzfnyAmKzc5gaQr2|P z6feW)Q`*5R4YQ1iR8K^Nn{!&9C?{2vYVU8+iY%iJEwRMkYI~CuY!5@~wIqb|_e#4Q zoyT5Qx0M&`T7TSKOC9^Oe7?teX3>37l|rplDYNgTA@GZS}E+)v6X@> z=d4Sp8w>;9{$1Uq?&>{rw5sULr)?pUmpgX{!x44l3MpCs`3Ls z{IY7f2I{7O7)g>23OXd6biZDUjs<%U`{dvFa5fEE7N16ZIM=c0!>i(caGj2Ok&au< z?#Ew*Gv7hHkzfbKQX}LjVjcztyK|WVln=d3Z#ssydyNu{4(ca(=gD3E2^(VmSyM>Z z1#}f=DVV$HbA;4Wp{%u5MfwDa86k~(t zbt}?ea%}h|K|@KRBhCNqAhjo#=;MO)8*BSoXw;^%cJvk5vKvx&J%>8BgYAe=1?<}n zj-n{s^IrR(4HcmQl2Aw^5#ws45xOr?Su@4-3rV}5*8)>RloR{+MiB$ud?TB&N$2g8 z_t2_7)s^;iBDzmXt2>@nn=(Nf)L63fo0pa}XNHTaGWvR{FSA0uFHfd``h|D3z$33z zgqEDVeSe0fh0W*#q4WQs1B}hm~Ck|<<_P7qb5WL?LNAIBLiuQ%1M$1=m z_FI=6`mOb!43WJ=0*D~GtNshx6LU<0o=yYBsgSETzrnu_Kl$>owqVz2%gP4y&FZ6+ zmdX0YkZRyVyWj3|9|v~g&eU+*JeNB@eQdd0Zh$piCxhMYWsS>pp=6?(|7kgYdm$*pL*N8Rvvo7_x<%sn zBSrwoo)IV+MF7awoQIQBQXhR76V`3t4^LPN+tXD1LuYs){PMNns^{C{!r-73pF*UFJ3l7iAXn2F-x((q6XUlq(|j*seZk_f z`sl6TZvnm^GF#$XZwu^lZaDas?<>1AwV|c9jM^w~2SFgbp{*tM33qw$YCX-F*oMg5 zvvX6=YP7?vy=SEEc3@@26`ZT##fE5P_w}jDn|I`Ub)#kV>*~h=S?P?9aZ6I&4bZvc zIRwI|DO28ly;#ML>h(?csxS8RwT-mB!c7$GDQsRGu}s#3%U4M1VeIl~u}#=U_w@|L zQNS4rWy`%V`(BM{9POL z7R?cvbDXvf;w)<26vds>U9Qlx(|VCbEUJ*v8tmcb+LWa;M&9)#y}IfH+|wiq^52s> z$XPmv)#fCHV~?33OIb)+td%8vbTzY#extl1ADVb%DOR|dt%u4eV-w+!ZU zTBAz*1GiqM5wp1rCR@YPpn7VUC3LN1iTHZ+ZFV=2LdJxP$&Gr38;JBpxfjdSQU~El zIPwUj%BK~hblVx}g8;z8ga9GZI;Rw4x3XJTq-T3}JnWG?obMDkqD;AP)~HE5Wm409 zWkLy?CT>%3n?Ev}%6thVsp6c%@41|xTn4#BL#7Afk>5iY3%H)Gp@c0lO;i~865jL^ z3}=-ly1TISt&DsSwp50WhvZf!hG;IoZ%cZ{-QH%#@ zLT{5A2C6`>JHMIQ03qgr5@&R2p(ouEFYldrru}L5oc-eAKbBE#8P$y-xVcU4t?uky z?Z*-TBz3+T!ED)o7PS3Sg(~nLgaPgmNasKiN$CGjMEVzRQbvsNk!fiyXi#9WPLiF<*ng)Xvm40bX@zgBx~8G6 ziuaatk$$fKSsa5WAD_{&5&T%g#f8HdY7G!W30`NI#)*Ci*Y%o~+oXqB&w~#pa&|e! zF_|~fp<81d5&}Ns2{@Zcw5fapY_I71zLSUg>_j17l&o5(4cgb zC`F(1JuRB#rC5k+vcAWhPC!eWURY^%J98B$XQ)Q_$NC^y`Ac6~?YJOZ@w|u}7dRcp zk4lkA&~2#QOI-nqDi^0U(k>-tVjiW!z@}+1rjBWuLJfPGsG4zmoyJlPf~A4*iHVVa z#TaUR7B6u(W|yu==@^2J1qJMW9Z47st)_V3>F-t)jryNOuJ7 z9haW2tu{-RN=vzPhdAM%V&Y6=21j3!ag~u;rFX0kbSOu1Pm~$76Lqmx*O~4(P9pb;gz6t%{ML1J~5} z0_pTH9erd%$r)CZ=Yn>u2ozRx2MkUcPhqa`JF4$wK_lO zyD~eAFs8%CZY6@r`4naS9^oW29pv#=3l`{IqokaWJy8^WBT`zhTj31m2$e@}m%?4Ucz_wYJ0vIMj5N6f#Z6+s`%a4aAYOzU^8)gkuVZ`q~$o z*4EQIUS86c(C}8`E68Thc&^W_&*g$pM@kTbnAMYwrOZg0BLlyC{bcZlHYcS2}KVe9rucEhcMRiE%@Cv|@1{8734u0F89`^KH-WuP0d$2NtPj+hT4~y(JJb}p+~P_&z7N%|B}cz{ z1k2hjquigR+n^Xl(W?!|-jN=xgm%;B;7Lx@8P=7AUrFc25bXYRiEv)+J_V) z$^q?XEA?$F+0*tFZh&-!LT2&F%!UC+sZ2@Py&9voyY@QVly6{r-H?czTdXlu=<$!# zErmz6sEggB0CFu!kv0w&%f*s?l;|@x47z^m94ptf#YBu-hgWxaCt8PEhsYgzV0lCi zirg*FQs!1$%E_-g!KjQt^9UWE)3i{jjUeVTFxDOW-Pa;ss2akz(%C>Y0@9Cvo?M>BSHU339=7#*8)1Z_CT%aP&%v zDpM(c56Vsr_K|(YzsaY`X_g8jd28ah3hse0Y$v5H7Jb}*DyW@l`J%R=QM|xvl9YiF z%)${XBaTD~YZo^>mg<`QEEu(EBu2A0q^$(QbT2bbV;H!Pl94uBo)J@r_K>!S>q6^g)_I@(S;uQ~ zXUf2IIr76gv)rDiDe-n;ZEffU+%aL4USXAaS#L>&&hsyY?(>OnF%8^=N(n2R!{4S1 zRjNMLsD)1EcUpovGM!+)Bh4$eMjPo32C^f`@ik@y3o$K!FUss0XdWjwLi4x~Ku~M? zt(CE^aBr+jRg8;|yuv#E+Kw}C$vnyekRY1|?HjEiCB`60 z&uG+Q$O`%qnOh{r_D5dfi?giD6uh%*w#BvoOxN$^O{xTPCdMu2mP53eEW)WDm@#m% zm5vZy&pp<@v~5}Ng8y?<|4rkgl-J}6HlME@X=T9D1jRUr-~TrNUn=Ua8^oUyD&XH5 zJI_0NHg@!(V`l21`v*ma2sd|kQ9UQvq{SUh5?6`#>6dBhu~!9bmaNmGlJgyJBpGFW-HKk|fU-xiTUI6KD$^i#t+}1wct) zH`iqKyDPN^4zPniAyB!!O5b>@sN#5l387P{*6Qldw0r|A@?sR@ZkUkPCP_D>8>G!* z>)l5W`Y@83Dy1_0^~GdQlSu2(M>^Me6&w}IuvRM3AnO<)_#xv$if290_Pi3E?MZuo zNyfU=dbX;%(wbpS*fmNIkcyux!A^>Gih*Rij^H#^WGw{&TTLB?NzY>irc(wC539SD zVw%-+5F`#>i*z$t-n=eO7BZ0AC$%5AAKU=BY1MuhMDkb8x>}TO1juFD~gF zQH)RGlhBkYM3&V1YWp;nJa)T!pJ`d$TyLzbAC_}LczWA(5p~FAT+0VEbV1)=2ql$s zn&;ioYWIS4in)#ikG;@16uIkg->or+0VQF^e#14d7~AifmnY=wpC-ekXigztgNt|7(9 zSxev2xKzD6P^^=FTd;dVrV@3&z>P%wGM6Nd*sgcv852@gl6@%THse2i%yz8dgK}yx zqq-x-ZVpZEudr{lZ)7WLN8oD}kNy8cZ!qTz{ps+8$2FPua#1r=h|++#J9#e$@$LK! zt%g=08Y)UFLnBX@AWE_y=R^7yE<0$lgj}WWG8fsi@1at6++&u4qcNOQx>ALZ0wX3cLrjEEYOdm&i^uz`M+!` z<(zoiuWYexhf_3r45EGm@n&axHv5pAOa( zD#Qu!M)1?YLk6vS+0X{qToBSj=0xEjkI$iNVtb6W#uueBiAmNl9ti;VPP zeg%Jzcd}5`6e2VzO?@}zdmgMJ6O*%8$Xiy?2`wR+yPxl#X_*U_!*^=wD)%a?f=>y$ z`B}^cI$gqRN`})o()tFwuIXQ;EdJM+$%Oc~Wf@8sG+Wk7Z$B3DaP^Dw%jRg5-_&e5 zfk45wu`g-+S+!QPXIky0BF5!Gxd;va!>lAJu%9!=J|#_%l_0QR1Zcp{p-(I zr@jA`ph+xFR7H?BD`}zs zSScqRjq}Ej`djrF3O6zvxF2ixx`0Q?8jH5y8zS$kh_;Vn;OcCx8&Y0#^O6m1pm1ug zB%ge;j3TEY?lD!t4Z@FSH<%`~^v?>>TWk|Tl8_`T zC#+JL*85+PZB>rkFP$feZlZDWMszfUp(_O^| zX{E8mI$^sl>=3a`0(5L7;q){JgO6iWI}d?})PnPxOD3>iAd$XL^BMmzgm`C^I)Xz4 zkfRLAjEE6cC$Y*3tw*B zJvNeN$j@sx)Vtvb`0_2%GEg%7#1XU?V=)EU(Jh}?$#NNPz-9*FTj(p(dZ({ec!yPv zXd;*tG0=ei)6+rJ{tzDLoo}P}-<++FjEgDHPF>v^a*4?Ku*?Q?aF~l))Rdgjb_9lW zn9)PkrV%rDtt4puR+-0N!zCd6B9!zy}w;0zef;E=iIM{yOvs}(QX9d5MLJqkw zN(S>96Y_0KWbb=k(y?P=jABTZV%){T5Tw(B+>~1bkRwVlmg1w_QL3?Bb=S9i~t zV#GTx+5;u(QgbRv&~Xng?;1hQmZ}(Xw$!c>@*3_gm0$hXHL54U0BsurkR2ao;tG34 zPiB|W7lhwk6V|W>m9!%BoafL$i!$dV!bzGfTAUnUqA7T8?hfwz#B=j;+|6D#7hc)G`xhNIe28%o*B}>8d_+ZK zFwSJA6G*g42X>F78e?d>Y7}=W;k0y*_=)9tLnPLSxsa_vI`GmjNgd2$U{v^af)U+$ zYn9%9!DwBuj`H2M?v;tGSne!F@F5WrG6u5o8-?-o@ccI6wh1@D`TZ+BAGvebEItb9 zIiYOIa3`ET_ZcvtFXl+5yD%^V^fH_ym6qBY!c-OLPMsl}i5{+J=(CHhaFDF3y+dFa z4Y4l+!K*0shS)1!ZDS?jVMa{(6MF-}hF?T3<{6ZBn{=ih6J+!wiFd3zfsb^wL5%h%6h|_uJnb;?0;nC zl_jeFly|4H_KGaMsuTJ~>k7@&bPfm!(^RGFdR;F+OD4?gI$LU5YB*a@6*61(O3 z083hU4N2h7zR&5){KJK9j^s95Bv)>K*_><6^>mnX*>&tX{{T2>XmSb<^4(e!!|xE9 zNc&ib@95>`RIghfOyi#rMo8=)w~nGZgx@W;Y2~T3YAA|i(p73(tjiS|35|qVp+jh5 z4{Xq|*}FpQ8Kan~;@F-Ng_*&axCxR%@Z0w0(Ic`jDt6O8t?vF4W&nUIgE9=Mwen6D zl}qm+{hHk9bXTD;(R~;e(BX0@Bl9oH&;s`yXy1^*!DNp<5!wz?G#bugxk@ry$qLTe z1^Yssq`*1KU#RW1BmHey?GDju=R|?FeW~cBLqyNj+-K4HrgvHb1UDV{0~tsl1mZ{= z%4jg1(IO4i8N{}u&Ou2rPTCE0w^Uu0U#K4R5Bf>479LSW4jVLqx8n6}nv*r$EXkT9 z?FaHqS`geHQAv`oCV#O*!ZBPPF@)IVAWKw`E(7ra$JP-AI*24aQXBC7W%ruNk5Y_ur~1<{GS76j-(PpVB^kpTuHam6in_5yQ`RJ>CS*BEW5=}O zP7X{sQ*^uYc4eU1Jfw6M*kQI)yZ?P*BM~TpL4E^2n%Gz^u=Oj$ZW;^N;(|@$LYgis=sojkcH16jxdv;iLRlWpfb=GMpe*S zP{zlIhXyY+Ovj|5W^SO^uR;ek2Rf)(Y*xCG38NoN$02yk7SZ`iNnc8z1`)|f(qcp6 zI3{chnS1dTEM{j42}2k`1yA0&IPnIP7On@(ap8S;e#_Uk2qE*ld0vkDkEn=XptxdD z7t7)|ti9Rf=Cb%%?EVC62w1OtZKmiOksFQNWWc*n91(9%z8yDj>aNf^0+dePa?;`0 z<35Id9-^Q;*zK-H{XUIuFB~G;9~wQ0f)$39DpU}2wE-QMV_-m;y$D_T?HXfZ1nge# zTX4i7m)Pz-WWX7I?WzW?J?y1;I!uw`GsCk5&P8oKC@Dp8xB2f0xKKp1w7Rgm!7V%e z`bXUi$rHG&TP#!VA(_tVjdejTs_we}qt?48^XnEGw^2H8Ok}Q+k9Ehl&rigyeJ3vQ zRk!4pY#p`^G1rx3OEzbFVkn*KePzc2dF0{+?01M;MRJgL;)QhrCI*;s-%w>;Ca4Ct z+A}0Nl0#^Y(we6C{yQYTJmrNKtIauj2=a9|0LzM2Wpg^C7lIfTdPiJ&7qI%}((+BvdL2gl$q+e>@@1v$N8@{*CShiV*7+ zV@IT1_w1|6nqy|3@ArINNo>XG0k-`DqNiq0w!g;z%Y#poqL@AJ=%^3vSq~U(_kw}V zFsRz6fz??$8(!(^?8+c{a91C_gF8)GuW;Cf*)^u{$Lu5aQ^0%ez4ra6^@c|6!#&Hm zR_=fBvpOj%%$Mm&V85ed7G}(GW|Kj~CKQT3S!3)P7UpUTG|YoSW`sO;vEm@puuM7G zoUe=u<^h@Nnk(Bs%ibdz35JFmapnFSiV>Q!C$OK|kDX}*tXI4A;xgb}T5%=4nO|a^ z#3)fujBiLWJ|54530snVuWU(K`A%}&54!$21-zdq&d;uEX;D_znzBeDfAsM|GX|gs zQwJZJEpq1dFOlaFyjNwcQOfX)IHnv^T(0AC?PuV=k>pVI5%;-e7>bviR+0w@2v?b_ zv>;o78P%6jzVsrq`6UX>jdd=Jn|d zMa;HEY3wcV_NR!qmnXd7?VXG%?Cq80e_n1m8Zcgr=BVPgNId|T-hkjAp@CqyZl3rz z=0)zifYGafW`IDI&c;HmSgpj2I3WhDa@p7$65K9Z1p<~S)}*kRda%2Cv=j)An2kuQ zAUHajM(!z=phv##p8ecA1dBg-;Fe(Q@*5*F@f>jIT#5+tiKW3;91}c5= zjv+SJF(eCLBTFn%5;=Cg8X&Yg0~LVtmC$@-31IztZd$9vUF$EDDEm%{#Z=E&POAk| zfu3?Vu;-*+OHeWFZ4bXfGBXysYWSctr`U%op3Hg___{pH6(gdlm@JC0gH+P(*8gG2 z#0b<@#kd$eKZ7iez$fzCr0ZY+l!Ws*lEtk^znR5xe1SxUmQ79VYSkMsbcP(H+PjX18e?uA9K8B-!j^EH zU-_yWlL=JJQEaTR8#v`*ZEXW7Qkh_HYEO6v${-7~4HYm+3J-jxFBv;EP| zWJ(AAo_DhEv~QE|KZRT}C{B#uXew?RBZ~nUr!bbTI&rVo+lwCw6}0eH!GVC3@1LkB z6}MPk6!R@1E~rRRi#31>Y81oYi%IX9RqPAhi?cgyJ-A*+dKv{Mx{7e#3c8!khz9hT1mnsb0Huht- zEu2h~_&^7gqJVo!DF+~k4G$VF1&Cbf7hoEp`3uC=6MMpFgB}N0@n5_=92XtK#gc4dNd%d6R-zfFeLKCBmC(E}oyomU+d? zp8GPyA~ic@v+ zks%Ap8}tT9nWC6G!RG_tHi=K-g4QJOZmq#9m?st?i%A91@s1GV={mP}$~(n5y_fCf zw;&g*738A*E#C(+a1n-^lI>b1GlF02`PAbFet{2yU!X<6j~cXluXLIAtSnMX6Lems zTIi#?Ckr&f%B~+nWJW9?X^~OOFYA~yzb5nx{alUEZ@D2=n|AGgQz>05?7!#T`#;he z&DngMy7NvsvC2hWco~z{iKlE!^;Tp)df|$7A9nQl?EkE#&5^ve^B{4`jsRqvN}Snf zvW;uFGp+|Diqy{A8Cj&3`=XTa~MCnuw)1{s*>d^Ae z+^#e3D+D9O&-HHGc1j^Ye5O89b&`y`)hOnjTk&~#i6t_e*O3CV$V3eWeToqMu- z$69kPb74`l*t{pj++l9Jsork6)7?)@fx3$UaWecpz_5L5-KX$$b6w3A{0Zwy$R?7% z)INg2y9tKIr~daUh#FPaC76Bz7_buCX@l;qQonmES*DY|PiwK*V~_V42J?Wf><<-Q zJo0Npe*)osSR2~4fl388Xzb@>8?J1MP@aWeLH;u*|Ji<4e8};_ zTE`FZ??3K(G=Vlb|MhXAD)%e;XONS3N-$Uv_Yo$ToG)#y)Jhlf9dSGDa}}n{>Z|5VDEZ12Q4D)$U5!HMah;pVKJ3F-`NAsare!`C;iIjBqkp|(>U_Z^`>gv$AAX#7)rqd00Jy%q<=sQQm%j2KT9_W=j~C# zygiEa3DcjYY;op%o-wrD>jKkFMh7|?WOP6rZTXEqy7OmHEM+Xr0%1dNmA1>xenp)i zRLN$AD$!9XGWkt@78nutJE0w$1)>yVD@nhlR8zN8&aQ&w@uuPb#u!_dlCdV@c=_+P z6cck76VRfi05ruY#n@sI-=?fWm=dPQKjOaJc6;~Wz5vzg$nTGW3!Xl_8h}ED zp|>RXOwd&^phdeoii_X3yw#~gL{joB_DWl`!k?;-+jU@nHgm7GcZWIZR&#zu#)kP<(m<|2~oE7M%pk-TO zJpPc@pu}-^zpaX0Vn3}mvx7Kh@==pmssB51=htqrp8eI)uDAsFytw|`;}TcKk+tDV zXr4Z+)RD^L?%PAhYeOaKkcns&mo{DOe=r!ObfxGst!uUB4V9Jvp&fC#w%!sZ&s(m! zQlT}nqZlx8PCGBG{g9{|Z?%0LGTa4Fc3UaKJl6G<$1@`yqd8N|(^DAeRdckDaviR~ zB++nE?Nh#40ytqDtCGX5w$WT}qtubf=1>L_#x)P6p~uzwKf?(le3g{&FmlE_o;4jb ztUdLnx_;%erhfFgY_~H%-lQwC(4=D`{6@_!=ckUwi*NsfTu&NHA%vaIUn+yn9sM1B zktU-sp2X$|%gJqv8`m$zZ0g#KoeGu$KvI!>&o+4U*Uiy7{JU2aDj;!;p*Kooi&m^cLFrqu{XGNxNB z7OC0Q1zKSFlibfp&LCgn64Kz}%6F>8PSh+a=DX-oae3qoC(KJ?iXf`l_mo^7(G6${(;1Wjer78%P!%RV#p>robB>YD{zPr*Qiqr(a zP&{W)pahB8D7MlDDqvLvBk)oUG!q*cz+owFenon<+_Hdw;pV+3g7U-7hHt% zL!c+A*BanAfh31kMfWeIJz4`voQQq{x;^FtTxF!xXPuE(0E@8Pq%DWC^om;u^VTtp zm@X|fh>eS^mn6=Q*AFV0g_lNR1M(gW?Ub<8?4ZPqu82?g=J?tdXXAjP;S zJnty#I!~N_=WORJ>FAMXrJN_v(m45Z=PX_EB3*8|Q{GvuEn+O@Y#ozN;6NtLnnXB0 z-7w`DFiJ&e5|pc8PXC|*vuVdl_|^6-Qw=eD78hgB>K-E_*vOmwZs@(7NNCTE09f+# zcSr+?1WJP0w#N6|xEaCtn4TMv%Z53sFI>X(7b92D7TfCuZC4Y-rC>S^^x9o}I@Q&} zNW|En09B1$=Yv~owPKj6#gzCrAOpA5#ab9V6`={CZnW3vJ2yC$e>l+^lNeJz339s97DBiY;fC zi>dY(`iJf722#_%uVtfPO8|zELaf|5Cw#^fGsWiDw(!H4=+L!i)7!WijC}fwg<`0j z6a(h0kCyg<_FGtc8e)CuOV`FRG{|jLXdb6Q{4CNb5(0@s6iu?tOE#- z3EhH)d`X8CSUJA@(qe;DONZos7&v)=%rOQO7SjQ4KFdr;aC7*>Yt*bRk-7Zkt`#>+ z7Q1N^$;0C~iismjFo>}=Vz10uH&%z85CQuLkB+YhdowY3>wXyVatb&Y7jH@To)(jc z$$m&o!W)%bsxiU=72)Ft_z)k%gY1>))nrRdClEIsb9XZBAeb%PEXLYn#3Xx+a`#zh zg%Rtlb*6}TDQgYmwEhYW&TH8BGzr?FeDTp8CB=top3W(mF}Uy0kpw`iK^&-^@Ya(d zC>8tPrgYN2O80Iumay55zp&k0+$w{*NaK4(You%GvqDfgai$us-&E81b(7QNBwk2( zs-c(|RNRpCVW>j9hw%9=l%-@5`~*26pBW}BG<>fBC;7AdS?+l9XpSXDUI|YBlfF-U z*}gftqL{AqzvK9;>>cQZ1jbag(%DP;l>RCI6oE4>PC$WQt^1~TrFqbOyZr`f9!Te1 zvn)PVq(i}S?*K4N{VEFL8k6q>Tz&K!MEJcbIc zV7nNS_O_kTz23OcIG3`!G8|Lu(Qle*&VW`3sD|1iv(d2Dh7F$BHU);mXn4(fseQTq z9%b8umc!)1B2A^{b~fh2~?<(*^}( z;?^0FhjJSY)=uty%?^Ja(GzzA*H#}k)yJ*Jq?|9ObX7UV7lBC02EAi#(ZT7!U4Soz zY<8$K8_GtOd&;01k7X~06@!9J?ZxySK>{^sTKU&O^|$o(}b< zsA>~-4c1;m+o&_o-|Wb7^+6jeSFxt=HGQJi_0DLVAp~iaaB90oQ_f}EbM}6djg$B9 z)gCObh!6)%Cb9d_d}Kin>l{G({CHLQ(W#?TGE?Gv_U+QHeXm=FsYBWHdHQ!!Yn=(A zTkiRz{q7O>2pOMWfi>Z~hI=oTQTsw6{nZM4j_M;%JAttGoBBJ-Iv40Xef6GJ!pr5> zSz`(d_olc?8h#guZAo~7TWRms2UlzP0JH4?w>wsOms>i_ceh28jN9zCoU`pDp?ncO85lUCn(Lt8mf60dO*j%R8fcjp(;= zPcgleE?MtnVi<{$P&6Z9 zA50VDS}$nyZFyLt$Nh$6A=1E2iHi2o2pENgvX|}JYF=_IS#z}NCo_|W0y&`XM<8e{Z5iit>$X*wTSWqSphZ?`|EaE!(9rNBi5lJh z`-HRTHSdlu-G99dxuLZI zMupa+8+~i~?`im)osu%&K;+uC}v)Y0%uE8T9i0` zauAJo>~2(~FYL#-^WvCd+(vOM&@1;OKZTZO_31E_=_)Vl0`|sQXXX;X9Fz zio)$QuK)?lyISm|wZ_0ixGKI@Z3vZkmlU+GY)9Y8Aaf*>xWqtoTYzmqeBYPn?$jr~ z;~pd^A2;Bxw{BjAEC#GpHB_^(85P(dOkAU3Hwm|`<-*%{dPCwHonvg?BF5MC?Ub(A zu3Ip^u3tHB5R;QW#|>mJxAAu&%`*?<;Q{(bG6#ar7pGkDE+Dx=N6(lr1bIB1h;-{J z`4(Oh5{0qv=1kB-1(O|Me@nDTNNwO-g@@4odOn zd1;+_UZ@dj(q-kYeX|`|J&=5?f9Y@^8DTElKhUtE4D}>-BG# zdwc!!p(thTS=$sl)Hbyu-7I?xa-O<+8Yk*6X+RHY{=h&c-4)|v_zpnlsC~b$c-|zE zu_H0R1u*}+9W7y)ny}poBteo_W;e7i7odGP%gm;p64>LYllSOQxO~ zwZ01=A(s{!CIc65VOv682$Oo_!~h12r~luZ#!k{SUT^p~kR!S@h3@xN_%$)K^9shE zK2v*F=ad z|HImwz{ORV>%)n?Eu_6I(cYS9dkaZhfs_Ej1(H@s?2VARkZ3AIYsmluGX`cxX2^i; zm9wAO7q%JpEd;VcRv?KXYAZx-iPm1Cz5gb-k+?xj6k>17_q^xK5N)-+-}n7}f6kl% zG7K~4yvy@G@AFoGuxsveB7k-MS@_ljx4>d1d=R!>yw#0vXQ?z=y}I!_UT#ipP7Vaj z{5yJ!;{!Fbcuw4+^zr$$=2g;H!86l1&KEe=c#{0ls`15sydNq`GIaHCYg`Rue`vXIXtK4rRnW` zHDl_ydi?+ws7KzI>ssPkLP15gnkAF{YPnfjOduf?t~z4w{MZ|=G{_@wvwBX5J;hZj1nE@3Ho%RmGA z2k!(AzEIo$>ft4a`e^6NnL`2fDsg|yf~~M0L)|biTXR`@6;p7`hQQv#-F3I_+sa^P zGem#AYKBUl?AU7dE!(&ukWgOGyiEFOrPk802>tEDe{7sle<(dB4qb0WH7sH9jYD3y zUfE>F_R`ha`eCAb{mG&D#BrHXe?9-uiODyO;%Uqo8Tek;Al96j99gL2S0uD9qo6rZ zNi`De?qRDp>&W60OUxqUURRAhZ#3%0pXq$cy~cKZhgD7P(-o?oJHj22z(2$E8jv;~ z-pVdSu)&%Z6OUw&?HJfGpxj5vRXd_E4|j5N^U&enYD(Nb)TbcQ{|FANxu&VO zwqLWyO1q`(eS56@%pNNm>p;#33?<~OZP9U5h?aexn7eRtEQ|`qsR(fy= z7q2bDq|sFNDwhxn16=z&fXs!2TX=aMKnB|KnKWAb_lv@Lps2JozEBvn7~fMGNbC{t z)|LP|1+n}rbURgWhEFb?Dnj)^K@RB&iFw)TRoVhE+CbRy*+$*dP`~^H zF_`g@)ER;Y|C4KQ1bnEpSNIwU!qGqjY^@Q0!=br=l;}_~V3xxkg z$U$?YJbk6C5~~e7{Xn{FAIG{2Pr?=BG?wPtwlKLh!SH)h_a$GFYFrYRg!Y+ATo$)k z8W>kz*tm19JQ^f%WxKMeR%n{4B>d9cbdyHN4jVTtWOvulFp5!7LZv59<$0}fMz~P8 z6>Ot{yOw0a&Bp8UhWzyYS{A2DsbqRs5n2+)mFHeUIfzU;(YV2+HHmZPykL6~P$Mm&1#?*T$R*Iz~AwzlG zpl2SWOolO0d)V&torg~Xa*hXa%!L(98k@#!`5_*yTooT5kC_`Cb8%HN(?d0aT6fC> z)m7q*`0-|)@!0I1s(~|R*H-UZt>S=BihE|25xBy=se4naQwa&#dxubA(bYN(8vU`} zV|m9O(J@)OBgiBxx$t8vcAW;POl%Kc*dNKS=qsa>e_Lf=4oxTatwqDIL@*&Q7?R+j zQ~6ZJX1~5-=wTYY_AP*{^9GfIfCQ*NN1aixjUsDIQY=AwcIB$X7PCLkpVyed&PnAB zb7a-obc;U(Mn}-V|BJZ0;S;r)6FkLO7q+9N6X!aqMBaw$+2qRj#v2-c64$)7`F6Iw zaYIF8ER#bEQW~v|R`-A{$vvP7Wz#(dvyY~@2dHK29W?VD4&Mmlwru&id6SbHV*P%gUm8!J#(vPLlIsq z{vvvjV6*(~Uv%U)^)I3noDy->Bfk;iw1m9vnsCRG{PeYP)$nfjl+VtpUQ3TGaNg|1 zWiZ^?jZB4w%bMpeD%ThLC|>@b)tn5cXSnb7DexQgl`&?t0-(3Jl!=???$93w1pK{1 z_MJE`rh+&=bbha5$61-l;Uf50CeGF@ZDG=+1IU`9QBK=aVJWoI8ulXCJ4MO1vH1v~ zo}VjkPqf`b?>D*wbB+%8_nQ1tEN{~Y% zfWps21Em}3&vF|v@?FM#h+2d8RePezq$Kq|d@HnhzT@1bZ{$5y%|=P@TBrAn#DqG!c;1M3lE_W<-MZ0c#Tca;APhu#F2pA=m zTpEy_H%c^S9h>FsY_!rECi`&9h!E8>qKfyG7MIidmLE}zj)&s4?+#k^;`jQ!Y##fI ze67U_CXt#f(=F$v1{n$*Dm@kG>J}hAVUh{v3^9g3wt7_MFEzpGNs$zhXaqK@Z zEP_UcdMVY@!Y31Eq%Y|CstN`|ELu<^L!z-t|$OG#*G&=d$vk{ zb({lyBDXvDts(W&QsTC##*K@UPsPWqY+HAQM*J0#rB)&BvhiRqik=;D;tgyd3`ucQ zIO-2mQ5rKh+g_qD_>tNEFe`^86}WR)mN-MP%{|PX69$5QceOIyQM)O;3paHC>moW( zFtsO1j83o{1O+k|7vOh>vv%;{-E9gM-t2#D9 zF_S*1=Bnn3aMG-84V&aPr;I6~wh6X$$26TJG%>Zj$>{PmaIe)<&lIDFwLbP~DQg5RQhj zfa71nO{gj7{w}=Hw|hq2M+sSBnx!OYpk>-)(OHqxLq+$SN(WWTF5RX-8M$k1_tK)1 zi!Ey|?&^crRh{ntZWQRV?ae~44NucF(9^(xZ-UfPO)enZ zVo@9UR|pPN&csKNI75C8%>zxG*#eWJwUwN>+^@7mJ;%#XK>OP6Wpsn7N~8)ybs0M{4^%}9 zNVX}lBH!j}Ao&S8U7mx6S|j^dKH@t?4yAr z_P?cNn1dzZO71RDjk)CcOYL*0#=a^tN*>3}=i)O#eX57a9h&2%{1)(SAcJ>k0hl4z}Y9Vwn@qBS?B}K$| zCavj$@CZdi{&9C+Fe8}3G`q6vBV5Jx5hRS3o~^ckh9dospth=6x|b^fW)^qAa^5Oqswopkxy@tBP*4p~E`Zg+zLk_2>OBMNKrvr=n&gc(a(#Ttj zfI#%V%TI+RCHQeU10}#J@}15KvHX;>>EPie$jkn42uN&51k^h(f(P05v>b?vWgMC#Ygg{ z;8T63)_0h7!+y{(&m;Z@ggW+#p)s*W@Xc$VNDp$i*cRiNhyv}^+d|}~Gr1`0h z12*RTQ!f?ik1a5kmnnn7bMkiwN2KpzSHL@JB_<-0b2Gz7EvTy#u&MYU3Jc5d3D?UK zi?W0oEwq9K;(kvTRHK`Y-Ch|$<+G)9?qwuYu6_`2U2*01$I$_{U6gwEISZ*vZ$Bn< zIu{9Cxb)N;hL4$Dz3>}Yn*BTt82Ejv5}q%MX3xV!e_R!l{6uEW8DsMu^OVKL-rH8K zPP^@n+u5-uSBSFcblwhG4)#H%fG5hL{os0Wgv2@6yEcf=i6=Gbs@MO#eNsS2lo?M% zwa+0kn!X_KPUqfL;SM4=GPV4Fh9-m7{SI%0_BYp**J%fVw(u1Mhtu<^rf`zmC@!Hm zFGNGxErN(Hdb28Eg8nTN66&~OR5=h69|+HAg^`u{!ZQ}(l<+OEQXmIIr$zcj@nd8^ zT)R%pohL=2c~b7sCH@|#kJ1?>G20nzFW<(*=|U)3raICB2^KUN#8fR3g)iN^?mo~a z<$uG*k{4}1ybZua`17)qLqf&EPTPU}*rV*w6;w&o+WMxnS2PYiY7}}_A zmo7s?1wwDvu|IU)tO9X-qOI7KZO6DQ@nWS4<)fx)OYh_FD+Gg@4wWN|-^QobVtRAjEo3AxAY_w1WC&0IYV^IH{NXFDt0y8Pg1t5-EzHqh#5iX^sZFL+NyZE+`K%4iDK-;NG8!HWD@ z>|yg*jy`5>>({u)-Q#?oIN6iot)Xc^DY-j0fjfg)=h`e^FA|Y5tZvxzFxw%1MZKg0 zV}Y^u16F;*8K&K0hpvwbVW_vH^5e<$03R1)TdPVOPXi`VOdWw+XLh9-`dH->P1tL) z9PK~wjK230y4dd<_XSnIFs+utNB_g3H6J_&A=7M8cE7%7UBP9{efVi1YdLqu?PD(b z2LRE&*}aJmDL;3&(FMt;7HPa$l{?NEEdK8oo*b3edN@e;4<1VH?>w9?PRQhyOr`1b_sg}o5?Y^+J@_@>Z-0O1t878hQ0hlsW7(U zZvY$>z@u{D3Q2#ltJp#c6EOh@pg-na| zK|zO;P{v=zbkm!dj=8pkBH@Zo%R;W#d76nME!OnVXUBhRVtwvA$Y;B6zJ?pQC0hiU z@^;!H=BTfY@1Nk_#Iq|QL1qmiD`_WLYJ&DqA{YO*Jw-(W;$arl1s~zxi+q4 zv(7Q-n7~CCLVnaJTgU{Pd&5x}^;}E*Wsr{FYZ;}Xe)NbFT83LdHElV`RZ?{{RTSXSKlg&sAgq3o|K)9or-enBp{j5j5E)_OqgJhawxr~;ww*Cr?QDT-LJMgO(Dt<@ z?$JWWFL`VYhqiJVd&L~~+}!C}9|l&$L5tL;FQBDFWZW2sx;!&r3S`fxL;k_rQj%}G zm3GrrH>>H8{lz;HUh(+D+0Yqz2Xp)<>dqf?(gtt6T%V-j&Y|*Z$1JMvb8;Tp+mp3A`k|H+1e0>L#^=Eoco55}lC zp7@-xtnps|nV?R?*^H2QNvM0SF12|&_+R0_mbHg^sM2o`QirFRQNV9aCNzYoUCk%M zp)g!Ig}ki*# zay$I$BAeEm@5#=-w{D3qqp8Q2L7!0XkEDEGZo3`+my!#t%%q69L(^!&N^{orc&X6< z1xEkb0(qDHj555D>6+4*w|Vb!{+W+NEm?WF)XVw?nc4k=R_>IpyA>mUp5(m_)${Rp zRDap?PPw`Ihx?wyfJ|o8yk0LaOB4YI{IaI1FyIVyL@=(};J4b(mcaY-|3&etEBtxoR%2 z@8=iLAYNb*yM68Toe4#sS5nXMV>SV5A6?XNkWamFya<_9e~U7Xo?tUpA+yq~yTbwOz% zf4!QIu(La2pnmePrlvo?H#a`$KugYNR+X(1_OhayR9 z@8Q(0xvr~q?ct%6!7Beb*q;>F=Rb#P$}e~Y8+;sP8o}i_U^iC=aM>;=xK;Y#)1WvU z9d|pI2w{d^g7YR^Yqe-< z{J=T!Ky@VdF&dxTn~C>nxZkkXtKW-Mf)oPPbvRh42$g+V`4YXZBn!?xdObku5vDMj z_>$6o$YBH9%xoJB&&@UhNWt$7X`1Cj$aXn<313LOk9nHwWEXP*W(D;in6ztLpyvNw z$YU$t;17kVnD--l0l8#5f*q+kgcw7(R!Jd~{aWGcS|BF0lHd)cZ+y|h_6qljMf4e` zD@w^>U&#Lpd5W+?1bVW34WGsS8x^Fmk3+mDFg?i|LrwLHj$5aQP;byH!&c1s+t=9t zWa3WQKenHPy>>0cIqs$aOl=X@7T1B-i-jXa%17>O17N0+7vXIIi)(YGiOE{QY)xSb z@ATb6Brbd%Q5m;kE*G=aHsFVNEt#AoC;20w1y=eXEjNkbv?>o?eobk3aMtmsz~*GG`m^1u(W9{U(@s-#v%p_nb9WZ&zP~! z%Tfd55fJhxaG{!{{?p6^I}#eSAFiTQ2}7kViBrf6!Ln< zQiZ@KFU8o~nKtXLWeJ@ag(`Ji;?IX&nLnatQZ+8SW^#GD`w%r1sk-9-3f%HketG+> zd#NYYlOn&Q3^Ud^{4??ba9noB&|6EsvpaLgBw5R_dT&p%C()6RjoY-tHx1I2wSGr# z_u}e&yEpFmOiUeCVpWG1`h zWF9|*=0^@?@BE+l^eFdq42$wT$c^gRVGMA?aVnr?1RXnnWo7HZFlg*RtFgxt& zr)2<#{1f~35EG86bX+{Nr$oz`m~rN1E_YXqvI0wedv}i^MC}e5O(1F^%5`P!xn2>0 zbE9{8&D?LTP>1{3K4I#L@x;vspn_@9_PlEDWsbjsRz}G9Q~{`3lL^$$F~U5B-zF+x zafbAj4Mj93q#A(Z)W8%qVgQKEoH$m-&xDOD=4S$v^oYL2U!vy62S&HqvkCQWv1;77 zQ0$heje_4`6m$s_)gaATMz*BA9-WOzSJuzmJzVAF{*2_Q#*Z~E`{!z6K*_TTGrFE9Qx-%W^@g0kp zj#6nO$eBCN!w2E*@3|Y0IqlO^t4jVMU}Q&lFr~13yS!8!GHIkuT5MV^-PgngL7CFF zr6-w&qLGRYMGr+IbeG;WbRAzQmM7RRDO{G&=#@o>1k!p1Zr*$WQ9VSs)N7%ii`>36 zA>1MUBE=kK*mTOk#1vh$C@b%<7na$mXLQg(B?hz^9yEa^jreIrd6T-1{3i8}=I<8& zt&%wtlCo4)tAW(fypqH~wFhMlv?+BOHd4#Ra5{u&K^G3#@btovGLIZ%GD^Am;!C_9 z*^wN9?3u9@zD>QgaLOV+?tFrMnaMIJltj>Yjjx?8=gzcbb&Pa8-OB7pE@U4Uz9xPz^cfhrGp_!|4DqaQSZ!+8jBrymBg#|) z7rd{y+%@3BHfnZEI0|}ZX|SR;n#?_^-qV~Z9SIr2k3&REN>7y31b+`Gmd?evug%>Y z%V?QDCZYmQWHm|bW6tO5Rx``EdvN`7Ki6q3nl-lb+>Q3_am?!pn-ez2#Z0nY46qgRB|uAi)GB~ABm6ot$r(Qj-Y#(#r8i*@=uk{KnBP{ z9<4Cjzb|kua1QeqJNGOG9!(9Qlj{`Dd%}BKi)H_B`8KtEDvhJ68JB*)P1WpT$HiFb zIS?+Nfcn;fttR84S8zqrARCu-D2Z0gC;lFF1yjJj)A4%++&T=n4U5CNU+WG^7k4f# z)9f5E^FY%dn?{;5*#B&awr9FBTp2{Cq4NOr8e|ta zyUqKqQj*K0xlfxl`xlt8d{#SQW=6~A6L^hf`0RlO=$CfE8xvpQ#^ikLsu(dyM(IgS0-^@i=uFEaZEdj@yL@e8>3 z+M=0q=I6pf-l;I0t&eQ3fU+vz!~A!3c+kn=)O_N*MBH*Fxnyr|1N^@EBXh?lz@rfV9mrL+f9sDA zjMe2)T~e1@7sH(mezSJi((zG2d3`eb^r7=@d1R88f(Q6_O=;Ai>RF*N^>`a+rRSyf zZAO?rI7a4BZq;MDl_G*;+J)ibV4+g5gs;5ytC$$lExD8VB{>!nq*$25{_CgGBBm*c z=?<3<^F=FD*;Bbg28eiaH(y)HL{cnzTBRQ_82VioMUfm&tv}$*Ft-7?~<-_y-PZCy2gbF z{y@(F8-WY{F-6Oe4|L6R&2%Q=Hi^uW#{g;SN^%W!C6Q`vdX74A)$)7qX>Z3{;l38z zu1Eoa4^B-5r6hwWQCmZywnXdOsJA5gV}&F*5c=cDI^zsNvNag13S9*O!v$l*bl4r~ z_K{#TJ1pchXMP6m`~fjxf$S+*XH?Vwgi^OYmvgIY2#Ou5#74~R&YgQ=N&NIT?umUH zp&Y6#wjoH}9Z(HpTz$*a``#)M3i>|M=u5>Ik%51dz}(b7!4Fj*y@mxcxir)USN2!= zKNIRwEXIqaw)5Rt;9nqhYGBN0?m=nlM@;)=i{7zRr?J1Z^VV?sL)zz-`cKTx)!z~+iy!*m3sSXV10FhiuE}+r=s&|4`Y20YjH0AeR;m)0(y2gt;`?pFFYfq zvU@g2cSyHrAp4dnt_5i<`Ex)&Thh)ETT+X%Pk^s#wl2JI%9*k z!8Nbe($ialnah%TJC*-+qn^d(=<$3YHWF$k{tIb$^46ND>Ohl)Yv=y6=3GI`pf&*l zq;<0;t&y!M3MZrGlo}Gc18-}s>@HB@8hXu%_SuG+=JA*UjMv5!wi$s5mSqB-qmJ>W<_RO{Z(bzoh zOQQb?O;xtEe`KaMndMFWu~Qajg;g(1+gCfEfoz}c!fv0u#y$Ad0{^J5!*@a9L1p_Q zxC*r=;>+{>Vt31J(!1VP-oy@;5=UOn;B!N{;&4`=PnKo&NPie_Y7Qu^`rj#6u00cH z+SO3vq$2JFI4FrB?!kIai)BoN^WagO8g<#PCNeL@v*g?#k*<5x9(4lN+AaN;$0$vC zj8vPYABt2FG4mQMnTBy*^f*#uZdkkv6Dtw+K0I#R@yN_|Vv&xg{+sUqRa;&(}YC;dHT zT3{tK4+_d5O(O(pM233?P${-hYf89kEClN(yq-Ic(giyyR8XG3g~N_pkc8d_*%0en z9NbcAo!SqOBP~XziR2#Ojq0L}%ak30%8EwK9GZ*w8`!R?e?}aC`*haY19#CsB}K-HgQYlHwhVqIftxl67mW&>B1_S zR7+%kXWBQ0FtKlJ-xyj|x8I8y2J#)b{t)mUL!S$Xx_ z6e(CxS26pb4WWqU#NT*rm4~iB@~XyibZA>+@X!He(Tw+?@xbJPx4YW!)mA4PVs29- z20VImFL%{_rff%?ro_UWDb{g|LLNGgPiwnQTA@au!372O_PR^?+V}lyJ5Palg@pOJ z15eA3Bz&mtSVq)gHP7U&(x?N{9IA0fci!@J11MkG!j-t*&56U`bdR~mcq87WC*@xS zlcdOy=V;j&EKdnqgJsUNu7+=wfqCMVL`sa53@0)vJsTY@|941R z$mPPUEq^L;-ifufW877|V_acv9sQ+MWA-kk^&RErftbLSp%uP9YF@j?YnSk;wM$gC zmdb*Boyn!lg(zF%%Ea;ZV6ao^%a`;|)1{a|a{ydKqm?~Fi@Z7(wcZrma*TxO5dzpSqy~RQVR;5<{R)YBW!EZ}9t1OUuh8+;bRl_vy zxNrtthJcbL2Ar3J6-T2qB`5rbz_4SSdbNRL9e)lFZA;l)K+5ju>F7~KZUpaBvNMKo z;pNSTcb-#GZ{&`a;suQH?G!n-^J*s5qk9pMdOueJoQ3@+ntntOk4SYoAM~6Ki)0 zE5*AN)=J%Y-8fkM(L~&(`>+vb$n~Atej4O-Em_#kt|=yVa3#BjJzL2>6ec3DY;LhF z(=Dq;>SAsgWW4vGVdYqg8BDF&{Y=LT#-fg(!gG(|*V{7`TcflY_?-D@6y_Q$juNPi zce{{Q{jb6Vorv9^00RcROU6gwb`*^+uW}l?6Y5gyQrQggx%LaSQ)IM%nC?}nh}tP3 zN%?vdEq<+;slA~#lRc&bWPOscGLOgAv2};`jBq*VXC2Z7CmBqlzQd(r?_GNl>g$Y`lnKu`)+0KS9DxPILs}Qi8gis%43T0QMiAc zCPgSJ28xvKGj*URQCoo@_zy^$uDlR^^X1ql zrgjCK*g((DtfS@3Wqn6|=Nu&o$EqwkTkbxVe++P>aXUZDbZ9L5gDv;0gtp8M+pfP- zR|Z;rM%7U7a*Z6;%yK_RuO$SsA_eP7>Pc#erCU{lfR2Qjo`fAaJ2s&ksq6macvkn^ z!uBUnmZk4lrQfwSj?E2GW^uCjGWJzy5788fIgYR5?uze`nVcHAM&6mZGqd`fJ+}HB zR&f_?_OA7Q&3O^>IMte(MV|IjCfAx!&Cn)cUxlGyD3!<$&e+Ciegu=)H_3ZGiAkKL z513fi{*RG2)MVFW6Loi<8mKMoeS!nfpc)-PR*#TP<+ORosuiCO_^jY(uiWbov>6R8 z7KMF((ATtyt0ML}8Mx?(dd>(jkJ$Qv)OPAR&$e$mcpcRes&NB?tcD5YL!M)M_D!0N z!UJ`S^}Ra#*ojy!ilpbsu$?qQ{L=9q>T@HEZ8inI`OX1VZbJDkn&ZYNBvE*2ZcvC=kjUeh#!zAz6kN!(1-U=dihT_eI`^J?FIJ zv=UpcAaITI5j*`tt9{f~HlJRqK~fA7&z6e{9ABzsv!rkHX+W6(#$VJFu(w0aK+a;< zvZMTk5F=dbF^Y@WDd}Nj(G{J%>Xlf4?>ml;(RTtFVshd&};k!hXE*s zf6HU+`3&t9One%{qx@<6tH{OQ*H^ed!O&}=S*QpJa2Q>(!ED0s?TBbxF56crxc3$~V~hrSKiDn24yk(awcd%Qta`1N zaVNb+i-7dZ#uEF52emc2Lg}ok0fs3YE&ntAtABup3+`Open=DbimkL9nQUwt0R zC~v3!L`K+} znuz}QDlFdk6X%FyQYzxvG4@4vDmjJZM7Rd_0u&7CD2m;3D;EVD!sK_da+Jiayp6Co za4F*OB|1uCQj(I`-b8i~5CndC3%w4=dg9i9p5}0s6q_;e6|^L@Zxv{=Nz6lnttPc2 zsw0YN_FK_gp;V(dDWgh3Z(Hz2mS+S#lGEz4(&3>tV(5{4Uv4c=4G$&$;yx%6YSi`pVDfMPWQ~!kCE-3FO{--K6W0u6QO(v-4EBfsNVUe=t7$&+$sQIWebdU6fmsgnMQKArdPB$BQf;BWeKw5!^y*Bs z7{b0w!({2Zmhv-}mEsE>`P_mXwQ`l}Yg?`4$+)$9SZ|(cAX+1EWg43v2LNXqRTpe@ zW!;u?D|Uk3!H(@n2(j(%OL)Z%vYmXklqL`4-RqIV?cL~2WxF=W!_vQNc&nHprlE?C z`#jVw_JC}Q-Sa1vYPV;}p2ey>rF!c=bu`n}Mjb#*trP<#={y~X>BuUB_K5SYy7s!; z(RXlnKt`fq8}yIM)tFXhm>|VO?LTW0&ttiveIteM1F%C?P8t$a2V9)zM=}tO;lCbs zEo_O>;RP{-c3WW2HTN_yns6hT1H%i=andU3@j~N8jMPEXv6uCSW+9fy zOZXi5MyNvl;6?tYF}KV4?tJ(6xr>0w>>o%I^K2=>Cnu!f6J8m2bf{18f=>mfs03O|Rhg1CG<

      ;Q%Z9^&$vbDvhIa_!cG(>h-@Bpvm8Z1Rd7Bd}*uRTxO=9cRm5 zv8QmCd|R!D&%15Abvut)%4#dMH3yEILiC5I#hQz6)h+iQke@QfbwHs_#o}tRh3_4z{Crc$T|Re-Nss4ToE|TCBT= z1V>|_v8MATb`LW|01cnnxV`xn&aT^G>&|2bnO@=MUR~i}Zb$@WrNs!zr7-bT8R+2_ zlxnyk^N!wf%l?PC4ryt*x#P5CKbYI$bFAa9bLx~Kd$Z$7^#XrISI*74o>x>qr;6Z) zACV4tV$9mI?T4SSz-#Qk(0$NsEZvi-{&=aTl3VSZ#kgP3EZ=*i(*G;hOpkC7%qRq$ zV+M1z&TS9JDU^8@ZBcp2{>KY6E|YviqmODi?;zJM+05={{?)=MA?WL5HW0|eXYQUX zeo9xrN~^Kyo;q98ZasbzFY}xl_>V3&796T@O$Ca{_yJh|hNB-IpT@kLaD0>1u2F-M zc>;Z zh_-ObFry$&Z=fi;Vl32D{<8oU!``W9qhOJ!lK%e9)P73Thx>t&Idbs{;sRyRa>8;2 zj4V`aQ$_D<3}TL$!^Mg@@IBfxgQACxMuVm#1cd=~EDo;|pk+x5z`!(HKBmnk+*T;d z+h$QWFba-79^N=z0Vlic$^wl;UD`RvK1+&xE^ATgpGKbJ;fP z{)1m_W^#qQ(r!=ut?QCmo%*Zx%aJ&u|-<$%U_ka!WtU(b_;!m1)Y@Annsq4>27*}%)aS7~tCC6~5eQ}Nv z>gCxdMK`~JN#i?^SVY;aQmoxdq|J2qFAK^%ah|0njuuAsTT2}gw z3PO74LCEz|o|H%RwEr6N>K zZw^aPh+}9sjoHVQAs?@h+PWst-hT5_v%xs@_#lU*vGn|9&!CtVe8YOA11zbK@spwv zH9b9~nhQAaQS{(2tytE7);mJTd)V*@h@v9`g0v4LzH;pGr&gFPFU)9;M;h(#g4!~y z8lNN#dj`O;7(kD0;OILCu40%%J6BuS zv&DSClCV!cv4?r@M79NpNA09~Iof|=?lbH@w&!Nw&GwN`Ta#6NBu3buW202CW`1A0 z8cS4VrErfU#PeAn8@iV{S^MOCQo;@_HKbh@{> zX`tK{RMQ;(A-bGsD&jVLu-mz>t-QurSz{mLn6R7BI&MsHEOC5F{nqhhxD;`( zcKcC>l&e0%34WuvOg;nm@P&OC>0^kk{IeE}ZMZtA8mv|97?)+MUsl>LIsCK(lNrS^ zwZpa?#Ws?!sGsI~0zI~k@`tkkpy_fa09p_eYTv1k(|A6aDyn{$RHTf1zy+jHeldS0VTVs>429HUaV*GjmkJxs22X)8Z|V7A zV=t&0G>Gy(UunQrD|SphX`w|jYqp(+3N+TRmtrZT*lV1TZ&K%3n6q|DY~C{#3;pP; zcjuZbyZcMc^P-JbTSZHRUQrfFD=Tk}qn&!C8vBz;tdTWxowk>0BLLDv?!OQ)o8pSNvgR4VN^AI(ReW=DUVjAb6T!(K_b=4xowoK4 z|1lu%?e7+98{=rlNlB$5{h247GuHK%q4u^zjKFix-m}dMm@~8&h7=!TTWsYfWcWi9 zEhgIri>^%Tl}UImY|9r#VYdjJ@N|vcnbM8E5P5^O_jLX4oT#B$Vg&xs&g{1CR187SXpfTTlnw2R+l3}bAdRn&%M{cD@ z^pjl!B(a0d7atwVH2^ja8D|w`&%*%5GAI=|XhgBrc&Q<$CdSD4L4^cc4;$LU4xOC# z>&2l-Hf)6?3oDh*FQ1{oXgK*-NuTMZ@Gi(6wml@!lz{v#28uN}5uecBxjcnWW-n4E zqSy_V6q3qPvXU>WmGJ!SUv8yC`WCM!;fJ#s~4TF@hU1ek6P(1<>Ex@(+U&??p_ajp=1d z^r<}~e@VSQ*sM~lfCI+DoHCb}mV%EyRWyOvaFi1QUZC znu#mVx0Glt;vVSE*&hJrIl(5wF-qKRoZTwqYL08E-n;NZ9$`Jy3Az* zEK}mo3RT})SG(hRi!)Aj&HUZ>dVH?l)Tzc%4ax|~r1VPE*lR9bW3S>&^I_EfTnciH zXPoWfWZRM097U$IK%6q=*PmrAz){CZl7jDugy|{s^Gq)L<0sfP71a6%r7xz4z3`9Q zyYbvZOisJE-3u+nsOm}dcPG)`Ev`PV_bk}?b5&cQ=Q}&S>XOu*UOslGcW7mZU^66B z^Pim)qlZ{?`zAu{Y8btt`o_kSH34d_?!sakP(eR>Un0^Dijq%va-c=+T z!&b3RqSd1x!i)lG>t3VE;OHLZ$?+0=!!1LPmut-@m*d*I_|)jYy6*M<0Gxgvmv{7> z`A8ajip!Ed9E!BoOjwl}^D@n$IIf?0SG|TZP8YEY!YBMu4zp2SyRX}?X=`^JQX_kb z7IA8$v{lGu7vvwCbry$BNDUvc0dd6pj-inDQm{GfLtG}gRx&PIOzKb`5q*w7iw<@F zQe2$wSoim+3Q!Hp75kX}xQ2H37RwU}mI`oRnr5i5;rm46k^RFg6OR>PeL=^ZV-EDZ zTWWm<)2-!%9x0>p5j>KzewSfQ9x5s15YLTOqLQ6`huaP7%~^=ZOHl(=vOPUhoUWGfC3U_%4~h>^0KZpjaSS=*)nL_js?(%%oT~n>_AAN+17u-+k$sUhOV{w{Ji7V7B;1k$ z%Ik8^+HhbJJSw$Y2~3Ix>cnRQQ+1INly*_2M{K$~5tP1P$;Pk`RKhcDq_D(p#0H|z zXC0-)*U6+A!!+A6Tvl6-%Sw4l`r+50<$XUv5as4wZ7Td+gCqfn)&|@0t0?ZSQbEFJ zvonDhqog7_!<3ha(>q!?JjRySPj)3Xt)0eMe>Mhe1$I0f8}#rt2`IVsppDZy*gJ-!UUqa zp_pi>pHcotzKrz@%14fnTpW(~+z5`cDq`*wdOZUQJ2nsR&97-LSy-%GJmQLZYzm`~ zj89)1Dfbf5m#dP~^R)=^Gun&A1|Tza5)Km-B&x^hk$nnDN@lwAoY}Efi4Y$c6(BCZ#NlJ`If`4`ZH~dxiyey{|D#f< z_!~o1hEgqaAr37djG85I%Z&z?j(^Bz3>z=ojLXw2Y{j->B}jZjYSW5FHVeyUkydaJ zRIq;w%bAeDkst} zP(=kX9qIXw(n{X>{D(^M%xGFRqHr&(Iqct9yU~3s+Mca(TE+1uhP(M23~vJlNZ@{G zGjX>i1h#T#yV`9%VdL{`J?%NP_6(=%RC~^6-#}MR_(bqm=I@OzJG8O=UPb3F>QJgq zTRE|3aL;xvcA16uwn{yGl++V6(qlYd+o44m&;FD?*Js-eysVT-HL2#BA6)@c@uS1N z)>^hM(!7Rd(W`xyqg$H#G0VP=nLT*X7Nm|BUu>VkzK+%Ay2V_arl0`3sZOamSdvHO=MFZEh-w1oG?(1lp zGZnpO>#T+0F@u(@1`~Sl4R%O!1~#}k*8tSO3D&$+6Z4`6O<@RLXYrVgb*11N4jI*BU z-<#|lt~IKEO<$3P6n`)^fKWTWfnfINJ{H| zMsB!=jWL!ue(K(J_>|sJfh0*^H>>EG7yGL^+Br?rw;r#oH z2&|N6GyMv8v;dUR*SWPZ>__bGYnk;mJ-YeSn!lD>W1tTGP_F#batKGj3=_^M*(6_q z)|M804*1toY8j<3pq!ht%D33lpwol~Df(RDek!`D+W~#!V&-<=BTpMk5=FxoU%J3l zi+PPJ4(V7Z!RC%Z3**Cb{xlY#j)aZRbc`_lKnomwjz00+rxqqix1_)+F84FxQ$g|| zZ-ptRg3u#R$`djTCJU4oeE|t4)F5+v$-m;`k8)*7v93&|IfkGY9Cc2syiNo!*YY*$ zLS1e~y$|0C1NJ5O6^b~5jkg;Yk~Tu?T6?YCi!VRPJVb>7$6X z>$yETB*{~%am749_Vx6DzR7=Zcrahv@^mOt_c2fG+lpKP^Kxe(g1g0tY%FAaKtvXn zOAnPe7;O-?98Nk6DEN4`M^hb1$~n}$PJG3?SP{?ByzYef2Z4SN0hW?I2J|Ew9PiG%os>FX#@WX5u0C4lrg={@g%(L(Rpp%Hg;8u!JG(I z3Ylboi4+8Y?_b+vryOlM;5}fo57-AtFI8wQ(@Ia96DFtv*A~>rB-kFX9o)|Sc2}fQ zYX&-Uf_C^O`(R8`!8x8mqrRZT6AV_NV*@+o`xa4}(37&x?Iml-gry$3Wx0c|wvUVySa!PTe`#7eaB-OvT5t#ZB> z&DsG|q3@NBdrJCd8alcelysolaxnBI^U#;ZOM=_G92_A7eE_X9$W$PSmwm(RI?4G#@yfg=i zAgyb(Kc-xly&KfLI)*EEBq_E+=^b#_wvl0yYPE8vp-lDPg5|ARtOnLXKjLHVzM9-Z zW)R4Bso#e+&04zZATFV;nX8%O&T)SNgHFqR6%x?(U((iB@TM* zf&RCpA+Ft2nOKM2@Hq8pd#8{p+`gILsB9e%OqiVmVdI8zbV%#$BjYoL9@`%rEW0GU z@Ru_RIlhQboq>;(QS1eq?VL*$$PS ze6)jvf=rwZ(oK$_GCS8{RrjCTXQU-Ky0nd()|a&2NE3MMFq%X$b-TSw4HQpR1JqM2 zXh`@0#Uu$o)X60!9UrQGf<{i+zQOF!gkq>057NHgb@oN@6+BtDIdydx6_C7VkdLvV z-7&NYeGG*L=^yitehvk@dZfRndc?k;7;Iu2L>SKB^CIbqa_y~c>{cOGt#YuzBsHtH zVy5{+=yt|yxAzW~#4HzkvF({DDO~;@e^@@Hsa&QNHMbGX>gnx>@*2>lLn_rBd2M`79a#MmWU(_ByBlo zpPM8u5;r5jmhcsP3-}UaJB@MXQk-e0IK2$cbiToMnqc=5?4&79`nUY=+FM5wwwtu` zf6w!KJr+ktM@ReYz4qE`ul26Awr^~d)zQEoj=H@Sjc3X{ngvO4g%G(cq{gI`wG{cHHaJlWYQLEl+ ztLnbRwtG&Q4bl0#b3EJjh@c7Q0)#DbQEDYuD_&E?))+7HW~ZmO4O7Awd zN@+Uh{i(YIRf!jTxnk#0TczXRn7?QQu6=@m`ima#tUKa+P`b2Z=*ClFySwDZe^Hz@ zH=XMJ7lqbf|H1yS+?VH(q3YClZOhy0N@_~;+%APC%4L93y5#l%9H&|_0hh@nCIHO; zgj7?uzSUlTv@5?WUoyJ#+s6Z4UHQv0@9xSshP(b@Maj_RQe}A4WOILWKlC^QdPTWL__;bZp3d6R=6haK7HXYu_l>RhhaDW|R7X zQo*v{bRru%YMr`SHA2xQK(8C0hE9~v>FyQs@1-+<+yHthpVQWPrB#k9S4m)D%vQ}+ z7yXhKDX0SH#CLQDlqh*C1Ip7`DSto_4uK5kKj+G+a;m3!E==gCz+>K?VvT&4g57po zuulIe`A!hBum=8AWo_t66{=DGnr*wzc1!uH>B&%L;+_m}sgv2c_nPI9=+n03Qi>r| z`Th^+tGZO_@mFtjt#6YnLg9|vjL%DF?MUcY_f>b zB)8eX>bjrd&^XUhgKRXAV;AgxKh{C}hSoI}l4dnkee+CbHC#J+*sodGPeEQ=11?7;B_GcI{R} zYU=kR3$@?T=E=sht#HimDSMyXG!aheDh#Jk|AbS* zDZq^U*MsVN+6RMw@cl0Dd(t0_*AFax&hB;vmix#3<7~$NAA4^b*|x#HXRflCJ&A&7 zL*Y<~yQUg=llMGb&kuDS3JOxj_96gE`PiZ8p(y!>gT=cRG&_wH8JnE_f4f(StT^`S zf|B|LkuMwn5&DsF8>OX-zSet8c^1YV=(ExpB`T$neq0&k^g^idU{3F=RkZrr9QtyPn(?d31ES+SCpQZj^XjP-zOu`>{EL#S0R1qmm;p{kAwA-wpj}|6RF0xYk;J zWM|92`xVqG@!!cawk(%dY&*2$)!6o-Sb4bS<)Ny*Kko7E-AAUpw=u!DpK1gOw>{uH z-&E{hE4io`>Oas+qtR4M&7fnjlvM$Y+~@^D{n{|7HUv;6@|aw{d_Y+^li!~hVw$fA5v7V-X z`hhx>p?Kk$o&Q*2^BjE7eK5l=eBzk%H;vDxOArMJUKmh!D9Im-Ndx)*#*ZJe5tDPw`8oqs+Wn)3R}1= zb78eNla~XNN>KoFlv+xHLOQ8jL>SJ0eHk^lsIa`VwEnl1wx8EKZ5t5Z2B4I!>`iCe!F@zzsps^HyvXDOZstH1oCyfLTmRp-0awpzAQS>|;G=0NOf zVQ|&ET++ev;ExC~_>&4d>$S6Wtk*-u**(5_-inJr$w+nb83~A(jg{(va?3eZZTvme zrxdeZ>3Uqb%M;vS6sz+BD{Q}TRfg6f;b!PoZl*Zj^qNPT=gV%~q?axb#^Xl`X&N~K=N3MoUOjzU|?!@LYY z;B?zq+o?!x`)BTIPkXV^7Rna!0FjNJ-ScBxb1Y_(Eq_tj7t1mWy53dF;o~S{Y3wtD zMXF9?52$1T@r%EKE-jTeAQeW1R73-$2D+kOrB9BpJ@#9^kBgoz8M(4vIx86x z8|+`ax$AgT>%4m?y>Gbh@MDL+qD-kp2m259D=9EYBPeQM9`q8o_k8`%DyL(|FE&3v z{N22RA^Wc3Bf(vR1LFhZO2f_;TZ!w~@(P=j{oSRsZ9Kf^`0tJ%vy*|;_ToP&3vJ$g z;r+I+9X?xCb>O8vb9YZER)68{DgR%ogYsH+@Wkx|vG6MEMjUniOR&*Y!{JuFHv@>3 zI{2@lEqcy*rFAe!*^dno+GBEfp3~vW=Xyd5Ag2|G7W>E`uQjw3Y#ZJ-%%$2wzUFT}TLH8FPkQ^unMClt3jk8J?D#a7AS>rJhGJZNP&)(6lZBdL)P99fv$1 z%54Q-QYtN64!76Z6<`ivP$2~v`8W{ofW0i0O{3S(I6j8Sc)+&)|oJTs2?gSK`J`spH~i@>J&M^6&X# znN7anb*;BY8+hW3RFrY%ZzO26@kHMkB2}_Dgdxm1V{9XPoL=SbYx7WiuSk`naY`*H1ks*(_ z@pWuqp|N?IJ*^ddedmfHqWfTGMYdV}Yi)Dmv)m1pB=k2gzZANY8`oJKY>sXSo)c>m z)YDI1@xGM46wPvC?Z9{-*xbNoc1*HDx+a;ifJIDw%)7x$D=)3Vz=*CrHhgTDn1;wm z$1(T@oP&v^Ppi?xBPQplQ(fb=4m7Q}a7!v9(&(y;_<)Lj>?L zrx#~7-?nLms2(FNCTBYk16g`{C^ht#-_le0FQ)3LZXtu0A=HY`9us^|O1(4`L)b%$ zxK5B&TTGfDqswbFAL1-d96(YulQ|I)3R0dt?_dwW!8a|ue#Go}XZf5tB|m(!k@YMa zMrHnd@z{o+uY&OtQ|h8ySp!Zfl{f_daP~9 zq1?N^&omcMY)rv9?9!d@Q0^%AZz`mtA}A1!cw-%3lP=O&07P)nD3@Bvcw#OX_A2>! z-jCQ2^z%xulpR>kfflsDV#!nLoEdBvtA+Hq@=&lC3znf^*FCM=#!f0s?yQu9ARmfX zz9p~GUm)+aa-XYQMWx?t z)XgoUjrrJ?P9ntj_VpfCsUE<#(C)6Phcx-|{SWd8J2~vAZ~UF_Y;aCaF7kFDotA%9 z{X6z@LI;{pM0$|+ePvNwxU{l0ti7D8JX9&Ign6#18=~S|DeXb!4N6#x;a!yP@O)-) zGa-Wvn^dTaa^LgML(R@4i_%)3Ug1Q;|vN!>MhTr#62;lE{;*^=tj|h`-1=k|TEr!$CIVmb4vkThlrh5AeSE6=?li6l55=!w9dvI!p!gkj-&}7^>3Vgc z{ony?sg(f2vl z;~73yIowyJNHR(#s7sV~cxDdNhkqtzAU4lJ&J1Pv#niw*dMXb0E#RfzD~-VR^A&oa zy}H)<;^j@FJ!R4rZ{$YW{6;xN*p8il!*(mHq7QB{^ljX0x^vP^D3x#%I20nFSekp6GVDv!O?1(~I1W11_ADAhhG=PoB(XBt=JSAm`bGSrrn zC%5GfVJT+VtoR$hW(o^1*HgszVGrPUqR;u!PaYdM z<#c?QYOBup$3E;9TfTU$%KiGG@)u%C%wU?HLQrirO|j}J2;1eYL85g|fuz>3+_)-| zoq2W792%RYG<@=}je}-DF%_vqnH@ofKwd%O&XLY>8)$z<1zR-bW$;o5U-O!jC zXaIWa2}&B@GoyEjWCuK~u5DD)mZXp)DNK&~CaLZziWeYJMjml_x$eTX(?nw3SP zBN_lif}$q?%C0Pp4hub&r71JfVeyg3Ps;|Q!ySWuBrEM0>=+Cbt1cpC5P9APbq6(t zYy!H2jp&Y!!9+{6w8O)qA#_elVGLhMiKn3HOy|V+&CU%^B)YbJy#2?t)U{8E`a77kN#ZD>wm%qs}`w6dZA)$e!I$EzIj5-K$fBz1xrQa%*bmtNJqvP zzI^|_EMJkjmPm;rFtYAW#71HQU=V;* z9fwV-6h>tsSqL<`M92<4mC)3>l5$38I!AzGL`2wiDiX=bxjYt$j` zqR$YqLHac0lB}UAUzS*iV#}ubGp^syi4FR<`^H4~(17bdj}IO+kl5g<)|i?gI*Gc8?T*QnP%$mK6eA`U z-QJPjkz|%7nc6#&5F+^eWz5#zVbLhk>;(nZ((0c)z`dj9^K?x1jwU~Z`H4Bey`#wk z+&hY^<4rfOH3yhJojt&4AkNKhbklV2s8|L7D6``8e;sa!`R-yPft6tlPKj|b1Q>=C zC8akZ>?V3g5-m2*i$3@FW15YaEvAKwIxVTivAe`uj8A8`Sh3PKMDLhO7g~&N7OaF8 zkMtg0*4r(TJAHX>QW4m~BoUSWqhheMXI!(=W9>ECCYAJC=|i8=2skuNMtoKwbg za>XXUxj_&cKC~7^r=~br0wX<>D&LWlwzoZ1d^53__DuFnc0e{IDLU4;&`zG~G=F-E z5(0`@qnp0W>1}{)ogA@6xYY6PU5^gm3*v>;~lqKm=6@S@;X|0By}P% z61AES#8S-fi3cK0E^3WhI|{)L8CPpNJwf?Qt+S_J$R|oeNYtFmt^3#mr$|=3wrwra zM+8txnMCC9(Perxri(|#2yQLZ`X%eu;$%%{Yq9x^o4U3ZC!SH6Nqn-kxPT|L7gs9d z_(VKqkm@F};jP8VPZ>B4ta3$Q*mTyZ`CDWC2m~L94Q{pe{1Zj_N?S@c-x~8qR9~>` zk1EnE;}e&4w_15zAc~KcNf(gzXMx8K8!f6TOE80a5dnSCbb811Z%Us%RsLo?35O?M zKIo4H6aG75rIBvIjojYTHhDh03mXtp2!92yXD@L-IBe@N3!WX>w&<6YSCt`{a6Q5_ zuI!@fpmwECK1vB%Pzg(T#MKPxw0cWD475NMqqtCR%7vV>dTQ2@(a znizXn=CVx79M`P$8Cd3i_i*O`B_2~!l~i?_6|;w*SEo$|(D zMB;HYh@~MV2SRx7BfbfkDq%f@v9ciNX?2PkX_^56Bs{P$(vpg9C?aA;cX59aY(|g< zWVpf6I9}%lRwcVQQJ137d{iSH$9Tqsi<3T0^ihAI=pxg-iH+=M$=eRh6uj>&f1psE zFduH9aDcBPqH}P}@9P^OVuJ&P{WAj=fb|==D|&>D3|QjdvH0+10Q>}15-D-np{Q^g|XmPFuygqv<80521*uyA8$aL zp0HKXJFS6V*MRH9r!?;TCW9_!i6DHhTvl^^if2>M<-` z%JR&1%a_cREH=fk0yYW>&~_WE3w^;r<0ipSqu`~^ii`;@D*`Z^WJ#y z8cbId4+0j`VBuuneF`WZ-o;6_VLtVmYfXNG9l)G=oZE=s_|)?x^Bnuq_2yn|7m_>y zx26>c49nGw(B6KZ%L`x=rIFOS2=lIWu~G4kk1s!u@$J$&_m68uO1_e>6|q`YyFbA) z`8ej!W26$P(f#B5v2Th?v|{sf(aCs{J+0rOWAlprQ>MtKe#`b=sokiX+y*}gJP~?b``S1{lR3J#fJ9>`)AA!)AE@? zHItM3ijBAD-_W^*s*i6lUf@V{{g z0gyPzpA!qO;c#7Jt|w3ZJg~}`)dk~hUB>~!{E>Y5`JsiCEW6TEfnuw*RPTZ6+e1fq z8%7Mt)40@=D`#-@z_f{3-c(xQlIuc~F*-}wgvQmZp(&;5h7FAqp@#NJc@SWdCCEIW zojsSa>x3|Y#$KPim-0DLG`G5pYb(vC>}5H>YCIYoA`M+0({G09KPre7Yf=BZJXzO_ z+^_sP??22C(l-D0h_1;9`8m<=8AZ4{RZyd!F!0?oh%N$o>QW+-L37xV0SxxPC48~Q0^ z26ff?){uAAZhARmzEKXjS8oTBF*znm8EDKjCgWKa`U9hx1t?h!fGV<_DJk-x_EjIE zM{H#t<7*|f-<5~;nKGd3LnoV7*1y5#c=a_l1F16zTVJ0mF}54xs5CIosh_6kWg}>k znr{T9p=VsE6@`C1?&+twBvj-= z?sQg3lSh21&6g2En+ZT#Vy{P{C-_kPWp74WZGE@N-JL@YB-h;Xgk}gZL4o8W4RucjpgY^1#JsAB z&dXIA%NIyXoC{FFZ(B&V_g&T=+xz`W=S6P}=+MRCq7MeDJR?|zOgH`^OUjzXa~TFcE5{!Zu9i@`f_9fKBNBJ7vB49u&~V` zNG)n}WENDr_4#duZH0P1QD`E##NXr3Z(6?Z-^vDGZ~sQ6XDFjRWLw{QQoUevmsGaS zb=SWQ*n-{Nx{%fe#po&Y-L37amIs7H+w{87wSCb4Gn*wddMk4{JC3yU*+qd(jurEd zAd+_#*R9D;)iexgJPT?0!a6|wuLWA(=i9Bt)M`j)2P^+btvccFW_fW7;`7(K*(RaG z#m;-+S|>TdoDgp;p)rl0b1}j?hyBQ)^B9AY}Tm-Ulp5KJ)Z$g9HRRq@qWC0eU z^j$@}}mo+tPPUkjBg!`Fh<;^2Hzmjs&>qTr3ulGT>Pu}%+jo;ffE|y}` zsqu14ppaW&tdg~n;|?kJSPY{PGYem3S$Ya~rB~o;<k%)LxZmp3_NO1*fE=TrST zdX2h=>jfVQD-8!GXXC^r8vSTDa|p z8>dCTDh@gqV=>P4u&0eCx-&AqeTihQD)>Jr2E(T=OuISr0?+We(2wsBvL}YONUnC;c( zwSh>lRYrP>fxW@>k*9i!57#Eoo}QvuJFNi_+F8_7boK0^b62%2}x4!!Hk;B2k&yUMtS~qeN_Qd+l~FkMtukoyy8*8DSnNe*A%@Sj4xy zgBN2jUa(to)owaU?vOG{d=3Q{7KX}Fe8iEL2$gU-@y11|Rx7>oa#Ux9a)*kAMwEsD zk-D>pRtF=>95~zk05oH}8{b=Rx072G5iwNJ)QjluX`?LP_c^`fM;^vh+UO}H@b5cg08eO(Y1C`j=xQ*(TQ({BZ@^4ka3Vdjs zvilbDO+s*`F>DMAG#MQUI&ST=B31dMZ`e0Xoa`GuZaofxO}(q9mWYJ?Lb6;B?eRa3 z96|hq@j$%|ctRl459UQIZtP z>ik?RZo1RTEJUW7-m{i?hc~wneO=hI_NwNt4Hi?!gs>#&S*itTiL(?J7Kk(~KXslQq&@`O8x@!}S1$u8T0WNBu^=nFJa ztWdIPqF6C_*6U3aj2%WVO`BF`I29^|fNo8SQTotn(i0nEkp~+?nbvbFttqn&fz<*& zeq9IN;}tO&`ZPRwSYa}>=@?z&CL=Z(udzlNo<|$k#+4LU*qYCIexnX>GlKA%$xB@2 z6zV2ONmECpA!w3taSckF8#l?5>NN84!}*44c1AM!3)P?+BnymMgm@%w?rVOf)+T3o zT`e~u_m@48q0UG249|KHxSi)9Mu{7?qy*L{#Bac#Hx2(@Q-GT%P>C6FvZ&!Iq3#~y zjdGj2QRmMoEkvjsB1C^}D|Neq|1E4Maz(vTXPgWSX$B=ESJ&y!NV`1u!h$JNoz*J4 za@wgH$d47|)RJtfB0pzk*Cl17aja!jkW$nFdzG@}%Cd#`woJCbdMuA>H}gCMHh1Hb zh&ritsZ$6r&O%s57P|vUAyA-20FpT<*}$v)UcG@xo`9HMg8-R}<(>C*J}W!KLa25@ z@#yLvCK*n&WqQjr;R*yX^kKh+gl%&X{A68fs0S&)5j9xa@fD%An6Ld-KA)%6;NIUO zpZ(U$(V^xL(o(M9_T;up+QP{3Eu|i94UeelVw-ed&y+GHe8lh)59<>>Q1LL zm6dirSz`BHGQI-m_DfA^rovBu@eahMwX|-HmzOJSF5Y`)FKYc&+Xs*4w%Pb%|Awu1 z<^FBF{&_5d`nXhG-G^A=`aQ=F{$MA3_Yci> z$ZAL9RwDm?ieGC?;Z~x?6tL%RzFlZcCA!*5r2o@(Y(!gc;fr6ou!yjKgo!9-6CtZe z%qt|ES`;*?PaB_as+1PfEGOcM%Y-_ik0P@5vrp-x*GzPGXHK$?Y%Ye#bw@;t;pSrL z5$@^{ezN_ul*d(2NuZ@wNDrY-4~{7tu8^R3<8{%el*dI{Qz2ywgEHdVa26J9nw_~g zM5+M1BKo_$21R}3hhg4DDcrcT{*Uj=K1%rB$$lljFPzrcme~{S7QSn9%`^XU8%7!w zsxjEv_kLkwbhOd&H3KvjZm|N9K&oH z`D#GQaO^LBA1%O{Fdl?#XX5eL@a)Ib(i*d@P{p_3Zu4$Gy=wa_HC3%)#ItW7LNxGB zpS=pj%$x{flTPk<#!ilsoy*&bDBr!BLK4NuQb)yKB}?j2-ud%GNk5^L`a)kSLC%$) zm>=kVJFLMrW^>K68{`96KLnu~XN_t8t|+`@3J zbZJAj#`l#qwTNy#*3fjO)o8xsE)=~KM&|p6^uP3& ze^{L&3?poUMJ*?m5y%L)0|||kURy?qTlf#9vEr7|B=8g+S$J1O&#V;@vC)9zhQ59CXh%)$ z#eSx!BMlx-dLT~J6eMFgd;{hMk|34M{>4bl1`~_59_+wYwmR8C+iku2xzx+aif8vH zW=D(Rx&M>*V!V5|@ZL517ZBTM4E*ne(KuF12=dET?vlEbJ!aBt!rxD(D09U5K*;-P zAXw^`#IDa&E7@3b3_3d^3}kqh10R*GTr39^=KjcN#4eu^z$P06+4Va$tL)PR2?8!C=dz8sDigOG`{$q`t!W!Iro1TaQuaf>TNT zgmu=+9>4e7-%hp?g2zVKv6vg5^F1xtWWv)5BPo%aD5-Ap@DmFJ{{~uJ^7w}V1)M$p zk~vlSg37c=7-c z1LKao>qX~>2b23AeLIQi%KIL#==tQq<}>m9wzY|&>n}bM6`P<~yGD*gk3F?T$_pqy%g)KyRbEs=fvjt z9|82>-le(h4#5u!57ddzXY_U{`lj3MGmPAI13BF6x8sCjO7HJ^VOxL&V!20Mc=gpeYOL>&mmjJ1f{OHY6NSb@%;z7S z-G<%4-Oa?RfBJ6pK^Ia-kRrfyH+X>gd_&71?>a<|9l_NwXugHq3U9k=r=*KEFBLgc zzou9fN?JeJXzg0N zIe+tAFeYqpmAy0>0PdPunj5+()gff7 zlKGTOb=z97B@L?ugSz04=Tr+g1s6LshX9Qs0Z*C8mgdpASUSRAx=f-1o>;Z$uK8>& zjybakR-xBG*Poc8EocM{Z7nHu+FGcM)XIG#t1LtM%cJqm-|*#|elt zyL@Qs&=i;D@7oV&miRu<3Mwfv$;d^@^s7JWDp!V`NOJEc^%mr8x5Ox$n9Vnr75hdq z3pgC6bEa)fNi|bc3hBlJgJJHZ^^5)u~NS&;(S511RU! zd;?XzY&u(Zu5IB4w!BpL)gzr4NdrfP`X~}qDr;<>zmXZ zo5s05aCy`FvLe3I*#N9eXQprRO=PB1vXLJuH<0cBWexHb&cWoavWISwA5%hoRwb3wcYkmL0drn zn7b0Ws(3{=Xp~>0m;Csyzim@hBtT9kk{_$t8dG>Z(yYz zlDS=NKbU^-wp_tAN7Hytq2TTtk>73bl=QRUr5+dsON}2^xT^Nb8QF_+2G#&e)LzKwPwoRm9yKEMA{%97oCUkvMadArv2{I03F zHG9`68|*9GHM(n58QJwc55-07OhL8X_UiSp5j4-+Vclxo`e;Y^g*iN#$c~X6$M2Hr zyliEx{%NyNk+!G70&ovsFg`4g$l$zh9VICK9WNT?M@=lS%O!%A~^G)Zzo>Y>sHipM!3i zm1V-1HZET$zXWs*QSX!Q1xYOcPP%O*SuG$nG#D=PBrB?P~O#OldH}|66X5x#U{la=2r19TwA!ZNY_uMv_uPlR2Af@#m$s3l7h`K#OA%o4 zo9E-0H`m0_w|DJqXp&>-7DPxQMzR604TmzKmw!ul(8UQCMfWtfLRok|ITx!)7;wQ4 zj~CxxOsEA>E*u9=S7-?|Cut4VD36}bO{3|0j80gjJIN@Dymv{c^^b5?U8E$bR2?3* za(MYLsSm3h(%ng~nAL@TBi8|mT;VEX%N_Md4Yy2t0t;?o!MmHc66{=PJYII35`Wrr z-=xf_O7~;MkL4^?PEp+lr6lr{`ik^yY|V}97G4(>eb_+B&Y(%?Z`#-e)Fn_eZB_C~ z69oTuOEr8(F64<;F3~PV>qAY5E>4?PIoS_cju#~>^pjrYqW^MDV6JPLEb;og%1zLY z)RRpaPKWfWx#aM|%lfU9P2LeWX{=IwWQJD)8$v#Bh4M2vk20uET_gNoF%{zl_E-Mt zz>XZ{3+}vE%Z-ogj|b9!j#S*G-m2C<-&yIjqGP4{T5QAfP*=SH_oF!+NkEXbww&t^il24rkuZT3^;1Q@z9;w^*8&~zOpm0^a0c9^& z`C+_ThPE;eoR1aDP}eBH2kP0{C*@<%qigK>F?(*1+>k zuf@J5sv&F$@OOf$)3%0S;f<;OfNc`1yshd@WMt>Xyn?WbpOg#+WLXVSiy6^m<{ zh{ub~GsO^_#72EZnFZ{)uh>_tz?Tb6<|ax4t?x1xQC4-|8o>39kK5(5S~Yh7B45AK zZ} zftGxOTL#b9D|5r|_)}VHkvlq0y+0P&Pra&vR;9?}>Nx(+K|xalZeA?wJ;O6k?>fhQ zz(s)L++ch*@Yl8~=~?5H`ZlHmMWQZ;wE$%nW2B5D(FFnh4|Ev-XvzKB#+>~rF;_c$ zJD~R~se%IeQ3ye<7W-e`y4&=xs%wGY$5>*AuR4h2VKu$rS4Xltp6fWL)(r*8c^xM| z6;gQERZ6~E8uFoF_}q&rt!H1lw5>MKMWU3F^V!`OVXN4A!>0dIpFFn_Rf6_c?tCln zr%ni@uD)GMR}0y7V8jkLJkne5{oH{=RQIOujCy;hw%rh<6gQ^Ej?$nE-0Ui|SDmtEJJ$Rjc8j#x$orwIcM)Xsk*TsBKezQw zh$rWHAVYtRko_33VPBy%bf+)PmqwC6UAC?MyWJb?wx*EYBh81i8lvCs4A0##5;pGH z-naQwRoQv_2PlM+O95I+s_|fOQQ+jJ>|iZbg*FNA99Y*=QSQWY$b{mhb)tcB^6`XebdI*YlAmo1>x7yw*{h0>8Z==1``j zA>Tc2*Pck+4-&)E!)hw3b6-afB^enLaWEK=84NqNnAxS(eL2euWEbXEz*s~WKj>}iYqDkS#pY+8!Rl}$iq)ZyfK_03M{=vXMc~A>BzQD_6Vz-Qn zwUzpAKMEV$yvA+oJr|Nipu25JNqr!_%xH7EyzlT*7}6Dw>n)qxd~o@41!8O0IoVL< zhQOt4F(R-e2$}TKuTLMF-7ujBw3&uFre=kJ->Gt>83)neoeQu>Yjj((a3*cqGhG zNSjyYztnoW9uCa!d!%CxD!bKm_q}vxL!)21ROyzkYz=v;UHf3`64Ilk5ZSp0CJ2!w zh(%+6C)KQu)MhDk)EEo>r1h29MDQ)Ht&~@nNCP&{fiPcrk)`vcqrHW4HLP)?+R2Bs z?{RC~Awx5tM9*fnDl3$`Ch*$fxNFK#eHo6NH7Y}g50ijQID>iyO7Hih#p=mYk9O}26 zt;1gwQo=H28(u__+Ay?9__K8$UbvYGcm(MH;l!k{{9~Uaui2Kb789A(ij4b1Z^OzQ z6c!g|;5Yy$0^l&tQr%Xjhf7-|eMri%;f@hs*?ymIj#TF?%QYHq0D#)q4Di{yhgLl- z)w!gV#b0~Cm;fXqYD~-~adUp||5P@w=9V>>61UFLFX@5(r%AUB{&UDBKZ|MaTS?1& zf5bbaum*H8oYi43E*;972}n^(_m7r<#9b+JL%5|<`Z>^^kvf5H7xs{32!ySKcybMA}tw)`8s-XVlRqD+FEW0O|b9$BeR z(rQbS)ua-kqoa}%Ps)K8K6YY>kfe`@mrwSei(R@IWv3ulk68i+IW8g1g{4EA`(^1U z7LYGvq0vT&X!2?!Y)ZW2`(}O~`)2xk^g*}HLD+Wf4a%~$jFBBfR@nq~af8_2mV z;B@@;c`YB#iz(bVA8z_w%JU_RLZqBze(vtYw#8p8%`A9ajUj@uM!e6X#*`}vC54Mw zke;$E)7(#^Vre{b1$;?H7eS~weTM@%fcSS>CWzP=`+kR`W1YFz4&{gP3Ad*gD@F(p zK&>DO<(pdv)q!?$3OPcK`0wY39Esl#K|rE*nVq^xkeU*Tm177s5V0|O4UTY}DGC>a zqNK>`E~P&d)gAF)jfQ%lZe$4xb)ozPWx*E3P3lFqA)ax_5gIdpJv5eCaHlXQ&@0Ly zj+^fSS%YcjWw2$QL8|mk4d!oY6aL}&hr|A%uiC23ev@aQu5kMg-N`@dAB|r)x}(VK z0+#BJH$tBFkJW>BT(xEgz(ki~Ub~}+h>g+fc87rAHLcy@APA}+R7Q6=b|kvM2uYQ= z7-K*b>I!uwelXN!HbkBdb)oFzdh6!5l>0VF@H)! z84Wb(hS}Tz^qBPt7Vk^zOEaHRPwC@>25Y3qr6)uI#ZX>tr8L8}9B%COV5&R^9a6pr zrb@Ta(dd?DqFc-a@4d0#_@uBZv%ify-pAM&<>jEIi~WauPQXGmfSlN>rO9X@^a216 z1pUL+1g4-Xaq>?S*vLC`~lEY18 zHPxs|)ph|@-tDyD@d8fVV@E6A=N9GPbC1ueOe@nOW25@>pmvI4GDZ zG!_~YiLCTNWim9T_nY4f{d>8`3%xQ)hKzf#G1PIe*xKyxI5%;sgLczdI7=0!aE{16;#f-jULgGCXLC12rATn9nT5980RS zyQND!QDitUVy5O&CL_b<69H>`xGpkm3Pkz}-tpVBRNWGZ3ox8NP+jA$u0k|wTms`* z^x=32M12?-4W^sV6B)hwad0NV(ZwC9=J#1@M_R|H&HF;Ir8iGs^(>>2(JjNVDIX0) z<5M2TW^<8vFf2HOJne$itUzq+sK7OjN9oni??feJh@-JeIF#*4Jl*<{JRPq4P@X0b zo)9XD4W|$_T*ydaAs*uXZLUEI|2EeaBsd{)i>vcuTcrn3RqK})vDEhI_DhK+QB7$ckBvItO0dz0E8^PH5F2$G zEn3bD2ztDVD_KgQA+rG9PdH$#=AcI!A`RwK>sgV8gcOK;rv#-A)|($9c!$dbiQN4><-KU zhiD1eRB${>2vh_jJkYA8&p|y6x&>=_p%XX>0`3xrL32-%s$c6U&=}h;Y)WwD|snNkmFczr8NZN zLTI>U#^lPE(vt^J1!@#$k_NDSa+lToA#mp}%m%@Sn%X=O8$cc@jRCYoEP@>)7G&Kg zrIvSm#A1F6-MNC>SI|4Ol@LOJgK|l=z!?}SXJznB;Boov1T02kCKwm(x+Uf(z5XnP z0mExITTjf4N&3+`2s@HkR|z)0RCbw2An{O=uJJw9Qjy8`QLdtGWJ(n(j3Fo)*|hzPOS&fp{U34+S;O3z7U} zUZBa$1|G9}XS0KO3rMG__FpG%{y$|05ylJ+s7!4z_ZN}1k+tzhDvqp8aChV%ui9Tl zV%%wNaw68iU@*%ZyomMcC&HN|?v7Zs_?TgdO=I~csf8_MBmu>0N(k{Zjzr`RE>?t4 zND5vFRDPsTXg*ryul{42-k&BDf(cG&GstDJDK5u$xpukCUSp}dT!~)Wg<6u3A6}a& z@>n|36s4GoZXj*vpm{NDNN0eWv)eY9q6XN)DgSi*^J(=4IJy$Qqs$D&eznI+#KwkP zfzfcBsfJuv4*?s1($*bKR@#PYh0+$=UkI@f$3mFPHTTe%M(XQ@A4xsz6ET6nCpsTL zc5`gA@#*+x0|Nf~l{KvDCzabsa0$_+-&d9BZmIbmdb!qYi4gH z8wN@cMLnzEP;?MGK%ziuaCzb@{)y`hz@+)Pe-Z-_nwJ@fEf*1NYz}Mt)RuRXe&HH*bD(ITsK1L8kAb4(C3YabU_pF6YWl(A`;bWO zK(YA~dVVB{LnBW3U+NRm1fnV?0YWY!h^n>N3#6G7o2M&g*$b0-i@SElv4nBiO%{_# zA$EqmXSlTbMH2gGU9)%hS_6E|3pfjWe{+cwI z*-+=}fL7yf?ZvZjb1Fiwc;U;QZ!V-fZ1)TMCpkmN)BCCjX{~%t+NKU`snyCDMPZGB z3XPvy?Ffve0>c8?;B=t+9^xMbgnFtRDQ;bqIL<7ONfo<)ANV`65*D0u_n+1uBcA~K zM$X8Db{5F!e#y`$GVh{TPq8luY=1)A_b<9(mPS=-*`$%W>7>6;I4a&1_4;fc|EXB8 z*f|801|SM9*f>NxaK}XtMe@UGm)G=V_AGGI_P{fhhzbi$=pk13bLoS|x|ZeD#-qWd zC|U<$)%b!y(EcQpU;0jswwza9<%MbOo_F-Ks3a`wkF*xGE^j^Aw$cRKw)JhuAoZ40 z9l3;BLaa6jSGOvi*;*WNkY@u$>CXV8s{M;73`DPpr*%m~>uKV1m)?V=uqBZr7_O9m z%!X?R-mKiWcN}f|nKpSnilerK=zrHc1{`(|`wG<+p=x97S!fSV_E=3dFwA!5e237MIr2)FxsY4J?m71sKra;pY$1{l zfKxJLOme^-f0qaGvM4i|oDh0z^zc&IDOC~cm8(gReb z6eh?`pwQs^8fC&XSHZ+Ol3DPv^MRfEm_A1CHsvkeZ_Oq8l^R`AYfWMkYOOSsNBTYQ zYJ2N1U>pa2)sY)`pNI1X&QOso)zlR<}&#HGCp=*YGXdT#1NqBZa?ikugup^ zA+TDy()o_tj=H|3Eepaa0*6_k+*Yksh%_ra)k@GG?RW*Z(066D6cWT#9#gFaJs0)m zB`p;mvu$cEJgsQm8ZstR>wJ1tl2entr(4qLog7rAf+x0CR<)$Gq{vY@5`%1Ruxqvo zTbZl2fC*!@afx;oN}W*e6UnMN(f@0D1gaAaXQ#c1?y%!oxRn1)V?9Iys~uPU|TSWnjUH^ZYw6v+c((g=>7rl z;m_HfJ62S+4(c!=>(hW(&Ip3jZYFGm4ZV;$NKMnuhSs$$Z(LdF-E-H0f&QMosq!NI zH)S>M_J_%hsHApUy4Jg@?Z-=vev{ZZww*%{I5$4^uw~8DlpKf$^LOSQo6DX2wqrMp z6gs2bZD;!jJTxwBt^PIwkzGg5zzMbaQJ~kOKXz63E!dV*<7K~rygS?@y;^>BT?L%? z(s_}}RQXQnzHm=h@nyU<*qPY~q_!#Qm%na=fM*kUYC*y0WSY zVaV@N!BEOFG3B(M^WsOVy@(j0t7V@J=5Jxlic9pX5Nhu^WAYT}g)$j6+G%0Wdqn{* zlAXn3X}^FB3Q9$#qJW2;9$Trr3T>{iSLd2oKyqrcM>m@I?vK&Kk!Bs2w2^5`r zpK`^cR4d<*=gW1T_ly-}_5kS=>F{erINYebLg*-CIW2FVdvyu1?z!hseE0&qHa|07 zgY6c}ijg9|#}>&?%YWqw92E%^<6sN<<@j2HMKgxBTR&?pQGRO!h!Uo2LCmF0Lmz- zZA(j(AgT!h$d2q^gapE0DHoWt-VZk2&h7{l%j5F++b(Z7rNZv9FYU5+Jpnv~y^dWd z-#l5VqzU3V&)M?QAnW^2Xi6J`eLJe9Q>D>H@W+Cpx7p8vm* zoV4u%AoN==Bi;h5a}#BqXg(G9hi~nR`@@^|(_+ygvQD(5z*jADlTzkam-S{8--n9xHls};A!je*0)Yav_ulmKFr z=9_7z?yuV0*PdeP#VGb3%N{QBW>e;Dw)>kU@OY2oI0opxe)jMk>C#tQinRt4&Kxc- z*z+s`z*1NWAtnWd9dOVJf>O`2|Cq}**>f{>heMeX`gtsy_o(lufI`6Vw1)5(Jcccu ztsVHh7T*U4$ITE-+H5Hkz6qi3QxbHf^B!y+^bLx3sN?$R3;)?XCc1!(_Sk5Q#r~qD zcn8<=HHIVFp(GweeJwAqSGH)Wrgxz?*c&uA7;0)S?**3PnI}bZ#tg6UzwvN#I(t)dse2WTuZ(_dx(-~0bk_bzZzUFY7gX-|tuPm5{47Sq#Hh`j&_GHOnPi50Y| z!JMRGY8uQ*Q!>B^Q*ma(3?jX;_u6~Uo*7_fxX293RgHi)4#q^x71N#;?dd7za*DR6 z$7o`ZHVGys!Su%af7aT27|`6>_xs-W%k#_J9QN$J_FB*SKezv5X%2~_isjBm{3mat zm*zlfpZLLU!^0yLJ8{<0a1E z(Py}W_Jt_B1xVM*tre%dSCo2_$2p@4@&bKxHrb`a>dke3p?eDscIA^+f($Ie!pd;~ zT%;;i)=*j|@%*@rV!2lv*2_n!{sVG-33`#wN3eV@x1+PTiT66{{m=@>t$vr&N2=GW zf7Jc-3y=-|HQ6KZ32cVpd)_~w`>d~8VTA@(i{#~o-Azf6GDtBuvKJ|1!LbFoYa;29 zbV9G%rY!Gk&42Zd$YpXF?I%KjS#z|-X%F0x)>o@JIo3?>$f$qNT`$#lS4fNsQX8(p z;*t(+a5kUx>Z}&|^ieAf@Wcj#E0(O=#KKr9JPV)1WDfbhwzB1^is4arx2}NEu)BmyG-2PIkvC@bh*gkLFO5Z&x)FH zm=WGqfoExO|_J&D7>XZOj<|}LsAGcO*u~*nJ zN%eyB@FJ{4Plqn>ndC!+$3_Cqexv2<{xc@4vCrdf9yT^C5)V^(zJ0Q7(^8%qjh!u7e^fVEcvo?I+{epI4 zhm{h}gLlC)h8KnX;(^!f?zilfo~perU}dYLu|S;C{Wn(Ilq;ye0D3L31rI#I$~QR` zsp($f`8uuqV@sp?)2&ocXr?{mwZ@R3s~qkU|~ZPuyDuPI4o3AIBTRyHf#+} zknkXPZ~}f2D^IlxC6UaAg?;zgwj6Q@?G~RMpBBKTh!&YyoIjIXB6TLRxtlgwc|rgi zf;Oywb-`_`c$cC$Ub_c*aRh|odp0^PMJ>`dno${N;qe=kHG6oiEUx5}|S0oo`|t;Gw|(ZSan7fMlZaYR+^9-mVOdPkAx$7B1LsFIx1G>rH~a(N;So(A&$FsW8TNsa1xqHgIwreGG_zueJPL} zk%bb=_r}y=F0k|?7BSPkF%q=)wM=9Ah=oMl81n@2?_6n++Ms`pj5LgPq7bY{5N z7=NZ!ibZyC@Ue)v-Bc{Bj=`HRp6TDmkUd$H2p;LL@kxBBwibak9K&P|6vI|?{|JVT zE_ssWG}k6xG5s}M4{}R;B+x)51us=aPaLsus_z#5$_LJS=V!{{SCGW26wV;wH4@j@pjzUlg+pRZG{7?PB8ee=VX%=1Njb7Jx*HH*C*gjr1GvesK(jmy%}tcNGC|veI^LHnR9i# zT6fla1clD85ggqyk36Xe3Mx@6oPK(DjoGc!?fa~JpArzh;y}9g4R>0GQj@MPEw9lR z^JSx7&B8!woi6!?m#KCaMP{Iexf-?Fd0cY81wtk54l2LRQkE|@0)gy}hFUpWnsNX>_L4k@R$-0vtoBWfpKMvp>2ibfQ8R^@ zmz^C`*1}Q}_LXoLL%Su~W8HQjlJEaf&whh@hZZW?}Zad%R85}S}C%Kwl@ zRMeW{kvXa6bP0XH|Mf4~?elFfMaKi5$RaPM5a=J>$J4jv2={4@d$wLRnBFid>$2WB z2bD+Y<9Z{xmBT(wA|zdYroz@T7o1bk1^TjnXZp9QTwInI&)DKw?gu7^@V zgqO)whGzN(eftIJAwxHEjVc|b#Pg?6>35aXE;qqK#7|h5PJFB4MYQ@fJ{xaK>NcG6oc0PQKnB>w7vxei!7f0!u~t@tA$HVDPz5j$(%$_a~iPMsd4GAMT4MpZhEB?iQfIa;$(zRi^cBm zHSZ>kKqx;EE-)A!q5RO-L)Ds2o;QI<*|G0y{LX2$LcqjFuevVlhF;bNwLxV>8Np++ z@{bwXApIPDNJ3Ds<@GNTsKUR(ZeeT0F1orYU!0bSx7yw?jTLpYbFA~syG=rWZ#>q4%SPHbyESy>R~cLepla`f-DU$2%y5#p*&hs;P8vNta-Zy~ruOO1e%M`}Mur1Vz)d2_?V&{v{gj zi4e_VSobEQ0?mgtP;vaXX#TN8YBj#@v|$p$#ydvT5k}V!v%A%@W5hfyH96PNg3|-AV`O>&_7(11`=s%0Qvs^a z)kUUpde0C|DIt%HiDy%TqZ3(DG$}GxU!?2GpfZTvXp+78L-3g455)F_k7E24mXTOz zS}hx;Ma93vmlC_pBQ5%t!@M{&xyCkPU+&I?wz(vNCbX@#<1c#(kx&yZ(}^&x!>8DPKXg?tO;&#NG%1VSVLM@HFd;G~%B@-yy;1e`qLXP_hK)FP(jpUvoaMNwRTqHSmx4&3NbK8ZX$PQrs38Zav0v;Wg~#7ud>1TL|=QRbW# z*jZJKUQ<7GPB17&7NeMTlA!gG|a<_9lp!@ZTtY7ijRkJG%y zv{$pJPTTHQo@etpvE)J!rs#9PtJGK~j6UK_@%zHA;`(kj;5)I&TFF;wqji&ik-W@V zrM7{GukRJBK2JZA)x50kUQDDeE}acA5(lQf5{~psqmHc)f>;8y1>me|dRizRrIj}d zW>IjSY+qDab9(FijqdCtOhW2X)+z7PHnNpY+mxl}%e9Ow{jLsK`G)c#Bdf1#ElFAh}`^fz-U$G-5FX-N(FBOK7 z@*Pf2*s|h9XLCQ%J=GodFLK*j*ZZEY^hB+`b8aPEqC`8tPwa$%Oc6&oCT?llRrPm; zpX|TM?%3?y7-~bkg|aA|5n1n!^ywR%Rh4b2QeR7)YEdcj`oMkJ@zdhKE79&9sc0Qs zg<9JUowvxJcJ~%n7zJ{GFtb*3+1&ew#zn}S zQPL1HJ+PqdrAOz=BhlX6TOUi6Q`kv%BEx@Gd%7vCTG5Fd!PAQG$G-@^m%`>)Op7+5#^Eq)6n3v2mIXKIFK;ajFf<3jji{X?4toFaVD zo-!L=`2V!7X-u7Ph-`5CNSK9i9CQCVp&{T^obV1~qZd#BQT|aAuF)@$ zSH1lai3W+`CPRasz-Nrg1aw1y6o~ z4Q=F1+-c(AzuSZUelsV^LSx40V#f2-iJxACQvVO6PV{6i{~L2B3xVjRHI(U_e*kZ;c6-9x*F z#B`!Z)zUs9Mwu!Ks5)|>kR;JpJ5ZP~f8SqvM$^#l>S;gi?&`g@_<6|mDx_EMk)F{G z_bM$^$p44w87`qS6=_Dz1g!$)%0le?=v`K6dl6Lya@11}WW#~%IdF@mWdKAh1hyyv zmo#urW|n*fQ8-p1*AXCDwP`=1O`m7$rwIxLJU-9ys5aWNmE+Nk@woVuGyoziH~B!l zpM|4Gzkq^*h!7=N1!IPd_ai$nst)s9#NiCLOD5jAabW zIl*-{?vTExRLf@#wF5P!u2kC)F4$@&cPdE5olfo~&K^0Wj!;p<#0C`&>3N4WIU|9< zF_Y4`LD{edu1)W9hFXy7$zONrHO0|_>fX1(E* zeBjm`hBE;?4N94}NC;9vi@-;M(a#7th+0S zR$L>T*tSaag)NhB5Ea%?(p&or|$xi2BOG9z6xpKTc5Tm^VObGsi*E^NC?h4 z<&I-ka5T7W-k(H~GwXJ1{`#o$M-#MiMBj29=+rsAX3eBsiMBn4q;FwY9rT7gJc%6r zv%)>#6LP8Rc}wjVtH>X(?C=qml`f#)(Tz$#I83D@CeGF@xJJ7_irz=7m9=`GQ(j^9 z)cx6B$(AC=92`@QQr}bc-!rWh#R8-2JUgoOdA}6;gw?ZarMqgw27BGP`pnJhmd?x6 zrM_s1(^Vr7sGiaos!M9D(5^8$0c9zmaTb)8-H!{k%f)5EyWGLZMocS zbLmgD{87#+JCA-cQV)Uh#^*zii=)MI!V@JhHDB{~>9vmN;gwsT&)9lo;nrVdz64_> zw9eK!r^;mx=&lPL{~cZgE217*&sA(*L|0DMt?QYy{b}H#UH95x9%RXPHB5;^*W1N% z3SCf^gy*>x$`jeJtmB{C4uf#dktO@<4mBOGYDQ54$KQ<+sZ!Sm7gbfdWnb1Au!rsWj!TKQ%;y}~^Zn01w*G+(=$GdCaZJXd zrrX=|z?b&bl5kA6uNL515Ml3glFY_rJL*izBcWXJh}>PQZl0u(uKZoeyOIB100@FT zB%T72qFouixv>aIRe)&T%?s<#&o8 z5kqV@c(z1du>c_QO^YQ*CL{40N(HYCTp}FL!@H9pR|50th~>epirsQli}X0fw-DXD zRKhIc2u3BkVYM5)+~+Um9Go4OnAwCJ7*B*IUZc>&I6@OErFLvqpP||uo|R!Sy_UF~ zxn?+b1`1V^rh~Zx2M`iqPkkV~RpyVFR}5}b<29wW;`K0M-K#l@!*0%J#KlR=tbbOL z>U4P5f6}<=$u!3)S+%`ZOXYhq05Tvl-idECO_IdVBiVdSlgOXShTHXajf{-HJ0&yT zwGJ~2T9R0z-JoN4x)hY~s)DMZ_fEuI&7$}G0TG^VLJkj1xxbSed4ug?sf z!gGc&EBlE}drS721kc;2v~&JQAO%H|6DX3L@J<9$v@ysFcN!U(R1;F=@)ibiNR$FL zq=y2FfKpDq#ola5HzbWPhI)hzYqbk<*MrdHs-h1E_26sXu-zsP$wRpft`hGOYS$`+MYK_A;5K?gzod;i zTCX)7Jq}Nx%)~Kjgpdpg{J4=o*(<0_u>~A0b1JHuC#JuI7No`EOE`mwe?hP}*eg4G z(kV9@ni-JnbsKe=)Fu<9WsKh8FGAY+zzR9ljETa|oQaGcP0CeKlo&C z*RH}{-`o@L-PxB!f%n1cL3~^J3%7~Q=;Pzg>F6U=U-+UneKS(K(s zHr=#rTZUT_EZdf0T0;V}2?b@+a$U;yl%7vCJ*A6TbBqKsW`}xuN@_Q=$CRxfEOpGY zES~(%K2Lnr2o{}Wzk&W+Pil)_Tq?_tD-Pt#O!9o0Ni$%h|0lkD8{aNyYfNFNYYEH^ z-e7^p!59kkea)Args7?B9|&b4*ctqJY&bGP;*Sa3K*~Ncf=3J&iN9fXqD*q+Buga` z`T98Flm7Ci5r4XQx{;F+p4EfA9z*mIoaLQ7uOvlDL0$>E>D@T9Vu370gcbeJrgR+W z)cp3r_CfQ0idH~ECvq!q*f>4tKEH+Zak~XPW7rKLdFaApRNsiGr8-83C&tkktU>JS z8OYQm&xaxOEx5Qh(s?V%Sj&?H$}{i5sbbtswZR7W>c~7v(LMnC{u=qv8wf>68Qew5 zZI?4!;MqhO?(3-V1kz43Il{f&+=Nmhao;4b4zBiAQvsN^&_u?n#S|7XU-9S6af)}y zU#kDL?3A6krzoX5P>ybrF;ft(iAe(wq$9Kgb*AQM(Gqg?*-B4&g6EI|y(zTC8IZJ3 z4@OK@dibP^Lw!d38nG#PU%h_oQH00Ry;mFB+p>}ZBb+wkYmdSbAop-=vZ`&|qEX8hBX)WpbX$49+ zHy|4+zPZUOL!URwENky@zUbVwLt&`myFZm{o!_5FAEJuV)}z&xq{2&02WW8(do-Sr zO`Rcxu+e&ygZg&TJ31lNODW(;;d#69a`m|547=TzQJP(U7k0_rq-U^DentjgpCBwx;$TgOP!u^puN!2B#|GMuzu4ed#3J$nd43 zlw_rF{91evD1{l0U(mT>X0SVjBBQ0u<^LfSMH7JMAN+$Er{;@4)u`2*j+~0zZ>mK% zb%pmOUit+!44@r9YD(R+6`QH7fjnYnt^<%y5~&{kOG!{XvB0Mib1DGnGohSF?U>35 zY2@7>-JXI}br>pSs)TaLRH-izs?ao5wvj==g#**fFIRw{$I#~NG7~S)*sUW|;tTPL zzfoR+h=ZsT4MRIe62tXukoMz;N1;S1b=mA>0w@jEO(|f!6+AWE@d$WFvfbU^61_Ib&7se zY)Wh-cyez+q6ZT1_&qn~*RX~yRSX!-3jFn`dD)K{rl812@eT<(jq9!x3Io|Sa008FKs_h>1! z(##bL1AD(P6)&;N{|&q}aocJoKz%v->)1=UE{zVj(Uf4&rBsuNRjpKm8|H_63*$RD zQG4(-N^1oGLzRcrxRav5(kU!^RI5FQOaWL5>LHtarTTIIuX&7`hmd_oq+_Pl^@fvO zj`k*C*+LbO^n4X`e{rqhZs@e`i^bjxCX z3z9|WZ|xJ;&YbU<^KUGniEnCF^{wRte7>7{6`qomK$7U`tt7JoEd?c!{e^~(NT#D} z$$`{upJ{PwMsS+-YGw3}zJvCR5Ll4t$i2=3!W5X_5Dk^hT51c=Y%z5+t)P~Wmc;)( z3I9&-(z%9*KF6yOEgk8%T(jc{cokT{)>5%KsR8m@2?-RENuq`5Mx#=DPzwp81SeBX zf|IH4vS1B!!4)N=x?_eGP$&B>(}SW;w)D323dLj2TpE$-KIeg?enX*&;h@JB=X(uE zz?pasps1dG5-rXdCxHXL`$^#6G2*yP{JfBhPl6N+_a6zZBUBANeqjI6EsMFbVs49k z3f9>Ta2_Qqp8$?uZASbo@c^NrUDY>d&oy!%&ECZm#};$%BUFH!JoCB&sdRmG1Nn9S zV?6uaLdKYeNLixr@8OfsD$8Y)B6MzSySBE2dBA80J;-GZbfFTw>^R z(;FRLy=;(%$5Z1*n_s3cm_}yv*iOEd6JvQa1OzSANl-OTB*x@LJbfCw_=j^B_Ku1n zpreumhockG2@NS~N|9E?y0oI`gfU2Xk57iRq6Zg~1G%qId`scqYN>`o!j5jJrV*~7 zCV}=WiUqpFsa+pBDXe(XF+!Gv#zJE_2s9iH+>3s|W5!R#^;}1FdqtO83*4#>e_Q%h`R2!)OeqF^q}@!t35xA;KP zI0iz~BT4TQM^Y;b=+onfnf;0Sw&fRTh^mCSZ-A>8hnAzZ`|l*M_-%-z{`o?j_N zRodN%-kMpIsG(Q3pvTQAzyO5*GPt3F*e_C&O3KI4lnj+DH>$ZX`V2z5-hl8==+$xm z#I2luW=sxgyNQ+5{i4(6&dioyb?NKt_SHooP1As(?yuSyNmy5l!uqaZB4uJzTf11^ z)~;Q{V$2OtJFHIKxtLzZq2E_;6lv^fH5!{<(7QtYI)OPDPKNmZYYDAOeh`F8 z{4iZOwjSg57A!A(!u5dyjO-uXR|K_A>yQiXT5|K_iT71Y37U}>oEn!u-WvRU-_JTz zF@KyS@UIl%9pCpfCkZhlccvy>NnVSo*^JX@DWH=SYRNz5fAQ*2-ptFupTEzmVEO)0 z{QRt|z$Yo@GRCVH7uK1 zWiV_4dMF`P9$ZMqE;MRvBhTG2eY04;`l>Md69$}5o{u@4p0A-%H{Y<*6#xLTHZrti zI+~bXxJfYW?ntzj*%vcso6D^K(z|>pHS{@BlC!t@C`}Y0)0rmF3HTI41|*Ju=kjvm z>hizzW$Px_GPpJ^WYi0N#2>F+MG%&ouQ@EA=&B9HmP}VcOJr3`HM-iDaXnmyJ+G{# zTKp7gXR+te57J4g6D`#(o(*6_6IMTL*!WTv`!4Og{*wd}={#^Iz~w;ZlUk~%)K7xX zALqfpkTB+S9@ATQD1}6vr}+a947TNK1zG_|4+VidyvwK4G~tn!AIO;=xj@bXgJQ(Q zXt80ahcU5+p-l4pW2j*L!AvKOI?=|@fv;m+R$Fo#KSNWUXvx8o(-%p7ZD#*MTT&=p z;|?Bj@dR?(aCXz@2=I_UJ&??@GiPT`;x*1BQ}UmTPF>`?`OPXC4sn7g@SFnS?W{pu z)slU&9{2!u@0YaiUmtl}9c&bQtlTRsB7178TJ2KMKw~i#WV2rVTiR`xtu%h$r^X0HIx~0 zFS*ctbC~WM~$LyYK7vndXxvHNhMAAlI26lQ8I}EMfm_Mb6(Mzb>4YOndh!5UP%6Jc9{8)q`ui% zu~}Xrm&s&)*`2vA z47_=_L9c4N2X8jmh}K8yvs2HR&NN#kl9fuc@Va>0T-0)$#PUrtwwX=0gr3|ObJ7Qca%+HE8In5IbC}n}{o3t` zDvvAYl{le0xpIeL2nCwM{^iD*wlM9ZfP!QwlJST~eCO_qzq1B}Si*qAqlFrqioIQ) z2y3@Ec2x^Z1Zt15+=u@v{>h*?i8a~&)}qSoUw)68%I(+8aQ-j9ClRBn2w(btI(^#V zP`I8W4h#fTx4FB)Jp^(PZaE`X$#Qm)?g!Ekwlj-SmCf{(2Rp^i0Gx~=!*C6%zwJrE zGi}i)k!71R)9__6d@@EL8gAGzmKQBdJVlKDJ_Dn~J3R57mMqf(*4sQv&K!Z#Oji#+ zk(SQvT5)N_mXIK1u0V!V`q#)Kr=&_9s2sif9uuPp9}3RLsMpPuz9D=gaIsN@434&6 znG+4zNsk#gC8P-nV5adxFOHT|5Ux(4aCOGT;p!PN4)(>Yi&0zAEL=x5&t#Zj0`j{F zKl2*?VvOn@p}@X)qc{lNwyj05Q_a~(^U=)Ir=nnA46Gnu<;**DzebTY@ykn22^BQO zq|C`*z&)6#vu)3r9eZkDG=l@>uh)i0#ITri%l}rS3$x8weC>|JnT6RB8>k)l7vxnJ zh%zA7%X)KrVq*2sG{6*yJv#g-q7bGRl@)dJ_?PKrMf|Ja(Vq~Ul-d(p+J6ApVbZ|I z-Ry+Mt*ltRKCg-RhC*6)GoqP)&dd8B*U??D$wsW)Uj4}plRVZc!$ zT;N%%t5kYh{j~o{0=Btn^;3piAbg<@fcvX#L9TqFU<1XeX>(Hk8aKbOUGqFw{Yt4D zvZOd(J5G zbG!hsqo%91`&0L)DtRoX7qQqW7bW^yrQ$tT^*_7+DpVhqgSBn{3i45)5%L~+(x$F< z3``D8Dmg#?E0Wda;}34JdYE$HsSV0Y2i7Xd%3Nu!?aV_fsX@vcP7dJ=8*#cbrzkLq zQ_x>W%>xK0*#zbU2;5|=JOcvo5`K`=wo?h^f+$XPIsp1)J5_#u)x!3ZqYjcm78zTQ zI1MM=2acm6yM@X&>N(F&$1e?u5Kb4|FPMm!laM>bKF>Z3YZ+y*%2jT5l|H9JolkKf zWDl!p9_J>d91!@%anJc`yLy^tCFDE4b8L_HyJ8d*DxdR)i)+%@D*2DI;g#$wWB11c z^o8*NeWeXJ#<7h3(8#t_Qsg1+6B+t3?X#3zKJK81H?rcMu%P*xj?Li$!KD%| zXeyKL&4_&8?hc%7xxD4U(w(Qn6XBOLySl|q>Yk9#iZVc@dh655W(40VZORwW|MAC5 zEA2t6yJLknB95gj-8r#y+)WuMJCDP`;@s$6RORyjTQTZQ`#xQ{NsYpZhhkFr+N1&e zk??*lb(gavKmLQZ>Q!5{p3;5>acOiu{?PtzI0p%;De2*S`1sgj^%41;GqN6gVLdzD zaYG;j?Y6ub`zixHHmloSQ6p5ivZ2)Jc&NLkc`1B|p{Ln63PI{Kn(uYiw~|)#OX@Yj z%hmnvp1H^uD%oEq9ADKo6e9Rs6)-s()^Z$fD_!RQClmHhJiMj*!1laOv!#|alw@k7 zuxC~4BaRYSZ;{n?H*7nAn#srVyhEf@1IdoAV;)K!?VjUyM>@1mvE!Se8Fqya9cWlY z2|)lJLLU9Fd|n!s4p(c>HQc40?YytABwQqJWUh9H_Ehha4DFUHDr}|AYu7kEdm3Br z*msM3uSK=WJuL^s&GSZ@Le~1LN-BHOtQFa#_Fadnv7TGRO)S{7Vo%xYAY zSna#dHbrgJOMKtP-oBQ#%6fK4KM;<9;vED#4}M#Gbyw2BFY3#EziA$8oe;u?S|=9d zZfV;_Z)v{kG22i^c#g8x-g?}-W#3%&cKxcfjFw|1hn}IN7L;@S2<(wR-Q+Aq%Y#R6 zZ%8ZFw}qq9fd@+-DG=A*SB;8_3ftybG}Nd5AynJ&F?Y+{!tm14jx_J_N{@11W7Jr< zpYccPyM(ZUdMdhd9y;PE;|WvHH|j^bCcMXuZsg5hieBDx{UhP}liopu;s>g@s|PEv*~0Pc)jA$LvBz!p)HVDP2JH+3PmV4ukEL&{0csys~)a7CamtXZxks#^r&$LKPD9&;-60ta$3nKZP zV13*c%9@SYSpThw_>^AL@6a>${TLCw+{7EA-h}-t-ZdKDJRZR=!mW8IQ!AoB5l%k1 z`S82K3IOVEaSFh#gxE;irRgr)N)mlp@7z;*MzYeS2+Bn%Vj@5Jj>6d(7pdYiDiJ&M z*#^#n+;xcq(*CBucP8**58mnT#h4l<(qL=i5dh$0>N7K$adyWNZw!rTPddJbzlT_M zCojnTQAa*YCJ{)R{CBq!3MR#-A+cHe#Bw}w5gudmazbU=Ny7R~c8E%x?t# zk_0HQaQb(cWk;cyL5AHCqiYxcjz>$hH}N{?EQ9^)FkJ;QAm1x_>$Fq``ov}h$tTBzMPZP_53`@owijnsocQ&GB;?xMiyE+A zM4?SY+K>_dh$thYneQLb2F1_f^Z(#2cAK3nMTnZ>A2$9G%!PP8+@9~7@=f8^Ou#D( zx))AFZ)72eMgIXwwr)e7BVYH@IIVjlAwhl+*i1=APQoqm70wG*ZZ>Xo3fZ2JPvUR2 ztK-E_77++$6&XZg2}4rc1l$-HlBk>EE(BaP6aai5f75zToc{+pTYPGi->A+QBBIc_A z-9|zI|3%Xw9i+)gB-D`vuZIH>lTV&pn3zkW{=tM91?6VjZ3MtzTwg@_&xUa#dj}HP zTOS_9Nb_?rCjW?*ns3_G!WN616q!LRIhYg7nKs^0K$JT3(j!A8@642sqEEBt2=SUr z)E_m)cp({32+pd=pV|~N$A>4&@v*>PCL?i}Jk4!}~!W z@_&e_znJaO%M8X0ojk^;`(UJ2C}i?lwU@P9f7IM124Y&F7QLrJMJ)->Ys~$sSmtIe z8$}mqdZ?!Rs+vppN3?X!)~ZI#F|k2=VuOcUF{x&Ec%V!Wi>c#T^7Q&i9O6lIvf#Hd zPR(#}L-iR2d;dq&XVGQdr13~$QGE%|T(L0c|1ApZq0xt)TOO^QJw0fmaGgKNHCp0c zh&>InwBrW)3VaIKq*;MFnVtQ}ut;lS>AQ6jQ^~10crBJ2uAi!F2J#^(1Nr{3>0PP! z^4a`atiOosRZ`w?Tt~a0!MLUoE*~}$?b_jlPnZ53p4}Z6`QJiLNP$)>!Zk$DHPq0S zVrqo8l#BPz^dMjEsPGviK|v#brpI?wm_vo8N_z)|*^%m-;>ab5<#(iZq>5=h4O}jx z7AG7~kS(7I3hUI!uz8lj)L^Q4d^IVUikeL^lm?SSq&L!oa6*?KT1)7yV6Q0tMjZ?G zbWzVnkHNi&1aQqvKa&ps?VUH?IExK{XB$c-@3p#@%MAiL87o`SP z>6Mnk#4f3VC&LE&a%dy90)KPp7cQuvtG(QqQedCF14{xxgD@AMY3RF(>x zU3r`3HLZZrpO#T&S{o4*DKuyS$fO_|-^PX_DL@aiH3Pr5h5io?goy~K7 zXB%EEmSgp?`o3E`EpiGQVu!L`?zj@HQcZtCs9m|!9{Vel4B%Q*T#(RKD-A?`V8+Nn z)a1`;ijctj(4W~fzw~w6ciUDQ92j-yb|Chf%?CN%`>Qp*ee#a1rg{E<^=CFY&hy@M zz9dr=-IpW{Pz{@&r{_^ISMON4y=5(ksMOz}E1hS$6&W1PwT+V$#`KTKqv~L8BYG;^ z)b3pu2nPyby=t{!Ak|f!j@CL+ZQJfCr7m?sV20%njFE$f+ylPOt|PlvTYJ`JKew|C z6uqPJXrSCJA1kr$*aEtWfj(EogMHp8dHSSoJ=59yo83M8|0zc1C?Wh9*mwJ<{*m^VB19 zW!Cru8`Tvhd!FA=RU!B6{iNw;^AGr%ytz+&@$oU@R@r%#)6s`yzHJg;AHI#%-eK|0 zp`{i6bjM5jeEWe6a`c?puwmDFII4-*%RgZEJUDmYvv9yN*OTi^e=<9^sWoB>t8R@* z0~<27WG-vfTXiK#j_v*E!RMN*HwD6n=C`bD?rw7LU1Lcs_=6YEsQ5EhzIPFPD*m}< z{gw7J{hzLvwj8Vm$I0#AZ1D|tc|W0yv&qG@Pa!b;@jJXnd?|H?fbMH}L9RZxG$WJR z6p{xjbbZ%aDmHJrtHil|OJ&u;dk>wiIn%nb@%e+@&iZSJ#H^rkk}#{?5eY|c-4X6- zc3U^Kt+q=U@cnMTx3ueR>8R|qVR`T9o^B2+Kpamxr3bR$X7RnC503Pd^u}x-x#M)1 z++q62SwY-Kj>g^JGI)~NgbYq<>I0Z9AH--)D@dUo)q7_o$}O0V^LUVSIY`3&PTC-X z9#;#$)363%v;0mxjF2m~KqK;l*iRxP|2rHeloLWwl0XeM=>m{UWX`T~Z5T0;HF%N- zn+BHqCuT#Z8C6=m2D=IEu%TLnP@$;UJ>gcG<}OGks|tW4na+SVD;3+-_F+6?&m-}T z?r8+ikO>S}vWl-7|Aarm>tWwy9BJnGb4;Y!{t;C2z};Zj&nbl7ZsDec5zLwqVeL41 zivyhCQ$i5%-__o(na~k*#}+X* z-7ymL5>*Rc^K19xa{M_o=lR^2QTg=M_fyq;f0>B*(M-XR#>kIHw>vSxpr_*=e2GHQ z{7d-S`zm?z9@;29FX<99^uh84*Ugyh@lM?F5bR1YNtA(CXm5%|UN7C_Qqm~~o35m@ z$o|a^k@b~D%&+5)pJts>ZszoyRHQ2*X@<=enatADj?!11+F_6Nkfg%HL-|sxrRXgBqH|pO*A2W>N|uXjPKkX|X?5E+*%wOt9ckf7L(UP( zsOw|B^PNrD(n4E1;YMA!4Y@EZ+ObjYl2*{!loSAo2tY}SlI1k&rqH8nF{UMtTV*s zYIbq0%UANKkE?C*-L@t7q%A*l9VJgIIr2%Kr-nMbNuk*&c9hu3>s>fjIE<2>PiW<3 zTRcOT84&giVJd23DlZ2CRu}|Wx~!vN8p7vvvIvW7=MWapqJFVLlq5V~xrE-3P6VMv zn0GouGH}(VVi0m_X{BnfDM|`n^;}19`L}!hi)#=D?~C{3@?5*6YSR4-8f2S*uoE%Rt=Zw$1$ zUuaWICloYq(ce;7+?=54k&}92=E=ZS{A|(A0_hu_g{WTZB|#xih-!};YlYI%dW8h4 zp-Q;m*}_nJ+?FrCfyYbN9(P#87p8qju>oS%iJOrr7pt=wnK$i!NsL>lBP`Yg@3uG# z@E$qajV;LZeXFB)CfeHXlt|{senjVh3(5BnN6Un!HceUo*v0fCJ=TP+ugBTroZk9+ zoZ=#BCioa?vIAkfm1XIU9)__7lg%Y2DT_)BGK}_6Hw}Dc()Vkg5_-nuwwHN z*UDizxtV5qmU1N^)?WZDurI+3O$$}K}u(yqG`&0MX3 z#^C+2f*{3&?_;PONF^0BlMZbh<+1 zBBiW`y@m$w72pIctxHCEhZQ5?p5_urb^1OcuQV*F!a%aWS1VB-QM&a? z_nXQ&r*faIHqa9GmY3QaE);uLWRG-Zl=NkU_NYfa)p|x# z)V=ke2);l%dAd*NoU*7PYTq!ykU=mIXxijGii`x`m2NZu1uePF)tJ|Q`<~RUuJ*3> zZT{$f*YX7wwhi4$$aUa?@~OW(F}N?bFNTe0isiATreE6s$bk{kDskHZW!E#UhwuMT zq=1q-x&*>&_I zrV3{__k_gZ1ms0VZ9?QSQr#1p4etFXr^5z#b;XZRkZt-94XV3~!vmMf2oUIN+EwVb zdEf=*8LZM$;c=pzliUnbM^2}(^7~;pg;~x;9pwD8S~$O3G%g{UpeFNZBj0gEJb_zO z=P6u6vj{HcJax)<7SH@U*pik4FL$4uY=lyr{x})578W~F^FOqwWH=zY%fl13IBYMr%M-63n zR$7(IH#jS)RsdC!>NkvDUetyQdh87)iZTdgo#T{9RALv9#K|sD3FRqNKicpYcIht8 z%A@ag>C~W@=w;Ouy$C@3l$3`0NtAeOQeLZoqC(>d^(?Fq<=?Eu`W9`zD1UIPSJo|X zs~^>i$WJr^ntUtUve9O9fo-*9qj!~IDJU+kepE*4OIlItdsC?lobb;*V6~jOq-|qJ+Z|I2z!PDu zs!OwbLW>YlC}koF=)%@&mEo+`1z+&dv0e(bIKpZh1O%iE5vyoskoLhCA@ zqWTnDX|T~Yp{%WJb#A@T@*z_(D%aXQEv~M)TPqr>+a-JZF`Koi*!oh1zCxPvWNrO7 zq!pH<-!ey{%I*>*6ozkM`5yfyX|=6V&$LGK&pBOzr{#}rxqp!_)6;5j(&`ov)CMLZ zF}4G>H+3$yzauF_l1c){p*w3%&cwS+;vXw3I4WxZ-KZixo^6)v+hl;$I-qvvS)u_Eo+MvjoGBbB^5o<);VY* zJWg(CS?=7^+a>iu)Gyho~bf3DIN@1|=Ey89YR_oNR*Ra@K-N;tnjfy@(^en9{sb`dlK7$;a(I_dA5`B zJRvu-MbFzPV-q>%sy72(X^5wlza;Nx zI)yV%i9R))sxveDS0KqEhPgE5qimEtV~}s%Dt{ay0A)-$jYUuGLjd>4;`TVX(p28I z`OX>oX<~!#O++RTgYafRp=j57H~YhzrKMF$w8jKX@VUBa+4^o(`jNb>)JSmL!dPc# zeFI?Pc1Zm-rz)jqE0CI6x=iYBSSulSSxlM`qCShCxtxu65w@eOMR{2M zIk;6$3c>w9343az-KE7eASAgrFw%NZKWb||RO-FOF=q4l7Qb#U4gR*V-}_Vf?yOT= zQ*@5*+n)`;j^yW-8fV8fTW#lb>}8DJ2hzbEkgEN2u}#a+=31+e3LcG?Y`EHy9(@0X_I@8fhMSFewT!% z?9$Uwi`WCwGWL{Lbh_%F-*?#eykyPvJ?PH%e%ZxVfSL{dj=lE@cZctJxI2_{rgMKm z|AlzMr0;ivkd=EpP$D~~p5h)4`V`A(mgCxcmr2?Xhn|04_uh5<>pYu0+MFc>eh3sH zK?GDgi2+VB8MTj0yF}3Z`{hfzM1pT}BP|)O?G(&_&-@5a9Eu392{PzXLUTIbqQxM! zcZ}wK)zvWp`8{R1DT`K~uPXNR&$m95*|X@Ow*H4GGW6iUz86j6xBdww(m%0p$Xn~J zt+Qx3gX=_{N2Tr2rOvZf^$5kZ`f~ax{pYW2LK_o;6B%p$>Eo|z6WW9vQznN_JDkA5 zISKL=7;hL&xmR8Igf*BESaINj6;*|3#a>lrt$cFzE7p=qr~3spjdodEX<#TY#CpBI z!rUya8VV2io94QmCH998*PlS1JJb%shzGytbU(bOY21Af)OphLh>bpk++phz{w&jI zX*pHmEVTv7Okv=yl?DJuE-YWPOv+f?nHPvD`S9P@wmcfRvE?UTi`OC#qP)8|@yc>D zwBKtd7A?yZnYAnh#8&IGwq-my;6WaHS@}ez9h(XvkGijMqmlGo!x2;yoMd`Kl6*Kc z0Xd79V8=Fn$`r+^Pet?e5Q&zo*IPGu!;y)yaZhyHCYzqBr?M3N^R1ai!=60zc}K4| zpW<7cwZDoZ^4;fnYZk&9% z=N|Yuh?6?e&oLw)GI0GVXhy_sq4;KW5O~80H|F{H?U3hh!ro=~I30+jBC+0Mm)6_e z@Ue;$^dKxP|Fp*8v7(39^YD3lOw=d8f*J~?8-(}VV?6G80|6+v^g8wxx2;mUT>2)t zq#^&~o085M-j})z|IxtJ^~v=J@YE;g(mh>JzZSf1%E#FFT(AE_Uq_lgrU=G)nF@Erq?-TSrj84g+X zFWz+k2gOP)a@KsSgk!kV@AmX8+SJwURzEKf;3{enZ>Uvj*@V|d24~MeWluTEao>a= z;w5Kim>sUv%1fKJi1un(=Xc#G9b)sUDz<_(R|y64d8)y#6K-_AQsx`=CbrV-pE@^f zQdeUoNyl1UJEJykvi*b2cfHu{?*E;4#ipjbx{0Pd5*Di$bfyt!;|MMA&WI?7rAJn% zOiBY=mfQFn{NwaLng1vP0?TdJA!L|N+n$;Z68>#TTf=7bao0dw;ntH|PfSM}+lI7B z$Xg=VIQibe#=(yYt1Pax|58M{mQWQQ-)F&XW6UtJg+n3ce~30OZt0H(yMpbcuZ5wF zpdOBE3Vj3KfJtUK0JEHqL4Sw8L|th=H^dKospHFo`k*f1|IS6%b>=*jOmBBg?l^xF zD%kCwSh%@*Fo#63P*t(McpYLhwt)pDY{IC;d(c(Nz$PGnGB7HnA86m3M;=$|jGVDJ zlRj3`<&lSf1m2tD#Rx-WP44{sV5;0J_r9PWgB!4FlYWEMGycdTuErj@7s^uZu10~- zna$FA*jA4nDSmSOh z(UX8llOWs){I+hQV*JTP6>NUpagWoqaG>BzY_c!I$y}Ayc6V?mEk1S#zN?S9-D5WW z0?$v#Y#Th_G-YdVI47L5J!yNA)_cI&H5N_|C$p)pF_uT)n0=$|8@Q{3HcY4rwkBh? ztGGYzD}k%!>r1aM#xPb^fyUnO55P%mgs6m4&CN7Hti>Z`&d#!WKTZza>|3xiHn%L!VVL(L%rco=7g zPa4PxHj`rK19*ptS_3Li9SlCi`|A{zqcRF5Vy=t4!>iyPQ4W*U=|%_48qst74e6-a z1Q3BWL~A}e?mk`frUNy16|l;))vx&Xk+#hJm49v4S!Xq+A7!yV%y*9)6XPgFH4$o+ z7nLgAHV52te+c*p7Mn9w9{0!t-Yikb$bGMA8TuApf=3Qvct>F5NYBdU>Tcr8*tS`C ze*+$^+7-w@qBov-l zm6*LSXi-PFZXDsC0uS&1jel_3$$4<>pb^3`4ltr6V{)gMv`?%cI6Ql4;}c%$i*jFN zZ3KtKw5H?Z^O*n1Y5fgPZPq1P?KVpt-%SMV!LHe$J=i6F0*~|)U9*1TKN2sIees8h z*GT8U`X8I3>yg?Y?#=zGxmbq&)ksA+c<{P|g9jhP0>Afq#*lU1 zIkcz(Yk*kN+nvJaG2tqgiUq}H!VfE-)z&8^!LTa<&0p$-`=01WdzB~Sm6rX*Q^i-_F~G1_pVpi zk&M_TK_;Yev+FOa!3l0(<&GfKKzUc{Br9m&yu3Nal1ZkG(^YO-Pc&=sNUeQDu8x_l z!v=fGaQF$1m`-9<64!E1jRgt=%ZsE(@6p8~qr9sgU8o)5>ZjBxo9ytl6a8yBzNHRU&n7-nl4MkYaFrlQ)(6=JM${LN6@!s#zp$a zw2SJR9ttHUZ;`eCPzdXPjE&(DS9K9BT5|#_0WSIF{k`HxSaSPl`)K?kQrkzH45UI4 z4#YU(5r>R8SqZ4TYd=_=I5Kr{VgfDfAU-#vPSMZb1APmLEMU2<~tdzTGrfJho|7E_y+Ku*9-eQ~*sB43~(Duj9>=fm7h|JSR%!p~cTA-vLJ$ z`ACr|_CjEur@YcxjcAbM@*wY8{bzqG-Tz$nHtN}tNnZIDC7A=H*o^%^_BD(ea*X^0 zKA%$Hhwb30ta+9kdg`At)@MrhUB-fW!93dbAwMVNj-0fBJhoII&GlC4m$p0J#lDkL{lS}r!;e%)URgh9Nt*vPcXWO!~0+Rtsi~MMypZtDO z4LC%;;K-`G&q21f5Ty*y9}edsXAOtflI&=@X9V&id%{;x%SG)LZlqgSHnjv-h@dhTnNFnI$T)cD1Dk3%^ z$fPc8?2^+>R~M_@+odL{N#sgz)ZLWx<%#~PG0gp^y$3`vnjV!x^`tbw({&mO8VZ1w zzLWt&)(}>xrZ;3!&Nn%Gy1J~}x@{!`t9^ec9$0)}z?0c9DNmWktWxMt<-t_^WWyx- zZdY|JcADp-<{(_0BMq#l59p*?(|wDBWx+DJOlw6b6ZeMSAAtJ43Gy0h1DTW=qj7m%yz=9lnDxhnB47fDF8xGL@=pm-y8Kg}b20q_^Ix!H67%^N z&JTo?5X;dlkM{gbavU~T5fF9668&I43 zrpwjg12KTDB74M9e}p$vX=scdvmyC?>&9|$+DRA6gL9D>nGsBjylqf^h>LD2;OwS z|8hO@FAL;?+*9U$fc%Lfn2iIZY_xlQ-R9lCjA^6VDBW*0$W<%35z5(GN1(5=&WCs? zsmZ#2&K3Z}p0FwP7Ld+b;gt29u4!1%@K$k^JP(PsND-EAhpWM5Eep;m4c#uUHR}kx zp+JfdR$#uOXZ&bw;4}IkTi*8Gr^g)GoVW<62RIvDc$}4yKOw~@G6zYz8zX5|l@Yr# zhm8bWk>ko?t6P>TDx{T|2bJbrcR4+6eehXJ#~mKb2!?`y5|6UpeM*t2w58#bw#tf{ zS2!Dm_c-`d8n3p6r-XB*EydmRThN+-JqGK@!;VNxDRqdoL%nq^WAoAMCEGV3A8vW1 zSh^rsPHO3Ax969X+ijaQUrQPVm9f4oE~m>Stx!tzv-+ZvDs?sckndXMmlKYbh%whH zeUAFQ+EWdU;BI-nsv;0Bw(Y(lun1d5KrRiOLXnf(CY7tQwb-|`af1bYGMgT`uc~1M z$^*7-iBJW_q&<#=8!}A8(Gyu1)k!!Kj_UC?nbfQiEgEM9Sw!L6rCMdiT%@cxGe8bF zB{tl6BVZLE2#KC^(=m8@d_rS{FV^7$&?+F$bximk{9c zr%bwye$W94kb@DrCSKf!sj_7Ol4NjPbDvSC8bc&nm-*WPXP}%TybwotsH+wd&{ct< zCvZ$;QT?qQMMo3UpdK$vgkLmtP#C~->xeELiOwbE{Gz#kiiPMk4KzIie(-@_FN|@{ zq%72G2aNP?5ozX)FLvBaNY zBkCjub_QVwyZQe&1>NXfWG!h%m`8|uF&{?JCHOE**F1&=3ShRW_prr3CM*Qgp1qW* zcj=1o_59|Ku`wJv{St(VL;tvhYn6A@H4pvq-Svoi0*QBIGnw`oz2>S0&*}u-Zgu>o z#ABcteI_&-)Su93&}oCc`Or#n`?q%`y3yZm(UNh>Tn35;isD0>gV)@+77bgeW$UA< zB*DW(azUK>6l?QVD}&zZ{}(7Oc2E?Wi>TO+TZv+A^JPB0z%T8X=jC(KLxu&3`Hn%v zqY(}@TlC70Dk(_zhOPR)rAeGh;f@vl3OHu*dPGY%4PC5%?2?=rCUGU0dW$P2i~2M?G6nyOyLW+$t330^ zW4kM{?UvZx7Ts24rPn7(!n5=l8uOET7+Itfwe}tfV22ZB=v!jc?Tf zeO;kvDE>a$8hT&ug~X_ennIhlXnw?XQDCLVjvc74aO#k@Q0EzA!EbhtiEhjo41E6n zHZQ%yi2f+EdkT!IHww%ogl2N_oNo`EE$=O-q8tSxe})3YsvY1Xe0 z?aT`C8~Yr;_S6`^8hZ2>$@<@8sNtV6w;#**0SaRob%RnR8AK|e!T0?G;$cP46W1rEFo)m>$JWyBLd#)5`bsV}B+C89wfPj%%k?PNCyk+Qu7+7T%kE|qjg)|j|ol}@ZLNtp9AXUA__nhTb zid`b#g_y3o-mc@zUgh|I_0eqUyWVfnc;*4X1Z=9qBHhbWzm3Ipwb*||xsMp5X4mW# z`cs~;QgqN(s)@?cru(3Mt>)rNIxiFCl_8H z&ooy9BuWJHNC#4Y(9x zn-3Ai5`?9ZRaf32l70?{XilZl2Xm$MG4aK0!2Zu6@~A%V%Vi}9OcQm!ro z5cy4@_UyIFhL#%V&IqLU?ds5#72#Q}fPxT&1*o*N{cFcsMbpZ;NF!SLzFDn-L@C<- z{r5wCJy}GezIMZ5V7P#Oz2g1~X;Z25aN*&ovP4e4meh&VpuWum{u%u%q<`vL>aFWr zD^wr6w*4r<4Vnd^zBJxEBwIKq)-{KkLvlfLCt@fi2bbBjW#{TAOCGJUI$AD~ZX8Gh z4X*I0!*Wfq&awOKufi*w!h0fGM`QdS+d6Qz(a$~m{q>Ye1qIFYp0(i@-l%Ecu=gK@ zXZGGUAn)%(rP-dHPi`c{4{t*wX!NrwnI6?KJpNtN-zu4bLN0QFG~&@(eiBFye7xyF z+o2`e8AmXurs*4=cS94~#<|F|Zp2c=idx%Gx6N#u@z?rm)!9g3&;?rDqmpE)8}K-t zeb?> zw^mt%p!lfxMZz{rcP=YMr60#z9GS4GkGq93Yk5uk9oa`C$`#Mt(=?MP1J5;$G>y>i z*=~1vDh_Flz?7XexW%owFs&|}mKjGN5%>RyWiD+)Ab68p; zTC$dmT-m3ZE)UMNpCN2?%aH>sCxOd#mH_xEoO$*W*nOh!=r4yp$D@tzK>L{8-ReFs zT+w{O^=#3eSuii%bjKbIX!#U**;5rjWGpuqZ$E7=5sIr&0AaRSomG!V2P=vXKKN)& zi+TUt;PBwVcq04p@?b4wD~sL*YgLn)#q!v}a*~D7yQk_Yi>;H*k$IMovt!uQd8kzO znG37PV8ETCz{~Rp9$zW+;PCwoj$RXUzKj$(jlH4Eq5KfxH5>>jMM)ubj?A%?N)prP z6Oz$VGL{<^Zu3rfC)mL|Ce5m2aoiXFekP%?3|WzbY{rvf^hu+w`^CCi8;+s-7&Izh z&R6rLhFEjhHHd6;lbB^bVG^&4+Y)&8*7ErwAefjhENGXN&@;h39P622z_pcu#t@QM zuuUKsASpAlzU!z-jrr?cqg^`a1(tns*C@XMBU!$)2x8h<1cwBMhYZ6*n%!9h1B4bf z-Dc0cLlRzgRDUT-bfj?1A~=8NSH>k!HNpomPS}f8#B8e=KJ%#wt3@+a2$V_}f z8HFjoDv+5HohdzXp>u^OFr}9=b5xDO8LGyGh(B&MmowumNlt?Ow(c3t2t<&Rf`JvE5z}r4{Um_oXnzSd%SB%8?V`Bdl?lk|W#?)c#XCMKg(3j*( zVqcvi7rIkgV^{B;J62!}zdYwl=KtQ8%mx4c_lxGPjV)HX0NOFJ#&g(-Mos9#o+fd| zNIil=`%c`=zsul@{B$e>k2|Ig1=40A4o(nm6AFdp@_$LwbQc&xx{ps)f_Q_?Hy&d} zvuMMF+2tb7`t;Xn0PuWN`WK?#rLBM|G{rXIMfVt-30mxU%=L~o51A0?*6+P}qXYJTo+7U^X=gg&^vi(V@(_a&CGaRE-amA$;lLaz4T|k}o5+d~$v1S^O&q zZcc)1kx979TjVX8UlnR#z>3}BKaY?mH0X6up1hMspEKWjzF(Lrevu`4j62+00DPB-+^Zt>Hf;_>4oTE)zZ!eQ1 z8YCu17+9cM8uMnP=WS_jXl`J3W+BemEEIrIoqhJ3o~yNIOXNullJl&>sx*hv_t>0I zujeRCsgA(Rzp+bKmRQjn!)B4KfTY`<-gmr1sK)sreAoo8l@a2g#XV1Zi9BKjc= zGkMx7^r?;RD@(*P!g{mIe{IVFTe=N|C$C?rW>CRHBKBztxlK`JC0(Hf>x`Yko&67pb5lH9fDfwIjbHpHlhwxr!>>+-TU~ z>UyEL##yi3@7^Swl1w;PnaG+78$o)3Md#)KY{*d4kZG}tMdG(Ik+Lt~LeC-|OT9C5 z{ZOh}&Y%d%oJrB?-B$|cK;IIdM|iZ#4EQPOK&A)rOc+|Pj4GpSrhZ`V^7!A)?)-PF zGrK>nvZ>6+R)1)``y)=v?r`u-xed9_Ll&!}H(cr3wV?#PShI4Tcgl6qjSTgjEuWVz zkx?1S)UZ}sy1U}wOYRBp2p4JCJJL3*QwtV$rFh?Q+V>3#YX>X#uixh`v+wF6TAbZs zm$m9}k(NR`tpA-O*YCaD@;2FbPpl|?dMQfj1~#?4bo5Ie&(2RMODhM1(qN^f1bjEF zO7@8Yn=hn+Ra9q34*5Ej3E!x1l!^)P^Td(kVv(Y8k%kp5J?{~_)ut3Gg$(vlX!Ml* zr45)GmSd(*5~srBPa&s#@Stbwq3vk0c17rA)@1GANvfD}pP!%X^w({xWAp_s_p6?K z5@y+W@|6+gD6^LMUl&?S2mp3&^1$U#hTU*BUArv6w{^Y0|%}XBwFjDpOL1 zXQpM;csm0C>e?J2zePu9%M_}%{#owGpFiCnrH4P*skLT1)j5SElUcFlO>dJ?jie=7*WGfi1#cyoUc zRL@kxog{;|7k7jOfyF~f48-jrWcM4!rZ({ zRSIEwvH>SvX$pxNATrjrYSH}q(Ijg~|nFjLc|RF;Zhgo9#R zF69oXuh^nICU2Bc(<;2-AJydq*-YL#dB$g=zG(ijmKkwe9eD*d)BdemD!6gVPnErE z0U5%}?xeU#F{jJ==k}{j`5Bc+s+$!ovsF7sxNi>#P$hw zb}(fygMO3db|Pl>^lOx{!ZS=)?7W&gkPO`vQ{{t4AHNV+s*lgiJ0u<-(6<)Hc8q$) zTf49jk4=GIC4-lWNS4*SR)jWh06doSIt6<0M-ts6kG6n2nSVFy6nJV)^P)r*=}4wP z;owQx{klg?OBU)NYAjtS*m23EyqJ^I-C}}<(U)#_q&vdDkzDBRh<^FHW{`d`bobu9 z3lp5XQxdd8!|{US1;%1mpcR_WC+Y;!3avlH*4^;T39sF2XQPn+J{xggeq6mtUtF{g zfnZF~Z(vo57 zZ12i?^Z*my^}YhMwR;F?M9qh)uqAG4He4GfsJ5dqr+1=j`^v6J*EY{tLo4*=?g(*F zhLyw2rrlxRVMly!PWq#iz|Q6N8bP|4iujP+zI$TPDtRXFV$F~S?u4>f-G79DfTLKxFB(ju{&T+3n%b!8QJw4>G5u?ESClACRCl_(w3M@zb1~ zp8f=-(G%^7#+61-bdl2d{Jx_LmByZoM5U2OCh(Ep@T(#V*xTKFLf0E;V?YAEF#x*6 znBEQ5&c8Hrk3}pdJG!TV1TjeNLL!p4ry*e^dKa3RFfEfv3^TKJ zKsPht1(n&kKKn4`BAGcxn0fgJ6pV1=Gv3z(C&^c0MmYIUI4K~1(ysD-ZgKtNf{Lrf z9f`n!M#~j5j7J<@%&Ni_=%X38suqk;`PL_^yLTz}td+v# zx3;fK=(kndTf}`Ped7-Me@*p83~oCEeUkTK7@_@G-|Xw~6aN-pm!4-X>26KDB>#^e zhF5{Wq2X0X!#i_@tep*kA~-kDz;JHHb{3&w@-QDZ1IM~EA0NpCKTQV@;E^poDe2(A zJgeqlKp*dzRnu09`yClT!E`>)3P|5oGx+{A^i=a~TnV*Kw7$FssB<>67x(Et6fi4v z%7huyO_$JkXq)$UrH1+oj9Wz2SluE&+}m{#Ewr;gA7KH+ zQ}NZg()AZ_UfztUH9V942Nvs@rg?hiB6a%G-n-du(BroIGidi2J&hTtI^`rh3TWnYvSP?lZRxr{4^j?n* zc1jk1N;N_xQj|UN#blC@sQDl|!-b>%fpoA}c?-M+?-N31O%6U(?OE&1tmOV)3amOW zZh75jt+FCVUs<0GXUCuh6xYKpa#j;bg{}M*`Gjtd37(iaCZ5oim7@0kIGIR!Z@9nU z6i>KsT#cr?B*&5eCz?OG_C4{#u0^#&-z~;r zve*s#^DL^@{**=a?1*u0!kCI&OpWnT!2VZLrFA{uTdbqBAG2d6Sx&}OUyMs+fsWc! z5Dw@n9rL8jx%3JHZloBrA`}TC1@z}cgADC-O@elkv(A-E3CT9pUMBs&M^D8wehl`^ zOpgvzN49QyXc|AY4BKN{fyb_{BWGC7kjm9{dE3f)HWN@8CT&p$A0!<-wXJ+x$%^?A zPh~t{7qSAwYOPw!j`&(>ED*x(0qz!i!#Ls5les8y_jJA7dp^EsTuJbZZg!=3WHB%ag*Zp)<1^bPQPfE_S?Tr+kArJG$h zU5tsnFZAaf?R`%y-Zt}(_UC36`VOH{!w^Deud#i#+`?UK1>r7CDC)1}%E?e1(*6Z* zjxw_^06&mP{|Je3n~G^)l;6IN#u=4H7l*tlb7jPN_ZKF(B9TQQ@BIb3OU3~a2<3P; zQz%Do5(t09=F-ExtW!^7j78`%>L>Nwc_#dkSiRAV_?wF&mLHIw5RX!X8;OrG+~e{^ zK_F=_mZPCfF|aYTG7AGIjx8Ty{3UjHz%E(1@K6UgKdh|G7~x%gjHQhCbwo0nXZ7(0 zbr9>&sXHQ9c|l3?-?my}tyu2m2sU65-vsUr#qT!jV>}BUP^PNo0Sfa{vM@zEu)#J7 z21%(4B*wY&b#Dn3C>G@iISUHrS!NmZJY~P~R5-IaIgfIiFOO76-XtnD!EJ}wj>S1C z>J406047T3wGe3L%sJ01^#CHxR@jv#pssWo;T6;(5m~BmMoZI4-lv^uEfcz&At@_bd*g4}mWHqvvrUv!ue;Vw*12 zHd)amP8++)J81EXMhm*;6LRKTwRY+6V&S1ul)#EFTbpZ}ACcTGCwU$qo)R+W|lo6GaMtz#`K3aza7 z-Wm!DLsi?3RQk@e|1tcG&)R%Uc+ZGS!A>(<+tzN|U?~mENw@mP{6FkiM)qXmh}K|p z9X!sx|CiKNWZ|46bYVElyH+|`Erf-QRxunpWy$%;KxVd1+~g6>o*{F&DrAc{T3a;! zuf;quxof8D{2hDB#T0DJD>9tFHsEdjD_buR%+Im=YIE_9rRI{|O`)aW<@X9|8nH^d z5ANK!`$FkzHKc~*hF~s&YaK7n*aBxtEP=XODm?a_tD?3l)xz`Qc~3RW-KMjV)Ez}! z|9TZ;fC=#ZHAj3+`9LhzXm%fuN1;Od@s11`cBxDGE~OvTahBOu$CVH2@%7x1*7Jtj6f;#nR1~m%o#93S zzB>&Z?}9`3XNRZQd5c65fvwa+DI~QUeEMoW3BmxdSdV`aQ4`%;ly2~)=*PwcNQ-#i z4?XsMy+Mje-9I?no8I_R4-kKS%vDH81P;|xQLDOUq$E?)~v>~oZxGgK^B zvUo&g=OPtrC~JPcQGM0>rq2@W5hb~KR39268L=qJv%tIWz-kZie}niLSYhHL?QPH% zHU5g{qpkK!z%tKp!O*IU2VBkP|JE4r(13AwE~Z-IoGxg%|JlrnT4VQcXvd;(E zX#Ub$HI9~pM3*&FhIDA-Y08Gmmo`U`TODp|m68a)ZE*(nn*FPY#ka&FJYQlrA_$F_ z>lF#XVU7rB3fO{?rW?B>fte<)N$QAs$ic$Ksm7_k!oEVKJenKLZ5(Sv1;y@sDL2>H9u9Ff9VJ?FE zc_`6Pq{4J@<{}+@0SG`BPsZ&by(a#a52*^~Y3V@&;0dpo=$#7PC9echr{`} zI9wuW$-$AqBNsQ>-^4x{SjI-2Rxw6i{o?!?Rg(Z~Wv>PB;0ecwbVA# zHj}V|%7NuhVIlj36@)pashkCHcS_1_`y+;Tmc*FigAHsHY4{N=YoE8x=$a4K@-vF= zsBHwlu}lg-q7%<3c1&NhxPwsd#Q*dGa3^)>L(&&4r(0^OLD3YbmJ3MZ7s#lafnRvt zbzC8!KO!>UI2Wi!%5Gx@GH?DuHk*!Bi8V@?wOpt)msrq*0aS^WH_cTRBeuk|_E|#x z0}J*F#h z%dezI-l!2av(hjyHxl9)C|pl98Zcy&QHzw~CyU|GNM93&0Mzvb#WY4g#-c|h-+1oMW%6Ygh<#pFBQ0x%o66z}N-iK?p)IJ=vR1ad zrWW|~#St}$h`8OGIE`b+B^8#Aeq}Rk-o|%gHgCN2Wno`i9K`Q(9m#BYZ1vwGQx)q= z^?uAXAn<0}HAPNAWP-J9$A)E#7sNFw#-Rhpjs%C!FFSGkaFq>(T_kPFm*If$lJ4Fq4xHFf$bJjh|o6g*Kc>{d9D}eQJz_x zlJA`Dob@Kfue5Vk*CR=Ey5Lgw&ueHHnpmh-TN5xVAuVr>Uys(rx8=MP_3(I3P6#C~ zP-Sio!CJ6K-tD_)=N;laT!Xu6_63_UvK~!E1#A09onf|4{2t#Rf zvnZ}g!7Ud`_peS&fg)6l2|)nei)%14VBK@wbH+WinMmR>s-9H+9(ctVVpMF!u>cC` zwmGc0_vw~3uSbueXU&WP7+W1e&W7+rMtlWHFcBW>B2xxUn$hNr1b#w58ZgfjjL|- zT`-wo?c87R)q>UdX{kgu422dH`c(%7fw6|vI?UDXx@`QZ(z-<$tQFEqt)=*l<-XNc z^>!IZ1C)*E)Rc-&P1!i-DfgIB2XYsiXZZoiOyMRupfyN8H0&>~SrUn!SS*3Cb9XQd zXYM>+tiVi6yJX}U>IJw!5~!EoJ1ws6Aep$#4kn}Uo4STcGzuxON&o~paZxIB5y)_- zy)%Owi)1bak^-0DaNn_=FJMCv2R`>rWH4Qyux`O=l55t4fBbwA?LlgA`dIH8BD9JqmUC-#Q zDnGFdO|+Y`4lzxH20-1z@nS8gaIT`JNTo|q0GMS)S48RqDrQ}G6kp3kx7WthE0nLRHVWS4y`eX*uF#TWCG@r0$1-orx({16Lq@@e+MG?*kz&642el|yx3Kzi-!e2e0^)A6 zSlgV1ehJhYPZbil;kmQN_QQ-D1v2Cp6Qd>PJAy=j|tPW%_~v4vI}dcH_sq(Lept8H8u(sk?> z=`NFa6b9Sn5+an!w@NJTjf7BCHX-0>c4}uU>!-jP>&!-c++#L_`;)?lQb6)sV%qt< zp`G6{JGZ<6(^J0jHF1f{_Z+ykhf3>Tt%K{|_(Sg6BP|bwD@S|{95^6PK>i&Q;X)AO z0!%ybBie1#PVuub=%z)(s^mEt$BqFw6yBG)PT^PUTJpvPTF933f0Kfm3OASQPXjf zDwq5jJT{HCFWw4y2*if+s^GiX!ipN_ixJ`bv1|9KAEKa9cIUP3H{F|yP?Vf1^ z>FN8#>W<%3i!nNI-xZdYQ{f;C$?nrJL$c+JaiqAy&0SL@EO^>ArQ|C&GIifIN3zh6 zY_$HV;ORxWYD1~xASERR+d3Jltbm>~8vsA?JA9z@JUE6*tVTlm$3^)gf51?a@RDlV zsxR(?(#OH7f|wwgIq)yJFUFPaFjKkg4a$Uf%zNs4-m!(+Hmt=K5nMa29yf9@msFq7J2ZkGS3~2F7fJWY%Qo0vGnYL5jc5CckA+{eR~|X?^ogf0 zt2%rZAwbeSRgNMYy1VGop2C z_>aT?-D`=Wfi*2gz;McVrja(+`4tg@@+`ESD6R;O2WV2 z$>N^vL6}^gN5r}kN8>r=`DU#dIic;*{aLJ}RXnwSZ|~{G&9(BTM)SaR@<*NKD&bW9 z4ERzQ1xnvW&vLuX*x6=>Lt0{K`K&WrzNf~y?LFP9bkuK)#^9ygmNiJI7C_8&-CJhI zoF3L!8M{3TPAbqETmo&bW9ECrG4Z5s+M>c1y?UVBaVC^h;FuDdL6>_Lbh+c=c;2gZ zm>87Jyk&n?xdeu%V0Kklex*pji#tS+wBSbVwlu}A1-QtwS^$Q%R-hG-zE{7C6U^$I zcFq72MeW7J0qyh5H`kWcR#>R9$3np&0VP#oMnu~8c(yNWcDdJQqnt4&axQ<4RP>1Q zoNu$m8d&0()WI#`^jmWS4*T3!srO^Ql)VJHxJe z-%=C@_)?78T>9z%D$6lp1GL)hZyva+#zD4ELKy-}*`-LIv6;nlzp1Gzwm6(r^4m1f zbT3k@M2sVyHmrcq>&lEa!9~f%j3ikOmB!a6{*N3A|2N zacD(A@Vpy1(XpybKfoj2V|C^dm#<;h65&Z@i%{Pxl%RWXwtP%E=dg5Lus!ob@y9nA zZyuO7yH7Z3j=aMvim6MEQ`lT$-tmI_g=!cameTGQScX}`LP0P(nZwa07 zz5lxBnEzgvlM}WaC^vEvUdidQyTfV;B5&UAoX$(DC84yg6jb{9Ehx)zlb&5$bZO_>L1!hTX&j9{&gKwSgJZ>M`KE_8U3^Ptx%#YO`#!y&mvk9kC)k8Y22(ff(E+2 zT)jFLmAFVFE@7Maw&6VM4)DbwHA;lwcL)Y1K>TNbA-zRU5t7m29)F*Jo53v~i*{!T zcYAZaxpZFQrVh-TcZ&5ADBOsTs#8*f)Syl!iX*TJ@1UYTnnZUJIs@G4sNs+`WL^SX z+OPi~@uzz)r6ad-nETXfs#MgQ%A<^i4ThtAP^SaqaHGNJxEV&H(jGCgHij-&BJBb9 zs9_c=69>G(=t86KKs3%7DXj~JxY5VeF}`l!ylCMQ9Zy7bvvQoJ8;1Qcx;}XH;8_NY zdglg{8uP(-7Va$MA4%!rorSt1eNi9$@r(sNcp@Vl8o^ICFO^bBh$xtm1y6W>zloe? z=7s|!dNHt@_G8Ro_e4A#__&=%1L?9J2Of-j;)chm475)qQuy?a^^O?0p?M9!MQ2|AG;8LMQr+GED=dx;Gv@3maR;-4boBkV>U>8j);yR zinw)Y9??72vA920wwBbB-*Yn<2Q76yMSPIe0WLk?tPEahA<}LZn#z5j(9}FHX7F=^ z8Hww}Uda`P0q20ifGJd09n%*Hh>rQi0<7Lz%9U0;^Z|9&>kIC@EisWN-Mo4=VyzTN zg(1QACen?pfep(AA{iy!{P3b=pAl=#WPTvKV?^sgRvt^bvH@~|3O-dzr6XRK2Qlc} zp8ONT1Wi1p#PX5&E#V>&>mBZ$!K(=FL2{+sUMx@&BVH!$pEt-}gwNPL>RS>2d>k8y zTvwKFqu=6Vz&`%x!rgSqY-JWnPs~$?xAT^{bntP~5&;aoMeDSX(60*lumNK%q!I3TLR!-S*vf1j!(z@1&yL zc7D$>jkk|2>%NFG`~E((G&oO7_4US;VsK=G?deow)5=qMkpTY!-dF%Z$R5uyFIZ;f z%0IfOcO7c7myjXM^h~m}u2sX((#-J16~)KEAC{)LQbzYEe>8FVOT&A{4uI}g&Jf=5 zogr)G&+kYS-E?y?>Snhw_a!u`^DqJ+@@ocyqnH&>T^Pk~!1)+GVQPdWl2$#5uUxo`*> zS3giYO!HvTen`#36qaGN5VZdWzLezU23tPnF(wBGmv0^S zFc-S0Z&sGtT~2l)CCe7m@dLk`^)R0!gOm@$c@&_e6da`Mpw9Cp?P%a) zh=+Yw-%VFc+82*Vu3#}?o71W@Hab4(F7E`CEWKw2TxI_Sa6JP(@abodlQiR4VnqzU zmLX@TDN?!mnKhCX_#Ldwxa)c}6<>rk3^9R6etIEh!~bvQ>hQQSN8=!;NQK^+JiR*O z$q{ao(0M}=ej8udG&8S21Itxqn$M`vz|YU#wX@t8QVYqif>y(96ycb0cH&`le+EsgnSyEfBC z;JQ>z_F)j%F@;gb7Y{45zSP7|kjgR>0bbZiSawL=#KdA9yc6$@ z%NOqA3g#-B*!jTzY7Q)x!}C04LR!jMI4O)s2x6@qZ_h|r#5xK#x-2;v z6nBYh(&i3>$fnxiTk6Q7F7on^fq`nAK|wulb|Mc3j8L|C zEwJ?NW!aM@y>DcrQ+m!%EiL6dKr36@uZSnNJ#W-jn7tl%vOD?L;J-cJQLTB{|nK;mbGPaQ(^~ZV<e1aB?fn<-wSVMfS4~=`Hv%%)vNh?bH>h;kSBD3kHEWSsv)b%dXO5+` zMj8bJ=4E1`_;v5F7y-&)Qx>IV#Qd(;3LNF2!hNi1qusXJBOpiU=n@82m7S8CCS5;s z6q{}4YraxpuBtYN&Qtjc3?BL+599GG_dCqi&=t1}7oMp8$jPw9QT&mAmTfhEb+Y@P zWyaR<#&)y+NQ4Ue-Z9&ZZ={{@8(cuG2%cM7IdiM8MRhq$^;yH7?un82A(zy7n z`slGb+jH;kK2mHs8kC02<@R!G$-x!ROg0T2Ym~pJED0ephmsWGEVr~}zuG^rj6(D7 z&w;ej;s{o6wLEjU>WCQ;E_121ylQwwo$?>g-0QTopw$`Qd9u6AVpiUhE2PX$OK#UsmzG~9i` ze@nk$+qa$n3+iSUI2X)!=KRRI#g}ILr))7RG%x;>k^&WZW%pQALy zErg1<+PAcd6~S=(mD(4DvrKn*mgc;K_He#Q*RKyRW!lap=WM%W&t$`$JMe&m2tJN)5jHd-XJgbG7ua3CWvM z>sGG8vEZS?g&`rFcXLf;ywjU7RB8PkA-lyD>7rkF8LRikI8I1331h+!#ei^v;`MoV zk^fL?RZqA#m@6kKJmGY=3g37Gflu5ug0VTzYnz097WHyXa8f^OIoDg}vP(f^q8mY3 ziqy!oT*tCh$`bA0&Vwce$`T)5(KOhYmRVaN9?=(>22@aG(_=VS1WA6gd6mPJrFhCM z!l1)@1!5oXQQ}-I5;xtXt6r{vi%Yb=Vxh{nPQ1LzX{p>QY|5-w>Ui7K%6enbd)C`< zUGG-;uf4{fUzyds89<>!W{0-K;X7h>)HmLQzQ zhQ2L5Cpp@?JlE=2&&J=D%bz32K-miSXbf8+f3&ePj`0i>?75~H?N`Ns7~m&0ck;I1 zLg0^UitDf0{uS-#!56hFov!-I$P3*^kHceLwU?N>?zK)O?N`<<@;g2L?txIGJu28kkx=A1 zdgvSvMQCW~IcWSXw~AJ0)8Fp{=mv?&!bj{ z|3!Qr4T-m>G+u2a1E03PoImy)$||4+Ah_CH=_cY=Yy>Dqa+@tsP0 zo6mEusQ{2Ids9JE!I$ZwQEMuo3!&#&=+|$s0mES`sBsCaa$a&P4y((OX`z0o6ib$pktyD;3>YFslmXzspH}RRBS`6Gct2tf`gU#>(tHm! zeOCC9ue8O-T4;igx9JP;nf~EGUH9oqE3i1*t{C3cRT!QT>|KRj4_uFj!f>FgknWP6 zyHnhszKwctKJm!zZy`kO>}ZIalskT^myee|zE%R0Fj|IoEe|ad&g)fIo(j#`SKc`j zDhw6gY^tdQ&Y|Ov(7>ULjtD|C-FI5I99$`Hs-N*xJAOsyxVhYOnbTf15G;#)CqvoG z)p+2f=Wn$!ZA{M9eu7w9O?k^;sl2&kiTO>StSaRS9INtW#poMa@(K~*^5cWD&`xy! z_=Wu~z!fH4!dlC#wo)UA@qQrk8MGnb;TYK2s29n`p&}f$%~~kujI5`aiKIQYREhH~ zx!xjGJA^EJqjI0Tn~oXXP2h)2{BTKE`jlG5p{LRBMkouBSreicU8^af9rpl$B+9I! zAh)IT%}V*88m>~NJ%hFxb+f~nea?clN5-!hX5G;2-b=00psiFop@oY*Rw2#X&61nH zvD>b3IncQTwH^_hcUjY;;*Dr2!SjOhw}7&crp51x1yCm|?(n9a&s!*oNWSkHZGkuNK^O%Z9t} zqeMET7U(D91j+QtJZdFH;i`uschM_7Z+E-(j_Q%q2@Tbw1K0J0qPx^k`VB*=eZzfE z-S^bjpkBdem3XHpk>eS(}6wF!STUy zxnZ~8Tx>tOw!$oAKD(Mw7EkRv_WNT;S+5cE;qS{U%&y172h8_Ab+)qd;4}M{?wvu$ z?fktn-cKn}u}Fy?Uv4JrQrVA63MbUc-=mb%tcBkMt|U3&b5 z<3-Iy6u1wTpg^qTm8Ru(N4@%lFMnq$=@oLEX{}^rKaaA&aOTr zn#y0ZyLZ4^Q8(Ld6g-t0+`p0SSX)e_0(T*51I<=>JGIpj2jm&5R4>uCzps_Pht(pq(snW)tK@-g=%x~vC$|r}zr6q1 z=7ZYV9pTP9ok~6T&gJjHZ*^LWy~~Qbmq10#lwCk-{t0Veol`oKmTAc;&&lo%N#*{c z?of9KE4yZ^xm%E{oo`1^`Y&;x1V0f%ridv0ZlD@K%6-+o;ikWC+}zgZJy}(Zf^$^Q zdN;an^uFs9HHR}R{Iz<1nTH0NFn*0sHdVIXDV=jrpkn`J?r#V?+HGl>?N)8|(WU*v z+-%x57MG^lrboA!oxv~BpJ;I1E9{ltWnT#lfx^u@2zI9MWzQV4hh|5*!aI-sltEgP z5ci@6q02CPQRSAtpzn75WOeNChZ=<_7?H{^&n8kv2o`&!;I~fNy0bNjc(i zX!5x2Z}<%>=Y@XK<3R^ky7ZEv$mD+c-E-ygce%C_9|q3hYOYeoR0x*qhpM$9%|tOy zrlI~1)djL}-vm!<>B%j;&ZD4GCUSS|9rP~un1Pia<>6c9q7Ou)w%@-euoniRckZDOsM)dzfAZo9!qU3O4E$7?g1qx_74Nn$KKr zNl<;&yS{YYu8dvjSbLjqkYAuo&ERuXh{>90;UFjG)Pb;^do8)V(tt+9sRn7+TlLiz zctyXEi=3+wuhIcq!aLwb)niZM3G&ObCT)G&b>c4R836qo(W#XP(f0i6Hz26m*Yio**4(Q zd|F>pAD}A7iw4Jif#wEjZWpR|={-1GA^Jfzt|l)mDn2@VbeNVCiI$4zY>s)#Ux_?5 zVyr1;9Pd079y}W5F>529th|L}H7}`6MW!-?sL^jiJtT4i;v5C5Ne<8TT-kXGSVXCT z%60BkcdC-1WVlm<$-z&2$DK^yNwGgJ!DMCJSjA}PHht*f#tbQ!Bq3U#%HN@;5}s|_+BJnpdkX5HlF^-JsI_h zTMyMgol8Mxq35Zwi?8j&|8?EriNpT}8!voAFR~OPrjg8@L(kTrJ&gV6df9X>MN@F< zRUPjiF$wRGo%`(hXU8oFVAx6li3P?Enz#z?U1npgF0680y`Ut!;S61UwV~4Va6QH8 z0m@8lbF)CbWxZwIVsVOJ1R}Ezh)la^&zrQx!zXVL8q@Jsg>b~IZzqtLaFdgmB0wB7 ztzT20&_Y2E{jBP=REo!PUX+Glid$Vmrsd6go6B4`YhiY+TxUy@_DHpoVgBAB{*4J> zWlffF4$4DG4BCq))u%v-ITu=*}kqv?vH ztful+n;q0QZ`nP6V@oi4d;Ft~xs;Sk%k(eb;*_k)K{#s`(EcIH^3$*0{uT&TY+|^) zzVY{-vwqg7DZw8OspwVa<=5LTAX zs~el@Ewk20o%`e{_Nv$!U7TJUM#Z(riD5Nx7xu(*Dv=7}R60zrSJ z3GMTphdN%+?h#Lw{?6h!c$M}J_X&Q5yse}EpzJNTc$O0Hkg~$^|3L94zM-b$@f;HWa)XB8_yU3Pa+{1!Wz%9k~=)QEc6lUeA%2rKOFR z?Y&aF%9CaTE>|0DJlgLfn3FWpV=9~8aRxqM^H9qJeIQ!u@aS611Dvm^Z;+pZE} zGi>?jyNb}iL=R?dmvRsPVc(A=S$J&EOiNcLK&ygBy}PxFUzB&sf^<=JY4_UF(ATUY z(nnAK2lFX}ms?iJ|Af&%-lJ6gtInU=kOg3}Rr$43zQ?`uxlPXDqt@ZRN?8z(3>*O# zzOB+;ey~3L??Rez#%n^b5pp=$_bq3|Q+?NzSRExbR?WBbT!q`$R$Xg5{M*jaZKc4G zZvO~5uMsBOrCqx}EA5pxL~ifZ+&frEuvcihhx+U^t}PW;p?5*Y372n5fB)s`H{@?C zAIbCw{GLZ@T9){G<;RrHelt~;2i7Vr62&|r{*ZfBxlKyFVIPciG#|}h#cJ4de-Xox5T==1)A2Ym$mL3!82ZUY&*J`-%M5%nUxXUD7 z%aXqzrPFDC@>dwrGsKhuep-B{<TI2ea@pgOrBUfMDUduD~9KfK= zbTu?4`x-D34-igc+nhV3FmZ<KK0fr(a3On)T^OoVYEH!D^Tntax@TmDhg*E zwi-F@?s93wUEUszUx}LX)G)sg`kR^}ji@Q~35gei-}DQiSK6cTYiN)13pB2QUiH>u zY-hc*G`32LT=-PcQ$>km3uI9)tu>lNjBQH$r>|+(EnwZ;oa#bj5)5piZ^E5ye2iS! zK4y$Y`&j#!aS>9A@pt-C?<}Eu=yh)>ei<~y?PG~cRGl*@!T1g)phxS66 zW$Dtlqzn>y1GY3%Xl2)s{{eB-weD)Be z{N_U(xJ6?V^G4ZXam9y7o-^E01MwVlM>D;*k)x3~WAa8rVSQ)*n5lE&2|jVS8B^PM z+Y5BkwaxG^GL#Md-tDma-ll zEG;FeTHb2DAUq~6Qj~sbWBA8keLTan4j2H49Pu~!>#p+aO5O-(9W<%6Lg9`XbqoXp zBse}EpD;RmciY-!Irz6{;#P<(Q9q$-Sh&k6B1Y>Gk16usJ%mzq zeS!nCY*z=9j9HfF@)j*i?;+0^pJ$roPFjF$S<=GX&K4Yk2l~Qf%d$`?436?;Ny=Kj z=Y6;S!s))|e`~tme|;WnpbgLT1F3+k$lrytW-oEu5z}L$Mvo2f5%d(2Ku6$Fn-U6- z4MZ|LcG3_uIgyNXg1|-c`RJnPoJk~K4G4vJoQi9SNWL*8!Cd40^sjIv>#rDlE|Q

      Dphb$m<^m^a& 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 z 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

      12L{1TR7KKsI#3 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�mZE3bS6GAvItK*PNAIy&B>KGGF`z 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 K_bV-Tj{F~@B|=^R literal 0 HcmV?d00001 diff --git a/exports/K.pdf b/exports/K.pdf new file mode 100644 index 0000000000000000000000000000000000000000..76afee7dd33590411a68ad985e61a54622753889 GIT binary patch literal 1240378 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

      `vmPF|}{_&L{KL;eX`%gjo^ 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�ACsSFjw;;^m{75ihB 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%0Ak+$U@3Nt4u^nKo(Oe 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

      FlzX#X^ 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�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

      KiPUrtnWw;hs1Ew+glB23hiXVfzecg%ene3 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%0D;9)x^2y~bpqNjw=9It3LIL^Jd=7|+A2mN&^LA^O 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

      F`TK#vr$FaL#Xti~_Pv{9ggs9gACR^#}o(~WqP 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

      oXn+6!Ho4aibPKQIMjrxlO7u~Cn*b8%W$ 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�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

      r5L-Y+0jT}DKs3MC?!qDctj;j zPOY`jo)-dc<&_uP2@`@?XTZXp7SufTl`J-aE;9rscc1#lZGFthp2<2WC~;qfO?A3qUr zC{j)B(zwD_H9x69KQ%i8i|bOIZ#+qN%PcT5tx$Gsprx2(?%{%JGN%Thn5_i@|6Y|5n#?~EDQ-u4Wt6-A_w{szA}*nDsE~>4 zf!oi@J;!U9r<9YA$Izj+5`M6__SRDiB0p_)UPa5|hW_0-dX+r08h^!r)%ozIr5e1O zoTlcnYrJ%Y4&FZI31T*TvPyTvhVLh{cydi%il2v$fA~#ey2dFt;EtQ2IUyC(I=p=% zyYSlE>neZZ2DJD$lGqdVy_XZ{_wMY-hryAp9Z@G$mt$G%^LFI--4ieHA5ZfCuJ@Al zfAg6C<43{fgz27DUxIHVQndab5kLaqFV zU_qK?Iyy8OsUrh0&0_zgrdB#>y9FyQUa+&y4-9iCQQhEJTAMl097xN#E{8@JAdItzv<$n~()TOCu{I0L8) zYTU{4_z=h_zbN0Y?4!=hXh`iMki^A#^&u$Da0TY27B1-*n5%N>pfQIMFv3_;TO;74 z3+A5h*2!ta9dqdy3@vieh}6DjZ^PKyeLApPu!&8FDYVXUB|(JaaQcFd)@L++|MwTe zlVM>#9b`QNCl>h-CJRtYT@pln+4&~>?o!bS6RgsHvP#;X!~+Dqf?9x=@O#;mkD`>=p%*$SBmg& zeG>?MM#AfWQCd6dBwo-Fq>9{Ow1|Y67t5V(z&#JDb9i1ZD=o`prrr|4ze$_Ld?i}O zSctTMRgH*CY63R!AR=){!~V0oCw_1t=5bkYrJ;@QJY5sF#*}T{+EyoLwBw%i)c!pf zpRhv1YEXLK_cZ(R77;jM4RTYnYO?3GNr$D~Jcg3^w{TQ*Oszd)soMH3lmA)ae7pK; zq^%EkoJ4TB*JqVRi7*YY4?M_ZgUJ&C-W>CMQZ$tjQ4$?bWEq$OgI^vZoFz=7Lbz& zn;`kRh^mrpzHRI+zIh(BCpPJZ9C3Q_tVBmZ~VN35dm7gi-#6fjE)jy15QD z34_n$S}&cO`)Wy22Guqyo)XWNz%|>K5u^BKWFdZKnobz++LXORP&kv>yjZB=z<0jMOvJDdy(04c6o)w6^P7uh2%8$*{$tS;UA+kqpur}9pg zcn^daS2!^rqv%gsXFRjJlvs-Rt(6nKda#qwbW;fWF#yK;9?4lZ)7iN8V(@s$Ka#G# z(4%I$%De2=sjg6w6no~4buNeDI>@Yc)?rM|gDDA#pR_M;K^VP})5f zn3pqf_#l%3$9zdmHmDU9Zt~k)kWfT;T55Zhzy7%b1l*`v$V5y!S5QL$3u&gjpsGA9j!Ic znV?|q7%MhD9^RWd!HW6H#v(Tz#S~Uzh>20`F&TF-Ks4Fv?Yu}r>sLEea#!lE9gF<6 z#^M1G7=&|%)Nvu9CAa~`)4(oFdhZv>?;}1k2xgVUPa6z20Z`mJ)`w+msjr`@WjIGo zZhTPAqwk@4^YikH`K;n1R@DxNp_Z<^NYKt9XkNGG;+Z-6{EK5cbGq(FypdYGQQs@I8LR@e`NjH z|GSDv7KZ=j?;Y0Y{-0Fc^#h7;fZ`)Pw1x~K0c6~@|5YFg_l08x%FDN`MEp|h)%G0? z9mI9i(-_NJJQ2TAPLI6V!tJcg_<$d8_YZKdZ|KF%`^(4UKkssnQ0o-^nb?cGBiL^> zOY;m89qHEZ)eHQ^VT+@}bh?#t8;tBme;Y!cZ?I?BZTGM{U0z)s1!vcDU`0lV7!ikw zgW^qIAvwSu7YL}Go(E^)3nF6yZ>Qlp12(ZEgy9ZTkQ{|1gcCv(d7?gnfre*$m*fw3 z$8HSx(rE2Tu)T75lcp_ZjNMMY#(DvNC<)@fAK4KpOd#&k4P?tveJ>86@vfTBa_Xs^ z2Gsw2XKCPjk87QW-qE4( z1N+I*1|b2%UfBzrdsGD)DrYy+Jp|{|K!zgi58n39rhHe$F*}Of)Oe*9Q?a71s)o3-V9ZJJ`2B1>Ij6 z_4ki{pO-#6T%4Z$!8+<`qMt7_V7HLJzpt%bWIq#eBZ5WKMm&{q9Fdi$8lqujsCpYI zORXGKAmW(~!Fb8gT|E$}AH_=mqFG)eDo7?e$~v;Jr&(`m9a>oFubJ6rD~Tq&QxUx- z_3B@~t&2J??MNoH1s|U>Li5~l{AS{TvGfPK;I(39pN~zMf=;coHoYqDN`3C!;91fS zEZ0eErD;hJ(fS=Mmnk%EQ>B+5Hr7o{qhuhTWgrM5Tvd%+VHJxwRy< zu~KEQWr-uJQicvs(e+xjJ>^y%bsFr{W=gdv%nbAScIk+kA$PA3Po4oWk;xfLBOY?B zquHyxYmZH*#s5@$LU}g6Kx&eg!{DBb!byD?QheqP&iS#2=L^~ZfeuNHYzjPHlDOID zB+WEr){USco_SSaC>9Dm7R2QeHn|RYThGoTyW5X!Z*rcyty2n6LGHq0j$vMpG?#Az z797MNqg?lwz+1}ifhR+Sr*0q|9SG)wnRYT-bIu_p=V&)ehXy5VP%{e-+jzUmNdESh z*4r6?mBH)pBI(7^R@FSE*r?%xu4`Wi4i$78swsJkV3QQ7MxqP`VUG95J8<`>Xr^)x zjkVE1ZqXW!#}N)K?`+=MjE?J{(R0YBDtQ(L!6?WZ^65ZhOwnkFXYDAA(gg2$X`U&5 zBR7RJryEI`l)_A*XZF3J?T_3R0(YhyeEbG7*HYB^aE|b@_MKBjbvtX7yKJM;;Auju z{~h1^7YS9fsAjo={+#$-nXf|GQP#98H&aP zkSvPfUl+i4AaCge#!`86wvjkzL-TLs{Nb^dy(3<+hB>(MfN<1tcdCmyIGkK$hWDe5 z9h#o*>wZi$=8s)jzi;_d`ZbWx}^dJudQkneLya&}IBh&pGU30*s`-7=$@9B&{#@UqVINhxSBE z&Nm1EAQ0Mrx*xFqcc3ta|H)dJQX8B8&1-ePkUawa=Cz0cgJD3{0oy=ssYdhOkxu@1 zmlb*iPe?5JB3}q!G(V)lJ5%WA)?pXO;pbJi_se8pMCbYn#^r1DC1;@KWpCkz)|Okn zNVk;-bV{V4WG}yOYsprpTN^DQm~O}hrLX377n#w(-EQXo`Rd#4^@`h5Y;#dpq=Jut z0f@jCiy8r^?Km!NgpeJ04k;cOeN=(qA|8 zthfB)T#;+2F5rj+H)OVsj)ifxb5pXMd>MDZBU7{_nyKv1^p=$XC&k%l$&FoIM|kUt z3i-h*r8O5Joni7&Em7M)1x)njlPA4=!qNM2{D|9jSjHh}2Lngjk%GO5ZS2~jXM9b& z9}2$v;W7P}K;w3bZ~suWRvd7Iud-|RpX#T+wPADQ1TP-KU7>8q;%6c7fd5!*&~svM zX_a>_bX!K!pG3(W|CmR5^`U+c3O-ijx9gAhEId&OJ&ME0SWT1(77cFRx-W6u2LTc8 zIQoX3cB>l12zFb){4I@r))B?*79CqjyfZo6f($$Aq*tBZw$)yi)VY&feL`2HY!hyO;n!gXq1?0ITl#Z+I`{{TKX-BPL3DG!|R;{D1)Vj8o}zKZmWQsxgcNK zI=ByTG`#zirV$4cJ9m?uRz(H&CDY-E-54GDj#AW9zq|1)yM6@w&N9Nb2ulgZrjA`w zHUDzo-slyO6Qd%@Jb-?xtxLEj1}8OV!L83UW=j{$)dy@NL@}&YRkcK5tVluEVYz3o z2M(0MqdajyO6UmX^Q#Q`pmUR{F?fiRCP9Q=m-8?Zizjwzy z(f8Q*%N;rmYC%Xqn)7=O6Jw@K%?d_msxV;t)r!;b|+1f9o+&cJ| z-Mp0oaB|}SYV2Gz&2BYj8*-1HS)`d45nT96L=VwKr^YEg`<)|7NmJx9yvR-y}miGJT~U5`OZqvEBX*J-*lcJeB-- z((LdQ@8}fE=;+4VYe)H=8Rb-FW@!~ifc#h$r(E64@b_lG-YbE31m9c;u_07@BlL^n zJs#iiwp#@Kyzbaa^bCBt{;U4!{ABvNqxTxJTKa`Rf=sw*9a2^eYULF8$ccLiV}Fr* zfSmYLxPpD^NNY;%a%^kCV}Z0H-(%$?`nav1Cuc9UJa%rwAC1a1G223NRI{*GvD~}+ z5rH=%Jd|4^2;CMgX0O4yo}}u@959hTE}#r7k`7gNy;ILmRrps9-!?X=MX9k#>(GD# zT6GY3bpqC$6^t{?pz`+^yNeAkp9<(C=$<$=rRf;eSTG(YBc;2{_O^jbmufVjv_P$g zWAf!AOo796@sLUP$ZllM)!4hP8sxfHv(qrUt23Z0paP6u!NNtyxpsAi0t;9L zSqV)yaY&8Ub2H0B{Xm9~0$Gjk>cn;0bz*J&Zsq7w0%l?345 zEC)M@F%~=}EYykW_`*JEwxyx{7)S zV4O3(6|dhyrp2Y;KM^0PO{rwl**qW8?|ow(GcYyGlGvJ2*^vjqrMV?lq16Ve=2f-k z`UyUG<^a(MEC`##0=pF<9+u6e_z+Q1Te;>E>wh{MnUqt}Q?7$;b^Bu``6ckB7u478 z5`ysPOA5~+&O%sr;r_!X)FOV~Mcu0Vj8;b`ES+eTC9oyaR+hI6Y^ze1Xulv}&+FeF zrd3fY?H)dQlr&NOfsKbkb~ z)Iw9*5(M?n)UvR|07q&vlQGB3xI`N8IMGdbX?&r~{w!*CvABQ&byiHGmQYI0_v?QW z;zgK})EmRPvNN`#y~t9>P*qKN%0z>wNhwX7!KqB&u2=iy8n1q;;a z=vi&`Ni=lPfnWYGrI<{Mr7xmJ4C|~o937{hNy%MEXOQrhW3)hO1};h)4T>TtG0XPC zqA4GH2pBKF4E6RFf9yD&z~!SL_DiWWge=|Y9UcnO z=T2M<#;WgkzKtWWzgti)3BGpB*geVdBuv<1bz%_P0PTesIBQW53mMHXT6{QnnX1{p zh$HTUAuGn~U=h#?Ya_a)x8(r996X zpslqOnn-5p4tZ$B`Z;^inQZ8=eL^b=SgoEwEHvibo$SotL*krJ<7{#xpvrPG8TS}z zJ^3Q;nAwu?`K1JX_wTA2y6b2`{xK*wVlnX?mmfS0aXwzaL`YCVnU^V|yxwB0v~4!3 ziRVDvVDFEqxNI3^vzQV0ovCCujWuf|CoId0-rzEPpvE%6wYj*+66pzH>vl-XiRi}< zsIhY2>?l;w;8yJKu~dJmZN-v?vUmDpR&`Pk30Kd3xH=PZrAGYOTYI(jBN&D8?-Q2= zuufHtTXe33q_JBsC&>6Dujt9a*cDu2=63%5@>aSj8+CcQX|5>bkjCrH z^JjU@*DYzd489vq=vMN1F}f5-`kU>}IVhhEV|BsP(`FUg%C4b|O+fxa!A2z)@vnOZ zGOq8`EGtNLydm-;`xfMpT|#d|vj+^(&DWv-n76Vsleddrf5z;HNK-yI$}y-&BQt&rC*ty1Xs*dJQ5TeF7tPvhM67k^m_ z)s~v7Ss>7;I@W3Aqm(a@b+aDo}H@d{1eTpUH!S+SV1{xEKCj+;6$0`@#wJ&}QT z(lmsomjNNyvY;e(=3I^bk8ApMv~HB~E>)Q^sz_2Bwe{uEFcwd292i#u(Q-D&gl_BC zQ-tgOXP(q7>_gR2dyY}2o3E6xpzd+B4JzvKi3Er$4Gt7|-*V=+@j*STUHu!O)Td~Q zA}`m6KhqfaViVjJ8{KbSFQ3%Sj(Rx|_e#z8YsL4M^V`|i{Q=GWeky}5^-W9!++_NZ zJ=5;b`NYTjN0h?>YYL1{?}n22S&iyA&*Xf!neC8y7gJL`p&oO z&(uq?oJ}&rH8M}~VocIq)gvZ$QtagV^JXI#o+@j_jF(h_{0n=&)y8gW{ZkUH64iO{ z%42>N0!+f+7ri^4-E6Ae`P4?yn$&mK%Pk#0ux`K@$HO~K5YppMdabY5tYT%DD)ipv z80Fx3dyW*BO_z*t%<4QzWnhdIh9>ys`pJA%D$a&OWL>J_wdu*~Gx5%b!hv*m6m2aqt_$q?`zcv{IQFz)1!y|y4f3)U zT7dpMECFR?Q-Nm0p*Mkjs~AEmLXKd72iw*A!YN0oHbKZmSd!xzkqozgidwe34IOr< zJ}3QdxA>!`s0=4H8-m~KK< zbHRAq!nQ(Er_SPU3}c3aMAx4>TK>_d^SoznZstAedZ45?iDeF^r+1@>yd#fsRGy;q z4Lk*A7;4ol-Ix{wPqTt~Bf)C6p`KJSE(!3cuk)N#xy&WUaEs*ODId_hQR|EZsLiWi zl4z|XW{9xiLm&v4JSOw(0uf>eJI}qN%NM3Gvz0st0GP;3B*Lco7iT2R2S1p1yhAIW zPu@7MS%tbYpc-IK{M^&;FQzmD+^ub_aUBI1Z}gqk>^P*SV8iB5UR;G|%!Aqvs_?MS z+a54~@DYMRsXp?@crq;1vjC|{PniDTOXnPFn#|t~g(m1cwGRcjlG` zwYt4^iSXK-)8H?C7qT5n8=I@r#DBo zmExp{R90JOJ+qiNk(@kMc+wEi@?Uq;7pZiKEitjD4eOJC%L-$%>nAWffI~@=V|tlVN-Fu#DaoJZ-<;^>>UVNm zg?j31@F(b1&Pvsd7yZE>;4z}Dk2EZlSj((sgYZ8Wd}bKVID~fP zXS4IrDJF{M&g?3bp&*vL+v8faG&jhn0!hSch{TAp57QEoHNVy>vLL-_i#}IF!CN{R zMhbMcaeg~N@dp@M4ft1Nw~VB_=>96u_awne=<&Jl;(qqucHbveOfl=CCrv7SlfHSH zUoDHtIJo-3303vDvb#%JFQLU-7tMYM1%OP%QyhzFFg22Oiaz*_gz}S@2%0Z7S4mpG z_~7O)npPb?cB>7~_}-KLa_jt>gFj1<^Haf_wuK7K6?ij4@j6Y?@+xzObJQvSLDk1H zh<5ZWp&R#~LE1b#z@e}dlqLj#oc3N36lP2_wP-7SA52yC9=*GXH#^x(|A04DR#-IZ ze+>M_DIxMko{fvP)tv6h6*>rZnJvIn5)cFA?O5q(^g-=r=6Gxxo2E0iu_|oCZ;W`` zUzq!nQwyzA)*|<;*IHBN>9#2SjEWP7y)sRcc~Fj&wg%s^LAE*QFM%7b`=RVoXC3@! z9x_oJ7iy(;CLBAJTPDg5YGNH2m&FM;B8ZG*%}cl+WLVcy6~^kB*-<;D;bl+J6qsIA z`Dpn%fSTllIu_41FcqjJ^-K6t&1vRgHCJo2fv{ch)WjbU{uH3KEi*bU&sA&J&n*^Q zEsdvaw-P0u&?YP&WOdxojrHp(dAq^kUu($s+a;2P(XKY!$%c<}`Y#WsrPr)Bu8)CR zn#I&s(B1pXpc1z9TH3sSdX8s2TgcHP(|f?vJl&cF;!uEFO32NT$6S^8)d{!nlV5j&KaaET`f``e zY-SV?T()8RO!azg4s!I}Z^x#FLu5hx!vl+V+mSofF(a2GH_ec_$&x2o4CcsVzUEG5!t%0wF|f$U}3NQtNX&WXDK*GI>r|Fm9jZNj|6@k1%q1s-*M!jc{LQnKLB# zMC*0v^wTSutVbj*AJ`7dWX2*<)S487JB(rkt&*mq<2B z(uzMXnU-5p$qt~XZI`i!G^hw*fG7uqc+USPqF_FFq8-3ob8kXLfDu*kBoI0nXq>`! zK(*XTFZC%ua;kQ4Eo;(abbJz^l)`_RoCqKGNWwn3OF{4uDd*3^s_u=h@ZF6uS5D)y z-LnhtA_|nuHr_Pq_MJ2Gf98F^pvjbWE(qmIe|6tGzC(VVZM4}EE6O~ zrM}mghd@HaM^wk`hE$Z>5R{rX`TlsMc10kyL@ILYr9{dX&c zirU|ai(X~O<$6MoT#J?IX##Wo?_9Y5%_@6crYIPhm%OE z(Z_n1rt-DcN`$gBF#2<%+FL5PxA(}Gs0S{*;30rb*bBE3Y$qv%CP|5NLM1j8GN(X9 z=;wJGB~tWuL|%rhGc~b#BPj{ zi8-L@n+mkKbU`GJFuRl)qNirbhxe}OCU)lcPqoeTh0qAP8Q78a`c!i+ zN$u=j3OoEvR0G!}-abN>P4Av)45KOVvYj7a$NWgS41*lE$N_+*%}j%UdF&fb+4}z0 zkktr-@nWU!o~pc1-q0%bTJ|P9C7O+|h+h<#{(xRt6G<^oW38k0ynB^Delg)>yldgu z@#v$mJdC1vWl;l>Yzoqe?6E`n$^khnp3t~mB7!(p=0JL)mP5r!5?J`ww<}rQ(88!0 zcuL*7aNVW=J>oRQ8{m};@h5?QlcA*?25G+u)fwM~Qgn{*okS=nDlK{`&z zYth3WqQzOT;@!4vtNh(%N*aJ7nCQ6aR#o*>>>?!4O{|4qLqvpppd{*gLZ*9#34Bix zydiLw+B#!7464FBRWXEwOvSkBobr=^$X)W&u0$1TSv{p#q($iwh66s-T#`&K<_2l% z0C9eBN874ism9U(95T3}*i|+kWH@p7*giimI0HE?=$}_!rE%?Uy!laE-6_20igw8C zVJ55FY?*3~qdkb#SY46AR!lQfoqAM`k^-56x#9-U2z4a~Q9;!pK!{jZO(mY8Ef!@v z33jNtJb*2>e%4a4shiDcvbu(>;8z=Bwu`X*Nua@PTG8L4w0)SPh`6ZSJH2P#v2$>z zvptL?HF~^~TA)&O`m3wL6i1&CtXMQU+GsM9Y(^ETcgujP24)}Zpr`CST*!3Wm}Ssf zv{if3!yzjt*(&{(fTUXI@E~zhKqq|Q@^Uo=z;(ImFVjkHBJ`HGtLo6r=Dm;j0*Lo7&37?d)A?|Ho~yRO!FvMdhyw2v$nJtKrJ7{ zRUrXOfr)PaP8J~f2WvF-Jeu}1XIJAfxHM*kiKl61H-Jv>QmNyqm}k>txwQ>l+FB(0 z-Nc0w@O|+uq3pG@KX4k$^5dt?&Sgb(g<9^!d1CL|&-xHds3NDe3ygZ>Tg-i;r6OY3 z6}Y5B#UmSDVxz4uKy4XD$!})|SJg5*0` zMoJgnKx6%0fohM{T$x=J0AS>}!)+#rh~e`Hw+=8H465=tY1uSi?Sh>e>r-M!RkO5p zqiU$QT+1GRQPhdz)_v@`L#Y?g^S8(fVuI3gOmINgFXswCn)_^aGI;jUS~~GJAi8Iz z*ORAR`#`DKT<9BKO-=3WYz*= zCEd3$(Kbakoo$r9_SbcLqyrlMB-&J!*{^f3|6$x}n=(r2Xz3-N(p*>*&dFcFzXV^g zjWhO^W*8npi!0kYQM*nTiSr813Q$~MZP1zz04fp*I!C`5YAf0Brc}gUh~LjGB&$!M z5luX4Krdj!>G)ZnsCpoFm*<!F z7;*bcg7LLVIeJzhq)ZmPaY>3=7uIs=5o6{6Z@wYg~C; z{tGe3&F}1Z+xlSndeyrp=%fU%v1L(Uv`AU&B?my!LDnpd)}BpmC{2k-Ww@QS{c?kK zqGjhBOfB8;_&?Q8Z2ukpjfwt$DpY=jzyAmShA;O!n>C5YE1%l}@N4`Xovd^?$NTw_ zmqUE2HJZ6}-pCh)x><#Piu-(x<^0NABs}0@atr-Aa{OTUerM9=8UH$Ye53bzhfI*i zSN*$Sl$HsXC536E)G7H{ zv=8&|k^SFaMi8)6((%5xmy8TV@QK! z-U9SUH%5(ikFF+0=oK0?&|4Zz1-;+PQx>ib ziacn}ny(6d<190Ks%Q38*q}IRe%@n}Xh@G!$T)9>S_8NE*W(hS^n*O_ZQPw&_mqM9 z2zjW1BwE0|tyX73anhx+@dJanDr7kY&s6n=rjlH9GskjEQwNh|LAH9V5j?c!l)$sI z`W+cXmN6`I=_S+)sKMU7V3j3na8U)^Ms3TS?{KQrA+DfL$r~XBk5YtoMv`LXu%t^< zDs!~06{B?$bbA<*rxK+a|B6xF(?5?~_s+pTw}6LL$oT}`Ir&wZlg3;_2lf!cP*sjK zjClP^vjdX6fKJWy)XEI}95pS5H5Xhmlh>xKMYP!(!Gu)4Zq+JcV@%NKCaJF$6V$Q7 zr)oH0dzAh)cIamO0+tiQV~ND2QYBjZ~rz==Zz{S zh@}k}^ysE5i!_7d>7cC~)8d(xghEu{d>i9aZ|}c`ZNzy)=$nCQdGuTk(Ru;m$qva` z&Gx9)8c01VqdbVH?&al3yl5Owp0m`~U1mlnll_RBt_CXuXU~T5=$FTI$?dSxRqk^& z%$>3Gybb?#*lzMzBt25-g#P84GhoPb(u;973G&ZR@{3ooUzQ5Td6L5Il9jegU&hQy z{PoiFgx6Ky%yS=C%06&_Ikt>a0$5@#K;S?G;a+M6F*iBjVp>MJ?)-C>O@J1bhkPpU z4~VAHM_PX0ijLx-4<2eiz3|SblniFR;a*E{`daKKZw|vro8gOx?CTHGPuR9|vYdOL z56ogOE}z$B49ab$w31wYQ_cI7Fhc^hQrCEr(DOw%tle>LgxC_(J6@NtWt%#3SaJcz zJL;6d+lX26#vZkrSkwJy75FzVw-TX6T zNml59tvcv^z+&%ro><-0;sr7d)MdOvlGD@JOaMs;qR2wfz-aX`Vojb*sX$1p44T9! z$+kh=VHRJJ!FN6B-0BQlDbq{O@kU|ky-eQ;Uk+TRTw?PWy^o+gt_-#V2zhgRvXzC zmHKvjw^w{F$@g&x<_%OEH!ICvYuY=)Wm6Z^>GhNKj`Z=i73l?doO3s0e>A7_JVoQ$ z{X8nZS7SNINc%YK*W=tqR7r*EyAV!xgx~oe?Lfa-z%%qwMo_-P_Z(|I9LU3Fw?f6pyAiuiSDuUX>usx~KFCVKI z`f)BF-wuS{y_sIXy1uG&U_5cWpWI)%d2Hs{US{oV9B#SZtLa-pt_}vmo-=s4Vv0|` zyXj7K9eTd%=W1rLX=)obB5RkLezXI25??V5mNb|YL!qK=X1IptqI^Te6S8^2p@%;F&P-JxUZ2tovdh~w< zK#yaE;_&@`b0hSB>@jj}_@J#SvJ{{neo|^j_sz$XE!{vxXQ>*A9Ln6E!kbD%ZURtS zKi~#{uTx-7d^WdkuHQMnzPLZ%xjo;?K_@CfxjJ<=ML~5#0zjF~m^x>Cy6vj{9>g5D zr>`51G&8rpTscW)uQ%>6vm;5SiFQw4|78vkJ*>82O|;2dCw_47zhYCrHE_xMNoUaND#`&?HrY#~4&MdBPy-rRRQTJo}p z#?d3l4DBYOIOnk`o4(heA|U{M&TjRaEXvcpUdu7178&xjD3O;n8c;jHRgyGc@cnZR zmp4Rqc^0HhwUC@h`pE?O04W3y1+ZQR~;lV64?p~f< zb9TWHW2o1Y0I3+wP;KT#5Xp6>x&o~P*3CpVs2n?G<(q5&2h-~>X6@Qdl^#F;{Rd9y zBHr~Ee6O>v(LgH*v(=NE4l(7&*EB6GkiPGWY^rz@KB%n=D{513P}U>opq4UG3&s)_ z2vIk_34)LzERWKX7gdFr5*2;f1YOX^SIQzb%K6NDq8UtAm#2$l5accv%}W25_W4A2 z`NW2owSonk1o$K>n?m#S&uwjLX|WI^=QQ0(!5s$)q7`hIUtyG+>{8*yd~hm#<6$eb ztOi232*RewIJ_yiir!tmZC7e$ckk}8@?HL<{T~BAwQUK*VXheFbt9V}YdzPr8XVpd z#Jgah2d3yRTdfz~q{2}uivq>DFF&QHvYvD6yM766<>FR?I5Ash^SQkEn$S>Kf1uEx~3!dp*P0FUTyo4zr|?;w*!^H3h|mCW)Mfy zWkxz!eSydBfSHtBF^H1Y+(R2CtOWSg=o z<6*`uXMXe*-o-l72pU*?np4{9w_G*`@{@3;9)GASjY!;&CWy{US;mx6tkG00P4myr zLlnp)bN%|DE`ffs7JKtucYdHFc)3B|@efRQxV*j1I_q&b@t@5)m-jX0(6(5aHUG24 zw5{%Q10=&arz>N@r?eNxB~254<2v+fmnbWx7c5_fzgBAm6E0hW|2{QSp-6t7xjij@ zz6u?M0j2^Uh69o_&C--v@K}g%_+x*&l(0}6_OdW&w`+-n#dU*ldWRbk z^5mUsR9#gFRM@fP$0$i2PBLa4;j_M@)@HrUiTbtHuPAi$;-G)P$u;u@f|MuCFk zM0~R+bCy%Ha1z`cv4=TGLvF2)dp}Abh2aFTcXJWHV1+3QaLA;uvEgDRn)!$&RwN&7 z7J+0u$Q6&~`oaL)?1!Oq_K3;*1w%liW>zC z3kHoK*Vt}IGWuOVy-}vu_6P&QN(TiXhzdBlg7qr(0&#>?s7E6Oe%LdRP|XpS*ib7s zFTje@_pVF4>wGI*AEz-0^zm85zA+`=Z<#dwT!m{RFS-IK2=EmKR4GnITJkQ9q|)Ri zK<;zm@dxfsp%73#z+%f%ot&}?Y4|oXEl?^}U$xDj36&}5rM(J8yzOLC)A3BuVcnpr zX}*rRLX1d{Az|l2AZxc`1LQ^XXy3*-o`To5S9i?Zrkdcy+ZNm)a=K!{p%h%B8ZVQm zge!Jgd~STM>>&?M0=m`$Ur4I#0(E+Wecz09e{=68Lb0`y%qM)SI|Q<@RZ%yvEYC{l zY|=9SrP_qBu|cg1sJzwf%WcM`gRh^CZD&zn+8& z_W`9P`FdOezi0KVlBN68#lrmI_36tJ`HusAu0}E=iDhSf0;c%>Z5)_z*z90f+~@M) zuzr1adjpzxqjk4G>_ zHZP5vAficy*e(>@pwe`)vgD{M_@H+zgCXg)tswatf#KIA`F{PzVb*mitW`p6N71&B z+7>Wh;jrO$e!ViqmWgkZ%)wd1hZx|a=mvq?Cca>M@~OH*uIEOi#O>jr2$8KJD%tyoit{3lb9da}}0xsUT*Zzzzae@uqFSS^z1 ztFCsAE$o}vUAK{%{L;LZP6~JNd4vrhjX@CtNAJnRzTV(7`))nRa^q;%>D*2}pMAcz zZ%ufJdM;F?0V;os?hX7&v|bdy-$1b%5$k}iz6Jws6U7}tc}R~uun9$(_pmhRj$1h& zrkJ{V|FH1e+N=_3_v?P?RyY!zn2L#yTM&)ppcfC|1T~}k*NaCSWR{pYn_Fy0L#l^2pl1pE01$fhqPnK?~J|B++KB^8+;ls@6FV2j$ zbkha5ph9VUo&O2@Lu0jbh3kh%gVy?c>Zc{fJnsUaLADpPGlDF8xvrc4rCPw878oZ- zxfV8gbqvUwqO42cS}_$=z95n#v&VKDMi9n>y>;J7?(roaX_E__)>gSpLN&|sfFXus zxg|lip$lERh0Tez0FzPsA^36TjQHWw@gP=;C%Sn^YSY1;!eP#Gbq=_7X6`qtJ%FxJ zFg}Z$`4OQa-RdayhzQ~$Dq}PAQWcHMjUx~@SdvxKawC3qXSlnhNeG0b<*O_+q3iUK zqX$RmEz(VT$=!-&MN@OItP+Rjm<dL`=lXjG}C(GYop=1FpQ($^ya+MchB>!Nh@iWFT+rkd_z0JG)fgJF{ zXWEvfSr_^d$-3{KU!f!>U&wWt#X#O>RmYO(OHAwNuTk>O_5U?W3Kxat{mAEu(KHJYRI6y0xKQGNn6<3`h~9m1o)A&yb0`{mvleMe>> zslrqV(<-aoxv{=hQB`O)H6DY-l|PuBfH=(eG@ zYIgW$`vtA5Vz!UNL0+dWG-i2*smgGDe^t`+NBQXS@jq52{~aEH<^LDq{J+JBaiv4Z zvZVsPlD?aury8*Xt&!7YA#Xntjj`}et5@lg@Qx_ul)sS0xEPtmN2~aRTOWJ%-k*rG zw-lfEC7*)H7o}?aH+6=ban=(;9wMvOpw$Qt%#} z+V^Ln!kby-?Y{3;vLerjCn|PN=biQ->__6p*Sp0TE?tQDPul{VmRDK!fn@E97e+Bx zXasYO!3wI!U=Q;;H%r8kCItz#pl#V*kD{i6vUtppKHmp0zUN~QjVgZ-7dS7`ZJAu;+X2%Dxz{@k&X4`g*AZ6GE!hYh~iX$9lameX# z;2)p^RL_P2s+>e?HL0N)A--W90*tAmIYs?bs3j~_Ov2D-x*$<8wSgFD$JExg02v{x z#S6OiO+m>17x3};`>Q#eNQcE z#fMg2HZLAH*IZg_Z=S4IxOygNEajo7`!5?JLNM*S zk&RQjaEStzyNE-^jNo-B!u;cf3eDZM9V_vmwwZt)!lYCCL+Lnw#)id1n%DNW?;Fn;Vtru-) zy4zWi8bqDgzG~1ryG0pD0o8S2f#jzB*I`_Q+GX%<6^+Ki*CPluDHS8e;(jT6hRLMj z6l$8HM#DtZ8OXUYQV}68Bv6FbmWnEpEt9_fz_veHFl55hEk_#&ja}B%1H>?r8~{sh zCidmmL@7^~5PR3(`@c<;Qe`cSMycPEV3HMBn}Ty`wP&QHDGU zl?Y<9vY{$-B)1;tGFP9Oznb74*d#7V@Xh* z;{u|iTYTUX9nhJn6NKmqiYtf?uB?;>9?V~0mNgj zSSC&hi@!oC|K7`;x7wj=p7>`*T*G-I!_i(DdEFc=yRBF6og>k{Dkj(wZ?Z*stT@iVN+=mNUWAYqYDxhq^B7!u&ac z958^-$A%BJHU`FQV1cuKtm$sB^>_JT6w_H99{$=&ObN)PZ9Q{B8!#}*MD1z(x=5Cj zvPs)%a(j{nVQ>$*aVYP{9phG>n1e3lnaeM%Gv>Utb6fM;Ae~&qN~^?J??`B}YDQXQ zR&_kwYx*^=3G1-~xDVdA&XJ^myT88-vkndYK@;T?;oqNs zekCbxcWD>#L>$b5%c7@s-7D0&$tBlpO>?Xv-|VdFI!JV(D`E)S{GuE(brL>JL|e3F z`KwFiU%$$wB~niKDSDK7HJT~k#@-P$1X&2m@b6uPHX@AQFF%To@}a5o$dW_JbX}a9 zrhV8Vx{AAYcCtxJWU@tAX21VP6V|4lNI+-`6BE!vOUh4{A=KZ=nbMV-AJ8|e=&p1A zmsyY$Mx^|5xm&+GA>#wIo+KUfAJ4o03Ryr;%kV$uivE|L@V77at0(*fIv9-A}&PhnutzS)pr_1u1dqNe&Hy#=uAcg;1F zQWEbE^8Mii?S{_6TzOGvF`ZBfGaqpTYps7pNp^P=P76cvj|$0(L8-62qH9UkhRBxfB z7Iq%8F&y*IBj4GA^CgVq(hX5)hEsw9`|r%|mI%o^i4-7bw6Yx|60{n#T#g13y|<(I ztlm1MMe5{SDr`~|<*3CX(Iw6t%pnwQqC5p(0V-W+_ob+CqSxVHwSH~A#^fJ+aW`rg zofw|}+H|r}#Mu}3-sK>277bM9l%!>l-qGZ41apFO$PkG}VgQo)M#>AW+VG*q%7P55 zR!z2x)|oabaYI`bmbNPD(Xy+JBj$)=n#JSAML90l<lI+5?C)M`NalwM?n zXVCDinE><$-f4L*@?+{1RKRcEzRC~~oa!yEQaS(lDjxhqLC^prscBDk^axR}EYPvC zt7=cWdd~%9F$1Hmd+HB;AMi+{d<$?Us*kpkDgTUFhY_~3GYKcGRgwaSM0XJlYr)kB zCp~Id;q-7c;n08ROMb|sN@ya`qaAl)>W+ZNpQ>QX;~?e2S1Y{!QMH>?;siv?C^Uf& zDkYbmi(otLKMgbdTlTW{51dw(KBrj>30t!|B+@D4#R_ILF3K4RR)4Nx+sZ6JkVDTW zIm$dO6B7@cfmKoJFDg=IS~gpEj1VjM2t33Lf=NX5n29v|Q{rF^AHFrj+A-+o*pxYi zoF(628~T%Sf`CoOoHG74eQHC)7Bc4K5e_w(Mjp|j$5JeH6&uSRtbj&X%)cylz@X3Q z|MD?*629^bdOK1py=HZx0L2dNsO~gE3b9tmXQD3%ps1#UR-pT@(cM9}^>bfV9<{-G zHI)FRBUZ@lsmzAm;F@0ECC(2ncE1KqR#1;+6d?{F%2!>*^_egV);m z%=I{j;;$Stqj)4zDU1SwV0Ita06n4ecHg)>Aupfhh!xzB##EXC4+mkTq`S=~$;A5q zy+|E+;9bhwP2?%dU*9MR zVxr(%1Ho*rBr4B2A!hlF#?G+`HpNs;EoQyuzZ}RZcTXlTC=j(H)05T$`yt=y zh<1{ECnTrG(VoDF(M@Ho>h3C~X{k@@!~;|--KbkQC$3@#-dn-YKB3d=85wWYxGkQz zZT9#9AbYrVTNxFFa&L9r<3_VGL^|jP+U#1vi#vmQoHes>WBVDjqNigb&fH9dWcH`C z9S0ax^3$!>CdeHEyf;XmZhzuz$2Q=~RPc;T-??cBlkDXUtj2>k7e0XE7|IFf)4-3{ zud7URSl#R|AIoU$eiEg=S!Kx6U{8EtQmC@n^{jZ5%**kjiaM_4OFwTCy6q)Z4RSr1 zSxV;`pNNv^mJlS5OwvAQ#i#=d5OnWKY4D$3hx+eB$DVeHSLVt?!)nTt7sbH=NRH<= zaYp0oYs9N@z~q2#8jSK+d?6G zfh=u$!_wSuy$y|0mL_4m5(0iIejl&0uWQp{q!T zBkPE8tE}By(GRg4;)_ppz~#aP;sC*ZTFK1Rx&TRpXK!+Rk-clnmDC1OUPf@(1g2d` zZoZ+X8E}Y)$*|I4<=g4Hq%IQVtG-}3!bjnDu|IQT^;L_s~`f(8W2 zyBP;gS&AKc4R`t~wqW58Z_Ozr?{iw|VKsG+EI&`dE@t{Jkq+g&eRF=}8RlQbWWsxt4dI z_i~in2R(F7N_u|z4j>JzA?y=LQ<*2_EmnVCZso>>NwPvw{qC|y*%!2n$p$gb#d=5?M)^{jRU%;8FwQ2A$>F&s z#Y9z=fQk~+udZe*b=>1@;jy{EX_^D3#*FkTsOkjcA?o6P; zdt9(HWG@|aZx_G5?{gS`0Q3QYO){M9GYi5{pC9!pn<^Q(7|@w1;^$_2HJcgEQl~>K zJ;=qBhyY^{Wo79&@09+GvmayynJ^RDGOBI5 zM1%BjB&zq$K^|&zJ}++Ds*9HWH@r*N7Hswo5Cf}8I7MRywo)Q+=C$S5Z@ScweO^y| zVG70Veq;Rmbtm|x?wRqLS2KP;hQ2vGee7#*A~_Y>o4{JP+JMPRZlX0aU}P^gHx;_* zRkGSMN})sow*<3+)UlYA#t#g%i%y>=HRRlBnpp}rc#IcAh67eWu7THL$bwmL)BwW* z9s3S#r{8|O?6kal6IA&p5x2a(eDm(D2=KsSqq%%nDB?@>jS_r6$`BJhevmU4x^x+Q4G^-l{yeL3+1ktp8#J@>3(OH?SM*fB*UFW&@ zjMiS^;A}@ht+mGyBdsS|J*BcKLYJGybn@l}n=i%VB(}l_XzH&L$o|Lo(gyqAJ2VKl z%9WAxUUhYxL)9gIH1()JcBeF4FvNSsT7?~1a+77IxdU6w__)$#S<<5~ZKC0^Jgi{O zHm3`s*lBG>Ov6beg50t?!Njh$C*-y%XJY?EfO@QCrvna|I((e) zZQ_9oZNV@6kU#VUB5_tT_t6dA!2M@lQ3!=UL!y7&`7O7QP+fZTB$wo1J&|l-F>N*D z1Ixsqwd=*#)e7v?U6oxetf>ROppdWwxUw`|T|eH{!kg`?h5p{sMeFE|!s&!^QI5dv zQnX&V;C5JzJYov194whOh3G@TTu0iiz{o#bE_IP-WJZ-$8l*v)suJGRecy0D`vKb! zg7+_5)=E8HT;1vPh*OzAj|YEzB=)Xvi|bxV_zQ4`?>w{^T7vRgPy9n%7%!k1M68#zf zCyxXNUwAlJt;O~yB7R~E=yIhrdV^!GSC%mvF-8)w&+=W53o61fj52n$;{i~nuw-bb zQDRSpYt|N}ik~?GP2EGLF)7=k5txKN=<{2h=B4GdD9H;di6INq39KgK38h3Vp;J3c zzW)iWWAR_$d&~}eln!~kWC!b(x>h7>7R&(_?eup8u~f7|CWEfdbxe;{{HlPJHEPquzzo&%~rm? zckAcqteMlVlMBs%zHj?^BMR9JX<+i1xlpzKO7j0p{fXAU`f{syJMwy~_`C4#SN*uq zxAzZers18Yo68W8^*M#x4hb#7}laEx`B67 zYoCeMK8j8G9B0k33E4r+vrM(i_eIm4@uga88SiqhYSp`TD@>Q&dT3jwb7co8fB1GM zyZw-xp5}8}s*+Eo*S0?vx8uYb9J7zB*iqgzN1?B$*xtj^*A_K{VxY0MHJ<*!7G(;F zC~Z>m&jTWb#BS^Ud2G-v5&DrWaY}U`7b%e2=}e%TtyQDEx^2YuZf0cuw(;g}*dntn z8oh2oN|xiFLOV)fbKx5%<$+&8>`Do1B(wE2rlO1Tn`n3Kp-m6r?Yw1`XLa$rZcTaw z=QsD=;{3?gmb{{G{Eew@RXbDW-{M(OTbXv^uG1(N;^Q(YHl>t&g45=fJ2XjW-fEMw zb(wn6M{n<|=Lrdot{Jfqx&#oFZq-0l1!{{-fJ+$>DJ$$VmDHDIcB`R|I4EMC*(wEj z?y{5}u3Xm3zxlhJaw}HukA|5YUNXptLs0AwfhzogJ}AJ;ngqDCkS*j_S~eg&9Cwz% z?0L;mcNkKWqebHieEDa6p}vcpio3VS{^2*tR_h1G>|@nB(#q!S*@^KZQ5`;6%tW;#UaSsp!dFt3Yo$CBCjwJE-W+ls| z*YCB;DF6ad(y{#>i+PduQNL&c)obfX4&=uh{4+i*uVjcMxCJ4~ z14W?Niq7JaFCKRu>w8Egs8Od6FV_*v=3sTAYj#^yd$Wce{}MdIa9I#u23QRmghRx@ z9>s=bOZ*Nj0ZjV=6BXO7@z-#PMn6QcUj0qzSUg@2et;AfSrG^zMr;nvm|!3_FO6f4 z;S=W`;B^_OnpnFb??HMnlpB)*BCV7)a1-;}a8DPQy0$5i4^jfdh&E{g4L^jl`H*!^E*-{FOB&*5>mnW1sNZ|sxCbyTvg;fpg!g9#pmAJ1dr30^$ zAoQq~z%jBc5j4d$Ts0Q%*4GnpH>2hx=59xV+U@t28Jd1OqSb2X^VW5^37qQ8ZelB* zdb8J+WUFUGQY!CQ$cs;_bLvsoKH2ZEr{fH9NKKw`OXlMTv~wVUoE4 z`okwv#((;g(?#Ght?Im~>n?y57>9@P7TY)(N^*2)>=O1?Kv8vfwkM=KZyNMtWJA_RZ*9U#=dmHx z9iRy{vLPqqr#o{6QycJ*v<6Mh$FU|9%x8=wgQzB>cA1rHG zVQ`BfY#+^Dna+cn_P~WqBuDI(bjZJlD4Jm;^HVop0iPglG2g(tLbhXddmL|Gw)P<1 zRfiSPmcW^QF%x{q+N^XJ)7z=MTB>0 zOTwL>7cU)Tf&`d_(!ld``@ZAs%rl#Xz5D>ycRkW%)UIlqw>7op%!O_>il0l+chu9n z>CQy$a+DJVPg+Hj+2M;R3KOt|F8?dE91lb*6KsUk=nykF^)~{S*OdT)LYsuO;b^1z!6P!lPy^gUOC| z<_j^zcV&E-9sI(jD*Xxr>Cgry;;6}VL!g)80vg)oX|5qy7K#h-D!{IQkCZwHPgO4i z`Sr-6h}sS$JD-YomK^JvH?)8@W-jP?b6~>qW5JW6b-asE6J3@Vdhjfyj5h44Ua1xe zrD{u`Ur1qq)#e;hd|744*!6M(m|3rDUZ%H&%fFRFM_%g2h;o-_1^>7&=%*);_2iZg zr5PEDyE6tW8-1{mYsL}%A19*ZJuyBEuvjmYB?&2Kp;#GamkbO+8CdZ=3-YHmxINw3 zFjb77sfrf(+G5x{jdW}><`2hyj0OiqA%RLUn2l+yA4mT-J-veGRn9>a1sTkStl7q= z2XEHaWZyS(Vpte)Gk!S^@tPs-UUM9c#xFruBN4$p-tPir&i{P-1nX({brEqV}I#!*5>aK3I2y z5Mt~}&OBWJLy!Lia=q;IQtd||j`YwD6qhXRfSJ{dO>19LCRS20{JABc5Q&Wm*ubfa zByq#MR|xrl)R4&~ZUB=nu6pLfp^InM7`T00%(R{jB+e=wOWamFJ*YXT6!YaAn}Tbr z%8GPu94-+^*kFbQ;#s5QcQ*Qy|NO=D$rw--ekHyR+Y_KzO0*i^Dbi`kFtWLr&fsiu z?QdIKI4r)idcqa{aU*nm|CRKm7xNb>PSGw_1?047lH z>D7P#N?2_~%P8vLQ|kKZJ&K0@Jer2w_ILGsVPAj4^y5F>%unCc|BrAP&kX+izDutM zPmEu;4sS@`-Bb75PjPBqDpQrRe3&)Fx zZ#V(bj-mAQ?dG4oauM5h-O3m>a-KkrXQVzA=*vuKD35vpnuTy7Zf68P_c5ZQi%;Jd z(PEr@1iSSEjiavLSb3t*x0DidLjIMqd=iHJPtP~1h|jWD25uCiACDGNRv;6tgU}lu z)nH=}s+0ytvto{MCf8zYKZTig2CF+A4MV$i(tDahM-`V78w|F7N0TB2M>t?vhG-pm z_2L-k%{ogGB1)WvYX?=9X?$d!$f1m54tQCfH+828nsTW=M|@N{Do+M4jC#zMu3*kX zG)Z1Z9=$&918*(Zg{#H^$IKXuv`iSIIhC=&Oki}5B@3kwko}waIWoE`a}s@LY223{ z4W@!;BsKm?zAmwq!-sPd`JK0dSq3?Jiz;8Pgs@&>^q699eq-4)qJO#LHqY{e8MJ?PHuY(=wa8aF|Cr1RjEr~KId+w0Ly zRFIgKKP28dnespC;zRB7JGgNY<4XDBauQ$#qr6z5qN!pRiDectaDKKqa!J+0i#PS% z*OIrbIxdMu>p)+yV)4w<`J=-2{Qahs~SGZ=&YCsoh2nI{7Ta0u#F*7sm&dg_S}NF%r>k)?_^kW&{S;7CR4I;&aD*Lo zFcu4KCYx6)m=Ov`9dBUsGDQ`3!!DE46^ulV2aA5I>%YS#k9}dGtQ~{%EGtw@>l~6y zhNOtlkrm4{`YhAZ>I#Pj<`yDxcE(?^g1{6-^O%nOjri5!!7(ebkfKbti&*$YPzDkI zYF2_MnX3nu<}~`1QN+zFZX;uG+-5zf$?*1kf}1T5*eJ^~I-g_k1x=pREfCHmp$RO~ z8iL4p5mS!dXWiTYP5}%vYk(7|wmfytgxOH|v%x8Hg&a9Ax;2fVzvl%zj0Gnb#V8JH z4B`f#>jTeo%w=mq%>40F_4v8S~R&beLk7M*{U*2mmh8;s%etnS64H^iqsHUWk^LdOksbfEM&c`lJvbwvMM>V2ii!yVy6vYroDX0_)es6-^ zkRPr&AvXs2wcV{sMW2JL0jb!~emR^mwMBr9C@%mtie4C)Un;3twvYiS%6q7>_wtzp zr4yMQ7eAAq4hiZ+>TWOMQVvxjfRl{8`BQPj)nN3=A4&af>!N9$*H+AP2)mv`(F92= z>iwd0n$Q_c#bsSV6Lbg|ntL+Z4I%|!Ym`JWt2>z*m-46-`ly?7BmUlz)7)mDaSH;i zvSs1vRj?+3l6rJduX}s2g;-}gYiXh)JLrTTjda7fnH~EzL7Hy17MZ~<)2?s8BSrZW z6^8h;Ko_CJ{Xy3N`plr(>nUNH6u`mxy+4p#uVDQ`8*)le6I2X;? zB?X)g4mKPT*oFep`&^6!+axuYyr@9lO=zy6^J1QssdvjOM|1qM_l}tCm!7v{V;7Mq z7}KL~SGjCxiG5g^KhERbY||>OZI}CZ9YU*ZLPV(Ty6SBlo`;LPkyy(QE8*=?dLt0) znWqO&ui|lHJs)oKpbf0Z&&Z9BbM^lExMm)#lJH zDX%UcU`scrU6uH0$L@cReJx=_N3TE3h-!&0SP`nP7Ji!ZU$w||h${W;kLI`wz;{yF`; zNPjrJ`FwkNKHR*To_}wX%?5V&_TJj!p|$JX#?8rpes=r(E=ti%&Dx!x7pCl`K8|~B z|IrOra_HG@NKjie?7vK*??-(~)(rDQ8bHtp{6SS_F#u7cO zd5N>T6wgtt{2HfMq~hngcKG`(`VW`%X0X=ZnzZW)dB?Ghy)H2C?sk?Fs3wT!?shdK z^Y8fa0`|{8v}l5$x^xBt1bekUgNhc7Djrdw^chk$3~7i4Ws|TB9gB}29t>zdc!jg_ z3WN;Zz~`*-bIQXZ`Vv*mnN#m(@7Cu*o}uJ{P7W1V6I#n6k>I9{z_KGRlgMY@-migv zf|zw+@>4-cSdcxz+@_Y3vL~mi=!PbqU`Pg(OE_t1*QM-k67wxcbT76U$YMX~`@XF+ z6ESON(Kp)>6$?ft9hBnY6$ zK&{>=b3{t0XyLrZ-32nJy}ttp;hVt-;S4S;AL;?KOSdKDK~#=&DT678zP0agwL+u6 zvzgQ>e6FX0ES1TOmeez zVD0ao>YqL2huNM4#nJvFpv3xtGX04Z!~wL%mAvB|X6#xh?0{J{wg79ryAYfW3ixog zIXxk4^Z0WKu{g(+VO(<&zqAAZ%lb%6GE@j+-nHb7Hl&La!efmHJ4R=W_P)Br$SICo zKe)7@%A`LRc5B0Tn%})K!;`4uRu-JBIs-p>orWv*tfPCpuVGor=bnqy-ZvD@4MY`n zn*GGZN@hycw0lR?FU+bW_=NW;kDckAR{7BH>$@L0K+CwP>w?@#ia0dOn34G>RNHgz z7sUXue`z$k_*LeIVvSmCr6G8*%AMqsC71+^qDw`W>|)8?js^>wz%L6-wb(VgMoc#tDc zncI2=)hZ+e$fuQ0&UqnES*aRwXFzF|rUFGZ6a45F0q}NNw$q;%L@HMZdBFHv!F1ce z@8Ymm20PO7P$C8dlKvWyu67&{YbAG1j!>44YkGyB6I? z3V)o3iceXml`tRX@Ryvla@9$LxxMWzyRu>)EI*lSwThJl?;B}iwdICe5F*B8M7v%= zb`Im`nE}P>4Wq)HZAXiE)FpLc-UBOvG5qYA^;} z*oK8#pV%mjEAgeR$z>&dg1*QSLew6mYoSVM2DwvLO9G_MWJO9!;tG_tu6LXA&-=V^ z%@xwW4fwI(4F_{c^<6*l_1`YafZ0-i;6r5VZsJ+yw%;5iTEPxnkv`|p4%dES^M$j0 zIi5oKD^=o8tK&b4nAi`odQ9NDgQ}6nW(P-)+belQ_|Lv^p36DRfrp`ex+$tiQUl8d z5r8(dM8%@z?SL_&%VW2}VEk+cxo zyeZ8Pq^QI1%=0!;TwB>!gvj>EuZ*c)p*kgfi?*iCvJkhvzkB#MjN@WbRNK`A5_LB3 znreGas+OeaAcF@<;H8W*9%?2TEE<=&(>1|(HsHZs4E~k8bkJFM7i;{Mh&-azQoZhj z#88@Qx{xH;LM{w6$7}>d-_3$!(tP`CY9Eg$uSCh9bPJuO z)>AR`c?`C{%by51g=U*Re9JffREZ08b#XSx*62MG#b;;5va!a7L+<99<2##arw(F^ zdF2ti6{nZE<4(tcWGXH{x?nc$X`6MS<_{BgWz`dI41y6m+<`HUian}*KwGgM>;!1C7;IADr znQwf}Cevd1TKYz)U zVp6Caim#04oZlhW(Q=`I3zWJ+ThVW+5-BiUiu+IpQ6RCh+-}hG8sNBd9CN0@MKX(x z!u1_hU{kVN6iHIFkI)6BE#_R_zI|8B{gu#F>_)D7^6b*_t46Q#*(+_=?-iZ0Qu^Y* zg(;^09ax2h{Xf7ey_&PXWPX@mU&<%Yp~O-?EX;{Q0p%aJIkwaHG-lH#iR7#~J zThFoXby_528%?Ciczpk(D?hg`<-7cAppl=d?jP*@@0iv2&yVJhuhNhEWmjW2EjHN_%$b;A}gcoO*Enjw7Rp{1m7@IE_-635r>#mOK3P{;mLR z_^I(qp2HmwGCDOWi!UDhl%~9P2;*a~Jc~`yHQg55@pkodS{^=ni+*|wUanq+z2%{9 zMAQzAV9UcCH7;VfR|8zwdR!zDc=nll0WjEokPBYrhcT~cX-2IQeC0lyh}_9^8=x=Gx|$!@Rp>@~nl6!qW$CKb{!KgCFcCK6oFVI+jCxJD)>;9Gc?} z(^eWC7``fYNwNDL{1n6|^x$*EA9J8bN`_~SaQ=GZSTmTl^tKgFuIX>}p4@G6$}iba zy-+jw0VuP7n2vP~>D-=Hd}O8Zs=m33p7HB-*(<#iNdEyq3DQu zKA&3mGz1=hq|PI)hi#9BOeyWCnuO_0SA{uLOYZ^${|6{W<0pLc#5pgS=S8H}Q;y8w zf%*8C7cs$!cNe*V4%38zzrXB7#A@ryyX)V#92jib%W#`Uw(6uX?_JYTn^~GBeFZGz z@3J)oR0PWCxO~l>24gmH2Q;*3?5HAMo#_6rSMP!e>96bDG-H0*6guLVO0sCe5T}Jk z52yof4qokSal~8}(Vh=AmNyYH`OV*17!gKEef++=3a|dc;LXCE#X5l@2k zUdl+LAl~a5wv075RO3gO-X~rf z?3Xb5X6HMt9Bex6DjQv!@3`AJYpboFgTk z&RB?tVXO|NCFOL*fRz62jJ?2Xx4AxDC~#^rmD!<^V#@gbGuUr-M0;USTMYJxXEI24 z)GsGhl~aA3nPwtY*N+Ud%btR6Gm;$Qj2~5e&;uA=r@C%wim>5bcrtHRjMM3m|Azlz zo%SQ`d`JMunT6VeO$AN~U2lypRjrFSFrF%}h@rz&dsudLl%@D06lOAsSxs{_E-P6% zXy03-V^cu-NE15ANmY7}AJGwxNZH8cE^LT@eo11<4~aQ~Wnb8HA{E_NrbPYCFz>j6 zWBHkZtEE#iGX85p8;XR{&ttWDWk;(eGo;*2p`J3%q<>WaC+}_B3UW2_XI^ExAC#78 zNC!3TLtDjJ*a{OEKPypBylQ#9hA7>;y|PdR;5({Ko+sT5#ekh!>{QEKnzG$WzF2&F z?=Y?0P6y9D-%XiJ2`|K2GZ+zGxfTADr{>_oha~ioIBX}@>wl7@yUQKp>z) zo%d~KfI_aj`(1{VGDR*o*Iz=;v3|*7Sm_8Jm(}-EFxc(;h@b;yNMT$XHy-qt2=VW3Pk{Z;78r*?w|n zi?8!Ch_~|ctNyp=?mXXh{ru(nyJhyfUnwe32xaZubt(XsT%Zb!uV=Pz526MKjktGoKrYdy%(bH@c?{X5?oHF>G>Xt~D2fUs=p zNJXw9^bBwtJCl%ZQGSHS>hky3lNhO=A9b65VyxAG69zbFh|=feWw5k;wW1C+b!+N?1nPt$-mQ(AMY4H;2tj5Hza3vouP z>+N!*96rTUSK4&Fa=1)eJwniB5VfQ5*oNf@|5pk3sW@tXFSgq3GYlY&r}%b6TsFc6 zKE7l`JhiJS{EOacr~)C73WRNK$Sm<9VdhY(n3^rXQ5Nh@c`Rc(bwFd>Wj4fL<4D$p zk>Ao)w|lr(6^_4@T^mU&HQHt=`XB8<1>w>~zyX zrM&?>7u&uI+F`UCZ$~?omS236{DlDlFjm=#lHTg6Qun!ocFSV-6{j?AAy{s{>;@PA zs@#^V{h6W>5NU8!RS9HNqLPo(2v) z&f3ES!Y>4mkOaYmFbKk2B5glyIBPyTl%p@4(+`T{nL>{t5RbHckO2eKxOS!2#j=|m zq}08TR_mo-{A5#ak{#Hn`cGVD^jlkV9wfj9)IR0eauhk-rXWraNssGod*Ap+)bdvInG?$EJpNE#2Qc+izkF zi!2R*B}%~z=E21YEA*l(l%ady`pNIrj`T$a0F?W39IoBjISU^tFh15(zz({(gV$VZ z9NBvmWMip)TQ2&U5Du$%F6L=*Wu_?Yy@&QSbWDsFPUDm*{htPua-hyoTWV|az20++ z0S!O6vL?TMw+10@(tFV`AoduJnB6eg3r=C7-AUzW4H7+j8qS2f3ddj|k{rB~fi z^R7alS`LxjJO454%NJE~Bl#EWM<9%^DhFi=VM2Ue(}P$P&(x^>Kq8-pJFGQ7G%)Tw zXu=9fLhtmzY-3yMar&IY)7W0Nl^5S?XHQ(V3Ax9eggEWqsFOV`JC%rb&CB@i3yzOM zbwEc1t6U*v#Q)y5hq_j&4KgjDq2Luqt;uxJ(DBR^t4=s5W_2ciPl|L+Tc74bI0zUB?2W9TczEc=ENxs&o#@4WrOKuvrpERr zrt~tVcIGY?1dI$!jQ{t}Z&stXZj%dU=i}Fl+kr%?h=gF$G0+Rzg*u_;Vi9*ChdcK{ zpPo{KKi*_qPN~qs7e|`-DUpb8>VA`Z3G$Vk3;Isq)vo{e7+IJ9_Pz7ve8u-|&b8|e za#=@QdkN^{F7%H!>zd1l7aEYAFa|{kUWh{4y?{HGkhd5?sBd9={I28LiOE1h=`Tgs zW6D#9hq-3y8T(n|V*$ZjsVB6f9BjJ%>U^#;FW04<((?|9jg8QY!K^lhTNnYGt(kKimYbsxUXX9w1_3#1@2D=L=12rhzgAz&~OQt zV1O3x@f{dRgv^Pkb>0m%z!y`no>;%x3VG?wsHi3ewDnft(IE>5OzsbJT^l)>GeNuPz zD#A6(MDa{~7{#*OGN@pdV&Sm80leuM&S>BvL`5Nlmf;C}>Bt=qJn>1{8L0C(@Whth z3M9?SgEJ;m$fm7~)`PGPOBw-HFf1H3Waqb<*fMIuci{>zVjbNn2HH3^L0Y>fmObd$ z@nnlq7_u$g<--Y?Ne*i})Tv0&M7p6F?-i3LA>)jibEZ#hijtI2nI#Wc$^No52<{G? z@lCDDvsSy%EMaD_Hb5vba;P=-on&#C%V8)nwM5$B3ZgFPumB4Ij+qiRG|;5Vng%S= zIIi_|%aDOl8{C;a$e_-Ib88`1Of6Jig}Y>z?OwdeR+`cxs)`m}Shipd=||^k_4}=@ zc|qkSNVTY~zP9a`_AaPfmsHjYQJthIR|+rA*;B%e4Z5pbMzIZ|JNx|C+8* z5_Yr&I$%qfw%M$|h?D0(zC_e4e!wG$T`0eBG8BmG!Aimo4Lb6_014(r$)ssD z;Ay50tpOOhWA<&GuNYRjSC#+jF1Z$@;Q_GL19u&rfUR9sRQ+l**?a;sEbRR*%ey0Q z`oQ9CO6Zw+eyw0Klfe3z!%(o5#4N-4fm74Myv*!j{Aw|@$NrnLd~#|xlGJH8A^Q9G zTercld_0v{hhC+NcL;sy52Px)`sdE4Q`3qUmzFfoXqRmKjm~W0PkbAsG1J0w$J{MM ztyys4T3aDE3vDfgY6w{fFE+c|;7jky2qoz(Dn;U{Jc@KpiB8hA`h1`8vrfhTjeyU{ z{J-NxG5n{CXY_ZQ^8XX?m+Y>$2L!?a90RssW@sk{mExVI27mk^qfHv4r0J8cK-vlv zqoo_qm#agu`e2PRKKU6r&VJ;Fzwm#~+<)G=`~9)~eDV2w(}EEWjbd!VvvL!}ATq%fFOmk=7oAIvKR;1#M-*3ML?5 zqVtcZ#4!+;c%YbdiXs&dooHcNXl6)Hj0BG}zxLbfsA;Hk(ox5}w3&63$={iLB}Nb>y-xIea7kBy z`Ra;UreV3_no>^E>Oo0wKAEF6r%}j=rBmk=dgJg6EOej^e;tCScQYc8s6PwjmPF+f zD~hyOd(ZAYRfA--Y5~ua01>o@>lSUk$j0soW>H(lx_I~aed6U!2H_r@`&v|LrvOB( zqssgxS1}155zK^T>O6jfG5N(yps|+ej+R35%uHD7lsrBhc$}06Ros^j1;E;~y_4q(C8FYz7sl zs;6sRc{rLnp_hGIuQe=fD_&ssS_21-0)Rzd`SIfO<)ZUGY*UMmUg@}U#>N>tI;7!I z^P2}K%F$NBL2DHt1sn_zlFme}#)TN|N!mpF1I#SPnB5VW{N*r1jeT8rmE&%BHtLcVV2de?k$lablyOVI%wY(M0b zHT5Qzbka%#>U!>L>5#gsg*}dCn>h9oQ>J6d6LTP6C~(6|cHOj;Q}sj_hvHJ% zTz-KLkN&mk5}%Nu)}`=2m_W~Wuh``h%O<}ag_v(I3e_cM!;w-Wn4tv@xnQSV&F}I08F&dv-2cxq!@X!1rMbQ(1?CT3Cq*S?#3hzk-~#hxqEMD@)@j zD~s4s@Ncl0uis73Zf1CSt-Rg@eZvI@ni0el2ojE_=ua1*YRtI}3-HsgNRN=2HkgRz zMW$ri9QA<@Ws8Tv`1BL|XwA+%0#O$J6OQ_v{F+8rB^UTpz{ z31Th3&izwS(Y^Y-bCF%hbP>}jS|sX?^ehXlg4zkFfz&)SlRP^M+Vs0Pm1z4WKqVH@ zHFCF2-hN9}lBik~+?JwEVp12+7aax5(w1&5nJ!xzx2vZz(G8T3bTDOS2-0)Vpys+; zjBR&$&C5jgQmkz8VW(>M1!nlt$?&^LGQIILJWMLP?y6tAxoY*^5C*l~2-cYp^9FtK zb7+$E-r$WE?@4*Cv(23tcy3zsq+3*CLEy;XXzr-%KLj^mfiYw1mo9vpLqjt#J4fBWD{7n+cLGMbd zYHRGnU2)rUrqk1bUdAxQs@Bh?O?Txa_4J-9!LzOxPHgT3HuSMq%%khlC#%(SNzoK> zYOLZ6UT?#}k?gS-*{$!Vj1ZBp#voXO$t2lMaVl3Y_j~!HUKmB1CA*z;8@G$6m5e!Q zmDwMM-&dXF9U7zcqxM8yZF{q{z0ViXrRhZ!n!5>tiMrom!2O;@f6iB!3db^jxsrj1?}>r3Q6!BZrw&<9@fx2DZ3U@ULX`hWB>(KIL<`qc17$y)e@ador1X zsyPk3^*s8j!kPfTPz0_N4wZ3njy|_yaV6bSljI9BH&t>8@=Y$tNkzVSO56c$1yarY zIiDOFQ)ly@_e5jIRH`eAn0dq6EV1f)%RwoGDw*#8xk>Fm+0_1TPYve(6~BpziQ_-& zi2q~kBWC@7jeU%6Z|h1aphyIb!v9CuwF3_OTs@JsR^ zDZPuvA+4qO+Al$v47^yUt@JVniEa%vtWW$gg=wUH5#5K_6u&yU#5(V`fB=y_yG;8mpuA`Q_p`Zv0bmM-MY9VU7fXBjfl90-x44%#2!~BK9b%%nBhPGKS=XM6HAt z=>d*GIcj1NMqu1hos>)ugYjy3n^k0Z0ui(E=oSH^S>)P->YpMwQ;+3Da2NnX0Sipm zjD3nA=b|UAqOTaV%b6|qEq%Pr3Vj3+kJTF%xYvS=gxQ(2b=CqKOl{Y9nD(U>kdu(O zj&!!N1FQUb!Gr;xZ`yAP0Pv@cD%1n&1w;X4YGrK;NT6%el+nLQY|6gGLQM`U-4n^7fM z80JzTbbAYL$wfdfd*KTJS0F0^5kG1z6p?t6=wMI+IWMVPB zCdOma0yWqpf?82S4i>Nm1AIIb);{`JQ!~(*qy$=uEa)c|ZczMA!fv;PWm__(ivpqM zWfN_Z73*dN6St%WaS<&taAA{_ca=AEF-$`wR~%mQMlRl5xO#9|)2N8)sq1(6;w>_o zRg?g+hXs&JgG(W+Q)Girz~Bkj+G2i6=2x~$r*st38L|E6er1+2*qpIndO0T+15;F} zRjjO_PbiKqG<88&f^Lx>A>@i~_9&o9y(kB%2E@Z^1ECIQFapV`4?2)EXpzv8l)T3b zlA@s(rYd~Vpmz|Cb$ct46m*SHIv@BWB(}O*HsobG2$jp$k!J>0YWM{u*CtAD`Qh1L zB$hJK5&pbUN{F*Fa)_2Q38O|}4pP-72$el#Xgx}ziE;e;Far7e`pTcfc*&%fZupLP zNBcH?35%bZX3Sv?dQMP1)WY2}AqPVWUQe}NMI}`YnN@Nu zr*ijLWbGH628e%kY_+3F2BfpnGSF-obW`n?(n>blQrd{22~Rb78#iSr)|pB*3_=SF-1niqs% zz0DFn(=g;GFyXD>Hh(hAI%~|!cmrubeH4WVWGdar{e+&p8ca9;HM>mNvxwqf@l-EL z!OPj+BwpxUoPoA1iOuVo!m2(Z!@~;lo}9VRy}nAuP1da-J}BGXe=D0xF8xZaepom_ zOdHZc<{W6PFm>DJBXVHE5?^q#2;SEz6_G4D>Y5ipcQ^%e8K=sZM*g!RB}QN%UMJ0w zNs2#u+Xg)D7FqTGFm_H2f@n*!F5Bv|ZQHhO+qTi=F59+k+qP}H>h_tZIdk{J{t+uP zS7tCXgU$D~n4#vE{AVF?4DrQFn&3Y1TQ5SMTPQ4pm_MOq_(Ds1}z z{BFFfPIK|}b-n<=cAzsxfig12Sx7_=J#CoV9&IKmaC)px%PSOPsP&&AS8c`upQPa)BnL9*eW71JY! zhyePAxl|F9y%R(B%~57esC3T23=C8tTg>uc&tmjWNEjx0ekPT-G z8We~))#lVWYFM3YU3~LV7C0sI6G>L*JYQXlO)h_hR6gr@+Y@dCQ|FhSQ4g)@oUiK^ zDH9j=dK^?y6dw@vlNb7j3NNe2E?8XvTsK(0{sU`}Hel%bsdLO6G;&h*PQ8f(uiQ<~ zf^ETdtc2z8SWTP2H%~_+n6C;0{S~Q2QBO}?sT11c*nFYXjkM@^JAAScC8xVRbU59g zmZ>8-(Z6*26a|C}E)+fbt1}p3t^%GNUuy;?H$ec@G`gr>K zA-?)grZZ*=1oxEJDB)$t#p{Mp+9|P7Y>$n~$O|{uS36}*S1h;5rB~4&T%&SU=v80E zKLYM#RbmsymIAS0exI~-XQF(@?8z%Y;nuivCk|>Hwki$nK&_wpEMYchf|xG<(uTe= z2I`^8Y4qXqB%(`@$0cHcGL(ssSvYO@L_$r8~4k zEq9Aob1iwhZ6tY0B@{O^?@N6ZNVujy@^h-crBEiq@Th@89xxUkE%6VkW;t`Dm5*)S zY1{3Dc}RU;mBvV>%BJwFE%DN@1Sr`O_(S9Phqq^2eoWV&*ggnG!<$$pj~g*DFN%k= zD%(ghYsWOx^{)B~TNKfn8v18=l`rR8G=d}o0 z__Q?qm82J%IU5C088Ir3Tif?11Fyj^dx1Sm$4XNmjs;_;TYq_dBmM^%8l0lE6q0IA zCxbaEVw=SRxv8H)Uh(2(c8m}ozo_6D~ws9NN~mi3)pareaG`D6*|=3ZMX@T`I>7QO5N)qo=$~FF|Mn1Mrh4j_- z$eiqv1(G?|Mq*1&$kW$F*d=wZhDhQDRX_}TBE5hGdL*$;Hh~=cn|CxsD|tb9b8L9E-6H8X*?{Kq!}J|H%CQQx zNKy9YPshj%`{eTs7!TO$XGb45?y_LXYS$fEMwDS|azO>Fv|x`+dbK6Fatt+#3h{SR zDS7?@y^VR!B>n={H*{#5ttf-H#K#Fu>cOegsdW6%2o|mV*TBg3X$b* zx(dy%n_eCY7{~s~^~DmF8#amfG#4yqt)`Fl2cwG872oY())jgisB1WRR>5Tsiw9U~ zS~<)b5#RQ<2mKzC5rihww=v;_S-WZXSL&Ne`QXt z-Hej-v^zGV6B3uN;B|%a%ZM;~{V;Yrk$9^tM6-m3KR@XffhAQxNqZu_cIJ%udcTzM ziB_G+N|J3&qh}#LAN(Zfoz1?Awe4KZGM)7B~+hfJW8+BPRqUI7W$ZOJCC zsHSRl&9NM$UE?bl$8iZfDfXrFe`NE%Rq}6(x1Af%v%YC$xA4p;6>tv=WHPBxW|BXe>-+ll}4uKDMQNvW$O z7|Mw%wRLb`!b-WyqNJSCv}&OZEgKrT!~Cn3zUEEA{o*uv?DqP8F)StLUULOMM5$<# zsgv;Ym&u;Sg^WAjH{&i*6Nj-kJE3ZT^5K0ax@+KH7 zC7Ug zN?QkFu7%mqp=mvfy=vKwxFER=6L>i428T-FhRFotywX^YmFawRXL}jZYl^vtwQBNJ zXsqud$Y*z|TwW2IM!SLZeLnHks?iq3Jgm_PJ9^9iyDxr-(g@f9&nl$p3JN}B$zMZS9!lTUv@?`3nl`zw{$*OM*7Y6$eI1q zBZi(5ma50t+s_ci-g>MVKGTniKcfUd@OoOl4`;qZb3D>zix%}jJc&ZsWK{UyVAJ|0 z8@#{H_%hH@iT-I!Vg7fKV;pS%g<=eT};phkc-m^fPhzz&lzx3 zNs^b8qod+E+4EY!-erU_y}p)h;2i9`B+ZxKN0#W}^J2`iWo6&qWk_G_(_wA95PUld zd7Q=E9c7W0!z%!JqqLo6!=4GgooTqyF+-+L=+s4do;8yIV3 z6pcHcH6Cj^i(lBwY>RdF?EC2N)ExP^_f*Ri|5_IlL)}q>sQAji*w+4h zjM1WB$940hy7+8z4_QM^htu>>Q+gnEHQ(3BWK@=ON40N*z*HI`}J3-~-c5l=< z`O24S+kGy-KA+DPUuHg0Vs%1mb|^8MDsU-i*9T+r@@RgJ_TR0}T9;px?a@@KHmq;8 zBoe7dOcUxP;6aF*Jc99uKnFqM&HC2Kg`&oX@@{>YUxu9bl96w&F_;acNpmV-0j<6A zS#y1oSh?cZP#i@N6#^Qj79B0+_K3mC8X-H~2Z818Xr<&3duS4M5Q08EelbmH0wCX+ z&TvW1xs@orOU33)kCh^eVllHhqHw+-&c~vZ;vK_~NG4;%2Re!`bq@FA8veogMQ@KA z5ST$ImU?3K4#5RPjj_0%Oi^5y;#SPiP9b%br^i%OoVhgejeZ68jFfvw#eoU4;9}-4 zR%Q@5s)0%FyGn#`3^A$o2ZYnrEtvSCCS26*Mp-q!(2)j83-rR zT+(-B?vp3(j+_!o_Es?Sly;3oIt7Z4ki*M?YHlQ2dZu1yGrVVJfMuIOOKN@)hyL21 zOW|XsO%AWXOHPLIu8~$ts4Z>lsu7cVwIPgwwd7JDz+WHJ$346CNjAs&fvlvkEx>ux zU#h+2)*%zOElJXZNH1CASXpKP%i*vhs{JK&N%YlpIf{DB-EjA*iD^X@SyhTO@#yB{ zFGh5XDnNR9rP>3H!*rEI;wbt_^vyS>f$o`(DkLLL$X>4HOS8OFPD;}sh~T+Yx0agD zj7M}g)^O44lC8Nw#_Vsd2G9eW8eiWQdO`;v+)FECT^jFzi!8TWXVucxMij!u49(-I z1T|(_qU}`oW~gm0PEFu(!#c<`SeeyT-mFV}712qfF?`*c)`+d^?irU9cijjDbxkD@ zj0Bxy`ljZ(OFUZ=%5WL^RAep-)nRuG5&g0^NJL05up3cuB9}cyimjDoeiid8mP^o| zT{|V$9Arfa5Sq0@2&Oz~u}9P!;yUoQEQ&Pcb*c*3ltWvlq^sz6GDVIG9kmLq6r@O& z1r{-@B{d1E3mcf@M5i^?^$JnMfp@&Rm4hyxX00Bhm%GvI9Mil4wJu{0-m;9C&qim# zAd7+ahGZ6F9$9+T@tCpOHnrPg(rxLNC9EdW1|SvWeIt`z$Ql4>*YJ8?Anm*@pISZ#PrvdWB*x7k%CyM(?2rm5hRIGB%*gwYhw@PmA|X0xseaVgu5kB=+K z8UggD*?zd7_E!&v9;>1SsD3b(+61#GP&P~wL$&Os`3KkVR2@8yu&=`Qv$@I!4+Cv8 zckDaO+Ki_riXHn-{sF;!4q*k-2L4;8wpaS|a?4OYgVp8g zh+;w)8($a}Ju6gCxkOo58TZQp@;wybP^1=cO*8Zh2LOLjnJRp|aJQfA`txgnQS>Y| z4vor-(S-X}%|_MB?Rox1#e-|3TSyY6L!77@VwnVel&~PY=O;y|)-b2D%gq3`CY|jC zymOK-nYXQ;GU0ObuiLhp;3b^E8S1fTTTF}|z$GYPLl#I_S>L;;{xhsw$cmhWh0%y$7rcaXHvC?uPlo>W`vraf@e);!jZ-GQ+)r?x#!Er<4K)1xqfM8zA>J9>3!A~&SFMLZw+ z1{OOeva!DyGSmBKGU3i~g){ch z$ouQaZ(>Mr`yV_1zsibZU|{|4!;VIm?FK!^MSa~$y|^4N|b?ntHxZ?^LoWq&3E@u^yX;I>$fm9 z3kN3c#7$%ZP0tJtY-8u_lE-}%sWB(nZo1PBh@EMryKk0Rn9r|{lr811d!1-m05T3 z8)Ov`&)27iKO4JW5i^s3_P4!oAc?bpFNq#e$i+$YqNT5LdEfT;T&sSZXF!u!^OfNN zUr$wP;U!GOSYL_KFDPyi^9hHwJ%6vK;1=5-i#?q|QtfVKL96)`0`4?%2X=Z?ity23 zuT$DU>$g!mcGb`Zu(&-b7b*^+8dy}g(fB2heOobT3?s<I1*{90=XQrt*i%4e-%quQ@cRiQ5cSe~k4CIzaf7+u&@ezvoe)Pj18 zkWC!Ydep?3PVsHiDQnsm*q^%TL}ri`BG<)&`3vXc5HAxeysgG+_t{UABfJ1eH(B)q z$WG^N0V=r_sg7E!lJ>@^1P~p&02Gq!Z^Zp$-wXy47())66X7EbnBX?GYSRWR%NtMW zVtOB5HgdgWp_S8MiGytw>Vl2NwB(zo1=!ORu~{W7Bo2zpq^%hhSy?TXa6?Nq-U$Scdik;Iwpx7A%m^Nx@|a+pgR)o_GLuYL%F5ls+X1 z{OP5HGdPE!dQ1Zo4uLXON~5rf`?lH3Q&Kt$sOhAYlB(6N(X6|jG|z?R0;)|k>1PB39tGr<+X-7g#8{n)M5 zy?|zOIXtLIy4ZPVgF*1jxu)xiFsTS|X>!v0=iaxrN*Uqd8;8e5f6Z>cmMgcOe-kSG z`Plmi?g!QZ8KD<8d*_*Hp&l2%mR-FoFobK(L!TlebR+9{{_AYNn^gm!Z*lQMbQwe` zI&){`_!k(#)%KdT8->c}3r$ZZP`4nnWTWU%1?_&+=DWez(b)o@aS5pNKi0K>6-L0o z%J5%{*QLL}p}*k2zl+yL;Qc>CD*k&y{%QZ0E2~aT8&BQRaU~FlF<==XwN#;o#q){1 zi2s*M?*5lcZvRd8{lw$@O}oPvwxbtHw{uA!J{EwbOY2Y!kQzD{a61i0_mBflkrkDr zA&FeLXpc>^%3dz_s^-l!#8#tN&cp*8qqnc_ZDyKoX5$@mvnRd7zH<0P{}6L6$aKp! z_4`CaZJOy$>3IMADEv8|B#@G>yJW$GWLK|#3wkE<&Zv zO3y;8g+s3biY*85NTrn-DGb}_oKo0}rP-~nmpd7($Dw{Q0{Y&c^Oeb6Ti4qglv`rx6KLYv^UEVGtX@EpCm5Q>--^wX&8jn9Kj?!OXI z27o2)WTd2>hzv6)Rx|!tlV!c6kNU!MPY3<-9J6S-PH`D7I1=zra15Ek zb*dFY;b}(xsCm>h%szFcoQo)IO7e1mq+^mo2UVP-Xe(qg;~r!y*GN}kPx)Ku1K|2* zc{-MLDYfH=x_^MVOcQsSj{+z~+aoA_&*;WxJyF7!@Y8F6I2 zlD%S|Pa~a%{FTMdv1d83GcTKlqFVR@TTEAc(_2hR0?Ni}BH>V&2)_rOg*H3bC`BmS z^bu5v=SW-Ae1$NId|qHM6o@(DC^pa5fjXd7j%6;tItER7$tyth*oW1dV=U~~+h3_;2C6^&$Dn)={uq0lcO z8D%|irPQS`&Su!H)=en8)7fFky|o;j(zH#~@>HxZv2c!;L!7R0uE_amHs-bJea}Bu zoDz^_QSnMkP;E61k$_?@r$vRF6auS{I5v5GsA-Tsjq2wc`YEu}%+l5M<>xg8nd2Es zSB9T?*~!vy8z9;@%gtKYl9l`Uov`da8j4WYZDcrH4hweHx;d3g@je5>-AfccW%)(( z&yFgoj%RfX)MOA&c7zu;rUYgd#cdLsMAY0dwKw;^R7R5->^1szK`IJWiQ=MmsvT?F z4;D<+c>~T5=`D*V4`1EczRm22;?GcI=~gQnK-Owc8t5&4KmM+p?X73)4g4)rDy!FK zVN^1pF9FdKcl5r)t><;n^KWDgEt*RDmi@Nlw-0acDxCqEUiOImxN4lmE$u|4ValLc z;gk}DBJs7#>?0SFDMNp8G7_67%DUh zzIz2|jOSqx;2*@v{2w5$?}r}W*9$u@KO?=D%Lg}OLHiPx`mb<|zN#_}li3}X4YrOv9XNh$z*~e3s4|)P@t1une>CDNF9u0>6MC5v1N#@R zp9G(ch7=fSrjaZGp;l@~;gNDpdjsL&5Dby9-g2FyIQnuU?|e8wj%c{bh~{m2e*aX@ zTXed$v2}B2R`{tV-uIT%Vz(9y6v^xHsQ5$oqo*a1YByOu_tpjc$fn|tRvLj}5DZL(MHaD=&aioXUN{9&dye%)iNik&I`S3r zSTRjn!mi+?NHqLH3=2L-h{;UF-85fq2xgOsIK`uIPLhL*Y{K3po!sjm?Kfy=F2s84 z!3XHuMpo6G9n&;?cydMN590%f82dAtx>6d$8e9-*ab9I%s?(F^F{gDBjNBwqX+RwG z63ZYKPy&`80r*<+8ELZ!y-7QKl7d1VOF{=wi=hHU-<8uNUj1sdoS(IgLS}-itok%e ztUz7f`OnAv3t1h?>r675&1W24e_=rK*O1B5Kom>BmEunPCJ)5;IRhEzK>^9v$%=fx z#X6P<2R!k`iMX`dRRJ*-k)kX{Sh=<`IZ6+n?2jAIM%u%kYq`njoyPP-iIpfh$?y*2 zy-IngW4pTsW3Q>bG**y73?WST0HGbLWg_h)NTg)x3K!@WoNL8tNe25S!sGq~<m2IWlrH1Z|H^h1h6K`t~ zRz*5;14^f$+G6k&FgTA-O50!b4rOTCP90eDbW*~oAckqNUvtNQ(FW79CNYq+qHO`M zXDHz+bM-=%CNXQWxj*KD;AOMUm*vP-l`F;;%79+dc49!6>#B9tnfl(B16`}wBEqC) zem7A8Vyox*6?dacaakkg@%D(vPppdfk1y@t8D{_fYybD%eM(&>b`$^aQ&T&H4-SO< zBff-9*_7m|WnrrV&xN<41po0v*8~VIE*PJd6<4m4XdJk==Ieo;{vyhP^rL(L@MGfi z9Vy3G`-M?+Gqqy$@YZ1g#-Lt1byrm<$-co>1=^W@?Edy7B575IqX`U_)83FMx=+`Y zs3`$y=6m4hF#z@nZGH*AO6z{Jqfa+xhZ3*o<&;Zbg!7~bXeylu&FA||MU@7-~Z3=^1(yC-kn@5|?QbAl2 zqwF}3L}0@0G{wc!W2BoBkmydYK*r_!Z&3BG$fZ;j>>2$K-wvR zszcGIF8@5LR#O8)=Mwa}QI_U1nRe+ogy%}90832`{|DAZZ_ z8T?-X_k*WG1t+BnT;apCNXbL5)RV_qkum9p4!3<}bF4RJYV~up5f7qsP3$U1kx^1S zzqFLqO!K#$BmxW8Drs@DOArf%u+_WYg9kYY@)~@;i)lwpdYaPpX*WN zzjpOo=zy$@?g;61w?=Sw2xePgS{1NOG6JJoj(`x{th0xFx^|S0+>4@s_8S2+IVCS_%&hZPNJkV#u1=fK=>7I>3WF1E=<$J?jrI0qR zegr3r_kada#I>8o)8ptByFFH}Wj+w%p9o5*(oe|j#1337v;z+&TkZ@8ic~Sot{sH7 z&ow>h5mAgemEu3R!dbU~5~a3d9tkn?8ol0=bKyRCtEw(868LSXv0H8wSANZKBAln# z?P;iAkx=0sqzw!9hsl;st6Z$ZN9k70x+*L)Ss`wU^}hn-Pfb&plA+M3uNG0P=r=>Y zVKxza+wH_mLE{|>A`1e)X;k;k`^gKzq;TRiMv3KivSi_Y1zUd4TAqlAmMqy%+L$I~ z2^^{48<~K&1|J*)52=_p(K%5wVJ$d5D?`9EeWK4pJ9WMUu=El5Ir>C{r`PNWcX+{0 z?c{U`b)hxqEaP%2yu2rBn79Zgqre6GN;%|UUtCastMfsIRGK@0Q&!@R6mgy;t$Qb? z$o&As{bBC?#~StT?3)a1|Hr=B7PHBYF!hD{9*{h?PXZJP39|}qZJNt8&{w+DH3#7iZ&92`y)}!BY_;4h7+EUpd*9V#@l5h&z3+q!~}k>L~H9Ej2k%r88*s&ikz z7s6RsKo%|YY6_xy_W6n3TW$|N^fxg1w??>uouDoPk@(E2KTl+5M5+RlT{HP~&2dVQ zW2i@A4FNaAG8n7lMeT(?$SpZq@!YtuM6P}VVqvkx_GM;4p?Rj@adP#?2CAx4J<%3L zz@nldX0)2Q{N&1_8NsC{DtDh4k?ez3gIMFvUlGx+tGXodA;u071-?M_%Cyf{NYAyT?YdMNr=>hR|k?I0z`?#iG zS;VPDTE3T;$SKAGWfQXO>%rN(VK8Cdbm6qVolp`6mqNa8$>tfauo||W#f-~*I%)d! zn^JsEp27r7F8Nn6f@g^c5umG>D+3@L+o9U)J+YOfKz^lM7G7IfnX9b{T^0e4Lu)oM zVQnZ|i*Vgh&YVjinK9>PN(S}Qqm)3z32o4OpLt5@5U zvR5Aox@R*N^5rbkn+DY36~n6UP2)>U@=mmw%_gZwhq6bWDwj8?j`uWahYxHjDjQ*m z#qjgdx@F$q9)M#0@~MiwfI@c?n6zgSdZ=6`++~H?T~a{m^APfJ{86r(L0ou+ND2y; z5VTY1uuoc&^a_IKuq@%5dMq0*!;0XEo~9ftAXFi?*U;`$d)O3mA7YMK{ zwa119d9lj{besqil)C3C5!QmK(5yMfC?8YctrTFtlDiTo5-#l*zLUiwUd>N04)9H2 zSi6ryX+m<>AFD@p<6Wvp^rqHT?p~6fs5uHQR$lbb$(dxAd5?yB$5(TPXRiQ7Tlo%# z`MIgF{XysBMjdddq0x0Jc<1F^&e)GVxOB~KnGcyl5m}~Dux~mU^}VE3MXKO=%l#UHReWD(Z%hiib+|+ zfQ%q<&^REc(ycI8Xx(!L0IVutqQj|%&y{P7&z76BmN$&Q$o&A5;QtE#r_#pyuS}(X zo$3FjCzw*7`g>J?>Av}!Ugb(6nQxpsYS7E6-vZPI%f;-_xd7+$Ga;; zOL?(akn%z#>ZF9Q;>AOc>x<*ZtX~Vf;w6+y+zM0_mx4fY8swgFs72ASUC9KCGh+%x zB$dnFsEA%Sn&qAz0GS4jxa(WHF{7b2e5)8cp>(OW<9U5iNOa26=zrPx@f;zC(e9aJ z*(UQ5xT@ha#0ni5ZmI#n|2$xgm5 zlwU$1dZGQm%vWz%)v-+mMb$09z$rlh-thN=|K4{tT%)WTs;URnh>|7hafE?21`WTup_^vBkI9Sd4pR+D@Nl`i1;*s&4nxlk!AaDEO-vTHr7w6&#r z&sbJXx1(%W{RP5o+u0`-!c0z)med#{INoyEA|Ra_4XBS+Uj|oI1Oe|%@zSxD--9j6 zx^3S(!}vOniyRl1(OS1qMo~VS=te((iSV$)k5od3yoi;F<5DW@b_jhKaUUjVcqA%X zQ>m(A51xz#V=iUHVPg{%2KWf-rmYh6T--wR|8~Qxqm;Rdkyc9`o|jbuPkQ_tp5#7n9`hx zIU+^a`j2#aWnjRcM(2r8kyO!@=!tebe`|V*GV<+5hCH_vC}`t43}s4vD+PL}Oi9ij zo)4S@;ztfn_U*^e{cFYVeT(nsFo!QpFDJ}yXR0h9 zmvZtR(WwnAWK@S@&ni`K*2?MUj;e=Gj+j77mR9=aM!4oPh_G9qMJpn?gu*O;oFhImK8x^Kx>TC^R&h=yrSd9(x}i05dwO(EP!C=G zUR=%h2+>}VDh(!Ve>1ufX>(3#*YA@|e@#VVOhT1}kN7kqjI3#VQ_p}ta!dEn#%*x8Lx?B05Ws~z& zHo4Rqt=^4eZ@or^Oo25yNsguSt6FW{U)$4*c=+?3IHx(MaIiwy$W29oU?4^DsO5d1 z63V_G)oXhPte6a5j$5tfNuw_J7OF3!h0ByK;ecOYMDMbo3OuD%5f3h-wsPZJ6Vzzu zH^Quv@hkzVNkFUBqQ$i>roB~=9am#xO_Jh%K>4(dA$3u_E0BaBml9WIO z(8j_FC_1<;;=x8X4)a?sgiEPLu%RDFCA@^BMk6d`#Y1>9k^@qJ9|-?4HJAZ`fGDNmp3#QSWILb40QhkZ`JxjQvz2##Vl@3nwm6J6+oGh3^=C^+(ws-FDw z@aT{-43kmstpHfOjXI&+LUN^v!dX^jeP+WcOD^&hEW1=^d3P_T6+_g}oDQ?v}pu`&ikkq-h#DF~PbH&qSmgF0RTKbv2Bx!piD7 zTl6|?zN5y5VfO?2qC7CAMp!X6z!tyA9V zR#=_Cb!o-bJo~YX^X^)%uoU<`AN9&8R7UQ_+r%l8Jxf+@N-B!8I7Z8ad({5SEI&aU z*1UR?-#d#DL?_MjN=1YY7h*#pMP!|bWX&bv^2iXr%qeus%*Ey<{^fk3l8CFtp)mUg z_)RtEbo%X%pd=K$;$$CEX^|I)orUwH^GVUKg9U%8Ak8$rU(u!!R5bJ#wl zWnD=UYW?bG+pSgyM#q&`+W?FI8<}owA&y)@b(|JncvYMAqNLPolqm&iA>P*2DdJD` zrzQ!t+NN(2IB{PxIgJe$jkC?=JPtU`hFz1~XCscS!Z@^Y<4p@~7bQW>mb{d6(?o-D`j(gweL?3$gY|D zJ?V+lq20_t?7N+;yMo$y%>3)TO%r;RXeQ=ra6{Fa)Z5*JUs{m+;6HYwe`VzPo2K$# z6YbGoBhLmqLf4GiDfnMgoD2}A55ylB`W65mtjRo^A&x16A3qE<4Q-LJZ)-sjGfs^0-*FjA3%dB zyxqeNT_)CbcA685BkkT(u0V$>OWR0Syp#1@x)Zx2t!y40?<-bJT^L7)Udb(n=MbA> z5>uMfC)#jWTas5}A6Yl*iDTk?k@Ya~+qcKZ1cf(3pp0jY;@|BTl~SZhx1OS77-mlQ zc)vDy-x_&VSFlM!VqrRacmFHWVuP&&s4+Z5VE*}X839SIyckGtlkDEz4kC6gsFbhr zg+MTpJull2wrMX*rKDsgM0Tqz5LVxS*m1YhMv6LUVTc#}$tRA=5>w)4nnJ97s6xz9^1k&dS4!4 zcCfh^N8wB7V9;`UsNkWB}{MRZ!;iW zSXpvzA)!~<*AVh0$tlkfqdxCRl(BiHE)`b(FoU|ZX!~cx#y{5)@UjaOPI~R8Bo0zd zO|0jKzYxyhs-iqvuXjAufy#RQ;-MR<=kf(UFaR9@Wr!Qas7NyoxD^_%KzFY{=#hI+ zB|EPgN!c$#TLvXf;8V05QxTPqsBD5aWaCTLvO>u(OhGJ-^^|AaO=X=H;CugRZ#==t ze@7eDjQe9zvjz!>3B}B_{DKb#Ex9@QcjySmviIUoAE-!%upyy^6Rxt>z{Pl|I%DIZ zI%#Pa=uj2tHO&T+IfRWAaN7@YipCo+`&7TDG=+OEPMJ*x>Jr;{=0kCn_`+{BoOi!JbVWq#I=+n_!?*1IZ(%}BMXOhNCa{M;6w1F= z4|FCp!2~bGcYfVkRMQwVPO6(<(*V}PI^eRO@KY6e=K*-Z{RvG5Impa=GK#Ge%N)|% zkHGIzrG45*EkpBYd-rCb(a@+z0h=KkFc7g8Fci@r*G7opGOW4pCuvmwE?-cA3HTKN zz{zB+*kaa>*3VDqxr?Y(E*tagEewon)PRx z1Hol8X$UKL6dG!n1rNroV0y@Kss>-kD_X#91sZwK>)N?p_?mzCa$oV_goID2d@*_K zSvFTlFk{Bia@SK3cnL{ikbivQf20J5E?@Vo-c~&d@pWv;`ex(0YW!e7Kfs~Q)|0LRJw*9qB{?AGj&|z$Ut(QLlaKpa=l#~fu+O7th zKcygo*)CT968CxKJqvqTp6wujs218e6iw5Df#$4{28C+Dw` zP%dK?yLI6MRSnAj%Gnjav!UeWAeN0HYjB022vX6qHIqiYv%<|YEXVqFEG+R{s~xP} zZ^-L4jbonE>WT2=zK$bxw~n&A5Wm?z+pWTI%iiCAy-I7~wBx^EKvz%v*Lege|%F?^BU1McCk3}IxqJz>Z z?gd8C8la$80|eh;bd^$vjkbX9=ic{yoHi_hQ4kCK(5Ym0C4hA+c!BoDlKVP1W~H>T z4<|aybq?0v9yz*IK{QXoXItp%7lfSz5+f!?R3Q<6U(3WA`d6}SE|;-n*9s~KOO-{4 z%noqVobJ)JPk16zzYYDkFxl+&9g28;z<3PITM~`sgO8?}P`z{gwEwQQ>m=&U|Dc9xCxcJ9BMw3GI^DKl5F&hgYw@ast>j4Y4xyyBg+lqYs7)w@BvNtstYDgIHt) z>H=5soS$2Ts%W^%rJ{tOg73_j@N!_c&Nb*4yo>w+wej5N3^0=V@sADOkdlX~&)(lr zO~o%D6X=6$ZH=`3E;C-j=sQU;L%(>z1jsb@kUOdRK5KFzuoJz$eM1%UgRvVoBIXGx zTob|E;S*^`$6157*^Fm~Vt~68_>F8)WNj~Z<|{csu3*YK#}iCE(cL&Er%VBOoDFZU7=9< zI8Q`9a~v%N@iAFb=>ZVx9S1S*QVU=W*7Xgxy-WB((kENp)(Vx}wgV)H?v)uVK8wrR zf*v54GS}4Z8E#NZb+F)~3?}o8I8$nsF{F(tISRiDRH#XyHRh~`y3Vh%4es?L=3M{|;~207I8ewdiV#k- z*w_YdMC7#&v3&d89LkVqfX>#j-b#2XeIx+=OM5M+s#*m>@=Y7eq2AHbo)|oqPjfeg zJ$gxA#Odfvgy07ux=YOKBKguINInB5j$+lcy;W+&$rVJ%we0$J+duUY#xv@!psYfF z&);dgKJ2x?dsb`)h~3dXYpEzD^2q+|srI>c*2Pab`f@8vUhj)@p;F_N6{=5>Nmx=} z5OxytPp+A$ZtI`~wVx%!JZEy{!ImI>bW>`T?dQxguidJS29q;vbIaq1@mVYx%~#y5 z-^jdlLRAybB6X64g8;n%2;>ryXI&er{1xA~sLTww){{Q@e% z6V%h;Au|K8yo14EycWocXVo3mN0*3grRVaP@{EoO(W5w{1Sjrs=4J-KoHb`Aj9lBb z0;QfVU#M!xWw;ZKdDW!9mU)Y$I~^1_oi)q4Xzo^$DVYa#$STXmxkXflBX^fpbx-c} zvB5;+C0D|;Mahe1q;Y_riv?%UFG5!rXBd$J^3w?08!~U`CXJNqfqe0jHkB-m6mh&b1mP~z0mqO@-f^A;xihsv=z_V zqI9LnOtr-9%E7{LY*(&4st1W?*8z_p#2d}n0$5hWfy8hMnw?%PpOMT~Lbg>QD}2xB2?oQ&6fBC@!I1SihCBNx&^%&Pue+F`XP~y3=$o4$pm>d#pHG@Sm!7`>h1=UE8 zNE9t^U!doV6ymcPkfyGjdtbMm>bh&mcpraXFnuh2Fy(wI7hIIRwZX{zdY9$O%M%rX zJ>gBa(cnos?Il!F(ZkZ1TdNq##6B~tnLUa-W>P(YBhzw699)Mc$sp!% zZW_`VAyGl!h$e4V%nhYFZlx#;bA4W%rdq~M!*NpXEZ-IO7lECF8`8>1+Vy8R)Q1bF zwYE*H#&Y$^tJ_u*5wzMY)4s^~rUmB$l#zgb+q3T)tOj_W=qxopHxeDg%tq1n=MP$(x_S7*`TFUT|?h^kiF}0Pf?m z3k^@2bUUB=6f&1<%Q!@@Z&>#{l)#@#mdJhZyoF%i>!F2pJLg259BQ077?pm*s^rcekY;l5r}20 zFgi6N&Q$N+i#hB%>z)NPe!jsMOwLD$?rXe4Vs8K2k@_ricw91N$3bCo_Qv$Fb7Cdu z8?>PwaVn3WekdK);=N#kv zh|eeLM{o*-7c}eK+Ze{+V_WSU7ePVlmV0eFz=kONm?3BppJRYX8 z>K4C@7y>s8OEvi2mX*AG+}LDV47I)PZrV;0+g4xib-*2@JGc&-uy85B`-I$T2C=IL zzTn<@VUt+6d>nkW)IL%HKfFh}F$EYeAx=dnd(1WZy<(48xl3m+#Miic$;@~H1N0oA zrQ=d>&;Z4|#VN;0YT|3SV%1QAml&eh;^T>yKk0f2X>j_M8<9m0UPZ7kYlhegR$yXIbVJ%YA{s zjxgw8iHfWvHrHO!)JLug0*8+xSclNUh(n*_dXffQ!LODgkr_xYb{9$3>DZ8eiUU>` z>r^98VyI|sc}7~YBE!fXt7C+_MWc^|tP(F^^$ETKPrUxp%=kUGCc85-f^S69u4Uud zz9tN)?vr)zEDHeFz2x9k^afK9-gq&v#;Os7DNZyY{y9TWp}<2zsI!;7P4}C$=^g2v zgqEPED<5#FFaTZdqsz-%?SZ?*9L}1mu^bvAZ`h!~+RX!+x!|fOE$o97U_21^ZYiWH zj&E!mX7wz|T_p0tUA_e{y-8DU9&zhIvf6^>yf!*|UI@3`;>k@XE+#;b%*6z=VSf76 znfPVO+3bPw-XgjQLoKLj!0@KYPo;G&v8N?TT9g?Byk_~~ZXpMMLYhK{Sjt;cM2ADPPZ=Sh|Yqt9F`ky zJYk>#qwmK4X=WMObsOS(p$+|RP6zc)#dGSaPV=sUKJX_?03x=ur=PoL<`iu|Ly=Pa z>-6UaJZ%B8DBg6=P?=mvqrTy_+p4 z55pR+pY1UEy|iH@y7t@Ob>KYP3Gz zjBiKKpmuRp%RCwsuWyN6lu&ku{KwCDal$>6X~oT$_2uB8xk^BKH)Tsj7j7O$c-A;#Z*D=cmQ_SjrJfZA>oce_NwrX-XDP-SV1_8M%<;)ZBww zrtC$Wv(`>132NTLsxBWs9;<#NZ59gWnRhLTOho3J#VY|Tw{J8kcf8-gG}I&hYojLX z|B4X$Oe5(^A3YywKSlb$+8 ziEnFbEp%sGxqz7QmHc%;ZK!uYCAhA9>4Xw^v$-OMWz+8ZnM7yXotGz!VdwFPqI@RH zH)DJh5M#x3|6ABsfGuuys(3qmi*AFLZl6CRP3~q22+mYlR_2lR>HxRO-se9~r6mf& z3Nh3ngc_>zpkQ932Vwe(!;`d6a+u103?CQ4V?cxIIYU|bZ z(hkT8WpV^nR3;n&U*)+-ZQ!<{8-63qpjf=hPAvppg6!K+Qlt9YUBt_HoJR!_WJ;Wa z8^~^uL5lKwJ+SbIQAvR|e}(HoqZ9``7TI-zv{)z@q`<+$N4ZhxuGn6>ASAJ&Muey| z88HU9eCXvx0dFB2JC@FsbS|hKv#iDInpYQLNnv!NT~5DECF5t7=Yro6N@7_`8GnD! z6F&x8PDn;z`TD?%gNy*;=!Znhp49^Q##61(yTlZv_aosENr(Y^=xbo>Z;{ZkRMQOlhp?A!3yF zsxLFx>f(M3TmoCc(h_Y((t5~xl6coYyU_Q;Rmm<}SP#U*#88IPHxPqA+TpO&2)JJ5 zo8nzN2$gIu*#~|ZInnlwPjS4aCKh+|!mTO>^BNhoaJH#`(1+7>pu<|Wtxi9c3&e~1 zZ9>MB+iT=IDc965c5=&IvRsD!sGRjAGLqjLA=K4H8<)bIe8iH6jOZ$Oa#J4axsZAd ztf4ad+IeKLd~MIYO16gskAF&9PR#vJo{Y1XHlEGuC5!{VZje8!gCKW4C%Nj#KaY6D+YM{``YG4w07|0V@|G zAkKJ1|E-tTU)@joSAz8Na#LlRt@0s|M%o#hXrpc}t;iRi65jjXxA{zmWX)^uInX-4 z_y7h!)OaqjtnB9ythw6gI-zJtPAr0W3Ay=uqQOc;^G01HZI{i9;#R_;QmnD056F)acUbuv>0ntWH}h>6vj-Keh2bi=SgE-BB)FQLIXn1Hh$Qdq9; zt9?QoD54i3_#%JZtNiQDtv7p_Ht~{;_aT%dJ)(b3=H0Yz6^aQ2(yo#AS9m3TqkV`N z0d?2bz)6B<@eln*5wmHCOP;B*oI~Z(L!tZ&-;YEX;?&PBRFqYz0#0 zABF}dkFU*5oZV|_ooIz-a+U%Y`KrklB2tRz7*}x}Yh7g|#1|YtxTmaiE@?}7epl!W zrUZnzB-56$Pcnll39jT3fnWkHA8d+zd{R4_|9-E_~J3J>Ct>{E1p|3o+ z3rCk6qaLb6X-(-x)fkV>5%^&h3N$K!8Vfm@g5KWqtQN%Ud|hu82u>EV0h<6*6AlKi z5Xr<^8v%HU9FMaRAZ^q0oM71=jK?sQ+jGT;IfkIt(Yk$<=e(1m5VSi<6SR|T2-!8M zV(YqkW26Y}XqDwDn;1yqwPigt6^vmY-Au5^vfqZbWXIIK_9L>CHhy*c1}`seWQ#kM zu@T|f{j%PdgU`+=gz1dk(%9&v3|fctAbMcuW#mw2I9nt_G;qZ<`t7=3I>q^0wPC+FzApV5+0}h46TLe4AGX7 zb*%^ilK;yzpdzycjU1E3Ul_a0l7k!gsg##>yX`OXgq$0#)nZ?_!r7UjV*0f<7)ttF z{g-69d5U7&&_y~t+AOJFD)E&L^Yu$53v27()}mIsyw^(Z-0{4*3D%ci;cT}Qr_+Kx zgP^amR?2!P#9a$#Ubmzf7@vz}o-AYs+{_b~sdkQy%u1g0d+Gv`x#+BrL77uVD!)l) zhT@HuHTBR@u7e)Btv$gM(ZDs*Hgvcj6(+aW?9_G+Y_as)G`&}W90b0UuD$QGhFY8F~su$ zR3RQ`d$zhB@FbDmFk2H$_qXuShk|rnPE3D9o%w{yJWrj2y_2lpN0v;L1l7t4lQqWMWrqH)CtCbcPy)L){cE)(FJ zP*NkIgdq59pylJP;dc^PxO}|Q+g=Zg|1`P}xTvwB7`^nNH$a}cHwOyD6AZZsG8BP9 zXqanmiXj8>hqKcUye)bvI;3Av@l2Td#L#LBl2JT1pyd;nK5v zC+%76@s7*>20F_YkJL5=_bodXH49ITF~%+)Iur-`-$At*Sr^A5UJY7RLI;#e7a03~ z5;KWZDx<_<@I}r|j|q@YrPT+X2sBWb+@!vkZfjB%uMgBXh-Lf5(l6( zvJStfFp6B_L+WpuYpmCD&?6*Md%I2pkA22(XUdTYH$?~;5tb!TtweeU7d7^n@ennD zrzH#ZYDAtcSUC3wwp&>Oar}4>MnfT`Rv97~Z18V)zef_liiC-65;Kvk_@T6BbpiQ^ zOf4Ce6&F155pRi=h!%kT%a+z{gBTj@oxB(Y|y{2?zU+_6QgUf$+i#hY``y_Ud(C6c(LD- zuX9f|#oHo|k?Eiixgv4cd1m?rcohuRpMG?y8h3?uR?SWWamIa+3t zz3GMXOmQ&vqhu{2sc%9IfXVUgrcLczLtF1R`y1#KtVz;^f>hkZUm1jT@#cum6Aus- zA|wmd3;cAIi!c|MQAQ#yRZHn3L~`Waa;b7t)5F(L3$x2Q8zy=FWR-=}x(q#eOcX*r`H&NSw+fa?wmvDEwPoJ$S}uUK%$UPhzAk z_6!!iZpKd?RM97~wrd$dH`Gisyma7TvjTljC+ZN~PCdy@f|@`Bp>V!=YHyM{o@VP! zO8~oXht_g5Yo_@;J$r2QWPDm%Ll6OL=Y{h@i)`BNLJJ-w+X6f2)z|E$xVi&AF18D*O3Egh3p6AuHnR9b_EMcas z2D&wQdl?4bN6t*ErE;)+nnH3)-Q^$3+23=3vW;gdLGTi8!dL2!i%~olyed*m&-3d1 z=J)yUY5!|TL~yWc3k zfOgYXNQO*&P{&XNbhuod8jayd*dF$$NZcHA-V|KS_I|oEPX$wMC9*R|qk9^{<6e<- zbPX@eDF*7&aMxyjO;7M}e+w6aJu9f#0>7E-FkxugUBL`IZY3lc7rz;|$P=Nm_|^eC zg50w3>*SS17XZJ%OysCYVY7%a(C`z-d}*I;JV!zX9$2mvrNy}l790R@{;(h+JWb2o zdu9tQx&wNaV?N-HwdfiG`&5!9@|f-~J&*KG$vm&L%)YDZTopR`j8={bfnu0X{>(`? zyk9^R+4ouh_0|8sLq^$H|3k1HQtznVWP!hWKzRoo+rP!9*8Q!?gpHl1Un z`sslPIgAwyFKk?4`J=H)Ni7UJlj&w3aua}N{2>DkwfggL`?|9IWmaQz_waH1v2nYX zfMdNd<%_u(Ii24!bMbWd` za|Lc>bGeJ&{d#g9(X+V|^TBK5qXsB~U!2k14elwG5JpY)SW7s_Ny-Gr3n)z#^%F?f zruN01@H#*`7K<^&MNW8m!mw2c9nnti((|g%+b2zo|grDBS9VzN*3MoaBvE{ z6D#8}bYn-eF6JICbBJi7Igl_l1FL~m@|p2S{T)R~AVd)7g+p+>9p7vp*bBcdr) z>$VEso^@D6_;V*BCQP#?hJH`d7rlx*)c9wj;p&Kafw2V*#y_<|~B(Ncd zw7wYKJ(sz zMe{PmDvHumxjmiUwX?&Pb5-G=msv(`QdJ)M?;-$VA9=GtrwQN{#W#Dsx8^$ppqhWzeroa!BjP!wN^tqOJqdKIR|$j(tYe zs7Z?06wGb6-EKH!RNQ1e;VEO;+%(nqi2>gt)Didyg<(O?P!B@1f~*Z7OhOGx|NEfR z{|zITIpNxA55I4`nL8v6{x8!??`G#2FFDHp?B4>%Im*j zV7~fw5Q{G1l(rs^eSxaiQ7FkA;k)Z7Oxfl7$|uKp`rG|6w|ItTqEIzSYVN8)c@e6d zt`sR>cXtW$`W;uun!?t^d;zB|Bbg%{3*vh4l?zMCVLxt<}|16XV zX2S=DYDtou@g9?nPP=*S+eKhr3DGvd-F* zFITiL>Bx~~*sjTCW1qpGGadXQJTO( zyt(oP=p5iuv1}$0BFb;n#Y%Go8^^Oc8FdH_EOqT_lb>kU%2+mBBaFE8rm*%e=#!$u>}i;0#-u`u zYmdC#*R{V5e07poQKXc9%cZ^T;xquh@&lvs>`5~;0$fTJy&EZ;G3eY}-CUmM@6fjx zg>`6(TYDqs1HQB-9z%tzwVwa6|I1r8nt@ViK3MG~_Z~~eKK4%w4Ax_^ z&;Do0lowAle0Rk*akBFb#7Ak2{9ixJ|0{ZyfsXk;pPOZ=lx#kBOG!^}Q!h-F-I|rWocx*`lY-!H+@3r;iEuq0FU||< zL#z}$DE&b)E&XKpim7=@-qqQ5jj#n(lQvEMr0XXo(u<@NHTgJhv|WALc2k`K-bgPI z1zlr1SNG2=AGmv5s9B=nYi#UWg*hr!<8GPYy!@~YhH91dcT{>XNZMzlTynU3Cm!FC z1_hecnaxuT9G}mj>c3CkRT_S=BRx5{mNP#xHdBgKn67XVmbN%3>;D!ebvFrV)n1$? zBSddHO1RK(Fr=(qP&N*?TrdQL!5FU)Hp?feyqKx$alyczaR~sT;I6qB=3FH!E4}f$ zt7yd>CB0XR&zy)(p6_fwp7)-I*s9%wFUXU2VNV^*6{IVq|W z#$C2+K0BO3@F)B({-Qz&45bl$y0?;Z0bhEhZkv#Aj)$+-HHXspJwoESW}^3efYhW3 zxDxux`gdMA!=i}$L1N|kM~#(7)R!Mg(?b*!F}Vxr?AIAMS(Kz==R9@tmY*=!Y(1#H zlCTaZ6b$A&$Z2<;9;&cb(Me@?nbN!uwF^MXY%BF|J+c~Mvm3~mMDfGXfA z0D7&I@^W%hjxu6$dee?V_=%#oV;+NuS6Ze-^^L^H1H=Z!Jk0n*pA2IFdCawbgSpHr z$D+-aBZJ<=S4K>F51F4Q!q4D&w*pT&;RR;Re#tlPvlY(*5NH|9#olYGX<%|@m?aY> zk$WWW?`Cn(=&!n}!ip9tGF%;p=%ltqg*trZJN<4F0TD{>zMTb3Sbdb- zQ%_MW<&Trz=$c&Kv32ka1LhnS_(N@Hr#{0Sh{UbJ`b;gC#YTa>W7bi$L3wyHbC=>a z(YvW{!SgVvR54=3Jd`i~xOcA?5E-#re!zu?jFLt(`c{{)tEYZ7$NVfwTcrejY2C@w zxvZ@0@oEEl1j{hFOl|seEZXz|fN=x`Xt&^2*Y#gMg>4UDcCZ0#zA2tI@EImM{k7~E zX8?Q5VO0{FOB|%hq>1cp;HtCWbzsX1DtNjLmvMcXDsGTjQZ`TT^9UZlwn1BpFGeZX z$p$6k-o_0!Ss9Il>A=Jlx4wzRb!h*c>kkQ9ldnievZorK}lYVXSsun;7 z93HeP#giROGdLEC6cCXCS;Ou13fN{#C`PY-09%X(R-m6x zbFgJ7(>3>Vl-@#9&^MwWHUo>WdP_V5QulaF%&;Y$(8Pg@>&EWAYa;p4wBqd;i3(=> z9k33>)f>}pAbMKZ&Ti}7`0TI=;Hz-Y`|t3hy&HBlgu+17-6P=uhw8NlyTK?t)aH;_ zDR@HYL-Gc$*bYZtanVWq$n8xC&=I_5Xjf@Ihehr!LVXBs{U8=uUcRcHb77RtBI?22 z9`Nb3^z>>@0W;c9)eZq!OC+>Pl~e@Ik3oW1ra<{GRP&vI#37V--j4fUrDfZxB)T}& zHuIq;-aFQ$6b;g<6hZSKbT{st&G0j1j<4q2y)T%iV^56Vt~mEZa`k$=&*d%xIZqvM zj=Z&VgE2_nglw4(FNHZk0OgfA_jB}@?;o5TfZ7MknR2NTwko7rUC&1qXX|xeTIyBl z+UG`K&F$;U6V-Ss6h6hz_I|J92Pn+vEABg zCtFl&Rme<^EquvR7I!CT0qHRg=-f;+q72LL%$rsHQtI>;2b>eDBf?=x*dtExVg4cfQC!*~mzaUZAIFkyF{^J1i`WbK(Ylfzi%pb?n2I?C zi(he~PD?$hcJQUgwfj*i7E=B{dHq%8JbL*}J`T4h;gH|b6K3=s>-h6?PWo97^wsxQ zDL(+Znq%t!?SF#(f5nN@voik2VSGqUGUk8RbJiZn_8>q?OC@pR? z_jA3UUuKFZJh75Z?Gia6tv9R+>?!W^_4eM1K0?~ZI4t)2>Hgd1{mJ9~bD?@CS!X9% zCg-ZYjG9k%+gg%tJnaaPZ)i8A__dQ^R|2m4#*s8pC8?q20ozs%vh&vqVX`ePel`X#uXY|9v`C-nv%77mwn!<3BvuuwV=}iabj6f>m<`dbT za#HC8e|?h1ddGUI%u9E%MQnZGtr!j#Gb;l-WOsB$_9Qhe#4psS;XalY%=!d{gBQGlqCyGg=hm2U|0)zsSdpQd)P%*t zLp5(W>}#KjvyB)6m1+!h^t*&2%7V{Jfsme+A!u8`0JA*G{ew)C&H4vDpL_kEH&HP^q+AlL2hHna%t#^s8V_$)@OSll`5&=v@|kpa3mqVN z_5pf!Qpn=CO@tEIJ^Ta8x_uu??HkA)iGDTNspoZ;pueCQ<^amWT@=Vcd44t0RKregm@O3QFn}x+0*wl_{F-7H%OU++wkifVLQk zyG*q64&}H;+<~Q!%~9!ihod4Trm)j(3)rYc8>WaW?3cW*)LU_%_}~NebT^J%=vpVt zH-nh4P#sxcDyppJwl!=GJ11J?IS4Fh>FmgUh8Bm%}h)+2a`mLRIoUSaWQjsR0>tjsP(vh(=@)-&& zjol51_Lhx4TSskdCjOqk59nvs)9_h+jKro64=M3qC}K|?)sEj@Hn)@afXwJvgOEGp-4oI+lfI8jQ4?|XyAkwuY(NgY_5vD>_W>g5|&HotG_xJ=sjFI-K zQopaz7yn3Mj2r78hyR-<9DrHhm}3#jM?*fET8x9U}`dm)7E$}pSE&fL?oT@;XH5nrDL9R{0Y=v=3loMG!W?M#jz7URzAoMA{Yzr9Z zn&HjS_*tY8LxFKB!R3Wdsxg*}d-b^;ISN^2Bf7%#?TGha?F8e$eh&Y41Tic7e~i~n zzvK1)7k2#l8+NR;35>=AJPJH&<=YLy-Z*lXX`lMjQ%Gh#B;34thDX>)9Wk_Dp;BT0 z?j}zv{!^9!^iC?X^OI-Ov+z{#`Q`ThboF>dnXO!>UR%=gF-Eah$xDrTTEpJ8_01&- z;X;m3=*UX$)Oy;Wb)ZwQ&)uqpDpXj4t=XG35N-=LZB|umayHLX9YC2N_>wtwF$YqX z0`keuV=Ueo^y#ok=hFZ`bb68fTKW$eH&JdUq5p-7uoA{4fFd<|{Km*_L&E3n;tEc{ zMoyx#7|$_E!$$J3wh3-SD9|5L@52__UEjSFk68Ema0spXo|)pW(hkvED{76}6oH(m z)P2p~1IbA`O(?_NxEb-_8wehWBL_rUBs_)jwy zn-4>|Y9si5C?SH5o0*a+f`2g0(BRN3|6c8R77rNZ?B9mqirx6tjw-2Aqje|4P9^iQ z{5j`cS{;}N20rRcoiLHRQ@04q+{r_5ZY^h~re@)}RzMenn0|MSLz6{0x4cBc-7HlE z#@lj6LuVY9gF#yF^E|zV_wJY@2bN}3tGOm}p2kZ-m9M}MzbI{TO+!xMb*BnK&GZdH zFwJuIZ(}0ZlgHJM*Q#sr^(au)_|fG3s&_(kjhi%hQRiYtS2gHBG(bS9v>x1r^)kJUjw1+)IkY7Vr5Xq0Z>QNr&2WedxoXR zAM`6DkZ^_ekxt=vFTVFLy!o5BAGp|Qy?C3OT;noiWKzIkDB3&%KcqbozM+&wj3QP1 zE(3vnaZ>+8q(&a z=xbMK8kf0f^_IB$t7*FM&l>1m1vA&WyBBQ|RY+nf6=A9|MYVa?96WyoBtvZ+5AtVO zOXP`bt_YR-XSwy@9%PH)f+(&6U4WDX=Bx-t>BWX-=((O0!+WfphN#-(jT-B+Z1(3u zg+T8r_w(EhElwbnjKqC0!SBLt#CA0S<#3Ef(74$m8C*-CG4X*8EB^wiLl6cfO#^1hNdc zv6k38_{lT4WlX0@ruj8V?bnkTlOv_S5)3|@8j|!)GyvUFfJzk7@v5?7R=s>xFjHTaZ z+>$WyD|d)Q%0Qqcqp?L%Lm+ZEZv>aLKuQvY^Zo52``Jhu$uJLY`!1!A)WI&~#W{QK z1!CZ$g?zT_r->{|?Z~%r?V|l#N{8ee^n)qzvRecr?TBlMt~hV_0za4Q>LiGMG9L~b zk-R^{TbFwYPnk3JK1;HU-4m_=v`Rs!y98r9*%LnpHB_l{`RR#j^LWEcmT4xdn#trU z8F%S@xf`B_s$;6fswFSqREfewE_)6UAf{Ovy_6^!h2BiW^Ak-id4TBRnE_FcT%{xt zT0G^dGDP6iVx-~c=dQW&X&)hGe4L_dw2SIk3DFbyt#IAOro<-Z+Xo&%(k$LxAYw6H zZyP~y>~E(o!O;fo&mX!oxBq%WX8&I?*Yxak|1nxlskd1Z{l5zG7tjE41S=jH-R>{x z4QLb$)G~Z9+V}0FubePcv6ezK5uv4L%tqAldhV{2dGg7Y0VCh$5_vf|TUqBF3w z^Y--d_%QK!RFTc~06O`2pBkyV+aRH|Hp)}A)W>2!Iml3 zd|lox^$f2MUGXMW4d)|eQE zozqfsWgWPLI|PA4MG&q6X`)6WO|{)ifL25Y36qS}<3`y?y(KeD@^tAtGvq1Mlo8;1 zTFMp3tob7B79==9Vh+Jze8+>cWYc*EJb)!$>O~D^ufKfL33e|!S~UL^fS4_vFdp42gFG)gWoYrk{9=Q*oF8X zK_*+{AF7o2`sG1|>t8K`H6eH2$34K=ZN@6gmE$yT85vzg@Dey;|H zZ__-~aG>g)#p9B~Q5Lqu+$*A|0Kf~=E+i#$FQ0FwiWR?-44H^kjI8y)Ff|_YhWtx$ z68cA+ya101M6tn6gsZ{dfB*vHY$zT-d5GfA@ea|wsUW)D^iWlWbYhqdAw#nM$%;)a z{o$rhE`Jsw!RqiPtrx#Od>}0OUiTS#S8e*4FJD5fhhjf05?QU93$Y&8U^~CWF+e1i zwY1YaC&%c$ViTq~twqpIenV--#PIwfYDP(NDvmINo5MI}2eC+-SYm$q6R85Us{Ncm zX>qADU&^M_u*)_q#gHJel5|28j#MB)K0I%WaGvv66a^0?CJO)H88tjx%*v3La@>A+ zE6cGLaX3>8G48Xbszv4FjwU0WKYOX4l-3qlMM?LiU2n;QtK?cOhjd$UmE1a>+T1(w z0N2!+R_|CcE#)%eXN+1w1hGZecT zN{TOR4LSP=dKK3Qt98t?+GK&t@#p zJPc^dF=Ml!n|GO!>(b}9yegE=m!C3Tz)MX>z4OS9M?nWmI0i7S*%x8hjG(6wa;!AU zPdCk~e|)A!BVs=yrHh3PBgF~EP4Y+7P}GYI?w9IUgx`7Kmk{|f19ddy{h3wjdh0z5 zKPFnzwl7ZfCbol9;}|x*^@fj=CPHk0w(h(bsEEn~AMubng~;OYdQ9wAut%bKdc)8Q9bdX**D4JWSHR zYDf2zj#!47#GcGwJ?H3 zv9nd^I6MzpEuMf+$X{eG9M1&$)Q0=-`Go6gk6uzT49+&>8_f( zs@C244$iyg%@pjaax!vy7`y%f73`RzQ`|UQmH4|Ywk4;{6@GmyNiC!9(S%ndvFNxibB(#iQ9C=lZ

      1AyfhWS#+!(wiBD~{~y;L|Y4}5jJcJ2Huk=^vH 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ⅅ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 z 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 literal 0 HcmV?d00001 diff --git a/faq/index.html b/faq/index.html new file mode 100644 index 00000000000..f3596205f24 --- /dev/null +++ b/faq/index.html @@ -0,0 +1,467 @@ + + + + + + + + + + + + + + +FAQ | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + +

      + + + +
      +
      +
      + + +
      + +
      +

      FAQ

      +

      General questions

      +

      What is K?

      +

      [13 Dec, 2013] K is a framework for defining programming languages. Once you define a language, K gives you a series of tools for that language, such as: a parser, an interpreter, a state-space explorer (like a model-checker for reachability), and even a deductive program verifier. We continuously work on making these tools better and on adding new tools.

      +

      What is a language definition?

      +

      [13 Dec, 2013] A language definition consists of two parts: syntax and semantics. The syntax is defined using a BNF-style, enriched with several features to ease the semantics. The semantics tells what each language construct is meant to do. This way, a language definition says both how the programs in your language should look like and also what they mean, or how they execute.

      +

      What is the difference between a definition and an implementation?

      +

      [13 Dec, 2013] No difference in K. We think of K definitions as formal, rigorous implementations of the language. In fact, many users of K have no background on programming language semantics, they think of K as a domain-specific language for implementing programming languages. The benefit of implementing your language in K is that you can make use of the tools that K offers, which is not possible when you implement your language in a conventional programming language.

      +

      Why K?

      +

      [13 Dec, 2013] There was and still is a considerable amount of effort spent by many scientists on developing parsing, model-checking, program verification and other formal program analysis techniques. Most of these techniques are language independent, yet a considerable amount of effort is then spent on developing language-specific tools based on these techniques. For example, developing a model-checker or a program verifier for Java, or C, or Python, is a serious endeavor, that only very few highly-skilled people can attempt. We believe that all these language-specific tools can be automatically derived from the K language definition, so that language designers spend the time only once to define their language and then get not only an implementation of their language, but also all the other tools, essentially for free.

      +

      What is the difference between K and ...

      +

      SDF

      +

      [13 Dec, 2013]sdf is a parser generator. Simply speaking, it takes as input a grammar written in the SDF format and a text, and creates the abstract-syntax tree of that text corresponding to the grammar specification. K currently uses SDF for its parsing needs, but we integrated it into a more complex environment suitable for semantic definitions. Using the same language specification, we generate multiple parsers for different purposes: parse programs, parse rewrite rules, etc. Another difference is that we changed a bit the syntax of the grammar specification. We adopted a BNF-style notation whereas SDF uses an algebraic specification, but we keept the same disambiguation system with priorities and associativity filters.

      +

      Maude

      +

      PLT Redex

      +

      [16 Dec, 2013]plt redex is a language definitional framework based on reduction semantics with evaluation contexts, a type of Structural Operational Semantics. A PLT definition consists of the syntax for the language (including the syntax of the execution configuration, if needed), followed by a syntax for evaluation contexts which allows identifying the next reducible expression (redex). The rules can specify the parts of the context (and abstract parts of it using variables), and can alter both the redex and the context. PLT Redex offers a suite of tools built on top of the Racket Scheme-based IDE to help visualize and explore executions. K borrows from PLT Redex the idea of evaluation contexts, and extends it further allowing more complex conditions be put on them. A distinctive difference between Redex and K is the fact that in K evaluation contexts are used only for the computational fragment of the executing configuration, the rules applying modulo the configuration abstraction. This, for example, allows K to more easily specify synchronous communication of agents or threads.

      +

      Spoofax

      +

      Rascal

      +

      OTT

      +

      ATL and Model-Driven Engineering

      +

      [14 Dec, 2013]atl (Atlas Transformation Language) falls in the Model-Driven Engineering (MDE) field and includes a model transformation language and toolkit. ATL is also based on rules, which provide a means to produce a target model Mb conforming to a meta-model MMb, from a source model Ma conforming to a meta-model MMa. It should not be difficult to define such model transformations using K, this way effectively using the target meta-model MMb to give semantics to the source meta-model MMa. Moreover, if MMa and MMb have K semantics themselves, then the K tool can be used for proving the conformance of the transformation. Note, however, that K does not currently supply any explicit support for meta-model technologies, such as EMF (Eclipse Modelling Framework), etc.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 00000000000..52544caceb9 --- /dev/null +++ b/index.html @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      K is a rewrite-based +executable semantic framework in which programming languages, type +systems and formal analysis tools can be defined using configurations +and rules. Configurations organize the state in units called cells, +which are labeled and can be nested. K rewrite rules make it explicit +which parts of the term are read-only, write-only, read-write, or +unused. This makes K suitable for defining truly concurrent languages +even in the presence of sharing. Computations are represented as +syntactic extensions of the original language abstract syntax, using a +nested list structure which sequentializes computational tasks, such +as program fragments. Computations are like any other terms in a +rewriting environment: they can be matched, moved from one place to +another, modified, or deleted. This makes K suitable for defining +control-intensive features such as abrupt termination, exceptions, or +call/cc.

      +

      K Tool Download

      +
        +
      • Install from the latest K GitHub Release.
      • +
      • Try our Editor Support page for links to K syntax highlighting definitions for various popular editors/IDEs. Please feel free to contribute.
      • +
      • Build or browse the code on GitHub, where you can also report bugs.
      • +
      +

      Learn K

      + +

      Support

      + +

      Resources

      + +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + diff --git a/install b/install new file mode 100644 index 00000000000..10cdb520878 --- /dev/null +++ b/install @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +{ # Prevent execution if this script was only partially downloaded + set -e + + GREEN='\033[0;32m' + RED='\033[0;31m' + NC='\033[0m' + + NIX_POST_INSTALL_MESSAGE="To ensure that the necessary environment variables are set, either log in again, or type + + . /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh + +in your shell." + + oops() { + >&2 echo -e "${RED}error:${NC} $1" + exit 1 + } + + [[ "$(id -u)" -eq 0 ]] && oops "Please run this script as a regular user" + + # Check if nix is already installed and is at least version 2.4 + if command -v nix > /dev/null; then + NIX_VERSION=$(nix --version | sed -ne 's/[^0-9]*\(\([0-9]\.\)\)/\1/p') + NIX_VERSION_MINOR=$(echo "$NIX_VERSION" | cut -d. -f2) + if [ "$NIX_VERSION_MINOR" -gt "3" ]; then + echo -e "Detected nix version $NIX_VERSION. Proceeding with K framework install." + else + oops "It appears that you have a version of nix on your system that's too old. The K framework installer requires nix >=2.4. Please update nix and try again." + fi + else + read -p "It appears that you don't have nix installed. Since the K framework needs nix for distribution, this script will attempt to install nix first. Would you like to proceed? [y/N]" -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]] + then + echo "Downloading nix and running the installer..." + curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --no-confirm + if [ -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' ]; then + . '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' + else + oops "Could not source nix." + fi + NIX_FRESH_INSTALL=true + else + oops "Cannot proceed with the installation without nix." + fi + fi + + PREV_KUP_INSTALL=$(nix profile list --experimental-features 'nix-command flakes' | awk '/packages\..*\.kup/ {print $1}') + if ! [[ -z "$PREV_KUP_INSTALL" ]]; then + echo "Removing previous K framework installer versions ..." + GC_DONT_GC=1 nix profile remove $PREV_KUP_INSTALL \ + --experimental-features 'nix-command flakes' + fi + + echo "Installing the K framework installer utility (kup) ..." + + GC_DONT_GC=1 nix profile install github:runtimeverification/kup#kup \ + --option extra-substituters 'https://k-framework.cachix.org' \ + --option extra-trusted-public-keys 'k-framework.cachix.org-1:jeyMXB2h28gpNRjuVkehg+zLj62ma1RnyyopA/20yFE=' \ + --experimental-features 'nix-command flakes' + + echo -e "${GREEN}All set!${NC}" + if [ -n "$NIX_FRESH_INSTALL" ]; then + echo -e "$NIX_POST_INSTALL_MESSAGE" + fi + +} diff --git a/k-distribution/INSTALL/index.html b/k-distribution/INSTALL/index.html new file mode 100644 index 00000000000..fce8c208591 --- /dev/null +++ b/k-distribution/INSTALL/index.html @@ -0,0 +1,638 @@ + + + + + + + + + + + + + + +Installing the K Framework | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Installing the K Framework

      +

      Fast Installation (preferred)

      +

      If you're on a system that supports Nix, +use this command to install via Nix:

      +
      shell
      bash <(curl https://kframework.org/install) +kup install k +
      +

      You can update K with:

      +
      shell
      kup update k +
      +

      And list available versions with:

      +
      shell
      kup list +
      +

      This will take care of all the dependencies and specific versions used by K. +Note that the first run will take longer to fetch all the libraries and compile +sources. (30m to 1h)

      +

      If you are on Apple Silicon, kup is currently the only way to install K +because of upstream issues in the general Haskell ecosystem.

      +

      Install through packages

      +

      We currently strive to provide packages for the following platforms:

      +
        +
      • Ubuntu Focal Fossa (20.04) and Jammy Jellyfish (22.04)
      • +
      • Debian Bookworm
      • +
      • Arch Linux
      • +
      • macOS Catalina (10.15), Big Sur (11) and Monterey (12) via Homebrew
      • +
      • Docker Images
      • +
      +

      Pre-installation Notes

      +
        +
      • +

        We do not currently support running K natively on Windows. To use K on +Windows 10, you are encouraged to install the +Windows Subsystem for Linux (version 2) +and follow the instructions for installing Ubuntu Focal.

        +

        If you have already installed WSL, before proceeding, you will need to +enter the WSL environment. You can do this by:

        +
          +
        1. opening up the command prompt (accessible by searching cmd or +command prompt from the start menu);
        2. +
        3. using the wsl.exe command to access the WSL environment.
        4. +
        +
      • +
      • +

        To use K in other non-linux environments (e.g. Windows 8 or earlier), +you will need to use a virtual machine (VM) software. We assume you have:

        +
          +
        1. Created a virtual machine
        2. +
        3. Installed a Linux distribution (e.g. Ubuntu Focal Fossa) on your +virtual machine
        4. +
        +

        Consult your virtual machine software if you need help with the above +steps. We recommend the free VirtualBox virtual machine software.

        +

        Before proceeding, follow the virtual machine softare UI to start your +Linux virtual machine and enter the command line environment.

        +
      • +
      • +

        WSL and virtual machine users should be aware that, if you use your web +browser to download the package, you will need to make it accessible to +the command line environment. For this reason, we recommend downloading the +package from the command line directly using a tool like wget. For +example, you could copy the package download URL and then type:

        +
        wget <package-download-url>
        +
        +

        where <package-download-url> is replaced by the URL you just copied.

        +
      • +
      • +

        K depends on version 4.8.15 of Z3, which may not be supplied by package +managers. If this is the case, it should be built and installed from source +following the +instructions in +the Z3 repository. Other versions (older and newer) are not supported by K, +and may lead to incorrect behaviour or performance issues.

        +
      • +
      +

      Downloading Packages

      +

      Download the appropriate package from the GitHub, via the +Releases page. +Releases are generated as often as possible from master build.

      +

      Installing Packages

      +

      For version X.Y.Z, distribution DISTRO, and package ID ID, the following +instructions tell you how to install on each system. Note that this typically +requires about ~1.4GB of dependencies and will take some time.

      +
        +
      • On Linux systems, K will typically be installed under /usr.
      • +
      • On macOS/brew, K will typically be installed under /usr/local.
      • +
      +

      Ubuntu Focal (20.04)

      +
      sh
      sudo apt install ./kframework_amd64_ubuntu_focal.deb +
      +

      Ubuntu Jammy (22.04)

      +
      sh
      sudo apt install ./kframework_amd64_ubuntu_jammy.deb +
      +

      Debian Bookworm

      +
      sh
      sudo apt install ./kframework_amd64_debian_bookworm.deb +
      +

      Arch Linux

      +
      sh
      pacman -U ./kframework_arch_x86_64.pkg.tar.zst +
      +

      MacOS X Mojave/Homebrew

      +

      Homebrew (or just brew) is a third-party package manager +for MacOS. +If you have not installed brew, you must do so before installing the K +Framework brew package.

      +

      With brew installed, do the following to install the K Framework brew package +(with build number BN):

      +
      sh
      brew install kframework--X.Y.Z.ID.bottle.BN.tar.gz -v +
      +

      Note: we do not yet have a MacOS Monterey bottle. The existing brew package +also does not work on M1 Silicon Macs. If you have either of these systems, +you should build from source for the time being.

      +

      Homebrew Alternate Installation

      +

      To directly install the latest K Framework brew package without needing to +download it separately, do the following:

      +
      sh
      brew install kframework/k/kframework +
      +

      Or, to streamline future K Framework upgrades, you can tap the K Framework +package repository. This lets future installations/upgrades/etc... use the +unprefixed package name.

      +
      sh
      brew tap kframework/k +brew install kframework +
      +

      Docker Images

      +

      Docker images with K pre-installed are available at the +runtimeverification/kframework-k Docker Hub repository.

      +

      Each release at COMMIT_ID has an image associated with it at +runtimeverificationinc/kframework-k:ubuntu-focal-COMMIT_ID.

      +

      To run the image directly:

      +
      sh
      docker run -it runtimeverificationinc/kframework-k:ubuntu-focal-COMMIT_ID +
      +

      and to make a Docker Image based on it, use the following line in your +Dockerfile:

      +
      Dockerfile
      FROM runtimeverificationinc/kframework-k:ubuntu-focal-COMMIT_ID +
      +

      We also create Ubuntu 22.04 images with the ubuntu-jammy-COMMIT_ID tags.

      +

      Testing Packages

      +

      The easiest way to test the K package is to copy a K tutorial language and +check if you can compile and run an included example.

      +
        +
      1. +

        Start by copying the K tutorial to some work directory +(e.g. $HOME/pl-tutorial) from the K distribution root. Using a Linux +package, this command typically will be like:

        +
        sh
        $ cp -R /usr/share/kframework/pl-tutorial $HOME/pl-tutorial +
        +

        On macOS/brew, this command typically will be like:

        +
        sh
        $ cp -R /usr/local/share/kframework/pl-tutorial $HOME/pl-tutorial +
        +

        This step is needed because sometimes only the root user can run the +examples in the default installation directory.

        +
      2. +
      3. +

        Now you can try to run some programs:

        +
        sh
        $ cd $HOME/pl-tutorial/2_languages/1_simple/1_untyped +$ make kompile +$ krun tests/diverse/factorial.simple +
        +
      4. +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/include/kframework/builtin/domains/index.html b/k-distribution/include/kframework/builtin/domains/index.html new file mode 100644 index 00000000000..325577fb7d3 --- /dev/null +++ b/k-distribution/include/kframework/builtin/domains/index.html @@ -0,0 +1,3920 @@ + + + + + + + + + + + + + + +Basic Builtin Types in K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Basic Builtin Types in K

      +

      A major piece of the K prelude consists of a series of modules that contain +implementations of basic data types and language features in K. You do not need +to require this file yourself; it is required automatically in every K +definition unless --no-prelude is passed to kompile. K may not work correctly +if some of these modules do not exist or do not declare certain functions.

      +

      Note that some functions in the K prelude functions are not total, that is, +they are not defined on all possible input values. When you invoke such a +function on an undefined input, the behavior is undefined. In particular, when +this happens, interpreters generated by the K LLVM backend may crash.

      +
      k
      require "kast.md" +
      +

      Default Modules

      +

      K declares certain modules that contain most of the builtins you usually want +when defining a language in K. In particular, this includes integers, booleans, +strings, identifiers, I/O, lists, maps, and sets. The DOMAINS-SYNTAX module +is designed to be imported by the syntax module of the language and contains +only the program-level syntax of identifiers, integers, booleans, and strings. +The DOMAINS module contains the rest of the syntax, including builtin +functions over those and the remaining types.

      +

      Note that not all modules are included in DOMAINS. A few less-common modules +are not, including ARRAY, COLLECTIONS, FLOAT, STRING-BUFFER, BYTES, +K-REFLECTION, MINT, and STRATEGY.

      +
      k
      module DOMAINS-SYNTAX + imports SORT-K + imports ID-SYNTAX + imports UNSIGNED-INT-SYNTAX + imports BOOL-SYNTAX + imports STRING-SYNTAX +endmodule + +module DOMAINS + imports DOMAINS-SYNTAX + imports INT + imports BOOL + imports STRING + imports BASIC-K + imports LIST + imports K-IO + imports MAP + imports SET + imports ID + imports K-EQUAL +endmodule +
      +

      Arrays

      +

      Provided here is an implementation for fixed-sized, contiguous maps from Int +to KItem. In some previous versions of K, the Array type was a builtin type +backed by mutable arrays of objects. However, in modern K, the Array type is +implemented by means of the List type; users should not access this interface +directly and should instead make only of the functions listed below. Users of +this module should import only the ARRAY module.

      +
      k
      module ARRAY-SYNTAX + imports private LIST + + syntax Array [hook(ARRAY.Array)] +
      +

      Array lookup

      +

      You can look up an element in an Array by its index in O(log(N)) time. Note +that the base of the logarithm is a relatively high number and thus the time is +effectively constant.

      +
      k
      syntax KItem ::= Array "[" Int "]" [function, hook(ARRAY.lookup)] +
      +

      Array update

      +

      You can create a new Array with a new value for a key in O(log(N)) time, or +effectively constant.

      +
      k
      syntax Array ::= Array "[" key: Int "<-" value: KItem "]" [function, hook(ARRAY.update), klabel(_[_<-_]), symbol] +
      +

      Array reset

      +

      You can create a new Array where a particular key is reset to its default +value in O(log(N)) time, or effectively constant.

      +
      k
      syntax Array ::= Array "[" Int "<-" "undef" "]" [function, hook(ARRAY.remove)] +
      +

      Multiple array update

      +

      You can create a new Array from a List L of size N where the N +elements starting at index are replaced with the contents of L, in +O(N*log(K)) time (where K is the size of the array), or effectively linear. +Having index + N > K yields an exception.

      +
      k
      syntax Array ::= updateArray(Array, index: Int, List) [function, hook(ARRAY.updateAll)] +
      +

      Array fill

      +

      You can create a new Array where the length elements starting at index +are replaced with value, in O(length*log(N)) time, or effectively linear.

      +
      k
      syntax Array ::= fillArray(Array, index: Int, length: Int, value: KItem) [function, hook(ARRAY.fill)] +
      +

      Array range check

      +

      You can test whether an integer is within the bounds of an array in O(1) time.

      +
      k
      syntax Bool ::= Int "in_keys" "(" Array ")" [function, total, hook(ARRAY.in_keys)] +
      +
      k
      endmodule + +module ARRAY-IN-K [private] + imports public ARRAY-SYNTAX + imports private LIST + imports private K-EQUAL + imports private INT + imports private BOOL +
      +

      Array creation

      +

      You can create an array with length elements where each element is +initialized to value in O(1) time. Note that the array is stored in a manner +where only the highest element that is actually modified is given a value +in its internal representation, which means that subsequent array operations +may incur a one-time O(N) resizing cost, possibly amortized across multiple +operations.

      +
      k
      syntax Array ::= makeArray(length: Int, value: KItem) [function, hook(ARRAY.make), public] +
      +

      Implementation of Arrays

      +

      The remainder of this section consists of an implementation in K of the +operations listed above. Users of the ARRAY module should not make use +of any of the syntax defined in any of these modules.

      +
      k
      syntax Array ::= arr(List, Int, KItem) + + rule makeArray(I::Int, D::KItem) => arr(.List, I, D) + + rule arr(L::List, _, _ ) [ IDX::Int ] => L[IDX] requires 0 <=Int IDX andBool IDX <Int size(L) + rule arr(_ , _, D::KItem) [ _ ] => D [owise] + + syntax List ::= ensureOffsetList(List, Int, KItem) [function] + rule ensureOffsetList(L::List, IDX::Int, D::KItem) => L makeList(IDX +Int 1 -Int size(L), D) requires IDX >=Int size(L) + rule ensureOffsetList(L::List, IDX::Int, _::KItem) => L requires notBool IDX >=Int size(L) + + rule arr(L::List, I::Int, D::KItem) [ IDX::Int <- VAL::KItem ] => arr(ensureOffsetList(L, IDX, D) [ IDX <- VAL ], I, D) + + rule arr(L::List, I::Int, D::KItem) [ IDX::Int <- undef ] => arr(L, I, D) [ IDX <- D ] + + rule updateArray(arr(L::List, I::Int, D::KItem), IDX::Int, L2::List) => arr(updateList(ensureOffsetList(L, IDX +Int size(L2) -Int 1, D), IDX, L2), I, D) + + rule fillArray(arr(L::List, I::Int, D::KItem), IDX::Int, LEN::Int, VAL::KItem) => arr(fillList(ensureOffsetList(L, IDX +Int LEN -Int 1, D), IDX, LEN, VAL), I, D) + + rule IDX::Int in_keys(arr(_, I::Int, _)) => IDX >=Int 0 andBool IDX <Int I +endmodule + +module ARRAY-SYMBOLIC [symbolic] + imports ARRAY-IN-K +endmodule + +module ARRAY-KORE [kore] + imports ARRAY-IN-K +endmodule + +module ARRAY + imports ARRAY-SYMBOLIC + imports ARRAY-KORE +endmodule +
      +

      Maps

      +

      Provided here is the syntax of an implementation of immutable, associative, +commutative maps from KItem to KItem. This type is hooked to an +implementation of maps provided by the backend. For more information on +matching on maps and allowable patterns for doing so, refer to K's +user documentation.

      +
      k
      module MAP + imports private BOOL-SYNTAX + imports private INT-SYNTAX + imports private LIST + imports private SET + + syntax Map [hook(MAP.Map)] +
      +

      Map concatenation

      +

      The Map sort represents a generalized associative array. Each key can be +paired with an arbitrary value, and can be used to reference its associated +value. Multiple bindings for the same key are not allowed.

      +

      You can construct a new Map consisting of key/value pairs of two Maps. The +result is #False if the maps have keys in common (in particular, this will +yield an exception during concrete execution). This operation is O(Nlog(M)) +where N is the size of the smaller map, when it appears on the right hand side. +When it appears on the left hand side and all variables are bound, it is +O(Nlog(M)) where M is the size of the map it is matching and N is the number +of elements being matched. When it appears on the left hand side containing +variables not bound elsewhere in the term, it is O(N^K) where N is the size of +the map it is matching and K is the number of unbound keys being matched. In +other words, one unbound variable is linear, two is quadratic, three is cubic, +etc.

      +
      k
      syntax Map ::= Map Map [left, function, hook(MAP.concat), klabel(_Map_), symbol, assoc, comm, unit(.Map), element(_|->_), index(0), format(%1%n%2)] +
      +

      Map unit

      +

      The map with zero elements is represented by .Map.

      +
      k
      syntax Map ::= ".Map" [function, total, hook(MAP.unit), klabel(.Map), symbol, latex(\dotCt{Map})] +
      +

      Map elements

      +

      An element of a Map is constructed via the |-> operator. The key is on the +left and the value is on the right.

      +
      k
      syntax Map ::= KItem "|->" KItem [function, total, hook(MAP.element), klabel(_|->_), symbol, latex({#1}\mapsto{#2}), injective] + + syntax priorities _|->_ > _Map_ .Map + syntax non-assoc _|->_ +
      +

      Map lookup

      +

      You can look up the value associated with the key of a map in O(log(N)) time. +Note that the base of the logarithm is a relatively high number and thus the +time is effectively constant. The value is #False if the key is not in the +map (in particular, this will yield an exception during concrete execution).

      +
      k
      syntax KItem ::= Map "[" KItem "]" [function, hook(MAP.lookup), klabel(Map:lookup), symbol] +
      +

      Map lookup with default

      +

      You can also look up the value associated with the key of a map using a +total function that assigns a specific default value if the key is not present +in the map. This operation is also O(log(N)), or effectively constant.

      +
      k
      syntax KItem ::= Map "[" KItem "]" "orDefault" KItem [function, total, hook(MAP.lookupOrDefault), klabel(Map:lookupOrDefault)] +
      +

      Map update

      +

      You can insert a key/value pair into a map in O(log(N)) time, or effectively +constant.

      +
      k
      syntax Map ::= Map "[" key: KItem "<-" value: KItem "]" [function, total, klabel(Map:update), symbol, hook(MAP.update), prefer] +
      +

      Map delete

      +

      You can remove a key/value pair from a map via its key in O(log(N)) time, or +effectively constant.

      +
      k
      syntax Map ::= Map "[" KItem "<-" "undef" "]" [function, total, hook(MAP.remove), klabel(_[_<-undef]), symbol] +
      +

      Map difference

      +

      You can remove the key/value pairs in a map that are present in another map in +O(N*log(M)) time (where M is the size of the first map and N is the size of the +second), or effectively linear. Note that only keys whose value is the same +in both maps are removed. To remove all the keys in one map from another map, +you can say removeAll(M1, keys(M2)).

      +
      k
      syntax Map ::= Map "-Map" Map [function, total, hook(MAP.difference), latex({#1}-_{\it Map}{#2})] +
      +

      Multiple map update

      +

      You can update a map by adding all the key/value pairs in the second map in +O(N*log(M)) time (where M is the size of the first map and N is the size of the +second map), or effectively linear. If any keys are present in both maps, the +value from the second map overwrites the value in the first. This function is +total, which is distinct from map concatenation, a partial function only +defined on maps with disjoint keys.

      +
      k
      syntax Map ::= updateMap(Map, Map) [function, total, hook(MAP.updateAll)] +
      +

      Multiple map removal

      +

      You can remove a Set of keys from a map in O(N*log(M)) time (where M is the +size of the Map and N is the size of the Set), or effectively linear.

      +
      k
      syntax Map ::= removeAll(Map, Set) [function, total, hook(MAP.removeAll)] +
      +

      Map keys (as Set)

      +

      You can get a Set of all the keys in a Map in O(N) time.

      +
      k
      syntax Set ::= keys(Map) [function, total, hook(MAP.keys)] +
      +

      Map keys (as List)

      +

      You can get a List of all the keys in a Map in O(N) time.

      +
      k
      syntax List ::= "keys_list" "(" Map ")" [function, hook(MAP.keys_list)] +
      +

      Map key membership

      +

      You can check whether a key is present in a map in O(1) time.

      +
      k
      syntax Bool ::= KItem "in_keys" "(" Map ")" [function, total, hook(MAP.in_keys)] +
      +

      Map values (as List)

      +

      You can get a List of all the values in a map in O(N) time.

      +
      k
      syntax List ::= values(Map) [function, hook(MAP.values)] +
      +

      Map size

      +

      You can get the number of key/value pairs in a map in O(1) time.

      +
      k
      syntax Int ::= size(Map) [function, total, hook(MAP.size), klabel(sizeMap)] +
      +

      Map inclusion

      +

      You can determine whether a Map is a strict subset of another Map in O(N) +time (where N is the size of the first map). Only keys that are bound to the +same value are considered equal.

      +
      k
      syntax Bool ::= Map "<=Map" Map [function, total, hook(MAP.inclusion)] +
      +

      Map choice

      +

      You can get an arbitrarily chosen key of a Map in O(1) time. The same key +will always be returned for the same map, but no guarantee is given that two +different maps will return the same element, even if they are similar.

      +
      k
      syntax KItem ::= choice(Map) [function, hook(MAP.choice), klabel(Map:choice)] +
      +

      Implementation of Maps

      +

      The remainder of this section contains lemmas used by the Java and Haskell +backend to simplify expressions of sort Map. They do not affect the semantics +of maps, merely describing additional rules that the backend can use to +simplify terms.

      +
      k
      endmodule + +module MAP-KORE-SYMBOLIC [kore,symbolic,haskell] + imports MAP + imports private K-EQUAL + imports private BOOL + + rule #Ceil(@M:Map [@K:KItem]) => {(@K in_keys(@M)) #Equals true} #And #Ceil(@M) #And #Ceil(@K) [simplification] + + // Symbolic update + + // Adding the definedness condition `notBool (K in_keys(M))` in the ensures clause of the following rule would be redundant + // because K also appears in the rhs, preserving the case when it's #Bottom. + rule (K |-> _ M:Map) [ K <- V ] => (K |-> V M) [simplification] + rule M:Map [ K <- V ] => (K |-> V M) requires notBool (K in_keys(M)) [simplification] + rule M:Map [ K <- _ ] [ K <- V ] => M [ K <- V ] [simplification] + // Adding the definedness condition `notBool (K1 in_keys(M))` in the ensures clause of the following rule would be redundant + // because K1 also appears in the rhs, preserving the case when it's #Bottom. + rule (K1 |-> V1 M:Map) [ K2 <- V2 ] => (K1 |-> V1 (M [ K2 <- V2 ])) requires K1 =/=K K2 [simplification] + + // Symbolic remove + rule (K |-> _ M:Map) [ K <- undef ] => M ensures notBool (K in_keys(M)) [simplification] + rule M:Map [ K <- undef ] => M requires notBool (K in_keys(M)) [simplification] + // Adding the definedness condition `notBool (K1 in_keys(M))` in the ensures clause of the following rule would be redundant + // because K1 also appears in the rhs, preserving the case when it's #Bottom. + rule (K1 |-> V1 M:Map) [ K2 <- undef ] => (K1 |-> V1 (M [ K2 <- undef ])) requires K1 =/=K K2 [simplification] + + // Symbolic lookup + rule (K |-> V M:Map) [ K ] => V ensures notBool (K in_keys(M)) [simplification] + rule (K1 |-> _V M:Map) [ K2 ] => M [K2] requires K1 =/=K K2 ensures notBool (K1 in_keys(M)) [simplification] + rule (_MAP:Map [ K <- V1 ]) [ K ] => V1 [simplification] + rule ( MAP:Map [ K1 <- _V1 ]) [ K2 ] => MAP [ K2 ] requires K1 =/=K K2 [simplification] + + rule (K |-> V M:Map) [ K ] orDefault _ => V ensures notBool (K in_keys(M)) [simplification] + rule (K1 |-> _V M:Map) [ K2 ] orDefault D => M [K2] orDefault D requires K1 =/=K K2 ensures notBool (K1 in_keys(M)) [simplification] + rule (_MAP:Map [ K <- V1 ]) [ K ] orDefault _ => V1 [simplification] + rule ( MAP:Map [ K1 <- _V1 ]) [ K2 ] orDefault D => MAP [ K2 ] orDefault D requires K1 =/=K K2 [simplification] + rule .Map [ _ ] orDefault D => D [simplification] + + // Symbolic in_keys + rule K in_keys(_M [ K <- undef ]) => false [simplification] + rule K in_keys(_M [ K <- _ ]) => true [simplification] + rule K1 in_keys(M [ K2 <- _ ]) => true requires K1 ==K K2 orBool K1 in_keys(M) [simplification] + rule K1 in_keys(M [ K2 <- _ ]) => K1 in_keys(M) requires K1 =/=K K2 [simplification] + + rule {false #Equals @Key in_keys(.Map)} => #Ceil(@Key) [simplification] + rule {@Key in_keys(.Map) #Equals false} => #Ceil(@Key) [simplification] + rule {false #Equals @Key in_keys(Key' |-> Val @M)} => #Ceil(@Key) #And #Ceil(Key' |-> Val @M) #And #Not({@Key #Equals Key'}) #And {false #Equals @Key in_keys(@M)} [simplification] + rule {@Key in_keys(Key' |-> Val @M) #Equals false} => #Ceil(@Key) #And #Ceil(Key' |-> Val @M) #And #Not({@Key #Equals Key'}) #And {@Key in_keys(@M) #Equals false} [simplification] + +/* +// The rule below is automatically generated by the frontend for every sort +// hooked to MAP.Map. It is left here to serve as documentation. + + rule #Ceil(@M:Map (@K:KItem |-> @V:KItem)) => {(@K in_keys(@M)) #Equals false} #And #Ceil(@M) #And #Ceil(@K) #And #Ceil(@V) + [simplification] +*/ +endmodule + +module MAP-SYMBOLIC + imports MAP-KORE-SYMBOLIC +endmodule +
      +

      Range Maps

      +

      Provided here is the syntax of an implementation of immutable, associative, +commutative range maps from Int to KItem. This type is hooked to an +implementation of range maps provided by the LLVM backend. +Currently, this type is not supported by other backends. +Although the underlying range map data structure supports any key sort, the +current implementation by the backend only supports Int keys due to +limitations of the underlying ordering function.

      +
      k
      module RANGEMAP + imports private BOOL-SYNTAX + imports private INT-SYNTAX + imports private LIST + imports private SET + +
      +

      Range, bounded inclusively below and exclusively above.

      +
      k
      syntax Range ::= "[" KItem "," KItem ")" [klabel(Rangemap:Range), symbol] + + syntax RangeMap [hook(RANGEMAP.RangeMap)] +
      +

      Range map concatenation

      +

      The RangeMap sort represents a map whose keys are stored as ranges, bounded +inclusively below and exclusively above. Contiguous or overlapping ranges that +map to the same value are merged into a single range.

      +

      You can construct a new RangeMap consisting of range/value pairs of two +RangeMaps. If the RangeMaps have overlapping ranges an exception will be +thrown during concrete execution. This operation is O(N*log(M)) (where N is +the size of the smaller map and M is the size of the larger map).

      +
      k
      syntax RangeMap ::= RangeMap RangeMap [left, function, hook(RANGEMAP.concat), klabel(_RangeMap_), symbol, assoc, comm, unit(.RangeMap), element(_r|->_), index(0), format(%1%n%2)] +
      +

      Range map unit

      +

      The RangeMap with zero elements is represented by .RangeMap.

      +
      k
      syntax RangeMap ::= ".RangeMap" [function, total, hook(RANGEMAP.unit), klabel(.RangeMap), symbol, latex(\dotCt{RangeMap})] +
      +

      Range map elements

      +

      An element of a RangeMap is constructed via the r|-> operator. The range +of keys is on the left, and the value is on the right.

      +
      k
      syntax RangeMap ::= Range "r|->" KItem [function, hook(RANGEMAP.elementRng), klabel(_r|->_), symbol, latex({#1}\mapsto{#2}), injective] + + syntax priorities _r|->_ > _RangeMap_ .RangeMap + syntax non-assoc _r|->_ +
      +

      Range map lookup

      +

      You can look up the value associated with a key of a RangeMap in O(log(N)) +time (where N is the size of the RangeMap). This will yield an exception +during concrete execution if the key is not in the range map.

      +
      k
      syntax KItem ::= RangeMap "[" KItem "]" [function, hook(RANGEMAP.lookup), klabel(RangeMap:lookup), symbol] +
      +

      Range map lookup with default

      +

      You can also look up the value associated with a key of a RangeMap using a +total function that assigns a specific default value if the key is not present +in the RangeMap. This operation is also O(log(N)) (where N is the size of +the range map).

      +
      k
      syntax KItem ::= RangeMap "[" KItem "]" "orDefault" KItem [function, total, hook(RANGEMAP.lookupOrDefault), klabel(RangeMap:lookupOrDefault)] +
      +

      Range map lookup for range of key

      +

      You can look up for the range that a key of a RangeMap is stored in in +O(log(N)) time (where N is the size of the RangeMap). This will yield an +exception during concrete execution if the key is not in the range map.

      +
      k
      syntax Range ::= "find_range" "(" RangeMap "," KItem ")" [function, hook(RANGEMAP.find_range), klabel(RangeMap:find_range)] +
      +

      Range map update

      +

      You can insert a range/value pair into a RangeMap in O(log(N)) time (where N +is the size of the RangeMap). Any ranges adjacent to or overlapping with the +range to be inserted will be updated accordingly.

      +
      k
      syntax RangeMap ::= RangeMap "[" keyRange: Range "<-" value: KItem "]" [function, klabel(RangeMap:update), symbol, hook(RANGEMAP.updateRng), prefer] +
      +

      Range map delete

      +

      You can remove a range/value pair from a RangeMap in O(log(N)) time (where N +is the size of the RangeMap). If all or any part of the range is present in +the range map, it will be removed.

      +
      k
      syntax RangeMap ::= RangeMap "[" Range "<-" "undef" "]" [function, hook(RANGEMAP.removeRng), klabel(_r[_<-undef]), symbol] +
      +

      Range map difference

      +

      You can remove the range/value pairs in a RangeMap that are also present in +another RangeMap in O(max{M,N}*log(M)) time (where M is the size of the +first RangeMap and N is the size of the second RangeMap). Note that only +the parts of overlapping ranges whose value is the same in both range maps +will be removed.

      +
      k
      syntax RangeMap ::= RangeMap "-RangeMap" RangeMap [function, total, hook(RANGEMAP.difference), latex({#1}-_{\it RangeMap}{#2})] +
      +

      Multiple range map update

      +

      You can update a RangeMap by adding all the range/value pairs in the second +RangeMap in O(N*log(M+N)) time (where M is the size of the first RangeMap +and N is the size of the second RangeMap). If any ranges are overlapping, +the value from the second range map overwrites the value in the first for the +parts where ranges are overlapping. This function is total, which is distinct +from range map concatenation, a partial function only defined on range maps +with non overlapping ranges.

      +
      k
      syntax RangeMap ::= updateRangeMap(RangeMap, RangeMap) [function, total, hook(RANGEMAP.updateAll)] +
      +

      Multiple range map removal

      +

      You can remove a Set of ranges from a RangeMap in O(N*log(M)) time (where +M is the size of the RangeMap and N is the size of the Set). For every +range in the set, all or any part of it that is present in the range map will +be removed.

      +
      k
      syntax RangeMap ::= removeAll(RangeMap, Set) [function, hook(RANGEMAP.removeAll)] +
      +

      Range map keys (as Set)

      +

      You can get a Set of all the ranges in a RangeMap in O(N) time (where N +is the size of the RangeMap).

      +
      k
      syntax Set ::= keys(RangeMap) [function, total, hook(RANGEMAP.keys)] +
      +

      Range map keys (as List)

      +

      You can get a List of all the ranges in a RangeMap in O(N) time (where N +is the size of the RangeMap).

      +
      k
      syntax List ::= "keys_list" "(" RangeMap ")" [function, hook(RANGEMAP.keys_list)] +
      +

      Range map key membership

      +

      You can check whether a key is present in a RangeMap in O(log(N)) time (where +N is the size of the RangeMap).

      +
      k
      syntax Bool ::= KItem "in_keys" "(" RangeMap ")" [function, total, hook(RANGEMAP.in_keys)] +
      +

      Range map values (as List)

      +

      You can get a List of all values in a RangeMap in O(N) time (where N is the +size of the RangeMap).

      +
      k
      syntax List ::= values(RangeMap) [function, hook(RANGEMAP.values)] +
      +

      Range map size

      +

      You can get the number of range/value pairs in a RangeMap in O(1) time.

      +
      k
      syntax Int ::= size(RangeMap) [function, total, hook(RANGEMAP.size), klabel(sizeRangeMap)] +
      +

      Range map inclusion

      +

      You can determine whether a RangeMap is a strict subset of another RangeMap +in O(M+N) time (where M is the size of the first RangeMap and N is the size +of the second RangeMap). Only keys within equal or overlapping ranges that +are bound to the same value are considered equal.

      +
      k
      syntax Bool ::= RangeMap "<=RangeMap" RangeMap [function, total, hook(RANGEMAP.inclusion)] +
      +

      Range map choice

      +

      You can get an arbitrarily chosen key of a RangeMap in O(1) time. The same +key will always be returned for the same range map, but no guarantee is given +that two different range maps will return the same element, even if they are +similar.

      +
      k
      syntax KItem ::= choice(RangeMap) [function, hook(RANGEMAP.choice), klabel(RangeMap:choice)] +endmodule +
      +

      Sets

      +

      Provided here is the syntax of an implementation of immutable, associative, +commutative sets of KItem. This type is hooked to an implementation of sets +provided by the backend. For more information on matching on sets and allowable +patterns for doing so, refer to K's +user documentation.

      +
      k
      module SET + imports private INT-SYNTAX + imports private BASIC-K + + syntax Set [hook(SET.Set)] +
      +

      Set concatenation

      +

      The Set sort represents a mathematical set (A collection of unique items). +The sets are nilpotent, i.e., the concatenation of two sets containing elements +in common is #False (note however, this may be silently allowed during +concrete execution). If you intend to add an element to a set that might +already be present in the set, use the |Set operator instead.

      +

      The concatenation operator is O(Nlog(M)) where N is the size of the smaller +set, when it appears on the right hand side. When it appears on the left hand +side and all variables are bound, it is O(Nlog(M)) where M is the size of the +set it is matching and N is the number of elements being matched. When it +appears on the left hand side containing variables not bound elsewhere in the +term, it is O(N^K) where N is the size of the set it is matching and K is the +number of unbound keys being mached. In other words, one unbound variable is +linear, two is quadratic, three is cubic, etc.

      +
      k
      syntax Set ::= Set Set [left, function, hook(SET.concat), klabel(_Set_), symbol, assoc, comm, unit(.Set), idem, element(SetItem), format(%1%n%2)] +
      +

      Set unit

      +

      The set with zero elements is represented by .Set.

      +
      k
      syntax Set ::= ".Set" [function, total, hook(SET.unit), klabel(.Set), symbol, latex(\dotCt{Set})] +
      +

      Set elements

      +

      An element of a Set is constructed via the SetItem operator.

      +
      k
      syntax Set ::= SetItem(KItem) [function, total, hook(SET.element), klabel(SetItem), symbol, injective] +
      +

      Set union

      +

      You can compute the union of two sets in O(N*log(M)) time (Where N is the size +of the smaller set). Note that the base of the logarithm is a relatively high +number and thus the time is effectively linear. The union consists of all the +elements present in either set.

      +
      k
      syntax Set ::= Set "|Set" Set [left, function, total, hook(SET.union), comm] + rule S1:Set |Set S2:Set => S1 (S2 -Set S1) [concrete] +
      +

      Set intersection

      +

      You can compute the intersection of two sets in O(N*log(M)) time (where N +is the size of the smaller set), or effectively linear. The intersection +consists of all the elements present in both sets.

      +
      k
      syntax Set ::= intersectSet(Set, Set) [function, total, hook(SET.intersection), comm] +
      +

      Set complement

      +

      You can compute the relative complement of two sets in O(N*log(M)) time (where +N is the size of the second set), or effectively linear. This is the set of +elements in the first set that are not present in the second set.

      +
      k
      syntax Set ::= Set "-Set" Set [function, total, hook(SET.difference), latex({#1}-_{\it Set}{#2}), klabel(Set:difference), symbol] +
      +

      Set membership

      +

      You can compute whether an element is a member of a set in O(1) time.

      +
      k
      syntax Bool ::= KItem "in" Set [function, total, hook(SET.in), klabel(Set:in), symbol] +
      +

      Set inclusion

      +

      You can determine whether a Set is a strict subset of another Set in O(N) +time (where N is the size of the first set).

      +
      k
      syntax Bool ::= Set "<=Set" Set [function, total, hook(SET.inclusion)] +
      +

      Set size

      +

      You can get the number of elements (the cardinality) of a set in O(1) time.

      +
      k
      syntax Int ::= size(Set) [function, total, hook(SET.size)] +
      +

      Set choice

      +

      You can get an arbitrarily chosen element of a Set in O(1) time. The same +element will always be returned for the same set, but no guarantee is given +that two different sets will return the same element, even if they are similar.

      +
      k
      syntax KItem ::= choice(Set) [function, hook(SET.choice), klabel(Set:choice)] +
      +
      k
      endmodule +
      +

      Implementation of Sets

      +

      The following lemmas are simplifications that the Haskell backend can +apply to simplify expressions of sort Set.

      +
      k
      module SET-KORE-SYMBOLIC [kore,symbolic,haskell] + imports SET + imports private K-EQUAL + imports private BOOL + + //Temporarly rule for #Ceil simplification, should be generated in front-end + +// Matching for this version not implemented. + // rule #Ceil(@S1:Set @S2:Set) => + // {intersectSet(@S1, @S2) #Equals .Set} #And #Ceil(@S1) #And #Ceil(@S2) + // [simplification] + +//simpler version + rule #Ceil(@S:Set SetItem(@E:KItem)) => + {(@E in @S) #Equals false} #And #Ceil(@S) #And #Ceil(@E) + [simplification] + + // -Set simplifications + rule S -Set .Set => S [simplification] + rule .Set -Set _ => .Set [simplification] + rule SetItem(X) -Set (S SetItem(X)) => .Set + ensures notBool (X in S) [simplification] + rule S -Set (S SetItem(X)) => .Set + ensures notBool (X in S) [simplification] + rule (S SetItem(X)) -Set S => SetItem(X) + ensures notBool (X in S) [simplification] + rule (S SetItem(X)) -Set SetItem(X) => S + ensures notBool (X in S) [simplification] + // rule SetItem(X) -Set S => SetItem(X) + // requires notBool (X in S) [simplification] + // rule (S1 SetItem(X)) -Set (S2 SetItem(X)) => S1 -Set S2 + // ensures notBool (X in S1) + // andBool notBool (X in S2) [simplification] + + + + // |Set simplifications + rule S |Set .Set => S [simplification, comm] + rule S |Set S => S [simplification] + + rule (S SetItem(X)) |Set SetItem(X) => S SetItem(X) + ensures notBool (X in S) [simplification, comm] + // Currently disabled, see runtimeverification/haskell-backend#3301 + // rule (S SetItem(X)) |Set S => S SetItem(X) + // ensures notBool (X in S) [simplification, comm] + + // intersectSet simplifications + rule intersectSet(.Set, _ ) => .Set [simplification, comm] + rule intersectSet( S , S ) => S [simplification] + + rule intersectSet( S SetItem(X), SetItem(X)) => SetItem(X) + ensures notBool (X in S) [simplification, comm] + // Currently disabled, see runtimeverification/haskell-backend#3294 + // rule intersectSet( S SetItem(X) , S) => S ensures notBool (X in S) [simplification, comm] + rule intersectSet( S1 SetItem(X), S2 SetItem(X)) => intersectSet(S1, S2) SetItem(X) + ensures notBool (X in S1) + andBool notBool (X in S2) [simplification] + + // membership simplifications + rule _E in .Set => false [simplification] + rule E in (S SetItem(E)) => true + ensures notBool (E in S) [simplification] + +// These two rules would be sound but impose a giant overhead on `in` evaluation: + // rule E1 in (S SetItem(E2)) => true requires E1 in S + // ensures notBool (E2 in S) [simplification] + // rule E1 in (S SetItem(E2)) => E1 in S requires E1 =/=K E2 + // ensures notBool (E2 in S) [simplification] + + rule X in ((SetItem(X) S) |Set _ ) => true + ensures notBool (X in S) [simplification] + rule X in ( _ |Set (SetItem(X) S)) => true + ensures notBool (X in S) [simplification] + +endmodule + +module SET-SYMBOLIC + imports SET-KORE-SYMBOLIC +endmodule +
      +

      Lists

      +

      Provided here is the syntax of an implementation of immutable, associative +lists of KItem. This type is hooked to an implementation of lists provided +by the backend. For more information on matching on lists and allowable +patterns for doing so, refer to K's +user documentation.

      +
      k
      module LIST + imports private INT-SYNTAX + imports private BASIC-K + + syntax List [hook(LIST.List)] +
      +

      List concatenation

      +

      The List sort is an ordered collection that may contain duplicate elements. +They are backed by relaxed radix balanced trees, which means that they support +efficiently adding elements to both sides of the list, concatenating two lists, +indexing, and updating elements.

      +

      The concatenation operator is O(log(N)) (where N is the size of the longer +list) when it appears on the right hand side. When it appears on the left hand +side, it is O(N), where N is the number of elements matched on the front and +back of the list.

      +
      k
      syntax List ::= List List [left, function, total, hook(LIST.concat), klabel(_List_), symbol, smtlib(smt_seq_concat), assoc, unit(.List), element(ListItem), format(%1%n%2)] +
      +

      List unit

      +

      The list with zero elements is represented by .List.

      +
      k
      syntax List ::= ".List" [function, total, hook(LIST.unit), klabel(.List), symbol, smtlib(smt_seq_nil), latex(\dotCt{List})] +
      +

      List elements

      +

      An element of a List is constucted via the ListItem operator.

      +
      k
      syntax List ::= ListItem(KItem) [function, total, hook(LIST.element), klabel(ListItem), symbol, smtlib(smt_seq_elem)] +
      +

      List indexing

      +

      You can get an element of a list by its integer offset in O(log(N)) time, or +effectively constant. Positive indices are 0-indexed from the beginning of the +list, and negative indices are -1-indexed from the end of the list. In other +words, 0 is the first element and -1 is the last element.

      +
      k
      syntax KItem ::= List "[" Int "]" [function, hook(LIST.get), klabel(List:get), symbol] +
      +

      List update

      +

      You can create a new List with a new value at a particular index in +O(log(N)) time, or effectively constant.

      +
      k
      syntax List ::= List "[" index: Int "<-" value: KItem "]" [function, hook(LIST.update), klabel(List:set)] +
      +

      List of identical elements

      +

      You can create a list with length elements, each containing value, in O(N) +time.

      +
      k
      syntax List ::= makeList(length: Int, value: KItem) [function, hook(LIST.make)] +
      +

      Multiple list update

      +

      You can create a new List which is equal to dest except the N elements +starting at index are replaced with the contents of src in O(N*log(K)) time +(where K is the size of destand N is the size of src), or effectively linear. Having index + N > K yields an exception.

      +
      k
      syntax List ::= updateList(dest: List, index: Int, src: List) [function, hook(LIST.updateAll)] +
      +

      List fill

      +

      You can create a new List where the length elements starting at index +are replaced with value, in O(length*log(N)) time, or effectively linear.

      +
      k
      syntax List ::= fillList(List, index: Int, length: Int, value: KItem) [function, hook(LIST.fill)] +
      +

      List slicing

      +

      You can compute a new List by removing fromFront elements from the front +of the list and fromBack elements from the back of the list in +O((fromFront+fromBack)*log(N)) time, or effectively linear.

      +
      k
      syntax List ::= range(List, fromFront: Int, fromBack: Int) [function, hook(LIST.range), klabel(List:range), symbol] +
      +

      List membership

      +

      You can compute whether an element is in a list in O(N) time. For repeated +comparisons, it is much better to first convert to a set using List2Set.

      +
      k
      syntax Bool ::= KItem "in" List [function, total, hook(LIST.in), klabel(_inList_)] +
      +

      List size

      +

      You can get the number of elements of a list in O(1) time.

      +
      k
      syntax Int ::= size(List) [function, total, hook(LIST.size), klabel (sizeList), smtlib(smt_seq_len)] +
      +
      k
      endmodule +
      +

      Collection Conversions

      +

      It is possible to convert from a List to a Set or from a Set to a list. +Converting from a List to a Set and back will not provide the same list; +duplicates will have been removed and the list may be reordered. Converting +from a Set to a List and back will generate the same set.

      +

      Note that because sets are unordered and lists are ordered, converting from a +Set to a List will generate some arbitrary ordering of elements, which may +be different from the natural ordering you might assume, or may not. Two +equal sets are guaranteed to generate the same ordering, but no guarantee is +otherwise provided about what the ordering will be. In particular, adding an +element to a set may completely reorder the elements already in the set, when +it is converted to a list.

      +
      k
      module COLLECTIONS + imports LIST + imports SET + imports MAP + + syntax List ::= Set2List(Set) [function, total, hook(SET.set2list)] + syntax Set ::= List2Set(List) [function, total, hook(SET.list2set)] + +endmodule +
      +

      Booleans

      +

      Provided here is the syntax of an implementation of boolean algebra in K. +This type is hooked to an implementation of booleans provided by the backend. +Note that this algebra is different from the builtin truth in matching logic. +You can, however, convert from the truth of the Bool sort to the truth in +matching logic via the expression {B #Equals true}.

      +

      The boolean values are true and false.

      +
      k
      module SORT-BOOL + syntax Bool [hook(BOOL.Bool)] +endmodule + +module BOOL-SYNTAX + imports SORT-BOOL + syntax Bool ::= "true" [token] + syntax Bool ::= "false" [token] +endmodule + +module BOOL-COMMON + imports private BASIC-K + imports BOOL-SYNTAX +
      +

      Basic boolean arithmetic

      +

      You can:

      +
        +
      • Negate a boolean value.
      • +
      • AND two boolean values.
      • +
      • XOR two boolean values.
      • +
      • OR two boolean values.
      • +
      • IMPLIES two boolean values (i.e., P impliesBool Q is the same as +notBool P orBool Q)
      • +
      • Check equality of two boolean values.
      • +
      • Check inequality of two boolean values.
      • +
      +

      Note that only andThenBool and orElseBool are short-circuiting. andBool +and orBool may be short-circuited in concrete backends, but in symbolic +ackends, both arguments will be evaluated.

      +
      k
      syntax Bool ::= "notBool" Bool [function, total, klabel(notBool_), symbol, smt-hook(not), group(boolOperation), latex(\neg_{\scriptstyle\it Bool}{#1}), hook(BOOL.not)] + > Bool "andBool" Bool [function, total, klabel(_andBool_), symbol, left, smt-hook(and), group(boolOperation), latex({#1}\wedge_{\scriptstyle\it Bool}{#2}), hook(BOOL.and)] + | Bool "andThenBool" Bool [function, total, klabel(_andThenBool_), symbol, left, smt-hook(and), group(boolOperation), hook(BOOL.andThen)] + | Bool "xorBool" Bool [function, total, klabel(_xorBool_), symbol, left, smt-hook(xor), group(boolOperation), hook(BOOL.xor)] + | Bool "orBool" Bool [function, total, klabel(_orBool_), symbol, left, smt-hook(or), group(boolOperation), latex({#1}\vee_{\scriptstyle\it Bool}{#2}), hook(BOOL.or)] + | Bool "orElseBool" Bool [function, total, klabel(_orElseBool_), symbol, left, smt-hook(or), group(boolOperation), hook(BOOL.orElse)] + | Bool "impliesBool" Bool [function, total, klabel(_impliesBool_), symbol, left, smt-hook(=>), group(boolOperation), hook(BOOL.implies)] + > left: + Bool "==Bool" Bool [function, total, klabel(_==Bool_), symbol, left, comm, smt-hook(=), hook(BOOL.eq)] + | Bool "=/=Bool" Bool [function, total, klabel(_=/=Bool_), symbol, left, comm, smt-hook(distinct), hook(BOOL.ne)] +
      +

      Implementation of Booleans

      +

      The remainder of this section consists of an implementation in K of the +operations listed above.

      +
      k
      rule notBool true => false + rule notBool false => true + + rule true andBool B:Bool => B:Bool + rule B:Bool andBool true => B:Bool + rule false andBool _:Bool => false + rule _:Bool andBool false => false + + rule true andThenBool K::Bool => K + rule K::Bool andThenBool true => K + rule false andThenBool _ => false + rule _ andThenBool false => false + + rule false xorBool B:Bool => B:Bool + rule B:Bool xorBool false => B:Bool + rule B:Bool xorBool B:Bool => false + + rule true orBool _:Bool => true + rule _:Bool orBool true => true + rule false orBool B:Bool => B + rule B:Bool orBool false => B + + rule true orElseBool _ => true + rule _ orElseBool true => true + rule false orElseBool K::Bool => K + rule K::Bool orElseBool false => K + + rule true impliesBool B:Bool => B + rule false impliesBool _:Bool => true + rule _:Bool impliesBool true => true + rule B:Bool impliesBool false => notBool B + + rule B1:Bool =/=Bool B2:Bool => notBool (B1 ==Bool B2) +endmodule + +module BOOL-KORE [kore, symbolic] + imports BOOL-COMMON + + rule {true #Equals notBool @B} => {false #Equals @B} [simplification] + rule {notBool @B #Equals true} => {@B #Equals false} [simplification] + rule {false #Equals notBool @B} => {true #Equals @B} [simplification] + rule {notBool @B #Equals false} => {@B #Equals true} [simplification] + + rule {true #Equals @B1 andBool @B2} => {true #Equals @B1} #And {true #Equals @B2} [simplification] + rule {@B1 andBool @B2 #Equals true} => {@B1 #Equals true} #And {@B2 #Equals true} [simplification] + rule {false #Equals @B1 orBool @B2} => {false #Equals @B1} #And {false #Equals @B2} [simplification] + rule {@B1 orBool @B2 #Equals false} => {@B1 #Equals false} #And {@B2 #Equals false} [simplification] +endmodule + +module BOOL + imports BOOL-COMMON + imports BOOL-KORE +endmodule +
      +

      Integers

      +

      Provided here is the syntax of an implementation of arbitrary-precision +integer arithmetic in K. This type is hooked to an implementation of integers +provided by the backend. For a fixed-width integer type, see the MINT module +below.

      +

      The UNSIGNED-INT-SYNTAX module provides a syntax of whole numbers in K. +This is useful because often programming languages implement the sign of an +integer as a unary operator rather than part of the lexical syntax of integers. +However, you can also directly reference integers with a sign using the +INT-SYNTAX module.

      +
      k
      module UNSIGNED-INT-SYNTAX + syntax Int [hook(INT.Int)] + syntax Int ::= r"[0-9]+" [prefer, token, prec(2)] +endmodule + +module INT-SYNTAX + imports UNSIGNED-INT-SYNTAX + syntax Int ::= r"[\\+-]?[0-9]+" [prefer, token, prec(2)] +endmodule + +module INT-COMMON + imports INT-SYNTAX + imports private BOOL +
      +

      Integer arithmetic

      +

      You can:

      +
        +
      • Compute the bitwise complement ~Int of an integer value in twos-complement.
      • +
      • Compute the exponentiation ^Int of two integers.
      • +
      • Compute the exponentiation of two integers modulo another integer (^%Int). +A ^%Int B C is equal in value to (A ^Int B) %Int C, but has a better +asymptotic complexity.
      • +
      • Compute the product *Int of two integers.
      • +
      • Compute the quotient /Int or modulus %Int of two integers using +t-division, which rounds towards zero. Division by zero is #False.
      • +
      • Compute the quotient divInt or modulus modInt of two integers using +Euclidean division, in which the remainder is always non-negative. Division +by zero is #False.
      • +
      • Compute the sum +Int or difference -Int of two integers.
      • +
      • Compute the arithmetic right shift >>Int of two integers. Shifting by a +negative quantity is #False.
      • +
      • Compute the left shift of two integers. Shifting by a negative quantity is +#False.
      • +
      • Compute the bitwise and of two integers in twos-complement.
      • +
      • Compute the bitwise xor of two integers in twos-complement.
      • +
      • Compute the bitwise inclusive-or of two integers in twos-complement.
      • +
      +
      k
      syntax Int ::= "~Int" Int [function, klabel(~Int_), symbol, total, latex(\mathop{\sim_{\scriptstyle\it Int}}{#1}), hook(INT.not), smtlib(notInt)] + > left: + Int "^Int" Int [function, klabel(_^Int_), symbol, left, smt-hook(^), latex({#1}\mathrel{{\char`\^}_{\!\scriptstyle\it Int}}{#2}), hook(INT.pow)] + | Int "^%Int" Int Int [function, klabel(_^%Int__), symbol, left, smt-hook((mod (^ #1 #2) #3)), hook(INT.powmod)] + > left: + Int "*Int" Int [function, total, klabel(_*Int_), symbol, left, comm, smt-hook(*), latex({#1}\mathrel{\ast_{\scriptstyle\it Int}}{#2}), hook(INT.mul)] + /* FIXME: translate /Int and %Int into smtlib */ + /* /Int and %Int implement t-division, which rounds towards 0 */ + | Int "/Int" Int [function, klabel(_/Int_), symbol, left, smt-hook(div), latex({#1}\mathrel{\div_{\scriptstyle\it Int}}{#2}), hook(INT.tdiv)] + | Int "%Int" Int [function, klabel(_%Int_), symbol, left, smt-hook(mod), latex({#1}\mathrel{\%_{\scriptstyle\it Int}}{#2}), hook(INT.tmod)] + /* divInt and modInt implement e-division according to the Euclidean division theorem, therefore the remainder is always positive */ + | Int "divInt" Int [function, klabel(_divInt_), symbol, left, smt-hook(div), hook(INT.ediv)] + | Int "modInt" Int [function, klabel(_modInt_), symbol, left, smt-hook(mod), hook(INT.emod)] + > left: + Int "+Int" Int [function, total, klabel(_+Int_), symbol, left, comm, smt-hook(+), latex({#1}\mathrel{+_{\scriptstyle\it Int}}{#2}), hook(INT.add)] + | Int "-Int" Int [function, total, klabel(_-Int_), symbol, left, smt-hook(-), latex({#1}\mathrel{-_{\scriptstyle\it Int}}{#2}), hook(INT.sub)] + > left: + Int ">>Int" Int [function, klabel(_>>Int_), symbol, left, latex({#1}\mathrel{\gg_{\scriptstyle\it Int}}{#2}), hook(INT.shr), smtlib(shrInt)] + | Int "<<Int" Int [function, klabel(_<<Int_), symbol, left, latex({#1}\mathrel{\ll_{\scriptstyle\it Int}}{#2}), hook(INT.shl), smtlib(shlInt)] + > left: + Int "&Int" Int [function, total, klabel(_&Int_), symbol, left, comm, latex({#1}\mathrel{\&_{\scriptstyle\it Int}}{#2}), hook(INT.and), smtlib(andInt)] + > left: + Int "xorInt" Int [function, total, klabel(_xorInt_), symbol, left, comm, latex({#1}\mathrel{\oplus_{\scriptstyle\it Int}}{#2}), hook(INT.xor), smtlib(xorInt)] + > left: + Int "|Int" Int [function, total, klabel(_|Int_), symbol, left, comm, latex({#1}\mathrel{|_{\scriptstyle\it Int}}{#2}), hook(INT.or), smtlib(orInt)] +
      +

      Integer minimum and maximum

      +

      You can compute the minimum and maximum minInt and maxInt of two integers.

      +
      k
      syntax Int ::= "minInt" "(" Int "," Int ")" [function, total, smt-hook((ite (< #1 #2) #1 #2)), hook(INT.min)] + | "maxInt" "(" Int "," Int ")" [function, total, smt-hook((ite (< #1 #2) #2 #1)), hook(INT.max)] +
      +

      Absolute value

      +

      You can compute the absolute value absInt of an integer.

      +
      k
      syntax Int ::= absInt ( Int ) [function, total, smt-hook((ite (< #1 0) (- 0 #1) #1)), hook(INT.abs)] +
      +

      Log base 2

      +

      You can compute the log base 2, rounded towards zero, of an integer. The log +base 2 of an integer is equal to the index of the highest bit set in the +representation of a positive integer. Log base 2 of zero or a negative number +is #False.

      +
      k
      syntax Int ::= log2Int ( Int ) [function, hook(INT.log2)] +
      +

      Bit slicing

      +

      You can compute the value of a range of bits in the twos-complement +representation of an integer, as interpeted either unsigned or signed, of an +integer. index is offset from 0 and length is the number of bits, starting +with index, that should be read. The number is assumed to be represented +in little endian notation with each byte going from least significant to +most significant. In other words, 0 is the least-significant bit, and each +successive bit is more significant than the last.

      +
      k
      syntax Int ::= bitRangeInt ( Int, index: Int, length: Int ) [function, hook(INT.bitRange)] + | signExtendBitRangeInt ( Int, index: Int, length: Int ) [function, hook(INT.signExtendBitRange)] +
      +

      Integer comparisons

      +

      You can compute whether two integers are less than or equal to, less than, +greater than or equal to, greater than, equal, or unequal to another integer.

      +
      k
      syntax Bool ::= Int "<=Int" Int [function, total, klabel(_<=Int_), symbol, smt-hook(<=), latex({#1}\mathrel{\leq_{\scriptstyle\it Int}}{#2}), hook(INT.le)] + | Int "<Int" Int [function, total, klabel(_<Int_), symbol, smt-hook(<), latex({#1}\mathrel{<_{\scriptstyle\it Int}}{#2}), hook(INT.lt)] + | Int ">=Int" Int [function, total, klabel(_>=Int_), symbol, smt-hook(>=), latex({#1}\mathrel{\geq_{\scriptstyle\it Int}}{#2}), hook(INT.ge)] + | Int ">Int" Int [function, total, klabel(_>Int_), symbol, smt-hook(>), latex({#1}\mathrel{>_{\scriptstyle\it Int}}{#2}), hook(INT.gt)] + | Int "==Int" Int [function, total, klabel(_==Int_), symbol, comm, smt-hook(=), latex({#1}\mathrel{{=}{=}_{\scriptstyle\it Int}}{#2}), hook(INT.eq)] + | Int "=/=Int" Int [function, total, klabel(_=/=Int_), symbol, comm, smt-hook(distinct), latex({#1}\mathrel{{=}{/}{=}_{\scriptstyle\it Int}}{#2}), hook(INT.ne)] +
      +

      Divides

      +

      You can compute whether one integer evenly divides another. This is the +case when the second integer modulo the first integer is equal to zero.

      +
      k
      syntax Bool ::= Int "dividesInt" Int [function] +
      +

      Random integers

      +

      You can, on concrete backends, compute a pseudorandom integer, or seed the +pseudorandom number generator. These operations are represented as +uninterpreted functions on symbolic backends.

      +
      k
      syntax Int ::= randInt(Int) [function, hook(INT.rand), impure] + syntax K ::= srandInt(Int) [function, hook(INT.srand), impure] +
      +

      Implementation of Integers

      +

      The remainder of this section consists of an implementation in K of some +of the operators above, as well as lemmas used by the Java and Haskell backend +to simplify expressions of sort Int. They do not affect the semantics of +integers, merely describing additional rules that the backend can use to +simplify terms.

      +
      k
      endmodule + +module INT-SYMBOLIC [symbolic] + imports INT-COMMON + imports INT-SYMBOLIC-KORE + imports private BOOL + + // Arithmetic Normalization + rule I +Int 0 => I [simplification] + rule I -Int 0 => I [simplification] + + rule X modInt N => X requires 0 <=Int X andBool X <Int N [simplification] + rule X %Int N => X requires 0 <=Int X andBool X <Int N [simplification] + + // Bit-shifts + rule X <<Int 0 => X [simplification] + rule 0 <<Int _ => 0 [simplification] + rule X >>Int 0 => X [simplification] + rule 0 >>Int _ => 0 [simplification] +endmodule + +module INT-SYMBOLIC-KORE [symbolic, kore, haskell] + imports INT-COMMON + imports ML-SYNTAX + imports private BOOL + + // Definability Conditions + rule #Ceil(@I1:Int /Int @I2:Int) => {(@I2 =/=Int 0) #Equals true} #And #Ceil(@I1) #And #Ceil(@I2) [simplification] + rule #Ceil(@I1:Int %Int @I2:Int) => {(@I2 =/=Int 0) #Equals true} #And #Ceil(@I1) #And #Ceil(@I2) [simplification] + rule #Ceil(@I1:Int modInt @I2:Int) => {(@I2 =/=Int 0) #Equals true} #And #Ceil(@I1) #And #Ceil(@I2) [simplification] + rule #Ceil(@I1:Int >>Int @I2:Int) => {(@I2 >=Int 0) #Equals true} #And #Ceil(@I1) #And #Ceil(@I2) [simplification] + rule #Ceil(@I1:Int <<Int @I2:Int) => {(@I2 >=Int 0) #Equals true} #And #Ceil(@I1) #And #Ceil(@I2) [simplification] +endmodule + +module INT-KORE [kore, symbolic] + imports private K-EQUAL + imports private BOOL + imports INT-COMMON + + rule I1:Int ==K I2:Int => I1 ==Int I2 [simplification] + rule {K1 ==Int K2 #Equals true} => {K1 #Equals K2} [simplification] + rule {true #Equals K1 ==Int K2} => {K1 #Equals K2} [simplification] + rule {K1 ==Int K2 #Equals false} => #Not({K1 #Equals K2}) [simplification] + rule {false #Equals K1 ==Int K2} => #Not({K1 #Equals K2}) [simplification] + rule {K1 =/=Int K2 #Equals true} => #Not({K1 #Equals K2}) [simplification] + rule {true #Equals K1 =/=Int K2} => #Not({K1 #Equals K2}) [simplification] + rule {K1 =/=Int K2 #Equals false} => {K1 #Equals K2} [simplification] + rule {false #Equals K1 =/=Int K2} => {K1 #Equals K2} [simplification] + + // Arithmetic Normalization + rule I +Int B => B +Int I [concrete(I), symbolic(B), simplification(51)] + rule A -Int I => A +Int (0 -Int I) [concrete(I), symbolic(A), simplification(51)] + + rule (A +Int I2) +Int I3 => A +Int (I2 +Int I3) [concrete(I2, I3), symbolic(A), simplification] + rule I1 +Int (B +Int I3) => B +Int (I1 +Int I3) [concrete(I1, I3), symbolic(B), simplification] + rule I1 -Int (B +Int I3) => (I1 -Int I3) -Int B [concrete(I1, I3), symbolic(B), simplification] + rule I1 +Int (I2 +Int C) => (I1 +Int I2) +Int C [concrete(I1, I2), symbolic(C), simplification] + rule I1 +Int (I2 -Int C) => (I1 +Int I2) -Int C [concrete(I1, I2), symbolic(C), simplification] + rule (I1 -Int B) +Int I3 => (I1 +Int I3) -Int B [concrete(I1, I3), symbolic(B), simplification] + rule I1 -Int (I2 +Int C) => (I1 -Int I2) -Int C [concrete(I1, I2), symbolic(C), simplification] + rule I1 -Int (I2 -Int C) => (I1 -Int I2) +Int C [concrete(I1, I2), symbolic(C), simplification] + rule (C -Int I2) -Int I3 => C -Int (I2 +Int I3) [concrete(I2, I3), symbolic(C), simplification] + + rule I1 &Int (I2 &Int C) => (I1 &Int I2) &Int C [concrete(I1, I2), symbolic(C), simplification] +endmodule + +module INT + imports INT-COMMON + imports INT-SYMBOLIC + imports INT-KORE + imports private K-EQUAL + imports private BOOL + + rule bitRangeInt(I::Int, IDX::Int, LEN::Int) => (I >>Int IDX) modInt (1 <<Int LEN) + + rule signExtendBitRangeInt(I::Int, IDX::Int, LEN::Int) => (bitRangeInt(I, IDX, LEN) +Int (1 <<Int (LEN -Int 1))) modInt (1 <<Int LEN) -Int (1 <<Int (LEN -Int 1)) + + rule I1:Int divInt I2:Int => (I1 -Int (I1 modInt I2)) /Int I2 + requires I2 =/=Int 0 + rule + I1:Int modInt I2:Int + => + ((I1 %Int absInt(I2)) +Int absInt(I2)) %Int absInt(I2) + requires I2 =/=Int 0 [concrete, simplification] + + rule minInt(I1:Int, I2:Int) => I1 requires I1 <=Int I2 + rule minInt(I1:Int, I2:Int) => I2 requires I1 >=Int I2 + + rule I1:Int =/=Int I2:Int => notBool (I1 ==Int I2) + rule (I1:Int dividesInt I2:Int) => (I2 %Int I1) ==Int 0 + + syntax Int ::= freshInt(Int) [freshGenerator, function, total, private] + rule freshInt(I:Int) => I +endmodule +
      +

      IEEE 754 Floating-point Numbers

      +

      Provided here is the syntax of an implementation of arbitrary-precision +floating-point arithmetic in K based on a generalization of the IEEE 754 +standard. This type is hooked to an implementation of floats provided by the +backend.

      +

      The syntax of ordinary floating-point values in K consists of an optional sign +(+ or -) followed by an optional integer part, followed by a decimal point, +followed by an optional fractional part. Either the integer part or the +fractional part must be specified. The mantissa is followed by an optional +exponent part, which consists of an e or E, an optional sign (+ or -), +and an integer. The expoennt is followed by an optional suffix, which can be +either f, F, d, D, or pNxM where N and M are positive integers. +p and x can be either upper or lowercase.

      +

      The value of a floating-point literal is computed as follows: First the +mantissa is read as a rational number. Then it is multiplied by 10 to the +power of the exponent, which is interpreted as an integer, and defaults to +zero if it is not present. Finally, it is rounded to the nearest possible +value in a floating-point type represented like an IEEE754 floating-point type, +with the number of bits of precision and exponent specified by the suffix. +A suffix of f or f represents the IEEE binary32 format. A suffix of d +or D, or no suffix, represents the IEEE binary64 format. A suffix of +pNxM (either upper or lowercase) specifies exactly N bits of precision and +M bits of exponent. The number of bits of precision is assumed to include +any optional 1 that precedes the IEEE 754 mantissa. In other words, p24x8 +is equal to the IEEE binary32 format, and p53x11 is equal to the IEEE +binary64 format.

      +
      k
      module FLOAT-SYNTAX + syntax Float [hook(FLOAT.Float)] + syntax Float ::= r"([\\+-]?[0-9]+(\\.[0-9]*)?|\\.[0-9]+)([eE][\\+-]?[0-9]+)?([fFdD]|([pP][0-9]+[xX][0-9]+))?" [token, prec(1)] + syntax Float ::= r"[\\+-]?Infinity([fFdD]|([pP][0-9]+[xX][0-9]+))?" [token, prec(3)] + syntax Float ::= r"NaN([fFdD]|([pP][0-9]+[xX][0-9]+))?" [token, prec(3)] +endmodule + +module FLOAT + imports FLOAT-SYNTAX + imports private BOOL + imports private INT-SYNTAX +
      +

      Float precision

      +

      You can retrieve the number of bits of precision in a Float.

      +
      k
      syntax Int ::= precisionFloat(Float) [function, total, hook(FLOAT.precision)] +
      +

      Float exponent bits

      +

      You can retrieve the number of bits of exponent range in a Float.

      +
      k
      syntax Int ::= exponentBitsFloat(Float) [function, total, hook(FLOAT.exponentBits)] +
      +

      Float exponent

      +

      You can retrieve the value of the exponent bits of a Float as an integer.

      +
      k
      syntax Int ::= exponentFloat(Float) [function, total, hook(FLOAT.exponent)] +
      +

      Float sign

      +

      You can retrieve the value of the sign bit of a Float as a boolean. True +means the sign bit is set.

      +
      k
      syntax Bool ::= signFloat(Float) [function, total, hook(FLOAT.sign)] +
      +

      Float special values

      +

      You can check whether a Float value is infinite or Not-a-Number.

      +
      k
      syntax Bool ::= isNaN(Float) [function, total, smt-hook(fp.isNaN), hook(FLOAT.isNaN)] + | isInfinite(Float) [function, total] +
      +

      Float arithmetic

      +

      You can:

      +
        +
      • Compute the unary negation --Float of a float. --Float X is distinct +from 0.0 -Float X. For example, 0.0 -Float 0.0 is positive zero. +--Float 0.0 is negative zero.
      • +
      • Compute the exponentation ^Float of two floats.
      • +
      • Compute the product *Float, quotient /Float, or remainder %Float of two +floats. The remainder is computed based on rounding the quotient of the two +floats to the nearest integer.
      • +
      • Compute the sum +Float or difference -Float of two floats.
      • +
      +
      k
      syntax Float ::= "--Float" Float [function, total, smt-hook(fp.neg), hook(FLOAT.neg)] + > Float "^Float" Float [function, left, latex({#1}^{#2}), hook(FLOAT.pow)] + > left: + Float "*Float" Float [function, left, smt-hook((fp.mul roundNearestTiesToEven #1 #2)), latex({#1}\mathrel{\ast_{\scriptstyle\it Float}}{#2}), hook(FLOAT.mul)] + | Float "/Float" Float [function, left, smt-hook((fp.div roundNearestTiesToEven #1 #2)), latex({#1}\mathrel{\div_{\scriptstyle\it Float}}{#2}), hook(FLOAT.div)] + | Float "%Float" Float [function, left, smt-hook((fp.rem roundNearestTiesToEven #1 #2)), latex({#1}\mathrel{\%_{\scriptstyle\it Float}}{#2}), hook(FLOAT.rem)] + > left: + Float "+Float" Float [function, left, smt-hook((fp.add roundNearestTiesToEven #1 #2)), latex({#1}\mathrel{+_{\scriptstyle\it Float}}{#2}), hook(FLOAT.add)] + | Float "-Float" Float [function, left, smt-hook((fp.sub roundNearestTiesToEven #1 #2)), latex({#1}\mathrel{-_{\scriptstyle\it Float}}{#2}), hook(FLOAT.sub)] +
      +

      Floating-point mathematics

      +

      You can:

      +
        +
      • Compute the Nth integer root rootFloat of a float.
      • +
      • Compute the absolute value absFloat of a float.
      • +
      • Round a floating-point number to a specified precision and exponent +range (roundFloat). The resulting Float will yield the specified values +when calling precisionFloat and exponentBitsFloat and when performing +further computation.
      • +
      • Round a float to the next lowest floating-point value which is an integer +(floorFloat).
      • +
      • Round a float to the next highest floating-point value which is an integer +(ceilFloat).
      • +
      • Round a float to the next closest floating-point value which is an integer, in +the direction of zero (truncFloat).
      • +
      • Compute the natural exponential expFloat of a float (i.e. e^x).
      • +
      • Compute the natural logarithm logFloat of a float.
      • +
      • Compute the sine sinFloat of a float.
      • +
      • Compute the cosine cosFloat of a float.
      • +
      • Compute the tangent tanFlooat of a float.
      • +
      • Compute the arcsine asinFloat of a float.
      • +
      • Compute the arccosine acosFloat of a float.
      • +
      • Compute the arctangent atanFloat of a float.
      • +
      • Compute the arctangent atan2Float of two floats.
      • +
      • Compute the maximum maxFloat of two floats.
      • +
      • Compute the minimum minFloat of two floats.
      • +
      • Compute the square root sqrtFloat of a float.
      • +
      • Compute the largest finite value expressible in a specified precision and +exponent range (maxValueFloat).
      • +
      • Compute the smallest positive finite value expressible in a specified +precision and exponent range (minValueFloat).
      • +
      +
      k
      syntax Float ::= rootFloat(Float, Int) [function, hook(FLOAT.root)] + | absFloat(Float) [function, total, smt-hook(fp.abs), hook(FLOAT.abs)] + | roundFloat(Float, precision: Int, exponentBits: Int) [function, hook(FLOAT.round)] + | floorFloat(Float) [function, total, hook(FLOAT.floor)] + | ceilFloat(Float) [function, total, hook(FLOAT.ceil)] + | truncFloat(Float) [function, total, hook(FLOAT.trunc)] + | expFloat(Float) [function, total, hook(FLOAT.exp)] + | logFloat(Float) [function, hook(FLOAT.log)] + | sinFloat(Float) [function, total, hook(FLOAT.sin)] + | cosFloat(Float) [function, total, hook(FLOAT.cos)] + | tanFloat(Float) [function, hook(FLOAT.tan)] + | asinFloat(Float) [function, hook(FLOAT.asin)] + | acosFloat(Float) [function, hook(FLOAT.acos)] + | atanFloat(Float) [function, total, hook(FLOAT.atan)] + | atan2Float(Float, Float) [function, hook(FLOAT.atan2)] + | maxFloat(Float, Float) [function, smt-hook(fp.max), hook(FLOAT.max)] + | minFloat(Float, Float) [function, smt-hook(fp.min), hook(FLOAT.min)] + | sqrtFloat(Float) [function] + | maxValueFloat(precision: Int, exponentBits: Int) [function, hook(FLOAT.maxValue)] + | minValueFloat(precision: Int, exponentBits: Int) [function, hook(FLOAT.minValue)] +
      +

      Floating-point comparisons

      +

      Compute whether a float is less than or equasl to, less than, greater than or +equal to, greater than, equal, or unequal to another float. Note that +X ==Float Y and X ==K Y might yield different values. The latter should be +used in cases where you want to compare whether two values of sort Float +contain the same term. The former should be used when you want to implement +the == operator of a programming language. In particular, NaN =/=Float NaN +is true, because NaN compares unequal to all values, including itself, in +IEEE 754 arithmetic. 0.0 ==Float -0.0 is also true.

      +
      k
      syntax Bool ::= Float "<=Float" Float [function, smt-hook(fp.leq), latex({#1}\mathrel{\leq_{\scriptstyle\it Float}}{#2}), hook(FLOAT.le)] + | Float "<Float" Float [function, smt-hook(fp.lt), latex({#1}\mathrel{<_{\scriptstyle\it Float}}{#2}), hook(FLOAT.lt)] + | Float ">=Float" Float [function, smt-hook(fp.geq), latex({#1}\mathrel{\geq_{\scriptstyle\it Float}}{#2}), hook(FLOAT.ge)] + | Float ">Float" Float [function, smt-hook(fg.gt), latex({#1}\mathrel{>_{\scriptstyle\it Float}}{#2}), hook(FLOAT.gt)] + | Float "==Float" Float [function, comm, smt-hook(fp.eq), latex({#1}\mathrel{==_{\scriptstyle\it Float}}{#2}), hook(FLOAT.eq), klabel(_==Float_)] + | Float "=/=Float" Float [function, comm, smt-hook((not (fp.eq #1 #2))), latex({#1}\mathrel{\neq_{\scriptstyle\it Float}}{#2})] + + rule F1:Float =/=Float F2:Float => notBool (F1 ==Float F2) +
      +

      Conversion between integer and float

      +

      You can convert an integer to a floating-point number with the specified +precision and exponent range. You can also convert a floating-point number +to the nearest integer. This operation rounds to the nearest integer, but it +also avoids the double-rounding that is present in ceilFloat and floorFloat +if the nearest integer is not representable in the specified floating-point +type.

      +
      k
      syntax Float ::= Int2Float(Int, precision: Int, exponentBits: Int) [function, latex({\\it{}Int2Float}), hook(FLOAT.int2float)] + syntax Int ::= Float2Int(Float) [function, total, latex({\\it{}Float2Int}), hook(FLOAT.float2int)] +
      +

      Implementation of Floats

      +

      The remainder of this section consists of an implementation in K of some of the +operators above.

      +
      k
      rule sqrtFloat(F:Float) => rootFloat(F, 2) + + rule isInfinite(F:Float) => F >Float maxValueFloat(precisionFloat(F), exponentBitsFloat(F)) orBool F <Float --Float maxValueFloat(precisionFloat(F), exponentBitsFloat(F)) + +endmodule +
      +

      Strings

      +

      Provided here is the syntax of an implementation of Unicode strings in K. This +type is hooked to an implementation of strings provided by the backend. The +implementation is currently incomplete and does not fully support encodings +and code points beyond the initial 256 code points of the Basic Latin and +Latin-1 Supplement blocks. In the future, there may be breaking changes to +the semantics of this module in order to support this functionality.

      +

      The syntax of strings in K is delineated by double quotes. Inside the double +quotes, any character can appear verbatim except double quotes, backslash, +newline, and carriage return. K also supports the following escape sequences:

      +
        +
      • " - the " character
      • +
      • \ - the \ character
      • +
      • \n - newline character
      • +
      • \r - carriage return character
      • +
      • \t - tab character
      • +
      • \f - form feed character
      • +
      • \xFF - \x followed by two hexadecimal characters indicates a code point +between 0x00 and 0xff
      • +
      • \uFFFF - \u followed by four hexadecimal characters indicates a code point +between 0x0000 and 0xffff
      • +
      • \UFFFFFFFF - \U followed by eight hexadecimal characters indicates a code +point between 0x000000 and 0x10ffff
      • +
      +
      k
      module STRING-SYNTAX + syntax String [hook(STRING.String)] + syntax String ::= r"[\\\"](([^\\\"\\n\\r\\\\])|([\\\\][nrtf\\\"\\\\])|([\\\\][x][0-9a-fA-F]{2})|([\\\\][u][0-9a-fA-F]{4})|([\\\\][U][0-9a-fA-F]{8}))*[\\\"]" [token] +endmodule + +module STRING-COMMON + imports STRING-SYNTAX + imports private INT + imports private FLOAT-SYNTAX + imports private K-EQUAL + imports private BOOL +
      +

      String concatenation

      +

      You can concatenate two strings in O(N) time. For successive concatenation +operations, it may be better to use the STRING-BUFFER module.

      +
      k
      syntax String ::= String "+String" String [function, total, left, latex({#1}+_{\scriptstyle\it String}{#2}), hook(STRING.concat)] +
      +

      String length

      +

      You can get the length of a string in O(1) time.

      +
      k
      syntax Int ::= lengthString ( String ) [function, total, hook(STRING.length)] +
      +

      Character and integer conversion

      +

      You can convert between a character (as represented by a string containing +a single code point) and an integer in O(1) time.

      +
      k
      syntax String ::= chrChar ( Int ) [function, hook(STRING.chr)] + syntax Int ::= ordChar ( String ) [function, hook(STRING.ord)] +
      +

      String substring

      +

      You can compute a substring of a string in O(N) time (where N is the +length of the substring). There are two important facts to note:

      +
        +
      1. the range generated includes the character at startIndex but excludes the +character at endIndex, i.e., the range is [startIndex..endIndex).
      2. +
      3. this function is only defined on valid indices (i.e., it is defined when +startIndex < endIndex and endIndex is less than or equal to the string +length).
      4. +
      +
      k
      syntax String ::= substrString ( String , startIndex: Int , endIndex: Int ) [function, total, hook(STRING.substr)] +
      + +

      You can find the first (respectively, last) occurrence of a substring, starting +at a certain index, in another string in O(N*M) time. +Returns -1 if the substring is not found.

      +
      k
      syntax Int ::= findString ( haystack: String , needle: String , index: Int ) [function, hook(STRING.find)] + syntax Int ::= rfindString ( haystack: String , needle: String , index: Int ) [function, hook(STRING.rfind)] +
      + +

      You can find the first (respectively, last) occurrence of one of the characters +of the search string, starting at a certain index, in another string in +O(N*M) time.

      +
      k
      syntax Int ::= findChar ( haystack: String , needles: String , index: Int ) [function, hook(STRING.findChar)] + syntax Int ::= rfindChar ( haystack: String , needles: String , index: Int ) [function, hook(STRING.rfindChar)] +
      +

      String and Bool conversion

      +
      k
      syntax String ::= Bool2String(Bool) [function, total] + rule Bool2String(true) => "true" + rule Bool2String(false) => "false" +
      +
      k
      syntax Bool ::= String2Bool(String) [function] + rule String2Bool("true") => true + rule String2Bool("false") => false +
      +

      String and float conversion

      +

      You can convert between a String and a Float. The String will be +represented in the syntax of the Float sort (see the section on the FLOAT +module above for details of that syntax). Which particular string is returned +by Float2String is determined by the backend, but the same Float is +guaranteed to return the same String, and converting that String back to a +Float is guaranteed to return the original Float.

      +

      You can also convert a Float to a string in a particular syntax using the +variant of Float2String with a format. In this case, the resulting string +is one which results directly from passing that format to mpfr_printf. This +functionality may not be supported on backends that do not use Gnu MPFR to +implement floating-point numbers.

      +
      k
      syntax String ::= Float2String ( Float ) [function, total, hook(STRING.float2string)] + syntax String ::= Float2String ( Float , format: String ) [function, klabel(FloatFormat), hook(STRING.floatFormat)] + syntax Float ::= String2Float ( String ) [function, hook(STRING.string2float)] +
      +

      String and integer conversions

      +

      You can convert between a String and an Int. The String will be represented +in the syntax of the INT module (i.e., a nonempty sequence of digits +optionally prefixed by a sign). When converting from an Int to a String, +the sign will not be present unless the integer is negative.

      +

      You can also convert between a String and an Int in a particular radix. +This radix can be anywhere between 2 and 36. For a radix 2 <= N <= 10, the +digits 0 to N-1 will be used. For a radix 11 <= N <= 36, the digits 0 to 9 +and the first N-10 letters of the Latin alphabet will be used. Both uppercase +and lowercase letters are supported by String2Base. Whether the letters +returned by Base2String are upper or lowercase is determined by the backend, +but the backend will consistently choose one or the other.

      +
      k
      syntax Int ::= String2Int ( String ) [function, hook(STRING.string2int)] + syntax String ::= Int2String ( Int ) [function, total, hook(STRING.int2string)] + syntax String ::= Base2String ( Int , base: Int ) [function, hook(STRING.base2string)] + syntax Int ::= String2Base ( String , base: Int ) [function, hook(STRING.string2base)] +
      +

      String count and replace

      +

      You can replace one, some, or all occurrences of a string within another +string in O(N*M) time. The replaceAll, replace, and replaceFirst methods +are identical, except replaceFirst replaces exactly one ocurrence of the +string, the first occurrence. replace replaces the first times occurrences. +And replaceAll replaces every occurrence.

      +

      You can also count the number of times a string occurs within another string +using countAllOccurrences.

      +
      k
      syntax String ::= "replaceAll" "(" haystack: String "," needle: String "," replacement: String ")" [function, total, hook(STRING.replaceAll)] + syntax String ::= "replace" "(" haystack: String "," needle: String "," replacement: String "," times: Int ")" [function, hook(STRING.replace)] + syntax String ::= "replaceFirst" "(" haystack: String "," needle: String "," replacement: String ")" [function, total, hook(STRING.replaceFirst)] + syntax Int ::= "countAllOccurrences" "(" haystack: String "," needle: String ")" [function, total, hook(STRING.countAllOccurrences)] +
      +

      String equality and lexicographic comparison

      +

      You can compare whether two strings are equal or unequal, or whether one string +is less than, less than or equal to, greater than, or greater than or equal to +another according to the natural lexicographic ordering of strings.

      +
      k
      syntax Bool ::= String "==String" String [function, total, comm, hook(STRING.eq)] + | String "=/=String" String [function, total, comm, hook(STRING.ne)] + rule S1:String =/=String S2:String => notBool (S1 ==String S2) + + syntax Bool ::= String "<String" String [function, total, hook(STRING.lt)] + | String "<=String" String [function, total, hook(STRING.le)] + | String ">String" String [function, total, hook(STRING.gt)] + | String ">=String" String [function, total, hook(STRING.ge)] +
      +

      Implementation of Strings

      +

      What follows is a few String hooks which are deprecated and only are supported +on certain outdated backends of K, as well as an implementation of several +of the above operations in K.

      +
      k
      syntax String ::= categoryChar(String) [function, hook(STRING.category)] + | directionalityChar(String) [function, hook(STRING.directionality)] + + syntax String ::= "newUUID" [function, hook(STRING.uuid), impure] + + rule S1:String <=String S2:String => notBool (S2 <String S1) + rule S1:String >String S2:String => S2 <String S1 + rule S1:String >=String S2:String => notBool (S1 <String S2) + + rule findChar(S1:String, S2:String, I:Int) => #if findString(S1, substrString(S2, 0, 1), I) ==Int -1 #then findChar(S1, substrString(S2, 1, lengthString(S2)), I) #else #if findChar(S1, substrString(S2, 1, lengthString(S2)), I) ==Int -1 #then findString(S1, substrString(S2, 0, 1), I) #else minInt(findString(S1, substrString(S2, 0, 1), I), findChar(S1, substrString(S2, 1, lengthString(S2)), I)) #fi #fi requires S2 =/=String "" + rule findChar(_, "", _) => -1 + rule rfindChar(S1:String, S2:String, I:Int) => maxInt(rfindString(S1, substrString(S2, 0, 1), I), rfindChar(S1, substrString(S2, 1, lengthString(S2)), I)) requires S2 =/=String "" + rule rfindChar(_, "", _) => -1 + + rule countAllOccurrences(Source:String, ToCount:String) => 0 + requires findString(Source, ToCount, 0) <Int 0 + rule countAllOccurrences(Source:String, ToCount:String) => 1 +Int countAllOccurrences(substrString(Source, findString(Source, ToCount, 0) +Int lengthString(ToCount), lengthString(Source)), ToCount) + requires findString(Source, ToCount, 0) >=Int 0 + + rule replaceFirst(Source:String, ToReplace:String, Replacement:String) => substrString(Source, 0, findString(Source, ToReplace, 0)) + +String Replacement +String substrString(Source, findString(Source, ToReplace, 0) +Int lengthString(ToReplace), lengthString(Source)) + requires findString(Source, ToReplace, 0) >=Int 0 + rule replaceFirst(Source:String, ToReplace:String, _:String) => Source + requires findString(Source, ToReplace, 0) <Int 0 + + + rule replace(Source:String, ToReplace:String, Replacement:String, Count:Int) => + substrString(Source, 0, findString(Source, ToReplace, 0)) +String Replacement +String + replace(substrString(Source, findString(Source, ToReplace, 0) +Int lengthString(ToReplace), lengthString(Source)), ToReplace, Replacement, Count -Int 1) + requires Count >Int 0 + rule replace(Source:String, _, _, 0) => Source + rule replaceAll(Source:String, ToReplace:String, Replacement:String) => replace(Source, ToReplace, Replacement, countAllOccurrences(Source, ToReplace)) + +endmodule + +module STRING-KORE [kore, symbolic] + imports private K-EQUAL + imports STRING-COMMON + + rule S1:String ==K S2:String => S1 ==String S2 [simplification] + +endmodule + +module STRING + imports STRING-COMMON + imports STRING-KORE +endmodule +
      +

      String Buffers

      +

      It is a well known fact that repeated string concatenations are quadratic +in performance whereas use of an efficient mutable representation of arrays +can yield linear performance. We thus provide such a sort, the StringBuffer +sort. Axiomatically, it is implemented below on symbolic backends using the +String module. However, on concrete backends it provides an efficient +implementation of string concatenation. There are three operations:

      +
        +
      • .StringBuffer creates a new StringBuffer with current content equal +to the empty string.
      • +
      • +String takes a StringBuffer and a String and appends the String to +the end of the StringBuffer
      • +
      • StringBuffer2String converts a StringBuffer to a String. This operation +copies the string so that subsequent modifications to the StringBuffer +will not change the value of the String returned by this function.
      • +
      +
      k
      module STRING-BUFFER-IN-K [symbolic] + imports private BASIC-K + imports STRING + + syntax StringBuffer ::= ".StringBuffer" [function, total] + syntax StringBuffer ::= StringBuffer "+String" String [function, total, avoid] + syntax StringBuffer ::= String + syntax String ::= StringBuffer2String ( StringBuffer ) [function, total] + + rule {SB:String +String S:String}<:StringBuffer => (SB +String S)::String + rule .StringBuffer => "" + rule StringBuffer2String(S:String) => S +endmodule + +module STRING-BUFFER-HOOKED [concrete] + imports private BASIC-K + imports STRING + + syntax StringBuffer [hook(BUFFER.StringBuffer)] + syntax StringBuffer ::= ".StringBuffer" [function, total, hook(BUFFER.empty), impure] + syntax StringBuffer ::= StringBuffer "+String" String [function, total, hook(BUFFER.concat), avoid] + syntax String ::= StringBuffer2String ( StringBuffer ) [function, total, hook(BUFFER.toString)] +endmodule + +module STRING-BUFFER + imports STRING-BUFFER-HOOKED + imports STRING-BUFFER-IN-K +endmodule +
      +

      Byte Arrays

      +

      Provided here is the syntax of an implementation of fixed-width arrays of Bytes +in K. This type is hooked to an implementation of bytes provided by the +backend. In concrete backends, this representation is mutable and thus multiple +references can occur to the same Bytes object and when one is modified, the +others are also modified. Care should be taken not to rely on this fact however +as this is not the case in symbolic backends and thus you will experience +divergent behavior unless the Bytes type is used in a manner that preserves +consistency.

      +
      k
      module BYTES-SYNTAX + imports private STRING-SYNTAX + + syntax Bytes [hook(BYTES.Bytes)] + syntax Bytes ::= r"b[\\\"](([\\x20\\x21\\x23-\\x5B\\x5D-\\x7E])|([\\\\][tnfr\\\"\\\\])|([\\\\][x][0-9a-fA-F]{2}))*[\\\"]" [token] +endmodule +
      +
      k
      module BYTES-STRING-ENCODE [kore, symbolic] + imports BYTES-SYNTAX +
      +

      Encoding/decoding between Bytes and String

      +

      You can encode/decode between Bytes and String using UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, and UTF-32BE

      +
      k
      syntax String ::= decodeBytes ( encoding: String , contents: Bytes ) [function, hook(BYTES.decodeBytes)] + syntax Bytes ::= encodeBytes ( encoding: String , contents: String ) [function, hook(BYTES.encodeBytes)] +endmodule +
      +
      k
      module BYTES-HOOKED + imports STRING-SYNTAX + imports BYTES-SYNTAX + imports BYTES-STRING-ENCODE +
      +

      Empty byte array

      +

      The byte array of length zero is represented by .Bytes.

      +
      k
      syntax Bytes ::= ".Bytes" [function, total, hook(BYTES.empty)] +
      +

      Endianness

      +

      When converting to/from an integer, byte arrays can be treated as either little +endian (ie, least significant byte first) or big endian (ie, most significant +byte first).

      +
      k
      syntax Endianness ::= "LE" [klabel(littleEndianBytes), symbol] + | "BE" [klabel(bigEndianBytes), symbol] +
      +

      Signedness

      +

      When converting to/from an integer, byte arrays can be treated as either signed +or unsigned.

      +
      k
      syntax Signedness ::= "Signed" [klabel(signedBytes), symbol] + | "Unsigned" [klabel(unsignedBytes), symbol] +
      +

      Integer and Bytes conversion

      +

      You can convert from a Bytes to an Int. In order to do this, the endianness +and signedness of the Bytes must be provided. The resulting integer is +created by means of interpreting the Bytes as either a twos-complement +representation, or an unsigned representation, of an integer, in the specified +byte order.

      +

      You can also convert from an Int to a Bytes. This comes in two variants. +In the first, the length of the resulting Bytes in bytes is explicitly +specified. If the length is greater than the highest set bit in the magnitude +of the integer, the result is padded with 0 bits if the number is positive +and 1 bits if the number is negative. If the length is less than the highest +bit set in the magnitude of the integer, the most-significant bits of the +integer will be truncated. The endianness of the resulting Bytes object +is as specified.

      +

      In the second variant, both endianness and signedness are specified, and +the resulting Bytes object will be the smallest number of bytes necessary +for the resulting Bytes object to be convertible back to the original integer +via Bytes2Int. In other words, if the highest bit set in the magnitude of the +integer is N, then the byte array will be at least N+1 bits long, rounded up +to the nearest byte.

      +
      k
      syntax Int ::= Bytes2Int(Bytes, Endianness, Signedness) [function, total, hook(BYTES.bytes2int)] + syntax Bytes ::= Int2Bytes(length: Int, Int, Endianness) [function, total, hook(BYTES.int2bytes)] + | Int2Bytes(Int, Endianness, Signedness) [function, total, klabel(Int2BytesNoLen)] +
      +

      String and Bytes conversion

      +

      You can convert between a Bytes and a String in O(N) time. The resulting +value is a copy of the original and will not be affected by subsequent +mutations of the input or output value.

      +
      k
      syntax String ::= Bytes2String(Bytes) [function, total, hook(BYTES.bytes2string)] + syntax Bytes ::= String2Bytes(String) [function, total, hook(BYTES.string2bytes)] +
      +

      Bytes update

      +

      You can set the value of a particular byte in a Bytes object in O(1) time. +The result is #False if value is not in the range [0..255] or if index +is not a valid index (ie, less than zero or greater than or equal to the length +of the Bytes term).

      +
      k
      syntax Bytes ::= Bytes "[" index: Int "<-" value: Int "]" [function, hook(BYTES.update)] +
      +

      Bytes lookup

      +

      You can get the value of a particular byte in a Bytes object in O(1) time. +The result is #False if index is not a valid index (see above).

      +
      k
      syntax Int ::= Bytes "[" Int "]" [function, hook(BYTES.get)] +
      +

      Bytes substring

      +

      You can get a new Bytes object containing a range of bytes from the input +Bytes in O(N) time (where N is the length of the substring). The range +of bytes included is [startIndex..endIndex). The resulting Bytes is +a copy and mutations to it do not affect mutations to the original Bytes. +The result is #False if startIndex or endIndex are not valid.

      +
      k
      syntax Bytes ::= substrBytes(Bytes, startIndex: Int, endIndex: Int) [function, hook(BYTES.substr)] +
      +

      Multiple bytes update

      +

      You can modify a Bytes to return a Bytes which is equal to dest except +the N elements starting at index are replaced with the contents of src in +O(N) time. This does not create a new Bytes object and will instead modify +the original on concrete backends. The result is #False if index + N +is not a valid index.

      +
      k
      syntax Bytes ::= replaceAtBytes(dest: Bytes, index: Int, src: Bytes) [function, hook(BYTES.replaceAt)] +
      +

      Bytes padding

      +

      You can create a new Bytes object which is at least length bytes long +by taking the input sequence and padding it on the right (respectively, on the +left) with the specified value. This does not create a new Bytes object +if the input is already at least length bytes long, and will instead +return the input unchanged. The result is #False if value is not in the +range [0..255], or if the length is negative.

      +
      k
      syntax Bytes ::= padRightBytes(Bytes, length: Int, value: Int) [function, hook(BYTES.padRight)] + | padLeftBytes(Bytes, length: Int, value: Int) [function, hook(BYTES.padLeft)] +
      +

      Bytes reverse

      +

      You can reverse a Bytes object in O(N) time. This does not create a new +Bytes object and will instead modify the original on concrete backends.

      +
      k
      syntax Bytes ::= reverseBytes(Bytes) [function, total, hook(BYTES.reverse)] +
      +

      Bytes length

      +

      You can get the length of a Bytes term in O(1) time.

      +
      k
      syntax Int ::= lengthBytes(Bytes) [function, total, hook(BYTES.length), smtlib(lengthBytes)] +
      +

      Bytes concatenation

      +

      You can create a new Bytes object by concatenating two Bytes objects +together in O(N) time.

      +
      k
      syntax Bytes ::= Bytes "+Bytes" Bytes [function, total, hook(BYTES.concat), right] + +endmodule +
      +

      Implementation of Bytes

      +

      The remainder of this module consists of an implementation of some of the +operators listed above in K.

      +
      k
      module BYTES-CONCRETE [concrete] + imports BYTES-HOOKED +endmodule + +module BYTES-KORE [kore] + imports BYTES-HOOKED + imports BYTES-SYMBOLIC-CEIL +endmodule + +module BYTES-SYMBOLIC-CEIL [symbolic, kore] + imports BYTES-HOOKED + imports private INT + imports private BOOL + + rule #Ceil(padRightBytes(_, LEN, VAL)) => {(0 <=Int LEN andBool 0 <=Int VAL andBool VAL <Int 256) #Equals true} [simplification] + rule #Ceil(padLeftBytes(_, LEN, VAL)) => {(0 <=Int LEN andBool 0 <=Int VAL andBool VAL <Int 256) #Equals true} [simplification] +endmodule + +module BYTES + imports BYTES-CONCRETE + imports BYTES-KORE + imports private INT + + rule Int2Bytes(I::Int, E::Endianness, Unsigned) => Int2Bytes((log2Int(I) +Int 8) /Int 8, I, E) + requires I >Int 0 + rule Int2Bytes(0, _::Endianness, _) => .Bytes + rule Int2Bytes(I::Int, E::Endianness, Signed) => Int2Bytes((log2Int(I) +Int 9) /Int 8, I, E) + requires I >Int 0 + rule Int2Bytes(I::Int, E::Endianness, Signed) => Int2Bytes((log2Int(~Int I) +Int 9) /Int 8, I, E) + requires I <Int -1 + rule Int2Bytes(-1, E::Endianness, Signed) => Int2Bytes(1, -1, E) +endmodule +
      +

      Program identifiers

      +

      Provided here is an implementation for program identifiers in K. Developers +of semantics for a particular language may wish to use their own implementation +instead of the one provided here if their syntax differs from the syntax +defined below. However, this is provided for convenience for developers who +do not care about the lexical syntax of identifiers.

      +

      Provided are the following pieces of functionality:

      +
        +
      • Id2String - Convert an Id to a String containing its name
      • +
      • String2Id - Convert a String to an Id with the specified name
      • +
      • !X:Id - You can get a fresh identifier distinct from any previous identifier +generated by this syntax.
      • +
      +
      k
      module ID-SYNTAX-PROGRAM-PARSING + imports BUILTIN-ID-TOKENS + syntax Id ::= r"(?<![A-Za-z0-9\\_])[A-Za-z\\_][A-Za-z0-9\\_]*" [prec(1), token] + | #LowerId [token] + | #UpperId [token] +endmodule + +module ID-SYNTAX + syntax Id [token] +endmodule + +module ID-COMMON + imports ID-SYNTAX + imports private STRING + + syntax String ::= Id2String ( Id ) [function, total, hook(STRING.token2string)] + syntax Id ::= String2Id (String) [function, total, hook(STRING.string2token)] + syntax Id ::= freshId(Int) [freshGenerator, function, total, private] + + rule freshId(I:Int) => String2Id("_" +String Int2String(I)) +endmodule + +module ID + imports ID-COMMON +endmodule +
      +

      Equality and conditionals

      +

      Provided here are implementations of two important primitives in K:

      +
        +
      • ==K - the equality between two terms. Returns true if they are equal +and false if they are not equal.
      • +
      • #if #then #else #fi - polymorphic conditional function. If the first +argument evaluates to true, the second argument is returned. Otherwise, +the third argument is returned. Note that this does not short-circuit on +symbolic backends.
      • +
      +
      k
      module K-EQUAL-SYNTAX + imports private BOOL + imports private BASIC-K + + syntax Bool ::= left: + K "==K" K [function, total, comm, smt-hook(=), hook(KEQUAL.eq), klabel(_==K_), symbol, latex({#1}\mathrel{=_K}{#2}), group(equalEqualK)] + | K "=/=K" K [function, total, comm, smt-hook(distinct), hook(KEQUAL.ne), klabel(_=/=K_), symbol, latex({#1}\mathrel{\neq_K}{#2}), group(notEqualEqualK)] + + syntax priorities equalEqualK notEqualEqualK > boolOperation mlOp + + syntax {Sort} Sort ::= "#if" Bool "#then" Sort "#else" Sort "#fi" [function, total, smt-hook(ite), hook(KEQUAL.ite)] + +endmodule + +module K-EQUAL-KORE [kore, symbolic] + import private BOOL + import K-EQUAL-SYNTAX + + rule K1:Bool ==K K2:Bool => K1 ==Bool K2 [simplification] + rule {K1 ==K K2 #Equals true} => {K1 #Equals K2} [simplification] + rule {true #Equals K1 ==K K2} => {K1 #Equals K2} [simplification] + rule {K1 ==K K2 #Equals false} => #Not({K1 #Equals K2}) [simplification] + rule {false #Equals K1 ==K K2} => #Not({K1 #Equals K2}) [simplification] + rule {K1 =/=K K2 #Equals true} => #Not({K1 #Equals K2}) [simplification] + rule {true #Equals K1 =/=K K2} => #Not({K1 #Equals K2}) [simplification] + rule {K1 =/=K K2 #Equals false} => {K1 #Equals K2} [simplification] + rule {false #Equals K1 =/=K K2} => {K1 #Equals K2} [simplification] + +endmodule + +module K-EQUAL + import private BOOL + import K-EQUAL-SYNTAX + import K-EQUAL-KORE + + rule K1:K =/=K K2:K => notBool (K1 ==K K2) + + rule #if C:Bool #then B1::K #else _ #fi => B1 requires C + rule #if C:Bool #then _ #else B2::K #fi => B2 requires notBool C + +endmodule +
      +

      Meta operations

      +

      Provided below are a few miscellaneous, mostly deprecated functions in K. +It is not recommended to use any of them directly as they are largely +unsupported in modern K. There are a few exceptions:

      +
        +
      • #getenv - Returns the value of an environment variable
      • +
      • #parseKORE - Takes a String containing a K intermediate representation of +a term such as is returned by kast -o kore and converts it to a term. +This is NOT type-safe. The responsibility is on the user to ensure that the +string they provide is a valid representation of a term of the sort exactly +equal to the sort where the function appears.
      • +
      • #kompiledDirectory - Returns the path to the current compiled K definition +directory.
      • +
      • #unparseKORE = Takes a K term and converts it to a string.
      • +
      +
      k
      module K-REFLECTION + imports BASIC-K + imports STRING + + syntax K ::= "#configuration" [function, impure, hook(KREFLECTION.configuration)] + syntax String ::= #sort(K) [function, hook(KREFLECTION.sort)] + syntax KItem ::= #fresh(String) [function, hook(KREFLECTION.fresh), impure] + syntax KItem ::= getKLabel(K) [function, hook(KREFLECTION.getKLabel)] + + syntax K ::= #getenv(String) [function, impure, hook(KREFLECTION.getenv)] + + syntax String ::= #kompiledDirectory() [function, hook(KREFLECTION.kompiledDir)] + + // meaningful only for the purposes of compilation to a binary, otherwise + // undefined + syntax List ::= #argv() [function, hook(KREFLECTION.argv)] + + // Takes as input a string and returns a K term + syntax {Sort} Sort ::= #parseKORE(String) [function, hook(KREFLECTION.parseKORE)] + syntax {Sort} String ::= #unparseKORE(Sort) [function, hook(KREFLECTION.printKORE)] + syntax IOError ::= "#noParse" "(" String ")" [klabel(#noParse), symbol] + +endmodule +
      +

      I/O in K

      +

      Concrete execution in K supports I/O operations. This functionality is not +supported during symbolic execution, because symbolic execution must exist +completely free of side-effects, and I/O is an irreducible type of side effect. +However, it is useful in many cases when defining concrete execution to be able +to make reference to I/O operations.

      +

      The design of these I/O operations is based on the POSIX standard, for the most +part. For example, the #read K function maps to the read POSIX function. We +do not at this time have a higher-level API for I/O, but this may be +implemented at some point in the future.

      +

      I/O operations generally return either their result, or an IOError term +corresponding to the errno returned by the underlying system call.

      +
      k
      module K-IO + imports private LIST + imports private STRING + imports private INT +
      +

      I/O errors

      +

      Aside from EOF, which is returned by #getc if the file is at end-of-file, all +of the below I/O errors correspond to possible values for errno after calling +a library function. If the errno returned is not one of the below errnos +known to K, #unknownIOError is returned along with the integer errno value.

      +
      k
      syntax IOError ::= "#EOF" [klabel(#EOF), symbol] | #unknownIOError(errno: Int) [symbol] + | "#E2BIG" [klabel(#E2BIG), symbol] + | "#EACCES" [klabel(#EACCES), symbol] + | "#EAGAIN" [klabel(#EAGAIN), symbol] + | "#EBADF" [klabel(#EBADF), symbol] + | "#EBUSY" [klabel(#EBUSY), symbol] + | "#ECHILD" [klabel(#ECHILD), symbol] + | "#EDEADLK" [klabel(#EDEADLK), symbol] + | "#EDOM" [klabel(#EDOM), symbol] + | "#EEXIST" [klabel(#EEXIST), symbol] + | "#EFAULT" [klabel(#EFAULT), symbol] + | "#EFBIG" [klabel(#EFBIG), symbol] + | "#EINTR" [klabel(#EINTR), symbol] + | "#EINVAL" [klabel(#EINVAL), symbol] + | "#EIO" [klabel(#EIO), symbol] + | "#EISDIR" [klabel(#EISDIR), symbol] + | "#EMFILE" [klabel(#EMFILE), symbol] + | "#EMLINK" [klabel(#EMLINK), symbol] + | "#ENAMETOOLONG" [klabel(#ENAMETOOLONG), symbol] + | "#ENFILE" [klabel(#ENFILE), symbol] + | "#ENODEV" [klabel(#ENODEV), symbol] + | "#ENOENT" [klabel(#ENOENT), symbol] + | "#ENOEXEC" [klabel(#ENOEXEC), symbol] + | "#ENOLCK" [klabel(#ENOLCK), symbol] + | "#ENOMEM" [klabel(#ENOMEM), symbol] + | "#ENOSPC" [klabel(#ENOSPC), symbol] + | "#ENOSYS" [klabel(#ENOSYS), symbol] + | "#ENOTDIR" [klabel(#ENOTDIR), symbol] + | "#ENOTEMPTY" [klabel(#ENOTEMPTY), symbol] + | "#ENOTTY" [klabel(#ENOTTY), symbol] + | "#ENXIO" [klabel(#ENXIO), symbol] + | "#EPERM" [klabel(#EPERM), symbol] + | "#EPIPE" [klabel(#EPIPE), symbol] + | "#ERANGE" [klabel(#ERANGE), symbol] + | "#EROFS" [klabel(#EROFS), symbol] + | "#ESPIPE" [klabel(#ESPIPE), symbol] + | "#ESRCH" [klabel(#ESRCH), symbol] + | "#EXDEV" [klabel(#EXDEV), symbol] + | "#EWOULDBLOCK" [klabel(#EWOULDBLOCK), symbol] + | "#EINPROGRESS" [klabel(#EINPROGRESS), symbol] + | "#EALREADY" [klabel(#EALREADY), symbol] + | "#ENOTSOCK" [klabel(#ENOTSOCK), symbol] + | "#EDESTADDRREQ" [klabel(#EDESTADDRREQ), symbol] + | "#EMSGSIZE" [klabel(#EMSGSIZE), symbol] + | "#EPROTOTYPE" [klabel(#EPROTOTYPE), symbol] + | "#ENOPROTOOPT" [klabel(#ENOPROTOOPT), symbol] + | "#EPROTONOSUPPORT" [klabel(#EPROTONOSUPPORT), symbol] + | "#ESOCKTNOSUPPORT" [klabel(#ESOCKTNOSUPPORT), symbol] + | "#EOPNOTSUPP" [klabel(#EOPNOTSUPP), symbol] + | "#EPFNOSUPPORT" [klabel(#EPFNOSUPPORT), symbol] + | "#EAFNOSUPPORT" [klabel(#EAFNOSUPPORT), symbol] + | "#EADDRINUSE" [klabel(#EADDRINUSE), symbol] + | "#EADDRNOTAVAIL" [klabel(#EADDRNOTAVAIL), symbol] + | "#ENETDOWN" [klabel(#ENETDOWN), symbol] + | "#ENETUNREACH" [klabel(#ENETUNREACH), symbol] + | "#ENETRESET" [klabel(#ENETRESET), symbol] + | "#ECONNABORTED" [klabel(#ECONNABORTED), symbol] + | "#ECONNRESET" [klabel(#ECONNRESET), symbol] + | "#ENOBUFS" [klabel(#ENOBUFS), symbol] + | "#EISCONN" [klabel(#EISCONN), symbol] + | "#ENOTCONN" [klabel(#ENOTCONN), symbol] + | "#ESHUTDOWN" [klabel(#ESHUTDOWN), symbol] + | "#ETOOMANYREFS" [klabel(#ETOOMANYREFS), symbol] + | "#ETIMEDOUT" [klabel(#ETIMEDOUT), symbol] + | "#ECONNREFUSED" [klabel(#ECONNREFUSED), symbol] + | "#EHOSTDOWN" [klabel(#EHOSTDOWN), symbol] + | "#EHOSTUNREACH" [klabel(#EHOSTUNREACH), symbol] + | "#ELOOP" [klabel(#ELOOP), symbol] + | "#EOVERFLOW" [klabel(#EOVERFLOW), symbol] +
      +

      I/O result sorts

      +

      Here we see sorts defined to contain either an Int or an IOError, or +either a String or an IOError. These sorts are used to implement the +return sort of functions that may succeed, in which case they return a value, +or may fail, in which case their return value indicates an error and the +error indicated is returned via errno.

      +
      k
      syntax IOInt ::= Int | IOError + syntax IOString ::= String | IOError +
      +

      Opening a file

      +

      You can open a file in K using #open. An optional mode indicates the file +open mode, which can have any value allowed by the fopen function in C. +The returned value is the file descriptor that was opened, or an error.

      +
      k
      syntax IOInt ::= "#open" "(" path: String ")" [function] + | "#open" "(" path: String "," mode: String ")" [function, hook(IO.open), impure] + + rule #open(S:String) => #open(S:String, "r+") +
      +

      Get/set position in file

      +

      You can get the current offset in a file using #tell. You can also seek +to a particular offset using #seek or #seekEnd. #seek is implemented via +a call to lseek with the SEEK_SET whence. #seekEnd is implemented via a +call to lseek with the SEEK_END whence. You can emulate the SEEK_CUR +whence by means of #seek(FD, #tell(FD) +Int Offset).

      +
      k
      syntax IOInt ::= "#tell" "(" fd: Int ")" [function, hook(IO.tell), impure] + syntax K ::= "#seek" "(" fd: Int "," index: Int ")" [function, hook(IO.seek), impure] + | "#seekEnd" "(" fd: Int "," fromEnd: Int ")" [function, hook(IO.seekEnd), impure] +
      +

      Read from file

      +

      You can read a single character from a file using #getc. #EOF is returned +if you are at end-of-fie.

      +

      You can also read up to length characters in a file using #read. The +resulting read characters are returned, which may be fewer characters than +requested. A string of zero length being returned indicates end-of-file.

      +
      k
      syntax IOInt ::= "#getc" "(" fd: Int ")" [function, hook(IO.getc), impure] + syntax IOString ::= "#read" "(" fd: Int "," length: Int ")" [function, hook(IO.read), impure] +
      +

      Write to file

      +

      You can write a single character to a file using #putc. You can also write +a string to a file using #write. The returned value on success is .K.

      +
      k
      syntax K ::= "#putc" "(" fd: Int "," value: Int ")" [function, hook(IO.putc), impure] + | "#write" "(" fd: Int "," value: String ")" [function, hook(IO.write), impure] +
      +

      Closing a file

      +

      You can close a file using #close. The returned value on success is .K.

      +
      k
      syntax K ::= "#close" "(" fd: Int ")" [function, hook(IO.close), impure] +
      +

      Locking/unlocking a file

      +

      You can lock or unlock parts of a file using the #lock and #unlock +functions. The lock starts at the beginning of the file and continues for +endIndex bytes. Note that Unix systems do not actually prevent locked files +from being read and modified; you will have to lock both sides of a concurrent +access to guarantee exclusivity.

      +
      k
      syntax K ::= "#lock" "(" fd: Int "," endIndex: Int ")" [function, hook(IO.lock), impure] + | "#unlock" "(" fd: Int "," endIndex: Int ")" [function, hook(IO.unlock), impure] +
      +

      Networking

      +

      You can accept a connection on a socket using #accept, or shut down the +write end of a socket with #shutdownWrite. Note that facility is not provided +for opening, binding, and listening on sockets. These functions are implemented +in order to support creating stateful request/response servers where the +request loop is implemented using rewriting in K, but the connection +initialization is written in native code and linked into the LLVM backend.

      +
      k
      syntax IOInt ::= "#accept" "(" fd: Int ")" [function, hook(IO.accept), impure] + syntax K ::= "#shutdownWrite" "(" fd: Int ")" [function, hook(IO.shutdownWrite), impure] +
      +

      Time

      +

      You can get the current time in seconds since midnight UTC on January 1, 1970 +using #time.

      +
      k
      syntax Int ::= "#time" "(" ")" [function, hook(IO.time), impure] +
      +

      Builtin file descriptors

      +

      Provided here are functions that return the file descriptor for standard input, +standard output, and standard error.

      +
      k
      syntax Int ::= "#stdin" [function, total] + | "#stdout" [function, total] + | "#stderr" [function, total] + + rule #stdin => 0 + rule #stdout => 1 + rule #stderr => 2 +
      +

      Shell access

      +

      You can execute a command using the shell using the #system operator. Care +must be taken to sanitize inputs to this function or security issues may +result. Note that K has no facility for reasoning about logic that happens +outside its process, so any functionality that you wish to be able to formally +reason about in K should not be implemented via the #system operator.

      +
      k
      syntax KItem ::= #system ( String ) [function, hook(IO.system), impure] + | "#systemResult" "(" Int /* exit code */ "," String /* stdout */ "," String /* stderr */ ")" [klabel(#systemResult), symbol] +
      +

      Temporary files

      +

      You can get a temporary file and open it atomically using the #mkstemp +operator. The resulting file will be closed and deleted when K rewriting ends. +For more info on the argument to #mkstemp, see man mkstemp.

      +
      k
      syntax IOFile ::= #mkstemp(template: String) [function, hook(IO.mkstemp), impure] + syntax IOFile ::= IOError + | "#tempFile" "(" path: String "," fd: Int ")" [klabel(#tempFile), symbol] +
      +

      Deleting a file

      +

      You can delete a file using its absolute or relative path using the #remove +operator. It returns .K on success or an IOError on failure.

      +
      k
      syntax K ::= #remove(path: String) [function, total, hook(IO.remove), impure] +
      +

      Logging

      +

      You can log information to disk using the #logToFile operator. Semantically, +this operator returns .K. However, it has a side effect that is not reasoned +about which is that value will be written to a uniquely-identified file +containing name in its name. The file is only flushed to disk when rewriting +finishes.

      +
      k
      syntax K ::= #logToFile(name: String, value: String) [function, total, hook(IO.log), impure, returnsUnit, symbol] +
      +

      Strings can also be logged via the logging mechanisms available to the backend. +On the LLVM backend, this just means logging the text to standard error. On the +Haskell backend, a log message of type InfoUserLog is created with the +specified text.

      +
      k
      syntax K ::= #log(value: String) [function, total, hook(IO.logString), impure, returnsUnit, symbol] +
      +

      Terms can also be logged to standard error in surface syntax, rather than as +KORE using #trace. This operator has similar semantics to #logToFile (i.e. +it returns .K, but prints as an impure side effect). Note that calling +#trace is equivalent to invoking the kprint tool for the first term that is +logged, which requires re-parsing the underlying K definition. Subsequent calls +do not incur this overhead again; the definition is cached.

      +
      k
      syntax K ::= #trace(value: KItem) [function, total, hook(IO.traceTerm), impure, returnsUnit, symbol] + | #traceK(value: K) [function, total, hook(IO.traceTerm), impure, returnsUnit, symbol] +
      +

      Implementation of high-level I/O streams in K

      +

      Below is an implementation of the stream="stdin" and stream="stdout" +cell attributes in K. You should not refer to these symbols or modules directly +in your definition. It is provided only so that the K compiler can make use of +it. For more information on how to use this feature, refer to IMP++ in the K +tutorial.

      +
      k
      syntax Stream ::= #buffer(K) + | #istream(Int) + | #parseInput(String, String) + | #ostream(Int) + +endmodule + +// NOTE: DO NOT DIRECTLY IMPORT *-STREAM MODULES +// These stream modules will be automatically instantiated and implicitly imported +// into the main module when `stream` attributes appear in configuration cells. +// Only `Stream` productions and `[stream]` rules will be imported. +// The cell name will be replaced with the one of the main configuration. + +module STDIN-STREAM + imports K-IO + imports K-REFLECTION + imports LIST + imports INT + imports BOOL + + configuration <stdin> ListItem(#buffer($STDIN:String)) ListItem($IO:String) ListItem(#istream(#stdin)) </stdin> + + // read one character at a time until we read whitespace + rule [stdinGetc]: + <stdin> + ListItem(#parseInput(_:String, Delimiters:String)) + ListItem(#buffer(S:String => S +String chrChar({#getc(N)}:>Int))) + ListItem("on") + ListItem(#istream(N:Int)) + </stdin> + requires findChar(S, Delimiters, 0) ==Int -1 // [stdin] + [stream, priority(200)] + + // when we reach whitespace, if it parses create a ListItem + rule [stdinParseString]: + <stdin> + (ListItem(#parseInput("String", Delimiters:String)) => ListItem(S)) + ListItem(#buffer(S:String => "")) + _:List + </stdin> + requires findChar(S, Delimiters, 0) =/=Int -1 // [stdin] + [stream] + + // a hack: handle the case when we read integers without the help of the IO server + rule [stdinParseInt]: + <stdin> + (ListItem(#parseInput("Int", Delimiters:String)) + => ListItem(String2Int(substrString(S, 0, findChar(S, Delimiters, 0))))) + ListItem(#buffer(S:String => substrString(S,findChar(S, Delimiters, 0) +Int 1, lengthString(S)))) + _:List + </stdin> + requires findChar(S, Delimiters, 0) =/=Int -1 + andBool lengthString(S) >Int 1 // [stdin] + [stream] + + rule [stdinTrim]: + <stdin> + ListItem(#parseInput(Sort:String, Delimiters:String)) + ListItem(#buffer(S:String => substrString(S, 1, lengthString(S)))) + _:List + </stdin> + requires findChar(S, Delimiters, 0) =/=Int -1 + andBool Sort =/=String "String" + andBool lengthString(S) <=Int 1 // [stdin] + [stream] + + // NOTE: This unblocking rule will be instantiated and inserted carefully + // when necessary according to user-defined rules, since otherwise it will + // lead to a diverging (i.e., non-terminating) transition system definition. + // Currently, it supports only a simple pattern matching on the top of the + // input stream cell, e.g., + // rule <k> read() => V ... </k> <in> ListItem(V:Int) => .List ... </in> + // Non-supported rules that refer to the input stream cell in a sophisticated + // way will get stuck in concrete execution mode with real IO enabled (i.e., + // under `--io on` option), while they will still work in symbolic execution + // mode or concrete execution mode with real IO disabled (i.e., under `--io + // off`, `--search`, or `--debug` options). + // + // TODO: More patterns need to be supported as well. In that case, we need to + // have a way to specify such patterns. + rule [stdinUnblock]: + <stdin> + (.List => ListItem(#parseInput(?Sort:String, ?Delimiters:String))) + ListItem(#buffer(_:String)) + ... + </stdin> + + /* + syntax Stream ::= "#noIO" + + rule ListItem(#buffer(_)) + (ListItem(#noIO) ListItem(#istream(_:Int)) => .List) [stdin] + */ + +endmodule + +module STDOUT-STREAM + imports K-IO + imports LIST + imports STRING + + configuration <stdout> ListItem(#ostream(#stdout)) ListItem($IO:String) ListItem(#buffer("")) </stdout> +//configuration <stderr> ListItem(#ostream(#stderr)) ListItem($IO:String) ListItem(#buffer("")) </stderr> + + rule [stdoutBufferFloat]: + <stdout> + ListItem(#ostream(_)) + ListItem(_) + ListItem(#buffer(Buffer:String => Buffer +String Float2String(F))) + (ListItem(F:Float) => .List) + _:List + </stdout> + // [stdout, stderr] + [stream, priority(25)] + rule [stdoutBufferInt]: + <stdout> + ListItem(#ostream(_)) + ListItem(_) + ListItem(#buffer(Buffer:String => Buffer +String Int2String(I))) + (ListItem(I:Int) => .List) + _:List + </stdout> + // [stdout, stderr] + [stream, priority(25)] + rule [stdoutBufferString]: + <stdout> + ListItem(#ostream(_)) + ListItem(_) + ListItem(#buffer(Buffer:String => Buffer +String S)) + (ListItem(S:String) => .List) + _:List + </stdout> + // [stdout, stderr] + [stream, priority(25)] + + // Send first char from the buffer to the server + rule [stdoutWrite]: + <stdout> + ListItem(#ostream(N:Int => {#write(N, S) ~> N:Int}:>Int)) + ListItem("on") + ListItem(#buffer(S:String => "")) + _:List + </stdout> + requires S =/=String "" // [stdout, stderr] + [stream, priority(30)] + + /* + syntax Stream ::= "#noIO" + + rule ListItem(#buffer(Buffer:String => Buffer +String Float2String(F))) + (ListItem(F:Float) => .List) + _:List [stdout, stderr] + rule ListItem(#buffer(Buffer:String => Buffer +String Int2String(I))) + (ListItem(I:Int) => .List) + _:List [stdout, stderr] + rule ListItem(#buffer(Buffer:String => Buffer +String S)) + (ListItem(S:String) => .List) + _:List [stdout, stderr] + + rule (ListItem(#ostream(_:Int)) ListItem(#noIO) => .List) + ListItem(#buffer(_)) + _:List [stdout, stderr] + */ + +endmodule +
      +

      Machine Integers

      +

      Provided here is an implementation of arbitrarily large fixed-precision binary +integers in K. This type is hooked to an implementation of integers provided +by the backend, and in particular makes use of native machine integers for +certain sizes of integer. For arbitrary-precision integers, see the INT +module above.

      +

      The syntax of machine integers in K is the same as arbitrary-precision integers +(i.e., an optional sign followed by a sequence of digits) except that machine +integers always end in a suffix pN where N is an integer indicating the +width in bits of the integer. The MInt sort is parametric, and this is +reflected in the literals. For example, the sort of 0p8 is MInt{8}.

      +
      k
      module MINT-SYNTAX + /*@\section{Description} The MInt implements machine integers of arbitrary + * bit width represented in 2's complement. */ + syntax {Width} MInt{Width} [hook(MINT.MInt)] + + /*@ Machine integer of bit width and value. */ + syntax {Width} MInt{Width} ::= r"[\\+-]?[0-9]+[pP][0-9]+" [token, prec(2), hook(MINT.literal)] +endmodule + +module MINT + imports MINT-SYNTAX + imports private INT + imports private BOOL +
      +

      Bitwidth of MInt

      +

      You can get the number of bits of width in an MInt using bitwidthMInt.

      +
      k
      syntax {Width} Int ::= bitwidthMInt(MInt{Width}) [function, total, hook(MINT.bitwidth)] +
      +

      Int and MInt conversions

      +

      You can convert from an MInt to an Int using the MInt2Signed and +MInt2Unsigned functions. an MInt does not have a sign; its sign is instead +reflected in how operators interpret its value either as a signed integer or as +an unsigned integer. Thus, you can interpret a MInt as a signed integer witth +MInt2Signed, or as an unsigned integer respectively using MInt2Unsigned.

      +

      You can also convert from an Int to an MInt using Int2MInt. Care must +be given to ensure that the sort context where the Int2MInt operator appears +has the correct bitwidth, as this will influence the width of the resulting +MInt.

      +
      k
      syntax {Width} Int ::= MInt2Signed(MInt{Width}) [function, total, hook(MINT.svalue)] + | MInt2Unsigned(MInt{Width}) [function, total, hook(MINT.uvalue), smt-hook(bv2int)] + + syntax {Width} MInt{Width} ::= Int2MInt(Int) [function, total, hook(MINT.integer), smt-hook(int2bv)] +
      +

      MInt min and max values

      +

      You can get the minimum and maximum values of a signed or unsigned MInt +with az specified bit width using sminMInt, smaxMInt, uminMInt, and +umaxMInt.

      +
      k
      syntax Int ::= sminMInt(Int) [function] + | smaxMInt(Int) [function] + | uminMInt(Int) [function] + | umaxMInt(Int) [function] + rule sminMInt(N:Int) => 0 -Int (1 <<Int (N -Int 1)) + rule smaxMInt(N:Int) => (1 <<Int (N -Int 1)) -Int 1 + rule uminMInt(_:Int) => 0 + rule umaxMInt(N:Int) => (1 <<Int N) -Int 1 +
      +

      MInt bounds checking

      +

      You can check whether a specified Int will be represented in an MInt +with a specified width without any loss of precision when interpreted as +a signed or unsigned integer using soverflowMInt and uoverflowMInt.

      +
      k
      syntax Bool ::= soverflowMInt(width: Int, Int) [function] + | uoverflowMInt(width: Int, Int) [function] + rule + soverflowMInt(N:Int, I:Int) + => + I <Int sminMInt(N) orBool I >Int smaxMInt(N) + rule + uoverflowMInt(N:Int, I:Int) + => + I <Int uminMInt(N) orBool I >Int umaxMInt(N) +
      +

      MInt arithmetic

      +

      You can:

      +
        +
      • Compute the bitwise complement ~MInt of an MInt.
      • +
      • Compute the unary negation --MInt of an MInt.
      • +
      • Compute the product *MInt of two MInts.
      • +
      • Compute the quotient /sMInt of two MInts interpreted as signed integers.
      • +
      • Compute the modulus %sMInt of two MInts interpreted as signed integers.
      • +
      • Compute the quotient /uMInt of two MInts interpreted as unsigned +integers.
      • +
      • Compute the modulus %uMInt of two MInts interpreted as unsigned integers.
      • +
      • Compute the sum +MInt of two MInts.
      • +
      • Compute the difference -MInt of two MInts.
      • +
      • Compute the left shift <<MInt of two MInts. The second MInt is always +interpreted as positive.
      • +
      • Compute the arithmetic right shift >>aMInt of two MInts. The second +MInt is always interpreted as positve.
      • +
      • Compute the logical right shift >>lMInt of two MInts. The second MInt +is always interpreted as positive.
      • +
      • Compute the bitwise and &MInt of two MInts.
      • +
      • Compute the bitwise xor xorMInt of two MInts.
      • +
      • Compute the bitwise inclusive or |MInt of two MInts.
      • +
      +
      k
      syntax {Width} MInt{Width} ::= "~MInt" MInt{Width} [function, total, hook(MINT.not), smt-hook(bvnot)] + | "--MInt" MInt{Width} [function, total, hook(MINT.neg), smt-hook(bvuminus)] + > left: + MInt{Width} "*MInt" MInt{Width} [function, total, hook(MINT.mul), smt-hook(bvmul)] + | MInt{Width} "/sMInt" MInt{Width} [function, hook(MINT.sdiv), smt-hook(bvsdiv)] + | MInt{Width} "%sMInt" MInt{Width} [function, hook(MINT.srem), smt-hook(bvsrem)] + | MInt{Width} "/uMInt" MInt{Width} [function, hook(MINT.udiv), smt-hook(bvudiv)] + | MInt{Width} "%uMInt" MInt{Width} [function, hook(MINT.urem), smt-hook(bvurem)] + > left: + MInt{Width} "+MInt" MInt{Width} [function, total, hook(MINT.add), smt-hook(bvadd)] + | MInt{Width} "-MInt" MInt{Width} [function, total, hook(MINT.sub), smt-hook(bvsub)] + > left: + MInt{Width} "<<MInt" MInt{Width} [function, hook(MINT.shl), smt-hook(bvshl)] + | MInt{Width} ">>aMInt" MInt{Width} [function, hook(MINT.ashr), smt-hook(bvashr)] + | MInt{Width} ">>lMInt" MInt{Width} [function, hook(MINT.lshr), smt-hook(bvlshr)] + > left: + MInt{Width} "&MInt" MInt{Width} [function, total, hook(MINT.and), smt-hook(bvand)] + > left: + MInt{Width} "xorMInt" MInt{Width} [function, total, hook(MINT.xor), smt-hook(bvxor)] + > left: + MInt{Width} "|MInt" MInt{Width} [function, total, hook(MINT.or), smt-hook(bvor)] +
      +

      MInt comparison

      +

      You can compute whether one MInt is less than, less than or equal to, greater +than, or greater than or equal to another MInt when interpreted as signed +or unsigned integers. You can also compute whether one MInt is equal to or +unequal to another MInt.

      +
      k
      syntax {Width} Bool ::= MInt{Width} "<sMInt" MInt{Width} [function, total, hook(MINT.slt), smt-hook(bvslt)] + | MInt{Width} "<uMInt" MInt{Width} [function, total, hook(MINT.ult), smt-hook(bvult)] + | MInt{Width} "<=sMInt" MInt{Width} [function, total, hook(MINT.sle), smt-hook(bvsle)] + | MInt{Width} "<=uMInt" MInt{Width} [function, total, hook(MINT.ule), smt-hook(bvule)] + | MInt{Width} ">sMInt" MInt{Width} [function, total, hook(MINT.sgt), smt-hook(bvsgt)] + | MInt{Width} ">uMInt" MInt{Width} [function, total, hook(MINT.ugt), smt-hook(bvugt)] + | MInt{Width} ">=sMInt" MInt{Width} [function, total, hook(MINT.sge), smt-hook(bvsge)] + | MInt{Width} ">=uMInt" MInt{Width} [function, total, hook(MINT.uge), smt-hook(bvuge)] + | MInt{Width} "==MInt" MInt{Width} [function, total, hook(MINT.eq), smt-hook(=)] + | MInt{Width} "=/=MInt" MInt{Width} [function, total, hook(MINT.ne), smt-hook(distinct)] +
      +

      MInt min/max

      +

      You can compute the signed minimum sMinMInt, the signed maximum sMaxMInt, +the unsigned minimum uMinMInt, and the unsigned maximum uMaxMInt of two +MInts.

      +
      k
      syntax {Width} MInt{Width} ::= sMaxMInt(MInt{Width}, MInt{Width}) [function, total, hook(MINT.smax), smt-hook((ite (bvslt #1 #2) #2 #1))] + | sMinMInt(MInt{Width}, MInt{Width}) [function, total, hook(MINT.smin), smt-hook((ite (bvslt #1 #2) #1 #2))] + | uMaxMInt(MInt{Width}, MInt{Width}) [function, total, hook(MINT.umax), smt-hook((ite (bvult #1 #2) #2 #1))] + | uMinMInt(MInt{Width}, MInt{Width}) [function, total, hook(MINT.umin), smt-hook((ite (bvult #1 #2) #1 #2))] +
      +

      MInt to MInt conversion

      +

      You can convert an MInt of one width to another width with roundMInt. +The resulting MInt will be truncated starting from the most significant bit +if the resulting width is smaller than the input. The resulting MInt will be +zero-extended with the same low-order bits if the resulting width is larger +than the input.

      +
      k
      syntax {Width1, Width2} MInt{Width1} ::= roundMInt(MInt{Width2}) [function, total, hook(MINT.round)] +
      +
      k
      endmodule +
      +

      Strategies

      +

      K supports a built-in strategy language that allows you to control how rules +apply. In order to enable it, simply import the STRATEGY module in your +definition. This includes the following basic strategy constructs:

      +
        +
      • ^ Category:#RuleTag - This is a strategy that indicates that you should +apply a rule with the specified category exactly once. By default, all rules +get the regular tag. This can be changed on individual rules with the tag +attribute.
      • +
      • ~ Category:#RuleTag - This is the state the strategy cell will be in +after a rule has applied. In other words, all rules that do not mention the +strategy cell are automatically instrumented so that they rewrite the current +top of the <s> cell from ^ to ~
      • +
      • <s> - This is the strategy cell and contains the current strategy.
      • +
      • #STUCK() - By default, a rule is automatically inserted into the definition +which adds #STUCK() to the top of the <s> cell if no other rules apply +and if it is not already at the top of the <s> cell.
      • +
      +
      k
      module STRATEGY + imports ML-SYNTAX + imports KVARIABLE-SYNTAX + imports private K-EQUAL + + syntax #RuleTag ::= #KVariable + + syntax Strategy ::= #STUCK() [symbol] + | "^" #RuleTag [symbol, klabel(#applyRule)] + | "~" #RuleTag [symbol, klabel(#appliedRule)] + + configuration <s> $STRATEGY:K </s> +endmodule + +module RULE-TAG-SYNTAX + imports BUILTIN-ID-TOKENS + + syntax #RuleTag ::= #LowerId [token] +endmodule +
      +

      This is not a complete strategy language. However, it provides several basics. +The user can extend this strategy language into a complete strategy language +in one of three ways. First, they can import the DEFAULT-STRATEGY module, +which provides a very basic strategy that is essentially equivalent to +execution without a strategy. This can be useful if you wish to wholly +manipulate the strategy cell yourself within other rules.

      +
      k
      module DEFAULT-STRATEGY-CONCRETE [concrete] + imports STRATEGY + imports RULE-TAG-SYNTAX + rule ~ regular => ^ regular [anywhere] +endmodule + +module DEFAULT-STRATEGY-SYMBOLIC [symbolic] + imports STRATEGY + imports RULE-TAG-SYNTAX + rule <s> ~ regular => ^ regular ... </s> +endmodule + +module DEFAULT-STRATEGY + imports STRATEGY + imports DEFAULT-STRATEGY-CONCRETE + imports DEFAULT-STRATEGY-SYMBOLIC + + rule initSCell(_) => <s> ^ regular </s> [priority(25)] +endmodule +
      +

      The second way you can extend the strategy language is with the +STRATEGY-ABSTRACT module. This provides a slightly more advanced set of +strategies which you can use to compose the basic strategies in the STRATEGY +module into more complex strategies. Note however that the functionality +provided is still relatively basic.

      +
      k
      module STRATEGY-ABSTRACT + imports STRATEGY + + syntax #RuleTag ::= "(" #RuleTag ")" [bracket] + // ---------------------------------------------- + + syntax Strategy ::= ".Strategy" + | "(" Strategy ")" [bracket] + // ---------------------------------------------- + rule <s> .Strategy => . ... </s> + + syntax KItem ::= #catchSTUCK ( Strategy ) + // ----------------------------------------- + rule <s> #catchSTUCK(_) => . ... </s> + rule <s> #STUCK() ~> (_S:Strategy => .) ... </s> + rule <s> #STUCK() ~> #catchSTUCK(S) => S ... </s> + + syntax Strategy ::= Strategy ";" Strategy [left] + // ------------------------------------------------ + rule <s> S:Strategy ; S':Strategy => S ~> S' ... </s> + + syntax #RuleTag ::= #RuleTag "|" #RuleTag [left, klabel(#alternateRule)] + // ------------------------------------------------------------------------ + rule <s> ^ RT:#RuleTag | RT':#RuleTag => ^ RT ~> #catchSTUCK(^ RT') ... </s> + + syntax #RuleTag ::= #RuleTag "*" [klabel(#repeatRule)] + // ------------------------------------------------------ + rule <s> ^ RT:#RuleTag * => ^ RT ~> ^ RT * ~> #catchSTUCK(.Strategy) ... </s> +endmodule +
      +

      The third mechanism for extending the strategy language is to define your own +strategy language. No special facility is required in K in order to compose +strategies together, so you are free to write whatever rules that manipulate +the strategy cell you want, and thus whatever more complex strategies you can +compose from the base builtin strategies.

      +
      +
      + + +
      + +
      +
      + + Basic Builtin Types in K + +
      +
      + + Arrays + + +
      +
      + + Maps + + +
      +
      + + Range Maps + + +
      +
      + + Sets + + +
      +
      + + Lists + + +
      +
      + + Booleans + + +
      +
      + + Integers + + +
      +
      + + IEEE 754 Floating-point Numbers + + +
      +
      + + Strings + + +
      +
      + + Byte Arrays + + +
      +
      + + I/O in K + + +
      +
      + + Machine Integers + + +
      + +
      +
      + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/include/kframework/builtin/ffi/index.html b/k-distribution/include/kframework/builtin/ffi/index.html new file mode 100644 index 00000000000..2c803162447 --- /dev/null +++ b/k-distribution/include/kframework/builtin/ffi/index.html @@ -0,0 +1,619 @@ + + + + + + + + + + + + + + +K Foreign Function Interface | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      K Foreign Function Interface

      +

      The K Foreign Function Interface (FFI) module provides a way to call native +functions directly from a K semantics using the C ABI. It also provides +utilities for allocating and deallocating byte buffers with static addresses +that are suitable for being passed to native code.

      +

      It is built off of the underlying libffi library +(https://sourceware.org/libffi/) and is subject to some of the same +limitations as that library. Bear in mind, because this library exposes +a number of unsafe C APIs directly, misuse of the library is likely to lead +to memory corruption in your interpreter and can cause segmentation faults or +corrupted term representations that lead to undefined behavior at runtime.

      +
      k
      require "domains.md" + +module FFI-SYNTAX + imports private LIST +
      +

      The FFIType sort is used to declare the native C ABI types of operands passed +to the #ffiCall function. These types roughly correspond to the types +declared in ffi.h by libffi.

      +
      k
      syntax FFIType ::= "#void" [klabel(#ffi_void), symbol] + | "#uint8" [klabel(#ffi_uint8), symbol] + | "#sint8" [klabel(#ffi_sint8), symbol] + | "#uint16" [klabel(#ffi_uint16), symbol] + | "#sint16" [klabel(#ffi_sint16), symbol] + | "#uint32" [klabel(#ffi_uint32), symbol] + | "#sint32" [klabel(#ffi_sint32), symbol] + | "#uint64" [klabel(#ffi_uint64), symbol] + | "#sint64" [klabel(#ffi_sint64), symbol] + | "#float" [klabel(#ffi_float), symbol] + | "#double" [klabel(#ffi_double), symbol] + | "#uchar" [klabel(#ffi_uchar), symbol] + | "#schar" [klabel(#ffi_schar), symbol] + | "#ushort" [klabel(#ffi_ushort), symbol] + | "#sshort" [klabel(#ffi_sshort), symbol] + | "#uint" [klabel(#ffi_uint), symbol] + | "#sint" [klabel(#ffi_sint), symbol] + | "#ulong" [klabel(#ffi_ulong), symbol] + | "#slong" [klabel(#ffi_slong), symbol] + | "#longdouble" [klabel(#ffi_longdouble), symbol] + | "#pointer" [klabel(#ffi_pointer), symbol] + | "#complexfloat" [klabel(#ffi_complexfloat), symbol] + | "#complexdouble" [klabel(#ffi_complexdouble), symbol] + | "#complexlongdouble" [klabel(#ffi_complexlongdouble), symbol] + | "#struct" "(" List ")" [klabel(#ffi_struct), symbol] +endmodule + +module FFI + imports FFI-SYNTAX + imports private BYTES + imports private STRING + imports private BOOL + imports private LIST + imports private INT + +
      +

      FFI Calls

      +

      The #ffiCall functions are designed to call a native C ABI function and +return a native result. They come in three variants:

      +

      Non-variadic

      +

      In the first variant, #ffiCall(Address, Args, ArgTypes, ReturnType) takes +an integer address of a function (which can be obtained from +#functionAddress), a List of Bytes containing the arguments of the +function, a List of FFITypes containing the types of the parameters of the +function, and an FFIType containing the return type of the function, and +returns the return value of the function as a Bytes.

      +
      k
      syntax Bytes ::= "#ffiCall" "(" Int "," List "," List "," FFIType ")" [function, hook(FFI.call)] +
      +

      Variadic

      +

      In the second variant, +#ffiCall(Address, Args, FixedTypes, VariadicTypes, ReturnType takes an +integer address of a function, a List of Bytes containing the arguments +of the call, a List of FFITypes containing the types of the fixed +parameters of the function, a List of FFITypes containing the types of the +variadic parameters of the function, and an FFIType containing the return +type of the function, and returns the return value of the function as a +Bytes.

      +
      k
      syntax Bytes ::= "#ffiCall" "(" Int "," List "," List "," List "," FFIType ")" [function, hook(FFI.call_variadic)] +
      +

      Generic

      +

      In the third variant, +#ffiCall(IsVariadic, Address, Args, ArgTypes, NFixed, ReturnType takes +a boolean indicating whether the function is variadic or not, an integer +address of a function, a List of Bytes containing the arguments of the +call, a List of FFITypes containing the parameter typess of the call +followed by the types of the variadic arguments of the call, if any, an Int +containing how many of the arguments of the call are fixed or not, and an +FFIType containing the return type of the function, and returns the return +value of the function as a Bytes.

      +
      k
      syntax Bytes ::= "#ffiCall" "(" Bool "," Int "," List "," List "," Int "," FFIType ")" [function] + + rule #ffiCall(false, Addr::Int, Args::List, Types::List, _, Ret::FFIType) => #ffiCall(Addr, Args, Types, Ret) + rule #ffiCall(true, Addr::Int, Args::List, Types::List, NFixed::Int, Ret::FFIType) => #ffiCall(Addr, Args, range(Types, 0, size(Types) -Int NFixed), range(Types, NFixed, 0), Ret) +
      +

      Symbol Lookup

      +

      The FFI module provides a mechanism to look up any function symbol and return +that function's address.

      +
      k
      syntax Int ::= "#functionAddress" "(" String ")" [function, hook(FFI.address)] +
      +

      Direct Memory Management

      +

      Most memory used by the LLVM backend to represent terms is managed +automatically via garbage collection. However, a consequence of this is that +a particular term does not have a fixed address across its entire lifetime +in most cases. Sometimes this is undesirable, especially if you intend for +the address of the memory to be taken by the semantics or if you intend +to pass this memory directly to native code. As a result, the FFI module +exposes the following unsafe APIs for memory management. Note that use of +these APIs leaves the burden of memory management completely on the user, +and thus misuse of these functions can lead to things like use-after-free +and other memory corruption bugs.

      +

      Allocation

      +

      #alloc(Key, Size, Align) will allocate Size bytes with an alignment +requirement of Align (which must be a power of two), and return it as a +Bytes term. The memory is uniquely identified by its key and that key will +be used later to free the memory. The memory is not implicitly freed by garbage +collection; failure to call #free on the memory at a later date can lead to +memory leaks.

      +
      k
      syntax Bytes ::= "#alloc" "(" KItem "," Int "," Int ")" [function, hook(FFI.alloc)] +
      +

      Addressing

      +

      #addess(B) will return an Int representing the address of the first byte of +B, which must be a Bytes. Unless the Bytes term was allocated by #alloc, +the return value is unspecified and may not be the same across multipl +invocations on the same byte buffer. However, it is guaranteed that memory +allocated by #alloc will have the same address throughout its lifetime.

      +
      k
      syntax Int ::= "#address" "(" Bytes ")" [function, hook(FFI.bytes_address)] +
      +

      Deallocation

      +

      #free(Key) will free the memory of the Bytes object that was allocated +by a previous call to #alloc. If Key was not used in a previous call to +#alloc, or the memory was already freed, no action is taken. It will generate +undefined behavior if the Bytes term returned by the previous call to +#alloc is still referenced by any other term in the configuration or a +currently evaluating rule. The function returns .K.

      +
      k
      syntax K ::= "#free" "(" KItem ")" [function, hook(FFI.free)] +
      +

      Reading

      +

      #nativeRead(Addr, Mem) will read native memory at address Addr into Mem, +reading exactly lengthBytes(Mem) bytes. This will generate undefined behavior +if Addr does not point to a readable segment of memory at least +lengthBytes(Mem) bytes long.

      +
      k
      syntax K ::= "#nativeRead" "(" Int "," Bytes ")" [function, hook(FFI.read)] +
      +

      Writing

      +

      #nativeWrite(Addr, Mem) will write the contents of Mem to native memory at +address Addr. The memory will be read prior to being written, and a write +will only happen if the memory has a different value than the current value of +Mem. This will generate undefined behavior if Addr does not point to a +readable segment of memory at least lengthBytes(Mem) bytes long, or if the +memory at address Addr has a different value than currently contained in +Mem, and the memory in question is not writeable.

      +
      k
      syntax K ::= "#nativeWrite" "(" Int "," Bytes ")" [function, hook(FFI.write)] +endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/include/kframework/builtin/index.html b/k-distribution/include/kframework/builtin/index.html new file mode 100644 index 00000000000..11bae62ee99 --- /dev/null +++ b/k-distribution/include/kframework/builtin/index.html @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + +K Builtins | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      K Builtins

      +

      The K Builtins (also referred to as the K Prelude or the K Standard Library) +consists of several files which contain definitions that make working with K +simpler. These files can be found under include/kframework/builtin in your K +installation directory, and can be imported with requires "FILENAME" (without +the path prefix).

      +
        +
      • domains: Basic datatypes which are universally useful.
      • +
      • kast: Representation of K internal data-structures (not to be +included in normal definitions).
      • +
      • prelude: Automatically included into every K definition.
      • +
      • ffi: FFI interface for calling out to native C code from K.
      • +
      • json: JSON datatype and parsers/unparsers for JSON strings.
      • +
      • rat: Rational number representation.
      • +
      • substitution: Hooked implementation of capture-aware +sustitution for K definitions.
      • +
      • unification: Hooked implementation of unification +exposed directly to K definitions.
      • +
      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/include/kframework/builtin/json/index.html b/k-distribution/include/kframework/builtin/json/index.html new file mode 100644 index 00000000000..709ba94406a --- /dev/null +++ b/k-distribution/include/kframework/builtin/json/index.html @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + +Syntax of JSON | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Syntax of JSON

      +

      K provides builtin support for reading/writing to JSON. While the JSON-SYNTAX +module is not precisely the syntax of JSON (utilizing K's syntax for strings, +integers, and floating point numbers rather than the syntax used by JSON), +you can still convert directly to/from the actual syntax of JSON using +the JSON2String and String2JSON hooks.

      +
      k
      module JSON-SYNTAX + imports INT-SYNTAX + imports STRING-SYNTAX + imports BOOL-SYNTAX + imports FLOAT-SYNTAX + + syntax JSONs ::= List{JSON,","} [klabel(JSONs) , symbol] + syntax JSONKey ::= String + syntax JSON ::= "null" [klabel(JSONnull) , symbol] + | String | Int | Float | Bool + | JSONKey ":" JSON [klabel(JSONEntry) , symbol] + | "{" JSONs "}" [klabel(JSONObject) , symbol] + | "[" JSONs "]" [klabel(JSONList) , symbol] +endmodule +
      +

      Conversion between JSON and String

      +

      Given a string written in valid JSON, you can convert it to the JSON +sort with the String2JSON function. Assuming the user has not extended +the syntax of the JSON sort with their own constructors, any term of sort +JSON can also be converted to a String using the JSON2String function.

      +
      k
      module JSON + imports JSON-SYNTAX + + syntax String ::= JSON2String(JSON) [function, hook(JSON.json2string)] + + syntax JSON ::= String2JSON(String) [function, hook(JSON.string2json)] +endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/include/kframework/builtin/kast/index.html b/k-distribution/include/kframework/builtin/kast/index.html new file mode 100644 index 00000000000..9544f3effd8 --- /dev/null +++ b/k-distribution/include/kframework/builtin/kast/index.html @@ -0,0 +1,966 @@ + + + + + + + + + + + + + + +K Language Features | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      K Language Features

      +

      Defined below is a series of modules used to parse inner syntax in K (ie, the +contents of rules, configuration declarations, and contexts).

      +

      Much of this file exists in tight correspondence with the K implementation, and +K will not work correctly if it is altered without corresponding changes to the +source code of the K tools.

      +

      Users should only import a few modules from this file. In particular, this +includes SORT-K, BASIC-K, ML-SYNTAX, DEFAULT-LAYOUT, +DEFAULT-CONFIGURATION, and K-AMBIGUITIES. The remaining modules should not +be imported by the user; they are used implicitly by the implementation of K.

      +

      Basic K Sorts

      +

      The SORT-K module declares the K sort, and nothing else.

      +
      k
      module SORT-K + syntax K [hook(K.K)] +endmodule +
      +

      The BASIC-K module declares the K, KItem, and KConfigVar sorts, and +imports the syntax of matching logic.

      +
      k
      module BASIC-K + imports ML-SYNTAX + imports SORT-BOOL + syntax KItem [hook(K.KItem)] + syntax K ::= KItem + syntax KConfigVar [token] + syntax KItem ::= KConfigVar +endmodule +
      +

      KAST Abstract Syntax

      +

      Below is defined the abstract syntax of concrete terms in K, the KAST syntax. +Users should rarely if ever have to refer to this syntax; in general, it +suffices to use concrete syntax in rules, configuration declarations, contexts, +etc.

      +

      This syntax is used directly by the K implementation, and exists here as a +reference for the syntax of KAST, but it should not be imported directly by +the user.

      +
      k
      module KSTRING + syntax KString ::= r"[\\\"](([^\\\"\\n\\r\\\\])|([\\\\][nrtf\\\"\\\\])|([\\\\][x][0-9a-fA-F]{2})|([\\\\][u][0-9a-fA-F]{4})|([\\\\][U][0-9a-fA-F]{8}))*[\\\"]" [token] + // optionally qualified strings, like in Scala "abc", i"abc", r"a*bc", etc. +endmodule + +module BUILTIN-ID-TOKENS + syntax #LowerId ::= r"[a-z][a-zA-Z0-9]*" [prec(2), token] + syntax #UpperId ::= r"[A-Z][a-zA-Z0-9]*" [prec(2), token] +endmodule + +module SORT-KBOTT + imports SORT-K + syntax KBott +endmodule + +module KAST + imports BASIC-K + imports SORT-KBOTT + imports KSTRING + imports BUILTIN-ID-TOKENS + + syntax KBott ::= "#token" "(" KString "," KString ")" [klabel(#KToken), symbol] + | "#klabel" "(" KLabel ")" [klabel(#WrappedKLabel), symbol] + | KLabel "(" KList ")" [klabel(#KApply), symbol] + syntax KItem ::= KBott + + syntax KLabel ::= r"`(\\\\`|\\\\\\\\|[^`\\\\\\n\\r])+`" [token] + | #LowerId [token] + | r"(?<![a-zA-Z0-9])[#a-z][a-zA-Z0-9]*" [token, prec(1)] + // something that doesn't collide with meta-variables + + syntax KList ::= K + | ".KList" [klabel(#EmptyKList), symbol] + | ".::KList" [klabel(#EmptyKList), symbol] + | KList "," KList [klabel(#KList), left, assoc, unit(#EmptyKList), symbol, prefer] +endmodule + + +// To be used when parsing/pretty-printing ground configurations +module KSEQ + imports KAST + imports K-TOP-SORT + syntax K ::= ".K" [klabel(#EmptyK), symbol, unparseAvoid] + | "." [klabel(#EmptyK), symbol] + | ".::K" [klabel(#EmptyK), symbol, unparseAvoid] + syntax K ::= K "~>" K [klabel(#KSequence), left, assoc, unit(#EmptyK), symbol] + syntax left #KSequence + syntax {Sort} Sort ::= "(" Sort ")" [bracket, group(defaultBracket), applyPriority(1)] +endmodule +
      +

      Syntax of Matching Logic

      +

      K provides direct access to the symbols of Matching Logic, while giving them +their own concrete syntax distinct from the syntax of the KORE intermediate +representation. These symbols are primarily used during symbolic execution. +The LLVM Backend has relatively little understanding of Matching Logic directly +and use of these symbols directly in rules is likely to cause it to crash. +However, these symbols are necessary when providing lemmas and other types of +logical assistance to proofs and symbolic execution in the Haskell Backend.

      +

      The correspondance between K symbols and KORE symbols is as follows:

      +
        +
      • #Top - \top
      • +
      • #Bottom - \bottom
      • +
      • #Not - \not
      • +
      • #Ceil - \ceil
      • +
      • #Floor - \floor
      • +
      • #Equals - \equals
      • +
      • #And - \and
      • +
      • #Or - \or
      • +
      • #Implies - \implies
      • +
      • #Exists - \exists
      • +
      • #Forall - \forall
      • +
      • #AG - allPathGlobally
      • +
      • #wEF - weakExistsFinally
      • +
      • #wAF - weakAlwaysFinally
      • +
      +
      k
      module ML-SYNTAX [not-lr1] + imports SORT-K + + syntax {Sort} Sort ::= "#Top" [klabel(#Top), symbol, group(mlUnary)] + | "#Bottom" [klabel(#Bottom), symbol, group(mlUnary)] + | "#True" [klabel(#Top), symbol, group(mlUnary), unparseAvoid] + | "#False" [klabel(#Bottom), symbol, group(mlUnary), unparseAvoid] + | "#Not" "(" Sort ")" [klabel(#Not), symbol, mlOp, group(mlUnary)] + + syntax {Sort1, Sort2} Sort2 ::= "#Ceil" "(" Sort1 ")" [klabel(#Ceil), symbol, mlOp, group(mlUnary)] + | "#Floor" "(" Sort1 ")" [klabel(#Floor), symbol, mlOp, group(mlUnary)] + | "{" Sort1 "#Equals" Sort1 "}" [klabel(#Equals), symbol, mlOp, group(mlEquals), comm, format(%1%i%n%2%d%n%3%i%n%4%d%n%5)] + + syntax priorities mlUnary > mlEquals > mlAnd + + syntax {Sort} Sort ::= Sort "#And" Sort [klabel(#And), symbol, assoc, left, comm, unit(#Top), mlOp, group(mlAnd), format(%i%1%d%n%2%n%i%3%d)] + > Sort "#Or" Sort [klabel(#Or), symbol, assoc, left, comm, unit(#Bottom), mlOp, format(%i%1%d%n%2%n%i%3%d)] + > Sort "#Implies" Sort [klabel(#Implies), symbol, mlOp, group(mlImplies), format(%i%1%d%n%2%n%i%3%d)] + + syntax priorities mlImplies > mlQuantifier + + syntax {Sort1, Sort2} Sort2 ::= "#Exists" Sort1 "." Sort2 [klabel(#Exists), symbol, mlOp, mlBinder, group(mlQuantifier)] + | "#Forall" Sort1 "." Sort2 [klabel(#Forall), symbol, mlOp, mlBinder, group(mlQuantifier)] + + syntax {Sort} Sort ::= "#AG" "(" Sort ")" [klabel(#AG), symbol, mlOp] + | "#wEF" "(" Sort ")" [klabel(weakExistsFinally), symbol, mlOp] + | "#wAF" "(" Sort ")" [klabel(weakAlwaysFinally), symbol, mlOp] +endmodule +
      +

      Variables in K

      +

      Provided below is the syntax of variables in K. There are four types of +variables in K:

      +
        +
      1. Regular variables. These are denoted by variables that begin with an +underscore or a capital letter. These variables match exactly one value +and can be used to refer to it on the right-hand-side.
      2. +
      3. Fresh constants. These are denoted by variables that begin with an !. This +is a convenience syntax which can be used on the right-hand-side only, and +refer to a unique value of the specified sort which is distinct from any +other value that has been generated or will be generated by the !X syntax. +Note that this may not be distinct from values produced via other means.
      4. +
      5. Existential variables. This refers to variables that are existentially +quantified and begin with a ?. They are not required to appear on the +left-hand-side prior to appearing on the right-hand-side, and generally +refer to symbolic quantities that are introduced during rewriting. Refer to +K's documentation for more details.
      6. +
      7. Set variables. These are denoted by variables that begin with a @. +These variables refer to a set of values and are generally used when writing +simplification rules in the Haskell Backend. For more information, refer to +K's documentation.
      8. +
      +

      There is also a fifth type of "variable", although it is not technically a +variable. This refers to configuration variables, which are used to insert +values into the initial configuration that come from outside the semantics. +The most common of these is the $PGM variable, which conventionally contains +the program being executed and is placed in the <k> cell in the configuration +declaration. These "variables" begin with a $ and their values are populated +by the frontend prior to symbolic or concrete execution of a program.

      +
      k
      module KVARIABLE-SYNTAX + syntax #KVariable +endmodule + +// To be used when parsing/pretty-printing symbolic configurations +module KSEQ-SYMBOLIC + imports KSEQ + imports ML-SYNTAX + imports KVARIABLE-SYNTAX + + syntax #KVariable ::= r"(?<![A-Za-z0-9_\\$!\\?@])(\\!|\\?|@)?([A-Z][A-Za-z0-9'_]*|_|_[A-Z][A-Za-z0-9'_]*)" [token, prec(1)] + | #UpperId [token] + syntax KConfigVar ::= r"(?<![A-Za-z0-9_\\$!\\?@])(\\$)([A-Z][A-Za-z0-9'_]*)" [token] + syntax KBott ::= #KVariable + syntax KBott ::= KConfigVar + syntax KLabel ::= #KVariable +endmodule +
      +

      Syntax of Cells

      +

      While the backend treats cells as regular productions like any other, the +frontend provides a significant amount of convenience notation for dealing with +groups of cells, in order to make writing modular definitions easier. As a +result, we need a syntax for groups of cells and for referring to cells within +rules, configuration declarations, and functions.

      +

      For historical reasons, the Bag sort is used to refer to groups of cells. +This may change in a future release. Users can combine cells in any order +by concatenating them together, and can refer to the absence of any cells with +the .Bag symbol. You can also refer to cells within a function by placing +the cell context symbol, [[ K ]] at the top of a rule, placing a function +symbol inside, and referring to cells afterwards. This implicitly inserts +a reference to the configuration at the time prior to the currently-applied +rule being applied which can be matched on within the function. Functions with +such context cannot be referred to in the initial configuration, because the +prior configuration does not yet exist.

      +
      k
      module KCELLS + imports KAST + + syntax Cell + syntax Bag ::= Bag Bag [left, assoc, klabel(#cells), symbol, unit(#cells)] + | ".Bag" [klabel(#cells), symbol] + | ".::Bag" [klabel(#cells), symbol] + | Cell + syntax Bag ::= "(" Bag ")" [bracket] + syntax KItem ::= Bag + syntax #RuleBody ::= "[" "[" K "]" "]" Bag [klabel(#withConfig), symbol, avoid] + syntax non-assoc #withConfig + syntax Bag ::= KBott +endmodule +
      +

      Users can also refer to cells in rules. When doing so, an optional ... can +be placed immediately after the start of the cell or immediately before the +end. In a cell whose contents are commutative, these are equivalent to one +another and are also equivalent to placing ... in both places. This means +that what is placed in the cell will be combined with the cell contents' +concatenation operator with an unnamed variable. In other words, you match on +some number of elements in the collection and do not care about the rest of +the collection.

      +

      In a cell whose contents are not commutative, the ... operators correspond +to a variable on the respective side of the contents of the cell that the +... appears. For example, <foo>... L </foo>, if L is a list, means +some number of elements followed by L. Note that not all combinations are +supported. Cells whose contents are sort K can only have ... appear at the +tail of the cell, and cells whose contents are sort List can only have ... +appear on at most one side in a single rule.

      +
      k
      module RULE-CELLS + imports KCELLS + imports RULE-LISTS + // if this module is imported, the parser automatically + // generates, for all productions that have the attribute 'cell' or 'maincell', + // a production like below: + //syntax Cell ::= "<top>" #OptionalDots K #OptionalDots "</top>" [klabel(<top>)] + + syntax #OptionalDots ::= "..." [klabel(#dots), symbol] + | "" [klabel(#noDots), symbol] + + syntax Int + // this production will be added by the compiler to help handle bang variables, + // however, it is valuable to put it here because without this production, it + // will not exist at the point in time when rules and claims are parsed, and + // as a result it makes it very difficult to write proof claims over fragments + // of code that exercise rules containing bang variables. We put it here because + // this production will "vanish" after parsing finishes and not be picked up + // by the compiler, which is the behavior we want in this case since an actual + // production will be generated by the compiler later on. + syntax GeneratedCounterCell ::= "<generatedCounter>" Int "</generatedCounter>" [cell, klabel(<generatedCounter>), symbol, internal] +endmodule +
      +

      Users can also declare cells in a configuration declaration. This generates a +specific set of productions that is used internally to implement the cell. The +most important of these is the cell itself, and attributes on this production +can be specified in an xml-attribute-like syntax.

      +

      You can also use an xml-short-tag-like syntax to compose configuration cells +together which were defined in different modules. However, it is a requirement +that any K definition have at most one fully-composed configuration; thus, all +other configuration declarations must appear composed within another +configuration declaration.

      +
      k
      module CONFIG-CELLS + imports KCELLS + imports RULE-LISTS + syntax #CellName ::= r"[a-zA-Z][a-zA-Z0-9\\-]*" [token, prec(1)] + | #LowerId [token] + | #UpperId [token] + + syntax Cell ::= "<" #CellName #CellProperties ">" K "</" #CellName ">" [klabel(#configCell), symbol] + syntax Cell ::= "<" #CellName "/>" [klabel(#externalCell), symbol] + + syntax #CellProperties ::= #CellProperty #CellProperties [klabel(#cellPropertyList), symbol] + | "" [klabel(#cellPropertyListTerminator), symbol] + syntax #CellProperty ::= #CellName "=" KString [klabel(#cellProperty), symbol] +endmodule +
      +

      Syntax of Rules

      +

      Rules can have an optional requires clause or an ensures clause. For backwards- +compatibility, you can refer to the requires clause with both the requires +and when keywords; The latter, however, is deprecated and may be removed in +a future release.

      +

      The requires clause specifies the preconditions that must be true in order +for the rule to apply. The ensures clause specifies the information which +becomes true after the rule has applied. It is a requirement that information +present in the ensures clause refer to existential variables only.

      +

      When doing concrete execution, you can think of the requires clause as a +side-condition. In other words, even if the rule matches, it will not apply +unless the requires clause, which must be of sort Bool, evaluates to +true.

      +
      k
      module REQUIRES-ENSURES + imports BASIC-K + + syntax #RuleBody ::= K + + syntax #RuleContent ::= #RuleBody [klabel("#ruleNoConditions"), symbol] + | #RuleBody "requires" Bool [klabel("#ruleRequires"), symbol] + | #RuleBody "when" Bool [klabel("#ruleRequires"), symbol] + | #RuleBody "ensures" Bool [klabel("#ruleEnsures"), symbol] + | #RuleBody "requires" Bool "ensures" Bool [klabel("#ruleRequiresEnsures"), symbol] + | #RuleBody "when" Bool "ensures" Bool [klabel("#ruleRequiresEnsures"), symbol] +endmodule +
      +

      Miscellaneous modules

      +

      The below modules are used in various ways as indicators to the implementation +that certain automatically generated syntax should be created by the parser. +These modules should not be imported directly by the user.

      +
      k
      module K-TOP-SORT + imports SORT-KBOTT + syntax KItem ::= KBott + syntax {Sort} KItem ::= Sort +endmodule + +module K-BOTTOM-SORT + imports SORT-KBOTT + syntax KItem ::= KBott + syntax {Sort} Sort ::= KBott +endmodule + +module K-SORT-LATTICE + imports K-TOP-SORT + imports K-BOTTOM-SORT +endmodule + +module AUTO-CASTS + // if this module is imported, the parser automatically + // generates, for all sorts, productions of the form: + // Sort ::= Sort ":Sort" // semantic cast - force the inner term to be `Sort` or a subsort + // Sort ::= Sort "::Sort" // strict cast - force the inner term to be exactly `Sort`. Useful for disambiguation + // Sort ::= "{" Sort "}" "<:Sort" // synonym for strict cast + // Sort ::= "{" K "}" ":>Sort" // projection cast. Allows any term to be placed in a context that expects `Sort` + // this is part of the mechanism that allows concrete user syntax in K +endmodule + +module AUTO-FOLLOW + // if this module is imported, the parser automatically + // generates a follow restriction for every terminal which is a prefix + // of another terminal. This is useful to prevent ambiguities such as: + // syntax K ::= "a" + // syntax K ::= "b" + // syntax K ::= "ab" + // syntax K ::= K K + // #parse("ab", "K") + // In the above example, the terminal "a" is not allowed to be followed by a "b" + // because it would turn the terminal into the terminal "ab". +endmodule + +module PROGRAM-LISTS + imports SORT-K + // if this module is imported, the parser automatically + // replaces the default productions for lists: + // Es ::= E "," Es [userList("*"), klabel('_,_)] + // | ".Es" [userList("*"), klabel('.Es)] + // into a series of productions more suitable for programs: + // Es#Terminator ::= "" [klabel('.Es)] + // Ne#Es ::= E "," Ne#Es [klabel('_,_)] + // | E Es#Terminator [klabel('_,_)] + // Es ::= Ne#Es + // | Es#Terminator // if the list is * +endmodule + +module RULE-LISTS + // if this module is imported, the parser automatically + // adds the subsort production to the parsing module only: + // Es ::= E [userList("*")] + +endmodule + +module RECORD-PRODUCTIONS + // if this module is imported, prefix productions of the form + // syntax Sort ::= name(Args) + // will be able to be parsed with don't-care variables according + // to their nonterminal's names +endmodule + +module SORT-PREDICATES + // if this module is imported, the Bool sort will be annotated with + // syntax Bool ::= isSort(K) [function] + // and all sorts will be annotated with + // syntax Sort ::= project:Sort(K) [function] +endmodule +
      +

      Additional Syntax for K Terms in Rules

      +

      Certain additional features are available when parsing the contents of rules +and contexts. For more information on each of these, refer to K's +documentation.

      +
      k
      module KREWRITE + syntax {Sort} Sort ::= Sort "=>" Sort [klabel(#KRewrite), symbol] + syntax non-assoc #KRewrite + syntax priority #KRewrite > #withConfig +endmodule + +// To be used to parse semantic rules +module K + imports KSEQ-SYMBOLIC + imports REQUIRES-ENSURES + imports RECORD-PRODUCTIONS + imports SORT-PREDICATES + imports K-SORT-LATTICE + imports AUTO-CASTS + imports AUTO-FOLLOW + imports KREWRITE + + syntax {Sort} Sort ::= Sort "#as" Sort [klabel(#KAs), symbol] + // functions that preserve sorts and can therefore have inner rewrites + syntax {Sort} Sort ::= "#fun" "(" Sort ")" "(" Sort ")" [klabel(#fun2), symbol, prefer] + // functions that do not preserve sort and therefore cannot have inner rewrites + syntax {Sort1, Sort2} Sort1 ::= "#fun" "(" Sort2 "=>" Sort1 ")" "(" Sort2 ")" [klabel(#fun3), symbol] + + syntax {Sort1, Sort2} Sort1 ::= "#let" Sort2 "=" Sort2 "#in" Sort1 [klabel(#let), symbol] + + /*@ Set membership over terms. In addition to equality over + concrete patterns, K also supports computing equality + between a concrete pattern and a symbolic pattern. + This is compiled efficiently down to pattern matching, + and can be used by putting a term with unbound variables + in the left child of :=K or =/=K. Note that this does not + bind variables used on the lhs however (although this may + change in the future).*/ + + syntax Bool ::= left: + K ":=K" K [function, total, klabel(_:=K_), symbol, group(equalEqualK)] + | K ":/=K" K [function, total, klabel(_:/=K_), symbol, group(notEqualEqualK)] +endmodule + +// To be used to parse terms in full K +module K-TERM + imports KSEQ-SYMBOLIC + imports RECORD-PRODUCTIONS + imports SORT-PREDICATES + imports K-SORT-LATTICE + imports AUTO-CASTS + imports AUTO-FOLLOW + imports KREWRITE +endmodule +
      +

      Layout Information

      +

      When constructing a scanner for use during parsing, often you wish to ignore +certain types of text, such as whitespace and comments. However, the specific +syntax which each language must ignore is a little different from language +to language, and thus you wish to specify it manually. You can do this by +defining productions of the #Layout sort. For more information, refer to +K's documentation. However, this module will be implicitly imported if no +productions are declared of sort #Layout. This module will also be used +for the purposes of parsing K rules. If you wish to declare a language with +no layout productions, simply create a sort declaration for the #Layout sort +in your code (e.g. syntax #Layout).

      +
      k
      module DEFAULT-LAYOUT + syntax #Layout ::= r"(\\/\\*([^\\*]|(\\*+([^\\*\\/])))*\\*+\\/)" // C-style multi-line comments + | r"(\\/\\/[^\\n\\r]*)" // C-style single-line comments + | r"([\\ \\n\\r\\t])" // Whitespace +endmodule +
      +

      Default Configuration

      +

      If the user has no configuration declaration in their seamantics, the below +configuration declaration will be implicitly imported.

      +
      k
      module DEFAULT-CONFIGURATION + imports BASIC-K + + configuration <k> $PGM:K </k> +endmodule +
      +

      Parsing Ambiguous Languages

      +

      On occasion, it may be desirable to parse a language with an ambiguous grammar +when parsing a program, and perform additional semantic analysis at a later +time in order to resolve the ambiguities. A good example of this is as a +substitute for the lexer hack in parsers of the C programming language.

      +

      The following module contains a declaration for ambiguities in K. Usually, +an ambiguous parse is an error. However, when you use the --gen-glr-parser +flag to kast, or the --gen-glr-bison-parser flag to kompile, ambiguities +instead become instances of the below parametric production, which you can use +regular K rules to disambiguate as necessary.

      +
      k
      module K-AMBIGUITIES + + syntax {Sort} Sort ::= amb(Sort, Sort) [symbol] + +endmodule +
      +

      Annotating Parses with Locations

      +

      Another feature of K's Bison parser is the ability to annotate terms parsed +with location information about the file and line where they occurred. For +more information about how to use this, refer to K's documentation. However, +the below module exists to provide a user syntax for the annotations that +are generated by the parser.

      +
      k
      module K-LOCATIONS + imports STRING-SYNTAX + imports INT-SYNTAX + + // filename, startLine, startCol, endLine, endCol + syntax {Sort} Sort ::= #location(Sort, String, Int, Int, Int, Int) [symbol, format(%3)] + +endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/include/kframework/builtin/prelude/index.html b/k-distribution/include/kframework/builtin/prelude/index.html new file mode 100644 index 00000000000..75d63852786 --- /dev/null +++ b/k-distribution/include/kframework/builtin/prelude/index.html @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + +K Prelude | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      K Prelude

      +

      The following files, integral to defining semantics in K, are automatically +required by every definition via this file. This behavior can be disabled +via kompile --no-prelude, however, semantics will likely break unless +they provide their own versions of these files, which are assumed to exist +by the compiler. There are, however, circumstances where passing this flag is +appropriate, such as if you are manually requiring these files in your +definition, if your definition was automatically condensed into a single file +with kompile -E, or if you wish to modify the inner syntax of K by providing +your own version of these files with different syntax.

      +
      k
      require "kast.md" +require "domains.md" +
      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/include/kframework/builtin/rat/index.html b/k-distribution/include/kframework/builtin/rat/index.html new file mode 100644 index 00000000000..77d65b847d9 --- /dev/null +++ b/k-distribution/include/kframework/builtin/rat/index.html @@ -0,0 +1,620 @@ + + + + + + + + + + + + + + +Rational Numbers in K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Rational Numbers in K

      +

      K provides support for arbitrary-precision rational numbers represented as a +quotient between two integers. The sort representing these values is Rat. +Int is a subsort of Rat, and it is guaranteed that any integer will be +represented as an Int and can be matched as such on the left hand side +of rules. K also supports the usual arithmetic operators over rational numbers.

      +
      k
      module RAT-SYNTAX + imports INT-SYNTAX + imports private BOOL + + syntax Rat + + syntax Rat ::= Int +
      +

      Arithmetic

      +

      You can:

      +
        +
      • Raise a rational number to any negative or nonnegative integer.
      • +
      • Multiply or divide two rational numbers to obtain a product or quotient.
      • +
      • Add or subtract two rational numbers to obtain a sum or difference.
      • +
      +
      k
      syntax Rat ::= left: + Rat "^Rat" Int [function, total, klabel(_^Rat_), symbol, smtlib(ratpow), hook(RAT.pow)] + > left: + Rat "*Rat" Rat [function, total, klabel(_*Rat_), symbol, left, smtlib(ratmul), hook(RAT.mul)] + | Rat "/Rat" Rat [function, klabel(_/Rat_), symbol, left, smtlib(ratdiv), hook(RAT.div)] + > left: + Rat "+Rat" Rat [function, total, klabel(_+Rat_), symbol, left, smtlib(ratadd), hook(RAT.add)] + | Rat "-Rat" Rat [function, total, klabel(_-Rat_), symbol, left, smtlib(ratsub), hook(RAT.sub)] +
      +

      Comparison

      +

      You can determine whether two rational numbers are equal, unequal, or compare +one of less than, less than or equalto, greater than, or greater than or equal +to the other:

      +
      k
      syntax Bool ::= Rat "==Rat" Rat [function, total, klabel(_==Rat_), symbol, smtlib(rateq), hook(RAT.eq)] + | Rat "=/=Rat" Rat [function, total, klabel(_=/=Rat_), symbol, smtlib(ratne), hook(RAT.ne)] + | Rat ">Rat" Rat [function, total, klabel(_>Rat_), symbol, smtlib(ratgt), hook(RAT.gt)] + | Rat ">=Rat" Rat [function, total, klabel(_>=Rat_), symbol, smtlib(ratge), hook(RAT.ge)] + | Rat "<Rat" Rat [function, total, klabel(_<Rat_), symbol, smtlib(ratlt), hook(RAT.lt)] + | Rat "<=Rat" Rat [function, total, klabel(_<=Rat_), symbol, smtlib(ratle), hook(RAT.le)] +
      +

      Min/Max

      +

      You can compute the minimum and maximum of two rational numbers:

      +
      k
      syntax Rat ::= minRat(Rat, Rat) [function, total, klabel(minRat), symbol, smtlib(ratmin), hook(RAT.min)] + | maxRat(Rat, Rat) [function, total, klabel(maxRat), symbol, smtlib(ratmax), hook(RAT.max)] +
      +

      Conversion to Floating Point

      +

      You can convert a rational number to the nearest floating point number that +is representable in a Float of a specified number of precision and exponent +bits:

      +
      k
      syntax Float ::= Rat2Float(Rat, precision: Int, exponentBits: Int) [function] +endmodule +
      +

      Implementation of Rational Numbers

      +

      The remainder of this file consists of an implementation in K of the +operations listed above. Users of the RAT module should not use any of the +syntax defined in any of these modules.

      +

      As a point of reference for users, it is worth noting that rational numbers +are normalized to a canonical form by this module,. with the canonical form +bearing the property that it is either an Int, or a pair of integers +I /Rat J such that +I =/=Int 0 andBool J >=Int 2 andBool gcdInt(I, J) ==Int 1 is always true.

      +
      k
      module RAT-COMMON + imports RAT-SYNTAX + + // invariant of < I , J >Rat : I =/= 0, J >= 2, and I and J are coprime + syntax Rat ::= "<" Int "," Int ">Rat" [format(%2 /Rat %4)] +endmodule + +module RAT-SYMBOLIC [symbolic, kore] + imports private RAT-COMMON + imports ML-SYNTAX + imports private BOOL + + rule + #Ceil(@R1:Rat /Rat @R2:Rat) + => + {(@R2 =/=Rat 0) #Equals true} #And #Ceil(@R1) #And #Ceil(@R2) + [simplification] +endmodule + +module RAT-KORE [kore] + imports private RAT-COMMON + imports private K-EQUAL + + /* + * equalities + */ + + // NOTE: the two rules below may not work correctly in non-kore backends + + rule R ==Rat S => R ==K S + + rule R =/=Rat S => R =/=K S +endmodule + +module RAT [private] + imports private RAT-COMMON + imports public RAT-SYMBOLIC + imports public RAT-KORE + imports public RAT-SYNTAX + imports private INT + imports private BOOL + + /* + * arithmetic + */ + + rule < I , I' >Rat +Rat < J , J' >Rat => ((I *Int J') +Int (I' *Int J)) /Rat (I' *Int J') + rule I:Int +Rat < J , J' >Rat => ((I *Int J') +Int J) /Rat J' + rule < J , J' >Rat +Rat I:Int => I +Rat < J , J' >Rat + rule I:Int +Rat J:Int => I +Int J + + rule < I , I' >Rat *Rat < J , J' >Rat => (I *Int J) /Rat (I' *Int J') + rule I:Int *Rat < J , J' >Rat => (I *Int J) /Rat J' + rule < J , J' >Rat *Rat I:Int => I *Rat < J , J' >Rat + rule I:Int *Rat J:Int => I *Int J + + rule < I , I' >Rat /Rat < J , J' >Rat => (I *Int J') /Rat (I' *Int J) + rule I:Int /Rat < J , J' >Rat => (I *Int J') /Rat J + rule < I , I' >Rat /Rat J:Int => I /Rat (I' *Int J) requires J =/=Int 0 + rule I:Int /Rat J:Int => makeRat(I, J) requires J =/=Int 0 + + // derived + + rule R -Rat S => R +Rat (-1 *Rat S) + + // normalize + + syntax Rat ::= makeRat(Int, Int) [function] + | makeRat(Int, Int, Int) [function] + + rule makeRat(0, J) => 0 requires J =/=Int 0 + + rule makeRat(I, J) => makeRat(I, J, gcdInt(I,J)) requires I =/=Int 0 andBool J =/=Int 0 + + // makeRat(I, J, D) is defined when I =/= 0, J =/= 0, D > 0, and D = gcd(I,J) + rule makeRat(I, J, D) => I /Int D requires J ==Int D // implies J > 0 since D > 0 + rule makeRat(I, J, D) => < I /Int D , J /Int D >Rat requires J >Int 0 andBool J =/=Int D + rule makeRat(I, J, D) => makeRat(0 -Int I, 0 -Int J, D) requires J <Int 0 + + // gcdInt(a,b) computes the gcd of |a| and |b|, which is positive. + syntax Int ::= gcdInt(Int, Int) [function, public] + + rule gcdInt(A, 0) => A requires A >Int 0 + rule gcdInt(A, 0) => 0 -Int A requires A <Int 0 + rule gcdInt(A, B) => gcdInt(B, A %Int B) requires B =/=Int 0 // since |A %Int B| = |A| %Int |B| + + /* + * exponentiation + */ + + rule _ ^Rat 0 => 1 + rule 0 ^Rat N => 0 requires N =/=Int 0 + + rule < I , J >Rat ^Rat N => powRat(< I , J >Rat, N) requires N >Int 0 + rule X:Int ^Rat N => X ^Int N requires N >Int 0 + + rule X ^Rat N => (1 /Rat X) ^Rat (0 -Int N) requires X =/=Rat 0 andBool N <Int 0 + + // exponentiation by squaring + + syntax Rat ::= powRat(Rat, Int) [function] + + // powRat(X, N) is defined when X =/= 0 and N > 0 + rule powRat(X, 1) => X + rule powRat(X, N) => powRat(X *Rat X, N /Int 2) requires N >Int 1 andBool N %Int 2 ==Int 0 + rule powRat(X, N) => powRat(X, N -Int 1) *Rat X requires N >Int 1 andBool N %Int 2 =/=Int 0 + + /* + * inequalities + */ + + rule R >Rat S => R -Rat S >Rat 0 requires S =/=Rat 0 + + rule < I , _ >Rat >Rat 0 => I >Int 0 + rule I:Int >Rat 0 => I >Int 0 + + // derived + + rule R >=Rat S => notBool R <Rat S + + rule R <Rat S => S >Rat R + + rule R <=Rat S => S >=Rat R + + rule minRat(R, S) => R requires R <=Rat S + rule minRat(R, S) => S requires S <=Rat R + + rule maxRat(R, S) => R requires R >=Rat S + rule maxRat(R, S) => S requires S >=Rat R + + syntax Float ::= #Rat2Float(Int, Int, Int, Int) [function, hook(FLOAT.rat2float)] + rule Rat2Float(Num:Int, Prec:Int, Exp:Int) => #Rat2Float(Num, 1, Prec, Exp) + rule Rat2Float(< Num, Dem >Rat, Prec, Exp) => #Rat2Float(Num, Dem, Prec, Exp) + +endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/include/kframework/builtin/substitution/index.html b/k-distribution/include/kframework/builtin/substitution/index.html new file mode 100644 index 00000000000..4e9c0229513 --- /dev/null +++ b/k-distribution/include/kframework/builtin/substitution/index.html @@ -0,0 +1,484 @@ + + + + + + + + + + + + + + +Capture-Aware Substitution in K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Capture-Aware Substitution in K

      +

      One of the traditional ways in which functional languages are given operational +semantics is via substitution. In particular, you can view a function as +declaring a particular bound variable, the parameter of the function, as well +as the body of the function, within which both bound and free variables can +occur, and implement the process of beta-reduction (one of the axioms of the +lambda calculus) by means of a substitution operator which is aware of the +difference between free variables and bound variables and prevents variable +capture.

      +

      In K this is implemented using two mechanisms: The KVar sort, and the +binder attribute.

      +

      The KVar Sort

      +

      K introduces a new hooked sort, KVar, which the substitution operator +(defined below) understands in a particular way. The syntax of KVar is the +same as for sort Id in DOMAINS, but with a different sort name. Similarly, +some of the same operators are defined over KVar which are defined for Id, +such as conversion from String to KVar and support for the !Var:KVar +syntax.

      +

      A KVar is simply an identifier with special meaning during substitution. +KVars must begin with a letter or underscore, +and can be followed by zero or more letters, numbers, or underscores.

      +
      k
      module KVAR-SYNTAX-PROGRAM-PARSING + imports BUILTIN-ID-TOKENS + + syntax KVar ::= r"(?<![A-Za-z0-9\\_])[A-Za-z\\_][A-Za-z0-9\\_]*" [prec(1), token] + | #LowerId [token] + | #UpperId [token] +endmodule + +module KVAR-SYNTAX + syntax KVar [token, hook(KVAR.KVar)] +endmodule + +module KVAR-COMMON + imports KVAR-SYNTAX + imports private STRING + + syntax KVar ::= String2KVar (String) [function, total, hook(STRING.string2token)] + syntax KVar ::= freshKVar(Int) [freshGenerator, function, total, private] + + rule freshKVar(I:Int) => String2KVar("_" +String Int2String(I)) +endmodule + +module KVAR + imports KVAR-COMMON +endmodule +
      +

      The binder Attribute

      +

      A production can be given the attribute binder. Such a production must have +at least two nonterminals. The first nonterminal from left to right must be of +sort KVar, and contains the bound variable. The last nonterminal from left +to right contains the term that is bound. For example, I could describe lambdas +in the lambda calculus with the production +syntax Val ::= "lambda" KVar "." Exp [binder].

      +

      Substitution

      +

      K provides a hooked implementation of substitution, currently only implemented +on the Java and LLVM backends. Two variants exist: the first substitutes +a single KVar for a single KItem. The second takes a Map with KVar +keys and KItem values, and substitutes each element in the map atomically.

      +

      Internally, this is implemented in the LLVM backend by a combination of +de Bruijn indices for bound variables and names for free variables. Free +variables are also sometimes given a unique numeric identifier in order to +prevent capture, and the rewriter will automatically assign unique names to +such identifiers when rewriting finishes. The names assigned will always begin +with the original name of the variable and be followed by a unique integer +suffix. However, the names assigned after rewriting finishes might be different +from the names that would be assigned if rewriting were to halt prematurely, +for example due to krun --depth.

      +
      k
      module SUBSTITUTION + imports private MAP + imports KVAR + + syntax {Sort} Sort ::= Sort "[" KItem "/" KItem "]" [function, hook(SUBSTITUTION.substOne), impure] + syntax {Sort} Sort ::= Sort "[" Map "]" [function, hook(SUBSTITUTION.substMany), impure] +endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/01_installing/index.html b/k-distribution/k-tutorial/1_basic/01_installing/index.html new file mode 100644 index 00000000000..059c8618dbf --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/01_installing/index.html @@ -0,0 +1,473 @@ + + + + + + + + + + + + + + +Lesson 1.1: Setting up a K Environment | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.1: Setting up a K Environment

      +

      The first step to learning K is to install K on your system, and configure your +editor for K development.

      +

      Installing K

      +

      You have two options for how to install K, depending on how you intend to +interact with the K codebase. If you are solely a user of K, and have no +interest in developing or making changes to K, you most likely will want to +install one of our binary releases of K. However, if you are going to be a K +developer, or simply want to build K from source, you should follow the +instructions for a source build of K.

      +

      Installing K from a binary release

      +

      K is developed as a rolling release, with each change to K that passes our +CI infrastructure being deployed on GitHub for download. The latest release of +K can be downloaded here. +This page also contains information on how to install K. It is recommended +that you fully uninstall the old version of K prior to installing the new one, +as K does not maintain entries in package manager databases, with the exception +of Homebrew on MacOS.

      +

      Installing K from source

      +

      You can clone K from GitHub with the following Git command:

      +
      git clone https://github.com/runtimeverification/k --recursive
      +
      +

      Instructions on how to build K from source can be found +here.

      +

      Configuring your editor

      +

      K maintains a set of scripts for a variety of text editors, including vim and +emacs, in various states of maintenance. You can download these scripts with +the following Git command:

      +
      git clone https://github.com/kframework/k-editor-support
      +
      +

      Because K allows users to define their own grammars for parsing K itself, +not all features of K can be effectively highlighted. However, at the cost of +occasionally highlighting things incorrectly, you can get some pretty good +results in many cases. With that being said, some of the editor scripts in the +above repository are pretty out of date. If you manage to improve them, we +welcome pull requests into the repository.

      +

      Troubleshooting

      +

      If you have problems installing K, we encourage you to reach out to us. If you +follow the above install instructions and run into a problem, you can +Create a bug report on GitHub

      +

      Next lesson

      +

      Once you have set up K on your system to your satisfaction, you can continue to +Lesson 1.2: Basics of Functional K.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/02_basics/index.html b/k-distribution/k-tutorial/1_basic/02_basics/index.html new file mode 100644 index 00000000000..cac4f4a06e4 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/02_basics/index.html @@ -0,0 +1,612 @@ + + + + + + + + + + + + + + +Lesson 1.2: Basics of Functional K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.2: Basics of Functional K

      +

      The purpose of this lesson is to explain the basics of productions and +rules in K. These are two types of K sentences. A K file consists of +one or more requires or modules in K. Each module consists of one or +more imports or sentences. For more information on requires, modules, and +sentences, refer to Lesson 1.5. However, for the time +being, just think of a module as a container for sentences, and don't worry +about requires or imports just yet.

      +

      Our first K program

      +

      To start with, input the following program into your editor as file +lesson-02-a.k:

      +
      k
      module LESSON-02-A + + syntax Color ::= Yellow() | Blue() + syntax Fruit ::= Banana() | Blueberry() + syntax Color ::= colorOf(Fruit) [function] + + rule colorOf(Banana()) => Yellow() + rule colorOf(Blueberry()) => Blue() + +endmodule +
      +

      Save this file and then run:

      +
      kompile lesson-02-a.k
      +
      +

      kompile is K's compiler. By default, it takes a program or specification +written in K and compiles it into an interpreter for that input. Right now we +are compiling a single file. A set of K files that are compiled together are +called a K definition. We will cover multiple file K definitions later on. +kompile will output a directory containing everything needed to execute +programs and perform proofs using that definition. In this case, kompile will +(by default) create the directory lesson-02-a-kompiled under the current +directory.

      +

      Now, save the following input file in your editor as banana.color in the same +directory as lesson-02-a.k:

      +
      colorOf(Banana())
      +
      +

      We can now evaluate this K term by running (from the same directory):

      +
      krun banana.color
      +
      +

      krun will use the interpreter generated by the first call to kompile to +execute this program.

      +

      You will get the following output:

      +
      <k>
      +  Yellow ( ) ~> .
      +</k>
      +
      +

      For now, don't worry about the <k>, </k>, or ~> . portions of this +output file.

      +

      You can also execute small programs directly by specifying them on the command +line instead of putting them in a file. For example, the same program above +could also have been executed by running the following command:

      +
      krun -cPGM='colorOf(Banana())'
      +
      +

      Now, let's look at what this definition and program did.

      +

      Productions, Constructors, and Functions

      +

      The first thing to realize is that this K definition contains 5 productions. +Productions are introduced with the syntax keyword, followed by a sort, +followed by the operator ::= followed by the definition of one or more +productions themselves, separated by the | operator. There are different +types of productions, but for now we only care about constructors and +functions. Each declaration separated by the | operator is individually +a single production, and the | symbol simply groups together productions that +have the same sort. For example, we could equally have written an identical K +definition lesson-02-b.k like so:

      +
      k
      module LESSON-02-B + + syntax Color ::= Yellow() + syntax Color ::= Blue() + syntax Fruit ::= Banana() + syntax Fruit ::= Blueberry() + syntax Color ::= colorOf(Fruit) [function] + + rule colorOf(Banana()) => Yellow() + rule colorOf(Blueberry()) => Blue() + +endmodule +
      +

      You can try compiling and running lesson-02-b.k to see that it produces the same output as lesson-02-a.k:

      +
      kompile lesson-02-b.k
      +krun -cPGM='colorOf(Banana())' --definition 'lesson-02-b-kompiled'
      +
      +

      where the --definition attribute points to the directory containing a compiled version of LESSON-02-B. +Even the following definition is equivalent:

      +
      k
      module LESSON-02-C + + syntax Color ::= Yellow() + | Blue() + | colorOf(Fruit) [function] + syntax Fruit ::= Banana() + | Blueberry() + + rule colorOf(Banana()) => Yellow() + rule colorOf(Blueberry()) => Blue() + +endmodule +
      +

      Each of these types of productions named above has the same underlying syntax, +but context and attributes are used to distinguish between the different +types. Tokens, brackets, lists, macros, aliases, and anywhere productions will +be covered in a later lesson, but this lesson does introduce us to constructors +and functions. Yellow(), Blue(), Banana(), and Blueberry() are +constructors. You can think of a constructor like a constructor for an +algebraic data type, if you're familiar with a functional language. The data +type itself is the sort that appears on the left of the ::= operator. Sorts +in K consist of uppercase identifiers.

      +

      Constructors can have arguments, but these ones do not. We will cover the +syntax of productions in detail in the next lesson, but for now, you can write +a production with no arguments as an uppercase or lowercase identifier followed +by the () operator.

      +

      A function is distinguished from a constructor by the presence of the +function attribute. Attributes appear in a comma separated list between +square brackets after any sentence, including both productions and rules. +Various attributes with built-in meanings exist in K and will be discussed +throughout the tutorial.

      +

      Exercise

      +

      Use krun to compute the return value of the colorOf function on a +Blueberry().

      +

      Rules, Matching, and Variables

      +

      Functions in K are given definitions using rules. A rule begins with the rule +keyword and contains at least one rewrite operator. The rewrite operator +is represented by the syntax =>. The rewrite operator is one of the built-in +productions in K, and we will discuss in more detail how it can be used in +future lessons, but for now, you can think of a rule as consisting of a +left-hand side and a right-hand side, separated by the rewrite +operator. On the left-hand side is the name of the function and zero or more +patterns corresponding to the parameters of the function. On the right-hand +side is another pattern. The meaning of the rule is relatively simple, having +defined these components. If the function is called with arguments that +match the patterns on the left-hand side, then the return value of the +function is the pattern on the right-hand side.

      +

      For example, in the above example, if the argument of the colorOf function +is Banana(), then the return value of the function is Yellow().

      +

      So far we have introduced that a constructor is a type of pattern in K. We +will introduce more complex patterns in later lessons, but there is one other +type of basic pattern: the variable. A variable, syntactically, consists +of an uppercase identifier. However, unlike a constructor, a variable will +match any pattern with one exception: Two variables with the same name +must match the same pattern.

      +

      Here is a more complex example (lesson-02-d.k):

      +
      k
      module LESSON-02-D + + syntax Container ::= Jar(Fruit) + syntax Fruit ::= Apple() | Pear() + + syntax Fruit ::= contentsOfJar(Container) [function] + + rule contentsOfJar(Jar(F)) => F + +endmodule +
      +

      Here we see that Jar is a constructor with a single argument. You can write a +production with multiple arguments by putting the sorts of the arguments in a +comma-separated list inside the parentheses.

      +

      In this example, F is a variable. It will match either Apple() or Pear(). +The return value of the function is created by substituting the matched +values of all of the variables into the variables on the right-hand side of +the rule.

      +

      To demonstrate, compile this definition and execute the following program with +krun:

      +
      contentsOfJar(Jar(Apple()))
      +
      +

      You will see when you run it that the program returns Apple(), because that +is the pattern that was matched by F.

      +

      Exercises

      +
        +
      1. Extend the definition in lesson-02-a.k with the addition of blackberries +and kiwis. For simplicity, blackberries are black and kiwis are green. Then +compile your definition and test that your additional fruits are correctly +handled by the colorOf function.
      2. +
      3. Create a new definition which defines an outfit as a multi-argument +constructor consisting of a hat, shirt, pants, and shoes. Define a new sort, +Boolean, with two constructors, true and false. Each of hat, shirt, pants, +and shoes will have a single argument (a color), either black or +white. Then define an outfitMatching function that will return true if all +the pieces of the outfit are the same color. You do not need to define the +case that returns false. Write some tests that your function behaves the way +you expect.
      4. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.3: BNF Syntax and Parser Generation.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/03_parsing/index.html b/k-distribution/k-tutorial/1_basic/03_parsing/index.html new file mode 100644 index 00000000000..987344e93d5 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/03_parsing/index.html @@ -0,0 +1,780 @@ + + + + + + + + + + + + + + +Lesson 1.3: BNF Syntax and Parser Generation | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.3: BNF Syntax and Parser Generation

      +

      The purpose of this lesson is to explain the full syntax and semantics of +productions in K as well as how productions and other syntactic +sentences can be used to define grammars for use parsing both rules as well +as programs.

      +

      K's approach to parsing

      +

      K's grammar is divided into two components: the outer syntax of K and the +inner syntax of K. Outer syntax refers to the parsing of requires, +modules, imports, and sentences in a K definition. Inner syntax +refers to the parsing of rules and programs. Unlike the outer syntax of +K, which is predetermined, much of the inner syntax of K is defined by you, the +developer. When rules or programs are parsed, they are parsed within the +context of a module. Rules are parsed in the context of the module in which +they exist, whereas programs are parsed in the context of the +main syntax module of a K definition. The productions and other syntactic +sentences in a module are used to construct the grammar of the module, which +is then used to perform parsing.

      +

      Basic BNF productions

      +

      To illustrate how this works, we will consider a simple K definition which +defines a relatively basic calculator capable of evaluating Boolean expressions +containing and, or, not, and xor.

      +

      Input the following program into your editor as file lesson-03-a.k:

      +
      k
      module LESSON-03-A + + syntax Boolean ::= "true" | "false" + | "!" Boolean [function] + | Boolean "&&" Boolean [function] + | Boolean "^" Boolean [function] + | Boolean "||" Boolean [function] + +endmodule +
      +

      You will notice that the productions in this file look a little different than +the ones from the previous lesson. In point of fact, K has two different +mechanisms for defining productions. We have previously been focused +exclusively on the first mechanism, where the ::= symbol is followed by an +alphanumeric identifier followed by a comma-separated list of sorts in +parentheses. However, this is merely a special case of a more generic mechanism +for defining the syntax of productions using a variant of +BNF Form.

      +

      For example, in the previous lesson, we had the following set of productions:

      +
      k
      module LESSON-03-B + syntax Color ::= Yellow() | Blue() + syntax Fruit ::= Banana() | Blueberry() + syntax Color ::= colorOf(Fruit) [function] +endmodule +
      +

      It turns out that this is equivalent to the following definition which defines +the same grammar, but using BNF notation:

      +
      k
      module LESSON-03-C + syntax Color ::= "Yellow" "(" ")" | "Blue" "(" ")" + syntax Fruit ::= "Banana" "(" ")" | "Blueberrry" "(" ")" + syntax Color ::= "colorOf" "(" Fruit ")" [function] +endmodule +
      +

      In this example, the sorts of the argument to the function are unchanged, but +everything else has been wrapped in double quotation marks. This is because +in BNF notation, we distinguish between two types of production items: +terminals and non-terminals. A terminal represents simply a literal +string of characters that is verbatim part of the syntax of that production. +A non-terminal, conversely, represents a sort name, where the syntax of that +production accepts any valid term of that sort at that position.

      +

      This is why, when we wrote the program colorOf(Banana()), krun was able to +execute that program: because it represented a term of sort Color that was +parsed and interpreted by K's interpreter. In other words, krun parses and +interprets terms according to the grammar defined by the developer. It is +automatically converted into an AST of that term, and then the colorOf +function is evaluated using the function rules provided in the definition.

      +

      You can ask yourself: How does K match the strings between the double quotes? +The answer is that K uses Flex to generate a scanner for the grammar. Flex looks +for the longest possible match of a regular expression in the input. If there +are ambiguities between 2 or more regular expressions, it will pick the one with +the highest prec attribute. You can learn more about how Flex matching works +here.

      +

      Bringing us back to the file lesson-03-a.k, we can see that this grammar +has given a simple BNF grammar for expressions over Booleans. We have defined +constructors corresponding to the Boolean values true and false, and functions +corresponding to the Boolean operators for and, or, not, and xor. We have also +given a syntax for each of these functions based on their syntax in the C +programming language. As such, we can now write programs in the simple language +we have defined.

      +

      Input the following program into your editor as and.bool in the same +directory:

      +
      true && false
      +
      +

      We cannot interpret this program yet, because we have not given rules defining +the meaning of the && function yet, but we can parse it. To do this, you can +run (from the same directory):

      +
      kast --output kore and.bool
      +
      +

      kast is K's just-in-time parser. It will generate a grammar from your K +definition on the fly and use it to parse the program passed on the command +line. The --output flag controls how the resulting AST is represented; don't +worry about the possible values yet, just use kore.

      +

      You ought to get the following AST printed on standard output, minus the +formatting:

      +
      inj{SortBoolean{}, SortKItem{}}(
      +  Lbl'UndsAnd-And-UndsUnds'LESSON-03-A'Unds'Boolean'Unds'Boolean'Unds'Boolean{}(
      +    Lbltrue'Unds'LESSON-03-A'Unds'Boolean{}(),
      +    Lblfalse'Unds'LESSON-03-A'Unds'Boolean{}()
      +  )
      +)
      +
      +

      Don't worry about what exactly this means yet, just understand that it +represents the AST of the program that you just parsed. You ought to be able +to recognize the basic shape of it by seeing the words true, false, and +And in there. This is Kore, the intermediate representation of K, and we +will cover it in detail later.

      +

      Note that you can also tell kast to print the AST in other formats. For a +more direct representation of the original K, while still maintaining the +structure of an AST, you can say kast --output kast and.bool. This will +yield the following output:

      +
      `_&&__LESSON-03-A_Boolean_Boolean_Boolean`(
      +  `true_LESSON-03-A_Boolean`(.KList),
      +  `false_LESSON-03-A_Boolean`(.KList)
      +)
      +
      +

      Note how the first output is largely a name-mangled version of the second +output. The one difference is the presence of the inj symbol in the KORE +output. We will talk more about this in later lessons.

      +

      Exercise

      +

      Parse the expression false || true with --output kast. See if you can +predict approximately what the corresponding output would be with +--output kore, then run the command yourself and compare it to your +prediction.

      +

      Ambiguities

      +

      Now let's try a slightly more advanced example. Input the following program +into your editor as and-or.bool:

      +
      true && false || false
      +
      +

      When you try and parse this program, you ought to see the following error:

      +
      [Error] Inner Parser: Parsing ambiguity.
      +1: syntax Boolean ::= Boolean "||" Boolean [function]
      +
      +`_||__LESSON-03-A_Boolean_Boolean_Boolean`(`_&&__LESSON-03-A_Boolean_Boolean_Boolean`(`true_LESSON-03-A_Boolean`(.KList),`false_LESSON-03-A_Boolean`(.KList)),`false_LESSON-03-A_Boolean`(.KList))
      +2: syntax Boolean ::= Boolean "&&" Boolean [function]
      +
      +`_&&__LESSON-03-A_Boolean_Boolean_Boolean`(`true_LESSON-03-A_Boolean`(.KList),`_||__LESSON-03-A_Boolean_Boolean_Boolean`(`false_LESSON-03-A_Boolean`(.KList),`false_LESSON-03-A_Boolean`(.KList)))
      +        Source(./and-or.bool)
      +        Location(1,1,1,23)
      +
      +

      This error is saying that kast was unable to parse this program because it is +ambiguous. K's just-in-time parser is a GLL parser, which means it can handle +the full generality of context-free grammars, including those grammars which +are ambiguous. An ambiguous grammar is one where the same string can be parsed +as multiple distinct ASTs. In this example, it can't decide whether it should +be parsed as (true && false) || false or as true && (false || false). As a +result, it reports the error to the user.

      +

      Brackets

      +

      Currently there is no way of resolving this ambiguity, making it impossible +to write complex expressions in this language. This is obviously a problem. +The standard solution in most programming languages to this problem is to +use parentheses to indicate the appropriate grouping. K generalizes this notion +into a type of production called a bracket. A bracket production in K +is any production with the bracket attribute. It is required that such a +production only have a single non-terminal, and the sort of the production +must equal the sort of that non-terminal. However, K does not otherwise +impose restrictions on the grammar the user provides for a bracket. With that +being said, the most common type of bracket is one in which a non-terminal +is surrounded by terminals representing some type of bracket such as +(), [], {}, <>, etc. For example, we can define the most common +type of bracket, the type used by the vast majority of programming languages, +quite simply.

      +

      Consider the following modified definition, which we will save to +lesson-03-d.k:

      +
      k
      module LESSON-03-D + + syntax Boolean ::= "true" | "false" + | "(" Boolean ")" [bracket] + | "!" Boolean [function] + | Boolean "&&" Boolean [function] + | Boolean "^" Boolean [function] + | Boolean "||" Boolean [function] + +endmodule +
      +

      In this definition, if the user does not explicitly define parentheses, the +grammar remains ambiguous and K's just-in-time parser will report an error. +However, you are now able to parse more complex programs by means of explicitly +grouping subterms with the bracket we have just defined.

      +

      Consider and-or-left.bool:

      +
      (true && false) || false
      +
      +

      Now consider and-or-right.bool:

      +
      true && (false || false)
      +
      +

      If you parse these programs with kast, you will once again get a single +unique AST with no error. If you look, you might notice that the bracket itself +does not appear in the AST. In fact, this is a property unique to brackets: +productions with the bracket attribute are not represented in the parsed AST +of a term, and the child of the bracket is folded immediately into the parent +term. This is the reason for the requirement that a bracket production have +a single non-terminal of the same sort as the production itself.

      +

      Exercise

      +

      Write out what you expect the AST to be arising from parsing these two programs +above with --output kast, then parse them yourself and compare them to the +AST you expected. Confirm for yourself that the bracket production does not +appear in the AST.

      +

      Tokens

      +

      So far we have seen how we can define the grammar of a language. However, +the grammar is not the only relevant part of parsing a language. Also relevant +is the lexical syntax of the language. Thus far, we have implicitly been using +K's automatic lexer generation to generate a token in the scanner for each +terminal in our grammar. However, sometimes we wish to define more complex +lexical syntax. For example, consider the case of integers in C: an integer +consists of a decimal, octal, or hexadecimal number followed by an optional +suffix indicating the type of the literal.

      +

      In theory it would be possible to define this syntax via a grammar, but not +only would it be cumbersome and tedious, you would also then have to deal with +an AST generated for the literal which is not convenient to work with.

      +

      Instead of doing this, K allows you to define token productions, where +a production consists of a regular expression followed by the token +attribute, and the resulting AST consists of a typed string containing the +value recognized by the regular expression.

      +

      For example, the builtin integers in K are defined using the following +production:

      +
      .k .exclude
      syntax Int ::= r"[\\+-]?[0-9]+" [token] +
      +

      Here we can see that we have defined that an integer is an optional sign +followed by a nonzero sequence of digits. The r preceding the terminal +indicates that what appears inside the double quotes is a regular expression, +and the token attribute indicates that terms which parse as this production +should be converted into a token by the parser.

      +

      It is also possible to define tokens that do not use regular expressions. This +can be useful when you wish to declare particular identifiers for use in your +semantics later. For example:

      +
      .k .exclude
      syntax Id ::= "main" [token] +
      +

      Here, we declare that main is a token of sort Id. Instead of being parsed +as a symbol, it gets parsed as a token, generating a typed string in the AST. +This is useful in a semantics of C because the parser generally does not treat +the main function in C specially; only the semantics treats it specially.

      +

      Of course, languages can have more complex lexical syntax. For example, if we +wish to define the syntax of integers in C, we could use the following +production:

      +
      .k .exclude
      syntax IntConstant ::= r"(([1-9][0-9]*)|(0[0-7]*)|(0[xX][0-9a-fA-F]+))(([uU][lL]?)|([uU]((ll)|(LL)))|([lL][uU]?)|(((ll)|(LL))[uU]?))?" [token] +
      +

      As you may have noted above, long and complex regular expressions +can be hard to read. They also suffer from the problem that unlike a grammar, +they are not particularly modular.

      +

      We can get around this restriction by declaring explicit regular expressions, +giving them a name, and then referring to them in productions.

      +

      Consider the following (equivalent) way to define the lexical syntax of +integers in C:

      +
      .k .exclude
      syntax IntConstant ::= r"({DecConstant}|{OctConstant}|{HexConstant})({IntSuffix}?)" [token] +syntax lexical DecConstant = r"{NonzeroDigit}({Digit}*)" +syntax lexical OctConstant = r"0({OctDigit}*)" +syntax lexical HexConstant = r"{HexPrefix}({HexDigit}+)" +syntax lexical HexPrefix = r"0x|0X" +syntax lexical NonzeroDigit = r"[1-9]" +syntax lexical Digit = r"[0-9]" +syntax lexical OctDigit = r"[0-7]" +syntax lexical HexDigit = r"[0-9a-fA-F]" +syntax lexical IntSuffix = r"{UnsignedSuffix}({LongSuffix}?)|{UnsignedSuffix}{LongLongSuffix}|{LongSuffix}({UnsignedSuffix}?)|{LongLongSuffix}({UnsignedSuffix}?)" +syntax lexical UnsignedSuffix = r"[uU]" +syntax lexical LongSuffix = r"[lL]" +syntax lexical LongLongSuffix = r"ll|LL" +
      +

      As you can see, this is rather more verbose, but it has the benefit of both +being much easier to read and understand, and also increased modularity. +Note that we refer to a named regular expression by putting the name in curly +brackets. Note also that only the first sentence actually declares a new piece +of syntax in the language. When the user writes syntax lexical, they are only +declaring a regular expression. To declare an actual piece of syntax in the +grammar, you still must actually declare an explicit token production.

      +

      One final note: K uses Flex to implement +its lexical analysis. As a result, you can refer to the +Flex Manual +for a detailed description of the regular expression syntax supported. Note +that for performance reasons, Flex's regular expressions are actually a regular +language, and thus lack some of the syntactic convenience of modern +"regular expression" libraries. If you need features that are not part of the +syntax of Flex regular expressions, you are encouraged to express them via +a grammar instead.

      +

      Ahead-of-time parser generation

      +

      So far we have been entirely focused on K's support for just-in-time parsing, +where the parser is generated on the fly prior to being used. This benefits +from being faster to generate the parser, but it suffers in performance if you +have to repeatedly parse strings with the same parser. For this reason, it is +generally encouraged that when parsing programs, you use K's ahead-of-time +parser generation. K makes use of +GNU Bison to generate parsers.

      +

      By default, you can enable ahead-of-time parsing via the --gen-bison-parser +flag to kompile. This will make use of Bison's LR(1) parser generator. As +such, if your grammar is not LR(1), it may not parse exactly the same as if +you were to use the just-in-time parser, because Bison will automatically pick +one of the possible branches whenever it encounters a shift-reduce or +reduce-reduce conflict. In this case, you can either modify your grammar to be +LR(1), or you can enable use of Bison's GLR support by instead passing +--gen-glr-bison-parser to kompile. Note that if your grammar is ambiguous, +the ahead-of-time parser will not provide you with particularly readable error +messages at this time.

      +

      If you have a K definition named foo.k, and it generates a directory when +you run kompile called foo-kompiled, you can invoke the ahead-of-time +parser you generated by running foo-kompiled/parser_PGM <file> on a file.

      +

      Exercises

      +
        +
      1. +

        Compile lesson-03-d.k with ahead-of-time parsing enabled. Then compare +how long it takes to run kast --output kore and-or-left.bool with how long it +takes to run lesson-03-d-kompiled/parser_PGM and-or-left.bool. Confirm for +yourself that both produce the same result, but that the latter is faster.

        +
      2. +
      3. +

        Define a simple grammar consisting of integers, brackets, addition, +subtraction, multiplication, division, and unary negation. Integers should be +in decimal form and lexically without a sign, whereas negative numbers can be +represented via unary negation. Ensure that you are able to parse some basic +arithmetic expressions using a generated ahead-of-time parser. Do not worry +about disambiguating the grammar or about writing rules to implement the +operations in this definition.

        +
      4. +
      5. +

        Write a program where the meaning of the arithmetic expression based on +the grammar you defined above is ambiguous, and then write programs that +express each individual intended meaning using brackets.

        +
      6. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.4: Disambiguating Parses.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/04_disambiguation/index.html b/k-distribution/k-tutorial/1_basic/04_disambiguation/index.html new file mode 100644 index 00000000000..661fe7f2830 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/04_disambiguation/index.html @@ -0,0 +1,729 @@ + + + + + + + + + + + + + + +Lesson 1.4: Disambiguating Parses | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.4: Disambiguating Parses

      +

      The purpose of this lesson is to teach how to use K's builtin features for +disambiguation to transform an ambiguous grammar into an unambiguous one that +expresses the intended ASTs.

      +

      Priority blocks

      +

      In practice, very few formal languages outside the domain of natural language +processing are ambiguous. The main reason for this is that parsing unambiguous +languages is asymptotically faster than parsing ambiguous languages. +Programming language designers instead usually use the notions of operator +precedence and associativity to make expression grammars unambiguous. These +mechanisms work by instructing the parser to reject certain ASTs in favor of +others in case of ambiguities; it is often possible to remove all ambiguities +in a grammar with these techniques.

      +

      While it is sometimes possible to explicitly rewrite the grammar to remove +these parses, because K's grammar specification and AST generation are +inextricably linked, this is generally discouraged. Instead, we use the +approach of explicitly expressing the relative precedence of different +operators in different situations in order to resolve the ambiguity.

      +

      For example, in C, && binds tighter in precedence than ||, meaning that +the expression true && false || false has only one valid AST: +(true && false) || false.

      +

      Consider, then, the third iteration on the grammar of this definition +(lesson-04-a.k):

      +
      k
      module LESSON-04-A + + syntax Boolean ::= "true" | "false" + | "(" Boolean ")" [bracket] + > "!" Boolean [function] + > Boolean "&&" Boolean [function] + > Boolean "^" Boolean [function] + > Boolean "||" Boolean [function] + +endmodule +
      +

      In this example, some of the | symbols separating productions in a single +block have been replaced with >. This serves to describe the +priority groups associated with this block of productions. +The first priority group consists of the atoms of the +language: true, false, and the bracket operator. In general, a priority +group starts either at the ::= or > operator and extends until either the +next > operator or the end of the production block. Thus, we can see that the +second, third, fourth, and fifth priority groups in this grammar all consist +of a single production.

      +

      The meaning of these priority groups becomes apparent when parsing programs: +A symbol with a lesser priority, (i.e., one that binds looser), cannot +appear as the direct child of a symbol with a greater priority (i.e., +one that binds tighter. In this case, the > operator can be seen as a +greater-than operator describing a transitive partial ordering on the +productions in the production block, expressing their relative priority.

      +

      To see this more concretely, let's look again at the program +true && false || false. As noted before, previously this program was +ambiguous because the parser could either choose that && was the child of || +or vice versa. However, because a symbol with lesser priority (i.e., ||) +cannot appear as the direct child of a symbol with greater priority +(i.e., &&), the parser will reject the parse where || is under the +&& operator. As a result, we are left with the unambiguous parse +(true && false) || false. Similarly, true || false && false parses +unambiguously as true || (false && false). Conversely, if the user explicitly +wants the other parse, they can express this using brackets by explicitly +writing true && (false || false). This still parses successfully because the +|| operator is no longer the direct child of the && operator, but is +instead the direct child of the () operator, and the && operator is an +indirect parent, which is not subject to the priority restriction.

      +

      Astute readers, however, will already have noticed what seems to be a +contradiction: we have defined () as also having greater priority than ||. +One would think that this should mean that || cannot appear as a direct +child of (). This is a problem because priority groups are applied to every +possible parse separately. That is to say, even if the term is unambiguous +prior to this disambiguation rule, we still reject that parse if it violates +the rule of priority.

      +

      In fact, however, we do not reject this program as a parse error. Why is that? +Well, the rule for priority is slightly more complex than previously described. +In actual fact, it applies only conditionally. Specifically, it applies in +cases where the child is either the first or last production item in the +parent's production. For example, in the production Bool "&&" Bool, the +first Bool non-terminal is not preceded by any terminals, and the last Bool +non-terminal is not followed by any terminals. As a result of this, we apply +the priority rule to both children of &&. However, in the () operator, +the sole non-terminal is both preceded by and followed by terminals. As a +result, the priority rule is not applied when () is the parent. Because of +this, the program we mentioned above successfully parses.

      +

      Exercise

      +

      Parse the program true && false || false using kast, and confirm that the AST +places || as the top level symbol. Then modify the definition so that you +will get the alternative parse.

      +

      Associativity

      +

      Even having broken the expression grammar into priority blocks, the resulting +grammar is still ambiguous. We can see this if we try to parse the following +program (assoc.bool):

      +
      true && false && false
      +
      +

      Priority blocks will not help us here: the problem comes between two parses +where both possible parses have a direct parent and child which is within a +single priority block (in this case, && is in the same block as itself).

      +

      This is where the notion of associativity comes into play. Associativity +applies the following additional rules to parses:

      +
        +
      • a left-associative symbol cannot appear as a direct rightmost child of a +symbol with equal priority;
      • +
      • a right-associative symbol cannot appear as a direct leftmost child of a +symbol with equal priority; and
      • +
      • a non-associative symbol cannot appear as a direct leftmost or rightmost +child of a symbol with equal priority.
      • +
      +

      In C, binary operators are all left-associative, meaning that the expression +true && false && false parses unambiguously as (true && false) && false, +because && cannot appear as the rightmost child of itself.

      +

      Consider, then, the fourth iteration on the grammar of this definition +(lesson-04-b.k):

      +
      k
      module LESSON-04-B + + syntax Boolean ::= "true" | "false" + | "(" Boolean ")" [bracket] + > "!" Boolean [function] + > left: Boolean "&&" Boolean [function] + > left: Boolean "^" Boolean [function] + > left: Boolean "||" Boolean [function] + +endmodule +
      +

      Here each priority group, immediately after the ::= or > operator, can +be followed by a symbol representing the associativity of that priority group: +either left: for left associativity, right: for right associativity, or +non-assoc: for non-associativity. In this example, each priority group we +apply associativity to has only a single production, but we could equally well +write a priority block with multiple productions and an associativity.

      +

      For example, consider the following, different grammar (lesson-04-c.k):

      +
      k
      module LESSON-04-C + + syntax Boolean ::= "true" | "false" + | "(" Boolean ")" [bracket] + > "!" Boolean [function] + > left: + Boolean "&&" Boolean [function] + | Boolean "^" Boolean [function] + | Boolean "||" Boolean [function] + +endmodule +
      +

      In this example, unlike the one above, &&, ^, and || have the same +priority. However, viewed as a group, the entire group is left associative. +This means that none of &&, ^, and || can appear as the right child of +any of &&, ^, or ||. As a result of this, this grammar is also not +ambiguous. However, it expresses a different grammar, and you are encouraged +to think about what the differences are in practice.

      +

      Exercise

      +

      Parse the program true && false && false yourself, and confirm that the AST +places the rightmost && at the top of the expression. Then modify the +definition to generate the alternative parse.

      +

      Explicit priority and associativity declarations

      +

      Previously we have only considered the case where all of the productions +which you wish to express a priority or associativity relation over are +co-located in the same block of productions. However, in practice this is not +always feasible or desirable, especially as a definition grows in size across +multiple modules.

      +

      As a result of this, K provides a second way of declaring priority and +associativity relations.

      +

      Consider the following grammar, which we will name lesson-04-d.k and which +will express the exact same grammar as lesson-04-b.k

      +
      k
      module LESSON-04-D + + syntax Boolean ::= "true" [group(literal)] | "false" [group(literal)] + | "(" Boolean ")" [group(atom), bracket] + | "!" Boolean [group(not), function] + | Boolean "&&" Boolean [group(and), function] + | Boolean "^" Boolean [group(xor), function] + | Boolean "||" Boolean [group(or), function] + + syntax priorities literal atom > not > and > xor > or + syntax left and + syntax left xor + syntax left or +endmodule +
      +

      This introduces a couple of new features of K. First, the group(_) attribute +is used to conceptually group together sets of sentences under a common +user-defined name. For example, literal in the syntax priorities sentence is +used to refer to all the productions marked with the group(literal) attribute, +i.e., true and false. A production can belong to multiple groups using +syntax such as group(myGrp1,myGrp2).

      +

      Once we understand this, it becomes relatively straightforward to understand +the meaning of this grammar. Each syntax priorities sentence defines a +priority relation where > separates different priority groups. Each priority +group is defined by a list of one or more group names, and consists of all +productions which are members of at least one of those named groups.

      +

      In the same way, a syntax left, syntax right, or syntax non-assoc sentence +defines an associativity relation among left-, right-, or non-associative +groups. Specifically, this means that:

      +
      syntax left a b
      +
      +

      is different to:

      +
      syntax left a
      +syntax left b
      +
      +

      As a consequence of this, syntax [left|right|non-assoc] should not be used to +group together labels with different priority.

      +

      Prefer/avoid

      +

      Sometimes priority and associativity prove insufficient to disambiguate a +grammar. In particular, sometimes it is desirable to be able to choose between +two ambiguous parses directly while still not rejecting any parses if the term +parsed is unambiguous. A good example of this is the famous "dangling else" +problem in imperative C-like languages.

      +

      Consider the following definition (lesson-04-E.k):

      +
      k
      module LESSON-04-E + + syntax Exp ::= "true" | "false" + syntax Stmt ::= "if" "(" Exp ")" Stmt + | "if" "(" Exp ")" Stmt "else" Stmt + | "{" "}" +endmodule +
      +

      We can write the following program (dangling-else.if):

      +
      if (true) if (false) {} else {}
      +
      +

      This is ambiguous because it is unclear whether the else clause is part of +the outer if or the inner if. At first we might try to resolve this with +priorities, saying that the if without an else cannot appear as a child of +the if with an else. However, because the non-terminal in the parent symbol +is both preceded and followed by a terminal, this will not work.

      +

      Instead, we can resolve the ambiguity directly by telling the parser to +"prefer" or "avoid" certain productions when ambiguities arise. For example, +when we parse this program, we see the following ambiguity as an error message:

      +
      [Error] Inner Parser: Parsing ambiguity.
      +1: syntax Stmt ::= "if" "(" Exp ")" Stmt
      +
      +`if(_)__LESSON-04-E_Stmt_Exp_Stmt`(`true_LESSON-04-E_Exp`(.KList),`if(_)_else__LESSON-04-E_Stmt_Exp_Stmt_Stmt`(`false_LESSON-04-E_Exp`(.KList),`;_LESSON-04-E_Stmt`(.KList),`;_LESSON-04-E_Stmt`(.KList)))
      +2: syntax Stmt ::= "if" "(" Exp ")" Stmt "else" Stmt
      +
      +`if(_)_else__LESSON-04-E_Stmt_Exp_Stmt_Stmt`(`true_LESSON-04-E_Exp`(.KList),`if(_)__LESSON-04-E_Stmt_Exp_Stmt`(`false_LESSON-04-E_Exp`(.KList),`;_LESSON-04-E_Stmt`(.KList)),`;_LESSON-04-E_Stmt`(.KList))
      +        Source(./dangling-else.if)
      +        Location(1,1,1,30)
      +
      +

      Roughly, we see that the ambiguity is between an if with an else or an if +without an else. Since we want to pick the first parse, we can tell K to +"avoid" the second parse with the avoid attribute. Consider the following +modified definition (lesson-04-f.k):

      +
      k
      module LESSON-04-F + + syntax Exp ::= "true" | "false" + syntax Stmt ::= "if" "(" Exp ")" Stmt + | "if" "(" Exp ")" Stmt "else" Stmt [avoid] + | "{" "}" +endmodule +
      +

      Here we have added the avoid attribute to the else production. As a result, +when an ambiguity occurs and one or more of the possible parses has that symbol +at the top of the ambiguous part of the parse, we remove those parses from +consideration and consider only those remaining. The prefer attribute behaves +similarly, but instead removes all parses which do not have that attribute. +In both cases, no action is taken if the parse is not ambiguous.

      +

      Exercises

      +
        +
      1. +

        Parse the program if (true) if (false) {} else {} using lesson-04-f.k +and confirm that else clause is part of the innermost if statement. Then +modify the definition so that you will get the alternative parse.

        +
      2. +
      3. +

        Modify your solution from Lesson 1.3, Exercise 2 so that unary negation should +bind tighter than multiplication and division, which should bind tighter than +addition and subtraction, and each binary operator should be left associative. +Write these priority and associativity declarations explicitly, and then +try to write them inline.

        +
      4. +
      5. +

        Write a simple grammar containing at least one ambiguity that cannot be +resolved via priority or associativity, and then use the prefer attribute to +resolve that ambiguity.

        +
      6. +
      7. +

        Explain why the following grammar is not labeled ambiguous by the K parser when parsing abb, then make the parser realize the ambiguity.

        +
      8. +
      +
      k
      module EXERCISE4 + +syntax Expr ::= "a" Expr "b" + | "abb" + | "b" + +endmodule +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.5: Modules, Imports, and Requires.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/05_modules/index.html b/k-distribution/k-tutorial/1_basic/05_modules/index.html new file mode 100644 index 00000000000..c33e38db8a1 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/05_modules/index.html @@ -0,0 +1,670 @@ + + + + + + + + + + + + + + +Lesson 1.5: Modules, Imports, and Requires | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.5: Modules, Imports, and Requires

      +

      The purpose of this lesson is to explain how K definitions can be broken into +separate modules and files and how these distinct components combine into a +complete K definition.

      +

      K's outer syntax

      +

      Recall from Lesson 1.3 that K's grammar is broken +into two components: the outer syntax of K and the inner syntax of K. +Outer syntax, as previously mentioned, consists of requires, modules, +imports, and sentences. A K semantics is expressed by the set of +sentences contained in the definition. The scope of what is considered +contained in that definition is determined both by the main semantics +module of a K definition, as well as the requires and imports present +in the file that contains that module.

      +

      Basic module syntax

      +

      The basic unit of grouping sentences in K is the module. A module consists +of a module name, an optional list of attributes, a list of +imports, and a list of sentences.

      +

      A module name consists of one or more groups of letters, numbers, or +underscores, separated by a hyphen. Here are some valid module names: FOO, +FOO-BAR, foo0, foo0_bar-Baz9. Here are some invalid module names: -, +-FOO, BAR-, FOO--BAR. Stylistically, modules names are usually all +uppercase with hyphens separating words, but this is not strictly enforced.

      +

      Some example modules include an empty module:

      +
      k
      module LESSON-05-A + +endmodule +
      +

      A module with some attributes:

      +
      k
      module LESSON-05-B [group(attr1,attr2), private] + +endmodule +
      +

      A module with some sentences:

      +
      k
      module LESSON-05-C + syntax Boolean ::= "true" | "false" + syntax Boolean ::= "not" Boolean [function] + rule not true => false + rule not false => true +endmodule +
      +

      Imports

      +

      Thus far we have only discussed definitions containing a single module. +Definitions can also contain multiple modules, in which one module imports +others.

      +

      An import in K appears at the top of a module, prior to any sentences. It can +be specified with the imports keyword, followed by a module name.

      +

      For example, here is a simple definition with two modules (lesson-05-d.k):

      +
      k
      module LESSON-05-D-1 + syntax Boolean ::= "true" | "false" + syntax Boolean ::= "not" Boolean [function] +endmodule + +module LESSON-05-D + imports LESSON-05-D-1 + + rule not true => false + rule not false => true +endmodule +
      +

      This K definition is equivalent to the definition expressed by the single module +LESSON-05-C. Essentially, by importing a module, we include all of the +sentences in the module being imported into the module that we import from. +There are a few minor differences between importing a module and simply +including its sentences in another module directly, but we will cover these +differences later. Essentially, you can think of modules as a way of +conceptually grouping sentences in a larger K definition.

      +

      Exercise

      +

      Modify lesson-05-d.k to include four modules: one containing the syntax, two +with one rule each that imports the first module, and a final module +LESSON-05-D containing no sentences that imports the second and third module. +Check to make sure the definition still compiles and that you can still evaluate +the not function.

      +

      Parsing in the presence of multiple modules

      +

      As you may have noticed, each module in a definition can express a distinct set +of syntax. When parsing the sentences in a module, we use the syntax +of that module, enriched with the basic syntax of K, in order to parse +rules in that module. For example, the following definition is a parser error +(lesson-05-e.k):

      +
      .k .error
      module LESSON-05-E-1 + rule not true => false + rule not false => true +endmodule + +module LESSON-05-E-2 + syntax Boolean ::= "true" | "false" + syntax Boolean ::= "not" Boolean [function] +endmodule +
      +

      This is because the syntax referenced in module LESSON-05-E-1, namely, not, +true, and false, is not imported by that module. You can solve this problem +by simply importing the modules containing the syntax you want to use in your +sentences.

      +

      Main syntax and semantics modules

      +

      When we are compiling a K definition, we need to know where to start. We +designate two specific entry point modules: the main syntax module +and the main semantics module. The main syntax module, as well as all the +modules it imports recursively, are used to create the parser for programs that +you use to parse programs that you execute with krun. The main semantics +module, as well as all the modules it imports recursively, are used to +determine the rules that can be applied at runtime in order to execute a +program. For example, in the above example, if the main semantics module is +module LESSON-05-D-1, then not is an uninterpreted function (i.e., has no +rules associated with it), and the rules in module LESSON-05-D are not +included.

      +

      While you can specify the entry point modules explicitly by passing the +--main-module and --syntax-module flags to kompile, by default, if you +type kompile foo.k, then the main semantics module will be FOO and the +main syntax module will be FOO-SYNTAX.

      +

      Splitting a definition into multiple files

      +

      So far, while we have discussed ways to break definitions into separate +conceptual components (modules), K also provides a mechanism for combining +multiple files into a single K definition, namely, the requires directive.

      +

      In K, the requires keyword has two meanings. The first, the requires +statement, appears at the top of a K file, prior to any module declarations. It +consists of the keyword requires followed by a double-quoted string. The +second meaning of the requires keyword will be covered in a later lesson, +but it is distinguished because the second case occurs only inside modules.

      +

      The string passed to the requires statement contains a filename. When you run +kompile on a file, it will look at all of the requires statements in that +file, look up those files on disk, parse them, and then recursively process all +the requires statements in those files. It then combines all the modules in all +of those files together, and uses them collectively as the set of modules to +which imports statements can refer.

      +

      Putting it all together

      +

      Putting it all together, here is one possible way in which we could break the +definition lesson-02-c.k from Lesson 1.2 into +multiple files and modules:

      +

      colors.k:

      +
      k
      module COLORS + syntax Color ::= Yellow() + | Blue() +endmodule +
      +

      fruits.k:

      +
      k
      module FRUITS + syntax Fruit ::= Banana() + | Blueberry() +endmodule +
      +

      colorOf.k:

      +
      .k .exclude
      requires "fruits.k" +requires "colors.k" + +module COLOROF-SYNTAX + imports COLORS + imports FRUITS + + syntax Color ::= colorOf(Fruit) [function] +endmodule + +module COLOROF + imports COLOROF-SYNTAX + + rule colorOf(Banana()) => Yellow() + rule colorOf(Blueberry()) => Blue() +endmodule +
      +

      You would then compile this definition with kompile colorOf.k and use it the +same way as the original, single-module definition.

      +

      Exercise

      +

      Modify the name of the COLOROF module, and then recompile the definition. +Try to understand why you now get a compiler error. Then, resolve this compiler +error by passing the --main-module and --syntax-module flags to kompile.

      +

      Include path

      +

      One note can be made about how paths are resolved in requires statements.

      +

      By default, the path you specify is allowed to be an absolute or a relative +path. If the path is absolute, that exact file is imported. If the path is +relative, a matching file is looked for within all of the +include directories specified to the compiler. By default, the include +directories include the current working directory, followed by the +include/kframework/builtin directory within your installation of K. You can +also pass one or more directories to kompile via the -I command line flag, +in which case these directories are prepended to the beginning of the list.

      +

      Exercises

      +
        +
      1. +

        Take the solution to Lesson 1.4, Exercise 2 which included the explicit +priority and associativity declarations, and modify the definition so that +the syntax of integers and brackets is in one module, the syntax of addition, +subtraction, and unary negation is in another module, and the syntax of +multiplication and division is in a third module. Make sure you can still parse +the same set of expressions as before. Place priority declarations in the main +module.

        +
      2. +
      3. +

        Modify lesson-02-d.k from Lesson 1.2 so that the rules and syntax are in +separate modules in separate files.

        +
      4. +
      5. +

        Place the file containing the syntax from Exercise 2 in another directory, +then recompile the definition. Observe why a compilation error occurs. Then +fix the compiler error by passing -I to kompile.

        +
      6. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.6: Integers and Booleans.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/06_ints_and_bools/index.html b/k-distribution/k-tutorial/1_basic/06_ints_and_bools/index.html new file mode 100644 index 00000000000..6dc5ea314f6 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/06_ints_and_bools/index.html @@ -0,0 +1,608 @@ + + + + + + + + + + + + + + +Lesson 1.6: Integers and Booleans | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.6: Integers and Booleans

      +

      The purpose of this lesson is to explain the two most basic types of builtin +sorts in K, the Int sort and the Bool sort, representing +arbitrary-precision integers and Boolean algebra.

      +

      Builtin sorts in K

      +

      K provides definitions of some useful sorts in +domains.md, found in the +include/kframework/builtin directory of the K installation. This file is +defined via a +Literate programming +style that we will discuss in a future lesson. We will not cover all of the +sorts found there immediately, however, this lesson discusses some of the +details surrounding integers and Booleans, as well as providing information +about how to look up more detailed knowledge about builtin functions in K's +documentation.

      +

      Booleans in K

      +

      The most basic builtin sort K provides is the Bool sort, representing +Boolean values (i.e., true and false). You have already seen how we were +able to create this type ourselves using K's parsing and disambiguation +features. However, in the vast majority of cases, we prefer instead to import +the version of Boolean algebra defined by K itself. Most simply, you can do +this by importing the module BOOL in your definition. For example +(lesson-06-a.k):

      +
      k
      module LESSON-06-A + imports BOOL + + syntax Fruit ::= Blueberry() | Banana() + syntax Bool ::= isBlue(Fruit) [function] + + rule isBlue(Blueberry()) => true + rule isBlue(Banana()) => false +endmodule +
      +

      Here we have defined a simple predicate, i.e., a function returning a +Boolean value. We are now able to perform the usual Boolean operations of +and, or, and not over these values. For example (lesson-06-b.k):"

      +
      k
      module LESSON-06-B + imports BOOL + + syntax Fruit ::= Blueberry() | Banana() + syntax Bool ::= isBlue(Fruit) [function] + + rule isBlue(Blueberry()) => true + rule isBlue(Banana()) => false + + syntax Bool ::= isYellow(Fruit) [function] + | isBlueOrYellow(Fruit) [function] + + rule isYellow(Banana()) => true + rule isYellow(Blueberry()) => false + + rule isBlueOrYellow(F) => isBlue(F) orBool isYellow(F) +endmodule +
      +

      In the above example, Boolean inclusive or is performed via the orBool +function, which is defined in the BOOL module. As a matter of convention, +many functions over builtin sorts in K are suffixed with the name of the +primary sort over which those functions are defined. This happens so that the +syntax of K does not (generally) conflict with the syntax of any other +programming language, which would make it harder to define that programming +language in K.

      +

      Exercise

      +

      Write a function isBlueAndNotYellow which computes the appropriate Boolean +expression. If you are unsure what the appropriate syntax is to use, you +can refer to the BOOL module in +domains.md. Add a term of +sort Fruit for which isBlue and isYellow both return true, and test that +the isBlueAndNotYellow function behaves as expected on all three Fruits.

      +

      Syntax Modules

      +

      For most sorts in domains.md, K defines more than one module that can be +imported by users. For example, for the Bool sort, K defines the BOOL +module that has previously already been discussed, but also provides the +BOOL-SYNTAX module. This module, unlike the BOOL module, only declares the +values true and false, but not any of the functions that operate over the +Bool sort. The rationale is that you may want to import this module into the +main syntax module of your definition in some cases, whereas you generally do +not want to do this with the version of the module that includes all the +functions over the Bool sort. For example, if you were defining the semantics +of C++, you might import BOOL-SYNTAX into the syntax module of your +definition, because true and false are part of the grammar of C++, but +you would only import the BOOL module into the main semantics module, because +C++ defines its own syntax for and, or, and not that is different from the +syntax defined in the BOOL module.

      +

      Here, for example, is how we might redefine our Boolean expression calculator +to use the Bool sort while maintaining an idiomatic structure of modules +and imports, for the first time including the rules to calculate the values of +expressions themselves (lesson-06-c.k):

      +
      k
      module LESSON-06-C-SYNTAX + imports BOOL-SYNTAX + + syntax Bool ::= "(" Bool ")" [bracket] + > "!" Bool [function] + > left: + Bool "&&" Bool [function] + | Bool "^" Bool [function] + | Bool "||" Bool [function] +endmodule + +module LESSON-06-C + imports LESSON-06-C-SYNTAX + imports BOOL + + rule ! B => notBool B + rule A && B => A andBool B + rule A ^ B => A xorBool B + rule A || B => A orBool B +endmodule +
      +

      Note the encapsulation of syntax: the LESSON-06-C-SYNTAX module contains +exactly the syntax of our Boolean expressions, and no more, whereas any other +syntax needed to implement those functions is in the LESSON-06-C module +instead.

      +

      Exercise

      +

      Add an "implies" function to the above Boolean expression calculator, using the +-> symbol to represent implication. You can look up K's builtin "implies" +function in the BOOL module in domains.md.

      +

      Integers in K

      +

      Unlike most programming languages, where the most basic integer type is a +fixed-precision integer type, the most commonly used integer sort in K is +the Int sort, which represents the mathematical integers, ie, +arbitrary-precision integers.

      +

      K provides three main modules for import when using the Int sort. The first, +containing all the syntax of integers as well as all of the functions over +integers, is the INT module. The second, which provides just the syntax +of integer literals themselves, is the INT-SYNTAX module. However, unlike +most builtin sorts in K, K also provides a third module for the Int sort: +the UNSIGNED-INT-SYNTAX module. This module provides only the syntax of +non-negative integers, i.e., natural numbers. The reasons for this involve +lexical ambiguity. Generally speaking, in most programming languages, -1 is +not a literal, but instead a literal to which the unary negation operator is +applied. K thus provides this module to ease in specifying the syntax of such +languages.

      +

      For detailed information about the functions available over the Int sort, +refer to domains.md. Note again how we append Int to the end of most of the +integer operations to ensure they do not collide with the syntax of other +programming languages.

      +

      Exercises

      +
        +
      1. +

        Extend your solution from Lesson 1.4, Exercise 2 to implement the rules +that define the behavior of addition, subtraction, multiplication, and +division. Do not worry about the case when the user tries to divide by zero +at this time. Use /Int to implement division. Test your new calculator +implementation by executing the arithmetic expressions you wrote as part of +Lesson 1.3, Exercise 2. Check to make sure each computes the value you expected.

        +
      2. +
      3. +

        Combine the Boolean expression calculator from this lesson with your +solution to Exercise 1, and then extend the combined calculator with the <, +<=, >, >=, ==, and != expressions. Write some Boolean expressions +that combine integer and Boolean operations, and test to ensure that these +expressions return the expected truth value.

        +
      4. +
      5. +

        Compute the following expressions using your solution from Exercise 2: +7 / 3, 7 / -3, -7 / 3, -7 / -3. Then replace the /Int function in +your definition with divInt instead, and observe how the value of the above +expressions changes. Why does this occur?

        +
      6. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.7: Side Conditions and Rule Priority.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/07_side_conditions/index.html b/k-distribution/k-tutorial/1_basic/07_side_conditions/index.html new file mode 100644 index 00000000000..9482aa3ac61 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/07_side_conditions/index.html @@ -0,0 +1,621 @@ + + + + + + + + + + + + + + +Lesson 1.7: Side Conditions and Rule Priority | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.7: Side Conditions and Rule Priority

      +

      The purpose of this lesson is to explain how to write conditional rules in K, +and to explain how to control the order in which rules are tried.

      +

      Side Conditions

      +

      So far, all of the rules we have discussed have been unconditional rules. +If the left-hand side of the rule matches the arguments to the function, the +rule applies. However, there is another type of rule, a conditional rule. +A conditional rule consists of a rule body containing the patterns to +match, and a side condition representing a Boolean expression that must +evaluate to true in order for the rule to apply.

      +

      Side conditions in K are introduced via the requires keyword immediately +following the rule body. For example, here is a rule with a side condition +(lesson-07-a.k):

      +
      k
      module LESSON-07-A + imports BOOL + imports INT + + syntax Grade ::= "letter-A" + | "letter-B" + | "letter-C" + | "letter-D" + | "letter-F" + | gradeFromPercentile(Int) [function] + + rule gradeFromPercentile(I) => letter-A requires I >=Int 90 +endmodule +
      +

      In this case, the gradeFromPercentile function takes a single integer +argument. The function evaluates to letter-A if the argument passed is +greater than 90. Note that the side condition is allowed to refer to variables +that appear on the left-hand side of the rule. In the same manner as variables +appearing on the right-hand side, variables that appear in the side condition +evaluate to the value that was matched on the left-hand side. Then the +functions in the side condition are evaluated, which returns a term of sort +Bool. If the term is equal to true, then the rule applies. Bear in mind +that the side condition is only evaluated at all if the patterns on the +left-hand side of the rule match the term being evaluated.

      +

      Exercise

      +

      Write a rule that evaluates gradeFromPercentile to letter-B if the argument +to the function is in the range [80,90). Test that the function correctly +evaluates various numbers between 80 and 100.

      +

      owise Rules

      +

      So far, all the rules we have introduced have had the same priority. What +this means is that K does not necessarily enforce an order in which the rules +are tried. We have only discussed functions so far in K, so it is not +immediately clear why this choice was made, given that a function is not +considered well-defined if multiple rules for evaluating it are capable of +evaluating the same arguments to different results. However, in future lessons +we will discuss other types of rules in K, some of which can be +non-deterministic. What this means is that if more than one rule is capable +of matching, then K will explore both possible rules in parallel, and consider +each of their respective results when executing your program. Don't worry too +much about this right now, but just understand that because of the potential +later for nondeterminism, we don't enforce a total ordering on the order in +which rules are attempted to be applied.

      +

      However, sometimes this is not practical; It can be very convenient to express +that a particular rule applies if no other rules for that function are +applicable. This can be expressed by adding the owise attribute to a rule. +What this means, in practice, is that this rule has lower priority than other +rules, and will only be tried to be applied after all the other, +higher-priority rules have been tried and they have failed.

      +

      For example, in the above exercise, we had to add a side condition containing +two Boolean comparisons to the rule we wrote to handle letter-B grades. +However, in practice this meant that we compare the percentile to 90 twice. We +can more efficiently and more idiomatically write the letter-B case for the +gradeFromPercentile rule using the owise attribute (lesson-07-b.k):

      +
      k
      module LESSON-07-B + imports BOOL + imports INT + + syntax Grade ::= "letter-A" + | "letter-B" + | "letter-C" + | "letter-D" + | "letter-F" + | gradeFromPercentile(Int) [function] + + rule gradeFromPercentile(I) => letter-A requires I >=Int 90 + rule gradeFromPercentile(I) => letter-B requires I >=Int 80 [owise] +endmodule +
      +

      This rule is saying, "if all the other rules do not apply, then the grade is a +B if the percentile is greater than or equal to 80." Note here that we use both +a side condition and an owise attribute on the same rule. This is not +required (as we will see later), but it is allowed. What this means is that the +side condition is only tried if the other rules did not apply and the +left-hand side of the rule matched. You can even use more complex matching on +the left-hand side than simply a variable. More generally, you can also have +multiple higher-priority rules, or multiple owise rules. What this means in +practice is that all of the non-owise rules are tried first, in any order, +followed by all the owise rules, in any order.

      +

      Exercise

      +

      The grades D and F correspond to the percentile ranges [60, 70) and [0, 60) +respectively. Write another implementation of gradeFromPercentile which +handles only these cases, and uses the owise attribute to avoid redundant +Boolean comparisons. Test that various percentiles in the range [0, 70) are +evaluated correctly.

      +

      Rule Priority

      +

      As it happens, the owise attribute is a specific case of a more general +concept we call rule priority. In essence, each rule is assigned an integer +priority. Rules are tried in increasing order of priority, starting with a +rule with priority zero, and trying each increasing numerical value +successively.

      +

      By default, a rule is assigned a priority of 50. If the rule has the owise +attribute, it is instead given the priority 200. You can see why this will +cause owise rules to be tried after regular rules.

      +

      However, it is also possible to directly assign a numerical priority to a rule +via the priority attribute. For example, here is an alternative way +we could express the same two rules in the gradeFromPercentile function +(lesson-07-c.k):

      +
      k
      module LESSON-07-C + imports BOOL + imports INT + + syntax Grade ::= "letter-A" + | "letter-B" + | "letter-C" + | "letter-D" + | "letter-F" + | gradeFromPercentile(Int) [function] + + rule gradeFromPercentile(I) => letter-A requires I >=Int 90 [priority(50)] + rule gradeFromPercentile(I) => letter-B requires I >=Int 80 [priority(200)] +endmodule +
      +

      We can, of course, assign a priority equal to any non-negative integer. For +example, here is a more complex example that handles the remaining grades +(lesson-07-d.k):

      +
      k
      module LESSON-07-D + imports BOOL + imports INT + + syntax Grade ::= "letter-A" + | "letter-B" + | "letter-C" + | "letter-D" + | "letter-F" + | gradeFromPercentile(Int) [function] + + rule gradeFromPercentile(I) => letter-A requires I >=Int 90 [priority(50)] + rule gradeFromPercentile(I) => letter-B requires I >=Int 80 [priority(51)] + rule gradeFromPercentile(I) => letter-C requires I >=Int 70 [priority(52)] + rule gradeFromPercentile(I) => letter-D requires I >=Int 60 [priority(53)] + rule gradeFromPercentile(_) => letter-F [priority(54)] +endmodule +
      +

      Note that we have introduced a new piece of syntax here: _. This is actually +just a variable. However, as a special case, when a variable is named _, it +does not bind a value that can be used on the right-hand side of the rule, or +in a side condition. Effectively, _ is a placeholder variable that means "I +don't care about this term."

      +

      In this example, we have explicitly expressed the order in which the rules of +this function are tried. Since rules are tried in increasing numerical +priority, we first try the rule with priority 50, then 51, then 52, 53, and +finally 54.

      +

      As a final note, remember that if you assign a rule a priority higher than 200, +it will be tried after a rule with the owise attribute, and if you assign +a rule a priority less than 50, it will be tried before a rule with no +explicit priority.

      +

      Exercises

      +
        +
      1. +

        Write a function isEven that returns whether an integer is an even number. +Use two rules and one side condition. The right-hand side of the rules should +be Boolean literals. Refer back to +domains.md for the relevant +integer operations.

        +
      2. +
      3. +

        Modify the calculator application from Lesson 1.6, Exercise 2, so that division +by zero will no longer make krun crash with a "Divison by zero" exception. +Instead, the / function should not match any of its rules if the denominator +is zero.

        +
      4. +
      5. +

        Write your own implementation of ==, <, <=, >, >= for integers and modify your solution from Exercise 2 to use it. +You can use any arithmetic operations in the INT module, but do not use any built-in boolean functions for comparing integers.

        +

        Hint: Use pattern matching and recursive definitions with rule priorities.

        +
      6. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.8: Literate Programming with Markdown.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/08_literate_programming/index.html b/k-distribution/k-tutorial/1_basic/08_literate_programming/index.html new file mode 100644 index 00000000000..406d20b81c2 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/08_literate_programming/index.html @@ -0,0 +1,571 @@ + + + + + + + + + + + + + + +Lesson 1.8: Literate Programming with Markdown | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.8: Literate Programming with Markdown

      +

      The purpose of this lesson is to teach a paradigm for performing literate +programming in K, and explain how this can be used to create K definitions +that are also documentation.

      +

      Markdown and K

      +

      The K tutorial so far has been written in +Markdown. Markdown, +for those not already familiar, is a lightweight plain-text format for styling +text. From this point onward, we assume you are familiar with Markdown and how +to write Markdown code. You can refer to the above link for a tutorial if you +are not already familiar.

      +

      What you may not necessarily realize, however, is that the K tutorial is also +a sequence of K definitions written in the manner of +Literate Programming. +For detailed information about Literate Programming, you can read the linked +Wikipedia article, but the short summary is that literate programming is a way +of intertwining documentation and code together in a manner that allows +executable code to also be, simultaneously, a documented description of that +code.

      +

      K is provided with built-in support for literate programming using Markdown. +By default, if you pass a file with the .md file extension to kompile, it +will look for any code blocks containing k code in that file, extract out +that K code into pure K, and then compile it as if it were a .k file.

      +

      A K code block begins with a line of text containing the keyword ```k, +and ends when it encounters another ``` keyword.

      +

      For example, if you view the markdown source of this document, this is a K +code block:

      +
      k
      module LESSON-08 + imports INT +
      +

      Only the code inside K code blocks will actually be sent to the compiler. The +rest, while it may appear in the document when rendered by a markdown viewer, +is essentially a form of code comment.

      +

      When you have multiple K code blocks in a document, K will append each one +together into a single file before passing it off to the outer parser.

      +

      For example, the following code block contains sentences that are part of the +LESSON-08 module that we declared the beginning of above:

      +
      k
      syntax Int ::= Int "+" Int [function] + rule I1 + I2 => I1 +Int I2 +
      +

      Exercise

      +

      Compile this file with kompile README.md --main-module LESSON-08. Confirm +that you can use the resulting compiled definition to evaluate the + +function.

      +

      Markdown Selectors

      +

      On occasion, you may want to generate multiple K definitions from a single +Markdown file. You may also wish to include a block of syntax-highlighted K +code that nonetheless does not appear as part of your K definition. It is +possible to accomplish this by means of the built-in support for syntax +highlighting in Markdown. Markdown allows a code block that was begun with +``` to be immediately followed by a string which is used to signify what +programming language the following code is written in. However, this feature +actually allows arbitrary text to appear describing that code block. Markdown +parsers are able to parse this text and render the code block differently +depending on what text appears after the backticks.

      +

      In K, you can use this functionality to specify one or more +Markdown selectors which are used to describe the code block. A Markdown +selector consists of a sequence of characters containing letters, numbers, and +underscores. A code block can be designated with a single selector by appending +the selector immediately following the backticks that open the code block.

      +

      For example, here is a code block with the foo selector:

      +
      foo
      foo bar +
      +

      Note that this is not K code. By convention, K code should have the k +selector on it. You can express multiple selectors on a code block by putting +them between curly braces and prepending each with the . character. For +example, here is a code block with the foo and k selectors:

      +
      .k .foo
      syntax Int ::= foo(Int) [function] + rule foo(0) => 0 +
      +

      Because this code block contains the k Markdown selector, by default it is +included as part of the K definition being compiled.

      +

      Exercise

      +

      Confirm this fact by using krun to evaluate foo(0).

      +

      Markdown Selector Expressions

      +

      By default, as previously stated, K includes in the definition any code block +with the k selector. However, this is merely a specific instance of a general +principle, namely, that K allows you to control which selectors get included +in your K definition. This is done by means of the --md-selector flag to +kompile. This flag accepts a Markdown selector expression, which you +can essentially think of as a kind of Boolean algebra over Markdown selectors. +Each selector becomes an atom, and you can combine these atoms via the &, +|, !, and () operators.

      +

      Here is a grammar, written in K, of the language of Markdown selector +expressions:

      +
      .k .selector
      syntax Selector ::= r"[0-9a-zA-Z_]+" [token] + syntax SelectorExp ::= Selector + | "(" SelectorExp ")" [bracket] + > right: + "!" SelectorExp + > right: + SelectorExp "&" SelectorExp + > right: + SelectorExp "|" SelectorExp +
      +

      Here is a selector expression that selects all the K code blocks in this +definition except the one immediately above:

      +
      k & (! selector)
      +
      +

      Addendum

      +

      This code block exists in order to make the above lesson a syntactically valid +K definition. Consider why it is necessary.

      +
      k
      endmodule +
      +

      Exercises

      +
        +
      1. +

        Compile this lesson with the selector expression k & (! foo) and confirm +that you get a parser error if you try to evaluate the foo function with the +resulting definition.

        +
      2. +
      3. +

        Compile Lesson 1.3 +as a K definition. Identify why it fails to compile. Then pass an appropriate +--md-selector to the compiler in order to make it compile.

        +
      4. +
      5. +

        Modify your calculator application from Lesson 1.7, Exercise 2, to be written +in a literate style. Consider what text might be appropriate to turn the +resulting markdown file into documentation for your calculator.

        +
      6. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.9: Unparsing and the format and color attributes.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/09_unparsing/index.html b/k-distribution/k-tutorial/1_basic/09_unparsing/index.html new file mode 100644 index 00000000000..c6b2f40ba07 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/09_unparsing/index.html @@ -0,0 +1,718 @@ + + + + + + + + + + + + + + +Lesson 1.9: Unparsing and the format and color attributes | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.9: Unparsing and the format and color attributes

      +

      The purpose of this lesson is to teach the user about how terms are +pretty-printed in K, and how the user can make adjustments to the default +settings for how to print specific terms.

      +

      Parsing, Execution, and Unparsing

      +

      When you use krun to interpret a program, the tool passes through three major +phases. In the first, parsing, the program itself is parsed using either kast +or an ahead-of-time parser generated via Bison, and the resulting AST becomes +the input to the interpreter. In the second phase, execution, K evaluates +functions and (as we will discuss in depth later) performs rewrite steps to +iteratively transform the program state. The third and final phase is called +unparsing, because it consists of taking the final state of the application +after the program has been interpreted, and converting it from an AST back into +text that (in theory, anyway) could be parsed back into the same AST that was +the output of the execution phase.

      +

      In practice, parsing is not always precisely reversible. It turns out +(although we are not going to cover exactly why this is here), that +constructing a sound algorithm that takes a grammar and an AST and emits text +that could be parsed via that grammar to the original AST is an +NP-hard problem. As a result, in the interests of avoiding exponential time +algorithms when users rarely care about unparsing being completely sound, we +take certain shortcuts that provide a linear-time algorithm that approximates +a sound solution to the problem while sacrificing the notion that the result +can be parsed into the exact original term in all cases.

      +

      This is a lot of theoretical explanation, but at root, the unparsing process +is fairly simple: it takes a K term that is the output of execution and pretty +prints it according to the syntax defined by the user in their K definition. +This is useful because the original AST is not terribly user-readable, and it +is difficult to visualize the entire term or decipher information about the +final state of the program at a quick glance. Of course, in rare cases, the +pretty-printed configuration loses information of relevance, which is why K +allows you to obtain the original AST on request.

      +

      As an example of all of this, consider the following K definition +(lesson-09-a.k):

      +
      k
      module LESSON-09-A + imports BOOL + + syntax Exp ::= "(" Exp ")" [bracket] + | Bool + > "!" Exp + > left: + Exp "&&" Exp + | Exp "^" Exp + | Exp "||" Exp + + syntax Exp ::= id(Exp) [function] + rule id(E) => E +endmodule +
      +

      This is similar to the grammar we defined in LESSON-06-C, with the difference +that the Boolean expressions are now constructors of sort Exp and we define a +trivial function over expressions that returns its argument unchanged.

      +

      We can now parse a simple program in this definition and use it to unparse some +Boolean expressions. For example (exp.bool):

      +
      id(true&&false&&!true^(false||true))
      +
      +

      Here is a program that is not particularly legible at first glance, because all +extraneous whitespace has been removed. However, if we run krun exp.bool, we +see that the result of the unparser will pretty-print this expression rather +nicely:

      +
      <k>
      +  true && false && ! true ^ ( false || true ) ~> .
      +</k>
      +
      +

      Notably, not only does K insert whitespace where appropriate, it is also smart +enough to insert parentheses where necessary in order to ensure the correct +parse. For example, without those parentheses, the expression above would parse +equivalent to the following one:

      +
      (((true && false) && ! true) ^ false) || true
      +
      +

      Indeed, you can confirm this by passing that exact expression to the id +function and evaluating it, then looking at the result of the unparser:

      +
      <k>
      +  true && false && ! true ^ false || true ~> .
      +</k>
      +
      +

      Here, because the meaning of the AST is the same both with and without +parentheses, K does not insert any parentheses when unparsing.

      +

      Exercise

      +

      Modify the grammar of LESSON-09-A above so that the binary operators are +right associative. Try unparsing exp.bool again, and note how the result is +different. Explain the reason for the difference.

      +

      Custom unparsing of terms

      +

      You may have noticed that right now, the unparsing of terms is not terribly +imaginative. All it is doing is taking each child of the term, inserting it +into the non-terminal positions of the production, then printing the production +with a space between each terminal or non-terminal. It is easy to see why this +might not be desirable in some cases. Consider the following K definition +(lesson-09-b.k):

      +
      k
      module LESSON-09-B + imports BOOL + + syntax Stmt ::= "{" Stmt "}" | "{" "}" + > right: + Stmt Stmt + | "if" "(" Bool ")" Stmt + | "if" "(" Bool ")" Stmt "else" Stmt [avoid] +endmodule +
      +

      This is a statement grammar, simplified to the point of meaninglessness, but +still useful as an object lesson in unparsing. Consider the following program +in this grammar (if.stmt):

      +
      if (true) {
      +  if (true) {}
      +  if (false) {}
      +  if (true) {
      +    if (false) {} else {}
      +  } else {
      +    if (false) {}
      +  }
      +}
      +
      +

      This is how that term would be unparsed if it appeared in the output of krun:

      +
      if ( true ) { if ( true ) { } if ( false ) { } if ( true ) { if ( false ) { } else { } } else { if ( false ) { } } }
      +
      +

      This is clearly much less legible than we started with! What are we to do? +Well, K provides an attribute, format, that can be applied to any production, +which controls how that production gets unparsed. You've seen how it gets +unparsed by default, but via this attribute, the developer has complete control +over how the term is printed. Of course, the user can trivially create ways to +print terms that would not parse back into the same term. Sometimes this is +even desirable. But in most cases, what you are interested in is controlling +the line breaking, indentation, and spacing of the production.

      +

      Here is an example of how you might choose to apply the format attribute +to improve how the above term is unparsed (lesson-09-c.k):

      +
      k
      module LESSON-09-C + imports BOOL + + syntax Stmt ::= "{" Stmt "}" [format(%1%i%n%2%d%n%3)] | "{" "}" [format(%1%2)] + > right: + Stmt Stmt [format(%1%n%2)] + | "if" "(" Bool ")" Stmt [format(%1 %2%3%4 %5)] + | "if" "(" Bool ")" Stmt "else" Stmt [avoid, format(%1 %2%3%4 %5 %6 %7)] +endmodule +
      +

      If we compile this new definition and unparse the same term, this is the +result we get:

      +
      if (true) {
      +  if (true) {}
      +  if (false) {}
      +  if (true) {
      +    if (false) {} else {}
      +  } else {
      +    if (false) {}
      +  }
      +}
      +
      +

      This is the exact same text we started with! By adding the format attributes, +we were able to indent the body of code blocks, adjust the spacing of if +statements, and put each statement on a new line.

      +

      How exactly was this achieved? Well, each time the unparser reaches a term, +it looks at the format attribute of that term. That format attribute is a +mix of characters and format codes. Format codes begin with the % +character. Each character in the format attribute other than a format code is +appended verbatim to the output, and each format code is handled according to +its meaning, transformed (possibly recursively) into a string of text, and +spliced into the output at the position the format code appears in the format +string.

      +

      Provided for reference is a table with a complete list of all valid format +codes, followed by their meaning:

      + + + + + + + + + +
      Format Code Meaning
      n Insert '\n' followed by the current indentation + level
      i Increase the current indentation level by 1
      d Decrease the current indentation level by 1
      c Move to the next color in the list of colors for + this production (see next section)
      r Reset color to the default foreground color for + the terminal (see next section)
      an integer Print a terminal or non-terminal from the + production. The integer is treated as a 1-based + index into the terminals and non-terminals of + the production. +
      +
      If the offset refers to a terminal, move to the + next color in the list of colors for this + production, print the value of that terminal, + then reset the color to the default foreground + color for the terminal. +
      +
      If the offset refers to a regular expression + terminal, it is an error. +
      +
      If the offset refers to a non-terminal, unparse + the corresponding child of the current term + (starting with the current indentation level) + and print the resulting text, then set the + current color and indentation level to the color + and indentation level following unparsing that + term.
      other char Print that character verbatim
      +

      Exercise

      +

      Change the format attributes for LESSON-09-C so that if.stmt will unparse +as follows:

      +
      if (true)
      +{
      +  if (true)
      +  {
      +  }
      +  if (false)
      +  {
      +  }
      +  if (true)
      +  {
      +    if (false)
      +    {
      +    }
      +    else
      +    {
      +    }
      +  }
      +  else
      +  {
      +    if (false)
      +    {
      +    }
      +  }
      +}
      +
      +

      Output coloring

      +

      When the output of unparsing is displayed on a terminal supporting colors, K +is capable of coloring the output, similar to what is possible with a syntax +highlighter. This is achieved via the color and colors attributes.

      +

      Essentially, both the color and colors attributes are used to construct a +list of colors associated with each production, and then the format attribute +is used to control how those colors are used to unparse the term. At its most +basic level, you can set the color attribute to color all the terminals in +the production a certain color, or you can use the colors attribute to +specify a comma-separated list of colors for each terminal in the production. +At a more advanced level, the %c and %r format codes control how the +formatter interacts with the list of colors specified by the colors +attribute. You can essentially think of the color attribute as a way of +specifying that you want all the colors in the list to be the same color.

      +

      Note that the %c and %r format codes are relatively primitive in nature. +The color and colors attributes merely maintain a list of colors, whereas +the %c and %r format codes merely control how to advance through that list +and how individual text is colored.

      +

      It is an error if the colors attribute does not provide all the colors needed +by the terminals and escape codes in the production. %r does not change the +position in the list of colors at all, so the next %c will advance to the +following color.

      +

      As a complete example, here is a variant of LESSON-09-A which colors the +various boolean operators:

      +
      k
      module LESSON-09-D + imports BOOL + + syntax Exp ::= "(" Exp ")" [bracket] + | Bool + > "!" Exp [color(yellow)] + > left: + Exp "&&" Exp [color(red)] + | Exp "^" Exp [color(blue)] + | Exp "||" Exp [color(green)] + + syntax Exp ::= id(Exp) [function] + rule id(E) => E +endmodule +
      +

      For a complete list of allowed colors, see +here.

      +

      Exercises

      +
        +
      1. +

        Use the color attribute on LESSON-09-C to color the keywords true and +false one color, the keywords if and else another color, and the operators +(, ), {, and } a third color.

        +
      2. +
      3. +

        Use the format, color, and colors attributes to tell the unparser to +style the expression grammar from Lesson 1.8, Exercise 3 according to your own +personal preferences for syntax highlighting and code formatting. You can +view the result of the unparser on a function term without evaluating that +function by means of the command kparse <file> | kore-print -.

        +
      4. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.10: Strings.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/10_strings/index.html b/k-distribution/k-tutorial/1_basic/10_strings/index.html new file mode 100644 index 00000000000..15040a6698b --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/10_strings/index.html @@ -0,0 +1,554 @@ + + + + + + + + + + + + + + +Lesson 1.10: Strings | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.10: Strings

      +

      The purpose of this lesson is to explain how to use the String sort in K to +represent sequences of characters, and explain where to find additional +information about builtin functions over strings.

      +

      The String Sort

      +

      In addition to the Int and Bool sorts covered in +Lesson 1.6, K provides, among others, the +String sort to represent sequences of characters. You can import this +functionality via the STRING-SYNTAX module, which contains the syntax of +string literals in K, and the STRING module, which contains all the functions +that operate over the String type.

      +

      Strings in K are double-quoted. The following list of escape sequences is +supported:

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Escape SequenceMeaning
      \"The literal character "
      \\The literal character \
      \nThe newline character (ASCII code 0x0a)
      \rThe carriage return character (ASCII code 0x0d)
      \tThe tab character (ASCII code 0x09)
      \fThe form feed character (ASCII code 0x0c)
      \x00\x followed by 2 hexadecimal digits indicates a code point between 0x00 and 0xFF
      \u0000\u followed by 4 hexadecimal digits indicates a code point between 0x0000 and 0xFFFF
      \U00000000\U followed by 8 hexadecimal digits indicates a code point between 0x000000 and 0x10FFFF
      +

      Please note that as of the current moment, K's unicode support is not fully +complete, so you may run into errors using code points greater than 0xff.

      +

      As an example, you can construct a string literal containing the following +block of text:

      +
      This is an example block of text.
      +Here is a quotation: "Hello world."
      +	This line is indented.
      +ÁÉÍÓÚ
      +
      +

      Like so:

      +
      "This is an example block of text.\nHere is a quotation: \"Hello world.\"\n\tThis line is indented.\n\xc1\xc9\xcd\xd3\xda\n"
      +
      +

      Basic String Functions

      +

      The full list of functions provided for the String sort can be found in +domains.md, but here we +describe a few of the more basic ones.

      +

      String concatenation

      +

      The concatenation operator for strings is +String. For example, consider +the following K rule that constructs a string from component parts +(lesson-10.k):

      +
      k
      module LESSON-10 + imports STRING + + syntax String ::= msg(String) [function] + rule msg(S) => "The string you provided: " +String S +String "\nHave a nice day!" +endmodule +
      +

      Note that this operator is O(N), so repeated concatenations are inefficient. +For information about efficient string concatenation, refer to +Lesson 2.14.

      +

      String length

      +

      The function to return the length of a string is lengthString. For example, +lengthString("foo") will return 3, and lengthString("") will return 0. +The return value is the length of the string in code points.

      +

      Substring computation

      +

      The function to compute the substring of a string is substrString. It +takes two string indices, starting from 0, and returns the substring within the +range [start..end). It is only defined if end >= start, start >= 0, and +end <= length of string. Here, for example, we return the first 5 characters +of a string:

      +
      substrString(S, 0, 5)
      +
      +

      Here we return all but the first 3 characters:

      +
      substrString(S, 3, lengthString(S))
      +
      +

      Exercises

      +
        +
      1. Write a function that takes a paragraph of text (i.e., a sequence of +sentences, each ending in a period), and constructs a new (nonsense) sentence +composed of the first word of each sentence, followed by a period. Do not +worry about capitalization or periods within the sentence which do not end the +sentence (e.g. "Dr."). You can assume that all whitespace within the paragraph +are spaces. For more information about the functions over strings required to +implement such a function, refer to domains.md.
      2. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.11: Casting Terms.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/11_casts/index.html b/k-distribution/k-tutorial/1_basic/11_casts/index.html new file mode 100644 index 00000000000..f4c7509dd94 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/11_casts/index.html @@ -0,0 +1,592 @@ + + + + + + + + + + + + + + +Lesson 1.11: Casting Terms | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.11: Casting Terms

      +

      The purpose of this lesson is to explain how to use cast expressions in +order to disambiguate terms using sort information. We also explain how the +variable sort inference algorithm works in K, and how to change the default +behavior by casting variables to a particular sort.

      +

      Casting in K

      +

      Sometimes the grammar you write for your rules in K can be a little bit +ambiguous on purpose. While grammars for programming languages may be +unambiguous when considered in their entirety, K allows you to write rules +involving arbitrary fragments of that grammar, and those fragments can +sometimes be ambiguous by themselves, or similar enough to other fragments +of the grammar to trigger ambiguity. As a result, in addition to the tools +covered in Lesson 1.4, K provides one +additional powerful tool for disambiguation: cast expressions.

      +

      K provides three main types of casts: the semantic cast, the strict cast, and +the projection cast. We will cover each of them, and their similarities and +differences, in turn.

      +

      Semantic casts

      +

      The most basic, and most common, type of cast in K is called the +semantic cast. For every sort S declared in a module, K provides the +following (implicit) production for use in sentences:

      +
        syntax S ::= S ":S"
      +
      +

      Note that S simply represents the name of the sort. For example, if we +defined a sort Exp, the actual production for that sort would be:

      +
        syntax Exp ::= Exp ":Exp"
      +
      +

      At runtime, this expression will not actually exist; it is merely an annotation +to the compiler describing the sort of the term inside the cast. It is telling +the compiler that the term inside the cast must be of sort Exp. For example, +if we had the following grammar:

      +
      k
      module LESSON-11-A + imports INT + + syntax Exp ::= Int | Exp "+" Exp + syntax Stmt ::= "if" "(" Exp ")" Stmt | "{" "}" +endmodule +
      +

      Then we would be able to write 1:Exp, or (1 + 2):Exp, but not {}:Exp.

      +

      You can also restrict the sort that a variable in a rule will match by casting +it. For example, consider the following additional module:

      +
      k
      module LESSON-11-B + imports LESSON-11-A + imports BOOL + + syntax Term ::= Exp | Stmt + syntax Bool ::= isExpression(Term) [function] + + rule isExpression(_E:Exp) => true + rule isExpression(_) => false [owise] +endmodule +
      +

      Here we have defined a very simple function that decides whether a term is +an expression or a statement. It does this by casting the variable inside the +isExpression rule to sort Exp. As a result, that variable will only match terms +of sort Exp. Thus, isExpression(1) will return true, as will isExpression(1 + 2), but +isExpression({}) will return false.

      +

      Exercise

      +

      Verify this fact for yourself by running isExpression on the above examples. Then +write an isStatement function, and test that it works as expected.

      +

      Strict casts

      +

      On occasion, a semantic cast is not strict enough. It might be that you want +to, for disambiguation purposes, say exactly what sort a term is. For +example, consider the following definition:

      +
      k
      module LESSON-11-C + imports INT + + syntax Exp ::= Int | Exp "+" Exp [group(exp)] + syntax Exp2 ::= Exp | Exp2 "+" Exp2 [group(exp2)] +endmodule +
      +

      This grammar is a little ambiguous and contrived, but it serves to demonstrate +how a semantic cast might be insufficient to disambiguate a term. If we were +to write the term (I1:Int + I2:Int):Exp2, the term would be ambiguous, +because the cast is not sufficiently strict to determine whether you mean +to derive the "+" production in the group exp or the one in the group exp2.

      +

      In this situation, there is a solution: the strict cast. For every sort +S in your grammar, K also defines the following production:

      +
        syntax S ::= S "::S"
      +
      +

      This may at first glance seem the same as the previous cast. And indeed, +from the perspective of the grammar and from the perspective of rewriting, +they are in fact identical. However, the second variant has a unique meaning +in the type system of K: namely, the term inside the cast cannot be a +subsort, i.e., a term of another sort S2 such that the production +syntax S ::= S2 exists.

      +

      As a result, if we were to write in the above grammar the term +(I1:Int + I2:Int)::Exp2, then we would know that the second derivation above +should be chosen, whereas if we want the first derivation, we could write +(I1:Int + I2:Int)::Exp.

      +

      Projection casts

      +

      Thus far we have focused entirely on casts which exist solely to inform the +compiler about the sort of terms. However, sometimes when dealing with grammars +containing subsorts, it can be desirable to reason with the subsort production +itself, which injects one sort into another. Remember from above that such +a production looks like syntax S ::= S2. This type of production, called a +subsort production, can be thought of as a type of inheritance involving +constructors. If we have the above production in our grammar, we say that S2 +is a subsort of S, or that any S2 is also an S. K implicitly maintains a +symbol at runtime which keeps track of where such subsortings occur; this +symbol is called an injection.

      +

      Sometimes, when one sort is a subsort of another, it can be the case that +a function returns one sort, but you actually want to cast the result of +calling that function to another sort which is a subsort of the first sort. +This is similar to what happens with inheritance in an object-oriented +language, where you might cast a superclass to a subclass if you know for +sure the object at runtime is in fact an instance of that class.

      +

      K provides something similar for subsorts: the projection cast.

      +

      For each pair of sorts S and S2, K provides the following production:

      +
        syntax S ::= "{" S2 "}" ":>S"
      +
      +

      What this means is that you take any term of sort S2 and cast it to sort +S. If the term of sort S2 consists of an injection containing a term of sort +S, then this will return that term. Otherwise, an error occurs and rewriting +fails, returning the projection function which failed to apply. The sort is +not actually checked at compilation time; rather, it is a runtime check +inserted into the code that runs when the rule applies.

      +

      For example, here is a module that makes use of projection casts:

      +
      k
      module LESSON-11-D + imports INT + imports BOOL + + syntax Exp ::= Int | Bool | Exp "+" Exp | Exp "&&" Exp + + syntax Exp ::= eval(Exp) [function] + rule eval(I:Int) => I + rule eval(B:Bool) => B + rule eval(E1 + E2) => {eval(E1)}:>Int +Int {eval(E2)}:>Int + rule eval(E1 && E2) => {eval(E1)}:>Bool andBool {eval(E2)}:>Bool +endmodule +
      +

      Here we have defined constructors for a simple expression language over +Booleans and integers, as well as a function eval that evaluates these +expressions to a value. Because that value could be an integer or a Boolean, +we need the casts in the last two rules in order to meet the type signature of ++Int and andBool. Of course, the user can write ill-formed expressions like +1 && true or false + true, but these will cause errors at runtime, because +the projection cast will fail.

      +

      Exercises

      +
        +
      1. +

        Extend the eval function in LESSON-11-D to include Strings and add a . +operator which concatenates them.

        +
      2. +
      3. +

        Modify your solution from Lesson 1.9, Exercise 2 by using an Exp sort to +express the integer and Boolean expressions that it supports, in the same style +as LESSON-11-D. Then write an eval function that evaluates all terms of +sort Exp to either a Bool or an Int.

        +
      4. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.12: Syntactic Lists.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/12_syntactic_lists/index.html b/k-distribution/k-tutorial/1_basic/12_syntactic_lists/index.html new file mode 100644 index 00000000000..f203c6563af --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/12_syntactic_lists/index.html @@ -0,0 +1,577 @@ + + + + + + + + + + + + + + +Lesson 1.12: Syntactic Lists | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.12: Syntactic Lists

      +

      The purpose of this lesson is to explain how K provides support for syntactic +repetition through the use of the List{} and NeList{} constructs, +generally called syntactic lists.

      +

      The List{} construct

      +

      Sometimes, when defining a grammar in K, it is useful to define a syntactic +construct consisting of an arbitrary-length sequence of items. For example, +you might wish to define a function call construct, and need to express a way +of passing arguments to the function. You can in theory simply define these +productions using ordinary constructors, but it can be tricky to get the syntax +exactly right in K without a lot of tedious glue code.

      +

      For this reason, K provides a way of specifying that a non-terminal represents +a syntactic list (lesson-12-a.k):

      +
      k
      module LESSON-12-A-SYNTAX + imports INT-SYNTAX + + syntax Ints ::= List{Int,","} +endmodule + +module LESSON-12-A + imports LESSON-12-A-SYNTAX +endmodule +
      +

      Note that instead of a sequence of terminals and non-terminals, the right hand +side of the Ints production contains the symbol List followed by two items +in curly braces. The first item is the non-terminal which is the element type +of the list, and the second item is a terminal representing the separator of +the list. As a special case, lists which are separated only by whitespace can +be specified with a separator of "".

      +

      This List{} construct is roughly equivalent to the following definition +(lesson-12-b.k):

      +
      k
      module LESSON-12-B-SYNTAX + imports INT-SYNTAX + + syntax Ints ::= Int "," Ints | ".Ints" +endmodule + +module LESSON-12-B + imports LESSON-12-B-SYNTAX +endmodule +
      +

      As you can see, the List{} construct represents a cons-list with an element +at the head and another list at the tail. The empty list is represented by +a . followed by the sort of the list.

      +

      However, the List{} construct provides several key syntactic conveniences +over the above definition. First of all, when writing a list in a rule, +explicitly writing the terminator is not always required. For example, consider +the following additional module (lesson-12-c.k):

      +
      k
      module LESSON-12-C + imports LESSON-12-A + imports INT + + syntax Int ::= sum(Ints) [function] + rule sum(I:Int) => I + rule sum(I1:Int, I2:Int, Is:Ints) => sum(I1 +Int I2, Is) +endmodule +
      +

      Here we see a function that sums together a non-empty list of integers. Note in +particular the first rule. We do not explicitly mention .Ints, but in fact, +the rule in question is equivalent to the following rule:

      +
        rule sum(I:Int, .Ints) => I
      +
      +

      The reason for this is that K will automatically insert a list terminator +anywhere a syntactic list is expected, but an element of that list appears +instead. This works even with lists of more than one element:

      +
        rule sum(I1:Int, I2:Int) => I1 +Int I2
      +
      +

      This rule is redundant, but here we explicitly match a list of exactly two +elements, because the .Ints is implicitly added after I2.

      +

      Parsing Syntactic Lists in Programs

      +

      An additional syntactic convenience takes place when you want to express a +syntactic list in the input to krun. In this case, K will automatically +transform the grammar in LESSON-12-B-SYNTAX into the following +(lesson-12-d.k):

      +
      k
      module LESSON-12-D + imports INT-SYNTAX + + syntax Ints ::= #NonEmptyInts | #IntsTerminator + syntax #NonEmptyInts ::= Int "," #NonEmptyInts + | Int #IntsTerminator + syntax #IntsTerminator ::= "" +endmodule +
      +

      This allows you to express the usual comma-separated list of arguments where +an empty list is represented by the empty string, and you don't have to +explicitly terminate the list. Because of this, we can write the syntax +of function calls in C very easily (lesson-12-e.k):

      +
      k
      module LESSON-12-E + syntax Id ::= r"[a-zA-Z_][a-zA-Z0-9_]*" [token] + syntax Exp ::= Id | Exp "(" Exps ")" + syntax Exps ::= List{Exp,","} +endmodule +
      +

      Exercise

      +

      Write a function concat which takes a list of String and concatenates them +all together. Do not worry if the function is O(n^2). +Test your implementation using the syntactic sugar for lists added by the parser.

      +

      Then write some function call expressions using identifiers in C and verify with +kast that the above grammar captures the intended syntax. Make sure to test +with function calls with zero, one, and two or more arguments.

      +

      The NeList{} construct

      +

      One limitation of the List{} construct is that it is always possible to +write a list of zero elements where a List{} is expected. While this is +desirable in a number of cases, it is sometimes not what the grammar expects.

      +

      For example, in C, it is not allowable for an enum definition to have zero +members. In other words, if we were to write the grammar for enumerations like +so (lesson-12-f.k):

      +
      k
      module LESSON-12-F + syntax Id ::= r"[a-zA-Z_][a-zA-Z0-9_]*" [token] + syntax Exp ::= Id + + syntax EnumSpecifier ::= "enum" Id "{" Ids "}" + syntax Ids ::= List{Id,","} +endmodule +
      +

      Then we would be syntactically allowed to write enum X {}, which instead, +ought to be a syntax error.

      +

      For this reason, we introduce the additional NeList{} construct. The syntax +is identical to List{}, except with NeList instead of List before the +curly braces. When parsing rules, it behaves identically to the List{} +construct. However, when parsing inputs to krun, the above grammar, if we +replaced syntax Ids ::= List{Id,","} with syntax Ids ::= NeList{Id,","}, +would become equivalent to the following (lesson-12-g.k):

      +
      k
      module LESSON-12-G + syntax Id ::= r"[a-zA-Z_][a-zA-Z0-9_]*" [token] + syntax Exp ::= Id + + syntax EnumSpecifier ::= "enum" Id "{" Ids "}" + syntax Ids ::= Id | Id "," Ids +endmodule +
      +

      In other words, only non-empty lists of Id would be allowed.

      +

      Exercises

      +
        +
      1. +

        Modify the sum function in LESSON-12-C so that the Ints sort is an +NeList{}. Verify that calling sum() with no arguments is now a syntax +error.

        +
      2. +
      3. +

        Write a modified sum function with the List construct that can also sum +up an empty list of arguments. In such a case, the sum ought to be 0.

        +
      4. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.13: Basics of K Rewriting.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/13_rewrite_rules/index.html b/k-distribution/k-tutorial/1_basic/13_rewrite_rules/index.html new file mode 100644 index 00000000000..c8595f2fa16 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/13_rewrite_rules/index.html @@ -0,0 +1,696 @@ + + + + + + + + + + + + + + +Lesson 1.13: Basics of K Rewriting | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.13: Basics of K Rewriting

      +

      The purpose of this lesson is to explain how rewrite rules that are not the +definition of a function behave, and how, using these rules, you can construct +a semantics of programs in a programming language in K.

      +

      Recap: Function rules in K

      +

      Recall from Lesson 1.2 that we have, thus far, +introduced two types of productions in K: constructors and functions. +A function is identified by the function attribute placed on the +production. As you may recall, when we write a rule with a function on the +left-hand side of the => operator, we are defining the meaning of that +function for inputs which match the patterns on the left-hand side of the rule. +If the argument to the function match the patterns, then the function is +evaluated to the value constructed by substituting the bindings for the +variables into the right-hand side of the rule.

      +

      Top-level rules

      +

      However, function rules are not the only type of rule permissible in K, nor +even the most frequently used. K also has a concept of a +top-level rewrite rule. The simplest way to ensure that a rule is treated +as a top-level rule is for the left-hand side of the rule to mention one or +more cells. We will cover how cells work and are declared in more detail +in a later lesson, but for now, what you should know is that when we ran krun +in our very first example in Lesson 1.2 and got the following output:

      +
      <k>
      +  Yellow ( ) ~> .
      +</k>
      +
      +

      <k> is a cell, known by convention as the K cell. This cell is available +by default in any definition without needing to be explicitly declared.

      +

      The K cell contains a single term of sort K. K is a predefined sort in K +with two constructors, that can be roughly represented by the following +grammar:

      +
        syntax K ::= KItem "~>" K
      +             | "."
      +
      +

      As a syntactic convenience, K allows you to treat ~> like it is an +associative list (i.e., as if it were defined as syntax K ::= K "~>" K). +When a definition is compiled, it will automatically transform the rules you +write so that they treat the K sort as a cons-list. Another syntactic +convenience is that, for disambiguation purposes, you can write .K anywhere +you would otherwise write . and the meaning is identical.

      +

      Now, you may notice that the above grammar mentions the sort KItem. This is +another built-in sort in K. For every sort S declared in a definition (with +the exception of K and KItem), K will implicitly insert the following +production:

      +
        syntax KItem ::= S
      +
      +

      In other words, every sort is a subsort of the sort KItem, and thus a term +of any sort can be injected as an element of a term of sort K, also called +a K sequence.

      +

      By default, when you krun a program, the AST of the program is inserted as +the sole element of a K sequence into the <k> cell. This explains why we +saw the output we did in Lesson 1.2.

      +

      With these preliminaries in mind, we can now explain how top-level rewrite +rules work in K. Put simply, any rule where there is a cell (such as the K +cell) at the top on the left-hand side will be a top-level rewrite rule. Once +the initial program has been inserted into the K cell, the resulting term, +called the configuration, will be matched against all the top-level +rewrite rules in the definition. If only one rule matches, the substitution +generated by the matching will be applied to the right-hand side of the rule +and the resulting term is rewritten to be the new configuration. Rewriting +proceeds by iteratively applying rules, also called taking steps, until +no top-level rewrite rule can be applied. At this point the configuration +becomes the final configuration and is output by krun.

      +

      If more than one top-level rule applies, by default, K will pick just one +of those rules, apply it, and continue rewriting. However, it is +non-deterministic which rule applies. In theory, it could be any of them. +By passing the --search flag to krun, you are able to tell krun to +explore all possible non-deterministic choices, and generate a complete list of +all possible final configurations reachable by each nondeterminstic choice that +can be made. Note that the --search flag to krun only works if you pass +--enable-search to kompile first.

      +

      Unlike top-level rewrite rules, function rules are not associated with any +particular set of cells in the configuration (although they can contain cells +in their function arguments and return value). While top-level rewrite rules +apply to the entire term being rewritten, function rules apply anywhere a +function application for that function appears, and are immediately rewritten +to their return value in that position.

      +

      Another key distinction between top-level rules and function rules is that +function symbols, i.e., productions with the function attribute, are +mathematical functions rather than constructors. While a constructor is +logically distinct from any other constructor of the same sort, and can be +matched against unconditionally, a function does not necessaraily have the +same restriction unless it happens to be an injective function. Thus, two +function symbols with different arguments may still ultimately produce the +same value and thus compare equal to one another. Due to this, concrete +execution (i.e., all K definitions introduced thus far; see Lesson 1.21) +introduces the restriction that you cannot match on a function symbol on the +left-hand side of a rule, except as the top symbol on the left-hand side of +a function rule. This restriction will be later lifted when we introduce the +Haskell Backend which performs symbolic execution.

      +

      Exercise

      +

      Pass a program containing no functions to krun. You can use a term of sort +Exp from LESSON-11-D. Observe the output and try to understand why you get +the output you do. Then write two rules that rewrite that program to another. +Run krun --search on that program and observe both results. Then add a third +rule that rewrites one of those results again. Test that that rule applies as +well.

      +

      Using top-level rules to evaluate expressions

      +

      Thus far, we have focused primarily on defining functions over constructors +in K. However, now that we have a basic understanding of top-level rules, +it is possible to introduce a rewrite system to our definitions. A rewrite +system is a collection of top-level rewrite rules which performs an organized +transformation of a particular program into a result which expresses the +meaning of that program. For example, we might rewrite an expression in a +programming language into a value representing the result of evaluating that +expression.

      +

      Recall in Lesson 1.11, we wrote a simple grammar of Boolean and integer +expressions that looked roughly like this (lesson-13-a.k):

      +
      k
      module LESSON-13-A + imports INT + + syntax Exp ::= Int + | Bool + | Exp "+" Exp + | Exp "&&" Exp +endmodule +
      +

      In that lesson, we defined a function eval which evaluated such expressions +to either an integer or Boolean.

      +

      However, it is more idiomatic to evaluate such expressions using top-level +rewrite rules. Here is how one might do so in K (lesson-13-b.k):

      +
      k
      module LESSON-13-B-SYNTAX + imports UNSIGNED-INT-SYNTAX + imports BOOL-SYNTAX + + syntax Val ::= Int | Bool + syntax Exp ::= Val + > left: Exp "+" Exp + > left: Exp "&&" Exp +endmodule + +module LESSON-13-B + imports LESSON-13-B-SYNTAX + imports INT + imports BOOL + + rule <k> I1:Int + I2:Int ~> K:K </k> => <k> I1 +Int I2 ~> K </k> + rule <k> B1:Bool && B2:Bool ~> K:K </k> => <k> B1 andBool B2 ~> K </k> + + syntax KItem ::= freezer1(Val) | freezer2(Exp) + | freezer3(Val) | freezer4(Exp) + + rule <k> E1:Val + E2:Exp ~> K:K </k> => <k> E2 ~> freezer1(E1) ~> K </k> [priority(51)] + rule <k> E1:Exp + E2:Exp ~> K:K </k> => <k> E1 ~> freezer2(E2) ~> K </k> [priority(52)] + rule <k> E1:Val && E2:Exp ~> K:K </k> => <k> E2 ~> freezer3(E1) ~> K </k> [priority(51)] + rule <k> E1:Exp && E2:Exp ~> K:K </k> => <k> E1 ~> freezer4(E2) ~> K </k> [priority(52)] + + rule <k> E2:Val ~> freezer1(E1) ~> K:K </k> => <k> E1 + E2 ~> K </k> + rule <k> E1:Val ~> freezer2(E2) ~> K:K </k> => <k> E1 + E2 ~> K </k> + rule <k> E2:Val ~> freezer3(E1) ~> K:K </k> => <k> E1 && E2 ~> K </k> + rule <k> E1:Val ~> freezer4(E2) ~> K:K </k> => <k> E1 && E2 ~> K </k> +endmodule +
      +

      This is of course rather cumbersome currently, but we will soon introduce +syntactic convenience which makes writing definitions of this type considerably +easier. For now, notice that there are roughly 3 types of rules here: the first +matches a K cell in which the first element of the K sequence is an Exp whose +arguments are values, and rewrites the first element of the sequence to the +result of that expression. The second also matches a K cell with an Exp in +the first element of its K sequence, but it matches when one or both arguments +of the Exp are not values, and replaces the first element of the K sequence +with two new elements: one being an argument to evaluate, and the other being +a special constructor called a freezer. Finally, the third matches a K +sequence where a Val is first, and a freezer is second, and replaces them +with a partially evaluated expression.

      +

      This general pattern is what is known as heating an expression, +evaluating its arguments, cooling the arguments into the expression +again, and evaluating the expression itself. By repeatedly performing +this sequence of actions, we can evaluate an entire AST containing a complex +expression down into its resulting value.

      +

      Exercise

      +

      Write an addition expression with integers. Use krun --depth 1 to see the +result of rewriting after applying a single top-level rule. Gradually increase +the value of --depth to see successive states. Observe how this combination +of rules is eventually able to evaluate the entire expression.

      +

      Simplifying the evaluator: Local rewrites and cell ellipses

      +

      As you saw above, the definition we wrote is rather cumbersome. Over the +remainder of Lessons 1.13 and 1.14, we will greatly simplify it. The first step +in doing so is to teach a bit more about the rewrite operator, =>. Thus far, +all the rules we have written look like rule LHS => RHS. However, this is not +the only way the rewrite operator can be used. It is actually possible to place +a constructor or function at the very top of the rule, and place rewrite +operators inside that term. While a rewrite operator cannot appear nested +inside another rewrite operator, by doing this, we can express that some parts +of what we are matching are not changed by the rewrite operator. For +example, consider the following rule from above:

      +
        rule <k> I1:Int + I2:Int ~> K:K </k> => <k> I1 +Int I2 ~> K </k>
      +
      +

      We can equivalently write it like following:

      +
        rule <k> (I1:Int + I2:Int => I1 +Int I2) ~> _:K </k>
      +
      +

      When you put a rewrite inside a term like this, in essence, you are telling +the rule to only rewrite part of the left-hand side to the right-hand side. +In practice, this is implemented by lifting the rewrite operator to the top of +the rule by means of duplicating the surrounding context.

      +

      There is a way that the above rule can be simplified further, however. K +provides a special syntax for each cell containing a term of sort K, indicating +that we want to match only on some prefix of the K sequence. For example, the +above rule can be simplified further like so:

      +
        rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k>
      +
      +

      Here we have placed the symbol ... immediately prior to the </k> which ends +the cell. What this tells the compiler is to take the contents of the cell, +treat it as the prefix of a K sequence, and insert an anonymous variable of +sort K at the end. Thus we can think of ... as a way of saying we +don't care about the part of the K sequence after the beginning, leaving +it unchanged.

      +

      Putting all this together, we can rewrite LESSON-13-B like so +(lesson-13-c.k):

      +
      k
      module LESSON-13-C-SYNTAX + imports UNSIGNED-INT-SYNTAX + imports BOOL-SYNTAX + + syntax Val ::= Int | Bool + syntax Exp ::= Val + > left: Exp "+" Exp + > left: Exp "&&" Exp +endmodule + +module LESSON-13-C + imports LESSON-13-C-SYNTAX + imports INT + imports BOOL + + rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k> + rule <k> B1:Bool && B2:Bool => B1 andBool B2 ...</k> + + syntax KItem ::= freezer1(Val) | freezer2(Exp) + | freezer3(Val) | freezer4(Exp) + + rule <k> E1:Val + E2:Exp => E2 ~> freezer1(E1) ...</k> [priority(51)] + rule <k> E1:Exp + E2:Exp => E1 ~> freezer2(E2) ...</k> [priority(52)] + rule <k> E1:Val && E2:Exp => E2 ~> freezer3(E1) ...</k> [priority(51)] + rule <k> E1:Exp && E2:Exp => E1 ~> freezer4(E2) ...</k> [priority(52)] + + rule <k> E2:Val ~> freezer1(E1) => E1 + E2 ...</k> + rule <k> E1:Val ~> freezer2(E2) => E1 + E2 ...</k> + rule <k> E2:Val ~> freezer3(E1) => E1 && E2 ...</k> + rule <k> E1:Val ~> freezer4(E2) => E1 && E2 ...</k> +endmodule +
      +

      This is still rather cumbersome, but it is already greatly simplified. In the +next lesson, we will see how additional features of K can be used to specify +heating and cooling rules much more compactly.

      +

      Exercises

      +
        +
      1. Modify LESSON-13-C to add rules to evaluate integer subtraction.
      2. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.14: Defining Evaluation Order.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/14_evaluation_order/index.html b/k-distribution/k-tutorial/1_basic/14_evaluation_order/index.html new file mode 100644 index 00000000000..62fe08b3207 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/14_evaluation_order/index.html @@ -0,0 +1,707 @@ + + + + + + + + + + + + + + +Lesson 1.14: Defining Evaluation Order | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.14: Defining Evaluation Order

      +

      The purpose of this lesson is to explain how to use the heat and cool +attributes, context and context alias sentences, and the strict and +seqstrict attributes to more compactly express heating and cooling in K, +and to express more advanced evaluation strategies in K.

      +

      The heat and cool attributes

      +

      Thus far, we have been using rule priority and casts to express when to heat +an expression and when to cool it. For example, the rules for heating have +lower priority, so they do not apply if the term could be evaluated instead, +and the rules for heating are expressly written only to apply if the argument +of the expression is a value.

      +

      However, K has built-in support for deciding when to heat and when to cool. +This support comes in the form of the rule attributes heat and cool as +well as the specially named function isKResult.

      +

      Consider the following definition, which is equivalent to LESSON-13-C +(lesson-14-a.k):

      +
      k
      module LESSON-14-A-SYNTAX + imports UNSIGNED-INT-SYNTAX + imports BOOL-SYNTAX + + syntax Exp ::= Int + | Bool + > left: Exp "+" Exp + > left: Exp "&&" Exp +endmodule + +module LESSON-14-A + imports LESSON-14-A-SYNTAX + imports INT + imports BOOL + + rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k> + rule <k> B1:Bool && B2:Bool => B1 andBool B2 ...</k> + + syntax KItem ::= freezer1(Exp) | freezer2(Exp) + | freezer3(Exp) | freezer4(Exp) + + rule <k> E:Exp + HOLE:Exp => HOLE ~> freezer1(E) ...</k> + requires isKResult(E) [heat] + rule <k> HOLE:Exp + E:Exp => HOLE ~> freezer2(E) ...</k> [heat] + rule <k> E:Exp && HOLE:Exp => HOLE ~> freezer3(E) ...</k> + requires isKResult(E) [heat] + rule <k> HOLE:Exp && E:Exp => HOLE ~> freezer4(E) ...</k> [heat] + + rule <k> HOLE:Exp ~> freezer1(E) => E + HOLE ...</k> [cool] + rule <k> HOLE:Exp ~> freezer2(E) => HOLE + E ...</k> [cool] + rule <k> HOLE:Exp ~> freezer3(E) => E && HOLE ...</k> [cool] + rule <k> HOLE:Exp ~> freezer4(E) => HOLE && E ...</k> [cool] + + syntax Bool ::= isKResult(K) [function, symbol] + rule isKResult(_:Int) => true + rule isKResult(_:Bool) => true + rule isKResult(_) => false [owise] +endmodule +
      +

      We have introduced three major changes to this definition. First, we have +removed the Val sort. We replace it instead with a function isKResult. +The function in question must have the same signature and attributes as seen in +this example. It ought to return true whenever a term should not be heated +(because it is a value) and false when it should be heated (because it is not +a value). We thus also insert isKResult calls in the side condition of two +of the heating rules, where the Val sort was previously used.

      +

      Second, we have removed the rule priorities on the heating rules and the use of +the Val sort on the cooling rules, and replaced them with the heat and +cool attributes. These attributes instruct the compiler that these rules are +heating and cooling rules, and thus should implicitly apply only when certain +terms on the LHS either are or are not a KResult (i.e., isKResult returns +true versus false).

      +

      Third, we have renamed some of the variables in the heating and cooling rules +to the special variable HOLE. Syntactically, HOLE is just a special name +for a variable, but it is treated specially by the compiler. By naming a +variable HOLE, we have informed the compiler which term is being heated +or cooled. The compiler will automatically insert the side condition +requires isKResult(HOLE) to cooling rules and the side condition +requires notBool isKResult(HOLE) to heating rules.

      +

      Exercise

      +

      Modify LESSON-14-A to add rules to evaluate integer subtraction.

      +

      Simplifying further with Contexts

      +

      The above example is still rather cumbersome to write. We must explicitly write +both the heating and the cooling rule separately, even though they are +essentially inverses of one another. It would be nice to instead simply +indicate which terms should be heated and cooled, and what part of them to +operate on.

      +

      To do this, K introduces a new type of sentence, the context. Contexts +begin with the context keyword instead of the rule keyword, and usually +do not contain a rewrite operator.

      +

      Consider the following definition which is equivalent to LESSON-14-A +(lesson-14-b.k):

      +
      k
      module LESSON-14-B-SYNTAX + imports UNSIGNED-INT-SYNTAX + imports BOOL-SYNTAX + + syntax Exp ::= Int + | Bool + > left: Exp "+" Exp + > left: Exp "&&" Exp +endmodule + +module LESSON-14-B + imports LESSON-14-B-SYNTAX + imports INT + imports BOOL + + rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k> + rule <k> B1:Bool && B2:Bool => B1 andBool B2 ...</k> + + context <k> E:Exp + HOLE:Exp ...</k> + requires isKResult(E) + context <k> HOLE:Exp + _:Exp ...</k> + context <k> E:Exp && HOLE:Exp ...</k> + requires isKResult(E) + context <k> HOLE:Exp && _:Exp ...</k> + + syntax Bool ::= isKResult(K) [function, symbol] + rule isKResult(_:Int) => true + rule isKResult(_:Bool) => true + rule isKResult(_) => false [owise] +endmodule +
      +

      In this example, the heat and cool rules have been removed entirely, as +have been the productions defining the freezers. Don't worry, they still exist +under the hood; the compiler is just generating them automatically. For each +context sentence like above, the compiler generates a #freezer production, +a heat rule, and a cool rule. The generated form is equivalent to the +rules we wrote manually in LESSON-14-A. However, we are now starting to +considerably simplify the definition. Instead of 3 sentences, we just have one.

      +

      context alias sentences and the strict and seqstrict attributes

      +

      Notice that the contexts we included in LESSON-14-B still seem rather +similar in form. For each expression we want to evaluate, we are declaring +one context for each operand of that expression, and they are each rather +similar to one another. We would like to be able to simplify further by +simply annotating each expression production with information about how +it is to be evaluated instead. We can do this with the seqstrict attribute.

      +

      Consider the following definition, once again equivalent to those above +(lesson-14-c.k):

      +
      .k .alias
      module LESSON-14-C-SYNTAX + imports UNSIGNED-INT-SYNTAX + imports BOOL-SYNTAX + + syntax Exp ::= Int + | Bool + > left: Exp "+" Exp [seqstrict(exp; 1, 2)] + > left: Exp "&&" Exp [seqstrict(exp; 1, 2)] +endmodule + +module LESSON-14-C + imports LESSON-14-C-SYNTAX + imports INT + imports BOOL + + rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k> + rule <k> B1:Bool && B2:Bool => B1 andBool B2 ...</k> + + context alias [exp]: <k> HERE ...</k> + + syntax Bool ::= isKResult(K) [function, symbol] + rule isKResult(_:Int) => true + rule isKResult(_:Bool) => true + rule isKResult(_) => false [owise] +endmodule +
      +

      This definition has two important changes from the one above. The first is +that the individual context sentences have been removed and have been +replaced with a single context alias sentence. You may notice that this +sentence begins with an identifier in square brackets followed by a colon. This +syntax is a way of naming individual sentences in K for reference by the tool +or by other sentences. The context alias sentence also has a special variable +HERE.

      +

      The second is that the productions in LESSON-14-C-SYNTAX have been given a +seqstrict attribute. The value of this attribute has two parts. The first +is the name of a context alias sentence. The second is a comma-separated list +of integers. Each integer represents an index of a non-terminal in the +production, counting from 1. For each integer present, the compiler implicitly +generates a new context sentence according to the following rules:

      +
        +
      1. The compiler starts by looking for the context alias sentence named. If +there is more than one, then one context sentence is created per +context alias sentence with that name.
      2. +
      3. For each context created, the variable HERE in the context alias is +substituted with an instance of the production the seqstrict attribute is +attached to. Each child of that production is a variable. The non-terminal +indicated by the integer offset of the seqstrict attribute is given the name +HOLE.
      4. +
      5. For each integer offset prior in the list to the one currently being +processed, the predicate isKResult(E) is conjuncted together and included +as a side condition, where E is the child of the production term with that +offset, starting from 1. For example, if the attribute lists 1, 2, then +the rule generated for the 2 will include isKResult(E1) where E1 is the +first child of the production.
      6. +
      +

      As you can see if you work through the process, the above code will ultimately +generate the same contexts present in LESSON-14-B.

      +

      Finally, note that there are a few minor syntactic conveniences provided by the +seqstrict attribute. First, in the special case of the context alias sentence +being <k> HERE ...</k>, you can omit both the context alias sentence +and the name from the seqstrict attribute.

      +

      Second, if the numbered list of offsets contains every non-terminal in the +production, it can be omitted from the attribute value.

      +

      Thus, we can finally produce the idiomatic K definition for this example +(lesson-14-d.k):

      +
      k
      module LESSON-14-D-SYNTAX + imports UNSIGNED-INT-SYNTAX + imports BOOL-SYNTAX + + syntax Exp ::= Int + | Bool + > left: Exp "+" Exp [seqstrict] + > left: Exp "&&" Exp [seqstrict] +endmodule + +module LESSON-14-D + imports LESSON-14-D-SYNTAX + imports INT + imports BOOL + + rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k> + rule <k> B1:Bool && B2:Bool => B1 andBool B2 ...</k> + + syntax Bool ::= isKResult(K) [function, symbol] + rule isKResult(_:Int) => true + rule isKResult(_:Bool) => true + rule isKResult(_) => false [owise] +endmodule +
      +

      Exercise

      +

      Modify LESSON-14-D to add a production and rule to evaluate integer +subtraction.

      +

      Nondeterministic evaluation order with the strict attribute

      +

      Thus far, we have focused entirely on deterministic evaluation order. However, +not all languages are deterministic in the order they evaluate expressions. +For example, in C, the expression a() + b() + c() is guaranteed to parse +to (a() + b()) + c(), but it is not guaranteed that a will be called before +b before c. In fact, this evaluation order is non-deterministic.

      +

      We can express non-deterministic evaluation orders with the strict attribute. +Its behavior is identical to the seqstrict attribute, except that step 3 in +the above list (with the side condition automatically added) does not take +place. In other words, if we wrote syntax Exp ::= Exp "+" Exp [strict] +instead of syntax Exp ::= Exp "+" Exp [seqstrict], it would generate the +following two contexts instead of the ones found in LESSON-14-B:

      +
        context <k> _:Exp + HOLE:Exp ...</k>
      +  context <k> HOLE:Exp + _:Exp ...</k>
      +
      +

      As you can see, these contexts will generate heating rules that can both +apply to the same term. As a result, the choice of which heating rule +applies first is non-deterministic, and as we saw in Lesson 1.13, we can +get all possible behaviors by passing --search to krun.

      +

      Exercises

      +
        +
      1. +

        Add integer division to LESSON-14-D. Make division and addition strict +instead of seqstrict, and write a rule evaluating integer division with a +side condition that the denominator is non-zero. Run krun --search on the +program 1 / 0 + 2 / 1 and observe all possible outputs of the program. How +many are there total, and why?

        +
      2. +
      3. +

        Rework your solution from Lesson 1.9, Exercise 2 to evaluate expressions from left to right using the seqstrict attribute.

        +
      4. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.15: Configuration Declarations and Cell Nesting.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/15_configurations/index.html b/k-distribution/k-tutorial/1_basic/15_configurations/index.html new file mode 100644 index 00000000000..49224fa62b8 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/15_configurations/index.html @@ -0,0 +1,663 @@ + + + + + + + + + + + + + + +Lesson 1.15: Configuration Declarations and Cell Nesting | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.15: Configuration Declarations and Cell Nesting

      +

      The purpose of this lesson is to explain how to store additional information +about the state of your interpreter by declaring cells using the +configuration sentence, as well as how to add additional inputs to your +definition.

      +

      Cells and Configuration Declarations

      +

      We have already covered the absolute basics of cells in K by looking at the +<k> cell. As explained in Lesson 1.13, the +<k> cell is available without being explicitly declared. It turns out this is +because, if the user does not explicitly specify a configuration sentence +anywhere in the main module of their definition, the configuration sentence +from the DEFAULT-CONFIGURATION module of +kast.md is imported +automatically. Here is what that sentence looks like:

      +
        configuration <k> $PGM:K </k>
      +
      +

      This configuration declaration declares a single cell, the <k> cell. It also +declares that at the start of rewriting, the contents of that cell should be +initialized with the value of the $PGM configuration variable. +Configuration variables function as inputs to krun. These terms are supplied +to krun in the form of ASTs parsed using a particular module. By default, the +$PGM configuration variable uses the main syntax module of the definition.

      +

      The cast on the configuration variable also specifies the sort that is used as +the entry point to the parser, in this case the K sort. It is often +useful to cast to other sorts there as well for better control over the accepted +language. The sort used for the $PGM variable is referred to as the start +symbol. During parsing, the default start symbol K subsumes all user-defined +sorts except for syntactic lists. These are excluded because they will always +produce an ambiguity error when parsing a single element.

      +

      Note that we did not explicitly specify the $PGM configuration variable when +we invoked krun on a file. This is because krun handles the $PGM variable +specially, and allows you to pass the term for that variable via a file passed +as a positional argument to krun. We did, however, specify the PGM name +explicitly when we called krun with the -cPGM command line argument in +Lesson 1.2. This is the other, explicit, way of +specifying an input to krun.

      +

      This explains the most basic use of configuration declarations in K. We can, +however, declare multiple cells and multiple configuration variables. We can +also specify the initial values of cells statically, rather than dynamically +via krun.

      +

      For example, consider the following definition (lesson-15-a.k):

      +
      k
      module LESSON-15-A-SYNTAX + imports INT-SYNTAX + + syntax Ints ::= List{Int,","} +endmodule + +module LESSON-15-A + imports LESSON-15-A-SYNTAX + imports INT + + configuration <k> $PGM:Ints </k> + <sum> 0 </sum> + + rule <k> I:Int, Is:Ints => Is ...</k> + <sum> SUM:Int => SUM +Int I </sum> +endmodule +
      +

      This simple definition takes a list of integers as input and sums them +together. Here we have declared two cells: <k> and <sum>. Unlike <k>, +<sum> does not get initialized via a configuration variable, but instead +is initialized statically with the value 0.

      +

      Note the rule in the second module: we have explicitly specified multiple +cells in a single rule. K will expect each of these cells to match in order for +the rule to apply.

      +

      Here is a second example (lesson-15-b.k):

      +
      k
      module LESSON-15-B-SYNTAX + imports INT-SYNTAX +endmodule + +module LESSON-15-B + imports LESSON-15-B-SYNTAX + imports INT + imports BOOL + + configuration <k> . </k> + <first> $FIRST:Int </first> + <second> $SECOND:Int </second> + + rule <k> . => FIRST >Int SECOND </k> + <first> FIRST </first> + <second> SECOND </second> +endmodule +
      +

      This definition takes two integers as command-line arguments and populates the +<k> cell with a Boolean indicating whether the first integer is greater than +the second. Notice that we have specified no $PGM configuration variable +here. As a result, we cannot invoke krun via the syntax krun $file. +Instead, we must explicitly pass values for each configuration variable via the +-cFIRST and -cSECOND command line flags. For example, if we invoke +krun -cFIRST=0 -cSECOND=1, we will get the value false in the K cell.

      +

      You can also specify both a $PGM configuration variable and other +configuration variables in a single configuration declaration, in which case +you would be able to initialize $PGM with either a positional argument or the +-cPGM command line flag, but the other configuration variables would need +to be explicitly initialized with -c.

      +

      Exercise

      +

      Modify your solution to Lesson 1.14, Exercise 2 to add a new cell with a +configuration variable of sort Bool. This variable should determine whether +the / operator is evaluated using /Int or divInt. Test that by specifying +different values for this variable, you can change the behavior of rounding on +division of negative numbers.

      +

      Cell Nesting

      +

      It is possible to nest cells inside one another. A cell that contains other +cells must contain only other cells, but in doing this, you are able to +create a hierarchical structure to the configuration. Consider the following +definition (lesson-15-c.k), which is equivalent to the one in LESSON-15-B:

      +
      k
      module LESSON-15-C-SYNTAX + imports INT-SYNTAX +endmodule + +module LESSON-15-C + imports LESSON-15-C-SYNTAX + imports INT + imports BOOL + + configuration <T> + <k> . </k> + <state> + <first> $FIRST:Int </first> + <second> $SECOND:Int </second> + </state> + </T> + + rule <k> . => FIRST >Int SECOND </k> + <first> FIRST </first> + <second> SECOND </second> +endmodule +
      +

      Note that we have added some new cells to the configuration declaration: +the <T> cell wraps the entire configuration, and the <state> cell is +introduced around the <first> and <second> cells.

      +

      However, we have not changed the rule in this definition. This is because of +a concept in K called configuration abstraction. K allows you to specify +any number of cells in a rule (except zero) in any order you want, and K will +compile the rules into a form that matches the structure of the configuration +specified by the configuration declaration.

      +

      Here then, is how this rule would look after the configuration abstraction +has been resolved:

      +
        rule <T>
      +         <k> . => FIRST >Int SECOND </k>
      +         <state>
      +           <first> FIRST </first>
      +           <second> SECOND </second>
      +         </state>
      +       </T>
      +
      +

      In other words, K will complete cells to the top of the configuration by +inserting parent cells where appropriate based on the declared structure of +the configuration. This is useful because as a definition evolves, the +configuration may change, but you don't want to have to modify every single +rule each time. Thus, K follows the principle that you should only mention the +cells in a rule that are actually needed in order to accomplish its specific +goal. By following this best practice, you can significantly increase the +modularity of the definition and make it easier to maintain and modify.

      +

      Note that unlike top-level rewrite rules, cells that appear inside function +rules are not necessarily completed to the top of the configuration. They still +participate in cell ccompletion in the sense that you can mention cell +structure loosely inside a function rule and it will be completed into the +correct cell structure specified by the configuration declaration. However, +they do not complete all the way to the top, instead completing only up to +the top-most cell mentioned in the rule.

      +

      For example, if I write the following function rule in the above definition:

      +
        rule doStuff(<first> FIRST </first>) => FIRST
      +
      +

      The function will only match on the first cell, rather than the entire +configuration. However, if we had mentioned a parent cell in the rule, it still +would have completed the children of that parent cell as needed to ensure that +the resulting term is well formed.

      +

      Exercise

      +

      Modify your definition from the previous exercise in this lesson to wrap the +two cells you have declared in a top cell <T>. You should not have to change +any other rules in the definition.

      +

      Cell Variables

      +

      Sometimes it is desirable to explicitly match a variable against certain +fragments of the configuration. Because K's configuration is hierarchical, +we can grab subsets of the configuration as if they were just another term. +However, configuration abstraction applies here as well. +In particular, for each cell you specify in a configuration declaration, a +unique sort is assigned for that cell with a single constructor (the cell +itself). The sort name is taken by removing all special characters, +capitalizing the first letter and each letter after a hyphen, and adding the +word Cell at the end. For example, in the above example, the cell sorts are +TCell, KCell, StateCell, FirstCell, and SecondCell. If we had declared +a cell as <first-number>, then the cell sort name would be FirstNumberCell.

      +

      You can explicitly reference a variable of one of these sorts anywhere you +might instead write that cell. For example, consider the following rule:

      +
        rule <k> true => S </k>
      +       (S:StateCell => <state>... .Bag ...</state>)
      +
      +

      Here we have introduced two new concepts. The first is the variable of sort +StateCell, which matches the entire <state> part of the configuration. The +second is that we have introduced the concept of ... once again. When a cell +contains other cells, it is also possible to specify ... on either the left, +right or both sides of the cell term. Each of these three syntaxes are +equivalent in this case. When they appear on the left-hand side of a rule, they +indicate that we don't care what value any cells not explicitly named might +have. For example, we might write <state>... <first> 0 </first> ...</state> on +the left-hand side of a rule in order to indicate that we want to match the +rule when the <first> cell contains a zero, regardless of what the <second> +cell contains. If we had not included this ellipsis, it would have been a +syntax error, because K would have expected you to provide a value for each of +the child cells.

      +

      However, if, as in the example above, the ... appeared on the right-hand side +of a rule, this instead indicates that the cells not explicitly mentioned under +the cell should be initialized with their default value from the configuration +declaration. In other words, that rule will set the value of <first> and +<second> to zero.

      +

      You may note the presence of the phrase .Bag here. You can think of this as +the empty set of cells. It is used as the child of a cell when you want to +indicate that no cells should be explicitly named. We will cover other uses +of this term in later lessons.

      +

      Exercises

      +
        +
      1. Modify the definition from the previous exercise in this lesson so that the +Boolean cell you created is initialized to false. Then add a production +syntax Stmt ::= Bool ";" Exp, and a rule that uses this Stmt to set the +value of the Boolean flag. Then add another production +syntax Stmt ::= "reset" ";" Exp which sets the value of the Boolean flag back +to its default value via a ... on the right-hand side. You will need to add +an additional cell around the Boolean cell to make this work.
      2. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.16: Maps, Semantic Lists, and Sets.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/16_collections/index.html b/k-distribution/k-tutorial/1_basic/16_collections/index.html new file mode 100644 index 00000000000..65aabdc5e18 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/16_collections/index.html @@ -0,0 +1,742 @@ + + + + + + + + + + + + + + +Lesson 1.16: Maps, Semantic Lists, and Sets | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.16: Maps, Semantic Lists, and Sets

      +

      The purpose of this lesson is to explain how to use the data structure sorts +provided by K: maps, lists, and sets.

      +

      Maps

      +

      The most frequently used type of data structure in K is the map. The sort +provided by K for this purpose is the Map sort, and it is provided in +domains.md in the MAP +module. This type is not (currently) polymorphic. All Map terms are maps that +map terms of sort KItem to other terms of sort KItem. A KItem can contain +any sort except a K sequence. If you need to store such a term in a +map, you can always use a wrapper such as syntax KItem ::= kseq(K).

      +

      A Map pattern consists of zero or more map elements (as represented by the +symbol syntax Map ::= KItem "|->" KItem), mixed in any order, separated by +whitespace, with zero or one variables of sort Map. The empty map is +represented by .Map. If all of the bindings for the variables in the keys +of the map can be deterministically chosen, these patterns can be matched in +O(1) time. If they cannot, then each map element that cannot be +deterministically constructed contributes a single dimension of polynomial +time to the cost of the matching. In other words, a single such element is +linear, two are quadratic, three are cubic, etc.

      +

      Patterns like the above are the only type of Map pattern that can appear +on the left-hand-side of a rule. In other words, you are not allowed to write +a Map pattern on the left-hand-side with more than one variable of sort Map +in it. You are, however, allowed to write such patterns on the right-hand-side +of a rule. You can also write a function pattern in the key of a map element +so long as all the variables in the function pattern can be deterministically +chosen.

      +

      Note the meaning of matching on a Map pattern: a map pattern with no +variables of sort Map will match if the map being matched has exactly as +many bindings as |-> symbols in the pattern. It will then match if each +binding in the map pattern matches exactly one distinct binding in the map +being matched. A map pattern with one Map variable will also match any map +that contains such a map as a subset. The variable of sort Map will be bound +to whatever bindings are left over (.Map if there are no bindings left over).

      +

      Here is an example of a simple definition that implements a very basic +variable declaration semantics using a Map to store the value of variables +(lesson-16-a.k):

      +
      k
      module LESSON-16-A-SYNTAX + imports INT-SYNTAX + imports ID-SYNTAX + + syntax Exp ::= Id | Int + syntax Decl ::= "int" Id "=" Exp ";" [strict(2)] + syntax Pgm ::= List{Decl,""} +endmodule + +module LESSON-16-A + imports LESSON-16-A-SYNTAX + imports BOOL + + configuration <T> + <k> $PGM:Pgm </k> + <state> .Map </state> + </T> + + // declaration sequence + rule <k> D:Decl P:Pgm => D ~> P ...</k> + rule <k> .Pgm => . ...</k> + + // variable declaration + rule <k> int X:Id = I:Int ; => . ...</k> + <state> STATE => STATE [ X <- I ] </state> + + // variable lookup + rule <k> X:Id => I ...</k> + <state>... X |-> I ...</state> + + syntax Bool ::= isKResult(K) [symbol, function] + rule isKResult(_:Int) => true + rule isKResult(_) => false [owise] +endmodule +
      +

      There are several new features in this definition. First, note we import +the module ID-SYNTAX. This module is defined in domains.md and provides a +basic syntax for identifiers. We are using the Id sort provided by this +module in this definition to implement the names of program variables. This +syntax is only imported when parsing programs, not when parsing rules. Later in +this lesson we will see how to reference specific concrete identifiers in a +rule.

      +

      Second, we introduce a single new function over the Map sort. This function, +which is represented by the symbol +syntax Map ::= Map "[" KItem "<-" KItem "]", represents the map update +operation. Other functions over the Map sort can be found in domains.md.

      +

      Finally, we have used the ... syntax on a cell containing a Map. In this +case, the meaning of <state>... Pattern ...</state>, +<state>... Pattern </state>, and <state> Pattern ...</state> are the same: +it is equivalent to writing <state> (Pattern) _:Map </state>.

      +

      Consider the following program (a.decl):

      +
      int x = 0;
      +int y = 1;
      +int a = x;
      +
      +

      If we run this program with krun, we will get the following result:

      +
      <T>
      +  <k>
      +    .
      +  </k>
      +  <state>
      +    a |-> 0
      +    x |-> 0
      +    y |-> 1
      +  </state>
      +</T>
      +
      +

      Note that krun has automatically sorted the collection for you. This doesn't +happen at runtime, so you still get the performance of a hash map, but it will +help make the output more readable.

      +

      Exercise

      +

      Create a sort Stmt that is a subsort of Decl. Create a production of sort +Stmt for variable assignment in addition to the variable declaration +production. Feel free to use the syntax syntax Stmt ::= Id "=" Exp ";". Write +a rule that implements variable assignment using a map update function. Then +write the same rule using a map pattern. Test your implementations with some +programs to ensure they behave as expected.

      +

      Semantic Lists

      +

      In a previous lesson, we explained how to represent lists in the AST of a +program. However, this is not the only context where lists can be used. We also +frequently use lists in the configuration of an interpreter in order to +represent certain types of program state. For this purpose, it is generally +useful to have an associative-list sort, rather than the cons-list sorts +provided in Lesson 1.12.

      +

      The type provided by K for this purpose is the List sort, and it is also +provided in domains.md, in the LIST module. This type is also not +(currently) polymorphic. Like Map, all List terms are lists of terms of the +KItem sort.

      +

      A List pattern in K consists of zero or more list elements (as represented by +the ListItem symbol), followed by zero or one variables of sort List, +followed by zero or more list elements. An empty list is represented by +.List. These patterns can be matched in O(log(N)) time. This is the only +type of List pattern that can appear on the left-hand-side of a rule. In +other words, you are not allowed to write a List pattern on the +left-hand-side with more than one variable of sort List in it. You are, +however, allowed to write such patterns on the right-hand-side of a rule.

      +

      Note the meaning of matching on a List pattern: a list pattern with no +variables of sort List will match if the list being matched has exactly as +many elements as ListItem symbols in the pattern. It will then match if each +element in sequence matches the pattern contained in the ListItem symbol. A +list pattern with one variable of sort List operates the same way, except +that it can match any list with at least as many elements as ListItem +symbols, so long as the prefix and suffix of the list match the patterns inside +the ListItem symbols. The variable of sort List will be bound to whatever +elements are left over (.List if there are no elements left over).

      +

      The ... syntax is allowed on cells containing lists as well. In this case, +the meaning of <cell>... Pattern </cell> is the same as +<cell> _:List (Pattern) </cell>, the meaning of <cell> Pattern ...</cell> +is the same as <cell> (Pattern) _:List</cell>. Because list patterns with +multiple variables of sort List are not allowed, it is an error to write +<cell>... Pattern ...</cell>.

      +

      Here is an example of a simple definition that implements a very basic +function-call semantics using a List as a function stack (lesson-16-b.k):

      +
      k
      module LESSON-16-B-SYNTAX + imports INT-SYNTAX + imports ID-SYNTAX + + syntax Exp ::= Id "(" ")" | Int + syntax Stmt ::= "return" Exp ";" [strict] + syntax Decl ::= "fun" Id "(" ")" "{" Stmt "}" + syntax Pgm ::= List{Decl,""} + syntax Id ::= "main" [token] +endmodule + +module LESSON-16-B + imports LESSON-16-B-SYNTAX + imports BOOL + imports LIST + + configuration <T> + <k> $PGM:Pgm ~> main () </k> + <functions> .Map </functions> + <fstack> .List </fstack> + </T> + + // declaration sequence + rule <k> D:Decl P:Pgm => D ~> P ...</k> + rule <k> .Pgm => . ...</k> + + // function definitions + rule <k> fun X:Id () { S } => . ...</k> + <functions>... .Map => X |-> S ...</functions> + + // function call + syntax KItem ::= stackFrame(K) + rule <k> X:Id () ~> K => S </k> + <functions>... X |-> S ...</functions> + <fstack> .List => ListItem(stackFrame(K)) ...</fstack> + + // return statement + rule <k> return I:Int ; ~> _ => I ~> K </k> + <fstack> ListItem(stackFrame(K)) => .List ...</fstack> + + syntax Bool ::= isKResult(K) [function, symbol] + rule isKResult(_:Int) => true + rule isKResult(_) => false [owise] +endmodule +
      +

      Notice that we have declared the production syntax Id ::= "main" [token]. +Since we use the ID-SYNTAX module, this declaration is necessary in order to +be able to refer to the main identifier directly in the configuration +declaration. Our <k> cell now contains a K sequence initially: first we +process all the declarations in the program, then we call the main function.

      +

      Consider the following program (foo.func):

      +
      fun foo() { return 5; }
      +fun main() { return foo(); }
      +
      +

      When we krun this program, we should get the following output:

      +
      <T>
      +  <k>
      +    5 ~> .
      +  </k>
      +  <functions>
      +    foo |-> return 5 ;
      +    main |-> return foo ( ) ;
      +  </functions>
      +  <fstack>
      +    .List
      +  </fstack>
      +</T>
      +
      +

      Note that we have successfully put on the <k> cell the value returned by the +main function.

      +

      Exercise

      +

      Add a term of sort Id to the stackFrame operator to keep track of the +name of the function in that stack frame. Then write a function +syntax String ::= printStackTrace(List) that takes the contents of the +<fstack> cell and pretty prints the current stack trace. You can concatenate +strings with +String in the STRING module in domains.md, and you can +convert an Id to a String with the Id2String function in the ID module. +Test this function by creating a new expression that returns the current stack +trace as a string. Make sure to update isKResult and the Exp sort as +appropriate to allow strings as values.

      +

      Sets

      +

      The final primary data structure sort in K is a set, i.e., an idempotent +unordered collection where elements are deduplicated. The sort provided by K +for this purpose is the Set sort and it is provided in domains.md in the +SET module. Like maps and lists, this type is not (currently) polymorphic. +Like Map and List, all Set terms are sets of terms of the KItem sort.

      +

      A Set pattern has the exact same restrictions as a Map pattern, except that +its elements are treated like keys, and there are no values. It has the same +performance characteristics as well. However, syntactically it is more similar +to the List sort: An empty Set is represented by .Set, but a set element +is represented by the SetItem symbol.

      +

      Matching behaves similarly to the Map sort: a set pattern with no variables +of sort Set will match if the set has exactly as many bindings as SetItem +symbols, and if each element pattern matches one distinct element in the set. +A set with a variable of sort Set also matches any superset of such a set. +As with map, the elements left over will be bound to the Set variable (or +.Set if no elements are left over).

      +

      Like Map, the ... syntax on a set is syntactic sugar for an anonymous +variable of sort Set.

      +

      Here is an example of a simple modification to LESSON-16-A which uses a Set +to ensure that variables are never declared more than once. In practice, you +would likely just use the in_keys symbol over maps to test for this, but +it's still useful as an example of sets in practice:

      +
      k
      module LESSON-16-C-SYNTAX + imports LESSON-16-A-SYNTAX +endmodule + +module LESSON-16-C + imports LESSON-16-C-SYNTAX + imports BOOL + imports SET + + configuration <T> + <k> $PGM:Pgm </k> + <state> .Map </state> + <declared> .Set </declared> + </T> + + // declaration sequence + rule <k> D:Decl P:Pgm => D ~> P ...</k> + rule <k> .Pgm => . ...</k> + + // variable declaration + rule <k> int X:Id = I:Int ; => . ...</k> + <state> STATE => STATE [ X <- I ] </state> + <declared> D => D SetItem(X) </declared> + requires notBool X in D + + // variable lookup + rule <k> X:Id => I ...</k> + <state>... X |-> I ...</state> + <declared>... SetItem(X) ...</declared> + + syntax Bool ::= isKResult(K) [symbol, function] + rule isKResult(_:Int) => true + rule isKResult(_) => false [owise] +endmodule +
      +

      Now if we krun a program containing duplicate declarations, it will get +stuck on the declaration.

      +

      Exercises

      +
        +
      1. Modify your solution to Lesson 1.14, Exercise 2 and introduce the sorts +Decls, Decl, and Stmt which include variable and function declaration +(without function parameters), and return and assignment statements, as well +as call expressions. Use List and Map to implement these operators, making +sure to consider the interactions between components, such as saving and +restoring the environment of variables at each call site. Don't worry about +local function definitions or global variables for now. Make sure to test the +resulting interpreter.
      2. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.17: Cell Multiplicity and Cell Collections.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/17_cell_multiplicity/index.html b/k-distribution/k-tutorial/1_basic/17_cell_multiplicity/index.html new file mode 100644 index 00000000000..8c178e0dade --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/17_cell_multiplicity/index.html @@ -0,0 +1,577 @@ + + + + + + + + + + + + + + +Lesson 1.17: Cell Multiplicity and Cell Collections | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.17: Cell Multiplicity and Cell Collections

      +

      The purpose of this lesson is to explain how you can create optional cells +and cells that repeat multiple times in a configuration using a feature called +cell multiplicity.

      +

      Cell Multiplicity

      +

      K allows you to specify attributes for cell productions as part of the syntax +of configuration declarations. Unlike regular productions, which use the [] +syntax for attributes, configuration cells use an XML-like attribute syntax:

      +
      configuration <k color="red"> $PGM:K </k>
      +
      +

      This configuration declaration gives the <k> cell the color red during +unparsing using the color attribute as discussed in +Lesson 1.9.

      +

      However, in addition to the usual attributes for productions, there are some +other attributes that can be applied to cells with special meaning. One such +attribute is the multiplicity attribute. By default, each cell that is +declared occurs exactly once in every configuration term. However, using the +multiplicity attribute, this default behavior can be changed. There are two +values that this attribute can have: ? and *.

      +

      Optional cells

      +

      The first cell multiplicity we will discuss is ?. Similar to a regular +expression language, this attribute tells the compiler that this cell can +appear 0 or 1 times in the configuration. In other words, it is an +optional cell. By default, K does not create optional cells in the initial +configuration, unless that optional cell has a configuration variable inside +it. However, it is possible to override the default behavior and create that +cell initially by adding the additional cell attribute initial="".

      +

      K uses the .Bag symbol to represent the absence of any cells in a particular +rule. Consider the following module:

      +
      k
      module LESSON-17-A + imports INT + + configuration <k> $PGM:K </k> + <optional multiplicity="?"> 0 </optional> + + syntax KItem ::= "init" | "destroy" + + rule <k> init => . ...</k> + (.Bag => <optional> 0 </optional>) + rule <k> destroy => . ...</k> + (<optional> _ </optional> => .Bag) + +endmodule +
      +

      In this definition, when the init symbol is executed, the <optional> cell +is added to the configuration, and when the destroy symbol is executed, it +is removed. Any rule that matches on that cell will only match if that cell is +present in the configuration.

      +

      Exercise

      +

      Create a simple definition with a Stmts sort that is a List{Stmt,""} and +a Stmt sort with the constructors +syntax Stmt ::= "enable" | "increment" | "decrement" | "disable". The +configuration should have an optional cell that contains an integer that +is created with the enable command, destroyed with the disable command, +and its value is incremented or decremented by the increment and decrement +command.

      +

      Cell collections

      +

      The second type of cell multiplicity we will discuss is *. Simlar to a +regular expression language, this attribute tells the compiler that this cell +can appear 0 or more times in the configuration. In other words, it is a +cell collection. Cells with multiplicity * must be the only child of +their parent cell. As a convention, the inner cell is usually named with the +singular form of what it contains, and the outer cell with the plural form, for +example, "thread" and "threads".

      +

      All cell collections are required to have the type attribute set to either +Set or Map. A Set cell collection is represented as a set and behaves +internally the same as the Set sort, although it actually declares a new +sort. A Map cell collection is represented as a Map in which the first +subcell of the cell collection is the key and the remaining cells are the +value.

      +

      For example, consider the following module:

      +
      k
      module LESSON-17-B + imports INT + imports BOOL + imports ID-SYNTAX + + syntax Stmt ::= Id "=" Exp ";" [strict(2)] + | "return" Exp ";" [strict] + syntax Stmts ::= List{Stmt,""} + syntax Exp ::= Id + | Int + | Exp "+" Exp [seqstrict] + | "spawn" "{" Stmts "}" + | "join" Exp ";" [strict] + + configuration <threads> + <thread multiplicity="*" type="Map"> + <id> 0 </id> + <k> $PGM:K </k> + </thread> + </threads> + <state> .Map </state> + <next-id> 1 </next-id> + + rule <k> X:Id => I:Int ...</k> + <state>... X |-> I ...</state> + rule <k> X:Id = I:Int ; => . ...</k> + <state> STATE => STATE [ X <- I ] </state> + rule <k> S:Stmt Ss:Stmts => S ~> Ss ...</k> + rule <k> I1:Int + I2:Int => I1 +Int I2 ...</k> + + rule <thread>... + <k> spawn { Ss } => NEXTID ...</k> + ...</thread> + <next-id> NEXTID => NEXTID +Int 1 </next-id> + (.Bag => + <thread> + <id> NEXTID </id> + <k> Ss </k> + </thread>) + + rule <thread>... + <k> join ID:Int ; => I ...</k> + ...</thread> + (<thread> + <id> ID </id> + <k> return I:Int ; ...</k> + </thread> => .Bag) + + syntax Bool ::= isKResult(K) [function, symbol] + rule isKResult(_:Int) => true + rule isKResult(_) => false [owise] +endmodule +
      +

      This module implements a very basic fork/join semantics. The spawn expression +spawns a new thread to execute a sequence of statements and returns a thread +id, and the join statement waits until a thread executes return and then +returns the return value of the thread.

      +

      Note something quite novel here: the <k> cell is inside a cell of +multiplicity *. Since the <k> cell is just a regular cell (mostly), this +is perfectly allowable. Rules that don't mention a specific thread are +automatically completed to match any thread.

      +

      When you execute programs in this language, the cells in the cell collection +get sorted and printed like any other collection, but they still display like +cells. Rules in this language also benefit from all the structural power of +cells, allowing you to omit cells you don't care about or complete the +configuration automatically. This allows you to have the power of cells while +still being a collection under the hood.

      +

      Exercises

      +
        +
      1. Modify the solution from Lesson 1.16, Exercise 1 so that the cell you use to +keep track of functions in a Map is now a cell collection. Run some programs +and compare how they get unparsed before and after this change.
      2. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.18: Term Equality and the Ternary Operator.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/18_equality_and_conditionals/index.html b/k-distribution/k-tutorial/1_basic/18_equality_and_conditionals/index.html new file mode 100644 index 00000000000..7a2d5955991 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/18_equality_and_conditionals/index.html @@ -0,0 +1,483 @@ + + + + + + + + + + + + + + +Lesson 1.18: Term Equality and the Ternary Operator | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.18: Term Equality and the Ternary Operator

      +

      The purpose of this lesson is to introduce how to compare equality of terms in +K, and how to put conditional expressions directly into the right-hand side of +rules.

      +

      Term Equality

      +

      One major way you can compare whether two terms are equal in K is to simply +match both terms with a variable with the same name. This will only succeed +in matching if the two terms are equal structurally. However, sometimes this +is impractical, and it is useful to have access to a way to actually compare +whether two terms in K are equal. The operator for this is found in +domains.md in the K-EQUAL +module. The operator is ==K and takes two terms of sort K and returns a +Bool. It returns true if they are equal. This includes equality over builtin +types such as Map and Set where equality is not purely structural in +nature. However, it does not include any notion of semantic equality over +user-defined syntax. The inverse symbol for inequality is =/=K.

      +

      Ternary Operator

      +

      One way to introduce conditional logic in K is to have two separate rules, +each with a side condition (or one rule with a side condition and another with +the owise attribute). However, sometimes it is useful to explicitly write +a conditional expression directly in the right-hand side of a rule. For this +purpose, K defines one more operator in the K-EQUAL module, which corresponds +to the usual ternary operator found in many languages. Here is an example of its +usage (lesson-18.k):

      +
      k
      module LESSON-18 + imports INT + imports BOOL + imports K-EQUAL + + syntax Exp ::= Int | Bool | "if" "(" Exp ")" Exp "else" Exp [strict(1)] + + syntax Bool ::= isKResult(K) [function, symbol] + rule isKResult(_:Int) => true + rule isKResult(_:Bool) => true + + rule if (B:Bool) E1:Exp else E2:Exp => #if B #then E1 #else E2 #fi +endmodule +
      +

      Note the symbol on the right-hand side of the final rule. This symbol is +polymorphic: B must be of sort Bool, but E1 and E2 could have been +any sort so long as both were of the same sort, and the sort of the entire +expression becomes equal to that sort. K supports polymorphic built-in +operators, but does not yet allow users to write their own polymorphic +productions.

      +

      The behavior of this function is to evaluate the Boolean expression to a +Boolean, then pick one of the two children and return it based on whether the +Boolean is true or false. Please note that it is not a good idea to use this +symbol in cases where one or both of the children is potentially undefined +(for example, an integer expression that divides by zero). While the default +implementation is smart enough to only evaluate the branch that happens to be +picked, this will not be true when we begin to do program verification. If +you need short circuiting behavior, it is better to use a side condition.

      +

      Exercises

      +
        +
      1. +

        Write a function in K that takes two terms of sort K and returns an +Int: the Int should be 0 if the terms are equal and 1 if the terms are +unequal.

        +
      2. +
      3. +

        Modify your solution to Lesson 1.16, Exercise 1 and introduce an if +Stmt to the syntax of the language, then implement it using the #if symbol. +Make sure to write tests for the resulting interpreter.

        +
      4. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.19: Debugging with GDB.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/19_debugging/index.html b/k-distribution/k-tutorial/1_basic/19_debugging/index.html new file mode 100644 index 00000000000..3fb07bd2d53 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/19_debugging/index.html @@ -0,0 +1,912 @@ + + + + + + + + + + + + + + +Lesson 1.19: Debugging with GDB or LLDB | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.19: Debugging with GDB or LLDB

      +

      The purpose of this lesson is to teach how to debug your K interpreter using +the K-language support provided in GDB or +LLDB.

      +

      Caveats

      +

      This lesson has been written with GDB support on Linux in mind. Unfortunately, +on macOS, GDB has limited support. To address this, we have introduced early +experimental support for debugging with LLDB on macOS. In some cases, the +features supported by LLDB are slightly different to those supported by GDB; the +tutorial text will make this clear where necessary. If you use a macOS with an +LLVM version older than 15, you may need to upgrade it to use the LLDB +correctly. If you encounter an issue on either operating system, please open an +issue against the K repository.

      +

      Getting started

      +

      On Linux, you will need GDB in order to complete this lesson. If you do not +already have GDB installed, then do so. Steps to install GDB are outlined in +this GDB Tutorial.

      +

      On macOS, LLDB should already have been installed with K's build dependencies +(whether you have built K from source, or installed it using kup or Homebrew).

      +

      The first thing neccessary in order to debug a K interpreter is to build the +interpreter with full debugging support enabled. This can be done relatively +simply. First, run kompile with the command line flag --enable-llvm-debug. +The resulting compiled K definition will be ready to support debugging.

      +

      Once you have a compiled K definition and a program you wish to debug, you can +start the debugger by passing the --debugger flag to krun. This will +automatically load the program you are executing into GDB and drop you into a +GDB shell ready to start executing the program.

      +

      As an example, consider the following K definition (lesson-19-a.k):

      +
      k
      module LESSON-19-A + imports INT + + rule I => I +Int 1 + requires I <Int 100 +endmodule +
      +

      If we compile this definition with kompile lesson-19-a.k --enable-llvm-debug, +and run the program 0 in the debugger with krun -cPGM=0 --debugger, we will +see the following output (roughly, and depending on which platform you are +using):

      +

      GDB / Linux

      +
      GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
      +Copyright (C) 2020 Free Software Foundation, Inc.
      +License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
      +This is free software: you are free to change and redistribute it.
      +There is NO WARRANTY, to the extent permitted by law.
      +Type "show copying" and "show warranty" for details.
      +This GDB was configured as "x86_64-linux-gnu".
      +Type "show configuration" for configuration details.
      +For bug reporting instructions, please see:
      +<http://www.gnu.org/software/gdb/bugs/>.
      +Find the GDB manual and other documentation resources online at:
      +    <http://www.gnu.org/software/gdb/documentation/>.
      +
      +For help, type "help".
      +Type "apropos word" to search for commands related to "word"...
      +Reading symbols from ./lesson-19-a-kompiled/interpreter...
      +warning: File "/home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-a-kompiled/interpreter" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
      +To enable execution of this file add
      +        add-auto-load-safe-path /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-a-kompiled/interpreter
      +line to your configuration file "/home/dwightguth/.gdbinit".
      +To completely disable this security protection add
      +        set auto-load safe-path /
      +line to your configuration file "/home/dwightguth/.gdbinit".
      +For more information about this security protection see the
      +"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
      +        info "(gdb)Auto-loading safe path"
      +(gdb)
      +
      +

      To make full advantage of the GDB features of K, you should follow the first +command listed in this output message and add the corresponding +add-auto-load-safe-path command to your ~/.gdbinit file as prompted. +Please note that the path will be different on your machine than the one +listed above. Adding directories to the "load safe path" effectively tells GDB +to trust those directories. All content under a given directory will be recursively +trusted, so if you want to avoid having to add paths to the "load safe path" every +time you kompile a different K definition, then you can just trust a minimal +directory containing all your kompiled files; however, do not choose a top-level directory containing arbitrary files as this amounts to trusting arbitrary files and is a security risk. More info on the load safe path +can be found here.

      +

      LLDB / macOS

      +
      (lldb) target create "./lesson-19-a-kompiled/interpreter"
      +warning: 'interpreter' contains a debug script. To run this script in this debug session:
      +
      +    command script import "/Users/brucecollie/code/scratch/lesson-19-a-kompiled/interpreter.dSYM/Contents/Resources/Python/interpreter.py"
      +
      +To run all discovered debug scripts in this session:
      +
      +    settings set target.load-script-from-symbol-file true
      +
      +Current executable set to '/Users/brucecollie/code/scratch/lesson-19-a-kompiled/interpreter' (x86_64).
      +(lldb) settings set -- target.run-args  ".krun-2023-03-20-11-22-46-TcYt9ffhb2/tmp.in.RupiLwHNfn" "-1" ".krun-2023-03-20-11-22-46-TcYt9ffhb2/result.kore"
      +(lldb) 
      +
      +

      LLDB applies slightly different security policies to GDB. To load K's debugging +scripts for this session only, you can run the command script import line at +the LLDB prompt. The loaded scripts will not persist across debugging sessions +if you do this. It is also possible to configure LLDB to automatically load the +K scripts when an interpreter is started in LLDB; doing so requires a slightly +less broad permission than GDB.

      +

      On macOS, the .dSYM directory that contains debugging symbols for an +executable can also contain Python scripts in Contents/Resources/Python. If +there is a Python script with a name matching the name of the current executable +(here, interpreter and interpreter.py), it will be automatically loaded if +the target.load-script-from-symbol-file setting is set). You can therefore add +the settings set command to your ~/.lldbinit without enabling full arbitrary +code execution, but you should be aware of the paths from which code can be +executed if you do so.

      +

      Basic commands

      +
      +

      LLDB Note: the k start and k step commands are currently not +implemented in the K LLDB scripts. To work around this limitation temporarily, +you can run process launch --stop-at-entry instead of k start. To emulate +k step, first run rbreak k_step once, then continue instead of each k step. We hope to address these limitations soon.

      +
      +

      The most basic commands you can execute in the K GDB session are to run your +program or to step through it. The first can be accomplished using GDB's +built-in run command. This will automatically start the program and begin +executing it. It will continue until the program aborts or finishes, or the +debugger is interrupted with Ctrl-C.

      +

      Sometimes you want finer-grained control over how you proceed through the +program you are debugging. To step through the rule applications in your +program, you can use the k start and k step GDB commands.

      +

      k start is similar to the built-in start command in that it starts the +program and then immediately breaks before doing any work. However, unlike +the start command which will break immediately after the main method of +a program is executed, the K start program will initialize the rewriter, +evaluate the initial configuration, and break immediately prior to applying +any rewrite steps.

      +

      In the example above, here is what we see when we run the k start command:

      +
      Temporary breakpoint 1 at 0x239210
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-a-kompiled/interpreter .krun-2021-08-13-14-10-50-sMwBkbRicw/tmp.in.01aQt85TaA -1 .krun-2021-08-13-14-10-50-sMwBkbRicw/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Temporary breakpoint 1, 0x0000000000239210 in main ()
      +0x0000000000231890 in step (subject=<k>
      +  0 ~> .
      +</k>)
      +(gdb)
      +
      +

      As you can see, we are stopped at the step function in the interpreter. +This function is responsible for taking top-level rewrite steps. The subject +parameter to this function is the current K configuration.

      +

      We can step through K rewrite steps one at a time by running the k step +command. By default, this takes a single rewrite step (including any function +rule applications that are part of that step).

      +

      Here is what we see when we run that command:

      +
      Continuing.
      +
      +Temporary breakpoint -22, 0x0000000000231890 in step (subject=<k>
      +  1 ~> .
      +</k>)
      +(gdb)
      +
      +

      As we can see, we have taken a single rewrite step. We can also pass a number +to the k step command which indicates the number of rewrite steps to take.

      +

      Here is what we see if we run k step 10:

      +
      Continuing.
      +
      +Temporary breakpoint -23, 0x0000000000231890 in step (subject=<k>
      +  11 ~> .
      +</k>)
      +(gdb)
      +
      +

      As we can see, ten rewrite steps were taken.

      +

      Breakpoints

      +

      The next important step in debugging an application in GDB is to be able to +set breakpoints. Generally speaking, there are three types of breakpoints we +are interested in a K semantics: Setting a breakpoint when a particular +function is called, setting a breakpoint when a particular rule is applied, +and setting a breakpoint when a side condition of a rule is evaluated.

      +

      The easiest way to do the first two things is to set a breakpoint on the +line of code containing the function or rule.

      +

      For example, consider the following K definition (lesson-19-b.k):

      +
      k
      module LESSON-19-B + imports BOOL + + syntax Bool ::= isBlue(Fruit) [function] + syntax Fruit ::= Blueberry() | Banana() + rule isBlue(Blueberry()) => true + rule isBlue(Banana()) => false + + rule F:Fruit => isBlue(F) +endmodule +
      +

      Once this program has been compiled for debugging, we can run the program +Blueberry(). We can then set a breakpoint that stops when the isBlue +function is called with the following command in GDB:

      +
      break lesson-19-b.k:4
      +
      +

      Similarly, in LLDB, run:

      +
      breakpoint set --file lesson-19-b.k --line 4
      +
      +

      Here is what we see if we set this breakpoint and then run the interpreter:

      +
      (gdb) break lesson-19-b.k:4
      +Breakpoint 1 at 0x231040: file /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b.k, line 4.
      +(gdb) run
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b-kompiled/interpreter .krun-2021-08-13-14-20-27-vXOQmV6lwS/tmp.in.fga98yqXlc -1 .krun-2021-08-13-14-20-27-vXOQmV6lwS/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Breakpoint 1, LblisBlue'LParUndsRParUnds'LESSON-19-B'Unds'Bool'Unds'Fruit (_1=Blueberry ( )) at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b.k:4
      +4         syntax Bool ::= isBlue(Fruit) [function]
      +(gdb)
      +
      +
      (lldb) breakpoint set --file lesson-19-b.k --line 4
      +Breakpoint 1: where = interpreter`LblisBlue'LParUndsRParUnds'LESSON-19-B'Unds'Bool'Unds'Fruit + 20 at lesson-19-b.k:4:19, address = 0x0000000100003ff4
      +(lldb) run
      +Process 50546 launched: '/Users/brucecollie/code/scratch/lesson-19-b-kompiled/interpreter' (x86_64)
      +Process 50546 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
      +    frame #0: 0x0000000100003ff4 interpreter`LblisBlue'LParUndsRParUnds'LESSON-19-B'Unds'Bool'Unds'Fruit(_1=Blueberry ( )) at lesson-19-b.k:4:19
      +   1   	module LESSON-19-B
      +   2   	  imports BOOL
      +   3   	
      +-> 4   	  syntax Bool ::= isBlue(Fruit) [function]
      +   5   	  syntax Fruit ::= Blueberry() | Banana()
      +   6   	  rule isBlue(Blueberry()) => true
      +   7   	  rule isBlue(Banana()) => false
      +(lldb)
      +
      +

      As we can see, we have stopped at the point where we are evaluating that +function. The value _1 that is a parameter to that function shows the +value passed to the function by the caller.

      +

      We can also break when the isBlue(Blueberry()) => true rule applies by simply +changing the line number to the line number of that rule:

      +
      (gdb) break lesson-19-b.k:6
      +Breakpoint 1 at 0x2af710: file /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b.k, line 6.
      +(gdb) run
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b-kompiled/interpreter .krun-2021-08-13-14-32-36-7kD0ic7XwD/tmp.in.8JNH5Qtmow -1 .krun-2021-08-13-14-32-36-7kD0ic7XwD/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Breakpoint 1, apply_rule_138 () at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b.k:6
      +6         rule isBlue(Blueberry()) => true
      +(gdb)
      +
      +
      (lldb) breakpoint set --file lesson-19-b.k --line 6
      +Breakpoint 1: where = interpreter`apply_rule_140 at lesson-19-b.k:6:8, address = 0x0000000100004620
      +(lldb) run
      +Process 50681 launched: '/Users/brucecollie/code/scratch/lesson-19-b-kompiled/interpreter' (x86_64)
      +Process 50681 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
      +    frame #0: 0x0000000100004620 interpreter`apply_rule_140 at lesson-19-b.k:6:8
      +   3   	
      +   4   	  syntax Bool ::= isBlue(Fruit) [function]
      +   5   	  syntax Fruit ::= Blueberry() | Banana()
      +-> 6   	  rule isBlue(Blueberry()) => true
      +   7   	  rule isBlue(Banana()) => false
      +   8   	
      +   9   	  rule F:Fruit => isBlue(F)
      +(lldb) 
      +
      +

      We can also do the same with a top-level rule:

      +
      (gdb) break lesson-19-b.k:9
      +Breakpoint 1 at 0x2aefa0: lesson-19-b.k:9. (2 locations)
      +(gdb) run
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b-kompiled/interpreter .krun-2021-08-13-14-33-13-9fC8Sz4aO3/tmp.in.jih1vtxSiQ -1 .krun-2021-08-13-14-33-13-9fC8Sz4aO3/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Breakpoint 1, apply_rule_107 (Var'Unds'DotVar0=<generatedCounter>
      +  0
      +</generatedCounter>, Var'Unds'DotVar1=., VarF=Blueberry ( )) at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-b.k:9
      +9         rule F:Fruit => isBlue(F)
      +(gdb)
      +
      +
      (lldb) breakpoint set --file lesson-19-b.k --line 9
      +Breakpoint 1: 2 locations.
      +(lldb) run
      +Process 50798 launched: '/Users/brucecollie/code/scratch/lesson-19-b-kompiled/interpreter' (x86_64)
      +Process 50798 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
      +    frame #0: 0x0000000100003f2e interpreter`apply_rule_109(Var'Unds'DotVar0=<generatedCounter>
      +  0
      +</generatedCounter>, Var'Unds'DotVar1=., VarF=Blueberry ( )) at lesson-19-b.k:9:8
      +   6   	  rule isBlue(Blueberry()) => true
      +   7   	  rule isBlue(Banana()) => false
      +   8   	
      +-> 9   	  rule F:Fruit => isBlue(F)
      +   10  	endmodule
      +(lldb)  
      +
      +

      Unlike the function rule above, we see several parameters to this function. +These are the substitution that was matched for the function. Variables only +appear in this substitution if they are actually used on the right-hand side +of the rule.

      +

      Advanced breakpoints

      +

      Sometimes it is inconvenient to set the breakpoint based on a line number.

      +

      It is also possible to set a breakpoint based on the rule label of a particular +rule. Consider the following definition (lesson-19-c.k):

      +
      k
      module LESSON-19-C + imports INT + imports BOOL + + syntax Bool ::= isEven(Int) [function] + rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0 + rule [isOdd]: isEven(I) => false requires I %Int 2 =/=Int 0 + +endmodule +
      +

      We will run the program isEven(4). We can set a breakpoint for when a rule +applies by means of the MODULE-NAME.label.rhs syntax:

      +
      (gdb) break LESSON-19-C.isEven.rhs
      +Breakpoint 1 at 0x2afda0: file /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k, line 6.
      +(gdb) run
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c-kompiled/interpreter .krun-2021-08-13-14-40-29-LNNT8YEZ61/tmp.in.ZG93vWCGGC -1 .krun-2021-08-13-14-40-29-LNNT8YEZ61/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Breakpoint 1, LESSON-19-C.isEven.rhs () at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k:6
      +6         rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0
      +(gdb)
      +
      +
      (lldb) breakpoint set --name LESSON-19-C.isEven.rhs
      +Breakpoint 1: where = interpreter`LESSON-19-C.isEven.rhs at lesson-19-c.k:6:18, address = 0x00000001000038e0
      +(lldb) run
      +Process 51205 launched: '/Users/brucecollie/code/scratch/lesson-19-c-kompiled/interpreter' (x86_64)
      +Process 51205 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
      +    frame #0: 0x00000001000038e0 interpreter`LESSON-19-C.isEven.rhs at lesson-19-c.k:6:18
      +   3   	  imports BOOL
      +   4   	
      +   5   	  syntax Bool ::= isEven(Int) [function]
      +-> 6   	  rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0
      +   7   	  rule [isOdd]: isEven(I) => false requires I %Int 2 =/=Int 0
      +   8   	
      +   9   	endmodule
      +(lldb) 
      +
      +

      We can also set a breakpoint for when a rule's side condition is evaluated +by means of the MODULE-NAME.label.sc syntax:

      +
      (gdb) break LESSON-19-C.isEven.sc
      +Breakpoint 1 at 0x2afd70: file /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k, line 6.
      +(gdb) run
      +Starting program: /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c-kompiled/interpreter .krun-2021-08-13-14-41-48-1BoGfJRbYc/tmp.in.kg4F8cwfCe -1 .krun-2021-08-13-14-41-48-1BoGfJRbYc/result.kore
      +[Thread debugging using libthread_db enabled]
      +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      +
      +Breakpoint 1, LESSON-19-C.isEven.sc (VarI=4) at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k:6
      +6         rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0
      +(gdb) finish
      +Run till exit from #0  LESSON-19-C.isEven.sc (VarI=4) at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k:6
      +0x00000000002b2662 in LblisEven'LParUndsRParUnds'LESSON-19-C'Unds'Bool'Unds'Int (_1=4) at /home/dwightguth/kframework-5.0.0/k-distribution/k-tutorial/1_basic/19_debugging/lesson-19-c.k:5
      +5         syntax Bool ::= isEven(Int) [function]
      +Value returned is $1 = true
      +(gdb)
      +
      +
      (lldb) breakpoint set --name LESSON-19-C.isEven.sc
      +Breakpoint 1: where = interpreter`LESSON-19-C.isEven.sc + 1 at lesson-19-c.k:6:18, address = 0x00000001000038c1
      +(lldb) run
      +Process 52530 launched: '/Users/brucecollie/code/scratch/lesson-19-c-kompiled/interpreter' (x86_64)
      +Process 52530 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
      +    frame #0: 0x00000001000038c1 interpreter`LESSON-19-C.isEven.sc(VarI=0x0000000101800088) at lesson-19-c.k:6:18
      +   3   	  imports BOOL
      +   4   	
      +   5   	  syntax Bool ::= isEven(Int) [function]
      +-> 6   	  rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0
      +   7   	  rule [isOdd]: isEven(I) => false requires I %Int 2 =/=Int 0
      +   8   	
      +   9   	endmodule
      +(lldb) finish
      +Process 52649 stopped
      +* thread #1, queue = 'com.apple.main-thread', stop reason = step out
      +Return value: (bool) $0 = true
      +
      +    frame #0: 0x00000001000069e5 interpreter`LblisEven'LParUndsRParUnds'LESSON-19-C'Unds'Bool'Unds'Int(_1=0x0000000101800088) at lesson-19-c.k:5:19
      +   2   	  imports INT
      +   3   	  imports BOOL
      +   4   	
      +-> 5   	  syntax Bool ::= isEven(Int) [function]
      +   6   	  rule [isEven]: isEven(I) => true requires I %Int 2 ==Int 0
      +   7   	  rule [isOdd]: isEven(I) => false requires I %Int 2 =/=Int 0
      +   8
      +(lldb)
      +
      +

      Here we have used the built-in command finish to tell us whether the side +condition returned true or not. Note that once again, we see the substitution +that was matched from the left-hand side. Like before, a variable will only +appear here if it is used in the side condition.

      +

      Debugging rule matching

      +

      Sometimes it is useful to try to determine why a particular rule did or did +not apply. K provides some basic debugging commands which make it easier +to determine this.

      +

      Consider the following K definition (lesson-19-d.k):

      +
      k
      module LESSON-19-D + + syntax Foo ::= foo(Bar) + syntax Bar ::= bar(Baz) | bar2(Baz) + syntax Baz ::= baz() | baz2() + + rule [baz]: foo(bar(baz())) => .K + +endmodule +
      +

      Suppose we try to run the program foo(bar(baz2())). It is obvious from this +example why the rule in this definition will not apply. However, in practice, +such cases are not always obvious. You might look at a rule and not immediately +spot why it didn't apply on a particular term. For this reason, it can be +useful to get the debugger to provide a log about how it tried to match that +term. You can do this with the k match command. If you are stopped after +having run k start or k step, you can obtain this log for any rule after +any step by running the command k match MODULE.label subject for a particular +top-level rule label.

      +

      For example, with the baz rule above, we get the following output:

      +
      (gdb) k match LESSON-19-D.baz subject
      +Subject:
      +baz2 ( )
      +does not match pattern:
      +baz ( )
      +
      +
      (lldb) k match LESSON-19-D.baz subject
      +Subject:
      +baz2 ( )
      +does not match pattern:
      +baz ( )
      +
      +

      As we can see, it provided the exact subterm which did not match against the +rule, as well as the particular subpattern it ought to have matched against.

      +

      This command does not actually take any rewrite steps. In the event that +matching actually succeeds, you will still need to run the k step command +to advance to the next step.

      +

      Final notes

      +

      In addition to the functionality provided above, you have the full power of +GDB or LLDB at your disposal when debugging. Some features are not particularly +well-adapted to K code and may require more advanced knowledge of the +term representation or implementation to use effectively, but anything that +can be done in GDB or LLDB can in theory be done using this debugging functionality. +We suggest you refer to the +GDB Documentation or +LLDB Tutorial if you +want to try to do something and are unsure as to how.

      +

      Exercises

      +
        +
      1. Compile your solution to Lesson 1.18, Exercise 2 with debugging support +enabled and step through several programs you have previously used to test. +Then set a breakpoint on the isKResult function and observe the state of the +interpreter when stopped at that breakpoint. Set a breakpoint on the rule for +addition and run a program that causes it to be stopped at that breakpoint. +Finally, step through the program until the addition symbol is at the top +of the K cell, and then use the k match command to report the reason why +the subtraction rule does not apply. You may need to modify the definition +to insert some rule labels.
      2. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.20: K Backends and the Haskell Backend.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/20_backends/index.html b/k-distribution/k-tutorial/1_basic/20_backends/index.html new file mode 100644 index 00000000000..9dae9b9c010 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/20_backends/index.html @@ -0,0 +1,503 @@ + + + + + + + + + + + + + + +Lesson 1.20: K Backends and the Haskell Backend | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.20: K Backends and the Haskell Backend

      +

      The purpose of this lesson is to teach about the multiple backends of K, +in particular the Haskell Backend which is the complement of the backend we +have been using so far.

      +

      K Backends

      +

      Thus far, we have not discussed the distinction between the K frontend and +the K backends at all. We have simply assumed that if you run kompile on a +K definition, there will be a compiler backend that will allow you to execute +the K definition you have compiled.

      +

      K actually has multiple different backends. The one we have been using so far +implicitly, the default backend, is called the LLVM Backend. It is +designed to support efficient, optimized concrete execution and search. It +does this by compiling your K definition to LLVM bitcode and then using LLVM +to generate machine code for it that is compiled and linked and executed. +However, K is a formal methods toolkit at the end of the day, and the primary +goal many people have when defining a programming language in K is to +ultimately be able to perform more advanced verification on programs in their +programming language.

      +

      It is for this purpose that K also provides the Haskell Backend, so called +because it is implemented in Haskell. While we will cover the features of the +Haskell Backend in more detail in the next two lessons, the important thing to +understand is that it is a separate backend which is optimized for more formal +reasoning about programming languages. While it is capable of performing +concrete execution, it does not do so as efficiently as the LLVM Backend. +In exchange, it provides more advanced features.

      +

      Choosing a backend

      +

      You can choose which backend to use to compile a K definition by means of the +--backend flag to kompile. By default, if you do not specify this flag, it +is equivalent to if you had specified --backend llvm. However, to use the +Haskell Backend instead, you can simply say kompile --backend haskell on a +particular K definition.

      +

      As an example, here is a simple K definition that we have seen before in the +previous lesson (lesson-20.k):

      +
      k
      module LESSON-20 + imports INT + + rule I => I +Int 1 + requires I <Int 100 +endmodule +
      +

      Previously we compiled this definition using the LLVM Backend, but if we +instead execute the command kompile lesson-20.k --backend haskell, we +will get an interpreter for this K definition that is implemented in Haskell +instead. Unlike the default LLVM Backend, the Haskell Backend is not a +compiler per se. It does not generate new Haskell code corresponding to your +programming language and then compile and execute it. Instead, it is an +interpreter which reads the generated IR from kompile and implements in +Haskell an interpreter that is capable of interpreting any K definition.

      +

      Note that on arm64 macOS (Apple Silicon), there is a known issue with the Compact +library that causes crashes in the Haskell backend. Pass the additional flag +--no-haskell-binary to kompile to resolve this. +This flag is also needed when using krun.

      +

      Exercise

      +

      Try running the program 0 in this K definition on the Haskell Backend and +compare the final configuration to what you would get compiling the same +definition with the LLVM Backend.

      +

      Legacy backends

      +

      As a quick note, K does provide one other backend, which exists primarily as +legacy code which should be considered deprecated. This is the +Java Backend. The Java Backend is essentially a precursor to the Haskell +Backend. We will not cover this backend in any detail since it is deprecated, +but we still mention it here for the purposes of understanding.

      +

      Exercises

      +
        +
      1. Compile your solution to Lesson 1.18, Exercise 2 with the Haskell Backend +and execute some programs. Compare the resulting configurations with the +output of the same program on the LLVM Backend. Note that if you are getting +different behaviors on the Haskell backend, you might have some luck debugging +by passing --search to krun when using the LLVM backend.
      2. +
      +

      Next lesson

      +

      Once you have completed the above exercises, you can continue to +Lesson 1.21: Unification and Symbolic Execution.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/21_symbolic_execution/index.html b/k-distribution/k-tutorial/1_basic/21_symbolic_execution/index.html new file mode 100644 index 00000000000..a7f0bfb2468 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/21_symbolic_execution/index.html @@ -0,0 +1,583 @@ + + + + + + + + + + + + + + +Lesson 1.21: Unification and Symbolic Execution | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.21: Unification and Symbolic Execution

      +

      The purpose of this lesson is to teach the basic concepts of symbolic execution +in order to introduce the unique capabilities of the Haskell Backend at a +conceptual level.

      +

      Symbolic Execution

      +

      Thus far, all of the programs we have run using K have been concrete +configurations. What this means is that the configuration we use to initialize +the K rewrite engine is concrete; in other words, contains no logical +variables. The LLVM Backend is a concrete execution engine, meaning that +it is only capable of rewriting concrete configurations.

      +

      By contrast, the Haskell Backend performs symbolic execution, which is +capable of rewriting any configuration, including those where parts of the +configuration are symbolic, ie, contain variables or uninterpreted +functions.

      +

      Unification

      +

      Previously, we have introduced the concept that K rewrite rules operate by +means of pattern matching: the current configuration being rewritten is pattern +matched against the left-hand side of the rewrite rule, and the substitution +is used in order to construct a new term from the right-hand side. In symbolic +execution, we use +unification +instead of pattern matching. To summarize, unification behaves akin to a +two-way pattern matching where both the configuration and the left-hand side +of the rule can contain variables, and the algorithm generates a +most general unifier containing substitutions for the variables in both +which will make both terms equal.

      +

      Feasibility

      +

      Unification by itself cannot completely solve the problem of symbolic +execution. One task symbolic execution must perform is to identify whether +a particular symbolic term is feasible, that is to say, that there actually +exists a concrete instantiation of that term such that all the logical +constraints on that term can actually be satisfied. The Haskell Backend +delegates this task to Z3, an +SMT solver. +This solver is used to periodically trim configurations that are determined +to be mathematically infeasible.

      +

      Symbolic terms

      +

      The final component of symbolic execution consists of the task of introducing +symbolic terms into the configuration. This can be done one of two different +ways. First, the term being passed to krun can actually be symbolic. This +is less frequently used because it requires the user to construct an AST +that contains variables, something which our current parsing capabilities are +not well-equipped to do. The second, more common, way of introducing symbolic +terms into a configuration consists of writing rules where there exists an +existentially qualified variable on the right-hand side of the rule that does +not exist on the left-hand side of the rule.

      +

      In order to prevent users from writing such rules by accident, K requires +that such variables begin with the ? prefix. For example, here is a rule +that rewrites a constructor foo to a symbolic integer:

      +
      rule <k> foo => ?X:Int ...</k>
      +
      +

      When this rule applies, a fresh variable is introduced to the configuration, which +then is unified against the rules that might apply in order to symbolically +execute that configuration.

      +

      ensures clauses

      +

      We also introduce here a new feature of K rules that applies when a rule +has this type of variable on the right-hand side: the ensures clause. +An ensures clause is similar to a requires clause and can appear after +a rule body, or after a requires clause. The ensures clause is used to +introduce constraints that might apply to the variable that was introduced by +that rule. For example, we could write the rule above with the additional +constraint that the symbolic integer that was introduced must be less than +five, by means of the following rule:

      +
      rule <k> foo => ?X:Int ...</k> ensures ?X <Int 5
      +
      +

      Putting it all together

      +

      Putting all these pieces together, it is possible to use the Haskell Backend +to perform symbolic reasoning about a particular K module, determining all the +possible states that can be reached by a symbolic configuration.

      +

      For example, consider the following K definition (lesson-21.k):

      +
      k
      module LESSON-21 + imports INT + + rule <k> 0 => ?X:Int ... </k> ensures ?X =/=Int 0 + rule <k> X:Int => 5 ... </k> requires X >=Int 10 +endmodule +
      +

      When we symbolically execute the program 0, we get the following output +from the Haskell Backend:

      +
          <k>
      +      5 ~> .
      +    </k>
      +  #And
      +    {
      +      true
      +    #Equals
      +      ?X:Int >=Int 10
      +    }
      +  #And
      +    #Not ( {
      +      ?X:Int
      +    #Equals
      +      0
      +    } )
      +#Or
      +    <k>
      +      ?X:Int ~> .
      +    </k>
      +  #And
      +    #Not ( {
      +      true
      +    #Equals
      +      ?X:Int >=Int 10
      +    } )
      +  #And
      +    #Not ( {
      +      ?X:Int
      +    #Equals
      +      0
      +    } )
      +
      +

      Note some new symbols introduced by this configuration: #And, #Or, and +#Equals. While andBool, orBool, and ==K represent functions of sort +Bool, #And, #Or, and #Equals are matching logic connectives. We +will discuss matching logic in more detail later in the tutorial, but the basic +idea is that these symbols represent Boolean operators over the domain of +configurations and constraints, as opposed to over the Bool sort.

      +

      Notice that the configuration listed above is a disjunction of conjunctions. +This is the most common form of output that can be produced by the Haskell +Backend. In this case, each conjunction consists of a configuration and a set +of constraints. What this conjunction describes, essentially, is a +configuration and a set of information that was derived to be true while +rewriting that configuration.

      +

      Similar to how we saw --search in a previous lesson, the reason we have +multiple disjuncts is because there are multiple possible output states +for this program, depending on whether or not the second rule applied. In the +first case, we see that ?X is greater than or equal to 10, so the second rule +applied, rewriting the symbolic integer to the concrete integer 5. In the +second case, we see that the second rule did not apply because ?X is less +than 10. Moreover, because of the ensures clause on the first rule, we know +that ?X is not zero, therefore the first rule will not apply a second time. +If we had omitted this constraint, we would have ended up infinitely applying +the first rule, leading to krun not terminating.

      +

      In the next lesson, we will cover how symbolic execution forms the backbone +of deductive program verification in K and how we can use K to prove programs +correct against a specification.

      +

      Exercises

      +
        +
      1. Create another rule in LESSON-21 that rewrites odd integers greater than +ten to a symbolic even integer less than 10 and greater than 0. This rule will +now apply nondeterministically along with the existing rules. Predict what the +resulting output configuration will be from rewriting 0 after adding this +rule. Then run the program and see whether your prediction is correct.
      2. +
      +

      Once you have completed the above exercises, you can continue to +Lesson 1.22: Basics of Deductive Program Verification using K.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/22_proofs/index.html b/k-distribution/k-tutorial/1_basic/22_proofs/index.html new file mode 100644 index 00000000000..cc4331f0400 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/22_proofs/index.html @@ -0,0 +1,819 @@ + + + + + + + + + + + + + + +Lesson 1.22: Basics of Deductive Program Verification using K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 1.22: Basics of Deductive Program Verification using K

      +

      In this lesson, you will familiarize yourself with the basics of using K for +deductive program verification.

      +

      1. Setup: Simple Programming Language with Function Calls

      +

      We base this lesson on a simple programming language with functions, +assignment, if conditionals, and while loops. Take your time to study its +formalization below (lesson-22.k):

      +
      module LESSON-22-SYNTAX
      +    imports INT-SYNTAX
      +    imports BOOL-SYNTAX
      +    imports ID-SYNTAX
      +
      +    syntax Exp ::= IExp | BExp
      +
      +    syntax IExp ::= Id | Int
      +
      +    syntax KResult ::= Int | Bool | Ints
      +
      +    // Take this sort structure:
      +    //
      +    //     IExp
      +    //    /    \
      +    // Int      Id
      +    //
      +    // Through the List{_, ","} functor.
      +    // Must add a `Bot`, for a common subsort for the empty list.
      +
      +    syntax Bot
      +    syntax Bots ::= List{Bot, ","} [klabel(exps)]
      +    syntax Ints ::= List{Int, ","} [klabel(exps)]
      +                  | Bots
      +    syntax Ids  ::= List{Id, ","}  [klabel(exps)]
      +                  | Bots
      +    syntax Exps ::= List{Exp, ","} [klabel(exps), seqstrict]
      +                  | Ids | Ints
      +
      +    syntax IExp ::= "(" IExp ")" [bracket]
      +                  | IExp "+" IExp [seqstrict]
      +                  | IExp "-" IExp [seqstrict]
      +                  > IExp "*" IExp [seqstrict]
      +                  | IExp "/" IExp [seqstrict]
      +                  > IExp "^" IExp [seqstrict]
      +                  | Id "(" Exps ")" [strict(2)]
      +
      +    syntax BExp ::= Bool
      +
      +    syntax BExp ::= "(" BExp ")" [bracket]
      +                  | IExp "<=" IExp [seqstrict]
      +                  | IExp "<"  IExp [seqstrict]
      +                  | IExp ">=" IExp [seqstrict]
      +                  | IExp ">"  IExp [seqstrict]
      +                  | IExp "==" IExp [seqstrict]
      +                  | IExp "!=" IExp [seqstrict]
      +
      +    syntax BExp ::= BExp "&&" BExp
      +                  | BExp "||" BExp
      +
      +    syntax Stmt ::=
      +         Id "=" IExp ";" [strict(2)]                        // Assignment
      +       | Stmt Stmt [left]                                   // Sequence
      +       | Block                                              // Block
      +       | "if" "(" BExp ")" Block "else" Block [strict(1)]   // If conditional
      +       | "while" "(" BExp ")" Block                         // While loop
      +       | "return" IExp ";"                    [seqstrict]   // Return statement
      +       | "def" Id "(" Ids ")" Block                         // Function definition
      +
      +    syntax Block ::=
      +         "{" Stmt "}"    // Block with statement
      +       | "{" "}"         // Empty block
      +endmodule
      +
      +module LESSON-22
      +    imports INT
      +    imports BOOL
      +    imports LIST
      +    imports MAP
      +    imports LESSON-22-SYNTAX
      +
      +    configuration
      +      <k> $PGM:Stmt </k>
      +      <store> .Map </store>
      +      <funcs> .Map </funcs>
      +      <stack> .List </stack>
      +
      + // -----------------------------------------------
      +    rule <k> I1 + I2 => I1 +Int I2 ... </k>
      +    rule <k> I1 - I2 => I1 -Int I2 ... </k>
      +    rule <k> I1 * I2 => I1 *Int I2 ... </k>
      +    rule <k> I1 / I2 => I1 /Int I2 ... </k>
      +    rule <k> I1 ^ I2 => I1 ^Int I2 ... </k>
      +
      +    rule <k> I:Id => STORE[I] ... </k>
      +         <store> STORE </store>
      +
      + // ------------------------------------------------
      +    rule <k> I1 <= I2 => I1  <=Int I2 ... </k>
      +    rule <k> I1  < I2 => I1   <Int I2 ... </k>
      +    rule <k> I1 >= I2 => I1  >=Int I2 ... </k>
      +    rule <k> I1  > I2 => I1   >Int I2 ... </k>
      +    rule <k> I1 == I2 => I1  ==Int I2 ... </k>
      +    rule <k> I1 != I2 => I1 =/=Int I2 ... </k>
      +
      +    rule <k> B1 && B2 => B1 andBool B2 ... </k>
      +    rule <k> B1 || B2 => B1  orBool B2 ... </k>
      +
      +    rule <k> S1:Stmt S2:Stmt => S1 ~> S2 ... </k>
      +
      +    rule <k> ID = I:Int ; => . ... </k>
      +         <store> STORE => STORE [ ID <- I ] </store>
      +
      +    rule <k> { S } => S ... </k>
      +    rule <k> {   } => . ... </k>
      +
      +    rule <k> if (true)   THEN else _ELSE => THEN ... </k>
      +    rule <k> if (false) _THEN else  ELSE => ELSE ... </k>
      +
      +    rule <k> while ( BE ) BODY => if ( BE ) { BODY while ( BE ) BODY } else { } ... </k>
      +
      +    rule <k> def FNAME ( ARGS ) BODY => . ... </k>
      +         <funcs> FS => FS [ FNAME <- def FNAME ( ARGS ) BODY ] </funcs>
      +
      +    rule <k> FNAME ( IS:Ints ) ~> CONT => #makeBindings(ARGS, IS) ~> BODY </k>
      +         <funcs> ... FNAME |-> def FNAME ( ARGS ) BODY ... </funcs>
      +         <store> STORE => .Map </store>
      +         <stack> .List => ListItem(state(CONT, STORE)) ... </stack>
      +
      +    rule <k> return I:Int ; ~> _ => I ~> CONT </k>
      +         <stack> ListItem(state(CONT, STORE)) => .List ... </stack>
      +         <store> _ => STORE </store>
      +
      +    rule <k> return I:Int ; ~> . => I </k>
      +         <stack> .List </stack>
      +
      +    syntax KItem ::= #makeBindings(Ids, Ints)
      +                   | state(continuation: K, store: Map)
      + // ----------------------------------------------------
      +    rule <k> #makeBindings(.Ids, .Ints) => . ... </k>
      +    rule <k> #makeBindings((I:Id, IDS => IDS), (IN:Int, INTS => INTS)) ... </k>
      +         <store> STORE => STORE [ I <- IN ] </store>
      +endmodule
      +
      +

      Next, compile this example using kompile lesson-22.k --backend haskell. If +your processor is an Apple Silicon processor, add the --no-haskell-binary +flag if the compilation fails.

      +

      2. Setup: Proof Environment

      +

      Next, take the following snippet of K code and save it in lesson-22-spec.k. +This is a skeleton of the proof environment, and we will complete it as the +lesson progresses.

      +
      requires "lesson-22.k"
      +requires "domains.md"
      +
      +module LESSON-22-SPEC-SYNTAX
      +    imports LESSON-22-SYNTAX
      +
      +endmodule
      +
      +module VERIFICATION
      +    imports K-EQUAL
      +    imports LESSON-22-SPEC-SYNTAX
      +    imports LESSON-22
      +    imports MAP-SYMBOLIC
      +
      +endmodule
      +
      +module LESSON-22-SPEC
      +    imports VERIFICATION
      +
      +endmodule
      +
      +

      3. Claims

      +
        +
      1. The first claim we will ask K to prove is that 3 + 4, in fact, equals 7. +Claims are stated using the claim keyword, followed by the claim +statement:
      2. +
      +
      claim <k> 3 + 4 => 7 ... </k>
      +
      +

      Add this claim to the LESSON-22-SPEC module and run the K prover using the +command kprove lesson-22-spec.k. You should get back the output #Top, +which denotes the Matching Logic equivalent of true and means, in this +context, that all claims have been proven correctly.

      +
        +
      1. The second claim reasons about the if statement that has a concrete condition:
      2. +
      +
      claim <k> if ( 3 + 4 == 7 ) {
      +            $a = 1 ;
      +            } else {
      +            $a = 2 ;
      +            }
      +        => . ... </k>
      +        <store> STORE => STORE [ $a <- 1 ] </store>
      +
      +

      stating that the given program terminates (=> .), and when it does, the value +of the variable $a is set to 1, meaning that the execution will have taken +the then branch. Add this claim to the LESSON-22-SPEC module, but also add

      +
      syntax Id ::= "$a" [token]
      +
      +

      to the LESSON-22-SPEC-SYNTAX module in order to declare $a as a token so +that it can be used as a program variable. Re-run the K prover, which should +again return #Top.

      +
        +
      1. Our third claim demonstrates how to reason about both branches of an if +statement at the same time:
      2. +
      +
      claim <k> $a = A:Int ; $b = B:Int ;
      +          if ($a < $b) {
      +            $c = $b ;
      +          } else {
      +            $c = $a ;
      +          }
      +        => . ... </k>
      +        <store> STORE => STORE [ $a <- A ] [ $b <- B ] [ $c <- ?C:Int ] </store>
      +    ensures (?C ==Int A) orBool (?C ==Int B)
      +
      +

      The program in question first assigns symbolic integers A and B to program +variables $a and $b, respectively, and then executes the given if +statement, which has a symbolic condition (A < B), updating the value of the +program variable $c in both branches. The specification we give states that +the if statement terminates, with $a and $b updated, respectively, to A +and B, and $c updated to some symbolic integer value ?C. Via the +ensures clause, which is used to specify additional constraints that hold +after execution, we also state that this existentially quantified ?C equals +either A or B.

      +

      Add the productions declaring $b and $c as tokens to the +LESSON-22-SPEC-SYNTAX module, the claim to the LESSON-22-SPEC module, run +the K prover again, and observe the output, which should not be #Top this +time. This means that K was not able to prove the claim, and we now need to +understand why. We do so by examining the output, which should look as follows:

      +
          (InfoReachability) while checking the implication:
      +    The configuration's term unifies with the destination's term,
      +    but the implication check between the conditions has failed.
      +
      +  #Not (
      +    #Exists ?C . {
      +        STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- ?C:Int ]
      +      #Equals
      +        STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- B:Int ]
      +    }
      +  #And
      +    {
      +      true
      +    #Equals
      +      ?C ==Int A orBool ?C ==Int B
      +    }
      +  )
      +#And
      +  <generatedTop>
      +    <k>
      +      _DotVar1
      +    </k>
      +    <store>
      +      STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- B:Int ]
      +    </store>
      +    <funcs>
      +      _Gen3
      +    </funcs>
      +    <stack>
      +      _Gen5
      +    </stack>
      +  </generatedTop>
      +#And
      +  {
      +    true
      +  #Equals
      +    A <Int B
      +  }
      +
      +

      This output starts with a message telling us at which point the proof failed, +followed by the final state, which consists of three parts: some negative +Matching Logic (ML) constraints, the final configuration (<generatedTop> ... </generatedTop>), and some positive ML constraints. Generally speaking, +these positive and the negative constraints could arise from various sources, +such as (but not limited to) branches taken by the execution +(e.g. { true #Equals A <Int B } or #Not ( { true #Equals A <Int B } ) ), +or ensures constraints.

      +

      First, we examine the message:

      +
      (InfoReachability) while checking the implication:
      +The configuration's term unifies with the destination's term,
      +but the implication check between the conditions has failed.
      +
      +

      which tells us that the structure of the final configuration is as expected, +but that some of the associated constraints cannot be proven. We next look at +the final configuration, in which the relevant item is the <store> ... </store> cell, because it is the only one that we are reasoning about. By +inspecting its contents:

      +
      STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- B:Int ]
      +
      +

      we see that we should be within the constraints of the ensures, since the +value of $c in the store equals B in this branch. We next examine the +negative and positive constraints of the output and, more often than not, the +goal is to instruct K how to use the information from the final configuration +and the positive constraints to falsify one of the negative constraints. This +is done through simplifications.

      +

      So, the positive constraint that we have is

      +
      { true #Equals A <Int B }
      +
      +

      meaning that A <Int B holds. Given the analysed program, this tells us that +we are in the then branch of the if. The negative constraint is

      +
        #Not (
      +    #Exists ?C . {
      +        STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- ?C:Int ]
      +      #Equals
      +        STORE [ $a <- A:Int ] [ $b <- B:Int ] [ $c <- B:Int ]
      +    }
      +  #And
      +    { true #Equals ?C ==Int A orBool ?C ==Int B }
      +  )
      +
      +

      and we observe, from the first equality, that the existential ?C should be +instantiated with B. This would make both branches of the #And true, +falsifying the outside #Not. We just need to show K how to conclude that +?C ==Int B. We do so by introducing the following simplification into the +VERIFICATION module:

      +
      rule { M:Map [ K <- V ] #Equals M [ K <- V' ] } => { V #Equals V' } [simplification]
      +
      +

      which formalizes our internal understanding of ?C ==Int B. The rule states +that when we update the same key in the same map with two values, and the +resulting maps are equal, then the two values must be equal as well. The +[simplification] attribute indicates to K to use this rule to simplify the +state when trying to prove claims. Like function rules, simplification rules +do not complete to the top of the configuration, but instead apply anywhere +their left-hand-side matches. Re-run the K prover, which should now return +#Top, indicating that K was able to use the simplification and prove the +required claims.

      +
        +
      1. Next, we show how to state and prove properties of while loops. In +particular, we consider the following loop
      2. +
      +
      claim
      +    <k>
      +        while ( 0 < $n ) {
      +            $s = $s + $n;
      +            $n = $n - 1;
      +            } => . ...
      +    </k>
      +    <store>
      +        $s |-> (S:Int => S +Int ((N +Int 1) *Int N /Int 2))
      +        $n |-> (N:Int => 0)
      +    </store>
      +    requires N >=Int 0
      +
      +

      which adds the sum of the first $n integers to $s, assuming the value of $n +is non-negative to begin with. This is reflected in the store by stating that, +after the execution of the loop, the original value of $s (which is set to +equal some symbolic integer S) is incremented by ((N +Int 1) *Int N /Int 2), and the value of $n always equals 0. Add $n and $s as tokens in +the LESSON-22-SPEC-SYNTAX module, the above claim to the LESSON-22-SPEC +module, and run the K prover, which should return #Top.

      +
        +
      1. Finally, our last claim is about a program that uses function calls:
      2. +
      +
      claim
      +    <k>
      +        def $sum($n, .Ids) {
      +            $s = 0 ;
      +            while (0 < $n) {
      +                $s = $s + $n;
      +                $n = $n - 1;
      +            }
      +            return $s;
      +        }
      +
      +        $s = $sum(N:Int, .Ints);
      +    => . ... </k>
      +    <funcs> .Map => ?_ </funcs>
      +    <store> $s |-> (_ => ((N +Int 1) *Int N /Int 2)) </store>
      +    <stack> .List </stack>
      +    requires N >=Int 0
      +
      +

      Essentially, we have wrapped the while loop from claim 3.4 into a function +$sum, and then called that function with a symbolic integer N, storing the +return value in the variable $s. The specification states that this program +ends up storing the sum of the first N integers in the variable $n. Add $sum +to the LESSON-22-SPEC-SYNTAX module, the above claim to the +LESSON-22-SPEC module, and run the K prover, which should again return +#Top.

      +

      Exercises

      +
        +
      1. +

        Change the condition of the if statement in part 3.2 to take the else +branch and adjust the claim so that the proof passes.

        +
      2. +
      3. +

        The post-condition of the specification in part 3.3 loses some information. +In particular, the value of ?C is in fact the maximum of A and B. +Prove the same claim as in 3.2, but with the post-condition ensures (?C ==Int maxInt(A, B)). For this, you will need to extend the VERIFICATION +module with two simplifications that capture the meaning of maxInt(A:Int, B:Int). Keep in mind that any rewriting rule can be used as a +simplification; in particular, that simplifications can have requires +clauses.

        +
      4. +
      5. +

        Following the pattern shown in part 3.4, assuming a non-negative initial +value of $b, specify and verify the following while loop:

        +
      6. +
      +
      while ( 0 < $b ) {
      +    $a = $a + $c;
      +    $b = $b - 1;
      +    $c = $c - 1;
      +}
      +
      +

      Hint: You will not need additional simplifications---once you've got the +specification right, the proof will go through.

      +
        +
      1. Write an arbitrary yet not-too-complex function (or several functions +interacting with each other), and try to specify and verify it (them) in K.
      2. +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/1_basic/index.html b/k-distribution/k-tutorial/1_basic/index.html new file mode 100644 index 00000000000..9b60d6a1bf9 --- /dev/null +++ b/k-distribution/k-tutorial/1_basic/index.html @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + +Section 1: Basic K Concepts | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Section 1: Basic K Concepts

      +

      The goal of this first section of the K tutorial is to teach the basic +principles of K to someone with no prior experience with K as a programming +language. However, this is not written with the intended audience of someone +who is a complete beginner to programming. We are assuming that the reader +has a firm grounding in computer science broadly, as well as that they have +experience writing code in functional programming languages before.

      +

      By the end of this section, the reader ought to be able to write specifications +of simple languages in K, use these specifications to generate a fast +interpreter for their programming language, as well as write basic deductive +program verification proofs over programs in their language. This should give +them the theoretical grounding they need to begin expanding their knowledge +of K in Section 2: Intermediate K Concepts.

      +

      To begin this section, refer to +Lesson 1.1: Setting up a K Environment.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/01_macros/index.html b/k-distribution/k-tutorial/2_intermediate/01_macros/index.html new file mode 100644 index 00000000000..77082d4599f --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/01_macros/index.html @@ -0,0 +1,567 @@ + + + + + + + + + + + + + + +Lesson 2.1: Macros, Aliases, and Anywhere Rules | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.1: Macros, Aliases, and Anywhere Rules

      +

      The purpose of this lesson is to explain the behavior of the macro, +macro-rec, alias, and alias-rec production attributes, as well as the +anywhere rule attribute. These attributes control the meaning of how rules +associated with them are applied.

      +

      Macros

      +

      Thus far in the K tutorial, we have described three different types of rules:

      +
        +
      1. Top-level rewrite rules, which rewrite a configuration composed of cells to +another configuration;
      2. +
      3. Function rules, which define the behavior of a function written over +arbitrary input and output types; and
      4. +
      5. Simplification rules, which describe ways in which the symbolic execution +engine ought to simplify terms containing symbolic values.
      6. +
      +

      This lesson introduces three more types of rules, the first of which are +macros. A production is a macro if it has the macro attribute, and all +rules whose top symbol on the left hand side is a macro are macro rules +which define the behavior of the macro. Like function rules and simplification +rules, macro rules do not participate in cell completion. However, unlike +function rules and simplification rules, macro rules are applied statically +before rewriting begins, and the macro symbol is expected to no longer appear +in the initial configuration for rewriting once all macros in that +configuration are rewritten.

      +

      The rationale behind macros is they allow you to define one piece of syntax +in terms of another piece of syntax without any runtime overhead associated +with the cost of rewriting one to the other. This process is a common one in +programming language design and specification and is referred to as +desugaring; The syntax that is transformed is typically also referred to as +syntactic sugar for another type of syntax. For example, in a language with +if statements and curly braces, you could write the following fragment +(lesson-01.k):

      +
      k
      module LESSON-01 + imports BOOL + + syntax Stmt ::= "if" "(" Exp ")" Stmt [macro] + | "if" "(" Exp ")" Stmt "else" Stmt + | "{" Stmts "}" + syntax Stmts ::= List{Stmt,""} + syntax Exp ::= Bool + + rule if ( E ) S => if ( E ) S else { .Stmts } +endmodule +
      +

      In this example, we see that an if statement without an else clause is +defined in terms of one with an else clause. As a result, we would only +need to give a single rule for how to rewrite if statements, rather than +two separate rules for two types of if statements. This is a common pattern +for dealing with program syntax that contains an optional component to it.

      +

      It is worth noting that by default, macros are not applied recursively. To be +more precise, by default a macro that arises as a result of the expansion of +the same macro is not rewritten further. This is primarily to simplify the +macro expansion process and reduce the risk that improperly defined macros will +lead to non-terminating behavior.

      +

      It is possible, however, to tell K to expand a macro recursively. To do this, +simply replace the macro attribute with the macro-rec attribute. Note that +K does not do any kind of checking to ensure termination here, so it is +important that rules be defined correctly to always terminate, otherwise the +macro expansion phase will run forever. Fortunately, in practice it is very +simple to ensure this property for most of the types of macros that are +typically used in real-world semantics.

      +

      Exercise

      +

      Using a Nat sort containing the constructors 0 and S (i.e., a +Peano-style axiomatization of the +natural numbers where S(N) = N + 1, S(S(N)) = N + 2, etc), write a macro +that will compute the sum of two numbers.

      +

      Aliases

      +

      NOTE: This lesson introduces the concept of "aliases", which are a variant +of macros. While similar, this is different from the concept of "aliases" in +matching logic, which is introduced in Lesson 2.16.

      +

      Macros can be very useful in helping you define a programming language. +However, they can be disruptive while pretty printing a configuration. For +example, you might write a set of macros that transforms the code the user +wrote into equivalent code that is slightly harder to read. This can make it +more difficult to understand the code when it is pretty printed as part of the +output of rewriting.

      +

      K defines a relatively straightforward but novel solution to this problem, +which is known as a K alias. An alias in K is very similar to a macro, +with the exception that the rewrite rule will also be applied backwards +during the pretty-printing process.

      +

      It is very simple to make a production be an alias instead of a macro: simply +use the alias or alias-rec attributes instead of the macro or macro-rec +attributes. For example, if the example involving if statements above was +declared using an alias instead of a macro, the Stmt term if (E) {} else {} +would be pretty-printed as if (E) {}. This is because during pretty-printing, +the term participates in another macro-expansion pass. However, this macro +expansion step will only apply rules with the alias or alias-rec attribute, +and, critically, it will reverse the rule by treating the left-hand side as if +it were the right-hand side, and vice versa.

      +

      This can be very useful to allow you to define one construct in terms of +another while still being able to pretty-print the result as if it were +the original term in question. This can be especially useful for applications +of K where we are taking the output of rewriting and attempting to use it as +a code fragment that we then execute, such as with test generation.

      +

      Exercise

      +

      Modify LESSON-01 above to use an alias instead of a macro and experiment +with how various terms are pretty-printed by invoking krun on them.

      +

      anywhere rules

      +

      The last type of rule introduced in this lesson is the anywhere rule. An +anywhere rule is specified by adding the anywhere attribute to a rule. Such a +rule is similar to a function rule in that it does not participate in cell +completion, and will apply anywhere that the left-hand-side matches in the +configuration, but distinct in that the symbol in question can still be matched +against in the left-hand side of other rules, even during concrete rewriting. +The reasoning behind this is that instead of the symbol in question being a +constructor, it is a constructor modulo the axioms defined with the +anywhere attribute. Essentially, the rules with the anywhere attribute will +apply as soon as they appear in the right-hand side of a rule being applied, +but the symbol in question will still be treated as a symbol that can be +matched on if it is not completely removed by those rules.

      +

      This can be useful in certain cases to allow you to define transformations over +particular pieces of syntax while still generally giving those pieces of syntax +another meaning when the anywhere rule does not apply. For example, the ISO C +standard defines the semantics of *&x as exactly equal to x, with no +reading or writing of memory taking place, and the K semantics of C implements +this functionality using an anywhere rule that is applied at compilation time.

      +

      NOTE: the anywhere attribute is only implemented on the LLVM backend +currently. Attempting to use it in a semantics that is compiled with the +Haskell backend will result in an error being reported by the compiler. This +should be remembered when using this attribute, as it may not be suitable for +a segment of a semantics which is intended to be symbolically executed.

      +

      Exercises

      +
        +
      1. Write a version of the calculator from Lesson 1.14 Exercise 1, which uses +the same syntax for evaluating expressions, but defines its arithmetic logic +using anywhere rules rather than top-level rewrite rules.
      2. +
      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/02_fresh_constants/index.html b/k-distribution/k-tutorial/2_intermediate/02_fresh_constants/index.html new file mode 100644 index 00000000000..3e69716d3ad --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/02_fresh_constants/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.2: Fresh Constants | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.2: Fresh Constants

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/03_klabels/index.html b/k-distribution/k-tutorial/2_intermediate/03_klabels/index.html new file mode 100644 index 00000000000..8e5f9e8f279 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/03_klabels/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.3: KLabels and Abstract Syntax | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.3: KLabels and Abstract Syntax

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/04_overloading/index.html b/k-distribution/k-tutorial/2_intermediate/04_overloading/index.html new file mode 100644 index 00000000000..1c75aa455bc --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/04_overloading/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.4: Overloaded Symbols | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.4: Overloaded Symbols

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/05_matching_logic/index.html b/k-distribution/k-tutorial/2_intermediate/05_matching_logic/index.html new file mode 100644 index 00000000000..36cef934f47 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/05_matching_logic/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.5: Matching Logic Connectives and #Or Patterns | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.5: Matching Logic Connectives and #Or Patterns

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/06_function_context/index.html b/k-distribution/k-tutorial/2_intermediate/06_function_context/index.html new file mode 100644 index 00000000000..804b00f1242 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/06_function_context/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.6: Function Context | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.6: Function Context

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/07_record_productions/index.html b/k-distribution/k-tutorial/2_intermediate/07_record_productions/index.html new file mode 100644 index 00000000000..f76df0144ff --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/07_record_productions/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.7: Record Productions and Named Nonterminals | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.7: Record Productions and Named Nonterminals

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/08_fun_and_let/index.html b/k-distribution/k-tutorial/2_intermediate/08_fun_and_let/index.html new file mode 100644 index 00000000000..76a5e8377d2 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/08_fun_and_let/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.8: #fun and #let | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.8: #fun and #let

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/09_as/index.html b/k-distribution/k-tutorial/2_intermediate/09_as/index.html new file mode 100644 index 00000000000..22bdf77bcd8 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/09_as/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.9: #as Patterns | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.9: #as Patterns

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/10_matching_operator/index.html b/k-distribution/k-tutorial/2_intermediate/10_matching_operator/index.html new file mode 100644 index 00000000000..a52122b6074 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/10_matching_operator/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.10: The Matching Operators, :=K and :/=K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.10: The Matching Operators, :=K and :/=K

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/11_evaluation_order/index.html b/k-distribution/k-tutorial/2_intermediate/11_evaluation_order/index.html new file mode 100644 index 00000000000..f8a0380b720 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/11_evaluation_order/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.11: Uncommon Evaluation Order Concepts | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.11: Uncommon Evaluation Order Concepts

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/12_floats_and_machine_ints/index.html b/k-distribution/k-tutorial/2_intermediate/12_floats_and_machine_ints/index.html new file mode 100644 index 00000000000..38fc97bfa75 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/12_floats_and_machine_ints/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.12: IEEE 754 Floating Point and Fixed Width Integers | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.12: IEEE 754 Floating Point and Fixed Width Integers

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/13_substitution/index.html b/k-distribution/k-tutorial/2_intermediate/13_substitution/index.html new file mode 100644 index 00000000000..3ae969e0e87 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/13_substitution/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.13: Alpha-renaming-aware Substitution | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.13: Alpha-renaming-aware Substitution

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/14_io/index.html b/k-distribution/k-tutorial/2_intermediate/14_io/index.html new file mode 100644 index 00000000000..98564c080de --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/14_io/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.14: File I/O | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.14: File I/O

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/15_string_buffers_and_bytes/index.html b/k-distribution/k-tutorial/2_intermediate/15_string_buffers_and_bytes/index.html new file mode 100644 index 00000000000..32d034e941d --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/15_string_buffers_and_bytes/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.15: String Buffers and Byte Sequences | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.15: String Buffers and Byte Sequences

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/16_kore/index.html b/k-distribution/k-tutorial/2_intermediate/16_kore/index.html new file mode 100644 index 00000000000..9f3bb4aa9a7 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/16_kore/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.16: The Intermediate Language of K, KORE | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.16: The Intermediate Language of K, KORE

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/17_debugging_proofs/index.html b/k-distribution/k-tutorial/2_intermediate/17_debugging_proofs/index.html new file mode 100644 index 00000000000..87d572e93c5 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/17_debugging_proofs/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Lesson 2.17: Debugging Proofs using the Haskell Backend REPL | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 2.17: Debugging Proofs using the Haskell Backend REPL

      +

      Return to Top

      +

      Click here to return to the Table of Contents for Section 2.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/2_intermediate/index.html b/k-distribution/k-tutorial/2_intermediate/index.html new file mode 100644 index 00000000000..5a36a6c0b15 --- /dev/null +++ b/k-distribution/k-tutorial/2_intermediate/index.html @@ -0,0 +1,430 @@ + + + + + + + + + + + + + + +Section 2: Intermediate K Concepts | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Section 2: Intermediate K Concepts

      +

      The goal of this second section is to supplement a beginning developer's +knowledge of K after they have gained a basic understanding of K. Each lesson +in this section can be completed independently in order to learn about a +particular facet of the K language. The lessons are written to provide basic +understanding of less commonly-used features of K to someone who is still +learning K. For more complete references of these features, the reader ought to +consult the User Manual.

      +

      The reader ought to be able to complete lessons in this section as needed in +order to learn about specific features of interest, but if desired, can also +complete the entire section in one go. Someone who has completed this entire +section ought to be able to read and understand most K specifications, as well +as write their own specifications of some complexity, and use them to perform +most common K-related tasks. They can then read about specific lessons in +Section 3: Advanced K Concepts if they want to +learn more.

      +

      Table of Contents

      +
        +
      1. Macros, Aliases, and Anywhere Rules
      2. +
      3. Fresh Constants
      4. +
      5. KLabels and Abstract Syntax
      6. +
      7. Overloaded Symbols
      8. +
      9. Matching Logic Connectives and #Or Patterns
      10. +
      11. Function Context
      12. +
      13. Record Productions and Named Nonterminals
      14. +
      15. #fun and #let
      16. +
      17. #as patterns
      18. +
      19. The Matching Operators, :=K and :/=K
      20. +
      21. Uncommon Evaluation Order Concepts
      22. +
      23. IEEE 754 Floating Point and Fixed Width Integers
      24. +
      25. Alpha-renaming-aware Substitution
      26. +
      27. File I/O
      28. +
      29. String Buffers and Byte Sequences
      30. +
      31. The Intermediate Language of K, KORE
      32. +
      33. Debugging Proofs using the Haskell Backend REPL
      34. +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/3_advanced/1_parsing/1_layout/index.html b/k-distribution/k-tutorial/3_advanced/1_parsing/1_layout/index.html new file mode 100644 index 00000000000..d719822711b --- /dev/null +++ b/k-distribution/k-tutorial/3_advanced/1_parsing/1_layout/index.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + +Lesson 3.1.1: Using #Layout to define the syntax of comments and whitespace | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 3.1.1: Using #Layout to define the syntax of comments and whitespace

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/3_advanced/1_parsing/2_ambiguities/index.html b/k-distribution/k-tutorial/3_advanced/1_parsing/2_ambiguities/index.html new file mode 100644 index 00000000000..aca9187d778 --- /dev/null +++ b/k-distribution/k-tutorial/3_advanced/1_parsing/2_ambiguities/index.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + +Lesson 3.1.2: Using amb for parsing context-sensitive languages | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 3.1.2: Using amb for parsing context-sensitive languages

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/3_advanced/1_parsing/3_locations/index.html b/k-distribution/k-tutorial/3_advanced/1_parsing/3_locations/index.html new file mode 100644 index 00000000000..4beb3ba5853 --- /dev/null +++ b/k-distribution/k-tutorial/3_advanced/1_parsing/3_locations/index.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + +Lesson 3.1.3: Using #location to annotate terms with file, line, and column information | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 3.1.3: Using #location to annotate terms with file, line, and column information

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/3_advanced/2_libraries/1_json/index.html b/k-distribution/k-tutorial/3_advanced/2_libraries/1_json/index.html new file mode 100644 index 00000000000..c292da0c09d --- /dev/null +++ b/k-distribution/k-tutorial/3_advanced/2_libraries/1_json/index.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + +Lesson 3.2.1: The JSON Module | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 3.2.1: The JSON Module

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/3_advanced/2_libraries/2_rat/index.html b/k-distribution/k-tutorial/3_advanced/2_libraries/2_rat/index.html new file mode 100644 index 00000000000..79a4749ac47 --- /dev/null +++ b/k-distribution/k-tutorial/3_advanced/2_libraries/2_rat/index.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + +Lesson 3.2.2: The RAT Module | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 3.2.2: The RAT Module

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/3_advanced/2_libraries/3_ffi/index.html b/k-distribution/k-tutorial/3_advanced/2_libraries/3_ffi/index.html new file mode 100644 index 00000000000..0d65f55f5ed --- /dev/null +++ b/k-distribution/k-tutorial/3_advanced/2_libraries/3_ffi/index.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + +Lesson 3.2.3: The FFI Module | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 3.2.3: The FFI Module

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/3_advanced/3_extending_k/1_custom_hooks/index.html b/k-distribution/k-tutorial/3_advanced/3_extending_k/1_custom_hooks/index.html new file mode 100644 index 00000000000..bf0cc885d23 --- /dev/null +++ b/k-distribution/k-tutorial/3_advanced/3_extending_k/1_custom_hooks/index.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + +Lesson 3.3.1: Extending K by adding new builtin functions | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lesson 3.3.1: Extending K by adding new builtin functions

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/3_advanced/3_extending_k/2_scripting_k/index.html b/k-distribution/k-tutorial/3_advanced/3_extending_k/2_scripting_k/index.html new file mode 100644 index 00000000000..ed4c9e3f3c5 --- /dev/null +++ b/k-distribution/k-tutorial/3_advanced/3_extending_k/2_scripting_k/index.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + +Lessonm 3.3.2: Scripting K to provide language-specific tooling | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Lessonm 3.3.2: Scripting K to provide language-specific tooling

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/3_advanced/index.html b/k-distribution/k-tutorial/3_advanced/index.html new file mode 100644 index 00000000000..32680d065cc --- /dev/null +++ b/k-distribution/k-tutorial/3_advanced/index.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + +Section 3: Advanced K Concepts | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Section 3: Advanced K Concepts

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/k-tutorial/index.html b/k-distribution/k-tutorial/index.html new file mode 100644 index 00000000000..f5042b5c225 --- /dev/null +++ b/k-distribution/k-tutorial/index.html @@ -0,0 +1,398 @@ + + + + + + + + + + + + + + +K Tutorial | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      K Tutorial

      +

      The purpose of this series of lessons is to teach developers how to program in +K. While the primary use of K is in the specification of operational semantics +of programming languages, this tutorial is agnostic on how the knowledge of K +is used. For a more detailed tutorial explaining the basic principles of +programming language design, refer to the +K PL Tutorial. Note that that tutorial is somewhat +out of date presently.

      +

      This K tutorial is a work in progress. Many lessons are currently simply +placeholders for future content.

      +

      To start the K tutorial, begin with +Section 1: Basic Programming in K.

      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/index.html new file mode 100644 index 00000000000..68dc84ca002 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/index.html @@ -0,0 +1,404 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Part 1: Defining LAMBDA

      +

      Here you will learn how to define a very simple language in K and the basics +of how to use the K tool. The language is a variant of call-by-value lambda +calculus and its definition is based on substitution. Specifically, you will +learn the following:

      +
        +
      • How to define a module.
      • +
      • How to define a language syntax.
      • +
      • How to use the defined syntax to parse programs.
      • +
      • How to import predefined modules.
      • +
      • How to define evaluation strategies using strictness attributes.
      • +
      • How to define semantic rules.
      • +
      • How the predefined generic substitution works.
      • +
      • How to generate PDF and HTML documentation from ASCII definitions.
      • +
      • How to include builtins (integers and Booleans) into your language.
      • +
      • How to define derived language constructs.
      • +
      +

      This folder contains several lessons, each adding new features to LAMBDA.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_1/NOTES/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_1/NOTES/index.html new file mode 100644 index 00000000000..2eec042b8d7 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_1/NOTES/index.html @@ -0,0 +1,379 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      We now support the following line to the syntax module:

      +
      syntax priority lambda_._ > __  // exact syntax subject to change
      +
      +

      This will allow for fewer parentheses in programs.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_1/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_1/index.html new file mode 100644 index 00000000000..f59c2c206f4 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_1/index.html @@ -0,0 +1,471 @@ + + + + + + + + + + + + + + +Syntax Modules and Basic K Commands | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Syntax Modules and Basic K Commands

      +

      Here we define our first K module, which contains the initial syntax of the +LAMBDA language, and learn how to use the basic K commands.

      +

      Let us create an empty working folder, and open a terminal window +(to the left) and an editor window (to the right). We will edit our K +definition in the right window in a file called lambda.k, and will call +the K tool commands in the left window.

      +

      Let us start by defining a K module, containing the syntax of LAMBDA.

      +

      K modules are introduced with the keywords module ... endmodule.

      +

      The keyword syntax adds new productions to the syntax grammar, using a +BNF-like notation.

      +

      Terminals are enclosed in double-quotes, like strings.

      +

      You can define multiple productions for the same non-terminal in the same +syntax declaration using the | separator.

      +

      Productions can have attributes, which are enclosed in square brackets.

      +

      The attribute left tells the parser that we want the lambda application to be +left associative. For example, a b c d will then parse as (((a b) c) d).

      +

      The attribute bracket tells the parser to not generate a node for the +parenthesis production in the abstract syntax trees associated to programs. +In other words, we want to allow parentheses to be used for grouping, but we +do not want to bother to give them their obvious (ignore) semantics.

      +

      In our variant of lambda calculus defined here, identifiers and lambda +abstractions are meant to be irreducible, that is, are meant to be values. +However, so far Val is just another non-terminal, just like Exp, +without any semantic meaning. It will get a semantic meaning later.

      +

      After we are done typing our definition in the file lambda.k, we can kompile +it with the command:

      +
      kompile lambda.k
      +
      +

      If we get no errors then a parser has been generated. This parser will be +called from now on by default by the krun tool. To see whether and how the +parser works, we are going to write some LAMBDA programs and store them in +files with the extension .lambda.

      +

      Let us create a file identity.lambda, which contains the identity lambda +abstraction:

      +
      lambda x . x
      +
      +

      Now let us call krun on identity.lambda:

      +
      krun identity.lambda
      +
      +

      Make sure you call the krun command from the folder containing your language +definition (otherwise type krun --help to learn how to pass a language +definition as a parameter to krun). The krun command produces the output:

      +
      <k>
      +  lambda x . x
      +</k>
      +
      +

      If you see such an output it means that your program has been parsed (and then +pretty printed) correctly. If you want to see the internal abstract syntax +tree (AST) representation of the parsed program, which we call the K AST, then +type kast in the command instead of krun:

      +
      kast identity.lambda
      +
      +

      You should normally never need to see this internal representation in your +K definitions, so do not get scared (yes, it is ugly for humans, but it is +very convenient for tools).

      +

      Note that krun placed the program in a <k> ... </k> cell. In K, computations +happen only in cells. If you do not define a configuration in your definition, +like we did here, then a configuration will be created automatically for you +which contains only one cell, the default k cell, which holds the program.

      +

      Next, let us create a file free-variable-capture.lambda, which contains an +expression which, in order to execute correctly in a substitution-based +semantics of LAMBDA, the substitution operation needs to avoid +variable-capture:

      +
      a (((lambda x.lambda y.x) y) z)
      +
      +

      Next, file closed-variable-capture.lambda shows an expression which also +requires a capture-free substitution, but this expression is closed (that is, +it has no free variables) and all its bound variables are distinct (I believe +this is the smallest such expression):

      +
      (lambda z.(z z)) (lambda x.lambda y.(x y))
      +
      +

      Finally, the file omega.lambda contains the classic omega combinator +(or closed expression), which is the smallest expression which loops forever +(not now, but after we define the semantics of LAMBDA):

      +
      (lambda x.(x x)) (lambda x.(x x))
      +
      +

      Feel free to define and parse several other LAMBDA programs to get a feel for +how the parser works. Parse also some incorrect programs, to see how the +parser generates error messages.

      +

      In the next lesson we will see how to define semantic rules that iteratively +rewrite expressions over the defined syntax until they evaluate to a result. +This way, we obtain our first programming language defined using K.

      +

      Go to Lesson 2, LAMBDA: Module Importing, Rules, Variables

      +

      MOVIE (out of date) [4'07"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_2.5/NOTES/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_2.5/NOTES/index.html new file mode 100644 index 00000000000..7c56461eb04 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_2.5/NOTES/index.html @@ -0,0 +1,379 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      This folder has been added after the original tutorial was made +and after the videos were recorded. Eventually we will renumber +the lessons and redo the videos. A README.md file is also needed +here.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_2/NOTES/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_2/NOTES/index.html new file mode 100644 index 00000000000..7bf341bd799 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_2/NOTES/index.html @@ -0,0 +1,385 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Substitution has been reimplemented in the meanwhile, where the fresh +variables are resolved locally. So there is no global counter for +fresh variables anymore as shown in the video, and fewer variable +renamings take place.

      +

      When calling krun on the programs in lesson_1, a different path is +shown than in the README.md.

      +

      Marking the beta-reduction rule with [anywhere] will give us the +conventional lambda-calculus. A new lesson has been added, 2.5, +showing that. The README.md file should be changed at the end to +point to lesson 2.5.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_2/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_2/index.html new file mode 100644 index 00000000000..6feefd30f91 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_2/index.html @@ -0,0 +1,453 @@ + + + + + + + + + + + + + + +Module Importing, Rules, Variables | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Module Importing, Rules, Variables

      +

      We here learn how to include a predefined module (SUBSTITUTION), how to +use it to define a K rule (the characteristic rule of lambda calculus), +and how to make proper use of variables in rules.

      +

      Let us continue our lambda.k definition started in the previous lesson.

      +

      The requires keyword takes a .k file containing language features that +are needed for the current definition, which can be found in the +k-distribution/include/kframework/builtin folder. Thus, the command

      +
      require "substitution.k"
      +
      +

      says that the subsequent definition of LAMBDA needs the generic substitution, +which is predefined in file substitution.k under the folder +k-distribution/include/kframework/builtin. Note that substitution can be defined itself in K, +although it uses advanced features that we have not discussed yet in this +tutorial, so it may not be easy to understand now.

      +

      Using the imports keyword, we can now modify LAMBDA to import the module +SUBSTITUTION, which is defined in the required substitution.k file.

      +

      Now we have all the substitution machinery available for our definition. +However, since our substitution is generic, it cannot know which language +constructs bind variables, and what counts as a variable; however, this +information is critical in order to correctly solve the variable capture +problem. Thus, you have to tell the substitution that your lambda construct +is meant to be a binder, and that your Id terms should be treated as variables +for substitution. The former is done using the attribute binder. +By default, binder binds all the variables occurring anywhere in the first +argument of the corresponding syntactic construct within its other arguments; +you can configure which arguments are bound where, but that will be discussed +in subsequent lectures. To tell K which terms are meant to act as variables +for binding and substitution, we have to explicitly subsort the desired syntactic +categories to the builtin KVariable sort.

      +

      Now we are ready to define our first K rule. Rules are introduced with the +keyword rule and make use of the rewrite symbol, =>. In our case, +the rule defines the so-called lambda calculus beta-reduction, which +makes use of substitution in its right-hand side, as shown in lambda.k.

      +

      By convention, variables that appear in rules start with a capital letter +(the current implementation of the K tool may even enforce that).

      +

      Variables may be explicitly tagged with their syntactic category (also called +sort). If tagged, the matching term will be checked at run-time for +membership to the claimed sort. If not tagged, then no check will be made. +The former is safer, but involves the generation of a side condition to the +rule, so the resulting definition may execute slightly slower overall.

      +

      In our rule in lambda.k we tagged all variables with their sorts, so we chose +the safest path. Only the V variable really needs to be tagged there, +because we can prove (using other means, not the K tool, as the K tool is not +yet concerned with proving) that the first two variables will always have the +claimed sorts whenever we execute any expression that parses within our +original grammar.

      +

      Let us compile the definition and then run some programs. For example,

      +
      krun closed-variable-capture.lambda
      +
      +

      yields the output

      +
      <k>
      +  lambda y . ((lambda x . (lambda y . (x  y))) y)
      +</k> 
      +
      +

      Notice that only certain programs reduce (some even yield non-termination, +such as omega.lambda), while others do not. For example, +free-variable-capture.lambda does not reduce its second argument expression +to y, as we would expect. This is because the K rewrite rules between syntactic +terms do not apply anywhere they match. They only apply where they have been +given permission to apply by means of appropriate evaluation strategies of language +constructs, which is done using strictness attributes, evaluation contexts, +heating/cooling rules, etc., as discussed in the next lessons.

      +

      The next lesson will show how to add LAMBDA the desired evaluation strategies +using strictness attributes.

      +

      Go to Lesson 3, LAMBDA: Evaluation Strategies using Strictness

      +

      MOVIE (out of date) [4'03"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_3/NOTES/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_3/NOTES/index.html new file mode 100644 index 00000000000..1238d2cdc85 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_3/NOTES/index.html @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      When we say "previous lesson" we refer to lesson 2. This will need to change +when we incorporate lesson 2.5 properly.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_3/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_3/index.html new file mode 100644 index 00000000000..1a1c441f4f0 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_3/index.html @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + +Evaluation Strategies using Strictness | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Evaluation Strategies using Strictness

      +

      Here we learn how to use the K strict attribute to define desired evaluation +strategies. We will also learn how to tell K which terms are already +evaluated, so it does not attempt to evaluate them anymore and treats them +internally as results of computations.

      +

      Recall from the previous lecture that the LAMBDA program +free-variable-capture.lambda was stuck, because K was not given permission +to evaluate the arguments of the lambda application construct.

      +

      You can use the attribute strict to tell K that the corresponding construct +has a strict evaluation strategy, that is, that its arguments need to be +evaluated before the semantics of the construct applies. The order of +argument evaluation is purposely unspecified when using strict, and indeed +the K tool allows us to detect all possible non-deterministic behaviors that +result from such intended underspecification of evaluation strategies. We will +learn how to do that when we define the IMP language later in this tutorial; +we will also learn how to enforce a particular order of evaluation.

      +

      In order for the above strictness declaration to work effectively and +efficiently, we need to tell the K tool which expressions are meant to be +results of computations, so that it will not attempt to evaluate them anymore. +One way to do it is to make Val a syntactic subcategory of the builtin +KResult syntactic category. Since we use the same K parser to also parse +the semantics, we use the same syntax keyword to define additional syntax +needed exclusively for the semantics (like KResults). See lambda.k.

      +

      Compile again and then run some programs. They should all work as expected. +In particular, free-variable-capture.lambda now evaluates to a y.

      +

      We now got a complete and working semantic definition of call-by-value +lambda-calculus. While theoretically correct, our definition is not +easy to use and disseminate. In the next lessons we will learn how to +generate formatted documentation for LAMBDA and how to extend LAMBDA +in order to write human readable and interesting programs.

      +

      Go to Lesson 4, LAMBDA: Generating Documentation; Latex Attributes.

      +

      MOVIE (out of date) [2'20"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_4/NOTES/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_4/NOTES/index.html new file mode 100644 index 00000000000..3d2e15d9aa1 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_4/NOTES/index.html @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      README.md refers to Lesson 9. This will need to be updated.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_4/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_4/index.html new file mode 100644 index 00000000000..632e29bbc47 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_4/index.html @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + +Generating Documentation; Latex Attributes | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Generating Documentation; Latex Attributes

      +

      In this lesson we learn how to generate formatted documentation from K +language definitions. We also learn how to use Latex attributes to control +the formatting of language constructs, particularly of ones which have a +mathematical flavor and we want to display accordingly.

      +

      To enhance readability, we may want to replace the keyword lambda by the +mathematical lambda symbol in the generated documentation. We can control +the way we display language constructs in the generated documentation +by associating them Latex attributes.

      +

      This is actually quite easy. All we have to do is to associate a latex +attribute to the production defining the construct in question, following +the Latex syntax for defining new commands (or macros).

      +

      In our case, we associate the attribute latex(\lambda{#1}.{#2}) to the +production declaring the lambda abstraction (recall that in Latex, #n refers +to the n-th argument of the defined new command).

      +

      We will later see, in Lesson 9, that we can add arbitrarily complex Latex +comments and headers to our language definitions, which give us maximum +flexibility in formatting our language definitions.

      +

      Now we have a simple programming language, with a nice documentation. However, +it is not easy to write interesting programs in this language. Almost all +programming languages build upon existing data-types and libraries. The K +tool provides a few of these (and you can add more).

      +

      In the next lesson we show how we can add builtin integers and Booleans to +LAMBDA, so we can start to evaluate meaningful expressions.

      +

      Go to Lesson 5, LAMBDA: Adding Builtins; Side Conditions.

      +

      MOVIE (out of date) [3'13"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_5/NOTES/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_5/NOTES/index.html new file mode 100644 index 00000000000..06345c30c59 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_5/NOTES/index.html @@ -0,0 +1,381 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      The builtins have changed, they are now generic for all backends.

      +

      Talk about sort inference for variables, for example from I1 +Int I2 +we infer the sort of I1 and I2 is Int.

      +

      Check the entire tutorial for instances where we give the sort of a +variable but we don't have to. Many of those are artifacts since we were +not able to infer sorts that well.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_5/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_5/index.html new file mode 100644 index 00000000000..6cd1d7dee4f --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_5/index.html @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + +Adding Builtins; Side Conditions | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Adding Builtins; Side Conditions

      +

      We have already added the builtin identifiers (sort Id) to LAMBDA expressions, +but those had no operations on them. In this lesson we add integers and +Booleans to LAMBDA, and extend the builtin operations on them into +corresponding operations on LAMBDA expressions. We will also learn how to add +side conditions to rules, to limit the number of instances where they can +apply.

      +

      The K tool provides several builtins, which are automatically included in all +definitions. These can be used in the languages that we define, typically by +including them in the desired syntactic categories. You can also define your +own builtins in case the provided ones are not suitable for your language +(e.g., the provided builtin integers and operations on them are arbitrary +precision).

      +

      For example, to add integers and Booleans as values to our LAMBDA, we have to +add the productions

      +
      syntax Val ::= Int | Bool
      +
      +

      Int and Bool are the nonterminals that correspond to these builtins.

      +

      To make use of these builtins, we have to add some arithmetic operation +constructs to our language. We prefer to use the conventional infix notation +for these, and the usual precedences (i.e., multiplication and division bind +tighter than addition, which binds tighter than relational operators). +Inspired from SDF, we use > instead of +| to state that all the previous constructs bind tighter than all the +subsequent ones. See lambda.k.

      +

      The only thing left is to link the LAMBDA arithmetic operations to the +corresponding builtin operations, when their arguments are evaluated. +This can be easily done using trivial rewrite rules, as shown in lambda.k. +In general, the K tool attempts to uniformly add the corresponding builtin +name as a suffix to all the operations over builtins. For example, the +addition over integers is an infix operation named +Int.

      +

      Compile the new lambda.k definition and evaluate some simple arithmetic +expressions. For example, if arithmetic.lambda is (1+2*3)/4 <= 1, then

      +
      krun arithmetic.lambda
      +
      +

      yields, as expected, true. Note that the parser took the desired operation +precedence into account.

      +

      Let us now try to evaluate an expression which performs a wrong computation, +namely a division by zero. Consider the expression arithmetic-div-zero.lambda +which is 1/(2/3). Since division is strict and 2/3 evaluates to 0, this +expression reduces to 1/0, which further reduces to 1 /Int 0 by the rule for +division, which is now stuck (with the current back-end to the K tool).

      +

      In fact, depending upon the back-end that we use to execute K definitions and +in particular to evaluate expressions over builtins, 1 /Int 0 can evaluate to +anything. It just happens that the current back-end keeps it as an +irreducible term. Other K back-ends may reduce it to an explicit error +element, or issue a segmentation fault followed by a core dump, or throw an +exception, etc.

      +

      To avoid requesting the back-end to perform an illegal operation, we may use a +side condition in the rule of division, to make sure it only applies when the +denominator is non-zero.

      +

      Like in other operational formalisms, the role of the K side +conditions is to filter the number of instances of the rule. The notion +of a side condition comes from logics, where a sharp distinction is made +between a side condition (cheap) and a premise (expensive). Premises are +usually resolved using further (expensive) logical derivations, while side +conditions are simple (cheap) conditions over the rule meta-variables within +the underlying mathematical domains (which in K can be extended by the user, +as we will see in future lessons). Regarded as a logic, K derives rewrite +rules from other rewrite rules; therefore, the K side conditions cannot +contain other rewrites in them (using =>). This contrasts other rewrite +engines, for example Maude, which +allow conditional rules with rewrites in conditions. +The rationale behind this deliberate restriction in K is twofold:

      +
        +
      • On the one hand, general conditional rules require a complex, and thus slower +rewrite engine, which starts recursive (sometimes exhaustive) rewrite sessions +to resolve the rewrites in conditions. In contrast, the side conditions in K +can be evaluated efficiently by back-ends, for example by evaluating builtin +expressions and/or by calling builtin functions.
      • +
      • On the other hand, the semantic definitional philosophy of K is that rule +premises are unnecessary, so there is no need to provide support for them.
      • +
      +

      Having builtin arithmetic is useful, but writing programs with just lambda +and arithmetic constructs is still a pain. In the next two lessons we will +add conditional (if_then_else) and binding (let and letrec) constructs, +which will allow us to write nicer programs.

      +

      Go to Lesson 6, LAMBDA: Selective Strictness; Anonymous Variables.

      +

      MOVIE (out of date) [4'52"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_6/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_6/index.html new file mode 100644 index 00000000000..dce9ab0bb35 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_6/index.html @@ -0,0 +1,421 @@ + + + + + + + + + + + + + + +Selective Strictness; Anonymous Variables | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Selective Strictness; Anonymous Variables

      +

      We here show how to define selective strictness of language constructs, +that is, how to state that certain language constructs are strict only +in some arguments. We also show how to use anonymous variables.

      +

      We next define a conditional if construct, which takes three arguments, +evaluates only the first one, and then reduces to either the second or the +third, depending on whether the first one evaluated to true or to false.

      +

      K allows to define selective strictness using the same strict attribute, +but passing it a list of numbers. The numbers correspond to the arguments +in which we want the defined construct to be strict. In our case,

      +
      syntax Exp ::= "if" Exp "then" Exp "else" Exp   [strict(1)]
      +
      +

      states that the conditional construct is strict in the first argument.

      +

      We can now assume that its first argument will eventually reduce to a value, so +we only write the following two semantic rules:

      +
      rule if true  then E else _ => E
      +rule if false then _ else E => E
      +
      +

      Thus, we assume that the first argument evaluates to either true or false.

      +

      Note the use of the anonymous variable _. We use such variables purely for +structural reasons, to state that something is there but we don't care what. +An anonymous variable is therefore completely equivalent to a normal variable +which is unsorted and different from all the other variables in the rule. If +you use _ multiple times in a rule, they will all be considered distinct.

      +

      Compile lambda.k and write and execute some interesting expressions making +use of the conditional construct. For example, the expression

      +
      if 2<=1 then 3/0 else 10
      +
      +

      evaluates to 10 and will never evaluate 3/0, thus avoiding an unwanted +division-by-zero.

      +

      In the next lesson we will introduce two new language constructs, called +let and letrec and conventionally found in functional programming +languages, which will allow us to already write interesting LAMBDA programs.

      +

      Go to Lesson 7, LAMBDA: Derived Constructs; Extending Predefined Syntax.

      +

      MOVIE (out of date) [2'14"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_7/NOTES/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_7/NOTES/index.html new file mode 100644 index 00000000000..66206dd2dfc --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_7/NOTES/index.html @@ -0,0 +1,379 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      In more recent definitions, we prefer to make some [macro] rules. +Macros apply statically, before the program is executed, thus +increasing the execution performance. The let and letrec constructs +here could be made into [macro].

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_7/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_7/index.html new file mode 100644 index 00000000000..b03207cde21 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_7/index.html @@ -0,0 +1,459 @@ + + + + + + + + + + + + + + +Derived Constructs, Extending Predefined Syntax | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Derived Constructs, Extending Predefined Syntax

      +

      In this lesson we will learn how to define derived language constructs, that +is, ones whose semantics is defined completely in terms of other language +constructs. We will also learn how to add new constructs to predefined +syntactic categories.

      +

      When defining a language, we often want certain language constructs to be +defined in terms of other constructs. For example, a let-binding construct +of the form

      +
      let x = e in e'
      +
      +

      is nothing but syntactic sugar for

      +
      (lambda x . e') e
      +
      +

      This can be easily achieved with a rule, as shown in lambda.k.

      +

      Compile lambda.k and write some programs using let binders.

      +

      For example, consider a lets.lambda program which takes arithmetic.lambda +and replaces each integer by a let-bound variable. It should evaluate to +true, just like the original arithmetic.lambda.

      +

      Let us now consider a more interesting program, namely one that calculates the +factorial of 10:

      +
      let f = lambda x . (
      +        (lambda t . lambda x . (t t x))
      +        (lambda f . lambda x . (if x <= 1 then 1 else (x * (f f (x + -1)))))
      +        x
      +      )
      +in (f 10)
      +
      +

      This program follows a common technique to define fixed points in untyped +lambda calculus, based on passing a function to itself.

      +

      We may not like to define fixed-points following the approach above, because +it requires global changes in the body of the function meant to be recursive, +basically to pass it to itself (f f in our case above). The approach below +isolates the fixed-point aspect of the function in a so-called fixed-point +combinator, which we call fix below, and then apply it to the function +defining the body of the factorial, without any changes to it:

      +
      let fix = lambda f . (
      +          (lambda x . (f (lambda y . (x x y))))
      +          (lambda x . (f (lambda y . (x x y))))
      +        )
      +in let f = fix (lambda f . lambda x .
      +                (if x <= 1 then 1 else (x * (f (x + -1)))))
      +   in (f 10)
      +
      +

      Although the above techniques are interesting and powerful (indeed, untyped +lambda calculus is in fact Turing complete), programmers will probably not +like to write programs this way.

      +

      We can easily define a more complex derived construct, called letrec and +conventionally encountered in functional programming languages, whose semantics +captures the fixed-point idea above. In order to keep its definition simple +and intuitive, we define a simplified variant of letrec, namely one which only +allows to define one recursive one-argument function. See lambda.k.

      +

      There are two interesting observations here.

      +

      First, note that we have already in-lined the definition of the fix +combinator in the definition of the factorial, to save one application of the +beta reduction rule (and the involved substitution steps). We could have +in-lined the definition of the remaining let, too, but we believe that the +current definition is easier to read.

      +

      Second, note that we extended the predefined Id syntactic category with two +new constants, $x and $y. The predefined identifiers cannot start with +$, so programs that will be executed with this semantics cannot possibly +contain the identifiers xandx andy. In other words, by adding them to Id they +become indirectly reserved for the semantics. This is indeed desirable, +because any possible uses of xinthebodyofthefunctiondefinedusingletrecwouldbecapturedbythelambdax in the body of the function defined +using `letrec` would be captured by the `lambdaxdeclaration in the definition ofletrec`.

      +

      Using letrec, we can now write the factorial program as elegantly as it can +be written in a functional language:

      +
      letrec f x = if x <= 1 then 1 else (x * (f (x + -1)))
      +in (f 10)
      +
      +

      In the next lesson we will discuss an alternative definition of letrec, based +on another binder, mu, specifically designed to define fixed points.

      +

      Go to Lesson 8, LAMBDA: Multiple Binding Constructs.

      +

      MOVIE (out of date) [5'10"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/exercises/SK-combinators/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/exercises/SK-combinators/index.html new file mode 100644 index 00000000000..a5043ae62bd --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/exercises/SK-combinators/index.html @@ -0,0 +1,415 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Define LAMBDA using the S/K combinators instead of substitution. +You new definition will not require the substitution.k module anymore, +and will not use environments (discussed in future lectures), either.

      +

      Recall that the S and K combinators are defined as follows:

      +
      K E1 E2 = E1
      +S E1 E2 E3 = E1 E3 (E2 E3)
      +
      +

      where the application is that of LAMBDA (left associative binary operation), +and that the lambda construct can be desugared to combinators using the +following simple rules:

      +
      lambda X . X = S K K
      +lambda X . Y = K Y    when Y is a name different from X
      +lambda X . (E1 E2) = S (lambda X . E1) (lambda X . E2)
      +lambda X . B = K B    when B is any constant, including S or K
      +
      +

      To distinguish the S and K combinators from K variables and make them +more visible, we prefer to write them as SS and KK instead of S and K.

      +

      If defined correctly and completely, all the tests should pass when you call +ktest on the provided config.xml file. The tests include all the programs +previously executed using LAMBDA (lesson_8), plus the additional program of +the mu-derived exercise, plus a few more simple programs given with this +exercise to help you better test your definition and nail down the notation.

      +

      The syntax of the new LAMBDA should be the same as before, although +mu needs to be desugared as in the mu-desugared exercise (using a macro). +The tricky part is how to deal with the builtin operations. For example, +lambda x . if x then y else z cannot be transformed into combinators as is, +but it can if we assume a builtin conditional function constant, say cond, +and desugar if_then_else_ to it. Then this expression becomes +lambda x . (((cond x) y) z), which we know how to transform. The drawback +of this cond constant approach is that it may induce non-termination +in recursive programs, but that appears to not be a problem in our examples.

      +

      You will have to do the same for all builtin functions, and you will have +to make sure that you define your values correctly! In our previous +definition we were able to say that lambda x . e was a value, but now that +is not possible anymore, because the lambda construct will be eliminated. +Instead, you will have to explicitly say it using the isVal membership +predicate that all the expressions that involve builtin functions and +yield functions are values; for example, isVal(cond V:Val) => true and +isVal(cond V1:Val V2:Val) => true need to be added, but obviously not +isVal(cond V1:Val V2:Val V3:Val) => true.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/exercises/mu-derived/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/exercises/mu-derived/index.html new file mode 100644 index 00000000000..9320f48df0b --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/exercises/mu-derived/index.html @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      The current K LAMBDA semantics of mu (in Lesson 8) is based on +substitution, and then letrec is defined as a derived operation using +mu. Give mu a different semantics, as a derived construct by +translation into other LAMBDA constructs, like we defined letrec in +Lesson 7.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/index.html new file mode 100644 index 00000000000..03e306960b6 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/index.html @@ -0,0 +1,432 @@ + + + + + + + + + + + + + + +Multiple Binding Constructs | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Multiple Binding Constructs

      +

      Here we learn how multiple language constructs that bind variables can +coexist. We will also learn about or recall another famous binder besides +lambda, namely mu, which can be used to elegantly define all kinds of +interesting fixed-point constructs.

      +

      The mu binder has the same syntax as lambda, except that it replaces +lambda with mu.

      +

      Since mu is a binder, in order for substitution to know how to deal with +variable capture in the presence of mu, we have to tell it that mu is a +binding construct, same like lambda. We take advantage of being there and +also add mu its desired latex attribute.

      +

      The intuition for

      +
      mu x . e
      +
      +

      is that it reduces to e, but each free occurrence of x in e behaves +like a pointer that points back to mu x . e.

      +

      With that in mind, let us postpone the definition of mu and instead redefine +letrec F X = E in E' as a derived construct, assuming mu available. The +idea is to simply regard F as a fixed-point of the function

      +
      lambda X . E
      +
      +

      that is, to first calculate

      +
      mu F . lambda X . E
      +
      +

      and then to evaluate E' where F is bound to this fixed-point:

      +
      let F = mu F . lambda X . E in E'
      +
      +

      This new definition of letrec may still look a bit tricky, particularly +because F is bound twice, but it is much simpler and cleaner than our +previous definition. Moreover, now it is done in a type-safe manner +(this aspect goes beyond our objective in this tutorial).

      +

      Let us now define the semantic rule of mu.

      +

      The semantics of mu is actually disarmingly simple. We just have to +substitute mu X . E for each free occurrence of X in E:

      +
      mu X . E => E[(mu X . E) / X]
      +
      +

      Compile lambda.k and execute some recursive programs. They should be now +several times faster. Write a few more recursive programs, for example ones +for calculating the Ackermann function, for calculating the number of moves +needed to solve the Hanoi tower problem, etc.

      +

      We have defined our first programming language in K, which allows us to +write interesting functional programs. In the next lesson we will learn how +to fully document our language definition, in order to disseminate it, to ship +it to colleagues or friends, to publish it, to teach it, and so on.

      +

      Go to Lesson 9, LAMBDA: A Complete and Commented Definition.

      +

      MOVIE (out of date) [2'40"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_9/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_9/index.html new file mode 100644 index 00000000000..a031f9017af --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_9/index.html @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + +A Complete and Documented K Definition | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      A Complete and Documented K Definition

      +

      In this lesson you will learn how to add formal comments to your K definition, +in order to nicely document it. The generated document can be then used for +various purposes: to ease understanding the K definition, to publish it, +to send it to others, etc.

      +

      The K tool allows a literate programming style, where the executable +language definition can be documented by means of annotations. One such +annotation is the latex(_) annotation, where you can specify how to format +the given production when producing Latex output via the --output latex +option to krun, kast, and kprove.

      +

      There are three types of comments, which we discuss next.

      +

      Ordinary comments

      +

      These use // or /* ... */, like in various programming languages. These +comments are completely ignored.

      +

      Document annotations

      +

      Use the @ symbol right after // or /* in order for the comment to be +considered an annotation and thus be processed by the K tool when it +generates documentation.

      +

      As an example, we can go ahead and add such an annotation at the beginning +of the LAMBDA module, explaining how we define the syntax of this language.

      +

      Header annotations

      +

      Use the ! symbol right after // or /* if you want the comment to be +considered a header annotation, that is, one which goes before +\begin{document} in the generated Latex. You typically need header +annotations to include macros, or to define a title, etc.

      +

      As an example, let us set a Latex length and then add a title and an +author to this K definition.

      +

      Compile the documentation and take a look at the results. Notice the title.

      +

      Feel free to now add lots of annotations to lambda.k.

      +

      Then compile and check the result. Depending on your PDF viewer, you +may also see a nice click-able table of contents, with all the sections +of your document. This could be quite convenient when you define large +languages, because it helps you jump to any part of the semantics.

      +

      Tutorial 1 is now complete. The next tutorial will take us through the +definition of a simple imperative language and will expose us to more +feature of the K framework and the K tool.

      +

      MOVIE (out of date) [6'07"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/1_lambda/lesson_9/lambda/index.html b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_9/lambda/index.html new file mode 100644 index 00000000000..8564a6c6743 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/1_lambda/lesson_9/lambda/index.html @@ -0,0 +1,510 @@ + + + + + + + + + + + + + + +Tutorial 1 --- LAMBDA | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      K code can be nested inside Markdown using annotated code blocks. +Use the tag k to tell the compiler which blocks to select.

      +

      Inside .k files, C/Java-like comments are available.

      +
      k
      // Single line comment +/* Multiline +comments */ +
      +

      Tutorial 1 --- LAMBDA

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Abstract

      +

      This file defines a simple functional language in K, called LAMBDA, +using a substitution style. The explicit objective here is to teach some +K concepts and how they work in the K tool, and not to teach +λ-calculus or to argue for one definitional style against another +(e.g., some may prefer environment/closure-based definitions of such +languages).

      +

      Note that the subsequent definition is so simple, that it hardly shows any +of the strengths of K. Perhaps the most interesting K aspect it shows is +that substitution can be defined fully generically, and then used to give +semantics to various constructs in various languages.

      +

      Note: +K follows the +literate programming +approach. The various semantic features defined in a K +module can be reordered at will and can be commented using normal +comments like in C/C++/Java. +While comments are useful in general, they can annoy the expert user +of K. To turn them off, you can do one of the following (unless you +want to remove them manually):
      +(1) Use an editor which can +hide or highlight Markdown and conventional C-like comments; or
      +(2) Run kompile --debug <def>. Inside ./.kompiled-xxx/.md2.k/ you will find +all the K code extracted from the markdown files as used for compilation.

      +

      Substitution

      +

      We need the predefined substitution module, so we require it with the command +below. Then we should make sure we import its module called SUBSTITUTION +in our LAMBDA module below.

      +
      k
      require "substitution.md" + +module LAMBDA-SYNTAX + imports DOMAINS-SYNTAX + imports KVAR-SYNTAX +
      +

      Basic Call-by-value λ-Calculus Syntax

      +

      We first define the syntax of conventional call-by-value λ-calculus, making +sure we declare the lambda abstraction construct to be a binder, the +lambda application to be strict, and the parentheses used for grouping as +a bracket.

      +

      Note: +Syntax in K is defined using the familiar BNF notation, with +terminals enclosed in quotes and nonterminals starting with capital +letters. K actually extends BNF with several attributes, which will be +described in this tutorial.

      +

      Note: +The strict constructs can evaluate their arguments in any (fully +interleaved) order.

      +

      The initial syntax of our λ-calculus:

      +
      k
      syntax Val ::= KVar + | "lambda" KVar "." Exp [binder, latex(\lambda{#1}.{#2})] + syntax Exp ::= Val + | Exp Exp [left, strict] + | "(" Exp ")" [bracket] +
      +

      Integer and Boolean Builtins Syntax

      +

      The LAMBDA arithmetic and Boolean expression constructs are simply rewritten +to their builtin counterparts once their arguments are evaluated. +The annotated operators in the right-hand side of the rules below are +builtin and come with the corresponding builtin sort. Note that the +variables appearing in these rules have integer sort. That means that these +rules will only be applied after the arguments of the arithmetic constructs +are fully evaluated to K results; this will happen thanks to their strictness +attributes declared as annotations to their syntax declarations (below).

      +
      k
      syntax Val ::= Int | Bool + syntax Exp ::= "-" Int + > Exp "*" Exp [strict, left] + | Exp "/" Exp [strict] + > Exp "+" Exp [strict, left] + > Exp "<=" Exp [strict] +
      +

      Conditional Syntax

      +

      Note that the if construct is strict only in its first argument.

      +
      k
      syntax Exp ::= "if" Exp "then" Exp "else" Exp [strict(1)] +
      +

      Let Binder

      +

      The let binder is a derived construct, because it can be defined using λ.

      +
      k
      syntax Exp ::= "let" KVar "=" Exp "in" Exp [macro] + rule let X = E in E':Exp => (lambda X . E') E +
      +

      Letrec Binder

      +

      We prefer a definition based on the μ construct. Note that μ is not +really necessary, but it makes the definition of letrec easier to understand +and faster to execute.

      +
      k
      syntax Exp ::= "letrec" KVar KVar "=" Exp "in" Exp [macro] + | "mu" KVar "." Exp [binder, latex(\mu{#1}.{#2})] + rule letrec F:KVar X:KVar = E in E' => let F = mu F . lambda X . E in E' +endmodule +
      +

      LAMBDA module

      +
      k
      module LAMBDA + imports LAMBDA-SYNTAX + imports SUBSTITUTION + imports DOMAINS + + syntax KResult ::= Val +
      +

      β-reduction

      +
      k
      rule (lambda X:KVar . E:Exp) V:Val => E[V / X] +
      +

      Integer Builtins

      +
      k
      rule - I => 0 -Int I + rule I1 * I2 => I1 *Int I2 + rule I1 / I2 => I1 /Int I2 requires I2 =/=Int 0 + rule I1 + I2 => I1 +Int I2 + rule I1 <= I2 => I1 <=Int I2 +
      +

      Conditional

      +
      k
      rule if true then E else _ => E + rule if false then _ else E => E +
      +

      Mu

      +
      k
      rule mu X . E => E[(mu X . E) / X] +endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/2_imp/NOTES/index.html b/k-distribution/pl-tutorial/1_k/2_imp/NOTES/index.html new file mode 100644 index 00000000000..49748e7f56b --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/2_imp/NOTES/index.html @@ -0,0 +1,379 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +
        +
      • Revise the change of S1 S2 into S1:Stmt S2:Stmt, if needed; only S2 +really needs to be sorted.
      • +
      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/2_imp/index.html b/k-distribution/pl-tutorial/1_k/2_imp/index.html new file mode 100644 index 00000000000..2cbc79223c1 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/2_imp/index.html @@ -0,0 +1,403 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Part 2: Defining IMP

      +

      Here you will learn how to define a very simple imperative language in K +and the basics of how to work with configurations, cells, and computations. +Specifically, you will learn the following:

      +
        +
      • How to define languages using multiple modules.
      • +
      • How to define sequentially strict syntactic constructs.
      • +
      • How to use K's syntactic lists.
      • +
      • How to define, initialize and configure configurations.
      • +
      • How the language syntax is swallowed by the builtin K syntactic category.
      • +
      • The additional syntax of the K syntactic category.
      • +
      • How the strictness annotations are automatically desugared into rules.
      • +
      • The first steps of the configuration abstraction mechanism.
      • +
      +

      Like in the previous tutorial, this folder contains several lessons, each +adding new features to IMP. Do them in order. Also, make sure you completed +and understood the previous tutorial.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/2_imp/lesson_1/index.html b/k-distribution/pl-tutorial/1_k/2_imp/lesson_1/index.html new file mode 100644 index 00000000000..2abb0407a55 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/2_imp/lesson_1/index.html @@ -0,0 +1,541 @@ + + + + + + + + + + + + + + +Defining a More Complex Syntax | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Defining a More Complex Syntax

      +

      Here we learn how to define a more complex language syntax than LAMBDA's, +namely the C-like syntax of IMP. Also, we will learn how to define languages +using multiple modules, because we are going to separate IMP's syntax from +its semantics using modules. Finally, we will also learn how to use K's +builtin support for syntactic lists.

      +

      The K tool provides modules for grouping language features. In general, we +can organize our languages in arbitrarily complex module structures. +While there are no rigid requirements or even guidelines for how to group +language features in modules, we often separate the language syntax from the +language semantics in different modules.

      +

      In our case here, we start by defining two modules, IMP-SYNTAX and IMP, and +import the first in the second, using the keyword imports. As their names +suggest, we will place all IMP's syntax definition in IMP-SYNTAX and all its +semantics in IMP.

      +

      Note, however, that K does no more than simply includes all the +contents of the imported module in the one which imports it (making sure +that everything is only kept once, even if you import it multiple times). +In other words, there is currently nothing fancy in K tool's module system.

      +

      IMP has six syntactic categories, as shown in imp.k: AExp for arithmetic +expressions, BExp for Boolean expressions, Block for blocks, Stmt for +statements, Pgm for programs and Ids for comma-separated lists of +identifiers. Blocks are special statements, whose role is to syntactically +constrain the conditional statement and the while loop statement to only +take blocks as branches and body, respectively.

      +

      There is nothing special about arithmetic and Boolean expressions. They +are given the expected strictness attributes, except for <= and &&, +for demonstration purposes.

      +

      The <= is defined to be seqstrict, which means that it evaluates its +arguments in order, from left-to-right (recall that the strict operators +can evaluate their arguments in any, fully interleaved, orders). Like +strict, the seqstrict annotation can also be configured; for example, one +can specify in which arguments and in what order. By default, seqstrict +refers to all the arguments, in their left-to-right order. In our case here, +it is equivalent with seqstrict(1 2).

      +

      The && is only strict in its first argument, because we will give it a +short-circuited semantics (its second argument will only be evaluated when +the first evaluates to true). Recall the K tool also allows us to associate +LaTex attributes to constructs, telling the document generator how to display +them. For example, we associate <= the attribute latex({#1}\leq{#2}), +which makes it be displayed \leq everywhere in the generated LaTex +documentation.

      +

      In this tutorial we take the freedom to associate the various constructs +parsing precedences that we have already tested and we know work well, so that +we can focus on the semantics here instead of syntax. In practice, though, +you typically need to experiment with precedences until you obtain the desired +parser.

      +

      Blocks are defined using curly brackets, and they can either be empty or +hold a statement.

      +

      Nothing special about the IMP statements. Note that ; is an assignment +statement terminator, not a statement separator. Note also that blocks are +special statements.

      +

      An IMP program declares a comma-separated list of variables using the keyword +int like in C, followed by a semicolon ;, followed by a statement. +Syntactically, the idea here is that we can wrap any IMP program within a +main(){...} function and get a valid C program. IMP does not allow variable +declarations anywhere else except through this construct, at the top-level of +the program. Other languages provided with the K distribution (see, e.g., the +IMP++ language also discussed in this tutorial) remove this top-level program +construct of IMP and add instead variable declaration as a statement construct, +which can be used anywhere in the program, not only at the top level.

      +

      Note how we defined the comma-separated list of identifiers using +List{Id,","}. The K tool provides builtin support for generic syntactic +lists. In general,

      +
      syntax B ::= List{A,T}
      +
      +

      declares a new non-terminal, B, corresponding to T-separated sequences of +elements of A, where A is a non-terminal and T is a terminal. These +lists can also be empty, that is, IMP programs declaring no variable are also +allowed (e.g., int; {} is a valid IMP program). To instantiate and use +the K builtin lists, you should alias each instance with a (typically fresh) +non-terminal in your syntax, like we do with the Ids nonterminal.

      +

      Like with other K features, there are ways to configure the syntactic lists, +but we do not discuss them here.

      +

      Recall from Tutorial 1 (LAMBDA) that in order for strictness to work well +we also need to tell K which computations are meant to be results. We do +this as well now, in the module IMP: integers and Booleans are K results.

      +

      Kompile imp.k and test the generated parser by running some programs. +Since IMP is a fragment of C, you may want to select the C mode in your +editor when writing these programs. This will also give your the feel that +you are writing programs in a real programming language.

      +

      For example, here is sum.imp, which sums in sum all numbers up to n:

      +
      int n, sum;
      +n = 100;
      +sum=0;
      +while (!(n <= 0)) {
      +  sum = sum + n;
      +  n = n + -1;
      +}
      +
      +

      Now krun it and see how it looks parsed in the default k cell.

      +

      The program collatz.imp tests the Collatz conjecture for all numbers up to +m and accumulates the total number of steps in s:

      +
      int m, n, q, r, s;
      +m = 10;
      +while (!(m<=2)) {
      +  n = m;
      +  m = m + -1;
      +  while (!(n<=1)) {
      +    s = s+1;
      +    q = n/2;
      +    r = q+q+1;
      +    if (r<=n) {
      +      n = n+n+n+1;         // n becomes 3*n+1 if odd
      +    } else {n=q;}          //        of   n/2 if even
      +  }
      +}
      +
      +

      Finally, program primes.imp counts in s all the prime numbers up to m:

      +
      int i, m, n, q, r, s, t, x, y, z;
      +m = 10;  n = 2;
      +while (n <= m) {
      +  // checking primality of n and writing t to 1 or 0
      +  i = 2;  q = n/i;  t = 1;
      +  while (i<=q && 1<=t) {
      +    x = i;
      +    y = q;
      +    // fast multiplication (base 2) algorithm
      +    z = 0;
      +    while (!(x <= 0)) {
      +      q = x/2;
      +      r = q+q+1;
      +      if (r <= x) { z = z+y; } else {}
      +      x = q;
      +      y = y+y;
      +    } // end fast multiplication
      +    if (n <= z) { t = 0; } else { i = i+1;  q = n/i; }
      +  } // end checking primality
      +  if (1 <= t) { s = s+1; } else {}
      +  n = n+1;
      +}
      +
      +

      All the programs above will run once we define the semantics of IMP. If you +want to execute them now, wrap them in a main(){...} function and compile +them and run them with your favorite C compiler.

      +

      Before we move to the K semantics of IMP, we would like to make some +clarifications regarding the K builtin parser, kast. Although it is quite +powerful, you should not expect magic from it! While the K parser can parse +many non-trivial languages (see, for example, the KOOL language in +pl-tutorial/2_languages) in the K distribution), it was +never meant to be a substitute for real parsers. We often call the syntax +defined in K the syntax of the semantics, to highlight the fact that its +role is to serve as a convenient notation when writing the semantics, not +necessarily as a means to define concrete syntax of arbitrarily complex +programming languages. See the KERNELC language for an example on how to connect an external parser for concrete syntax to +the K tool.

      +

      The above being said, we strongly encourage you to strive to make the +builtin parser work with your desired language syntax! Do not give up +simply because you don't want to deal with syntactic problems. On the +contrary, fight for your syntax! If you really cannot define your desired +syntax because of tool limitations, we would like to know. Please tell us.

      +

      Until now we have only seen default configurations. In the next lesson we +will learn how to define a K custom configuration.

      +

      Go to Lesson 2, IMP: Defining a Configuration.

      +

      MOVIE (out of date) [09'15"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/2_imp/lesson_2/index.html b/k-distribution/pl-tutorial/1_k/2_imp/lesson_2/index.html new file mode 100644 index 00000000000..2198bd2d169 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/2_imp/lesson_2/index.html @@ -0,0 +1,453 @@ + + + + + + + + + + + + + + +Defining a Configuration | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Defining a Configuration

      +

      Here we learn how to define a configuration in K. We also learn how to +initialize and how to display it.

      +

      As explained in the overview presentation on K, configurations are quite +important, because all semantic rules match and apply on them. +Moreover, they are the backbone of configuration abstraction, which allows +you to only mention the relevant cells in each semantic rule, the rest of +the configuration context being inferred automatically. The importance of +configuration abstraction will become clear when we define more complex +languages (even in IMP++). IMP does not really need it. K configurations +are constructed making use of cells, which are labeled and can be arbitrarily +nested.

      +

      Configurations are defined with the keyword configuration. Cells are +defined using an XML-ish notation stating clearly where the cell starts +and where it ends.

      +

      While not enforced by the tool, we typically like to put the entire +configuration in a top-level cell, called T. So let's define it:

      +
      configuration <T>...</T>
      +
      +

      Cells can have other cells inside. In our case of IMP, we need a cell to +hold the remaining program, cell which we typically call k, and a cell to +hold the program state. Let us add them:

      +
      configuration <T> <k>...</k> <state>...</state> </T>
      +
      +

      K allows us to also specify how to initialize a configuration at the same +time with declaring the configuration. All we have to do is to fill in +the contents of the cells with some terms. The syntactic categories of +those terms will also indirectly define the types of the corresponding +cells.

      +

      For example, we want the k cell to initially hold the program that is passed +to krun. K provides a builtin configuration variable, called $PGM, which +is specifically designed for this purpose: krun will place its program there +(after it parses it, or course). The K tool allows users to define their own +configuration variables, too, which can be used to develop custom +initializations of program configurations with the help of krun; this can be +quite useful when defining complex languages, but we do not discuss it in +this tutorial.

      +
      configuration <T> <k> $PGM </k> <state>...</state>  </T>
      +
      +

      Moreover, we want the program to be a proper Pgm term (because we do not +want to allow krun to take fragments of programs, for example, statements). +Therefore, we tag $PGM with the desired syntactic category, Pgm:

      +
      configuration <T> <k> $PGM:Pgm </k> <state>...</state>  </T>
      +
      +

      Like for other variable tags in K, a run-time check will be performed and the +semantics will get stuck if the passed term is not a well-formed program.

      +

      We next tell K that the state cell should be initialized with the empty map:

      +
      configuration <T> <k> $PGM:Pgm </k> <state> .Map </state>  </T>
      +
      +

      Recall that in K . stands for nothing. However, since there are various +types of nothing, to avoid confusion we can suffix the . with its desired +type. K has several builtin data-types, including lists, sets, bags, and +maps. .Map is the empty map.

      +

      Kompile imp.k and run several programs to see how the configuration is +initialized as desired.

      +

      When configurations get large, and they do when defining large programming +languages, you may want to color the cells in order to more easily distinguish +them. This can be easily achieved using the color cell attribute, following +again an XML-ish style:

      +
      configuration <T color="yellow">
      +                <k color="green"> $PGM:Pgm </k>
      +                <state color="red"> .Map </state>
      +              </T>
      +
      +

      In the next lesson we will learn how to write rules that involve cells.

      +

      Go to Lesson 3, IMP: Computations, Results, Strictness; Rules Involving Cells.

      +

      MOVIE (out of date) [04'21"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/2_imp/lesson_3/index.html b/k-distribution/pl-tutorial/1_k/2_imp/lesson_3/index.html new file mode 100644 index 00000000000..10734f4823e --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/2_imp/lesson_3/index.html @@ -0,0 +1,591 @@ + + + + + + + + + + + + + + +Computations, Results, Strictness; Rules Involving Cells | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Computations, Results, Strictness; Rules Involving Cells

      +

      In this lesson we will learn about the syntactic category K of computations, +about how strictness attributes are in fact syntactic sugar for rewrite rules +over computations, and why it is important to tell the tool which +computations are results. We will also see a K rule that involves cells.

      +

      K Computations

      +

      Computation structures, or more simply computations, extend the abstract +syntax of your language with a list structure using ~> (read followed +by or and then, and written \curvearrowright in Latex) as a separator. +K provides a distinguished sort, K, for computations. The extension of the +abstract syntax of your language into computations is done automatically by +the K tool when you declare constructs using the syntax keyword, so the K +semantic rules can uniformly operate only on terms of sort K. The intuition +for computation structures of the form

      +
      t1 ~> t2 ~> ... ~> tn
      +
      +

      is that the listed tasks are to be processed in order. The initial +computation typically contains the original program as its sole task, but +rules can then modify it into task sequences, as seen shortly.

      +

      Strictness in Theory

      +

      The strictness attributes, used as annotations to language constructs, +actually correspond to rules over computations. For example, the +strict(2) attribute of the assignment statement corresponds to the +following two opposite rules (X ranges over Id and A over AExp):

      +
      X=A; => A ~> X=[];
      +A ~> X=[]; => X=A;
      +
      +

      The first rule pulls A from the syntactic context X=A; and schedules it +for processing. The second rule plugs A back into its context. +Inspired from the chemical abstract machine, we call rules of the first +type above heating rules and rules of the second type cooling rules. +Similar rules are generated for other arguments in which operations are +strict. Iterative applications of heating rules eventually bring to the +top of the computation atomic tasks, such as a variable lookup, or a +builtin operation, which then make computational progress by means of other +rules. Once progress is made, cooling rules can iteratively plug the result +back into context, so that heating rules can pick another candidate for +reduction, and so on and so forth.

      +

      When operations are strict only in some of their arguments, the corresponding +positions of the arguments in which they are strict are explicitly enumerated +in the argument of the strict attribute, e.g., strict(2) like above, or +strict(2 3) for an operation strict in its second and third arguments, etc. +If an operation is simply declared strict then it means that it is strict +in all its arguments. For example, the strictness of addition yields:

      +
      A1+A2 => A1 ~> []+A2
      +A1 ~> []+A2 => A1+A2
      +A1+A2 => A2 ~> A1+[]
      +A2 ~> A1+[] => A1+A2
      +
      +

      It can be seen that such heating/cooling rules can easily lead to +non-determinism, since the same term may be heated many different ways; +these different evaluation orders may lead to different behaviors in some +languages (not in IMP, because its expressions do not have side effects, +but we will experiment with non-determinism in its successor, IMP++).

      +

      A similar desugaring applies to sequential strictness, declared with the +keyword seqstrict. While the order of arguments of strict is irrelevant, +it matters in the case of seqstrict: they are to be evaluated in the +specified order; if no arguments are given, then they are assumed by default +to be evaluated from left-to-right. For example, the default heating/cooling +rules associated to the sequentially strict <= construct above are +(A1, A2 range over AExp and I1 over Int):

      +
      A1<=A2 => A1 ~> []<=A2
      +A1 ~> []<=A2 => A1<=A2
      +I1<=A2 => A2 ~> I1<=[]
      +A2 ~> I1<=[] => I1<=A2
      +
      +

      In other words, A2 is only heated/cooled after A1 is already evaluated.

      +

      While the heating/cooling rules give us a nice and uniform means to define +all the various allowable ways in which a program can evaluate, all based +on rewriting, the fact that they are reversible comes with a serious practical +problem: they make the K definitions unexecutable, because they lead to +non-termination.

      +

      Strictness in Practice; K Results

      +

      To break the reversibility of the theoretical heating/cooling rules, and, +moreover, to efficiently execute K definitions, the current implementation of +the K tool relies on users giving explicit definitions of their languages' +results.

      +

      The K tool provides a predicate isKResult, which is automatically defined +as we add syntactic constructs to KResult (in fact the K tool defines such +predicates for all syntactic categories, which are used, for example, as +rule side conditions to check user-declared variable memberships, such as +V:Val stating that V belongs to Val).

      +

      The kompile tool, depending upon what it is requested to do, changes the +reversible heating/cooling rules corresponding to evaluation strategy +definitions (e.g., those corresponding to strictness attributes) to avoid +non-termination. For example, when one is interested in obtaining an +executable model of the language (which is the default compilation mode of +kompile), then heating is performed only when the to-be-pulled syntactic +fragment is not a result, and the corresponding cooling only when the +to-be-plugged fragment is a result. In this case, e.g., the heating/cooling +rules for assignment are modified as follows:

      +
      X=A; => A ~> X=[];  requires notBool isKResult(A)
      +A ~> X=[]; => X=A;  requires isKResult(A)
      +
      +

      Note that non-termination of heating/cooling is avoided now. The only thing +lost is the number of possible behaviors that a program can manifest, but +this is irrelevant when all we want is one behavior.

      +

      As will be discussed in the IMP++ tutorial, the heating/cooling rules are +modified differently by kompile when we are interested in other aspects +of the language definition, such us, for example, in a search-able model that +comprises all program behaviors. This latter model is obviously more general +from a theoretical perspective, but, in practice, it is also slower to execute. +The kompile tool strives to give you the best model of the language for the +task you are interested in.

      +

      Can't Results be Inferred Automatically?

      +

      This is a long story, but the short answer is: No!. Maybe in some cases +it is possible, but we prefer to not attempt it in the K tool. For example, +you most likely do not want any stuck computation to count as a result, +since some of them can happen simply because you forgot a semantic rule that +could have further reduce it! Besides, in our experience with defining large +languages, it is quite useful to take your time and think of what the results +of your language's computations are. This fact in itself may help you improve +your overall language design. We typically do it at the same time with +defining the evaluation strategies of our languages. Although in theory K +could infer the results of your language as the stuck computations, based on +the above we have deliberately decided to not provide this feature, in spite +of requests from some users. So you currently do have to explicitly define +your K results if you want to effectively use the K tool. Note, however, that +theoretical definitions, not meant to be executed, need not worry about +defining results (that's because in theory semantic rules apply modulo the +reversible heating/cooling rules, so results are not necessary).

      +

      A K Rule Involving Cells

      +

      All our K rules so far in the tutorial were of the form

      +
      rule left => right requires condition
      +
      +

      where left and right were syntactic, or more generally computation, terms.

      +

      Here is our first K rule explicitly involving cells:

      +
      rule <k> X:Id => I ...</k> <state>... X |-> I ...</state>
      +
      +

      Recall that the k cell holds computations, which are sequences of tasks +separated by ~>. Also, the state cell holds a map, which is a set of +bindings, each binding being a pair of computations (currently, the +K builtin data-structures, like maps, are untyped; or, said differently, +they are all over the type of computations, K).

      +

      Therefore, the two cells mentioned in the rule above hold collections +of things, ordered or not. The ...s, which we also call cell frames, +stand for more stuff there, which we do not care about.

      +

      The rewrite relation => is allowed in K to appear anywhere in a term, its +meaning being that the corresponding subterm is rewritten as indicated in the +shown context. We say that K's rewriting is local.

      +

      The rule above says that if the identifier X is the first task in the k +cell, and if X is bound to I somewhere in the state, then X rewrites +to I locally in the k cell. Therefore, IMP variables need to be already +declared when looked up.

      +

      Of course, the K rule above can be translated into an ordinary rewrite rule +of the form

      +
      rule <k> X ~> Rest </k> <state> Before (X |-> I) After </state>
      +  => <k> I ~> Rest </k> <state> Before (X |-> I) After </state>
      +
      +

      Besides being more verbose and thus tedious to write, this ordinary rule +is also more error-prone; for example, we may forget the Rest variable +in the right-hand-side, etc. Moreover, the concurrent semantics of K +allows for its rules to be interpreted as concurrent transactions, where +the context is the read-only component of the transaction, while the +subterms which are rewritten are read/write component of the transaction; +thus, K rule instances can apply concurrently if they only overlap +on read-only parts, while they cannot if regarded as ordinary rewrite logic +rules. Note: our current implementation of the K tool is not concurrent, +so K rules are in fact desugared as normal rewrite rules in the K tool.

      +

      Kompile imp.k using a documentation option and check out how the K rule +looks in the generated document. The ... frames are displayed as cell +tears, metaphorically implying that those parts of the cells that we +do not care about are torn away. The rewrite relation is replaced by a +horizontal line: specifically, the subterm which rewrites, X, is +underlined, and its replacement is written underneath the line.

      +

      In the next lesson we define the complete K semantics of IMP and +run the programs we parsed in the first lesson.

      +

      Go to Lesson 4, IMP: Configuration Abstraction, Part 1; Types of Rules.

      +

      MOVIE (out of date) [10'30"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/2_imp/lesson_4/exercises/purely-syntactic/index.html b/k-distribution/pl-tutorial/1_k/2_imp/lesson_4/exercises/purely-syntactic/index.html new file mode 100644 index 00000000000..3006e98c546 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/2_imp/lesson_4/exercises/purely-syntactic/index.html @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Modify IMP so that the K followed by arrow, ~>, does not explicitly +occur in the definition (it currently occurs in the semantics of +sequential composition).

      +

      Hint: make sequential composition strict(1) or seqstrict, and have +statements reduce to {} instead of .; and don't forget to make +{} a KResult (you may need a new syntactic category for that, which +only includes {} and is included in KResult).

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/2_imp/lesson_4/exercises/uninitialized-variables/index.html b/k-distribution/pl-tutorial/1_k/2_imp/lesson_4/exercises/uninitialized-variables/index.html new file mode 100644 index 00000000000..de913f3cf9f --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/2_imp/lesson_4/exercises/uninitialized-variables/index.html @@ -0,0 +1,381 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Modify the K definition of IMP to not automatically initialize +variables to 0. Instead, declared variables should stay uninitialized +until assigned a value, and the execution should get stuck when an +uninitialized variable is looked up. Specifically, you should add a +new undefined construct of sort K, and initialize all the declared +variables with it.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/2_imp/lesson_4/index.html b/k-distribution/pl-tutorial/1_k/2_imp/lesson_4/index.html new file mode 100644 index 00000000000..7474edf2271 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/2_imp/lesson_4/index.html @@ -0,0 +1,497 @@ + + + + + + + + + + + + + + +Configuration Abstraction, Part 1; Types of Rules | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Configuration Abstraction, Part 1; Types of Rules

      +

      Here we will complete the K definition of IMP and, while doing so, we will +learn the very first step of what we call configuration abstraction.

      +

      The IMP Semantic Rules

      +

      Let us add the remaining rules, in the order in which the language constructs +were defined in IMP-SYNTAX.

      +

      The rules for the arithmetic and Boolean constructs are self-explanatory. +Note, however, that K will infer the correct sorts of all the variables in +these rules, because they appear as arguments of the builtin operations +(_+Int_, etc.). Moreover, the inferred sorts will be enforced dynamically. +Indeed, we do not want to apply the rule for addition, for example, when the +two arguments are not integers. In the rules for &&, although we prefer to +not do it here for simplicity, we could have eliminated the dynamic check by +replacing B (and similarly for _) with B:K. Indeed, it can be shown +that whenever any of these rules apply, B (or _) is a BExp anyway. +That's because there is no rule that can touch such a B (or _); this +will become clearer shortly, when we discuss the first step of configuration +abstraction. Therefore, since we know that B will be a BExp anyway, we +could save the time it takes to check its sort; such times may look minor, +but they accumulate, so some designers may prefer to avoid run-time checks +whenever possible.

      +

      The block rules are trivial. However, the rule for non-empty blocks is +semantically correct only because we do not have local variable declarations +in IMP. We will have to change this rule in IMP++.

      +

      The assignment rule has two =>: one in the k cell dissolving the +assignment statement, and the other in the state cell updating the value of +the assigned variable. Note that the one in the state is surrounded by +parentheses: (_ => I). That is because => is greedy: it matches as much +as it can to the left and to the right, until it reaches the cell boundaries +(closed or open). If you want to limit its scope, or for clarity, you can use +parentheses like here.

      +

      The rule for sequential composition simply desugars S1 S2 into S1 ~> S2. +Indeed, the two have exactly the same semantics. Note that statements +evaluate to nothing (.), so once S1 is processed in S1 ~> S2, then the +next task is automatically S2, without wasting any step for the transition.

      +

      The rules for the conditional and while statements are clear. One thing to +keep in mind now is that the while unrolling rule will not apply +indefinitely in the positive branch of the resulting conditional, because +of K's configuration abstraction, which will be discussed shortly.

      +

      An IMP program declares a set of variables and then executes a +statement in the state obtained after initializing all those variables +to 0. The rules for programs initialize the declared variables one by one, +checking also that there are no duplicates. We check for duplicates only for +demonstration purposes, to illustrate the keys predefined operation that +returns the set of keys of a map, and the set membership operation in. +In practice, we typically define a static type checker for our language, +which we execute before the semantics and reject inappropriate programs.

      +

      The use of the .Ids in the second rule is not necessary. We could have +written int; S instead of int .Ids; S and the K tool would parse it and +kompile the definition correctly, because it uses the same parser used for +parsing programs also to parse the semantics. However, we typically prefer to +explicitly write the nothing values in the semantics, for clarity; +the parser has been extended to accept these. Note that the first rule +matches the entire k cell, because int_;_ is the top-level program +construct in IMP, so there is nothing following it in the computation cell. +The anonymous variable stands for the second argument of this top-level program +construct, not for the rest of the computation. The second rule could have +also been put in a complete k cell, but we preferred not to, for simplicity.

      +

      Our IMP semantics is now complete, but there are a few more things that we +need to understand and do.

      +

      Configuration Abstraction, Part 1

      +

      First, let us briefly discuss the very first step of configuration abstraction. +In K, all semantic rules are in fact rules between configurations. As soon +explained in the IMP++ tutorial, the declared configuration cell structure is +used to automatically complete the missing configuration parts in rules. +However, many rules do not involve any cells, being rules between syntactic +terms (of sort K); for example, we had only three rules involving cells in our +IMP semantics. In this case, the k cell will be added automatically and the +actual rewrite will happen on top of the enclosed computation. For example, +the rule for the while loop is automatically translated into the following:

      +
      rule <k> while (B) S => if (B) {S while (B) S} else {} ...</k>
      +
      +

      Since the first task in computations is what needs to be done next, the +intuition for this rule completion is that the syntactic transition +only happens when the term to rewrite is ready for processing. This explains, +for example, why the while loop unrolling does not indefinitely apply in the +positive branch of the conditional: the inner while loop is not ready for +evaluation yet. We call this rule completion process, as well as other +similar ones, configuration abstraction. That is because the incomplete +rule abstracts away the configuration structure, thus being easier to read. +As seen soon when we define IMP++, configuration abstraction is not only a +user convenience; it actually significantly increases the modularity of our +definitions. The k-cell-completion is only the very first step, though.

      +

      If you really want certain rewrites over syntactic terms to apply +anywhere they match, then you should tag the rule with the attribute +anywhere, which was discussed in Tutorial 1, Lesson 2.5.

      +

      Kompile and then krun the programs that you only parsed in Lesson 1. They +should all execute as expected. The state cell shows the final state +of the program. The k cell shows the final code contents, which should be +empty whenever the IMP program executes correctly.

      +

      Kompile also with the documentation option and take a look at the generated +documentation. The assignment rule should particularly be of interest, +because it contains two local rewrites.

      +

      In the next lesson we comment the IMP definition and conclude this tutorial.

      +

      Go to Lesson 5, IMP: Completing and Documenting IMP.

      +

      MOVIE (out of date) [09'16"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/2_imp/lesson_5/imp/index.html b/k-distribution/pl-tutorial/1_k/2_imp/lesson_5/imp/index.html new file mode 100644 index 00000000000..d4b722f451b --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/2_imp/lesson_5/imp/index.html @@ -0,0 +1,547 @@ + + + + + + + + + + + + + + +IMP | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      IMP

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Abstract

      +

      This is the K semantic definition of the classic IMP language. +IMP is considered a folklore language, without an official inventor, +and has been used in many textbooks and papers, often with slight +syntactic variations and often without being called IMP. It includes +the most basic imperative language constructs, namely basic constructs +for arithmetic and Boolean expressions, and variable assignment, +conditional, while loop and sequential composition constructs for statements.

      +
      k
      module IMP-SYNTAX + imports DOMAINS-SYNTAX +
      +

      Syntax

      +

      This module defines the syntax of IMP. +Note that <= is sequentially strict, and && is strict only in its first +argument, because we want to give it a short-circuit semantics.

      +
      k
      syntax AExp ::= Int | Id + | "-" Int [format(%1%2)] + | AExp "/" AExp [left, strict, color(pink)] + | "(" AExp ")" [bracket] + > AExp "+" AExp [left, strict, color(pink)] + syntax BExp ::= Bool + | AExp "<=" AExp [seqstrict, latex({#1}\leq{#2}), color(pink)] + | "!" BExp [strict, color(pink)] + | "(" BExp ")" [bracket] + > BExp "&&" BExp [left, strict(1), color(pink)] + syntax Block ::= "{" "}" + | "{" Stmt "}" [format(%1%i%n%2%d%n%3)] + syntax Stmt ::= Block + | Id "=" AExp ";" [strict(2), color(pink), format(%1 %2 %3%4)] + | "if" "(" BExp ")" + Block "else" Block [strict(1), colors(yellow, white, white, yellow), format(%1 %2%3%4 %5 %6 %7)] + | "while" "(" BExp ")" Block [colors(yellow,white,white), format(%1 %2%3%4 %5)] + > Stmt Stmt [left, format(%1%n%2)] +
      +

      An IMP program declares a set of variables and then executes a +statement in the state obtained after initializing all those variables +to 0. K provides builtin support for generic syntactic lists: +List{Nonterminal,terminal} stands for terminal-separated lists of Nonterminal elements.

      +
      k
      syntax Pgm ::= "int" Ids ";" Stmt [format(%1 %2%3%n%4), colors(yellow,pink)] + syntax Ids ::= List{Id,","} [format(%1%2 %3)] +endmodule +
      +

      We are done with the definition of IMP's syntax. Make sure +that you write and parse several interesting programs before you move to the +semantics.

      +
      k
      module IMP + imports IMP-SYNTAX + imports DOMAINS +
      +

      Semantics

      +

      This module defines the semantics of IMP. +Before you start adding semantic rules to a K definition, you need to +define the basic semantic infrastructure consisting of definitions for +results and the configuration.

      +

      Values and results

      +

      IMP only has two types of values, or results of computations: integers +and Booleans. We here use the K builtin variants for both of them.

      +
      k
      syntax KResult ::= Int | Bool +
      +

      Configuration

      +

      The configuration of IMP is trivial: it only contains two cells, one +for the computation and another for the state. For good encapsulation +and clarity, we place the two cells inside another cell, the top cell +which is labeled T.

      +
      k
      configuration <T color="yellow"> + <k color="green"> $PGM:Pgm </k> + <state color="red"> .Map </state> + </T> +
      +

      The configuration variable PGM tells the K tool where to +place the program. More precisely, the command +krun program parses the program and places the resulting +K abstract syntax tree in the k cell before invoking the +semantic rules described in the sequel. The . in the +state cell, written .Map in ASCII in the +imp.md file, is K's way to say nothing. Technically, it +is a constant which is the unit, or identity, of all maps in K +(similar dot units exist for other K structures, such as lists, sets, +multi-sets, etc.).

      +

      Arithmetic expressions

      +

      The K semantics of each arithmetic construct is defined below.

      +

      Variable lookup

      +

      A program variable X is looked up in the state by matching a binding +of the form X |-> I in the state cell. If such a binding does not +exist, then the rewriting process will get stuck. Thus our semantics of +IMP disallows uses of uninitialized variables. Note that the variable +to be looked up is the first task in the k cell (the cell is +closed to the left and torn to the right), while the binding can be +anywhere in the state cell (the cell is torn at both sides).

      +
      k
      rule <k> X:Id => I ...</k> <state>... X |-> I ...</state> +
      +

      Arithmetic operators

      +

      There is nothing special about these, but recall that K's configuration +abstraction mechanism is at work here! That means that the rewrites in the +rules below all happen at the beginning of the k cell.

      +
      k
      rule I1 / I2 => I1 /Int I2 requires I2 =/=Int 0 + rule I1 + I2 => I1 +Int I2 + rule - I1 => 0 -Int I1 +
      +

      Boolean expressions

      +

      The rules below are straightforward. Note the short-circuited semantics +of &&; this is the reason we annotated the syntax of +&& with the K attribute strict(1) instead of strict.

      +
      k
      rule I1 <= I2 => I1 <=Int I2 + rule ! T => notBool T + rule true && B => B + rule false && _ => false +
      +

      Blocks and Statements

      +

      There is one rule per statement construct except for the conditional, +which needs two rules.

      +

      Blocks

      +

      The empty block {} is simply dissolved. The . below is the +unit of the computation list structure K, that is, the empty task. +Similarly, the non-empty blocks are dissolved and replaced by their statement +contents, thus effectively giving them a bracket semantics; we can afford to +do this only because we have no block-local variable declarations yet in IMP.

      +
      k
      rule {} => . + rule {S} => S +
      +

      Assignment

      +

      The assigned variable is updated in the state. The variable is expected +to be declared, otherwise the semantics will get stuck. At the same time, +the assignment is dissolved.

      +
      k
      rule <k> X = I:Int; => . ...</k> <state>... X |-> (_ => I) ...</state> +
      +

      Sequential composition

      +

      Sequential composition is simply structurally translated into K's +builtin task sequentialization operation.

      +
      k
      rule S1:Stmt S2:Stmt => S1 ~> S2 +
      +

      Conditional

      +

      The conditional statement has two semantic cases, corresponding to +when its condition evaluates to true or to false. +Recall that the conditional was annotated with the attribute +strict(1) in the syntax module above, so only its first +argument is allowed to be evaluated.

      +
      k
      rule if (true) S else _ => S + rule if (false) _ else S => S +
      +

      While loop

      +

      We give the semantics of the while loop by unrolling.

      +
      k
      rule while (B) S => if (B) {S while (B) S} else {} +
      +

      Programs

      +

      The semantics of an IMP program is that its body statement is executed +in a state initializing all its global variables to 0. Since K's +syntactic lists are internally interpreted as cons-lists (i.e., lists +constructed with a head element followed by a tail list), we need to +distinguish two cases, one when the list has at least one element and +another when the list is empty. In the first case we initialize the +variable to 0 in the state, but only when the variable is not already +declared (all variables are global and distinct in IMP).

      +
      k
      rule <k> int (X,Xs => Xs);_ </k> <state> Rho:Map (.Map => X|->0) </state> + requires notBool (X in keys(Rho)) + rule int .Ids; S => S +endmodule +
      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/2_imp/lesson_5/index.html b/k-distribution/pl-tutorial/1_k/2_imp/lesson_5/index.html new file mode 100644 index 00000000000..5a5337c634c --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/2_imp/lesson_5/index.html @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + +Completing and Documenting IMP | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Completing and Documenting IMP

      +

      We here learn no new concepts, but it is a good moment to take a break +and contemplate what we learned so far.

      +

      Let us add lots of formal annotations to imp.k.

      +

      Once we are done with the annotations, we kompile with the documentation +option and then take a look at the produced document. We often call these +documents language posters. Depending on how much information you add to +these language posters, they can serve as standalone, formal presentations +of your languages. For example, you can print them as large posters and +post them on the wall, or in poster sessions at conferences.

      +

      This completes our second tutorial. The next tutorials will teach us more +features of the K framework, such as how to define languages with complex +control constructs (like callcc), languages which are concurrent, and so on.

      +

      MOVIE (out of date) [03'45"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/index.html new file mode 100644 index 00000000000..a80bb3ab5b5 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/index.html @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + +Part 3: Defining LAMBDA++ | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Part 3: Defining LAMBDA++

      +

      Here you will learn how to define language constructs which abruptly change +the execution control flow, and how to define language semantics following +and environment/store style. Specifically, you will learn the following:

      +
        +
      • How to define constructs like callcc, which allow you to take snapshots of +program executions and to go back in time at any moment.
      • +
      • How to define languages in an environment/store style.
      • +
      • Some basic notions about the use of closures and closure-like semantic +structures to save and restore execution environments.
      • +
      • Some basic intuitions about reusing existing semantics in new languages, +as well as some of the pitfalls in doing so.
      • +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/NOTES/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/NOTES/index.html new file mode 100644 index 00000000000..fd2c2c41793 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/NOTES/index.html @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Maybe we should change the name of calCC, as it is not a good idea to have +two constructs with different semantics but names which cannot be distinguished +easily.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/callCC/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/callCC/index.html new file mode 100644 index 00000000000..0d7ef72fa5f --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/callCC/index.html @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Define a variant of callcc, say callCC, which never returns to the +current context unless a value is specifically passed to its argument +continuation. Follow a substitution-based style.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/from-call-CC-to-callcc/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/from-call-CC-to-callcc/index.html new file mode 100644 index 00000000000..0762d8e4e9f --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/from-call-CC-to-callcc/index.html @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Define callcc in terms of callCC, where callCC is explained in the +callCC exercise under LAMBDA++, Lesson 1. Follow a substitution-based style.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/from-callcc-to-call-CC/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/from-callcc-to-call-CC/index.html new file mode 100644 index 00000000000..47164a88cc9 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/exercises/from-callcc-to-call-CC/index.html @@ -0,0 +1,381 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Define callCC in terms of callcc, where callCC is explained in the +callCC exercise under LAMBDA++, Lesson 1. Follow a substitution-based style.

      +

      To facilitate testing, call the main module CALLCC (see tests/config.xml). +For example, you can define a module CALLCC which imports the previous +definition of callcc and adds the definition of callCC in terms of +callcc.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/index.html new file mode 100644 index 00000000000..392f6dfb2b0 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/index.html @@ -0,0 +1,486 @@ + + + + + + + + + + + + + + +Abrupt Changes of Control | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Abrupt Changes of Control

      +

      Here we add call-with-current-continuation (callcc) to the definition of +LAMBDA completed in Tutorial 1, and call the resulting language LAMBDA++. +While doing so, we will learn how to define language constructs that +abruptly change the execution control flow.

      +

      Take over the lambda.k definition from Lesson 8 in Part 1 of this Tutorial, +which is the complete definition of the LAMBDA language, but without the +comments.

      +

      callcc is a good example for studying the capabilities of a framework to +support abrupt changes of control, because it is one of the most +control-intensive language constructs known. Scheme is probably the first +programming language that incorporated the callcc construct, although +similar constructs have been recently included in many other languages in +one form or another.

      +

      Here is a quick description: callcc e passes the remaining computation +context, packaged as a function k, to e (which is expected to be a function); +if during its evaluation e passes any value to k, then the current +execution context is discarded and replaced by the one encoded by k and +the value is passed to it; if e evaluates normally to some value v and +passes nothing to k in the process, then v is returned as a result of +callcc e and the execution continues normally. For example, we want the +program callcc-jump.lambda:

      +
      (callcc (lambda k . ((k 5) + 2))) + 10
      +
      +

      to evaluate to 15, not 17! Indeed, the computation context [] + 10 is +passed to callcc's argument, which then sends it a 5, so the computation +resumes to 5 + 10. On the other hand, the program callcc-not-jump.lambda

      +
      (callcc (lambda k . (5 + 2))) + 10
      +
      +

      evaluates to 17.

      +

      If you like playing games, you can metaphorically think of callcc e as +saving your game state in a file and passing it to your friend e. +Then e can decide at some moment to drop everything she was doing, load +your game and continue to play it from where you were.

      +

      The behavior of many popular control-changing constructs can be obtained +using callcc. The program callcc-return.lambda shows, for example, how to +obtain the behavior of a return statement, which exits the current execution +context inside a function and returns a value to the caller's context:

      +
      letrec f x = callcc (lambda return . (
      +  f (if (x <= 0) then ((return 1) / 0) else 2)
      +))
      +in (f -3)
      +
      +

      This should evaluate to 1, in spite of the recursive call to f +and of the division by zero! Note that return is nothing but a variable +name, but one which is bound to the current continuation at the beginning of +the function execution. As soon as 1 is passed to return, the computation +jumps back in time to where callcc was defined! Change -3 to 3 and the +program will loop forever.

      +

      callcc is quite a powerful and beautiful language construct, although one +which is admittedly hard to give semantics to in some frameworks. +But not in K :) Here is the entire K syntax and semantics of callcc:

      +
      syntax Exp ::= "callcc" Exp  [strict]
      +syntax Val ::= cc(K)
      +rule <k> (callcc V:Val => V cc(K)) ~> K </k>
      +rule <k> cc(K) V ~> _ =>  V ~> K </k>
      +
      +

      Let us first discuss the annotated syntax. We declared callcc strict, +because its argument may not necessarily be a function yet, so it may need +to be evaluated. As explained above, we need to encode the remaining +computation somehow and pass it to callcc's argument. More specifically, +since LAMBDA is call-by-value, we have to encode the remaining computation as +a value. We do not want to simply subsort computations to Val, because there +are computations which we do not want to be values. A simple solution to +achieve our goal here is to introduce a new value construct, say cc (from +current-continuation), which holds any computation.

      +

      Note that, inspired from SDF, +K allows you to define the syntax of helping semantic operations, like cc, +more compactly. Typically, we do not need a fancy syntax for such operators; +all we need is a name, followed by open parenthesis, followed by a +comma-separated list of arguments, followed by closed parenthesis. If this +is the syntax that you want for a particular construct, then K allows you to +drop all the quotes surrounding the terminals, as we did above for cc.

      +

      The semantic rules do exactly what the English semantics of callcc says. +Note that here, unlike in our definition of LAMBDA in Tutorial 1, we had +to mention the cell <k/> in our rules. This is because we need to make sure +that we match the entire remaining computation, not only a fragment of it! +For example, if we replace the two rules above with

      +
      rule (callcc V:Val => V cc(K)) ~> K
      +rule cc(K) V ~> _ =>  V ~> K
      +
      +

      then we get a callcc which is allowed to non-deterministically pick a +prefix of the remaining computation and pass it to its argument, and then +when invoked within its argument, a non-deterministic prefix of the new +computation is discarded and replaced by the saved one. Wow, that would +be quite a language! Would you like to write programs in it? :)

      +

      Consequently, in K we can abruptly change the execution control flow of a +program by simply changing the contents of the <k/> cell. This is one of +the advantages of having an explicit representation of the execution context, +like in K or in reduction semantics with evaluation contexts. Constructs like +callcc are very hard and non-elegant to define in frameworks such as SOS, +because those implicitly represent the execution context as proof context, +and the latter cannot be easily changed.

      +

      Now that we know how to handle cells in configurations and use them in rules, +in the next lesson we take a fresh look at LAMBDA and define it using +an environment-based style, which avoids the complexity of substitution +(e.g., having to deal with variable capture) and is closer in spirit to how +functional languages are implemented.

      +

      Go to Lesson 2, LAMBDA++: Semantic (Non-Syntactic) Computation Items.

      +

      MOVIE (out of date) [6'28"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_2/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_2/index.html new file mode 100644 index 00000000000..df3f27be15f --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_2/index.html @@ -0,0 +1,535 @@ + + + + + + + + + + + + + + +Semantic (Non-Syntactic) Computation Items | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Semantic (Non-Syntactic) Computation Items

      +

      In this lesson we start another semantic definition of LAMBDA++, which +follows a style based on environments instead of substitution. In terms of +K, we will learn how easy it is to add new items to the syntactic category +of computations K, even ones which do not have a syntactic nature.

      +

      An environment binds variable names of interest to locations where their +values are stored. The idea of environment-based definitions is to maintain +a global store mapping locations to values, and then have environments +available when we evaluate expressions telling where the variables are +located in the store. Since LAMBDA++ is a relatively simple language, we +only need to maintain one global environment. Following a similar style +like in IMP, we place all cells into a top cell T:

      +
      configuration <T>
      +                <k> $PGM:Exp </k>
      +                <env> .Map </env>
      +                <store> .Map </store>
      +              </T>
      +
      +

      Recall that $PGM is where the program is placed by krun after parsing. So +the program execution starts with an empty environment and an empty store.

      +

      In environment-based definitions of lambda-calculi, lambda abstractions +evaluate to so-called closures:

      +
      rule <k> lambda X:Id . E => closure(Rho,X,E) ...</k>
      +     <env> Rho </env>
      +
      +

      A closure is like a lambda abstraction, but it also holds the environment +in which it was declared. This way, when invoked, a closure knows where to +find in the store the values of all the variables that its body expression +refers to. We will define the lookup rule shortly.

      +

      Therefore, unlike in the substitution-based definitions of LAMBDA and +LAMBDA++, neither the lambda abstractions nor the identifiers are values +anymore here, because they both evaluate further: lambda abstractions to +closures and identifiers to their values in the store. In fact, the only +values at this moment are the closures, and they are purely semantic entities, +which cannot be used explicitly in programs. That's why we modified the +original syntax of the language to include no Val syntactic category +anymore, and that's why we need to add closures as values now; same like +before, we add a Val syntactic category which is subsorted +to KResult. In general, whenever you have any strictness attributes, +your should also define some K results.

      +

      Invoking a closure is a bit more involved than the substitution-based +beta-reduction: we need to switch to the closure's environment, then create a +new, or fresh, binding for the closure's parameter to the value passed to the +closure, then evaluate the closure's body, and then switch back to the +caller's environment, which needs to be stored somewhere in the meanwhile. +We can do all these with one rule:

      +
      rule <k> closure(Rho,X,E) V:Val => E ~> Rho' ...</k>
      +     <env> Rho' => Rho[X <- !N] </env>
      +     <store>... .Map => (!N:Int |-> V) ...</store>
      +
      +

      Therefore, we atomically do all the following:

      +
        +
      • switch the computation to the closure's body, E, followed by a +caller-environment-recovery task Rho' (note that Rho' is the +current environment),
      • +
      • generate a fresh location !N (the ! is important, we discuss it below), +bind X to !N in closure's environment and switch the current environment +Rho' to that one,
      • +
      • write the value passed to the closure, V, at location !N.
      • +
      +

      This was the most complex K rule we've seen so far in the tutorial. Note, +however, that this one rule achieves a lot. It is, in fact, quite compact +considering how much it does. Note also that everything that this K rule +mentions is needed also conceptually in order to achieve this task, so it +is minimal from that point of view. That would not be the case if we +used, instead, a conventional rewrite rule, because we would have had to +mention the remaining store, say Sigma, in both sides of the rule, to say +it stays unchanged. Here we just use ....

      +

      The declaration of the fresh variable above, !N, is new and needs +some explanation. First, note that !N appears only in the right-hand-side +terms in the rule, that is, it is not matched when the rule is applied. +Instead, a fresh Nat element is generated each time the rule is applied. +In K, we can define syntactic categories which have the capability to +generate fresh elements like above, using unbound variables whose name starts +with a !. The details of how to do that are beyond the scope of this +tutorial (see Tutorial 6). All we need to know here is that an arbitrary +fresh element of that syntactic category is generated each time the rule +is applied. We cannot rely on the particular name or value of the generated +element, because that can change with the next version of the K tool, or +even from execution to execution with the same version. All you can rely +on is that each newly generated element is distinct from the previously +generated elements for the same syntactic category.

      +

      Unlike in the substitution-based definition, we now also need a lookup rule:

      +
      rule <k> X => V ...</k>
      +     <env>... X |-> N ...</env>
      +     <store>... N |-> V ...</store>
      +
      +

      This rule speaks for itself: replace X by the value V located in the store +at X's location N in the current environment.

      +

      The only thing left to define is the auxiliary environment-recovery operation:

      +

      rule _:Val ~> (Rho => .) ... _ => Rho

      +

      When the item preceding the environment recovery task Rho in the +computation becomes a value, replace the current environment with Rho +and dissolve Rho from the computation.

      +

      Let us kompile and ... fail:

      +
      kompile lambda
      +
      +

      gives a parsing error saying that V:Val does not fit there in the closure +invocation rule. That's because Val and Exp are currently completely +disconnected, so K rightfully complains that we want to apply a value to +another one, because application was defined to work with expressions, not +values. What we forgot here was to state that Exp includes Val:

      +
      syntax Exp ::= Val
      +
      +

      Now everything works, but it is a good time to reflect a bit.

      +

      So we added closures, which are inherently semantic entities, to the syntax +of expressions. Does that mean that we can now write LAMBDA programs with +closures in them? Interestingly, with our current definition of LAMBDA, +which purposely did not follow the nice organization of IMP into syntax and +semantic modules, and with K's default parser, kast, you can. But you are +not supposed to speculate this! In fact, if you use an external parser, that +parser will reject programs with explicit closures. Also, if we split the +LAMBDA definition into two modules, one called LAMBDA-SYNTAX containing +exclusively the desired program syntax and one called LAMBDA importing the +former and defining the syntax of the auxiliary operations and the semantics, +then even K's default parser will reject programs using auxiliary syntactic +constructs.

      +

      Indeed, when you kompile a language, say lang.k, the tool will by default +attempt to find a module LANG-SYNTAX and generate the program parser from +that. If it cannot find it, then it will use the module LANG instead. There +are also ways to tell kompile precisely which syntax module you want to use +for the program parser if you don't like the default convention. +See kompile --help.

      +

      Another insightful thought to reflect upon, is the relationship between your +language's values and other syntactic categories. It is often the case that +values form a subset of the original language syntax, like in IMP (Part 2 of +the tutorial), but sometimes that is not true, like in our case here. When +that happens, in order for the semantics to be given smoothly and uniformly +using the original syntax, you need to extend your language's original +syntactic categories with the new values. The same holds true in other +semantic approaches, not only in K, even in ones which are considered purely +syntactic. As it should be clear by now, K does not enforce you to use a +purely syntactic style in your definitions; nevertheless, K does allow you to +develop purely syntactic definitions, like LAMBDA in Part 1 of the tutorial, +if you prefer those.

      +

      krun some programs, such as those provided in Lesson 1 of the LAMBDA +tutorial (Part 1). Note the closures, both as results in the <k/> cell, +and as values in the store. Also, since variables are not values anymore, +expressions that contain free variables may get stuck with one of those on +top of their computation. See, for example, free-variable-capture.lambda, +which gets stuck on z, because z is free, so it cannot evaluate it. +If you want, you can go ahead and manually provide a configuration with +z mapped to some location in the environment and that location mapped to +some value in the store, and then you can also execute this program. The +program omega.lambda should still loop.

      +

      Although we completely changed the definitional style of LAMBDA, the semantics +of the other constructs do not need to change, as seen in the next lesson.

      +

      Go to Lesson 3, LAMBDA++: Reusing Existing Semantics.

      +

      MOVIE (out of date) [8'02"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_3/NOTES/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_3/NOTES/index.html new file mode 100644 index 00000000000..14c7a76ca6b --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_3/NOTES/index.html @@ -0,0 +1,393 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +
        +
      • Cut-and-paste is a poor-man's approach to reuse.
      • +
      +

      Indeed, it is. A better way to reuse, which requires a bit of planning ahead, +is to put each feature in its own module. Then you can simply include the +modules containing the features you want to reuse. Our point in this lesson +was that such reuse is possible, not to teach the best way to do it in +practice. Good methodologies on how to use a technology are equally important.

      +
        +
      • Do we need an env/store split? Couldn't we just work with a state?
      • +
      +

      Since in our language so far we never change the value of a variable, it +happens to be OK to only keep a state. That is, to collapse env/store into +state, then embed the state in closures and restore the state instead of the +environment. However, this simplistic approach breaks as soon as we add +references to our language, because functions can then modify the environment +in which they were declared, so we would have to carry over those changes when +returning from function invocations, which would be quite difficult.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_3/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_3/index.html new file mode 100644 index 00000000000..8bcd08f5e2f --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_3/index.html @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + +Reusing Existing Semantics | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Reusing Existing Semantics

      +

      In this lesson we will learn that, in some cases, we can reuse existing +semantics of language features without having to make any change!

      +

      Although the definitional style of the basic LAMBDA language changed quite +radically in our previous lesson, compared to its original definition in +Part 1 of the tutorial, we fortunately can reuse a large portion of the +previous definition. For example, let us just cut-and-paste the rest of the +definition from Lesson 7 in Part 1 of the tutorial.

      +

      Let us kompile and krun all the remaining programs from Part 1 of the +tutorial. Everything should work fine, although the store contains lots of +garbage. Garbage collection is an interesting topic, but we do not do it +here. Nevertheless, much of this garbage is caused by the intricate use of +the fixed-point combinator to define recursion. In a future lesson in this +tutorial we will see that a different, environment-based definition of +fixed-points will allocate much less memory.

      +

      One interesting question at this stage is: how do we know when we can reuse +an existing semantics of a language feature? Well, I'm afraid the answer is: +we don't. In the next lesson we will learn how reuse can fail for quite subtle +reasons, which are impossible to detect statically (and some non-experts may +fail to even detect them at all).

      +

      Go to Lesson 4, LAMBDA++: Do Not Reuse Blindly!.

      +

      MOVIE (out of date) [3'21"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_4/NOTES/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_4/NOTES/index.html new file mode 100644 index 00000000000..ea9854f5b3a --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_4/NOTES/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      With the current version of the tool (as of Sept 12, 2013), the +callcc-env1.lambda program actually evaluates to 4, as expected. +But the comments in the README are still valid, because it could just as +well evaluate to 3. For example, just replace ...+x with x+..., and it +should evaluate to 3 now.

      +

      Also, the first "fix" suggested in the READMEm to make "+" seqstrict, only +works for that particular program. It does not fix the problem if we change +the program as indicated above. In that case "+" it would need to be +seqstrict(2,1).

      +

      Also, callcc-env2.lambda evaluates to 3 instead of 4, because of the +particular order in which the strictness of the application operation is +applied. If you make application seqstrict(2,1) then you get 4.

      +

      Dec 06, 2014: Looks like we should discuss the --search and --transition +options before this lesson, and then kompile the definition with option +--transition = computational and krun it with --search.

      +

      The README.md says "One is to make + seqstrict in the semantics, to +enforce its evaluation from left-to-right. Do it and then run the program +above again;". Then it continues and says "The problem is now the +non-deterministic evaluation strategy of the function application construct". +Grigore will add this as an exercise, asking reader to fix this +non-determinism. Then ask them to propose another example where you still get +non-determinism; can they?

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_4/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_4/index.html new file mode 100644 index 00000000000..0fe48805234 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_4/index.html @@ -0,0 +1,469 @@ + + + + + + + + + + + + + + +Do Not Reuse Blindly! | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Do Not Reuse Blindly!

      +

      It may be tempting to base your decision to reuse an existing semantics of +a language feature solely on syntactic considerations; for example, to reuse +whenever the parser does not complain. As seen in this lesson, this could +be quite risky.

      +

      Let's try (and fail) to reuse the definition of callcc from Lesson 1:

      +
      syntax Exp ::= "callcc" Exp  [strict]
      +syntax Val ::= cc(K)
      +rule <k> (callcc V:Val => V cc(K)) ~> K </k>
      +rule <k> cc(K) V ~> _ =>  V ~> K </k>
      +
      +

      The callcc examples that we tried in Lesson 1 work, so it may look it works.

      +

      However, the problem is that cc(K) should also include an environment, +and that environment should also be restored when cc(K) is invoked. +Let's try to illustrate this bug with callcc-env1.lambda

      +
      let x = 1 in
      +  ((callcc lambda k . (let x = 2 in (k x))) + x)
      +
      +

      where the second argument of +, x, should be bound to the top x, which +is 1. However, since callcc does not restore the environment, that x +should be looked up in the wrong, callcc-inner environment, so we should see +the overall result 4.

      +

      Hm, we get the right result, 3 ... (Note: you may get 4, depending on +your version of K and platform; but both 3 and 4 are possible results, as +explained below and seen in the tests). How can we get 3? Well, recall that ++ is strict, which means that it can evaluate its arguments in any order. +It just happened that in the execution that took place above its second +argument was evaluated first, to 1, and then the callcc was evaluated, but +its cc value K had already included the 1 instead of x ... In Part 4 of +the tutorial we will see how to explore all the non-deterministic behaviors of +a program; we could use that feature of K to debug semantics, too. +For example, in this case, we could search for all behaviors of this program +and we would indeed get two possible value results: 3 and 4.

      +

      One may think that the problem is the non-deterministic evaluation order +of +, and thus that all we need to do is to enforce a deterministic order +in which the arguments of + are evaluated. Let us follow this path to +see what happens. There are two simple ways to make the evaluation order +of +'s arguments deterministic. One is to make + seqstrict in the +semantics, to enforce its evaluation from left-to-right. Do it and then +run the program above again; you should get only one behavior for the +program above, 4, which therefore shows that copying-and-pasting our old +definition of callcc was incorrect. However, as seen shortly, that only +fixed the problem for the particular example above, but not in general. +Another conventional approach to enforce the desired evaluation order is to +modify the program to enforce the left-to-right evaluation order using let +binders, as we do in callcc-env2.lambda:

      +
      let x = 1 in
      +  let a = callcc lambda k . (let x = 2 in (k x)) in
      +    let b = x in
      +      (a + b)
      +
      +

      With your installation of K you may get the "expected" result 4 when you +execute this program, so it may look like our non-deterministic problem is +fixed. Unfortunately, it is not. Using the K tool to search for all the +behaviors in the program above reveals that the final result 3 is still +possible. Moreover, both the 3 and the 4 behaviors are possible regardless +of whether + is declared to be seqstrict or just strict. How is that +possible? The problem is now the non-deterministic evaluation strategy of +the function application construct. Indeed, recall that the semantics of +the let-in construct is defined by desugaring to lambda application:

      +
      rule let X = E in E' => (lambda X . E') E
      +
      +

      With this, the program above eventually reduces to

      +
      (lambda a . ((lambda b . a + b) x))
      +(callcc lambda k . (let x = 2 in (k x)))
      +
      +

      in an environment where x is 1. If the first expression evaluates first, +then it does so to a closure in which x is bound to a location holding 1, +so when applied later on to the x inside the argument of callcc (which is +2), it will correctly lookup x in its enclosed environment and thus the +program will evaluate to 3. On the other hand, if the second expression +evaluates first, then the cc value will freeze the first expression as is, +breaking the relationship between its x and the current environment in which +it is bound to 1, being inadvertently captured by the environment of the +let-in construct inside the callcc and thus making the entire expression +evaluate to 4.

      +

      So the morale is: Do not reuse blindly. Think!

      +

      In the next lesson we fix the environment-based semantics of callcc by having +cc also wrap an environment, besides a computation. We will also give a more +direct semantics to recursion, based on environments instead of fixed-point +combinators.

      +

      Go to Lesson 5, LAMBDA++: More Semantic Computation Items.

      +

      MOVIE (out of date) [3'37"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_5/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_5/index.html new file mode 100644 index 00000000000..a2050411434 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_5/index.html @@ -0,0 +1,444 @@ + + + + + + + + + + + + + + +More Semantic Computation Items | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      More Semantic Computation Items

      +

      In this lesson we see more examples of semantic (i.e., non-syntactic) +computational items, and how useful they can be. Specifically, we fix the +environment-based definition of callcc and give an environment-based +definition of the mu construct for recursion.

      +

      Let us first fix callcc. As discussed in Lesson 4, the problem that we +noticed there was that we only recovered the computation, but not the +environment, when a value was passed to the current continuation. This is +quite easy to fix: we modify cc to take both an environment and a +computation, and its rules to take a snapshot of the current environment with +it, and to recover it at invocation time:

      +
      syntax Val ::= cc(Map,K)
      +rule <k> (callcc V:Val => V cc(Rho,K)) ~> K </k> <env> Rho </env>
      +rule <k> cc(Rho,K) V:Val ~> _ =>  V ~> K </k> <env> _ => Rho </env>
      +
      +

      Let us kompile and make sure it works with the callcc-env2.lambda program, +which should evaluate to 3, not to 4.

      +

      Note that the cc value, which can be used as a computation item in the <k/> +cell, is now quite semantic in nature, pretty much the same as the closures.

      +

      Let us next add one more closure-like semantic computational item, for mu. +But before that, let us reuse the semantics of letrec in terms of mu that +was defined in Lesson 8 of Part 1 of the tutorial on LAMBDA:

      +
      syntax Exp ::= "letrec" Id Id "=" Exp "in" Exp [macro]
      +             | "mu" Id "." Exp                 [latex(\mu{#1}.{#2})]
      +rule letrec F:Id X = E in E' => let F = mu F . lambda X . E in E'
      +
      +

      We removed the binder annotation of mu, because it is not necessary +anymore (since we do not work with substitutions anymore).

      +

      To save the number of locations needed to evaluate mu X . E, let us replace +it with a special closure which already binds X to a fresh location holding +the closure itself:

      +
      syntax Exp ::= muclosure(Map,Exp)
      +
      +rule <k> mu X . E => muclosure(Rho[X <- !N], E) ...</k>
      +     <env> Rho </env>
      +     <store>... .Map => (!N:Int |-> muclosure(Rho[X <- !N], E)) ...</store>
      +
      +

      Since each time mu X . E is encountered during the evaluation it needs to +evaluate E, we conclude that muclosure cannot be a value. We can declare +it as either an expression or as a computation. Let's go with the former.

      +

      Finally, here is the rule unrolling the muclosure:

      +

      rule muclosure(Rho,E) => E ~> Rho' ... + Rho' => Rho

      +

      Note that the current environment Rho' needs to be saved before and +restored after E is executed, because the fixed point may be invoked +from a context with a completely different environment from the one +in which mu X . E was declared.

      +

      We are done. Let us now kompile and krun factorial-letrec.lambda from +Lesson 7 in Part 1 of the tutorial on LAMBDA. Recall that in the previous +lesson this program generated a lot of garbage into the store, due to the +need to allocate space for the arguments of all those lambda abstractions +needed to run the fixed-point combinator. Now we need much fewer locations, +essentially only locations for the argument of the factorial function, one at +each recursive call. Anyway, much better than before.

      +

      In the next lesson we wrap up the environment definition of LAMBDA++ and +generate its documentation.

      +

      Go to Lesson 6, LAMBDA++: Wrapping Up and Documenting LAMBDA++.

      +

      MOVIE (out of date) [5'19"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/NOTES/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/NOTES/index.html new file mode 100644 index 00000000000..349a2af75db --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/NOTES/index.html @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Maybe we should change the name of calCC, as it is not a good idea to have +two constructs with different semantics but names which cannot be distinguished +easily.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/callCC/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/callCC/index.html new file mode 100644 index 00000000000..34615fcc8cc --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/callCC/index.html @@ -0,0 +1,379 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      (see similar exercise in Lesson 1, with substitution instead of environments)

      +

      Define a variant of callcc, say callCC, which never returns to the +current context unless a value is specifically passed to its argument +continuation. Follow an environment-based style.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/from-call-CC-to-callcc/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/from-call-CC-to-callcc/index.html new file mode 100644 index 00000000000..25615a52aa8 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/from-call-CC-to-callcc/index.html @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Define callcc in terms of callCC, where callCC is explained in the +callCC exercise under LAMBDA++, Lesson 1. Follow an environment-based style.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/from-callcc-to-call-CC/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/from-callcc-to-call-CC/index.html new file mode 100644 index 00000000000..d9f81dc2f6d --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/exercises/from-callcc-to-call-CC/index.html @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Define callCC in terms of callcc, where callCC is explained in the +callCC exercise under LAMBDA++, Lesson 1. Follow an environment-based +style.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/index.html new file mode 100644 index 00000000000..c1db1d4838d --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/index.html @@ -0,0 +1,394 @@ + + + + + + + + + + + + + + +Wrapping Up and Documenting LAMBDA++ | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Wrapping Up and Documenting LAMBDA++

      +

      In this lesson we wrap up and nicely document LAMBDA++. In doing so, we also +take the freedom to reorganize the semantics a bit, to make it look better.

      +

      See the lambda.k file, which is self-explanatory.

      +

      Part 3 of the tutorial is now complete. Part 4 will teach you more features +of the K framework, in particular how to exhaustively explore the behaviors +of non-deterministic or concurrent programs.

      +

      MOVIE (out of date) [6'23"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/lambda/index.html b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/lambda/index.html new file mode 100644 index 00000000000..4bed87f99a3 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/lambda/index.html @@ -0,0 +1,542 @@ + + + + + + + + + + + + + + +Tutorial 3--- LAMBDA++ | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Tutorial 3--- LAMBDA++

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Abstract

      +

      This file contains an environment-based K semantic definition of LAMBDA++, an +extension of the LAMBDA language (defined in Tutorial 1) with a callcc +construct. The objective here is to further disseminate some of the features +of the K framework, in particular to illustrate how popular environment-based +and closure-based semantics can be defined in K.

      +

      For notational/kompilation/krun simplicity and to avoid OS errors, we continue +to write LAMBDA and lambda as names for modules and program extensions, +respectively, in the sequel.

      +

      To restrict the default program parser invoked by krun, namely kast, +to only parse proper LAMBDA++ programs no matter what other syntactic +constructs we add to Exp later on in the semantics, we put the actual program +syntax in a module with the suffix -SYNTAX. This issue was discussed in more +detail in Lesson 2 of this tutorial. In short, the parser generated by kompile +to be used by kast will be by default built only based on the syntax in this +module. Type kompile --help to see how to tell the parser which syntax to use.

      +
      k
      module LAMBDA-SYNTAX + imports DOMAINS-SYNTAX +
      +

      Syntax

      +

      We move all the LAMBDA++ syntax here.

      +
      k
      syntax Val ::= Int | Bool + syntax Exp ::= Val +// Basic lambda-calculus syntax + | Id + | "lambda" Id "." Exp [latex(\lambda{#1}.{#2})] + | Exp Exp [strict, left] + | "(" Exp ")" [bracket] +// Arithmetic + > "-" Int + | Exp "*" Exp [strict, left] + | Exp "/" Exp [strict] + > Exp "+" Exp [strict, left] + > Exp "<=" Exp [strict] +// Other functional constructs + syntax Exp ::= "if" Exp "then" Exp "else" Exp [strict(1)] // Conditional + | "let" Id "=" Exp "in" Exp [macro] // Let binder + | "letrec" Id Id "=" Exp "in" Exp [macro] // Letrec + | "mu" Id "." Exp [latex(\mu{#1}.{#2})] // Mu + | "callcc" Exp [strict] // Callcc +
      +

      One thing you may want to do, now that the entire syntax is in one +place, is to play with precedences. This way, you can make kompile +generate the parser you want for your programs, so that you won't have to +put lots of parentheses in your programs.

      +
      k
      endmodule + + +module LAMBDA + imports LAMBDA-SYNTAX + imports DOMAINS +
      +

      Semantics

      +

      The next module contains the semantics of all the LAMBDA++ constructs, +in the order in which their syntax was declared above.

      +

      The K Results

      +

      We should not forget to define the results of our computations. +Here is a rule of thumb: whenever you have any strictness attributes, your +should also define some K results. Or even simpler: always define your +results! (unless you define a theoretical semantics, for analysis but not +for execution purposes, you will need to define your results)

      +
      k
      syntax KResult ::= Val +
      +

      Configuration

      +

      Since LAMBDA++ is such a simple language, its configuration is minimal +for an environment-based semantics: it only contains the k cell, +an environment cell, and a store cell. An environment binds variable names +to locations, and a store binds locations to values.

      +
      k
      configuration <T color="yellow"> + <k color="green"> $PGM:Exp </k> + <env color="blue"> .Map </env> + <store color="red"> .Map </store> + </T> +
      +

      Recall that $PGM is where the program is placed by krun after parsing.

      +

      Closures

      +

      In environment-based definitions of lambda-calculi, λ-abstractions +evaluate to closures. A closure is like a λ-abstraction, +but it also holds the environment in which it was declared. This way, when +invoked, a closure knows where to find in the store the values of all the +variables that its body expression refers to. +To invoke a closure, we need to switch to closure's environment, then create +a new binding for closure's parameter, then evaluate the closure's body, and +then switch back to caller's environment.

      +
      k
      syntax Val ::= closure(Map,Id,Exp) + [latex(\textsf{closure}_\lambda({#1},{#2},{#3}))] + + rule <k> lambda X:Id . E => closure(Rho,X,E) ...</k> + <env> Rho </env> + rule <k> closure(Rho,X,E) V:Val => E ~> Rho' ...</k> + <env> Rho' => Rho[X <- !N] </env> + <store>... .Map => (!N:Int |-> V) ...</store> + rule <k> X => V ...</k> + <env>... X |-> N ...</env> + <store>... N |-> V ...</store> +
      +

      Environment Recovery

      +

      The environment-recovery computation item defined below is useful in many +semantics, like it was above. It is so useful, that there are discussions +in the K team to add it to the set of pre-defined K features.

      +
      k
      rule <k> _:Val ~> (Rho => .) ...</k> <env> _ => Rho </env> +
      +

      Arithmetic Constructs

      +

      Not much to say here. They have exactly the same semantics as in LAMBDA and +IMP. Note that we let it in programmer's hands to check that the denominator +of a division is different from zero. If a division-by-zero is issued, then +completely non-deterministic result can happen depending upon what back-end +one uses for the K tool. Currently, Maude is used and Maude gets stuck +with a term of the form I /Int 0, but one should not rely on that. +If you want to catch division-by-zero in the semantics, instead of letting +the back-end do whatever it wants, you should add a side condition to the +division rule.

      +
      k
      rule - I => 0 -Int I + rule I1 * I2 => I1 *Int I2 + rule I1 / I2 => I1 /Int I2 + rule I1 + I2 => I1 +Int I2 + rule I1 <= I2 => I1 <=Int I2 +
      +

      Conditional

      +
      k
      rule if true then E else _ => E + rule if false then _ else E => E +
      +

      Let Binder

      +
      k
      rule let X = E in E':Exp => (lambda X . E') E +
      +

      Letrec Binder

      +

      We define letrec in term of mu, whose semantics is below.

      +
      k
      rule letrec F:Id X = E in E' => let F = mu F . lambda X . E in E' +
      +

      Mu

      +

      To save the number of locations needed to evaluate μ X . E, we replace it +with a special closure which binds X to a fresh location holding the closure +itself. This has the same effect as binding X to a reference that points +back to the fixed-point.

      +
      k
      syntax Exp ::= muclosure(Map,Exp) + [latex(\textsf{closure}_\mu({#1},{#2}))] + rule <k> mu X . E => muclosure(Rho[X <- !N], E) ...</k> + <env> Rho </env> + <store>... .Map => (!N:Int |-> muclosure(Rho[X <- !N], E)) ...</store> + rule <k> muclosure(Rho,E) => E ~> Rho' ...</k> + <env> Rho' => Rho </env> +
      +

      Callcc

      +

      For callcc, we need to create a new closure-like value which +wraps both the remaining computation, and the environment in which it is +supposed to be executed. Forget the environment, and you get a wrong +callcc.

      +
      k
      syntax Val ::= cc(Map,K) + [latex(\textsf{closure}_{\texttt{callcc}}({#1},{#2}))] + rule <k> (callcc V:Val => V cc(Rho,K)) ~> K </k> <env> Rho </env> + rule <k> cc(Rho,K) V:Val ~> _ => V ~> K </k> <env> _ => Rho </env> +endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/index.html new file mode 100644 index 00000000000..10e631d6b9b --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/index.html @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + +Part 4: Defining IMP++ | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Part 4: Defining IMP++

      +

      IMP++ extends IMP, which was discussed in Part 2 of this tutorial, with several +new syntactic constructs. Also, some existing syntax is generalized, which +requires non-modular changes of the existing IMP semantics. For example, +global variable declarations become local declarations and can occur +anywhere a statement can occur. In this tutorial we will learn the following:

      +
        +
      • That (and how) existing syntax/semantics may change as a language evolves.
      • +
      • How to refine configurations as a language evolves.
      • +
      • How to define and use fresh elements of desired sorts.
      • +
      • How to tag syntactic constructs and rules, and how to use such tags +with the superheat/supercool/transition options of kompile.
      • +
      • How the search option of krun works.
      • +
      • How to stream cells holding semantic lists to the standard input/output, +and thus obtain interactive interpreters for the defined languages.
      • +
      • How to delete, save and restore cell contents.
      • +
      • How to add/delete cells dynamically.
      • +
      • More details on how the configuration abstraction mechanism works.
      • +
      +

      Like in the previous tutorials, this folder contains several lessons, each +adding new features to IMP++. Do them in order and make sure you completed +and understood the previous tutorials.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_1/NOTES/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_1/NOTES/index.html new file mode 100644 index 00000000000..2d40d7dbd25 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_1/NOTES/index.html @@ -0,0 +1,381 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Add an exercise somewhere with a print which first evaluates all its arguments +and THEN prints them. The idea is to define print to be strict and to +make the AExps list construct seqstrict, so lists of arithmetic +expressions get evaluated from left-to-right whenever they reach the top of +the <k/> cell (replace seqstrict with strict if you want expressions in +a list to evaluate non-deterministically and interleaved).

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_1/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_1/index.html new file mode 100644 index 00000000000..0569e181dfe --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_1/index.html @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + +Extending/Changing an Existing Language Syntax | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Extending/Changing an Existing Language Syntax

      +

      Here we learn how to extend the syntax of an existing language, both with +new syntactic constructs and with more general uses of existing constructs. +The latter, in particular, requires changes of the existing semantics.

      +

      Consider the IMP language, as defined in Lesson 4 of Part 2 of the tutorial.

      +

      Let us first add the new syntactic constructs, with their precedences:

      +
        +
      • variable increment, ++, which increments an integer variable and +evaluates to the new value;
      • +
      • read, which reads and evaluates to a new integer from the input buffer;
      • +
      • print, which takes a comma-separated list of arithmetic expressions and +evaluates and prints each of them in order, from left to right, to the +output buffer; we therefore define a new list syntactic category, AExps, +which we pass as an argument to print; note we do not want to declare +print to be strict, because we do not want to first evaluate the +arguments and then print them (for example, if the second argument performs +an illegal operation, say division by zero, we still want to print the first +argument); we also go ahead and add strings as arithmetic expressions, +because we intend print to also take strings, in order to print nice +messages to the user;
      • +
      • halt, which abruptly terminates the program; and
      • +
      • spawn, which takes a statement and creates a new concurrent thread +executing it and sharing its environment with the parent thread.
      • +
      +

      Also, we want to allow local variable declarations, which can appear anywhere +a statement can appear. Their scope ranges from the place they are defined +until the end of the current block, and they can shadow previous declarations, +both inside and outside the current block. The simplest way to define the +syntax of the new variable declarations is as ordinary statements, at the same +time removing the previous Pgm syntactic category and its construct. +Programs are now just statements.

      +

      We are now done with adding the new syntax and modifying the old one. +Note that the old syntax was modified in a way which makes the previous IMP +programs still parse, but this time as statements. Let us then modify +the configuration variable $PGM to have the sort Stmt instead of Pgm, +and let us try to run the old IMP programs, for example sum.imp.

      +

      Note that they actually get stuck with the global declaration on the top +of their computations. This is because variable declarations are now treated +like any statements, in particular, the sequential composition rule applies. +This makes the old IMP rule for global variable declarations not match anymore. +We can easily fix it by replacing the anonymous variable _, which matched +the program's statement that now turned into the remaining computation in +the <k/> cell, with the cell frame variable ..., which matches the +remaining computation. Similarly, we have to change the rule for the case +where there are no variables left to declare into one that dissolves itself.

      +

      We can now run all the previous IMP programs, in spite of the fact that +our IMP++ semantics is incomplete and, more interestingly, in spite of the +fact that our current semantics of blocks is incorrect in what regards the +semantics of local variable declarations (note that the old IMP programs do +not declare block-local variables, which is why they still run correctly).

      +

      Let us also write some proper IMP++ programs, which we would like to execute +once we give semantics to the new constructs.

      +

      div.imp is a program manifesting non-deterministic behaviors due to the +desired non-deterministic evaluation strategy of division and the fact that +expressions will have side effects once we add variable increment. We will +be able to see all the different behaviors of this program. Challenge: can +you identify the behavior where the program performs a division-by-zero?

      +

      If we run div.imp now, it will get stuck with the variable increment +construct on top of the computation cell. Once we give it a semantics, +div.imp will execute completely (all the other constructs in div.imp +already have their semantics defined as part of IMP).

      +

      Note that some people prefer to define all their semantics in a by need +style, that is, they first write and parse lots of programs, and then they +add semantics to each language construct on which any of the programs gets +stuck, and so on and so forth until they can run all the programs.

      +

      io.imp is a program which exercises the input/output capabilities of the +language: reads two integers and prints three strings and an integer. +Note that the variable declaration is not the first statement anymore.

      +

      sum-io.imp is an interactive variant of the sum program.

      +

      spawn.imp is a program which dynamically creates two threads that interact +with the main thread via the shared variable x. Lots of behaviors will be +seen here once we give spawn the right semantics.

      +

      Finally, locals.imp tests whether variable shadowing/unshadowing works well.

      +

      In the next lesson we will prepare the configuration for the new constructs, +and will see what it takes to adapt the semantics to the new configuration. +Specifically, we will split the state cell into an environment cell and a +store cell, like in LAMBDA++ in Part 3 of the tutorial.

      +

      Go to Lesson 2, IMP++: Configuration Refinement; Freshness.

      +

      MOVIE (out of date) [07'47"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_2/NOTES/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_2/NOTES/index.html new file mode 100644 index 00000000000..13564c72ac8 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_2/NOTES/index.html @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      update discussion on fresh; it has already been explained in lambda++

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_2/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_2/index.html new file mode 100644 index 00000000000..45498ed4262 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_2/index.html @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + +Configuration Refinement; Freshness | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Configuration Refinement; Freshness

      +

      To prepare for the semantics of threads and local variables, in this lesson we +split the state cell into an environment and a store. The environment and +the store will be similar to those in the definition of LAMBDA++ in Part +3 of the Tutorial. This configuration refinement will require us to change +some of IMP's rules, namely those that used the state.

      +

      To split the state map, which binds program variables to values, into an +environment mapping program variables to locations and a store mapping +locations to values, we replace in the configuration declaration the cell

      +
      <state color="red"> .Map </state>
      +
      +

      with two cells

      +
      <env color="LightSkyBlue"> .Map </env>
      +<store color="red"> .Map </store>
      +
      +

      Structurally speaking, this split of a cell into other cells is a major +semantic change, which, unfortunately, requires us to revisit the existing +rules that used the state cell. One could, of course, argue that we could +have avoided this problem if we had followed from the very beginning the +good-practice style to work with an environment and a store, instead of a +monolithic state. While that is a valid argument, highlighting the fact that +modularity is not only a feature of the framework alone, but one should also +follow good practices to achieve it, it is also true that if all we wanted +in Part 2 of the tutorial was to define IMP as is, then the split of the state +in an environment and a store is unnecessary and not really justified.

      +

      The first rule which used a state cell is the lookup rule:

      +
      rule <k> X:Id => I ...</k> <state>... X |-> I ...</state>
      +
      +

      We modify it as follows:

      +
      rule <k> X:Id => I ...</k>
      +     <env>... X |-> N ...</env>
      +     <store>... N |-> I ...</store>
      +
      +

      So we first match the location N of X in the environment, then the value +I at location N in the store, and finally we rewrite X to I into the +computation. This rule also shows an instance of a more complex +multiset matching, where two variables (X and N) are matched each twice.

      +

      The assignment rule is modified quite similarly.

      +

      The variable declaration rule is trickier, though, because we need to allocate +a fresh location in the store and bind the newly declared variable to it. +This is quite similar to the way we allocated space for variables in +the environment-based definition of LAMBDA++ in Part 3 of the tutorial.

      +
      rule <k> int (X,Xs => Xs); ...</k>
      +     <env> Rho => Rho[X <- !N:Int] </env>
      +     <store>... .Map => !N |-> 0 ...</store>
      +
      +

      Note the use of the fresh (!N) variable notation above. Recall from +the LAMBDA++ tutorial that each time the rule with fresh (!) variables is +applied, fresh elements of corresponding sorts are generated for the fresh +variables, distinct from all the previously generated elements; also, we +cannot and should not assume anything about the particular element that is +being generated, except that it is different from the previous ones.

      +

      kompile and krun sum.imp to see how the fresh locations have been +generated and used. There were two fresh locations needed, for the two +variables. Note also that a cell holding the counter has been added to the +configuration.

      +

      In the next lesson we will add the semantics of variable increment, and see +how that yields non-deterministic behaviors in programs and how to explore +those behaviors using the K tool.

      +

      Go to Lesson 3, IMP++: Tagging; Superheat/Supercool Kompilation Options.

      +

      MOVIE (out of date) [04'06"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_3/NOTES/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_3/NOTES/index.html new file mode 100644 index 00000000000..998b5516065 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_3/NOTES/index.html @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      We eliminated the superheat/supercool optimization. Now we only need to use +the transition option. So the video is out of synch now.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_3/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_3/index.html new file mode 100644 index 00000000000..128e91a0b64 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_3/index.html @@ -0,0 +1,492 @@ + + + + + + + + + + + + + + +Tagging; Transition Kompilation Option | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Tagging; Transition Kompilation Option

      +

      In this lesson we add the semantics of variable increment. In doing so, we +learn how to tag syntactic constructs and rules and then use such tags to +instruct the kompile tool to generate the desired language model that is +amenable for exhaustive analysis.

      +

      The variable increment rule is self-explanatory:

      +
      rule <k> ++X => I +Int 1 ...</k>
      +     <env>... X |-> N ...</env>
      +     <store>... N |-> (I => I +Int 1) ...</store>
      +
      +

      We can now run programs like our div.imp program introduced in Lesson 1. +Do it.

      +

      The addition of increment makes the evaluation of expressions have side +effects. That, in combination with the non-determinism allowed by the +strictness attributes in how expression constructs evaluate their +arguments, makes expressions in particular and programs in general have +non-deterministic behaviors. One possible execution of the div.imp program +assigns 1 to y's location, for example, but this program manifests several +other behaviors, too.

      +

      To see all the (final-state) behaviors that a program can have, you can call +the krun tool with the option --search. For example:

      +
      krun div.imp --search
      +
      +

      Oops, we see only one solution, the same as when we ran it without search.

      +

      Here is what happens. krun can only explore as much of the transition +system associated to a program as kompile allowed the generated language +model to yield. Since most of the K users are interested in language models +that execute efficiently, that is, in faster interpreters for the defined +languages, by default kompile optimizes the generated language model for +execution. In particular, it inserts no backtracking markers, which krun +uses when called with the --search option in order to systematically generate +the entire transition system associated to a program. This is why krun +showed us only one solution when run with the --search option on div.imp.

      +

      We next explain how to tell kompile what kind of language model we are +interested in for analysis purposes. When you experiment with non-determinism +in a language semantics, you should keep it in mind that the --transition +option of kompile allows you to configure what counts as a transition in +your language model. We here only discuss transitions due to the +non-deterministic evaluation strategies of language constructs, but we will +see in future lectures (see Lesson 6 of IMP++, where we add concurrency) that +we can also have transitions due to non-deterministic applications of rewrite +rules.

      +

      If you want to explore the entire behavior space due to non-deterministic +evaluation strategies, then you should include all the language constructs +in the --transition option. This may sound like the obvious thing to +always do, but as soon as you do it you soon realize that it is way too much +in practice when you deal with large languages or programs. There are simply +too many program behaviors to consider, and krun will likely hang +on you or crush. For example, a small ten-statement program where each +statement uses one strict expression construct already has 1000+ behaviors for +krun to explore! Driven by practical needs of its users, the K tool +therefore allows you to finely tune the generated language models using the +--transition option.

      +

      To state which constructs are to be considered to generate transitions in the +generated language model, and for other reasons, too, the K tool allows you to +tag any production and any rule by putting the tag in brackets. You can associate +multiple tags to the same construct or rule, and more than one construct or +rule can have the same tag. As an example, let us tag the division construct +with division, the lookup rule with lookup and the increment rule with +increment. The tags of the rules are not needed in this lesson, we do it only +to demonstrate that rules can also be tagged.

      +

      The least intrusive way to enforce our current language to explore the +entire space of behaviors due to the strictness of division is to kompile it +with the following option:

      +
      kompile imp.k --transition "division"
      +
      +

      It is interesting to note that the lookup and increment rules are the only +two rules which can trigger non-deterministic behaviors for division, because +no other rule but these two can ever apply while a division operation is +heated. Previous versions of K allowed you to also specify which rules could +trigger non-deterministic behaviors of operator evaluation strategies, +but that option was rarely used and is not available anymore.

      +

      Note that it is highly non-trivial to say precisely whether a strict language +construct may yield non-deterministic behaviors. For example, division's +strictness would yield no non-determinism if the language had no side effects. +It is even harder to say so for a particular program. Consequently, our K +implementation makes no attempt to automatically detect which operations +should be tagged as transitions. Instead, it provides the functionality to +let you decide it.

      +

      Now the command

      +
      krun div.imp --search
      +
      +

      shows us all five behaviors of this program. Interestingly, one +of the five behaviors yields a division by zero!

      +

      The --transition option can be quite useful when you experiment with your +language designs or when you formally analyze programs for certain kinds of +errors. Please let us know if you ever need more finer-grained control over +the non-determinism of your language models.

      +

      Before we conclude this lesson, we'd like to let you know one trick, which +you will hopefully not overuse: you can tag elements in your K definition with +kompile option names, and those elements will be automatically included in +their corresponding options. For example, if you tag the division production +with transition then the command

      +
      kompile imp
      +
      +

      is completely equivalent to the previous kompile command.

      +

      Please use this default behavior with caution, or even better, try to avoid +using it! You may be tempted to add the transition tag to lots of elements +and then forget about them; your language models will then be increasingly slower +when you execute them and you may wonder why ... This convention is typically +convenient when you want to quickly experiment with non-determinism and do not +want to bother inventing tag names and calling kompile with options.

      +

      In the next lesson we add input/output to our language and learn how to +generate a model of it which behaves like an interactive interpreter!

      +

      Go to Lesson 4, IMP++: Semantic Lists; Input/Output Streaming.

      +

      MOVIE (out of date) [06'56"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_4/NOTES/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_4/NOTES/index.html new file mode 100644 index 00000000000..6a03b4efb0e --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_4/NOTES/index.html @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Make sure cells have the same indentation, which should use normal +spaces, not tabs. Tabs look differently in different editors.

      +

      The tests here include all the imp and imp++ programs, but of course +the imp ones do not display any output, so their .out files are empty. +But this way we at least make sure we test that these programs +do not fail/crash and that nothing is output, so it is better that what +we used to have in K3.6.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_4/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_4/index.html new file mode 100644 index 00000000000..0d342321a7c --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_4/index.html @@ -0,0 +1,484 @@ + + + + + + + + + + + + + + +Semantic Lists; Input/Output Streaming | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Semantic Lists; Input/Output Streaming

      +

      In this lesson we add semantics to the read and print IMP++ constructs. +In doing so, we also learn how to use semantic lists and how to connect +cells holding semantic lists to the standard input and standard output. +This allows us to turn the K semantics into an interactive interpreter.

      +

      We start by adding two new cells to the configuration,

      +
      <in color="magenta"> .List </in>
      +<out color="Orchid"> .List </out>
      +
      +

      each holding a semantic list, initially empty. Semantic lists are +space-separated sequences of items, each item being a term of the form +ListItem(t), where t is a term of sort K. Recall that the semantic maps, +which we use for states, environments, stores, etc., are sets of pairs +t1 |-> t2, where t1 and t2 are terms of sort K. The ListItem wrapper +is currently needed, to avoid parsing ambiguities.

      +

      Since we want the print statement to also print strings, we need to tell +K that strings are results. To make it more interesting, let us also overload +the + symbol on arithmetic expressions to also take strings and, as a +result, to concatenate them. Since + is already strict, we only need to add +a rule reducing the IMP addition of strings to the builtin operation +String +which concatenates two strings.

      +

      The semantics of read is immediate: read and consumes the first integer item +from the <in/> cell; note that our read only reads integer values (it gets +stuck if the first item in the <in/> cell is not an integer).

      +

      The semantics of print is a bit trickier. Recall that print takes an +arbitrary number of arithmetic expression arguments, and evaluates and outputs +each of them in order, from left to right. For example, +print("Hello", 3/0, "Bye"); outputs "Hello" and then gets stuck on the +illegal division by zero operation. In other words, we do not want it to +first evaluate all its arguments and then print them, because that would miss +outputting potentially valuable information. So the first step is to evaluate +the first argument of print. In some sense, what we'd like to say is that +print has the evaluation strategy strict(1). However, strictness +attributes only work with individual language constructs, while what we need +is an evaluation strategy that involves two constructs: print and the list +(comma) construct of AExps. If we naively associate print the strict(1) +evaluation strategy then its first and unique argument, an AExps list, will +be scheduled for evaluation and the execution will get stuck because we have +no rules for evaluating AExps terms. If we make the list construct of +AExps strict then we get the wrong semantics for print which first +evaluates all its arguments and then outputs them. The correct way to +tell K that print should evaluate only its first argument is by using a +context declaration:

      +
      context print(HOLE:AExp, _);
      +
      +

      Note the HOLE of sort AExp above. Contexts allow us to define finer-grain +evaluation strategies than the strictness attributes, involving potentially +more than one language construct, like above. The HOLE indicates the +argument which is requested to be evaluated. For example, the strict +attribute of division corresponds to two contexts:

      +
      context HOLE / _
      +context _ / HOLE
      +
      +

      In their full generality, contexts can be any terms with precisely one +occurrence of a HOLE, and with arbitrary side conditions on any variables +occurring in the context term as well as on the HOLE. See Part 6 of the +tutorial for more examples.

      +

      Once evaluated, the first argument of print is expected to become either an +integer or a string. Since we want to print both integers and string values, +to avoid writing two rules, one for each type of value, we instead add a new +syntactic category, Printable, which is the union of integers and strings.

      +

      Let us kompile and krun the io.imp program discussed in Lesson 1. As +expected, it gets stuck with a read construct on top of the computation and +with an empty <in/> cell. To run it, we need to provide some items in the +<in/> cell, so that the rule of read can match. Let us add

      +
      <in> ListItem(3) ListItem(5) ListItem(7) </in>
      +
      +

      Now, if we krun io.imp, we can see that its execution completes normally +(the <k/> cell is empty), that the first two items have been removed by the +two read constructs from the <in/> cell, and that the desired strings and +numbers have been placed into the <out/> cell.

      +

      Cells holding semantic lists can be connected to the standard input and +standard output buffers, and krun knows how to handle these appropriately. +Let us connect the <in/> cell to the standard input using the cell attribute +stream="stdin" and the <out/> cell to the standard output with the +attribute stream="sdtout". A cell connected to the standard input will +take its items from the standard input and block the rewriting process when +an input is needed until an item is available in the standard input buffer. +A cell connected to the standard output buffer will send all its items, in +order, to the standard output.

      +

      Let us kompile and krun io.imp again. It prints the message and then +waits for your input numbers. Type in two numbers, then press <Enter>. +A message with their sum is then printed, followed by the final configuration. +If you do not want to see the final configuration, and thus obtain a realistic +interpreter for our language, then call krun with the option --output none:

      +
      krun io.imp --output none
      +
      +

      Let us now krun our interactive sum program, which continuously reads numbers +from the console and prints the sum of numbers up to them:

      +
      krun sum-io.imp
      +
      +

      Try a few numbers, then 0. Note that the program terminated, but with junk +in the <k/> cell, essentially with a halt statement on its top. Of course, +because halt has been reached and it has no semantics yet.

      +

      In the next lesson we give the semantics of halt and also fix the semantics +of blocks with local variable declarations.

      +

      Go to Lesson 5, IMP++: Deleting, Saving and Restoring Cell Contents.

      +

      MOVIE (out of date) [05'21"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_5/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_5/index.html new file mode 100644 index 00000000000..6376869c3df --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_5/index.html @@ -0,0 +1,434 @@ + + + + + + + + + + + + + + +Deleting, Saving and Restoring Cell Contents | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Deleting, Saving and Restoring Cell Contents

      +

      In this lesson we will see how easily we can delete, save and/or restore +contents of cells in order to achieve the desired semantics of language +constructs that involve abrupt changes of control or environments. We have +seen similar or related K features in the LAMBDA++ language in Part 3 of the +tutorial.

      +

      Let us start by adding semantics to the halt statement. As its name says, +what we want is to abruptly terminate the execution of the program. Moreover, +we want the program configuration to look as if the program terminated +normally, with an empty computation cell. The simplest way to achieve that is +to simply empty the computation cell when halt is encountered:

      +
      rule <k> halt; ~> _ => . </k>
      +
      +

      It is important to mention the entire <k/> cell here, with both its membranes +closed, to make sure that its entire contents is discarded. Note the +anonymous variable, which matches the rest of the computation.

      +

      kompile and krun sum-io.imp. Note that unlike in Lesson 4, the program +terminates with an empty computation cell now.

      +

      As mentioned earlier, the semantics of blocks that was inherited from IMP is +wrong. Program locals.imp shows it very clearly: the environments are not +correctly restored at block exits. One way to fix the problem is to take +a snapshot of the current environment when a block is entered and save it +somewhere, and then to restore it when the block is left. There are many +ways to do this, which you can explore on your own: for example you can add +a new list cell for this task where to push/pop the environment snapshots in +a stack style; or you can use the existing environment cell for this purpose, +but then you need to change the variable access rules to search through the +stacked environments for the variable.

      +

      My preferred solution is to follow a style similar to how we saved/restored +LAMBDA++ environments in Part 3 of the Tutorial, namely to use the already +existing <k/> cell for such operations. More specifically, we place a +reminder item in the computation whenever we need to take a snapshot of +some cell contents; the item simply consists of the entire contents of the cell. +Then, when the reminder item is reached, we restore the contents of the cell:

      +
      rule <k> {S} => S ~> Rho ...</k> <env> Rho </env>
      +
      +

      The only thing left now is to give the definition of environment restore:

      +
      rule <k> Rho => . ...</k> <env> _ => Rho </env>
      +
      +

      Done. kompile and krun locals.imp. Everything should work correctly now. +Note that the rule above is different from the one we had for LAMBDA++ in +Part 3 of the tutorial, in that here there is no value preceding the environment +restoration item in the computation; that's because IMP++ statements, +unlike LAMBDA++'s expressions, evaluate to nothing (.).

      +

      In the next lesson we will give semantics to the spawn S construct, which +dynamically creates a concurrent shared-memory thread executing statement S.

      +

      Go to Lesson 6, IMP++: Adding/Deleting Cells Dynamically; Configuration Abstraction, Part 2.

      +

      MOVIE (out of date) [04'30"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_6/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_6/index.html new file mode 100644 index 00000000000..ab2f7681e6b --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_6/index.html @@ -0,0 +1,569 @@ + + + + + + + + + + + + + + +Adding/Deleting Cells Dynamically; Configuration Abstraction, Part 2 | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Adding/Deleting Cells Dynamically; Configuration Abstraction, Part 2

      +

      In this lesson we add dynamic thread creation and termination to IMP, and +while doing so we learn how to define and use configurations whose structure +can evolve dynamically.

      +

      Recall that the intended semantics of spawn S is to spawn a new concurrent +thread that executes S. The new thread is being passed at creation time +its parent's environment, so it can share with its parent the memory +locations that its parent had access to at creation time. No other locations +can be shared, and no other memory sharing mechanism is available. +The parent and the child threads can evolve unrestricted, in particular they +can change their environments by declaring new variables or shadowing existing +ones, can create other threads, and so on.

      +

      The above suggests that each thread should have its own computation and its +own environment. This can be elegantly achieved if we group the <k/> and +<env/> cells in a <thread/> cell in the configuration. Since at any given +moment during the execution of a program there could be zero, one or more +instances of such a <thread/> cell in the configuration, it is a good idea +to declare the <thread/> cell with multiplicity * (i.e., zero, one or more):

      +
      <thread multiplicity="*" color="blue">
      +  <k color="green"> $PGM:Stmt </k>
      +  <env color="LightSkyBlue"> .Map </env>
      +</thread>
      +
      +

      This multiplicity declaration is not necessary, but it is a good idea to do +it for several reasons:

      +
        +
      1. it may help the configuration abstraction process, +which may in turn significantly increase the compactness and modularity of +your subsequent rules;
      2. +
      3. it may help various analysis and execution tools, +for example static analyzers to give you error messages when you create cells +where you should not, or K compilers to improve performance by starting +actual concurrent hardware threads or processes corresponding to each cell +instance; and
      4. +
      5. it may help you better understand and control the dynamics +of your configuration, and thus your overall semantics.
      6. +
      +

      For good encapsulation, I also prefer to put all thread cells into one cell, +<threads/>. This is technically unnecessary, though; to convince yourself +that this is indeed the case, you can remove this cell once we are done with +the semantics and everything will work without having to make any changes.

      +

      Before we continue, let us kompile an krun some programs that used to +work, say sum-io.imp. In spite of the relatively radical configuration +reorganization, those programs execute just fine! How is that possible? +In particular, why do rules like the lookup and assignment still work, +unchanged, in spite of the fact that the <k/> and <env/> cells are not at +the same level with the <store/> cell in the configuration anymore?

      +

      Welcome to configuration abstraction, part 2. Recall that the role of +configuration abstraction is to allow you to only write the relevant +information in each rule, and have the compiler fill-in the obvious and boring +details. According to the configuration that we declared for our new +language, there is only one reasonable way to complete rules like the lookup, +namely to place the <k/> and </env> cells inside a <thread/> cell, +inside a <threads/> cell:

      +
      rule <threads>...
      +       <thread>...
      +         <k> X:Id => I ...</k>
      +         <env>... X |-> N ...</env>
      +       ...</thread>
      +     ...<threads/>
      +     <store>... N |-> I ...</store>  [lookup]
      +
      +

      This is the most direct, compact and local way to complete the configuration +context of the lookup rule. If for some reason you wanted here to match the +<k/> cell of one thread and the <env/> cell of another thread, then you +would need to explicitly tell K so, by mentioning the two thread cells, +for example:

      +
      rule <thread>...
      +         <k> X:Id => I ...</k>
      +     ...</thread>
      +     <thread>...
      +         <env>... X |-> N ...</env>
      +     ...</thread>
      +     <store>... N |-> I ...</store>  [lookup]
      +
      +

      By default, K completes rules in a greedy style. Think this way: what is the +minimal number of changes to my rule to make it fit the declared +configuration? That's what the K tool will do.

      +

      Configuration abstraction is technically unnecessary, but once you start +using it and get a feel for how it works, it will become your best friend. +It allows you to focus on the essentials of your semantics, and at the same +time gives you flexibility in changing the configuration later on without +having to touch the rules. For example, it allows you to remove the +<threads/> cell from the configuration, if you don't like it, without +having to touch any rule.

      +

      We are now ready to give the semantics of spawn:

      +
      rule <k> spawn S => . ...</k> <env> Rho </env>
      +     (. => <thread>... <k> S </k> <env> Rho </env> ...</thread>)
      +
      +

      Note configuration abstraction at work, again. Taking into account +the declared configuration, and in particular the multiplicity information +* in the <thread/> cell, the only reasonable way to complete the rule +above is to wrap the <k/> and <env/> cells on the first line within a +<thread/> cell, and to fill-in the ...s in the child thread with the +default contents of the other subcells in <thread/>. In this case there +are no other cells, so we can get rid of those ...s, but that would +decrease the modularity of this rule: indeed, we may later on add other +cells within <thread/> as the language evolves, for example a function +or an exception stack, etc.

      +

      In theory, we should be able to write the rule above even more compactly +and modularly, namely as

      +
      rule <k> spawn S => . ...</k> <env> Rho </env>
      +     (. => <k> S </k> <env> Rho </env>)
      +
      +

      Unfortunately, this currently does not work in the K tool, due to some +known limitations of our current configuration abstraction algorithm. +This latter rule would be more modular, because it would not even depend +on the cell name thread. For example, we may later decide to change +thread into agent, and we would not have to touch this rule. +We hope this current limitation will be eliminated soon.

      +

      Once a thread terminates, its computation cell becomes empty. When that +happens, we can go ahead and remove the useless thread cell:

      +
      rule <thread>... <k> . </k> ...</thread> => .
      +
      +

      Let's see what we've got. kompile and krun spawn.imp. +Note the following:

      +
        +
      • The <threads/> cell is empty, so all threads terminated normally;
      • +
      • The value printed is different from the value in the store; the store value +is not even the one obtained if the threads executed sequentially.
      • +
      +

      Therefore, interesting behaviors may happen; we would like to see them all!

      +

      Based on prior experience with krun's search option, we would hope that

      +
      krun spawn.imp --search
      +
      +

      shows all the behaviors. However, the above does not work, for two reasons.

      +

      First, spawn.imp is an interactive program, which reads a number from the +standard input. When analyzing programs exhaustively using the search option, +krun has to disable the streaming capabilities (just think about it and you +will realize why). The best you can do in terms of interactivity with search +is to pipe some input to krun: krun will flush the standard input buffer +into the cells connected to it when creating the initial configuration (will +do that no matter whether you run it with or without the --search option). +For example:

      +
      echo 23 | krun spawn.imp --search
      +
      +

      puts 23 in the standard input buffer, which is then transferred in the +<in/> cell as a list item, and then the exhaustive search procedure is +invoked.

      +

      Second, even after piping some input, the spawn.imp program still manifests +only one behavior, which does not seem right. There should be many more.

      +

      As explained in Lesson 3, by default kompile optimizes the generated +language model for execution. In particular, it does not insert any +backtracking markers where transition attempts should be made, so krun +lacks the information it needs to exhaustively search the generated language +model. Like we did in Lesson 3 with the language constructs, we also have +to explicitly tell kompile which rules should be considered as actual +transitions. A theoretically correct but practically unfeasible approach +to search all possible behaviors is to consider all rules as transitions. +Even more than with the non-deterministic strictness of language constructs +in Lesson 3, such a naive solution would make the number of behaviors, and +thus krun, explode. Remember that a two-thread program with 150 statements +each manifests more behaviors than particles in the known universe! +Consequently, unless your multi-threaded programs are very small, you will +most likely want to control which rules should be considered transitions and +which should not.

      +

      A good rule of thumb is to include as transitions only those rules which +compete for behaviors. That is, those rules which may yield a different +behavior if we choose to apply them when other rules match as well. +The rule for addition, for example, is a clear example of a rule which +should not be a transition: indeed, 3+7 will rewrite to 10 now and also +later. On the other hand, the lookup rule should be a transition. Indeed, +if we delay the lookup of variable x, then other threads may write x in the +meanwhile (with an increment or an assignment rule) and thus yield a +different behavior.

      +

      Let us discuss and tag those rules which should be transitions: lookup and +increment need to be transitions and we already tagged them in Lesson 3; +the read rule needs to also be a transition, because it may complete with +other instances of itself in other threads; assignment needs to also be a +transition, and so should be the first rule for print.

      +

      Let us now kompile with the transition option set as desired:

      +
      kompile imp --transition "lookup increment assignment read print"
      +
      +

      Now echo 23 | krun spawn.imp --search gives us all 12 behaviors of the +spawn.imp program.

      +

      Like for non-deterministically strict operations which can be tagged as +transitions, it is highly non-trivial to say precisely which rules need +to be transitions. So krun makes no attempt to automatically detect it. +Instead, it provides the functionality to let you decide it.

      +

      We currently have no mechanism for thread synchronization. In the next lesson +we add a join statement, which allows a thread to wait until another completes.

      +

      Go to Lesson 7, IMP++: Everything Changes: Syntax, Configuration, Semantics.

      +

      MOVIE (out of date) [11'40"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_7/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_7/index.html new file mode 100644 index 00000000000..cbd09f5652d --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_7/index.html @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + +Everything Changes: Syntax, Configuration, Semantics | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Everything Changes: Syntax, Configuration, Semantics

      +

      In this lesson we add thread joining, one of the simplest thread +synchronization mechanisms. In doing so, we need to add unique ids +to threads in the configuration, and to modify the syntax to allow spawn +to return the id of the newly created thread. This gives us an opportunity +to make several other small syntactic and semantics changes to the language, +which make it more powerful or more compact at a rather low cost.

      +

      Before we start, let us first copy and modify the previous spawn.imp program +from Lesson 1 to make use of thread joining. Recall from Lesson 6 that in some +runs of this program the main thread completed before the child threads, +printing a possibly undesired value of x. What we want now is to assign +unique ids to the two spawned threads, and then to modify the main thread to +join the two child threads before printing. To avoid adding a new type to +the language, let's assume that thread ids are integer numbers. So we declare +two integers, t1 and t2, and assign them the two spawn commands. In order +for this to parse, we will have to change the syntax of spawn to be an +arithmetic expression construct instead of a statement. Once we do that, +we have a slight syntactic annoyance: we need to put two consecutive ; +after the spawn assignment, one for the assignment statement inside the spawn, +and another for the outer assignment. To avoid the two consecutive semicolons, +we can syntactically enforce spawn to take a block as argument, instead of a +statement. Now it looks better. The new spawn.imp program is still +non-deterministic, because the two threads can execute in any order and even +continue to have a data-race on the shared variable x, but we should see fewer +behaviors when we use the join statements. If we want to fully synchronize +this program, we can have the second thread start with a join(t1) statement. +Then we should only see one behavior for this program.

      +

      Let us now modify the language semantics. First, we move the spawn +construct from statements to expressions, and make it take a block. +Second, we add one more sub-cell to the thread cell in the configuration, +<id/>, to hold the unique identifier of the thread. We want the main +thread to have id 0, so we initialize this cell with 0. Third, we modify +the spawn rule to generate a fresh integer identifier, which is put in the +<id/> cell of the child thread and returned as a result of spawn in the +parent thread. Fourth, let us add the join statement to the language, +both syntactically and semantically. So in order for the join(T) statement +to execute, thread T must have its computation empty. However, in order +for this to work we have to get rid of the thread termination cleanup rule. +Indeed, we need to store somewhere the information that thread T terminated; +the simplest way to do it is to not remove the terminated threads. Feel free +to experiment with other possibilities, too, here. For example, you may add +another cell, <done/>, in which you can store all the thread ids of the +terminated and garbage-collected threads.

      +

      Let us now kompile imp.k and convince ourselves that the new spawn.imp +with join statements indeed has fewer behaviors than its variant without +join statements. Also, let us convince ourselves that the fully synchronized +variant of it indeed has only one behavior.

      +

      Note that now spawn, like variable increment, makes the evaluation of +expressions to have side effects. Many programming languages in fact allow +expressions to be evaluated only for their side effects, and not for their +value. This is typically done by simply adding a ; after the expression +and thus turning it into a statement. For example, ++x;. Let as also +allow arithmetic expressions in our language to be used as statements, by +simply adding the production AExp ";" to Stmt, with evaluation strategy +strict and with the expected semantics discarding the value of the AExp.

      +

      Another simple change in syntax and semantics which gives our language more +power, is to remove the ; from the syntax of variable assignments and to make +them expression instead of statement constructs. This change, combined with +the previous one, will still allow us to parse all the programs that we could +parse before, but will also allow us to parse more programs. For example, we +can now do sequence assignments like in C: x = y = z = 0. The semantics +of assignment now has to return the assigned value also to the computation, +because we want the assignment expression to evaluate to the assigned value.

      +

      Let us also make another change, but this time one which only makes the +definition more compact. Instead of defining statement sequential +composition as a binary construct for statements, let us define a new +syntactic construct, Stmts, as whitespace-separated lists of Stmt. This +allows us to get rid of the empty blocks, because we can change the syntax of +blocks to {Stmts} and Stmts also allows the empty sequence of statements. +However, we do have to make sure that .Stmts dissolves.

      +

      In general, unless you are defining a well-established programming language, +it is quite likely that your definitions will suffer lots of changes like the +ones seen in this lecture. You add a new construct, which suggests changes +in the existing syntax making in fact your language parse more programs, +which then requires corresponding changes in the semantics, and so on. +Also, compact definitions are desirable in general, because they are easier +to read and easier to change if needed later.

      +

      In the next lesson we wrap up and document the definition of IMP++.

      +

      Go to Lesson 8, IMP++: Wrapping up Larger Languages.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_8/imp/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_8/imp/index.html new file mode 100644 index 00000000000..2e5355d531b --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_8/imp/index.html @@ -0,0 +1,954 @@ + + + + + + + + + + + + + + +IMP++ | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      IMP++

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Abstract

      +

      This is the K semantic definition of the IMP++ language. +IMP++ extends the IMP language with the features listed below. We +strongly recommend you to first familiarize yourself with the IMP +language and its K definition in Tutorial 2 before proceeding.

      +

      Strings and concatenation of strings. Strings are useful +for the print statement, which is discussed below. For +string concatenation, we use the same + construct that we use +for addition (so we overload it).

      +

      Variable increment. We only add a pre-increment construct: +++x increments variable x and evaluates to the +incremented value. Variable increment makes the evaluation of +expressions have side effects, and thus makes the evaluation strategies +of the various language constructs have an influence on the set +of possible program behaviors.

      +

      Input and output. IMP++ adds a read() expression +construct which reads an integer number and evaluates to it, and +a variadic (i.e., it has an arbitrary number of arguments) statement +construct print(e1,e2,...,en) which evaluates its arguments +and then outputs their values. Note that the K tool allows to +connect the input and output cells to the standard input and output +buffers, this way compiling the language definition into an +interactive interpreter.

      +

      Abrupt termination. The halt statement simply halts +the program. The K tool shows the resulting configuration, as if the +program terminated normally. We therefore assume that an external +observer does not care whether the program terminates normally or +abruptly, same like with exit statements in conventional +programming languages like C.

      +

      Dynamic threads. The expression construct spawn s +starts a new concurrent thread that executes statement s, +which is expected to be a block, and evaluates immediately to a fresh +thread identifier that is also assigned to the newly created thread. +The new thread is given at creation time the environment of its +parent, so it can access all its parent's variables. This allows for +the parent thread, and the child thread to communicate; it also allows +for races and "unexpected" behaviors, so be careful. +For thread synchronization, IMP++ provides a thread join statement +construct join t;, where t evaluates to a thread +identifier, which stalls the current thread until thread t +completes its computation. For simplicity, we here assume a +sequentially consistent shared memory model. To experiment with other +memory models, see the definition of KERNELC.

      +

      Blocks and local variables. IMP++ allows blocks enclosed by +curly brackets. Also, IMP's global variable declaration construct is +generalized to be used anywhere as a statement, not only at the +beginning of the program. As expected, the scope of the declared +variables is from their declaration point till the end of the most +nested enclosing block.

      +

      What You Will Learn Here

      +
        +
      • How to define a less trivial language in K, as explained above.
      • +
      • How to use the superheat and supercool +options of the K tool kompile to exhaustively explore the +non-determinism due to underspecified evaluation strategies.
      • +
      • How to use the transition option of the K tool to +exhaustively explore the non-determinism due to concurrency.
      • +
      • How to connect certain cells in the configuration to the +standard input and standard output, and thus turn the krun +tool into an interactive interpreter for the defined language.
      • +
      • How to exhaustively search for the non-deterministic behaviors +of a program using the search option of krun.
      • +
      +
      k
      module IMP-SYNTAX + imports DOMAINS-SYNTAX +
      +

      Syntax

      +

      IMP++ adds several syntactic constructs to IMP. Also, since the +variable declaration construct is generalized to be used anywhere a +statement can be used, not only at the beginning of the program, we +need to remove the previous global variable declaration of IMP and +instead add a variable declaration statement construct

      +

      We do not re-discuss the constructs which are taken over from IMP, +except when their syntax has been subtly modified (such as, for +example, the syntax of the previous "statement" assignment which +is now obtained by composing the new assignment expression, and the +new expression statement constructs); go the last lesson of +Tutorial 2 if you are interested in IMP's constructs. For execution +purposes, we tag the addition and division operations as members of the +addition and division groups. These groups have no theoretical significance, +in that they do not affect the semantics of the language in any way. They only +have practical relevance, specific to our implementation of the K tool. +Specifically, we can tell the K tool (using its superheat and supercool +options) that we want to exhaustively explore all the non-deterministic +behaviors (due to strictness) of these language constructs. For performance +reasons, by default the K tool chooses an arbitrary but fixed order to +evaluate the arguments of the strict language constructs, thus possibly losing +behaviors due to missed interleavings. This aspect was irrelevant in IMP, +because its expressions had no side effects, but it becomes relevant in IMP++.

      +

      The syntax of the IMP++ constructs is self-explanatory. Note that assignment +is now an expression construct. Also, print is variadic, taking a +list of expressions as argument. It is also strict, which means that the +entire list of expressions, that is, each expression in the list, will be +evaluated. Note also that we have now defined sequential composition +of statements as a whitespace-separated list of statements, aliased with +the nonterminal Stmts, and block as such a (possibly empty) sequence +of statements surrounded by curly brackets.

      +
      k
      syntax AExp ::= Int | String | Id + | "++" Id + | "read" "(" ")" + | "-" AExp [strict] + | "(" AExp ")" [bracket] + > AExp "/" AExp [left, strict, group(division)] + > AExp "+" AExp [left, strict] + > "spawn" Block + > Id "=" AExp [strict(2)] + syntax BExp ::= Bool + | AExp "<=" AExp [seqstrict, latex({#1}\leq{#2})] + | "!" BExp [strict] + | "(" BExp ")" [bracket] + > BExp "&&" BExp [left, strict(1)] + syntax Block ::= "{" Stmts "}" + syntax Stmt ::= Block + | AExp ";" [strict] + | "if" "(" BExp ")" + Block "else" Block [strict(1)] + | "while" "(" BExp ")" Block + | "int" Ids ";" + | "print" "(" AExps ")" ";" + | "halt" ";" + > "join" AExp ";" [strict] + + syntax Ids ::= List{Id,","} [klabel(exps)] + syntax AExps ::= List{AExp,","} [klabel(exps)] + syntax Stmts ::= List{Stmt,""} + syntax AExps ::= Ids +endmodule + + +module IMP + imports IMP-SYNTAX + imports DOMAINS +
      +

      Semantics

      +

      We next give the semantics of IMP++. We start by first defining its +configuration.

      +

      Configuration

      +

      The original configuration of IMP has been extended to include +all the various additional cells needed for IMP++. +To facilitate the semantics of threads, more specifically +to naturally give them access to their parent's variables, we prefer a +(rather conventional) split of the program state into an +environment and a store. An environment maps +variable names into locations, while a store maps locations +into values. Stores are also sometimes called states, or +heaps, or memory, in the literature. Like values, locations +can be anything. For simplicity, here we assume they are natural +numbers. Moreover, each thread has its own environment, so it knows +where all the variables that it has access to are located in the store +(that includes its locally declared variables as well as the variables +of its parent thread), and its own unique identifier. The store is +shared by all threads. For simplicity, we assume a sequentially consistent +memory model in IMP++. Note that the thread cell has multiplicity +*, meaning that there could be zero, one, or more instances of that cell +in the configuration at any given time. This multiplicity information +is important for K's configuration abstraction process: it tells +K how to complete rules which, in order to increase the modularity of the +definition, choose to not mention the entire configuration context. +The in and out cells hold the input and the output +buffers as lists of items.

      +
      k
      configuration <T color="yellow"> + <threads color="orange"> + <thread multiplicity="*" color="blue" type="Map"> + <id color="black"> 0 </id> + <k color="green"> $PGM:Stmts </k> + <env color="LightSkyBlue"> .Map </env> + </thread> + </threads> +// <br/> + <store color="red"> .Map </store> +// <input color="magenta"> .List </input> +// <output color="Orchid"> .List </output> + <input color="magenta" stream="stdin"> .List </input> + <output color="Orchid" stream="stdout"> .List </output> + </T> +// Replace the <input/> and <output/> cells with the next two in order to +// initialize the input buffer through krun +// <input color="magenta"> $IN:List </input> +// <output color="Orchid"> .List </output> +// Replace the <input/> and <output/> cells with the next two to connect the +// input/output buffers to stdin/stdout through krun +// <input color="magenta" stream="stdin"> .List </input> +// <output color="Orchid" stream="stdout"> .List </output> +// Replace the <input/> and <output/> cells with the next two to connect the +// input/output buffers to stdin/stdout and also allow input through krun +// <input color="magenta" stream="stdin"> $IN:List </input> +// <output color="Orchid" stream="stdout"> .List </output> +
      +

      We can also use configuration variables to initialize +the configuration through krun. For example, we may want to +pass a few list items in the in cell when the program makes +use of read(), so that the semantics does not get stuck. +Recall from IMP that configuration variables start with a ParseError: KaTeX parse error: Expected group after '_' at position 63: …, for example, +_̲PGM) and can be initialized with any string by +krun; or course, the string should parse to a term of the +corresponding sort, otherwise errors will be generated. +Moreover, K allows you to connect list cells to the standard input or +the standard output. For example, if you add the attribute +stream="stdin" to the in cell, then krun +will prompt the user to pass input when the in cell is empty +and any semantic rule needs at least one item to be present there in +order to match. Similarly but dually, if you add the attribute +stream="stdout" to the out cell, then any item +placed into this cell by any rule will be promptly sent to the +standard output. This way, krun can be used to obtain +interactive interpreters based directly on the K semantics of the +language. For example:

      +
      shell
      sh$ krun sum-io.imp --output none +Add numbers up to (<= 0 to quit)? 10 +Sum = 55 +Add numbers up to (<= 0 to quit)? 1000 +Sum = 500500 +Add numbers up to (<= 0 to quit)? 0 +sh$ +
      +

      The option --output none instructs krun to not +display the resulting configuration after the program executes. The +input/output streaming works with or without this option, although +if you don't use the option then a configuration with empty +in and out cells will be displayed after the program +is executed. You can also initialize the configuration using +configuration variables and stream the contents of the cells to +standard input/output at the same time. For example, if you use a +configuration variable in the in cell and pass contents to it +through krun, then that contents will be first consumed and +then the user will be prompted to introduce additional input if the +program's execution encounters more read() constructs.

      +

      The old IMP constructs

      +

      The semantics of the old IMP constructs is almost identical to their +semantics in the original IMP language, except for those constructs +making use of the program state and for those whose syntax has slightly +changed. Indeed, the rules for variable lookup and assignment in IMP +accessed the state cell, but that cell is not available in IMP++ +anymore. Instead, we have to use the combination of environment and store +cells. Thanks to K's implicit configuration abstraction, we do not have +to mention the thread and threads cells: these are +automatically inferred (and added by the K tool at compile time) from the +definition of the configuration above, as there is only one correct +way to complete the configuration context of these rules in order to +match the configuration declared above. In our case here, "correct way" +means that the k and env cells will be considered as +being part of the same thread cell, as opposed to each being part +of a different thread. Configuration abstraction is crucial for modularity, +because it gives us the possibility to write our definitions in a way that +may not require us to revisit existing rules when we change the configuration. +Changes in the configuration are quite frequent in practice, typically +needed in order to accommodate new language features. For example, +imagine that we initially did not have threads in IMP++. There +would be no need for the thread and threads cells in +the configuration then, the cells k and env being simply +placed at the top level in the T cell, together with the +already existing cells. Then the rules below would be exactly the +same. Thus, configuration abstraction allows you to not have to +modify your rules when you make structural changes in your language +configuration.

      +

      Below we list the semantics of the old IMP constructs, referring the +reader to the K semantics of IMP for their meaning. Like we tagged the +addition and the division rules above in the syntax, we also tag the lookup +and the assignment rules below (as members of the groups lookup and +assignment), because we want to refer to them when we generate the +language model (with the kompile tool), basically to allow them to +generate (possibly non-deterministic) transitions. Indeed, these two rules, +unlike the other rules corresponding to old IMP constructs, can yield +non-deterministic behaviors when more threads are executed concurrently. +In terms of rewriting, these two rules can "compete" with each other on +some program configurations, in the sense that they can both match at the +same time and different behaviors may be obtained depending upon which of +them is chosen first.

      +
      k
      syntax KResult ::= Int | Bool +
      +

      Variable lookup

      +
      k
      rule <k> X:Id => I ...</k> + <env>... X |-> N ...</env> + <store>... N |-> I ...</store> [group(lookup)] +
      +

      Arithmetic constructs

      +
      k
      rule I1 / I2 => I1 /Int I2 when I2 =/=Int 0 + rule I1 + I2 => I1 +Int I2 + rule - I => 0 -Int I +
      +

      Boolean constructs

      +
      k
      rule I1 <= I2 => I1 <=Int I2 + rule ! T => notBool T + rule true && B => B + rule false && _ => false +
      +

      Variable assignment

      +

      Note that the old IMP assignment statement X = I; is now composed of two +constructs: an assignment expression construct X = I, followed by a +semicolon ; turning the expression into a statement. The rationale behind +this syntactic restructuring has been explained in Lesson 7. Here is the +semantics of the two constructs:

      +
      k
      rule _:Int; => . + rule <k> X = I:Int => I ...</k> + <env>... X |-> N ...</env> + <store>... N |-> (_ => I) ...</store> [group(assignment)] +
      +

      Sequential composition

      +

      Sequential composition has been defined as a whitespace-separated syntactic +list of statements. Recall that syntactic lists are actually syntactic +sugar for cons-lists. Therefore, the following two rules eventually +sequentialize a syntactic list of statements s1 s2 ... sn.. into the +corresponding computation s1 ~> s2 ~> ... ~> sn.

      +
      k
      rule .Stmts => . + rule S:Stmt Ss:Stmts => S ~> Ss +
      +

      Conditional statement

      +
      k
      rule if (true) S else _ => S + rule if (false) _ else S => S +
      +

      While loop

      +

      The only thing to notice here is that the empty block has been replaced +with the block holding the explicit empty sequence. That's because in +the semantics all empty lists become explicit corresponding dots +(to avoid parsing ambiguities)

      +
      k
      rule while (B) S => if (B) {S while (B) S} else {.Stmts} +
      +

      The new IMP++ constructs

      +

      We next discuss the semantics of the new IMP++ constructs.

      +

      Strings

      +

      First, we have to state that strings are also results. +Second, we give the semantics of IMP++ string concatenation (which +uses the already existing addition symbol + from IMP) by +reduction to the built-in string concatenation operation.

      +
      k
      syntax KResult ::= String + rule Str1 + Str2 => Str1 +String Str2 +
      +

      Variable increment

      +

      Like variable lookup, this is also meant to be a supercool transition: we +want it to count both in the non-determinism due to strict operations above +it in the computation and in the non-determinism due to thread +interleavings. This rule also relies on K's configuration abstraction. +Without abstraction, you would have to also include the thread and +threads cells.

      +
      k
      rule <k> ++X => I +Int 1 ...</k> + <env>... X |-> N ...</env> + <store>... N |-> (I => I +Int 1) ...</store> [group(increment)] +
      +

      Read

      +

      The read() construct evaluates to the first integer in the +input buffer, which it consumes. Note that this rule is put in the group +increment. This is because we will include it in the set of +potentially non-deterministic transitions when we kompile the definition; +we want to do that because two or more threads can "compete" on +reading the next integer from the input buffer, and different choices +for the next transition can lead to different behaviors.

      +
      k
      rule <k> read() => I ...</k> + <input> ListItem(I:Int) => .List ...</input> [group(read)] +
      +

      Print

      +

      The print statement is strict, so all its arguments are +eventually evaluated (recall that print is variadic). We +append each of its evaluated arguments, in order, to the output buffer, +and structurally discard the residual print statement with an +empty list of arguments. We only want to allow printing integers and +strings, so we define a Printable syntactic category including +only these and define the print statement to only print +Printable elements. Alternatively, we could have had two +similar rules, one for integers and one for strings. Recall that, +currently, K's lists are cons-lists, so we cannot simply rewrite the +head of a list (P) into a list (.). The first rule below is tagged, +because we want to include it in the list of transitions when we kompile; +different threads may compete on the output buffer and we want to capture +all behaviors.

      +
      k
      syntax Printable ::= Int | String + +/* currently it is necessary to subsort Printable to AExp, + but future K should be able to infer that automatically. */ + syntax AExp ::= Printable + + context print(HOLE:AExp, _AEs:AExps); + + rule <k> print(P:Printable,AEs => AEs); ...</k> + <output>... .List => ListItem(P) </output> [group(print)] + rule print(.AExps); => . +
      +

      Halt

      +

      The halt statement empties the computation, so the rewriting process +simply terminates as if the program terminated normally. Interestingly, once +we add threads to the language, the halt statement as defined below +will terminate the current thread only. If you want an abrupt termination +statement that halts the entire program, then you need to discard the entire +contents of the threads cell, so the entire computation abruptly +terminates the entire program, no matter how many concurrent threads it has, +because there is nothing else to rewrite.

      +
      k
      rule <k> halt; ~> _ => . </k> +
      +

      Spawn thread

      +

      A spawned thread is passed its parent's environment at creation time. +The spawn expression in the parent thread is immediately +replaced by the unique identifier of the newly created thread, so the +parent thread can continue its execution. We only consider a sequentially +consistent shared memory model for IMP++, but other memory models can also +be defined in K; see, for example, the definition of KERNELC. Note that +the rule below does not need to be tagged in order to make it a transition +when we kompile, because the creation of the thread itself does not interfere +with the execution of other threads. Also, note that K's configuration +abstraction is at heavy work here, in two different places. First, the +parent thread's k and env cells are wrapped within a +thread cell. Second, the child thread's k, env +and id cells are also wrapped within a thread cell. Why +that way and not putting all these four cells together within the +same thread, or even create an additional threads cell at top +holding a thread cell with the new k, env +and id? Because in the original configuration we declared +the multiplicity of the thread cell to be *, which +effectively tells the K tool that zero, one or more such cells can +co-exist in a configuration at any moment. The other cells have the +default multiplicity one, so they are not allowed to multiply. +Thus, the only way to complete the rule below in a way consistent with +the declared configuration is to wrap the first two cells in a +thread cell, and the latter two cells under the . +also in a thread cell. Once the rule applies, the spawning +thread cell will add a new thread cell next to it, which is consistent +with the declared configuration cell multiplicity. The unique identifier +of the new thread is generated using the fresh side condition.

      +
      k
      rule <k> spawn S => !T:Int +Int 1 ...</k> <env> Rho </env> + (.Bag => <thread>... <k> S </k> <env> Rho </env> <id> !T +Int 1 </id> ...</thread>) +
      +

      Join thread

      +

      A thread who wants to join another thread T has to wait until +the computation of T becomes empty. When that happens, the +join statement is simply dissolved. The terminated thread is not removed, +because we want to allow possible other join statements to also dissolve.

      +
      k
      rule <k> join(T); => . ...</k> <thread>... <k>.</k> <id>T</id> ...</thread> +
      +

      Blocks

      +

      The body statement of a block is executed normally, making sure +that the environment at the block entry point is saved in the computation, +in order to be recovered after the block body statement. This step is +necessary because blocks can declare new variables having the same +name as variables which already exist in the environment, and our +semantics of variable declarations is to update the environment map in +the declared variable with a fresh location. Thus, variables which +are shadowed lose their original binding, which is why we take a +snapshot of the environment at block entrance and place it after the +block body (see the semantics of environment recovery at the end of +this module). Note that any store updates through variables which are +not declared locally are kept at the end of the block, since the store +is not saved/restored. An alternative to this environment save/restore +approach is to actually maintain a stack of environments and to push a +new layer at block entrance and pop it at block exit. The variable +lookup/assign/increment operations then also need to change, so we do +not prefer that non-modular approach. Compilers solve this problem by +statically renaming all local variables into fresh ones, to completely +eliminate shadowing and thus environment saving/restoring.

      +
      k
      rule <k> {Ss} => Ss ~> Rho ...</k> <env> Rho </env> +
      +

      Variable declaration

      +

      We allocate a fresh location for each newly declared variable and +initialize it with 0.

      +
      k
      rule <k> int (X,Xs => Xs); ...</k> + <env> Rho => Rho[X <- !N:Int] </env> + <store>... .Map => !N |-> 0 ...</store> + rule int .Ids; => . +
      +

      Auxiliary operations

      +

      We only have one auxiliary operation in IMP++, the environment +recovery. Its role is to discard the current environment in the +env cell and replace it with the environment that it holds.

      +
      k
      rule <k> Rho => . ...</k> <env> _ => Rho </env> +
      +

      If you want to avoid useless environment recovery steps and keep the size +of the computation structure smaller, then you can also add the rule

      +
        rule (_:Map => .) ~> _:Map
      +
      +

      This rule acts like a ``tail recursion'' optimization, but for blocks. */

      +
      k
      // verification ids + syntax Id ::= "n" [token] + | "sum" [token] + | "a" [token] + | "b" [token] + | "c" [token] +endmodule +
      +

      On Kompilation Options

      +

      We are done with the IMP++ semantics. The next step is to kompile the +definition using the kompile tool, this way generating a language +model. Depending upon for what you want to use the generated language model, +you may need to kompile the definition using various options. We here discuss +these options.

      +

      To tell the K tool to exhaustively explore all the behaviors due to the +non-determinism of addition, division, and threads, we have to kompile +with the command:

      +
      shell
      kompile imp.k --transition="addition division lookup assignment increment read print" +
      +

      As already mentioned, the syntax and rule groups play no theoretical or +foundational role in K. They are only a means to allow kompile to +refer to them in its options, like we did above. By default, kompile's +transition option is empty, because this yields the fastest language model when +executed. Transitions may slow down the execution, but they instrument +the language model to allow for formal analysis of program behaviors, even for +exhaustive analysis.

      +

      Theoretically, the heating/cooling rules in K are fully reversible and +unconstrained by side conditions as we showed in the semantics of IMP. +For example, the theoretical heating/cooling rules corresponding to the +strict attribute of division are the following:

      +
      E₁ / E₂ ⇒ E₁ ⤳ □ / E₂
      +E₁ ⤳ □ / E₂ ⇒ E₁ / E₂
      +E₁ / E₂ ⇒ E₂ ⤳ E₁ / □
      +E₂ ⤳ E₁ / □ ⇒ E₁ / E₂
      +
      +

      The other semantic rules apply modulo such structural rules. +For example, using heating rules we can bring a redex (a subterm which +can be reduced with semantic rules) to the front of the computation, +then reduce it, then use cooling rules to reconstruct a term over the +original syntax of the language, then heat again and +non-deterministically pick another redex, and so on and so forth +without losing any opportunities to apply semantic rules. +Nevertheless, these unrestricted heating/cooling rules may create an +immense, often unfeasibly large space of possibilities to analyze. +The --transition option implements an optimization which works +well with other implementation choices made in the current K tool. +Recall from the detailed description of the IMP language semantics that +(theoretical) reversible rules like above are restricted by default +to complementary conditional rules of the form

      +
      E₁ / E₂ ⇒ E₁ ⤳ □ / E₂
      +   if E₁ not in KResult
      +E₁ ⤳ □ / E₂ ⇒ E₁ / E₂
      +   if E₁ in KResult
      +E₁ / E₂ ⇒ E₂ ⤳ E₁ / □
      +   if E₂ not in KResult
      +E₂ ⤳ E₁ / □  ⇒ E₁ / E₂
      +   if  E₂ in KResult
      +
      +

      Therefore, our tool eagerly heats and lazily cools the computation. +In other words, heating rules apply until a redex gets placed on the +top of the computation, then some semantic rule applies and rewrites +that into a result, then a cooling rule is applied to plug the +obtained result back into its context, then another argument may be +chosen and completely heated, and so on. This leads to efficient +execution, but it may and typically does hide program behaviors. +Using the --transition option allows you to interfere with this +process and to obtain all possible non-deterministic behaviors as if +the theoretical heating/cooling rules were applied. Optimizations +of course happen under the hood, but you need not be aware of them. +Used carefully, this mechanism allows us to efficiently explore more of +the non-deterministic behaviors of a program, even all of them (like here). +For example, with the semantics of IMP++ given above, the krun +command with the --search option detects all five behaviors +of the following IMP++ program (x can be 0, 1, 2, 3, or undefined +due to division-by-zero):

      +
        int x,y;
      +  x = 1;
      +  y = ++x / (++x / x);
      +
      +

      Besides non-determinism due to underspecified argument evaluation +orders, which the current K tool addresses as explained above, there +is another important source of non-determinism in programming languages: +non-determinism due to concurrency/parallelism. For example, when two +or more threads are about to access the same location in the store and at +least one of these accesses is a write (i.e., an instance of the variable +assignment rule), there is a high chance that different choices for +the next transition lead to different program behaviors. While in the +theory of K all the count as computational steps +and hereby as transitions in the transition system associated to the +program, in practice that may yield a tremendous number of step +interleavings to consider. Most of these interleavings are behaviorally +equivalent for most purposes. For example, the fact that a thread computes +a step 8+3 ⇒ 11 is likely irrelevant for the other +threads, so one may not want to consider it as an observable transition in +the space of interleavings. Since the K tool cannot know without help which +transitions need to be explored and which do not, our approach is to +let the user say so explicitly using the transition option of +kompile.

      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/4_imp++/lesson_8/index.html b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_8/index.html new file mode 100644 index 00000000000..5fa41630eb5 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/4_imp++/lesson_8/index.html @@ -0,0 +1,404 @@ + + + + + + + + + + + + + + +Wrapping up Larger Languages | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Wrapping up Larger Languages

      +

      In this lesson we wrap up IMP++'s semantics and also generate its poster. +While doing so, we also learn how to display larger configurations in order +to make them easier to read and print.

      +

      Note that we rearrange a bit the semantics, to group the semantics of old +IMP's constructs together, and separate it from the new IMP++'s semantics.

      +

      There is a detailed discussion at the end of the document about the +--transition option of kompile, because that is important and we want +the poster to include everything we learned in this part of the tutorial.

      +

      You can go even further and manually edit the generated Latex document. +You typically want to do that when you want to publish your language +definition, or parts of it, and you need to finely tune it to fit the +editing requirements. For example, you may want to insert some negative +spaces, etc.

      +

      Part 4 of the tutorial is now complete. At this moment you should know most +of K framework's features and how to use the K tool. You can now define or +design your own programming languages, and then execute and analyze programs.

      +

      MOVIE (out of date) [06'26"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/index.html b/k-distribution/pl-tutorial/1_k/5_types/index.html new file mode 100644 index 00000000000..d62626560ee --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/index.html @@ -0,0 +1,392 @@ + + + + + + + + + + + + + + +Part 5: Defining Type Systems | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Part 5: Defining Type Systems

      +

      In this part of the tutorial we will show that defining type systems for +languages is essentially no different from defining semantics. The major +difference is that programs and fragments of programs now rewrite to their +types, instead of to concrete values. In terms of K, we will learn how +to use it for a certain particular but important kind of applications.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_1.9/NOTES/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_1.9/NOTES/index.html new file mode 100644 index 00000000000..fda3200d915 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_1.9/NOTES/index.html @@ -0,0 +1,383 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      This currently does NOT work, because of the rules

      +
      rule _:Int => int                            [anywhere]
      +rule _:Bool => bool                          [anywhere]
      +
      +

      which now rewrite ANY integer ANYWHERE to "int", including integers +that appear in the internal data-structures/functions of the builtins. +We will need to allow a strategy where "anywhere" means anywhere in one +or more computational cells.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_1/NOTES/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_1/NOTES/index.html new file mode 100644 index 00000000000..9e10486001d --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_1/NOTES/index.html @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Explain the lack of tenv(...)?

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_1/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_1/index.html new file mode 100644 index 00000000000..276446b289c --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_1/index.html @@ -0,0 +1,492 @@ + + + + + + + + + + + + + + +Imperative, Environment-Based Type Systems | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Imperative, Environment-Based Type Systems

      +

      In this lesson you learn how to define a type system for an imperative +language (the IMP++ language defined in Part 4 of the tutorial), using a style +based on type environments.

      +

      Let us copy the imp.k file from Part 4 of the tutorial, Lesson 7, which holds +the semantics of IMP++, and modify it into a type system. The resulting type +system, when executed, yields a type checker.

      +

      We start by defining the new strictness attributes of the IMP++ syntax. +While doing so, remember that programs and fragments of programs now reduce +to their types. So types will be the new results of our new (type) semantics. +We also clean up the semantics by removing the unnecessary tags, and also +use strict instead of seqstrict wherever possible, because strict gives +implementations more freedom. Interestingly, note that spawn is strict now, +because the code of the child thread should type in the current parent's type +environment. Note that this is not always the case for threads, see for example +SIMPLE in the languages tutorial, but it works here for our simpler IMP++.

      +

      From a typing perspective, the && construct is strict in both its arguments; +its short-circuit (concrete) semantics is irrelevant for its (static) type +system. Similarly, both the conditional and the while loop are strict +constructs when regarded through the typing lenses.

      +

      Finally, the sequential composition is now sequentially strict! Indeed, +statements are now going to reduce to their type, stmt, and it is critical +for sequential composition to type its argument statements left-to-right; +for example, imagine that the second argument is a variable declaration (whose +type semantics will modify the type environment).

      +

      We continue by defining the new results of computations, that is, the actual +types. In this simple imperative language, we only have a few constant types: +int, bool, string, block and stmt.

      +

      We next define the new configuration, which is actually quite simple. Besides +the <k/> cell, all we need is a type environment cell, <tenv/>, which will +hold a map from identifiers to their types. A type environment is therefore +like a state in the abstract domain of type values.

      +

      Let us next modify the semantic rules, turning them into a type system. In +short, the idea is to reduce the basic values to their types, and then have a +rule for each language construct reducing it to its result type whenever its +arguments have the expected types.

      +

      We write the rules in the order given by the syntax declarations, to make +sure we do not forget any construct.

      +

      Integers reduce to their type, int.

      +

      So do the strings.

      +

      Variables are now looked up in the type environment and reduced to their type +there. Since we only declare integer variables in IMP++, their type in tenv +will always be int. Nevertheless, we write the rule generically, so that we +would not have to change it later if we add other type declarations to IMP++. +Note that we reject programs which lookup undeclared variables. Rejection, +in this case, means rewriting getting stuck.

      +

      Variable increment types to int, provided the variable has type int.

      +

      Read types to int, because we only allow integer input.

      +

      Division is only allowed on integers, so it rewrites to int provided that its +arguments rewrite to int. Note, however, that in order to write int / int, +we have to explicitly add int to the syntax of arithmetic expressions. +Otherwise, the K parser rightfully complains, because / was declared on +arithmetic expressions, not on types. One simple and generic way to allow +types to appear anywhere, is to define Type as a syntactic subcategory of all +the other syntactic categories. Let's do it on a by-need basis, though.

      +

      Addition is overloaded, so we add two typing rules for it: one for integers +and another for strings.

      +

      As discussed, spawn types to stmt provided that its argument types to +block.

      +

      The assignment construct was strict(2); its typing policy is that the declared +type of X should be identical to the type of the assigned value. Like for +lookup, we define this rule more generically than needed for IMP++, for any +type, not only for int.

      +

      The typing rules for Boolean expression constructs are in the same spirit. +Note that we need only one rule for &&.

      +

      The typing of blocks is a bit trickier. First, note that we still need to +recover the environment after the block is typed, because we do not want the +block-local variables to be visible in the outer type environment. We recover +the type environment only after the block-enclosed statements type; moreover, +we also opportunistically yield a block type on the computation when we +discard the type environment recovery item. To account for the fact that the +block-enclosed statement can itself be a block (e.g., {{S}}), we would need an +additional rule. Since we do not like repetition, we instead group the types +block and stmt into one syntactic category, BlockOrStmtType, and now we +can have only one rule. We also include BlockOrStmtType in Type, as a +replacement for the two basic types.

      +

      The expression statement types as expected. Recall that we only allow +arithmetic expressions, which type to int, to be used as statements in IMP++.

      +

      The conditional was declared strict in all its arguments. Its typing policy +is that its first argument types to bool and its two branches to block. +If that is the case, then it yields a stmt type.

      +

      For while, its first argument should type to bool and its second to block.

      +

      Variable declarations add new bindings to the type environment. Recall that +we can only declare variables of integer type in IMP++.

      +

      The typing policy of print is that it can only print integer or string values, +and in that case it types to stmt. Like for BlockOrStmtType, to avoid +having two similar rules, one for int and another for string, we prefer to +introduce an additional syntactic category, PrintableType, which includes both +int and string types.

      +

      halt types to stmt; so its subsequent code is also typed.

      +

      join types to stmt, provided that its argument types to int.

      +

      Sequential composition was declared as a whitespace-separated sequentially +strict list. Its typing policy is that all the statements in the list should +type to stmt or block in order for the list to type to stmt. Since +lists are maintained internally as cons-lists, this is probably the simplest +way to do it:

      +
      rule .Stmts => stmt
      +rule _:BlockOrStmtType Ss => Ss
      +
      +

      Note that the first rule, which types the empty sequence of statements to stmt, +is needed anyway, to type empty blocks {} (together with the block rule).

      +

      kompile imp.k and krun all the programs in Part 4 of the tutorial. They +should all type to stmt.

      +

      In the next lesson we will define a substitution-based type system for LAMBDA.

      +

      Go to Lesson 2, Type Systems: Substitution-Based Higher-Order Type Systems.

      +

      MOVIE (out of date) [10'11"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_2/NOTES/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_2/NOTES/index.html new file mode 100644 index 00000000000..9bbd746df7c --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_2/NOTES/index.html @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Maybe we should define simply-typed lambda calculus in some earlier +lecture in tutorial 1, and then reuse its examples here.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_2/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_2/index.html new file mode 100644 index 00000000000..6ffa7a16f44 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_2/index.html @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + +Substitution-Based Higher-Order Type Systems | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Substitution-Based Higher-Order Type Systems

      +

      In this lesson you learn how to define a substitution-based type system for +a higher-order language, namely the LAMBDA language defined in Part 1 of the +tutorial.

      +

      Let us copy the definition of LAMBDA from Part 1 of the tutorial, Lesson 8. +We are going to modify it into a type systems for LAMBDA.

      +

      Before we start, it is important to clarify an important detail, namely that +our type system will yield a type checker when executed, not a type +inferencer. In particular, we are going to change the LAMBDA syntax +to allow us to associate a type to each declared variable. The +constructs which declare variables are lambda, let, letrec and mu. +The syntax of all these will therefore change.

      +

      Since here we are not interested in a LAMBDA semantics anymore, we take the +freedom to eliminate the Val syntactic category, our previous results. +Our new results are going to be the types, because programs will now reduce +to their types.

      +

      As explained, the syntax of the lambda construct needs to change, to also +declare the type of the variable that it binds. We add the new syntactic +category Type, with the following constructs: int, bool, the function +type (which gives it its higher-order status), and parentheses as bracket. +Also, we make types our K results.

      +

      We are now ready to define the typing rules.

      +

      Let us start with the typing rule for lambda abstraction: lambda X : T . E +types to the function type T -> T', where T' is the type obtained by further +typing E[T/X]. This can be elegantly achieved by reducing the lambda +abstraction to T -> E[T/X], provided that we extend the function type construct +to take expressions, not only types, as arguments, and to be strict. +This can be easily achieved by redeclaring it as a strict expression construct +(strictness in the second argument would suffice in this example, but it is +more uniform to define it strict overall).

      +

      The typing rule for application is as simple as it can get: (T1->T2) T1 => T2.

      +

      Let us now give the typing rules of arithmetic and Boolean expression +constructs. First, let us get rid of Val. Second, rewrite each value to its +type, similarly to the type system for IMP++ in the previous lesson. Third, +replace each semantic rule by its typing rule. Fourth, make sure you +do not forget to subsort Type to Exp, so your rules above will parse.

      +

      The typing policy of the conditional statement is that its first argument +should type to bool and its other two arguments should type to the same type +T, which will also be the result type of the conditional. So we make the +conditional construct strict in all its three arguments and we write the +obvious rule: if bool then T:Type else T => T. We want a runtime check that +the latter arguments are actually typed, so we write T:Type.

      +

      There is nothing special about let, except that we have to make sure we +change its syntax to account for the type of the variable that it binds. +This rule is a macro, so the let is desugared statically.

      +

      Similarly, the syntax of letrec and mu needs to change to account for the +type of the variable that they bind. The typing of letrec remains based on +its desugaring to mu; we have to make sure the types are also included now.

      +

      The typing policy of mu is that its body should type to the same type T of +its variable, which is also the type of the entire mu expression. This can +be elegantly achieved by rewriting it to (T -> T) E[T/X]. Recall that +application is strict, so E[T/X] will be eventually reduced to its type. +Then the application types correctly only if that type is also T, and in +that case the result type will also be T.

      +

      kompile and krun some programs. You can, for example, take the LAMBDA +programs from the first tutorial, modify them by adding types to their +variable declarations, and then type check them using krun.

      +

      In the next lesson we will discuss an environment-based type system +for LAMBDA.

      +

      Go to Lesson 3, Type Systems: Environment-Based Higher-Order Type Systems.

      +

      MOVIE (out of date) [6'52"]

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_3/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_3/index.html new file mode 100644 index 00000000000..2a7de6c2530 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_3/index.html @@ -0,0 +1,434 @@ + + + + + + + + + + + + + + +Environment-Based Higher-Order Type Systems | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Environment-Based Higher-Order Type Systems

      +

      In this lesson you learn how to define an environment-based type system for +a higher-order language, namely the LAMBDA language defined in Part 1 of the +tutorial.

      +

      The simplest and fastest way to proceed is to copy the substitution-based +type system of LAMBDA from the previous lesson and modify it into an +environment-based one. A large portion of the substitution-based definition +will remain unchanged. We only have to modify the rules that use +substitution.

      +

      We do not need the substitution anymore, so we can remove the require and +import statements. The syntax of types and expressions stays unchanged, but +we can now remove the binder tag of lambda.

      +

      Like in the type system of IMP++ in Lesson 1, we need a configuration that +contains, besides the <k/> cell, a <tenv/> cell that will hold the type +environment.

      +

      In an environment-based definition, unlike in a substitution-based one, we +need to lookup variables in the environment. So let us start with the +type lookup rule:

      +
      rule <k> X:Id => T ...</k> <tenv>... X |-> T ...</k>
      +
      +

      The type environment is populated by the semantic rule of lambda:

      +
      rule <k> lambda X : T . E => (T -> E) ~> Rho ...</k>
      +     <tenv> Rho => Rho[X <- T] </tenv>
      +
      +

      So X is bound to its type T in the type environment, and then T -> E +is scheduled for processing. Recall that the arrow type construct has been +extended into a strict expression construct, so E will be eventually reduced +to its type. Like in other environment-based definitions, we need to make +sure that we recover the type environment after the computation in the scope +of the declared variable terminates.

      +

      The typing rule of application does not change, so it stays as elegant as it +was in the substitution-based definition:

      +
      rule (T1 -> T2) T1 => T2
      +
      +

      So do the rules for arithmetic and Boolean constructs, and those for the +if, and let, and letrec.

      +

      The mu rule needs to change, because it was previously defined using +substitution. We modify it in the same spirit as we modified the lambda +rule: bind X to its type in the environment, schedule its body for typing +in its right context, and then recover the type environment.

      +

      Finally, we give the semantics of environment recovery, making sure +the environment is recovered only after the preceding computation is +reduced to a type:

      +

      rule _:Type ~> (Rho => .) ... _ => Rho

      +

      The changes that we applied to the substitution-based definition were +therefore quite systematic: each substitution invocation was replaced with +an appropriate type environment update/recovery.

      +

      Go to Lesson 4, Type Systems: A Naive Substitution-Based Type Inferencer.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_4/NOTES/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_4/NOTES/index.html new file mode 100644 index 00000000000..bd2316143df --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_4/NOTES/index.html @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      The README needs to be changed to reflect the fact that we now have a builtin +unification procedure. We may even want to merge this lecture with the +next one, and eliminate the approach where we throw equalities on the computation. +This needs some more thinking, though, especialy on how to smoothly glue it +with Lesson 6, where we also use equalities.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_4/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_4/index.html new file mode 100644 index 00000000000..9491f66b59c --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_4/index.html @@ -0,0 +1,577 @@ + + + + + + + + + + + + + + +A Naive Substitution-Based Type Inferencer | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      A Naive Substitution-Based Type Inferencer

      +

      In this lesson you learn how to define a naive substitution-based type +inferencer for a higher-order language, namely the LAMBDA language +defined in Part 1 of the tutorial.

      +

      Unlike in the type checker defined in Lessons 2 and 3, where we had to +associate a type with each declared variable, a type inferencer +attempts to infer the types of all the variables from the way those +variables are used. Let us take a look at this program, say plus.lambda:

      +
      lambda x . lambda y . x + y
      +
      +

      Since x and y are used in an integer addition context, we can infer +that they must have the type int and the result of the addition is +also an int, so the type of the entire expression is int -> int -> int. +Similarly, the program if.lambda

      +
      lambda x . lambda y . lambda z .
      +  if x then y else z
      +
      +

      can only make sense when x has type bool and y and z have the same +type, say t, in which case the type of the entire expression is +bool -> t -> t -> t. Since the type t can be anything, we say that +the type of this expression is polymorphic. That means that the code +above can be used in different contexts, where t can be an int, a +bool, a function type int -> int, and so on.

      +

      In the identity.lambda program

      +
      let f = lambda x . x
      +in f 1
      +
      +

      f has such a polymorphic type, which is then applied to an integer, +so this program is type-safe and its type is int.

      +

      A typical polymorphic expression is the composition

      +
      lambda f . lambda g . lambda x .
      +  g (f x)
      +
      +

      which has the type (t1 -> t2) -> (t2 -> t3) -> (t1 -> t3), polymorphic +in 3 types.

      +

      Let us now define our naive type inferencer and then we discuss more +examples. The idea is quite simple: we conceptually do the same +operations like we did within the type checker defined in Lesson 2, +with two important differences:

      +
        +
      1. instead of declaring a type with each declared variable, we assume +a fresh type for that variable; and
      2. +
      3. instead of checking that the types of expressions satisfy the +type properties of the context in which they are used, we impose +those properties as type equality constraints. A general-purpose +unification-based constraint solving mechanism is then used to solve +the generated type constraints.
      4. +
      +

      Let us start with the syntax, which is essentially identical to that +of the type checker in Lesson 2, except that bound variables are not +declared a type anymore. Also, to keep things more compact, we put +all the Exp syntax declarations in one syntax declaration this time.

      + +

      Before we modify the rules, let us first define our machinery for +adding and solving constraints. First, we require and import the +unification procedure. We do not discuss unification here, but if you +are interested you can consult the unification.k files under +k-distribution/include/kframework/builtin, which contains our current generic +definition of unification, which is written also in K. The generic unification +provides a sort, Mgu, for most-general-unifier, an operation +updateMgu(Mgu,T1,T2) which updates Mgu with additional constraints +generated by forcing the terms T1 and T2 to be equal, and an operation +applyMgu(Mgu,T) which applies Mgu to term T. For our use +of unification here, we do not even need to know how Mgu terms are +represented internally.

      +

      We define a K item construct, =, which takes two Type terms and +enforces them to be equal by means of updating the current Mgu. +Once the constraints are added to the Mgu, the equality dissolves +itself. With this semantics of = in mind, we can now go ahead and +modify the rules of the type checker systematically into rules +for a type inferencer. The changes are self-explanatory and +mechanical: for example, the rule

      +
      rule int * int => int
      +
      +

      changes into rule

      +
      rule T1:Type  * T2:Type => T1 = int ~> T2 = int ~> int
      +
      +

      generating the constraints that the two arguments of multiplication +have the type int, and the result type is int. Recall that each type +equality on the <k/> cell updates the current Mgu appropriately and +then dissolves itself; thus, the above says that after imposing the +constraints T1=int and T2=int, multiplication yields a type int.

      +

      As mentioned above, since types of variables are not declared anymore, +but inferred, we have to generate a fresh type for each variable at its +declaration time, and then generate appropriately constraints for it. +For example, the type semantics of lambda and mu become:

      +
      rule lambda X . E => T -> E[T/X]  when fresh(T:Type)
      +rule mu X . E => (T -> T) E[T/X]  when fresh(T:Type)
      +
      +

      that is, we add a condition stating that the previously declared type +is now a fresh one. This type will be further constrained by how the +variable X is being used within E.

      +

      Interestingly, the previous typing rule for lambda application is not +powerful enough anymore. Indeed, since types are not given anymore, +it may very well be the case that the inferred type of the first +argument of the application construct is not yet a function type +(remember, for example, the program composition.lambda above). What +we have to do is to enforce it to be a function type, by means of +fresh types and constraints. We can introduce a fresh type for the +result of the application, and then write the expected rule as +follows:

      +
      rule T1:Type T2:Type => T1 = (T2 -> T) ~> T  when fresh(T:Type)
      +
      +

      The conditional requires that its first argument is a bool and its +second and third arguments have the same type, which is also the +result type.

      +

      The macros do not change, in particular let is desugared into lambda +application. We will next see that this is a significant restriction, +because it limits the polymorphism of our type system.

      +

      We are done. We have a working type inferencer for LAMBDA.

      +

      Let's kompile it and krun the programs above. They all work as +expected. Let us also try some additional programs, to push it to its +limits.

      +

      First, let us test mu by means of a letrec example:

      +
      letrec f x = 3
      +in f
      +
      +

      We can also try all the programs that we had in our first tutorial, on +lambda, for example the factorial.imp program:

      +
      letrec f x = if x <= 1 then 1 else (x * (f (x + -1)))
      +in (f 10)
      +
      +

      Those programs are simple enough that they should all work as +expected with our naive type inferencer here.

      +

      Let us next try to type some tricky programs, which involve more +complex and indirect type constraints.

      +

      tricky-1.lambda:

      +
      lambda f . lambda x . lambda y . (
      +  (f x y) + x + (let x = y in x)
      +)
      +
      +

      tricky-2.lambda:

      +
      lambda x .
      +  let f = lambda y . if true then y else x
      +  in (lambda x . f 0)
      +
      +

      tricky-3.lambda:

      +
      lambda x . let f = lambda y . if true then x 7 else x y
      +           in f
      +
      +

      tricky-4.lambda:

      +
      lambda x . let f = lambda x . x
      +           in let d = (f x) + 1
      +              in x
      +
      +

      tricky-5.lambda:

      +
      lambda x . let f = lambda y . x y
      +           in let z = x 0 in f
      +
      +

      It is now time to see the limitations of this naive type inferencer. +Consider the program

      +
      let id = lambda x . x
      +in if (id true) then (id 1) else (id 2)
      +
      +

      Our type inferencer fails graciously with a clash in the <mgu/> cell +between int and bool. Indeed, the desugaring macro of let turns it +into a lambda and an application, which further enforce id to have a +type of the form t -> t for some fresh type t. The first use of id +in the condition of if will then constrain t to be bool, while the +other uses in the two branches will enforce t to be int. Thus the +clash in the <mgu/> cell.

      +

      Similarly, the program

      +
      let id = lambda x . x
      +in id id
      +
      +

      yields a different kind of conflict: if id has type t -> t, in order +to apply id to itself it must be the case that its argument, t, equals +t -> t. These two type terms cannot be unified because there is a +circular dependence on t, so we get a cycle in the <mgu/> cell.

      +

      Both limitations above will be solved when we change the semantics of +let later on, to account for the desired polymorphism.

      +

      Before we conclude this lesson, let us see one more interesting +example, where the lack of let-polymorphism leads not to a type error, +but to a less generic type:

      +
      let f1 = lambda x . x in
      +  let f2 = f1 in
      +    let f3 = f2 in
      +      let f4 = f3 in
      +        let f5 = f4 in
      +          if (f5 true) then f2 else f3
      +
      +

      Our current type inferencer will infer the type bool -> bool for the +program above. Nevertheless, since all functions f1, f2, f3, f4, f5 +are the identity function, which is polymorphic, we would expect the +entire program to type to the same polymorphic identity function type.

      +

      This limitation will be also addressed when we define our +let-polymorphic type inferencer.

      +

      Before that, in the next lesson we will show how easily we can turn +the naive substitution-based type inferencer discussed in this lesson +into a similarly naive, but environment-based type inferencer.

      +

      Go to Lesson 5, Type Systems: A Naive Environment-Based Type Inferencer.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_5/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_5/index.html new file mode 100644 index 00000000000..3fbfd3a02af --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_5/index.html @@ -0,0 +1,433 @@ + + + + + + + + + + + + + + +A Naive Environment-Based Type Inferencer | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      A Naive Environment-Based Type Inferencer

      +

      In this lesson you learn how to define a naive environment-based type +inferencer for a higher-order language. Specifically, we take the +substitution-based type inferencer for LAMBDA defined in Lesson 4 and +turn it into an environment-based one.

      +

      Recall from Lesson 3, where we defined an environment-based type +checker for LAMBDA based on the substitution-based one in Lesson 2, +that the transition from a substitution-based definition to an +environment-based one was quite systematic and mechanical: each +substitution occurrence E[T/X] is replaced by E, but at the same time +the variable X is bound to type T in the type environment. One benefit +of using type environments instead of substitution is that we replace +a linear complexity operation (the substitution) with a constant +complexity one (the variable lookup).

      +

      There is not much left to say which has not been already said in +Lesson 3: we remove the unnecessary binder annotations for the +variable binding operations, then add a <tenv/> cell to the +configuration to hold the type environment, then add a new rule for +variable lookup, and finally apply the transformation of substitutions +E[T/X] into E as explained above.

      +

      The resulting type inferencer should now work exactly the same way as +the substitution-based one, except, of course, that the resulting +configurations will contain a <tenv/> cell now.

      +

      As sanity check, let us consider two more LAMBDA programs that test +the static scoping nature of the inferencer. We do that because +faulty environment-based definitions often have this problem. The +program

      +
      let x = 1
      +in let f = lambda a . x
      +   in let x = true
      +      in f 3
      +
      +

      should type to int, not to bool, and so it does. Similarly, the +program

      +
      let y = 0
      +in letrec f x = if x <= 0
      +                then y
      +                else let y = true
      +                     in f (x + 1)
      +   in f 1
      +
      +

      should also type to int, not bool, and so it does, too.

      +

      The type inferencer defined in this lesson has the same limitations, +in terms of polymorphism, as the one in Lesson 4. In the next +lesson we will see how it can be parallelized, and in further lessons +how to make it polymorphic.

      +

      Go to Lesson 6, Type Systems: Parallel Type Checkers/Inferencers.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_6/NOTES/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_6/NOTES/index.html new file mode 100644 index 00000000000..ac413172d03 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_6/NOTES/index.html @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      The README needs to be changed to reflect the fact that we now have a builtin +unification procedure.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_6/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_6/index.html new file mode 100644 index 00000000000..454ecd52e37 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_6/index.html @@ -0,0 +1,487 @@ + + + + + + + + + + + + + + +Parallel Type Checkers/Inferencers | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Parallel Type Checkers/Inferencers

      +

      In this lesson you learn how to define parallel type checkers or +inferencers. For the sake of a choice, we will parallelize the one in +the previous lesson, but the ideas are general. We are using the same +idea to define type checkers for other languages in the K tool +distribution, such as SIMPLE and KOOL.

      +

      The idea is in fact quite simple. Instead of one monolithic typing +task, we generate many smaller tasks, which can be processed in +parallel. We use the same approach to define parallel semantics as we +used for threads in IMP++ in Part 4 of the tutorial, that is, we add a +cell holding all the parallel tasks, making sure we declare the cell +holding a task with multiplicity *. For the particular type +inferencer that we chose here, the one in Lesson 5, each task will +hold an expression to type together with a type environment (so it +knows where to lookup its free variables). We have the following +configuration then:

      +
      configuration <tasks color="yellow">
      +                <task color="orange" multiplicity="*">
      +                  <k color="green"> $PGM:Exp </k>
      +                  <tenv color="red"> .Map </tenv>
      +                </task>
      +              </tasks>
      +              <mgu color="blue"> .Mgu </mgu>
      +
      +

      Now we have to take each typing rule we had before and change it to +yield parallel typing. For example, our rule for typing +multiplication was the following in Lesson 5:

      +
      rule T1:Type * T2:Type => T1 = int ~> T2 = int ~> int
      +
      +

      Since * was strict, its two arguments eventually type, and once that +happens the rule above fires. Unfortunately, the strictness of +multiplication makes the typing of the two expressions sequential in +our previous definition. To avoid typing the two expressions +sequentially and instead generating two parallel tasks, we remove the +strict attribute of multiplication and replace the rule above with the +following:

      +
      rule <k> E1 * E2 => int ...</k> <tenv> Rho </tenv>
      +     (. => <task> <k> E1 = int </k> <tenv> Rho </tenv> </task>
      +           <task> <k> E2 = int </k> <tenv> Rho </tenv> </task>)
      +
      +

      Therefore, we generate two tasks for typing E1 and E2 in the same type +environment as the current task, and let the current task continue by +simply optimistically reducing E1*E2 to its expected result type, int. +If E1 or E2 will not type to int, then either their corresponding +tasks will get stuck or the <mgu/> cell will result into a clash or cycle, +so the program will not type overall in spite of the fact that we +allowed the task containing the multiplication to continue. This is +how we get maximum of parallelism in this case.

      +

      Before we continue, note that the new tasks hold equalities in them, +where one of its arguments is an expression, while previously the +equality construct was declared to take types. What we want now is +for the equality construct to possibly take any expressions, and first +type them and then generate the type constraint like before. This can +be done very easily by just extending the equality construct to +expressions and declaring it strict:

      +
      syntax KItem ::= Exp "=" Exp  [strict]
      +
      + +

      Unlike before, where we only passed types to the equality construct, +we now need a runtime check that its arguments are indeed types before +we can generate the updateMgu command:

      +
      rule <k> T:Type = T':Type => . ...</k>
      +     <mgu> Theta:Mgu => updateMgu(Theta,T,T') </mgu>
      +
      +

      Like before, an equality will therefore update the <mgu/> cell and then +it dissolves itself, letting the <k/> cell in the corresponding task +empty. Such empty tasks are unnecessary, so they can be erased:

      +
      rule <task>... <k> . </k> ...</task> => .
      +
      +

      We can now follow the same style as for multiplication to write the +parallel typing rules of the other arithmetic constructs, and even for +the conditional.

      +

      To parallelize the typing of lambda we generate two fresh types, one +for the variable and one for the body, and make sure that we generate +the correct type constraint and environment in the body task:

      +
      rule <k> lambda X . E => Tx -> Te ...</k> <tenv> TEnv </tenv>
      +     (. => <task> <k> E = Te </k> <tenv> TEnv[Tx/X] </tenv> </task>)
      +  when fresh(Tx:Type) andBool fresh(Te:Type)
      +
      +

      Note that the above also allows us to not need to change and then +recover the environment of the current cell.

      +

      For function application we also need to generate two fresh types:

      +
      rule <k> E1 E2 => T ...</k> <tenv> Rho </tenv>
      +     (. => <task> <k> E1 = T2 -> T </k> <tenv> Rho </tenv> </task>
      +           <task> <k> E2 = T2 </k> <tenv> Rho </tenv> </task>)
      +  when fresh(T2:Type) andBool fresh(T:Type)
      +
      +

      The only rule left is that of mu X . E. In this case we only need one +fresh type, because X, E and mu X . E have all the same type:

      +
      rule <k> mu X . E => T ...</k>  <tenv> TEnv </tenv>
      +     (. => <task> <k> E = T </k> <tenv> TEnv[T/X] </tenv> </task>)
      +  when fresh(T:Type)
      +
      +

      We do not need the type environment recovery operation, so we delete it.

      +

      We can now kompile and krun all the programs that we typed in Lesson 5. +Everything should work.

      +

      In this lesson we only aimed at parallelizing the type inferencer in +Lesson 5, not to improve its expressiveness; it still has the same +limitations in terms of polymorphism. The next lessons are dedicated +to polymorphic type inferencers.

      +

      Go to Lesson 7, Type Systems: A Naive Substitution-based Polymorphic Type Inferencer.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_7/NOTES/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_7/NOTES/index.html new file mode 100644 index 00000000000..381543928f3 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_7/NOTES/index.html @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      This approach leads to an incorrect type checker, in that programs which +lead to a runtime error will type. See tricky-5 and/or variations of it.

      +

      Discuss monomorphic vs. polymorphic types and type inferencers.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_7/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_7/index.html new file mode 100644 index 00000000000..c9ca2625c19 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_7/index.html @@ -0,0 +1,492 @@ + + + + + + + + + + + + + + +A Naive Substitution-based Polymorphic Type Inferencer | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      A Naive Substitution-based Polymorphic Type Inferencer

      +

      In this lesson you learn how little it takes to turn a naive monomorphic +type inferencer into a naive polymorphic one, basically only changing +a few characters. In terms of the K framework, you will learn that +you can have complex combinations of substitutions in K, both over +expressions and over types.

      +

      Let us start directly with the change. All we have to do is to take +the LAMBDA type inferencer in Lesson 4 and only change the macro

      +
      rule let X = E in E' => (lambda X . E') E  [macro]
      +
      +

      as follows:

      +
      rule let X = E in E' => E'[E/X]  [macro]
      +
      +

      In other words, we are inlining the beta-reduction rule of +lambda-calculus within the original rule. In terms of typing, +the above forces the type inferencer to type E in place for each +occurrence of X in E'. Unlike in the first rule, where X had to get +one type only which satisfied the constrains of all X's occurrences in +E', we now never associate any type to X anymore.

      +

      Let us kompile and krun some examples. Everything that worked with +the type inferencer in Lesson 4 should still work here, although the +types of some programs can now be more general. For example, reconsider +the nested-lets.lambda program

      +
      let f1 = lambda x . x in
      +  let f2 = f1 in
      +    let f3 = f2 in
      +      let f4 = f3 in
      +        let f5 = f4 in
      +          if (f5 true) then f2 else f3
      +
      +

      which was previously typed to bool -> bool. With the new rule above, +the sequence of lets is iteratively eliminated and we end up with the +program

      +
      if (lambda x . x) true then (lambda x . x) else (lambda x . x)
      +
      +

      which now types (with both type inferencers) to a type of the form +t -> t, for some type variable t, which is more general than the +previous bool -> bool type that the program typed to in Lesson 4.

      +

      We can also now type programs that were not typable before, such as

      +
      let id = lambda x . x
      +in if (id true) then (id 1) else (id 2)
      +
      +

      and

      +
      let id = lambda x . x
      +in id id
      +
      +

      Let us also test it on some trickier programs, also not typable +before, such as

      +
      let f = lambda x . x
      +in let g = lambda y . f y
      +   in g g
      +
      +

      which gives us a type of the form t -> t for some type variable t, +and as

      +
      let f = let g = lambda x . x
      +        in let h = lambda x . lambda x . (g g g g)
      +           in h
      +in f
      +
      +

      which types to t1 -> t2 -> t3 -> t3 for some type variables t1, t2, t3.

      +

      Here is another program which was not typable before, which is +trickier than the others above in that a lambda-bound variable appears +free in a let-bound expression:

      +
      lambda x . (
      +  let y = lambda z . x
      +  in if (y true) then (y 1) else (y (lambda x . x))
      +)
      +
      +

      The above presents no problem now, because once lambda z . x gets +substituted for y we get a well-typed expression which yields that x +has the type bool, so the entire expression types to bool -> bool.

      +

      The cheap type inferencer that we obtained above therefore works as +expected. However, it has two problems which justify a more advanced +solution. First, substitution is typically considered an elegant +mathematical instrument which is not too practical in implementations, +so an implementation of this type inferencer will likely be based on +type environments anyway. Additionally, we mix two kinds of +substitutions in this definition, one where we substitute types and +another where we substitute expressions, which can only make things +harder to implement efficiently. Second, our naive substitution of E +for X in E' can yield an exponential explosion in size of the original +program. Consider, for example, the following classic example which +is known to generate a type whose size is exponential in the size of +the program (and is thus used as an argument for why let-polymorphic +type inference is exponential in the worst-case):

      +
      let f00 = lambda x . lambda y . x in
      +  let f01 = lambda x . f00 (f00 x) in
      +    let f02 = lambda x . f01 (f01 x) in
      +      let f03 = lambda x . f02 (f02 x) in
      +        let f04 = lambda x . f03 (f03 x) in
      +          // ... you can add more nested lets here
      +          f04
      +
      +

      The particular instance of the pattern above generates a type which +has 17 type variables! The desugaring of each let doubles the size of +the program and of its resulting type. While such programs are little +likely to appear in practice, it is often the case that functions can +be quite complex and large while their type can be quite simple in the +end, so we should simply avoid retyping each function each time it is +used.

      +

      This is precisely what we will do next. Before we present the classic +let-polymorphic type inferencer in Lesson 9, which is based on +environments, we first quickly discuss in Lesson 8 an intermediate +step, namely a naive environment-based variant of the inferencer +defined here.

      +

      Go to Lesson 8, Type Systems: A Naive Environment-based Polymorphic Type Inferencer.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_8/NOTES/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_8/NOTES/index.html new file mode 100644 index 00000000000..0880c604e6b --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_8/NOTES/index.html @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      We also have to redeclare lambda and mu as binders. Program +tricky-2.lambda shows why.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_8/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_8/index.html new file mode 100644 index 00000000000..8b1a6a7e89a --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_8/index.html @@ -0,0 +1,425 @@ + + + + + + + + + + + + + + +A Naive Environment-based Polymorphic Type Inferencer | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      A Naive Environment-based Polymorphic Type Inferencer

      +

      In this short lesson we discuss how to quickly turn a naive +environment-based monomorphic type inferencer into a naive let-polymorphic +one. Like in the previous lesson, we only need to change a few +characters. In terms of the K framework, you will learn how to have +both environments and substitution in the same definition.

      +

      Like in the previous lesson, all we have to do is to take the LAMBDA +type inferencer in Lesson 5 and only change the rule

      +
      rule let X = E in E' => (lambda X . E') E
      +
      +

      as follows:

      +
      rule let X = E in E' => E'[E/X]
      +
      +

      The reasons why this works have already been explained in the previous +lesson, so we do not repeat them here.

      +

      Since our new let rule uses substitution, we have to require the +substitution module at the top and also import SUBSTITUTION in the +current module, besides the already existing UNIFICATION.

      +

      Everything which worked with the type inferencer in Lesson 7 should +also work now. Let us only try the exponential type example,

      +
      let f00 = lambda x . lambda y . x in
      +  let f01 = lambda x . f00 (f00 x) in
      +    let f02 = lambda x . f01 (f01 x) in
      +      let f03 = lambda x . f02 (f02 x) in
      +        let f04 = lambda x . f03 (f03 x) in
      +          f04
      +
      +

      As expected, this gives us precisely the same type as in Lesson 7.

      +

      So the only difference between this type inferencer and the one in +Lesson 7 is that substitution is only used for LAMBDA-to-LAMBDA +transformations, but not for infusing types within LAMBDA programs. +Thus, the syntax of LAMBDA programs is preserved intact, which some +may prefer. Nevertheless, this type inferencer is still expensive and +wasteful, because the let-bound expression is typed over and over +again in each place where the let-bound variable occurs.

      +

      In the next lesson we will discuss a type inferencer based on the +classic Damas-Hindley-Milner type system, which maximizes the reuse of +typing work by means of parametric types.

      +

      Go to Lesson 9, Type Systems: Let-Polymorphic Type Inferencer (Damas-Hindley-Milner).

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_9.5/NOTES/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_9.5/NOTES/index.html new file mode 100644 index 00000000000..b31c063af38 --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_9.5/NOTES/index.html @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      We have to test this as well; we need a test folder with a config.xml.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/5_types/lesson_9/index.html b/k-distribution/pl-tutorial/1_k/5_types/lesson_9/index.html new file mode 100644 index 00000000000..882c36ef4ed --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/5_types/lesson_9/index.html @@ -0,0 +1,542 @@ + + + + + + + + + + + + + + +Let-Polymorphic Type Inferencer (Damas-Hindley-Milner) | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Let-Polymorphic Type Inferencer (Damas-Hindley-Milner)

      +

      In this lesson we discuss a type inferencer based on what we call today +the Damas-Hindley-Milner type system, which is at the core of many +modern functional programming languages. The first variant of it was +proposed by Hindley in 1969, then, interestingly, Milner rediscovered +it in 1978 in the context of the ML language. Damas formalized it as +a type system in his PhD thesis in 1985. More specifically, our type +inferencer here, like many others as well as many implementations of +it, follows more closely the syntax-driven variant proposed by Clement +in 1987.

      +

      In terms of K, we will see how easily we can turn one definition which +is considered naive (our previous type inferencer in Lesson 8) into a +definition which is considered advanced. All we have to do is to +change one existing rule (the rule of the let binder) and to add a new +one. We will also learn some new predefined features of K, which make +the above possible.

      +

      The main idea is to replace the rule

      +
      rule let X = E in E' => E'[E/X]
      +
      +

      which creates potentially many copies of E within E' with a rule +which types E once and then reuses that type in each place where X +occurs free in E'. The simplest K way to type E is to declare the +let construct strict(2). Now we cannot simply bind X to the type +of E, because we would obtain a variant of the naive type inferencer +we already discussed, together with its limitations, in Lesson 5 of this +tutorial. The trick here is to parameterize the type of E in all its +unconstrained fresh types, and then create fresh copies of those +parameters in each free occurrence of X in E'.

      +

      Let us discuss some examples, before we go into the technical details. +Consider the first let-polymorphic example which failed to be typed +with our first naive type-inferencer:

      +
      let id = lambda x . x
      +in if (id true) then (id 1) else (id 2)
      +
      +

      When typing lambda x . x, we get a type of the form t -> t, for some +fresh type t. Instead of assigning this type to id as we did in the +naive type inferencers, we now first parametrize this type in its +fresh variable t, written

      +
      (forall t) t -> t
      +
      +

      and then bind id to this parametric type. The intuition for the +parameter is that it can be instantiated with any other type, so this +parametric type stands, in fact, for infinitely many non-parametric +types. This is similar to what happens in formal logic proof systems, +where rule schemas stand for infinitely many concrete instances of +them. For this reason, parametric types are also called type schemas.

      +

      Now each time id is looked up within the let-body, we create a fresh +copy of the parameter t, which can this way be independently +constrained by each local context. Let's suppose that the three id +lookups yield the types t1 -> t1, t2 -> t2, and respectively t3 -> t3. +Then t1 will be constrained to be bool, and t2 and t3 to be int, +so we can now safely type the program above to int.

      +

      Therefore, a type schema comprises a summary of all the typing work +that has been done for typing the corresponding expression, and an +instantiation of its parameters with fresh copies represents an +elegant way to reuse all that typing work.

      +

      There are some subtleties regarding what fresh types can be made +parameters. Let us consider another example, discussed as part of +Lesson 7 on naive let-polymorphism:

      +
      lambda x . (
      +  let y = lambda z . x
      +  in if (y true) then (y 1) else (y (lambda x . x))
      +)
      +
      +

      This program should type to bool -> bool, as explained in Lesson 7. +The lambda construct will bind x to some fresh type tx. Then the +let-bound expression lambda z . x types to tz -> tx for some +additional fresh type tz. The question now is what should the +parameters of this type be when we generate the type schema? If we +naively parameterize in all fresh variables, that is in both tz and +tx obtaining the type schema (forall tz,tx) tz -> tx, then there will +be no way to infer that the type of x, tx, must be a bool! The +inferred type of this expression would then wrongly be tx -> t for +some fresh types tx and t. That's because the parameters are replaced +with fresh copies in each occurrence of y, and thus their relationship +to the original x is completely lost. This tells us that we cannot +parameterize in all fresh types that appear in the type of the +let-bound expression. In particular, we cannot parameterize in those +which some variables are already bound to in the current type +environment (like x is bound to tx in our example above). +In our example, the correct type schema is (forall tz) tz -> tx, +which now allows us to correctly infer that tx is bool.

      +

      Let us now discuss another example, which should fail to type:

      +
      lambda x .
      +  let f = lambda y . x y
      +  in if (f true) then (f 1) else (f 2)
      +
      +

      This should fail to type because lambda y . x y is equivalent to x, +so the conditional imposes the conflicting constraints that x should be +a function whose argument is either a bool or an int. Let us try to +type it using our currently informal procedure. Like in the previous +example, x will be bound to a fresh type tx. Then the let-bound +expression types to ty -> tz with ty and tz fresh types, adding also +the constraint tx = ty -> tz. What should the parameters of this type +be? If we ignore the type constraint and simply make both ty and tz +parameters because no variable is bound to them in the type +environment (indeed, the only variable x in the type environment is +bound to tx), then we can wrongly type this program to tx -> tz +following a reasoning similar to the one in the example above. +In fact, in this example, none of ty and tz can be parameters, because +they are constrained by tx.

      +

      The examples above tell us two things: first, that we have to take the +type constraints into account when deciding the parameters of the +schema; second, that after applying the most-general-unifier solution +given by the type constraints everywhere, the remaining fresh types +appearing anywhere in the type environment are consequently constrained +and cannot be turned into parameters. Since the type environment can in +fact also hold type schemas, which already bind some types, we only need +to ensure that none of the fresh types appearing free anywhere in the +type environment are turned into parameters of type schemas.

      +

      Thanks to generic support offered by the K tool, we can easily achieve +all the above as follows.

      +

      First, add syntax for type schemas:

      +
      syntax TypeSchema ::= "(" "forall" Set ")" Type  [binder]
      +
      +

      The definition below will be given in such a way that the Set argument +of a type schema will always be a set of fresh types. We also declare +this construct to be a binder, so that we can make use of the generic +free variable function provided by the K tool.

      +

      We now replace the old rule for let

      +
      rule let X = E in E' => E'[E/X]
      +
      +

      with the following rule:

      +
      rule <k> let X = T:Type in E => E ~> tenv(TEnv) ...</k>
      +     <mgu> Theta:Mgu </mgu>
      +     <tenv> TEnv
      +      => TEnv[(forall freeVariables(applyMgu(Theta, T)) -Set
      +                      freeVariables(applyMgu(Theta, values TEnv))
      +              ) applyMgu(Theta, T) / X]
      +     </tenv>
      +
      +

      So the type T of E is being parameterized and then bound to X in the +type environment. The current mgu Theta, which comprises all the type +constraints accumulated so far, is applied to both T and the types in +the type environment. The remaining fresh types in T which do not +appear free in the type environment are then turned into type parameters. +The function freeVariables returns, as expected, the free variables of +its argument as a Set; this is why we declared the type schema to be a +binder above.

      +

      Now a LAMBDA variable in the type environment can be bound to either a +type or a type schema. In the first case, the previous rule we had +for variable lookup can be reused, but we have to make sure we check +that T there is of sort Type (adding a sort membership, for example). +In the second case, as explained above, we have to create fresh copies +of the parameters. This can be easily achieved with another +predefined K function, as follows:

      +
      rule <k> X:Id => freshVariables(Tvs,T) ...</k>
      +     <tenv>... X |-> (forall Tvs) T ...</tenv>
      +
      +

      Indeed, freshVariables takes a set of variables and a term, and returns the +same term but with each of the given variables replaced by a fresh copy.

      +

      The operations freeVariables and freshVariables are useful in many K +definitions, so they are predefined in module substitution.k.

      +

      Our definition of this let-polymorphic type inferencer is now +complete. To test it, kompile it and then krun all the LAMBDA +programs discussed since Lesson 4. They should all work as expected.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/1_k/index.html b/k-distribution/pl-tutorial/1_k/index.html new file mode 100644 index 00000000000..83cc91ee0ae --- /dev/null +++ b/k-distribution/pl-tutorial/1_k/index.html @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + +Learning K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Learning K

      +

      We start by introducing the basic features of K by means of a series +of very simple languages. The objective here is neither to learn those +languages nor to study their underlying paradigm, but simply to learn K.

      +
        +
      • LAMBDA: Lambda calculus defined.
      • +
      • IMP: A simple imperative language.
      • +
      • LAMBDA++: LAMBDA extended with control flow.
      • +
      • IMP++: IMP extended with threads and IO.
      • +
      • TYPES: LAMBDA type system.
      • +
      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/1_simple/1_untyped/NOTES/index.html b/k-distribution/pl-tutorial/2_languages/1_simple/1_untyped/NOTES/index.html new file mode 100644 index 00000000000..d79e48957d7 --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/1_simple/1_untyped/NOTES/index.html @@ -0,0 +1,393 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      This is not well tested now, and it was not well tested in v3.6 either. +We should add some rules as transitions, too, and then use search on all +the examples.

      +

      Exercises not revised yet.

      +

      .Bag should be . throughout this definition #1772

      +

      There seems to be a problem with defining auxiliary constructs of sort +KItem when we want to use them as a particular sort in rule. We had to +declare them as construct for that sort instead. May want to explain +this a bit in the Latex discussion (related to #1803):

      +
        +
      • syntax Exp ::= lookup(Int)
      • +
      +
        +
      • syntax KItem ::= lookup(Int)
      • +
      +

      We currently add Vals to KResult, but we should have a better pattern for +List{Sort} and in general for any collections, where we make them hybrid +(they become KResults when their elements become KResults)

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/1_simple/1_untyped/simple-untyped/index.html b/k-distribution/pl-tutorial/2_languages/1_simple/1_untyped/simple-untyped/index.html new file mode 100644 index 00000000000..9d11a06c160 --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/1_simple/1_untyped/simple-untyped/index.html @@ -0,0 +1,1709 @@ + + + + + + + + + + + + + + +SIMPLE — Untyped | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      SIMPLE — Untyped

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      +

      This is the K semantic definition of the untyped SIMPLE language. +SIMPLE is intended to be a pedagogical and research language that captures +the essence of the imperative programming paradigm, extended with several +features often encountered in imperative programming languages. +A program consists of a set of global variable declarations and +function definitions. Like in C, function definitions cannot be +nested and each program must have one function called main, +which is invoked when the program is executed. To make it more +interesting and to highlight some of K's strengths, SIMPLE includes +the following features in addition to the conventional imperative +expression and statement constructs:

      +
        +
      • +

        Multidimensional arrays and array references. An array evaluates +to an array reference, which is a special value holding a location (where +the elements of the array start) together with the size of the array; +the elements of the array can be array references themselves (particularly +when the array is multi-dimensional). Array references are ordinary values, +so they can be assigned to variables and passed/received by functions.

        +
      • +
      • +

        Functions and function values. Functions can have zero or +more parameters and can return abruptly using a return statement. +SIMPLE follows a call-by-value parameter passing style, with static scoping. +Function names evaluate to function abstractions, which hereby become ordinary +values in the language, same like the array references.

        +
      • +
      • +

        Blocks with locals. SIMPLE variables can be declared +anywhere, their scope being from the place where they are declared +until the end of the most nested enclosing block.

        +
      • +
      • +

        Input/Output. The expression read() evaluates to the +next value in the input buffer, and the statement write(e) +evaluates e and outputs its value to the output buffer. The +input and output buffers are lists of values.

        +
      • +
      • +

        Exceptions. SIMPLE has parametric exceptions (the value thrown as +an exception can be caught and bound).

        +
      • +
      • +

        Concurrency via dynamic thread creation/termination and +synchronization. One can spawn a thread to execute any statement. +The spawned thread shares with its parent its environment at creation time. +Threads can be synchronized via a join command which blocks the current thread +until the joined thread completes, via re-entrant locks which can be acquired +and released, as well as through rendezvous commands.

        +
      • +
      +

      Like in many other languages, some of SIMPLE's constructs can be +desugared into a smaller set of basic constructs. We do that at the end +of the syntax module, and then we only give semantics to the core constructs.

      +

      Note: This definition is commented slightly more than others, because it is +intended to be one of the first non-trivial definitions that the new +user of K sees. We recommend the beginner user to first check the +language definitions discussed in the K tutorial.

      +
      k
      module SIMPLE-UNTYPED-SYNTAX + imports DOMAINS-SYNTAX +
      +

      Syntax

      +

      We start by defining the SIMPLE syntax. The language constructs discussed +above have the expected syntax and evaluation strategies. Recall that in K +we annotate the syntax with appropriate strictness attributes, thus giving +each language construct the desired evaluation strategy.

      +

      Identifiers

      +

      Recall from the K tutorial that identifiers are builtin and come under the +syntactic category Id. The special identifier for the function +main belongs to all programs, and plays a special role in the semantics, +so we declare it explicitly. This would not be necessary if the identifiers +were all included automatically in semantic definitions, but that is not +possible because of parsing reasons (e.g., K variables used to match +concrete identifiers would then be ambiguously parsed as identifiers). They +are only included in the parser generated to parse programs (and used by the +kast tool). Consequently, we have to explicitly declare all the +concrete identifiers that play a special role in the semantics, like +main below.

      +
      k
      syntax Id ::= "main" [token] +
      +

      Declarations

      +

      There are two types of declarations: for variables (including arrays) and +for functions. We are going to allow declarations of the form +var x=10, a[10,10], y=23;, which is why we allow the var +keyword to take a list of expressions. The non-terminals used in the two +productions below are defined shortly.

      +
      k
      syntax Stmt ::= "var" Exps ";" + | "function" Id "(" Ids ")" Block +
      +

      Expressions

      +

      The expression constructs below are standard. Increment (++) takes +an expression rather than a variable because it can also increment an array +element. Recall that the syntax we define in K is what we call the syntax +of the semantics: while powerful enough to define non-trivial syntaxes +(thanks to the underlying SDF technology that we use), we typically refrain +from defining precise syntaxes, that is, ones which accept precisely the +well-formed programs (that would not be possible anyway in general). That job +is deferred to type systems, which can also be defined in K. In other words, +we are not making any effort to guarantee syntactically that only variables +or array elements are passed to the increment construct, we allow any +expression. Nevertheless, we will only give semantics to those, so expressions +of the form ++5, which parse (but which will be rejected by our type +system in the typed version of SIMPLE later), will get stuck when executed. +Arrays can be multidimensional and can hold other arrays, so their +lookup operation takes a list of expressions as argument and applies to an +expression (which can in particular be another array lookup), respectively. +The construct sizeOf gives the size of an array in number of elements +of its first dimension. Note that almost all constructs are strict. The only +constructs which are not strict are the increment (since its first argument +gets updated, so it cannot be evaluated), the input read which takes no +arguments so strictness is irrelevant for it, the logical and and or constructs +which are short-circuited, the thread spawning construct which creates a new +thread executing the argument expression and return its unique identifier to +the creating thread (so it cannot just evaluate its argument in place), and the +assignment which is only strict in its second argument (for the same reason as +the increment).

      +
      k
      syntax Exp ::= Int | Bool | String | Id + | "(" Exp ")" [bracket] + | "++" Exp + > Exp "[" Exps "]" [strict] + > Exp "(" Exps ")" [strict] + | "-" Exp [strict] + | "sizeOf" "(" Exp ")" [strict] + | "read" "(" ")" + > left: + Exp "*" Exp [strict, left] + | Exp "/" Exp [strict, left] + | Exp "%" Exp [strict, left] + > left: + Exp "+" Exp [strict, left] + | Exp "-" Exp [strict, left] + > non-assoc: + Exp "<" Exp [strict, non-assoc] + | Exp "<=" Exp [strict, non-assoc] + | Exp ">" Exp [strict, non-assoc] + | Exp ">=" Exp [strict, non-assoc] + | Exp "==" Exp [strict, non-assoc] + | Exp "!=" Exp [strict, non-assoc] + > "!" Exp [strict] + > left: + Exp "&&" Exp [strict(1), left] + | Exp "||" Exp [strict(1), left] + > "spawn" Block + > Exp "=" Exp [strict(2), right] +
      +

      We also need comma-separated lists of identifiers and of expressions. +Moreover, we want them to be strict, that is, to evaluate to lists of results +whenever requested (e.g., when they appear as strict arguments of +the constructs above).

      +
      k
      syntax Ids ::= List{Id,","} [klabel(Exps)] + syntax Exps ::= List{Exp,","} [klabel(Exps), strict] // automatically hybrid now + syntax Exps ::= Ids + syntax Val + syntax Vals ::= List{Val,","} [klabel(Exps)] + syntax Bottom + syntax Bottoms ::= List{Bottom,","} [klabel(Exps)] + syntax Ids ::= Bottoms +
      +

      Statements

      +

      Most of the statement constructs are standard for imperative languages. +We syntactically distinguish between empty and non-empty blocks, because we +chose Stmts not to be a (;-separated) list of +Stmt. Variables can be declared anywhere inside a block, their scope +ending with the block. Expressions are allowed to be used for their side +effects only (followed by a semicolon ;). Functions are allowed +to abruptly return. The exceptions are parametric, i.e., one can throw a value +which is bound to the variable declared by catch. Threads can be +dynamically created and terminated, and can synchronize with join, +acquire, release and rendezvous. Note that the +strictness attributes obey the intended evaluation strategy of the various +constructs. In particular, the if-then-else construct is strict only in its +first argument (the if-then construct will be desugared into if-then-else), +while the loop constructs are not strict in any arguments. The print +statement construct is variadic, that is, it takes an arbitrary number of +arguments.

      +
      k
      syntax Block ::= "{" "}" + | "{" Stmt "}" + + syntax Stmt ::= Block + | Exp ";" [strict] + | "if" "(" Exp ")" Block "else" Block [avoid, strict(1)] + | "if" "(" Exp ")" Block [macro] + | "while" "(" Exp ")" Block + | "for" "(" Stmt Exp ";" Exp ")" Block [macro] + | "return" Exp ";" [strict] + | "return" ";" [macro] + | "print" "(" Exps ")" ";" [strict] +// NOTE: print strict allows non-deterministic evaluation of its arguments +// Either keep like this but document, or otherwise make Exps seqstrict. +// Of define and use a different expression list here, which is seqstrict. + | "try" Block "catch" "(" Id ")" Block + | "throw" Exp ";" [strict] + | "join" Exp ";" [strict] + | "acquire" Exp ";" [strict] + | "release" Exp ";" [strict] + | "rendezvous" Exp ";" [strict] +
      +

      The reason we allow Stmts as the first argument of for +instead of Stmt is because we want to allow more than one statement +to be executed when the loop is initialized. Also, as seens shorly, macros +may expand one statement into more statements; for example, an initialized +variable declaration statement var x=0; desugars into two statements, +namely var x; x=0;, so if we use Stmt instead of Stmts +in the production of for above then we risk that the macro expansion +of statement var x=0; happens before the macro expansion of for, +also shown below, in which case the latter would not apply anymore because +of syntactic mismatch.

      +
      k
      syntax Stmt ::= Stmt Stmt [right] + +// I wish I were able to write the following instead, but confuses the parser. +// +// syntax Stmts ::= List{Stmt,""} +// syntax Top ::= Stmt | "function" Id "(" Ids ")" Block +// syntax Pgm ::= List{Top,""} +// +// With that, I could have also eliminated the empty block +
      +

      Desugared Syntax

      +

      This part desugars some of SIMPLE's language constructs into core ones. +We only want to give semantics to core constructs, so we get rid of the +derived ones before we start the semantics. All desugaring macros below are +straightforward.

      +
      k
      rule if (E) S => if (E) S else {} + rule for(Start Cond; Step) {S} => {Start while (Cond) {S Step;}} + rule for(Start Cond; Step) {} => {Start while (Cond) {Step;}} + rule var E1:Exp, E2:Exp, Es:Exps; => var E1; var E2, Es; + rule var X:Id = E; => var X; X = E; +
      +

      For the semantics, we can therefore assume from now on that each +conditional has both branches, that there are only while loops, and +that each variable is declared alone and without any initialization as part of +the declaration.

      +
      k
      endmodule + + +module SIMPLE-UNTYPED + imports SIMPLE-UNTYPED-SYNTAX + imports DOMAINS +
      +

      Basic Semantic Infrastructure

      +

      Before one starts adding semantic rules to a K definition, one needs to +define the basic semantic infrastructure consisting of definitions for +values and configuration. As discussed in the definitions +in the K tutorial, the values are needed to know when to stop applying +the heating rules and when to start applying the cooling rules corresponding +to strictness or context declarations. The configuration serves as a backbone +for the process of configuration abstraction which allows users to only +mention the relevant cells in each semantic rule, the rest of the configuration +context being inferred automatically. Although in some cases the configuration +could be automatically inferred from the rules, we believe that it is very +useful for language designers/semanticists to actually think of and design +their configuration explicitly, so the current implementation of K requires +one to define it.

      +

      Values

      +

      We here define the values of the language that the various fragments of +programs evaluate to. First, integers and Booleans are values. As discussed, +arrays evaluate to special array reference values holding (1) a location from +where the array's elements are contiguously allocated in the store, and +(2) the size of the array. Functions evaluate to function values as +λ-abstractions (we do not need to evaluate functions to closures +because each function is executed in the fixed global environment and +function definitions cannot be nested). Like in IMP and other +languages, we finally tell the tool that values are K results.

      +
      k
      syntax Val ::= Int | Bool | String + | array(Int,Int) + | lambda(Ids,Stmt) + syntax Exp ::= Val + syntax Exps ::= Vals + syntax Vals ::= Bottoms + syntax KResult ::= Val + | Vals // TODO: should not need this +
      +

      The inclusion of values in expressions follows the methodology of +syntactic definitions (like, e.g., in SOS): extend the syntax of the language +to encompass all values and additional constructs needed to give semantics. +In addition to that, it allows us to write the semantic rules using the +original syntax of the language, and to parse them with the same (now extended +with additional values) parser. If writing the semantics directly on the K +AST, using the associated labels instead of the syntactic constructs, then one +would not need to include values in expressions.

      +

      Configuration

      +

      The K configuration of SIMPLE consists of a top level cell, T, +holding a threads cell, a global environment map cell genv +mapping the global variables and function names to their locations, a shared +store map cell store mapping each location to some value, a set cell +busy holding the locks which have been acquired but not yet released +by threads, a set cell terminated holding the unique identifiers of +the threads which already terminated (needed for join), input +and output list cells, and a nextLoc cell holding a natural +number indicating the next available location. Unlike in the small languages +in the K tutorial, where we used the fresh predicate to generate fresh +locations, in larger languages, like SIMPLE, we prefer to explicitly manage +memory. The location counter in nextLoc models an actual physical +location in the store; for simplicity, we assume arbitrarily large memory and +no garbage collection. The threads cell contains one thread +cell for each existing thread in the program. Note that the thread cell has +multiplicity *, which means that at any given moment there could be zero, +one or more thread cells. Each thread cell contains a +computation cell k, a control cell holding the various +control structures needed to jump to certain points of interest in the program +execution, a local environment map cell env mapping the thread local +variables to locations in the store, and finally a holds map cell +indicating what locks have been acquired by the thread and not released so far +and how many times (SIMPLE's locks are re-entrant). The control cell +currently contains only two subcells, a function stack fstack which +is a list and an exception stack xstack which is also a list. +One can add more control structures in the control cell, such as a +stack for break/continue of loops, etc., if the language is extended with more +control-changing constructs. Note that all cells except for k are +also initialized, in that they contain a ground term of their corresponding +sort. The k cell is initialized with the program that will be passed +to the K tool, as indicated by the $PGM variable, followed by the +execute task (defined shortly).

      +
      k
      // the syntax declarations below are required because the sorts are + // referenced directly by a production and, because of the way KIL to KORE + // is implemented, the configuration syntax is not available yet + // should simply work once KIL is removed completely + // check other definitions for this hack as well + + syntax ControlCell + syntax ControlCellFragment + + configuration <T color="red"> + <threads color="orange"> + <thread multiplicity="*" type="Map" color="yellow"> + <id color="pink"> -1 </id> + <k color="green"> $PGM:Stmt ~> execute </k> + //<br/> // TODO(KORE): support latex annotations #1799 + <control color="cyan"> + <fstack color="blue"> .List </fstack> + <xstack color="purple"> .List </xstack> + </control> + //<br/> // TODO(KORE): support latex annotations #1799 + <env color="violet"> .Map </env> + <holds color="black"> .Map </holds> + </thread> + </threads> + //<br/> // TODO(KORE): support latex annotations #1799 + <genv color="pink"> .Map </genv> + <store color="white"> .Map </store> + <busy color="cyan"> .Set </busy> + <terminated color="red"> .Set </terminated> + //<br/> // TODO(KORE): support latex annotations #1799 + <input color="magenta" stream="stdin"> .List </input> + <output color="brown" stream="stdout"> .List </output> + <nextLoc color="gray"> 0 </nextLoc> + </T> +
      +

      Declarations and Initialization

      +

      We start by defining the semantics of declarations (for variables, +arrays and functions).

      +

      Variable Declaration

      +

      The SIMPLE syntax was desugared above so that each variable is +declared alone and its initialization is done as a separate statement. +The semantic rule below matches resulting variable declarations of the +form var X; on top of the k cell +(indeed, note that the k cell is complete, or round, to the +left, and is torn, or ruptured, to the right), allocates a fresh +location L in the store which is initialized with a special value + (indeed, the unit ., or nothing, is matched anywhere +in the map ‒note the tears at both sides‒ and replaced with the +mapping L ↦ ⊥), and binds X to L in the local +environment shadowing previous declarations of X, if any. +This possible shadowing of X requires us to therefore update the +entire environment map, which is expensive and can significantly slow +down the execution of larger programs. On the other hand, since we know +that L is not already bound in the store, we simply add the binding +L ↦ ⊥ to the store, thus avoiding a potentially complete +traversal of the the store map in order to update it. We prefer the approach +used for updating the store whenever possible, because, in addition to being +faster, it offers more true concurrency than the latter; indeed, according +to the concurrent semantics of K, the store is not frozen while +L ↦ ⊥ is added to it, while the environment is frozen during the +update operation Env[L/X]. The variable declaration command is +also removed from the top of the computation cell and the fresh location +counter is incremented. The undefined symbol added in the store +is of sort KItem, instead of Val, on purpose; this way, the +store lookup rules will get stuck when one attempts to lookup an +uninitialized location. All the above happen in one transactional step, +with the rule below. Note also how configuration abstraction allows us to +only mention the needed cells; indeed, as the configuration above states, +the k and env cells are actually located within a +thread cell within the threads cell, but one needs +not mention these: the configuration context of the rule is +automatically transformed to match the declared configuration +structure.

      +
      k
      syntax KItem ::= "undefined" [latex(\bot)] + + rule <k> var X:Id; => . ...</k> + <env> Env => Env[X <- L] </env> + <store>... .Map => L |-> undefined ...</store> + <nextLoc> L => L +Int 1 </nextLoc> +
      +

      Array Declaration

      +

      The K semantics of the uni-dimensional array declaration is somehow similar +to the above declaration of ordinary variables. First, note the +context declaration below, which requests the evaluation of the array +dimension. Once evaluated, say to a natural number N, then +N +Int 1 locations are allocated in the store for +an array of size N, the additional location (chosen to be the first +one allocated) holding the array reference value. The array reference +value array(L,N) states that the array has size N and its +elements are located contiguously in the store starting with location +L. The operation L … L' ↦ V, defined at the end of this +file in the auxiliary operation section, initializes each location in +the list L … L' to V. Note that, since the dimensions of +array declarations can be arbitrary expressions, this virtually means +that we can dynamically allocate memory in SIMPLE by means of array +declarations.

      +
      k
      context var _:Id[HOLE]; + + rule <k> var X:Id[N:Int]; => . ...</k> + <env> Env => Env[X <- L] </env> + <store>... .Map => L |-> array(L +Int 1, N) + (L +Int 1) ... (L +Int N) |-> undefined ...</store> + <nextLoc> L => L +Int 1 +Int N </nextLoc> + requires N >=Int 0 +
      +

      SIMPLE allows multi-dimensional arrays. For semantic simplicity, we +desugar them all into uni-dimensional arrays by code transformation. +This way, we only need to give semantics to uni-dimensional arrays. +First, note that the context rule above actually evaluates all the array +dimensions (that's why we defined the expression lists strict!): +Upon evaluating the array dimensions, the code generation rule below +desugars multi-dimensional array declaration to uni-dimensional declarations. +To this aim, we introduce two special unique variable identifiers, +$1 and $2. The first variable, $1, iterates +through and initializes each element of the first dimension with an array +of the remaining dimensions, declared as variable $2:

      +
      k
      syntax Id ::= "$1" [token] | "$2" [token] + rule var X:Id[N1:Int, N2:Int, Vs:Vals]; + => var X[N1]; + { + for(var $1 = 0; $1 <= N1 - 1; ++$1) { + var $2[N2, Vs]; + X[$1] = $2; + } + } +
      +

      Ideally, one would like to perform syntactic desugarings like the one +above before the actual semantics. Unfortunately, that was not possible in +this case because the dimension expressions of the multi-dimensional array need +to be evaluated first. Indeed, the desugaring rule above does not work if the +dimensions of the declared array are arbitrary expressions, because they can +have side effects (e.g., a[++x,++x]) and those side effects would be +propagated each time the expression is evaluated in the desugaring code (note +that both the loop condition and the nested multi-dimensional declaration +would need to evaluate the expressions given as array dimensions).

      +

      Function declaration

      +

      Functions are evaluated to λ-abstractions and stored like any other +values in the store. A binding is added into the environment for the function +name to the location holding its body. Similarly to the C language, SIMPLE +only allows function declarations at the top level of the program. More +precisely, the subsequent semantics of SIMPLE only works well when one +respects this requirement. Indeed, the simplistic context-free parser +generated by the grammar above is more generous than we may want, in that it +allows function declarations anywhere any declaration is allowed, including +inside arbitrary blocks. However, as the rule below shows, we are not +storing the declaration environment with the λ-abstraction value as +closures do. Instead, as seen shortly, we switch to the global environment +whenever functions are invoked, which is consistent with our requirement that +functions should only be declared at the top. Thus, if one declares local +functions, then one may see unexpected behaviors (e.g., when one shadows a +global variable before declaring a local function). The type checker of +SIMPLE, also defined in K (see examples/simple/typed/static), +discards programs which do not respect this requirement.

      +
      k
      rule <k> function F(Xs) S => . ...</k> + <env> Env => Env[F <- L] </env> + <store>... .Map => L |-> lambda(Xs, S) ...</store> + <nextLoc> L => L +Int 1 </nextLoc> +
      +

      When we are done with the first pass (pre-processing), the computation +cell k contains only the token execute (see the configuration +declaration above, where the computation item execute was placed +right after the program in the k cell of the initial configuration) +and the cell genv is empty. In this case, we have to call +main() and to initialize the global environment by transferring the +contents of the local environment into it. We prefer to do it this way, as +opposed to processing all the top level declarations directly within the global +environment, because we want to avoid duplication of semantics: the syntax of +the global declarations is identical to that of their corresponding local +declarations, so the semantics of the latter suffices provided that we copy +the local environment into the global one once we are done with the +pre-processing. We want this separate pre-processing step precisely because +we want to create the global environment. All (top-level) functions end up +having their names bound in the global environment and, as seen below, they +are executed in that same global environment; all these mean, in particular, +that the functions "see" each other, allowing for mutual recursion, etc.

      +
      k
      syntax KItem ::= "execute" + rule <k> execute => main(.Exps); </k> + <env> Env </env> + <genv> .Map => Env </genv> +
      +

      Expressions

      +

      We next define the K semantics of all the expression constructs.

      +

      Variable lookup

      +

      When a variable X is the first computational task, and X is bound to some +location L in the environment, and L is mapped to some value V in the +store, then we rewrite X into V:

      +
      k
      rule <k> X:Id => V ...</k> + <env>... X |-> L ...</env> + <store>... L |-> V:Val ...</store> [group(lookup)] +
      +

      Note that the rule above excludes reading , because is not +a value and V is checked at runtime to be a value.

      +

      Variable/Array increment

      +

      This is tricky, because we want to allow both ++x and ++a[5]. +Therefore, we need to extract the lvalue of the expression to increment. +To do that, we state that the expression to increment should be wrapped +by the auxiliary lvalue operation and then evaluated. The semantics +of this auxiliary operation is defined at the end of this file. For now, all +we need to know is that it takes an expression and evaluates to a location +value. Location values, also defined at the end of the file, are integers +wrapped with the operation loc, to distinguish them from ordinary +integers.

      +
      k
      context ++(HOLE => lvalue(HOLE)) + rule <k> ++loc(L) => I +Int 1 ...</k> + <store>... L |-> (I => I +Int 1) ...</store> [group(increment)] +
      +

      Arithmetic operators

      +

      There is nothing special about the following rules. They rewrite the +language constructs to their library counterparts when their arguments +become values of expected sorts:

      +
      k
      rule I1 + I2 => I1 +Int I2 + rule Str1 + Str2 => Str1 +String Str2 + rule I1 - I2 => I1 -Int I2 + rule I1 * I2 => I1 *Int I2 + rule I1 / I2 => I1 /Int I2 requires I2 =/=K 0 + rule I1 % I2 => I1 %Int I2 requires I2 =/=K 0 + rule - I => 0 -Int I + rule I1 < I2 => I1 <Int I2 + rule I1 <= I2 => I1 <=Int I2 + rule I1 > I2 => I1 >Int I2 + rule I1 >= I2 => I1 >=Int I2 +
      +

      The equality and inequality constructs reduce to syntactic comparison +of the two argument values (which is what the equality on K terms does).

      +
      k
      rule V1:Val == V2:Val => V1 ==K V2 + rule V1:Val != V2:Val => V1 =/=K V2 +
      +

      The logical negation is clear, but the logical conjunction and disjunction +are short-circuited:

      +
      k
      rule ! T => notBool(T) + rule true && E => E + rule false && _ => false + rule true || _ => true + rule false || E => E +
      +

      Array lookup

      +

      Untyped SIMPLE does not check array bounds (the dynamically typed version of +it, in examples/simple/typed/dynamic, does check for array out of +bounds). The first rule below desugars the multi-dimensional array access to +uni-dimensional array access; recall that the array access operation was +declared strict, so all sub-expressions involved are already values at this +stage. The second rule rewrites the array access to a lookup operation at a +precise location; we prefer to do it this way to avoid locking the store. +The semantics of the auxiliary lookup operation is straightforward, +and is defined at the end of the file.

      +
      k
      // The [anywhere] feature is underused, because it would only be used +// at the top of the computation or inside the lvalue wrapper. So it +// may not be worth, or we may need to come up with a special notation +// allowing us to enumerate contexts for [anywhere] rules. + rule V:Val[N1:Int, N2:Int, Vs:Vals] => V[N1][N2, Vs] + [anywhere] + + rule array(L,_)[N:Int] => lookup(L +Int N) + [anywhere] +
      +

      Size of an array

      +

      The size of the array is stored in the array reference value, and the +sizeOf construct was declared strict, so:

      +
      k
      rule sizeOf(array(_,N)) => N +
      +

      Function call

      +

      Function application was strict in both its arguments, so we can +assume that both the function and its arguments are evaluated to +values (the former expected to be a λ-abstraction). The first +rule below matches a well-formed function application on top of the +computation and performs the following steps atomically: it switches +to the function body followed by return; (for the case in +which the function does not use an explicit return statement); it +pushes the remaining computation, the current environment, and the +current control data onto the function stack (the remaining +computation can thus also be discarded from the computation cell, +because an unavoidable subsequent return statement ‒see +above‒ will always recover it from the stack); it switches the +current environment (which is being pushed on the function stack) to +the global environment, which is where the free variables in the +function body should be looked up; it binds the formal parameters to +fresh locations in the new environment, and stores the actual +arguments to those locations in the store (this latter step is easily +done by reducing the problem to variable declarations, whose semantics +we have already defined; the auxiliary operation mkDecls is +defined at the end of the file). The second rule pops the +computation, the environment and the control data from the function +stack when a return statement is encountered as the next +computational task, passing the returned value to the popped +computation (the popped computation was the context in which the +returning function was called). Note that the pushing/popping of the +control data is crucial. Without it, one may have a function that +contains an exception block with a return statement inside, which +would put the xstack cell in an inconsistent state (since the +exception block modifies it, but that modification should be +irrelevant once the function returns). We add an artificial +nothing value to the language, which is returned by the +nulary return; statements.

      +
      k
      syntax KItem ::= (Map,K,ControlCellFragment) + + rule <k> lambda(Xs,S)(Vs:Vals) ~> K => mkDecls(Xs,Vs) S return; </k> + <control> + <fstack> .List => ListItem((Env,K,C)) ...</fstack> + C + </control> + <env> Env => GEnv </env> + <genv> GEnv </genv> + + rule <k> return(V:Val); ~> _ => V ~> K </k> + <control> + <fstack> ListItem((Env,K,C)) => .List ...</fstack> + (_ => C) + </control> + <env> _ => Env </env> + + syntax Val ::= "nothing" + rule return; => return nothing; +
      +

      Like for division-by-zero, it is left unspecified what happens +when the nothing value is used in domain calculations. For +example, from the the perspective of the language semantics, +7 +Int nothing can evaluate to anything, or +may not evaluate at all (be undefined). If one wants to make sure that +such artificial values are never misused, then one needs to define a static +checker (also using K, like our the type checker in +examples/simple/typed/static) and reject programs that do. +Note that, unlike the undefined symbol which had the sort K +instead of Val, we defined nothing to be a value. That +is because, as explained above, we do not want the program to get +stuck when nothing is returned by a function. Instead, we want the +behavior to be unspecified; in particular, if one is careful to never +use the returned value in domain computation, like it happens when we +call a function for its side effects (e.g., with a statement of the +form f(x);), then the program does not get stuck.

      +

      Read

      +

      The read() expression construct simply evaluates to the next +input value, at the same time discarding the input value from the +in cell.

      +
      k
      rule <k> read() => I ...</k> <input> ListItem(I:Int) => .List ...</input> [group(read)] +
      +

      Assignment

      +

      In SIMPLE, like in C, assignments are expression constructs and not statement +constructs. To make it a statement all one needs to do is to follow it by a +semi-colon ; (see the semantics for expression statements below). +Like for the increment, we want to allow assignments not only to variables but +also to array elements, e.g., e1[e2] = e3 where e1 evaluates +to an array reference, e2 to a natural number, and e3 to any +value. Thus, we first compute the lvalue of the left-hand-side expression +that appears in an assignment, and then we do the actual assignment to the +resulting location:

      +
      k
      context (HOLE => lvalue(HOLE)) = _ + + rule <k> loc(L) = V:Val => V ...</k> <store>... L |-> (_ => V) ...</store> + [group(assignment)] +
      +

      Statements

      +

      We next define the K semantics of statements.

      +

      Blocks

      +

      Empty blocks are simply discarded, as shown in the first rule below. +For non-empty blocks, we schedule the enclosed statement but we have to +make sure the environment is recovered after the enclosed statement executes. +Recall that we allow local variable declarations, whose scope is the block +enclosing them. That is the reason for which we have to recover the +environment after the block. This allows us to have a very simple semantics +for variable declarations, as we did above. One can make the two rules below +computational if one wants them to count as computational steps.

      +
      k
      rule {} => . + rule <k> { S } => S ~> setEnv(Env) ...</k> <env> Env </env> +
      +

      The basic definition of environment recovery is straightforward and +given in the section on auxiliary constructs at the end of the file.

      +

      There are two common alternatives to the above semantics of blocks. +One is to keep track of the variables which are declared in the block and only +recover those at the end of the block. This way one does more work for +variable declarations but conceptually less work for environment recovery; we +say conceptually because it is not clear that it is indeed the case that +one does less work when AC matching is involved. The other alternative is to +work with a stack of environments instead of a flat environment, and push the +current environment when entering a block and pop it when exiting it. This +way, one does more work when accessing variables (since one has to search the +variable in the environment stack in a top-down manner), but on the other hand +uses smaller environments and the definition gets closer to an implementation. +Based on experience with dozens of language semantics and other K definitions, +we have found that our approach above is the best trade-off between elegance +and efficiency (especially since rewrite engines have built-in techniques to +lazily copy terms, by need, thus not creating unnecessary copies), +so it is the one that we follow in general.

      +

      Sequential composition

      +

      Sequential composition is desugared into K's builtin sequentialization +operation (recall that, like in C, the semi-colon ; is not a +statement separator in SIMPLE — it is either a statement terminator or a +construct for a statement from an expression). Note that K allows +to define the semantics of SIMPLE in such a way that statements eventually +dissolve from the top of the computation when they are completed; this is in +sharp contrast to (artificially) evaluating them to a special +skip statement value and then getting rid of that special value, as +it is the case in other semantic approaches (where everything must evaluate +to something). This means that once S₁ completes in the rule below, S₂ +becomes automatically the next computation item without any additional +(explicit or implicit) rules.

      +
      k
      rule S1:Stmt S2:Stmt => S1 ~> S2 +
      +

      A subtle aspect of the rule above is that S₁ is declared to have sort +Stmts and not Stmt. That is because desugaring macros can indeed +produce left associative sequential composition of statements. For example, +the code var x=0; x=1; is desugared to +(var x; x=0;) x=1;, so although originally the first term of +the sequential composition had sort Stmt, after desugaring it became +of sort Stmts. Note that the attribute [right] associated +to the sequential compositon production is an attribute of the syntax, and not +of the semantics: e.g., it tells the parser to parse +var x; x=0; x=1; as var x; (x=0; x=1;), but it +does not tell the rewrite engine to rewrite (var x; x=0;) x=1; to +var x; (x=0; x=1;).

      +

      Expression statements

      +

      Expression statements are only used for their side effects, so their result +value is simply discarded. Common examples of expression statements are ones +of the form ++x;, x=e;, e1[e2]=e3;, etc.

      +
      k
      rule _:Val; => . +
      +

      Conditional

      +

      Since the conditional was declared with the strict(1) attribute, we +can assume that its first argument will eventually be evaluated. The rules +below cover the only two possibilities in which the conditional is allowed to +proceed (otherwise the rewriting process gets stuck).

      +
      k
      rule if ( true) S else _ => S + rule if (false) _ else S => S +
      +

      While loop

      +

      The simplest way to give the semantics of the while loop is by unrolling. +Note, however, that its unrolling is only allowed when the while loop reaches +the top of the computation (to avoid non-termination of unrolling). The +simple while loop semantics below works because our while loops in SIMPLE are +indeed very basic. If we allowed break/continue of loops then we would need +a completely different semantics, which would also involve the control cell.

      +
      k
      rule while (E) S => if (E) {S while(E)S} +
      +

      Print

      +

      The print statement was strict, so all its arguments are now +evaluated (recall that print is variadic). We append each of +its evaluated arguments to the output buffer, and discard the residual +print statement with an empty list of arguments.

      +
      k
      rule <k> print(V:Val, Es => Es); ...</k> <output>... .List => ListItem(V) </output> + [group(print)] + rule print(.Vals); => . +
      +

      Exceptions

      +

      SIMPLE allows parametric exceptions, in that one can throw and catch a +particular value. The statement try S₁ catch(X) S₂ +proceeds with the evaluation of S₁. If S₁ evaluates normally, i.e., +without any exception thrown, then S₂ is discarded and the execution +continues normally. If S₁ throws an exception with a statement of the +form throw E, then E is first evaluated to some value V +(throw was declared to be strict), then V is bound to X, then +S₂ is evaluated in the new environment while the reminder of S₁ is +discarded, then the environment is recovered and the execution continues +normally with the statement following the try S₁ catch(X) S₂ statement. +Exceptions can be nested and the statements in the +catch part (S₂ in our case) can throw exceptions to the +upper level. One should be careful with how one handles the control data +structures here, so that the abrupt changes of control due to exception +throwing and to function returns interact correctly with each other. +For example, we want to allow function calls inside the statement S₁ in +a try S₁ catch(X) S₂ block which can throw an exception +that is not caught by the function but instead is propagated to the +try S₁ catch(X) S₂ block that called the function. +Therefore, we have to make sure that the function stack as well as other +potential control structures are also properly modified when the exception +is thrown to correctly recover the execution context. This can be easily +achieved by pushing/popping the entire current control context onto the +exception stack. The three rules below modularly do precisely the above.

      +
      k
      syntax KItem ::= (Id,Stmt,K,Map,ControlCellFragment) + + syntax KItem ::= "popx" + + rule <k> (try S1 catch(X) {S2} => S1 ~> popx) ~> K </k> + <control> + <xstack> .List => ListItem((X, S2, K, Env, C)) ...</xstack> + C + </control> + <env> Env </env> + + rule <k> popx => . ...</k> + <xstack> ListItem(_) => .List ...</xstack> + + rule <k> throw V:Val; ~> _ => { var X = V; S2 } ~> K </k> + <control> + <xstack> ListItem((X, S2, K, Env, C)) => .List ...</xstack> + (_ => C) + </control> + <env> _ => Env </env> +
      +

      The catch statement S₂ needs to be executed in the original environment, +but where the thrown value V is bound to the catch variable X. We here +chose to rely on two previously defined constructs when giving semantics to +the catch part of the statement: (1) the variable declaration with +initialization, for binding X to V; and (2) the block construct for +preventing X from shadowing variables in the original environment upon the +completion of S₂.

      +

      Threads

      +

      SIMPLE's threads can be created and terminated dynamically, and can +synchronize by acquiring and releasing re-entrant locks and by rendezvous. +We discuss the seven rules giving the semantics of these operations below.

      +

      Thread creation

      +

      Threads can be created by any other threads using the spawn S +construct. The spawn expression construct evaluates to the unique identifier +of the newly created thread and, at the same time, a new thread cell is added +into the configuration, initialized with the S statement and sharing the +same environment with the parent thread. Note that the newly created +thread cell is torn. That means that the remaining cells are added +and initialized automatically as described in the definition of SIMPLE's +configuration. This is part of K's configuration abstraction mechanism.

      +
      k
      rule <thread>... + <k> spawn S => !T:Int ...</k> + <env> Env </env> + ...</thread> + (.Bag => <thread>... + <k> S </k> + <env> Env </env> + <id> !T </id> + ...</thread>) +
      +

      Thread termination

      +

      Dually to the above, when a thread terminates its assigned computation (the +contents of its k cell) is empty, so the thread can be dissolved. +However, since no discipline is imposed on how locks are acquired and released, +it can be the case that a terminating thread still holds locks. Those locks +must be released, so other threads attempting to acquire them do not deadlock. +We achieve that by removing all the locks held by the terminating thread in its +holds cell from the set of busy locks in the busy cell +(keys(H) returns the domain of the map H as a set, that is, only +the locks themselves ignoring their multiplicity). As seen below, a lock is +added to the busy cell as soon as it is acquired for the first time +by a thread. The unique identifier of the terminated thread is also collected +into the terminated cell, so the join construct knows which +threads have terminated.

      +
      k
      rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .Bag) + <busy> Busy => Busy -Set keys(H) </busy> + <terminated>... .Set => SetItem(T) ...</terminated> +
      +

      Thread joining

      +

      Thread joining is now straightforward: all we need to do is to check whether +the identifier of the thread to be joined is in the terminated cell. +If yes, then the join statement dissolves and the joining thread +continues normally; if not, then the joining thread gets stuck.

      +
      k
      rule <k> join T:Int; => . ...</k> + <terminated>... SetItem(T) ...</terminated> +
      +

      Acquire lock

      +

      There are two cases to distinguish when a thread attempts to acquire a lock +(in SIMPLE any value can be used as a lock):
      +(1) The thread does not currently have the lock, in which case it has to +take it provided that the lock is not already taken by another thread (see +the side condition of the first rule).
      +(2) The thread already has the lock, in which case it just increments its +counter for the lock (the locks are re-entrant). These two cases are captured +by the two rules below:

      +
      k
      rule <k> acquire V:Val; => . ...</k> + <holds>... .Map => V |-> 0 ...</holds> + <busy> Busy (.Set => SetItem(V)) </busy> + requires (notBool(V in Busy)) [group(acquire)] + + rule <k> acquire V; => . ...</k> + <holds>... V:Val |-> (N => N +Int 1) ...</holds> +
      +

      Release lock

      +

      Similarly, there are two corresponding cases to distinguish when a thread +releases a lock:
      +(1) The thread holds the lock more than once, in which case all it needs to do +is to decrement the lock counter.
      +(2) The thread holds the lock only once, in which case it needs to remove it +from its holds cell and also from the the shared busy cell, +so other threads can acquire it if they need to.

      +
      k
      rule <k> release V:Val; => . ...</k> + <holds>... V |-> (N => N -Int 1) ...</holds> + requires N >Int 0 + + rule <k> release V; => . ...</k> <holds>... V:Val |-> 0 => .Map ...</holds> + <busy>... SetItem(V) => .Set ...</busy> +
      +

      Rendezvous synchronization

      +

      In addition to synchronization through acquire and release of locks, SIMPLE +also provides a construct for rendezvous synchronization. A thread whose next +statement to execute is rendezvous(V) gets stuck until another +thread reaches an identical statement; when that happens, the two threads +drop their rendezvous statements and continue their executions. If three +threads happen to have an identical rendezvous statement as their next +statement, then precisely two of them will synchronize and the other will +remain blocked until another thread reaches a similar rendezvous statement. +The rule below is as simple as it can be. Note, however, that, again, it is +K's mechanism for configuration abstraction that makes it work as desired: +since the only cell which can multiply containing a k cell inside is +the thread cell, the only way to concretize the rule below to the +actual configuration of SIMPLE is to include each k cell in a +thread cell.

      +
      k
      rule <k> rendezvous V:Val; => . ...</k> + <k> rendezvous V; => . ...</k> [group(rendezvous)] +
      +

      Auxiliary declarations and operations

      +

      In this section we define all the auxiliary constructs used in the +above semantics.

      +

      Making declarations

      +

      The mkDecls auxiliary construct turns a list of identifiers +and a list of values in a sequence of corresponding variable +declarations.

      +
      k
      syntax Stmt ::= mkDecls(Ids,Vals) [function] + rule mkDecls((X:Id, Xs:Ids), (V:Val, Vs:Vals)) => var X=V; mkDecls(Xs,Vs) + rule mkDecls(.Ids,.Vals) => {} +
      +

      Location lookup

      +

      The operation below is straightforward. Note that we place it in the same +lookup group as the variable lookup rule defined above. This way, +both rules will be considered transitions when we include the lookup +tag in the transition option of kompile.

      +
      k
      syntax Exp ::= lookup(Int) + rule <k> lookup(L) => V ...</k> <store>... L |-> V:Val ...</store> [group(lookup)] +
      +

      Environment recovery

      +

      We have already discussed the environment recovery auxiliary operation in the +IMP++ tutorial:

      +
      k
      // TODO: eliminate the env wrapper, like we did in IMP++ + + syntax KItem ::= setEnv(Map) + rule <k> setEnv(Env) => . ...</k> <env> _ => Env </env> +
      +

      While theoretically sufficient, the basic definition for environment +recovery alone is suboptimal. Consider a loop while (E)S, +whose semantics (see above) was given by unrolling. S +is a block. Then the semantics of blocks above, together with the +unrolling semantics of the while loop, will yield a computation +structure in the k cell that increasingly grows, adding a new +environment recovery task right in front of the already existing sequence of +similar environment recovery tasks (this phenomenon is similar to the ``tail +recursion'' problem). Of course, when we have a sequence of environment +recovery tasks, we only need to keep the last one. The elegant rule below +does precisely that, thus avoiding the unnecessary computation explosion +problem:

      +
      k
      rule (setEnv(_) => .) ~> setEnv(_) +
      +

      In fact, the above follows a common convention in K for recovery +operations of cell contents: the meaning of a computation task of the form +cell(C) that reaches the top of the computation is that the current +contents of cell cell is discarded and gets replaced with C. We +did not add support for these special computation tasks in our current +implementation of K, so we need to define them as above.

      +

      lvalue and loc

      +

      For convenience in giving the semantics of constructs like the increment and +the assignment, that we want to operate the same way on variables and on +array elements, we used an auxiliary lvalue(E) construct which was +expected to evaluate to the lvalue of the expression E. This is only +defined when E has an lvalue, that is, when E is either a variable or +evaluates to an array element. lvalue(E) evaluates to a value of +the form loc(L), where L is the location where the value of E +can be found; for clarity, we use loc to structurally distinguish +natural numbers from location values. In giving semantics to lvalue +there are two cases to consider. (1) If E is a variable, then all we need +to do is to grab its location from the environment. (2) If E is an array +element, then we first evaluate the array and its index in order to identify +the exact location of the element of concern, and then return that location; +the last rule below works because its preceding context declarations ensure +that the array and its index are evaluated, and then the rule for array lookup +(defined above) rewrites the evaluated array access construct to its +corresponding store lookup operation.

      +
      k
      // For parsing reasons, we prefer to allow lvalue to take a K + + syntax Exp ::= lvalue(K) + syntax Val ::= loc(Int) + +// Local variable + + rule <k> lvalue(X:Id => loc(L)) ...</k> <env>... X |-> L:Int ...</env> + +// Array element: evaluate the array and its index; +// then the array lookup rule above applies. + + context lvalue(_::Exp[HOLE::Exps]) + context lvalue(HOLE::Exp[_::Exps]) + +// Finally, return the address of the desired object member + + rule lvalue(lookup(L:Int) => loc(L)) +
      +

      Initializing multiple locations

      +

      The following operation initializes a sequence of locations with the same +value:

      +
      k
      syntax Map ::= Int "..." Int "|->" K + [function, latex({#1}\ldots{#2}\mapsto{#3})] + rule N...M |-> _ => .Map requires N >Int M + rule N...M |-> K => N |-> K (N +Int 1)...M |-> K requires N <=Int M +
      +

      The semantics of SIMPLE is now complete. Make sure you kompile the +definition with the right options in order to generate the desired model. +No kompile options are needed if you only only want to execute the definition +(and thus get an interpreter), but if you want to search for a different +program behaviors then you need to kompile with the transition option +including rule groups such as lookup, increment, acquire, etc. See the +IMP++ tutorial for what the transition option means how to use it.

      +
      k
      endmodule +
      +

      Go to Lesson 2, SIMPLE typed static

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/NOTES/index.html b/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/NOTES/index.html new file mode 100644 index 00000000000..cf309f6f3a5 --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/NOTES/index.html @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      While we disallow global variables with the same name, and that includes +vector variables, we currently do not check that function names are distinct +from each other and from other global variables. Since we can pass functions +around through their names, this can be problematic. May want to make this +into an exercise in the future.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/exercises/functions-with-throws/tests/index.html b/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/exercises/functions-with-throws/tests/index.html new file mode 100644 index 00000000000..1ad506bcc0f --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/exercises/functions-with-throws/tests/index.html @@ -0,0 +1,379 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      The programs in this folder are typed variants of the SIMPLE untyped programs. +These programs will be executed both with the dynamic and with the static +semantics of the typed SIMPLE language. Each of the semantics contains its +own results folder showing the expected results of executing these programs.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/simple-typed-static/index.html b/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/simple-typed-static/index.html new file mode 100644 index 00000000000..a2b19d2275b --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/simple-typed-static/index.html @@ -0,0 +1,1150 @@ + + + + + + + + + + + + + + +SIMPLE — Typed — Static | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      SIMPLE — Typed — Static

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      +

      This is the K definition of the static semantics of the typed SIMPLE +language, or in other words, a type system for the typed SIMPLE +language in K. We do not re-discuss the various features of the +SIMPLE language here. The reader is referred to the untyped version of +the language for such discussions. We here only focus on the new and +interesting problems raised by the addition of type declarations, and +what it takes to devise a type system/checker for the language.

      +

      When designing a type system for a language, no matter in what +paradigm, we have to decide upon the intended typing policy. Note +that we can have multiple type systems for the same language, one for +each typing policy. For example, should we accept programs which +don't have a main function? Or should we allow functions that do not +return explicitly? Or should we allow functions whose type expects +them to return a value (say an int) to use a plain +return; statement, which returns no value, like in C? +And so on and so forth. Typically, there are two opposite tensions +when designing a type system. On the one hand, you want your type +system to be as permissive as possible, that is, to accept as many +programs that do not get stuck when executed with the untyped +semantics as possible; this will keep the programmers using your +language happy. On the other hand, you want your type system to have +a reasonable performance when implemented; this will keep both the +programmers and the implementers of your language happy. For example, +a type system for rejecting programs that could perform +division-by-zero is not expected to be feasible in general. A simple +guideline when designing typing policies is to imagine how the +semantics of the untyped language may get stuck and try to prevent +those situations from happening.

      +

      Before we give the K type system of SIMPLE formally, we discuss, +informally, the intended typing policy:

      +
        +
      • +

        Each program should contain a main() function. Indeed, +the untyped SIMPLE semantics will get stuck on any program which does +not have a main function.

        +
      • +
      • +

        Each primitive value has its own type, which can be int +bool, or string. There is also a type void +for nonexistent values, for example for the result of a function meant +to return no value (but only be used for its side effects, like a +procedure).

        +
      • +
      • +

        The syntax of untyped SIMPLE is extended to allow type +declarations for all the variables, including array variables. This is +done in a C/Java-style. For example, int x; or +int x=7, y=x+3;, or int[][][] a[10,20]; +(the latter defines a 10 × 20 matrix of arrays of integers). +Recall from untyped SIMPLE that, unlike in C/Java, our multi-dimensional +arrays use comma-separated arguments, although they have the array-of-array +semantics.

        +
      • +
      • +

        Functions are also typed in a C/Java style. However, since in SIMPLE +we allow functions to be passed to and returned by other functions, we also +need function types. We will use the conventional higher-order arrow-notation +for function types, but will separate the argument types with commas. For +example, a function returning an array of bool elements and +taking as argument an array x of two-integer-argument functions +returning an integer, is declared using a syntax of the form +bool[] f(((int,int)->int)[] x) { ... } +and has the type ((int,int)->int)[] -> bool[].

        +
      • +
      • +

        We allow any variable declarations at the top level. Functions +can only be declared at the top level. Each function can only access the +other functions and variables declared at the top level, or its own locally +declared variables. SIMPLE has static scoping.

        +
      • +
      • +

        The various expression and statement constructs take only elements of +the expected types.

        +
      • +
      • +

        Increment and assignment can operate both on variables and on array +elements. For example, if f has type int->int[][] and +function g has the type int->int, then the +increment expression ++f(7)[g(2),g(3)] is valid.

        +
      • +
      • +

        Functions should only return values of their declared result +type. To give the programmers more flexibility, we allow functions to +use return; statements to terminate without returning an +actual value, or to not explicitly use any return statement, +regardless of their declared return type. This flexibility can be +handy when writing programs using certain functions only for their +side effects. Nevertheless, as the dynamic semantics shows, a return +value is automatically generated when an explicit return +statement is not encountered.

        +
      • +
      • +

        For simplicity, we here limit exceptions to only throw and catch +integer values. We let it as an exercise to the reader to extend the +semantics to allow throwing and catching arbitrary-type exceptions. +Like in programming languages like Java, one can go even further and +define a semantics where thrown exceptions are propagated through +try-catch statements until one of the corresponding type is found. +We will do this when we define the KOOL language, not here. +To keep the definition if SIMPLE simple, here we do not attempt to +reject programs which throw uncaught exceptions.

        +
      • +
      +

      Like in untyped SIMPLE, some constructs can be desugared into a +smaller set of basic constructs. In general, it should be clear why a +program does not type by looking at the top of the k cells in +its stuck configuration.

      +
      k
      module SIMPLE-TYPED-STATIC-SYNTAX + imports DOMAINS-SYNTAX +
      +

      Syntax

      +

      The syntax of typed SIMPLE extends that of untyped SIMPLE with support +for declaring types to variables and functions.

      +
      k
      syntax Id ::= "main" [token] +
      +

      Types

      +

      Primitive, array and function types, as well as lists (or tuples) of types. +The lists of types are useful for function arguments.

      +
      k
      syntax Type ::= "void" | "int" | "bool" | "string" + | Type "[" "]" + | "(" Type ")" [bracket] + > Types "->" Type + + syntax Types ::= List{Type,","} [klabel(exps)] +
      +

      Declarations

      +

      Variable and function declarations have the expected syntax. For variables, +we basically just replaced the var keyword of untyped SIMPLE with a +type. For functions, besides replacing the function keyword with a +type, we also introduce a new syntactic category for typed variables, +Param, and lists over it.

      +
      k
      syntax Param ::= Type Id + syntax Params ::= List{Param,","} + + syntax Stmt ::= Type Exps ";" + | Type Id "(" Params ")" Block +
      +

      Expressions

      +

      The syntax of expressions is identical to that in untyped SIMPLE, +except for the logical conjunction and disjunction which have +different strictness attributes, because they now have different +evaluation strategies.

      +
      k
      syntax Exp ::= Int | Bool | String | Id + | "(" Exp ")" [bracket] + | "++" Exp + > Exp "[" Exps "]" [strict] + > Exp "(" Exps ")" [strict] + | "-" Exp [strict] + | "sizeOf" "(" Exp ")" [strict] + | "read" "(" ")" + > left: + Exp "*" Exp [strict, left] + | Exp "/" Exp [strict, left] + | Exp "%" Exp [strict, left] + > left: + Exp "+" Exp [strict, left] + | Exp "-" Exp [strict, left] + > non-assoc: + Exp "<" Exp [strict, non-assoc] + | Exp "<=" Exp [strict, non-assoc] + | Exp ">" Exp [strict, non-assoc] + | Exp ">=" Exp [strict, non-assoc] + | Exp "==" Exp [strict, non-assoc] + | Exp "!=" Exp [strict, non-assoc] + > "!" Exp [strict] + > left: + Exp "&&" Exp [strict, left] + | Exp "||" Exp [strict, left] + > "spawn" Block + > Exp "=" Exp [strict(2), right] +
      +

      Note that spawn has not been declared strict. This may +seem unexpected, because the child thread shares the same environment +with the parent thread, so from a typing perspective the spawned +statement makes the same sense in a child thread as it makes in the +parent thread. The reason for not declaring it strict is because we +want to disallow programs where the spawned thread calls the +return statement, because those programs would get stuck in +the dynamic semantics. The type semantics of spawn below will reject +such programs.

      +

      We still need lists of expressions, defined below, but note that we do +not need lists of identifiers anymore. They have been replaced by the lists +of parameters.

      +
      k
      syntax Exps ::= List{Exp,","} [strict, klabel(exps)] +
      +

      Statements

      +

      The statements have the same syntax as in untyped SIMPLE, except for +the exceptions, which now type their parameter. Note that, unlike in untyped +SIMPLE, all statement constructs which have arguments and are not desugared +are strict, including the conditional and the while. Indeed, from a +typing perspective, they are all strict: first type their arguments and then +type the actual construct.

      +
      k
      syntax Block ::= "{" "}" + | "{" Stmt "}" + + syntax Stmt ::= Block + | Exp ";" [strict] + | "if" "(" Exp ")" Block "else" Block [avoid, strict] + | "if" "(" Exp ")" Block [macro] + | "while" "(" Exp ")" Block [strict] + | "for" "(" Stmt Exp ";" Exp ")" Block [macro] + | "return" Exp ";" [strict] + | "return" ";" + | "print" "(" Exps ")" ";" [strict] + | "try" Block "catch" "(" Param ")" Block [strict(1)] + | "throw" Exp ";" [strict] + | "join" Exp ";" [strict] + | "acquire" Exp ";" [strict] + | "release" Exp ";" [strict] + | "rendezvous" Exp ";" [strict] +
      +

      Note that the sequential composition is now sequentially strict, +because, unlike in the dynamic semantics where statements dissolved, +they now reduce to the stmt type, which is a result.

      +
      k
      syntax Stmt ::= Stmt Stmt [seqstrict, right] +
      +

      Desugaring macros

      +

      We use the same desugaring macros like in untyped SIMPLE, but, of +course, including the types of the involved variables.

      +
      k
      rule if (E) S => if (E) S else {} + rule for(Start Cond; Step) {S:Stmt} => {Start while(Cond){S Step;}} + rule for(Start Cond; Step) {} => {Start while(Cond){Step;}} + rule T:Type E1:Exp, E2:Exp, Es:Exps; => T E1; T E2, Es; [anywhere] + rule T:Type X:Id = E; => T X; X = E; [anywhere] + +endmodule + + +module SIMPLE-TYPED-STATIC + imports SIMPLE-TYPED-STATIC-SYNTAX + imports DOMAINS +
      +

      Static semantics

      +

      Here we define the type system of SIMPLE. Like concrete semantics, +type systems defined in K are also executable. However, K type +systems turn into type checkers instead of interpreters when executed.

      +

      The typing process is done in two (overlapping) phases. In the first +phase the global environment is built, which contains type bindings +for all the globally declared variables and functions. For functions, +the declared types will be ``trusted'' during the first phase and +simply bound to their corresponding function names and placed in the +global type environment. At the same time, type-checking tasks that +the function bodies indeed respect their claimed types are generated. +All these tasks are (concurrently) verified during the second phase. +This way, all the global variable and function declarations are +available in the global type environment and can be used in order to +type-check each function code. This is consistent with the semantics +of untyped SIMPLE, where functions can access all the global variables +and can call any other function declared in the same program. The +two phases may overlap because of the K concurrent semantics. For +example, a function task can be started while the first phase is still +running; moreover, it may even complete before the first phase does, +namely when all the global variables and functions that it needs have +already been processed and made available in the global environment by +the first phase task.

      +

      Extended syntax and results

      +

      The idea is to start with a configuration holding the program to type +in one of its cells, then apply rewrite rules on it mixing types and +language syntax, and eventually obtain a type instead of the original +program. In other words, the program reduces to its type using +the K rules giving the type system of the language. In doing so, +additional typing tasks for function bodies are generated and solved +the same way. If this rewriting process gets stuck, then we say that +the program is not well-typed. Otherwise the program is well-typed +(by definition). We did not need types for statements and for blocks +as part of the typed SIMPLE syntax, because programmers are not allowed +to use such types explicitly. However, we are going to need them in the +type system, because blocks and statements reduce to them.

      +

      We start by allowing types to be used inside expressions and statements in +our language. This way, types can be used together with language syntax in +subsequent K rules without any parsing errors. Like in the type system of +IMP++ in the K tutorial, we prefer to group the block and statement types +under one syntactic sub-category of types, because this allows us to more +compactly state that certain terms can be either blocks or statements. Also, +since programs and fragments of program will reduce to their types, in order +for the strictness and context declarations to be executable we state that +types are results (same like we did in the IMP++ tutorial).

      +
      k
      syntax Exp ::= Type + syntax Exps ::= Types + syntax BlockOrStmtType ::= "block" | "stmt" + syntax Type ::= BlockOrStmtType + syntax Block ::= BlockOrStmtType + syntax KResult ::= Type + | Types //TODO: remove this, eventually +
      +

      Configuration

      +

      The configuration of our type system consists of a tasks cell +holding various typing task cells, and a global type environment. +Each task includes a k cell holding the code to type, a tenv +cell holding the local type environment, and a return cell holding +the return type of the currently checked function. The latter is needed in +order to check whether return statements return values of the expected type. +Initially, the program is placed in a k cell inside a +task cell. Since the cells with multiplicity ? are not +included in the initial configuration, the task cell holding +the original program in its k cell will contain no other +subcells.

      +
      k
      configuration <T color="yellow"> + <tasks color="orange"> + <task multiplicity="*" color="yellow" type="Set"> + <k color="green"> $PGM:Stmt </k> + <tenv multiplicity="?" color="cyan"> .Map </tenv> + <returnType multiplicity="?" color="black"> void </returnType> + </task> + </tasks> +// <br/> + <gtenv color="blue"> .Map </gtenv> + </T> +
      +

      Variable declarations

      +

      Variable declarations type as statements, that is, they reduce to the +type stmt. There are only two cases that need to be +considered: when a simple variable is declared and when an array +variable is declared. The macros at the end of the syntax module +above take care of reducing other variable declarations, including +ones where the declared variables are initialized, to only these two +cases. The first case has two subcases: when the variable declaration +is global (i.e., the task cell contains only the k +cell), in which case it is added to the global type environment +checking at the same time that the variable has not been already +declared; and when the variable declaration is local (i.e., a +tenv cell is available), in which case it is simply added to +the local type environment, possibly shadowing previous homonymous +variables. The third case reduces to the second, incrementally moving +the array dimension into the type until the array becomes a simple +variable.

      +
      k
      rule <task> <k> T:Type X:Id; => stmt ...</k> </task> + <gtenv> Rho (.Map => X |-> T) </gtenv> + requires notBool(X in keys(Rho)) + rule <k> T:Type X:Id; => stmt ...</k> <tenv> Rho => Rho[X <- T] </tenv> + + context _:Type _::Exp[HOLE::Exps]; +// The rule below may need to sort E to Exp in the future, if the +// parser gets stricter; without that information, it may not be able +// to complete the LHS into T E[int,Ts],.Exps; (and similarly for the RHS) + rule T:Type E:Exp[int,Ts:Types]; => T[] E[Ts]; +// I want to write the rule below as _:Type (E:Exp[.Types] => E), +// but the list completion seems to not work well with that. + rule T:Type E:Exp[.Types]; => T E; +
      +

      Function declarations

      +

      Functions are allowed to be declared only at the top level (the +task cell holds only its k subcell). Each function +declaration reduces to a variable declaration (a binding of its name +to its declared function type), but also adds a task into the +tasks cell. The task consists of a typing of the statement +declaring all the function parameters followed by the function body, +together with the expected return type of the function. The +getTypes and mkDecls functions, defined at the end of +the file in the section on auxiliary operations, extracts the list of +types and makes a sequence of variable declarations from a list of +function parameters, respectively. Note that, although in the dynamic +semantics we include a terminating return statement at the +end of the function body to eliminate from the analysis the case when +the function does not provide an explicit return, we do not need to +include such a similar return statement here. That's because +the return statements type to stmt anyway, and the +entire code of the function body needs to type anyway.

      +
      k
      rule <task> <k> T:Type F:Id(Ps:Params) S => getTypes(Ps)->T F; ...</k> </task> + (.Bag => <task> + <k> mkDecls(Ps) S </k> <tenv> .Map </tenv> <returnType> T </returnType> + </task>) +
      +

      Checking if main() exists}

      +

      Once the entire program is processed (generating appropriate tasks +to type check its function bodies), we can dissolve the main +task cell (the one holding only a k subcell). Since +we want to enforce that programs include a main function, we also +generate a function task executing main() to ensure that it +types (remove this task creation if you do not want your type system +to reject programs without a main function).

      +
      k
      rule <task> <k> stmt => main(.Exps); </k> (.Bag => <tenv> .Map </tenv>) </task> +
      +

      Collecting the terminated tasks

      +

      Similarly, once a non-main task (i.e., one which contains a +tenv subcells) is completed using the subsequent rules (i.e., +its k cell holds only the block or stmt +type), we can dissolve its corresponding cell. Note that it is +important to ensure that we only dissolve tasks containing a +tenv cell with the rule below, because the main task should +not dissolve this way! It should do what the above rule says. +In the end, there should be no task cell left in the configuration +when the program correctly type checks.

      +
      k
      rule <task>... <k> _:BlockOrStmtType </k> <tenv> _ </tenv> ...</task> => .Bag +
      +

      Basic values

      +

      The first three rewrite rules below reduce the primitive values to +their types, as we typically do when we define type systems in K.

      +
      k
      rule _:Int => int + rule _:Bool => bool + rule _:String => string +
      +

      Variable lookup

      +

      There are three cases to distinguish for variable lookup: (1) if the +variable is bound in the local type environment, then look its type up +there; (2) if a local environment exists and the variable is not bound +in it, then look its type up in the global environment; (3) finally, +if there is no local environment, meaning that we are executing the +top-level pass, then look the variable's type up in the global +environment, too.

      +
      k
      rule <k> X:Id => T ...</k> <tenv>... X |-> T ...</tenv> + + rule <k> X:Id => T ...</k> <tenv> Rho </tenv> <gtenv>... X |-> T ...</gtenv> + requires notBool(X in keys(Rho)) + + rule <task> <k> X:Id => T ...</k> </task> <gtenv>... X |-> T ...</gtenv> +
      +

      Increment

      +

      We want the increment operation to apply to any lvalue, including +array elements, not only to variables. For that reason, we define a +special context extracting the type of the argument of the increment +operation only if that argument is an lvalue. Otherwise the rewriting +process gets stuck. The operation ltype is defined at the +end of this file, in the auxiliary operation section. It essentially +acts as a filter, getting stuck if its argument is not an lvalue and +letting it reduce otherwise. The type of the lvalue is expected to be +an integer in order to be allowed to be incremented, as seen in the +rule ++ int => int below.

      +
      k
      context ++(HOLE => ltype(HOLE)) + rule ++ int => int +
      +

      Common expression constructs

      +

      The rules below are straightforward and self-explanatory:

      +
      k
      rule int + int => int + rule string + string => string + rule int - int => int + rule int * int => int + rule int / int => int + rule int % int => int + rule - int => int + rule int < int => bool + rule int <= int => bool + rule int > int => bool + rule int >= int => bool + rule T:Type == T => bool + rule T:Type != T => bool + rule bool && bool => bool + rule bool || bool => bool + rule ! bool => bool +
      +

      Array access and size

      +

      Array access requires each index to type to an integer, and the +array type to be at least as deep as the number of indexes:

      +
      k
      // NOTE: +// We used to need parentheses in the RHS, to avoid capturing Ts as an attribute +// Let's hope that is not a problem anymore. + + rule (T[])[int, Ts:Types] => T[Ts] + rule T:Type[.Types] => T +
      +

      sizeOf only needs to check that its argument is an array:

      +
      k
      rule sizeOf(_T[]) => int +
      +

      Input/Output

      +

      The read expression construct types to an integer, while print types +to a statement provided that all its arguments type to integers or +strings.

      +
      k
      rule read() => int + + rule print(T:Type, Ts => Ts); requires T ==K int orBool T ==K string + rule print(.Types); => stmt +
      +

      Assignment

      +

      The special context and the rule for assignment below are similar +to those for increment: the LHS of the assignment must be an lvalue +and, in that case, it must have the same type as the RHS, which then +becomes the type of the assignment.

      +
      k
      context (HOLE => ltype(HOLE)) = _ + rule T:Type = T => T +
      +

      Function application and return

      +

      Function application requires the type of the function and the +types of the passed values to be compatible. Note that a special case +is needed to handle the no-argument case:

      +
      k
      rule (Ts:Types -> T)(Ts) => T requires Ts =/=K .Types + rule (void -> T)(.Types) => T +
      +

      The returned value must have the same type as the declared +function return type. If an empty return is encountered, than +we should check that we are in a function (and not a thread) +context, that is, a return cell must be available:

      +
      k
      rule <k> return T:Type; => stmt ...</k> <returnType> T </returnType> + rule <k> return; => stmt ...</k> <returnType> _ </returnType> +
      +

      Blocks

      +

      To avoid having to recover type environments after blocks, we prefer +to start a new task for block body, making sure that the new task +is passed the same type environment and return cells. The value +returned by return statements must have the same type as +stated in the return cell. The print variadic +function is allowed to only print integers and strings. The thrown +exceptions can only have integer type.

      +
      k
      rule {} => block + + rule <task> <k> {S} => block ...</k> <tenv> Rho </tenv> R </task> + (.Bag => <task> <k> S </k> <tenv> Rho </tenv> R </task>) +
      +

      Expression statement

      +
      k
      rule _:Type; => stmt +
      +

      Conditional and while loop

      +
      k
      rule if (bool) block else block => stmt + rule while (bool) block => stmt +
      +

      Exceptions

      +

      We currently force the parameters of exceptions to only be integers. +Moreover, for simplicity, we assume that integer exceptions can be +thrown from anywhere, including from functions which do not define +any try-catch block (with the currently unchecked ‒also for +simplicity‒ expectation that the caller functions would catch those +exceptions).

      +
      k
      rule try block catch(int X:Id) {S} => {int X; S} + rule try block catch(int X:Id) {} => {int X;} + rule throw int; => stmt +
      +

      Concurrency

      +

      Nothing special about typing the concurrency constructs, except that +we do not want the spawned thread to return, so we do not include any +return cell in the new task cell for the thread statement. +Same like with the functions above, we do not check for thrown +exceptions which are not caught.

      +
      k
      rule <k> spawn S => int ...</k> <tenv> Rho </tenv> + (.Bag => <task> <k> S </k> <tenv> Rho </tenv> </task>) + rule join int; => stmt + rule acquire _:Type; => stmt + rule release _:Type; => stmt + rule rendezvous _:Type; => stmt + + rule _:BlockOrStmtType _:BlockOrStmtType => stmt +
      +

      Auxiliary constructs

      +

      The function mkDecls turns a list of parameters into a +list of variable declarations.

      +
      k
      syntax Stmt ::= mkDecls(Params) [function] + rule mkDecls(T:Type X:Id, Ps:Params) => T X; mkDecls(Ps) + rule mkDecls(.Params) => {} +
      +

      The ltype context allows only expressions which have an +lvalue to evaluate.

      +
      k
      syntax LValue ::= Id + rule isLValue(_:Exp[_:Exps]) => true + syntax Exp ::= LValue // K should be able to infer this + // if not added, then it gets stuck with an Id on k cell + +// Instead of the second LValue production above you can use a rule: +// rule isLValue(_:Exp[_:Exps]) => true + + syntax Exp ::= ltype(Exp) +// context ltype(HOLE:LValue) +// The above context does not work due to some error, so we write instead + context ltype(HOLE) requires isLValue(HOLE) +
      +

      The function getTypes is the same as in SIMPLE typed dynamic.

      +
      k
      syntax Types ::= getTypes(Params) [function] + rule getTypes(T:Type _:Id) => T, .Types // I would like to not use .Types + rule getTypes(T:Type _:Id, P, Ps) => T, getTypes(P,Ps) + rule getTypes(.Params) => void, .Types + +endmodule +
      +

      Go to Lesson 3, SIMPLE typed dynamic

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/2_dynamic/simple-typed-dynamic/index.html b/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/2_dynamic/simple-typed-dynamic/index.html new file mode 100644 index 00000000000..680c3715dae --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/2_dynamic/simple-typed-dynamic/index.html @@ -0,0 +1,1142 @@ + + + + + + + + + + + + + + +SIMPLE — Typed — Dynamic | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      SIMPLE — Typed — Dynamic

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      +

      This is the K dynamic semantics of the typed SIMPLE language. +It is very similar to the semantics of the untyped SIMPLE, the +difference being that we now dynamically check the typing policy +described in the static semantics of typed SIMPLE. Because of the +dynamic nature of the semantics, we can also perform some additional +checks which were not possible in the static semantics, such as +memory leaks due to accessing an array out of its bounds. We will +highlight the differences between the dynamically typed and the +untyped SIMPLE as we proceed with the semantics. We recommend the +reader to consult the typing policy and the syntax of types discussed +in the static semantics of the typed SIMPLE language.

      +
      k
      module SIMPLE-TYPED-DYNAMIC-SYNTAX + imports DOMAINS-SYNTAX +
      +

      Syntax

      +

      The syntax of typed SIMPLE extends that of untyped SIMPLE with support +for declaring types to variables and functions.

      +

      The syntax below is identical to that of the static semantics of typed +SIMPLE. However, the K strictness attributes are like those of the untyped +SIMPLE, to capture the desired evaluation strategies of the various language +constructs.

      +
      k
      syntax Id ::= "main" [token] +
      +

      Types

      +
      k
      syntax Type ::= "void" | "int" | "bool" | "string" + | Type "[" "]" + | "(" Type ")" [bracket] + > Types "->" Type + syntax Types ::= List{Type,","} [klabel(exps)] +
      +

      Declarations

      +
      k
      syntax Param ::= Type Id + syntax Params ::= List{Param,","} + + syntax Stmt ::= Type Exps ";" + | Type Id "(" Params ")" Block +
      +

      Expressions

      +
      k
      syntax Exp ::= Int | Bool | String | Id + | "(" Exp ")" [bracket] + | "++" Exp + > Exp "[" Exps "]" [strict] + > Exp "(" Exps ")" [strict] + | "-" Exp [strict] + | "sizeOf" "(" Exp ")" [strict] + | "read" "(" ")" + > left: + Exp "*" Exp [strict, left] + | Exp "/" Exp [strict, left] + | Exp "%" Exp [strict, left] + > left: + Exp "+" Exp [strict, left] + | Exp "-" Exp [strict, left] + > non-assoc: + Exp "<" Exp [strict, non-assoc] + | Exp "<=" Exp [strict, non-assoc] + | Exp ">" Exp [strict, non-assoc] + | Exp ">=" Exp [strict, non-assoc] + | Exp "==" Exp [strict, non-assoc] + | Exp "!=" Exp [strict, non-assoc] + > "!" Exp [strict] + > left: + Exp "&&" Exp [strict(1), left] + | Exp "||" Exp [strict(1), left] + > "spawn" Block + > Exp "=" Exp [strict(2), right] +
      +

      Like in the static semantics, there is no need for lists of identifiers +(because we now have lists of parameters).

      +
      k
      syntax Exps ::= List{Exp,","} [strict, klabel(exps)] + syntax Val + syntax Vals ::= List{Val,","} [klabel(exps)] +
      +

      Statements

      +
      k
      syntax Block ::= "{" "}" + | "{" Stmt "}" + + syntax Stmt ::= Block + | Exp ";" [strict] + | "if" "(" Exp ")" Block "else" Block [avoid, strict(1)] + | "if" "(" Exp ")" Block [macro] + | "while" "(" Exp ")" Block + | "for" "(" Stmt Exp ";" Exp ")" Block [macro] + | "print" "(" Exps ")" ";" [strict] + | "return" Exp ";" [strict] + | "return" ";" + | "try" Block "catch" "(" Param ")" Block + | "throw" Exp ";" [strict] + | "join" Exp ";" [strict] + | "acquire" Exp ";" [strict] + | "release" Exp ";" [strict] + | "rendezvous" Exp ";" [strict] + + syntax Stmt ::= Stmt Stmt [right] +
      +

      The same desugaring macros like in the statically typed SIMPLE.

      +
      k
      rule if (E) S => if (E) S else {} + rule for(Start Cond; Step) {S:Stmt} => {Start while(Cond){S Step;}} + rule for(Start Cond; Step) {} => {Start while(Cond){Step;}} + rule T:Type E1:Exp, E2:Exp, Es:Exps; => T E1; T E2, Es; [anywhere] + rule T:Type X:Id = E; => T X; X = E; [anywhere] + +endmodule + + +module SIMPLE-TYPED-DYNAMIC + imports SIMPLE-TYPED-DYNAMIC-SYNTAX + imports DOMAINS +
      +

      Semantics

      +

      Values and results

      +

      These are similar to those of untyped SIMPLE, except that the array +references and the function abstrations now also hold their types. +These types are needed in order to easily compute the type of any +value in the language (see the auxiliary typeOf operation at +the end of this module).

      +
      k
      syntax Val ::= Int | Bool | String + | array(Type,Int,Int) + | lambda(Type,Params,Stmt) + syntax Exp ::= Val + syntax Exps ::= Vals + syntax KResult ::= Val + | Vals // TODO: should not need this +
      +

      Configuration

      +

      The configuration is almost identical to that of untyped SIMPLE, +except for a return cell inside the control cell. +This return cell will hold, like in the static semantics of +typed SIMPLE, the expected type of the value returned by the function +being executed. The contents of this cell will be set whenever a +function is invoked and will be checked whenever the evaluation of the +function body encounters an explicit return statement.

      +
      k
      // the syntax declarations below are required because the sorts are + // referenced directly by a production and, because of the way KIL to KORE + // is implemented, the configuration syntax is not available yet + // should simply work once KIL is removed completely + // check other definitions for this hack as well + + syntax ControlCell + syntax ControlCellFragment + + configuration <T color="red"> + <threads color="orange"> + <thread multiplicity="*" color="yellow" type="Map"> + <id color="pink"> 0 </id> + <k color="green"> ($PGM:Stmt ~> execute) </k> +// <br/> + <control color="cyan"> + <fstack color="blue"> .List </fstack> + <xstack color="purple"> .List </xstack> + <returnType color="LimeGreen"> void </returnType> + </control> +// <br/> + <env color="violet"> .Map </env> + <holds color="black"> .Map </holds> + </thread> + </threads> +// <br/> + <genv color="pink"> .Map </genv> + <store color="white"> .Map </store> + <busy color="cyan">.Set</busy> + <terminated color="red"> .Set </terminated> + <input color="magenta" stream="stdin"> .List </input> + <output color="brown" stream="stdout"> .List </output> + <nextLoc color="gray"> 0 </nextLoc> + </T> +
      +

      Declarations and Initialization

      +

      Variable Declaration

      +

      The undefined construct is now parameterized by a type. +A main difference between untyped SIMPLE and dynamically typed SIMPLE +is that the latter assigns a type to each of its locations and that +type cannot be changed during the execution of the program. We do not +do any memory management in our semantic definitions here, so +locations cannot be reclaimed, garbage collected and/or reused. Each +location corresponds precisely to an allocated variable or array +element, whose type was explicitly or implicitly declared in the +program and does not change. It is therefore safe to type each +location and then never allow that type to change. The typed +undefined values effectively assign both a type and an undefined value +to a location.

      +
      k
      syntax KItem ::= undefined(Type) [latex(\bot_{#1})] + + rule <k> T:Type X:Id; => . ...</k> + <env> Env => Env[X <- L] </env> + <store>... .Map => L |-> undefined(T) ...</store> + <nextLoc> L:Int => L +Int 1 </nextLoc> +
      +

      Array Declaration

      +

      The dynamic semantics of typed array declarations is similar to that +in untyped SIMPLE, but we have to make sure that we associate the +right type to the allocated locations.

      +
      k
      rule <k> T:Type X:Id[N:Int]; => . ...</k> + <env> Env => Env[X <- L] </env> + <store>... .Map => L |-> array(T, L +Int 1, N) + (L +Int 1)...(L +Int N) |-> undefined(T) ...</store> + <nextLoc> L:Int => L +Int 1 +Int N </nextLoc> + when N >=Int 0 + + context _:Type _::Exp[HOLE::Exps]; +
      +

      The desugaring of multi-dimensional arrays into unidimensional +ones is also similar to that in untyped SIMPLE, although we have to +make sure that all the declared variables have the right types. The +auxiliary operation T<Vs>, defined at the end of the file, +adds the length of Vs dimensions to the type T.

      +
      k
      // TODO: Check the desugaring below to be consistent with the one for untyped simple + + syntax Id ::= "$1" [token] | "$2" [token] + rule T:Type X:Id[N1:Int, N2:Int, Vs:Vals]; + => T[]<Vs> X[N1]; + { + T[][]<Vs> $1=X; + for(int $2=0; $2 <= N1 - 1; ++$2) { + T X[N2,Vs]; + $1[$2] = X; + } + } +
      +

      Function declaration

      +

      Store all function parameters, as well as the return type, as part +of the lambda abstraction. In the spirit of dynamic typing, we will +make sure that parameters are well typed when the function is invoked.

      +
      k
      rule <k> T:Type F:Id(Ps:Params) S => . ...</k> + <env> Env => Env[F <- L] </env> + <store>... .Map => L |-> lambda(T, Ps, S) ...</store> + <nextLoc> L => L +Int 1 </nextLoc> +
      +

      Calling main()

      +

      When done with the first pass, call main().

      +
      k
      syntax KItem ::= "execute" + rule <k> execute => main(.Exps); </k> + <env> Env </env> + <genv> .Map => Env </genv> +
      +

      Expressions

      +

      Variable lookup

      +
      k
      rule <k> X:Id => V ...</k> + <env>... X |-> L ...</env> + <store>... L |-> V:Val ...</store> [group(lookup)] +
      +

      Variable/Array increment

      +
      k
      context ++(HOLE => lvalue(HOLE)) + rule <k> ++loc(L) => I +Int 1 ...</k> + <store>... L |-> (I:Int => I +Int 1) ...</store> [group(increment)] +
      +

      Arithmetic operators

      +
      k
      rule I1 + I2 => I1 +Int I2 + rule Str1 + Str2 => Str1 +String Str2 + rule I1 - I2 => I1 -Int I2 + rule I1 * I2 => I1 *Int I2 + rule I1 / I2 => I1 /Int I2 when I2 =/=K 0 + rule I1 % I2 => I1 %Int I2 when I2 =/=K 0 + rule - I => 0 -Int I + rule I1 < I2 => I1 <Int I2 + rule I1 <= I2 => I1 <=Int I2 + rule I1 > I2 => I1 >Int I2 + rule I1 >= I2 => I1 >=Int I2 + rule V1:Val == V2:Val => V1 ==K V2 + rule V1:Val != V2:Val => V1 =/=K V2 + rule ! T => notBool(T) + rule true && E => E + rule false && _ => false + rule true || _ => true + rule false || E => E +
      +

      Array lookup

      +

      Check array bounds, as part of the dynamic typing policy.

      +
      k
      // Same comment as for simple untyped regarding [anywhere] + rule V:Val[N1:Int, N2:Int, Vs:Vals] => V[N1][N2, Vs] + [anywhere] + +// Same comment as for simple untyped regarding [anywhere] + rule array(_:Type, L:Int, M:Int)[N:Int] => lookup(L +Int N) + when N >=Int 0 andBool N <Int M [anywhere] +
      +

      Size of an array

      +
      k
      rule sizeOf(array(_,_,N)) => N +
      +

      Function call

      +

      Define function call and return together, to see their relationship. +Note that the operation mkDecls now declares properly typed +instantiated variables, and that the semantics of return also +checks that that type of the returned value is expected one.

      +
      k
      syntax KItem ::= (Type,Map,K,ControlCellFragment) + + rule <k> lambda(T,Ps,S)(Vs:Vals) ~> K => mkDecls(Ps,Vs) S return; </k> + <control> + <fstack> .List => ListItem((T',Env,K,C)) ...</fstack> + <returnType> T' => T </returnType> + C + </control> + <env> Env => GEnv </env> + <genv> GEnv </genv> + + rule <k> return V:Val; ~> _ => V ~> K </k> + <control> + <fstack> ListItem((T',Env,K,C)) => .List ...</fstack> + <returnType> T => T' </returnType> + (_ => C) + </control> + <env> _ => Env </env> + when typeOf(V) ==K T // check the type of the returned value +
      +

      Like the undefined above, nothing also gets +tagged with a type now. The empty return statement is +completed to return the nothing value tagged as expected.

      +
      k
      syntax Val ::= nothing(Type) + rule <k> return; => return nothing(T); ...</k> <returnType> T </returnType> +
      +

      Read

      +
      k
      rule <k> read() => I ...</k> <input> ListItem(I:Int) => .List ...</input> [group(read)] +
      +

      Assignment

      +

      The assignment now checks that the type of the assigned location is +preserved:

      +
      k
      context (HOLE => lvalue(HOLE)) = _ + + rule <k> loc(L) = V:Val => V ...</k> <store>... L |-> (V' => V) ...</store> + when typeOf(V) ==K typeOf(V') [group(assignment)] +
      +

      Statements

      +

      Blocks

      +
      k
      rule {} => . + rule <k> { S } => S ~> setEnv(Env) ...</k> <env> Env </env> +
      +

      Sequential composition

      +
      k
      rule S1:Stmt S2:Stmt => S1 ~> S2 +
      +

      Expression statements

      +
      k
      rule _:Val; => . +
      +

      Conditional

      +
      k
      rule if ( true) S else _ => S + rule if (false) _ else S => S +
      +

      While loop

      +
      k
      rule while (E) S => if (E) {S while(E)S} +
      +

      Print

      +

      We only allow printing integers and strings:

      +
      k
      rule <k> print(V:Val, Es => Es); ...</k> <output>... .List => ListItem(V) </output> + when typeOf(V) ==K int orBool typeOf(V) ==K string [group(print)] + rule print(.Vals); => . +
      +

      Exceptions

      +

      Exception parameters are now typed, but note that the semantics below +works correctly only when the thrown exception has the same type as +the innermost try-catch paramete. To keep things simple, for the time +being we can assume that SIMPLE only throws and catches integer +values, in which case our semantics below works fine:

      +
      k
      syntax KItem ::= (Param,Stmt,K,Map,ControlCellFragment) // Param instead of Id + + syntax KItem ::= "popx" + + rule <k> (try S1 catch(P) S2 => S1 ~> popx) ~> K </k> + <control> + <xstack> .List => ListItem((P, S2, K, Env, C)) ...</xstack> + C + </control> + <env> Env </env> + + rule <k> popx => . ...</k> + <xstack> ListItem(_) => .List ...</xstack> + + rule <k> throw V:Val; ~> _ => { T X = V; S2 } ~> K </k> + <control> + <xstack> ListItem((T:Type X:Id, S2, K, Env, C)) => .List ...</xstack> + (_ => C) + </control> + <env> _ => Env </env> +
      +

      Threads

      +

      Thread creation

      +
      k
      rule <thread>... + <k> spawn S => !T:Int +Int 1 ...</k> + <env> Env </env> + ...</thread> + (.Bag => <thread>... + <k> S </k> + <env> Env </env> + <id> !T +Int 1 </id> + ...</thread>) +
      +

      Thread termination

      +
      k
      rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .Bag) + <busy> Busy => Busy -Set keys(H) </busy> + <terminated>... .Set => SetItem(T) ...</terminated> +
      +

      Thread joining

      +
      k
      rule <k> join T:Int; => . ...</k> + <terminated>... SetItem(T) ...</terminated> +
      +

      Acquire lock

      +
      k
      rule <k> acquire V:Val; => . ...</k> + <holds>... .Map => V |-> 0 ...</holds> + <busy> Busy (.Set => SetItem(V)) </busy> + when (notBool(V in Busy:Set)) [group(acquire)] + + rule <k> acquire V; => . ...</k> + <holds>... V:Val |-> (N:Int => N +Int 1) ...</holds> +
      +

      Release lock

      +
      k
      rule <k> release V:Val; => . ...</k> + <holds>... V |-> (N => N:Int -Int 1) ...</holds> + when N >Int 0 + + rule <k> release V; => . ...</k> <holds>... V:Val |-> 0 => .Map ...</holds> + <busy>... SetItem(V) => .Set ...</busy> +
      +

      Rendezvous synchronization

      +
      k
      rule <k> rendezvous V:Val; => . ...</k> + <k> rendezvous V; => . ...</k> [group(rendezvous)] +
      +

      Auxiliary declarations and operations

      +

      Turns a list of parameters and a list of instance values for them +into a list of variable declarations.

      +
      k
      syntax Stmt ::= mkDecls(Params,Vals) [function] + rule mkDecls((T:Type X:Id, Ps:Params), (V:Val, Vs:Vals)) + => T X=V; mkDecls(Ps,Vs) + rule mkDecls(.Params,.Vals) => {} +
      +

      Location lookup.

      +
      k
      syntax Exp ::= lookup(Int) // see NOTES.md for why Exp instead of KItem + rule <k> lookup(L) => V ...</k> <store>... L |-> V:Val ...</store> [group(lookup)] +
      +

      Environment recovery.

      +
      k
      // TODO: same comment regarding setEnv(...) as for simple untyped + + syntax KItem ::= setEnv(Map) + rule <k> setEnv(Env) => . ...</k> <env> _ => Env </env> + rule (setEnv(_) => .) ~> setEnv(_) +
      +

      lvalue and loc

      +
      k
      syntax Exp ::= lvalue(K) + syntax Val ::= loc(Int) + + rule <k> lvalue(X:Id => loc(L)) ...</k> <env>... X |-> L:Int ...</env> + + //context lvalue(_[HOLE]) + //context lvalue(HOLE[_]) + context lvalue(_::Exp[HOLE::Exps]) + context lvalue(HOLE::Exp[_::Exps]) + + rule lvalue(lookup(L:Int) => loc(L)) +
      +

      Adds the corresponding depth to an array type

      +
      k
      syntax Type ::= Type "<" Vals ">" [function] + rule T:Type<_,Vs:Vals> => T[]<Vs> + rule T:Type<.Vals> => T +
      +

      Sequences of locations.

      +
      k
      syntax Map ::= Int "..." Int "|->" K + [function, latex({#1}\ldots{#2}\mapsto{#3})] + rule N...M |-> _ => .Map when N >Int M + rule N...M |-> K => N |-> K (N +Int 1)...M |-> K when N <=Int M + +// Type of a value. + syntax Type ::= typeOf(K) [function] + rule typeOf(_:Int) => int + rule typeOf(_:Bool) => bool + rule typeOf(_:String) => string + rule typeOf(array(T,_,_)) => (T[]) // () needed! K parses [] as "no tags" + rule typeOf(lambda(T,Ps,_)) => getTypes(Ps) -> T + rule typeOf(undefined(T)) => T + rule typeOf(nothing(T)) => T +
      +

      List of types of a parameter.

      +
      k
      syntax Types ::= getTypes(Params) [function] + rule getTypes(T:Type _:Id) => T, .Types // I would like to not use .Types + rule getTypes(T:Type _:Id, P, Ps) => T, getTypes(P,Ps) + rule getTypes(.Params) => void, .Types +endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/programs/index.html b/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/programs/index.html new file mode 100644 index 00000000000..b2a95c1ad58 --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/programs/index.html @@ -0,0 +1,379 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      The programs in this folder are typed variants of the SIMPLE untyped programs. +These programs will be executed both with the dynamic and with the static +semantics of the typed SIMPLE language. Each of the semantics contains its +own results folder showing the expected results of executing these programs.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/2_kool/1_untyped/kool-untyped/index.html b/k-distribution/pl-tutorial/2_languages/2_kool/1_untyped/kool-untyped/index.html new file mode 100644 index 00000000000..1a601ac7298 --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/2_kool/1_untyped/kool-untyped/index.html @@ -0,0 +1,1522 @@ + + + + + + + + + + + + + + +KOOL — Untyped | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      KOOL — Untyped

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      +

      This is the K semantic definition of the untyped KOOL language. KOOL +is aimed at being a pedagogical and research language that captures +the essence of the object-oriented programming paradigm. Its untyped +variant discussed here is simpler than the typed one, ignoring several +intricate aspects of types in the presence of objects. A program +consists of a set of class declarations. Each class can extend at +most one other class (KOOL is single-inheritance). A class can +declare a set of fields and a set of methods, all public and called +the class' members. Specifically, KOOL includes the +following features:

      +
        +
      • +

        Class declarations, where a class may or may not explicitly +extend another class. In case a class does not explicitly extend +another class, then it is assumed that it extends the default top-most +and empty (i.e., no members) class called Object. Each class +is required to declare precisely one homonymous method, called its +constructor. Each valid program should contain one class +named Main, whose constructor, Main(), takes no +arguments. The execution of a program consists of creating an object +instance of class Main and invoking the constructor +Main() on it, that is, of executing new Main();.

        +
      • +
      • +

        All features of SIMPLE (see examples/simple/untyped), +i.e., multidimensional arrays, function (here called "method") +abstractions with call-by-value parameter passing style and static +scoping, blocks with locals, input/output, parametric exceptions, and +concurrency via dynamic thread creation/termination and synchronization. +The only change in the syntax of SIMPLE when imported in KOOL is the +function declaration keyword, function, which is changed into +method. The exact same desugaring macros from SIMPLE are +also included in KOOL. We can think of KOOL's classes as embedding +SIMPLE programs (extended with OO constructs, as discussed next).

        +
      • +
      • +

        Object creation using the new C(e1,...,en) +expression construct. An object instance of class C is first +created and then the constructor C(e1,...,en) is implicitly +called on that object. KOOL only allows (and requires) one +constructor per class. The class constructor can be called either +implicitly during a new object creation for the class, or explicitly. +The superclass constructor is not implicitly invoked when a +class constructor is invoked; if you want to invoke the superclass +constructor from a subclass constructor then you have to do it +explicitly.

        +
      • +
      • +

        An expression construct this, which evaluates to the +current object.

        +
      • +
      • +

        An expression construct super, which is used (only) in +combination with member lookup (see next) to refer to a superclass +field or method.

        +
      • +
      • +

        A member lookup expression construct e.x, where e +is an expression (either an expression expected to evaluate to an object +or the super construct) and x is a class member name, +that is, a field or a method name.

        +
      • +
      • +

        Expression constructs e instanceOf C and +(C) e, where e is an expression expected +to evaluate to an object and C a class name. The former +tells whether the class of e is a subclass of C, +that is, whether e can be used as an instance of C, +and the latter changes the class of e to C. These +operations always succeed: the former returns a Boolean value, while +the latter changes the current class of e to C +regardless of whether it is safe to do so or not. The typed version +of KOOL will check the safety of casting by ensuring that the instance +class of the object is a subclass of C. In untyped KOOL we +do not want to perform this check because we want to allow the +programmer maximum of flexibility: if one always accesses only +available members, then the program can execute successfully despite +the potentially unsafe cast.

        +
      • +
      +

      There are some specific aspects of KOOL that need to be discussed.

      +

      First, KOOL is higher-order, allowing function abstractions to be +treated like any other values in the language. For example, if +m is a method of object e then e.m +evaluates to the corresponding function abstraction. The function +abstraction is in fact a closure, because in addition to the method +parameters and body it also encapsulates the object value (i.e., the +environment of the object together with its current class—see below) +that e evaluates to. This way, function abstractions can be +invoked anywhere and have the capability to change the state of their +object. For example, if m is a method of object e +which increments a field c of e when invoked, and if +getm is another method of e which simply returns +m when invoked, then the double application +(e.getm())() has the same effect as e.m(), that is, +increments the counter c of e. Note that the +higher-order nature of KOOL was not originally planned; it came as a +natural consequence of evaluating methods to closures and we decided +to keep it. If you do not like it then do not use it.

      +

      Second, since all the fields and methods are public in KOOL and since +they can be redeclared in subclasses, it is not immediately clear how +to lookup the member x when we write e.x and +e is different from super. We distinguish two cases, +depending on whether e.x occurs in a method invocation +context (i.e., e.x(...)) or in a field context. KOOL has +dynamic method dispatch, so if e.x is invoked as a method +then x will be searched for starting with the instance class of +the object value to which e evaluates. If e.x +occurs in a non-method-invocation context then x will be +treated as a field (although it may hold a method closure due to the +higher-order nature of KOOL) and thus will be searched starting with +the current class of the object value of e (which, because of +this and casting, may be different from its instance class). +In order to achieve the above, each object value will consist of a +pair holding the current class of the object and an environment stack +with one layer for each class in the object's instance class hierarchy.

      +

      Third, although KOOL is dynamic method dispatch, its capabilities +described above are powerful enough to allow us to mimic static +method dispatch. For example, suppose that you want to invoke method +m() statically. Then all you need to do is to declare a +local variable and bind it to m, for example var staticm = m;, and +then call staticm(). This works because +staticm is first bound to the method closure that m +evaluates to, and then looked up as any local variable when invoked. +We only enable the dynamic method dispatch when we have an object +member on an application position, e.g., m().

      +

      In what follows, we limit our comments to the new, KOOL-specific +aspects of the language. We refer the reader to the untyped SIMPLE +language for documentation on the the remaining features, because +those were all borrowed from SIMPLE.

      +
      k
      module KOOL-UNTYPED-SYNTAX + imports DOMAINS-SYNTAX +
      +

      Syntax

      +

      The syntax of KOOL extends that of SIMPLE with object-oriented +constructs. We removed from the K annotated syntax of SIMPLE two +constructs, namely the one for function declarations (because we want +to call them methods now) and the one for function application +(because application is not strict in the first argument +anymore—needs to initiate dynamic method dispatch). The additional +syntax includes:

      +
        +
      • First, we need a new dedicated identifier, Object, for +the default top-most class.
      • +
      • Second, we rename the function keyword of SIMPLE into method.
      • +
      • Third, we add syntax for class declarations together with a +macro making classes which extend nothing to extend Object.
      • +
      • Fourth, we change the strictness attribute of application +into strict(2).
      • +
      • Finally, we add syntax and corresponding strictness +for the KOOL object-oriented constructs.
      • +
      +
      k
      syntax Id ::= "Object" [token] | "Main" [token] + + syntax Stmt ::= "var" Exps ";" + | "method" Id "(" Ids ")" Block // called "function" in SIMPLE + | "class" Id Block // KOOL + | "class" Id "extends" Id Block // KOOL + + syntax Exp ::= Int | Bool | String | Id + | "this" // KOOL + | "super" // KOOL + | "(" Exp ")" [bracket] + | "++" Exp + | Exp "instanceOf" Id [strict(1)] // KOOL + | "(" Id ")" Exp [strict(2)] // KOOL cast + | "new" Id "(" Exps ")" [strict(2)] // KOOL + | Exp "." Id // KOOL + > Exp "[" Exps "]" [strict] + > Exp "(" Exps ")" [strict(2)] // was strict in SIMPLE + | "-" Exp [strict] + | "sizeOf" "(" Exp ")" [strict] + | "read" "(" ")" + > left: + Exp "*" Exp [strict, left] + | Exp "/" Exp [strict, left] + | Exp "%" Exp [strict, left] + > left: + Exp "+" Exp [strict, left] + | Exp "-" Exp [strict, left] + > non-assoc: + Exp "<" Exp [strict, non-assoc] + | Exp "<=" Exp [strict, non-assoc] + | Exp ">" Exp [strict, non-assoc] + | Exp ">=" Exp [strict, non-assoc] + | Exp "==" Exp [strict, non-assoc] + | Exp "!=" Exp [strict, non-assoc] + > "!" Exp [strict] + > left: + Exp "&&" Exp [strict(1), left] + | Exp "||" Exp [strict(1), left] + > "spawn" Block + > Exp "=" Exp [strict(2), right] + + syntax Ids ::= List{Id,","} + + syntax Exps ::= List{Exp,","} [strict, klabel(exps)] + syntax Val + syntax Vals ::= List{Val,","} [klabel(exps)] + + syntax Block ::= "{" "}" + | "{" Stmt "}" + + syntax Stmt ::= Block + | Exp ";" [strict] + | "if" "(" Exp ")" Block "else" Block [avoid, strict(1)] + | "if" "(" Exp ")" Block [macro] + | "while" "(" Exp ")" Block + | "for" "(" Stmt Exp ";" Exp ")" Block [macro] + | "return" Exp ";" [strict] + | "return" ";" [macro] + | "print" "(" Exps ")" ";" [strict] + | "try" Block "catch" "(" Id ")" Block + | "throw" Exp ";" [strict] + | "join" Exp ";" [strict] + | "acquire" Exp ";" [strict] + | "release" Exp ";" [strict] + | "rendezvous" Exp ";" [strict] + + syntax Stmt ::= Stmt Stmt [right] +
      +

      Old desugaring rules, from SIMPLE

      +
      k
      rule if (E) S => if (E) S else {} + rule for(Start Cond; Step) {S} => {Start while (Cond) {S Step;}} + rule var E1::Exp, E2::Exp, Es::Exps; => var E1; var E2, Es; [anywhere] + rule var X::Id = E; => var X; X = E; [anywhere] +
      +

      New desugaring rule

      +
      k
      rule class C:Id S => class C extends Object S // KOOL + +endmodule +
      +

      Semantics

      +

      We first discuss the new configuration of KOOL, which extends that of +SIMPLE. Then we include the semantics of the constructs borrowed from +SIMPLE unchanged; we refrain from discussing those, because they were +already discussed in the K definition of SIMPLE. Then we discuss +changes to SIMPLE's semantics needed for the more general meaning of +the previous SIMPLE constructs (for example for thread spawning, +assignment, etc.). Finally, we discuss in detail the +semantics of the additional KOOL constructs.

      +
      k
      module KOOL-UNTYPED + imports KOOL-UNTYPED-SYNTAX + imports DOMAINS +
      +

      Configuration

      +

      KOOL removes one cell and adds two nested cells to the configuration +of SIMPLE. The cell which is removed is the one holding the global +environment, because a KOOL program consists of a set of classes only, +with no global declarations. In fact, since informally speaking each +KOOL class now includes a SIMPLE program, it is safe to say that the +global variables in SIMPLE became class fields in KOOL. Let us now +discuss the new cells that are added to the configuration of SIMPLE.

      +
        +
      • +

        The cell crntObj holds data pertaining to the current +object, that is, the object environment in which the code in cell +k executes: crntClass holds the current class (which +can change as methods of the current object are invoked); +envStack holds the stack of environments as a list, +each layer corresponding to one class in the objects' instance class +hierarchy; location, which is optional, holds the location in +the store where the current object is or has to be located (this is +useful both for method closures and for the semantics of object +creation).

        +
      • +
      • +

        The cell classes holds all the declared classes, each +class being held in its own class cell which contains a name +(className), a parent (extends), and the actual +member declarations (declarations).

        +
      • +
      +
      k
      // the syntax declarations below are required because the sorts are + // referenced directly by a production and, because of the way KIL to KORE + // is implemented, the configuration syntax is not available yet + // should simply work once KIL is removed completely + // check other definitions for this hack as well + syntax EnvCell + syntax ControlCell + syntax EnvStackCell + syntax CrntObjCellFragment + + configuration <T color="red"> + <threads color="orange"> + <thread multiplicity="*" type="Set" color="yellow"> + <k color="green"> $PGM:Stmt ~> execute </k> + //<br/> // TODO(KORE): support latex annotations #1799 + <control color="cyan"> + <fstack color="blue"> .List </fstack> + <xstack color="purple"> .List </xstack> + //<br/> // TODO(KORE): support latex annotations #1799 + <crntObj color="Fuchsia"> // KOOL + <crntClass> Object </crntClass> + <envStack> .List </envStack> + <location multiplicity="?"> .K </location> + </crntObj> + </control> + //<br/> // TODO(KORE): support latex annotations #1799 + <env color="violet"> .Map </env> + <holds color="black"> .Map </holds> + <id color="pink"> 0 </id> + </thread> + </threads> + //<br/> // TODO(KORE): support latex annotations #1799 + <store color="white"> .Map </store> + <busy color="cyan">.Set </busy> + <terminated color="red"> .Set </terminated> + <input color="magenta" stream="stdin"> .List </input> + <output color="brown" stream="stdout"> .List </output> + <nextLoc color="gray"> 0 </nextLoc> + //<br/> // TODO(KORE): support latex annotations #1799 + <classes color="Fuchsia"> // KOOL + <classData multiplicity="*" type="Map" color="Fuchsia"> + // the Map has as its key the first child of the cell, + // in this case the className cell. + <className color="Fuchsia"> Main </className> + <baseClass color="Fuchsia"> Object </baseClass> + <declarations color="Fuchsia"> .K </declarations> + </classData> + </classes> + </T> +
      +

      Unchanged Semantics from untyped SIMPLE

      +

      The semantics below is taken over from SIMPLE unchanged. +The semantics of function declaration and invocation, including the +use of the special lambda abstraction value, needs to change +in order to account for the fact that methods are now invoked into +their object's environment. The semantics of function return actually +stays unchanged. Also, the semantics of program initialization is +different: now we have to create an instance of the Main +class which also calls the constructor Main(), while in +SIMPLE we only had to invoke the function Main(). +Finally, the semantics of thread spawning needs to change, too: the +parent thread needs to also share its object environment with the +spawned thread (in addition to its local environment, like in SIMPLE). +This is needed in order to be able to spawn method invokations under +dynamic method dispatch; for example, spawn { run(); } +will need to look up the method run() in the newly created +thread, operation which will most likely fail unless the child thread +sees the object environment of the parent thread. Note that the +spawn statement of KOOL is more permissive than the threads +of Java. In fact, the latter can be implemented in terms of our +spawn—see the program threads.kool for a sketch.

      +

      Below is a subset of the values of SIMPLE, which are also values +of KOOL. We will add other values later in the semantics, such as +object and method closures.

      +
      k
      syntax Val ::= Int | Bool | String + | array(Int,Int) + syntax Exp ::= Val + syntax Exps ::= Vals + syntax KResult ::= Val + syntax KResult ::= Vals +
      +

      The semantics below are taken verbatim from the untyped SIMPLE +definition.

      +
      k
      syntax KItem ::= "undefined" [latex(\bot)] + + rule <k> var X:Id; => . ...</k> + <env> Env => Env[X <- L] </env> + <store>... .Map => L |-> undefined ...</store> + <nextLoc> L:Int => L +Int 1 </nextLoc> + + + context var _:Id[HOLE]; + + rule <k> var X:Id[N:Int]; => . ...</k> + <env> Env => Env[X <- L] </env> + <store>... .Map => L |-> array(L +Int 1, N) + (L +Int 1) ... (L +Int N) |-> undefined ...</store> + <nextLoc> L:Int => L +Int 1 +Int N </nextLoc> + when N >=Int 0 + + + syntax Id ::= "$1" [token] | "$2" [token] + rule var X:Id[N1:Int, N2:Int, Vs:Vals]; + => var X[N1]; + { + var $1=X; + for(var $2=0; $2 <= N1 - 1; ++$2) { + var X[N2,Vs]; + $1[$2] = X; + } + } + + + rule <k> X:Id => V ...</k> + <env>... X |-> L ...</env> + <store>... L |-> V:Val ...</store> [group(lookup)] + + + context ++(HOLE => lvalue(HOLE)) + rule <k> ++loc(L) => I +Int 1 ...</k> + <store>... L |-> (I:Int => I +Int 1) ...</store> [group(increment)] + + + rule I1 + I2 => I1 +Int I2 + rule Str1 + Str2 => Str1 +String Str2 + rule I1 - I2 => I1 -Int I2 + rule I1 * I2 => I1 *Int I2 + rule I1 / I2 => I1 /Int I2 when I2 =/=K 0 + rule I1 % I2 => I1 %Int I2 when I2 =/=K 0 + rule - I => 0 -Int I + rule I1 < I2 => I1 <Int I2 + rule I1 <= I2 => I1 <=Int I2 + rule I1 > I2 => I1 >Int I2 + rule I1 >= I2 => I1 >=Int I2 + + rule V1:Val == V2:Val => V1 ==K V2 + rule V1:Val != V2:Val => V1 =/=K V2 + rule ! T => notBool(T) + rule true && E => E + rule false && _ => false + rule true || _ => true + rule false || E => E + + + rule V:Val[N1:Int, N2:Int, Vs:Vals] => V[N1][N2, Vs] + [anywhere] + + rule array(L,_)[N:Int] => lookup(L +Int N) + [anywhere] + + + rule sizeOf(array(_,N)) => N +
      +

      The semantics of function application needs to change into dynamic +method dispatch invocation, which is defined shortly. However, +interestingly, the semantics of return stays unchanged.

      +
      k
      rule <k> return(V:Val); ~> _ => V ~> K </k> + <control> + <fstack> ListItem(fstackFrame(Env,K,XS,<crntObj> CO </crntObj>)) => .List ...</fstack> + <xstack> _ => XS </xstack> + <crntObj> _ => CO </crntObj> + </control> + <env> _ => Env </env> + + syntax Val ::= "nothing" + rule return; => return nothing; + + + rule <k> read() => I ...</k> <input> ListItem(I:Int) => .List ...</input> [group(read)] + + + context (HOLE => lvalue(HOLE)) = _ + + rule <k> loc(L) = V:Val => V ...</k> <store>... L |-> (_ => V) ...</store> + [group(assignment)] + + + rule {} => . + rule <k> { S } => S ~> setEnv(Env) ...</k> <env> Env </env> + + + rule S1::Stmt S2::Stmt => S1 ~> S2 + + rule _:Val; => . + + rule if ( true) S else _ => S + rule if (false) _ else S => S + + rule while (E) S => if (E) {S while(E)S} + + rule <k> print(V:Val, Es => Es); ...</k> <output>... .List => ListItem(V) </output> + [group(print)] + rule print(.Vals); => . + + + syntax KItem ::= xstackFrame(Id,Stmt,K,Map,K) + // TODO(KORE): drop the additional production once parsing issue #1842 is fixed + | (Id,Stmt,K,Map,K) + + syntax KItem ::= "popx" + + rule <k> (try S1 catch(X) {S2} => S1 ~> popx) ~> K </k> + <control> + <xstack> .List => ListItem(xstackFrame(X, S2, K, Env, C)) ...</xstack> + C + </control> + <env> Env </env> + + rule <k> popx => . ...</k> + <xstack> ListItem(_) => .List ...</xstack> + + rule <k> throw V:Val; ~> _ => { var X = V; S2 } ~> K </k> + <control> + <xstack> ListItem(xstackFrame(X, S2, K, Env, C)) => .List ...</xstack> + (_ => C) + </control> + <env> _ => Env </env> +
      +

      Thread spawning needs a new semantics, because we want the child +thread to also share the object environment with its parent. The new +semantics of thread spawning will be defined shortly. However, +interestingly, the other concurrency constructs keep their semantics +from SIMPLE unchanged.

      +
      k
      // TODO(KORE): ..Bag should be . throughout this definition #1772 + rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .Bag) + /* + rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .) + */ + <busy> Busy => Busy -Set keys(H) </busy> + <terminated>... .Set => SetItem(T) ...</terminated> + + rule <k> join T:Int; => . ...</k> + <terminated>... SetItem(T) ...</terminated> + + rule <k> acquire V:Val; => . ...</k> + <holds>... .Map => V |-> 0 ...</holds> + <busy> Busy (.Set => SetItem(V)) </busy> + when (notBool(V in Busy:Set)) [group(acquire)] + + rule <k> acquire V; => . ...</k> + <holds>... V:Val |-> (N:Int => N +Int 1) ...</holds> + + rule <k> release V:Val; => . ...</k> + <holds>... V |-> (N => N:Int -Int 1) ...</holds> + when N >Int 0 + + rule <k> release V; => . ...</k> <holds>... V:Val |-> 0 => .Map ...</holds> + <busy>... SetItem(V) => .Set ...</busy> + + rule <k> rendezvous V:Val; => . ...</k> + <k> rendezvous V; => . ...</k> [group(rendezvous)] +
      +

      Unchanged auxiliary operations from untyped SIMPLE

      +
      k
      syntax Stmt ::= mkDecls(Ids,Vals) [function] + rule mkDecls((X:Id, Xs:Ids), (V:Val, Vs:Vals)) => var X=V; mkDecls(Xs,Vs) + rule mkDecls(.Ids,.Vals) => {} + + // TODO(KORE): clarify sort inferences #1803 + syntax Exp ::= lookup(Int) + /* + syntax KItem ::= lookup(Int) + */ + rule <k> lookup(L) => V ...</k> <store>... L |-> V:Val ...</store> [group(lookup)] + + syntax KItem ::= setEnv(Map) + rule <k> setEnv(Env) => . ...</k> <env> _ => Env </env> + rule (setEnv(_) => .) ~> setEnv(_) + // TODO: How can we make sure that the second rule above applies before the first one? + // Probably we'll deal with this using strategies, eventually. + + syntax Exp ::= lvalue(K) + syntax Val ::= loc(Int) + + rule <k> lvalue(X:Id => loc(L)) ...</k> <env>... X |-> L:Int ...</env> + + context lvalue(_::Exp[HOLE::Exps]) + context lvalue(HOLE::Exp[_::Exps]) + + rule lvalue(lookup(L:Int) => loc(L)) + + + syntax Map ::= Int "..." Int "|->" K + [function, latex({#1}\ldots{#2}\mapsto{#3})] + rule N...M |-> _ => .Map when N >Int M + rule N...M |-> K => N |-> K (N +Int 1)...M |-> K when N <=Int M +
      +

      Changes to the existing untyped SIMPLE semantics

      +

      When we extend a language, sometimes we need to do more than just add +new language constructs and semantics for them. Sometimes we want to +also extend the semantics of existing language constructs, in order to +get more from them.

      +

      Program initialization

      +

      In SIMPLE, once all the global declarations were processed, the +function main() was invoked. In KOOL, the global +declarations are classes, and their specific semantics is given +shortly; essentially, they are pre-processed one by one and added +into the class cell structure in the configuration. +Once all the classes are processed, the computation item +execute, which was placed right after the program in the +initial configuration, is reached. In SIMPLE, the program was +initialized by calling the method main(). In KOOL, the +program is initialized by creating an object instance of class +Main. This will also implicitly call the method +Main() (the Main class constructor). The emptiness +of the env cell below is just a sanity check, to make sure +that the user has not declared anything but classes at the top level +of the program.

      +
      k
      syntax KItem ::= "execute" + rule <k> execute => new Main(.Exps); </k> <env> .Map </env> +
      +

      The semantics of new (defined below) requires the +execution of all the class' declarations (and also of its +superclasses').

      +

      Object and method closures

      +

      Before we can define the semantics of method application (previously +called function application in SIMPLE), we need to add two more values +to the language, namely object and method closures:

      +
      k
      syntax Val ::= objectClosure(Id, List) + | methodClosure(Id,Int,Ids,Stmt) +
      +

      An object value consists of an objectClosure-wrapped bag +containing the current class of the object and the environment stack +of the object. The current class of an object will always be one of +the classes mapped to an environment in the environment stack of the +object. A method closure encapsulates the method's parameters and +code (last two arguments), as well as the object context in which the +method code should execute. This object context includes the current +class of the object (the first argument of methodClosure) and +the object environment stack (located in the object stored at the +location specified as the second argument of methodClosure).

      +

      Method application

      +

      KOOL has a complex mechanism to invoke methods, because it allows both +dynamic method dispatch and methods as first-class-citizen values (the +latter making it a higher-order language). The invocation mechanism +will be defined later. What is sufficient to know for now is that +the two arguments of the application construct eventually reduce to +values, the first being a method closure and the latter a list of +values. The semantics of the method closure application is then as +expected: the local environment and control are stacked, then we +switch to method closure's class and object environment and execute +the method body. The mkDecls construct is the one that came +with the unchanged semantics of SIMPLE above.

      +
      k
      syntax KItem ::= fstackFrame(Map,K,List,K) + // TODO(KORE): drop the additional production once parsing issue #1842 is fixed + | (Map,K,K) + + rule <k> methodClosure(Class,OL,Xs,S)(Vs:Vals) ~> K + => mkDecls(Xs,Vs) S return; </k> + <env> Env => .Map </env> + <store>... OL |-> objectClosure(_, EnvStack)...</store> + //<br/> // TODO(KORE): support latex annotations #1799 + <control> + <xstack> XS </xstack> + <fstack> .List => ListItem(fstackFrame(Env, K, XS, <crntObj> Obj' </crntObj>)) + ...</fstack> + <crntObj> Obj' => <crntClass> Class </crntClass> <envStack> EnvStack </envStack> </crntObj> + </control> +
      +

      Spawn

      +

      We want to extend the semantics of spawn to also share the +current object environment with the child thread, in addition to the +current environment. This extension will allow us to also use method +invocations in the spawned statements, which will be thus looked up as +expected, using dynamic method dispatch. This lookup operation would +fail if the child thread did not have access to its parent's object +environment.

      +
      k
      rule <thread>... + <k> spawn S => !T:Int ...</k> + <env> Env </env> + <crntObj> Obj </crntObj> + ...</thread> + (.Bag => <thread>... + <k> S </k> + <env> Env </env> + <id> !T </id> + <crntObj> Obj </crntObj> + ...</thread>) +
      +

      Semantics of the new KOOL constructs

      +

      Class declaration

      +

      Initially, the classes forming the program are moved into their +corresponding cells:

      +
      k
      rule <k> class Class1 extends Class2 { S } => . ...</k> + <classes>... (.Bag => <classData> + <className> Class1 </className> + <baseClass> Class2 </baseClass> + <declarations> S </declarations> + </classData>) + ...</classes> +
      +

      Method declaration

      +

      Like in SIMPLE, method names are added to the environment and bound +to their code. However, unlike in SIMPLE where each function was +executed in the same environment, namely the program global +environment, a method in KOOL needs to be executed into its object's +environment. Thus, methods evaluate to closures, which encapsulate +their object's context (i.e., the current class and environment stack +of the object) in addition to method's parameters and body. This +approach to bind method names to method closures in the environment +will also allow objects to pass their methods to other objects, to +dynamically change their methods by assigning them other method +closures, and even to allow all these to be done from other objects. +This gives the KOOL programmer a lot of power; one should use this +power wisely, though, because programs can become easily hard to +understand and reason about if one overuses these features.

      +
      k
      rule <k> method F:Id(Xs:Ids) S => . ...</k> + <crntClass> Class:Id </crntClass> + <location> OL:Int </location> + <env> Env => Env[F <- L] </env> + <store>... .Map => L |-> methodClosure(Class,OL,Xs,S) ...</store> + <nextLoc> L => L +Int 1 </nextLoc> +
      +

      New

      +

      The semantics of new consists of two actions: memory +allocation for the new object and execution of the corresponding +constructor. Then the created object is returned as the result of the +new operation; the value returned by the constructor, if any, +is discarded. The current environment and object are stored onto the +stack and recovered after new (according to the semantics of +return borrowed from SIMPLE, when the statement +return this; in the rule below is reached and evaluated), +because the object creation part of new will destroy them. +The rule below also initializes the object creation process by +emptying the local environment and the current object, and allocating +a location in the store where the created object will be eventually +stored (this is what the storeObj task after the object +creation task in the rule below will do—its rule is defined +shortly). The location where the object will be stored is also made +available in the crntObj cell, so that method closures can +refer to it (see rule above).

      +
      k
      syntax KItem ::= "envStackFrame" "(" Id "," Map ")" + + rule <k> new Class:Id(Vs:Vals) ~> K + => create(Class) ~> storeObj ~> Class(Vs); return this; </k> + <env> Env => .Map </env> + <nextLoc> L:Int => L +Int 1 </nextLoc> + //<br/> // TODO(KORE): support latex annotations #1799 + <control> <xstack> XS </xstack> + <crntObj> Obj + => <crntClass> Object </crntClass> + <envStack> ListItem(envStackFrame(Object, .Map)) </envStack> + <location> L </location> + </crntObj> + <fstack> .List => ListItem(fstackFrame(Env, K, XS, <crntObj> Obj </crntObj>)) ...</fstack> + </control> +
      +

      The creation of a new object (the memory allocation part only) is +a recursive process, requiring to first create an object for the +superclass. A memory object representation is a layered structure: +for each class on the path from the instance class to the root of the +hierarchy there is a layer including the memory allocated for the +members (both fields and methods) of that class.

      +
      k
      syntax KItem ::= create(Id) + + rule <k> create(Class:Id) + => create(Class1) ~> setCrntClass(Class) ~> S ~> addEnvLayer ...</k> + <className> Class </className> + <baseClass> Class1:Id </baseClass> + <declarations> S </declarations> + + rule <k> create(Object) => . ...</k> +
      +

      The next operation sets the current class of the current object. +This is necessary to be done at each layer, because the current class +of the object is enclosed as part of the method closures (see the +semantics of method declarations above).

      +
      k
      syntax KItem ::= setCrntClass(Id) + + rule <k> setCrntClass(C) => . ...</k> + <crntClass> _ => C </crntClass> +
      +

      The next operation adds a new tagged environment layer to the +current object and gets ready for the next layer by clearing the +environment (note that create expects the environment to be +empty).

      +
      k
      syntax KItem ::= "addEnvLayer" + + rule <k> addEnvLayer => . ...</k> + <env> Env => .Map </env> + <crntClass> Class:Id </crntClass> + <envStack> .List => ListItem(envStackFrame(Class, Env)) ...</envStack> +
      +

      The following operation stores the created object at the location +reserved by new. Note that the location reserved by +new was temporarily stored in the crntObj cell +precisely for this purpose. Now that the newly created object is +stored at its location and that all method closures are aware of it, +the location is unnecessary and thus we delete it from the +crntObj cell.

      +
      k
      syntax KItem ::= "storeObj" + + rule <k> storeObj => . ...</k> + <crntObj> <crntClass> CC </crntClass> <envStack> ES </envStack> (<location> L:Int </location> => .Bag) </crntObj> + <store>... .Map => L |-> objectClosure(CC, ES) ...</store> +
      +

      Self reference

      +

      The semantics of this is straightforward: evaluate to the +current object.

      +
      k
      rule <k> this => objectClosure(CC, ES) ...</k> + <crntObj> <crntClass> CC </crntClass> <envStack> ES </envStack> </crntObj> +
      +

      Object member access

      +

      We can access an object member (field or method) either explicitly, +using the construct e.x, or implicitly, using only the member +name x directly. The borrowed semantics of SIMPLE will +already lookup a sole name in the local environment. The first rule +below reduces implicit member access to explicit access when the name +cannot be found in the local environment. There are two cases to +analyze for explicit object member access, depending upon whether the +object is a proper object or it is just a redirection to the parent +class via the construct super. In the first case, we +evaluate the object expression and lookup the member starting with the +current class (static scoping). Note the use of the conditional +evaluation context. In the second case, we just lookup the member +starting with the superclass of the current class. In both cases, +the lookupMember task eventually yields a lookup(L) +task for some appropriate location L, which will be further +solved with the corresponding rule borrowed from SIMPLE. Note that the +current object is not altered by super, so future method +invocations see the entire object, as needed for dynamic method dispatch.

      +
      k
      rule <k> X:Id => this . X ...</k> <env> Env:Map </env> + when notBool(X in keys(Env)) + + context HOLE._::Id when (HOLE =/=K super) + +// TODO: explain how Assoc matching has been replaced with two rules here. +// Maybe also improve it a bit. + +/* rule objectClosure(<crntClass> Class:Id </crntClass> + <envStack>... envStackFrame(Class,EnvC) EStack </envStack>) + . X:Id + => lookupMember(envStackFrame(Class,EnvC) EStack, X) */ + + rule objectClosure(Class:Id, ListItem(envStackFrame(Class,Env)) EStack) + . X:Id + => lookupMember(ListItem(envStackFrame(Class,Env)) EStack, X) + rule objectClosure(Class:Id, (ListItem(envStackFrame(Class':Id,_)) => .List) _) + . _X:Id + when Class =/=K Class' + +/* rule <k> super . X => lookupMember(EStack, X) ...</k> + <crntClass> Class </crntClass> + <envStack>... envStackFrame(Class,EnvC) EStack </envStack> */ + rule <k> super . X => lookupMember(EStack, X) ...</k> + <crntClass> Class:Id </crntClass> + <envStack> ListItem(envStackFrame(Class,_)) EStack </envStack> + rule <k> super . _X ...</k> + <crntClass> Class </crntClass> + <envStack> ListItem(envStackFrame(Class':Id,_)) => .List ...</envStack> + when Class =/=K Class' +
      +

      Method invocation

      +

      Unlike in SIMPLE, in KOOL application was declared strict only in its +second argument. That is because we want to ensure dynamic method +dispatch when the first argument is a method access. As a +consequence, we need to consider all the cases of interest for the +first argument and to explicitly say what to do in each case. In all +cases except for method access in a proper object (i.e., not +super), we want the same behavior for the first argument as +if it was not in a method invocation position. When it is a member +access (the third rule below), we look it up starting with the +instance class of the corresponding object. This ensures dynamic +dispatch for methods; it actually dynamically dispatches field +accesses, too, which is correct in KOOL, because one can assign method +closures to fields and the field appeared in a method invocation +context. The last context declaration below says that method +applications or array accesses are also allowed as first argument to +applications; that is because methods are allowed to return methods +and arrays are allowed to hold methods in KOOL, since it is +higher-order. If that is the case, then we want to evaluate the +method call or the array access.

      +
      k
      rule <k> (X:Id => V)(_:Exps) ...</k> + <env>... X |-> L ...</env> + <store>... L |-> V:Val ...</store> [group(lookup)] + + rule <k> (X:Id => this . X)(_:Exps) ...</k> + <env> Env </env> + when notBool(X in keys(Env)) + + context HOLE._::Id(_) when HOLE =/=K super + + rule (objectClosure(_, EStack) . X + => lookupMember(EStack, X:Id))(_:Exps) + +/* rule <k> (super . X + => lookupMember(EStack,X))(_:Exps)...</k> + <crntClass> Class </crntClass> + <envStack>... envStackFrame(Class,_) EStack </envStack> */ + rule <k> (super . X + => lookupMember(EStack,X))(_:Exps)...</k> + <crntClass> Class </crntClass> + <envStack> ListItem(envStackFrame(Class,_)) EStack </envStack> + rule <k> (super . _X)(_:Exps) ...</k> + <crntClass> Class </crntClass> + <envStack> ListItem(envStackFrame(Class':Id,_)) => .List ...</envStack> + when Class =/=K Class' + + // TODO(KORE): fix getKLabel #1801 + rule (A:Exp(B:Exps))(C:Exps) => A(B) ~> #freezerFunCall(C) + rule (A:Exp[B:Exps])(C:Exps) => A[B] ~> #freezerFunCall(C) + rule V:Val ~> #freezerFunCall(C:Exps) => V(C) + syntax KItem ::= "#freezerFunCall" "(" K ")" + /* + context HOLE(_:Exps) + when getKLabel(HOLE) ==K #klabel(`_(_)`) orBool getKLabel(HOLE) ==K #klabel(`_[_]`) + */ +
      +

      Eventually, each of the rules above produces a lookup(L) +task as a replacement for the method. When that happens, we just +lookup the value at location L:

      +
      k
      rule <k> (lookup(L) => V)(_:Exps) ...</k> <store>... L |-> V:Val ...</store> + [group(lookup)] +
      +

      The value V looked up above is expected to be a method closure, +in which case the semantics of method application given above will +apply. Otherwise, the execution will get stuck.

      +

      Instance Of

      +

      It searches the object environment for a layer corresponding to the +desired class. It returns true iff it can find the class, +otherwise it returns false; it only gets stuck when its first +argument does not evaluate to an object.

      +
      k
      rule objectClosure(_, ListItem(envStackFrame(C,_)) _) + instanceOf C => true + + rule objectClosure(_, (ListItem(envStackFrame(C,_)) => .List) _) + instanceOf C' when C =/=K C' +//TODO: remove the sort cast ::Id of C above, when sort inference bug fixed + + rule objectClosure(_, .List) instanceOf _ => false +
      +

      Cast

      +

      In untyped KOOL, we prefer to not check the validity of casting. In +other words, any cast is allowed on any object, simply changing the +current class of the object to the desired class. The execution will +get stuck later if one attempts to access a field which is not +available. Moreover, the execution may complete successfully even +in the presence of invalid casts, provided that each accessed member +during the current execution is, or happens to be, available.

      +
      k
      rule (C) objectClosure(_ , EnvStack) => objectClosure(C ,EnvStack) +
      +

      KOOL-specific auxiliary declarations and operations

      +

      Here we define all the auxiliary constructs used in the above +KOOL-specific semantics (those used in the SIMPLE fragment +have already been defined in a corresponding section above).

      +

      Objects as lvalues

      +

      The current machinery borrowed with the semantics of SIMPLE allows us +to enrich the set of lvalues, this way allowing new means to assign +values to locations. In KOOL, we want object member names to be +lvalues, so that we can assign values to them using the already +existing machinery. The first rule below ensures that the object is +always explicit, the evaluation context enforces the object to be +evaluated, and finally the second rule initiates the lookup for the +member's location based on the current class of the object.

      +
      k
      rule <k> lvalue(X:Id => this . X) ...</k> <env> Env </env> + when notBool(X in keys(Env)) + + context lvalue((HOLE . _)::Exp) + +/* rule lvalue(objectClosure(<crntClass> C </crntClass> + <envStack>... envStackFrame(C,EnvC) EStack </envStack>) + . X + => lookupMember(<envStack> envStackFrame(C,EnvC) EStack </envStack>, + X)) */ + rule lvalue(objectClosure(Class, ListItem(envStackFrame(Class,Env)) EStack) + . X + => lookupMember(ListItem(envStackFrame(Class,Env)) EStack, + X)) + rule lvalue(objectClosure(Class, (ListItem(envStackFrame(Class':Id,_)) => .List) _) + . _X) + when Class =/=K Class' +
      +

      Lookup member

      +

      It searches for the given member in the given environment stack, +starting with the most concrete class and going up in the hierarchy.

      +
      k
      // TODO(KORE): clarify sort inferences #1803 + syntax Exp ::= lookupMember(List, Id) [function] + /* + syntax KItem ::= lookupMember(EnvStackCell,Id) [function] + */ + +// rule lookupMember(<envStack> envStackFrame(_, <env>... X|->L ...</env>) ...</envStack>, X) +// => lookup(L) + rule lookupMember(ListItem(envStackFrame(_, X|->L _)) _, X) + => lookup(L) + +// rule lookupMember(<envStack> envStackFrame(_, <env> Env </env>) => .List ...</envStack>, X) +// when notBool(X in keys(Env)) + rule lookupMember(ListItem(envStackFrame(_, Env)) Rest, X) => + lookupMember(Rest, X) + when notBool(X in keys(Env)) +//TODO: beautify the above + +endmodule +
      +

      Go to Lesson 2, KOOL typed dynamic.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/2_kool/2_typed/1_dynamic/kool-typed-dynamic/index.html b/k-distribution/pl-tutorial/2_languages/2_kool/2_typed/1_dynamic/kool-typed-dynamic/index.html new file mode 100644 index 00000000000..94e99f0605c --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/2_kool/2_typed/1_dynamic/kool-typed-dynamic/index.html @@ -0,0 +1,1385 @@ + + + + + + + + + + + + + + +KOOL — Typed — Dynamic | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      KOOL — Typed — Dynamic

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      +

      This is the K dynamic semantics of the typed KOOL language. It is +very similar to the semantics of the untyped KOOL, the difference +being that we now check the typing policy dynamically. Since we have +to now declare the types of variables and methods, we adopt a syntax +for those which is close to Java. Like in the semantics of +untyped KOOL, where we borrowed almost all the semantics of untyped +SIMPLE, we are going to also borrow much of the semantics of +dynamically typed SIMPLE here. We will highlight the differences +between the dynamically typed and the untyped KOOL as we proceed with +the semantics. In general, the type policy of the typed KOOL language +is similar to that of Java. You may find it useful to also read +the discussion in the preamble of the static semantics of typed KOOL +before proceeding.

      +
      k
      module KOOL-TYPED-DYNAMIC-SYNTAX + imports DOMAINS-SYNTAX +
      +

      Syntax

      +

      Like for the untyped KOOL language, the syntax of typed KOOL extends +that of typed SIMPLE with object-oriented constructs. +The syntax below was produced by copying and modifying/extending the +syntax of dynamically typed SIMPLE. In fact, the only change we made +to the existing syntax of dynamically typed SIMPLE was to change the +strictness of the application construct like in untyped KOOL, from +strict to strict(2) (because application is not +strict in the first argument anymore due to dynamic method dispatch). +The KOOL-specific syntactic extensions are identical to those in +untyped KOOL.

      +
      k
      syntax Id ::= "Object" [token] | "Main" [token] +
      +

      Types

      +
      k
      syntax Type ::= "void" | "int" | "bool" | "string" + | Id // KOOL class + | Type "[" "]" + | "(" Type ")" [bracket] + > Types "->" Type + // TODO(KORE): drop klabel once issues #1913 are fixed + syntax Types ::= List{Type,","} [klabel(_,_::Types)] + /* + syntax Types ::= List{Type,","} + */ +
      +

      Declarations

      +
      k
      syntax Param ::= Type Id + syntax Params ::= List{Param,","} + + syntax Stmt ::= Type Exps ";" [avoid] + | Type Id "(" Params ")" Block // stays like in typed SIMPLE + | "class" Id Block // KOOL + | "class" Id "extends" Id Block // KOOL +
      +

      Expressions

      +
      k
      syntax Exp ::= Int | Bool | String | Id + | "this" // KOOL + | "super" // KOOL + | "(" Exp ")" [bracket] + | "++" Exp + | Exp "instanceOf" Id [strict(1)] // KOOL + | "(" Id ")" Exp [strict(2)] // KOOL cast + | "new" Id "(" Exps ")" [strict(2)] // KOOL + | Exp "." Id // KOOL + > Exp "[" Exps "]" [strict] + > Exp "(" Exps ")" [strict(2)] // was strict in SIMPLE + | "-" Exp [strict] + | "sizeOf" "(" Exp ")" [strict] + | "read" "(" ")" + > left: + Exp "*" Exp [strict, left] + | Exp "/" Exp [strict, left] + | Exp "%" Exp [strict, left] + > left: + Exp "+" Exp [strict, left] + | Exp "-" Exp [strict, left] + > non-assoc: + Exp "<" Exp [strict, non-assoc] + | Exp "<=" Exp [strict, non-assoc] + | Exp ">" Exp [strict, non-assoc] + | Exp ">=" Exp [strict, non-assoc] + | Exp "==" Exp [strict, non-assoc] + | Exp "!=" Exp [strict, non-assoc] + > "!" Exp [strict] + > left: + Exp "&&" Exp [strict(1), left] + | Exp "||" Exp [strict(1), left] + > "spawn" Block + > Exp "=" Exp [strict(2), right] + + syntax Exps ::= List{Exp,","} [strict, klabel(exps)] + syntax Val + syntax Vals ::= List{Val,","} [klabel(exps)] +
      +

      Statements

      +
      k
      syntax Block ::= "{" "}" + | "{" Stmt "}" + + syntax Stmt ::= Block + | Exp ";" [strict] + | "if" "(" Exp ")" Block "else" Block [avoid, strict(1)] + | "if" "(" Exp ")" Block [macro] + | "while" "(" Exp ")" Block + | "for" "(" Stmt Exp ";" Exp ")" Block [macro] + | "print" "(" Exps ")" ";" [strict] + | "return" Exp ";" [strict] + | "return" ";" + | "try" Block "catch" "(" Param ")" Block + | "throw" Exp ";" [strict] + | "join" Exp ";" [strict] + | "acquire" Exp ";" [strict] + | "release" Exp ";" [strict] + | "rendezvous" Exp ";" [strict] + + syntax Stmt ::= Stmt Stmt [right] +
      +

      Desugaring macros

      +
      k
      rule if (E) S => if (E) S else {} + rule for(Start Cond; Step) {S::Stmt} => {Start while(Cond){S Step;}} + rule T::Type E1::Exp, E2::Exp, Es::Exps; => T E1; T E2, Es; [anywhere] + rule T::Type X::Id = E; => T X; X = E; [anywhere] + + rule class C:Id S => class C extends Object S // KOOL + +endmodule +
      +

      Semantics

      +

      We first discuss the new configuration, then we include the semantics of +the constructs borrowed from SIMPLE which stay unchanged, then those +whose semantics had to change, and finally the semantics of the +KOOL-specific constructs.

      +
      k
      module KOOL-TYPED-DYNAMIC + imports KOOL-TYPED-DYNAMIC-SYNTAX + imports DOMAINS +
      +

      Configuration

      +

      The configuration of dynamically typed KOOL is almost identical to +that of its untyped variant. The only difference is the cell +return, inside the control cell, whose role is to +hold the expected return type of the invoked method. That is because +we want to dynamically check that the value that a method returns has +the expected type.

      +
      k
      // the syntax declarations below are required because the sorts are + // referenced directly by a production and, because of the way KIL to KORE + // is implemented, the configuration syntax is not available yet + // should simply work once KIL is removed completely + // check other definitions for this hack as well + syntax EnvCell + syntax ControlCellFragment + syntax EnvStackCell + syntax CrntObjCellFragment + + configuration <T color="red"> + <threads color="orange"> + <thread multiplicity="*" type="Set" color="yellow"> + <k color="green"> ($PGM:Stmt ~> execute) </k> + //<br/> // TODO(KORE): support latex annotations #1799 + <control color="cyan"> + <fstack color="blue"> .List </fstack> + <xstack color="purple"> .List </xstack> + <returnType color="LimeGreen"> void </returnType> // KOOL + //<br/> // TODO(KORE): support latex annotations #1799 + <crntObj color="Fuchsia"> // KOOL + <crntClass> Object </crntClass> + <envStack> .List </envStack> + <location multiplicity="?"> .K </location> + </crntObj> + </control> + //<br/> // TODO(KORE): support latex annotations #1799 + <env color="violet"> .Map </env> + <holds color="black"> .Map </holds> + <id color="pink"> 0 </id> + </thread> + </threads> + //<br/> // TODO(KORE): support latex annotations #1799 + <store color="white"> .Map </store> + <busy color="cyan">.Set </busy> + <terminated color="red"> .Set </terminated> + <input color="magenta" stream="stdin"> .List </input> + <output color="brown" stream="stdout"> .List </output> + <nextLoc color="gray"> 0 </nextLoc> + //<br/> // TODO(KORE): support latex annotations #1799 + <classes color="Fuchsia"> // KOOL + <classData multiplicity="*" type="Map" color="Fuchsia"> + <className color="Fuchsia"> Main </className> + <baseClass color="Fuchsia"> Object </baseClass> + <declarations color="Fuchsia"> .K </declarations> + </classData> + </classes> + </T> +
      +

      Unchanged semantics from dynamically typed SIMPLE

      +

      The semantics below is taken over from dynamically typed SIMPLE +unchanged. Like for untyped KOOL, the semantics of function/method +declaration and invocation, and of program initialization needs to +change. Moreover, due to subtyping, the semantics of several imported +SIMPLE constructs can be made more general, such as that of the +return statement, that of the assignment, and that of the exceptions. +We removed all these from the imported semantics of SIMPLE below and +gave their modified semantics right after, together with the extended +semantics of thread spawning (which is identical to that of untyped +KOOL).

      +
      k
      syntax Val ::= Int | Bool | String + | array(Type,Int,Int) + syntax Exp ::= Val + syntax Exps ::= Vals + syntax KResult ::= Val + syntax KResult ::= Vals + + + syntax KItem ::= undefined(Type) [latex(\bot_{#1})] + + rule <k> T:Type X:Id; => . ...</k> + <env> Env => Env[X <- L] </env> + <store>... .Map => L |-> undefined(T) ...</store> + <nextLoc> L:Int => L +Int 1 </nextLoc> + + + rule <k> T:Type X:Id[N:Int]; => . ...</k> + <env> Env => Env[X <- L] </env> + <store>... .Map => L |-> array(T, L +Int 1, N) + (L +Int 1)...(L +Int N) |-> undefined(T) ...</store> + <nextLoc> L:Int => L +Int 1 +Int N </nextLoc> + requires N >=Int 0 + + context _:Type _::Exp[HOLE::Exps]; + + + syntax Id ::= "$1" [token] | "$2" [token] + rule T:Type X:Id[N1:Int, N2:Int, Vs:Vals]; + => T[]<Vs> X[N1]; + { + T[][]<Vs> $1=X; + for(int $2=0; $2 <= N1 - 1; ++$2) { + T X[N2,Vs]; + $1[$2] = X; + } + } + + + rule <k> X:Id => V ...</k> + <env>... X |-> L ...</env> + <store>... L |-> V:Val ...</store> [group(lookup)] + + + context ++(HOLE => lvalue(HOLE)) + rule <k> ++loc(L) => I +Int 1 ...</k> + <store>... L |-> (I:Int => I +Int 1) ...</store> [group(increment)] + + + rule I1 + I2 => I1 +Int I2 + rule Str1 + Str2 => Str1 +String Str2 + rule I1 - I2 => I1 -Int I2 + rule I1 * I2 => I1 *Int I2 + rule I1 / I2 => I1 /Int I2 requires I2 =/=K 0 + rule I1 % I2 => I1 %Int I2 requires I2 =/=K 0 + rule - I => 0 -Int I + rule I1 < I2 => I1 <Int I2 + rule I1 <= I2 => I1 <=Int I2 + rule I1 > I2 => I1 >Int I2 + rule I1 >= I2 => I1 >=Int I2 + rule V1:Val == V2:Val => V1 ==K V2 + rule V1:Val != V2:Val => V1 =/=K V2 + rule ! T => notBool(T) + rule true && E => E + rule false && _ => false + rule true || _ => true + rule false || E => E + + + rule V:Val[N1:Int, N2:Int, Vs:Vals] => V[N1][N2, Vs] + [anywhere] + + rule array(_:Type, L:Int, M:Int)[N:Int] => lookup(L +Int N) + requires N >=Int 0 andBool N <Int M [anywhere] + + rule sizeOf(array(_,_,N)) => N + + + syntax Val ::= nothing(Type) + rule <k> return; => return nothing(T); ...</k> <returnType> T </returnType> + + + rule <k> read() => I ...</k> <input> ListItem(I:Int) => .List ...</input> [group(read)] + + + context (HOLE => lvalue(HOLE)) = _ + + + rule {} => . + rule <k> { S } => S ~> setEnv(Env) ...</k> <env> Env </env> + + + rule S1:Stmt S2:Stmt => S1 ~> S2 + + + rule _:Val; => . + + + rule if ( true) S else _ => S + rule if (false) _ else S => S + + + rule while (E) S => if (E) {S while(E)S} + + + rule <k> print(V:Val, Es => Es); ...</k> <output>... .List => ListItem(V) </output> + requires typeOf(V) ==K int orBool typeOf(V) ==K string [group(print)] + rule print(.Vals); => . + + + rule (<thread>... <k>.</k> <holds>H</holds> <id>T</id> ...</thread> => .Bag) + <busy> Busy => Busy -Set keys(H) </busy> + <terminated>... .Set => SetItem(T) ...</terminated> + + rule <k> join T:Int; => . ...</k> + <terminated>... SetItem(T) ...</terminated> + + rule <k> acquire V:Val; => . ...</k> + <holds>... .Map => V |-> 0 ...</holds> + <busy> Busy (.Set => SetItem(V)) </busy> + requires (notBool(V in Busy:Set)) [group(acquire)] + + rule <k> acquire V; => . ...</k> + <holds>... V:Val |-> (N:Int => N +Int 1) ...</holds> + + rule <k> release V:Val; => . ...</k> + <holds>... V |-> (N => N:Int -Int 1) ...</holds> + requires N >Int 0 + + rule <k> release V; => . ...</k> <holds>... V:Val |-> 0 => .Map ...</holds> + <busy>... SetItem(V) => .Set ...</busy> + + rule <k> rendezvous V:Val; => . ...</k> + <k> rendezvous V; => . ...</k> [group(rendezvous)] +
      +

      Unchanged auxiliary operations from dynamically typed SIMPLE

      +
      k
      syntax Stmt ::= mkDecls(Params,Vals) [function] + rule mkDecls((T:Type X:Id, Ps:Params), (V:Val, Vs:Vals)) + => T X=V; mkDecls(Ps,Vs) + rule mkDecls(.Params,.Vals) => {} + + syntax Exp ::= lookup(Int) + rule <k> lookup(L) => V ...</k> <store>... L |-> V:Val ...</store> [group(lookup)] + + syntax KItem ::= setEnv(Map) + rule <k> setEnv(Env) => . ...</k> <env> _ => Env </env> + rule (setEnv(_) => .) ~> setEnv(_) + + syntax Exp ::= lvalue(K) + syntax Val ::= loc(Int) + rule <k> lvalue(X:Id => loc(L)) ...</k> <env>... X |-> L:Int ...</env> + + context lvalue(_::Exp[HOLE::Exps]) + context lvalue(HOLE::Exp[_::Exps]) + + rule lvalue(lookup(L:Int) => loc(L)) + + syntax Type ::= Type "<" Vals ">" [function] + rule T:Type<_,Vs:Vals> => T[]<Vs> + rule T:Type<.Vals> => T + + syntax Map ::= Int "..." Int "|->" K + [function, latex({#1}\ldots{#2}\mapsto{#3})] + rule N...M |-> _ => .Map requires N >Int M + rule N...M |-> K => N |-> K (N +Int 1)...M |-> K requires N <=Int M + + syntax Type ::= typeOf(K) [function] + rule typeOf(_:Int) => int + rule typeOf(_:Bool) => bool + rule typeOf(_:String) => string + rule typeOf(array(T,_,_)) => (T[]) + rule typeOf(undefined(T)) => T + rule typeOf(nothing(T)) => T + + syntax Types ::= getTypes(Params) [function] + rule getTypes(T:Type _:Id) => T, .Types + rule getTypes(T:Type _:Id, P, Ps) => T, getTypes(P,Ps) + rule getTypes(.Params) => void, .Types +
      +

      Changes to the existing dynamically typed SIMPLE semantics

      +

      We extend/change the semantics of several SIMPLE constructs in order +to take advantage of the richer KOOL semantic infrastructure and thus +get more from the existing SIMPLE constructs.

      +

      Program initialization

      +

      Like in untyped KOOL.

      +
      k
      syntax KItem ::= "execute" + rule <k> execute => new Main(.Exps); </k> <env> .Map </env> +
      +

      Method application

      +

      The only change to untyped KOOL's values is that method closures are +now typed (their first argument holds their type):

      +
      k
      syntax Val ::= objectClosure(Id,List) + | methodClosure(Type,Id,Int,Params,Stmt) +
      +

      The type held by a method clossure will be the entire type of the +method, not only its result type like the lambda-closure of typed +SIMPLE. The reason for this change comes from the the need to +dynamically upcast values when passed to contexts where values of +superclass types are expected; since we want method closures to be +first-class-citizen values in our language, we have to be able to +dynamically upcast them, and in order to do that elegantly it is +convenient to store the entire ``current type'' of the method closure +instead of just its result type. Note that this was unnecessary in +the semantics of the dynamically typed SIMPLE language.

      +

      Method closure application needs to also set a new return type in +the return cell, like in dynamically typed SIMPLE, in order +for the values returned by its body to be checked against the return +type of the method. To do this correctly, we also need to stack the +current status of the return cell and then pop it when the +method returns. We have to do the same with the current object +environment, so we group them together in the stack frame.

      +
      k
      syntax KItem ::= fstackFrame(Map, K, List, Type, K) + + rule <k> methodClosure(_->T,Class,OL,Ps,S)(Vs:Vals) ~> K + => mkDecls(Ps,Vs) S return; </k> + <env> Env => .Map </env> + <store>... OL |-> objectClosure(_, EStack)...</store> + //<br/> // TODO(KORE): support latex annotations #1799 + <control> + <fstack> .List => ListItem(fstackFrame(Env, K, XS, T', <crntObj> Obj' </crntObj>)) ...</fstack> + <xstack> XS </xstack> + <returnType> T' => T </returnType> + <crntObj> Obj' => <crntClass> Class </crntClass> <envStack> EStack </envStack> </crntObj> + </control> +
      +

      At method return, we have to check that the type of the returned +value is a subtype of the expected return type. Moreover, if that is +the case, then we also upcast the returned value to one of the +expected type. The computation item unsafeCast(V,T) changes +the typeof V to T without any additional checks; however, it only +does it when V is an object or a method, otherwise it returns V +unchanged.

      +
      k
      rule <k> return V:Val; ~> _ + => subtype(typeOf(V), T) ~> true? ~> unsafeCast(V, T) ~> K + </k> + <control> + <fstack> ListItem(fstackFrame(Env, K, XS, RT, <crntObj> CO </crntObj>)) => .List ...</fstack> + <xstack> _ => XS </xstack> + <returnType> T:Type => RT </returnType> + <crntObj> _ => CO </crntObj> + </control> + <env> _ => Env </env> +
      +

      Assignment

      +

      Typed KOOL allows to assign subtype instance values to supertype +lvalues. The semantics of assignment below is similar in spirit to +dynamically typed SIMPLE's, but a check is performed that the assigned +value's type is a subtype of the location's type. If that is the +case, then the assigned value is returned as a result and stored, but +it is upcast appropriately first, so the context will continue to see +a value of the expected type of the location. Note that the type of a +location is implicit in the type of its contents and it never changes +during the execution of a program; its type is assigned when the +location is allocated and initialized, and then only type-preserving +values are allowed to be stored in each location.

      +
      k
      rule <k> loc(L) = V:Val + => subtype(typeOf(V),typeOf(V')) ~> true? + ~> unsafeCast(V, typeOf(V')) ...</k> + <store>... L |-> (V' => unsafeCast(V, typeOf(V'))) ...</store> + [group(assignment)] +
      +

      Typed exceptions

      +

      Exceptions are propagated now until a catch that can handle them is +encountered.

      +
      k
      syntax KItem ::= xstackFrame(Param, Stmt, K, Map, K) + syntax KItem ::= "popx" + + rule <k> (try S1 catch(P) S2 => S1 ~> popx) ~> K </k> + <control> + <xstack> .List => ListItem(xstackFrame(P, S2, K, Env, C)) ...</xstack> + C + </control> + <env> Env </env> + + rule <k> popx => . ...</k> + <xstack> ListItem(_) => .List ...</xstack> + + rule <k> throw V:Val; ~> _ + => if (subtype(typeOf(V),T)) { T X = V; S2 } else { throw V; } ~> K + </k> + <control> + <xstack> ListItem(xstackFrame(T:Type X:Id, S2, K, Env, C)) => .List ...</xstack> + (_ => C) + </control> + <env> _ => Env </env> +
      +

      Spawn

      +

      Like in untyped KOOL.

      +
      k
      rule <thread>... + <k> spawn S => !T:Int ...</k> + <env> Env </env> + <crntObj> Obj </crntObj> + ...</thread> + (.Bag => <thread>... + <k> S </k> + <env> Env </env> + <id> !T </id> + <crntObj> Obj </crntObj> + ...</thread>) +
      +

      Semantics of the new KOOL constructs

      +

      Class declaration

      +

      Like in untyped KOOL.

      +
      k
      rule <k> class Class1 extends Class2 { S } => . ...</k> + <classes>... (.Bag => <classData> + <className> Class1 </className> + <baseClass> Class2 </baseClass> + <declarations> S </declarations> + </classData>) + ...</classes> +
      +

      Method declaration

      +

      Methods are now typed and we need to store their types in their +closures, so that their type contract can be checked at invocation +time. The rule below is conceptually similar to that of untyped KOOL; +the only difference is the addition of the types.

      +
      k
      rule <k> T:Type F:Id(Ps:Params) S => . ...</k> + <crntClass> C </crntClass> + <location> OL </location> + <env> Env => Env[F <- L] </env> + <store>... .Map => L|->methodClosure(getTypes(Ps)->T,C,OL,Ps,S) ...</store> + <nextLoc> L => L +Int 1 </nextLoc> +
      +

      New

      +

      The semantics of new in dynamically typed KOOL is also +similar to that in untyped KOOL, the main difference being the +management of the return types. Indeed, when a new object is created +we also have to stack the current type in the return cell in +order to be recovered after the creation of the new object. Only the +first rule below needs to be changed; the others are identical to +those in untyped KOOL.

      +
      k
      syntax KItem ::= envStackFrame(Id, Map) + + rule <k> new Class:Id(Vs:Vals) ~> K + => create(Class) ~> (storeObj ~> ((Class(Vs)); return this;)) </k> + <env> Env => .Map </env> + <nextLoc> L:Int => L +Int 1 </nextLoc> + //<br/> // TODO(KORE): support latex annotations #1799 + <control> + <xstack> XS </xstack> + <crntObj> Obj + => <crntClass> Object </crntClass> + <envStack> ListItem(envStackFrame(Object, .Map)) </envStack> + <location> L </location> + </crntObj> + <returnType> T => Class </returnType> + <fstack> .List => ListItem(fstackFrame(Env, K, XS, T, <crntObj>Obj</crntObj>)) ...</fstack> + </control> + + syntax KItem ::= create(Id) + + rule <k> create(Class:Id) + => create(Class1) ~> setCrntClass(Class) ~> S ~> addEnvLayer ...</k> + <className> Class </className> + <baseClass> Class1:Id </baseClass> + <declarations> S </declarations> + + rule <k> create(Object) => . ...</k> + + syntax KItem ::= setCrntClass(Id) + + rule <k> setCrntClass(C) => . ...</k> + <crntClass> _ => C </crntClass> + + syntax KItem ::= "addEnvLayer" + + rule <k> addEnvLayer => . ...</k> + <env> Env => .Map </env> + <crntClass> Class:Id </crntClass> + <envStack> .List => ListItem(envStackFrame(Class, Env)) ...</envStack> + + syntax KItem ::= "storeObj" + + rule <k> storeObj => . ...</k> + <crntObj> + <crntClass> Class </crntClass> + <envStack> EStack </envStack> + (<location> L:Int </location> => .Bag) + </crntObj> + <store>... .Map => L |-> objectClosure(Class, EStack) ...</store> +
      +

      Self reference

      +

      Like in untyped KOOL.

      +
      k
      rule <k> this => objectClosure(Class, EStack) ...</k> + <crntObj> + <crntClass> Class </crntClass> + <envStack> EStack </envStack> + ... + </crntObj> +
      +

      Object member access

      +

      Like in untyped KOOL.

      +
      k
      rule <k> X:Id => this . X ...</k> <env> Env:Map </env> + requires notBool(X in keys(Env)) + + context HOLE . _::Id requires (HOLE =/=K super) + +/* rule objectClosure(<crntObj> <crntClass> Class:Id </crntClass> + <envStack>... ListItem((Class,EnvC:EnvCell)) EStack </envStack> </crntObj>) + . X:Id + => lookupMember(<envStack> ListItem((Class,EnvC)) EStack </envStack>, X) */ + rule objectClosure(Class:Id, + ListItem(envStackFrame(Class,Env)) EStack) + . X:Id + => lookupMember(ListItem(envStackFrame(Class,Env)) EStack, X) + rule objectClosure(Class:Id, + (ListItem(envStackFrame(Class':Id,_)) => .List) _EStack) + . _X:Id + requires Class =/=K Class' + +/* rule <k> super . X => lookupMember(<envStack>EStack</envStack>, X) ...</k> + <crntClass> Class </crntClass> + <envStack>... ListItem((Class,EnvC:EnvCell)) EStack </envStack> */ + rule <k> super . X => lookupMember(EStack, X) ...</k> + <crntClass> Class:Id </crntClass> + <envStack> ListItem(envStackFrame(Class,_)) EStack </envStack> + rule <k> super . _X ...</k> + <crntClass> Class:Id </crntClass> + <envStack> (ListItem(envStackFrame(Class':Id,_)) => .List) _EStack </envStack> + requires Class =/=K Class' +
      +

      Method invocation

      +

      The method lookup is the same as in untyped KOOL.

      +
      k
      rule <k> (X:Id => V)(_:Exps) ...</k> + <env>... X |-> L ...</env> + <store>... L |-> V:Val ...</store> [group(lookup)] + + rule <k> (X:Id => this . X)(_:Exps) ...</k> + <env> Env </env> + requires notBool(X in keys(Env)) + + context HOLE._::Id(_) requires HOLE =/=K super + + rule (objectClosure(_, EStack) . X + => lookupMember(EStack, X:Id))(_:Exps) + +/* rule <k> (super . X + => lookupMember(<envStack>EStack</envStack>,X))(_:Exps)...</k> + <crntClass> Class </crntClass> + <envStack>... ListItem((Class,_)) EStack </envStack> */ + rule <k> (super . X + => lookupMember(EStack,X))(_:Exps)...</k> + <crntClass> Class:Id </crntClass> + <envStack> ListItem(envStackFrame(Class,_)) EStack </envStack> + rule <k> (super . _X)(_:Exps)...</k> + <crntClass> Class:Id </crntClass> + <envStack> (ListItem(envStackFrame(Class':Id,_)) => .List) _EStack </envStack> + requires Class =/=K Class' + + // TODO(KORE): fix getKLabel #1801 + rule (A:Exp(B:Exps))(C:Exps) => A(B) ~> #freezerFunCall(C) + rule (A:Exp[B:Exps])(C:Exps) => A[B] ~> #freezerFunCall(C) + rule V:Val ~> #freezerFunCall(C:Exps) => V(C) + syntax KItem ::= "#freezerFunCall" "(" K ")" + /* + context HOLE(_:Exps) + requires getKLabel HOLE ==KLabel '_`(_`) orBool getKLabel HOLE ==KLabel '_`[_`] + */ + + rule <k> (lookup(L) => V)(_:Exps) ...</k> <store>... L |-> V:Val ...</store> + [group(lookup)] +
      +

      Instance of

      +

      Like in untyped KOOL.

      +
      k
      rule objectClosure(_, ListItem(envStackFrame(C,_)) _) + instanceOf C => true + + rule objectClosure(_, (ListItem(envStackFrame(C::Id,_)) => .List) _) + instanceOf C' requires C =/=K C' + + rule objectClosure(_, .List) instanceOf _ => false +
      +

      Cast

      +

      Unlike in untyped KOOL, in typed KOOL we actually check that the object +can indeed be cast to the claimed type.

      +
      k
      rule (C:Id) objectClosure(Irrelevant, EStack) + => objectClosure(Irrelevant, EStack) instanceOf C ~> true? + ~> objectClosure(C, EStack) +
      +

      KOOL-specific auxiliary declarations and operations

      +

      Objects as lvalues

      +

      Like in untyped KOOL.

      +
      k
      rule <k> lvalue(X:Id => this . X) ...</k> <env> Env </env> + requires notBool(X in keys(Env)) + + context lvalue((HOLE . _)::Exp) + +/* rule lvalue(objectClosure(<crntObj> <crntClass> C </crntClass> + <envStack>... ListItem((C,EnvC:EnvCell)) EStack </envStack> </crntObj>) + . X + => lookupMember(<envStack> ListItem((C,EnvC)) EStack </envStack>, + X)) */ + rule lvalue(objectClosure(C:Id, + ListItem(envStackFrame(C,Env)) EStack) + . X + => lookupMember(ListItem(envStackFrame(C,Env)) EStack, + X)) + rule lvalue(objectClosure(C, + (ListItem(envStackFrame(C',_)) => .List) _EStack) + . _X) + requires C =/=K C' +
      +

      Lookup member

      +

      Like in untyped KOOL.

      +
      k
      syntax Exp ::= lookupMember(List,Id) [function] + + rule lookupMember(ListItem(envStackFrame(_, X |-> L _)) _, X) => lookup(L) + + // TODO: fix rule below as shown once we support functions with deep rewrites + // rule lookupMember(<envStack> ListItem((_, <env> Env </env>)) => .List + // ...</envStack>, X) + // requires notBool(X in keys(Env)) + rule lookupMember(ListItem(envStackFrame(_, Env)) L, X) + => lookupMember(L, X) + requires notBool(X in keys(Env)) +
      +

      typeOf for the additional values}

      +
      k
      rule typeOf(objectClosure(C,_)) => C + rule typeOf(methodClosure(T:Type,_,_,_Ps:Params,_)) => T +
      +

      Subtype checking

      +

      The subclass relation induces a subtyping relation.

      +
      k
      syntax Exp ::= subtype(Types,Types) + + rule subtype(T:Type, T) => true + + rule <k> subtype(C1:Id, C:Id) => subtype(C2, C) ...</k> + <className> C1 </className> + <baseClass> C2:Id </baseClass> + requires C1 =/=K C + + rule subtype(Object,Class:Id) => false + requires Class =/=K Object + + rule subtype(Ts1->T2,Ts1'->T2') => subtype(((T2)::Type,Ts1'),((T2')::Type,Ts1)) + +// Note that the following rule would be wrong! +// rule subtype(T[],T'[]) => subtype(T,T') + + rule subtype((T:Type,Ts),(T':Type,Ts')) => subtype(T,T') && subtype(Ts,Ts') + requires Ts =/=K .Types + rule subtype(.Types,.Types) => true +
      +

      Unsafe Casting

      +

      Performs unsafe casting. One should only use it in combination with +the subtype relation above.

      +
      k
      syntax Val ::= unsafeCast(Val,Type) [function] + + rule unsafeCast(objectClosure(_,EStack), C:Id) + => objectClosure(C,EStack) + + rule unsafeCast(methodClosure(_T',C,OL,Ps,S), T) => methodClosure(T,C,OL,Ps,S) + + rule unsafeCast(V:Val, T:Type) => V requires typeOf(V) ==K T +
      +

      Generic guard

      +

      A generic computational guard: it allows the computation to continue +only if a prefix guard evaluates to true.

      +
      k
      syntax KItem ::= "true?" + rule true ~> true? => . + +endmodule +
      +

      Go to Lesson 3, KOOL typed static.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/2_kool/2_typed/2_static/NOTES/index.html b/k-distribution/pl-tutorial/2_languages/2_kool/2_typed/2_static/NOTES/index.html new file mode 100644 index 00000000000..edef1815783 --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/2_kool/2_typed/2_static/NOTES/index.html @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Why is the following happening at line 347? It should infer the sort Stmts for S:

      +

      rule {S} => block ... Rho R +(.Bag => S Rho R )

      +

      [Error] Critical: Could not infer a sort for variable 'S' to match every location.

      +

      Similarly at line 517.

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/2_kool/2_typed/2_static/kool-typed-static/index.html b/k-distribution/pl-tutorial/2_languages/2_kool/2_typed/2_static/kool-typed-static/index.html new file mode 100644 index 00000000000..5e3b1ec6187 --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/2_kool/2_typed/2_static/kool-typed-static/index.html @@ -0,0 +1,1424 @@ + + + + + + + + + + + + + + +KOOL — Typed — Static | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      KOOL — Typed — Static

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      +

      This is the K static semantics of the typed KOOL language. +It extends the static semantics of typed SIMPLE with static semantics +for the object-oriented constructs. Also, the static semantics of +some of the existing SIMPLE constructs need to change, in order to +become more generous with regards to the set of accepted programs, +mostly due to subtyping. For example, the assignment construct +x = e required that both the variable x and the +expression e had the same type in SIMPLE. In KOOL, the type +of e can be a subtype of the type of x. +Specifically, we define the following typing policy for KOOL, +everything else not mentioned below borrowing its semantics from +SIMPLE:

      +
        +
      • +

        Each class C yields a homonymous type, which can be +explicitly used in programs to type variables and methods, possibly in +combination with other types.

        +
      • +
      • +

        Since now we have user-defined types, we check that each type +used in a KOOL program is well-formed, that is, it is constructed only +from primitive and class types corresponding to declared classes.

        +
      • +
      • +

        Class members and their types form a class type +environment. Each class will have such a type environment. +Each member in a class is allowed to be declared only once. Since in +KOOL we allow methods to be assigned to fields, we make no distinction +between field and method members; in other words, we reject programs +declaring both a field and a method with the same name.

        +
      • +
      • +

        If an identifier is not found in the local type environment, it +will be searched for in the current class type environment. If not +there, then it will be searched for in its superclass' type +environment. And so on and so forth. If not found until the +Object class is reached, a typing error is reported.

        +
      • +
      • +

        The assignment allows variables to be assigned values of +more concrete types. The result type of the assignment expression +construct will be the (more abstract) type of the assigned variable, +and not the (more concrete) type of the expression, like in Java.

        +
      • +
      • +

        Exceptions are changed (from SIMPLE) to allow throwing and +catching only objects, like in Java. Also, unlike in SIMPLE, we do +not check whether the type of the thrown exception matches the type of +the caught variable, because exceptions can be caught by other +try/catch blocks, even by ones in other methods. To avoid +having to annotate each method with what exceptions it can throw, we +prefer to not check the type safety of exceptions (although this is an +excellent homework!). We only check that the try block +type-checks and that the catch block type-checks after we bind +the caught variable to its claimed type.

        +
      • +
      • +

        Class declarations are not allowed to have any cycles in their +extends relation. Such cycles would lead to non-termination of +new, as it actually does in the dynamic semantics of KOOL +where no such circularity checks are performed.

        +
      • +
      • +

        Methods overriding other methods should be in the right subtyping +relationship with the overridden methods: co-variant in the codomain +and contra-variant in the domain.

        +
      • +
      +
      k
      module KOOL-TYPED-STATIC-SYNTAX + imports DOMAINS-SYNTAX +
      +

      Syntax

      +

      The syntax of statically typed KOOL is identical to that of +dynamically typed KOOL, they both taking as input the same programs. +What differs is the K strictness attributes. Like in statically +typed SIMPLE, almost all language constructs are strict now, since we +want each to type its arguments almost all the time. Like in the +other two KOOL definitions, we prefer to copy and then modify/extend +the syntax of statically typed SIMPLE.

      +

      Note: This paragraph is old, now we can do things better. We keep +it here only for historical reasons, to see how much we used to suffer :)

      +

      Annoying K-tool technical problem: +Currently, the K tool treats the "non-terminal" productions (i.e., +productions consisting of just one non-terminal), also called +"subsorting" production, differently from the other productions. +Specifically, it does not insert a node in the AST for them. This may +look desirable at first, but it has a big problem: it does not allow +us to treat the subsort differently in different context. For +example, since we want Id to be both a type (a class name) and a +program variable, and since we want expressions to reduce to their +types, we are in an impossible situations in which we do not know how +to treat an identifier in the semantics: as a type, i.e., a result of +computations, or as a program variable, i.e., a non-result. Ideally, +we would like to tag the identifiers at parse-time with their local +interpretation, but that, unfortunately, is not possible with the +current parsing capabilities of the K tool, because it requires to +insert additional information in the AST for the subsort productions. +This will be fixed soon. Until then, unfortunately, we have to do the +job of the parser manually. Instead of subsorting Id directly +to Type, we "wrap" it first, say with a wrapper called +class(...), exactly how the parser should have done. +The major drawback of this is that all the typed KOOL programs +in kool/typed/programs need to also be modified to always +declare class types accordingly. The modified programs can be found +in kool/typed/static/programs. So make sure you execute the +static semantics of KOOL using the modified programs. To avoid seeing +the wrapper in the generated documentation, we associate it an +"invisibility" latex attribute below.

      +
      k
      syntax Id ::= "Object" [token] | "Main" [token] +
      +

      Types

      +
      k
      syntax Type ::= "void" | "int" | "bool" | "string" + | Id [klabel("class"), symbol, avoid] // see next + | Type "[" "]" + | "(" Type ")" [bracket] + > Types "->" Type + + syntax Types ::= List{Type,","} [klabel(exps)] +
      +

      Declarations

      +
      k
      syntax Param ::= Type Id + syntax Params ::= List{Param,","} + + syntax Stmt ::= Type Exps ";" [avoid] + | Type Id "(" Params ")" Block + | "class" Id Block + | "class" Id "extends" Id Block +
      +

      Expressions

      +
      k
      syntax FieldReference ::= Exp "." Id [strict(1)] + syntax ArrayReference ::= Exp "[" Exps "]" [strict] + + syntax Exp ::= Int | Bool | String | Id + | "this" + | "super" + | "(" Exp ")" [bracket] + | "++" Exp + | Exp "instanceOf" Id [strict(1)] + | "(" Id ")" Exp [strict(2)] + | "new" Id "(" Exps ")" [strict(2)] + > Exp "(" Exps ")" [strict] + | "-" Exp [strict] + | "sizeOf" "(" Exp ")" [strict] + | "read" "(" ")" + > left: + Exp "*" Exp [strict, left] + | Exp "/" Exp [strict, left] + | Exp "%" Exp [strict, left] + > left: + Exp "+" Exp [strict, left] + | Exp "-" Exp [strict, left] + > non-assoc: + Exp "<" Exp [strict, non-assoc] + | Exp "<=" Exp [strict, non-assoc] + | Exp ">" Exp [strict, non-assoc] + | Exp ">=" Exp [strict, non-assoc] + | Exp "==" Exp [strict, non-assoc] + | Exp "!=" Exp [strict, non-assoc] + > "!" Exp [strict] + > left: + Exp "&&" Exp [strict, left] + | Exp "||" Exp [strict, left] + > "spawn" Block // not strict: to check return and exceptions + > Exp "=" Exp [strict(2), right] + + syntax Exp ::= FieldReference | ArrayReference + syntax priority _.__KOOL-TYPED-STATIC-SYNTAX > _[_]_KOOL-TYPED-STATIC-SYNTAX > _(_)_KOOL-TYPED-STATIC-SYNTAX + + syntax Exps ::= List{Exp,","} [strict, klabel(exps)] +
      +

      Statements

      +
      k
      syntax Block ::= "{" "}" + | "{" Stmt "}" + + syntax Stmt ::= Block + | Exp ";" [strict] + | "if" "(" Exp ")" Block "else" Block [avoid, strict] + | "if" "(" Exp ")" Block [macro] + | "while" "(" Exp ")" Block [strict] + | "for" "(" Stmt Exp ";" Exp ")" Block [macro] + | "return" Exp ";" [strict] + | "return" ";" + | "print" "(" Exps ")" ";" [strict] + | "try" Block "catch" "(" Param ")" Block [strict(1)] + | "throw" Exp ";" [strict] + | "join" Exp ";" [strict] + | "acquire" Exp ";" [strict] + | "release" Exp ";" [strict] + | "rendezvous" Exp ";" [strict] + + syntax Stmt ::= Stmt Stmt [seqstrict, right] +
      +

      Desugaring macros

      +
      k
      rule if (E) S => if (E) S else {} + rule for(Start Cond; Step) {S:Stmt} => {Start while(Cond){S Step;}} + rule T:Type E1:Exp, E2:Exp, Es:Exps; => T E1; T E2, Es; [anywhere] + rule T:Type X:Id = E; => T X; X = E; [anywhere] + + rule class C:Id S => class C extends Object S + +endmodule +
      +

      Static semantics

      +

      We first discuss the configuration, then give the static semantics +taken over unchanged from SIMPLE, then discuss the static semantics of +SIMPLE syntactic constructs that needs to change, and in the end we +discuss the static semantics and additional checks specifically +related to the KOOL proper syntax.

      +
      k
      module KOOL-TYPED-STATIC + imports KOOL-TYPED-STATIC-SYNTAX + imports DOMAINS +
      +

      Configuration

      +

      The configuration of our type system consists of a tasks +cell with the same meaning like in statically typed SIMPLE, of an +out cell streamed to the standard output that will be used to +display typing error messages, and of a cell classes holding +data about each class in a separate class cell. The +task cells now have two additional optional subcells, namely +ctenvT and inClass. The former holds a temporary +class type environment; its contents will be transferred into the +ctenv cell of the corresponding class as soon as all the +fields and methods in the task are processed. In fact, there will be +three types of tasks in the subsequent semantics, each determined by +the subset of cells that it holds:

      +
        +
      1. +

        Main task, holding only a k cell holding the +original program as a set of classes. The role of this task is to +process each class, generating a class task (see next) for each.

        +
      2. +
      3. +

        Class task, holding k, ctenvT, and +inClass subcells. The role of this task type is to process +a class' contents, generating a class type environment in the +ctenvT cell and a method task (see next) for each method in +the class. To avoid interference with object member lookup rules +below, it is important to add the class type environment to a class +atomically; this is the reason for which we use ctenvT +temporary cells within class tasks (instead of adding each member +incrementally to the class' type environment).

        +
      4. +
      5. +

        Method task, holding k, tenv and +return cells. These tasks are similar to SIMPLE's function +tasks, so we do not discuss them here any further.

        +
      6. +
      +

      Each class cell hods its name (in the className +cell) and the name of the class it extends (in the extends +cell), as well as its type environment (in the ctenv cell) +and the set of all its superclasses (in the extendsAll cell). +The later is useful for example for checking whether there are cycles +in the class extends relation.

      +
      k
      configuration <T multiplicity="?" color="yellow"> + <tasks color="orange" multiplicity="?"> + <task multiplicity="*" color="yellow" type="Set"> + <k color="green"> $PGM:Stmt </k> + <tenv multiplicity="?" color="cyan"> .Map </tenv> + <ctenvT multiplicity="?" color="blue"> .Map </ctenvT> + <returnType multiplicity="?" color="black"> void </returnType> + <inClass multiplicity="?" color="Fuchsia"> .K </inClass> + </task> + </tasks> +// <br/> + <classes color="Fuchsia"> + <classData multiplicity="*" type="Map"> + <className color="Fuchsia"> Object </className> + <baseClass color="Fuchsia"> .K </baseClass> + <baseClasses color="Fuchsia"> .Set </baseClasses> + <ctenv multiplicity="?" color="blue"> .Map </ctenv> + </classData> + </classes> + </T> + <output color="brown" stream="stdout"> .List </output> +
      +

      Unchanged semantics from statically typed SIMPLE

      +

      The syntax and rules below are borrowed unchanged from statically +typed SIMPLE, so we do not discuss them much here.

      +
      k
      syntax Exp ::= Type + syntax Exps ::= Types + syntax BlockOrStmtType ::= "block" | "stmt" + syntax Type ::= BlockOrStmtType + syntax Block ::= BlockOrStmtType + syntax KResult ::= Type + | Types // TODO: should not be needed + + + context _:Type _::Exp[HOLE::Exps]; + + rule T:Type E:Exp[int,Ts:Types]; => T[] E[Ts]; + rule T:Type E:Exp[.Types]; => T E; + + + rule <task>... <k> _:BlockOrStmtType </k> <tenv> _ </tenv> ...</task> => .Bag + + + rule _:Int => int + rule _:Bool => bool + rule _:String => string + + + rule <k> X:Id => T ...</k> <tenv>... X |-> T ...</tenv> + + + context ++(HOLE => ltype(HOLE)) + rule ++ int => int + rule int + int => int + rule string + string => string + rule int - int => int + rule int * int => int + rule int / int => int + rule int % int => int + rule - int => int + rule int < int => bool + rule int <= int => bool + rule int > int => bool + rule int >= int => bool + rule T:Type == T => bool + rule T:Type != T => bool + rule bool && bool => bool + rule bool || bool => bool + rule ! bool => bool + + + rule (T[])[int, Ts:Types] => T[Ts] + rule T:Type[.Types] => T + + rule sizeOf(_T[]) => int + + + rule read() => int + + rule print(T:Type, Ts => Ts); when T ==K int orBool T ==K string + rule print(.Types); => stmt + + + context (HOLE => ltype(HOLE)) = _ + + + rule <k> return; => stmt ...</k> <returnType> _ </returnType> + + + rule {} => block + + rule <task> <k> {S:Stmt} => block ...</k> <tenv> Rho </tenv> R </task> + (.Bag => <task> <k> S </k> <tenv> Rho </tenv> R </task>) + + rule _:Type; => stmt + rule if (bool) block else block => stmt + rule while (bool) block => stmt + + rule join int; => stmt + rule acquire _:Type; => stmt + rule release _:Type; => stmt + rule rendezvous _:Type; => stmt + + syntax Stmt ::= BlockOrStmtType + rule _:BlockOrStmtType _:BlockOrStmtType => stmt +
      +

      Unchanged auxiliary operations from dynamically typed SIMPLE

      +
      k
      syntax Stmt ::= mkDecls(Params) [function] + rule mkDecls(T:Type X:Id, Ps:Params) => T X; mkDecls(Ps) + rule mkDecls(.Params) => {} + + syntax LValue ::= Id + | FieldReference + | ArrayReference + syntax Exp ::= LValue + + syntax Exp ::= ltype(Exp) +// We would like to say: +// context ltype(HOLE:LValue) +// but we currently cannot type the HOLE + context ltype(HOLE) when isLValue(HOLE) + +// OLD approach: +// syntax Exp ::= ltype(Exp) [function] +// rule ltype(X:Id) => X +// rule ltype(E:Exp [Es:Exps]) => E[Es] + + syntax Types ::= getTypes(Params) [function] + rule getTypes(T:Type _:Id) => T, .Types + rule getTypes(T:Type _:Id, P, Ps) => T, getTypes(P,Ps) + rule getTypes(.Params) => void, .Types +
      +

      Changes to the existing statically typed SIMPLE semantics

      +

      Below we give the new static semantics for language constructs that +come from SIMPLE, but whose SIMPLE static semantics was too +restrictive or too permissive and thus had to change.

      +

      Local variable declaration

      +

      Since we can define new types in KOOL (corresponding to classes), the +variable declaration needs to now check that the claimed types exist. +The operation checkType, defined at the end of this module, +checks whether the argument type is correct (it actually works with +lists of types as well).

      +
      k
      rule <k> T:Type X:Id; => checkType(T) ~> stmt ...</k> + <tenv> Rho => Rho[X <- T] </tenv> +
      +

      Class member declaration

      +

      In class tasks, variable declarations mean class member declarations. +Since we reduce method declarations to variable declarations (see +below), a variable declaration in a class task can mean either a field +or a method declaration. Unlike local variable declarations, which +can shadow previous homonymous local or member declarations, member +declarations are regarded as a set, so we disallow multiple +declarations for the same member (one could improve upon this, like in +Java, by treating members with different types or number of arguments +as different, etc., but we do not do it here). We also issue an error +message if one attempts to redeclare the same class member. The +framed variable declaration in the second rule below should be read +"stuck". In fact, it is nothing but a unary operation called +stuck, which takes a K-term as argument and does nothing +with it; this stuck operation is displayed as a frame in this +PDF document because of its latex attribute (see the ASCII .k file, +at the end of this module).

      +
      k
      rule <k> T:Type X:Id; => checkType(T) ~> stmt ...</k> + <ctenvT> Rho (.Map => X |-> T) </ctenvT> + when notBool(X in keys(Rho)) + + rule <k> T:Type X:Id; => stuck(T X;) ...</k> + <ctenvT>... X |-> _ ...</ctenvT> + <inClass> C:Id </inClass> +// <br/> + <output>... .List => ListItem("Member \"" +String Id2String(X) + +String "\" declared twice in class \"" + +String Id2String(C) +String "\"!\n") </output> +
      +

      Method declaration

      +

      A method declaration requires two conceptual checks to be performed: +first, that the method's type is consistent with the type of the +homonymous method that it overrides, if any; and second, that its body +types correctly. At the same time, it should also be added to the +type environment of its class. The first conceptual task is performed +using the checkMethod operation defined below, and the second +by generating a corresponding method task. To add it to the class +type environment, we take advantage of the fact that KOOL is higher +order and reduce the problem to a field declaration problem, which we +have already defined. The role of the ctenvT cell in the +rule below is to structurally ensure that the method declaration takes +place in a class task (we do not want to allow methods to be declared, +for example, inside other methods).

      +
      k
      rule <k> T:Type F:Id(Ps:Params) S + => checkMethod(F, getTypes(Ps)->T, C') + ~> getTypes(Ps)->T F; ...</k> +// <br/> + <inClass> C </inClass> + <ctenvT> _ </ctenvT> // to ensure we are in a class pass + <className> C </className> + <baseClass> C' </baseClass> +// <br/> + (.Bag => <task> + <k> mkDecls(Ps) S </k> + <inClass> C </inClass> + <tenv> .Map </tenv> + <returnType> T </returnType> + </task>) +
      +

      Assignment

      +

      A more concrete value is allowed to be assigned to a more abstract +variable. The operation checkSubtype is defined at the end +of the module and it also works with pairs of lists of types.

      +
      k
      rule T:Type = T':Type => checkSubtype(T', T) ~> T +
      +

      Method invocation and return

      +

      Methods can be applied on values of more concrete types than their +arguments:

      +
      k
      rule (Ts:Types -> T:Type) (Ts':Types) => checkSubtype(Ts',Ts) ~> T +
      +

      Similarly, we allow values of more concrete types to be returned by +methods:

      +
      k
      rule <k> return T:Type; => checkSubtype(T,T') ~> stmt ...</k> + <returnType> T':Type </returnType> +
      +

      Exceptions

      +

      Exceptions can throw and catch values of any types. Since unlike in Java +KOOL's methods do not declare the exception types that they can throw, +we cannot test the full type safety of exceptions. Instead, we +only check that the try and the catch statements +type correctly.

      +
      k
      rule try block catch(T:Type X:Id) S => {T X; S} + rule throw _T:Type ; => stmt +
      +

      Spawn

      +

      The spawned cell needs to also be passed the parent's class.

      +
      k
      // explain why + + rule <k> spawn S:Block => int ...</k> + <tenv> Rho </tenv> + <inClass> C </inClass> + (.Bag => <task> + <k> S </k> + <tenv> Rho </tenv> + <inClass> C </inClass> + </task>) +
      +

      Semantics of the new KOOL constructs

      +

      Class declaration

      +

      We process each class in the main task, adding the corresponding data +into its class cell and also adding a class task for it. We +also perform some well-formedness checks on the class hierarchy.

      +

      Initiate class processing
      +We create a class cell and a class task for each task. Also, we start +the class task with a check that the class it extends is declared +(this delays the task until that class is processed using another +instance of this rule).

      +
      k
      // There seems to be some error with the configuration concretization, +// as the rule below does not work when rewriting . to both the task +// and the class cells; I had to include two separate . rewrites + +// TODO: the following fails krun; see #2117 + rule <task> <k> class C:Id extends C':Id { S:Stmt } => stmt ...</k> </task> + (.Bag => <classData>... + <className> C </className> + <baseClass> C' </baseClass> + ...</classData>) +// <br/> + (.Bag => <task> + <k> checkType(`class`(C')) ~> S </k> + <inClass> C </inClass> + <ctenvT> .Map </ctenvT> + </task>) + +// You may want to try the thing below, but that failed, too +/* +syntax Type ::= "stmtStop" + + rule <tasks>... + <task> <k> class C:Id extends C':Id { S:Stmt } => stmtStop ...</k> </task> + (.Bag => <task> + <k> checkType(`class`(C')) ~> S </k> + <inClass> C </inClass> + <ctenvT> .Map </ctenvT> + </task>) + ...</tasks> + <classes>... + .Bag => <classData>... + <className> C </className> + <baseClass> C' </baseClass> + ...</classData> + ...</classes> +// <br/> +*/ +
      +

      Check for unique class names

      +
      k
      rule (<T>... + <className> C </className> + <className> C </className> + ...</T> => .Bag) + <output>... .List => ListItem("Class \"" +String Id2String(C) + +String "\" declared twice!\n") </output> +
      +

      Check for cycles in class hierarchy
      +We check for cycles in the class hierarchy by transitively closing the +class extends relation using the extendsAll cells, and +checking that a class will never appear in its own extendsAll +cell. The first rule below initiates the transitive closure of the +superclass relation, the second transitively closes it, and the third +checks for cycles.

      +
      k
      rule <baseClass> C </baseClass> + <baseClasses> .Set => SetItem(C) </baseClasses> [priority(25)] + + rule <classData>... + <baseClasses> SetItem(C) Cs:Set (.Set => SetItem(C')) </baseClasses> + ...</classData> + <classData>... <className>C</className> <baseClass>C'</baseClass> ...</classData> + when notBool(C' in (SetItem(C) Cs)) [priority(25)] + + rule (<T>... + <className> C </className> + <baseClasses>... SetItem(C) ...</baseClasses> + ...</T> => .Bag) + <output>... .List => ListItem("Class \"" +String Id2String(C) + +String "\" is in a cycle!\n") </output> + [group(inheritance-cycle), priority(25)] +
      +

      New

      +

      To type new we only need to check that the class constructor +can be called with arguments of the given types, so we initiate a call +to the constructor method in the corresponding class. If that +succeeds, meaning that it types to stmt, then we discard the +stmt type and produce instead the corresponding class type of +the new object. The auxiliary discard operation is defined +also at the end of this module.

      +
      k
      rule new C:Id(Ts:Types) => `class`(C) . C (Ts) ~> discard ~> `class`(C) +
      +

      Self reference

      +

      The typing rule for this is straightforward: reduce to the +current class type.

      +
      k
      rule <k> this => `class`(C) ...</k> + <inClass> C:Id </inClass> +
      +

      Super

      +

      Similarly, super types to the parent class type. +Note that for typing concerns, super can be considered as an object +(recall that this was not the case in the dynamic semantics).

      +
      k
      rule <k> super => `class`(C') ...</k> + <inClass> C:Id </inClass> + <className> C </className> + <baseClass> C':Id </baseClass> +
      +

      Object member access

      +

      There are several cases to consider here. First, if we are in a class +task, we should lookup the member into the temporary class type +environemnt in cell ctenvT. That is because we want to allow +initialized field declarations in classes, such as int x=10;. +This is desugared to a declaration of x, which is added to +ctenvT during the class task processing, followed by an +assignment of x to 10. In order for the assignment to type +check, we need to know that x has been declared with type +int; this information can only be found in the +ctenvT cell. Second, we should redirect non-local variable +lookups in method tasks to corresponding member accesses (the +local variables are handled by the rule borrowed from SIMPLE). +This is what the second rule below does. Third, we should allow +object member accesses as lvalues, which is done by the third rule +below. These last two rules therefore ensure that each necessary +object member access is explicitly allowed for evaluation. Recall +from the annotated syntax module above that the member access +operation is strict in the object. That means that the object is +expected to evaluate to a class type. The next two rules below define +the actual member lookup operation, moving the search to the +superclass when the member is not found in the current class. Note +that this works because we create the class type environments +atomically; thus, a class either has its complete type environment +available, in which case these rules can safely apply, or its cell +ctenv is not yet available, in which case these rules have to +wait. Finally, the sixth rule below reports an error when the +Object class is reached.

      +
      k
      rule <k> X:Id => T ...</k> + <ctenvT>... X |-> T ...</ctenvT> + + rule <k> X:Id => this . X ...</k> + <tenv> Rho </tenv> + when notBool(X in keys(Rho)) + +// OLD approach: +// rule ltype(E:Exp . X:Id) => E . X + + rule <k> `class`(C:Id) . X:Id => T ...</k> + <className> C </className> + <ctenv>... X |-> T:Type ...</ctenv> + + rule <k> `class`(C1:Id => C2) . X:Id ...</k> + <className> C1 </className> + <baseClass> C2:Id </baseClass> + <ctenv> Rho </ctenv> + when notBool(X in keys(Rho)) + + rule <k> `class`(Object) . X:Id => stuck(`class`(Object) . X) ...</k> + <inClass> C:Id </inClass> +// <br/> + <output>... .List => ListItem("Member \"" +String Id2String(X) + +String "\" not declared! (see class \"" + +String Id2String(C) +String "\")\n") </output> +
      +

      Instance of and casting

      +

      As it is hard to check statically whether casting is always safe, +the programmer is simply trusted from a typing perspective. We only +do some basic upcasting and downcasting checks, to reject casts which +will absolutely fail. However, dynamic semantics or implementations +of the language need to insert runtime checks for downcasting to be safe.

      +
      k
      rule `class`(_C1:Id) instanceOf _C2:Id => bool + rule (C:Id) `class`(C) => `class`(C) + rule <k> (C2:Id) `class`(C1:Id) => `class`(C2) ...</k> + <className> C1 </className> + <baseClasses>...SetItem(C2)...</baseClasses> // upcast + rule <k> (C2:Id) `class`(C1:Id) => `class`(C2) ...</k> + <className> C2 </className> + <baseClasses>...SetItem(C1)...</baseClasses> // downcast + rule <k> (C2) `class`(C1:Id) => stuck((C2) `class`(C1)) ...</k> + <classData>... + <className> C1 </className> + <baseClasses> S1 </baseClasses> + ...</classData> + <classData>... + <className> C2 </className> + <baseClasses> S2 </baseClasses> + ...</classData> + <output>... .List => ListItem("Classes \"" +String Id2String(C1) + +String "\" and \"" +String Id2String(C2) + +String "\" are incompatible!\n") </output> + when notBool(C1 in S2) andBool notBool(C2 in S1) +
      +

      Cleanup tasks

      +

      Finally, we need to clean up the terminated tasks. Each of the three +types of tasks is handled differently. The main task is replaced by a +method task holding new main();, which will ensure that a +main class with a main() method actually exists +(first rule below). A class task moves its temporary class type +environment into its class' cell, and then it dissolves itself (second +rule). A method task simply dissolves when terminated (third rule); +the presence of the tenv cell in that rule ensures that that +task is a method task. +Finally, when all the tasks are cleaned up, we can also remove the +tasks cell, issuing a corresponding message. Note that +checking for cycles or duplicate methods can still be performed after +the tasks cell has been removed.

      +
      k
      // discard main task when done, issuing a "new main();" command to +// make sure that the class main and the method main() are declared. + + rule <task> <k> stmt => new Main(.Exps); </k> + (.Bag => <tenv> .Map </tenv> + <returnType> void </returnType> + <inClass> Main </inClass>) + </task> + +// discard class task when done, adding a ctenv in class + + rule (<task> + <k> stmt </k> + <ctenvT> Rho </ctenvT> + <inClass> C:Id </inClass> + </task> => .Bag) + <className> C </className> + (.Bag => <ctenv> Rho </ctenv>) + +// discard method task when done + + rule <task>... + <k> stmt </k> + <tenv> _ </tenv> // only to ensure that this is a method task + ...</task> => .Bag + +// cleanup tasks and output a success message when done + + rule (<T>... <tasks> .Bag </tasks> ...</T> => .Bag) + <output>... .List => ListItem("Type checked!\n") </output> +
      +

      KOOL-specific auxiliary declarations and operations

      +

      Subtype checking

      +

      The subclass relation introduces a subtyping relation.

      +
      k
      syntax KItem ::= checkSubtype(Types,Types) + + rule checkSubtype(T:Type, T) => . + + rule <k> checkSubtype(`class`(C:Id), `class`(C':Id)) => . ...</k> + <className> C </className> + <baseClasses>... SetItem(C') ...</baseClasses> + + rule checkSubtype(Ts1->T2,Ts1'->T2') + => checkSubtype(((T2)::Type,Ts1'),((T2')::Type,Ts1)) + +// note that the following rule would be wrong! +// rule checkSubtype(T[],T'[]) => checkSubtype(T,T') + + rule checkSubtype((T:Type,Ts),(T':Type,Ts')) + => checkSubtype(T,T') ~> checkSubtype(Ts,Ts') + when Ts =/=K .Types + + rule checkSubtype(.Types,.Types) => . + rule checkSubtype(.Types,void) => . +
      +

      Checking well-formedness of types

      +

      Since now any Id can be used as the type of a class, we need to +check that the types used in the program actually exists

      +
      k
      syntax KItem ::= checkType(Types) + + rule checkType(T:Type,Ts:Types) => checkType(T) ~> checkType(Ts) + when Ts =/=K .Types + rule checkType(.Types) => . + rule checkType(int) => . + rule checkType(bool) => . + rule checkType(string) => . + rule checkType(void) => . + rule <k> checkType(`class`(C:Id)) => . ...</k> <className> C </className> + rule checkType(`class`(Object)) => . + rule checkType(Ts:Types -> T:Type) => checkType(T,Ts) + rule checkType(T:Type[]) => checkType(T) +
      +

      Checking correct overiding of methods

      +

      The checkMethod operation below searches to see whether +the current method overrides some other method in some superclass. +If yes, then it issues an additional check that the new method's type +is more concrete than the overridden method's. The types T and T' +below can only be function types. See the definition of +checkSubtype on function types at the end of this module (it +is co-variant in the codomain and contra-variant in the domain).

      +
      k
      syntax KItem ::= checkMethod(Id,Type,Id) + + rule <k> checkMethod(F:Id, T:Type, C:Id) => checkSubtype(T, T') ...</k> + <className> C </className> + <ctenv>... F |-> T':Type ...</ctenv> + + rule <k> checkMethod(F:Id, _T:Type, (C:Id => C')) ...</k> + <className> C </className> + <baseClass> C':Id </baseClass> + <ctenv> Rho </ctenv> + when notBool(F in keys(Rho)) + + rule checkMethod(_:Id,_,Object) => . +
      +

      Generic operations which could be part of the K framework

      +
      k
      syntax KItem ::= stuck(K) [latex(\framebox{${#1}$})] + + syntax KItem ::= "discard" + rule _:KResult ~> discard => . + +endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/1_environment/fun-untyped/index.html b/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/1_environment/fun-untyped/index.html new file mode 100644 index 00000000000..acc4ca0f33c --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/1_environment/fun-untyped/index.html @@ -0,0 +1,1225 @@ + + + + + + + + + + + + + + +FUN — Untyped — Environment | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      FUN — Untyped — Environment

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      +

      This is the K semantic definition of the untyped FUN language. +FUN is a pedagogical and research language that captures the essence +of the functional programming paradigm, extended with several features +often encountered in functional programming languages. +Like many functional languages, FUN is an expression language, that +is, everything, including the main program, is an expression. +Functions can be declared anywhere and are first class values in the +language. +FUN is call-by-value here, but it has been extended (as student +homework assignments) with other parameter-passing styles. +To make it more interesting and to highlight some of K's strengths, +FUN includes the following features:

      +
        +
      • +

        The basic builtin data-types of integers, booleans and strings.

        +
      • +
      • +

        Builtin lists, which can hold any elements, including other lists. +Lists are enclosed in square brackets and their elements are +comma-separated; e.g., [1,2,3].

        +
      • +
      • +

        User-defined data-types, by means of constructor terms. +Constructor names start with a capital letter (while any other +identifier in the language starts with a lowercase letter), and they +can be followed by an arbitrary number of comma-separated arguments +enclosed in parentheses; parentheses are not needed when the +constructor takes no arguments. +For example, Pair(5,7) is a constructor term holding two +numbers, Cons(1,Cons(2,Cons(3,Nil))) is a list-like +constructor term holding 3 elements, and +Tree(Tree(Leaf(1), Leaf(2)), Leaf(3)) is a tree-like +constructor term holding 3 elements. +In the untyped version of the FUN language, no type checking or +inference is performed to ensure that the data constructors are used +correctly. +The execution will simply get stuck when they are misused. +Moreover, since no type checking is performed, the data-types are not +even declared in the untyped version of FUN.

        +
      • +
      • +

        Functions and let/letrec binders can take +multiple space-separated arguments, but these are desugared to +ones that only take one argument, by currying. For example, the +expressions

        +
        fun x y -> x y
        +let x y = y in x
        +
        +

        are desugared, respectively, into the following expressions:

        +
        fun x -> fun y -> x y
        +let x = fun y -> y in x
        +
        +
      • +
      • +

        Functions can be defined using pattern matching over the +available data-types. For example, the program

        +
        letrec max = fun [h] -> h
        +             |   [h|t] -> let x = max t
        +                          in  if h > x then h else x
        +in max [1, 3, 5, 2, 4, 0, -1, -5]
        +
        +

        defines a function max that calculates the maximum element of +a non-empty list, and the function

        +
        letrec ack = fun Pair(0,n) -> n + 1
        +             |   Pair(m,0) -> ack Pair(m - 1, 1)
        +             |   Pair(m,n) -> ack Pair(m - 1, ack Pair(m, n - 1))
        +in ack Pair(2,3)
        +
        +

        calculates the Ackermann function applied to a particular pair of numbers. +Patterns can be nested. Patterns can currently only be used in function +definitions, and not directly in let/letrec binders. +For example, this is not allowed:

        +
        letrec Pai(x,y) = Pair(1,2) in x+y
        +
        +

        But this is allowed:

        +
        let f Pair(x,y) = x+y in f Pair(1,2)
        +
        +

        because it is first reduced to

        +
        let f = fun Pair(x,y) -> x+y in f Pair(1,2)
        +
        +

        by uncurrying of the let binder, and pattern matching is +allowed in function arguments.

        +
      • +
      • +

        We include a callcc construct, for two reasons: first, +several functional languages support this construct; second, some +semantic frameworks have difficulties defining it. Not K.

        +
      • +
      • +

        Finally, we include mutables by means of referencing an +expression, getting the reference of a variable, dereferencing and +assignment. We include these for the same reasons as above: there are +languages which have them, and they are not easy to define in some +semantic frameworks.

        +
      • +
      +

      Like in many other languages, some of FUN's constructs can be +desugared into a smaller set of basic constructs. We do that as usual, +using macros, and then we only give semantics to the core constructs.

      +

      Note:
      +We recommend the reader to first consult the dynamic semantics of the +LAMBDA++ language in the first part of the K Tutorial. +To keep the comments below small and focused, we will not re-explain +functional or K features that have already been explained in there.

      +

      Syntax

      +
      k
      //require "modules/pattern-matching.k" + +module FUN-UNTYPED-COMMON + imports DOMAINS-SYNTAX +
      +

      FUN is an expression language. The constructs below fall into +several categories: names, arithmetic constructs, conventional +functional constructs, patterns and pattern matching, data constructs, +lists, references, and call-with-current-continuation (callcc). +The arithmetic constructs are standard; they are present in almost all +our K language definitions. The meaning of FUN's constructs are +discussed in more depth when we define their semantics in the next +module.

      +

      The Syntactic Constructs

      +

      We start with the syntactic definition of FUN names. +We have several categories of names: ones to be used for functions and +variables, others to be used for data constructors, others for types and +others for type variables. We will introduce them as needed, starting +with the former category. We prefer the names of variables and functions +to start with lower case letters. We take the freedom to tacitly introduce +syntactic lists/sequences for each nonterminal for which we need them:

      +
      k
      syntax Name [token] + syntax Names ::= List{Name,","} [klabel(exps)] +
      +

      Expression constructs will be defined throughtout the syntax module. +Below are the very basic ones, namely the builtins, the names, and the +parentheses used as brackets for grouping. Lists of expressions are +declared strict, so all expressions in the list get evaluated whenever +the list is on a position which can be evaluated:

      +
      k
      syntax Exp ::= Int | Bool | String | Name + | "(" Exp ")" [bracket] + syntax Exps ::= List{Exp,","} [strict, klabel(exps)] + syntax Val + syntax Exp ::= Val + syntax Exps ::= Vals + syntax Vals ::= List{Val,","} [klabel(exps)] + syntax Bottom + syntax Bottoms ::= List{Bottom,","} [klabel(exps)] +
      +

      We next define the syntax of arithmetic constructs, together with +their relative priorities and left-/non-associativities. We also +tag all these rules as members of a new group, "arith", so we can more easily +define global syntax priorities later (at the end of the syntax module).

      +
      k
      syntax Exp ::= left: + Exp "*" Exp [strict, group(arith)] + | Exp "/" Exp [strict, group(arith)] + | Exp "%" Exp [strict, group(arith)] + > left: + Exp "+" Exp [strict, left, group(arith)] + | Exp "^" Exp [strict, left, group(arith)] +// left attribute should not be necessary; currently a parsing bug + | Exp "-" Exp [strict, prefer, group(arith)] +// the "prefer" attribute above is to not parse x-1 as x(-1) +// Due to some parsing problems, we currently cannot add unary minus: + | "-" Exp [strict, group(arith)] + > non-assoc: + Exp "<" Exp [strict, group(arith)] + | Exp "<=" Exp [strict, group(arith)] + | Exp ">" Exp [strict, group(arith)] + | Exp ">=" Exp [strict, group(arith)] + | Exp "==" Exp [strict, group(arith)] + | Exp "!=" Exp [strict, group(arith)] + > "!" Exp [strict, group(arith)] + > Exp "&&" Exp [strict(1), left, group(arith)] + > Exp "||" Exp [strict(1), left, group(arith)] +
      +

      The conditional construct has the expected evaluation strategy, +stating that only the first argument is evaluate:

      +
      k
      syntax Exp ::= "if" Exp "then" Exp "else" Exp [strict(1)] +
      +

      FUN's builtin lists are formed by enclosing comma-separated +sequences of expressions (i.e., terms of sort Exps) in square +brackets. The list constructor cons adds a new element to the +top of the list, head and tail get the first element +and the tail sublist of a list if they exist, respectively, and get +stuck otherwise, and null?? tests whether a list is empty or +not; syntactically, these are just expression constants. +In function patterns, we are also going to allow patterns following the +usual head/tail notation; for example, the pattern [x_1,...,x_n|t] +binds x_1, ..., x_n to the first elements of the matched list, +and t to the list formed with the remaining elements. We define list +patterns as ordinary expression constructs, although we will make sure that +we do not give them semantics if they appear in any other place then in a +function case pattern.

      +
      k
      syntax Exp ::= "[" Exps "]" [strict, klabel(list)] + | "head" [macro] | "tail" [macro] | "null?" [macro] + | "[" Exps "|" Exp "]" + syntax Val ::= "[" Vals "]" [klabel(list)] + syntax Cons ::= "cons" + syntax Val ::= Cons + syntax Val ::= Cons Val [klabel(apply)] +
      +

      Data constructors start with capital letters and they may or may +not have arguments. We need to use the attribute "prefer" to make +sure that, e.g., Cons(a) parses as constructor Cons with +argument a, and not as the expression Cons (because +constructor names are also expressions) regarded as a function applied +to the expression a. Also, note that the constructor is strict +in its second argument, because we want to evaluate its arguments but +not the constuctor name itsef.

      +
      k
      syntax ConstructorName [token] + syntax Exp ::= ConstructorName + | ConstructorName "(" Exps ")" [prefer, strict(2), klabel(constructor)] + syntax Val ::= ConstructorName "(" Vals ")" [klabel(constructor)] +
      +

      A function is essentially a |-separated ordered +sequence of cases, each case of the form pattern -> expression, +preceded by the language construct fun. Patterns will be defined +shortly, both for the builtin lists and for user-defined constructors. +Recall that the syntax we define in K is not meant to serve as a +ultimate parser for the defined language, but rather as a convenient +notation for K abstract syntax trees, which we prefer when we write +the semantic rules. It is therefore often the case that we define a +more ``generous'' syntax than we want to allow programs to use. +We do it here, too. Specifically, the syntax of Cases +below allows any expressions to appear as pattern. This syntactic +relaxation permits many wrong programs to be parsed, but that is not a +problem because we are not going to give semantics to wrong combinations, +so those programs will get stuck; moreover, our type inferencer will reject +those programs anyway. Function application is just concatenation of +expressions, without worrying about type correctness. Again, the type +system will reject type-incorrect programs.

      +
      k
      syntax Exp ::= "fun" Cases + | Exp Exp [strict, left, klabel(apply)] +// NOTE: We would like eventually to also have Exp "(" Exps ") + syntax Case ::= Exp "->" Exp + syntax Cases ::= List{Case, "|"} +
      +

      The let and letrec binders have the usual syntax +and functional meaning. We allow multiple and-separated bindings. +Like for the function cases above, we allow a more generous syntax for +the left-hand sides of bindings, noting that the semantics will get stuck +on incorrect bindings and that the type system will reject those programs.

      +
      k
      syntax Exp ::= "let" Bindings "in" Exp + | "letrec" Bindings "in" Exp [prefer] +// The "prefer" attribute for letrec currently needed due to tool bug, +// to make sure that "letrec" is not parsed as "let rec". + syntax Binding ::= Exp "=" Exp + syntax Bindings ::= List{Binding,"and"} +
      +

      References are first class values in FUN. The construct ref +takes an expression, evaluates it, and then it stores the resulting value +at a fresh location in the store and returns that reference. Syntactically, +ref is just an expression constant. The construct & +takes a name as argument and evaluates to a reference, namely the store +reference where the variable passed as argument stores its value; this +construct is a bit controversial and is further discussed in the +environment-based semantics of the FUN language, where we desugar +ref to it. The construct @ takes a reference +and evaluates to the value stored there. The construct := takes +two expressions, the first expected to evaluate to a reference; the value +of its second argument will be stored at the location to which the first +points (the old value is thus lost). Finally, since expression evaluation +now has side effects, it makes sense to also add a sequential composition +construct, which is sequentially strict. This evaluates to the value of +its second argument; the value of the first argument is lost (which has +therefore been evaluated only for its side effects.

      +
      k
      syntax Exp ::= "ref" [macro] + | "&" Name + | "@" Exp [strict] + | Exp ":=" Exp [strict] + | Exp ";" Exp [strict(1), right] +
      +

      Call-with-current-continuation, named callcc in FUN, is a +powerful control operator that originated in the Scheme programming +language, but it now exists in many other functional languages. It works +by evaluating its argument, expected to evaluate to a function, and by +passing the current continuation, or evaluation context (or computation, +in K terminology), as a special value to it. When/If this special value +is invoked, the current context is discarded and replaced with the one +held by the special value and the computation continues from there. +It is like taking a snapshot of the execution context at some moment +in time and then, when desired, being able to get back in time to that +point. If you like games, it is like saving the game now (so you can +work on your homework!) and then continuing the game tomorrow or whenever +you wish. To issustrate the strength of callcc, we also +allow exceptions in FUN by means of a conventional try-catch +construct, which will desugar to callcc. We also need to +introduce the special expression contant throw, but we need to +use it as a function argument name in the desugaring macro, so we define +it as a name instead of as an expression constant:

      +
      k
      syntax Exp ::= "try" Exp "catch" "(" Name ")" Exp [macro] + syntax Val ::= "callcc" + syntax Name ::= "throw" [token] +
      +

      Finally, FUN also allows polymorphic datatype declarations. These +will be useful when we define the type system later on.

      +
      k
      syntax Exp ::= "datatype" Type "=" TypeCases Exp [macro] +// NOTE: In a future version of K, we want the datatype declaration +// to be a construct by itself, but that is not possible currently +// because K's parser wronly identifies the __ operation allowing +// a declaration to appear in front of an expression with the function +// application construct, giving ambiguous parsing errors. +
      +

      We next need to define the syntax of types and type cases that appear +in datatype declarations.

      +

      Like in many functional languages, type parameters/variables in +user-defined types are quoted identifiers.

      +
      k
      syntax TypeVar [token] + syntax TypeVars ::= List{TypeVar,","} [klabel(types)] +
      +

      Types can be basic types, function types, or user-defined +parametric types. In the dynamic semantics we are going to simply ignore +all the type declations, so here the syntax of types below is only useful +for generating the desired parser. To avoid syntactic ambiguities with +the arrow construct for function cases, we use the symbol --> as +a constructor for function types:

      +
      k
      syntax TypeName [token] + syntax Type ::= "int" | "bool" | "string" + | Type "-->" Type [right] + | "(" Type ")" [bracket] + | TypeVar + | TypeName [klabel(TypeName), avoid] + | Type TypeName [klabel(Type-TypeName), symbol, macro] + | "(" Types ")" TypeName [prefer] + syntax Types ::= List{Type,","} [klabel(types)] + syntax Types ::= TypeVars + + syntax TypeCase ::= ConstructorName + | ConstructorName "(" Types ")" + syntax TypeCases ::= List{TypeCase,"|"} [klabel(_|TypeCase_)] +
      +

      Additional Priorities

      +
      k
      syntax priorities @__FUN-UNTYPED-COMMON + > apply + > arith + > _:=__FUN-UNTYPED-COMMON + > let_in__FUN-UNTYPED-COMMON + letrec_in__FUN-UNTYPED-COMMON + if_then_else__FUN-UNTYPED-COMMON + > _;__FUN-UNTYPED-COMMON + > fun__FUN-UNTYPED-COMMON + > datatype_=___FUN-UNTYPED-COMMON +endmodule + +module FUN-UNTYPED-MACROS + imports FUN-UNTYPED-COMMON +
      +

      Desugaring macros

      +

      We desugar the list non-constructor operations to functions matching +over list patterns. In order to do that we need some new variables; for +those, we follow the same convention like in the K tutorial, where we +added them as new identifier constructs starting with the character $, +so we can easily recognize them when we debug or trace the semantics.

      +
      k
      syntax Name ::= "$h" [token] | "$t" [token] + rule head => fun [$h|$t] -> $h + rule tail => fun [$h|$t] -> $t + rule null? => fun [.Exps] -> true | [$h|$t] -> false +
      +

      Multiple-head list patterns desugar into successive one-head patterns:

      +
      k
      rule [E1,E2,Es:Exps|T] => [E1|[E2,Es|T]] [anywhere] +
      +

      Uncurrying of multiple arguments in functions and binders:

      +
      k
      rule P1 P2 -> E => P1 -> fun P2 -> E [anywhere] + rule F P = E => F = fun P -> E [anywhere] +
      +

      We desugar the try-catch construct into callcc:

      +
      k
      syntax Name ::= "$k" [token] | "$v" [token] + rule try E catch(X) E' + => callcc (fun $k -> (fun throw -> E)(fun X -> $k E')) +
      +

      For uniformity, we reduce all types to their general form:

      +
      k
      rule `Type-TypeName`(T:Type, Tn:TypeName) => (T) Tn +
      +

      The dynamic semantics ignores all the type declarations:

      +
      k
      rule datatype _T = _TCs E => E + +endmodule + + +module FUN-UNTYPED-SYNTAX + imports FUN-UNTYPED-COMMON + imports BUILTIN-ID-TOKENS + + syntax Name ::= r"[a-z][_a-zA-Z0-9]*" [token, prec(2)] + | #LowerId [token] + syntax ConstructorName ::= #UpperId [token] + syntax TypeVar ::= r"['][a-z][_a-zA-Z0-9]*" [token] + syntax TypeName ::= Name [token] +endmodule +
      +

      Semantics

      +

      The semantics below is environment-based. A substitution-based +definition of FUN is also available, but that drops the & +construct as explained above.

      +
      k
      module FUN-UNTYPED + imports FUN-UNTYPED-COMMON + imports FUN-UNTYPED-MACROS + imports DOMAINS + //imports PATTERN-MATCHING +
      +

      Configuration

      +

      The k, env, and store cells are standard +(see, for example, the definition of LAMBDA++ or IMP++ in the first +part of the K tutorial).

      +
      k
      configuration <T color="yellow"> + <k color="green"> $PGM:Exp </k> + <env color="violet"> .Map </env> + <store color="white"> .Map </store> + </T> +
      +

      Values and results

      +

      We only define integers, Booleans and strings as values here, but will +add more values later.

      +
      k
      syntax Val ::= Int | Bool | String + syntax Vals ::= Bottoms + syntax KResult ::= Val +
      +

      Lookup

      +
      k
      rule <k> X:Name => V ...</k> + <env>... X |-> L ...</env> + <store>... L |-> V ...</store> +
      +

      Arithmetic expressions

      +
      k
      rule I1 * I2 => I1 *Int I2 + rule I1 / I2 => I1 /Int I2 when I2 =/=K 0 + rule I1 % I2 => I1 %Int I2 when I2 =/=K 0 + rule I1 + I2 => I1 +Int I2 + rule S1 ^ S2 => S1 +String S2 + rule I1 - I2 => I1 -Int I2 + rule - I => 0 -Int I + rule I1 < I2 => I1 <Int I2 + rule I1 <= I2 => I1 <=Int I2 + rule I1 > I2 => I1 >Int I2 + rule I1 >= I2 => I1 >=Int I2 + rule V1:Val == V2:Val => V1 ==K V2 + rule V1:Val != V2:Val => V1 =/=K V2 + rule ! T => notBool(T) + rule true && E => E + rule false && _ => false + rule true || _ => true + rule false || E => E +
      +

      Conditional

      +
      k
      rule if true then E else _ => E + rule if false then _ else E => E +
      +

      Lists

      +

      We have already declared the syntactic list of expressions strict, so +we can assume that all the elements that appear in a FUN list are +evaluated. The only thing left to do is to state that a list of +values is a value itself, that is, that the list square-bracket +construct is indeed a constructor, and to give the semantics of +cons. Since cons is a builtin function and is +expected to take two arguments, we have to also state that +cons itself is a value (specifically, a function/closure +value, but we do not need that level of detail here), and also that +cons applied to a value is a value (specifically, it would be +a function/closure value that expects the second, list argument):

      +
      k
      rule cons V:Val [Vs:Vals] => [V,Vs] +
      +

      Data Constructors

      +

      Constructors take values as arguments and produce other values:

      +
      k
      syntax Val ::= ConstructorName +
      +

      Functions and Closures

      +

      Like in the environment-based semantics of LAMBDA++ in the first part +of the K tutorial, functions evaluate to closures. A closure includes +the current environment besides the function contents; the environment +will be used at execution time to lookup all the variables that appear +free in the function body (we want static scoping in FUN).

      +
      k
      syntax Val ::= closure(Map,Cases) + rule <k> fun Cases => closure(Rho,Cases) ...</k> <env> Rho </env> +
      +

      Note: The reader may want to get familiar with +how the pre-defined pattern matching works before proceeding. +The best way to do that is to consult +k/include/modules/pattern-matching.k.

      + +

      We distinguish two cases when the closure is applied. +If the first pattern matches, then we pick the first case: switch to +the closed environment, get the matching map and bind all its +variables, and finally evaluate the function body of the first case, +making sure that the environment is properly recovered afterwards. +If the first pattern does not match, then we drop it and thus move on +to the next one.

      +
      k
      rule (. => getMatching(P, V)) ~> closure(_, P->_ | _) V:Val + rule <k> matchResult(M:Map) ~> closure(Rho, _->E | _) _ + => bindMap(M) ~> E ~> setEnv(Rho') ...</k> + <env> Rho' => Rho </env> + rule (matchFailure => .) ~> closure(_, (_->_ | Cs:Cases => Cs)) _ +// rule <k> closure(Rho, P->E | _) V:Val +// => bindMap(getMatching(P,V)) ~> E ~> setEnv(Rho') ...</k> +// <env> Rho' => Rho </env> when isMatching(P,V) +// rule closure(_, (P->_ | Cs:Cases => Cs)) V:Val when notBool isMatching(P,V) +
      +

      Let and Letrec

      +

      To highlight the similarities and differences between let and +letrec, we prefer to give them direct semantics instead of +to desugar them like in LAMBDA. See the formal definitions of +bindTo, bind, and assignTo at the end of +this module. Informally, bindTo(Xs, Es) first +evaluates the expressions Es in Exps in the current +environment (i.e., it is strict in its second argument), then it binds +the variables in Xs in Names to new locations and adds +those bindings to the environment, and finally writes the values +previously obtained after evaluating the expressions Es to those +new locations; bind(Xs) does only the bindings of +Xs to new locations and adds those bindings to the environment; +and assignTo(Xs,Es) evaluates the expressions +Es in the current environment and then it writes the resulting +values to the locations to which the variables Xs are already +bound to in the environment.

      +

      Therefore, let Xs = Es in E first +evaluates Es in the current environment, then adds new +bindings for Xs to fresh locations in the environment, then +writes the values of Es to those locations, and finally +evaluates E in the new environment, making sure that the +environment is properly recovered after the evaluation of E. +On the other hand, letrec does the same things but in a +different order: it first adds new bindings for Xs to fresh +locations in the environment, then it evaluates Es in the new +environment, then it writes the resulting values to their +corresponding locations, and finally it evaluates E and +recovers the environment. The crucial difference is that the +expressions Es now see the locations of the variables Xs +in the environment, so if they are functions, which is typically the +case with letrec, their closures will encapsulate in their +environments the bindings of all the bound variables, including +themselves (thus, we may have a closure value stored at location +L, whose environment contains a binding of the form +F ↦ L; this way, the closure can invoke +itself).

      +
      k
      rule <k> let Bs in E + => bindTo(names(Bs),exps(Bs)) ~> E ~> setEnv(Rho) ...</k> + <env> Rho </env> + + rule <k> letrec Bs in E + => bind(names(Bs))~>assignTo(names(Bs),exps(Bs))~>E~>setEnv(Rho)...</k> + <env> Rho </env> +
      +

      Recall that our syntax allows let and letrec to +take any expression in place of its binding. This allows us to use +the already existing function application construct to bind names to +functions, such as, e.g., let x y = y in .... +The desugaring macro in the syntax module uncurries such declarations, +and then the semantic rules above only work when the remaining +bindings are identifiers, so the semantics will get stuck on programs +that misuse the let and letrec binders.

      +

      References

      +

      The semantics of references is self-explanatory, except maybe for the +desugaring rule of ref, which is further discussed. Note +that &X grabs the location of X from the environment. +Sequential composition, which is needed only to accumulate the +side effects due to assignments, was strict in the first argument. +Once evaluated, its first argument is simply discarded:

      +
      k
      syntax Name ::= "$x" [token] + rule ref => fun $x -> & $x + rule <k> & X => L ...</k> <env>... X |-> L ...</env> + rule <k> @ L:Int => V:Val ...</k> <store>... L |-> V ...</store> + rule <k> L:Int := V:Val => V ...</k> <store>... L |-> (_=>V) ...</store> + rule _V:Val; E => E +
      +

      The desugaring rule of ref (first rule above) works +because & takes a variable and returns its location (like in C). +Note that some ``pure'' functional programming researchers strongly dislike +the & construct, but favor ref. We refrain from having +a personal opinion on this issue here, but support & in the +environment-based definition of FUN because it is, technically speaking, +more powerful than ref. From a language design perspective, it +would be equally easy to drop & and instead give a direct +semantics to ref. In fact, this is precisely what we do in the +substitution-based definition of FUN, because there appears to be no way +to give a substitution-based definition to the & construct.

      +

      Callcc

      +

      As we know it from the LAMBDA++ tutorial, call-with-current-continuation +is quite easy to define in K. We first need to define a special +value wrapping an execution context, that is, an environment saying +where the variables should be looked up, and a computation structure +saying what is left to execute (in a substitution-based definition, +this special value would be even simpler, as it would only need to +wrap the computation structure---see, for example, the +substitution-based semantics of LAMBDA++ in the the first part of the +K tutorial, or the substitution-based definition of FUN). Then +callcc creates such a value containing the current +environment and the current remaining computation, and passes it to +its argument function. When/If invoked, the special value replaces +the current execution context with its own and continues the execution +normally.

      +
      k
      syntax Val ::= cc(Map,K) + rule <k> (callcc V:Val => V cc(Rho,K)) ~> K </k> <env> Rho </env> + rule <k> cc(Rho,K) V:Val ~> _ => V ~> K </k> <env> _ => Rho </env> +
      +

      Auxiliary operations

      +

      Environment recovery

      +

      The environment recovery operation is the same as for the LAMBDA++ +language in the K tutorial and many other languages provided with the +K distribution. The first ``anywhere'' rule below shows an elegant +way to achieve the benefits of tail recursion in K.

      +
      k
      syntax KItem ::= setEnv(Map) // TODO: get rid of env + //rule (setEnv(_) => .) ~> setEnv(_) [anywhere] + rule <k> _:Val ~> (setEnv(Rho) => .) ...</k> <env> _ => Rho </env> +
      +

      bindTo, bind and assignTo

      +

      The meaning of these operations has already been explained when we +discussed the let and letrec language constructs +above.

      +
      k
      syntax KItem ::= bindTo(Names,Exps) [strict(2)] + | bindMap(Map) + | bind(Names) + + rule (. => getMatchingAux(Xs,Vs)) ~> bindTo(Xs:Names,Vs:Vals) + rule matchResult(M:Map) ~> bindTo(_:Names, _:Vals) => bindMap(M) + + rule bindMap(.Map) => . + rule <k> bindMap((X:Name |-> V:Val => .Map) _:Map) ...</k> + <env> Rho => Rho[X <- !L:Int] </env> + <store>... .Map => !L |-> V ...</store> + + rule bind(.Names) => . + rule <k> bind(X:Name,Xs => Xs) ...</k> + <env> Rho => Rho[X <- !_L:Int] </env> + + syntax KItem ::= assignTo(Names,Exps) [strict(2)] + + rule <k> assignTo(.Names,.Vals) => . ...</k> + rule <k> assignTo((X:Name,Xs => Xs),(V:Val,Vs:Vals => Vs)) ...</k> + <env>... X |-> L ...</env> + <store>... .Map => L |-> V ...</store> +
      +

      Getters

      +

      The following auxiliary operations extract the list of identifiers +and of expressions in a binding, respectively.

      +
      k
      syntax Names ::= names(Bindings) [function] + rule names(.Bindings) => .Names + rule names(X:Name=_ and Bs) => (X,names(Bs))::Names + + syntax Exps ::= exps(Bindings) [function] + rule exps(.Bindings) => .Exps + rule exps(_:Name=E and Bs) => E,exps(Bs) + + /* Extra kore stuff */ + syntax KResult ::= Vals + syntax Exps ::= Names + syntax Names ::= Bottoms + + /* Matching */ + syntax MatchResult ::= getMatching(Exp, Val) [function] + | getMatchingAux(Exps, Vals) [function] + | mergeMatching(MatchResult, MatchResult) [function] + | matchResult(Map) + | "matchFailure" + + rule getMatching(C:ConstructorName(Es:Exps), C(Vs:Vals)) => getMatchingAux(Es, Vs) + rule getMatching([Es:Exps], [Vs:Vals]) => getMatchingAux(Es, Vs) + rule getMatching(C:ConstructorName, C) => matchResult(.Map) + rule getMatching(B:Bool, B) => matchResult(.Map) + rule getMatching(I:Int, I) => matchResult(.Map) + rule getMatching(S:String, S) => matchResult(.Map) + rule getMatching(N:Name, V:Val) => matchResult(N |-> V) + rule getMatching(_, _) => matchFailure [owise] + + rule getMatchingAux((E:Exp, Es:Exps), (V:Val, Vs:Vals)) => mergeMatching(getMatching(E, V), getMatchingAux(Es, Vs)) + rule getMatchingAux(.Exps, .Vals) => matchResult(.Map) + rule getMatchingAux(_, _) => matchFailure [owise] + + rule mergeMatching(matchResult(M1:Map), matchResult(M2:Map)) => matchResult(M1 M2) + requires intersectSet(keys(M1), keys(M2)) ==K .Set + //rule mergeMatching(_, _) => matchFailure [owsie] + rule mergeMatching(matchResult(_:Map), matchFailure) => matchFailure + rule mergeMatching(matchFailure, matchResult(_:Map)) => matchFailure + rule mergeMatching(matchFailure, matchFailure) => matchFailure +
      +

      Besides the generic decomposition rules for patterns and values, +we also want to allow [head|tail] matching for lists, so we add +the following custom pattern decomposition rule:

      +
      k
      rule getMatching([H:Exp | T:Exp], [V:Val, Vs:Vals]) + => getMatchingAux((H, T), (V, [Vs])) +endmodule +
      +

      Go to Lesson 2, FUN untyped, Substitution-Based.

      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/2_substitution/fun-untyped/index.html b/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/2_substitution/fun-untyped/index.html new file mode 100644 index 00000000000..5e236de1ea1 --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/2_substitution/fun-untyped/index.html @@ -0,0 +1,720 @@ + + + + + + + + + + + + + + +FUN — Untyped — Substitution | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      FUN — Untyped — Substitution

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      +

      This is the substitution-based definition of FUN. For additional +explanations regarding the semantics of the various FUN constructs, +the reader should consult the emvironment-based definition of FUN.

      +

      Syntax

      +
      k
      require "substitution.md" +//require "modules/pattern-matching.k" + +module FUN-UNTYPED-COMMON + imports DOMAINS-SYNTAX +
      +

      The Syntactic Constructs

      +
      k
      syntax Name + syntax Names ::= List{Name,","} + + syntax Exp ::= Int | Bool | String | Name + | "(" Exp ")" [bracket] + syntax Exps ::= List{Exp,","} [strict] + syntax Val + syntax Vals ::= List{Val,","} + + syntax Exp ::= left: + Exp "*" Exp [strict, arith] + | Exp "/" Exp [strict, arith] + | Exp "%" Exp [strict, arith] + > left: + Exp "+" Exp [strict, left, arith] + | Exp "^" Exp [strict, left, arith] + | Exp "-" Exp [strict, prefer, arith] + | "-" Exp [strict, arith] + > non-assoc: + Exp "<" Exp [strict, arith] + | Exp "<=" Exp [strict, arith] + | Exp ">" Exp [strict, arith] + | Exp ">=" Exp [strict, arith] + | Exp "==" Exp [strict, arith] + | Exp "!=" Exp [strict, arith] + > "!" Exp [strict, arith] + > Exp "&&" Exp [strict(1), left, arith] + > Exp "||" Exp [strict(1), left, arith] + + syntax Exp ::= "if" Exp "then" Exp "else" Exp [strict(1)] + + syntax Exp ::= "[" Exps "]" [strict] + | "cons" | "head" | "tail" | "null?" + | "[" Exps "|" Exp "]" + syntax Val ::= "[" Vals "]" + + syntax ConstructorName + syntax Exp ::= ConstructorName + | ConstructorName "(" Exps ")" [prefer, strict(2)] + syntax Val ::= ConstructorName "(" Vals ")" + + syntax Exp ::= "fun" Cases + | Exp Exp [strict, left] + syntax Case ::= Exp "->" Exp [binder] +// NOTE: The binder attribute above is the only difference between this +// module and the syntax module of environment-based FUN. We need +// to fix a bug in order to import modules and override the attributes +// of operations. + syntax Cases ::= List{Case, "|"} + + syntax Exp ::= "let" Bindings "in" Exp + | "letrec" Bindings "in" Exp [prefer] + syntax Binding ::= Exp "=" Exp + syntax Bindings ::= List{Binding,"and"} + + syntax Exp ::= "ref" + | "&" Name + | "@" Exp [strict] + | Exp ":=" Exp [strict] + | Exp ";" Exp [strict(1), right] + + syntax Exp ::= "callcc" + | "try" Exp "catch" "(" Name ")" Exp + syntax Name ::= "throw" [token] + + syntax Exp ::= "datatype" Type "=" TypeCases Exp + + syntax TypeVar + syntax TypeVars ::= List{TypeVar,","} + + syntax TypeName + syntax Type ::= "int" | "bool" | "string" + | Type "-->" Type [right] + | "(" Type ")" [bracket] + | TypeVar + | TypeName [klabel(TypeName), avoid] + | Type TypeName [klabel(Type-TypeName), onlyLabel] + | "(" Types ")" TypeName [prefer] + syntax Types ::= List{Type,","} + syntax Types ::= TypeVars + + syntax TypeCase ::= ConstructorName + | ConstructorName "(" Types ")" + syntax TypeCases ::= List{TypeCase,"|"} [klabel(_|TypeCase_)] +
      +

      Additional Priorities

      +
      k
      syntax priorities @__FUN-UNTYPED-COMMON + > ___FUN-UNTYPED-COMMON + > arith + > _:=__FUN-UNTYPED-COMMON + > let_in__FUN-UNTYPED-COMMON + letrec_in__FUN-UNTYPED-COMMON + if_then_else__FUN-UNTYPED-COMMON + > _;__FUN-UNTYPED-COMMON + > fun__FUN-UNTYPED-COMMON + > datatype_=___FUN-UNTYPED-COMMON +endmodule + +module FUN-UNTYPED-MACROS + imports FUN-UNTYPED-COMMON +
      +

      Desugaring macros

      +
      k
      rule P1 P2 -> E => P1 -> fun P2 -> E [macro-rec] + rule F P = E => F = fun P -> E [macro-rec] + + rule [E1,E2,Es:Exps|T] => [E1|[E2,Es|T]] [macro-rec] + +// rule 'TypeName(Tn:TypeName) => (.TypeVars) Tn [macro] + rule `Type-TypeName`(T:Type, Tn:TypeName) => (T) Tn [macro] + + syntax Name ::= "$h" | "$t" + rule head => fun [$h|$t] -> $h [macro] + rule tail => fun [$h|$t] -> $t [macro] + rule null? => fun [.Exps] -> true | [$h|$t] -> false [macro] + + syntax Name ::= "$k" | "$v" + rule try E catch(X) E' + => callcc (fun $k -> (fun throw -> E)(fun X -> $k E')) [macro] + + rule datatype _T = _TCs E => E [macro] +
      +

      mu needed for letrec, but we put it here so we can also write +programs with mu in them, which is particularly useful for testing.

      +
      k
      syntax Exp ::= "mu" Case + +endmodule + + +module FUN-UNTYPED-SYNTAX + imports FUN-UNTYPED-COMMON + imports BUILTIN-ID-TOKENS + + syntax Name ::= r"[a-z][_a-zA-Z0-9]*" [token, prec(2)] + | #LowerId [token] + syntax ConstructorName ::= #UpperId [token] + syntax TypeVar ::= r"['][a-z][_a-zA-Z0-9]*" [token] + syntax TypeName ::= Name [token] +endmodule +
      +

      Semantics

      +
      k
      module FUN-UNTYPED + imports FUN-UNTYPED-COMMON + imports FUN-UNTYPED-MACROS + imports DOMAINS + imports SUBSTITUTION + //imports PATTERN-MATCHING + + configuration <T color="yellow"> + <k color="green"> $PGM:Exp </k> + <store color="white"> .Map </store> + </T> +
      +

      Both Name and functions are values now:

      +
      k
      syntax Val ::= Int | Bool | String | Name + syntax Exp ::= Val + syntax Exps ::= Vals + syntax KResult ::= Val + syntax Exps ::= Names + syntax Vals ::= Names + + rule I1 * I2 => I1 *Int I2 + rule I1 / I2 => I1 /Int I2 when I2 =/=K 0 + rule I1 % I2 => I1 %Int I2 when I2 =/=K 0 + rule I1 + I2 => I1 +Int I2 + rule S1 ^ S2 => S1 +String S2 + rule I1 - I2 => I1 -Int I2 + rule - I => 0 -Int I + rule I1 < I2 => I1 <Int I2 + rule I1 <= I2 => I1 <=Int I2 + rule I1 > I2 => I1 >Int I2 + rule I1 >= I2 => I1 >=Int I2 + rule V1:Val == V2:Val => V1 ==K V2 + rule V1:Val != V2:Val => V1 =/=K V2 + rule ! T => notBool(T) + rule true && E => E + rule false && _ => false + rule true || _ => true + rule false || E => E + + rule if true then E else _ => E + rule if false then _ else E => E + + rule isVal(cons) => true + rule isVal(cons _V:Val) => true + rule cons V:Val [Vs:Vals] => [V,Vs] + + syntax Val ::= ConstructorName + + rule isVal(fun _) => true + syntax KVar ::= Name + syntax Name ::= freshName(Int) [freshGenerator, function] + rule freshName(I:Int) => {#parseToken("Name", "#" +String Int2String(I))}:>Name + + rule (. => getMatching(P, V)) ~> (fun P->_ | _) V:Val + rule matchResult(M:Map) ~> (fun _->E | _) _ => E[M] + rule (matchFailure => .) ~> (fun (_->_ | Cs:Cases => Cs)) _ +// rule (fun P->E | _) V:Val => E[getMatching(P,V)] when isMatching(P,V) +// rule (fun (P->_ | Cs:Cases => Cs)) V:Val when notBool isMatching(P,V) +
      +

      We can reduce multiple bindings to one list binding, and then +apply the usual desugaring of let into function application. +It is important that the rule below is a macro, so let is eliminated +immediately, otherwise it may interfere in ugly ways with substitution.

      +
      k
      rule let Bs in E => ((fun [names(Bs)] -> E) [exps(Bs)]) [macro] +
      +

      We only give the semantics of one-binding letrec. +Multipe bindings are left as an exercise.

      +
      k
      // changed because of parsing error + //rule mu X:Name -> E => E[(mu X -> E) / X] + rule mu X:Name -> E => E[X |-> (mu X -> E)] + rule letrec F:Name = E in E' => let F = (mu F -> E) in E' [macro] +
      +

      We cannot have & anymore, but we can give direct +semantics to ref. We also have to declare ref to +be a value, so that we will never heat on it.

      +
      k
      // rule <k> & X => L ...</k> <env>... X |-> L </env> + rule isVal(ref) => true + rule <k> ref V:Val => !L:Int ...</k> <store>... .Map => !L |-> V ...</store> + rule <k> @ L:Int => V:Val ...</k> <store>... L |-> V ...</store> + rule <k> L:Int := V:Val => V ...</k> <store>... L |-> (_=>V) ...</store> + rule _V:Val; E => E + + syntax Val ::= cc(K) + rule isVal(callcc) => true + rule <k> (callcc V:Val => V cc(K)) ~> K </k> + rule <k> cc(K) V:Val ~> _ => V ~> K </k> +
      +

      Auxiliary getters

      +
      k
      syntax Names ::= names(Bindings) [function] + rule names(.Bindings) => .Names + rule names(X:Name=_ and Bs) => X,names(Bs) + + syntax Exps ::= exps(Bindings) [function] + rule exps(.Bindings) => .Exps + rule exps(_:Name=E and Bs) => E,exps(Bs) + + /* Extra kore stuff */ + syntax KResult ::= Vals + syntax Exps ::= Names + + /* Matching */ + syntax MatchResult ::= getMatching(Exp, Val) [function] + | getMatchingAux(Exps, Vals) [function] + | mergeMatching(MatchResult, MatchResult) [function] + | matchResult(Map) + | "matchFailure" + + rule getMatching(C:ConstructorName(Es:Exps), C(Vs:Vals)) => getMatchingAux(Es, Vs) + rule getMatching([Es:Exps], [Vs:Vals]) => getMatchingAux(Es, Vs) + rule getMatching(C:ConstructorName, C) => matchResult(.Map) + rule getMatching(B:Bool, B) => matchResult(.Map) + rule getMatching(I:Int, I) => matchResult(.Map) + rule getMatching(S:String, S) => matchResult(.Map) + rule getMatching(N:Name, V:Val) => matchResult(N |-> V) + rule getMatching(_, _) => matchFailure [owise] + + rule getMatchingAux((E:Exp, Es:Exps), (V:Val, Vs:Vals)) => mergeMatching(getMatching(E, V), getMatchingAux(Es, Vs)) + rule getMatchingAux(.Exps, .Vals) => matchResult(.Map) + rule getMatchingAux(_, _) => matchFailure [owise] + + rule mergeMatching(matchResult(M1:Map), matchResult(M2:Map)) => matchResult(M1 M2) + requires intersectSet(keys(M1), keys(M2)) ==K .Set + //rule mergeMatching(_, _) => matchFailure [owsie] + rule mergeMatching(matchResult(_:Map), matchFailure) => matchFailure + rule mergeMatching(matchFailure, matchResult(_:Map)) => matchFailure + rule mergeMatching(matchFailure, matchFailure) => matchFailure +
      +

      Besides the generic decomposition rules for patterns and values, +we also want to allow [head|tail] matching for lists, so we add +the following custom pattern decomposition rule:

      +
      k
      rule getMatching([H:Exp | T:Exp], [V:Val, Vs:Vals]) + => getMatchingAux((H, T), (V, [Vs])) +endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/4_logik/basic/logik/index.html b/k-distribution/pl-tutorial/2_languages/4_logik/basic/logik/index.html new file mode 100644 index 00000000000..e75067806ba --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/4_logik/basic/logik/index.html @@ -0,0 +1,710 @@ + + + + + + + + + + + + + + +LOGIK | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      LOGIK

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Author: Traian Florin Șerbănuță (traian.serbanuta@unibuc.ro)
      +Organization: University of Bucharest

      +

      Abstract

      +

      This is the K semantic definition of LOGIK, a trivial language +capturing the essence of the logic programming paradigm. In this +definition, we explicitly focus on simplicity and mathematical +clarity, not on advanced logic programming features or performance. +Those are covered in the LOGIK++ extension under examples/logik++.

      +

      Specifically, a LOGIK program consists of a sequence of Horn clauses +of the form

      +
      P :- P1, P2, ..., Pn .
      +
      +

      followed by a query of the form

      +
      ?- Q1, Q2, ..., Qm .
      +
      +

      where P, P1, P2, ..., Pn, Q1, Q2, +..., Qm are literals. The +symbol :- is read "if". A literal has the form +p(T1,T2,...,Tk), where p is a predicate symbol +and where T1,T2,...,Tk are terms. Terms are built as +usual, with operation symbols and variables. A common +convention in logic programming languages, also adopted here, is that +variables are capitalized and operation symbols are not. Operations +with zero arguments are called constants and are written without +parentheses, that is, c instead of c(). Horn +clauses without conditions, called facts, are written +without :-, that is, P. instead of P :- ..

      +

      For example, the LOGIK program below gives a few facts about a +parent predicate, then several clauses defining some useful +predicates including an ancestor predicate, and finally a +query asking for those who both have ancestors and are ancestors +themselves in the parent relation:

      +
      parent(david,john).
      +parent(jim,david).
      +parent(steve,jim).
      +parent(nathan,steve).
      +
      +grandparent(A,B):-
      +  parent(A,X),
      +  parent(X,B).
      +
      +ancestor(A,B):-
      +  parent(A,X),
      +  parents(X,B).
      +
      +parents(X,X).
      +parents(A,B):-
      +  ancestor(A,B).
      +
      +both(X) :- ancestor(A,X), ancestor(X,B).
      +
      +?- both(X).
      +
      +

      Above, we only have constant operation symbols, so these and variables +are the only terms that can be used in predicates. As expected, the +LOGIK program above will give us three solutions for X: +david, steve, and jim. If we inline the +both(X) predicate in the query, that is, if we replace the +query with ?- ancestor(A,X), ancestor(X,B). then we get +10 solutions, one for for each triple A, X, and +B satisfying both predicates ancestor(A,X) and +ancestor(X,B).

      +

      As another example, the program below defines an append +predicate followed by a simple goal:

      +
      append(nil,L,L).
      +append(cons(H,T),L,cons(H,Z)) :- append(T,L,Z).
      +
      +?- append(cons(a,nil), cons(b,nil), V).
      +
      +

      Besides the predicate symbol append, the program above also +includes a constant symbol nil and a binary operation symbol +cons. Additionally, the query also includes two more +constants, a and b. The capitalized identifiers are +all variables. As expected, the LOGIK program above yields only one +solution, namely V = cons(a,cons(b,nil)). On the other hand, +if we change the query to:

      +
      ?- append(L1, cons(a,L2), cons(a,cons(b,cons(a,nil)))).
      +
      +

      then LOGIK yields two solutions: one where L1 is +cons(a,cons(b,nil)) and L2 is nil, +and another where L1 is nil and L2 is +cons(a,cons(b,nil)).

      +

      The programs above all generated ground solutions, that is, +solutions where the query variables are mapped to ground terms (i.e., +terms without variables). Let us now consider the following query:

      +
      ?- append(cons(a,nil), Y, Z).
      +
      +

      There are obviously infinitely many ground solutions for the query +above, e.g.,
      +Y = nil and Z = cons(a,nil),
      +Y = cons(a,nil) and Z = cons(a,cons(a,nil)),
      +Y = cons(b,nil) and Z = cons(a,cons(b,nil)),
      +Y = cons(c,cons(b,nil)) and Z = cons(a,cons(c,cons(b,nil))),
      +etc. However, all the ground solutions for the query above can be +elegantly characterized by the property that Z is bound to a list +starting with a and followed by the list that Y is +bound to. This property can in fact be described as a symbolic solution +to the query: Z = cons(a,Y) or, equivalently, +Y = Symb and Z = cons(a,Symb). It is possible to +define a ``more general than'' relation on such symbolic solutions, +in the sense that the more particular solution can be obtained as a +specialization/substitution of the more general one, and then it can +be shown that the above is the most general solution to the +stated query. Logic programming languages, including our LOGIK, +attempt to always compute such most general solutions.

      +

      Logic programming languages are highly non-deterministic, in that +several Horn clauses may be used at the same time, each possibly +resulting in a different solution. Implementations of logic +programming languages consist of complex, optimized search and +indexing algorithms, which we are not concerned with here. Instead, +we here take advantage of K's builtin support for search. +Specifically, to find all the solutions of a LOGIK program, we have to +use krun with the option --search. However, note +that some programs have infinitely many solutions which cannot relate +to each other by the "more general" relation. For example, the query

      +
      ?- append(L1, cons(a,L2), L3) .
      +
      +

      To address such cases and terminate, logic programming languages allow +the user to choose how many solutions to be computed and displayed. +In LOGIK, we can use the --bound option of krun for +this purpose.

      +

      Finally, note that some queries have no solution. In some cases that +is easy to detect by exhaustive analysis, such as for the following +query:

      +
      ?- append(cons(a,L1), L2, cons(b,L3)).
      +
      +

      Logic programming languages, including LOGIK, terminate in such cases +and report a no solution answer. However, there are cases where +exhaustive analysis is not sufficient, such as for the query:

      +
      ?- append(cons(a,L), nil, L).
      +
      +

      In such cases, logic programming languages do not terminate. While +one may devise techniques to detect non-termination in some cases, +one cannot do it in general (same like for all Turing-complete +languages).

      +
      k
      require "unification.k" + +module LOGIK-COMMON + imports DOMAINS-SYNTAX +
      +

      Syntax

      +

      The syntax of LOGIK is straightforward: a program is a sequence of +Horn clauses followed by a query:

      +
      k
      syntax Literal + syntax Term ::= Literal | Literal "(" Terms ")" + syntax Terms ::= List{Term,","} + syntax Clause ::= Term ":-" Terms "." | Term "." + syntax Query ::= "?-" Terms "." + syntax Pgm ::= Query | Clause Pgm +endmodule + +module LOGIK-SYNTAX + imports LOGIK-COMMON + imports BUILTIN-ID-TOKENS +
      +

      Variables and literals are defined as tokens following the conventions +used in Prolog (variables start with _ or capital letter, while literals +start with lower case letters):

      +
      k
      syntax #KVariable ::= r"[A-Z_][A-Za-z0-9_]*" [token, prec(2)] + | #UpperId [token] + syntax Term ::= #KVariable [klabel(#SemanticCastToTerm)] + syntax Literal ::= r"[a-z][a-zA-Z0-9_]*" [token] + | #LowerId [token] +endmodule + +module LOGIK + imports LOGIK-COMMON + imports DOMAINS + imports UNIFICATION +
      +

      Unification is at the core of logic programming. Here we are +going to use the predefined unification procedure (the same one we +used in the type inferencers in Tutorial 5).

      +

      Configuration

      +

      The configuration stores each clause in its own cell for easy access, +and the most general unifier in a cell named mgu, same like +the type inferencers. The k cell holds the query and the +fresh cell holds a fresh clause instance to be attempted on +the next query item. To more easily read the solutions, we add a +second top-level cell, solution. Both top cells are +optional. Indeed, we start with the main top cell and, when a +solution is found, we move it into the solution cell and +discard the main cell.

      +
      k
      configuration <T color="yellow" multiplicity="?"> + <k color="green"> $PGM:Pgm </k> + <fresh color="orange"> .K </fresh> + <clauses color="red"> + <clause color="pink" multiplicity="*"> .K </clause> + </clauses> + <mgu> .K </mgu> + </T> + <solution multiplicity="?"> .K </solution> +
      +

      Pre- and post-processing

      +

      Before we launch the semantics, we first scan the given program and +place each clause in its own cell, and then place the query in the +k cell and initialize the mgu with the variables from the query.

      +

      Note that we put a fresh instance of the clause to avoid interference with +the query variables. By a "fresh instance" of a clause we mean one whose +variables are renamed with fresh names; we need that in order to avoid +undesired unification conflicts due to particular names chosen for +variables in the original program, as well as conflicts due to +subsequent uses of the same clause. It is safe to rename the +variables in a clause, because clauses are universally quantified in +their variables. This process of creating a fresh instance of a +clause is similar to how we created fresh instances of type schemas in +the higher-order type inferencer discussed in Tutorial 5. Indeed, we +can safely regard clauses as "clause schemas" comprising infinitely +many instances, one for each context.

      +
      k
      rule <k> C:Clause Pgm => Pgm </k> + (.Bag => <clause> #renameVariables(C) </clause>) + + rule <k> ?- Ls:Terms. => Ls ...</k> + <mgu> _ => #variablesMap(#variables(Ls)) </mgu> +
      +

      We also sequentialize the goals for easier processing:

      +
      k
      rule L:Term, Ls:Terms => L ~> Ls + rule .Terms => . +
      +

      When all the goals are solved, indicated by the empty k +cell, the calculated most general unifier (mgu) is in the mgu +cell. In that case, to ease reading of the final solution we move the +mgu in the solution cell and delete the rest of the +configuration:

      +
      k
      rule <T>... <k> . </k> <mgu> Theta </mgu> ...</T> + => <solution> Theta </solution> +
      +

      Since we are not interested in seeing the failed attempts to solve +the query, we collapse all the error configurations into an empty +configuration (recall that both top-level cells in the configuration +were declared optional). This way, if we see an empty configuration +when we search for all solutions, we know that some attempts failed +(but we do not know which ones).

      +
      k
      // this would be nice, but we need feedback from the external unifier +// for this. +// rule <T>... <mgu> _:MguError </mgu> ...</T> => . +
      +

      Semantics

      +

      Once all the infrastructure is in place, the actual semantics of LOGIK +is quite simple. All we have to do is to pick some (fresh instance of +a) clause, then unify its conclusion with the first query literal, and +then replace that literal with condition of the clause. The intuition +here is the following: to satisfy the first literal in the query, we +need to find some instance of some clause that matches it, and then to +similarly show that we can satisfy the conditions of that clause. +Mathematically, this is an instance of the proof principle called +resolution: if p ∨ q and ¬ p ∨ r hold, then so does +q ∨ r. We let it as an exercise to the reader to see how the two +relate (hint: assume the negation of the goal together with all the +clauses, and then derive false).

      +

      The following two rules are tightly connected and they together +perform the following core task: pick a fresh instance of a clause +which unifies with the first goal item, then add its conditions as new +goals.

      +

      Pick a clause and generate a fresh instance of it when the +fresh cell is empty:

      +
      k
      rule <fresh> . => #renameVariables(C) </fresh> <clause> C </clause> + <k> T:Term ...</k> + requires #unifiable(T,head(C)) + + syntax Term ::= head(Clause) [function] + rule head(L.) => L + rule head(L:-_.) => L +
      +

      If the goal is unifiable with the fresh clause's head, replace the goal +with the clause body, and empty the fresh cell (so that +another clause can be chosen using the rule above):

      +
      k
      rule <k> L:Term => . ...</k> + <fresh> L:Term . => . </fresh> + + rule <k> L:Term :KItem => Ls ...</k> + <fresh> L:Term :- Ls:Terms. => . </fresh> +
      +

      Note that there is no problem if a clause is chosen whose +conclusion literal does not unify with the first goal literal. +The search +option of krun will systematically try all clauses, so no +solution is missed. Of course, the above is not the most efficient +way to implement a logic programming language, but recall that our +objective here was to present a simple and mathematically clean +solution. We encourage the interested reader to consult the LOGIK++ +language definition for a more efficient definition of a richer logic +programming language.

      +
      k
      endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/2_languages/index.html b/k-distribution/pl-tutorial/2_languages/index.html new file mode 100644 index 00000000000..7394b709b63 --- /dev/null +++ b/k-distribution/pl-tutorial/2_languages/index.html @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + +K Languages | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      K Languages

      +

      Here we present several "real-world" language examples. These languages +demonstrate many of the features you would expect to find in a full-fledged +programming language.

      +
        +
      • SIMPLE: Imperative programming language with threads.
      • +
      • KOOL: SIMPLE extended with object-oriented features.
      • +
      • FUN: A functional language with algebraic data-types and pattern-matching.
      • +
      • LOGIK: A logical programming language based on clause unification.
      • +
      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/NOTES/index.html b/k-distribution/pl-tutorial/NOTES/index.html new file mode 100644 index 00000000000..47380b73360 --- /dev/null +++ b/k-distribution/pl-tutorial/NOTES/index.html @@ -0,0 +1,455 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Dear reader: these NOTES.md documents are mostly for myself (Grigore), to +keep track of changes and updates that need to be made as things evolve +in the K framework. You can safely ignore them. However, if you are curious +how things will change and decide to read them, I would be grateful if you +let me know whenever you find inconsistencies or things that I forgot to +mention here. Or even better, feel free to make pull requests with suggested +changes or updates.

      +

      Global changes that need to be made:

      +
        +
      • Replace when in rules with requires
      • +
      +

      Things to revise each time the structure of the tutorial changes:

      +
        +
      • 1_k\2_imp\lesson_1\README.md refers to Tutorial 1
      • +
      • 1_k\2_imp\lesson_4\README.md refers to Lesson 1
      • +
      • 1_k\2_imp\lesson_4\README.md refers to Tutorial 1, Lesson 2.5
      • +
      • 1_k\3_lambda++\lesson_1\README.md refers to Lesson 8, Tutorial 1
      • +
      • `1_k\3_lambda++\lesson_1\exercises refers to Lesson 1, tests/config.xml
      • +
      • 1_k\3_lambda++\lesson_2\README.md Lesson 1, Tutorial 1; Tutorial 6; Part 1, 2
      • +
      • 1_k\3_lambda++\lesson_3\README.md refers to Lesson 7, Tutorial 1
      • +
      • 1_k\3_lambda++\lesson_4\README.md refers to Lesson 1
      • +
      • 1_k\3_lambda++\lesson_5\README.md refers to Lesson 4, Lesson 8 and Lesson 7 of Tutorial 1
      • +
      • 1_k\3_lambda++\lesson_6\README.md refers to Parts 3 and 4 of the tutorial
      • +
      • 1_k\4_imp++\lesson_1\README.md refers to Lesson 4, Tutorial 2; also Tutorial 3 (at the end)
      • +
      • 1_k\4_imp++\lesson_2\README.md refers to Tutorial 3; Tutorial 2
      • +
      • 1_k\4_imp++\lesson_3\README.md refers to Lesson 1, Lesson 6
      • +
      • 1_k\4_imp++\lesson_4\README.md refers to Tutorial 6
      • +
      • 1_k\4_imp++\lesson_5\README.md refers to Lesson 4; Tutorial 3
      • +
      • 1_k\4_imp++\lesson_6\README.md refers to Lesson 3
      • +
      • 1_k\4_imp++\lesson_7\README.md refers to Lesson 1, 6
      • +
      • 1_k\5_types\lesson_1\README.md refers to Part 4; SIMPLE
      • +
      • 1_k\5_types\lesson_2\NOTES/README.md refer to Tutorial 1
      • +
      • 1_k\5_types\lesson_3\README.md refers to Part 1; Lesson 1,2
      • +
      • 1_k\5_types\lesson_4\README.md refers to Part 1, and to Lessons 2 and 3
      • +
      • 1_k\5_types\lesson_5\README.md refers to Lessons 4, 3, 2
      • +
      • 1_k\5_types\lesson_6\README.md refers to Lesson 5; SIMPLE, KOOL, IMP++
      • +
      • 1_k\5_types\lesson_7\README.md refers to Lesson 4, 8, 9
      • +
      • 1_k\5_types\lesson_8\README.md refers to Lessons 5, 7
      • +
      • 1_k\5_types\lesson_9\README.md refers to Lessons 8, 5, 7, 4
      • +
      • +
      +

      1_k\4_imp++\lesson_2\README.md states "generates a term of the form +symNat(n) of sort Nat", but the representation of symbolic numbers may +have changed

      +

      Describe/use/explain/justify the terminology "the <k/> cell" as opposed to "the k cell".

      +

      Would it be a good idea to make the README files self contained, that is, +to include the entire lang.k code in them, spread over the entire README, as things +are discussed? In case we decide not to, make sure that the code snippets mentioned +in the READMEs are in perfect correspondence to the code in the actual .k definitions. +Maybe add a tag before each code snippet saying what file and what lines in that +file comes from, then we can use a script to check them to be identical.

      +

      1_k\5_types\lesson_4\README.md refers to polymorphism, but some may say that is not precisely +polymorphism, because the types are not universally quantified. Explain that better.

      +

      Modify the entire tutorial to use . or, if needed, .::Map, etc., +instead of .Map, etc.. Check for each instance specifically, because +the surrounding text may also need to be modified.

      +

      We sometimes use "Kompile", or "kompile", as a verb instead of "Compile", +or "compile", to indicate that we mean compilation with K. Similarly for +"Krun", or "krun", instead of "Run" or "run".

      +

      Add citations to:

      +
        +
      • chemical abstract machine
      • +
      • logics, where the distinction between side condition and premise is explained
      • +
      • reduction semantics with evaluation contexts
      • +
      +

      Replace I1 +Int I2, notBool B, etc., with (I1 + I2)@INT, (not B)@Bool, +etc., when we have module qualification in place and working.

      +

      Explain isSort(T) for all sorts Sort, in one place, when it is first used. +Explain also that T:Sort yields a side condition isSort(T).

      +

      Currently all the K collections are "untyped", that is, over the sort K. +In the future we want to have parametric collections. Make sure the tutorial +is systematically changed when this happens.

      +

      See issue #2023 and modify pl-tutorial/1_k/2_imp/lesson_4 accordingly, if needed.

      +

      All definitions, and corresponding READMEs, should be changed to take advantage +of modules and module operations. Ideally, we'd like to have no code repetition +in any examples, except for demonstration purposes.

      +

      In the PL semantics book, define print(AExps) to have the same semantics as in +IMP++: evaluates and prints each of its arguments in order (as opposed to +first evaluate all of them and then print them---for example, if the second +argument performs a division by zero, I still want to print the first argument.)

      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/pl-tutorial/index.html b/k-distribution/pl-tutorial/index.html new file mode 100644 index 00000000000..c5a2fbadfba --- /dev/null +++ b/k-distribution/pl-tutorial/index.html @@ -0,0 +1,578 @@ + + + + + + + + + + + + + + +K PL Tutorial | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      K PL Tutorial

      +

      Here you will learn how to use the K tool to define languages by means of a series of screencast movies. It is recommended to do these in the indicated order, because K features already discussed in a previous language definition will likely not be rediscussed in latter definitions. The screencasts follow quite closely the structure of the files under the tutorial folder in the K tool distribution. If you'd rather follow the instructions there and do the tutorial exercises yourself, then go back to https://kframework.org and download the K tool, if you have not done it already. Or, you can first watch the screencasts below and then do the exercises, or do them in parallel.

      +

      K Overview

      +

      Make sure you watch the K overview video before you do the K tutorial:

      + +

      Learning K

      +

      [34'46"] Part 1: Defining LAMBDA

      +

      Here you will learn how to define a very simple functional language in K and the basics of how to use the K tool. The language is a call-by-value variant of lambda calculus with builtins and mu, and its definition is based on substitution.

      + +

      [37'07"] Part 2: Defining IMP

      +

      Here you will learn how to define a very simple, prototypical textbook C-like imperative language, called IMP, and several new features of the K tool.

      + +

      [33'10"] Part 3: Defining LAMBDA++

      +

      Here you will learn how to define constructs which abruptly change the execution control, as well as how to define functional languages using environments and closures. LAMBDA++ extends the LAMBDA language above with a callcc construct.

      + +

      [46'46"] Part 4: Defining IMP++

      +

      Here you will learn how to refine configurations, how to generate fresh elements, how to tag syntactic constructs and rules, how to exhaustively search the space of non-deterministic or concurrent program executions, etc. IMP++ extends the IMP language above with increment, blocks and locals, dynamic threads, input/output, and abrupt termination.

      + +

      [17'03"] Part 5: Defining Type Systems

      +

      Here you will learn how to define various kinds of type systems following various approaches or styles using K.

      + +

      [??'??"] Part 6: Miscellaneous Other K Features

      +

      Here you will learn a few other K features, and better understand how features that you have already seen work.

      +
        +
      • [??'??"] ...
      • +
      +

      Learning Language Design and Semantics using K

      +

      [??'??"] Part 7: SIMPLE: Designing Imperative Programming Languages

      +

      Here you will learn how to design imperative programming languages using K. SIMPLE is an imperative language with functions, threads, pointers, exceptions, multi-dimensional arrays, etc. We first define an untyped version of SIMPLE, then a typed version. For the typed version, we define both a static and a dynamic semantics.

      + +

      [??'??"] Part 8: KOOL: Designing Object-Oriented Programming Languages

      +

      Here woul will learn how to design object-oriented programming languages using K. KOOL is an object-oriented language that extends SIMPLE with classes and objects. We first define an untyped version of KOOL, then a typed version, with both a dynamic and a static semantics.

      + +

      [??'??"] Part 9: FUN: Designing Functional Programming Languages

      +

      H +ere woul will learn how to design functional programming languages using K. FUN is a higher-order functional language with general let, letrec, pattern matching, references, lists, callcc, etc. We first define an untyped version of FUN, then a let-polymorphic type inferencer.

      + +

      [??'??"] Part 10: LOGIK: Designing Logic Programming Languages

      +

      Here you will learn how to design a logic programming language using K.

      + +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/tests/regression-new/checks/markdownErrorLocation/index.html b/k-distribution/tests/regression-new/checks/markdownErrorLocation/index.html new file mode 100644 index 00000000000..08d0ebeb113 --- /dev/null +++ b/k-distribution/tests/regression-new/checks/markdownErrorLocation/index.html @@ -0,0 +1,394 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      1

      +
      k
      // keep indentation +module MARKDOWNERRORLOCATION-SYNTAX +endmodule +
      +

      7

      +
      .a .b
      9 +
      +

      11

      +
      .k .x
      module MARKDOWNERRORLOCATION + imports INT +
      +
      {
      } +
      +
      k
      rule 21 // pandoc would think this is line 20, column 7 +
      +
      .y .k
      endmodule // pandoc would miss this last unfinished block + +
      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/tests/regression-new/imp++-llvm/imp/index.html b/k-distribution/tests/regression-new/imp++-llvm/imp/index.html new file mode 100644 index 00000000000..08b4f9c7e71 --- /dev/null +++ b/k-distribution/tests/regression-new/imp++-llvm/imp/index.html @@ -0,0 +1,961 @@ + + + + + + + + + + + + + + +IMP++ | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      IMP++

      +

      Author: Grigore Roșu (grosu@illinois.edu)
      +Organization: University of Illinois at Urbana-Champaign

      +

      Abstract

      +

      This is the K semantic definition of the IMP++ language. +IMP++ extends the IMP language with the features listed below. We +strongly recommend you to first familiarize yourself with the IMP +language and its K definition in Tutorial 2 before proceeding.

      +

      Strings and concatenation of strings. Strings are useful +for the print statement, which is discussed below. For +string concatenation, we use the same + construct that we use +for addition (so we overload it).

      +

      Variable increment. We only add a pre-increment construct: +++x increments variable x and evaluates to the +incremented value. Variable increment makes the evaluation of +expressions have side effects, and thus makes the evaluation strategies +of the various language constructs have an influence on the set +of possible program behaviors.

      +

      Input and output. IMP++ adds a read() expression +construct which reads an integer number and evaluates to it, and +a variadic (i.e., it has an arbitrary number of arguments) statement +construct print(e1,e2,...,en) which evaluates its arguments +and then outputs their values. Note that the K tool allows to +connect the input and output cells to the standard input and output +buffers, this way compiling the language definition into an +interactive interpreter.

      +

      Abrupt termination. The halt statement simply halts +the program. The K tool shows the resulting configuration, as if the +program terminated normally. We therefore assume that an external +observer does not care whether the program terminates normally or +abruptly, same like with exit statements in conventional +programming languages like C.

      +

      Dynamic threads. The expression construct spawn s +starts a new concurrent thread that executes statement s, +which is expected to be a block, and evaluates immediately to a fresh +thread identifier that is also assigned to the newly created thread. +The new thread is given at creation time the environment of its +parent, so it can access all its parent's variables. This allows for +the parent thread, and the child thread to communicate; it also allows +for races and "unexpected" behaviors, so be careful. +For thread synchronization, IMP++ provides a thread join statement +construct join t;, where t evaluates to a thread +identifier, which stalls the current thread until thread t +completes its computation. For simplicity, we here assume a +sequentially consistent shared memory model. To experiment with other +memory models, see the definition of KERNELC.

      +

      Blocks and local variables. IMP++ allows blocks enclosed by +curly brackets. Also, IMP's global variable declaration construct is +generalized to be used anywhere as a statement, not only at the +beginning of the program. As expected, the scope of the declared +variables is from their declaration point till the end of the most +nested enclosing block.

      +

      What You Will Learn Here

      +
        +
      • How to define a less trivial language in K, as explained above.
      • +
      • How to use the superheat and supercool +options of the K tool kompile to exhaustively explore the +non-determinism due to underspecified evaluation strategies.
      • +
      • How to use the transition option of the K tool to +exhaustively explore the non-determinism due to concurrency.
      • +
      • How to connect certain cells in the configuration to the +standard input and standard output, and thus turn the krun +tool into an interactive interpreter for the defined language.
      • +
      • How to exhaustively search for the non-deterministic behaviors +of a program using the search option of krun.
      • +
      +
      k
      module IMP-SYNTAX + imports DOMAINS-SYNTAX +
      +

      Syntax

      +

      IMP++ adds several syntactic constructs to IMP. Also, since the +variable declaration construct is generalized to be used anywhere a +statement can be used, not only at the beginning of the program, we +need to remove the previous global variable declaration of IMP and +instead add a variable declaration statement construct

      +

      We do not re-discuss the constructs which are taken over from IMP, +except when their syntax has been subtly modified (such as, for +example, the syntax of the previous "statement" assignment which +is now obtained by composing the new assignment expression, and the +new expression statement constructs); go the last lesson of +Tutorial 2 if you are interested in IMP's constructs. For execution +purposes, we tag the addition and division operations with the +addition and division tags. These attributes have +no theoretical significance, in that they do not affect the semantics +of the language in any way. They only have practical relevance, +specific to our implementation of the K tool. Specifically, we can +tell the K tool (using its superheat and supercool +options) that we want to exhaustively explore all the non-deterministic +behaviors (due to strictness) of these language constructs. For performance +reasons, by default the K tool chooses an arbitrary but fixed order to +evaluate the arguments of the strict language constructs, thus possibly +losing behaviors due to missed interleavings. This aspect was irrelevant in +IMP, because its expressions had no side effects, but it becomes relevant +in IMP++.

      +

      The syntax of the IMP++ constructs is self-explanatory. Note that assignment +is now an expression construct. Also, print is variadic, taking a +list of expressions as argument. It is also strict, which means that the +entire list of expressions, that is, each expression in the list, will be +evaluated. Note also that we have now defined sequential composition +of statements as a whitespace-separated list of statements, aliased with +the nonterminal Stmts, and block as such a (possibly empty) sequence +of statements surrounded by curly brackets.

      +
      k
      syntax AExp ::= Int | String | Id + | "++" Id + | "read" "(" ")" + | "-" AExp [strict] + | "(" AExp ")" [bracket] + > AExp "/" AExp [left, strict, group(division)] + > AExp "+" AExp [left, strict] + > "spawn" Block + > Id "=" AExp [strict(2)] + syntax BExp ::= Bool + | AExp "<=" AExp [seqstrict, latex({#1}\leq{#2})] + | "!" BExp [strict] + | "(" BExp ")" [bracket] + > BExp "&&" BExp [left, strict(1)] + syntax Block ::= "{" Stmts "}" + syntax Stmt ::= Block + | AExp ";" [strict] + | "if" "(" BExp ")" + Block "else" Block [strict(1)] + | "while" "(" BExp ")" Block + | "int" Ids ";" + | "print" "(" AExps ")" ";" + | "halt" ";" + > "join" AExp ";" [strict] + + syntax Ids ::= List{Id,","} + syntax AExps ::= List{AExp,","} + syntax Stmts ::= List{Stmt,""} + syntax AExps ::= Ids +endmodule + + +module IMP + imports IMP-SYNTAX + imports DOMAINS +
      +

      Semantics

      +

      We next give the semantics of IMP++. We start by first defining its +configuration.

      +

      Configuration

      +

      The original configuration of IMP has been extended to include +all the various additional cells needed for IMP++. +To facilitate the semantics of threads, more specifically +to naturally give them access to their parent's variables, we prefer a +(rather conventional) split of the program state into an +environment and a store. An environment maps +variable names into locations, while a store maps locations +into values. Stores are also sometimes called states, or +heaps, or memory, in the literature. Like values, locations +can be anything. For simplicity, here we assume they are natural +numbers. Moreover, each thread has its own environment, so it knows +where all the variables that it has access to are located in the store +(that includes its locally declared variables as well as the variables +of its parent thread), and its own unique identifier. The store is +shared by all threads. For simplicity, we assume a sequentially consistent +memory model in IMP++. Note that the thread cell has multiplicity +*, meaning that there could be zero, one, or more instances of that cell +in the configuration at any given time. This multiplicity information +is important for K's configuration abstraction process: it tells +K how to complete rules which, in order to increase the modularity of the +definition, choose to not mention the entire configuration context. +The in and out cells hold the input and the output +buffers as lists of items.

      +
      k
      configuration <T color="yellow"> + <threads color="orange"> + <thread multiplicity="*" type="Set" color="blue"> + <k color="green"> $PGM:Stmts </k> + <env color="LightSkyBlue"> .Map </env> + <id color="black"> 0 </id> + </thread> + </threads> +// <br/> + <store color="red"> .Map </store> +// <input color="magenta"> .List </input> +// <output color="Orchid"> .List </output> + <input color="magenta" stream="stdin"> .List </input> + <output color="Orchid" stream="stdout"> .List </output> + </T> +// Replace the <input/> and <output/> cells with the next two in order to +// initialize the input buffer through krun +// <input color="magenta"> $IN:List </input> +// <output color="Orchid"> .List </output> +// Replace the <input/> and <output/> cells with the next two to connect the +// input/output buffers to stdin/stdout through krun +// <input color="magenta" stream="stdin"> .List </input> +// <output color="Orchid" stream="stdout"> .List </output> +// Replace the <input/> and <output/> cells with the next two to connect the +// input/output buffers to stdin/stdout and also allow input through krun +// <input color="magenta" stream="stdin"> $IN:List </input> +// <output color="Orchid" stream="stdout"> .List </output> +
      +

      We can also use configuration variables to initialize +the configuration through krun. For example, we may want to +pass a few list items in the in cell when the program makes +use of read(), so that the semantics does not get stuck. +Recall from IMP that configuration variables start with a ParseError: KaTeX parse error: Expected group after '_' at position 63: …, for example, +_̲PGM) and can be initialized with any string by +krun; or course, the string should parse to a term of the +corresponding sort, otherwise errors will be generated. +Moreover, K allows you to connect list cells to the standard input or +the standard output. For example, if you add the attribute +stream="stdin" to the in cell, then krun +will prompt the user to pass input when the in cell is empty +and any semantic rule needs at least one item to be present there in +order to match. Similarly but dually, if you add the attribute +stream="stdout" to the out cell, then any item +placed into this cell by any rule will be promptly sent to the +standard output. This way, krun can be used to obtain +interactive interpreters based directly on the K semantics of the +language. For example:

      +
      shell
      sh$ krun sum-io.imp --output none +Add numbers up to (<= 0 to quit)? 10 +Sum = 55 +Add numbers up to (<= 0 to quit)? 1000 +Sum = 500500 +Add numbers up to (<= 0 to quit)? 0 +sh$ +
      +

      The option --output none instructs krun to not +display the resulting configuration after the program executes. The +input/output streaming works with or without this option, although +if you don't use the option then a configuration with empty +in and out cells will be displayed after the program +is executed. You can also initialize the configuration using +configuration variables and stream the contents of the cells to +standard input/output at the same time. For example, if you use a +configuration variable in the in cell and pass contents to it +through krun, then that contents will be first consumed and +then the user will be prompted to introduce additional input if the +program's execution encounters more read() constructs.

      +

      The old IMP constructs

      +

      The semantics of the old IMP constructs is almost identical to their +semantics in the original IMP language, except for those constructs +making use of the program state and for those whose syntax has slightly +changed. Indeed, the rules for variable lookup and assignment in IMP +accessed the state cell, but that cell is not available in IMP++ +anymore. Instead, we have to use the combination of environment and store +cells. Thanks to K's implicit configuration abstraction, we do not have +to mention the thread and threads cells: these are +automatically inferred (and added by the K tool at compile time) from the +definition of the configuration above, as there is only one correct +way to complete the configuration context of these rules in order to +match the configuration declared above. In our case here, "correct way" +means that the k and env cells will be considered as +being part of the same thread cell, as opposed to each being part +of a different thread. Configuration abstraction is crucial for modularity, +because it gives us the possibility to write our definitions in a way that +may not require us to revisit existing rules when we change the configuration. +Changes in the configuration are quite frequent in practice, typically +needed in order to accommodate new language features. For example, +imagine that we initially did not have threads in IMP++. There +would be no need for the thread and threads cells in +the configuration then, the cells k and env being simply +placed at the top level in the T cell, together with the +already existing cells. Then the rules below would be exactly the +same. Thus, configuration abstraction allows you to not have to +modify your rules when you make structural changes in your language +configuration.

      +

      Below we list the semantics of the old IMP constructs, referring the +reader to the K semantics of IMP for their meaning. Like we tagged the +addition and the division rules above in the syntax, we also tag the lookup +and the assignment rules below (with tags lookup and +assignment), because we want to refer to them when we generate the +language model (with the kompile tool), basically to allow them to +generate (possibly non-deterministic) transitions. Indeed, these two rules, +unlike the other rules corresponding to old IMP constructs, can yield +non-deterministic behaviors when more threads are executed concurrently. +In terms of rewriting, these two rules can "compete" with each other on +some program configurations, in the sense that they can both match at the +same time and different behaviors may be obtained depending upon which of +them is chosen first.

      +
      k
      syntax KResult ::= Int | Bool +
      +

      Variable lookup

      +
      k
      rule <k> X:Id => I ...</k> + <env>... X |-> N ...</env> + <store>... N |-> I ...</store> [group(lookup)] +
      +

      Arithmetic constructs

      +
      k
      rule I1 / I2 => I1 /Int I2 when I2 =/=Int 0 + rule I1 + I2 => I1 +Int I2 + rule - I => 0 -Int I +
      +

      Boolean constructs

      +
      k
      rule I1 <= I2 => I1 <=Int I2 + rule ! T => notBool T + rule true && B => B + rule false && _ => false +
      +

      Variable assignment

      +

      Note that the old IMP assignment statement X = I; is now composed of two +constructs: an assignment expression construct X = I, followed by a +semicolon ; turning the expression into a statement. The rationale behind +this syntactic restructuring has been explained in Lesson 7. Here is the +semantics of the two constructs:

      +
      k
      rule _:Int; => . + rule <k> X = I:Int => I ...</k> + <env>... X |-> N ...</env> + <store>... N |-> (_ => I) ...</store> [group(assignment)] +
      +

      Sequential composition

      +

      Sequential composition has been defined as a whitespace-separated syntactic +list of statements. Recall that syntactic lists are actually syntactic +sugar for cons-lists. Therefore, the following two rules eventually +sequentialize a syntactic list of statements s1 s2 ... sn.. into the +corresponding computation s1 ~> s2 ~> ... ~> sn.

      +
      k
      rule .Stmts => . + rule S:Stmt Ss:Stmts => S ~> Ss +
      +

      Conditional statement

      +
      k
      rule if (true) S else _ => S + rule if (false) _ else S => S +
      +

      While loop

      +

      The only thing to notice here is that the empty block has been replaced +with the block holding the explicit empty sequence. That's because in +the semantics all empty lists become explicit corresponding dots +(to avoid parsing ambiguities)

      +
      k
      rule while (B) S => if (B) {S while (B) S} else {.Stmts} +
      +

      The new IMP++ constructs

      +

      We next discuss the semantics of the new IMP++ constructs.

      +

      Strings

      +

      First, we have to state that strings are also results. +Second, we give the semantics of IMP++ string concatenation (which +uses the already existing addition symbol + from IMP) by +reduction to the built-in string concatenation operation.

      +
      k
      syntax KResult ::= String + rule Str1 + Str2 => Str1 +String Str2 +
      +

      Variable increment

      +

      Like variable lookup, this is also meant to be a supercool transition: we +want it to count both in the non-determinism due to strict operations above +it in the computation and in the non-determinism due to thread +interleavings. This rule also relies on K's configuration abstraction. +Without abstraction, you would have to also include the thread and +threads cells.

      +
      k
      rule <k> ++X => I +Int 1 ...</k> + <env>... X |-> N ...</env> + <store>... N |-> (I => I +Int 1) ...</store> [group(increment)] +
      +

      Read

      +

      The read() construct evaluates to the first integer in the +input buffer, which it consumes. Note that this rule is tagged +increment. This is because we will include it in the set of +potentially non-deterministic transitions when we kompile the definition; +we want to do that because two or more threads can "compete" on +reading the next integer from the input buffer, and different choices +for the next transition can lead to different behaviors.

      +
      k
      rule <k> read() => I ...</k> + <input> ListItem(I:Int) => .List ...</input> [group(read)] +
      +

      Print

      +

      The print statement is strict, so all its arguments are +eventually evaluated (recall that print is variadic). We +append each of its evaluated arguments, in order, to the output buffer, +and structurally discard the residual print statement with an +empty list of arguments. We only want to allow printing integers and +strings, so we define a Printable syntactic category including +only these and define the print statement to only print +Printable elements. Alternatively, we could have had two +similar rules, one for integers and one for strings. Recall that, +currently, K's lists are cons-lists, so we cannot simply rewrite the +head of a list (P) into a list (.). The first rule below is tagged, +because we want to include it in the list of transitions when we kompile; +different threads may compete on the output buffer and we want to capture +all behaviors.

      +
      k
      syntax Printable ::= Int | String + +/* currently it is necessary to subsort Printable to AExp, + but future K should be able to infer that automatically. */ + syntax AExp ::= Printable + + context print(HOLE:AExp, _AEs:AExps); + + rule <k> print(P:Printable,AEs => AEs); ...</k> + <output>... .List => ListItem(P) </output> [group(print)] + rule print(.AExps); => . +
      +

      Halt

      +

      The halt statement empties the computation, so the rewriting process +simply terminates as if the program terminated normally. Interestingly, once +we add threads to the language, the halt statement as defined below +will terminate the current thread only. If you want an abrupt termination +statement that halts the entire program, then you need to discard the entire +contents of the threads cell, so the entire computation abruptly +terminates the entire program, no matter how many concurrent threads it has, +because there is nothing else to rewrite.

      +
      k
      rule <k> halt; ~> _ => . </k> +
      +

      Spawn thread

      +

      A spawned thread is passed its parent's environment at creation time. +The spawn expression in the parent thread is immediately +replaced by the unique identifier of the newly created thread, so the +parent thread can continue its execution. We only consider a sequentially +consistent shared memory model for IMP++, but other memory models can also +be defined in K; see, for example, the definition of KERNELC. Note that +the rule below does not need to be tagged in order to make it a transition +when we kompile, because the creation of the thread itself does not interfere +with the execution of other threads. Also, note that K's configuration +abstraction is at heavy work here, in two different places. First, the +parent thread's k and env cells are wrapped within a +thread cell. Second, the child thread's k, env +and id cells are also wrapped within a thread cell. Why +that way and not putting all these four cells together within the +same thread, or even create an additional threads cell at top +holding a thread cell with the new k, env +and id? Because in the original configuration we declared +the multiplicity of the thread cell to be *, which +effectively tells the K tool that zero, one or more such cells can +co-exist in a configuration at any moment. The other cells have the +default multiplicity one, so they are not allowed to multiply. +Thus, the only way to complete the rule below in a way consistent with +the declared configuration is to wrap the first two cells in a +thread cell, and the latter two cells under the . +also in a thread cell. Once the rule applies, the spawning +thread cell will add a new thread cell next to it, which is consistent +with the declared configuration cell multiplicity. The unique identifier +of the new thread is generated using the fresh side condition.

      +
      k
      rule <k> spawn S => !T:Int ...</k> <env> Rho </env> + (.Bag => <thread>... <k> S </k> <env> Rho </env> <id> !T </id> ...</thread>) +
      +

      Join thread

      +

      A thread who wants to join another thread T has to wait until +the computation of T becomes empty. When that happens, the +join statement is simply dissolved. The terminated thread is not removed, +because we want to allow possible other join statements to also dissolve.

      +
      k
      rule <k> join(T); => . ...</k> <thread>... <k>.</k> <id>T</id> ...</thread> +
      +

      Blocks

      +

      The body statement of a block is executed normally, making sure +that the environment at the block entry point is saved in the computation, +in order to be recovered after the block body statement. This step is +necessary because blocks can declare new variables having the same +name as variables which already exist in the environment, and our +semantics of variable declarations is to update the environment map in +the declared variable with a fresh location. Thus, variables which +are shadowed lose their original binding, which is why we take a +snapshot of the environment at block entrance and place it after the +block body (see the semantics of environment recovery at the end of +this module). Note that any store updates through variables which are +not declared locally are kept at the end of the block, since the store +is not saved/restored. An alternative to this environment save/restore +approach is to actually maintain a stack of environments and to push a +new layer at block entrance and pop it at block exit. The variable +lookup/assign/increment operations then also need to change, so we do +not prefer that non-modular approach. Compilers solve this problem by +statically renaming all local variables into fresh ones, to completely +eliminate shadowing and thus environment saving/restoring. The rule +below can be structural, because what it effectively does is to take a +snapshot of the current environment; this operation is arguably not a +computational step.

      +
      k
      rule <k> {Ss} => Ss ~> Rho ...</k> <env> Rho </env> +
      +

      Variable declaration

      +

      We allocate a fresh location for each newly declared variable and +initialize it with 0.

      +
      k
      rule <k> int (X,Xs => Xs); ...</k> + <env> Rho => Rho[X <- !N:Int] </env> + <store>... .Map => !N |-> 0 ...</store> + rule int .Ids; => . +
      +

      Auxiliary operations

      +

      We only have one auxiliary operation in IMP++, the environment +recovery. Its role is to discard the current environment in the +env cell and replace it with the environment that it holds. +This rule is structural: we do not want them to count as computational +steps in the transition system of a program.

      +
      k
      rule <k> Rho => . ...</k> <env> _ => Rho </env> +
      +

      If you want to avoid useless environment recovery steps and keep the size +of the computation structure smaller, then you can also add the rule

      +
        rule (_:Map => .) ~> _:Map
      +
      +

      This rule acts like a ``tail recursion'' optimization, but for blocks. */

      +
      k
      // verification ids + syntax Id ::= "n" [token] + | "sum" [token] + | "a" [token] + | "b" [token] + | "c" [token] +endmodule +
      +

      On Kompilation Options

      +

      We are done with the IMP++ semantics. The next step is to kompile the +definition using the kompile tool, this way generating a language +model. Depending upon for what you want to use the generated language model, +you may need to kompile the definition using various options. We here discuss +these options.

      +

      To tell the K tool to exhaustively explore all the behaviors due to the +non-determinism of addition, division, and threads, we have to kompile +with the command:

      +
      shell
      kompile imp.k --transition="addition division lookup assignment increment read print" +
      +

      As already mentioned, the syntax and rule tags play no theoretical or +foundational role in K. They are only a means to allow kompile to +refer to them in its options, like we did above. By default, kompile's +transition option is empty, because this yields the fastest language model when +executed. Transitions may slow down the execution, but they instrument +the language model to allow for formal analysis of program behaviors, even for +exhaustive analysis.

      +

      Theoretically, the heating/cooling rules in K are fully reversible and +unconstrained by side conditions as we showed in the semantics of IMP. +For example, the theoretical heating/cooling rules corresponding to the +strict attribute of division are the following:

      +
      E₁ / E₂ ⇒ E₁ ⤳ □ / E₂
      +E₁ ⤳ □ / E₂ ⇒ E₁ / E₂
      +E₁ / E₂ ⇒ E₂ ⤳ E₁ / □
      +E₂ ⤳ E₁ / □ ⇒ E₁ / E₂
      +
      +

      The other semantic rules apply modulo such structural rules. +For example, using heating rules we can bring a redex (a subterm which +can be reduced with semantic rules) to the front of the computation, +then reduce it, then use cooling rules to reconstruct a term over the +original syntax of the language, then heat again and +non-deterministically pick another redex, and so on and so forth +without losing any opportunities to apply semantic rules. +Nevertheless, these unrestricted heating/cooling rules may create an +immense, often unfeasibly large space of possibilities to analyze. +The --transition option implements an optimization which works +well with other implementation choices made in the current K tool. +Recall from the detailed description of the IMP language semantics that +(theoretical) reversible rules like above are restricted by default +to complementary conditional rules of the form

      +
      E₁ / E₂ ⇒ E₁ ⤳ □ / E₂
      +   if E₁ not in KResult
      +E₁ ⤳ □ / E₂ ⇒ E₁ / E₂
      +   if E₁ in KResult
      +E₁ / E₂ ⇒ E₂ ⤳ E₁ / □
      +   if E₂ not in KResult
      +E₂ ⤳ E₁ / □  ⇒ E₁ / E₂
      +   if  E₂ in KResult
      +
      +

      Therefore, our tool eagerly heats and lazily cools the computation. +In other words, heating rules apply until a redex gets placed on the +top of the computation, then some semantic rule applies and rewrites +that into a result, then a cooling rule is applied to plug the +obtained result back into its context, then another argument may be +chosen and completely heated, and so on. This leads to efficient +execution, but it may and typically does hide program behaviors. +Using the --transition option allows you to interfere with this +process and to obtain all possible non-deterministic behaviors as if +the theoretical heating/cooling rules were applied. Optimizations +of course happen under the hood, but you need not be aware of them. +Used carefully, this mechanism allows us to efficiently explore more of +the non-deterministic behaviors of a program, even all of them (like here). +For example, with the semantics of IMP++ given above, the krun +command with the --search option detects all five behaviors +of the following IMP++ program (x can be 0, 1, 2, 3, or undefined +due to division-by-zero):

      +
        int x,y;
      +  x = 1;
      +  y = ++x / (++x / x);
      +
      +

      Besides non-determinism due to underspecified argument evaluation +orders, which the current K tool addresses as explained above, there +is another important source of non-determinism in programming languages: +non-determinism due to concurrency/parallelism. For example, when two +or more threads are about to access the same location in the store and at +least one of these accesses is a write (i.e., an instance of the variable +assignment rule), there is a high chance that different choices for +the next transition lead to different program behaviors. While in the +theory of K all the rules count as computational steps +and hereby as transitions in the transition system associated to the +program, in practice that may yield a tremendous number of step +interleavings to consider. Most of these interleavings are behaviorally +equivalent for most purposes. For example, the fact that a thread computes +a step 8+3 ⇒ 11 is likely irrelevant for the other +threads, so one may not want to consider it as an observable transition in +the space of interleavings. Since the K tool cannot know without help which +transitions need to be explored and which do not, our approach is to +let the user say so explicitly using the transition option of +kompile.

      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/tests/regression-new/kprove-markdown/set-balance-spec/index.html b/k-distribution/tests/regression-new/kprove-markdown/set-balance-spec/index.html new file mode 100644 index 00000000000..1e1ed4c9ba0 --- /dev/null +++ b/k-distribution/tests/regression-new/kprove-markdown/set-balance-spec/index.html @@ -0,0 +1,433 @@ + + + + + + + + + + + + + + +Balances Module Specifications | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Balances Module Specifications

      +
      keep
      module SET-BALANCE-SPEC + imports VERIFICATION +
      +
      k
      ignore thie code block! +
      +

      total_balance tests

      +
      keep
      claim <k> totalBalance(AID) => 50 </k> + <account> + <accountID> AID </accountID> + <freeBalance> 30 </freeBalance> + <reservedBalance> 20 </reservedBalance> + ... + </account> +
      +

      No Zero-Balance Accounts Exist

      +

      This property shows that set_balance will not result in a zero-balance attack. +TODO: Generalize to any EntryAction. +TODO: Assertions about log events.

      +
      discard
      rule <k> set_balance(Root, WHO, FREE_BALANCE', RESERVED_BALANCE') => . ... </k> + <totalIssuance> TOTAL_ISSUANCE => TOTAL_ISSUANCE +Int ( FREE_BALANCE' -Int FREE_BALANCE ) +Int ( RESERVED_BALANCE' -Int RESERVED_BALANCE ) </totalIssuance> + <existentialDeposit> EXISTENTIAL_DEPOSIT </existentialDeposit> + <account> + <accountID> WHO </accountID> + <freeBalance> FREE_BALANCE => FREE_BALANCE' </freeBalance> + <reservedBalance> RESERVED_BALANCE => RESERVED_BALANCE' </reservedBalance> + ... + </account> + requires #inWidth(96, TOTAL_ISSUANCE +Int (FREE_BALANCE' -Int FREE_BALANCE)) + andBool #inWidth(96, TOTAL_ISSUANCE +Int (FREE_BALANCE' -Int FREE_BALANCE) +Int (RESERVED_BALANCE' -Int RESERVED_BALANCE)) + andBool EXISTENTIAL_DEPOSIT <=Int FREE_BALANCE' + andBool EXISTENTIAL_DEPOSIT <=Int RESERVED_BALANCE' +
      +
      keep
      claim <k> set_balance_reserved ( WHO , RESERVED_BALANCE' ) => . ... </k> + <existentialDeposit> EXISTENTIAL_DEPOSIT </existentialDeposit> + <totalIssuance> TOTAL_ISSUANCE +Int ( FREE_BALANCE' -Int FREE_BALANCE ) => TOTAL_ISSUANCE +Int ( FREE_BALANCE' -Int FREE_BALANCE ) +Int ( RESERVED_BALANCE' -Int RESERVED_BALANCE ) </totalIssuance> + <account> + <accountID> WHO </accountID> + <freeBalance> FREE_BALANCE' </freeBalance> + <reservedBalance> RESERVED_BALANCE => RESERVED_BALANCE' </reservedBalance> + ... + </account> + requires #inWidth(96, TOTAL_ISSUANCE +Int (FREE_BALANCE' -Int FREE_BALANCE) +Int (RESERVED_BALANCE' -Int RESERVED_BALANCE)) + andBool EXISTENTIAL_DEPOSIT <=Int RESERVED_BALANCE' +
      +
      keep
      endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/tests/regression-new/kprove-markdown/set-balance/index.html b/k-distribution/tests/regression-new/kprove-markdown/set-balance/index.html new file mode 100644 index 00000000000..e72cda8e096 --- /dev/null +++ b/k-distribution/tests/regression-new/kprove-markdown/set-balance/index.html @@ -0,0 +1,1227 @@ + + + + + + + + + + + + + + +set_balance spec | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      set_balance spec

      +

      State Model

      +
      k
      +module SET-BALANCE + imports INT + imports DOMAINS + imports COLLECTIONS + + configuration + <set-balance> + <k> $ACTION:Action </k> + <now> 0 </now> + <events> .List </events> + <return-value> .Result </return-value> + <call-stack> .List </call-stack> + <existentialDeposit> 0 </existentialDeposit> + <creationFee> 0 </creationFee> + <transferFee> 0 </transferFee> + <totalIssuance> 0 </totalIssuance> + <accounts> + <account multiplicity="*" type="Map"> + <accountID> .AccountId:AccountId </accountID> + <freeBalance> 0 </freeBalance> + <reservedBalance> 0 </reservedBalance> + <vestingBalance> 0 </vestingBalance> + <startingBlock> 0 </startingBlock> + <perBlock> 0 </perBlock> + <nonce> .Nonce </nonce> + <locks> .Set </locks> + </account> + </accounts> + </set-balance> +
      +

      Data

      +
        +
      • An AccountId is an Int.
      • +
      • An Origin is an AccountId, Root, or None.
      • +
      • A Nonce is an optional Int.
      • +
      • An Event records some happenning.
      • +
      +
      k
      syntax AccountId ::= ".AccountId" | Int + // --------------------------------------- + + syntax Origin ::= AccountId | ".Root" | ".None" + // ----------------------------------------------- + + syntax Nonce ::= ".Nonce" | Int + // ------------------------------- + + syntax Event ::= DustEvent ( Int ) + // ---------------------------------- +
      +

      Some predicates which help specifying behavior:

      +
        +
      • #inWidth: Specify that a given number is in some bitwidth.
      • +
      +
      k
      syntax Bool ::= #inWidth(Int, Int) [function, total] + // --------------------------------------------------------- + rule #inWidth(N, M) => 0 <=Int M andBool M <Int (2 ^Int N) +
      +

      Results

      +

      A Result is the return value of an execution step.

      +
        +
      • AccountKilled indicates that the free balance goes below the existential threshold.
      • +
      • Updated indicates that an account was updated successfully.
      • +
      +
      k
      syntax Result ::= ".Result" | "AccountKilled" | "Updated" + // --------------------------------------------------------- +
      +

      Public Getters

      +

      total_balance

      +

      Retrieves the total balance of an account. This includes both the free and +reserved balances.

      +
      k
      syntax Int ::= "total_balance" "(" AccountId ")" [function, total] + // ----------------------------------------------------------------------- + rule total_balance(WHO) => free_balance(WHO) +Int reserved_balance(WHO) +
      +

      free_balance

      +

      Gets the free balance of an account.

      +

      Other than when this module is executing, this will never be strictly between +EXISTENTIAL_DEPOSIT and zero.

      +
      k
      syntax Int ::= "free_balance" "(" AccountId ")" [function, total] + // ---------------------------------------------------------------------- + rule free_balance(_) => 0 [owise] + rule [[ free_balance(WHO) => FREE_BALANCE ]] + <account> + <accountID> WHO </accountID> + <freeBalance> FREE_BALANCE </freeBalance> + ... + </account> +
      +

      reserved_balance

      +

      Gets the reserved balance of an account.

      +

      Other than when this module is executing, this will never be strictly between +EXISTENTIAL_DEPOSIT and zero.

      +
      k
      syntax Int ::= "reserved_balance" "(" AccountId ")" [function, total] + // -------------------------------------------------------------------------- + rule reserved_balance(_) => 0 [owise] + rule [[ reserved_balance(WHO) => FREE_BALANCE ]] + <account> + <accountID> WHO </accountID> + <reservedBalance> FREE_BALANCE </reservedBalance> + ... + </account> +
      +

      can_slash

      +

      Determines if an account’s free balance is over the value provided. This is +often used to determine if an account has enough balance to cover a potential +slash, hence the name.

      +
      k
      syntax Bool ::= "can_slash" "(" AccountId "," Int ")" [function, total] + // ---------------------------------------------------------------------------- + rule can_slash(_, _) => false + rule [[ can_slash(WHO, AMOUNT) => FREE_BALANCE >=Int AMOUNT ]] + <account> + <accountID> WHO </accountID> + <freeBalance> FREE_BALANCE </freeBalance> + ... + </account> +
      +

      total_issuance

      +

      Retrieves the total outstanding amount of currency outstanding. This will +always be equal to the sum of all free and reserved balances in all active +accounts, except when the balances module is executing.

      +
      k
      syntax Int ::= "total_issuance" [function, total] + // ------------------------------------------------------ + rule [[ total_issuance => TOTAL_ISSUANCE ]] + <totalIssuance> TOTAL_ISSUANCE </totalIssuance> +
      +

      issue

      +

      Issues currency, creating an imbalance.

      +

      This is not specified, since these semantics do not include the concept of an +imbalance. Without the concept of destructors and move semantics, it would be +almost impossible to use correctly.

      +

      burn

      +

      Burns currency.

      +

      This is not part of the semantics for the same reason burn is not.

      +

      Actions and Results

      +

      An Action is an execution step (or the result of an execution step). +An EntryAction is an Action that can be invoked externally. +A Result is considered an Action, as is an EntryAction.

      +
      k
      syntax Action ::= Result | EntryAction + // -------------------------------------- +
      +

      account_exists

      +
      k
      syntax Bool ::= "account_exists" "(" AccountId ")" [function, total] + // ------------------------------------------------------------------------- + rule account_exists(_) => false [owise] + rule [[ account_exists(WHO) => true ]] + <account> <accountID> WHO </accountID> ... </account> +
      +

      create_account

      +
      k
      syntax Action ::= "create_account" "(" AccountId ")" + // ---------------------------------------------------- + rule <k> create_account(WHO) => . ... </k> + <accounts> ( .Bag => <account> <accountID> WHO </accountID> ... </account> ) ... </accounts> +
      +

      set_free_balance

      +
        +
      • Updates an accounts balance if the new balance is above the existential threshold.
      • +
      • Kills the account if the balance goes below the existential threshold and the reserved balance is non-zero.
      • +
      • Reaps the account if the balance goes below the existential threshold and the reserved balance is zero.
      • +
      +
      k
      syntax Action ::= "set_free_balance" "(" AccountId "," Int ")" + // -------------------------------------------------------------- + rule <k> (. => create_account(WHO)) ~> set_free_balance(WHO, _) ... </k> + requires notBool account_exists(WHO) + + rule [free-account-updated]: + <k> set_free_balance(WHO, BALANCE) => . ... </k> + <existentialDeposit> EXISTENTIAL_DEPOSIT </existentialDeposit> + <account> + <accountID> WHO </accountID> + <freeBalance> _ => BALANCE </freeBalance> + ... + </account> + requires EXISTENTIAL_DEPOSIT <=Int BALANCE + + rule [free-account-killed]: + <k> set_free_balance(WHO, BALANCE) => . ... </k> + <events> ... (.List => ListItem(DustEvent(FREE_BALANCE))) </events> + <existentialDeposit> EXISTENTIAL_DEPOSIT </existentialDeposit> + <totalIssuance> TOTAL_ISSUANCE => TOTAL_ISSUANCE -Int BALANCE </totalIssuance> + <account> + <accountID> WHO </accountID> + <nonce> _ => .Nonce </nonce> + <freeBalance> FREE_BALANCE => 0 </freeBalance> + <reservedBalance> RESERVED_BALANCE </reservedBalance> + ... + </account> + requires BALANCE <Int EXISTENTIAL_DEPOSIT + andBool 0 <Int RESERVED_BALANCE + + rule [free-account-reaped]: + <k> set_free_balance(WHO, BALANCE) => . ... </k> + <events> ... (.List => ListItem(DustEvent(FREE_BALANCE))) </events> + <existentialDeposit> EXISTENTIAL_DEPOSIT </existentialDeposit> + <totalIssuance> TOTAL_ISSUANCE => TOTAL_ISSUANCE -Int BALANCE </totalIssuance> + <accounts> + ( <account> + <accountID> WHO </accountID> + <freeBalance> FREE_BALANCE </freeBalance> + <reservedBalance> 0 </reservedBalance> + ... + </account> + => .Bag + ) + ... + </accounts> + requires BALANCE <Int EXISTENTIAL_DEPOSIT +
      +

      set_reserved_balance

      +
        +
      • Updates an accounts balance if the new balance is above the existential threshold.
      • +
      • Kills the account if the balance goes below the existential threshold and the free balance is non-zero.
      • +
      • Reaps the account if the balance goes below the existential threshold and the free balance is zero.
      • +
      +
      k
      syntax Action ::= "set_reserved_balance" "(" AccountId "," Int ")" + // ------------------------------------------------------------------ + rule <k> (. => create_account(WHO)) ~> set_reserved_balance(WHO, _) ... </k> + requires notBool account_exists(WHO) + + rule [reserved-account-updated]: + <k> set_reserved_balance(WHO, BALANCE) => . ... </k> + <existentialDeposit> EXISTENTIAL_DEPOSIT </existentialDeposit> + <account> + <accountID> WHO </accountID> + <reservedBalance> _ => BALANCE </reservedBalance> + ... + </account> + requires EXISTENTIAL_DEPOSIT <=Int BALANCE + + rule [reserved-account-killed]: + <k> set_reserved_balance(WHO, BALANCE) => . ... </k> + <events> ... (.List => ListItem(DustEvent(RESERVED_BALANCE))) </events> + <existentialDeposit> EXISTENTIAL_DEPOSIT </existentialDeposit> + <totalIssuance> TOTAL_ISSUANCE => TOTAL_ISSUANCE -Int BALANCE </totalIssuance> + <account> + <accountID> WHO </accountID> + <nonce> _ => .Nonce </nonce> + <freeBalance> FREE_BALANCE </freeBalance> + <reservedBalance> RESERVED_BALANCE => 0 </reservedBalance> + ... + </account> + requires BALANCE <Int EXISTENTIAL_DEPOSIT + andBool 0 <Int FREE_BALANCE + + rule [reserved-account-reaped]: + <k> set_reserved_balance(WHO, BALANCE) => . ... </k> + <events> ... (.List => ListItem(DustEvent(RESERVED_BALANCE))) </events> + <existentialDeposit> EXISTENTIAL_DEPOSIT </existentialDeposit> + <totalIssuance> TOTAL_ISSUANCE => TOTAL_ISSUANCE -Int BALANCE </totalIssuance> + <accounts> + ( <account> + <accountID> WHO </accountID> + <freeBalance> 0 </freeBalance> + <reservedBalance> RESERVED_BALANCE </reservedBalance> + ... + </account> + => .Bag + ) + ... + </accounts> + requires BALANCE <Int EXISTENTIAL_DEPOSIT +
      +

      set_balance

      +
        +
      • Sets the new free balance
      • +
      • Creates suitible imbalances (both positive and negative).
      • +
      • Calls set_free_balance with the new free balance.
      • +
      • Calls set_reserved_balance with the new reserved balance.
      • +
      +
      k
      syntax EntryAction ::= "set_balance" "(" AccountId "," AccountId "," Int "," Int ")" + // ------------------------------------------------------------------------------------ + rule [balance-set]: + <k> set_balance(_, WHO, FREE_BALANCE, RESERVED_BALANCE) + => set_balance_free(WHO, FREE_BALANCE) + ~> set_balance_reserved(WHO, RESERVED_BALANCE) + ... + </k> +
      +

      Helpers for calling set_free_balance and set_reserved_balance.

      +
        +
      • Sets the new free balance
      • +
      • Emits an imbalance event
      • +
      • Helper function for set_balance
      • +
      +
      k
      syntax Action ::= "set_balance_free" "(" AccountId "," Int ")" + syntax Action ::= "set_balance_reserved" "(" AccountId "," Int ")" + // ------------------------------------------------------------------ + rule [balance-set-free]: + <k> set_balance_free(WHO, FREE_BALANCE') => set_free_balance(WHO, FREE_BALANCE') ... </k> + <totalIssuance> ISSUANCE => ISSUANCE +Int (FREE_BALANCE' -Int free_balance(WHO)) </totalIssuance> + requires #inWidth(96, ISSUANCE +Int (FREE_BALANCE' -Int free_balance(WHO))) + + rule [balance-set-reserved]: + <k> set_balance_reserved(WHO, RESERVED_BALANCE') => set_reserved_balance(WHO, RESERVED_BALANCE') ... </k> + <totalIssuance> ISSUANCE => ISSUANCE +Int (RESERVED_BALANCE' -Int reserved_balance(WHO)) </totalIssuance> + requires #inWidth(96, ISSUANCE +Int (RESERVED_BALANCE' -Int reserved_balance(WHO))) +
      +

      transfer_raw

      +

      Transfer some liquid free balance to another account.

      +

      transfer will set the FreeBalance of the sender and receiver. +It will decrease the total issuance of the system by the TransferFee. +If the sender's account is below the existential deposit as a result +of the transfer, the account will be reaped.

      +

      The dispatch origin for this call must be Signed by the transactor.

      +
      k
      syntax ExistenceRequirement ::= "AllowDeath" + | "KeepAlive" + + syntax EntryAction ::= transfer(Origin, AccountId, Int) + | "transfer_keep_alive" "(" Origin "," AccountId "," Int ")" + // --------------------------------------------------------------------------------- + + syntax Action ::= rawTransfer(AccountId, AccountId, Int, ExistenceRequirement) + // ------------------------------------------------------------------------------ + rule [transfer-to-raw]: + <k> transfer(ORIGIN:AccountId, DESTINATION, AMOUNT) + => rawTransfer(ORIGIN, DESTINATION, AMOUNT, AllowDeath) + ... + </k> + + rule [transfer-keep-alive]: + <k> transfer_keep_alive(ORIGIN:AccountId, DESTINATION, AMOUNT) + => rawTransfer(ORIGIN, DESTINATION, AMOUNT, KeepAlive) + ... + </k> + + rule <k> (. => create_account(DESTINATION)) ~> rawTransfer(ORIGIN, DESTINATION, _, _) ... </k> + requires account_exists(ORIGIN) + andBool notBool account_exists(DESTINATION) + + rule [transfer-self]: + <k> rawTransfer(ORIGIN:AccountId, ORIGIN, _, _) => . ... </k> + requires account_exists(ORIGIN) + + rule [transfer-existing-account]: + <k> rawTransfer(ORIGIN, DESTINATION, AMOUNT, EXISTENCE_REQUIREMENT) + => set_free_balance(ORIGIN, SOURCE_BALANCE -Int AMOUNT -Int FEE) + ~> set_free_balance(DESTINATION, DESTINATION_BALANCE +Int AMOUNT) + ... + </k> + <totalIssuance> ISSUANCE => ISSUANCE -Int FEE </totalIssuance> + <existentialDeposit> EXISTENTIAL_DEPOSIT </existentialDeposit> + <transferFee> FEE </transferFee> + <accounts> + <account> + <accountID> ORIGIN </accountID> + <freeBalance> SOURCE_BALANCE </freeBalance> + ... + </account> + <account> + <accountID> DESTINATION </accountID> + <freeBalance> DESTINATION_BALANCE </freeBalance> + ... + </account> + </accounts> + requires ORIGIN =/=K DESTINATION + andBool DESTINATION_BALANCE >Int 0 + andBool SOURCE_BALANCE >=Int (AMOUNT +Int FEE) + andBool ensure_can_withdraw(ORIGIN, Transfer, SOURCE_BALANCE -Int AMOUNT -Int FEE) + andBool (EXISTENCE_REQUIREMENT ==K AllowDeath orBool SOURCE_BALANCE -Int AMOUNT -Int FEE >Int EXISTENTIAL_DEPOSIT) + + rule [transfer-create-account]: + <k> rawTransfer(ORIGIN:AccountId, DESTINATION, AMOUNT, EXISTENCE_REQUIREMENT) + => set_free_balance(ORIGIN, SOURCE_BALANCE -Int AMOUNT -Int CREATION_FEE) + ~> set_free_balance(DESTINATION, AMOUNT) + ... + </k> + <totalIssuance> ISSUANCE => ISSUANCE -Int CREATION_FEE </totalIssuance> + <existentialDeposit> EXISTENTIAL_DEPOSIT </existentialDeposit> + <creationFee> CREATION_FEE </creationFee> + <accounts> + <account> + <accountID> ORIGIN </accountID> + <freeBalance> SOURCE_BALANCE </freeBalance> + ... + </account> + <account> + <accountID> DESTINATION </accountID> + <freeBalance> 0 </freeBalance> + <reservedBalance> 0 </reservedBalance> + ... + </account> + ... + </accounts> + requires ORIGIN =/=K DESTINATION + andBool SOURCE_BALANCE >=Int (AMOUNT +Int CREATION_FEE) + andBool EXISTENTIAL_DEPOSIT <=Int AMOUNT + andBool ensure_can_withdraw(ORIGIN, Transfer, SOURCE_BALANCE -Int AMOUNT -Int CREATION_FEE) + andBool (EXISTENCE_REQUIREMENT ==K AllowDeath orBool SOURCE_BALANCE -Int AMOUNT -Int CREATION_FEE >=Int EXISTENTIAL_DEPOSIT) +
      +

      force_transfer

      +

      Force a transfer from any account to any other account. This can only be done by root.

      +
      k
      syntax EntryAction ::= "force_transfer" "(" Origin "," AccountId "," AccountId "," Int ")" + // ------------------------------------------------------------------------------------------ + rule [force-transfer]: + <k> force_transfer(.Root, SOURCE, DESTINATION, AMOUNT) => transfer(SOURCE, DESTINATION, AMOUNT) ... </k> +
      +

      withdraw

      +

      Withdraw funds from an account.

      +
      k
      syntax EntryAction ::= withdraw(AccountId, Int, WithdrawReason, ExistenceRequirement) + // ------------------------------------------------------------------------------------- + rule [withdraw]: // K really needs where clauses + <k> withdraw(WHO, AMOUNT, REASON, EXISTENCE_REQUIREMENT) + => withdrawInner(WHO, AMOUNT, AMOUNT -Int free_balance(WHO), REASON, EXISTENCE_REQUIREMENT) + ... + </k> + + syntax Action ::= withdrawInner(AccountId, Int, Int, WithdrawReason, ExistenceRequirement) + // ------------------------------------------------------------------------------------------ + rule [withdrawInner]: + <k> withdrawInner(WHO, AMOUNT, NEW_BALANCE, REASON, EXISTENCE_REQUIREMENT) + => set_free_balance(WHO, NEW_BALANCE) + ... + </k> + <totalIssuance> ISSUANCE => ISSUANCE -Int AMOUNT </totalIssuance> + <existentialDeposit> EXISTENTIAL_DEPOSIT </existentialDeposit> + requires NEW_BALANCE >=Int 0 + andBool ensure_can_withdraw(WHO, REASON, NEW_BALANCE) + andBool (EXISTENCE_REQUIREMENT ==K AllowDeath orBool NEW_BALANCE >=Int EXISTENTIAL_DEPOSIT) +
      +

      Call Frames

      +

      Function call and return.

      +
      k
      syntax CallFrame ::= frame(continuation: K) + syntax Action ::= call ( Action ) + | return ( Result ) + // ----------------------------------- + rule [call]: + <k> call(Action) ~> CONT => Action </k> + <call-stack> .List => ListItem(frame(CONT)) ... </call-stack> + + rule [return]: + <k> return(R) ~> _ => CONT </k> + <return-value> _ => R </return-value> + <call-stack> ListItem(frame(CONT)) => .List ... </call-stack> + + rule [return-unit]: + <k> . => CONT </k> + <return-value> _ => .Result </return-value> + <call-stack> ListItem(frame(CONT)) => .List ... </call-stack> +
      +

      Ensure that a given amount can be withdrawn from an account.

      +

      FIXME: we do not account for multiple withdrawl reasons, due to K’s +lacking polymorphism.

      +
      k
      syntax WithdrawReason ::= "TransactionPayment" + | "Transfer" + | "Reserve" + | "Fee" + | "Tip" + // ------------------------------- + + + syntax Bool ::= "ensure_can_withdraw" "(" AccountId "," WithdrawReason "," Int ")" [function, total] + // --------------------------------------------------------------------------------------------------------- + rule ensure_can_withdraw(_, _, _) => true [owise] + + rule [[ ensure_can_withdraw(WHO, Transfer #Or Reserve, BALANCE) => false ]] + <account> + <accountID> WHO </accountID> + <vestingBalance> VESTING_BALANCE </vestingBalance> + ... + </account> + requires VESTING_BALANCE <Int BALANCE + + rule [[ ensure_can_withdraw(WHO, REASON, BALANCE) => false ]] + <now> NOW </now> + <account> + <accountID> WHO </accountID> + <locks> ACCOUNT_LOCKS </locks> + ... + </account> + requires activeLocks(ACCOUNT_LOCKS, NOW, REASON, BALANCE) + + syntax LockID ::= "Election" + | "Staking" + | "Democracy" + | "Phragmen" + // ---------------------------- + + syntax AccountLock ::= lock ( id: LockID, until: Int, amount: Int, reasons: Set ) + // --------------------------------------------------------------------------------- + + syntax Bool ::= activeLock (AccountLock, Int, WithdrawReason, Int ) [function] + | activeLocks(Set, Int, WithdrawReason, Int ) [function] + | activeLocks(List, Int, WithdrawReason, Int, Bool) [function, klabel(activeLocksAux)] + // ----------------------------------------------------------------------------------------------------------- + rule activeLock(AL, NOW, REASON, BALANCE) => NOW <Int until(AL) andBool BALANCE <Int amount(AL) andBool REASON in reasons(AL) + + rule activeLocks(ALS, NOW, REASON, BALANCE) => activeLocks(Set2List(ALS), NOW, REASON, BALANCE, false) + + rule activeLocks(.List, _, _, _, RESULT) => RESULT + rule activeLocks((ListItem(AL) => .List) _, NOW, REASON, BALANCE, RESULT => RESULT orBool activeLock(AL, NOW, REASON, BALANCE)) +
      +

      Slashing and repatriation of reserved balances

      +

      The first of these is also used by slash.

      +
        +
      • slash_reserved
      • +
      • repatriate_reserved
      • +
      +
      k
      syntax Action ::= "slash_reserved" "(" AccountId "," Int ")" + // ------------------------------------------------------------ + rule [slash-reserved]: + <k> slash_reserved(ACCOUNT, AMOUNT) + => set_reserved_balance(ACCOUNT, maxInt(0, RESERVED_BALANCE -Int AMOUNT)) + ... + </k> + <accounts> + <account> + <accountID> ACCOUNT </accountID> + <reservedBalance> RESERVED_BALANCE </reservedBalance> + ... + </account> + </accounts> + <totalIssuance> TOTAL_ISSUANCE => TOTAL_ISSUANCE -Int minInt(RESERVED_BALANCE, AMOUNT) </totalIssuance> + + syntax Action ::= "repatriate_reserved" "(" AccountId "," AccountId "," Int ")" + // ------------------------------------------------------------------------------- + rule [repatriate-reserved]: + <k> repatriate_reserved(SLASHED, BENEFICIARY, AMOUNT) + => set_free_balance(BENEFICIARY, BENEFICIARY_FREE_BALANCE +Int minInt(SLASHED_RESERVED_BALANCE, AMOUNT)) + ~> set_reserved_balance(SLASHED, SLASHED_RESERVED_BALANCE -Int minInt(SLASHED_RESERVED_BALANCE, AMOUNT)) + ... + </k> + <accounts> + <account> + <accountID> SLASHED </accountID> + <reservedBalance> SLASHED_RESERVED_BALANCE </reservedBalance> + ... + </account> + <account> + <accountID> BENEFICIARY </accountID> + <reservedBalance> BENEFICIARY_RESERVED_BALANCE </reservedBalance> + <freeBalance> BENEFICIARY_FREE_BALANCE </freeBalance> + ... + </account> + </accounts> + requires BENEFICIARY_FREE_BALANCE +Int BENEFICIARY_RESERVED_BALANCE >Int 0 + andBool SLASHED =/=K BENEFICIARY + + rule [repatriate-reserved-same-account]: + <k> repatriate_reserved(SLASHED, SLASHED, AMOUNT) => unreserve(SLASHED, AMOUNT) ... </k> +
      +

      Slashing

      +

      Used to punish a node for violating the protocol.

      +
      k
      syntax EntryAction ::= slash ( AccountId , Int ) + // ------------------------------------------------ + rule [slash]: + <k> slash(ACCOUNT, AMOUNT) => set_free_balance(ACCOUNT, FREE_BALANCE -Int AMOUNT) ... </k> + <accounts> + <account> + <accountID> ACCOUNT </accountID> + <freeBalance> FREE_BALANCE </freeBalance> + ... + </account> + </accounts> + <totalIssuance> TOTAL_ISSUANCE => TOTAL_ISSUANCE -Int AMOUNT </totalIssuance> + requires FREE_BALANCE >=Int AMOUNT + + rule [slash-empty-free]: + <k> slash(ACCOUNT, AMOUNT) + => set_free_balance(ACCOUNT, 0) + ~> slash_reserved(ACCOUNT, AMOUNT -Int FREE_BALANCE) + ... + </k> + <accounts> + <account> + <accountID> ACCOUNT </accountID> + <freeBalance> FREE_BALANCE </freeBalance> + ... + </account> + </accounts> + <totalIssuance> TOTAL_ISSUANCE => TOTAL_ISSUANCE -Int FREE_BALANCE </totalIssuance> + requires FREE_BALANCE <Int AMOUNT +
      +

      Reservation and unreservation of balances

      +

      Used to move balance from free to reserved and visa versa.

      +
      k
      syntax Action ::= reserve ( AccountId , Int ) + // --------------------------------------------- + rule [reserve]: + <k> reserve(ACCOUNT, AMOUNT) + => set_reserved_balance(ACCOUNT, FREE_BALANCE +Int AMOUNT) + ~> set_free_balance(ACCOUNT, FREE_BALANCE -Int AMOUNT) + ... + </k> + <accounts> + <account> + <accountID> ACCOUNT </accountID> + <freeBalance> FREE_BALANCE </freeBalance> + <reservedBalance> _ </reservedBalance> + ... + </account> + </accounts> + requires FREE_BALANCE >=Int AMOUNT + andBool ensure_can_withdraw(ACCOUNT, Reserve, FREE_BALANCE -Int AMOUNT) + + syntax Action ::= unreserve ( AccountId , Int ) + // ----------------------------------------------- + rule [unreserve]: + <k> unreserve(ACCOUNT, AMOUNT) + => set_free_balance(ACCOUNT, FREE_BALANCE +Int minInt(AMOUNT, RESERVED_BALANCE)) + ~> set_reserved_balance(ACCOUNT, FREE_BALANCE -Int minInt(AMOUNT, RESERVED_BALANCE)) + ... + </k> + <accounts> + <account> + <accountID> ACCOUNT </accountID> + <freeBalance> FREE_BALANCE </freeBalance> + <reservedBalance> RESERVED_BALANCE </reservedBalance> + ... + </account> + </accounts> +
      +

      Vesting

      +
        +
      • locked_at ― amount currently locked
      • +
      • vesting_balance ― get the balance that cannot currently be withdrawn.
      • +
      +
      k
      syntax Int ::= "locked_at" "(" AccountId ")" [function, total] + // ------------------------------------------------------------------- + rule [[ locked_at(WHO) => maxInt(0, VESTING_BALANCE -Int (PER_BLOCK *Int maxInt(0, NOW -Int STARTING_BLOCK))) ]] + <now> NOW </now> + <account> + <accountID> WHO </accountID> + <vestingBalance> VESTING_BALANCE </vestingBalance> + <startingBlock> STARTING_BLOCK </startingBlock> + <perBlock> PER_BLOCK </perBlock> + ... + </account> + + syntax Int ::= "vesting_balance" "(" AccountId ")" [function, total] + // ------------------------------------------------------------------------- + rule [[ vesting_balance(WHO) => minInt(FREE_BALANCE, locked_at(WHO)) ]] + <account> + <accountID> WHO </accountID> + <freeBalance> FREE_BALANCE </freeBalance> + ... + </account> +
      +

      Deposits

      +

      Deposit into an existing account.

      +
      k
      syntax EntryAction ::= "deposit_into_existing" "(" AccountId "," Int ")" + // ------------------------------------------------------------------------ + rule [deposit-into-existing]: + <k> deposit_into_existing(WHO, AMOUNT) => . ... </k> + <totalIssuance> TOTAL_ISSUANCE => TOTAL_ISSUANCE +Int AMOUNT </totalIssuance> + <account> + <accountID> WHO </accountID> + <freeBalance> FREE_BALANCE => FREE_BALANCE +Int AMOUNT </freeBalance> + ... + </account> + requires FREE_BALANCE >Int 0 +
      +

      End of module

      +
      k
      endmodule +
      +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/tests/regression-new/markdownSelectors/a-spec/index.html b/k-distribution/tests/regression-new/markdownSelectors/a-spec/index.html new file mode 100644 index 00000000000..26881fb4c7a --- /dev/null +++ b/k-distribution/tests/regression-new/markdownSelectors/a-spec/index.html @@ -0,0 +1,381 @@ + + + + + + + + + + + + + + +K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +
      k
      require "test.md" + +module A-SPEC + +endmodule +
      +
      +
      + + +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/k-distribution/tests/regression-new/markdownSelectors/test/index.html b/k-distribution/tests/regression-new/markdownSelectors/test/index.html new file mode 100644 index 00000000000..824fa86e382 --- /dev/null +++ b/k-distribution/tests/regression-new/markdownSelectors/test/index.html @@ -0,0 +1,407 @@ + + + + + + + + + + + + + + +Test | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Test

      +
      k
      module TEST-SYNTAX + imports INT +endmodule +module TEST + imports INT +
      +
      .k
      configuration <k> $PGM:K </k> <r> 0 </r> +
      +
      .discard
      rule <r> 0 => 1 </r> +
      +
      .keep
      rule <k> 0 => 1 </k> +
      +
      .k .keep
      rule <k> 1 => 2 </k> +
      +
      .k .discard .numberLines
      rule <k> 2 => 3 </k> +
      +
      .keep .discard
      rule <r> 0 => 1 </r> +
      +
      k
      endmodule +
      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + + diff --git a/news/k-framework-demo/index.html b/news/k-framework-demo/index.html new file mode 100644 index 00000000000..e64f16eaa47 --- /dev/null +++ b/news/k-framework-demo/index.html @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + +The K Framework Demo | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      The K Framework Demo

      + +
      +
      + + + +
      + +
      +
      + + + + + + + + + + + + diff --git a/overview/index.html b/overview/index.html new file mode 100644 index 00000000000..e7d15ffa33f --- /dev/null +++ b/overview/index.html @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + +K overview | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      K overview

      + +

      Go to Youtube mirror, if the above does not work.

      +

      Go back to https://kframework.org for further links, the K tool and contact information.

      +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + diff --git a/projects/index.html b/projects/index.html new file mode 100644 index 00000000000..e558c81ff83 --- /dev/null +++ b/projects/index.html @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + +Projects using K | Runtime Verification Inc + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      + +
      +

      Projects using K

      +

      A list of projects using the K framework. If you are working on something interesting, and you want to share it with the community, +let us know on our socials, and we will feature you on this list.

      +
      + +
      +
        +
      • +

        KAVM (Feb 2022 - Present)

        +

        The Algorand Virtual Machine and TEAL Semantics in K
        +KAVM leverages the K Framework to empower Algorand smart contracts' developers +with property-based testing and formal verification.

        +
      • +
      • +

        KPlutus (2016 - Present)

        +

        The K Semantics of Plutus-Core

        +
      • +
      • +

        Dedukti (Mar 2021 - Present)

        +

        This project aims to translate real K semantics into Dedukti.

        +
      • +
      • +

        KWasm (Aug 2015 - Present)

        +

        KWasm is the K semantics of WebAssembly. +WebAssembly is a low-level (but simple and streamlined) assembly language that was originally developed to provide a fast execution engine for browser-based tools. +More recently, it has been used in several blockchain smart-contract platforms as the underlying language for executing financial agreements. +KWasm has been used for measuring coverage of test-suites over Wasm code and verifying programs which are compiled to Wasm.

        +
      • +
      • +

        KEVM (Sep 2017 - Present)

        +

        KEVM is the K semantics of the Ethereum Virtual Machine. +It passes all the Ethereum Test Suite, and is used for verifying EVM programs.

        +
      • +
      • +

        IELE (Oct 2016 - Present)

        +

        IELE is the underlying VM integrated into the Cardano blockchain. +IELE is a register-based VM (inspired by LLVM), which attempts to avoid many of the missteps in design present in EVM.

        +
      • +
      • +

        K-Michelson (Oct 2019 - Present)

        +

        K-Michelson is the K semantics of Michelson blockchain programming language, which powers the Tezos blockchain. +KMichelson provides additional testing tools for developers, including a unit-testing framework which is extendable to symbolic property testing.

        +
      • +
      • +

        C (Jul 2010 - Present)

        +

        The K semantics of the C programming language specifies the translation, linking, and execution semantics of the C language according to the official C standard. +It has been used to build tools like RV-Match, which detects undefined behaviors in users programs by running their test-suites through the C semantics.

        +
      • +
      +

      Archived

      + +
      +
      + + +
      + + + +
      +
      + +
      +
      + + + + + + + + + + + + diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000000..70e32cc349c --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,711 @@ + + + + https://kframework.org/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/index.html + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/exports/K.pdf + 0.5 + 2023-09-29 + monthly + + + https://kframework.org/exports/K.epub + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/exports/K.mobi + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/exports/K.html + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/01_installing/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/02_basics/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/03_parsing/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/04_disambiguation/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/05_modules/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/06_ints_and_bools/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/07_side_conditions/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/08_literate_programming/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/09_unparsing/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/10_strings/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/11_casts/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/12_syntactic_lists/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/13_rewrite_rules/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/14_evaluation_order/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/15_configurations/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/16_collections/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/17_cell_multiplicity/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/18_equality_and_conditionals/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/19_debugging/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/20_backends/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/21_symbolic_execution/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/1_basic/22_proofs/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/01_macros/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/02_fresh_constants/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/03_klabels/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/04_overloading/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/05_matching_logic/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/06_function_context/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/07_record_productions/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/08_fun_and_let/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/09_as/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/10_matching_operator/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/11_evaluation_order/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/12_floats_and_machine_ints/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/13_substitution/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/14_io/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/15_string_buffers_and_bytes/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/16_kore/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/2_intermediate/17_debugging_proofs/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/docs/user_manual/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/docs/cheat_sheet/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/docs/ktools/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/include/kframework/builtin/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/include/kframework/builtin/domains/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/include/kframework/builtin/kast/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/include/kframework/builtin/prelude/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/include/kframework/builtin/ffi/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/include/kframework/builtin/json/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/include/kframework/builtin/rat/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/include/kframework/builtin/substitution/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/overview/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/1_lambda/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/1_lambda/lesson_1/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/1_lambda/lesson_2/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/1_lambda/lesson_3/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/1_lambda/lesson_4/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/1_lambda/lesson_5/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/1_lambda/lesson_6/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/1_lambda/lesson_7/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/1_lambda/lesson_8/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/1_lambda/lesson_9/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/2_imp/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/2_imp/lesson_1/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/2_imp/lesson_2/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/2_imp/lesson_3/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/2_imp/lesson_4/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/2_imp/lesson_5/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/3_lambda++/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_1/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_2/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_3/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_4/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_5/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/3_lambda++/lesson_6/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/4_imp++/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/4_imp++/lesson_1/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/4_imp++/lesson_2/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/4_imp++/lesson_3/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/4_imp++/lesson_4/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/4_imp++/lesson_5/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/4_imp++/lesson_6/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/4_imp++/lesson_7/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/4_imp++/lesson_8/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/5_types/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/5_types/lesson_1/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/5_types/lesson_2/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/5_types/lesson_3/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/5_types/lesson_4/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/5_types/lesson_5/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/5_types/lesson_6/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/5_types/lesson_7/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/5_types/lesson_8/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/1_k/5_types/lesson_9/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/2_languages/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/2_languages/1_simple/1_untyped/simple-untyped/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/1_static/simple-typed-static/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/2_languages/1_simple/2_typed/2_dynamic/simple-typed-dynamic/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/2_languages/2_kool/1_untyped/kool-untyped/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/2_languages/2_kool/2_typed/1_dynamic/kool-typed-dynamic/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/2_languages/2_kool/2_typed/2_static/kool-typed-static/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/1_environment/fun-untyped/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/2_languages/3_fun/1_untyped/2_substitution/fun-untyped/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/pl-tutorial/2_languages/4_logik/basic/logik/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/projects/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/editor_support/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/faq/ + 1.0 + 2023-09-29 + monthly + + + https://kframework.org/k-distribution/k-tutorial/3_advanced/ + 1.0 + 2023-09-29 + monthly + + \ No newline at end of file